|
@@ -1,183 +1,64 @@
|
|
|
<template>
|
|
|
<div class="other-container" style="margin-top: 178px;">
|
|
|
- <IHeader />
|
|
|
- <div style="padding-top: 10px;background: #FFF;margin-top:20px;">
|
|
|
- <div style="width: 200px;display:inline-block;">
|
|
|
- <el-select v-model="searchDepartId" filterable clearable placeholder="关键字搜索部门" @change="handleChangeDepart">
|
|
|
- <el-option
|
|
|
- v-for="item in list"
|
|
|
- :key="item.department_id"
|
|
|
- :label="item.department"
|
|
|
- :value="item.department_id"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- <el-menu
|
|
|
- :default-active="selectDepartId"
|
|
|
- class="el-menu-vertical-demo"
|
|
|
- @select="handleSelectDepart">
|
|
|
- <template v-for="(item, index) in list">
|
|
|
- <el-menu-item :index="item.department_id">
|
|
|
- <span>{{ item.department}}</span>
|
|
|
- </el-menu-item>
|
|
|
- </template>
|
|
|
- </el-menu>
|
|
|
- </div>
|
|
|
- <div style="width: 800px;display:inline-block;padding: 0 20px;vertical-align: top;">
|
|
|
- <div style="margin: 10px;position:relative;">
|
|
|
- <i class="el-icon-location"></i>
|
|
|
- <el-breadcrumb separator-class="el-icon-arrow-right">
|
|
|
- <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
|
|
|
- <el-breadcrumb-item>帮助中心</el-breadcrumb-item>
|
|
|
- <el-breadcrumb-item>文件列表</el-breadcrumb-item>
|
|
|
- <el-breadcrumb-item>{{ selectDepartName }}</el-breadcrumb-item>
|
|
|
- </el-breadcrumb>
|
|
|
- <div style="position:absolute;right: -10px;top:-5px;">
|
|
|
- <el-autocomplete
|
|
|
- popper-class="my-autocomplete"
|
|
|
- v-model="state3"
|
|
|
- :fetch-suggestions="querySearch"
|
|
|
- clearable
|
|
|
- placeholder="搜索文件"
|
|
|
- size="mini"
|
|
|
- @select="handleSelectFile">
|
|
|
- <i
|
|
|
- class="el-icon-search el-input__icon"
|
|
|
- slot="suffix"
|
|
|
- />
|
|
|
- <template slot-scope="props">
|
|
|
- <div class="name">{{ props.item.value }}<span class="addr">({{ props.item.address }})</span></div>
|
|
|
- </template>
|
|
|
- </el-autocomplete>
|
|
|
- </div>
|
|
|
+ <IHeader :departmentId="selectDepartId"/>
|
|
|
+ <div class="main">
|
|
|
+
|
|
|
+ <div class="main-table">
|
|
|
+
|
|
|
+ <div class="main-left">
|
|
|
+ <el-select v-model="searchDepartId" filterable clearable placeholder="关键字搜索部门" @change="handleChangeDepart">
|
|
|
+ <el-option
|
|
|
+ v-for="item in list"
|
|
|
+ :key="item.department_id"
|
|
|
+ :label="item.department"
|
|
|
+ :value="item.department_id"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-menu
|
|
|
+ :default-active="selectDepartId"
|
|
|
+ class="el-menu-vertical-demo"
|
|
|
+ @select="handleSelectDepart">
|
|
|
+ <template v-for="(item, index) in list">
|
|
|
+ <el-menu-item :index="item.department_id">
|
|
|
+ <span>{{ item.department}}</span>
|
|
|
+ </el-menu-item>
|
|
|
+ </template>
|
|
|
+ </el-menu>
|
|
|
</div>
|
|
|
|
|
|
-
|
|
|
- <el-card class="box-card" v-if="!isShowMore">
|
|
|
- <div slot="header" class="clearfix">
|
|
|
- <span>{{ selectDepartName }} 法律法规类资料</span>
|
|
|
- <el-button style="float: right; padding: 3px 0;color: #999;font-size: 12px;" type="text" @click="handleOpenMore(1)">更多></el-button>
|
|
|
- </div>
|
|
|
- <div v-for="(o,index) in restaurants.laws" :key="o.id" class="text item">
|
|
|
- <div style="display: inline-block;width: 100%;" >
|
|
|
-
|
|
|
- <el-link target="_blank" :download="o.filename" :href="'/'+o.filename" :underline="false" v-if="o.isOpen">
|
|
|
- <span class="oneline" >
|
|
|
- 【{{o.isOpen?'公':'私'}}】 {{ (index+1)}} 、 {{o.title|filterTitle}}
|
|
|
- </span>
|
|
|
- </el-link>
|
|
|
-
|
|
|
- <span v-else @click="downloadFile(o)" style="color: #606266;" >
|
|
|
- <span class="oneline" >
|
|
|
- 【{{o.isOpen?'公':'私'}}】 {{ (index+1)}} 、 {{o.title|filterTitle}}
|
|
|
- </span>
|
|
|
- </span>
|
|
|
-
|
|
|
-
|
|
|
- <span class="fr" style="color: #b4b4b4;">{{o.createAt }}</span>
|
|
|
- <span style="clear: both;"></span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-card>
|
|
|
-
|
|
|
- <el-card class="box-card" v-if="!isShowMore">
|
|
|
- <div slot="header" class="clearfix">
|
|
|
- <span>{{ selectDepartName }} 机制类资料</span>
|
|
|
- <el-button style="float: right; padding: 3px 0;color: #999;font-size: 12px;" type="text" @click="handleOpenMore(2)">更多></el-button>
|
|
|
- </div>
|
|
|
- <div v-for="(o,index) in restaurants.mechanism" :key="o.id" class="text item">
|
|
|
- <div style="display: inline-block;width: 100%;">
|
|
|
- <el-link target="_blank" :download="o.filename" :href="'/'+o.filename" :underline="false" v-if="o.isOpen">
|
|
|
- <span class="oneline" >
|
|
|
- 【{{o.isOpen?'公':'私'}}】 {{ (index+1)}} 、 {{o.title|filterTitle}}
|
|
|
- </span>
|
|
|
- </el-link>
|
|
|
-
|
|
|
- <span v-else @click="downloadFile(o)" style="color: #606266;" >
|
|
|
- <span class="oneline" >
|
|
|
- 【{{o.isOpen?'公':'私'}}】 {{ (index+1)}} 、 {{o.title|filterTitle}}
|
|
|
- </span>
|
|
|
- </span>
|
|
|
-
|
|
|
- <span class="fr" style="color: #b4b4b4;">{{o.createAt }}</span>
|
|
|
- <span style="clear: both;"></span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </el-card>
|
|
|
-
|
|
|
-
|
|
|
- <el-card class="box-card" v-if="!isShowMore">
|
|
|
- <div slot="header" class="clearfix">
|
|
|
- <span>{{ selectDepartName }} 成果类资料</span>
|
|
|
- <el-button style="float: right; padding: 3px 0;color: #999;font-size: 12px;" type="text" @click="handleOpenMore(3)">更多></el-button>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div v-for="(o,index) in restaurants.result" :key="o.id" class="text item">
|
|
|
- <div style="display: inline-block;width: 100%;">
|
|
|
-
|
|
|
- <el-link target="_blank" :download="o.filename" :href="'/'+o.filename" :underline="false" v-if="o.isOpen">
|
|
|
- <span class="oneline" >
|
|
|
- 【{{o.isOpen?'公':'私'}}】 {{ (index+1)}} 、 {{o.title|filterTitle}}
|
|
|
- </span>
|
|
|
- </el-link>
|
|
|
-
|
|
|
- <span v-else @click="downloadFile(o)" style="color: #606266;" >
|
|
|
- <span class="oneline" >
|
|
|
- 【{{o.isOpen?'公':'私'}}】 {{ (index+1)}} 、 {{o.title|filterTitle}}
|
|
|
- </span>
|
|
|
- </span>
|
|
|
-
|
|
|
-
|
|
|
- <span class="fr" style="color: #b4b4b4;">{{o.createAt }}</span>
|
|
|
- <span style="clear: both;"></span>
|
|
|
- </div>
|
|
|
+ <div class="main-right">
|
|
|
+ <div style="margin: 16px;position:relative;">
|
|
|
+ <i class="el-icon-location"></i>
|
|
|
+ <el-breadcrumb separator-class="el-icon-arrow-right">
|
|
|
+ <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
|
|
|
+ <el-breadcrumb-item>帮助中心</el-breadcrumb-item>
|
|
|
+ <el-breadcrumb-item>文件列表</el-breadcrumb-item>
|
|
|
+ <el-breadcrumb-item>{{ selectDepartName }}</el-breadcrumb-item>
|
|
|
+ </el-breadcrumb>
|
|
|
</div>
|
|
|
- </el-card>
|
|
|
|
|
|
|
|
|
+ <IArtical :department="selectDepartName" type="laws"
|
|
|
+ :list="restaurants.laws" @more="handleOpenMore('laws')" @download="downloadFile"></IArtical>
|
|
|
+ <IArtical :department="selectDepartName" type="mechanism"
|
|
|
+ :list="restaurants.mechanism" @more="handleOpenMore('mechanism')" @download="downloadFile"></IArtical>
|
|
|
+ <IArtical :department="selectDepartName" type="result"
|
|
|
+ :list="restaurants.result" @more="handleOpenMore('result')" @download="downloadFile"></IArtical>
|
|
|
+ <IArtical :department="selectDepartName" type="other"
|
|
|
+ :list="restaurants.other" @more="handleOpenMore('other')" @download="downloadFile"></IArtical>
|
|
|
|
|
|
-
|
|
|
- <el-card class="box-card" v-if="isShowMore">
|
|
|
- <div slot="header" class="clearfix">
|
|
|
- <span>{{ selectDepartName }} 成果类资料</span>
|
|
|
- </div>
|
|
|
- <div v-for="(o,index) in restaurants.result" :key="o.id" class="text item">
|
|
|
- <div style="display: inline-block;width: 100%;">
|
|
|
- <el-link target="_blank" :download="o.filename" :href="'/'+o.filename" :underline="false" v-if="o.isOpen">
|
|
|
- <span class="oneline" >
|
|
|
- 【{{o.isOpen?'公':'私'}}】 {{ (index+1)}} 、 {{o.title|filterTitle}}
|
|
|
- </span>
|
|
|
- </el-link>
|
|
|
-
|
|
|
- <span v-else @click="downloadFile(o)" style="color: #606266;" >
|
|
|
- <span class="oneline" >
|
|
|
- 【{{o.isOpen?'公':'私'}}】 {{ (index+1)}} 、 {{o.title|filterTitle}}
|
|
|
- </span>
|
|
|
- </span>
|
|
|
- <span class="fr" style="color: #b4b4b4;">{{o.createAt }}</span>
|
|
|
- <span style="clear: both;"></span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <el-pagination
|
|
|
- :current-page="1"
|
|
|
- :page-size="10"
|
|
|
- :page-sizes="[10, 30, 50, 100]"
|
|
|
- :style="{float:'right',padding:'20px'}"
|
|
|
- :total="315"
|
|
|
- layout="total, sizes, prev, pager, next, jumper"
|
|
|
- ></el-pagination>
|
|
|
- </el-card>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
|
|
|
+ <el-dialog title="申请材料" center :visible.sync="dialogFormVisible" >
|
|
|
+ <h3> 【{{form.title}}】非公开,需要向对应科室申请</h3>
|
|
|
+ <div class="dialog-footer" slot="footer">
|
|
|
+ <el-button type="warning" size="medium" style="width: 100px; padding: 10px; margin: 20px;" @click="dialogFormVisible=false">取 消</el-button>
|
|
|
+ <el-button type="primary" size="medium" style="width: 100px; padding: 10px; margin: 20px;" @click="dialogFormVisible=false">确认申请</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
- <el-dialog title="申请材料" center :visible.sync="dialogFormVisible" >
|
|
|
- <h3> 【{{form.title}}】非公开,需要向对应科室申请</h3>
|
|
|
- <div class="dialog-footer" slot="footer">
|
|
|
- <el-button type="warning" size="medium" style="width: 100px; padding: 10px; margin: 20px;" @click="dialogFormVisible=false">取 消</el-button>
|
|
|
- <el-button type="primary" size="medium" style="width: 100px; padding: 10px; margin: 20px;" @click="dialogFormVisible=false">确认申请</el-button>
|
|
|
- </div>
|
|
|
- </el-dialog>
|
|
|
|
|
|
<IFooter />
|
|
|
|
|
@@ -188,19 +69,23 @@
|
|
|
|
|
|
<script>
|
|
|
import IHeader from "./components/IHeader";
|
|
|
+import IArtical from "./components/IArtical";
|
|
|
import IFooter from "./components/IFooter";
|
|
|
import glIcon from '@/icons/img/2016smyjj_gl_icon.jpg'
|
|
|
import data from '../data/data.js'
|
|
|
import {getHotArticalList,getArticalList} from '@/api/article'
|
|
|
+import { mapActions } from "vuex";
|
|
|
|
|
|
export default {
|
|
|
name: 'application',
|
|
|
components: {
|
|
|
IHeader,
|
|
|
+ IArtical,
|
|
|
IFooter
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ categorys:{'laws':'法律法规', 'mechanism':'机制类','result':'成果类', 'other':'其他类'},
|
|
|
dialogFormVisible: false,
|
|
|
glIcon: glIcon,
|
|
|
list: data.departs,
|
|
@@ -226,23 +111,8 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
- watch: {
|
|
|
- selectDepartId: function(newDepartId, oldDepartId) {
|
|
|
- this.getHotArticalList()
|
|
|
- }
|
|
|
- },
|
|
|
methods: {
|
|
|
- querySearch(queryString, cb) {
|
|
|
- var restaurants = this.restaurants;
|
|
|
- var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
|
|
|
- // 调用 callback 返回建议列表的数据
|
|
|
- cb(results);
|
|
|
- },
|
|
|
- createFilter(queryString) {
|
|
|
- return (restaurant) => {
|
|
|
- return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
|
|
|
- };
|
|
|
- },
|
|
|
+ ...mapActions("user", ["setArticals"]),
|
|
|
downloadFile(o){
|
|
|
this.form = o;
|
|
|
this.dialogFormVisible = true
|
|
@@ -254,18 +124,15 @@ export default {
|
|
|
}
|
|
|
getHotArticalList( param ).then( res=>{
|
|
|
this.restaurants = res.data
|
|
|
- console.log("getHotArticalList", res)
|
|
|
+ this.initSearch()
|
|
|
+
|
|
|
})
|
|
|
},
|
|
|
- querySearchAsync(queryString, cb) {
|
|
|
- var restaurants = this.restaurants;
|
|
|
- var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants;
|
|
|
- cb(results);
|
|
|
- },
|
|
|
- createStateFilter(queryString) {
|
|
|
- return (state) => {
|
|
|
- return (state.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
|
|
|
- };
|
|
|
+ initSearch(){
|
|
|
+ this.setArticals( this.restaurants.laws||[] )
|
|
|
+ this.setArticals( this.restaurants.mechanism||[] )
|
|
|
+ this.setArticals( this.restaurants.result||[] )
|
|
|
+ this.setArticals( this.restaurants.other||[] )
|
|
|
},
|
|
|
handleSelectFile(item) {
|
|
|
console.log("handleSelectFile", item);
|
|
@@ -275,18 +142,25 @@ export default {
|
|
|
this.selectDepartId = item;
|
|
|
// 切换文件列表
|
|
|
},
|
|
|
- handleSelectDepart(key, keyPath) {
|
|
|
- console.log("handleSelectDepart", key, keyPath);
|
|
|
- this.selectDepartId = key;
|
|
|
+ handleSelectDepart( departId ) {
|
|
|
+ this.selectDepartId = departId;
|
|
|
+ for( let i in data.departs){
|
|
|
+ if( data.departs[i].department_id == departId){
|
|
|
+ this.selectDepartName = data.departs[i].department;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ console.log("handleSelectDepart", this.selectDepartId,this.selectDepartName );
|
|
|
+ this.getHotArticalList();
|
|
|
// 切换文件列表
|
|
|
},
|
|
|
- handleOpenMore(index){
|
|
|
- console.log("handleOpenMore", index);
|
|
|
- this.isShowMore = true;
|
|
|
+ querySearch( item ){
|
|
|
+ console.log( "search item")
|
|
|
+
|
|
|
},
|
|
|
- handleCloseMore(){
|
|
|
- console.log("handleCloseMore");
|
|
|
- this.isShowMore = false;
|
|
|
+ handleOpenMore(type){
|
|
|
+ let query = {category:this.categorys[type], departmentId: this.selectDepartId}
|
|
|
+ let path = '/file-search'
|
|
|
+ this.$router.push( {path, query})
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -319,29 +193,5 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- .el-card__body .text{
|
|
|
- margin: 5px 0;
|
|
|
- }
|
|
|
- .el-button--medium{
|
|
|
- margin: 0;
|
|
|
- padding: 0;
|
|
|
- color: #303133
|
|
|
- }
|
|
|
- .el-card{
|
|
|
- color: #1890ff;
|
|
|
- }
|
|
|
- .el-card__header{
|
|
|
- padding: 15px 20px;
|
|
|
- }
|
|
|
- .el-menu-vertical-demo:not(.el-menu--collapse) {
|
|
|
- width: 200px;
|
|
|
- min-height: 400px;
|
|
|
- }
|
|
|
|
|
|
- .oneline {
|
|
|
- line-height: 30px;
|
|
|
- white-space: nowrap;
|
|
|
- overflow: hidden;
|
|
|
- text-overflow: ellipsis;
|
|
|
- }
|
|
|
</style>
|