2213980799@qq.com 1 an în urmă
părinte
comite
499ddf3194

+ 9 - 6
src/components/processSubmitDialog/processSubmitDialog.vue

@@ -256,17 +256,20 @@ export default {
       if (handle) {
         this.form.pcHandle = handle.pcHandle;
         this.form.pcView = handle.pcView;
-      }else{
-        this.form.pcHandle='/bpm/handleTask/components/doc/submit.vue'
-        this.form.pcView='/bpm/handleTask/components/doc/index.vue'
+      } else {
+        this.form.pcHandle = '/bpm/handleTask/components/doc/submit.vue';
+        this.form.pcView = '/bpm/handleTask/components/doc/index.vue';
       }
-   
-      this.form.businessId = row.id;
 
-      this.variables = variables;
+      this.form.businessId = row.id;
+      this.form.businessKey = row.businessKey;
+      // this.variables = variables;
       this.getDefaultInfo(this.form.businessKey);
     },
     async getDefaultInfo(businessKey) {
+      if (!businessKey) {
+        return;
+      }
       let info = await getProcessDefinitionInfo({ code: businessKey });
       this.form.LCFL = info?.category;
       this.form.FQLC = info?.modelId;

+ 23 - 0
src/enum/dict.js

@@ -27,3 +27,26 @@ export default {
   工作流任务分配自定义脚本: 'bpm_task_assign_script',
 };
 export const numberList = ['date_method'];
+//涉密等级
+export const secretLevelList = [
+  {
+    value: 0,
+    label: '非密'
+  },
+  {
+    value: 1,
+    label: '内部'
+  },
+  {
+    value: 2,
+    label: '秘密'
+  },
+  {
+    value: 3,
+    label: '机密'
+  },
+  {
+    value: 4,
+    label: '绝密'
+  }
+];

+ 51 - 0
src/views/doc/components/browseOpen.vue

@@ -0,0 +1,51 @@
+<template>
+  <ele-modal
+    :visible.sync="showEditFlag"
+    :close-on-click-modal="false"
+    custom-class="ele-dialog-form"
+    append-to-body
+    :fullscreen="true"
+  >
+    <iframe
+      :src="fileUrl"
+      width="100%"
+      v-if="showEditFlag"
+      style="height: calc(100vh - 100px)"
+      frameborder="0"
+      allowfullscreen="true"
+    ></iframe
+  ></ele-modal>
+</template>
+
+<script>
+
+  export default {
+    data() {
+      return {
+        fileUrl: '',
+        showEditFlag: false
+      };
+    },
+
+    methods: {
+      open(row) {
+        this.showEditFlag = true;
+        this.setFileUrl(row);
+      },
+      setFileUrl(row) {
+        console.log(row);
+        let file = row.storagePath[0];
+        let fileNames = file.storePath.split('/');
+        let url =
+          window.location.origin +
+          '/api/main/file/getFile?objectName=' +
+          file.storePath +
+          '&fullfilename=' +
+          fileNames[fileNames.length - 1];
+        this.fileUrl = '/kkfile/onlinePreview?url=' + btoa(url);
+        this.visible = true;
+      }
+    }
+  };
+</script>
+<style scoped lang="scss"></style>

+ 12 - 1
src/views/doc/components/file-edit.vue

@@ -86,6 +86,14 @@
             ></el-cascader>
           </el-form-item>
         </el-col>
+        <el-col :span="24">
+          <el-form-item label="密级:" prop="secretLevel">
+        <el-select v-model="form.secretLevel" style="width: 100%">
+          <el-option v-for="item in secretLevelList" :key="item.value" :label="item.label" :value="item.value"></el-option>
+        </el-select>
+      </el-form-item>
+        </el-col>
+       
         <el-col :span="24">
           <el-form-item label="备注" prop="remark">
             <el-input
@@ -143,6 +151,7 @@ import FileUpload from '@/components/upload/fileUpload1.vue';
 import { setFolderList } from '../util.js';
 import getCode from './getCode.vue';
 import doc_template from './template/doc_template.vue';
+import {secretLevelList} from "@/enum/dict";
 
 export default {
   components: { FileUpload, getCode, doc_template },
@@ -164,6 +173,7 @@ export default {
       directoryId: '',
       storagePath: [],
       id: '',
+      secretLevel:1
     };
     return {
       rules: {
@@ -183,7 +193,8 @@ export default {
       loading: false,
       showEditFlag: false,
       title: '',
-      type: ''
+      type: '',
+      secretLevelList
     };
   },
   computed: {

+ 26 - 23
src/views/doc/components/file-table-list.vue

@@ -105,8 +105,8 @@
               isArr: true
             })
           "
-          :disabled="selection.length > 1"
-          v-if="selection[0]?.checkOutStatus == 1 && lcyStatus == 1"
+          :disabled="selection.length > 1 || selection[0]?.checkOutStatus == 0"
+          v-if="lcyStatus == 1"
         >
           检入
         </el-button>
@@ -119,10 +119,8 @@
               isArr: true
             })
           "
-          :disabled="selection.length > 1"
-          v-if="
-            !selection[0]?.checkOutStatus && lcyStatus == 1 && fileType != 2
-          "
+          :disabled="selection.length > 1 || selection[0]?.checkOutStatus == 1"
+          v-if="lcyStatus == 1 && fileType != 2"
         >
           检出
         </el-button>
@@ -164,7 +162,10 @@
 
         <el-button
           type="primary"
-          v-if="lcyStatus == 2 || (lcyStatus == 1 && fileType == 1)"
+          v-if="
+            (lcyStatus == 1 || lcyStatus == 2) &&
+            (fileType == 0 || fileType == 1)
+          "
           @click="
             openSendEdit({
               power: 'release',
@@ -218,7 +219,9 @@
         <el-dropdown
           trigger="click"
           v-if="
-            lcyStatus == 1 && (row.reviewStatus == 0 || row.reviewStatus == 3)
+            lcyStatus == 1 &&
+            (row.reviewStatus == 0 || row.reviewStatus == 3) &&
+            row.status == 0
           "
         >
           <el-link type="primary" :underline="false" icon="el-icon-edit">
@@ -329,7 +332,7 @@
       @done="reload"
       :lcyStatus="lcyStatus"
     />
-    <sendEdit ref="sendEditRef" @done="done" :isAdd="false"></sendEdit>
+    <sendEdit ref="sendEditRef" @done="reload" :isAdd="false"></sendEdit>
     <process-submit-dialog
       :processSubmitDialogFlag.sync="processSubmitDialogFlag"
       v-if="processSubmitDialogFlag"
@@ -431,7 +434,8 @@ export default {
           selectable: (row, index) => {
             return (
               !this.disabledTableList.map((item) => item.id).includes(row.id) &&
-              row.reviewStatus != 1
+              row.reviewStatus != 1 &&
+              row.status != 1
             );
           }
         },
@@ -535,7 +539,7 @@ export default {
           showOverflowTooltip: true,
           minWidth: 100,
           formatter: (_row, _column, cellValue) => {
-            return fileStatus(this.fileType, cellValue, this.lcyStatus);
+            return fileStatus(cellValue);
           }
         },
         {
@@ -619,27 +623,23 @@ export default {
       }
       this.processSubmitDialogFlag = true;
       this.$nextTick(() => {
+        this.selection[0]['businessKey']='fm_file_repeal_approve'
         this.$refs.processSubmitDialogRef.init(this.selection[0]);
       });
     },
+    //发布模板
     processSubmit_template() {
       if (this.selection.length == 0 || this.selection.length > 1) {
         this.$message.warning('请选择一条数据');
         return;
       }
-      if (this.selection[0].status == 1) {
+      if (this.selection[0].status == 2) {
         this.$message.warning('模板已发布');
         return;
       }
-      if (
-        this.selection[0].reviewStatus == 1 ||
-        this.selection[0].reviewStatus == 2
-      ) {
-        this.$message.warning('模板正在走流程');
-        return;
-      }
       this.processSubmitDialogFlag = true;
       this.$nextTick(() => {
+        this.selection[0]['businessKey']='fm_file_template_approve'
         this.$refs.processSubmitDialogRef.init(this.selection[0]);
       });
     },
@@ -686,7 +686,7 @@ export default {
       this.$refs.fileEditAllRef.open(this.folderList);
     },
     tabClick(data) {
-      if (this.$refs[data.name]&&this.$refs[data.name].init) {
+      if (this.$refs[data.name] && this.$refs[data.name].init) {
         this.$refs[data.name].init();
       }
     },
@@ -814,7 +814,7 @@ export default {
         this.$message.warning('请先检出在删除');
         return;
       }
-      
+
       if (isCheckOut(this.current)) {
         this.$message.warning(
           this.current.name +
@@ -837,12 +837,15 @@ export default {
         });
     },
     //发布
-    openSendEdit() {
+    openSendEdit(powerData) {
       if (this.selection.length == 0) {
         this.$message.warning('请选择一条数据');
         return;
       }
-      this.$refs.sendEditRef.open('add', '', this.selection);
+      if (this.powerFn(powerData)) {
+        return;
+      }
+      this.$refs.sendEditRef.open('add', '', this.selection, this.fileType);
     },
     getTableList() {
       return JSON.parse(JSON.stringify(this.selection));

+ 17 - 2
src/views/doc/components/folder-edit.vue

@@ -50,6 +50,18 @@
             ></el-cascader>
           </el-form-item>
         </el-col>
+        <el-col :span="24">
+          <el-form-item label="密级:" prop="secretLevel">
+            <el-select v-model="form.secretLevel" style="width: 100%">
+              <el-option
+                v-for="item in secretLevelList"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
       </el-row>
     </el-form>
     <template v-slot:footer>
@@ -64,6 +76,7 @@
 <script>
 import { directorySaveAPI, directoryUpdateAPi } from '@/api/doc-manage';
 import { setFolderList } from '../util.js';
+import { secretLevelList } from '@/enum/dict';
 
 export default {
   components: {},
@@ -73,7 +86,8 @@ export default {
       name: '',
       type: '',
       parentId: '',
-      remark: ''
+      remark: '',
+      secretLevel: 1
     };
     return {
       defaultForm,
@@ -89,7 +103,8 @@ export default {
       },
       folderList: [],
       // 提交状态
-      loading: false
+      loading: false,
+      secretLevelList
     };
   },
   computed: {

+ 8 - 4
src/views/doc/components/template/file-table-listTemplate.vue

@@ -34,7 +34,7 @@
 
 <script>
 import { filePageAPI, getFileType } from '@/api/doc-manage';
-import { isPower } from '../../util.js';
+import { isPower,fileStatus } from '../../util.js';
 import Info from '../info.vue';
 import browse from '../browse.vue';
 
@@ -175,11 +175,14 @@ export default {
           minWidth: 100
         },
         {
-          prop: '',
+          prop: 'status',
           label: '状态',
           align: 'center',
           showOverflowTooltip: true,
-          minWidth: 100
+          minWidth: 100,
+          formatter: (_row, _column, cellValue) => {
+            return fileStatus(cellValue);
+          }
         },
         {
           columnKey: 'action',
@@ -206,7 +209,8 @@ export default {
         size: limit,
         directoryId: this.parentData?.id,
         lcyStatus: this.lcyStatus,
-        fileType:this.fileType
+        fileType:this.fileType,
+        status:this.fileType==2?'2':''
       });
     },
     /* 刷新表格 */

+ 59 - 19
src/views/doc/issue_doc/components/edit.vue

@@ -64,7 +64,7 @@
             >
           </el-form-item>
         </el-col>
-        <el-col :span="6">
+        <el-col :span="12">
           <el-form-item label="失效时间" prop="failureTime">
             <el-date-picker
               v-model="form.failureTime"
@@ -72,9 +72,17 @@
               placeholder="选择日期时间"
               format="yyyy-MM-dd HH:mm:ss"
               value-format="yyyy-MM-dd HH:mm:ss"
-              style="width: 100%"
+              style="width: 46%"
+              @change="failureTimeChange"
             >
             </el-date-picker>
+            <el-checkbox
+              style="margin-left: 5px"
+              v-model="form.isAuthority"
+              :true-label="1"
+              :false-label="0"
+              >到失效时间自动回收权限</el-checkbox
+            >
           </el-form-item>
         </el-col>
         <!-- <el-col :span="6">
@@ -82,17 +90,11 @@
             <el-input v-model="form.createUserName" disabled></el-input>
           </el-form-item>
         </el-col> -->
-        <el-col :span="12">
-          <el-form-item label="创建时间" prop="createTime">
-            <el-input v-model="form.createTime" disabled style="width: 46%">
+        <el-col :span="6">
+          <el-form-item label="创建时间" prop="createTime" v-if="type == 'view'">
+            <el-input v-model="form.createTime" disabled >
             </el-input>
-            <el-checkbox
-              style="margin-left: 5px"
-              v-model="form.isAuthority"
-              :true-label="1"
-              :false-label="0"
-              >到失效时间自动回收权限</el-checkbox
-            >
+      
           </el-form-item>
         </el-col>
         <el-col :span="24">
@@ -132,6 +134,7 @@
                   icon="el-icon-plus"
                   class="ele-btn-icon"
                   @click="visible = true"
+                  v-if="type != 'view'"
                 >
                   添加
                 </el-button>
@@ -140,6 +143,8 @@
                 <el-popconfirm
                   class="ele-action"
                   title="确定要删除此文档吗?"
+                  v-if="type != 'view'"
+
                   @confirm="remove(row)"
                 >
                   <template v-slot:reference>
@@ -152,6 +157,15 @@
                     </el-link>
                   </template>
                 </el-popconfirm>
+                <el-link
+                  v-if="type == 'view'"
+                  type="primary"
+                  :underline="false"
+                  icon="el-icon-edit"
+                  @click="browseOpen(row)"
+                >
+                  浏览
+                </el-link>
               </template>
             </ele-pro-table>
           </el-form-item>
@@ -171,7 +185,7 @@
               height="200px"
               :powerArr="powerArr"
               :isSave="false"
-              :isAdd="type != 'power'"
+              :isAdd="type != 'power'&&type != 'view'"
               ref="powerRef"
             />
           </el-form-item>
@@ -214,7 +228,7 @@
     >
       <doc_template
         :fileType="0"
-        lcyStatus="2"
+        lcyStatus="1,2"
         :disabledTableList="tableList"
         ref="mainRef"
       ></doc_template>
@@ -225,6 +239,8 @@
         </el-button>
       </template>
     </ele-modal>
+    <browse ref="browseRef"></browse>
+
   </ele-modal>
 </template>
   
@@ -239,6 +255,8 @@ import power from '@/views/doc/components/power/index.vue';
 import doc_template from '@/views/doc/components/template/doc_template.vue';
 import { mapGetters } from 'vuex';
 import bpmDetail from '@/views/bpm/processInstance/detail.vue';
+import browse from '@/views/doc/components/browseOpen.vue';
+import { fileStatus } from '@/views/doc/util.js';
 
 const defaultForm = {
   name: '', //名称
@@ -251,7 +269,7 @@ const defaultForm = {
   releaseUserName: ''
 };
 export default {
-  components: { power, doc_template, bpmDetail },
+  components: { power, doc_template, bpmDetail,browse },
   props: {
     isAdd: {
       default: true
@@ -274,7 +292,6 @@ export default {
       rules: {
         name: [{ required: true, message: '请输入', trigger: 'blur' }],
         releaseTime: [{ required: true, message: '请选择', trigger: 'blur' }],
-        failureTime: [{ required: true, message: '请选择', trigger: 'blur' }]
       },
       // 提交状态
       loading: false,
@@ -365,11 +382,14 @@ export default {
           minWidth: 100
         },
         {
-          prop: '',
+          prop: 'status',
           label: '状态',
           align: 'center',
           showOverflowTooltip: true,
-          minWidth: 100
+          minWidth: 100,
+          formatter: (_row, _column, cellValue) => {
+            return fileStatus(cellValue);
+          }
         },
         {
           columnKey: 'action',
@@ -444,7 +464,7 @@ export default {
     this.data = await getDocTreeListAPI(query);
   },
   methods: {
-    open(type, row, list) {
+    open(type, row, list,fileType) {
       this.title =
         type == 'add'
           ? '新增'
@@ -467,6 +487,12 @@ export default {
         });
       } else {
         this.form.releaseUserName = this.user.info.name;
+        if(fileType==1){
+          this.tableList=this.tableList.map(item=>{
+            item.directoryId=''
+            return item
+          })
+        }
       }
       this.bpmDetailFlag = false;
       this.$nextTick(() => {
@@ -477,6 +503,17 @@ export default {
     disabledDate() {
       return false;
     },
+    browseOpen(row) {
+        this.$refs.browseRef.open(row);
+      },
+    failureTimeChange(){
+      if(this.form.failureTime){
+        this.form.isAuthority=1
+      }else{
+        this.form.isAuthority=0
+
+      }
+    },
     save() {
       this.$refs.form.validate((valid) => {
         if (!valid) {
@@ -490,10 +527,13 @@ export default {
           return;
         }
         this.tableList.forEach((item) => {
+          console.log(item,'item')
           if (!item.directoryId) {
             isDirectory = false;
           }
         });
+        // console.log(isDirectory,'isDirectory')
+        // return
         if (!isDirectory) {
           this.$message.error('请选择文档位置');
           return;

+ 19 - 3
src/views/doc/sendReceive/receive/components/edit.vue

@@ -115,6 +115,7 @@
                   type="primary"
                   icon="el-icon-plus"
                   class="ele-btn-icon"
+                  v-if="type != 'view'"
                   @click="visible = true"
                 >
                   添加
@@ -122,6 +123,7 @@
               </template>
               <template v-slot:action="{ row }">
                 <el-popconfirm
+                  v-if="type != 'view'"
                   class="ele-action"
                   title="确定要删除此信息吗?"
                   @confirm="remove(row)"
@@ -136,6 +138,15 @@
                     </el-link>
                   </template>
                 </el-popconfirm>
+                <el-link
+                  v-if="type == 'view'"
+                  type="primary"
+                  :underline="false"
+                  icon="el-icon-edit"
+                  @click="browseOpen(row)"
+                >
+                  浏览
+                </el-link>
               </template>
             </ele-pro-table>
           </el-form-item>
@@ -187,12 +198,15 @@
         </el-button>
       </template>
     </ele-modal>
+    <browse ref="browseRef"></browse>
   </ele-modal>
 </template>
   
   <script>
 import { receiveSave } from '@/api/doc-manage';
 import power from '@/views/doc/components/power/index.vue';
+import browse from '@/views/doc/components/browseOpen.vue';
+
 import send from '@/views/doc/sendReceive/send/components/sendList.vue';
 import bpmDetail from '@/views/bpm/processInstance/detail.vue';
 import { mapGetters } from 'vuex';
@@ -208,7 +222,7 @@ const defaultForm = {
   type: ''
 };
 export default {
-  components: { power, send ,bpmDetail},
+  components: { power, send, bpmDetail, browse },
   props: {
     isAdd: {
       default: true
@@ -223,7 +237,7 @@ export default {
         { key: '回收信息', name: '回收信息' },
         { key: '工作流', name: '工作流' }
       ],
-      bpmDetailFlag:false,
+      bpmDetailFlag: false,
       // 表单数据
       form: { ...defaultForm },
       userAuthority: [],
@@ -326,7 +340,6 @@ export default {
       return this.$store.state.theme.styleResponsive;
     },
     ...mapGetters(['user'])
-
   },
 
   created() {},
@@ -348,6 +361,9 @@ export default {
       });
       this.showEditFlag = true;
     },
+    browseOpen(row) {
+        this.$refs.browseRef.open(row);
+      },
     save() {
       this.$refs.form.validate((valid) => {
         if (!valid) {

+ 2 - 0
src/views/doc/sendReceive/receive/receive.vue

@@ -169,6 +169,8 @@ export default {
     processSubmit(row) {
       this.processSubmitDialogFlag = true;
       this.$nextTick(() => {
+        row['businessKey']='fm_file_Recycle_approve'
+
         this.$refs.processSubmitDialogRef.init(row, {
           pcHandle: '/bpm/handleTask/components/doc/submit.vue',
           pcView: '/bpm/handleTask/components/doc/send/receiveDialog.vue'

+ 19 - 1
src/views/doc/sendReceive/send/mySend.vue

@@ -7,6 +7,15 @@
       :columns="columns"
       :datasource="datasource"
     >
+    <template v-slot:name="{ row }">
+        <el-link
+          type="primary"
+          :underline="false"
+          @click="openEdit('view',row)"
+        >
+          {{ row.name }}
+        </el-link>
+      </template>
       <!-- 表头工具栏 -->
       <template v-slot:toolbar>
         <el-button
@@ -22,17 +31,21 @@
         </el-button>
       </template>
     </ele-pro-table>
+    <edit ref="editRef" @done="done"></edit>
+
   </div>
 </template>
 <script>
 import search from './components/search.vue';
+import edit from '@/views/doc/issue_doc/components/edit.vue';
+
 import { mapGetters } from 'vuex';
 import dictMixins from '@/mixins/dictMixins';
 import { releasePage, signFor,allSignFor } from '@/api/doc-manage';
 export default {
   mixins: [dictMixins],
   components: {
-    search
+    search,edit
   },
   data() {
     return {
@@ -60,6 +73,7 @@ export default {
         {
           label: '主题',
           align: 'center',
+          slot: 'name',
           prop: 'name',
           showOverflowTooltip: true
         },
@@ -127,6 +141,10 @@ export default {
         size: limit
       });
     },
+    openEdit(type, row) {
+      console.log(row,'row')
+      this.$refs.editRef.open(type, row);
+    },
     search(where) {
       this.$refs.table.reload({
         where: where,

+ 2 - 0
src/views/doc/sendReceive/send/send.vue

@@ -240,6 +240,8 @@ export default {
     processSubmit(row) {
       this.processSubmitDialogFlag = true;
       this.$nextTick(() => {
+        row['businessKey']='fm_file_release_approve'
+
         this.$refs.processSubmitDialogRef.init(row, {
           pcHandle: '/bpm/handleTask/components/doc/submit.vue',
           pcView: '/bpm/handleTask/components/doc/send/sendDialog.vue'

+ 16 - 16
src/views/doc/util.js

@@ -75,20 +75,20 @@ export function getFileType() {
         'iges', 'stp', 'step', 'jt', 'xcgm', '3dm', 'stl', 'obj', '3mf', 'fbx', 'vda', 'dxf', 'dwg', 'idf', 'idb', 'emn', 'brd'
     ]
 }
-export function fileStatus(fileType, status, lcyStatus) {
-
-    if (fileType == 2) {
-        return status == 1 ? '已发布' : '未发布';
-    }
-    if (fileType === 0) {
-        if (lcyStatus == 2) {
-            return '已归档'
-        }
-        if (lcyStatus == 3) {
-            return '已发布'
-        }
-        if (lcyStatus == 4) {
-            return '已废止'
-        }
-    }
+export function fileStatus(status) {
+    return status==1?'发布中':status==2?'已发布':status==3?'已归档':status==4?'已废止':''
+    // if (fileType == 2) {
+    //     return status == 1 ? '已发布' : '未发布';
+    // }
+    // if (fileType === 0) {
+    //     if (lcyStatus == 2) {
+    //         return '已归档'
+    //     }
+    //     if (lcyStatus == 3) {
+    //         return '已发布'
+    //     }
+    //     if (lcyStatus == 4) {
+    //         return '已废止'
+    //     }
+    // }
 }