Przeglądaj źródła

feat(编码管理): 新增已申请/已使用编码展示功能,优化弹窗布局和交互

yusheng 7 miesięcy temu
rodzic
commit
bd6408074f

+ 8 - 0
src/components/addDoc/api/index.js

@@ -98,6 +98,14 @@ export async function getCode(data) {
   }
   return Promise.reject(new Error(res.data.message));
 }
+// 已使用已申请编码
+export async function businesscodeapplyPage(data) {
+  const res = await request.post(`/main/businesscodeapply/page`,data);
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
 
 /**
  * 上传文件

+ 149 - 72
src/components/addDoc/getCode.vue

@@ -1,7 +1,7 @@
 <!-- 用户编辑弹窗 -->
 <template>
   <ele-modal
-    width="500px"
+    width="1000px"
     :visible.sync="showEditFlag"
     :close-on-click-modal="false"
     custom-class="ele-dialog-form"
@@ -11,73 +11,110 @@
   >
     <el-form ref="form" :model="form" :rules="rules" label-width="82px">
       <el-row :gutter="15">
-        <el-col :span="24">
-          <el-form-item label="编码分类" prop="type">
-            <ele-tree-select
-              clearable
-              :data="list"
-              v-model="form.type"
-              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="type1">
-            <el-select
-              v-model="form.type1"
-              placeholder="请选择"
-              style="width: 100%"
-              @change="type1Change"
-            >
-              <el-option
-                v-for="item in options"
-                :key="item.id"
-                :label="item.name"
-                :value="item.id"
-              >
-              </el-option>
-            </el-select>
-          </el-form-item>
-        </el-col>
-        <el-col :span="24">
-          <el-form-item label="编码预览" prop="code">
-            <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-col :span="12">
+          <el-row :gutter="15">
+            <el-col :span="24">
+              <el-form-item label="编码分类" prop="type">
+                <ele-tree-select
+                  clearable
+                  :data="list"
+                  v-model="form.type"
+                  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="type1">
+                <el-select
+                  v-model="form.type1"
+                  placeholder="请选择"
+                  style="width: 100%"
+                  @change="type1Change"
                 >
-                </el-option>
-              </el-select>
-            </el-form-item>
-          </template>
+                  <el-option
+                    v-for="item in options"
+                    :key="item.id"
+                    :label="item.name"
+                    :value="item.id"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item label="编码预览" prop="code">
+                <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-col>
+        <el-col :span="12">
+          <ele-pro-table
+            ref="table"
+            :initLoad="false"
+            :columns="[
+              {
+                prop: 'businessCode',
+                label: '已申请编码',
+                align: 'center'
+              }
+            ]"
+            :datasource="datasource"
+            height="300px"
+            full-height="calc(100vh - 116px)"
+            @cell-dblclick="handleDblclick"
+            :page-size="10"
+          ></ele-pro-table>
+          <ele-pro-table
+            ref="table1"
+            :initLoad="false"
+            :columns="[
+              {
+                prop: 'businessCode',
+                label: '已使用编码',
+                align: 'center'
+              }
+            ]"
+            :datasource="datasource1"
+            height="300px"
+            full-height="calc(100vh - 116px)"
+            :page-size="10"
+          ></ele-pro-table>
         </el-col>
       </el-row>
     </el-form>
@@ -94,7 +131,8 @@
     selectTreeList,
     listParentId,
     pageSegment,
-    getCode
+    getCode,
+    businesscodeapplyPage
   } from './api/index.js';
   import headerTitle from '@/components/header-title/index.vue';
 
@@ -170,13 +208,14 @@
           item['currentValue'] = codeData.values[index];
           return item;
         });
+        this.$nextTick(() => {
+          this.$refs.table.reload({where:{}});
+          this.$refs.table1.reload({where:{}});
+        });
       },
       async segmentValueChange() {
-        // codeManageId:id,
-        //   code:value,
         let codeData = await getCode({
           categoryId: this.form.type1,
-
           codeManageArray: this.segmentList.map((item) => {
             return {
               codeManageId: item.id,
@@ -186,13 +225,47 @@
           isUpdateNo: 1
         });
         this.form.code = codeData.codeStr;
+             this.$nextTick(() => {
+          this.$refs.table.reload({where:{}});
+          this.$refs.table1.reload({where:{}});
+        });
+      },
+      /* 表格数据源 */
+      datasource({ page, limit, where }) {
+        if (where.isCancle) {
+          return [];
+        }
+        return businesscodeapplyPage({
+          pageNum: page,
+          size: limit,
+          status: 0,
+          buninessCategoryId: this.form.type1,
+          ...where
+        });
+      },
+      /* 表格数据源 */
+      datasource1({ page, limit, where }) {
+        console.log(where,'dsdsd')
+        if (where.isCancle) {
+          return [];
+        }
+        return businesscodeapplyPage({
+          pageNum: page,
+          buninessCategoryId: this.form.type1,
+          size: limit,
+          status: 1,
+          ...where
+        });
       },
       /* 保存编辑 */
       save() {
         this.$emit('setCode', this.form.code);
         this.cancel();
       },
-
+      handleDblclick(row) {
+        this.$emit('setCode', row.businessCode);
+        this.cancel();
+      },
       cancel() {
         this.form.type = '';
         this.form.code = '';
@@ -200,6 +273,10 @@
         this.showEditFlag = false;
         this.segmentList = [];
         this.options = [];
+        this.$nextTick(() => {
+          this.$refs.table.reload({ where: { isCancle: true } });
+          this.$refs.table1.reload({ where: { isCancle: true } });
+        });
       }
     }
   };

+ 10 - 9
src/views/productionScheduling/productionLineBeat/components/addOrEditDialog.vue

@@ -175,7 +175,11 @@
     factoriesName: '', //工厂名称
     list: [] //表格数据
   };
-  import { getFactoryarea } from '@/api/factoryModel';
+  import {
+    getFactoryarea,
+    listFactoryLineByFactoryId
+  } from '@/api/factoryModel';
+
   import ProductModal from '@/components/productList/product-list.vue';
   import {
     saveOrUpdate,
@@ -297,15 +301,12 @@
         });
         this.factoryList = list || [];
       },
+      /* 获取产线 */
+
       async change_factoryId(item) {
-        const { list } = await getFactoryarea({
-          pageNum: 1,
-          size: 999,
-          type: 4,
-          factoryId: item.id,
-          enable: 1
-        });
-        this.productionLineList = list || [];
+        this.productionLineList = await listFactoryLineByFactoryId([
+          this.form.factoriesId
+        ]);
         this.form.factoriesName = item.name;
       },
       change_productionLineId(item, index) {