From 9b47c9bed54972f0dff5796a0fdb9dcbe363a9a2 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期四, 06 三月 2025 13:32:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev
---
src/views/structural/capabilityAndLaboratory/capabilityComponents/EditForm.vue | 437 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 437 insertions(+), 0 deletions(-)
diff --git a/src/views/structural/capabilityAndLaboratory/capabilityComponents/EditForm.vue b/src/views/structural/capabilityAndLaboratory/capabilityComponents/EditForm.vue
new file mode 100644
index 0000000..d902911
--- /dev/null
+++ b/src/views/structural/capabilityAndLaboratory/capabilityComponents/EditForm.vue
@@ -0,0 +1,437 @@
+<template>
+ <div>
+ <el-dialog :title="operationType === 'add' ? '鏂板' : '缂栬緫'" :visible.sync="editFormDia" width="60%" @close="closeDia">
+ <el-form ref="editForm" :model="editForm" :rules="editFormRules" label-width="140px">
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="妫�楠岄」锛�" prop="inspectionItem">
+ <el-input v-model="editForm.inspectionItem" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="妫�楠岄」EN锛�" prop="inspectionItemEn">
+ <el-input v-model="editForm.inspectionItemEn" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="妫�楠屽瓙椤癸細" prop="inspectionItemSubclass">
+ <el-input v-model="editForm.inspectionItemSubclass" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="妫�楠屽瓙椤笶N锛�" prop="inspectionItemSubclassEn">
+ <el-input v-model="editForm.inspectionItemSubclassEn" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="妫�楠屽璞★細" prop="sample">
+ <el-cascader v-model="editForm.sample" :options="itemParameterData.cascaderField.sample.tree"
+ :props="{value:'name',label:'name',checkStrictly: true, multiple: true}"
+ :show-all-levels="false" clearable
+ filterable placeholder="璇烽�夋嫨" size="small" style="width: 100%;"></el-cascader>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鍗曚环(鍏�)锛�" prop="price">
+ <el-input v-model="editForm.price" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="鍦烘墍锛�" prop="laboratory">
+ <el-select v-model="editForm.laboratory" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">
+ <el-option v-for="item in laboratoryList" :key="item.label" :label="item.label" :value="item.label"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="璇曢獙瀹わ細" prop="sonLaboratory">
+ <el-select v-model="editForm.sonLaboratory" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">
+ <el-option v-for="item in dict.type.sys_sub_lab" :key="item.value" :label="item.label" :value="item.value"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="瑕佹眰鎻忚堪锛�" prop="askTell">
+ <el-input v-model="editForm.askTell" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="瑕佹眰鍊硷細" prop="ask">
+ <el-input v-model="editForm.ask" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="璁¢噺鍗曚綅锛�" prop="unit">
+ <el-select v-model="editForm.unit" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">
+ <el-option v-for="item in dict.type.sys_unit" :key="item.value" :label="item.label" :value="item.value"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="宸ユ椂(H)锛�" prop="manHour">
+ <el-input v-model="editForm.manHour" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="棰勮鏃堕棿(H)锛�" prop="manDay">
+ <el-input v-model="editForm.manDay" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="宸ユ椂鍒嗙粍锛�" prop="manHourGroup">
+ <el-input v-model="editForm.manHourGroup" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="妫�楠岄」绫诲瀷锛�" prop="inspectionItemType">
+ <el-select v-model="editForm.inspectionItemType" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">
+ <el-option v-for="item in dict.type.inspection_item_type" :key="item.value" :label="item.label" :value="item.value"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="妫�楠屽�肩被鍨嬶細" prop="inspectionValueType">
+ <el-select v-model="editForm.inspectionValueType" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">
+ <el-option v-for="item in dict.type.inspection_value_type" :key="item.value" :label="item.label" :value="item.value"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="鐗规畩鏍囪瘑锛�" prop="bsm">
+ <el-select v-model="editForm.bsm" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">
+ <el-option v-for="item in dict.type.inspection_bsm" :key="item.value" :label="item.label" :value="item.value"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鍘熷璁板綍妯℃澘锛�" prop="templateId">
+ <el-select v-model="editForm.templateId" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">
+ <el-option v-for="item in templateIdList" :key="item.value" :label="item.label" :value="item.value"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="妫�楠岄」鍒嗙被锛�" prop="inspectionItemClass">
+ <el-input v-model="editForm.inspectionItemClass" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="妫�楠岄」鍒嗙被EN锛�" prop="inspectionItemClassEn">
+ <el-input v-model="editForm.inspectionItemClassEn" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="璇曢獙鏂规硶锛�" prop="method">
+ <el-select v-model="editForm.method" clearable multiple placeholder="璇烽�夋嫨" size="small" style="width: 100%">
+ <el-option v-for="item in methodList" :key="item.value" :label="item.label" :value="item.label"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="12">
+ <el-form-item label="鏉′欢锛�" prop="radiusList">
+ <el-select v-model="editForm.radiusList" allow-create default-first-option filterable multiple
+ placeholder="璇烽�夋嫨"
+ size="small"
+ style="width: 100%">
+ <el-option v-for="item in radiusListList" :key="item.value" :label="item.label" :value="item.value"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row>
+ <el-col :span="12">
+ <el-form-item label="鏀惰垂鏍囧噯(鍏�/娆�)锛�" prop="rates">
+ <el-input v-model="editForm.rates" clearable size="small"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+<!-- <el-col :span="12">-->
+<!-- <el-form-item label="瀛楀吀绫诲瀷锛�" prop="dic">-->
+<!-- <el-select v-model="editForm.dic" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">-->
+<!-- <el-option v-for="item in dicList" :key="item.value" :label="item.label" :value="item.value"></el-option>-->
+<!-- </el-select>-->
+<!-- </el-form-item>-->
+<!-- </el-col>-->
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="closeDia">鍙� 娑�</el-button>
+ <el-button :loading="editLoad" type="primary" @click="handleEdit">鎻� 浜�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+
+import {
+ addItemParameter,
+ getItemTree,
+ getStandardTemplate,
+ obtainItemParameterList,
+ upItemParameter
+} from "@/api/structural/capability";
+import {selectStandardMethods} from "@/api/standard/standardLibrary";
+
+export default {
+ name: "EditForm",
+ // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+ components: {},
+ dicts: ['sys_sub_lab', 'inspection_item_type', 'sys_unit', 'inspection_value_type', 'inspection_bsm'],
+ data() {
+ // 杩欓噷瀛樻斁鏁版嵁
+ return {
+ editFormDia: false,
+ editLoad: false,
+ editForm: {
+ inspectionItem: '', // 妫�楠岄」
+ inspectionItemEn: '', // 妫�楠岄」EN
+ inspectionItemSubclass: '', // 妫�楠屽瓙椤�
+ inspectionItemSubclassEn: '', // 妫�楠屽瓙椤笶N
+ sample: [], // 妫�楠屽璞�
+ price: '', // 鍗曚环
+ laboratory: '', // 鍦烘墍
+ sonLaboratory: '', // 璇曢獙瀹�
+ askTell: '', // 瑕佹眰鎻忚堪
+ ask: '', // 瑕佹眰鍊�
+ unit: '', // 璁¢噺鍗曚綅
+ manHour: '', // 宸ユ椂
+ manDay: '', // 棰勮鏃堕棿
+ manHourGroup: '', // 宸ユ椂鍒嗙粍
+ inspectionItemType: '', // 妫�楠岄」绫诲瀷
+ inspectionValueType: '', // 妫�楠屽�肩被鍨�
+ dic: '', // 瀛楀吀绫诲瀷
+ bsm: '', // 鐗规畩鏍囪瘑
+ templateId: '', // 鍘熷璁板綍妯℃澘
+ inspectionItemClass: '', // 妫�楠岄」鍒嗙被
+ inspectionItemClassEn: '', // 妫�楠岄」鍒嗙被EN
+ method: '', // 璇曢獙鏂规硶
+ radiusList: [], // 鏉′欢
+ rates: '', // 鏉′欢
+ },
+ sampleList: [], // 妫�楠屽璞′笅鎷夋
+ laboratoryList: [], // 鍦烘墍涓嬫媺妗�
+ inspectionItemTypeList: [], // 妫�楠岄」绫诲瀷涓嬫媺妗�
+ dicList: [], // 瀛楀吀绫诲瀷涓嬫媺妗�
+ templateIdList: [], // 鍘熷璁板綍妯℃澘涓嬫媺妗�
+ methodList: [], // 璇曢獙鏂规硶涓嬫媺妗�
+ radiusListList: [], // 鏉′欢涓嬫媺妗�
+ itemParameterData: {
+ cascaderField: {
+ sample: {
+ tree: []
+ },
+ }
+ },
+ editFormRules: {
+ inspectionItem: [
+ { required: true, message: '璇烽�夋嫨妫�楠岄」', trigger: 'change' }
+ ],
+ sonLaboratory: [
+ { required: true, message: '璇烽�夋嫨璇曢獙瀹�', trigger: 'change' }
+ ],
+ unit: [
+ { required: true, message: '璇烽�夋嫨璁¢噺鍗曚綅', trigger: 'change' }
+ ],
+ inspectionItemType: [
+ { required: true, message: '璇烽�夋嫨妫�楠岄」绫诲瀷', trigger: 'change' }
+ ],
+ inspectionValueType: [
+ { required: true, message: '璇烽�夋嫨妫�楠屽�肩被鍨�', trigger: 'change' }
+ ],
+ templateId: [
+ { required: true, message: '璇烽�夋嫨鍘熷璁板綍妯℃澘', trigger: 'change' }
+ ]
+ },
+ operationType: ''
+ }
+ },
+ // 鏂规硶闆嗗悎
+ methods: {
+ openDia (type, row) {
+ this.operationType = type
+ this.editFormDia = true
+ this.obtainItemParameterList() // 鍦烘墍绫诲瀷
+ this.getStandardTemplate() // 鍘熷璁板綍妯℃澘涓嬫媺妗�
+ this.getSelectStandardMethods() // 璇曢獙鏂规硶
+ this.selectTestObjectByName() // 妫�楠屽璞�
+ if (type === 'add') {
+ this.editForm = {
+ inspectionItem: '', // 妫�楠岄」
+ inspectionItemEn: '', // 妫�楠岄」EN
+ inspectionItemSubclass: '', // 妫�楠屽瓙椤�
+ inspectionItemSubclassEn: '', // 妫�楠屽瓙椤笶N
+ sample: [], // 妫�楠屽璞�
+ price: '', // 鍗曚环
+ laboratory: '', // 鍦烘墍
+ sonLaboratory: '', // 璇曢獙瀹�
+ askTell: '', // 瑕佹眰鎻忚堪
+ ask: '', // 瑕佹眰鍊�
+ unit: '', // 璁¢噺鍗曚綅
+ manHour: '', // 宸ユ椂
+ manDay: '', // 棰勮鏃堕棿
+ manHourGroup: '', // 宸ユ椂鍒嗙粍
+ inspectionItemType: '', // 妫�楠岄」绫诲瀷
+ inspectionValueType: '', // 妫�楠屽�肩被鍨�
+ dic: '', // 瀛楀吀绫诲瀷
+ bsm: '', // 鐗规畩鏍囪瘑
+ templateId: '', // 鍘熷璁板綍妯℃澘
+ inspectionItemClass: '', // 妫�楠岄」鍒嗙被
+ inspectionItemClassEn: '', // 妫�楠岄」鍒嗙被EN
+ method: '', // 璇曢獙鏂规硶
+ radiusList: [], // 鏉′欢
+ rates: '', // 鏉′欢
+ }
+ this.resetForm('editForm')
+ } else {
+ this.editForm = this.HaveJson(row)
+ this.editForm.sample = JSON.parse(this.editForm.sample)
+ this.editForm.radiusList = JSON.parse(this.editForm.radiusList)
+ this.editForm.method = JSON.parse(this.editForm.method)
+ }
+ },
+ // 鎻愪氦缂栬緫
+ handleEdit () {
+ this.$refs.editForm.validate(valid => {
+ if (valid) {
+ this.editLoad = true
+ let obj = this.HaveJson(this.editForm)
+ obj.method = JSON.stringify(obj.method)
+ obj.sample = JSON.stringify(obj.sample)
+ if (obj.radiusList?.length > 0) {
+ obj.radiusList = JSON.stringify(obj.radiusList)
+ } else {
+ obj.radiusList = null
+ }
+ if(obj.id){
+ // 淇敼
+ upItemParameter(obj).then(res => {
+ this.editLoad = false
+ if (res.code === 500) {
+ return
+ }
+ this.$message.success('淇敼鎴愬姛')
+ this.editFormDia = false
+ this.$emit('refreshList')
+ }).catch(e => {
+ this.editLoad = false
+ })
+ }else{
+ // 鏂板
+ addItemParameter(obj).then(res => {
+ this.editLoad = false
+ if (res.code === 500) {
+ return
+ }
+ this.$message.success('娣诲姞鎴愬姛')
+ this.editFormDia = false
+ this.$emit('refreshList')
+ }).catch(e => {
+ this.editLoad = false
+ })
+ }
+ }
+ })
+ },
+ // 鍏抽棴寮规
+ closeDia () {
+ this.editFormDia = false
+ this.resetForm("editForm");
+ },
+ selectTestObjectByName() {
+ getItemTree().then(res => {
+ if (res.data.length > 0) {
+ res.data.forEach(a=>{
+ this.cascaderFieldData(a)
+ })
+ this.itemParameterData.cascaderField.sample.tree = res.data
+ }
+ })
+ },
+ cascaderFieldData(val){
+ if(val.children === undefined) {
+ return
+ }else if(val.children.length==0){
+ val.label = val.name
+ val.value = val.id
+ delete val.children
+ }else{
+ val.label = val.name
+ val.value = val.id
+ val.children.forEach(a=>{
+ a.label = a.name
+ a.value = a.id
+ this.cascaderFieldData(a)
+ })
+ }
+ },
+ getSelectStandardMethods() {
+ selectStandardMethods().then(res => {
+ let data = []
+ if (res.data.length > 0) {
+ res.data.forEach(a => {
+ data.push({
+ label: a.code,
+ value: a.id,
+ })
+ })
+ this.methodList = data
+ }
+ })
+ },
+ obtainItemParameterList() {
+ obtainItemParameterList().then(res => {
+ let data = []
+ if (res.data.length > 0) {
+ res.data.forEach(a => {
+ data.push({
+ label: a.laboratoryName,
+ value: a.id
+ })
+ })
+ }
+ this.laboratoryList = data
+ })
+ },
+ getStandardTemplate() {
+ getStandardTemplate().then(res => {
+ let data = []
+ res.data.forEach(a => {
+ data.push({
+ label: a.name,
+ value: a.id,
+ type: 'success'
+ })
+ })
+ this.templateIdList = data
+ })
+ },
+ },
+}
+</script>
+
+<style scoped>
+::v-deep .el-dialog__body {
+ height: 620px;
+ overflow-y: auto;
+}
+</style>
--
Gitblit v1.9.3