From 0924888464844cdca767e0bb0ad2e7bb5f4dc268 Mon Sep 17 00:00:00 2001 From: memorylkf <312904636@qq.com> Date: Sat, 28 Feb 2026 15:17:41 +0800 Subject: [PATCH 01/17] =?UTF-8?q?feat:=20[=E6=AD=A5=E9=AA=A4=E7=AE=A1?= =?UTF-8?q?=E7=90=86]=20=E6=96=B0=E5=A2=9E=E6=AD=A5=E9=AA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Template/HandleFormItem.vue | 2 +- src/components/Template/Step.vue | 129 ++++++++++++++------- src/components/Template/StepComponents/ry/jr.vue | 36 ++++++ src/components/Template/StepComponents/ry/kb.vue | 36 ++++++ .../Template/StepComponents/ry/kbsjgsp.vue | 52 +++++++++ src/components/Template/StepComponents/ry/kbyq.vue | 52 +++++++++ src/views/business/template/list.vue | 1 + 7 files changed, 262 insertions(+), 46 deletions(-) create mode 100644 src/components/Template/StepComponents/ry/jr.vue create mode 100644 src/components/Template/StepComponents/ry/kb.vue create mode 100644 src/components/Template/StepComponents/ry/kbsjgsp.vue create mode 100644 src/components/Template/StepComponents/ry/kbyq.vue diff --git a/src/components/Template/HandleFormItem.vue b/src/components/Template/HandleFormItem.vue index 7ebe2d8..45edc07 100644 --- a/src/components/Template/HandleFormItem.vue +++ b/src/components/Template/HandleFormItem.vue @@ -16,7 +16,7 @@ + @visible-change="onSelectBlur" @change="onInputChange" filterable> diff --git a/src/components/Template/Step.vue b/src/components/Template/Step.vue index b378158..fcaac4e 100644 --- a/src/components/Template/Step.vue +++ b/src/components/Template/Step.vue @@ -56,6 +56,7 @@ import Jb from "./StepComponents/ry/jb.vue";//溶液-搅拌 import Jrjb from "./StepComponents/ry/jrjb.vue";//溶液-加热搅拌 import Cs from "./StepComponents/ry/cs.vue";//溶液-超声 import Sy from "./StepComponents/ry/sy.vue";//溶液-水浴 +import Zy from "./StepComponents/ry/zy.vue";//溶液-正压 import Dc from "./StepComponents/ry/dc.vue";//溶液-氮吹 import Jd from "./StepComponents/ry/jd.vue";//溶液-解冻 import Jz from "./StepComponents/ry/jz.vue";//溶液-静置 @@ -73,53 +74,63 @@ import Fs from "./StepComponents/ry/fs.vue";//溶液-复苏 import Fb from "./StepComponents/ry/fb.vue";//溶液-封板 import Zlfz from "./StepComponents/ry/zlfz.vue";//溶液-质量分装 - - -const stepTypes = [ - { label: '操作地点', value: 'czdd' }, - { label: '操作方法', value: 'czhj' }, - { label: '选择容器', value: 'xzrq' }, - { label: '加入溶液', value: 'jrry' }, - { label: '天平校验(单点)', value: 'tpjydd' }, - { label: '天平校验(双点)', value: 'tpjysd' }, - { label: '取用物质', value: 'qywz' }, - { label: '称量(非传值)', value: 'clfcz' }, - { label: '称量(传值)', value: 'clcz' }, - { label: '标定(体积)', value: 'bdtj' }, - { label: '标定(质量)', value: 'bdzl' }, - { label: '调节PH(传值)', value: 'tjphcz' }, - { label: '调节PH(非传值)', value: 'tjphfcz' }, - { label: '离心', value: 'lx' }, - { label: '恒温混匀', value: 'hwhy' }, - { label: '振摇混匀', value: 'zyhy' }, - { label: '涡旋混匀', value: 'wxhy' }, - { label: '颠倒混匀', value: 'ddhy' }, - { label: '研磨', value: 'ym' }, - { label: '搅拌', value: 'jb' }, - { label: '加热搅拌', value: 'jrjb' }, - { label: '超声', value: 'cs' }, - { label: '水浴', value: 'sy' }, - { label: '氮吹', value: 'dc' }, - { label: '解冻', value: 'jd' }, - { label: '静置', value: 'jz' }, - { label: '过滤(自动)', value: 'glzd' }, - { label: '过滤(手动)', value: 'glsd' }, - { label: '孵育', value: 'fy' }, - { label: '取出原药', value: 'qcyy' }, - { label: '复溶(多容器)', value: 'frdrq' }, - { label: '复溶', value: 'fr' }, - { label: '合并', value: 'hb' }, - { label: '染色', value: 'rs' }, - { label: '计数', value: 'js' }, - { label: '灭菌', value: 'mj' }, - { label: '复苏', value: 'fs' }, - { label: '封板', value: 'fb' }, - // { label: '质量分装', value: 'zlfz' }, +//罗开凡新增 +import kbyq from "./StepComponents/ry/kbyq.vue";//溶液-空白仪器 +import kbsjgsp from "./StepComponents/ry/kbsjgsp.vue";//溶液-空白(试剂/供试品) +import kb from "./StepComponents/ry/kb.vue";//溶液-空白 +import jr from "./StepComponents/ry/jr.vue";//溶液-加热 +//罗开凡新增 + + +import { public_templateStepList } from '@/api/business/public/public'; + + +// const stepTypes = [ +// { label: '操作地点', value: 'czdd' }, +// { label: '操作方法', value: 'czhj' }, +// { label: '选择容器', value: 'xzrq' }, +// { label: '加入溶液', value: 'jrry' }, +// { label: '天平校验(单点)', value: 'tpjydd' }, +// { label: '天平校验(双点)', value: 'tpjysd' }, +// { label: '取用物质', value: 'qywz' }, +// { label: '称量(非传值)', value: 'clfcz' }, +// { label: '称量(传值)', value: 'clcz' }, +// { label: '标定(体积)', value: 'bdtj' }, +// { label: '标定(质量)', value: 'bdzl' }, +// { label: '调节PH(传值)', value: 'tjphcz' }, +// { label: '调节PH(非传值)', value: 'tjphfcz' }, +// { label: '离心', value: 'lx' }, +// { label: '恒温混匀', value: 'hwhy' }, +// { label: '振摇混匀', value: 'zyhy' }, +// { label: '涡旋混匀', value: 'wxhy' }, +// { label: '颠倒混匀', value: 'ddhy' }, +// { label: '研磨', value: 'ym' }, +// { label: '搅拌', value: 'jb' }, +// { label: '加热搅拌', value: 'jrjb' }, +// { label: '超声', value: 'cs' }, +// { label: '水浴', value: 'sy' }, +// { label: '正压', value: 'zy' }, +// { label: '氮吹', value: 'dc' }, +// { label: '解冻', value: 'jd' }, +// { label: '静置', value: 'jz' }, +// { label: '过滤(自动)', value: 'glzd' }, +// { label: '过滤(手动)', value: 'glsd' }, +// { label: '孵育', value: 'fy' }, +// { label: '取出原药', value: 'qcyy' }, +// { label: '复溶(多容器)', value: 'frdrq' }, +// { label: '复溶', value: 'fr' }, +// { label: '合并', value: 'hb' }, +// { label: '染色', value: 'rs' }, +// { label: '计数', value: 'js' }, +// { label: '灭菌', value: 'mj' }, +// { label: '复苏', value: 'fs' }, +// { label: '封板', value: 'fb' }, +// { label: '质量分装', value: 'zlfz' }, -]; +// ]; export default { - inject: ['templateFillType'], + inject: ['templateFillType','templateData'], name: 'Step', props: { formData: { @@ -130,7 +141,7 @@ export default { data() { return { stepSelectConfig: { - options: stepTypes, + options: [], fillType: "preFill", placeholder: "请选择步骤类型" }, @@ -164,6 +175,7 @@ export default { Jrjb, Cs, Sy, + Zy, Dc, Jd, Jz, @@ -180,6 +192,12 @@ export default { Fs, Fb, Zlfz, + //罗开凡新增 + kbyq, + kbsjgsp, + kb, + jr + //罗开凡新增 }, computed: { stepComponentMap() { @@ -207,6 +225,7 @@ export default { 'jb': 'Jb', 'jrjb': 'Jrjb', 'sy': 'Sy', + 'zy': 'Zy', 'cs': 'Cs', 'dc': 'Dc', 'jd': 'Jd', @@ -224,6 +243,14 @@ export default { 'fs': 'Fs', 'fb': 'Fb', 'zlfz': 'Zlfz', + + //罗开凡新增 + 'kbyq': 'kbyq', + 'kbsjgsp': 'kbsjgsp', + 'kb': 'kb', + 'jr': 'jr', + // 'fz': 'fz', + //罗开凡新增 } } return this.componentMap @@ -242,6 +269,7 @@ export default { // // 默认添加一个步骤 // this.addStep() // } + this.getStepList() }, watch: { // steps: { @@ -263,6 +291,17 @@ export default { } }, methods: { + getStepList(){ + debugger + public_templateStepList({templateId:this.templateData.templateId}).then(response => { + let options = [] + _.forEach(response.data,(item)=>{ + options.push({ label: item.name, value: item.sn }) + }) + debugger + this.stepSelectConfig.options = options + }); + }, isShowAddStep() { return this.templateFillType === 'preFill'; }, diff --git a/src/components/Template/StepComponents/ry/jr.vue b/src/components/Template/StepComponents/ry/jr.vue new file mode 100644 index 0000000..5cdb4c9 --- /dev/null +++ b/src/components/Template/StepComponents/ry/jr.vue @@ -0,0 +1,36 @@ + + + + + + \ No newline at end of file diff --git a/src/components/Template/StepComponents/ry/kb.vue b/src/components/Template/StepComponents/ry/kb.vue new file mode 100644 index 0000000..a1545c9 --- /dev/null +++ b/src/components/Template/StepComponents/ry/kb.vue @@ -0,0 +1,36 @@ + + + + + + \ No newline at end of file diff --git a/src/components/Template/StepComponents/ry/kbsjgsp.vue b/src/components/Template/StepComponents/ry/kbsjgsp.vue new file mode 100644 index 0000000..4f938e5 --- /dev/null +++ b/src/components/Template/StepComponents/ry/kbsjgsp.vue @@ -0,0 +1,52 @@ + + + + + + \ No newline at end of file diff --git a/src/components/Template/StepComponents/ry/kbyq.vue b/src/components/Template/StepComponents/ry/kbyq.vue new file mode 100644 index 0000000..40f25ff --- /dev/null +++ b/src/components/Template/StepComponents/ry/kbyq.vue @@ -0,0 +1,52 @@ + + + + + + \ No newline at end of file diff --git a/src/views/business/template/list.vue b/src/views/business/template/list.vue index 80ab658..5b017a6 100644 --- a/src/views/business/template/list.vue +++ b/src/views/business/template/list.vue @@ -317,6 +317,7 @@ export default { this.tableDialog.title = '表单配置' this.tableDialog.sn = row.sn this.tableDialog.templateData.bdmc =this.$i18n.locale === 'zh_CN'? row.name:row.nameEn + this.tableDialog.templateData.templateId = row.id this.tableDialog.visible = true }, getList() { From c36c1f86e7e4b9007c077a2aace55192678adce5 Mon Sep 17 00:00:00 2001 From: memorylkf <312904636@qq.com> Date: Sat, 28 Feb 2026 16:48:07 +0800 Subject: [PATCH 02/17] =?UTF-8?q?feat:=20[=E6=AD=A5=E9=AA=A4=E7=AE=A1?= =?UTF-8?q?=E7=90=86]=20=E8=A1=A8=E9=85=8D=E7=BD=AE=E6=AD=A5=E9=AA=A4?= =?UTF-8?q?=E6=96=B0=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Template/Step.vue | 10 ++++- .../Template/StepComponents/b/jrry_b.vue | 46 ++++++++++++++++++++++ 2 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 src/components/Template/StepComponents/b/jrry_b.vue diff --git a/src/components/Template/Step.vue b/src/components/Template/Step.vue index fcaac4e..b0638a8 100644 --- a/src/components/Template/Step.vue +++ b/src/components/Template/Step.vue @@ -81,6 +81,8 @@ import kb from "./StepComponents/ry/kb.vue";//溶液-空白 import jr from "./StepComponents/ry/jr.vue";//溶液-加热 //罗开凡新增 +//表配置 +import jrry_b from './StepComponents/b/jrry_b.vue';//表配置-加入溶液 import { public_templateStepList } from '@/api/business/public/public'; @@ -196,8 +198,11 @@ export default { kbyq, kbsjgsp, kb, - jr + jr, //罗开凡新增 + + //表配置 + jrry_b, }, computed: { stepComponentMap() { @@ -251,6 +256,9 @@ export default { 'jr': 'jr', // 'fz': 'fz', //罗开凡新增 + + //标配配置 + 'jrry_b': 'jrry_b', } } return this.componentMap diff --git a/src/components/Template/StepComponents/b/jrry_b.vue b/src/components/Template/StepComponents/b/jrry_b.vue new file mode 100644 index 0000000..b991793 --- /dev/null +++ b/src/components/Template/StepComponents/b/jrry_b.vue @@ -0,0 +1,46 @@ + + + + + + \ No newline at end of file From 3dfb33a5b63c7051afdfe9620766a965e69e42e3 Mon Sep 17 00:00:00 2001 From: luojie <125330818@qq.com> Date: Sun, 1 Mar 2026 12:35:35 +0800 Subject: [PATCH 03/17] =?UTF-8?q?feat:[=E6=A8=A1=E6=9D=BF=E7=AE=A1?= =?UTF-8?q?=E7=90=86][=E6=9A=82=E5=AD=98]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Template/BaseInfoFormPackage.vue | 31 +++++++++++++--------- src/components/Template/HandleFormItem.vue | 25 ++++++++++++++++- .../business/comps/template/comps/yp/YP003.vue | 22 +++++++++++++-- 3 files changed, 62 insertions(+), 16 deletions(-) diff --git a/src/components/Template/BaseInfoFormPackage.vue b/src/components/Template/BaseInfoFormPackage.vue index 7d17fa5..7692db7 100644 --- a/src/components/Template/BaseInfoFormPackage.vue +++ b/src/components/Template/BaseInfoFormPackage.vue @@ -114,13 +114,7 @@ @update:error="errors[key] = false" @resetRecord="resetRecord(key)" :item="sItem" :value="formFields[key]" /> -
- -
+
+
+ +
@@ -275,12 +275,6 @@ @update:error="errors[key] = false" @resetRecord="resetRecord(key)" :item="sItem" :value="formFields[key]" /> -
- -
\ No newline at end of file diff --git a/src/components/Template/HandleFormItem.vue b/src/components/Template/HandleFormItem.vue index 25be34a..b64b8eb 100644 --- a/src/components/Template/HandleFormItem.vue +++ b/src/components/Template/HandleFormItem.vue @@ -109,6 +109,25 @@
+
+
+ + 是 + + + + + + +
+
+ + 否 + +
+
@@ -1168,7 +1187,7 @@ export default { if (this.getDisabled()) { return "" } - if (this.regentType.includes(type) || type === "clickable") { + if (this.regentType.includes(type) || type === "clickable" || type === "fqyq") { return this.$t("template.common.pleaseSelect") } let prex = "template.common.pleaseFillIn" @@ -1731,4 +1750,8 @@ export default { } } } +.fqyq-input{ + width: 500px; + margin-left: 10px; +} \ No newline at end of file diff --git a/src/views/business/comps/template/comps/yp/YP003.vue b/src/views/business/comps/template/comps/yp/YP003.vue index 87a7963..0b9e5e8 100644 --- a/src/views/business/comps/template/comps/yp/YP003.vue +++ b/src/views/business/comps/template/comps/yp/YP003.vue @@ -31,6 +31,8 @@ +
@@ -65,6 +67,22 @@ export default { }, }, computed: { + // 分取要求 + fqyqConig() { + return [ + { + type: "cellItem", + config: { + fqyq: { + label: "template.yp.yp003.sfyfzyq", + type: "fqyq", + fillType: "actFill", + span: 1, + } + } + } + ] + }, // 备注表单配置 remarkConig() { return [ @@ -202,11 +220,11 @@ export default { }, //获取已填写的表单数据 getFilledFormData() { - return this.getFilledFormDataByRefs(["baseInfoRef", "tableRef", "stepRef", "remarkRef"]) + return this.getFilledFormDataByRefs(["baseInfoRef", "tableRef", "stepRef", "fqyqRef","remarkRef"]) }, //获取填写完成的表单数据 async getFormData() { - let content = await this.validFormFields(["baseInfoRef", "tableRef", "stepRef", "remarkRef"]); + let content = await this.validFormFields(["baseInfoRef", "tableRef", "stepRef", "fqyqRef","remarkRef"]); return content; }, getResource() { From 6cda336a741755559c2168fac59cf9bc6ef10f28 Mon Sep 17 00:00:00 2001 From: luojie <125330818@qq.com> Date: Sun, 1 Mar 2026 21:11:55 +0800 Subject: [PATCH 04/17] =?UTF-8?q?feat:[=E6=A8=A1=E6=9D=BF=E7=AE=A1?= =?UTF-8?q?=E7=90=86][=E6=9A=82=E5=AD=98]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Template/HandleFormItem.vue | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/src/components/Template/HandleFormItem.vue b/src/components/Template/HandleFormItem.vue index b64b8eb..d682873 100644 --- a/src/components/Template/HandleFormItem.vue +++ b/src/components/Template/HandleFormItem.vue @@ -110,23 +110,19 @@
-
- - 是 - - - - - - -
-
- - 否 - -
+ +
+ +
+ + + + + +
+
+ +
From 20ee6d90aff15ab1d10ae88d0d7542af48144375 Mon Sep 17 00:00:00 2001 From: luojie <125330818@qq.com> Date: Sun, 1 Mar 2026 22:30:01 +0800 Subject: [PATCH 05/17] =?UTF-8?q?feat:[=E6=A8=A1=E6=9D=BF=E7=AE=A1?= =?UTF-8?q?=E7=90=86][yp003]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Template/HandleFormItem.vue | 98 ++++++++++++++++++---- .../Template/mixins/formPackageMixins.js | 87 ++++++++++++------- 2 files changed, 142 insertions(+), 43 deletions(-) diff --git a/src/components/Template/HandleFormItem.vue b/src/components/Template/HandleFormItem.vue index d682873..8ded2d0 100644 --- a/src/components/Template/HandleFormItem.vue +++ b/src/components/Template/HandleFormItem.vue @@ -110,12 +110,13 @@
- -
+ +
-
- - +
+ +
是否在规定时间完成
+ @@ -253,7 +254,7 @@ export default { }, data() { let initialValue = this.value; - let initialOtherValues = {}, checkboxTagList = []; + let initialOtherValues = {}, checkboxTagList = [], fqyqValue = {}; // 如果是checkboxList类型且value是对象格式 if (this.type === 'checkboxList' && this.value && typeof this.value === 'object') { @@ -267,7 +268,9 @@ export default { checked: tag.checked, tagValue: tag.tagValue || '' })); - } + } else if (this.type === 'fqyq' && !this.value) { + initialValue = {mainRadio: '', subRadio: '',inputValue:""}; + } return { inputValue: initialValue, oldValue: initialValue, // 记录上一次的值 @@ -284,6 +287,8 @@ export default { checkboxValue: this.getChecked(),//是否选中 checkboxTagList: checkboxTagList, // checkboxTag类型的列表数据 oldCheckboxTagList: JSON.parse(JSON.stringify(checkboxTagList)), // 记录上一次的checkboxTagList + fqyqValue: initialValue, // fqyq类型的值 + oldFqyqValue: {...initialValue}, // 记录上一次的fqyq值 uuid: getuuid(), // 唯一标识符,用于EventBus事件匹配 regentType: ['sj', 'gsp', 'mix', 'xj', 'xb', 'gyzj', 'mjy', 'yq', 'jcb', 'qxbd'], //试剂/仪器/供试品等类型 selectRegentInfo: {},//选择的试剂/仪器/供试品等信息 @@ -295,6 +300,7 @@ export default { pendingUploadFile: null, // 用于存储待上传的文件 pendingRemoveFile: null, // 用于存储待删除的文件 currentTagIndex:-1,//当前选中的checkboxTag索引 + currentFqyqType:'',//当前选中的fqyq操作的类型 } }, watch: { @@ -309,7 +315,14 @@ export default { checked: tag.checked, tagValue: tag.tagValue || '' })); - } else { + } else if (this.type === 'fqyq' && newVal && typeof newVal === 'object') { + // fqyq类型 + this.fqyqValue = { + mainRadio: newVal.mainRadio || '', + inputValue: newVal.inputValue || '', + subRadio: newVal.subRadio || '' + }; + } else { this.inputValue = this.type === 'checkboxList' && !Array.isArray(newVal) ? [] : newVal; } } @@ -346,7 +359,7 @@ export default { }, methods: { getFlexClass() { - const noFlexArr = ["radio", "checkboxTag"] + const noFlexArr = ["radio", "checkboxTag","fqyq"] return noFlexArr.includes(this.type) ? '' : 'flex1' }, getDecimalDigits() { @@ -665,13 +678,14 @@ export default { }, getFillTypeStyle(type) { const { fillType } = this.item; + const filterType = ["attachment","checkboxTag","fqyq"] const typeObj = { actFill: "orange-border",//实际填写的边框颜色 green: "green-border", preFill: "blue-border",//预填写的边框颜色 } // 如果有错误状态,返回红色边框样式,覆盖原有的边框颜色 - if (this.error && this.type !== "attachment" && this.type !== "checkboxTag") { + if (this.error && !filterType.includes(this.type)) { return "error-border"; } return typeObj[fillType] || "" @@ -857,6 +871,21 @@ export default { this.$emit('input', [...this.checkboxTagList]); this.$emit('change', [...this.checkboxTagList]); }, + + // fqyq 主radio变化处理 + onFqyqRadioChange(val, radioType) { + this.fqyqValue[radioType] = val; + this.currentFqyqType = radioType; + this.onCommonHandleSaveRecord(); + }, + + // fqyq 输入框失去焦点 + onFqyqInputBlur(e) { + this.fqyqValue.inputValue = e.target.value; + this.currentFqyqType = 'inputValue'; + this.onCommonHandleSaveRecord(this.fqyqValue.inputValue); + }, + // 统一处理失去焦点事件 onBlur(e) { this.onCommonHandleSaveRecord(e.target.value); @@ -889,6 +918,16 @@ export default { this.visible = true; } }, + getFqyqInfo(){ + const { mainRadio,inputValue,subRadio } = this.fqyqValue; + const { mainRadio: oldMainRadio,inputValue: oldInputValue,subRadio: oldSubRadio } = this.oldFqyqValue; + const o ={ + "mainRadio":{oldValue:oldMainRadio,newValue:mainRadio,des:""}, + "inputValue":{oldValue:oldInputValue,newValue:inputValue,des:""}, + "subRadio":{oldValue:oldSubRadio,newValue:subRadio,des:"是否在规定时间完成:"} + } + return o[this.currentFqyqType]; + }, async onCommonHandleSaveRecord(val) { const isEmpty = this.isValueEmpty(this.inputValue); if (this.error && !isEmpty) { @@ -945,11 +984,15 @@ export default { const oldTag = this.oldCheckboxTagList[this.currentTagIndex] || {}; isSame = this.isEqual(oldTag.checked, currentTag.checked); isOldValueEmpty = this.isValueEmpty(oldTag.checked); - - }else{ + } else if (this.type === "fqyq") { + const current = this.getFqyqInfo(); + isSame = this.isEqual(current.oldValue,current.newValue); + isOldValueEmpty = this.isValueEmpty(current.oldValue); + } else { isSame = this.isEqual(this.oldValue, this.inputValue) isOldValueEmpty = this.isValueEmpty(this.oldValue); } + console.log(isSame,isOldValueEmpty,this.fqyqValue,this.oldFqyqValue,"isSame") if (isSame) { return; } @@ -981,6 +1024,10 @@ export default { this.checkboxTagList = JSON.parse(JSON.stringify(this.oldCheckboxTagList)); oldValue = [...this.checkboxTagList]; } + } else if (this.type === "fqyq") { + // 如果没有指定字段,回退整个对象 + this.fqyqValue = JSON.parse(JSON.stringify(this.oldFqyqValue)); + oldValue = { ...this.fqyqValue }; } this.inputValue = this.oldValue; this.$emit('input', oldValue); // 触发 v-model 更新 @@ -1008,8 +1055,12 @@ export default { const currentTag = this.checkboxTagList[this.currentTagIndex] || {}; recordOldVlaue = `${oldTag.tagValue || ''}:${oldTag.checked ? '勾选' : '未勾选'}`; recordValue = `${currentTag.tagValue || ''}:${currentTag.checked ? '勾选' : '未勾选'}`; - isModify = oldTag.checked !== undefined - + isModify = oldTag.checked !== undefined; + } else if (this.type === "fqyq") { + const current = this.getFqyqInfo(); + recordOldVlaue = `${current.des+current.oldValue}`; + recordValue = `${current.des+current.newValue}`; + isModify = !!this.oldFqyqValue.mainRadio } const record = { ...baseInfo, @@ -1040,6 +1091,9 @@ export default { // 如果没有指定tagIndex,更新整个数组 this.oldCheckboxTagList = JSON.parse(JSON.stringify(this.checkboxTagList)); } + } else if (this.type === "fqyq") { + // 如果没有指定字段,更新整个对象 + this.oldFqyqValue = JSON.parse(JSON.stringify(this.fqyqValue)); } let value = this.inputValue; if (this.type === 'checkboxList') { @@ -1049,6 +1103,8 @@ export default { }; } else if (this.type === "checkboxTag") { value = [...this.checkboxTagList]; + } else if (this.type === "fqyq") { + value = { ...this.fqyqValue }; } if (this.type === "button") { this.$emit('clickButton', this.item, this.inputValue, data); @@ -1692,6 +1748,9 @@ export default { border-color: #f9c588; } } + .el-radio__inner { + border-color: #f9c588; + } } } @@ -1748,6 +1807,15 @@ export default { } .fqyq-input{ width: 500px; - margin-left: 10px; + margin-right:10px; +} +.mb-10{ + margin-bottom: 10px; +} +.fs-14{ + font-size: 14px; +} +.mr-10{ + margin-right: 10px; } \ No newline at end of file diff --git a/src/components/Template/mixins/formPackageMixins.js b/src/components/Template/mixins/formPackageMixins.js index 4af3cb3..ed74c6d 100644 --- a/src/components/Template/mixins/formPackageMixins.js +++ b/src/components/Template/mixins/formPackageMixins.js @@ -54,7 +54,7 @@ export default { } this.onValueChangeCompareTo(key, val); this.formFields[key] = val; - this.$emit("select", { key, value: val, type,...this.formFields }); + this.$emit("select", { key, value: val, type, ...this.formFields }); // 清除该表单项的错误状态 if (this.errors[key]) { this.$set(this.errors, key, false); @@ -62,22 +62,22 @@ export default { }, //试剂/仪器等弹窗提交 - onRegentSubmit(data,inputValue,key,item){ - this.updateFormData(key,inputValue); - this.$emit("onRegentSubmit", {selectInfo:data,inputValue,key,config:item}); + onRegentSubmit(data, inputValue, key, item) { + this.updateFormData(key, inputValue); + this.$emit("onRegentSubmit", { selectInfo: data, inputValue, key, config: item }); }, - getRegentItem(item,fieldCode="type"){ - const type = item[fieldCode] ; - console.log(item,"type") + getRegentItem(item, fieldCode = "type") { + const type = item[fieldCode]; + console.log(item, "type") return { label: "", type, fillType: item.subFillType || item.fillType, parentLabel: item.label, - filledCodes:item.filledCodes, + filledCodes: item.filledCodes, } }, - + handleClickButton(key) { this.$emit("clickButton", key) }, @@ -96,7 +96,7 @@ export default { this.$set(this.errors, key, false); } }, - //批量更新表单数据 + //批量更新表单数据 batchUpdateFormData(data) { const cloneFormFields = JSON.parse(JSON.stringify(this.formFields)); Object.keys(data).forEach(key => { @@ -107,29 +107,29 @@ export default { this.$set(this.errors, key, false); } }) - + }, //更新表单数据 - updateFormData(key, value,data) { - const {isUpdateRecord,signData} = data || {}; + updateFormData(key, value, data) { + const { isUpdateRecord, signData } = data || {}; // 深拷贝当前表单数据,避免直接修改原数据 const cloneFormFields = JSON.parse(JSON.stringify(this.formFields)); - + this.oldFormFields[key] = cloneFormFields[key]; this.formFields[key] = value; // 清除该表单项的错误状态 if (this.errors[key]) { this.$set(this.errors, key, false); } - - if(isUpdateRecord){ + + if (isUpdateRecord) { setTimeout(() => { - this.$refs[key][0].handleUpdateRecord(signData,{oldValue:this.oldFormFields[key],inputValue:value}); + this.$refs[key][0].handleUpdateRecord(signData, { oldValue: this.oldFormFields[key], inputValue: value }); }, 10); } }, - - + + handleClickable(sItem, key) { if (this.templateFillType !== 'actFill') { return @@ -177,7 +177,7 @@ export default { fillType: sItem.subFillType || sItem.fillType, parentLabel: sItem.label, } - if(sItem.subDisabled){ + if (sItem.subDisabled) { config.disabled = sItem.subDisabled; } return config; @@ -215,14 +215,14 @@ export default { // 处理特殊字段 - "其他"字段 if (currentConfig.otherCode) { - const { otherCode,type } = currentConfig; + const { otherCode, type } = currentConfig; //如果是更新的话,优先使用formFields中的值 if (update) { result[otherCode] = formFields[otherCode] || formData[otherCode] || ''; } else { result[otherCode] = formData[otherCode] || formFields[otherCode] || ''; } - config[otherCode] = { label: "template.common.other",parentType:type, parentKey: key, type: "input", fillType: currentConfig.fillType } + config[otherCode] = { label: "template.common.other", parentType: type, parentKey: key, type: "input", fillType: currentConfig.fillType } } if (currentConfig.subKey) { const { subKey } = currentConfig; @@ -311,17 +311,17 @@ export default { if (!isSelectedOther) {//如果其他选项没有被选择,清空其他字段 formFields[o.otherCode] = ""; } - }else if(o.type === "radioAndOther"){ - const isSelectedOther = this.isShowOtherByRadioAndOther(formFields[key]); + } else if (o.type === "radioAndOther") { + const isSelectedOther = this.isShowOtherByRadioAndOther(formFields[key]); if (!isSelectedOther) {//如果其他选项没有被选择,清空其他字段 formFields[o.otherCode] = ""; } } } - if(o.type === "attachment"){ + if (o.type === "attachment") { const attValue = formFields[key]; - if(!attValue || attValue == "[]"){ + if (!attValue || attValue == "[]") { errors.push({ field: key, label: o.label, @@ -329,13 +329,44 @@ export default { }); this.$set(this.errors, key, true); } + } else if (o.type === "fqyq") { + const fqyqValue = formFields[key]; + const {mainRadio, subRadio,inputValue} = fqyqValue; + if (!mainRadio) { + errors.push({ + field: key, + label: o.label, + error: "请选择是否在规定时间完成" + }); + this.$set(this.errors, key, true); + } else { + if (mainRadio==="是") { + if (!subRadio) { + errors.push({ + field: key, + label: o.label, + error: "请选择是否在规定时间完成" + }); + this.$set(this.errors, key, true); + }else if(!inputValue){ + errors.push({ + field: key, + label: o.label, + error: "请输入信息" + }); + this.$set(this.errors, key, true); + } + } + } + + continue } if (this.isValueEmpty(formFields[key])) { // 其他字段需要判断是否显示再校验 if (o.label === "template.common.other" && !this.isShowOther(formFields[o.parentKey]) && o.parentType !== "radioAndOther") { continue } - if (o.type === "radioAndOther" &&o.label === "template.common.other" && !this.isShowOtherByRadioAndOther(formFields[o.parentKey])) { + if (o.type === "radioAndOther" && o.label === "template.common.other" && !this.isShowOtherByRadioAndOther(formFields[o.parentKey])) { continue } //span的字段不校验 @@ -432,7 +463,7 @@ export default { if (this.errors[key]) { this.$set(this.errors, key, false); } - + // 如果是checkboxList类型,需要处理otherValues if (val && typeof val === 'object' && val.otherValues) { // 将otherValues中的每个值也保存到formFields中 From ccb9d24c7beaec9e81de336068a659c667a15e50 Mon Sep 17 00:00:00 2001 From: HanLong <404402223@qq.com> Date: Mon, 2 Mar 2026 09:28:23 +0800 Subject: [PATCH 06/17] =?UTF-8?q?feat:[=E8=B5=84=E6=BA=90=E5=BA=93?= =?UTF-8?q?=E7=AE=A1=E7=90=86][=E4=BB=AA=E5=99=A8=E7=AE=A1=E7=90=86]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/business/resource/yq/comps/detail.vue | 4 ++-- src/views/business/resource/yq/list.vue | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/views/business/resource/yq/comps/detail.vue b/src/views/business/resource/yq/comps/detail.vue index 1529f8c..d59502a 100644 --- a/src/views/business/resource/yq/comps/detail.vue +++ b/src/views/business/resource/yq/comps/detail.vue @@ -42,7 +42,7 @@ - + diff --git a/src/views/business/resource/yq/list.vue b/src/views/business/resource/yq/list.vue index c86d9c1..63ebfa3 100644 --- a/src/views/business/resource/yq/list.vue +++ b/src/views/business/resource/yq/list.vue @@ -17,12 +17,12 @@ - + {{ $t('form.search') }} @@ -32,10 +32,10 @@ - {{ + {{ $t('page.business.resource.yq.refresh') }} - {{ - $t('page.business.resource.yq.add') }} + @@ -54,8 +54,8 @@ From 048eddbbe53164da71fe7b1633e24fab19fad299 Mon Sep 17 00:00:00 2001 From: memorylkf <312904636@qq.com> Date: Mon, 2 Mar 2026 16:05:47 +0800 Subject: [PATCH 07/17] =?UTF-8?q?feat:=20[=E6=AD=A5=E9=AA=A4=E7=AE=A1?= =?UTF-8?q?=E7=90=86]=20=E8=A1=A8=E9=85=8D=E7=BD=AE=E7=A6=BB=E5=BF=83-?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E6=BA=B6=E6=B6=B2=E7=A6=BB=E5=BF=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Template/Step.vue | 4 +++- src/components/Template/StepComponents/ry/lx.vue | 23 ++++++++++++++++++----- 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/components/Template/Step.vue b/src/components/Template/Step.vue index b0638a8..3e9c0e7 100644 --- a/src/components/Template/Step.vue +++ b/src/components/Template/Step.vue @@ -12,7 +12,7 @@ -
@@ -83,6 +83,7 @@ import jr from "./StepComponents/ry/jr.vue";//溶液-加热 //表配置 import jrry_b from './StepComponents/b/jrry_b.vue';//表配置-加入溶液 +//表配置-离心:使用溶液离心 import { public_templateStepList } from '@/api/business/public/public'; @@ -259,6 +260,7 @@ export default { //标配配置 'jrry_b': 'jrry_b', + 'lx_b': 'lx', } } return this.componentMap diff --git a/src/components/Template/StepComponents/ry/lx.vue b/src/components/Template/StepComponents/ry/lx.vue index 2253e91..4bb113d 100644 --- a/src/components/Template/StepComponents/ry/lx.vue +++ b/src/components/Template/StepComponents/ry/lx.vue @@ -9,12 +9,18 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; export default { mixins: [stepMixins], + props: { + sn: { + type: String, + default: 'lx', + }, + }, components: { StepFormPackage }, computed: { formConfig() { - return [{ + let config = [{ config: { text1: { label: "使用离心机", @@ -116,12 +122,19 @@ export default { type: "button", buttonName: "开始", }, - text9: { - type: "text", - label: "。", - }, } }] + if(this.sn==='lx_b'){ + config[0].config.remark = { + type: "input", + fillType: "actFill", + } + } + config[0].config.text9 = { + type: "text", + label: "。", + } + return config } }, } From 1100e83788f46af07f4f905a34cd91f0187e5107 Mon Sep 17 00:00:00 2001 From: memorylkf <312904636@qq.com> Date: Mon, 2 Mar 2026 16:07:31 +0800 Subject: [PATCH 08/17] =?UTF-8?q?feat:=20[=E6=AD=A5=E9=AA=A4=E7=AE=A1?= =?UTF-8?q?=E7=90=86]=20=E5=88=A0=E9=99=A4debugger?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Template/Step.vue | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/components/Template/Step.vue b/src/components/Template/Step.vue index 3e9c0e7..dcabb2a 100644 --- a/src/components/Template/Step.vue +++ b/src/components/Template/Step.vue @@ -302,13 +302,11 @@ export default { }, methods: { getStepList(){ - debugger public_templateStepList({templateId:this.templateData.templateId}).then(response => { let options = [] _.forEach(response.data,(item)=>{ options.push({ label: item.name, value: item.sn }) }) - debugger this.stepSelectConfig.options = options }); }, From 8de94cdaa3b1cbdc1556a53125c8a24dc5965f19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?ZHANGTENG=5C=E5=BC=A0=E8=85=BE?= <894697943@qq.com> Date: Mon, 2 Mar 2026 16:21:15 +0800 Subject: [PATCH 09/17] =?UTF-8?q?feat:[=E6=A8=A1=E6=9D=BF=E7=AE=A1?= =?UTF-8?q?=E7=90=86]xb001?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lang/en.js | 5 +- src/lang/en/template/xb.js | 14 + src/lang/zh.js | 5 +- src/lang/zh/template/xb.js | 14 + .../business/comps/template/TemplateTable.vue | 7 + .../business/comps/template/comps/xb/XB001.vue | 336 +++++++++++++++++++ .../business/comps/template/formConfig/xb/xb001.js | 361 +++++++++++++++++++++ .../comps/template/mixins/templateMixin.js | 2 + 8 files changed, 742 insertions(+), 2 deletions(-) create mode 100644 src/lang/en/template/xb.js create mode 100644 src/lang/zh/template/xb.js create mode 100644 src/views/business/comps/template/comps/xb/XB001.vue create mode 100644 src/views/business/comps/template/formConfig/xb/xb001.js diff --git a/src/lang/en.js b/src/lang/en.js index 7f79283..5201f74 100644 --- a/src/lang/en.js +++ b/src/lang/en.js @@ -29,6 +29,8 @@ import yp from './en/template/yp' import ada from './en/template/ada' //毒理模板 import dl from './en/template/dl' +//细胞模板 +import xb from './zh/template/xb' // 试验管理 import study from './en/business/study/study' @@ -202,6 +204,7 @@ export default { lba: lba, yp: yp, ada: ada, - dl: dl + dl: dl, + xb: xb, } } diff --git a/src/lang/en/template/xb.js b/src/lang/en/template/xb.js new file mode 100644 index 0000000..6e7a3bb --- /dev/null +++ b/src/lang/en/template/xb.js @@ -0,0 +1,14 @@ +//细胞 +export default { + xb001: { + jcsj: '检测时间', + czbz: 'Operation Workflow', + qtbz: '其他步骤', + fj: 'Attachment', + fpc: '分批次', + zb: '组别', + lx: '类型', + fysc: '孵育时长(hr: min)' + }, + +} diff --git a/src/lang/zh.js b/src/lang/zh.js index 9bac231..754280b 100644 --- a/src/lang/zh.js +++ b/src/lang/zh.js @@ -29,6 +29,8 @@ import yp from './zh/template/yp' import ada from './zh/template/ada' //毒理模板 import dl from './zh/template/dl' +//细胞模板 +import xb from './zh/template/xb' // 试验管理 import study from './zh/business/study/study' @@ -197,6 +199,7 @@ export default { lba: lba, yp: yp, ada: ada, - dl: dl + dl: dl, + xb: xb, } } diff --git a/src/lang/zh/template/xb.js b/src/lang/zh/template/xb.js new file mode 100644 index 0000000..6c2d363 --- /dev/null +++ b/src/lang/zh/template/xb.js @@ -0,0 +1,14 @@ +//细胞 +export default { + xb001: { + jcsj: '检测时间', + czbz: '操作步骤', + qtbz: '其他步骤', + fj: '附件', + fpc: '分批次', + zb: '组别', + lx: '类型', + fysc: '孵育时长(hr: min)' + }, + +} diff --git a/src/views/business/comps/template/TemplateTable.vue b/src/views/business/comps/template/TemplateTable.vue index ab926c6..f118bd9 100644 --- a/src/views/business/comps/template/TemplateTable.vue +++ b/src/views/business/comps/template/TemplateTable.vue @@ -74,6 +74,9 @@ import YP003 from "./comps/yp/YP003.vue"; import YP004 from "./comps/yp/YP004.vue"; import YP005 from "./comps/yp/YP005.vue"; +//细胞 +import XB001 from "./comps/xb/XB001.vue"; + //毒理 // DL001-SYWZPZJHB // DL002-使用SP001 @@ -103,6 +106,8 @@ export default { YP003, YP004, YP005, + //细胞 + XB001, }, props: { sn: { @@ -191,6 +196,8 @@ export default { 'YP003': 'YP003', 'YP004': 'YP004', 'YP005': 'YP005', + //细胞 + 'XB001': 'XB001', //毒理 //DL001-SYWZPZJHB 'DL002': 'SP001', diff --git a/src/views/business/comps/template/comps/xb/XB001.vue b/src/views/business/comps/template/comps/xb/XB001.vue new file mode 100644 index 0000000..5822192 --- /dev/null +++ b/src/views/business/comps/template/comps/xb/XB001.vue @@ -0,0 +1,336 @@ + + + + + \ No newline at end of file diff --git a/src/views/business/comps/template/formConfig/xb/xb001.js b/src/views/business/comps/template/formConfig/xb/xb001.js new file mode 100644 index 0000000..764ec19 --- /dev/null +++ b/src/views/business/comps/template/formConfig/xb/xb001.js @@ -0,0 +1,361 @@ +//操作第二步配置 +export const getStepSecond = ($this) => { + return [{ + config:{ + text1:{ + label:"待测样品于", + type:"text", + }, + dcyb:{ + type:"input", + fillType:"preFill", + }, + text2:{ + label:"解冻完成后,分别使用移液器", + type:"text", + }, + yyqfirst:{ + type:"yq", + fillType:"actFill", + }, + text3:{ + label:"取待测血清预计", + type:"text", + }, + dcxqyj:{ + type:"inputNumber", + fillType:"preFill", + }, + dcxqyjdw:{ + type:"select", + options:$this.getDictOptions("business_tjdw"), + fillType:"preFill", + }, + text4:{ + label:"实际", + type:"text", + }, + dcxqsj:{ + type:"inputNumber", + fillType:"actFill", + compareTo:"dcxqyj", + copyFrom:"dcxqyj" + }, + dcxqsjdw:{ + type:"select", + options:$this.getDictOptions("business_tjdw"), + fillType:"actFill", + compareTo:"dcxqyjdw", + copyFrom:"dcxqyjdw" + }, + text5:{ + label:"加入稀释深孔板,再分别使用移液器", + type:"text", + }, + yyqsecond:{ + type:"yq", + fillType:"actFill", + }, + text6:{ + label:"取BBS", + type:"text", + }, + bbs:{ + type:"sj", + fillType:"actFill", + }, + text7:{ + label:"预计", + type:"text", + }, + bbsyj:{ + type:"inputNumber", + fillType:"preFill", + }, + bbsyjdw:{ + type:"select", + options:$this.getDictOptions("business_tjdw"), + fillType:"preFill", + }, + text8:{ + label:"实际", + type:"text", + }, + bbssj:{ + type:"inputNumber", + fillType:"actFill", + compareTo:"bbsyj", + copyFrom:"bbsyj" + }, + bbssjdw:{ + type:"select", + options:$this.getDictOptions("business_tjdw"), + fillType:"actFill", + compareTo:"bbsyjdw", + copyFrom:"bbsyjdw" + }, + text9:{ + label:"加入稀释深孔板,放在摇床上", + type:"text", + }, + yc:{ + type:"yq", + fillType:"actFill", + }, + text10:{ + label:"充分摇匀。", + type:"text", + }, + } + }] +} + +//操作第三步配置 +export const getStepThird = ($this) => { + return [{ + config:{ + text1:{ + label:"分别使用移液器", + type:"text", + }, + yyqfirst:{ + type:"yq", + fillType:"actFill", + }, + text2:{ + label:"取BBS", + type:"text", + }, + bbs:{ + type:"sj", + fillType:"actFill", + }, + text3:{ + label:"预计", + type:"text", + }, + bbsyj:{ + type:"inputNumber", + fillType:"preFill", + }, + bbsyjdw:{ + type:"select", + options:$this.getDictOptions("business_tjdw"), + fillType:"preFill", + }, + text4:{ + label:"实际", + type:"text", + }, + bbssj:{ + type:"inputNumber", + fillType:"actFill", + compareTo:"bbsyj", + copyFrom:"bbsyj" + }, + bbssjdw:{ + type:"select", + options:$this.getDictOptions("business_tjdw"), + fillType:"actFill", + compareTo:"bbsyjdw", + copyFrom:"bbsyjdw" + }, + text5:{ + label:"加入对照管中,再分别使用移液器", + type:"text", + }, + yyqsecond:{ + type:"yq", + fillType:"actFill", + }, + text6:{ + label:"取PEG-NaF", + type:"text", + }, + pegnaf:{ + type:"sj", + fillType:"actFill", + }, + text7:{ + label:"预计", + type:"text", + }, + pegnafyj:{ + type:"inputNumber", + fillType:"preFill", + }, + pegnafyjdw:{ + type:"select", + options:$this.getDictOptions("business_tjdw"), + fillType:"preFill", + }, + text8:{ + label:"实际", + type:"text", + }, + pegnafsj:{ + type:"inputNumber", + fillType:"actFill", + compareTo:"pegnafyj", + copyFrom:"pegnafyj" + }, + pegnafsjdw:{ + type:"select", + options:$this.getDictOptions("business_tjdw"), + fillType:"actFill", + compareTo:"pegnafyjdw", + copyFrom:"pegnafyjdw" + }, + text9:{ + label:"加入测试管中。", + type:"text", + }, + } + }] +} + +//操作第四步配置 +export const getStepFourth = ($this) => { + return [{ + config:{ + text1:{ + label:"使用移液器", + type:"text", + }, + yyq:{ + type:"yq", + fillType:"actFill", + }, + text2:{ + label:"分别往对照管和测试管中各加入已稀释的待测血清预计", + type:"text", + }, + dcxqyj:{ + type:"inputNumber", + fillType:"preFill", + }, + dcxqyjdw:{ + type:"select", + options:$this.getDictOptions("business_tjdw"), + fillType:"preFill", + }, + text3:{ + label:"实际", + type:"text", + }, + dcxqsj:{ + type:"inputNumber", + fillType:"actFill", + compareTo:"dcxqyj", + copyFrom:"dcxqyj" + }, + dcxqsjdw:{ + type:"select", + options:$this.getDictOptions("business_tjdw"), + fillType:"actFill", + compareTo:"dcxqyjdw", + copyFrom:"dcxqyjdw" + } + } + }] +} + +//操作第五步配置 +export const getStepFivth = ($this) => { + return [{ + config:{ + text1:{ + label:"将以上缓冲液与血清放在摇床", + type:"text", + }, + yc:{ + type:"yq", + fillType:"actFill", + }, + text2:{ + label:"上充分混匀,置于孵育箱", + type:"text", + }, + fyx:{ + type:"yq", + fillType:"actFill", + }, + text3:{ + label:"中,设置预计温度", + type:"text", + }, + yjwd:{ + type:"inputNumber", + fillType:"preFill", + }, + text4:{ + label:"℃,实际温度", + type:"text", + }, + sjwd:{ + type:"inputNumber", + fillType:"actFill", + compareTo:"yjwd", + copyFrom:"yjwd" + }, + text5:{ + label:"℃,孵育", + type:"text", + }, + fysj:{ + type:"inputNumber", + fillType:"preFill", + }, + text6:{ + label:"小时。", + type:"text", + }, + } + }] +} + +//操作第六步配置 +export const getStepSixth = ($this) => { + return [{ + config:{ + text1:{ + label:"孵育完成后,使用移液器", + type:"text", + }, + yyq:{ + type:"yq", + fillType:"actFill", + }, + text2:{ + label:"将对照管和测试管的溶液转移至对应的比色皿,用紫外分光光度计", + type:"text", + }, + zwfggdj:{ + type:"yq", + fillType:"actFill", + }, + text3:{ + label:",设置预计波长", + type:"text", + }, + yjbc:{ + type:"inputNumber", + fillType:"preFill", + }, + text4:{ + label:"nm,实际波长", + type:"text", + }, + sjbc:{ + type:"inputNumber", + fillType:"actFill", + compareTo:"yjbc", + copyFrom:"yjbc" + }, + text5:{ + label:"nm,测定其OD值。", + type:"text", + }, + } + }] +} \ No newline at end of file diff --git a/src/views/business/comps/template/mixins/templateMixin.js b/src/views/business/comps/template/mixins/templateMixin.js index 9c03997..479afb5 100644 --- a/src/views/business/comps/template/mixins/templateMixin.js +++ b/src/views/business/comps/template/mixins/templateMixin.js @@ -33,6 +33,8 @@ export default { 'business_lba_jg', // LBA006-结果 'business_cftj', // 存放条件 'business_yplx', // 样品类型 + 'business_xbzb', // 细胞组别 + 'business_xblx', // 细胞类型 ], props: { templateData: { From a401802c78c208e44089b029c38d78c502421e6d Mon Sep 17 00:00:00 2001 From: luojie <125330818@qq.com> Date: Mon, 2 Mar 2026 16:52:55 +0800 Subject: [PATCH 10/17] =?UTF-8?q?feat:[=E6=A8=A1=E6=9D=BF=E7=AE=A1?= =?UTF-8?q?=E7=90=86][update]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Template/CustomTable.vue | 17 +-- src/components/Template/HandleFormItem.vue | 152 +++++++++++---------- src/utils/index.js | 3 + .../comps/template/formConfig/sp/SP0019.js | 11 +- .../comps/template/mixins/templateMixin.js | 1 + 5 files changed, 98 insertions(+), 86 deletions(-) diff --git a/src/components/Template/CustomTable.vue b/src/components/Template/CustomTable.vue index 8447349..873cb0a 100644 --- a/src/components/Template/CustomTable.vue +++ b/src/components/Template/CustomTable.vue @@ -216,7 +216,8 @@ import { isShowOther } from "@/utils/formPackageCommon.js"; import { EventBus } from "@/utils/eventBus"; import { getuuid } from "@/utils/index.js"; import { isRegent } from "@/utils/index.js"; -import moment from "moment"; +import { isValueEmpty } from '@/utils/index.js'; + import _ from "lodash"; export default { inject: ['templateFillType', 'getZdxgjl', 'updateZdxgjl'], @@ -415,7 +416,7 @@ export default { onCopy(rowIndex, col) { if (col.copyFrom) { - if (this.isValueEmpty(this.localDataSource[rowIndex][col.copyFrom])) {//没有值就不用复制了 + if (isValueEmpty(this.localDataSource[rowIndex][col.copyFrom])) {//没有值就不用复制了 return } this.updateDataSourceByRowIndex(rowIndex, { [col.prop]: this.localDataSource[rowIndex][col.copyFrom] }, "clickable") @@ -470,7 +471,7 @@ export default { this.columns.forEach((col, colIndex) => { if (col.headerSelectKey && col.headerOptions && col.fillType === this.templateFillType) { const headerValue = this.headerSelectFields[col.headerSelectKey]; - if (this.isValueEmpty(headerValue)) { + if (isValueEmpty(headerValue)) { const errorItem = { rowIndex: -1, // 表头特殊标记 colIndex, @@ -524,7 +525,7 @@ export default { } } } else { - if (this.isValueEmpty(mainValue) && !col.bodyDisabled && col.bodyType !== 'span' && col.bodyType !== 'button') { + if (isValueEmpty(mainValue) && !col.bodyDisabled && col.bodyType !== 'span' && col.bodyType !== 'button') { const errorItem = { rowIndex, colIndex, @@ -540,7 +541,7 @@ export default { if (col.bodySubKey && !col.bodySubDisabled && col.bodySubType !== 'span' && col.bodySubType !== "button") { const subValue = row[col.bodySubKey]; console.log(col, subValue, "subValue") - if (this.isValueEmpty(subValue)) { + if (isValueEmpty(subValue)) { const errorItem = { rowIndex, colIndex, @@ -563,7 +564,7 @@ export default { return; } const otherValue = row[col.otherCode]; - if (this.isValueEmpty(otherValue)) { + if (isValueEmpty(otherValue)) { const errorItem = { rowIndex, colIndex, @@ -636,7 +637,7 @@ export default { this.columns.forEach((col, colIndex) => { const currentValue = row[col.prop]; const compareToValue = row[col.compareTo]; - if (col.compareTo && !this.isValueEmpty(currentValue) && !this.isValueEmpty(compareToValue)) { + if (col.compareTo && !isValueEmpty(currentValue) && !isValueEmpty(compareToValue)) { // 比较当前值和compareTo值,如果不相等则设置橙色背景 if (!isEqual(currentValue, compareToValue)) { this.setOrangeBg(rowIndex, colIndex, col.prop, true); @@ -651,7 +652,7 @@ export default { const currentValue = row[col.bodySubKey]; const compareToValue = row[col.bodySubCompareTo]; - if (!this.isValueEmpty(currentValue) && !this.isValueEmpty(compareToValue)) { + if (!isValueEmpty(currentValue) && !isValueEmpty(compareToValue)) { // 比较当前值和compareTo值,如果不相等则设置橙色背景 if (!isEqual(currentValue, compareToValue)) { this.setOrangeBg(rowIndex, colIndex, col.bodySubKey, true); diff --git a/src/components/Template/HandleFormItem.vue b/src/components/Template/HandleFormItem.vue index 8ded2d0..6ba9680 100644 --- a/src/components/Template/HandleFormItem.vue +++ b/src/components/Template/HandleFormItem.vue @@ -34,16 +34,15 @@
- +
{{ option.label }} -
- +
+
@@ -197,6 +196,8 @@ import moment from "moment"; import { deepClone } from "@/utils/index"; import { getuuid } from "@/utils/index.js"; import { getToken } from "@/utils/auth" +import { isValueEmpty } from '@/utils/index.js'; + export default { inject: ['templateData', 'templateFillType', "getZdxgjl", "getFhyjjl", "updateZdxgjl", "replaceFhyjjl", "updateFhyjjl", "getFieldCheckObj", "updateFieldCheckObj"], components: { @@ -254,14 +255,14 @@ export default { }, data() { let initialValue = this.value; - let initialOtherValues = {}, checkboxTagList = [], fqyqValue = {}; - - // 如果是checkboxList类型且value是对象格式 - if (this.type === 'checkboxList' && this.value && typeof this.value === 'object') { - initialValue = this.value.checkboxValues || []; - initialOtherValues = this.value.otherValues || {}; - } else if (this.type === 'checkboxList' && !Array.isArray(this.value)) { - initialValue = []; + let initialOtherValues = {}, checkboxTagList = []; + + if(this.type === 'checkboxList' && !this.value) { + initialValue = { + checkboxValues: [], + otherValues: {} + }; + } else if (this.type === 'checkboxTag' && Array.isArray(this.value)) { // checkboxTag类型,value是数组格式 checkboxTagList = this.value.map(tag => ({ @@ -274,8 +275,6 @@ export default { return { inputValue: initialValue, oldValue: initialValue, // 记录上一次的值 - otherValues: initialOtherValues, // 存储checkboxList中otherCode对应的输入值 - oldOtherValues: { ...initialOtherValues }, // 记录上一次的otherValues showModal: false, // 控制模态框显示 modificationRecords: [], // 存储修改记录 modalTimer: null, // 用于延迟隐藏模态框 @@ -289,6 +288,8 @@ export default { oldCheckboxTagList: JSON.parse(JSON.stringify(checkboxTagList)), // 记录上一次的checkboxTagList fqyqValue: initialValue, // fqyq类型的值 oldFqyqValue: {...initialValue}, // 记录上一次的fqyq值 + checkboxListValue: initialValue, // checkboxList类型的值 + oldCheckboxListValue: JSON.parse(JSON.stringify(initialValue)), // 记录上一次的checkboxList值 uuid: getuuid(), // 唯一标识符,用于EventBus事件匹配 regentType: ['sj', 'gsp', 'mix', 'xj', 'xb', 'gyzj', 'mjy', 'yq', 'jcb', 'qxbd'], //试剂/仪器/供试品等类型 selectRegentInfo: {},//选择的试剂/仪器/供试品等信息 @@ -300,15 +301,17 @@ export default { pendingUploadFile: null, // 用于存储待上传的文件 pendingRemoveFile: null, // 用于存储待删除的文件 currentTagIndex:-1,//当前选中的checkboxTag索引 - currentFqyqType:'',//当前选中的fqyq操作的类型 + currentHandleType:'',//当前操作的类型 + currentOtherCode:'',//当前操作的otherCode } }, watch: { value(newVal) { - console.log(newVal, "newVal") if (this.type === 'checkboxList' && newVal && typeof newVal === 'object') { - this.inputValue = newVal.checkboxValues || []; - this.otherValues = newVal.otherValues || {}; + this.checkboxListValue = { + checkboxValues: newVal.checkboxValues || [], + otherValues: newVal.otherValues || {} + }; } else if (this.type === 'checkboxTag' && Array.isArray(newVal)) { // checkboxTag类型,value是数组格式 this.checkboxTagList = newVal.map(tag => ({ @@ -323,7 +326,7 @@ export default { subRadio: newVal.subRadio || '' }; } else { - this.inputValue = this.type === 'checkboxList' && !Array.isArray(newVal) ? [] : newVal; + this.inputValue = newVal; } } }, @@ -800,49 +803,17 @@ export default { // 统一处理输入变化 onInputChange(val) { let value = val !== undefined ? val : this.inputValue; - // 如果是checkboxList类型,需要同时发送checkboxValues和otherValues - if (this.type === 'checkboxList') { - // 检查是否有被取消选中的checkbox - if (this.oldValue && Array.isArray(this.oldValue)) { - const uncheckedValues = this.oldValue.filter(oldVal => !this.inputValue.includes(oldVal)); - - // 清除被取消选中的checkbox对应的otherValues - if (uncheckedValues.length > 0) { - this.item.options.forEach(option => { - if (uncheckedValues.includes(option.value) && option.otherCode) { - this.$delete(this.otherValues, option.otherCode); - } - }); - } - } - value = { - checkboxValues: this.inputValue, - otherValues: this.otherValues - }; - if (val) { - - this.onCommonHandleSaveRecord(); - } - } - this.$emit('input', value); this.$emit('change', value); - - // 根据输入值判断是否显示错误状态 - const isEmpty = this.isValueEmpty(value); + const isEmpty = isValueEmpty(value); if (this.error && !isEmpty) { this.$emit('update:error', false); } else if (!this.error && isEmpty) { this.$emit('update:error', true); } }, - // 处理checkboxList中otherCode对应的输入框变化 - onOtherInputChange(code, value) { - this.otherValues[code] = value; - this.onInputChange(); - }, // checkboxTag的checkbox变化处理 onCheckboxTagChange(tagIndex, e) { this.currentTagIndex = tagIndex; @@ -850,6 +821,20 @@ export default { this.emitCheckboxTagValue(); this.onCommonHandleSaveRecord(); }, + // 检查是否显示显示checkboxList的其他输入框 + isShowCheckboxListOther(option) { + const {checkboxValues } = this.checkboxListValue + if (!checkboxValues) { + return false; + } + return option.otherCode && checkboxValues.includes(option.value); + }, + // checkboxList的checkbox变化处理 + onCheckboxListChange(val) { + this.currentHandleType = 'checkboxListValue'; + this.checkboxListValue.checkboxValues = val; + this.onCommonHandleSaveRecord(); + }, // tag输入框失去焦点 onTagBlur(tagIndex) { @@ -875,14 +860,14 @@ export default { // fqyq 主radio变化处理 onFqyqRadioChange(val, radioType) { this.fqyqValue[radioType] = val; - this.currentFqyqType = radioType; + this.currentHandleType = radioType; this.onCommonHandleSaveRecord(); }, // fqyq 输入框失去焦点 onFqyqInputBlur(e) { this.fqyqValue.inputValue = e.target.value; - this.currentFqyqType = 'inputValue'; + this.currentHandleType = 'inputValue'; this.onCommonHandleSaveRecord(this.fqyqValue.inputValue); }, @@ -890,6 +875,13 @@ export default { onBlur(e) { this.onCommonHandleSaveRecord(e.target.value); }, + // checkboxList的其他输入框失去焦点处理 + onCheckboxListOtherBlur(e, otherCode) { + this.currentHandleType = "checkboxListOther"; + this.currentOtherCode = otherCode; + this.checkboxListValue.otherValues[otherCode] = e.target.value; + this.onCommonHandleSaveRecord(e.target.value); + }, // 点击question图标 onClickQuestion() { const { templateFillType } = this; @@ -918,6 +910,15 @@ export default { this.visible = true; } }, + getCheckboxListInfo(){ + const { otherValues,checkboxValues } = this.checkboxListValue; + const { otherValues: oldOtherValues,checkboxValues: oldCheckboxValues } = this.oldCheckboxListValue; + const o = { + "checkboxListValue":{oldValue:oldCheckboxValues,newValue:checkboxValues,des:""}, + "checkboxListOther":{oldValue:oldOtherValues[this.currentOtherCode],newValue:otherValues[this.currentOtherCode],des:""}, + } + return o[this.currentHandleType]; + }, getFqyqInfo(){ const { mainRadio,inputValue,subRadio } = this.fqyqValue; const { mainRadio: oldMainRadio,inputValue: oldInputValue,subRadio: oldSubRadio } = this.oldFqyqValue; @@ -926,10 +927,10 @@ export default { "inputValue":{oldValue:oldInputValue,newValue:inputValue,des:""}, "subRadio":{oldValue:oldSubRadio,newValue:subRadio,des:"是否在规定时间完成:"} } - return o[this.currentFqyqType]; + return o[this.currentHandleType]; }, async onCommonHandleSaveRecord(val) { - const isEmpty = this.isValueEmpty(this.inputValue); + const isEmpty = isValueEmpty(this.inputValue); if (this.error && !isEmpty) { this.$emit('update:error', false); } else if (!this.error && isEmpty) { @@ -974,23 +975,25 @@ export default { // 值发生了变化,需要弹出密码输入框 let isSame = true, isOldValueEmpty = true; + const { currentHandleType } = this; // 如果是checkboxList类型,需要同时比较otherValues - if (this.type === 'checkboxList' && this.otherValues) { - isSame = this.isEqual(this.oldOtherValues, this.otherValues); - isOldValueEmpty = this.isValueEmpty(this.oldOtherValues); + if (this.type === 'checkboxList') { + const current = this.getCheckboxListInfo(); + isSame = this.isEqual(current.oldValue,current.newValue); + isOldValueEmpty = isValueEmpty(current.oldValue); } else if (this.type === "checkboxTag") { // checkboxTag类型,只比较当前tagIndex的数据 const currentTag = this.checkboxTagList[this.currentTagIndex]; const oldTag = this.oldCheckboxTagList[this.currentTagIndex] || {}; isSame = this.isEqual(oldTag.checked, currentTag.checked); - isOldValueEmpty = this.isValueEmpty(oldTag.checked); + isOldValueEmpty = isValueEmpty(oldTag.checked); } else if (this.type === "fqyq") { const current = this.getFqyqInfo(); isSame = this.isEqual(current.oldValue,current.newValue); - isOldValueEmpty = this.isValueEmpty(current.oldValue); + isOldValueEmpty = isValueEmpty(current.oldValue); } else { isSame = this.isEqual(this.oldValue, this.inputValue) - isOldValueEmpty = this.isValueEmpty(this.oldValue); + isOldValueEmpty = isValueEmpty(this.oldValue); } console.log(isSame,isOldValueEmpty,this.fqyqValue,this.oldFqyqValue,"isSame") if (isSame) { @@ -1010,8 +1013,8 @@ export default { let oldValue = this.oldValue; if (this.type === 'checkboxList') { oldValue = { - checkboxValues: oldValue.checkboxValues || oldValue, - otherValues: this.oldOtherValues + checkboxValues: this.oldCheckboxListValue.checkboxValues, + otherValues: this.oldCheckboxListValue.otherValues }; } else if (this.type === "checkboxTag") { // checkboxTag类型,只回退当前tagIndex的数据 @@ -1061,6 +1064,11 @@ export default { recordOldVlaue = `${current.des+current.oldValue}`; recordValue = `${current.des+current.newValue}`; isModify = !!this.oldFqyqValue.mainRadio + }else if(this.type === "checkboxList"){ + const current = this.getCheckboxListInfo(); + recordOldVlaue = `${current.des+current.oldValue}`; + recordValue = `${current.des+current.newValue}`; + isModify = !!current.oldValue; } const record = { ...baseInfo, @@ -1081,8 +1089,7 @@ export default { // 更新oldValue和oldOtherValues if (this.type === 'checkboxList') { - this.oldValue = [...this.inputValue]; - this.oldOtherValues = { ...this.otherValues }; + this.oldCheckboxListValue = JSON.parse(JSON.stringify(this.checkboxListValue)); } else if (this.type === "checkboxTag") { // checkboxTag类型,只更新当前tagIndex的数据 if (this.currentTagIndex >= 0 && this.currentTagIndex < this.checkboxTagList.length) { @@ -1098,8 +1105,8 @@ export default { let value = this.inputValue; if (this.type === 'checkboxList') { value = { - checkboxValues: this.inputValue, - otherValues: this.otherValues + checkboxValues: this.checkboxListValue.checkboxValues, + otherValues: this.checkboxListValue.otherValues }; } else if (this.type === "checkboxTag") { value = [...this.checkboxTagList]; @@ -1178,6 +1185,9 @@ export default { if (Array.isArray(value) && value.length === 0) { return true; } + if (Object.keys(value).length === 0) { + return true; + } return false; }, // 判断checkboxList中特定otherCode输入框是否有错误 @@ -1186,7 +1196,7 @@ export default { return false; } // 检查该otherCode对应的输入框是否为空 - return this.isValueEmpty(this.otherValues[otherCode]); + return isValueEmpty(this.otherValues[otherCode]); }, handleClickable(item, event) { if (this.templateFillType !== 'actFill') { diff --git a/src/utils/index.js b/src/utils/index.js index 7c1eceb..0212fd7 100644 --- a/src/utils/index.js +++ b/src/utils/index.js @@ -441,6 +441,9 @@ export function isValueEmpty(value) { if (Array.isArray(value) && value.length === 0) { return true } + if (Object.keys(value).length === 0) { + return true; + } return false } diff --git a/src/views/business/comps/template/formConfig/sp/SP0019.js b/src/views/business/comps/template/formConfig/sp/SP0019.js index c8afdc7..4f1080b 100644 --- a/src/views/business/comps/template/formConfig/sp/SP0019.js +++ b/src/views/business/comps/template/formConfig/sp/SP0019.js @@ -93,18 +93,15 @@ export const getYqColumns = ($this) => { } //溶液 -export const getRyColumns = () => { +export const getRyColumns = ($this) => { return [ { label: '溶液类型', prop: "rylx", bodyType: "select", - bodyOptions: [ - { - label: '溶液', - value: '溶液' - }, - ], + otherCode:'rylxOther', + width:380, + bodyOptions: $this.getDictOptions('business_rylx'), bodyFillType: 'preFill', }, { diff --git a/src/views/business/comps/template/mixins/templateMixin.js b/src/views/business/comps/template/mixins/templateMixin.js index 6bf2fa5..5ef6a2a 100644 --- a/src/views/business/comps/template/mixins/templateMixin.js +++ b/src/views/business/comps/template/mixins/templateMixin.js @@ -39,6 +39,7 @@ export default { 'business_sydd', // 毒理-Ames实验地点 'business_dl_ameswrqk', // 毒理-Ames污染情况 'business_dl_amescltj', // 毒理-Ames处理条件 + 'business_rylx', // 溶液类型 ], props: { templateData: { From 6c3a1437f3c2def706940fdbdfc7b0c0036696ca Mon Sep 17 00:00:00 2001 From: luojie <125330818@qq.com> Date: Mon, 2 Mar 2026 16:59:20 +0800 Subject: [PATCH 11/17] =?UTF-8?q?feat:[=E6=A8=A1=E6=9D=BF=E7=AE=A1?= =?UTF-8?q?=E7=90=86][update]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/business/comps/template/comps/xb/XB001.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/business/comps/template/comps/xb/XB001.vue b/src/views/business/comps/template/comps/xb/XB001.vue index 5822192..d1ccc09 100644 --- a/src/views/business/comps/template/comps/xb/XB001.vue +++ b/src/views/business/comps/template/comps/xb/XB001.vue @@ -50,7 +50,7 @@ Date: Mon, 2 Mar 2026 17:14:19 +0800 Subject: [PATCH 12/17] =?UTF-8?q?feat:[=E7=B3=BB=E7=BB=9F=E7=AE=A1?= =?UTF-8?q?=E7=90=86][=E5=AD=98=E5=82=A8=E4=BD=8D=E7=BD=AE]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../business/storageLocation/storageLocation.js | 24 ++ src/lang/en.js | 4 +- src/lang/en/system/storageLocation.js | 13 + src/lang/zh.js | 3 + src/lang/zh/system/storageLocation.js | 13 + src/utils/menu.js | 2 +- src/views/business/storageLocation/list.vue | 296 +++++++++++++++++++++ vue.config.js | 4 +- 8 files changed, 355 insertions(+), 4 deletions(-) create mode 100644 src/api/business/storageLocation/storageLocation.js create mode 100644 src/lang/en/system/storageLocation.js create mode 100644 src/lang/zh/system/storageLocation.js create mode 100644 src/views/business/storageLocation/list.vue diff --git a/src/api/business/storageLocation/storageLocation.js b/src/api/business/storageLocation/storageLocation.js new file mode 100644 index 0000000..f2076c2 --- /dev/null +++ b/src/api/business/storageLocation/storageLocation.js @@ -0,0 +1,24 @@ +import request from '@/utils/request' + +export function storageLocation_list(query) { + return request({ + url: '/system/business/storageLocation/list', + method: 'get', + params: query + }) +} +export function storageLocation_add(data) { + return request({ + url: '/system/business/storageLocation/save', + method: 'post', + data: data + }) +} + +export function storageLocation_edit(data) { + return request({ + url: '/system/business/storageLocation/edit', + method: 'post', + data: data + }) +} \ No newline at end of file diff --git a/src/lang/en.js b/src/lang/en.js index 5201f74..95b1c92 100644 --- a/src/lang/en.js +++ b/src/lang/en.js @@ -75,7 +75,8 @@ import gsp from './en/business/resource/gsp' import archive from './en/business/archive/archive' //日志管理 import systemLog from './en/system/systemLog' - +// 存储位置 +import storageLocation from './en/system/storageLocation' export default { system: { name: 'WestChina-Frontier PharmaTech ELN', @@ -166,6 +167,7 @@ export default { user, template, systemLog, + storageLocation, dict }, business: { diff --git a/src/lang/en/system/storageLocation.js b/src/lang/en/system/storageLocation.js new file mode 100644 index 0000000..ba547b8 --- /dev/null +++ b/src/lang/en/system/storageLocation.js @@ -0,0 +1,13 @@ +export default { + fzdd: 'Location', + sbmc: 'Name or Id', + fzhj: 'Shelf placement', + wc: 'Compartment', + zt: 'Status', + ssbm: 'Department', + add: 'Add', + addStroageLocation: 'Add Storage Location', + editStroageLocation: 'Edit Storage Location', + no: 'disable', + yes: 'normal' +} \ No newline at end of file diff --git a/src/lang/zh.js b/src/lang/zh.js index 754280b..fe0b989 100644 --- a/src/lang/zh.js +++ b/src/lang/zh.js @@ -74,6 +74,8 @@ import gsp from './zh/business/resource/gsp' import archive from './zh/business/archive/archive' //日志管理 import systemLog from './zh/system/systemLog' +//存储位置 +import storageLocation from './zh/system/storageLocation' export default { system: { @@ -161,6 +163,7 @@ export default { user, template, systemLog, + storageLocation, dict }, business: { diff --git a/src/lang/zh/system/storageLocation.js b/src/lang/zh/system/storageLocation.js new file mode 100644 index 0000000..f5a35e4 --- /dev/null +++ b/src/lang/zh/system/storageLocation.js @@ -0,0 +1,13 @@ +export default { + fzdd: '放置地点', + sbmc: '设备名称或编号', + fzhj: '放置货架', + wc: '温层', + zt: '状态', + ssbm: '所属部门', + add: '新增', + addStroageLocation: '新增存储位置', + editStroageLocation: '编辑存储位置', + no: '禁用', + yes: '正常' +} \ No newline at end of file diff --git a/src/utils/menu.js b/src/utils/menu.js index 82a0161..6b49d04 100644 --- a/src/utils/menu.js +++ b/src/utils/menu.js @@ -35,7 +35,7 @@ let menuObj = { 模板管理: 'Function', 字典管理: 'Term Book', 日志管理: 'Log', - + 存储位置: 'Storage Location', 字典数据: 'Term Book Data' } export function getMenuName(menuName) { diff --git a/src/views/business/storageLocation/list.vue b/src/views/business/storageLocation/list.vue new file mode 100644 index 0000000..f16b36a --- /dev/null +++ b/src/views/business/storageLocation/list.vue @@ -0,0 +1,296 @@ + + + + diff --git a/vue.config.js b/vue.config.js index bf3ddf1..56dd747 100644 --- a/vue.config.js +++ b/vue.config.js @@ -34,8 +34,8 @@ module.exports = { proxy: { // detail: https://cli.vuejs.org/config/#devserver-proxy [process.env.VUE_APP_BASE_API]: { - // target: `http://localhost:8080`, - target: `http://39.99.251.173:8080`, + target: `http://localhost:8080`, + // target: `http://39.99.251.173:8080`, changeOrigin: true, pathRewrite: { ['^' + process.env.VUE_APP_BASE_API]: '' From 4da27e6fb7856331109ee3095b3f8606032368ef Mon Sep 17 00:00:00 2001 From: HanLong <404402223@qq.com> Date: Mon, 2 Mar 2026 17:15:32 +0800 Subject: [PATCH 13/17] =?UTF-8?q?fix:[=E7=B3=BB=E7=BB=9F=E7=AE=A1=E7=90=86?= =?UTF-8?q?][=E5=AD=98=E5=82=A8=E4=BD=8D=E7=BD=AE]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vue.config.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vue.config.js b/vue.config.js index 56dd747..bf3ddf1 100644 --- a/vue.config.js +++ b/vue.config.js @@ -34,8 +34,8 @@ module.exports = { proxy: { // detail: https://cli.vuejs.org/config/#devserver-proxy [process.env.VUE_APP_BASE_API]: { - target: `http://localhost:8080`, - // target: `http://39.99.251.173:8080`, + // target: `http://localhost:8080`, + target: `http://39.99.251.173:8080`, changeOrigin: true, pathRewrite: { ['^' + process.env.VUE_APP_BASE_API]: '' From 30234c9c3c7824c23627827366f39ac060b9e59f Mon Sep 17 00:00:00 2001 From: HanLong <404402223@qq.com> Date: Mon, 2 Mar 2026 17:30:58 +0800 Subject: [PATCH 14/17] =?UTF-8?q?feat:[=E7=B3=BB=E7=BB=9F=E7=AE=A1?= =?UTF-8?q?=E7=90=86][=E5=AD=98=E5=82=A8=E4=BD=8D=E7=BD=AE=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E5=99=A8]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/business/comps/select/BusinessSelect.vue | 2 +- src/views/business/resource/sj/comps/Bj.vue | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/views/business/comps/select/BusinessSelect.vue b/src/views/business/comps/select/BusinessSelect.vue index 1bd2878..378af11 100644 --- a/src/views/business/comps/select/BusinessSelect.vue +++ b/src/views/business/comps/select/BusinessSelect.vue @@ -94,7 +94,7 @@ export default { listData(this.queryParams).then(response => { this.list = response.rows this.list.forEach(item => { - item.dictLabel = item.bh + item.dictLabel = item.location + '/' + item.name + '/' + item.shelfPlacement item.dictCode = item.id }) }) diff --git a/src/views/business/resource/sj/comps/Bj.vue b/src/views/business/resource/sj/comps/Bj.vue index c8b379e..0572020 100644 --- a/src/views/business/resource/sj/comps/Bj.vue +++ b/src/views/business/resource/sj/comps/Bj.vue @@ -41,17 +41,17 @@ - - - - - - + + + + + + @@ -164,7 +164,7 @@ export default { }) }, onChangeCcwz(val) { - console.log(val) + this.form.cctj = val.wc } } } From e0020e50d0f4e1bdd21ced795c486569735c7b41 Mon Sep 17 00:00:00 2001 From: memorylkf <312904636@qq.com> Date: Mon, 2 Mar 2026 17:38:47 +0800 Subject: [PATCH 15/17] =?UTF-8?q?feat:=20[=E6=AD=A5=E9=AA=A4=E7=AE=A1?= =?UTF-8?q?=E7=90=86]=20=E8=A1=A8=E9=85=8D=E7=BD=AE=E6=AD=A5=E9=AA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Template/Step.vue | 39 +++++++++++++++++++- src/components/Template/StepComponents/b/cl.vue | 43 ++++++++++++++++++++++ src/components/Template/StepComponents/ry/cs.vue | 15 +++++++- src/components/Template/StepComponents/ry/dc.vue | 15 +++++++- src/components/Template/StepComponents/ry/ddhy.vue | 15 +++++++- src/components/Template/StepComponents/ry/fr.vue | 15 +++++++- src/components/Template/StepComponents/ry/fy.vue | 15 +++++++- src/components/Template/StepComponents/ry/glsd.vue | 15 +++++++- src/components/Template/StepComponents/ry/glzd.vue | 15 +++++++- src/components/Template/StepComponents/ry/hwhy.vue | 15 +++++++- src/components/Template/StepComponents/ry/jb.vue | 15 +++++++- src/components/Template/StepComponents/ry/jd.vue | 15 +++++++- src/components/Template/StepComponents/ry/jrjb.vue | 15 +++++++- src/components/Template/StepComponents/ry/jz.vue | 15 +++++++- src/components/Template/StepComponents/ry/sy.vue | 15 +++++++- src/components/Template/StepComponents/ry/wxhy.vue | 15 +++++++- src/components/Template/StepComponents/ry/zy.vue | 15 +++++++- src/components/Template/StepComponents/ry/zyhy.vue | 15 +++++++- 18 files changed, 305 insertions(+), 17 deletions(-) create mode 100644 src/components/Template/StepComponents/b/cl.vue diff --git a/src/components/Template/Step.vue b/src/components/Template/Step.vue index dcabb2a..8f274e4 100644 --- a/src/components/Template/Step.vue +++ b/src/components/Template/Step.vue @@ -83,7 +83,25 @@ import jr from "./StepComponents/ry/jr.vue";//溶液-加热 //表配置 import jrry_b from './StepComponents/b/jrry_b.vue';//表配置-加入溶液 -//表配置-离心:使用溶液离心 +//表配置-离心:使用溶液-离心 +import cl from './StepComponents/b/cl.vue';//表配置-称量 +//表配置-超声:使用溶液-超声 +//表配置-恒温混匀:使用溶液-恒温混匀 +//表配置-振摇混匀:使用溶液-振摇混匀 +//表配置-涡旋混匀:使用溶液-涡旋混匀 +//表配置-颠倒混匀:使用溶液-颠倒混匀 + +//表配置-搅拌:使用溶液-搅拌 +//表配置-加热搅拌:使用溶液-加热搅拌 +//表配置-水浴:使用溶液-水浴 +//表配置-正压:使用溶液-正压 +//表配置-氮吹:使用溶液-氮吹 +//表配置-过滤(自动):使用溶液-过滤(自动) +//表配置-过滤(手动):使用溶液-过滤(手动) +//表配置-静置:使用溶液-静置 +//表配置-解冻:使用溶液-解冻 +//表配置-孵育:使用溶液-孵育 +//表配置-复溶:使用溶液-复溶 import { public_templateStepList } from '@/api/business/public/public'; @@ -204,6 +222,7 @@ export default { //表配置 jrry_b, + cl, }, computed: { stepComponentMap() { @@ -260,7 +279,25 @@ export default { //标配配置 'jrry_b': 'jrry_b', + 'cl': 'cl', 'lx_b': 'lx', + 'cs_b': 'cs', + 'hwhy_b': 'Hwhy', + 'zyhy_b': 'Zyhy', + 'wxhy_b': 'Wxhy', + 'ddhy_b': 'Ddhy', + + 'jb_b': 'Jb', + 'jrjb_b': 'Jrjb', + 'sy_b': 'Sy', + 'zy_b': 'Zy', + 'dc_b': 'Dc', + 'glzd_b': 'Glzd', + 'glsd_b': 'Glsd', + 'jz_b': 'Jz', + 'jd_b': 'Jd', + 'fy_b': 'Fy', + 'fr_b': 'Fr', } } return this.componentMap diff --git a/src/components/Template/StepComponents/b/cl.vue b/src/components/Template/StepComponents/b/cl.vue new file mode 100644 index 0000000..3be8500 --- /dev/null +++ b/src/components/Template/StepComponents/b/cl.vue @@ -0,0 +1,43 @@ + + + + + + \ No newline at end of file diff --git a/src/components/Template/StepComponents/ry/cs.vue b/src/components/Template/StepComponents/ry/cs.vue index 26a6d5a..c5636e4 100644 --- a/src/components/Template/StepComponents/ry/cs.vue +++ b/src/components/Template/StepComponents/ry/cs.vue @@ -10,12 +10,18 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; export default { mixins: [stepMixins], + props: { + sn: { + type: String, + default: 'cs', + }, + }, components: { StepFormPackage }, computed: { formConfig() { - return [{ + let config = [{ config: { text1: { label: "使用超声波清洗机", @@ -100,6 +106,13 @@ export default { } }] + if(this.sn==='cs_b'){ + config[0].config.remark = { + type: "input", + fillType: "actFill", + } + } + return config } }, } diff --git a/src/components/Template/StepComponents/ry/dc.vue b/src/components/Template/StepComponents/ry/dc.vue index aeba99f..c6cf5f1 100644 --- a/src/components/Template/StepComponents/ry/dc.vue +++ b/src/components/Template/StepComponents/ry/dc.vue @@ -9,12 +9,18 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; export default { mixins: [stepMixins], + props: { + sn: { + type: String, + default: 'dc', + }, + }, components: { StepFormPackage }, computed: { formConfig() { - return [{ + let config = [{ config:{ text1:{ label:"使用氮吹仪", @@ -48,6 +54,13 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; } } }] + if(this.sn==='dc_b'){ + config[0].config.remark = { + type: "input", + fillType: "actFill", + } + } + return config } }, } diff --git a/src/components/Template/StepComponents/ry/ddhy.vue b/src/components/Template/StepComponents/ry/ddhy.vue index c6ae837..ab51d09 100644 --- a/src/components/Template/StepComponents/ry/ddhy.vue +++ b/src/components/Template/StepComponents/ry/ddhy.vue @@ -9,12 +9,18 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; export default { mixins: [stepMixins], + props: { + sn: { + type: String, + default: 'ddhy', + }, + }, components: { StepFormPackage }, computed: { formConfig() { - return [{ + let config = [{ config:{ text1:{ label:"将溶液进行上下颠倒,预计颠倒", @@ -40,6 +46,13 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; } } }] + if(this.sn==='ddhy_b'){ + config[0].config.remark = { + type: "input", + fillType: "actFill", + } + } + return config } }, } diff --git a/src/components/Template/StepComponents/ry/fr.vue b/src/components/Template/StepComponents/ry/fr.vue index b264241..40df523 100644 --- a/src/components/Template/StepComponents/ry/fr.vue +++ b/src/components/Template/StepComponents/ry/fr.vue @@ -9,12 +9,18 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; export default { mixins: [stepMixins], + props: { + sn: { + type: String, + default: 'fr', + }, + }, components: { StepFormPackage }, computed: { formConfig() { - return [{ + let config = [{ config:{ text1:{ label:"使用", @@ -77,6 +83,13 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; } } }] + if(this.sn==='fr_b'){ + config[0].config.remark = { + type: "input", + fillType: "actFill", + } + } + return config } }, } diff --git a/src/components/Template/StepComponents/ry/fy.vue b/src/components/Template/StepComponents/ry/fy.vue index ded50e6..da8de0a 100644 --- a/src/components/Template/StepComponents/ry/fy.vue +++ b/src/components/Template/StepComponents/ry/fy.vue @@ -10,12 +10,18 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; export default { mixins: [stepMixins], + props: { + sn: { + type: String, + default: 'fy', + }, + }, components: { StepFormPackage }, computed: { formConfig() { - return [{ + let config = [{ config: { text1: { label: "使用", @@ -84,6 +90,13 @@ export default { } }] + if(this.sn==='fy_b'){ + config[0].config.remark = { + type: "input", + fillType: "actFill", + } + } + return config } }, } diff --git a/src/components/Template/StepComponents/ry/glsd.vue b/src/components/Template/StepComponents/ry/glsd.vue index 0041022..a6ee738 100644 --- a/src/components/Template/StepComponents/ry/glsd.vue +++ b/src/components/Template/StepComponents/ry/glsd.vue @@ -9,12 +9,18 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; export default { mixins: [stepMixins], + props: { + sn: { + type: String, + default: 'glsd', + }, + }, components: { StepFormPackage }, computed: { formConfig() { - return [{ + let config = [{ config:{ text2:{ label:"选择", @@ -34,6 +40,13 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; }, } }] + if(this.sn==='glsd_b'){ + config[0].config.remark = { + type: "input", + fillType: "actFill", + } + } + return config } }, } diff --git a/src/components/Template/StepComponents/ry/glzd.vue b/src/components/Template/StepComponents/ry/glzd.vue index 2c17e55..bf68713 100644 --- a/src/components/Template/StepComponents/ry/glzd.vue +++ b/src/components/Template/StepComponents/ry/glzd.vue @@ -9,12 +9,18 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; export default { mixins: [stepMixins], + props: { + sn: { + type: String, + default: 'glzd', + }, + }, components: { StepFormPackage }, computed: { formConfig() { - return [{ + let config = [{ config:{ text1:{ label:"使用隔膜真空泵", @@ -42,6 +48,13 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; }, } }] + if(this.sn==='glzd_b'){ + config[0].config.remark = { + type: "input", + fillType: "actFill", + } + } + return config } }, } diff --git a/src/components/Template/StepComponents/ry/hwhy.vue b/src/components/Template/StepComponents/ry/hwhy.vue index d3353aa..0c9343f 100644 --- a/src/components/Template/StepComponents/ry/hwhy.vue +++ b/src/components/Template/StepComponents/ry/hwhy.vue @@ -10,12 +10,18 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; export default { mixins: [stepMixins], + props: { + sn: { + type: String, + default: 'hwhy', + }, + }, components: { StepFormPackage }, computed: { formConfig() { - return [{ + let config = [{ config: { text1: { label: "使用恒温混匀仪", @@ -125,6 +131,13 @@ export default { }, } }] + if(this.sn==='hwhy_b'){ + config[0].config.remark = { + type: "input", + fillType: "actFill", + } + } + return config } }, } diff --git a/src/components/Template/StepComponents/ry/jb.vue b/src/components/Template/StepComponents/ry/jb.vue index 101cbeb..8833c47 100644 --- a/src/components/Template/StepComponents/ry/jb.vue +++ b/src/components/Template/StepComponents/ry/jb.vue @@ -10,12 +10,18 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; export default { mixins: [stepMixins], + props: { + sn: { + type: String, + default: 'jb', + }, + }, components: { StepFormPackage }, computed: { formConfig() { - return [{ + let config = [{ config: { text1: { label: "使用搅拌仪", @@ -87,6 +93,13 @@ export default { } }] + if(this.sn==='jb_b'){ + config[0].config.remark = { + type: "input", + fillType: "actFill", + } + } + return config } }, } diff --git a/src/components/Template/StepComponents/ry/jd.vue b/src/components/Template/StepComponents/ry/jd.vue index 24fcb13..40b1ca1 100644 --- a/src/components/Template/StepComponents/ry/jd.vue +++ b/src/components/Template/StepComponents/ry/jd.vue @@ -10,12 +10,18 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; export default { mixins: [stepMixins], + props: { + sn: { + type: String, + default: 'jd', + }, + }, components: { StepFormPackage }, computed: { formConfig() { - return [{ + let config = [{ config: { text1: { label: "将", @@ -126,6 +132,13 @@ export default { } }] + if(this.sn==='jd_b'){ + config[0].config.remark = { + type: "input", + fillType: "actFill", + } + } + return config } }, } diff --git a/src/components/Template/StepComponents/ry/jrjb.vue b/src/components/Template/StepComponents/ry/jrjb.vue index 711beac..7cec3da 100644 --- a/src/components/Template/StepComponents/ry/jrjb.vue +++ b/src/components/Template/StepComponents/ry/jrjb.vue @@ -9,12 +9,18 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; export default { mixins: [stepMixins], + props: { + sn: { + type: String, + default: 'jrjb', + }, + }, components: { StepFormPackage }, computed: { formConfig() { - return [{ + let config = [{ config:{ text1:{ label:"使用搅拌仪", @@ -104,6 +110,13 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; } }] + if(this.sn==='jrjb_b'){ + config[0].config.remark = { + type: "input", + fillType: "actFill", + } + } + return config } }, } diff --git a/src/components/Template/StepComponents/ry/jz.vue b/src/components/Template/StepComponents/ry/jz.vue index c2c288a..320be40 100644 --- a/src/components/Template/StepComponents/ry/jz.vue +++ b/src/components/Template/StepComponents/ry/jz.vue @@ -9,12 +9,18 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; export default { mixins: [stepMixins], + props: { + sn: { + type: String, + default: 'jz', + }, + }, components: { StepFormPackage }, computed: { formConfig() { - return [{ + let config = [{ config:{ text1:{ label:"将", @@ -78,6 +84,13 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; }, } }] + if(this.sn==='jz_b'){ + config[0].config.remark = { + type: "input", + fillType: "actFill", + } + } + return config } }, } diff --git a/src/components/Template/StepComponents/ry/sy.vue b/src/components/Template/StepComponents/ry/sy.vue index 5fcfbf3..b15453f 100644 --- a/src/components/Template/StepComponents/ry/sy.vue +++ b/src/components/Template/StepComponents/ry/sy.vue @@ -9,12 +9,18 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; export default { mixins: [stepMixins], + props: { + sn: { + type: String, + default: 'sy', + }, + }, components: { StepFormPackage }, computed: { formConfig() { - return [{ + let config = [{ config:{ text1:{ label:"使用水浴锅", @@ -74,6 +80,13 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; }, } }] + if(this.sn==='sy_b'){ + config[0].config.remark = { + type: "input", + fillType: "actFill", + } + } + return config } }, } diff --git a/src/components/Template/StepComponents/ry/wxhy.vue b/src/components/Template/StepComponents/ry/wxhy.vue index 2b147a8..5e12ccd 100644 --- a/src/components/Template/StepComponents/ry/wxhy.vue +++ b/src/components/Template/StepComponents/ry/wxhy.vue @@ -9,12 +9,18 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; export default { mixins: [stepMixins], + props: { + sn: { + type: String, + default: 'wxhy', + }, + }, components: { StepFormPackage }, computed: { formConfig() { - return [{ + let config = [{ config:{ text1:{ label:"使用涡旋混匀仪", @@ -30,6 +36,13 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; }, } }] + if(this.sn==='wxhy_b'){ + config[0].config.remark = { + type: "input", + fillType: "actFill", + } + } + return config } }, } diff --git a/src/components/Template/StepComponents/ry/zy.vue b/src/components/Template/StepComponents/ry/zy.vue index 48e1756..32b3aab 100644 --- a/src/components/Template/StepComponents/ry/zy.vue +++ b/src/components/Template/StepComponents/ry/zy.vue @@ -9,12 +9,18 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; export default { mixins: [stepMixins], + props: { + sn: { + type: String, + default: 'zy', + }, + }, components: { StepFormPackage }, computed: { formConfig() { - return [{ + let config = [{ config:{ text1:{ label:"使用正压萃取仪", @@ -30,6 +36,13 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; } } }] + if(this.sn==='zy_b'){ + config[0].config.remark = { + type: "input", + fillType: "actFill", + } + } + return config } }, } diff --git a/src/components/Template/StepComponents/ry/zyhy.vue b/src/components/Template/StepComponents/ry/zyhy.vue index 2113660..258339a 100644 --- a/src/components/Template/StepComponents/ry/zyhy.vue +++ b/src/components/Template/StepComponents/ry/zyhy.vue @@ -9,12 +9,18 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; export default { mixins: [stepMixins], + props: { + sn: { + type: String, + default: 'zyhy', + }, + }, components: { StepFormPackage }, computed: { formConfig() { - return [{ + let config = [{ config:{ text1:{ label:"使用", @@ -105,6 +111,13 @@ import stepMixins from '@/components/Template/mixins/stepMixins.js'; } } }] + if(this.sn==='zyhy_b'){ + config[0].config.remark = { + type: "input", + fillType: "actFill", + } + } + return config } }, } From b9be35a80ac41199ae72a4c993a2440e8eec3986 Mon Sep 17 00:00:00 2001 From: luojie <125330818@qq.com> Date: Mon, 2 Mar 2026 18:11:55 +0800 Subject: [PATCH 16/17] =?UTF-8?q?feat:[=E6=A8=A1=E6=9D=BF=E7=AE=A1?= =?UTF-8?q?=E7=90=86][yp003]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Template/CustomTable.vue | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/components/Template/CustomTable.vue b/src/components/Template/CustomTable.vue index 873cb0a..79b7ef8 100644 --- a/src/components/Template/CustomTable.vue +++ b/src/components/Template/CustomTable.vue @@ -951,8 +951,8 @@ export default { } .custom-table-body { - max-height: 500px; - overflow-y: auto; + /* max-height: 500px; */ + /* overflow-y: auto; */ /* 可根据需要调整或由父组件控制 */ } @@ -1035,7 +1035,8 @@ export default { flex-direction: column; max-width: 100%; /* 父容器决定宽度 */ - overflow-x: auto; + overflow: auto; + max-height: 500px; } .custom-table-header, From ce776a568d34d9e45357c17e669a9acc3529003b Mon Sep 17 00:00:00 2001 From: luojie <125330818@qq.com> Date: Mon, 2 Mar 2026 20:53:50 +0800 Subject: [PATCH 17/17] =?UTF-8?q?feat:[=E6=A8=A1=E6=9D=BF=E7=AE=A1?= =?UTF-8?q?=E7=90=86][yp003]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Template/BaseInfoFormPackage.vue | 111 ++++++++++++++---------- src/components/Template/HandleFormItem.vue | 5 +- 2 files changed, 68 insertions(+), 48 deletions(-) diff --git a/src/components/Template/BaseInfoFormPackage.vue b/src/components/Template/BaseInfoFormPackage.vue index 7692db7..bade853 100644 --- a/src/components/Template/BaseInfoFormPackage.vue +++ b/src/components/Template/BaseInfoFormPackage.vue @@ -84,22 +84,33 @@ :error="errors[key]" @update:error="errors[key] = false" :orange-bg="orangeBgFields[key]" />
-
+
+
+
{{ sItem.otherLabel ? $t(sItem.otherLabel) : + $t("template.common.other") }}
+
+ +
+
+ :ref="key" :orange-bg="orangeBgFields[key]" /> {{ $t(sItem.subText) }} - +
@@ -125,22 +136,20 @@
- +
-
-
+
+ @change="(e) => onFqyqChange(key, e)" :error="errors[key]" + @update:error="errors[key] = false" />
@@ -166,7 +176,8 @@
+ :style="{ 'width': sItem.labelWidth ? sItem.labelWidth + 'px' : '150px' }" + v-if="sItem.label"> {{ $t(sItem.label) }}
- - {{ formFields[sItem.subKey] }}
{{ $t(sItem.subText) }} - - -
{{ formFields[sItem.subKey] }}
- - import HandleFormItem from "./HandleFormItem.vue"; import LineLabel from "./LineLabel.vue"; -import { isShowOther,isShowOtherByRadioAndOther } from "@/utils/formPackageCommon.js"; +import { isShowOther, isShowOtherByRadioAndOther } from "@/utils/formPackageCommon.js"; import { isRegent } from "@/utils/index.js"; import formPackageMixins from '@/components/Template/mixins/formPackageMixins.js' @@ -372,9 +390,9 @@ export default { this.$emit('beforeReagentSubmit', { selectData: data, callback, key, formFields: this.formFields }) }, // 点击按钮 - handleClickButton(e, item,val,data) { + handleClickButton(e, item, val, data) { this.formFields[item.subKey] = val; - this.$emit("clickButton", item,data) + this.$emit("clickButton", item, data) }, // 获取按钮项 getButtonItem(sItem) { @@ -385,8 +403,8 @@ export default { } }, // 处理fqyq变化 - onFqyqChange(key, e){ - console.log(e,key,'fqyq'); + onFqyqChange(key, e) { + console.log(e, key, 'fqyq'); this.formFields[key] = e; } @@ -551,10 +569,11 @@ export default { .mr-20 { margin-right: 20px; } -.form-error-border{ + +.form-error-border { box-shadow: 0 0 6px #ffc3c3; - padding: 8px; - border-radius: 4px; - border: 1px solid #ff5d5d; + padding: 8px; + border-radius: 4px; + border: 1px solid #ff5d5d; } \ No newline at end of file diff --git a/src/components/Template/HandleFormItem.vue b/src/components/Template/HandleFormItem.vue index f24a8e9..5a49a3b 100644 --- a/src/components/Template/HandleFormItem.vue +++ b/src/components/Template/HandleFormItem.vue @@ -23,6 +23,7 @@ + {{ item.checkboxLabel }}