diff --git a/src/components/Template/SelectTable.vue b/src/components/Template/SelectTable.vue index 3eb7097..b425c6c 100644 --- a/src/components/Template/SelectTable.vue +++ b/src/components/Template/SelectTable.vue @@ -66,7 +66,11 @@ export default { listApi:{ type: Function, default: () => {}, - } + }, + studyFormId: { + type: String, + default: "", + }, }, data() { return { @@ -106,6 +110,7 @@ export default { this.listParams[key] = ""; } this.listParams = {...this.listParams} + this.listParams.studyFormId = this.studyFormId || '' }, async getList() { const res = await this.listApi(this.listParams); diff --git a/src/lang/en.js b/src/lang/en.js index b01b86e..50a5d10 100644 --- a/src/lang/en.js +++ b/src/lang/en.js @@ -15,6 +15,8 @@ import template from './en/system/template' import commonTemplate from './en/template/commonTemplate' //色谱模板 import sp from './en/template/sp' +//供试品模板 +import gspmb from './en/template/gsp' // 试验管理 import study from './en/business/study/study' @@ -172,6 +174,7 @@ export default { }, template: { common: commonTemplate, - sp: sp + sp: sp, + gsp: gspmb } } diff --git a/src/lang/en/template/gsp.js b/src/lang/en/template/gsp.js index 093412e..aa606ae 100644 --- a/src/lang/en/template/gsp.js +++ b/src/lang/en/template/gsp.js @@ -2,12 +2,33 @@ export default { // 试验物质配制计划表 SYWZPZJHB: { - title: - '试验物质配制计划表', + title:'试验物质配制计划表', + jhxx:'Plan Information', + tbsm:'Special Note', + lqsj:'领取时间', + fxsj:'分析时间', + sywz:'试验物质', + pzpl:'配置频率', + gyzjhzb:'给药剂量或组别', + pznd:'配制浓度', + pztj:'配制体积', }, // 麻醉/精神药品配制/领取申请单 MJYLQSQD: { title: '麻醉/精神药品配制/领取申请单', + jbxx:'Basic Information', + qxzsyhbm:'请选择试验/部门', + sybhhbmmc:'试验编号或部门名称', + sd:'SD/部长', + sywzmc:'试验物质名称', + gyjl:'给药剂量', + xynd:'需要浓度', + xyl:'需要量', + xysj:'需要时间', + yjghsj:'预计归还时间', + dwzs:'动物种属', + dwpjtz:'动物平均体重', + dwsl:'动物数量', }, } diff --git a/src/lang/zh.js b/src/lang/zh.js index 9636376..bc53c7c 100644 --- a/src/lang/zh.js +++ b/src/lang/zh.js @@ -15,6 +15,8 @@ import template from './zh/system/template' import commonTemplate from './zh/template/commonTemplate' //色谱模板 import sp from './zh/template/sp' +//供试品模板 +import gspmb from './zh/template/gsp' // 试验管理 import study from './zh/business/study/study' @@ -167,6 +169,7 @@ export default { }, template: { common: commonTemplate, - sp: sp + sp: sp, + gsp: gspmb, } } diff --git a/src/lang/zh/template/gsp.js b/src/lang/zh/template/gsp.js index adb62db..c6c842c 100644 --- a/src/lang/zh/template/gsp.js +++ b/src/lang/zh/template/gsp.js @@ -3,10 +3,32 @@ export default { // 试验物质配制计划表 SYWZPZJHB: { title: '试验物质配制计划表', + jhxx:'计划信息', + tbsm:'特别说明', + lqsj:'领取时间', + fxsj:'分析时间', + sywz:'试验物质', + pzpl:'配置频率', + gyzjhzb:'给药剂量或组别', + pznd:'配制浓度', + pztj:'配制体积', }, // 麻醉/精神药品配制/领取申请单 MJYLQSQD: { title: '麻醉/精神药品配制/领取申请单', + jbxx:'基本信息', + qxzsyhbm:'请选择试验/部门', + sybhhbmmc:'试验编号或部门名称', + sd:'SD/部长', + sywzmc:'试验物质名称', + gyjl:'给药剂量', + xynd:'需要浓度', + xyl:'需要量', + xysj:'需要时间', + yjghsj:'预计归还时间', + dwzs:'动物种属', + dwpjtz:'动物平均体重', + dwsl:'动物数量', }, } diff --git a/src/views/business/comps/template/comps/gsp/MJYLQSQD.vue b/src/views/business/comps/template/comps/gsp/MJYLQSQD.vue index 4ceb8dd..e388104 100644 --- a/src/views/business/comps/template/comps/gsp/MJYLQSQD.vue +++ b/src/views/business/comps/template/comps/gsp/MJYLQSQD.vue @@ -3,21 +3,19 @@
{{ formData.bdmc || - $t('template.gsp.SYWZPZJHB.title') }}
+ $t('template.gsp.MJYLQSQD.title') }}
- +
- - - +
- @@ -74,7 +72,7 @@ export default { type: "textarea", fillType: "actFill", span: 1, - placeholder: "请输入备注", + placeholder: "template.common.remarkPlaceholder", maxlength: 1000, rows: 5 } @@ -89,60 +87,60 @@ export default { type: "step", config: { syNo: { - label: "试验编号或部门名称", + label: "template.gsp.MJYLQSQD.sybhhbmmc", type: "clickable", fillType: "actFill", }, SD: { - label: "SD/部长", + label: "template.gsp.MJYLQSQD.sd", type: "input", fillType: "actFill", }, sywzmc: { - label: "试验物质名称", + label: "template.gsp.MJYLQSQD.sywzmc", type: "select", fillType: "actFill", otherCode: "sywzmcOther", options: this.getDictOptions('business_sywzmc'), }, gyjl: { - label: "给药剂量", + label: "template.gsp.MJYLQSQD.gyjl", type: "select", fillType: "actFill", otherCode: "gyjlOther", options: this.getDictOptions('business_gyjl'), }, xynd: { - label: "需要浓度", + label: "template.gsp.MJYLQSQD.xynd", type: "select", fillType: "actFill", otherCode: "xyndOther", options: this.getDictOptions('business_gynd'), }, xyl: { - label: "需要量", + label: "template.gsp.MJYLQSQD.xyl", type: "inputNumber", fillType: "actFill", }, xysj: { - label: "需要时间", + label: "template.gsp.MJYLQSQD.xysj", type: "dateTime", fillType: "actFill", }, yjghsj: { - label: "预计归还时间", + label: "template.gsp.MJYLQSQD.yjghsj", type: "dateTime", fillType: "actFill", }, dwzs: { - label: "动物种属", + label: "template.gsp.MJYLQSQD.dwzs", type: "select", fillType: "actFill", otherCode: "dwzsOther", options: this.getDictOptions('business_dwzs'), }, dwpjtz: { - label: "动物平均体重", + label: "template.gsp.MJYLQSQD.dwpjtz", type: "input", fillType: "actFill", subType: "select", @@ -151,7 +149,7 @@ export default { subOptions: this.getDictOptions('business_dwtz'), }, dwsl: { - label: "动物数量", + label: "template.gsp.MJYLQSQD.dwsl", type: "input", fillType: "actFill", subType: "select", diff --git a/src/views/business/comps/template/comps/gsp/SYWZPZJHB.vue b/src/views/business/comps/template/comps/gsp/SYWZPZJHB.vue index 09caa8c..c199b02 100644 --- a/src/views/business/comps/template/comps/gsp/SYWZPZJHB.vue +++ b/src/views/business/comps/template/comps/gsp/SYWZPZJHB.vue @@ -6,9 +6,9 @@ src="@/assets/images/detail-title.png" />
- - +
@@ -19,11 +19,9 @@
- - +
- @@ -76,7 +74,7 @@ export default { type: "textarea", fillType: "actFill", span: 1, - placeholder: "请输入特别说明", + placeholder: "template.common.remarkPlaceholder", maxlength: 1000, rows: 5 } @@ -91,12 +89,12 @@ export default { type: "cardItem", config: { studyMc: { - label: "试验名称", + label: "template.common.testName", type: "input", disabled: true, }, studySn: { - label: "试验编号", + label: "template.common.testNumber", type: "input", disabled: true, }, @@ -112,22 +110,22 @@ export default { type: "step", config: { drawTime: { - label: "领取时间", + label: "template.gsp.SYWZPZJHB.lqsj", type: "dateTime", fillType: "actFill", }, analyzeTime: { - label: "分析时间", + label: "template.gsp.SYWZPZJHB.fxsj", type: "dateTime", fillType: "actFill", }, testSubstance: { - label: "试验物质", + label: "template.gsp.SYWZPZJHB.sywz", type: "input", fillType: "actFill", }, configFrequency: { - label: "配置频率", + label: "template.gsp.SYWZPZJHB.pzpl", type: "input", fillType: "actFill", }, @@ -139,7 +137,7 @@ export default { stepColumns() { return [ { - label: "给药剂量或组别", + label: "template.gsp.SYWZPZJHB.gyzjhzb", prop: "startSolutionCode", width: 280, bodyType: "input", @@ -147,7 +145,7 @@ export default { bodyMaxlength: 10, }, { - label: "配制浓度", + label: "template.gsp.SYWZPZJHB.pznd", prop: "preparationConcentration", width: 280, headerSelectKey: "preparationConcentrationUnit", @@ -159,7 +157,7 @@ export default { bodyMaxlength: 10, }, { - label: "配制体积", + label: "template.gsp.SYWZPZJHB.pztj", prop: "preparationVolume", width: 280, headerSelectKey: "preparationVolumeUnit", diff --git a/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/CBYDB.vue b/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/CBYDB.vue index d83a0c6..f9154ec 100644 --- a/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/CBYDB.vue +++ b/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/CBYDB.vue @@ -268,7 +268,7 @@ export default { handleJzClickable(obj){ this.reagentType = 1//本表单特殊字段 this.currentSubKey = obj.subKey; - this.$refs.selectReagentDialogRef.show() + this.$refs.selectReagentDialogRef.show(this.formData.id) }, //选择试剂提交事件 onSelectReagentSubmit(code,row){ @@ -291,7 +291,7 @@ export default { console.log("clickable",rowIndex, col) if(col.prop === "sjry"){ //调用对应弹窗的方法-多个点击的需要判断是哪个字段点击 - this.$refs.selectReagentDialogRef.show() + this.$refs.selectReagentDialogRef.show(this.formData.id) } }, //获取目标溶液编号 diff --git a/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/CBYHGZYWDX.vue b/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/CBYHGZYWDX.vue index be2ac2e..f6962bc 100644 --- a/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/CBYHGZYWDX.vue +++ b/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/CBYHGZYWDX.vue @@ -268,7 +268,7 @@ export default { handleJzClickable(obj){ this.reagentType = 1//本表单特殊字段 this.currentSubKey = obj.subKey; - this.$refs.selectReagentDialogRef.show() + this.$refs.selectReagentDialogRef.show(this.formData.id) }, //选择试剂提交事件 onSelectReagentSubmit(code,row){ @@ -291,7 +291,7 @@ export default { console.log("clickable",rowIndex, col) if(col.prop === "sjry"){ //调用对应弹窗的方法-多个点击的需要判断是哪个字段点击 - this.$refs.selectReagentDialogRef.show() + this.$refs.selectReagentDialogRef.show(this.formData.id) } }, //获取目标溶液编号 diff --git a/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/JZXY.vue b/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/JZXY.vue index b26716b..db0ddea 100644 --- a/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/JZXY.vue +++ b/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/JZXY.vue @@ -279,7 +279,7 @@ export default { console.log("clickable",rowIndex, col) if(col.prop === "sjry" || col.prop === "kbjzbh"){ //调用对应弹窗的方法-多个点击的需要判断是哪个字段点击 - this.$refs.selectReagentDialogRef.show() + this.$refs.selectReagentDialogRef.show(this.formData.id) } }, //获取目标溶液编号 diff --git a/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/QXWDX.vue b/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/QXWDX.vue index a652321..c8cc6db 100644 --- a/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/QXWDX.vue +++ b/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/QXWDX.vue @@ -268,7 +268,7 @@ export default { handleJzClickable(obj){ this.reagentType = 1//本表单特殊字段 this.currentSubKey = obj.subKey; - this.$refs.selectReagentDialogRef.show() + this.$refs.selectReagentDialogRef.show(this.formData.id) }, //选择试剂提交事件 onSelectReagentSubmit(code,row){ @@ -291,7 +291,7 @@ export default { console.log("clickable",rowIndex, col) if(col.prop === "sjry"){ //调用对应弹窗的方法-多个点击的需要判断是哪个字段点击 - this.$refs.selectReagentDialogRef.show() + this.$refs.selectReagentDialogRef.show(this.formData.id) } }, //获取目标溶液编号 diff --git a/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/RXJZXY.vue b/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/RXJZXY.vue index 51c5dfb..962866d 100644 --- a/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/RXJZXY.vue +++ b/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/RXJZXY.vue @@ -268,7 +268,7 @@ export default { handleJzClickable(obj){ this.reagentType = 1//本表单特殊字段 this.currentSubKey = obj.subKey; - this.$refs.selectReagentDialogRef.show() + this.$refs.selectReagentDialogRef.show(this.formData.id) }, //选择试剂提交事件 onSelectReagentSubmit(code,row){ @@ -291,7 +291,7 @@ export default { console.log("clickable",rowIndex, col) if(col.prop === "sjry"){ //调用对应弹窗的方法-多个点击的需要判断是哪个字段点击 - this.$refs.selectReagentDialogRef.show() + this.$refs.selectReagentDialogRef.show(this.formData.id) } }, //获取目标溶液编号 diff --git a/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/Recovery.vue b/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/Recovery.vue index f9379de..cadbcdd 100644 --- a/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/Recovery.vue +++ b/src/views/business/comps/template/comps/sp/SWYPFXFFXYPZBB/Recovery.vue @@ -235,6 +235,7 @@ export default { subKey: "subGzy", subFillType: "actFill", maxlength: 20, + labelWidth: 80, }, } }, @@ -249,6 +250,7 @@ export default { subKey: "subXsy", subFillType: "actFill", maxlength: 20, + labelWidth: 80, }, } }, @@ -290,8 +292,8 @@ export default { formData: { immediate: true, handler(v) { - if (!v.targetCodeSn && this.fillType === "actFill") { - this.getCode(); + if (this.fillType === "actFill") { + this.getCode(v); } } } @@ -301,12 +303,12 @@ export default { handleJzClickable(obj) { this.reagentType = 1//本表单特殊字段 this.currentSubKey = obj.subKey; - this.$refs.selectReagentDialogRef.show() + this.$refs.selectReagentDialogRef.show(this.formData.id) }, handleRongyeClickable(obj) { this.reagentType = 2//本表单特殊字段 this.currentSubKey = obj.subKey; - this.$refs.selectReagentDialogRef.show() + this.$refs.selectReagentDialogRef.show(this.formData.id) }, //选择试剂提交事件 onSelectReagentSubmit(code, row) { @@ -348,24 +350,65 @@ export default { } }, //获取目标溶液编号 - async getCode() { - const { stepTableFormData = [] } = v; - if (stepTableFormData && stepTableFormData.length > 0 && !stepTableFormData[0].bhCode) { + async getCode(v) { + // 基质表格 + const {stepTableFormData = []} = v; + if(stepTableFormData && stepTableFormData.length>0 && !stepTableFormData[0].bhCode){ const result = await getLatestSn({ count: stepTableFormData.length, }) - if (result.code == 200) { - if (stepTableFormData.length === 0) { - this.$refs.tableRef.updateDataSourceByRowIndex(0, { - [bhCode]: result.data, + if(result.code == 200){ + if(stepTableFormData.length===1){ + this.$refs.tableRef.updateDataSourceByRowIndex(0,{ + bhCode: result.data, + }) + }else{ + for(let i=0;i { + debugger + EventBus.$emit('onModifyRecord', params,) + }, 10); + } + } + // 溶液表格 + const {stepTableFormData_1 = []} = v; + if(stepTableFormData_1 && stepTableFormData_1.length>0 && !stepTableFormData_1[0].bhCode){ + const result = await getLatestSn({ + count: stepTableFormData_1.length, + }) + if(result.code == 200){ + if(stepTableFormData_1.length===1){ + this.$refs.rongyeTableRef.updateDataSourceByRowIndex(0,{ + bhCode: result.data, }) - } else { - for (let i = 0; i < stepTableFormData.length; i++) { - this.$refs.tableRef.updateDataSourceByRowIndex(i, { + }else{ + for(let i=0;i { + debugger + EventBus.$emit('onModifyRecord', params,) + }, 10); } } }, @@ -376,29 +419,59 @@ export default { async getFormData() { let content = await this.validFormFields(["baseInfoRef", "storageConditionRef", "stepFormPackageRef", "tableRef", "stepRef", "rongyeTableRef", "rongyeStepFormPackageRef", "remarkRef"]); - console.log(content) + console.log(content) //生成resource let tmpResource = [] - //配置的试剂 - tmpResource.push({ - mc: content.targetName, - bh: content.targetCode + content.targetCodeSn, - ph: '', - nd: content.targetActConcentration + content.targetActConcentrationUnit, - source: 'ELN配制', - sxrq: content.expireDate, - ndz: content.targetActConcentration, - nddw: content.targetActConcentrationUnit, - kc: content.targetActVolume, - kcdw: content.targetActVolumeUnit, - syl: null, - syldw: content.targetActVolumeUnit, - yxzq: content.effectivePeriod, - yxzqdw: content.effectivePeriodUnit, - }) - //使用的试剂 - this.resource = tmpResource + let tableList = content.stepTableFormData + if(tableList && tableList.length>0){ + for(let i=0;i0){ + for(let i=0;i @@ -106,6 +107,7 @@ export default { bzList:[], depart:"", + studyFormId:''//有个studyFormId需要从外面动态传过来 } }, computed: { @@ -127,15 +129,16 @@ export default { } }, methods: { - show(){ + show(studyFormId){ this.visible = true + this.studyFormId = studyFormId this.showTableData() if(this.type === 'MJYLQSQD'){ this.getBzList() } }, getBzList(){ - public_bzList(this.searchForm).then(response => { + public_bzList().then(response => { this.bzList = response.data }); }, diff --git a/src/views/business/comps/template/formConfig/SWYPFXFFXYPZBBTableConfig.js b/src/views/business/comps/template/formConfig/SWYPFXFFXYPZBBTableConfig.js index 360e0fb..617679e 100644 --- a/src/views/business/comps/template/formConfig/SWYPFXFFXYPZBBTableConfig.js +++ b/src/views/business/comps/template/formConfig/SWYPFXFFXYPZBBTableConfig.js @@ -178,8 +178,8 @@ export const getSWYPFXFFXYPZBBTQHSLTableConfig = ($this, selectKey) => { bodyType: 'inputNumber', bodyFillType: 'actFill', bodyMaxlength: 10, - bodyCompareTo: 'yjjzxql', - copyFrom: 'yjjzxql' + bodyCompareTo: 'yjgzyxql', + copyFrom: 'yjgzyxql' }, { label: 'template.sp.sp009.yjxsyxql', @@ -202,8 +202,8 @@ export const getSWYPFXFFXYPZBBTQHSLTableConfig = ($this, selectKey) => { bodyType: 'inputNumber', bodyFillType: 'actFill', bodyMaxlength: 10, - bodyCompareTo: 'yjjzxql', - copyFrom: 'yjjzxql' + bodyCompareTo: 'yjxsyxql', + copyFrom: 'yjxsyxql' }, { label: 'template.sp.sp008.hhwznd', diff --git a/src/views/business/comps/template/mixins/templateMixin.js b/src/views/business/comps/template/mixins/templateMixin.js index 48bf329..77167ae 100644 --- a/src/views/business/comps/template/mixins/templateMixin.js +++ b/src/views/business/comps/template/mixins/templateMixin.js @@ -44,7 +44,8 @@ export default { templateSn, startDate, bdmc, - endDate + endDate, + id } = v if (v.resource) { //试验试剂信息 @@ -60,7 +61,8 @@ export default { templateSn, startDate, bdmc, - endDate + endDate, + id } } else { this.formData = { @@ -71,7 +73,8 @@ export default { templateSn, startDate, bdmc, - endDate + endDate, + id } } const { effectivePeriod, effectivePeriodUnit, expireDate } = @@ -164,15 +167,18 @@ export default { if (validFormData) { validFormData.forEach((item) => { for (const [key, value] of Object.entries(item)) { - let index = 0; + let index = 0 // 如果当前键是可能重复的字段,且结果对象中已经存在该键,则添加索引后缀 - if ((key === 'headerSelectFields' || key === 'stepTableFormData') && result.hasOwnProperty(key)) { + if ( + (key === 'headerSelectFields' || key === 'stepTableFormData') && + result.hasOwnProperty(key) + ) { // 为重复字段生成带索引的键名,从1开始(因为第一个组件不需要后缀) - const newKey = `${key}_${++index}`; - result[newKey] = value; + const newKey = `${key}_${++index}` + result[newKey] = value } else { // 正常合并其他字段 - result[key] = value; + result[key] = value } } })