2213980799@qq.com пре 1 година
родитељ
комит
8efebac40c

+ 10 - 1
src/components/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/components/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();

+ 1 - 1
src/components/addDoc/main.vue

@@ -187,7 +187,7 @@ export default {
       }
     },
     done(id) {
-      this.fileId.push(id);
+      this.fileId.push(...id);
       this.init();
     },
     browseOpen(row) {

+ 7 - 3
src/views/saleManage/contact/components/darwerComponents/addFollowDialog.vue

@@ -139,15 +139,19 @@ export default {
       // 提交状态
       loading: false,
       // 是否是修改
-      isUpdate: false
+      isUpdate: false,
+      index:'',
+      type:''
     };
   },
   created() {},
   methods: {
     //更改弹框状态
-    async open(type, row, linkNameOptions) {
+    async open(type, row, linkNameOptions,index) {
       this.linkNameOptions = linkNameOptions;
       this.title = type === 'add' ? '新增' : '修改';
+      this.index=index
+      this.type=type
       this.row = copyObj(row);
       this.dialogVisible = true;
       if (type != 'add') {
@@ -189,7 +193,7 @@ export default {
           '商机阶段',
           this.form.stageCode
         );
-        this.$emit('done', JSON.parse(JSON.stringify(this.form)));
+        this.$emit('done',{ data:JSON.parse(JSON.stringify(this.form)),type:this.type,index:this.index});
         this.cancel();
       } catch (error) {
         console.log(error);

+ 9 - 5
src/views/saleManage/contact/components/darwerComponents/followList.vue

@@ -25,7 +25,7 @@
       </template>
 
       <!-- 操作列 -->
-      <template v-slot:action="{ row }">
+      <template v-slot:action="{ row, $index }">
         <el-link
           type="primary"
           :underline="false"
@@ -144,8 +144,8 @@ export default {
   },
 
   methods: {
-    openEdit(type, row) {
-      this.$refs.addFollowDialogRef.open(type, row, this.form.linkList);
+    openEdit(type, row,index) {
+      this.$refs.addFollowDialogRef.open(type, row, this.form.linkList,index);
       this.$refs.addFollowDialogRef.$refs.form &&
         this.$refs.addFollowDialogRef.$refs.form.clearValidate();
     },
@@ -158,8 +158,12 @@ export default {
       this.list.splice(index, 1);
       this.save();
     },
-    done(data) {
-      this.list.push(data);
+    done({data,type,index}) {
+      if(type=='add'){
+        this.list.unshift(data);
+      }else{
+          this.$set(this.list,index,data)
+      }
     },
     save() {
       this.form.base.opportunityFollowupList = this.list;