|
|
|
@ -49,6 +49,7 @@ import TableList from '@/components/Template/Table' |
|
|
|
import Step from '@/components/Template/Step' |
|
|
|
import templateMixin from '../../mixins/templateMixin' |
|
|
|
import moment from 'moment' |
|
|
|
import { getLatestSn } from '@/api/template' |
|
|
|
import { uniqeYqOne, uniqeResource } from "@/utils/calUnitTools"; |
|
|
|
import { EventBus } from "@/utils/eventBus"; |
|
|
|
|
|
|
|
@ -198,6 +199,7 @@ export default { |
|
|
|
xbzbqbh: { |
|
|
|
label: 'template.dl.dl012.xbzbqbh', |
|
|
|
type: 'xb', |
|
|
|
checkType:"checkbox", |
|
|
|
fillType: 'actFill' |
|
|
|
}, |
|
|
|
zbxbs: { |
|
|
|
@ -278,41 +280,7 @@ export default { |
|
|
|
|
|
|
|
// 仅在 actFill 时,根据 zbxbs 生成 zbhxbbh_1/2/3... 写入 formData |
|
|
|
if (this.fillType === 'actFill') { |
|
|
|
const data = this.getFilledFormDataByRefs([refConf.xbxx]) |
|
|
|
const { zbxbs, zbhxbbh_1 } = data || {} |
|
|
|
if (!zbxbs) return |
|
|
|
|
|
|
|
let count = 1 |
|
|
|
try { |
|
|
|
count = Number(zbxbs) |
|
|
|
} catch (error) { |
|
|
|
count = 1 |
|
|
|
} |
|
|
|
|
|
|
|
// 先写入 this.formData,让 xbxxConfig computed 感知到新字段并生成对应表单项 |
|
|
|
const updateData = {} |
|
|
|
const formattedDate = moment().format('YYMMDD') |
|
|
|
for (let index = 1; index <= count; index++) { |
|
|
|
const zbhxbbhKey = 'zbhxbbh_' + index |
|
|
|
const codeSnKey = 'zbhxbbhCodeSn_' + index |
|
|
|
|
|
|
|
if (!data[zbhxbbhKey]) { |
|
|
|
this.$set(this.formData, zbhxbbhKey, zbhxbbh_1) |
|
|
|
updateData[zbhxbbhKey] = zbhxbbh_1 |
|
|
|
} |
|
|
|
if (!data[codeSnKey]) { |
|
|
|
const codeSnVal = formattedDate + '-' + `${index}`.padStart(4, '0') |
|
|
|
this.$set(this.formData, codeSnKey, codeSnVal) |
|
|
|
updateData[codeSnKey] = codeSnVal |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
// 等配制更新后,同步到子组件的 formFields |
|
|
|
if (Object.keys(updateData).length > 0) { |
|
|
|
this.$nextTick(() => { |
|
|
|
this.$refs[refConf.xbxx].batchUpdateFormData(updateData) |
|
|
|
}) |
|
|
|
} |
|
|
|
this.generateZbhxbbhFields() |
|
|
|
} |
|
|
|
}, |
|
|
|
data() { |
|
|
|
@ -322,15 +290,63 @@ export default { |
|
|
|
} |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
// 根据 zbxbs 调用接口生成对应数量的制备后细胞编号(已有的不重复生成) |
|
|
|
async generateZbhxbbhFields() { |
|
|
|
const data = this.getFilledFormDataByRefs([refConf.xbxx]) |
|
|
|
const { zbxbs, zbhxbbh_1 } = data || {} |
|
|
|
if (!zbxbs || !zbhxbbh_1) return |
|
|
|
|
|
|
|
const count = Number(zbxbs) || 1 |
|
|
|
|
|
|
|
// 检查是否已经生成过(所有编号都已存在则跳过) |
|
|
|
const allExist = Array.from({ length: count }, (_, i) => `zbhxbbhCodeSn_${i + 1}`) |
|
|
|
.every(key => !!data[key]) |
|
|
|
if (allExist) return |
|
|
|
|
|
|
|
try { |
|
|
|
const res = await getLatestSn({ pre: zbhxbbh_1, type: 1, count }) |
|
|
|
if (res.code !== 200) return |
|
|
|
const snArr = res.data |
|
|
|
if (!snArr || snArr.length === 0) return |
|
|
|
|
|
|
|
const updateData = {} |
|
|
|
for (let index = 1; index <= count; index++) { |
|
|
|
const zbhxbbhKey = 'zbhxbbh_' + index |
|
|
|
const codeSnKey = 'zbhxbbhCodeSn_' + index |
|
|
|
|
|
|
|
// 先写入 formData,让 xbxxConfig computed 感知到新字段并渲染对应表单项 |
|
|
|
if (!data[zbhxbbhKey]) { |
|
|
|
this.$set(this.formData, zbhxbbhKey, zbhxbbh_1) |
|
|
|
updateData[zbhxbbhKey] = zbhxbbh_1 |
|
|
|
} |
|
|
|
if (!data[codeSnKey]) { |
|
|
|
const codeSnVal = snArr[index - 1] || '' |
|
|
|
this.$set(this.formData, codeSnKey, codeSnVal) |
|
|
|
updateData[codeSnKey] = codeSnVal |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (Object.keys(updateData).length > 0) { |
|
|
|
this.$nextTick(() => { |
|
|
|
this.$refs[refConf.xbxx]?.batchUpdateFormData(updateData) |
|
|
|
}) |
|
|
|
} |
|
|
|
} catch (e) { |
|
|
|
this.$message.error('细胞编号生成失败,请重试') |
|
|
|
} |
|
|
|
}, |
|
|
|
onTableRegentSubmit(data) { |
|
|
|
if (data.key === 'xbzbqbh') { |
|
|
|
this.$refs.xbxxRef.updateFormData('xbzbqbh_tj', data.selectInfo.row.tj) |
|
|
|
this.$refs.xbxxRef.updateFormData('xbzbqbh_dw', data.selectInfo.row.tjdw) |
|
|
|
const selectedRows = data.selectInfo?.selectedRows || [] |
|
|
|
const firstRow = selectedRows[0] || {} |
|
|
|
this.$refs.xbxxRef.updateFormData('xbzbqbh_tj', firstRow.tj) |
|
|
|
this.$refs.xbxxRef.updateFormData('xbzbqbh_dw', firstRow.tjdw) |
|
|
|
} |
|
|
|
if (data.key === 'pyxbh') { |
|
|
|
this.$refs.pyxxRef.updateFormData('pyxbh_mc', data.selectInfo.row.mc) |
|
|
|
this.$refs.pyxxRef.updateFormData('pyxbh_xh', data.selectInfo.row.xh) |
|
|
|
this.$refs.pyxxRef.updateFormData('pyxbh_jzrq', data.selectInfo.row.jzrq) |
|
|
|
const row = data.selectInfo?.row || {} |
|
|
|
this.$refs.pyxxRef.updateFormData('pyxbh_mc', row.mc) |
|
|
|
this.$refs.pyxxRef.updateFormData('pyxbh_xh', row.xh) |
|
|
|
this.$refs.pyxxRef.updateFormData('pyxbh_jzrq', row.jzrq) |
|
|
|
} |
|
|
|
//通知后端保存数据 |
|
|
|
const params = { |
|
|
|
@ -425,9 +441,6 @@ export default { |
|
|
|
this.yqResourceTmp = uniqeYqOne(tmpYq, stepResource.yqResource || []) |
|
|
|
return this.resourceTmp; |
|
|
|
}, |
|
|
|
onRegentSubmit(e) { |
|
|
|
// 预留方法,如果需要处理试剂提交事件可以在这里添加 |
|
|
|
}, |
|
|
|
// 保存 |
|
|
|
async onSave() { |
|
|
|
const formData = this.getStepResource() |
|
|
|
|