| src/views/business/inspectionTask/components/InspectionWord.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/business/inspectionTask/inspection.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/business/inspectionView/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/views/business/productOrder/components/addView.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/views/business/inspectionTask/components/InspectionWord.vue
@@ -48,7 +48,7 @@ placeholder="请输入检测地点" size="small" style="width: 200px" @change="m => subOtherForm(m, 'detectionPlace')"></el-input> </el-form-item> <el-form-item v-if="isDirectTemplateOrder()" label="设备:"> <el-form-item label="设备:"> <el-select v-model="currentOtherForm.deviceIds" :disabled="state != 1" multiple filterable clearable size="small" placeholder="请选择设备" style="width: 360px" @change="m => subOtherForm(m, 'deviceIds')"> @@ -523,9 +523,7 @@ this.retestTag = '1' } this.getEquipOptions(1) if (this.sonLaboratory === '新聚') { this.loadDeviceOptions() } this.loadDeviceOptions() // 获取当前样品的检验项 let list = await this.getCurrentProduct(this.currentSample.id, 0) if (list === undefined) { @@ -1357,12 +1355,6 @@ }) } }, // 新聚直接绑定模板的单据,设备按模板选择 isDirectTemplateOrder() { return this.sonLaboratory === '新聚' && Array.isArray(this.insOrder.templateConditions) && this.insOrder.templateConditions.length > 0 }, loadDeviceOptions() { search({ status: 0 }).then(res => { this.deviceOptions = (res.data || []).map(device => ({ @@ -1382,11 +1374,12 @@ upInsReview(e) { if (e == 1) { // 通过 // 每个模板都要有结论;全部合格才算整单合格 const insResults = this.tableLists.map( item => (this.otherForm[item.templateId] || {}).insResult ) const missingIndex = insResults.findIndex(result => result !== 0 && result !== 1) if (this.isDirectTemplateOrder() && missingIndex > -1) { if (missingIndex > -1) { this.$message.error(`请选择「${this.tableLists[missingIndex].templateName}」的检验结论`) return } @@ -1397,9 +1390,7 @@ laboratory: this.sonLaboratory, tell: null, userId: this.checkUser, insResult: this.isDirectTemplateOrder() ? (insResults.every(result => result === 1) ? 1 : 0) : this.insOrder.insResult insResult: insResults.every(result => result === 1) ? 1 : 0 }).then(res => { if (res.code === 200) { this.$message.success("操作成功") @@ -1481,7 +1472,7 @@ if (!form.humidity) missing.push(`请填写「${m.templateName}」的湿度`) if (!form.detectionTime) missing.push(`请选择「${m.templateName}」的检测时间`) if (!form.detectionPlace) missing.push(`请填写「${m.templateName}」的检测地点`) if (this.isDirectTemplateOrder() && (!form.deviceIds || form.deviceIds.length === 0)) { if (!form.deviceIds || form.deviceIds.length === 0) { missing.push(`请选择「${m.templateName}」的设备`) } }) src/views/business/inspectionTask/inspection.vue
@@ -177,7 +177,7 @@ </div> <!-- 当前检验模板的检测条件与检验结论 --> <div class="template-panel"> <el-form v-if="showTemplateConditions" :inline="true" :model="currentOtherForm" class="form-inline" <el-form :inline="true" :model="currentOtherForm" class="form-inline" size="small" label-width="84px"> <el-form-item v-if="insOrder.ifsOrderType!=='02wg'" label="温度:"> <el-input v-model="currentOtherForm.temperature" :disabled="state > 1" placeholder="" size="small" @@ -189,16 +189,16 @@ style="width: 90px" @change="(m) => subOtherForm(m, 'humidity')"></el-input> <span class="template-panel__unit">%RH</span> </el-form-item> <el-form-item v-if="insOrder.ifsOrderType!=='02wg'" label="检测时间:"> <el-form-item label="检测时间:"> <el-date-picker v-model="currentOtherForm.detectionTime" :disabled="state > 1" type="date" value-format="yyyy-MM-dd" placeholder="请选择日期" size="small" style="width: 160px" @change="(m) => subOtherForm(m, 'detectionTime')"></el-date-picker> </el-form-item> <el-form-item v-if="insOrder.ifsOrderType!=='02wg'" label="检测地点:"> <el-form-item label="检测地点:"> <el-input v-model="currentOtherForm.detectionPlace" :disabled="state > 1" clearable placeholder="请输入检测地点" size="small" style="width: 200px" @change="(m) => subOtherForm(m, 'detectionPlace')"></el-input> </el-form-item> <el-form-item v-if="isDirectTemplateOrder()" label="设备:"> <el-form-item label="设备:"> <el-select v-model="currentOtherForm.deviceIds" :disabled="state != 1" multiple filterable clearable size="small" placeholder="请选择设备" style="width: 360px" @change="(m) => subOtherForm(m, 'deviceIds')"> @@ -207,8 +207,7 @@ </el-form-item> </el-form> <!-- 复核时才能选 --> <el-form :inline="true" :model="currentOtherForm" :class="['form-inline', { 'template-panel__conclusion--divided': showTemplateConditions }]" <el-form :inline="true" :model="currentOtherForm" class="form-inline template-panel__conclusion--divided" size="small" label-width="84px"> <el-form-item label="检验结论:"> <el-radio-group v-model="currentOtherForm.insResult" :disabled="state != 2" @@ -870,10 +869,6 @@ } ); }, // 02wg 单没有温湿度;新聚直接绑定模板的单只有设备 showTemplateConditions() { return this.insOrder.ifsOrderType !== "02wg" || this.isDirectTemplateOrder(); }, }, created() { this.saveQueue = Promise.resolve(); @@ -1159,9 +1154,7 @@ this.rawMaterialTag = "1"; } this.getEquipOptions(1); if (this.sonLaboratory === "新聚") { this.loadDeviceOptions(); } this.loadDeviceOptions(); // 获取当前样品的检验项 let list = await this.getCurrentProduct(this.currentSample.id, 0); this.currentSample.insProduct = this.HaveJson(list); @@ -2364,10 +2357,10 @@ if (this.insOrder.ifsOrderType !== "02wg") { if (!form.temperature) missing.push(`请填写「${m.templateName}」的温度`); if (!form.humidity) missing.push(`请填写「${m.templateName}」的湿度`); if (!form.detectionTime) missing.push(`请选择「${m.templateName}」的检测时间`); if (!form.detectionPlace) missing.push(`请填写「${m.templateName}」的检测地点`); } if (this.isDirectTemplateOrder() && (!form.deviceIds || form.deviceIds.length === 0)) { if (!form.detectionTime) missing.push(`请选择「${m.templateName}」的检测时间`); if (!form.detectionPlace) missing.push(`请填写「${m.templateName}」的检测地点`); if (!form.deviceIds || form.deviceIds.length === 0) { missing.push(`请选择「${m.templateName}」的设备`); } }); src/views/business/inspectionView/index.vue
@@ -21,13 +21,18 @@ <el-form-item label="委托编号:"> <el-input v-model="insOrder.entrustCode" clearable disabled placeholder="请输入" size="small"></el-input> </el-form-item> <el-form-item label="检测依据:"> <el-tooltip :content="standardDisplayName(insOrder.sample)" :disabled="!insOrder.sample"> <el-input :value="standardDisplayName(insOrder.sample)" clearable disabled size="small"></el-input> </el-tooltip> </el-form-item> <el-form-item label="样品名称:"> <el-input :value="insOrder.sampleView || '-'" clearable disabled size="small"></el-input> </el-form-item> <el-form-item label="样品编号:"> <el-tooltip :content="currentSample.sampleCode" :disabled="!currentSample.sampleCode"> <el-input v-model="currentSample.sampleCode" clearable disabled placeholder="请输入" size="small"></el-input> </el-tooltip> </el-form-item> <el-form-item label="样品名称:"> <el-input v-model="currentSample.sample" clearable disabled placeholder="请输入" size="small"></el-input> </el-form-item> <el-form-item label="样品数量:"> <el-input v-model="insOrder.testQuantity" clearable disabled placeholder="请输入" size="small"></el-input> @@ -132,7 +137,7 @@ </div> <!-- 当前检验模板的检测条件与检验结论 --> <div class="template-panel"> <el-form v-if="showTemplateConditions" :inline="true" :model="currentOtherForm" class="form-inline" <el-form :inline="true" :model="currentOtherForm" class="form-inline" size="small" label-width="84px"> <el-form-item v-if="insOrder.ifsOrderType !== '02wg'" label="温度:"> <el-input v-model="currentOtherForm.temperature" :disabled="state > 1" size="small" @@ -144,17 +149,17 @@ style="width: 90px" @change="m => subOtherForm(m, 'humidity')" /> <span class="template-panel__unit">%RH</span> </el-form-item> <el-form-item v-if="insOrder.ifsOrderType !== '02wg'" label="检测时间:"> <el-form-item label="检测时间:"> <el-date-picker v-model="currentOtherForm.detectionTime" :disabled="state > 1" type="date" value-format="yyyy-MM-dd" placeholder="请选择日期" size="small" style="width: 160px" @change="m => subOtherForm(m, 'detectionTime')" /> </el-form-item> <el-form-item v-if="insOrder.ifsOrderType !== '02wg'" label="检测地点:"> <el-form-item label="检测地点:"> <el-input v-model="currentOtherForm.detectionPlace" :disabled="state > 1" clearable placeholder="请输入检测地点" size="small" style="width: 200px" @change="m => subOtherForm(m, 'detectionPlace')" /> </el-form-item> <el-form-item v-if="isDirectTemplateOrder()" label="设备:"> <el-form-item label="设备:"> <el-select v-model="currentOtherForm.deviceIds" :disabled="state != 1" multiple filterable clearable placeholder="请选择设备" size="small" style="width: 360px" @change="m => subOtherForm(m, 'deviceIds')"> @@ -163,8 +168,7 @@ </el-select> </el-form-item> </el-form> <el-form :inline="true" :model="currentOtherForm" :class="['form-inline', { 'template-panel__conclusion--divided': showTemplateConditions }]" <el-form :inline="true" :model="currentOtherForm" class="form-inline template-panel__conclusion--divided" size="small" label-width="84px"> <el-form-item label="检验结论:"> <el-radio-group v-model="currentOtherForm.insResult" :disabled="state != 2" @@ -579,7 +583,6 @@ reviewLoading: false, reviewDia: false, noReason: "", reviewInsResult: null, tableWidth: 1000, currentTable: null, tableLists: [], @@ -757,9 +760,6 @@ insResult: null, }; }, showTemplateConditions() { return this.insOrder.ifsOrderType !== "02wg" || this.isDirectTemplateOrder(); }, }, created() { this.saveQueue = Promise.resolve(); @@ -918,7 +918,6 @@ laboratory: this.sonLaboratory, }).then(async (res) => { this.insOrder = res.data.insOrder; this.reviewInsResult = this.insOrder.insResult; this.supplierDensity = res.data.supplierDensity; this.getList() this.urgentList.forEach((m) => { @@ -952,9 +951,7 @@ this.rawMaterialTag = "1"; } this.getEquipOptions(1); if (this.sonLaboratory === "新聚") { this.loadDeviceOptions(); } this.loadDeviceOptions(); // 获取当前样品的检验项 let list = await this.getCurrentProduct(this.currentSample.id, 0); this.currentSample.insProduct = this.HaveJson(list); @@ -2042,21 +2039,16 @@ upInsReview(e) { if (e == 1) { // 通过 let finalInsResult = this.reviewInsResult; if (this.isDirectTemplateOrder()) { const insResults = this.tableLists.map( item => (this.otherForm[item.templateId] || {}).insResult ); const missingIndex = insResults.findIndex(result => result !== 0 && result !== 1); if (missingIndex > -1) { this.$message.error(`请选择「${this.tableLists[missingIndex].templateName}」的检验结论`); return; } finalInsResult = insResults.every(result => result === 1) ? 1 : 0; } else if (finalInsResult !== 0 && finalInsResult !== 1) { this.$message.error("请选择检验结论"); // 每个模板都要有结论;全部合格才算整单合格 const insResults = this.tableLists.map( item => (this.otherForm[item.templateId] || {}).insResult ); const missingIndex = insResults.findIndex(result => result !== 0 && result !== 1); if (missingIndex > -1) { this.$message.error(`请选择「${this.tableLists[missingIndex].templateName}」的检验结论`); return; } const finalInsResult = insResults.every(result => result === 1) ? 1 : 0; this.reviewLoading = true; verifyPlan({ orderId: this.orderId, @@ -2123,10 +2115,10 @@ if (this.insOrder.ifsOrderType !== "02wg") { if (!form.temperature) missing.push(`请填写「${item.templateName}」的温度`); if (!form.humidity) missing.push(`请填写「${item.templateName}」的湿度`); if (!form.detectionTime) missing.push(`请选择「${item.templateName}」的检测时间`); if (!form.detectionPlace) missing.push(`请填写「${item.templateName}」的检测地点`); } if (this.isDirectTemplateOrder() && (!form.deviceIds || form.deviceIds.length === 0)) { if (!form.detectionTime) missing.push(`请选择「${item.templateName}」的检测时间`); if (!form.detectionPlace) missing.push(`请填写「${item.templateName}」的检测地点`); if (!form.deviceIds || form.deviceIds.length === 0) { missing.push(`请选择「${item.templateName}」的设备`); } }); @@ -2348,6 +2340,11 @@ // 选择、移除、清空均由 change 事件触发,立即保存。 this.saveInsContext(); }, standardDisplayName(value) { if (!value) return "-"; const separatorIndex = value.indexOf(" - "); return separatorIndex > -1 ? value.slice(0, separatorIndex) : value; }, isDirectTemplateOrder() { return this.sonLaboratory === "新聚" && Array.isArray(this.insOrder.templateConditions) && src/views/business/productOrder/components/addView.vue
@@ -60,38 +60,6 @@ </el-descriptions-item> <el-descriptions-item label="备注" :span="4">{{ addObj.remark || '-' }}</el-descriptions-item> </el-descriptions> <el-form class="newju-order-form" :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" /></el-form-item></el-col> <el-col :span="6"><el-form-item label="生产单位"><el-input v-model="addObj.production" disabled size="small" /></el-form-item></el-col> <el-col :span="6"><el-form-item label="委托单位"><el-input v-model="addObj.company" disabled size="small" /></el-form-item></el-col> <el-col :span="6"><el-form-item label="检验类别"><el-select v-model="addObj.orderType" disabled 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="boundTemplateList.length"> <el-col :span="24"> <el-form-item label="原始记录模板"> <div class="template-tag-list"> <el-tag v-for="item in boundTemplateList" :key="item.templateId" size="small" effect="plain">{{ item.name }}</el-tag> </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 size="small" /></el-form-item></el-col> <el-col :span="6"><el-form-item label="样品编号"><el-input v-model="sampleCode" disabled size="small" /></el-form-item></el-col> <el-col :span="6"><el-form-item label="样品外观"><el-input v-model="addObj.sampleStatus" disabled size="small" /></el-form-item></el-col> <el-col :span="6"><el-form-item label="送样人"><el-input v-model="addObj.prepareUser" disabled 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 size="small" /></el-form-item></el-col> <el-col :span="6"><el-form-item label="生产批号"><el-input v-model="addObj.productionBatch" disabled 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 size="small" /></el-form-item></el-col> <el-col :span="6"><el-form-item label="联系方式"><el-input v-model="addObj.phone" disabled 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 size="small" style="width: 520px" /></el-form-item></el-col> </el-row> </el-form> <el-form v-show="false" ref="addObj" :inline="true" :model="addObj" :rules="addObjRules" label-width="108px" label-position="right"> <el-row> <el-col :span="6"> @@ -2306,22 +2274,5 @@ } .order-detail__empty { color: #c0c4cc; } .newju-order-form >>> .el-form-item { display: flex; margin-right: 0; } .newju-order-form >>> .el-form-item__label { flex: 0 0 108px; } .newju-order-form >>> .el-form-item__content { flex: 1; min-width: 0; margin-left: 0 !important; } .newju-order-form >>> .el-input, .newju-order-form >>> .el-select, .newju-order-form >>> .el-date-editor { width: 100%; } </style>