yusheng 1 year ago
parent
commit
ad4b9bd8b8

+ 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();

+ 6 - 4
src/components/addDoc/file-table-listTemplate.vue

@@ -11,8 +11,8 @@
       :selection.sync="selection"
       :toolbar="false"
     >
-      <!-- 操作列 -->
-      <template v-slot:action="{ row }">
+         <!-- 操作列 -->
+         <template v-slot:action="{ row }">
         <el-link
           type="primary"
           :underline="false"
@@ -21,9 +21,11 @@
         >
           浏览
         </el-link>
+
       </template>
     </ele-pro-table>
-    <browse ref="browseRef"></browse>
+    <browse  ref="browseRef"></browse>
+
   </div>
 </template>
 
@@ -39,7 +41,7 @@ export default {
       type: Object,
       default: () => {}
     },
-
+   
     disabledTableList: {
       //已选择列表
       default: () => []

+ 32 - 51
src/components/addDoc/index.vue

@@ -1,77 +1,58 @@
 <template>
   <div>
-    <el-badge :value="value.length" class="item">
-      <el-button
-        icon="el-icon-plus"
-        v-if="type != 'view'"
-        type="primary"
-        @click="handleUpload"
-      >
-        上传</el-button
-      >
-      <el-button
-        icon="el-icon-view"
-        v-else
-        type="primary"
-        @click="handleUpload"
-      >
-        查看</el-button
-      >
-    </el-badge>
-
+    <el-button icon="el-icon-plus" v-if="type!='view'" type="primary" @click="handleUpload"> 上传</el-button>
+    <el-button icon="el-icon-view" v-else type="primary" @click="handleUpload"> 查看</el-button>
     <file-upload @success="getFiles" ref="fileUploadRef"></file-upload>
   </div>
 </template>
-  
-  <script>
-import fileUpload from './main.vue';
+
+<script>
+import fileUpload from "@/BIZComponents/addDoc/main.vue";
 
 export default {
-  name: 'index',
-  components: { fileUpload },
+  name: "index",
+  components: {fileUpload},
   model: {
     prop: 'value',
     event: 'updateVal'
   },
-  props: {
-    type: {
+  props:{
+    type:{
       type: String,
-      default: ''
+      default: '',
     },
-    value: {
+    value:{
       type: Array,
-      default: () => {
-        return [];
-      }
-    }
+      default: ()=>{ return []},
+    },
   },
   data() {
     return {
-      selectVal: ''
-    };
+      selectVal:''
+    }
   },
-  watch: {
-    value: {
-      handler(newVal) {
-        console.log(newVal, '=======');
-        this.selectVal = newVal || [];
-      },
-      immediate: true
+  watch:{
+    value:{
+      handler(newVal){
+        console.log(newVal,'=======');
+        this.selectVal = newVal || []
+      },immediate:true
     }
   },
-  created() {},
-  methods: {
-    handleUpload() {
-      this.$refs.fileUploadRef.open(this.selectVal, this.type);
+  created() {
+  },
+  methods:{
+    handleUpload(){
+      this.$refs.fileUploadRef.open(this.selectVal,this.type)
     },
-    getFiles(val = []) {
+    getFiles(val=[]){
       this.$emit('updateVal', val);
     }
   }
-};
+}
 </script>
-  
-  
-  <style scoped lang="scss">
+
+
+<style scoped lang="scss">
+
 </style>
-  

+ 9 - 4
src/components/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
@@ -161,7 +163,8 @@ export default {
   created() {},
 
   methods: {
-    open(fileId, type) { //查看详情:view 新增:add
+    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) {

+ 51 - 48
src/components/addDoc/util.js

@@ -1,65 +1,68 @@
 import store from '@/store';
+
 const userId = store.state.user.info.userId
 const userName = store.state.user.info.name
+
 export function isPower(data = {}, power, selection = []) {
 
-    if (power == 'add' && data.userAuthority.length == 0) { //文件夹默认开放新增权限
-        return true
-    }
-    if (!data?.id && selection.length == 0) {
-        return false
+  if (power == 'add' && data.userAuthority.length == 0) { //文件夹默认开放新增权限
+    return true
+  }
+  if (!data?.id && selection.length == 0) {
+    return false
 
+  }
+  if (power == 'checkEnter' && data?.checkOutUserId != userId) { //检入特殊处理
+    return false
+  }
+  if (selection.length > 0) { //多选情况处理
+    let isPower = true
+    let userAuthorityS = []
+    let createUserIdS = selection.map(item => item.createUserId).filter(createUserId => createUserId == userId)
+    if (createUserIdS.length == selection.length || userName == 'admin') {
+      return true
     }
-    if (power == 'checkEnter' && data?.checkOutUserId != userId) { //检入特殊处理
-        return false
-    }
-    if (selection.length > 0) { //多选情况处理
-        let isPower = true
-        let userAuthorityS = []
-        let createUserIdS = selection.map(item => item.createUserId).filter(createUserId => createUserId == userId)
-        if (createUserIdS.length == selection.length || userName == 'admin') {
-            return true
-        }
-        selection.forEach(val => {
-            const powerObj = val.userAuthority.find(item => item.id == userId)
-            if (powerObj) {
-                userAuthorityS.push(powerObj)
-            }
-        })
+    selection.forEach(val => {
+      const powerObj = val.userAuthority.find(item => item.id == userId)
+      if (powerObj) {
+        userAuthorityS.push(powerObj)
+      }
+    })
 
-        if (userAuthorityS.length == 0) {
-            isPower = false
-        }
-        userAuthorityS.forEach(item => {
-            if (item[power] != '1') {
-                isPower = false
-            }
-        })
-        return isPower
+    if (userAuthorityS.length == 0) {
+      isPower = false
     }
+    userAuthorityS.forEach(item => {
+      if (item[power] != '1') {
+        isPower = false
+      }
+    })
+    return isPower
+  }
 
-    if (data.createUserId == userId || userName == 'admin') { //创建人/admin所有权限
-        return true
-    }
-    if (!power) {
-        return false
-    }
-    const powerObj = data.userAuthority.find(item => item.id == userId)
-    if (powerObj) {
+  if (data.createUserId == userId || userName == 'admin') { //创建人/admin所有权限
+    return true
+  }
+  if (!power) {
+    return false
+  }
+  const powerObj = data.userAuthority.find(item => item.id == userId)
+  if (powerObj) {
 
-        return powerObj[power] == '1'
-    }
+    return powerObj[power] == '1'
+  }
 }
 
 export function setFolderList(data) { //递归过滤文件夹权限
-    data.forEach((item) => {
-        item['disabled'] = !isPower(item, 'add');
-        if (item.sonDirectoryList && item.sonDirectoryList.length > 0) {
-            setFolderList(item.sonDirectoryList);
-        }
-    });
+  data.forEach((item) => {
+    item['disabled'] = !isPower(item, 'add');
+    if (item.sonDirectoryList && item.sonDirectoryList.length > 0) {
+      setFolderList(item.sonDirectoryList);
+    }
+  });
 }
+
 //新迪预览工具支持的文件格式
 export function getFileType() {
-    return ['par', 'asm', 'psm', 'dft', 'sldprt', 'sldasm', 'ipt', 'iam', 'prt', '3dxml', 'CATPart', 'CATProduct', 'cgr', 'model', 'exp', 'session', 'x_t', 'xmt_txt', 'x_b', 'xmp_bin', 'xmp_txt', 'sat', 'sab', 'igs', 'iges', 'stp', 'step', 'jt', 'xcgm', '3dm', 'stl', 'obj', '3mf', 'fbx', 'vda', 'dxf', 'dwg', 'pdf', 'idf', 'idb', 'emn', 'brd']
-}
+  return ['par', 'asm', 'psm', 'dft', 'sldprt', 'sldasm', 'ipt', 'iam', 'prt', '3dxml', 'CATPart', 'CATProduct', 'cgr', 'model', 'exp', 'session', 'x_t', 'xmt_txt', 'x_b', 'xmp_bin', 'xmp_txt', 'sat', 'sab', 'igs', 'iges', 'stp', 'step', 'jt', 'xcgm', '3dm', 'stl', 'obj', '3mf', 'fbx', 'vda', 'dxf', 'dwg', 'pdf', 'idf', 'idb', 'emn', 'brd']
+}

+ 2 - 2
src/views/bpm/stockManagement/storage.vue

@@ -1893,7 +1893,7 @@
       },
       // 包装质检结果修改
       packingResultCahnge(value, row) {
-        // 修改物料质检结果(0无 1合格 2不合格)
+        // 修改物料质检结果(0无 1合格 2不合格 3让步接收)
         this.materialList.map((item, index) => {
           if (item.parentIndex === row.index) {
             this.$set(this.materialList[index], 'result', value);
@@ -2851,7 +2851,7 @@
             clientCode: '', // 客户代号
             materielDesignation: '', // 物料代号
             engrave: '', // 刻码
-            result: 1, // 结果(1合格 2不合格)
+            result: 1, // 结果(1合格 2不合格 3让步接收)
             status: 2 // 状态(0=未质检 1待检 2已检)
           });
         }