|
|
@ -17,20 +17,14 @@ |
|
|
<template v-else-if="sItem.type === 'select'"> |
|
|
<template v-else-if="sItem.type === 'select'"> |
|
|
<HandleFormItem class="step-row" :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + key" |
|
|
<HandleFormItem class="step-row" :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + key" |
|
|
type="select" @blur="onBlur(key, $event)" :item="sItem" v-model="formFields[key]" |
|
|
type="select" @blur="onBlur(key, $event)" :item="sItem" v-model="formFields[key]" |
|
|
|
|
|
@change="onSelectChange(key, $event, sItem.type)" |
|
|
@copy="onCopy(sItem, key)" :error="errors[key]" @update:error="errors[key] = false" |
|
|
@copy="onCopy(sItem, key)" :error="errors[key]" @update:error="errors[key] = false" |
|
|
:orange-bg="orangeBgFields[key]" /> |
|
|
:orange-bg="orangeBgFields[key]" /> |
|
|
</template> |
|
|
</template> |
|
|
<!-- 仪器 --> |
|
|
|
|
|
<template v-else-if="sItem.type === 'instrument'"> |
|
|
|
|
|
|
|
|
<!-- 仪器(instrument)regent(药剂) gsp(供试品) mix(药剂/供试品/给药制剂) --> |
|
|
|
|
|
<template v-else-if="sItem.type === 'instrument' || sItem.type === 'regent' || sItem.type === 'gsp' || sItem.type === 'mix'"> |
|
|
<HandleFormItem class="step-row" :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + key" |
|
|
<HandleFormItem class="step-row" :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + key" |
|
|
type="clickable" @clickable="handleClickInstrument(key,'instrument')" :error="errors[key]" |
|
|
|
|
|
@update:error="errors[key] = false" @resetRecord="resetRecord(key)" :item="getClickableItem(sItem)" |
|
|
|
|
|
:value="formFields[key]" /> |
|
|
|
|
|
</template> |
|
|
|
|
|
<!-- 仪器 --> |
|
|
|
|
|
<template v-else-if="sItem.type === 'regent'"> |
|
|
|
|
|
<HandleFormItem class="step-row" :field-item-label="fieldItemLabel" :field-key="prefixKey + '_' + key" |
|
|
|
|
|
type="clickable" @clickable="handleClickInstrument(key,'regent')" :error="errors[key]" |
|
|
|
|
|
|
|
|
type="clickable" @clickable="handleClickInstrument(key,sItem.type)" :error="errors[key]" |
|
|
@update:error="errors[key] = false" @resetRecord="resetRecord(key)" :item="getClickableItem(sItem)" |
|
|
@update:error="errors[key] = false" @resetRecord="resetRecord(key)" :item="getClickableItem(sItem)" |
|
|
:value="formFields[key]" /> |
|
|
:value="formFields[key]" /> |
|
|
</template> |
|
|
</template> |
|
|
@ -40,6 +34,16 @@ |
|
|
<template v-else-if="sItem.type === 'span'"> |
|
|
<template v-else-if="sItem.type === 'span'"> |
|
|
<span>{{ formFields[key] }}</span> |
|
|
<span>{{ formFields[key] }}</span> |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
<template v-else-if="sItem.type === 'button'"> |
|
|
|
|
|
<el-button type="primary" @click="handleClickButton(key)">{{ sItem.buttonName }}</el-button> |
|
|
|
|
|
</template> |
|
|
|
|
|
<div v-show="isShowOther(formFields[key])" class="flex flex1"> |
|
|
|
|
|
<div class="other-title">{{sItem.otherLabel ? $t(sItem.otherLabel) : $t("template.common.other") }}</div> |
|
|
|
|
|
<HandleFormItem class="step-row" :field-item-label="fieldItemLabel" :field-key="prefixKey+'_'+sItem.otherCode" @blur="onBlur(key, $event)" :item="getOtherItem(sItem)" |
|
|
|
|
|
v-model="formFields[sItem.otherCode]" @copy="onCopy(sItem, key)" |
|
|
|
|
|
:error="errors[sItem.otherCode]" @update:error="errors[sItem.otherCode] = false" |
|
|
|
|
|
:orange-bg="orangeBgFields[sItem.otherCode]" /> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
@ -80,10 +84,12 @@ export default { |
|
|
mounted() { |
|
|
mounted() { |
|
|
EventBus.$on("onReagentSubmit",this.onReagentSubmit) |
|
|
EventBus.$on("onReagentSubmit",this.onReagentSubmit) |
|
|
EventBus.$on("onInstrumentSubmit",this.onInstrumentSubmit) |
|
|
EventBus.$on("onInstrumentSubmit",this.onInstrumentSubmit) |
|
|
|
|
|
EventBus.$on("onMixReagentSubmit",this.onMixReagentSubmit) |
|
|
}, |
|
|
}, |
|
|
unmounted() { |
|
|
unmounted() { |
|
|
EventBus.$off("onReagentSubmit",this.onReagentSubmit) |
|
|
EventBus.$off("onReagentSubmit",this.onReagentSubmit) |
|
|
EventBus.$off("onInstrumentSubmit",this.onInstrumentSubmit) |
|
|
EventBus.$off("onInstrumentSubmit",this.onInstrumentSubmit) |
|
|
|
|
|
EventBus.$off("onMixReagentSubmit",this.onMixReagentSubmit) |
|
|
}, |
|
|
}, |
|
|
data() { |
|
|
data() { |
|
|
return { |
|
|
return { |
|
|
@ -97,6 +103,12 @@ export default { |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
methods: { |
|
|
methods: { |
|
|
|
|
|
// 处理选择试剂/供试品/给药制剂提交 |
|
|
|
|
|
onMixReagentSubmit(data){ |
|
|
|
|
|
if(data.uuid !== this.uuid) return; |
|
|
|
|
|
this.formFields[this.currentClickKey] = data.selectedId; |
|
|
|
|
|
this.$emit("onDialogSubmit",data) |
|
|
|
|
|
}, |
|
|
// 处理选择试剂提交 |
|
|
// 处理选择试剂提交 |
|
|
onReagentSubmit(data){ |
|
|
onReagentSubmit(data){ |
|
|
if(data.uuid !== this.uuid) return; |
|
|
if(data.uuid !== this.uuid) return; |
|
|
@ -110,15 +122,33 @@ export default { |
|
|
getClickableItem(sItem) { |
|
|
getClickableItem(sItem) { |
|
|
return { |
|
|
return { |
|
|
...sItem, |
|
|
...sItem, |
|
|
type:"clickable" |
|
|
|
|
|
|
|
|
type:"clickable", |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
handleClickInstrument(key,type) { |
|
|
handleClickInstrument(key,type) { |
|
|
this.currentClickKey = key; |
|
|
this.currentClickKey = key; |
|
|
if(type === 'regent'){ |
|
|
if(type === 'regent'){ |
|
|
EventBus.$emit("showSelectReagentDialog",{ |
|
|
|
|
|
|
|
|
EventBus.$emit("showSelectMixReagentDialog",{ |
|
|
|
|
|
studyFormId:this.templateData.id, |
|
|
|
|
|
uuid:this.uuid, |
|
|
|
|
|
sourceFrom:'step', |
|
|
|
|
|
type:"sj" |
|
|
|
|
|
}) |
|
|
|
|
|
}else if(type === 'gsp'){ |
|
|
|
|
|
EventBus.$emit("showSelectMixReagentDialog",{ |
|
|
|
|
|
studyFormId:this.templateData.id, |
|
|
|
|
|
uuid:this.uuid, |
|
|
|
|
|
sourceFrom:'step', |
|
|
|
|
|
type:"gsp" |
|
|
|
|
|
}) |
|
|
|
|
|
}else if(type === 'gsp'){ |
|
|
|
|
|
EventBus.$emit("showSelectMixReagentDialog",{ |
|
|
studyFormId:this.templateData.id, |
|
|
studyFormId:this.templateData.id, |
|
|
uuid:this.uuid, |
|
|
uuid:this.uuid, |
|
|
|
|
|
sourceFrom:'step', |
|
|
|
|
|
type:"sj", |
|
|
|
|
|
mixType:true, |
|
|
}) |
|
|
}) |
|
|
}else if(type === 'instrument'){ |
|
|
}else if(type === 'instrument'){ |
|
|
EventBus.$emit("showSelectInstrumentDialog",{ |
|
|
EventBus.$emit("showSelectInstrumentDialog",{ |
|
|
@ -138,6 +168,7 @@ export default { |
|
|
display: flex; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
align-items: center; |
|
|
font-size: 14px; |
|
|
font-size: 14px; |
|
|
|
|
|
flex-wrap: wrap; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.step-row { |
|
|
.step-row { |
|
|
@ -148,5 +179,6 @@ export default { |
|
|
display: flex; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
align-items: center; |
|
|
margin-left: 5px; |
|
|
margin-left: 5px; |
|
|
|
|
|
margin-bottom: 10px; |
|
|
} |
|
|
} |
|
|
</style> |
|
|
</style> |