Bladeren bron

文档修改

yusheng 11 maanden geleden
bovenliggende
commit
aba17fcfb2
2 gewijzigde bestanden met toevoegingen van 160 en 91 verwijderingen
  1. 2 2
      src/api/businessCode/index.js
  2. 158 89
      src/views/doc/components/getCode.vue

+ 2 - 2
src/api/businessCode/index.js

@@ -28,8 +28,8 @@ export async function pageSegment(data) {
 
 
 // 生成编码
-export async function getCode(id) {
-  const res = await request.get(`/main/business_code_category/applyForCode/`+id);
+export async function getCode(data) {
+  const res = await request.post(`/main/business_code_category/applyForCode`,data);
   if (res.data.code == 0) {
     return res.data.data;
   }

+ 158 - 89
src/views/doc/components/getCode.vue

@@ -49,9 +49,39 @@
             <el-input v-model="form.code" disabled></el-input>
           </el-form-item>
         </el-col>
+
+        <el-col :span="24">
+          <headerTitle title="编码码段"></headerTitle>
+          <template v-for="item in segmentList">
+            <el-form-item :label="item.name" :prop="item.id" :key="item.id">
+              <el-input
+                v-if="item.roughRule == 5 || item.roughRule == 4"
+                :disabled="true"
+                v-model="item.currentValue"
+              ></el-input>
+              <el-select
+                v-else
+                v-model="item.currentValue"
+                placeholder="请选择"
+                style="width: 100%"
+              >
+                <el-option
+                  v-for="(segmentValue, index) in item.value"
+                  :key="index"
+                  :label="segmentValue.value"
+                  :value="segmentValue.value"
+                  @click.native="
+                    segmentValueChange(item.id, segmentValue.value, index)
+                  "
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </template>
+        </el-col>
       </el-row>
     </el-form>
-    <headerTitle title="编码码段"></headerTitle>
+
     <template v-slot:footer>
       <el-button @click="cancel">取消</el-button>
       <el-button type="primary" @click="save"> 确认 </el-button>
@@ -60,62 +90,80 @@
 </template>
 
 <script>
-import {
-  selectTreeList,
-  listParentId,
-  pageSegment,
-  getCode
-} from '@/api/businessCode';
-import headerTitle from '@/components/header-title/index.vue';
+  import {
+    selectTreeList,
+    listParentId,
+    pageSegment,
+    getCode
+  } from '@/api/businessCode';
+  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: ''
-      },
-      nodeDataCode:'',
-      showEditFlag: false
-    };
-  },
-  computed: {
-    // 是否开启响应式布局
-    styleResponsive() {
-      return this.$store.state.theme.styleResponsive;
-    }
-  },
-  components: {
-    headerTitle
-  },
-  created() {},
-  methods: {
-    async open(nodeDataCode) {
+  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: [],
+        segmentList: [],
+        // 表单数据
+        form: {
+          type: '',
+          code: '',
+          type1: ''
+        },
+        nodeData: null,
+        showEditFlag: false
+      };
+    },
+    computed: {
+      // 是否开启响应式布局
+      styleResponsive() {
+        return this.$store.state.theme.styleResponsive;
+      }
+    },
+    components: {
+      headerTitle
+    },
+    created() {},
+    methods: {
+      // async open(nodeData) {
+      //   this.list = await selectTreeList();
+      //   this.nodeData = nodeData;
+      //   this.setTree(this.list);
+      //   this.showEditFlag = true;
+      // },
+      async open(nodeDataCode) {
       this.list = await selectTreeList();
       this.nodeDataCode=nodeDataCode
       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) {
+      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,
+      //     objId: this.nodeData?.id,
+      //     objParentId: this.nodeData?.parentId
+      //   });
+      //   this.options = data.list.filter((item) => item.type == 2);
+      //   this.form.type1 = '';
+      // },
+      async typeChange(val) {
       let data = await listParentId({
         pageNum: 1,
         size: 100,
@@ -125,55 +173,76 @@ export default {
       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);
-    },
-    /* 保存编辑 */
-    save() {
-      this.$emit('success', this.form.code);
-      this.cancel();
-    },
+      async type1Change(val) {
+        let codeData = await getCode({
+          categoryId: val
+        });
+        this.form.code = codeData.codeStr;
+
+        let data = await pageSegment({
+          pageNum: 1,
+          size: 100,
+          businessCodeCategoryId: val
+        });
+        this.segmentList = data.list.map((item, index) => {
+          item['currentValue'] = codeData.values[index];
+          return item;
+        });
+      },
+      async segmentValueChange() {
+        // codeManageId:id,
+        //   code:value,
+        let codeData = await getCode({
+          categoryId: this.form.type1,
+
+          codeManageArray: this.segmentList.map((item) => {
+            return {
+              codeManageId: item.id,
+              code: item.currentValue
+            };
+          }),
+          isUpdateNo: 1,
+        });
+        this.form.code = codeData.codeStr;
+      },
+      /* 保存编辑 */
+      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;
+        this.segmentList = [];
+        this.options = [];
+      }
     }
-  }
-};
+  };
 </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>