Browse Source

feat:[模板管理][DL014增加流程校验]

ouqian
ouqian 1 month ago
parent
commit
7f0c3e4365
5 changed files with 160 additions and 29 deletions
  1. +24
    -5
      src/views/business/comps/template/comps/dl/DL007.vue
  2. +1
    -0
      src/views/business/comps/template/comps/dl/DL008.vue
  3. +3
    -4
      src/views/business/comps/template/comps/dl/DL009.vue
  4. +128
    -20
      src/views/business/comps/template/comps/dl/DL014.vue
  5. +4
    -0
      src/views/business/comps/template/comps/dl/DL015.vue

+ 24
- 5
src/views/business/comps/template/comps/dl/DL007.vue View File

@ -209,6 +209,7 @@ export default {
qxbd: {
label: 'template.dl.dl007.qxbd',
type: 'qxbd',
qxbdType: 'DL006',
fillType: 'actFill',
filledCodes: ['bdmc', 'bdbh']
},
@ -264,10 +265,18 @@ export default {
return await this.validFormFields(refNames)
},
getResource() {
const stepResource = this.$refs.yqsyTableRef.getStepResource()
// 使
this.resourceTmp = stepResource.sjResource || []
this.yqResourceTmp = stepResource.yqResource || []
const yqsyData = this.$refs.yqsyTableRef?.getFilledFormData()
const yqsyList = yqsyData?.stepTableFormData || []
// 使
this.yqResourceTmp = yqsyList
.filter((item) => item.yqbh)
.map((item) => ({
bh: item.yqbh,
type: 'yq'
}))
this.resourceTmp = []
return this.resourceTmp
},
onRegentSubmit(e) {
@ -283,7 +292,17 @@ export default {
this.$refs.yqsyTableRef.updateDataSourceByRowIndex(rowIndex, params)
}
if (key === 'qxbd') {
this.$refs.czInfoRef.updateFormData('pykssj', row.startDate)
try {
const bdnr = JSON.parse(row.bdnr)
if (bdnr.startDate) {
const formattedDate = moment(bdnr.startDate).format(
'YYYY/MM/DD HH:mm'
)
this.$refs.czInfoRef.updateFormData('pykssj', formattedDate)
}
} catch (error) {
console.error('解析前序表单数据失败:', error)
}
}
},
//

+ 1
- 0
src/views/business/comps/template/comps/dl/DL008.vue View File

@ -220,6 +220,7 @@ export default {
prop: 'jlzb',
bodyType: 'input',
bodyFillType: 'actFill',
disabled: true,
width: 100
},
{

+ 3
- 4
src/views/business/comps/template/comps/dl/DL009.vue View File

@ -198,16 +198,15 @@ export default {
{
type: 'cellItem',
config: {
kssj: {
startDate: {
label: 'template.dl.dl009.kssj',
type: 'input',
disabled: true
},
jssj: {
endDate: {
label: 'template.dl.dl009.jssj',
type: 'input',
fillType: 'actFill',
maxlength: 200
disabled: true
}
}
}

+ 128
- 20
src/views/business/comps/template/comps/dl/DL014.vue View File

@ -57,6 +57,7 @@
:formData="formData"
@select="onSftjs9Change"
@clickButton="handleJlzzsButton"
@blur="onJlzInfoBlur"
/>
<!-- 剂量组名称列表 -->
@ -67,6 +68,7 @@
:showAddRow="false"
:formData="jlzmcTableFormData"
:prefixKey="`jlzmcTable`"
@blur="onJlzmcTableBlur"
></CustomTable>
<!-- 完成按钮 -->
@ -321,14 +323,20 @@ export default {
}
//
firstStepConfig.jlzzs = {
const jlzzsConfig = {
label: 'template.dl.dl014.jlzzs',
type: 'inputNumber',
fillType: 'preFill',
subType: 'button',
subKey: 'jlzzsButton',
buttonName: 'template.dl.dl014.qrButton'
fillType: 'preFill'
}
// preFill
if (this.fillType === 'preFill') {
jlzzsConfig.subType = 'button'
jlzzsConfig.subKey = 'jlzzsButton'
jlzzsConfig.buttonName = 'template.dl.dl014.qrButton'
}
firstStepConfig.jlzzs = jlzzsConfig
return [
{
@ -477,7 +485,9 @@ export default {
return {
formData: {},
refConf,
isSftjs9Yes: false // S9
isSftjs9Yes: false, // S9
oldJlzzs: null, //
oldPxpb: null //
}
},
mounted() {
@ -486,6 +496,16 @@ export default {
this.isSftjs9Yes =
this.formData.sftjs9 === '是' || this.formData.sftjs9 === 'Yes'
}
//
if (this.formData.jlzzs) {
this.oldJlzzs = this.formData.jlzzs
}
//
if (this.formData.pxpb) {
this.oldPxpb = this.formData.pxpb
}
},
methods: {
//
@ -533,6 +553,23 @@ export default {
return false
}
//
const jlzmcTableData = this.$refs[refConf.jlzmcTable]?.getFilledFormData()
const jlzmcList = jlzmcTableData?.stepTableFormData || []
if (jlzmcList.length === 0) {
this.$message.warning('请先生成剂量组名称')
return false
}
const jlzTableData = this.$refs[refConf.jlzTable]?.getFilledFormData()
const jlzList = jlzTableData?.stepTableFormData || []
if (jlzList.length === 0) {
this.$message.warning('请先生成剂量组列表数据')
return false
}
return this.getFilledFormData()
},
//
@ -547,7 +584,29 @@ export default {
refConf.remark
]
return await this.validFormFields(refsToValidate)
const validFlag = await this.validFormFields(refsToValidate)
if (!validFlag) {
return false
}
//
const jlzmcTableData = this.$refs[refConf.jlzmcTable]?.getFilledFormData()
const jlzmcList = jlzmcTableData?.stepTableFormData || []
if (jlzmcList.length === 0) {
this.$message.warning('请先生成剂量组名称')
return false
}
const jlzTableData = this.$refs[refConf.jlzTable]?.getFilledFormData()
const jlzList = jlzTableData?.stepTableFormData || []
if (jlzList.length === 0) {
this.$message.warning('请先生成剂量组列表数据')
return false
}
return true
},
getResource() {
// 使
@ -603,6 +662,55 @@ export default {
this.isSftjs9Yes = value === '是' || value === 'Yes'
}
},
// blur
onJlzInfoBlur(e) {
const { key, value } = e
//
if (key === 'jlzzs') {
//
if (this.oldJlzzs !== null && this.oldJlzzs !== value) {
//
this.$set(this.formData, 'jlzmcTableData', [])
//
this.$set(this.formData, 'jlzTableData', [])
this.$message.info('剂量组总数已改变,已清空剂量组名称和剂量组列表数据')
}
//
this.oldJlzzs = value
}
//
if (key === 'pxpb') {
//
if (this.oldPxpb !== null && this.oldPxpb !== value) {
//
this.$set(this.formData, 'jlzTableData', [])
this.$message.info('平行瓶数已改变,已清空剂量组列表数据')
}
//
this.oldPxpb = value
}
},
// blur
onJlzmcTableBlur(e) {
const { colKey } = e
//
if (colKey === 'jlzzmc') {
//
const jlzTableData = this.formData.jlzTableData || []
if (jlzTableData.length > 0) {
//
this.$set(this.formData, 'jlzTableData', [])
this.$message.info('剂量组名称已改变,已清空剂量组列表数据')
}
}
},
//
handleJlzzsButton(item) {
const { subKey } = item || {}
@ -611,8 +719,9 @@ export default {
const jlzInfoData = this.$refs[refConf.jlzInfo]?.getFilledFormData()
const jlzzs = jlzInfoData?.jlzzs
// 0
if (!jlzzs || jlzzs <= 0) {
this.$message.warning('请输入剂量组总数')
this.$message.warning('请输入大于0的剂量组总数')
return
}
@ -631,8 +740,8 @@ export default {
}
},
//
handleJlzmcComplete() {
//
async handleJlzmcComplete() {
// 1.
const jlzInfoData = this.$refs[refConf.jlzInfo]?.getFilledFormData()
const pxpb = jlzInfoData?.pxpb
@ -641,7 +750,15 @@ export default {
return
}
// CustomTable ref
// 2.
try {
await this.$refs[refConf.jlzmcTable]?.getFormData()
} catch (error) {
this.$message.warning('请完善剂量组名称信息')
return
}
// 3.
const jlzmcTableData = this.$refs[refConf.jlzmcTable]?.getFilledFormData()
const jlzmcList = jlzmcTableData?.stepTableFormData || []
@ -650,15 +767,6 @@ export default {
return
}
//
const emptyNames = jlzmcList.filter(
(item) => !item.jlzzmc || item.jlzzmc.trim() === ''
)
if (emptyNames.length > 0) {
this.$message.warning('请填写所有剂量组名称')
return
}
//
const newRows = []

+ 4
- 0
src/views/business/comps/template/comps/dl/DL015.vue View File

@ -342,6 +342,8 @@ export default {
const jlzTableData = bdnr.jlzTableData || []
if (jlzTableData.length === 0) {
//
this.$set(this.formData, 'hyqkTableData', [])
this.$message.warning('前序表单中没有剂量组数据')
return
}
@ -364,6 +366,8 @@ export default {
this.$message.success(`已从前序表单加载 ${hyqkData.length} 条剂量组数据`)
} catch (error) {
console.error('解析前序表单数据失败:', error)
//
this.$set(this.formData, 'hyqkTableData', [])
this.$message.error('解析前序表单数据失败')
}
}

Loading…
Cancel
Save