From 049fda473cc178917a02f3a174dfd08a84b0cb8d Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 17 九月 2026 10:52:28 +0800
Subject: [PATCH] 新疆——新聚lims 1.每个检验项都要有一个选择检测时间的地方,跟温湿度放在一起,还有检测地点,设备也要单独绑定检验项,最后导出模版再总结到一起 2.产品名称改为检测依据、加一个样品名称手输 3.下单时原始记录模板可以从标准库绑定的模板进行删减
---
src/views/business/productOrder/components/addOrder.vue | 177 ++++++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 120 insertions(+), 57 deletions(-)
diff --git a/src/views/business/productOrder/components/addOrder.vue b/src/views/business/productOrder/components/addOrder.vue
index f2f0522..22f6a4c 100644
--- a/src/views/business/productOrder/components/addOrder.vue
+++ b/src/views/business/productOrder/components/addOrder.vue
@@ -1,77 +1,74 @@
<template>
<div class="app-container">
- <div v-show="!cableConfigShow&&!auxiliaryShow">
- <div style="display: flex;justify-content: space-between;align-items:center;">
- <div>濮旀墭鍗曚俊鎭�</div>
- <div>
- <el-cascader
- v-model="addObj.quarterItemId"
- :disabled="active>1"
- :options="quarterItemOptions"
- size="small"
- style="width: 380px"
- @focus="getQuarterOnOrderList"></el-cascader>
- <el-select v-show="active==1" v-model="template" placeholder="涓嬪崟妯℃澘" size="small"
- @change="selectInsOrderTemplateById">
- <el-option v-for="(a, ai) in templates" :key="ai" :label="a.name" :value="a.id">
- <div style="display: flex; align-items: center; justify-content: space-between;">
- <span>{{ a.name }}</span>
- <i class="el-icon-delete"
- style="color: #66b1ff; font-size: 16px; cursor: pointer;"
- @click.stop="handleDelete(a)">
- </i>
- </div>
- </el-option>
- </el-select>
- <el-button v-show="active==1" size="small" @click="templateDia=true">
- <span style="color: #3A7BFA;">淇濆瓨妯℃澘</span>
- </el-button>
- <el-button v-if="active==1&&addObj.sampleType!=undefined&&(addObj.sampleType.indexOf('鐢电紗')>-1 ||addObj.sampleType.indexOf('缁煎悎')>-1)" size="small" type="primary" @click="openCableConfig">鐢电紗閰嶇疆</el-button>
- <el-button v-if="active==1&&addObj.sampleType!=undefined&&addObj.sampleType.indexOf('鐢电紗')>-1" size="small" type="primary" @click="openAuxiliaryCore">杈呭姪绾胯姱閰嶇疆</el-button>
- <el-button v-show="active==1||(tabIndex==4&&active==2)" :loading="saveLoad" size="small" type="primary" @click="save">鎻愪氦</el-button>
- <!-- 瀹℃牳 -->
- <el-button v-show="active==3" :disabled="saveLoad" :loading="saveLoad" size="small"
- @click="upInsOrderOfState(2)">涓嶉�氳繃</el-button>
- <el-button v-show="active==3" :loading="saveLoad" size="small" type="primary"
- @click="upInsOrderOfState(1)">閫氳繃</el-button>
- <el-button size="small" @click="goBack">
- <span style="color: #3A7BFA;">杩斿洖</span>
- </el-button>
- </div>
+ <div v-show="!cableConfigShow&&!auxiliaryShow" class="order-header">
+ <span class="order-header__title">濮旀墭鍗曚俊鎭�</span>
+ <div class="order-header__actions">
+<!-- <el-cascader-->
+<!-- v-model="addObj.quarterItemId"-->
+<!-- :disabled="active>1"-->
+<!-- :options="quarterItemOptions"-->
+<!-- placeholder="璇烽�夋嫨瀛e害"-->
+<!-- size="small"-->
+<!-- class="order-header__quarter"-->
+<!-- @focus="getQuarterOnOrderList"></el-cascader>-->
+ <el-select v-show="active==1" v-model="template" placeholder="涓嬪崟妯℃澘" size="small"
+ class="order-header__template"
+ @change="selectInsOrderTemplateById">
+ <el-option v-for="(a, ai) in templates" :key="ai" :label="a.name" :value="a.id">
+ <div style="display: flex; align-items: center; justify-content: space-between;">
+ <span>{{ a.name }}</span>
+ <i class="el-icon-delete"
+ style="color: #66b1ff; font-size: 16px; cursor: pointer;"
+ @click.stop="handleDelete(a)">
+ </i>
+ </div>
+ </el-option>
+ </el-select>
+ <el-button v-show="active==1" size="small" @click="templateDia=true">淇濆瓨妯℃澘</el-button>
+ <el-button v-if="active==1&&addObj.sampleType!=undefined&&(addObj.sampleType.indexOf('鐢电紗')>-1 ||addObj.sampleType.indexOf('缁煎悎')>-1)" size="small" type="primary" plain @click="openCableConfig">鐢电紗閰嶇疆</el-button>
+ <el-button v-if="active==1&&addObj.sampleType!=undefined&&addObj.sampleType.indexOf('鐢电紗')>-1" size="small" type="primary" plain @click="openAuxiliaryCore">杈呭姪绾胯姱閰嶇疆</el-button>
+ <el-button v-show="active==1||(tabIndex==4&&active==2)" :loading="saveLoad" size="small" type="primary" @click="save">鎻愪氦</el-button>
+ <!-- 瀹℃牳 -->
+ <el-button v-show="active==3" :disabled="saveLoad" :loading="saveLoad" size="small"
+ @click="upInsOrderOfState(2)">涓嶉�氳繃</el-button>
+ <el-button v-show="active==3" :loading="saveLoad" size="small" type="primary"
+ @click="upInsOrderOfState(1)">閫氳繃</el-button>
+ <el-button size="small" @click="goBack">杩斿洖</el-button>
</div>
</div>
- <div v-show="!cableConfigShow&&!auxiliaryShow" style="margin-top: 10px">
- <div class="search">
- <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">
+ <div v-show="!cableConfigShow&&!auxiliaryShow" class="order-body">
+ <el-card shadow="never" class="order-card">
+ <el-form ref="newJuOrder" :model="addObj" size="small" label-width="108px" label-position="right">
+ <el-row :gutter="16">
+ <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="18">
<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>
+ <el-tag v-for="(item, index) in boundTemplateList" :key="item.templateId" :closable="active==1" size="small" effect="plain" @close="removeBoundTemplate(index)">{{ 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-row :gutter="16">
+ <el-col :span="6"><el-form-item label="鏍峰搧鍚嶇О"><el-input v-model="addObj.sampleView" :disabled="active>1" size="small" /></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 :gutter="16">
<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-row :gutter="16">
<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-row :gutter="16"><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>
@@ -235,7 +232,7 @@
</el-col>
</el-row>
</el-form>
- </div>
+ </el-card>
<div v-if="false">
<div style="display: flex;justify-content: space-between;background-color: #F5F7FB;margin-bottom: 6px">
<div v-if="active==1">
@@ -731,7 +728,7 @@
{ required: true, message: '璇烽�夋嫨绱ф�ョ▼搴�', trigger: 'change' }
],
sample: [
- { required: true, message: '璇烽�夋嫨鏍峰搧鍚嶇О', trigger: 'change' }
+ { required: true, message: '璇烽�夋嫨妫�娴嬩緷鎹�', trigger: 'change' }
],
sampleNum: [
{ required: true, message: '璇峰~鍐欐牱鍝佹暟閲�', trigger: 'blur' }
@@ -1194,7 +1191,7 @@
save() {
if (this.addObj.standardTreeId) {
if (!this.addObj.sample || !this.addObj.company || !this.addObj.orderType || !this.addObj.testQuantity) {
- this.$message.error('璇峰~鍐欎骇鍝佸悕绉般�佸鎵樺崟浣嶃�佹楠岀被鍒拰鏍峰搧鏁伴噺');
+ this.$message.error('璇峰~鍐欐娴嬩緷鎹�佸鎵樺崟浣嶃�佹楠岀被鍒拰鏍峰搧鏁伴噺');
return;
}
this.saveData([]);
@@ -1434,7 +1431,12 @@
delete newJuOrder.temperature
delete newJuOrder.humidity
const payload = this.addObj.standardTreeId
- ? { insOrder: newJuOrder, standardTreeId: this.addObj.standardTreeId, sampleCode: this.sampleCode }
+ ? {
+ insOrder: newJuOrder,
+ standardTreeId: this.addObj.standardTreeId,
+ sampleCode: this.sampleCode,
+ templateList: this.boundTemplateList.map((item, index) => ({ templateId: item.templateId, sort: index }))
+ }
: { insOrder: {...this.addObj,typeSource:-1}, sampleList: sampleList }
addInsOrder(payload).then(res => {
this.saveLoad = false
@@ -1578,6 +1580,10 @@
},
sortTemplateList(list) {
return (list || []).slice().sort((a, b) => (a.sort || 0) - (b.sort || 0))
+ },
+ // 涓嬪崟鏃朵粠鏍囧噯搴撶粦瀹氱殑妯℃澘閲屽垹鍑忥紝鎻愪氦鏃堕殢 templateList 涓�璧蜂笅鍙�
+ removeBoundTemplate(index) {
+ this.boundTemplateList.splice(index, 1)
},
async loadTemplateBindings(standardTreeId) {
this.boundTemplateList = []
@@ -2389,4 +2395,61 @@
.empty-template-text {
color: #909399;
}
+/* 濮旀墭鍗曚俊鎭細椤堕儴鎿嶄綔鏍� */
+.order-header {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ flex-wrap: wrap;
+ gap: 8px;
+ padding-bottom: 12px;
+ border-bottom: 1px solid #ebeef5;
+}
+.order-header__title {
+ font-size: 16px;
+ font-weight: bold;
+ color: #303133;
+}
+.order-header__actions {
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ gap: 8px;
+}
+/* 闂磋窛缁熶竴浜ょ粰 gap锛屽幓鎺夌浉閭绘寜閽嚜甯︾殑 margin-left */
+.order-header__actions>>>.el-button+.el-button {
+ margin-left: 0;
+}
+.order-header__quarter {
+ width: 220px;
+}
+.order-header__template {
+ width: 160px;
+}
+/* 濮旀墭鍗曚俊鎭細琛ㄥ崟鍗$墖 */
+.order-body {
+ margin-top: 12px;
+}
+.order-card>>>.el-card__body {
+ padding: 20px 20px 6px;
+}
+.order-card>>>.el-form-item {
+ margin-bottom: 16px;
+}
+/* 鎺т欢缁熶竴鍗犳弧鏍囩涔嬪鐨勬暣鍒楀搴︼細el-date-editor 榛樿鍐欐 220px銆�
+ el-select 瀹藉害鏀剁缉鎴愬浐鏈夊搴︼紝涓嶆寚瀹氬氨浼氬拰鍏朵粬杈撳叆妗嗗乏鍙宠竟缂樺涓嶉綈 */
+.order-card>>>.el-input,
+.order-card>>>.el-select {
+ width: 100%;
+}
+/* append 鍗曞厓鏍肩殑 20px 鍐呰竟璺� + 鎸夐挳 -10px 璐熻竟璺濇槸鎸夐粯璁� 40px 鎸夐挳鏍囧畾鐨勶紝
+ small 杈撳叆涓嬫寜閽細姣旇緭鍏ユ楂樸�佷笂涓嬫孩鍑猴紱鏀规垚鎸夐挳鐩存帴鎾戞弧鍗曞厓鏍� */
+.order-card>>>.el-input-group__append {
+ padding: 0;
+}
+.order-card>>>.el-input-group__append .el-button {
+ margin: 0;
+ padding: 9px 15px;
+ font-size: 12px;
+}
</style>
--
Gitblit v1.9.3