yusheng 1 年之前
父節點
當前提交
833d423f8d

+ 2 - 2
src/BIZComponents/addDoc/api/index.js

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

+ 176 - 149
src/BIZComponents/addDoc/file-edit.vue

@@ -9,9 +9,29 @@
     @close="cancel"
     :title="title"
     ref="Emodal"
+    :maxable="true"
+    :resizable="true"
   >
     <el-form ref="form" :model="form" :rules="rules" label-width="82px">
       <el-row :gutter="15">
+        <el-col :span="24">
+          <el-form-item label="文档位置" prop="directoryId">
+            <el-cascader
+              style="width: 100%"
+              v-model="form.directoryId"
+              :options="folderList"
+              @change="initFileCode"
+              ref="cascaderRef"
+              :props="{
+                value: 'id',
+                label: 'name',
+                children: 'sonDirectoryList',
+                emitPath: false,
+                checkStrictly: true
+              }"
+            ></el-cascader>
+          </el-form-item>
+        </el-col>
         <el-col :span="24">
           <el-form-item label="编码分类" prop="codeType">
             <ele-tree-select
@@ -63,27 +83,11 @@
                 :multiple="true"
                 @fileChange="fileChange"
               >
-
               </fileUpload>
             </div>
           </el-form-item>
         </el-col>
-        <el-col :span="24">
-          <el-form-item label="文档位置" prop="directoryId">
-            <el-cascader
-              style="width: 100%"
-              v-model="form.directoryId"
-              :options="folderList"
-              :props="{
-                value: 'id',
-                label: 'name',
-                children: 'sonDirectoryList',
-                emitPath: false,
-                checkStrictly: true
-              }"
-            ></el-cascader>
-          </el-form-item>
-        </el-col>
+
         <el-col :span="24">
           <el-form-item label="备注" prop="remark">
             <el-input
@@ -105,159 +109,182 @@
 </template>
 
 <script>
-import { fileSaveAPI,selectTreeList, listParentId,getDocTreeListAPI,listCode} from './api/index';
-import FileUpload from './fileUpload.vue';
-import { setFolderList } from './util.js';
-import { mapGetters } from 'vuex';
-export default {
-  components: { FileUpload },
+  import {
+    fileSaveAPI,
+    selectTreeList,
+    listParentId,
+    getDocTreeListAPI,
+    listCode
+  } from './api/index';
+  import FileUpload from './fileUpload.vue';
+  import { setFolderList } from './util.js';
+  import { mapGetters } from 'vuex';
+  export default {
+    components: { FileUpload },
 
-  data() {
-    const defaultForm = {
-      name: '', //名称
-      type: '1', //类型
-      sizeUnit: '', //大小,
-      unit: '', //单位
-      remark: '', //备注
-      status: '', //状态
-      storagePathId: '',
-      directoryId: '',
-      businessCodeId: '',
-      storagePath: [],
-      id: '',
-      lcyStatus: 1,
-      fileType:0
-    };
-    return {
-      rules: {
-        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: '',
-      // 表单数据
-      form: { ...defaultForm },
+    data() {
+      const defaultForm = {
+        name: '', //名称
+        type: '1', //类型
+        sizeUnit: '', //大小,
+        unit: '', //单位
+        remark: '', //备注
+        status: '', //状态
+        storagePathId: '',
+        directoryId: '',
+        businessCodeId: '',
+        storagePath: [],
+        id: '',
+        lcyStatus: 1,
+        fileType: 0
+      };
+      return {
+        rules: {
+          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: '',
+        // 表单数据
+        form: { ...defaultForm },
 
-      // 提交状态
-      loading: false,
-      showEditFlag: false,
-      title: '',
-      type: '新建附件'
-    };
-  },
-  computed: {
-    // 是否开启响应式布局
-    styleResponsive() {
-      return this.$store.state.theme.styleResponsive;
-    },
-    ...mapGetters(['user'])
-  },
-  async created() {
-    let query = {
-      type: 0,
-      currentUserId: this.user.info.userId
-    };
-    this.folderList = await getDocTreeListAPI(query);
-    setFolderList(this.folderList); //权限过滤
-  },
-  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);
+        // 提交状态
+        loading: false,
+        showEditFlag: false,
+        title: '',
+        type: '新建附件',
+        nodeDataCode: ''
+      };
     },
-    setTree(data) {
-      data.forEach((item) => {
-        item.sonDirectoryList = item.sonDirectoryList.filter(
-          (item) => item.type == 1
-        );
-        if (item.sonDirectoryList.length > 0) {
-          this.setTree(item.sonDirectoryList);
-        }
-      });
+    computed: {
+      // 是否开启响应式布局
+      styleResponsive() {
+        return this.$store.state.theme.styleResponsive;
+      },
+      ...mapGetters(['user'])
     },
-    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 = '';
+    async created() {
+      let query = {
+        type: 0,
+        currentUserId: this.user.info.userId
+      };
+      this.folderList = await getDocTreeListAPI(query);
+      setFolderList(this.folderList); //权限过滤
     },
+    methods: {
+      async getTreeCode() {
+        let nodeData = {};
+        await this.$nextTick(() => {
+          nodeData = this.$refs.cascaderRef.getCheckedNodes();
+        });
+        this.nodeDataCode = nodeData[0]?.data?.code;
+      },
+      async initFileCode() {
+        await this.getTreeCode();
+        this.options = this.nodeDataCode
+          ? await listCode(this.nodeDataCode)
+          : [];
+        if (this.options.length > 0) {
+          this.form.businessCodeId = this.options[0].id;
+        }else{
+          this.form.businessCodeId=''
+        }
+      },
+      async open() {
+        this.showEditFlag = true;
+        this.list = await selectTreeList();
+        await this.initFileCode();
+        this.setTree(this.list);
+      },
 
-    fileChange(file) {
-      this.form.name = file.name.replace(/\.[^/.]+$/, '');
-    },
+      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,
+          code: this.nodeDataCode
+        });
+        this.options = data.list.filter((item) => item.type == 2);
+        this.form.businessCodeId = '';
+      },
 
-    /* 保存编辑 */
-    save() {
-      this.$refs.form.validate(async (valid) => {
-        if (!valid) {
-          return false;
-        }
+      fileChange(file) {
+        this.form.name = file.name.replace(/\.[^/.]+$/, '');
+      },
 
-        const data = {
-          ...this.form,
-        };
+      /* 保存编辑 */
+      save() {
+        this.$refs.form.validate(async (valid) => {
+          if (!valid) {
+            return false;
+          }
 
-        this.loading = true;
-        fileSaveAPI(data)
-          .then( (msg) => {
-            this.loading = false;
+          const data = {
+            ...this.form
+          };
 
-            this.cancel();
-            this.$emit('done',msg);
-          })
-          .catch((e) => {
-            this.loading = false;
-          });
-      });
-    },
+          this.loading = true;
+          fileSaveAPI(data)
+            .then((msg) => {
+              this.loading = false;
+
+              this.cancel();
+              this.$emit('done', msg);
+            })
+            .catch((e) => {
+              this.loading = false;
+            });
+        });
+      },
 
-    cancel() {
-      this.form = { ...this.defaultForm,directoryId:this.form.directoryId };
-      this.$refs.form.clearValidate();
-      this.showEditFlag = false;
+      cancel() {
+        this.form = { ...this.defaultForm, directoryId: this.form.directoryId };
+        this.$refs.form.clearValidate();
+        this.showEditFlag = false;
+      }
     }
-  }
-};
+  };
 </script>
 <style scoped lang="scss">
-.aaa {
-  width: 100%;
-
-  ::v-deep .upload-demo {
+  .aaa {
     width: 100%;
 
-    .el-upload--text {
+    ::v-deep .upload-demo {
       width: 100%;
 
-      button {
+      .el-upload--text {
         width: 100%;
-        background: #ffffff;
-        border: 1px solid #dbdbdb;
-        border-radius: 5px;
+
+        button {
+          width: 100%;
+          background: #ffffff;
+          border: 1px solid #dbdbdb;
+          border-radius: 5px;
+        }
       }
-    }
 
-    .el-upload-list {
-      transform: translate(10px, -39px);
-      position: absolute;
+      .el-upload-list {
+        transform: translate(10px, -39px);
+        position: absolute;
+      }
     }
   }
-}
 </style>

+ 4 - 6
src/BIZComponents/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,11 +21,9 @@
         >
           浏览
         </el-link>
-
       </template>
     </ele-pro-table>
-    <browse  ref="browseRef"></browse>
-
+    <browse ref="browseRef"></browse>
   </div>
 </template>
 
@@ -41,7 +39,7 @@ export default {
       type: Object,
       default: () => {}
     },
-   
+
     disabledTableList: {
       //已选择列表
       default: () => []

+ 83 - 95
src/BIZComponents/addDoc/getCode.vue

@@ -8,6 +8,8 @@
     append-to-body
     @close="cancel"
     title="申请编码"
+    :maxable="true"
+    :resizable="true"
   >
     <el-form ref="form" :model="form" :rules="rules" label-width="82px">
       <el-row :gutter="15">
@@ -60,117 +62,103 @@
 </template>
 
 <script>
-import {
-  selectTreeList,
-  listParentId,
-  getCode
-} from './api';
-import headerTitle from '@/components/header-title/index.vue';
+  import { selectTreeList, listParentId, getCode } from './api';
+  import headerTitle from '@/components/header-title/index.vue';
 
-export default {
-  data() {
-    return {
-      rules: {
-        type: [{ required: true, message: '请选择', trigger: 'blur' }],
-        type1: [{ required: true, message: '请选择', trigger: 'blur' }],
-        code: [{ required: true, message: '请申请', trigger: 'blur' }]
-      },
-      list: [],
-      options: [],
-      // 表单数据
-      form: {
-        type: '',
-        code: '',
-        type1: ''
-      },
+  export default {
+    data() {
+      return {
+        rules: {
+          type: [{ required: true, message: '请选择', trigger: 'blur' }],
+          type1: [{ required: true, message: '请选择', trigger: 'blur' }],
+          code: [{ required: true, message: '请申请', trigger: 'blur' }]
+        },
+        list: [],
+        options: [],
+        // 表单数据
+        form: {
+          type: '',
+          code: '',
+          type1: ''
+        },
 
-      showEditFlag: false
-    };
-  },
-  computed: {
-    // 是否开启响应式布局
-    styleResponsive() {
-      return this.$store.state.theme.styleResponsive;
-    }
-  },
-  components: {
-    headerTitle
-  },
-  created() {},
-  methods: {
-    async open() {
-      this.list = await selectTreeList();
-      this.setTree(this.list);
-      this.showEditFlag = true;
-    },
-    setTree(data) {
-      data.forEach((item) => {
-        item.sonDirectoryList = item.sonDirectoryList.filter(
-          (item) => item.type == 1
-        );
-        if (item.sonDirectoryList.length > 0) {
-          this.setTree(item.sonDirectoryList);
-        }
-      });
+        showEditFlag: false
+      };
     },
-    async typeChange(val) {
-      let data = await listParentId({
-        pageNum: 1,
-        size: 100,
-        parentId: val
-      });
-      this.options = data.list.filter((item) => item.type == 2);
-      this.form.type1 = '';
-    },
-    async type1Change(val) {
-      this.form.code = await getCode(val);
-      // let data = await pageSegment({
-      //   pageNum: 1,
-      //   size: 100,
-      //   businessCodeCategoryId: val
-      // });
-      // data.list.map((item) =>{
-      //   console.log(item,'dsds')
-      // });
-      // console.log(code, 'ds');
-      // this.options = data.list.map((item) => item.type == 2);
+    computed: {
+      // 是否开启响应式布局
+      styleResponsive() {
+        return this.$store.state.theme.styleResponsive;
+      }
     },
-    /* 保存编辑 */
-    save() {
-      this.$emit('success', this.form.code);
-      this.cancel();
+    components: {
+      headerTitle
     },
+    created() {},
+    methods: {
+      async open() {
+        this.list = await selectTreeList();
+        this.setTree(this.list);
+        this.showEditFlag = true;
+      },
+      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.type1 = '';
+      },
+      async type1Change(val) {
+        this.form.code = await getCode(val);
+      },
+      /* 保存编辑 */
+      save() {
+        this.$emit('success', this.form.code);
+        this.cancel();
+      },
 
-    cancel() {
-      this.form.type = '';
-      this.form.code = '';
-      this.showEditFlag = false;
+      cancel() {
+        this.form.type = '';
+        this.form.code = '';
+        this.showEditFlag = false;
+      }
     }
-  }
-};
+  };
 </script>
 <style scoped lang="scss">
-.aaa {
-  width: 100%;
-
-  ::v-deep .upload-demo {
+  .aaa {
     width: 100%;
 
-    .el-upload--text {
+    ::v-deep .upload-demo {
       width: 100%;
 
-      button {
+      .el-upload--text {
         width: 100%;
-        background: #ffffff;
-        border: 1px solid #dbdbdb;
-        border-radius: 5px;
+
+        button {
+          width: 100%;
+          background: #ffffff;
+          border: 1px solid #dbdbdb;
+          border-radius: 5px;
+        }
       }
-    }
 
-    .el-upload-list {
-      transform: translate(10px, -39px);
-      position: absolute;
+      .el-upload-list {
+        transform: translate(10px, -39px);
+        position: absolute;
+      }
     }
   }
-}
 </style>

+ 59 - 62
src/BIZComponents/addDoc/index.vue

@@ -1,76 +1,73 @@
 <template>
   <div>
-    <el-badge :value="value?.length" class="item">
+    <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
-  >
-</el-badge>
-
-<file-upload @success="getFiles" ref="fileUploadRef"></file-upload>
+    <file-upload @success="getFiles" ref="fileUploadRef"></file-upload>
   </div>
 </template>
 
 <script>
-import fileUpload from "@/BIZComponents/addDoc/main.vue";
+  import fileUpload from './main.vue';
 
-export default {
-  name: "index",
-  components: {fileUpload},
-  model: {
-    prop: 'value',
-    event: 'updateVal'
-  },
-  props:{
-    type:{
-      type: String,
-      default: '',
+  export default {
+    name: 'index',
+    components: { fileUpload },
+    model: {
+      prop: 'value',
+      event: 'updateVal'
     },
-    value:{
-      type: Array,
-      default: ()=>{ return []},
+    props: {
+      type: {
+        type: String,
+        default: ''
+      },
+      value: {
+        type: Array,
+        default: () => {
+          return [];
+        }
+      }
     },
-  },
-  data() {
-    return {
-      selectVal:''
-    }
-  },
-  watch:{
-    value:{
-      handler(newVal){
-      
-        this.selectVal = newVal || []
-      },immediate:true
-    }
-  },
-  created() {
-  },
-  methods:{
-    handleUpload(){
-      this.$refs.fileUploadRef.open(this.selectVal,this.type)
+    data() {
+      return {
+        selectVal: ''
+      };
     },
-    getFiles(val=[]){
-      this.$emit('updateVal', val);
+    watch: {
+      value: {
+        handler(newVal) {
+          this.selectVal = newVal || [];
+        },
+        immediate: true
+      }
+    },
+    created() {},
+    methods: {
+      handleUpload() {
+        this.$refs.fileUploadRef.open(this.selectVal, this.type);
+      },
+      getFiles(val = []) {
+        this.$emit('updateVal', val);
+      }
     }
-  }
-}
+  };
 </script>
 
-
-<style scoped lang="scss">
-
-</style>
+<style scoped lang="scss"></style>

+ 4 - 0
src/BIZComponents/addDoc/main.vue

@@ -6,6 +6,8 @@
     custom-class="ele-dialog-form"
     append-to-body
     ref="Emodal"
+    :maxable="true"
+    :resizable="true"
   >
     <!-- 数据表格 -->
     <ele-pro-table
@@ -60,6 +62,8 @@
       :close-on-click-modal="false"
       custom-class="ele-dialog-form"
       append-to-body
+      :maxable="true"
+    :resizable="true"
     >
       <doc_template
         :disabledTableList="tableList"

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

@@ -1,68 +1,65 @@
 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
     }
-    selection.forEach(val => {
-      const powerObj = val.userAuthority.find(item => item.id == userId)
-      if (powerObj) {
-        userAuthorityS.push(powerObj)
-      }
-    })
+    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)
+            }
+        })
 
-    if (userAuthorityS.length == 0) {
-      isPower = false
+        if (userAuthorityS.length == 0) {
+            isPower = false
+        }
+        userAuthorityS.forEach(item => {
+            if (item[power] != '1') {
+                isPower = false
+            }
+        })
+        return isPower
     }
-    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/components/addDoc/api/index.js

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

+ 46 - 23
src/components/addDoc/file-edit.vue

@@ -9,9 +9,29 @@
     @close="cancel"
     :title="title"
     ref="Emodal"
+    :maxable="true"
+    :resizable="true"
   >
     <el-form ref="form" :model="form" :rules="rules" label-width="82px">
       <el-row :gutter="15">
+        <el-col :span="24">
+          <el-form-item label="文档位置" prop="directoryId">
+            <el-cascader
+              style="width: 100%"
+              v-model="form.directoryId"
+              :options="folderList"
+              @change="initFileCode"
+              ref="cascaderRef"
+              :props="{
+                value: 'id',
+                label: 'name',
+                children: 'sonDirectoryList',
+                emitPath: false,
+                checkStrictly: true
+              }"
+            ></el-cascader>
+          </el-form-item>
+        </el-col>
         <el-col :span="24">
           <el-form-item label="编码分类" prop="codeType">
             <ele-tree-select
@@ -67,22 +87,7 @@
             </div>
           </el-form-item>
         </el-col>
-        <el-col :span="24">
-          <el-form-item label="文档位置" prop="directoryId">
-            <el-cascader
-              style="width: 100%"
-              v-model="form.directoryId"
-              :options="folderList"
-              :props="{
-                value: 'id',
-                label: 'name',
-                children: 'sonDirectoryList',
-                emitPath: false,
-                checkStrictly: true
-              }"
-            ></el-cascader>
-          </el-form-item>
-        </el-col>
+
         <el-col :span="24">
           <el-form-item label="备注" prop="remark">
             <el-input
@@ -155,7 +160,8 @@
         loading: false,
         showEditFlag: false,
         title: '',
-        type: '新建附件'
+        type: '新建附件',
+        nodeDataCode: ''
       };
     },
     computed: {
@@ -174,15 +180,31 @@
       setFolderList(this.folderList); //权限过滤
     },
     methods: {
-      async open() {
-        this.showEditFlag = true;
-        this.list = await selectTreeList();
-        this.options = await listCode();
+      async getTreeCode() {
+        let nodeData = {};
+        await this.$nextTick(() => {
+          nodeData = this.$refs.cascaderRef.getCheckedNodes();
+        });
+        this.nodeDataCode = nodeData[0]?.data?.code;
+      },
+      async initFileCode() {
+        await this.getTreeCode();
+        this.options = this.nodeDataCode
+          ? await listCode(this.nodeDataCode)
+          : [];
         if (this.options.length > 0) {
           this.form.businessCodeId = this.options[0].id;
+        }else{
+          this.form.businessCodeId=''
         }
+      },
+      async open() {
+        this.showEditFlag = true;
+        this.list = await selectTreeList();
+        await this.initFileCode();
         this.setTree(this.list);
       },
+
       setTree(data) {
         data.forEach((item) => {
           item.sonDirectoryList = item.sonDirectoryList.filter(
@@ -197,7 +219,8 @@
         let data = await listParentId({
           pageNum: 1,
           size: 100,
-          parentId: val
+          parentId: val,
+          code: this.nodeDataCode
         });
         this.options = data.list.filter((item) => item.type == 2);
         this.form.businessCodeId = '';
@@ -233,7 +256,7 @@
       },
 
       cancel() {
-        this.form = { ...this.defaultForm,directoryId:this.form.directoryId };
+        this.form = { ...this.defaultForm, directoryId: this.form.directoryId };
         this.$refs.form.clearValidate();
         this.showEditFlag = false;
       }

+ 4 - 6
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,11 +21,9 @@
         >
           浏览
         </el-link>
-
       </template>
     </ele-pro-table>
-    <browse  ref="browseRef"></browse>
-
+    <browse ref="browseRef"></browse>
   </div>
 </template>
 
@@ -41,7 +39,7 @@ export default {
       type: Object,
       default: () => {}
     },
-   
+
     disabledTableList: {
       //已选择列表
       default: () => []

+ 83 - 95
src/components/addDoc/getCode.vue

@@ -8,6 +8,8 @@
     append-to-body
     @close="cancel"
     title="申请编码"
+    :maxable="true"
+    :resizable="true"
   >
     <el-form ref="form" :model="form" :rules="rules" label-width="82px">
       <el-row :gutter="15">
@@ -60,117 +62,103 @@
 </template>
 
 <script>
-import {
-  selectTreeList,
-  listParentId,
-  getCode
-} from './api';
-import headerTitle from '@/components/header-title/index.vue';
+  import { selectTreeList, listParentId, getCode } from './api';
+  import headerTitle from '@/components/header-title/index.vue';
 
-export default {
-  data() {
-    return {
-      rules: {
-        type: [{ required: true, message: '请选择', trigger: 'blur' }],
-        type1: [{ required: true, message: '请选择', trigger: 'blur' }],
-        code: [{ required: true, message: '请申请', trigger: 'blur' }]
-      },
-      list: [],
-      options: [],
-      // 表单数据
-      form: {
-        type: '',
-        code: '',
-        type1: ''
-      },
+  export default {
+    data() {
+      return {
+        rules: {
+          type: [{ required: true, message: '请选择', trigger: 'blur' }],
+          type1: [{ required: true, message: '请选择', trigger: 'blur' }],
+          code: [{ required: true, message: '请申请', trigger: 'blur' }]
+        },
+        list: [],
+        options: [],
+        // 表单数据
+        form: {
+          type: '',
+          code: '',
+          type1: ''
+        },
 
-      showEditFlag: false
-    };
-  },
-  computed: {
-    // 是否开启响应式布局
-    styleResponsive() {
-      return this.$store.state.theme.styleResponsive;
-    }
-  },
-  components: {
-    headerTitle
-  },
-  created() {},
-  methods: {
-    async open() {
-      this.list = await selectTreeList();
-      this.setTree(this.list);
-      this.showEditFlag = true;
-    },
-    setTree(data) {
-      data.forEach((item) => {
-        item.sonDirectoryList = item.sonDirectoryList.filter(
-          (item) => item.type == 1
-        );
-        if (item.sonDirectoryList.length > 0) {
-          this.setTree(item.sonDirectoryList);
-        }
-      });
+        showEditFlag: false
+      };
     },
-    async typeChange(val) {
-      let data = await listParentId({
-        pageNum: 1,
-        size: 100,
-        parentId: val
-      });
-      this.options = data.list.filter((item) => item.type == 2);
-      this.form.type1 = '';
-    },
-    async type1Change(val) {
-      this.form.code = await getCode(val);
-      // let data = await pageSegment({
-      //   pageNum: 1,
-      //   size: 100,
-      //   businessCodeCategoryId: val
-      // });
-      // data.list.map((item) =>{
-      //   console.log(item,'dsds')
-      // });
-      // console.log(code, 'ds');
-      // this.options = data.list.map((item) => item.type == 2);
+    computed: {
+      // 是否开启响应式布局
+      styleResponsive() {
+        return this.$store.state.theme.styleResponsive;
+      }
     },
-    /* 保存编辑 */
-    save() {
-      this.$emit('success', this.form.code);
-      this.cancel();
+    components: {
+      headerTitle
     },
+    created() {},
+    methods: {
+      async open() {
+        this.list = await selectTreeList();
+        this.setTree(this.list);
+        this.showEditFlag = true;
+      },
+      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.type1 = '';
+      },
+      async type1Change(val) {
+        this.form.code = await getCode(val);
+      },
+      /* 保存编辑 */
+      save() {
+        this.$emit('success', this.form.code);
+        this.cancel();
+      },
 
-    cancel() {
-      this.form.type = '';
-      this.form.code = '';
-      this.showEditFlag = false;
+      cancel() {
+        this.form.type = '';
+        this.form.code = '';
+        this.showEditFlag = false;
+      }
     }
-  }
-};
+  };
 </script>
 <style scoped lang="scss">
-.aaa {
-  width: 100%;
-
-  ::v-deep .upload-demo {
+  .aaa {
     width: 100%;
 
-    .el-upload--text {
+    ::v-deep .upload-demo {
       width: 100%;
 
-      button {
+      .el-upload--text {
         width: 100%;
-        background: #ffffff;
-        border: 1px solid #dbdbdb;
-        border-radius: 5px;
+
+        button {
+          width: 100%;
+          background: #ffffff;
+          border: 1px solid #dbdbdb;
+          border-radius: 5px;
+        }
       }
-    }
 
-    .el-upload-list {
-      transform: translate(10px, -39px);
-      position: absolute;
+      .el-upload-list {
+        transform: translate(10px, -39px);
+        position: absolute;
+      }
     }
   }
-}
 </style>

+ 42 - 44
src/components/addDoc/index.vue

@@ -1,8 +1,7 @@
 <template>
   <div>
-    <el-badge :value="value?.length" class="item">
-
-    <el-button
+    <el-badge :value="value.length" class="item">
+      <el-button
         icon="el-icon-plus"
         v-if="type != 'view'"
         type="primary"
@@ -25,51 +24,50 @@
 </template>
 
 <script>
-import fileUpload from "@/BIZComponents/addDoc/main.vue";
+  import fileUpload from './main.vue';
 
-export default {
-  name: "index",
-  components: {fileUpload},
-  model: {
-    prop: 'value',
-    event: 'updateVal'
-  },
-  props:{
-    type:{
-      type: String,
-      default: '',
+  export default {
+    name: 'index',
+    components: { fileUpload },
+    model: {
+      prop: 'value',
+      event: 'updateVal'
     },
-    value:{
-      type: Array,
-      default: ()=>{ return []},
+    props: {
+      type: {
+        type: String,
+        default: ''
+      },
+      value: {
+        type: Array,
+        default: () => {
+          return [];
+        }
+      }
     },
-  },
-  data() {
-    return {
-      selectVal:''
-    }
-  },
-  watch:{
-    value:{
-      handler(newVal){
-        this.selectVal = newVal || []
-      },immediate:true
-    }
-  },
-  created() {
-  },
-  methods:{
-    handleUpload(){
-      this.$refs.fileUploadRef.open(this.selectVal,this.type)
+    data() {
+      return {
+        selectVal: ''
+      };
     },
-    getFiles(val=[]){
-      this.$emit('updateVal', val);
+    watch: {
+      value: {
+        handler(newVal) {
+          this.selectVal = newVal || [];
+        },
+        immediate: true
+      }
+    },
+    created() {},
+    methods: {
+      handleUpload() {
+        this.$refs.fileUploadRef.open(this.selectVal, this.type);
+      },
+      getFiles(val = []) {
+        this.$emit('updateVal', val);
+      }
     }
-  }
-}
+  };
 </script>
 
-
-<style scoped lang="scss">
-
-</style>
+<style scoped lang="scss"></style>

+ 4 - 0
src/components/addDoc/main.vue

@@ -6,6 +6,8 @@
     custom-class="ele-dialog-form"
     append-to-body
     ref="Emodal"
+    :maxable="true"
+    :resizable="true"
   >
     <!-- 数据表格 -->
     <ele-pro-table
@@ -60,6 +62,8 @@
       :close-on-click-modal="false"
       custom-class="ele-dialog-form"
       append-to-body
+      :maxable="true"
+    :resizable="true"
     >
       <doc_template
         :disabledTableList="tableList"

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

@@ -1,68 +1,65 @@
 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
     }
-    selection.forEach(val => {
-      const powerObj = val.userAuthority.find(item => item.id == userId)
-      if (powerObj) {
-        userAuthorityS.push(powerObj)
-      }
-    })
+    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)
+            }
+        })
 
-    if (userAuthorityS.length == 0) {
-      isPower = false
+        if (userAuthorityS.length == 0) {
+            isPower = false
+        }
+        userAuthorityS.forEach(item => {
+            if (item[power] != '1') {
+                isPower = false
+            }
+        })
+        return isPower
     }
-    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']
+}

+ 1 - 1
vue.config.js

@@ -33,7 +33,7 @@ module.exports = {
       '/api': {
         // target: 'http://124.71.68.31:50001', // 测试环境
         // target: 'http://124.71.68.31:50001',
-        target: 'http://192.168.1.105:18086',
+        target: 'http://192.168.1.251:18086',
         // target: 'http://192.168.1.251:18186',
         changeOrigin: true, // 只有这个值为true的情况下 s才表示开启跨域
         pathRewrite: {