Quellcode durchsuchen

Merge branch 'dev' of http://110.41.163.243:9980/kd-aiot/kd-aiot-frontend into dev

tanzx vor 3 Tagen
Ursprung
Commit
27092e165e

+ 1 - 1
.gitignore

@@ -12,7 +12,7 @@ yarn-debug.log*
 yarn-error.log*
 .pnpm-debug.log
 .eslintcache
-
+.history
 # Editor directories and files
 .idea
 .vscode

+ 39 - 21
src/enum/dict.js

@@ -250,51 +250,69 @@ export const produceTypeList = [
   }
 ];
 
-// 付款日计算日期
-export const calcPayDateTypeOp = [
+// 收款日计算日期枚举
+export const ReceiveDateCalcTypeEnum = {
+  ORDER_DATE: 'ORDER_DATE',
+  RECEIVABLE_DATE: 'RECEIVABLE_DATE',
+  INVOICE_DATE: 'INVOICE_DATE',
+  INVOICE_NATURAL_MONTH_END: 'INVOICE_NATURAL_MONTH_END',
+  STATEMENT_DATE: 'STATEMENT_DATE'
+};
+
+// 付款日计算日期枚举
+export const PaymentDateCalcTypeEnum = {
+  ORDER_DATE: 'ORDER_DATE',
+  PAYMENT_DATE: 'PAYMENT_DATE',
+  INVOICE_DATE: 'INVOICE_DATE',
+  INVOICE_NATURAL_MONTH_END: 'INVOICE_NATURAL_MONTH_END',
+  STATEMENT_DATE: 'STATEMENT_DATE'
+};
+
+// 收款日计算日期
+export const calcReceiveDateTypeOp = [
   {
     label: '订单日期',
-    value: 1
+    value: ReceiveDateCalcTypeEnum.ORDER_DATE
   },
   {
-    label: '入库日期',
-    value: 2
+    label: '应收单日期',
+    value: ReceiveDateCalcTypeEnum.RECEIVABLE_DATE
   },
   {
-    label: '收票日期',
-    value: 3
+    label: '票日期',
+    value: ReceiveDateCalcTypeEnum.INVOICE_DATE
   },
   {
-    label: '对账单日期',
-    value: 4
+    label: '开票自然月截止日',
+    value: ReceiveDateCalcTypeEnum.INVOICE_NATURAL_MONTH_END
   },
   {
-    label: '应付单日期',
-    value: 5
+    label: '对账单日期',
+    value: ReceiveDateCalcTypeEnum.STATEMENT_DATE
   }
 ];
 
-// 款日计算日期
-export const calcReceiveDateTypeOp = [
+// 款日计算日期
+export const calcPayDateTypeOp = [
   {
     label: '订单日期',
-    value: '1'
+    value: PaymentDateCalcTypeEnum.ORDER_DATE
   },
   {
-    label: '出库日期',
-    value: '2'
+    label: '应付单日期',
+    value: PaymentDateCalcTypeEnum.PAYMENT_DATE
   },
   {
-    label: '应收单日期',
-    value: '3'
+    label: '开票日期',
+    value: PaymentDateCalcTypeEnum.INVOICE_DATE
   },
   {
-    label: '开票日',
-    value: '4'
+    label: '开票自然月截止日',
+    value: PaymentDateCalcTypeEnum.INVOICE_NATURAL_MONTH_END
   },
   {
     label: '对账单日期',
-    value: '5'
+    value: PaymentDateCalcTypeEnum.STATEMENT_DATE
   }
 ];
 

+ 62 - 56
src/views/factoryModel/station/components/edit.vue

@@ -39,43 +39,6 @@
             </el-form-item>
           </el-col>
 
-          <el-col :span="8">
-            <el-form-item label="工位类型:" prop="extInfo.type">
-              <el-select class="ele-fluid" v-model="form.extInfo.type">
-                <el-option
-                  label="设备"
-                  :value="1"
-                  @click.native="form.extInfo.teamId = null"
-                />
-                <el-option
-                  label="工位"
-                  :value="3"
-                  @click.native="
-                    form.extInfo.assetName = null;
-                    form.extInfo.assetCode = null;
-                    form.extInfo.criticalEquipment = '';
-                    form.extInfo.keyEquipment = '';
-                  "
-                />
-              </el-select>
-            </el-form-item>
-          </el-col>
-
-          <el-col v-if="form.extInfo.type == 1" :span="8">
-            <el-form-item label="设备编码:" prop="extInfo.assetCode">
-              <el-input
-                v-model="form.extInfo.assetCode"
-                readonly
-                @click.native="chooseAsset"
-              />
-            </el-form-item>
-          </el-col>
-
-          <el-col v-if="form.extInfo.type == 1" :span="8">
-            <el-form-item label="设备名称:" prop="extInfo.assetName">
-              <el-input disabled v-model="form.extInfo.assetName" />
-            </el-form-item>
-          </el-col>
 
           <el-col :span="8">
             <el-form-item label="所属区域:" prop="location_city">
@@ -172,6 +135,46 @@
               </el-select>
             </el-form-item>
           </el-col>
+
+
+          <el-col :span="8">
+            <el-form-item label="工位类型:" prop="extInfo.type">
+              <el-select class="ele-fluid" v-model="form.extInfo.type">
+                <el-option
+                  label="设备"
+                  :value="1"
+                  @click.native="form.extInfo.teamId = null"
+                />
+                <el-option
+                  label="工位"
+                  :value="3"
+                  @click.native="
+                    form.extInfo.assetName = null;
+                    form.extInfo.assetCode = null;
+                    form.extInfo.criticalEquipment = '';
+                    form.extInfo.keyEquipment = '';
+                  "
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+
+          <el-col v-if="form.extInfo.type == 1" :span="8">
+            <el-form-item label="设备编码:" prop="extInfo.assetCode">
+              <el-input
+                v-model="form.extInfo.assetCode"
+                readonly
+                @click.native="chooseAsset"
+              />
+            </el-form-item>
+          </el-col>
+
+          <el-col v-if="form.extInfo.type == 1" :span="8">
+            <el-form-item label="设备名称:" prop="extInfo.assetName">
+              <el-input disabled v-model="form.extInfo.assetName" />
+            </el-form-item>
+          </el-col>
+
           <el-col :span="8">
             <el-form-item label="班组:" prop="extInfo.teamId">
               <el-select
@@ -191,6 +194,7 @@
               </el-select>
             </el-form-item>
           </el-col>
+
           <el-col :span="8">
             <el-form-item label="人员:" prop="extInfo.userIds">
               <el-select
@@ -209,6 +213,27 @@
             </el-form-item>
           </el-col>
 
+
+          <el-col :span="8">
+            <el-form-item label="所属工作中心:" prop="extInfo.workCenterId">
+              <el-select
+                v-model="form.extInfo.workCenterId"
+                filterable
+                disabled
+                placeholder="请选择"
+                style="width: 100%"
+              >
+                <el-option
+                  v-for="item in options.workCenterList"
+                  :key="item.id"
+                  :label="item.name"
+                  :value="item.id"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
+
           <el-col :span="8">
             <el-form-item label="负责人部门:" prop="extInfo.principalDep">
               <ele-tree-select
@@ -253,25 +278,6 @@
             </el-form-item>
           </el-col> -->
 
-          <el-col :span="8">
-            <el-form-item label="所属工作中心:" prop="extInfo.workCenterId">
-              <el-select
-                v-model="form.extInfo.workCenterId"
-                filterable
-                disabled
-                placeholder="请选择"
-                style="width: 100%"
-              >
-                <el-option
-                  v-for="item in options.workCenterList"
-                  :key="item.id"
-                  :label="item.name"
-                  :value="item.id"
-                >
-                </el-option>
-              </el-select>
-            </el-form-item>
-          </el-col>
 
           <el-col :span="8">
             <el-form-item label="状态:" prop="enabled">

+ 0 - 1
src/views/material/product/detail.vue

@@ -1134,7 +1134,6 @@
           this.industryAttribute = res.value;
         }
       });
-
       //新增
 
       this.$set(

+ 2 - 2
src/views/rulesManagement/paymentTerms/index.vue

@@ -83,7 +83,7 @@
   import searchForm from './components/searchForm.vue';
   import addDialog from '@/views/rulesManagement/receiveTerms/components/addDialog.vue';
   import tabMixins from '@/mixins/tableColumnsMixin';
-  import { calcReceiveDateTypeOp, payConfirmTypeOp, dateUnitOptions } from '@/enum/dict';
+  import { calcPayDateTypeOp, payConfirmTypeOp, dateUnitOptions } from '@/enum/dict';
   import {
     getTableList,
     deleteInformation,
@@ -139,7 +139,7 @@
             showOverflowTooltip: true,
             minWidth: 160,
             formatter: (row) => {
-              return calcReceiveDateTypeOp.find(item => item.value === row.dateType)?.label || '';
+              return calcPayDateTypeOp.find(item => item.value === row.dateType)?.label || '';
             }
           },
           {

+ 20 - 4
src/views/rulesManagement/receiveTerms/components/addDialog.vue

@@ -42,7 +42,7 @@
           style="width: 100%"
           :disabled="isDetail"
         >
-          <el-option v-for="item in calcReceiveDateTypeOp" :key="item.value" :label="item.label" :value="item.value" />
+          <el-option v-for="item in dateTypeOptions" :key="item.value" :label="item.label" :value="item.value" />
         </el-select>
       </el-form-item>
 
@@ -173,7 +173,14 @@
 
 <script>
   import { addReceiveTerms, updateReceiveTerms, getInfo } from '@/api/rulesManagement/receiveTerms';
-  import { calcReceiveDateTypeOp, payConfirmTypeOp, dateUnitOptions } from '@/enum/dict';
+  import {
+    calcReceiveDateTypeOp,
+    calcPayDateTypeOp,
+    payConfirmTypeOp,
+    dateUnitOptions,
+    PaymentDateCalcTypeEnum,
+    ReceiveDateCalcTypeEnum
+  } from '@/enum/dict';
 
   let paymentId = 0;
 
@@ -191,7 +198,6 @@
         loading: false,
         isUpdate: false,
         isDetail: false,
-        calcReceiveDateTypeOp,
         payConfirmTypeOp,
         // 支付周期单位(天/月/年)
         dateUnitOptions,
@@ -216,6 +222,12 @@
         }
       };
     },
+    computed: {
+      // 收/付款日计算日期:根据 conditionType 切换对应枚举选项
+      dateTypeOptions() {
+        return this.conditionType === 'rules' ? calcReceiveDateTypeOp : calcPayDateTypeOp;
+      }
+    },
     methods: {
       // 生成编码 SKTJ+年月日+3位数字
       generateCode() {
@@ -253,11 +265,15 @@
       },
 
       resetForm() {
+        // 收/付款日计算日期默认值:按当前条件类型取对应枚举的"订单日期"
+        const defaultDateType = this.conditionType === 'rules'
+          ? ReceiveDateCalcTypeEnum.ORDER_DATE
+          : PaymentDateCalcTypeEnum.ORDER_DATE;
         this.form = {
           // id: null,
           code: '',
           name: '',
-          dateType: '1',        // 默认:订单日期
+          dateType: defaultDateType,        // 默认:订单日期
           determinationMethod: '1',         // 默认:交易日(隐藏月数、天数)
           determinationMethodMonth: 0,
           determinationMethodDay: 0,

+ 13 - 0
src/views/technology/route/components/user-detail.vue

@@ -122,6 +122,10 @@
       <template v-slot:orderNum="{ row }">
         {{ row.orderNum }}
       </template>
+
+      <template v-slot:isParallel="{ row }">
+        {{ !!row.isParallel ? '是' : '否' }}
+      </template>
     </ele-pro-table>
     <bpmDetail
       v-if="activeComp == 'bpm' && form.processInstanceId"
@@ -211,6 +215,14 @@
             align: 'center',
             minWidth: 110
           },
+          {
+            prop: 'isParallel',
+            label: '并行工序',
+            showOverflowTooltip: true,
+            align: 'center',
+            slot: 'isParallel',
+            minWidth: 110
+          },
           {
             align: 'center',
             prop: 'controlName',
@@ -257,6 +269,7 @@
 
           let arr = res?.list?.map((it) => {
             it.detail.orderNum = it.orderNum;
+            it.detail.isParallel = it.isParallel;
             return it.detail;
           });
           return {

+ 37 - 3
src/views/technology/route/components/user-taskinstance.vue

@@ -33,7 +33,11 @@
         </template>
 
         <template v-slot:orderNum="{ row }">
-          <el-input v-model="row.orderNum" placeholder="请输入排序"></el-input>
+          <el-input
+            v-model="row.orderNum"
+            placeholder="请输入排序"
+            @blur="checkOrderNum(row)"
+          ></el-input>
         </template>
 
         <template v-slot:processLabel="{ row }">
@@ -268,10 +272,40 @@
     },
 
     methods: {
+      // 获取下一个可用的 orderNum,避免重复
+      getNextOrderNum() {
+        const data = this.$refs.table.getData();
+        if (!data || data.length === 0) {
+          return 1;
+        }
+        const orderNums = data
+          .map((item) => Number(item.orderNum))
+          .filter((n) => !isNaN(n));
+        if (orderNums.length === 0) {
+          return 1;
+        }
+        return Math.max(...orderNums) + 1;
+      },
+      // 校验排序号是否重复
+      checkOrderNum(row) {
+        if (row.orderNum === '' || row.orderNum === null || row.orderNum === undefined) {
+          return;
+        }
+        const data = this.$refs.table.getData();
+        const dup = data.find(
+          (item) => item !== row && String(item.orderNum) === String(row.orderNum)
+        );
+        if (dup) {
+          this.$message.warning(`排序号 ${row.orderNum} 已存在,请重新输入`);
+          this.$nextTick(() => {
+            row.orderNum = '';
+          });
+        }
+      },
       addParamrter() {
         // console.log(this.$refs.ProductionCom?.selection);
         let arr = this.$refs.ProductionCom.selection;
-        let len = this.$refs.table.getData().length + 1;
+        let len = this.getNextOrderNum();
         let arrM = arr.map((item, index) => {
           return {
             ...item.detail,
@@ -370,7 +404,7 @@
         }
 
         if (data.length != 0) {
-          let len = this.$refs.table.getData().length + 1;
+          let len = this.getNextOrderNum();
           let arrM = data.map((item, index) => {
             return {
               ...item.detail,