From d025bd201ab0dcc127630f2b68c650d975bdabaf Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期三, 16 九月 2026 11:09:17 +0800
Subject: [PATCH] fix: 1.下单展示模板 2.页面温湿度调整
---
src/views/business/productOrder/components/addOrder.vue | 121 +++++++++++++++++++++++++++++-----------
1 files changed, 88 insertions(+), 33 deletions(-)
diff --git a/src/views/business/productOrder/components/addOrder.vue b/src/views/business/productOrder/components/addOrder.vue
index 975f4ea..ceeb352 100644
--- a/src/views/business/productOrder/components/addOrder.vue
+++ b/src/views/business/productOrder/components/addOrder.vue
@@ -42,7 +42,38 @@
</div>
<div v-show="!cableConfigShow&&!auxiliaryShow" style="margin-top: 10px">
<div class="search">
- <el-form ref="addObj" :inline="true" :model="addObj" :rules="addObjRules" label-width="108px" label-position="right">
+ <el-form ref="newJuOrder" :inline="true" :model="addObj" label-width="108px" label-position="right">
+ <el-row>
+ <el-col :span="6"><el-form-item label="浜у搧鍚嶇О"><el-input v-model="addObj.sample" disabled size="small"><template slot="append"><el-button :disabled="active>1" icon="el-icon-search" @click="selectStandardTree = true" /></template></el-input></el-form-item></el-col>
+ <el-col :span="6"><el-form-item label="鐢熶骇鍗曚綅"><el-input v-model="addObj.production" :disabled="active>1" size="small" /></el-form-item></el-col>
+ <el-col :span="6"><el-form-item label="濮旀墭鍗曚綅"><el-input v-model="addObj.company" disabled size="small"><template slot="append"><el-button :disabled="active>1" icon="el-icon-search" @click="openCompanyList" /></template></el-input></el-form-item></el-col>
+ <el-col :span="6"><el-form-item label="妫�楠岀被鍒�"><el-select v-model="addObj.orderType" :disabled="active>1" size="small"><el-option v-for="item in dict.type.check_type1" :key="item.value" :label="item.label" :value="item.value" /></el-select></el-form-item></el-col>
+ </el-row>
+ <el-row v-if="addObj.standardTreeId || boundTemplateList.length">
+ <el-col :span="24">
+ <el-form-item label="鍘熷璁板綍妯℃澘">
+ <div v-loading="templateBindingLoading" class="template-tag-list">
+ <el-tag v-for="item in boundTemplateList" :key="item.templateId" size="small" effect="plain">{{ item.name }}</el-tag>
+ <span v-if="!templateBindingLoading && boundTemplateList.length === 0" class="empty-template-text">鏆傛湭缁戝畾鍘熷璁板綍妯℃澘</span>
+ </div>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="6"><el-form-item label="鏍峰搧鏁伴噺"><el-input v-model="addObj.testQuantity" :disabled="active>1" placeholder="濡傦細2妗躲��500mL" size="small" /></el-form-item></el-col>
+ <el-col :span="6"><el-form-item label="鏍峰搧缂栧彿"><el-input v-model="sampleCode" :disabled="active>1" size="small" /></el-form-item></el-col>
+ <el-col :span="6"><el-form-item label="鏍峰搧澶栬"><el-input v-model="addObj.sampleStatus" :disabled="active>1" size="small" /></el-form-item></el-col>
+ <el-col :span="6"><el-form-item label="閫佹牱浜�"><el-input v-model="addObj.prepareUser" :disabled="active>1" size="small" /></el-form-item></el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="6"><el-form-item label="鐢熶骇鏃ユ湡"><el-date-picker v-model="addObj.productionDate" type="date" value-format="yyyy-MM-dd" :disabled="active>1" size="small" /></el-form-item></el-col>
+ <el-col :span="6"><el-form-item label="鐢熶骇鎵瑰彿"><el-input v-model="addObj.productionBatch" :disabled="active>1" size="small" /></el-form-item></el-col>
+ <el-col :span="6"><el-form-item label="閫佹牱鏃ユ湡"><el-date-picker v-model="addObj.sampleDate" type="date" value-format="yyyy-MM-dd" :disabled="active>1" size="small" /></el-form-item></el-col>
+ <el-col :span="6"><el-form-item label="鑱旂郴鏂瑰紡"><el-input v-model="addObj.phone" :disabled="active>1" size="small" /></el-form-item></el-col>
+ </el-row>
+ <el-row><el-col :span="12"><el-form-item label="澶囨敞"><el-input v-model="addObj.remark" :disabled="active>1" size="small" /></el-form-item></el-col></el-row>
+ </el-form>
+ <el-form v-if="false" ref="addObj" :inline="true" :model="addObj" :rules="addObjRules" label-width="108px" label-position="right">
<el-row>
<el-col :span="6">
<el-form-item label="濮旀墭缂栧彿:" prop="entrustCode">
@@ -205,7 +236,7 @@
</el-row>
</el-form>
</div>
- <div>
+ <div v-if="false">
<div style="display: flex;justify-content: space-between;background-color: #F5F7FB;margin-bottom: 6px">
<div v-if="active==1">
<el-form :inline="true" :model="addObj1" label-width="90px">
@@ -427,7 +458,7 @@
<el-col :span="24">
<span><i
:class="`node_i ${data.children != undefined ? (data.code==='[1]'?'el-icon-folder-opened':'el-icon-folder') : 'el-icon-tickets'}`"></i>
- {{ data.code }} {{ data.label }}</span>
+ {{ data.label }}</span>
</el-col>
</el-row>
</div>
@@ -606,7 +637,7 @@
upInsOrderOfState
} from "@/api/business/add";
import {selectUserCondition} from "@/api/performance/class";
-import {selectsStandardMethodByFLSSM} from "@/api/standard/standardLibrary";
+import {selectTemplateBindings, selectsStandardMethodByFLSSM} from "@/api/standard/standardLibrary";
import limsTable from "@/components/Table/lims-table.vue";
import {selectCustomPageList} from "@/api/system/customer";
import {mapGetters} from "vuex";
@@ -615,7 +646,6 @@
import {
isLeafPath,
buildSelectTree,
- deriveTreeFields,
dropLastLabel,
} from "@/utils/standardTree";
@@ -644,6 +674,9 @@
active: '',
tabIndex: '',
currentId: '',
+ sampleCode: '',
+ boundTemplateList: [],
+ templateBindingLoading: false,
sampleSelectionList: [],//鏍峰搧琛ㄦ牸閫変腑鏁版嵁
editTable:[],
template: null,
@@ -927,6 +960,8 @@
};
this.addObj.type = String(this.addObj.type)
const samples = this.HaveJson(res.data.sampleProduct)
+ this.sampleCode = samples.length ? samples[0].sampleCode || '' : ''
+ this.boundTemplateList = this.sortTemplateList(res.data.templateList)
const loadSamples = this.canSelectProduct
? Promise.all(samples.map(sample => this.loadSelectableProducts(sample)))
: Promise.resolve(samples)
@@ -1157,6 +1192,14 @@
return str.replaceAll(find, value);
},
save() {
+ if (this.addObj.standardTreeId) {
+ if (!this.addObj.sample || !this.addObj.company || !this.addObj.orderType || !this.addObj.testQuantity) {
+ this.$message.error('璇峰~鍐欎骇鍝佸悕绉般�佸鎵樺崟浣嶃�佹楠岀被鍒拰鏍峰搧鏁伴噺');
+ return;
+ }
+ this.saveData([]);
+ return;
+ }
this.$refs['addObj'].validate((valid) => {
if (valid) {
this.sampleList.forEach(item => {
@@ -1337,6 +1380,10 @@
}
},
saveMethod(sampleList){
+ if (this.addObj.standardTreeId) {
+ this.saveData([]);
+ return;
+ }
if (this.addObj.quarterItemId) {
this.addObj.quarterItemId = this.addObj.quarterItemId[1]
}
@@ -1383,7 +1430,13 @@
})
}else{
// 甯歌鎻愪氦
- addInsOrder({insOrder: {...this.addObj,typeSource:-1}, sampleList: sampleList}).then(res => {
+ const newJuOrder = {...this.addObj,typeSource:-1}
+ delete newJuOrder.temperature
+ delete newJuOrder.humidity
+ const payload = this.addObj.standardTreeId
+ ? { insOrder: newJuOrder, standardTreeId: this.addObj.standardTreeId, sampleCode: this.sampleCode }
+ : { insOrder: {...this.addObj,typeSource:-1}, sampleList: sampleList }
+ addInsOrder(payload).then(res => {
this.saveLoad = false
this.$message.success('宸叉彁浜�')
this.bsm3Dia = false;
@@ -1512,38 +1565,30 @@
return data.label.indexOf(value) !== -1;
},
activeStandardTree() {
- const fields = deriveTreeFields(this.selectTreeNode)
- if (fields.labels.length < 2) {
- this.$message.error('鏈�夋嫨瀵硅薄')
+ if (!this.selectTreeNode || this.selectTreeNode.data.code !== '[2]') {
+ this.$message.error('璇烽�夋嫨浜岀骇浜у搧')
return
}
- this.addObj.factory = fields.factory
- this.addObj.laboratory = fields.laboratory
- this.addObj.sampleType = fields.sampleType
- this.addObj.sample = fields.sample || fields.sampleType
- this.addObj.sampleView = this.addObj.sample
- this.addObj.sampleViewEn = this.sampleViewEn
- this.addObj.model = fields.model
+ const productName = this.selectTreeNode.data.label
+ this.addObj.sample = productName
+ this.addObj.standardTreeId = this.selectTreeNode.data.id
+ this.loadTemplateBindings(this.addObj.standardTreeId)
this.selectStandardTree = false
this.sampleList = []
- for (var i = 0; i < this.addObj.sampleNum; i++) {
- this.sample.joinName = null
- this.sample.joinModel = null
- this.sample.joinNum = 1
- this.sample.sample = this.addObj.sample
- this.sample.model = this.addObj.model
- this.sample.unit = this.addObj.unit
- this.sample.standardMethodListId = null
- this.sample.insProduct = []
- this.sample.id = this.count
- this.sample.childSampleList = []
- this.sample.insulating = null
- this.sample.sheath = null
- this.sampleList.push(this.HaveJson(this.sample))
- this.count++
+ },
+ sortTemplateList(list) {
+ return (list || []).slice().sort((a, b) => (a.sort || 0) - (b.sort || 0))
+ },
+ async loadTemplateBindings(standardTreeId) {
+ this.boundTemplateList = []
+ if (!standardTreeId) return
+ this.templateBindingLoading = true
+ try {
+ const res = await selectTemplateBindings({standardTreeId})
+ this.boundTemplateList = this.sortTemplateList(res.data)
+ } finally {
+ this.templateBindingLoading = false
}
- this.$refs.sampleTable.doLayout()
- // this.selectsStandardMethodByFLSSM()
},
// 鐢ㄦ寚瀹氬瀷鍙锋浛鎹㈡爲璺緞鏈锛堟湯娈靛嵆鏍囧噯/鍨嬪彿锛�
buildFactoryPath(model) {
@@ -2334,4 +2379,14 @@
color: orange;
font-size: 18px;
}
+.template-tag-list {
+ min-height: 32px;
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ gap: 8px;
+}
+.empty-template-text {
+ color: #909399;
+}
</style>
--
Gitblit v1.9.3