From 11d7990309ddace2fa600cbeae58e3ab5ac368f9 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期日, 20 九月 2026 19:25:45 +0800
Subject: [PATCH] 新疆-融邦 1. 委外管理:新增合作商档案、委外订单、往来台账三个页面及接口;合作商附件弹框支持直接上传/删除并即时保存。   2. 信托基金与代储台账:客户档案加「信托基金 / 代储金额」并对超限标红提示;销售台账拆「卖油 / 代储」页签,代储走油库+储罐+合同金额,卖油保留产品明细;台账列表加审批状态与超限红字;审批中心显示销售合同号并能下钻台账明细。   3. 储罐号带入库存:储罐信息表单加「是否启用 / 用途 / 租客信息」联动与校验;库存管理、批号明细、入库/出库表单与列表补齐储罐号、油品、物流、过磅等字段展示。   4. 出库即发货与往来备件:出库台账区分「发货单 / 油品出库」两类来源并分别处理详情;新增备件出入库流水页面。   5. 车辆管理与残油联动:新增车辆管理页面;油品出入库表单物流信息顺序调整,车牌/车挂牌号联动只读。   6. 油品出库联动发货台账:发货台账加「发货单号 / 销售合同号」筛选,修复油品出库行批号列取错字段。   7. 采购申请模块:新增采购申请页面及接口。   8. 付款流水组件:抽出公共「付款流水」弹框组件,采购付款分栏、收付款台账与委外往来台账复用。   9. 列调整:收付款台账删除「付款金额 / 退货金额」;委外往来台账删除「回款金额」,并去掉金额列右对齐。

---
 src/components/ProcessParamListDialog.vue |   50 ++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 42 insertions(+), 8 deletions(-)

diff --git a/src/components/ProcessParamListDialog.vue b/src/components/ProcessParamListDialog.vue
index 49b1c66..5af24bb 100644
--- a/src/components/ProcessParamListDialog.vue
+++ b/src/components/ProcessParamListDialog.vue
@@ -16,7 +16,7 @@
               <Plus />
             </el-icon>鏂板
           </el-button>
-          <el-button v-if="editable"
+          <!-- <el-button v-if="editable"
                      type="primary"
                      link
                      size="small"
@@ -24,7 +24,7 @@
             <el-icon>
               <Refresh />
             </el-icon>鍚屾宸ュ簭鍙傛暟
-          </el-button>
+          </el-button> -->
         </div>
       </div>
       <div class="params-list">
@@ -130,6 +130,7 @@
             </el-form-item>
             <el-form-item label="鏍囧噯鍊�">
               <el-input v-model="selectedParam.standardValue"
+                        @input="val => onStandardValueInput(val, selectedParam)"
                         placeholder="璇疯緭鍏ラ粯璁ゅ��" />
             </el-form-item>
             <el-form-item label="鏄惁蹇呭~">
@@ -144,9 +145,9 @@
         </div>
       </div>
       <template #footer>
-        <el-button @click="selectParamDialogVisible = false">鍙栨秷</el-button>
         <el-button type="primary"
                    @click="handleParamSelectSubmit">纭畾</el-button>
+        <el-button @click="selectParamDialogVisible = false">鍙栨秷</el-button>
       </template>
     </el-dialog>
     <!-- 缂栬緫鍙傛暟瀵硅瘽妗� -->
@@ -175,13 +176,14 @@
         <el-form-item label="鏍囧噯鍊�"
                       prop="standardValue">
           <el-input v-model="editParamForm.standardValue"
+                    @input="val => onStandardValueInput(val, editParamForm)"
                     placeholder="璇疯緭鍏ユ爣鍑嗗��" />
         </el-form-item>
       </el-form>
       <template #footer>
-        <el-button @click="editParamDialogVisible = false">鍙栨秷</el-button>
         <el-button type="primary"
                    @click="handleEditParamSubmit">纭畾</el-button>
+        <el-button @click="editParamDialogVisible = false">鍙栨秷</el-button>
       </template>
     </el-dialog>
   </el-dialog>
@@ -268,8 +270,32 @@
     paramFormat: "",
     unit: "",
   });
+
+  const onStandardValueInput = (val, target) => {
+    const data = target.value || target;
+    const type = data.paramType || data.parameterType;
+    if (type === 1) {
+      // 鏁板�兼牸寮忥細涓嶈兘杈撳叆涓枃鎴栬嫳鏂囧瓧绗�
+      data.standardValue = val.replace(/[a-zA-Z\u4e00-\u9fa5]/g, "");
+    }
+  };
+
   const editParamRules = ref({
-    // standardValue: [{ required: true, message: "璇疯緭鍏ユ爣鍑嗗��", trigger: "blur" }],
+    standardValue: [
+      {
+        validator: (rule, value, callback) => {
+          const type =
+            editParamForm.value.paramType || editParamForm.value.parameterType;
+          if (type === 1 && value) {
+            if (/[a-zA-Z\u4e00-\u9fa5]/.test(value)) {
+              return callback(new Error("鏁板�兼牸寮忎笉鑳藉寘鍚腑鑻辨枃瀛楃"));
+            }
+          }
+          callback();
+        },
+        trigger: "blur",
+      },
+    ],
   });
   const editParamFormRef = ref(null);
 
@@ -346,7 +372,14 @@
       size: paramPage.value.size,
     }).then(res => {
       if (res.code === 200) {
-        filteredParamList.value = res.data?.records || [];
+        const existingParamIds = new Set(
+          (props.paramList || [])
+            .map(item => Number(item.paramId || item.technologyOperationParamId))
+            .filter(id => Number.isFinite(id) && id > 0)
+        );
+        filteredParamList.value = (res.data?.records || []).filter(
+          item => !existingParamIds.has(Number(item.id))
+        );
         paramPage.value.total = res.data.total || 0;
       } else {
         ElMessage.error(res.msg || "鏌ヨ澶辫触");
@@ -375,7 +408,7 @@
     if (props.pageType === "order") {
       addProcessRouteItemParamOrder({
         productionOrderId: Number(props.orderId),
-        technologyRoutingOperationParamId: props.process.id,
+        productionOrderRoutingOperationId: props.process.id,
         paramId: selectedParam.value.id,
         standardValue: selectedParam.value.standardValue || "",
         isRequired: selectedParam.value.isRequired || 0,
@@ -428,6 +461,7 @@
             id: editParamForm.value.id,
             standardValue: editParamForm.value.standardValue || "",
             isRequired: editParamForm.value.isRequired || 0,
+            // productionOrderRoutingOperationId: props.process.id,
           })
             .then(res => {
               if (res.code === 200) {
@@ -639,4 +673,4 @@
   .detail-text {
     font-weight: 500;
   }
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.9.3