y595705120 3 年之前
父節點
當前提交
2b5dc5c35a
共有 6 個文件被更改,包括 119 次插入47 次删除
  1. 16 0
      src/api/article.js
  2. 6 0
      src/assets/css/main.css
  3. 9 2
      src/pages/data/data.js
  4. 30 23
      src/pages/other/file-add.vue
  5. 18 10
      src/pages/other/file-info.vue
  6. 40 12
      src/pages/other/my-file.vue

+ 16 - 0
src/api/article.js

@@ -80,6 +80,22 @@ export const editArtical = (data) => {
     })
 }
 
+export const editArticalTitle = (data) => {
+    return service({
+        url: "/api/artical/editArticalTitle",
+        method: 'post',
+        data
+    })
+}
+
+export const getManageArticalList = (data) => {
+    return service({
+        url: "/api/artical/getManageArticalList",
+        method: 'post',
+        data
+    })
+}
+
 
 export const getArticalInfo = (data) => {
     return service({

+ 6 - 0
src/assets/css/main.css

@@ -48,6 +48,8 @@
 .mt15{ margin-top: 15px;}
 .mt10{ margin-top: 10px;}
 
+.p10{ padding: 10px;}
+
 .tc{ text-align: center;}
 
 .text-blue{
@@ -64,3 +66,7 @@
   margin-top:-60px;
   margin-left: -20px;
 }
+
+.brief{
+  margin: 10px auto;
+}

+ 9 - 2
src/pages/data/data.js

@@ -3,6 +3,7 @@ import {
   getArticalLikeList,
   getViewArticalList,
   getDownloadArticalList,
+  getManageArticalList,
   getEditArticalList
 } from '@/api/article'
 
@@ -66,10 +67,16 @@ export default {
   myfiles: [
     {
       id: "5",
-      value: '我负责的文件',
-      label: '我负责的文件',
+      value: '我经办文件',
+      label: '我经办文件',
       listApi: getEditArticalList
     },
+    {
+      id: "6",
+      value: '我负责文件',
+      label: '我负责文件',
+      listApi: getManageArticalList
+    },
     {
     id: "1",
     value: '我发布的文件',

+ 30 - 23
src/pages/other/file-add.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="main">
     <div class="main-body">
-      <el-form class="p20" label-width="100px"  label-position="left"
+      <el-form class="p20" label-width="90px"  label-position="center"
       ref="elForm" :model="info" :rules="rules" >
         <el-row>
-          <el-col :span="8" >
+          <el-col :span="6" >
             <el-form-item label="所属部门" class="mt20" prop="department" >
              <el-select v-model="info.department"
               @change="selectDepartment($event)"
@@ -20,8 +20,8 @@
             </el-form-item>
           </el-col>
 
-          <el-col :span="8">
-             <el-form-item label="所属分类" class="mt20" prop="category">
+          <el-col :span="6">
+             <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>
@@ -29,7 +29,14 @@
              </el-form-item>
           </el-col>
 
-          <el-col :span="8">
+          <el-col :span="5">
+             <el-form-item label="选择年度" class="mt20" prop="bucket">
+                 <el-date-picker  v-model="info.bucket" type="year"
+                    format="yyyy" value-format="yyyy"  clearable></el-date-picker>
+             </el-form-item>
+          </el-col>
+
+          <el-col :span="4">
             <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>
@@ -107,6 +114,7 @@
         rules: {
           title:[{required:true, message:'请输入标题'}],
           brief:[{required:true, message:'请输入简介'}],
+          bucket:[{required:true, message:'请输入年度'}],
           category:[{required:true, message:'请输入选择分类'}],
           isOpen:[{required:true, message:'请'}],
           department:[{required:true, message:'请选择部门'}],
@@ -122,23 +130,25 @@
         return data.owners[ val ]
       }
     },
-    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;
-      }
-    },
     created(){
       this.articalId = +this.$route.query.articalId;
       if( this.articalId){
         this.loadArtical(  this.articalId )
       }
+      this.initShowDepartment()
+
     },
     methods:{
+      initShowDepartment(){
+        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;
+        }
+      },
       useIframe(){
         let {filename} = this.info;
         this.info.brief = `<p><iframe src="${data.preview}${filename}" style="width:100%;height:800px"></iframe></p>`;
@@ -148,15 +158,12 @@
            if (res.code == 200) {
               this.info = res.data.info;
               this.isLeader=res.data.isLeader
-              // for (let i in this.userDepartments) {
-              //  if (this.userDepartments[i].departmentId == this.info.departmentId) {
-              //    this.isLeader = this.userDepartments[i].isLeader;
-              //  }
-              // }
-              if( this.isLeader < 2){
+              if( this.isLeader < 1){
                 let query= {articalId: articalId }
                 this.$router.push( {path: '/file-info', query})
+                return;
               }
+              this.initShowDepartment()
            }
          })
       },
@@ -195,7 +202,7 @@
       onSubmit(){
         this.$refs["elForm"].validate((valid) => {
           if (!valid) return;
-          let {articalId, category,brief, title, isOpen,filename } = this.info;
+          let {articalId, category,brief, title, isOpen,filename,bucket } = this.info;
 
           if( !articalId){
             addArtical( this.info ).then(res=>{
@@ -204,7 +211,7 @@
               }
             })
           }else{
-            editArtical( {articalId, category, brief, title, isOpen,filename }).then( res=>{
+            editArtical( {articalId, category, brief, title, isOpen,filename,bucket }).then( res=>{
               if( res.code == 200){
                 this.$router.go(-1);
               }

+ 18 - 10
src/pages/other/file-info.vue

@@ -16,19 +16,27 @@
 
 
         <div>
-          <div class="fr">
+          <el-row>
+            <div class="fr mt10">
+              <el-button  type="text"  size="small" v-if="isLeader==2 && info.status==1 &&info.isOpen<2"
+                      @click="dialogConfirm=true">审核</el-button>
+              <el-button  type="text" size="small"  v-if="isLeader==3 && info.status==2 &&info.isOpen<2"
+                      @click="dialogPublish=true">发布</el-button>
+
+
+              <el-button v-if="!isLike" icon="el-icon-star-off" @click="likeArtical" size="small"> 收藏</el-button>
+              <el-button v-else icon="el-icon-star-on" type="info" @click="unLikeArtical" size="small">取消</el-button>
+              <el-button  icon="el-icon-download" v-if="isLeader>0 || info.isOpen==1" @click="download" size="small"> 下载</el-button>
+            </div>
+          </el-row>
+
+          <el-row class="brief">
+            <div  v-html="info.brief" />
+          </el-row>
+
 
-            <el-button  type="text"  size="small" v-if="isLeader==2 && info.status==1 &&info.isOpen<2"
-                    @click="dialogConfirm=true">审核</el-button>
-            <el-button  type="text" size="small"  v-if="isLeader==3 && info.status==2 &&info.isOpen<2"
-                    @click="dialogPublish=true">发布</el-button>
 
 
-            <el-button v-if="!isLike" icon="el-icon-star-off" @click="likeArtical" size="small"> 收藏</el-button>
-            <el-button v-else icon="el-icon-star-on" type="info" @click="unLikeArtical" size="small">取消</el-button>
-            <el-button  icon="el-icon-download" v-if="isLeader>0 || info.isOpen==1" @click="download" size="small"> 下载</el-button>
-          </div>
-          <div v-html="info.brief" />
         </div>
 
         <div>

+ 40 - 12
src/pages/other/my-file.vue

@@ -35,7 +35,7 @@
 
           <el-table :data="list"  border stripe>
 
-            <el-table-column label="序号" width="100" prop="articalId" align="center">
+            <el-table-column label="序号" width="95" prop="articalId" align="center">
               <template v-slot="{row}">
                 <span> 【{{openMap[row.isOpen]}}】{{row.articalId}}</span>
               </template>
@@ -43,6 +43,10 @@
 
 
             <el-table-column label="标题" min-width="180" prop="title">
+              <template slot-scope="{row}">
+                <el-input  v-if="row._edit" v-model="row.title" type="text"></el-input>
+                <span v-else> {{row.title}}</span>
+              </template>
             </el-table-column>
 
             <el-table-column label="部门" width="110" prop="department" align="center">
@@ -57,12 +61,19 @@
 
             <el-table-column label="操作" width="150" align="center">
               <template v-slot="{row}">
-                <el-button  type="text" @click="gotoDetail(row)"> 详情 </el-button>
+                <el-button  type="text"  @click="cancelEdit(row)" v-if="row._edit"> 取消 </el-button>
+                <el-button  type="text" style="color: green;" @click="confirmEdit(row)" v-if="row._edit"> 确认 </el-button>
+
+
+                <el-button  type="text" @click="initEdit(row)" v-if="!row._edit"> 改标题 </el-button>
+
+                <el-button  type="text" @click="download(row)" v-if="!row._edit && selectId==1"> 下载 </el-button>
 
-                <el-button  type="text" @click="download(row)" v-if="selectId==1"> 下载 </el-button>
-                <el-button  type="text" @click="editFile(row)" v-else-if="selectId==5"> 编辑 </el-button>
+                <el-button  type="text" @click="gotoDetail(row)" v-else-if="!row._edit && selectId==5">详情 </el-button>
 
-                <el-button v-if="selectId==5" type="text" style="color:darkorange"  @click="row._delete=true" >删除</el-button>
+                 <el-button  type="text" @click="editFile(row)" v-else-if="!row._edit && selectId==6">编辑</el-button>
+
+                <el-button v-if="!row._edit &&(selectId==5 || selectId==6) " type="text" style="color:darkorange"  @click="row._delete=true" >删除</el-button>
 
                 <el-popover placement="top" width="150" v-model="row._delete">
                   <p>删除动作不可逆,你是否确认删除?</p>
@@ -98,7 +109,7 @@
 import IHeader from "./components/IHeader";
 import IFooter from "./components/IFooter";
 import {getArticalList,getApplyArticalList, deleteArtical}  from '@/api/article'
-import {getEditArticalList,downloadFile}  from '@/api/article'
+import {getEditArticalList,downloadFile, editArticalTitle}  from '@/api/article'
 import {download} from '@/utils/download.js'
 import {toDatetime, toDate} from '@/utils/date.js'
 import data from '../data/data.js'
@@ -132,7 +143,7 @@ export default {
       },
       state3: '',
       selectId:"5",
-      selectName: '我负责的文件',
+      selectName: '我经办文件',
       isShowMore: false
     }
   },
@@ -141,17 +152,13 @@ export default {
     toDate
   },
   created() {
-    console.log("created", this.$route.keepAlive)
     this.getArticalList();
   },
   methods: {
     ...mapActions("user", ["logout"]),
     download( row ){
-      // let articalId = row.articalId
-      // download( `/api/artical/downloadFile/${articalId}`)
       let query= {articalId: row.articalId }
       this.$router.push( {path: '/file-info', query})
-      // window.open( `http://smoa.ndjsxh.cn:8888/api/downloadFile/${articalId}`)
     },
     deleteArtical( row ){
       deleteArtical( {articalId: row.articalId}).then(res=>{
@@ -162,6 +169,27 @@ export default {
         }
       })
     },
+    cancelEdit(row) {
+    	row = Object.assign(row, row.temp);
+    	row._edit = false;
+    	delete row["temp"];
+    },
+    initEdit(row) {
+    	let form = Object.assign({}, row);
+    	row._edit = true;
+    	row.temp = form;
+    },
+    confirmEdit(row) {
+    	let param = {articalId:row.articalId, title:row.title}
+    	editArticalTitle( param ).then((res) => {
+    		if (res.code == 200) {
+    			row._edit = false;
+    			delete row["temp"];
+    			this.$message.successMsg("编辑成功", 1);
+    		}
+    	});
+    },
+
     editFile( row ){
       let path = "/file-add"
       let query = {articalId: row.articalId}
@@ -181,7 +209,6 @@ export default {
       this.selectId = item.id;
       this.listApi = item.listApi,
       this.selectName = item.value
-      console.log( "selectTag", item)
       this.getArticalList()
       // 切换文件列表
     },
@@ -201,6 +228,7 @@ export default {
           let list = res.data.list||[];
           this.list = list.map( item => {
             item._delete = false;
+            item._edit = false;
             return item
            });
           this.total = res.data.total||0