From 98a8ea3537deac24266aed2be20a2c0887996c1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?ZHANGTENG=5C=E5=BC=A0=E8=85=BE?= <894697943@qq.com> Date: Wed, 11 Mar 2026 10:03:30 +0800 Subject: [PATCH] =?UTF-8?q?feat:[=E6=A8=A1=E6=9D=BF=E7=AE=A1=E7=90=86]DJ00?= =?UTF-8?q?2=E3=80=81BL001=E5=BE=85=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lang/en/template/dj.js | 3 + src/lang/zh/template/dj.js | 3 + .../business/comps/template/TemplateTable.vue | 6 + .../business/comps/template/comps/bl/BL001.vue | 374 +++++++++++++++++++++ .../business/comps/template/comps/dj/DJ001.vue | 150 +++++++-- .../business/comps/template/comps/dj/DJ002.vue | 363 ++++++++++++++++++++ .../business/comps/template/comps/dj/DJ003.vue | 5 +- .../comps/template/mixins/templateMixin.js | 2 + 8 files changed, 868 insertions(+), 38 deletions(-) create mode 100644 src/views/business/comps/template/comps/bl/BL001.vue create mode 100644 src/views/business/comps/template/comps/dj/DJ002.vue diff --git a/src/lang/en/template/dj.js b/src/lang/en/template/dj.js index 998ee7c..ae74580 100644 --- a/src/lang/en/template/dj.js +++ b/src/lang/en/template/dj.js @@ -3,12 +3,15 @@ export default { dj001: { syts: '试验天数', fhfw: '复核范围', + fhlr: '复核内容', }, + //dj002复用dj003 dj003: { yplx: '样品类型', knj: '抗凝剂', cyhcftj: '采样后存放条件', cyd: '采样点', + ypmc: '样品名称', dwbh: '动物编号', cysj: '采样时间', sjbd: '时间比对', diff --git a/src/lang/zh/template/dj.js b/src/lang/zh/template/dj.js index 998ee7c..ae74580 100644 --- a/src/lang/zh/template/dj.js +++ b/src/lang/zh/template/dj.js @@ -3,12 +3,15 @@ export default { dj001: { syts: '试验天数', fhfw: '复核范围', + fhlr: '复核内容', }, + //dj002复用dj003 dj003: { yplx: '样品类型', knj: '抗凝剂', cyhcftj: '采样后存放条件', cyd: '采样点', + ypmc: '样品名称', dwbh: '动物编号', cysj: '采样时间', sjbd: '时间比对', diff --git a/src/views/business/comps/template/TemplateTable.vue b/src/views/business/comps/template/TemplateTable.vue index 56cdfee..e69687f 100644 --- a/src/views/business/comps/template/TemplateTable.vue +++ b/src/views/business/comps/template/TemplateTable.vue @@ -89,9 +89,11 @@ import XB001 from "./comps/xb/XB001.vue"; //动技 import DJ001 from "./comps/dj/DJ001.vue"; +import DJ002 from "./comps/dj/DJ002.vue"; import DJ003 from "./comps/dj/DJ003.vue"; //病理 +import BL001 from "./comps/bl/BL001.vue"; import BL002 from "./comps/bl/BL002.vue"; //毒理 @@ -173,8 +175,10 @@ export default { XB001, //动技 DJ001, + DJ002, DJ003, //病理 + BL001, BL002 }, data() { @@ -292,8 +296,10 @@ export default { 'XB001': 'XB001', //动技 'DJ001': 'DJ001', + 'DJ002': 'DJ002', 'DJ003': 'DJ003', //病理 + 'BL001': 'BL001', 'BL002': 'BL002', //毒理 //DL001-SYWZPZJHB diff --git a/src/views/business/comps/template/comps/bl/BL001.vue b/src/views/business/comps/template/comps/bl/BL001.vue new file mode 100644 index 0000000..77bdb90 --- /dev/null +++ b/src/views/business/comps/template/comps/bl/BL001.vue @@ -0,0 +1,374 @@ + + + + + diff --git a/src/views/business/comps/template/comps/dj/DJ001.vue b/src/views/business/comps/template/comps/dj/DJ001.vue index 782eb6a..93c6f09 100644 --- a/src/views/business/comps/template/comps/dj/DJ001.vue +++ b/src/views/business/comps/template/comps/dj/DJ001.vue @@ -8,35 +8,56 @@
- - -
- - - + +
+ {{ $t('template.dj.dj001.fhfw') }} + + + +
+
+ {{ $t('template.dj.dj001.fhlr') }} + + + +
- -
@@ -59,6 +80,7 @@ import { uniqeResource } from "@/utils/calUnitTools"; import { debounce } from 'lodash-es' import TableOpertaionDelete from "@/components/Template/operation/TableOpertaionDelete.vue" import StepFormPackage from "@/components/Template/StepFormPackage.vue" +import { fill } from "lodash"; export default { name: "DJ001", @@ -115,7 +137,7 @@ export default { operateConfig() { return [ { - type: "step", + type: "cellItem", config: { syts: { label: 'template.dj.dj001.syts', @@ -127,6 +149,30 @@ export default { ] }, + //复核范围配置 + fhfwCheckBoxConfig() { + return [ + { + type: "checkboxList", + config: { + fhfwCheck: { + label: 'template.dj.dj001.fhfw', + type: "checkboxTree", + fillType: 'actFill', + options: this.fhfwCheckOptions + }, + fhlrCheck: { + label: 'template.dj.dj001.fhlr', + type: "checkboxTree", + fillType: 'actFill', + options: this.fhlrCheckOptions + }, + } + }, + + ] + }, + //复核范围 operateColumns() { return [ { @@ -138,42 +184,54 @@ export default { }, ] }, + //复核内容 + fhlrColumns() { + return [ + { + label: 'template.dj.dj001.fhlr', + prop: 'fhlr', + bodyType: 'select', + bodyOptions: this.getDictOptions('business_fhlr'), + bodyFillType: 'preFill' + }, + ] + }, }, data() { return { formData: {}, + fhfwCheckOptions:[], + fhlrCheckOptions:[], + isFirstTableDataRecorded: false, }; }, mounted() { + setTimeout(()=>{ + this.getTableData() + },200) }, methods: { //获取已填写的表单数据 getFilledFormData() { return this.getFilledFormDataByRefs( [ - "baseInfoRef", "stepRef", "remarkRef", - "fjRef", "tableFirstRef", "stepFormPackageSecondRef", - "stepFormPackageThirdRef", "stepFormPackageFourthRef", - "stepFormPackageFivthRef", "tableSecondRef", "stepFormPackageSixthRef" + "baseInfoRef", "operateStepRef", "operateTableRef", "fhlrTableRef", "fhfwCheckBoxRef" ] ) }, //获取填写完成的表单数据 async getFormData() { let content = await this.validFormFields([ - "baseInfoRef", "stepRef", "remarkRef", - "fjRef", "tableFirstRef", "stepFormPackageSecondRef", - "stepFormPackageThirdRef", "stepFormPackageFourthRef", - "stepFormPackageFivthRef", "tableSecondRef", "stepFormPackageSixthRef" + "baseInfoRef", "operateStepRef", "operateTableRef", "fhlrTableRef", "fhfwCheckBoxRef" ]); return content; }, getResource() { //使用的试剂、仪器 - const stepResource = this.$refs.stepRef.getStepResource() - this.resourceTmp = stepResource.sjResource || [] - this.yqResourceTmp = stepResource.yqResource || [] - return this.resourceTmp; + // const stepResource = this.$refs.stepRef.getStepResource() + // this.resourceTmp = stepResource.sjResource || [] + // this.yqResourceTmp = stepResource.yqResource || [] + // return this.resourceTmp; }, //保存 async onSave() { @@ -191,6 +249,26 @@ export default { tableRef2.deleteRow(rowIndex); } }, + // 获取范围和内容表格数据(核心优化) + getTableData() { + const formData = this.getFilledFormData() || {}; + const stepTableFormData = formData.stepTableFormData || []; + const stepTableFormData_1 = formData.stepTableFormData_1 || []; + // 处理数据为复选框options格式(去重+空值过滤) + const firstList = stepTableFormData + .filter(item => item.fhfw) // 过滤空值 + .map(item => ({ label: item.fhfw, value: item.fhfw })) + .filter((item, index, arr) => arr.findIndex(i => i.value === item.value) === index); // 去重 + + const secondList = stepTableFormData_1 + .filter(item => item.fhlr) // 过滤空值 + .map(item => ({ label: item.fhlr, value: item.fhlr })) + .filter((item, index, arr) => arr.findIndex(i => i.value === item.value) === index); // 去重 + + // 更新响应式变量(触发computed更新) + this.fhfwCheckOptions = firstList; + this.fhlrCheckOptions = secondList; + }, } }; diff --git a/src/views/business/comps/template/comps/dj/DJ002.vue b/src/views/business/comps/template/comps/dj/DJ002.vue new file mode 100644 index 0000000..dc3634e --- /dev/null +++ b/src/views/business/comps/template/comps/dj/DJ002.vue @@ -0,0 +1,363 @@ + + + + + diff --git a/src/views/business/comps/template/comps/dj/DJ003.vue b/src/views/business/comps/template/comps/dj/DJ003.vue index 61ac06c..209b82f 100644 --- a/src/views/business/comps/template/comps/dj/DJ003.vue +++ b/src/views/business/comps/template/comps/dj/DJ003.vue @@ -16,9 +16,9 @@ :formData="formData" /> - +