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