y595705120 3 years ago
parent
commit
6f3f0d58b8

+ 1 - 0
package.json

@@ -35,6 +35,7 @@
     "nprogress": "0.2.0",
     "path-to-regexp": "2.4.0",
     "plupload": "^2.3.6",
+    "postcss-px2rem": "^0.3.0",
     "screenfull": "4.2.0",
     "script-loader": "0.7.2",
     "sortablejs": "1.8.4",

+ 1 - 1
public/index.html

@@ -3,7 +3,7 @@
   <head>
     <meta charset="utf-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <!-- <meta name="viewport" content="width=device-width, initial-scale=1.0"> -->
     <meta name="renderer" content="webkit">
 
     <!-- link rel="icon" href="<%= BASE_URL %>favicon.ico" -->

+ 34 - 0
src/api/article.js

@@ -129,3 +129,37 @@ export const replyArtical = (data) => {
         data
     })
 }
+
+export const waitConfirmArticalList = (data) => {
+    return service({
+        url: "/api/artical/waitConfirmArticalList",
+        method: 'post',
+        data
+    })
+}
+
+
+export const waitPublishArticalList = (data) => {
+    return service({
+        url: "/api/artical/waitPublishArticalList",
+        method: 'post',
+        data
+    })
+}
+
+export const confirmArtical = (data) => {
+    return service({
+        url: "/api/artical/confirmArtical",
+        method: 'post',
+        data
+    })
+}
+
+
+export const publishArtical = (data) => {
+    return service({
+        url: "/api/artical/publishArtical",
+        method: 'post',
+        data
+    })
+}

+ 6 - 2
src/assets/css/base.css

@@ -1,7 +1,11 @@
  body {
     /*background-color: #F7F7F7;*/
-    background: url("../images/sm_zjt_topbanner.png") center top no-repeat #F7F7F7;
+    background: url("../sanming/sm_zjt_topbanner.jpg") center top no-repeat #F7F7F7;
+    /* width: 100%; */
     font-size: 14px;
+/*    background-size: cover;
+    background-position: center;
+    position: relative; */
   }
   #app {
     font-family: "Avenir", Helvetica, Arial, sans-serif;
@@ -67,4 +71,4 @@
   .navfirst a{ background:#ffa200; display:block;}
 
   .sousuo{ height:37px; line-height:37px; background:#efefef; border-bottom:1px solid #e7e7e7; width:1000px; margin:0 auto;}
-  .sousuo h4{ margin-left:20px;}
+  .sousuo h4{ margin-left:20px;}

+ 13 - 2
src/assets/css/main.css

@@ -1,5 +1,6 @@
 .main{
   width: 1000px;
+  display: inline-block;
   background: #FFF;
 }
 
@@ -15,13 +16,15 @@
 }
 
 .main-left{
-  width: 200px;
+  position: relative;
+  width: 20%;
   margin-top: 1px;
   display:inline-block;
 }
 
 .main-right{
-  width: 800px;
+  position: relative;
+  width: 80%;
   display:inline-block;
   padding: 0 10px;
   vertical-align: top;
@@ -36,6 +39,7 @@
 .ml50{ margin-left: 50px;}
 
 .ml20{ margin-left: 20px;}
+.ml30{ margin-left: 30px;}
 .ml10{ margin-left: 10px;}/
 .ml2{ margin-left: 2px;}
 
@@ -43,3 +47,10 @@
 .mt20{ margin-top: 20px;}
 .mt15{ margin-top: 15px;}
 .mt10{ margin-top: 10px;}
+
+
+@media screen and (max-width: 900px){
+  .main{
+    width: 100%;
+  }
+}

BIN
src/assets/images/sm_zjt_topbanner.jpg


BIN
src/assets/sanming/sm_zjt_topbanner.jpg


+ 3 - 6
src/main.js

@@ -3,10 +3,10 @@ import Vue from 'vue'
 import App from './App'
 import store  from '@/store/index'
 import router from './router'
-import Cookies from 'js-cookie'
+
 
 // import enLang from 'element-ui/lib/locale/lang/cn'// 如果使用中文语言包请默认支持,无需额外引入,请删除该依赖
-import Element from 'element-ui'
+import ElementUI from 'element-ui'
 import './styles/element-variables.scss'
 import './styles/index.scss' // global css
 import 'normalize.css/normalize.css' // a modern alternative to CSS resets
@@ -15,16 +15,13 @@ import './icons' // icon
 import './permission' // permission control
 import './utils/error-log' // error log
 import Bus from '@/utils/bus.js'
-import ElementUI from 'element-ui';
-import 'lib-flexible/flexible'
+// import 'lib-flexible/flexible'
 Vue.use(ElementUI);
 Vue.component(ElementUI.Message)
 
 import * as filters from './filters' // global filters
 
 
-
-Vue.use(Element)
 // Vue.use(Element, {
 //   size: Cookies.get('size') || 'medium', // set element-ui default size
 //   locale: enLang // 如果使用中文,无需设置,请删除

+ 6 - 0
src/pages/data/data.js

@@ -20,6 +20,12 @@ export default {
     2: '负责人',
     3: '分管领导'
   },
+  statusMap: {
+    0: '经办人提交',
+    1: '负责人审核中',
+    2: '分管确认中',
+    3: '发布中'
+  },
   getDepart: (id, departs)=> {
     for (let i in departs) {
       if (departs[i].departmentId == id) {

+ 1 - 0
src/pages/other/apply-list.vue

@@ -142,6 +142,7 @@ export default {
       page:1,
       pageSize: 10,
       searchInfo:{},
+      dropDownValue:'',
       departmentId: 0,
       restaurants: [],
       state3: '',

+ 4 - 2
src/pages/other/components/IHeader.vue

@@ -41,7 +41,8 @@
       </ul>
     </div>
     <div class="sousuo">
-      <h4 class="fl">今天是:<span>2021年05月13日</span>&nbsp;&nbsp;&nbsp;<span>星期四</span></h4>
+      <h4 class="fl">今天是:<span>{{curDate.getFullYear()}}年{{curDate.getMonth()+1}}月{{curDate.getDate()}}日</span>
+      &nbsp;&nbsp;&nbsp;<span>星期{{['日','一','二','三','四','五','六'][curDate.getDay()]}}</span></h4>
       <div class="fl"><span style="margin-left: 10px;">&nbsp;&nbsp;</span></div>
       <div class="ss">
         <el-autocomplete
@@ -68,7 +69,8 @@ export default {
     return {
       SearchList: [],
       keyword: '',
-      timeout:  null
+      timeout:  null,
+      curDate: new Date()
     }
   },
   props:{

+ 17 - 10
src/pages/other/file-add.vue

@@ -9,11 +9,10 @@
             @change="selectDepartment($event)"
             collapse-tags placeholder="请选择"  clearable>
              <el-option
-             v-for="item in userDepartments"
-             v-show="item.isLeader>0"
+             v-for="item in showDepartments"
              :value="item"
              :key="item.departmentId">
-             {{item.department}} - {{item.isLeader|leader}}
+             {{item.department}}
              </el-option>
            </el-select>
          </el-form-item>
@@ -25,6 +24,10 @@
              </el-select>
          </el-form-item>
 
+         <el-form-item label="是否公开" class="mt20" prop="category">
+             <el-switch :active-value="1" :inactive-value="0" v-model="info.isOpen"></el-switch>
+         </el-form-item>
+
          <el-form-item label="文件标题" class="mt20" prop="title">
              <el-input class="ipt-select" v-model="info.title"></el-input>
          </el-form-item>
@@ -64,8 +67,7 @@
         loading:false,
         isLike: 0,
         dropDownValue:'',
-        departments:data.departs,
-        showDepartments:data.departs,
+        showDepartments:[],
         categorys:data.categorys,
         info: {
           filename:'',
@@ -73,12 +75,14 @@
           category:'',
           department:'',
           title:'',
+          isOpen: 1,
           brief:''
         },
         rules: {
           title:[{required:true, message:'请输入标题'}],
           brief:[{required:true, message:'请输入简介'}],
           category:[{required:true, message:'请输入选择分类'}],
+          isOpen:[{required:true, message:'请'}],
           department:[{required:true, message:'请选择部门'}],
           filename:[{required:true, message:'请上传文件'}]
         }
@@ -92,11 +96,14 @@
         return data.owners[ val ]
       }
     },
-    watch:{
-      dropDownValue(val){
-        this.showDepartments = this.departments.filter( item=>{
-          return item.department.indexOf( val  )>-1
-        })
+    beforeMount(){
+      this.showDepartments = this.userDepartments.filter( item=>{
+        return item.isLeader == 1
+      })
+      if( this.showDepartments.length >0){
+        let department = this.showDepartments[0];
+        this.info.departmentId = department.departmentId
+        this.info.department = department.department;
       }
     },
     methods:{

+ 24 - 35
src/pages/other/file-confirm.vue

@@ -3,25 +3,30 @@
     <div class="main-table">
       <el-card class="box-card">
         <div slot="header" class="clearfix">
-          <span>我的申请</span>
+          <span> 等待审核的记录</span>
         </div>
 
         <el-table :data="restaurants" border stripe v-loading="loading">
-          <el-table-column label="序号" min-width="60" prop="id"> </el-table-column>
+          <el-table-column label="序号" width="80" prop="articalId" align="center"> </el-table-column>
 
           <el-table-column label="文件名称" min-width="200" prop="title"> </el-table-column>
 
-          <el-table-column label="解压密码" min-width="60" prop="secret">
-            <template v-slot="{ row }">
-              <span> {{ row.isSend ? row.secret : '还未生成' }} </span>
-            </template>
+          <el-table-column label="提交说明"  prop="content" min-width="150">
+              <template slot-scope="{ row }">
+                <span v-if="row.isBack" style="color: red;">
+                  分管领导【{{row.nickname}}】于 {{row.createAt|toDatetime}} 处理:
+                  {{row.content||''}}
+                </span>
+                <span v-else style="color: royalblue;">
+                  经办人【{{row.nickname}}】于 {{row.createAt|toDatetime}} 提交:
+                  {{row.content||''}}
+                </span>
+              </template>
           </el-table-column>
 
-          <el-table-column align="center" min-width="80px" label="操作" class-name="small-padding fixed-width">
+          <el-table-column align="center"  label="操作" width="80" class-name="small-padding fixed-width">
             <template slot-scope="{ row }">
-              <el-button v-if="row.isSend" type="success" size="small" icon="el-icon-circle-check" @click="download(row)">下载文件</el-button>
-
-              <el-button v-else type="text" size="small">等待审核</el-button>
+              <el-button type="text" size="small" @click="gotoFile(row)">审核</el-button>
             </template>
           </el-table-column>
         </el-table>
@@ -45,7 +50,7 @@ import IHeader from './components/IHeader'
 import IFooter from './components/IFooter'
 import glIcon from '@/icons/img/2016smyjj_gl_icon.jpg'
 import data from '../data/data.js'
-import { downloadArtical, getReplyArticalList } from '@/api/article'
+import { waitConfirmArticalList } from '@/api/article'
 
 import { toDatetime } from '@/utils/date.js'
 
@@ -75,7 +80,7 @@ export default {
     }
   },
   mounted() {
-    this.getReplyArticalList()
+    this.getTableData()
   },
   filters: {
     filterTitle(val) {
@@ -90,36 +95,20 @@ export default {
   methods: {
     handleSizeChange(size) {
       this.pageSize = size
-      this.getReplyArticalList()
+      this.getTableData()
     },
     handleCurrentChange(page) {
       this.page = page
-      this.getReplyArticalList()
-    },
-    applyDoc(row) {
-      this.dialogFormVisible = true
-      this.form = row
+      this.getTableData()
     },
-    download(row) {
-      let param = { articalId: row.articalId, isLeader: 0, id: row.id }
-      this.loading = true
-      this.$message.successMsg('文件生成中', 1)
-      downloadArtical(param)
-        .then((res) => {
-          this.loading = false
-          if (res.code == 200) {
-            window.open(res.data)
-            return
-          }
-        })
-        .catch(() => {
-          this.loading = false
-        })
+    gotoFile(item){
+      let query= {articalId: item.articalId }
+      this.$router.push( {path: '/file-info', query})
     },
-    getReplyArticalList() {
+    getTableData() {
       let { page, pageSize } = this
       let param = { pageSize, page }
-      getReplyArticalList(param).then((res) => {
+      waitConfirmArticalList(param).then((res) => {
         this.restaurants = res.data.list
         this.total = res.data.total
         console.log('getHotArticalList', res)

+ 257 - 119
src/pages/other/file-info.vue

@@ -13,70 +13,202 @@
         </div>
 
 
-       <el-form :inline="true" class="p20" label-width="80px" label-position="left">
+        <el-form :inline="true" class="p20" label-width="80px" label-position="left">
           <el-row>
-            <el-col :span="12">
+            <el-col :span="8">
               <el-form-item label="所属部门">
-                  <span class="pl10 nowrap span-tit">{{info.department }}</span>
+                <span class="pl10 nowrap span-tit">{{info.department }}</span>
               </el-form-item>
             </el-col>
 
-            <el-col :span="12">
+            <el-col :span="8">
               <el-form-item label="文件分类">
-                  <span class="pl10 nowrap span-tit">{{categorys[info.category] }}</span>
+                <span class="pl10 nowrap span-tit">{{categorys[info.category] }}</span>
               </el-form-item>
             </el-col>
 
-            <el-col :span="12">
-              <el-form-item label="发布人">
-                  <span class="pl10 nowrap span-tit">{{info.username||'超管' }}</span>
+            <el-col :span="8">
+              <el-form-item label="是否公开">
+                <span class="pl10 nowrap span-tit">{{info.isOpen?'是':'否' }}</span>
               </el-form-item>
             </el-col>
 
-            <el-col :span="12">
-              <el-form-item label="发布时间">
-                  <span class="pl10 nowrap span-tit">{{info.publishTime|toDatetime }}</span>
+
+            <el-col :span="8">
+              <el-form-item label="文件状态">
+                <span class="pl10 nowrap span-tit">{{statusMap[info.status] }}</span>
+                <span class="ml20">
+                  <el-button  type="text"  v-if="isLeader==2 && info.status==1"
+                    @click="dialogConfirm=true">审核</el-button>
+                  <el-button  type="text"  v-if="isLeader==3 && info.status==2"
+                    @click="dialogPublish=true">发布</el-button>
+                </span>
+
               </el-form-item>
             </el-col>
 
-            <el-col :span="12">
-              <el-form-item label="是否公开">
-                  <span class="pl10 nowrap span-tit">{{info.isOpen?'是':'否' }}</span>
+            <el-col :span="8">
+              <el-form-item label="经办人">
+                <span class="pl10 nowrap span-tit">{{info.username||'超管' }}</span>
               </el-form-item>
             </el-col>
 
-
-            <el-col :span="12">
-              <el-form-item label="我的权限">
-                  <span class="pl10 nowrap span-tit">{{owners[isLeader]}}</span>
+            <el-col :span="8">
+              <el-form-item label="首次提交">
+                <span class="pl10 nowrap span-tit">{{info.createAt|toDatetime }}</span>
               </el-form-item>
             </el-col>
-
           </el-row>
 
-       </el-form>
-
-       <div class="mt10">
-         <h2> 文章简介 </h2>
-         <div class="content mt10 p20">
-           <div>{{info.brief}} </div>
-         </div>
-       </div>
+        </el-form>
 
+<!--        <div>
+          <h2> 文章简介 </h2>
+          <div class="content p20">
+            <div>{{info.brief}} </div>
+          </div>
+        </div> -->
         <div class="p20">
           <el-button v-if="!isLike" icon="el-icon-star-off" @click="likeArtical"> 收藏</el-button>
           <el-button v-else icon="el-icon-star-on" type="info" @click="unLikeArtical">取消</el-button>
 
+          <el-button icon="el-icon-download" v-if="isLeader>0 || info.isOpen" @click="download"> 下载</el-button>
+          <el-button icon="el-icon-download" v-else @click="applyDownload">申请下载</el-button>
+
+        </div>
+
+
+        <div>
+          <el-table :data="logs" border stripe v-loading="loading">
+            <el-table-column label="时间" prop="createAt" align="center">
+              <template slot-scope="{ row }">
+                <span >{{row.createAt|toDatetime}}</span>
+              </template>
+            </el-table-column>
 
+            <el-table-column label="操作人" prop="nickname">
+            </el-table-column>
 
-          <el-button  icon="el-icon-download" v-if="isLeader>0 || info.isOpen" @click="download"> 下载</el-button>
-          <el-button  icon="el-icon-download" v-else @click="applyDownload">申请下载</el-button>
+            <el-table-column label="备注"  prop="content" align="center">
+
+            </el-table-column>
+
+
+            <el-table-column label="状态"  prop="status" align="center">
+              <template slot-scope="{ row }">
+                {{statusMap[row.oldStatus] }} -> {{statusMap[row.newStatus] }}
+              </template>
+            </el-table-column>
+
+            <el-table-column label="操作"  prop="status" align="center" width="80">
+              <template slot-scope="{ row, $index }">
+                <div v-if="$index==0">
+                  <el-button  type="text" size="small" v-if="info.status==3" >已发布</el-button>
+                  <el-button  type="text" size="small" v-else-if="isLeader==2 && info.status==1" @click="dialogConfirm=true">审核</el-button>
+                  <el-button  type="text" size="small" v-else-if="isLeader==3 && info.status==2" @click="dialogPublish=true" >发布</el-button>
+                  <el-button  type="text" size="small" v-else >无权限</el-button>
+                </div>
+                <div v-else>
+                  <el-button  type="text" size="small" >已经处理</el-button>
+                </div>
+
+              </template>
+            </el-table-column>
+
+          </el-table>
         </div>
 
 
+
+
+
       </div>
     </div>
 
+    <el-dialog title="科长审核文件" center :visible.sync="dialogConfirm"  >
+      <el-form class="p20" label-width="100px"  label-position="left"
+        ref="elForm" :model="info" :rules="rules" >
+
+        <el-form-item label="文件标题" class="mt20" prop="category">
+           <el-input  v-model="info.title" type="textarea" autosize></el-input>
+        </el-form-item>
+
+        <el-form-item label="所属分类" class="mt20" prop="category">
+            <el-select v-model="info.category" collapse-tags placeholder="请选择"  clearable>
+              <el-option v-for="(item,index) in categorys"
+              :value="index" :key="index" :label="item"></el-option>
+            </el-select>
+        </el-form-item>
+
+        <el-form-item label="是否公开" class="mt20" prop="category">
+            <el-switch :active-value="1" :inactive-value="0" v-model="info.isOpen"></el-switch>
+        </el-form-item>
+
+        <el-form-item label="是否通过" class="mt20" prop="category">
+           <el-switch :active-value="1" :inactive-value="0" v-model="form.action"></el-switch>
+        </el-form-item>
+
+        <el-form-item label="审核意见" class="mt20" prop="category">
+           <el-input  v-model="form.content" type="textarea" autosize></el-input>
+        </el-form-item>
+
+
+
+        <el-form-item >
+          <el-button type="warning" @click="dialogConfirm=false" class="btn-md">
+            审核取消
+          </el-button>
+          <el-button type="primary" @click="onConfirm" class="btn-md">
+            确认审核
+          </el-button>
+        </el-form-item>
+
+      </el-form>
+
+    </el-dialog>
+
+
+    <el-dialog title="分管审核文件" center :visible.sync="dialogPublish"  >
+      <el-form class="p20" label-width="100px"  label-position="left"
+        ref="elForm" :model="info" :rules="rules" >
+
+        <el-form-item label="文件标题" class="mt20" prop="category">
+           <el-input  v-model="info.title" type="textarea" autosize></el-input>
+        </el-form-item>
+
+        <el-form-item label="所属分类" class="mt20" prop="category">
+            <el-select v-model="info.category" collapse-tags placeholder="请选择"  clearable>
+              <el-option v-for="(item,index) in categorys"
+              :value="index" :key="index" :label="item"></el-option>
+            </el-select>
+        </el-form-item>
+
+        <el-form-item label="是否公开" class="mt20" prop="category">
+            <el-switch :active-value="1" :inactive-value="0" v-model="info.isOpen"></el-switch>
+        </el-form-item>
+
+        <el-form-item label="是否通过" class="mt20" prop="action">
+           <el-switch :active-value="1" :inactive-value="0" v-model="form.action"></el-switch>
+        </el-form-item>
+
+        <el-form-item label="审核意见" class="mt20" prop="content">
+           <el-input  v-model="form.content" type="textarea" autosize></el-input>
+        </el-form-item>
+
+
+
+        <el-form-item >
+          <el-button type="warning" @click="dialogPublish=false" class="btn-md">
+            审核取消
+          </el-button>
+          <el-button type="primary" @click="onPublish" class="btn-md">
+            确认审核
+          </el-button>
+        </el-form-item>
+
+      </el-form>
+
+    </el-dialog>
 
     <div style="height: 60px;"></div>
   </div>
@@ -85,13 +217,29 @@
 <script>
   import IHeader from "./components/IHeader";
   import IFooter from "./components/IFooter";
-  import {toDatetime } from '@/utils/date.js'
+  import {
+    toDatetime
+  } from '@/utils/date.js'
   import data from '../data/data.js'
-  import { getArticalInfo, likeArtical, unLikeArtical} from '@/api/article.js'
-  import {downloadFile, downloadArtical, applyArtical} from '@/api/article.js'
-
-  import {download} from '@/utils/download.js'
-  import { mapGetters } from "vuex";
+  import {
+    getArticalInfo,
+    likeArtical,
+    unLikeArtical,
+    confirmArtical,
+    publishArtical
+  } from '@/api/article.js'
+  import {
+    downloadFile,
+    downloadArtical,
+    applyArtical
+  } from '@/api/article.js'
+
+  import {
+    download
+  } from '@/utils/download.js'
+  import {
+    mapGetters
+  } from "vuex";
 
   export default {
     name: 'application',
@@ -104,19 +252,26 @@
     },
     data() {
       return {
-        loading:false,
+        loading: false,
         articalId: 0,
-        isLeader:0,
+        isLeader: 0,
         recommend: [],
         apply_list: [],
+        logs:[],
         isLike: 0,
+        statusMap: data.statusMap,
         owners: data.owners,
-        categorys:data.categorys,
-        info: {}
+        categorys: data.categorys,
+        dialogConfirm: false,
+        dialogPublish: false,
+        info: {},
+        form:{ action:1,content:'' },
+        rules:{}
+
       }
     },
     computed: {
-    	...mapGetters("user", ["userDepartments"])
+      ...mapGetters("user", ["userDepartments"])
     },
     created() {
       this.articalId = +this.$route.query.articalId || 0;
@@ -125,50 +280,83 @@
       }
     },
     methods: {
-      download(){
+      download() {
         let articalId = this.articalId
-        if( this.isLeader >0 ){
-          download( `/api/artical/downloadFile/${articalId}`)
-        }else{
-          this.$message.successMsg("无权限下载", 1)
+        if (this.isLeader > 0) {
+          download(`/api/artical/downloadFile/${articalId}`)
+        } else {
+          this.$message.errorMsg("无权限下载", 1)
         }
       },
-      applyDownload(){
-        let param ={articalId: this.articalId}
-        this.loading = true;
-        applyArtical( param ).then( res=>{
+      onConfirm(){
+        let {departmentId,category, articalId } = this.info;
+        let param = {departmentId,category, articalId }
+        param.action = +this.form.action
+        param.content = this.form.content
+        confirmArtical( param ).then( res=>{
           if( res.code == 200){
+              this.$message.successMsg("确认成功", 1)
+              this.dialogConfirm = false
+              this.info.status = 2
+          }
+        })
+
+      },
+      onPublish(){
+        let {departmentId,category, articalId } = this.info;
+        let param = {departmentId,category, articalId }
+        param.action = +this.form.action
+        param.content = this.form.content
+        publishArtical( param ).then( res=>{
+          if( res.code == 200){
+            this.$message.successMsg("确认成功", 1)
+            this.dialogPublish = false
+            this.info.status = 3
+          }
+        })
+      },
+      applyDownload() {
+        let param = {
+          articalId: this.articalId
+        }
+        this.loading = true;
+        applyArtical(param).then(res => {
+          if (res.code == 200) {
             this.$message.successMsg("申请成功", 1)
           }
           this.loading = false;
-        }).catch( ()=>{
+        }).catch(() => {
           this.loading = false
         })
       },
-      likeArtical(){
-        let param ={articalId: this.articalId}
+      likeArtical() {
+        let param = {
+          articalId: this.articalId
+        }
         this.loading = true;
-        likeArtical( param ).then( res=>{
-          if( res.code == 200){
+        likeArtical(param).then(res => {
+          if (res.code == 200) {
             this.$message.successMsg("收藏成功", 1)
             this.isLike = 1
           }
           this.loading = false;
-        }).catch( ()=>{
+        }).catch(() => {
           this.loading = false
         })
       },
-      unLikeArtical(){
-        let param ={articalId: this.articalId}
+      unLikeArtical() {
+        let param = {
+          articalId: this.articalId
+        }
         this.loading = true;
-        unLikeArtical( param ).then( res=>{
+        unLikeArtical(param).then(res => {
           console.log("res", res)
-          if( res.code == 200){
+          if (res.code == 200) {
             this.$message.successMsg("取消成功", 1)
             this.isLike = 0
           }
           this.loading = false;
-        }).catch( ()=>{
+        }).catch(() => {
           this.loading = false
         })
       },
@@ -179,11 +367,12 @@
         getArticalInfo(param).then(res => {
           if (res.code == 200) {
             this.info = res.data.info;
-            for( let i in this.userDepartments){
-              if( this.userDepartments[i].departmentId == this.info.departmentId){
+            for (let i in this.userDepartments) {
+              if (this.userDepartments[i].departmentId == this.info.departmentId) {
                 this.isLeader = this.userDepartments[i].isLeader;
               }
             }
+            this.logs = res.data.logs||[];
             this.recommend = res.data.recommend || [];
             this.apply_list = res.data.apply_list || [];
             this.isLike = res.data.isLike || 0;
@@ -195,66 +384,15 @@
 </script>
 
 <style lang="scss" scoped>
-  .xl_main {
-    width: 960px;
-    padding: 0px 20px;
-  }
-
-
-
-  .mar-B20 {
-    margin-bottom: 20px;
-  }
-
-  .mar-T15 {
-    margin-top: 15px;
-  }
-
-  .n-tit {
-    text-align: center;
-    border-bottom: 1px dashed #ccc;
-    padding-bottom: 10px;
-  }
+  @import  "../../styles/main.css";
 
-  .n-tit h3 {
-    font-size: 22px;
-    font-weight: bold;
-    padding-top: 25px;
-    text-align: center;
-    line-height: 36px;
+  .nopad{
+      border-top: 1px dashed #ccc;
+      padding: 0px !important;
+      // border: none;
+      height: 100px;
   }
 
-  .box1 {
-    margin-top: 20px;
-    padding: 0px 36px 18px 36px;
-    font-size: 16px;
-    color: #000000;
-  }
 
-  p {
-    display: block;
-    margin-block-start: 1em;
-    margin-block-end: 1em;
-    margin-inline-start: 0px;
-    margin-inline-end: 0px;
-  }
 
-  h5 {
-    display: block;
-    font-size: 0.83em;
-    margin-block-start: 1.67em;
-    margin-block-end: 1.67em;
-    margin-inline-start: 0px;
-    margin-inline-end: 0px;
-    font-weight: bold;
-  }
-
-  .xl_btn {
-    display: inline-block;
-    width: 60px;
-    height: 29px;
-    line-height: 29px;
-    text-align: center;
-    margin: 0 10px;
-  }
 </style>

+ 24 - 34
src/pages/other/file-publish.vue

@@ -3,25 +3,31 @@
     <div class="main-table">
       <el-card class="box-card">
         <div slot="header" class="clearfix">
-          <span>我的申请</span>
+          <span>申请发布记录</span>
         </div>
 
         <el-table :data="restaurants" border stripe v-loading="loading">
-          <el-table-column label="序号" min-width="60" prop="id"> </el-table-column>
+          <el-table-column label="序号" width="80" prop="articalId" align="center"> </el-table-column>
 
           <el-table-column label="文件名称" min-width="200" prop="title"> </el-table-column>
 
-          <el-table-column label="解压密码" min-width="60" prop="secret">
-            <template v-slot="{ row }">
-              <span> {{ row.isSend ? row.secret : '还未生成' }} </span>
+          <el-table-column label="申请人"  prop="nickname" width="90" align="center"></el-table-column>
+
+          <el-table-column label="申请备注"  prop="content" min-width="150" align="center">
+            <template slot-scope="{ row }">
+              <span >{{row.content||'确认无误'}}</span>
             </template>
           </el-table-column>
 
-          <el-table-column align="center" min-width="80px" label="操作" class-name="small-padding fixed-width">
-            <template slot-scope="{ row }">
-              <el-button v-if="row.isSend" type="success" size="small" icon="el-icon-circle-check" @click="download(row)">下载文件</el-button>
+          <el-table-column label="申请时间"  prop="createAt" width="150">
+              <template slot-scope="{ row }">
+                <span >{{row.createAt|toDatetime}}</span>
+              </template>
+          </el-table-column>
 
-              <el-button v-else type="text" size="small">等待审核</el-button>
+          <el-table-column align="center"  label="操作" width="80" class-name="small-padding fixed-width">
+            <template slot-scope="{ row }">
+              <el-button type="text" size="small" @click="gotoFile(row)">审核</el-button>
             </template>
           </el-table-column>
         </el-table>
@@ -45,7 +51,7 @@ import IHeader from './components/IHeader'
 import IFooter from './components/IFooter'
 import glIcon from '@/icons/img/2016smyjj_gl_icon.jpg'
 import data from '../data/data.js'
-import { downloadArtical, getReplyArticalList } from '@/api/article'
+import { downloadArtical, waitPublishArticalList } from '@/api/article'
 
 import { toDatetime } from '@/utils/date.js'
 
@@ -75,7 +81,7 @@ export default {
     }
   },
   mounted() {
-    this.getReplyArticalList()
+    this.getTableData()
   },
   filters: {
     filterTitle(val) {
@@ -90,36 +96,20 @@ export default {
   methods: {
     handleSizeChange(size) {
       this.pageSize = size
-      this.getReplyArticalList()
+      this.getTableData()
     },
     handleCurrentChange(page) {
       this.page = page
-      this.getReplyArticalList()
-    },
-    applyDoc(row) {
-      this.dialogFormVisible = true
-      this.form = row
+      this.getTableData()
     },
-    download(row) {
-      let param = { articalId: row.articalId, isLeader: 0, id: row.id }
-      this.loading = true
-      this.$message.successMsg('文件生成中', 1)
-      downloadArtical(param)
-        .then((res) => {
-          this.loading = false
-          if (res.code == 200) {
-            window.open(res.data)
-            return
-          }
-        })
-        .catch(() => {
-          this.loading = false
-        })
+    gotoFile(item){
+      let query= {articalId: item.articalId }
+      this.$router.push( {path: '/file-info', query})
     },
-    getReplyArticalList() {
+    getTableData() {
       let { page, pageSize } = this
       let param = { pageSize, page }
-      getReplyArticalList(param).then((res) => {
+      waitPublishArticalList(param).then((res) => {
         this.restaurants = res.data.list
         this.total = res.data.total
         console.log('getHotArticalList', res)

+ 0 - 4
src/pages/other/my-file.vue

@@ -13,10 +13,6 @@
             </el-menu-item>
           </template>
 
-          <el-menu-item  @click="doLogout()">
-            <span>退出登入</span>
-          </el-menu-item>
-
         </el-menu>
 
       </div>

+ 1 - 1
src/router/index.js

@@ -112,7 +112,7 @@ export const constantRoutes = [
           hidden: true
         },
         {
-          path: '/file-publis',
+          path: '/file-publish',
           component: () => import('@/pages/other/file-publish'),
           hidden: true
         },

+ 59 - 0
src/styles/main.css

@@ -0,0 +1,59 @@
+ .xl_main {
+   width: 960px;
+   padding: 0px 20px;
+ }
+ .mar-B20 {
+    margin-bottom: 20px;
+  }
+
+  .mar-T15 {
+    margin-top: 15px;
+  }
+
+  .n-tit {
+    text-align: center;
+    border-bottom: 1px dashed #ccc;
+    padding-bottom: 10px;
+  }
+
+  .n-tit h3 {
+    font-size: 22px;
+    font-weight: bold;
+    padding-top: 25px;
+    text-align: center;
+    line-height: 36px;
+  }
+
+  .box1 {
+    margin-top: 20px;
+    padding: 0px 36px 18px 36px;
+    font-size: 16px;
+    color: #000000;
+  }
+
+  p {
+    display: block;
+    margin-block-start: 1em;
+    margin-block-end: 1em;
+    margin-inline-start: 0px;
+    margin-inline-end: 0px;
+  }
+
+  h5 {
+    display: block;
+    font-size: 0.83em;
+    margin-block-start: 1.67em;
+    margin-block-end: 1.67em;
+    margin-inline-start: 0px;
+    margin-inline-end: 0px;
+    font-weight: bold;
+  }
+
+  .xl_btn {
+    display: inline-block;
+    width: 60px;
+    height: 29px;
+    line-height: 29px;
+    text-align: center;
+    margin: 0 10px;
+  }

+ 1 - 0
start.cmd

@@ -0,0 +1 @@
+npm run dev

+ 13 - 13
vue.config.js

@@ -2,7 +2,7 @@
 const path = require('path')
 const defaultSettings = require('./src/settings.js')
 // const HOST = "http://smoa.ndjsxh.cn:8888"
-const HOST = "http://localhost:8889"
+const HOST = "http://localhost:8000"
 function resolve(dir) {
   return path.join(__dirname, dir)
 }
@@ -138,17 +138,17 @@ module.exports = {
           config.optimization.runtimeChunk('single')
         }
       )
-  },
-  css: {
-    loaderOptions: {
-        css: {},
-        postcss: {
-            plugins: [
-                require('postcss-px2rem')({
-                    remUnit: 37.5
-                })
-            ]
-        }
-    }
   }
+  // css: {
+  //   loaderOptions: {
+  //       css: {},
+  //       postcss: {
+  //           plugins: [
+  //               require('postcss-px2rem')({
+  //                   remUnit: 37.5
+  //               })
+  //           ]
+  //       }
+  //   }
+  // }
 }