2213980799@qq.com 1 rok pred
rodič
commit
bdd1a7fea1

+ 10 - 1
src/BIZComponents/addDoc/api/index.js

@@ -110,4 +110,13 @@ export async function getCode(id) {
     return res.data;
   }
   return Promise.reject(new Error(res.data.message));
-}
+}
+// 编码方案
+export async function listCode() {
+  const res = await request.get(`/main/business_code_category/listCode/WD0001`);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+

+ 71 - 41
src/BIZComponents/addDoc/file-edit.vue

@@ -13,14 +13,35 @@
     <el-form ref="form" :model="form" :rules="rules" label-width="82px">
       <el-row :gutter="15">
         <el-col :span="24">
-          <el-form-item label="编码" prop="code">
-            <el-input v-model="form.code" placeholder="请申请编码" disabled>
-              <template slot="append">
-                <el-link :underline="false" @click.native="getCodeOpen"
-                  >申请编码
-                </el-link></template
+          <el-form-item label="编码分类" prop="codeType">
+            <ele-tree-select
+              clearable
+              :data="list"
+              v-model="form.codeType"
+              placeholder="请选择"
+              default-expand-all
+              labelKey="name"
+              childrenKey="sonDirectoryList"
+              valueKey="id"
+              @change="typeChange"
+            />
+          </el-form-item>
+        </el-col>
+        <el-col :span="24">
+          <el-form-item label="编码方案" prop="businessCodeId">
+            <el-select
+              v-model="form.businessCodeId"
+              placeholder="请选择"
+              style="width: 100%"
+            >
+              <el-option
+                v-for="item in options"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id"
               >
-            </el-input>
+              </el-option>
+            </el-select>
           </el-form-item>
         </el-col>
         <el-col :span="24">
@@ -31,31 +52,18 @@
             ></DictSelection>
           </el-form-item>
         </el-col>
-        <!-- <el-col :span="24">
-          <el-form-item label="上传方式" prop="SCFS">
-            <el-radio-group v-model="SCFS">
-              <el-radio :label="1">手动上传</el-radio>
-              <el-radio :label="2">选择模板</el-radio>
-            </el-radio-group>
-          </el-form-item>
-        </el-col> -->
-        <el-col :span="24">
-          <el-form-item label="文档名称" prop="name">
-            <el-input
-              v-model="form.name"
-              placeholder="请输入文档名称"
-            ></el-input>
-          </el-form-item>
-        </el-col>
+
         <el-col :span="24">
           <el-form-item label="文档" prop="storagePath">
             <div style="display: flex; align-items: center">
               <fileUpload
                 v-model="form.storagePath"
                 module="main"
-                :limit="1"
+                :limit="100"
+                :multiple="true"
                 @fileChange="fileChange"
               >
+
               </fileUpload>
             </div>
           </el-form-item>
@@ -93,19 +101,16 @@
         确认
       </el-button>
     </template>
-    <getCode ref="getCode" @success="success"></getCode>
   </ele-modal>
 </template>
 
 <script>
-import { fileSaveAPI,getDocTreeListAPI } from './api';
+import { fileSaveAPI,selectTreeList, listParentId,getDocTreeListAPI,listCode} from './api/index';
 import FileUpload from './fileUpload.vue';
 import { setFolderList } from './util.js';
-import getCode from './getCode.vue';
 import { mapGetters } from 'vuex';
-
 export default {
-  components: { FileUpload, getCode },
+  components: { FileUpload },
 
   data() {
     const defaultForm = {
@@ -117,6 +122,7 @@ export default {
       status: '', //状态
       storagePathId: '',
       directoryId: '',
+      businessCodeId: '',
       storagePath: [],
       id: '',
       lcyStatus: 1,
@@ -124,13 +130,17 @@ export default {
     };
     return {
       rules: {
-        name: [{ required: true, message: '请输入', trigger: 'blur' }],
-        code: [{ required: true, message: '请输入', trigger: 'blur' }],
+        businessCodeId: [
+          { required: true, message: '请选择', trigger: 'blur' }
+        ],
+        // codeType: [{ required: true, message: '请选择', trigger: 'blur' }],
         directoryId: [{ required: true, message: '请选择', trigger: 'blur' }],
         storagePath: [{ required: true, message: '请选择', trigger: 'blur' }]
       },
       templateVisible: false,
       folderList: [],
+      list: [],
+      options: [],
       defaultForm,
       code: '',
       // 表单数据
@@ -139,7 +149,8 @@ export default {
       // 提交状态
       loading: false,
       showEditFlag: false,
-      title: '新建附件'
+      title: '',
+      type: '新建附件'
     };
   },
   computed: {
@@ -159,20 +170,39 @@ export default {
   },
   methods: {
     async open() {
+    
       this.showEditFlag = true;
+      this.list = await selectTreeList();
+      this.options= await listCode();
+      if(this.options.length>0){
+        this.form.businessCodeId=this.options[0].id
+      }
+      this.setTree(this.list);
     },
-    getCodeOpen() {
-      this.$refs.getCode.open();
+    setTree(data) {
+      data.forEach((item) => {
+        item.sonDirectoryList = item.sonDirectoryList.filter(
+          (item) => item.type == 1
+        );
+        if (item.sonDirectoryList.length > 0) {
+          this.setTree(item.sonDirectoryList);
+        }
+      });
     },
+    async typeChange(val) {
+      let data = await listParentId({
+        pageNum: 1,
+        size: 100,
+        parentId: val
+      });
+      this.options = data.list.filter((item) => item.type == 2);
+      this.form.businessCodeId = '';
+    },
+
     fileChange(file) {
       this.form.name = file.name.replace(/\.[^/.]+$/, '');
     },
-    success(code) {
-      this.code = code;
-      this.$nextTick(() => {
-        this.$set(this.form, 'code', code);
-      });
-    },
+
     /* 保存编辑 */
     save() {
       this.$refs.form.validate(async (valid) => {
@@ -186,7 +216,7 @@ export default {
 
         this.loading = true;
         fileSaveAPI(data)
-          .then((msg) => {
+          .then( (msg) => {
             this.loading = false;
 
             this.cancel();

+ 8 - 3
src/BIZComponents/addDoc/main.vue

@@ -16,7 +16,7 @@
       :needPage="false"
       row-key="id"
     >
-      <template v-slot:toolbar   v-if="type != 'view'">
+      <template v-slot:toolbar v-if="type != 'view'">
         <el-button type="primary" @click="fileEditOpen">本地上传</el-button>
         <el-button type="primary" @click="fileShow = true">
           关联文档库
@@ -49,7 +49,9 @@
     </ele-pro-table>
     <template v-slot:footer>
       <el-button @click="showEditFlag = false">取消</el-button>
-      <el-button type="primary" @click="addFile" v-if="type != 'view'"> 确认 </el-button>
+      <el-button type="primary" @click="addFile" v-if="type != 'view'">
+        确认
+      </el-button>
     </template>
     <fileEdit ref="fileEditRef" @done="done"></fileEdit>
     <ele-modal
@@ -162,6 +164,7 @@ export default {
 
   methods: {
     open(fileId, type) {
+      //查看详情:view 新增:add
       this.showEditFlag = true;
       this.fileId = fileId || [];
       if (type) {
@@ -179,10 +182,12 @@ export default {
     async init() {
       if (this.fileId.length > 0) {
         this.tableList = await queryIds({ ids: "'" + this.fileId + "'" });
+      } else {
+        this.tableList = [];
       }
     },
     done(id) {
-      this.fileId.push(id);
+      this.fileId.push(...id);
       this.init();
     },
     browseOpen(row) {