From f00c18f1abb1770d1f232a30fd902657b1039ab3 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 11 九月 2026 16:24:28 +0800
Subject: [PATCH] feat(order): 手动下单表单验证和搜索移除供应商名称字段 - 为批次号、委托人、委托人工号字段增加验证逻辑

---
 src/views/business/productOrder/components/addOrder.vue |   33 +++++++++++++---
 src/views/business/productOrder/components/addView.vue  |   33 +++++++++++++---
 src/views/business/productOrder/index.vue               |   23 ++++++++---
 3 files changed, 71 insertions(+), 18 deletions(-)

diff --git a/src/views/business/productOrder/components/addOrder.vue b/src/views/business/productOrder/components/addOrder.vue
index 90506f5..27ee756 100644
--- a/src/views/business/productOrder/components/addOrder.vue
+++ b/src/views/business/productOrder/components/addOrder.vue
@@ -102,12 +102,6 @@
           </el-row>
           <el-row>
             <el-col :span="6">
-              <el-form-item label="渚涘簲鍟嗗悕绉�:" prop="supplierName">
-                <el-input v-model="addObj.supplierName" clearable placeholder="璇疯緭鍏ヤ緵搴斿晢鍚嶇О" size="small">
-                </el-input>
-              </el-form-item>
-            </el-col>
-            <el-col :span="6">
               <el-form-item label="鑱旂郴鏂瑰紡:" prop="phone">
                 <el-input v-model="addObj.phone" :disabled="active>1&&tabIndex!=4" clearable placeholder="閫夋嫨濮旀墭瀹㈡埛" size="small"></el-input>
               </el-form-item>
@@ -652,6 +646,13 @@
   },
   dicts: ['check_type1', 'urgency_level', 'form_type', 'sample_status_list'],
   data() {
+    const validateRequiredText = (message) => (rule, value, callback) => {
+      if (typeof value !== 'string' || !value.trim()) {
+        callback(new Error(message))
+        return
+      }
+      callback()
+    }
     return {
       active: '',
       tabIndex: '',
@@ -737,6 +738,18 @@
         ],
         productionEn: [
           { required: true, message: '璇峰~鍐欑敓浜у崟浣岴N', trigger: 'blur' }
+        ],
+        updateBatchNo: [
+          { required: true, message: '璇峰~鍐欐壒娆″彿', trigger: 'blur' },
+          { validator: validateRequiredText('璇峰~鍐欐壒娆″彿'), trigger: 'blur' }
+        ],
+        prepareUser: [
+          { required: true, message: '璇峰~鍐欏鎵樹汉', trigger: 'blur' },
+          { validator: validateRequiredText('璇峰~鍐欏鎵樹汉'), trigger: 'blur' }
+        ],
+        prepareCode: [
+          { required: true, message: '璇峰~鍐欏鎵樹汉宸ュ彿', trigger: 'blur' },
+          { validator: validateRequiredText('璇峰~鍐欏鎵樹汉宸ュ彿'), trigger: 'blur' }
         ],
       },
       sample: {
@@ -1172,7 +1185,15 @@
         }
         return str.replaceAll(find, value);
       },
+      normalizeRequiredFields() {
+        ['updateBatchNo', 'prepareUser', 'prepareCode'].forEach(field => {
+          if (typeof this.addObj[field] === 'string') {
+            this.addObj[field] = this.addObj[field].trim()
+          }
+        })
+      },
       save() {
+        this.normalizeRequiredFields()
         this.$refs['addObj'].validate((valid) => {
           if (valid) {
             this.sampleList.forEach(item => {
diff --git a/src/views/business/productOrder/components/addView.vue b/src/views/business/productOrder/components/addView.vue
index 033d2e7..473fac4 100644
--- a/src/views/business/productOrder/components/addView.vue
+++ b/src/views/business/productOrder/components/addView.vue
@@ -89,12 +89,6 @@
                 </el-input>
               </el-form-item>
             </el-col>
-            <el-col :span="6">
-              <el-form-item label="渚涘簲鍟嗗悕绉�:" prop="supplierName">
-                <el-input :disabled="active>1&&tabIndex!=4" v-model="addObj.supplierName" clearable placeholder="璇疯緭鍏ヤ緵搴斿晢鍚嶇О" size="small">
-                </el-input>
-              </el-form-item>
-            </el-col>
           </el-row>
           <el-row>
             <el-col :span="6">
@@ -639,6 +633,13 @@
   },
   dicts: ['check_type1', 'urgency_level', 'form_type', 'sample_status_list'],
   data() {
+    const validateRequiredText = (message) => (rule, value, callback) => {
+      if (typeof value !== 'string' || !value.trim()) {
+        callback(new Error(message))
+        return
+      }
+      callback()
+    }
     return {
       active: '',
       tabIndex: '',
@@ -716,6 +717,18 @@
         ],
         productionEn: [
           { required: true, message: '璇峰~鍐欑敓浜у崟浣岴N', trigger: 'blur' }
+        ],
+        updateBatchNo: [
+          { required: true, message: '璇峰~鍐欐壒娆″彿', trigger: 'blur' },
+          { validator: validateRequiredText('璇峰~鍐欐壒娆″彿'), trigger: 'blur' }
+        ],
+        prepareUser: [
+          { required: true, message: '璇峰~鍐欏鎵樹汉', trigger: 'blur' },
+          { validator: validateRequiredText('璇峰~鍐欏鎵樹汉'), trigger: 'blur' }
+        ],
+        prepareCode: [
+          { required: true, message: '璇峰~鍐欏鎵樹汉宸ュ彿', trigger: 'blur' },
+          { validator: validateRequiredText('璇峰~鍐欏鎵樹汉宸ュ彿'), trigger: 'blur' }
         ],
       },
       sample: {
@@ -1113,7 +1126,15 @@
         }
         return str.replaceAll(find, value);
       },
+      normalizeRequiredFields() {
+        ['updateBatchNo', 'prepareUser', 'prepareCode'].forEach(field => {
+          if (typeof this.addObj[field] === 'string') {
+            this.addObj[field] = this.addObj[field].trim()
+          }
+        })
+      },
       save() {
+        this.normalizeRequiredFields()
         this.$refs['addObj'].validate((valid) => {
           if (valid) {
             this.sampleList.forEach(item => {
diff --git a/src/views/business/productOrder/index.vue b/src/views/business/productOrder/index.vue
index 81f24ba..ec878f7 100644
--- a/src/views/business/productOrder/index.vue
+++ b/src/views/business/productOrder/index.vue
@@ -4,20 +4,24 @@
       <el-form :model="entity" ref="entity" size="small" :inline="true">
         <el-form-item label="濮旀墭缂栧彿" prop="entrustCode">
           <el-input v-model="entity.entrustCode" clearable placeholder="璇疯緭鍏�" size="small"
-                    @keyup.enter.native="refreshTable">
+                    @keyup.enter.native="handleQuery">
           </el-input>
         </el-form-item>
         <el-form-item label="鏍峰搧鍚嶇О" prop="sampleName">
           <el-input v-model="entity.sampleName" clearable placeholder="璇疯緭鍏�" size="small"
-                    @keyup.enter.native="refreshTable"></el-input>
+                    @keyup.enter.native="handleQuery"></el-input>
         </el-form-item>
         <el-form-item label="鏍峰搧鍨嬪彿" prop="sampleModel">
           <el-input v-model="entity.sampleModel" clearable placeholder="璇疯緭鍏�" size="small"
-                    @keyup.enter.native="refreshTable()"></el-input>
+                    @keyup.enter.native="handleQuery"></el-input>
+        </el-form-item>
+        <el-form-item label="鎵规鍙�" prop="updateBatchNo" v-if="more">
+          <el-input v-model="entity.updateBatchNo" clearable placeholder="璇疯緭鍏ユ壒娆″彿" size="small"
+                    @keyup.enter.native="handleQuery"></el-input>
         </el-form-item>
         <el-form-item label="涓嬪崟鏃堕棿" prop="createTime" v-if="more">
           <el-date-picker v-model="entity.createTime" clearable format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡" size="small"
-                          @change="refreshTable"
+                          @change="handleQuery"
                           style="width:100%" type="date" value-format="yyyy-MM-dd HH:mm:ss">
           </el-date-picker>
         </el-form-item>
@@ -35,7 +39,7 @@
           <el-button :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3A7BFA;" type="text"
                      @click="more = !more">{{ !more ? '鏇村' : '鏀惰捣' }}
           </el-button>
-          <el-button size="mini" type="primary" @click="refreshTable()">鏌ヨ</el-button>
+          <el-button size="mini" type="primary" @click="handleQuery">鏌ヨ</el-button>
           <el-button size="mini" @click="refresh()">閲嶇疆</el-button>
         </el-form-item>
       </el-form>
@@ -415,6 +419,7 @@
           dataType: "link",
           linkMethod: "editSampleModel",
         },
+        {label: '鎵规鍙�', prop: 'updateBatchNo', width: '160px'},
         {label: '鏍峰搧鏁伴噺', prop: 'sampleNum'},
         {label: '妫�楠屼汉', prop: 'testingName'},
         {
@@ -860,10 +865,15 @@
     },
     refresh() {
       this.resetForm('entity')
-      this.refreshTable()
+      this.handleQuery()
     },
     pagination(page) {
       this.page.size = page.limit
+      this.page.current = page.page
+      this.refreshTable()
+    },
+    handleQuery() {
+      this.page.current = 1
       this.refreshTable()
     },
     // 鎵撳紑淇敼濮旀墭缂栧彿寮规
@@ -1322,6 +1332,7 @@
     handleTab(i) {
       this.tabIndex = i;
       this.multipleSelection = []
+      this.page.current = 1
       this.refreshTable()
     },
     // 鏌ョ湅妫�楠屾暟鎹�

--
Gitblit v1.9.3