Browse Source

feat:[模板管理][update]

lkf
luojie 2 months ago
parent
commit
5e5928cdd3
6 changed files with 58 additions and 48 deletions
  1. +7
    -8
      src/components/Template/BaseInfoFormPcakge.vue
  2. +1
    -1
      src/components/Template/HandleFormItem.vue
  3. +39
    -31
      src/components/Template/operation/TableOpertaion.vue
  4. +4
    -4
      src/views/business/comps/template/comps/sp/SWYPBQGZYZBB.vue
  5. +1
    -1
      src/views/business/comps/template/dialog/SelectReagentDialog.vue
  6. +6
    -3
      src/views/business/comps/template/dialog/SubPackageDialog.vue

+ 7
- 8
src/components/Template/BaseInfoFormPcakge.vue View File

@ -31,7 +31,7 @@
<div class="form-title">{{ $t( sItem.label) }}</div> <div class="form-title">{{ $t( sItem.label) }}</div>
<div class="flex flex1"> <div class="flex flex1">
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey+'_'+key" type="select" :item="sItem" v-model="formFields[key]" <HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey+'_'+key" type="select" :item="sItem" v-model="formFields[key]"
@copy="onCopy(sItem, key)" @change="onSelectChange(key, $event)"
@copy="onCopy(sItem, key)" @change="(e,type)=>onSelectChange(key, e,type)"
:error="errors[key]" @update:error="errors[key] = false" :error="errors[key]" @update:error="errors[key] = false"
:orange-bg="orangeBgFields[key]" /> :orange-bg="orangeBgFields[key]" />
@ -66,7 +66,7 @@
</div> </div>
<div v-else-if="sItem.type === 'select'"> <div v-else-if="sItem.type === 'select'">
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey+'_'+key" type="select" :item="sItem" v-model="formFields[key]" <HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey+'_'+key" type="select" :item="sItem" v-model="formFields[key]"
@copy="onCopy(sItem, key)" @change="onSelectChange(key, $event)"
@copy="onCopy(sItem, key)" @change="(e,type)=>onSelectChange(key, e,type)"
:error="errors[key]" @update:error="errors[key] = false" :error="errors[key]" @update:error="errors[key] = false"
:orange-bg="orangeBgFields[key]" /> :orange-bg="orangeBgFields[key]" />
</div> </div>
@ -105,7 +105,7 @@
<div v-else-if="sItem.type === 'select'" class="flex flex1"> <div v-else-if="sItem.type === 'select'" class="flex flex1">
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey+'_'+key" type="select" :item="sItem" style="width: auto;flex:1" <HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey+'_'+key" type="select" :item="sItem" style="width: auto;flex:1"
v-model="formFields[key]" @copy="onCopy(sItem, key)" v-model="formFields[key]" @copy="onCopy(sItem, key)"
@change="onSelectChange(key, $event)" :error="errors[key]"
@change="(e,type)=>onSelectChange(key, e,type)" :error="errors[key]"
@update:error="errors[key] = false" :orange-bg="orangeBgFields[key]" /> @update:error="errors[key] = false" :orange-bg="orangeBgFields[key]" />
<div v-show="isShowOther(formFields[key])" class="flex flex1"> <div v-show="isShowOther(formFields[key])" class="flex flex1">
<div class="other-title">{{sItem.otherLabel ? $t(sItem.otherLabel) : $t("template.common.other") }}</div> <div class="other-title">{{sItem.otherLabel ? $t(sItem.otherLabel) : $t("template.common.other") }}</div>
@ -123,7 +123,7 @@
@update:error="errors[key] = false" :orange-bg="orangeBgFields[key]" /> @update:error="errors[key] = false" :orange-bg="orangeBgFields[key]" />
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey+'_'+sItem.subKey" class="ml-10" v-if="sItem.subType === 'select'" type="select" <HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey+'_'+sItem.subKey" class="ml-10" v-if="sItem.subType === 'select'" type="select"
:item="getSubItem(sItem)" v-model="formFields[sItem.subKey]" @copy="onCopy(sItem, key)" :item="getSubItem(sItem)" v-model="formFields[sItem.subKey]" @copy="onCopy(sItem, key)"
@change="onSelectChange(sItem.subKey, $event)" :error="errors[sItem.subKey]"
@change="(e,type)=>onSelectChange(sItem.subKey, e,type)" :error="errors[sItem.subKey]"
@update:error="errors[sItem.subKey] = false" @update:error="errors[sItem.subKey] = false"
:orange-bg="orangeBgFields[sItem.subKey]" /> :orange-bg="orangeBgFields[sItem.subKey]" />
<div class="ml-10 item-span" v-else-if="sItem.subType === 'span'">{{ formFields[sItem.subKey] }}</div> <div class="ml-10 item-span" v-else-if="sItem.subType === 'span'">{{ formFields[sItem.subKey] }}</div>
@ -153,7 +153,7 @@
:orange-bg="orangeBgFields[key]" /> :orange-bg="orangeBgFields[key]" />
<HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey+'_'+sItem.subKey" class="ml-10" v-if="sItem.subType === 'select'" type="select" <HandleFormItem :field-item-label="fieldItemLabel" :field-key="prefixKey+'_'+sItem.subKey" class="ml-10" v-if="sItem.subType === 'select'" type="select"
:item="getSubItem(sItem)" v-model="formFields[sItem.subKey]" @copy="onCopy(sItem, key)" :item="getSubItem(sItem)" v-model="formFields[sItem.subKey]" @copy="onCopy(sItem, key)"
@change="onSelectChange(sItem.subKey, $event)" :error="errors[sItem.subKey]"
@change="(e,type)=>onSelectChange(sItem.subKey, e,type)" :error="errors[sItem.subKey]"
@update:error="errors[sItem.subKey] = false" @update:error="errors[sItem.subKey] = false"
:orange-bg="orangeBgFields[sItem.subKey]" /> :orange-bg="orangeBgFields[sItem.subKey]" />
<div class="ml-10 item-span" v-else-if="sItem.subType === 'span'">{{ formFields[sItem.subKey] }}</div> <div class="ml-10 item-span" v-else-if="sItem.subType === 'span'">{{ formFields[sItem.subKey] }}</div>
@ -543,16 +543,15 @@ export default {
this.compareFieldsIsEqual(val,compareToValue,key); this.compareFieldsIsEqual(val,compareToValue,key);
} }
}, },
onSelectChange(key, val) {
onSelectChange(key, val, type) {
// //
const currentConfig = this.allFieldsConfig[key]; const currentConfig = this.allFieldsConfig[key];
console.log(currentConfig,"currentConfig")
if(currentConfig.selectTo){ if(currentConfig.selectTo){
this.formFields[currentConfig.selectTo] = val; this.formFields[currentConfig.selectTo] = val;
} }
this.onValueChangeCompareTo(key, val); this.onValueChangeCompareTo(key, val);
this.formFields[key] = val; this.formFields[key] = val;
this.$emit("select", { key, value: val });
this.$emit("select", { key, value: val, type });
// //
if (this.errors[key]) { if (this.errors[key]) {
this.$set(this.errors, key, false); this.$set(this.errors, key, false);

+ 1
- 1
src/components/Template/HandleFormItem.vue View File

@ -407,7 +407,7 @@ export default {
this.inputValue = this.oldValue; this.inputValue = this.oldValue;
this.$emit('input', this.inputValue); // v-model this.$emit('input', this.inputValue); // v-model
this.$emit("blur", this.oldValue); this.$emit("blur", this.oldValue);
this.$emit("change", this.oldValue);
this.$emit("change", this.oldValue,"cancel");
if(this.item.type === "clickable"){ if(this.item.type === "clickable"){
this.$emit("resetRecord"); this.$emit("resetRecord");
} }

+ 39
- 31
src/components/Template/operation/TableOpertaion.vue View File

@ -5,19 +5,20 @@
<el-button v-if="fillType === 'preFill'" slot="reference" type="text" size="small" class="delete-button"> <el-button v-if="fillType === 'preFill'" slot="reference" type="text" size="small" class="delete-button">
删除 删除
</el-button> </el-button>
</el-popconfirm> </el-popconfirm>
<template v-if="fillType === 'actFill'"> <template v-if="fillType === 'actFill'">
<el-button type="text" size="small" @click = "onSubPackage">分装</el-button>
<el-button type="text" size="small" @click = "onStartConfig">开始配置</el-button>
<el-button type="text" size="small" @click = "onConfigComplete">配置完成</el-button>
<el-button type="text" size="small" @click = "onPrintLabel">打印标签</el-button>
<el-button type="text" size="small" @click="onSubPackage">分装</el-button>
<el-button type="text" size="small" @click="onStartConfig">开始配置</el-button>
<el-button type="text" size="small" @click="onConfigComplete">配置完成</el-button>
<el-button type="text" size="small" @click="onPrintLabel">打印标签</el-button>
</template> </template>
</div> </div>
</template> </template>
<script> <script>
import { EventBus } from "@/utils/eventBus"; import { EventBus } from "@/utils/eventBus";
import { addTj } from "@/utils/calUnitTools";
export default { export default {
name: "TableOpertaion", name: "TableOpertaion",
@ -39,7 +40,7 @@ export default {
default: "preFill", default: "preFill",
}, },
}, },
mounted() { mounted() {
EventBus.$on("dialogSubPackageSubmit", (data) => { EventBus.$on("dialogSubPackageSubmit", (data) => {
this.onSubPackageSubmit(data) this.onSubPackageSubmit(data)
@ -53,51 +54,58 @@ export default {
deep: true, deep: true,
} }
}, },
data(){
return{
data() {
return {
innerRow: this.row, innerRow: this.row,
} }
}, },
methods: { methods: {
// //
onStartConfig() { onStartConfig() {
this.$emit("startConfig", {rowData:this.innerRow,rowIndex:this.rowIndex,headerSelectFields:this.columns.headerSelectFields})
this.$emit("startConfig", { rowData: this.innerRow, rowIndex: this.rowIndex, headerSelectFields: this.columns.headerSelectFields })
}, },
// //
onConfigComplete() { onConfigComplete() {
this.$emit("configComplete", {rowData:this.innerRow,rowIndex:this.rowIndex,headerSelectFields:this.columns.headerSelectFields})
this.$emit("configComplete", { rowData: this.innerRow, rowIndex: this.rowIndex, headerSelectFields: this.columns.headerSelectFields })
}, },
// //
onPrintLabel() { onPrintLabel() {
this.$emit("printLabel", {rowData:this.innerRow,rowIndex:this.rowIndex,headerSelectFields:this.columns.headerSelectFields})
this.$emit("printLabel", { rowData: this.innerRow, rowIndex: this.rowIndex, headerSelectFields: this.columns.headerSelectFields })
}, },
// //
onSubPackage() { onSubPackage() {
const {columns,innerRow} = this;
const {headerSelectFields,columnsData} = columns;
const col = columnsData.find((item)=>item.myCodeFields);
const {myCodeFields,maxVolumeField,maxVolumeFieldUnit} = col;
const fields = [];
myCodeFields.forEach((key)=>{
const { columns, innerRow } = this;
const { headerSelectFields, columnsData } = columns;
const col = columnsData.find((item) => item.myCodeFields);
const { myCodeFields, maxVolumeField, maxVolumeFieldUnit } = col;
const fields = [], cols = [], units = [];
myCodeFields.forEach((key) => {
fields.push(innerRow[key]) fields.push(innerRow[key])
}); });
let defaultData = {mybh:fields.join(""),maxVolume:innerRow[maxVolumeField],maxVolumeUnit:headerSelectFields[maxVolumeFieldUnit],rowIndex:this.rowIndex}
if(innerRow.fzsj){
maxVolumeField.split(",").forEach((key) => {
cols.push(innerRow[key] || 0)
})
maxVolumeFieldUnit.split(",").forEach((key) => {
units.push(headerSelectFields[key])
})
const {total,unit} = addTj(cols,units)
let defaultData = { mybh: fields.join(""), maxVolume: total, maxVolumeUnit: unit, rowIndex: this.rowIndex }
if (innerRow.fzsj) {
defaultData = innerRow.fzsj defaultData = innerRow.fzsj
} }
EventBus.$emit("showSubPackageDialog",defaultData)
EventBus.$emit("showSubPackageDialog", defaultData)
}, },
onSubPackageSubmit(data){
if(data.rowIndex === this.rowIndex){
onSubPackageSubmit(data) {
if (data.rowIndex === this.rowIndex) {
this.innerRow.fzsj = data; this.innerRow.fzsj = data;
// //
const params = {
type: "fieldChanged",
newRecord: null,
resourceList: null,
}
EventBus.$emit('onModifyRecord', params);
this.$emit("subPackageSubmit", {fzsj:data,rowData:this.innerRow,headerSelectFields:this.columns.headerSelectFields});
const params = {
type: "fieldChanged",
newRecord: null,
resourceList: null,
}
EventBus.$emit('onModifyRecord', params);
this.$emit("subPackageSubmit", { fzsj: data, rowData: this.innerRow, headerSelectFields: this.columns.headerSelectFields });
} }
}, },
// //
@ -109,7 +117,7 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.delete-button{
color: red;
.delete-button {
color: red;
} }
</style> </style>

+ 4
- 4
src/views/business/comps/template/comps/sp/SWYPBQGZYZBB.vue View File

@ -270,10 +270,10 @@ export default {
bodyFillType: "preFill", bodyFillType: "preFill",
width: 280, width: 280,
myCodeFields: ["targetSolutionCode", "subTargetSolutionCode"],// myCodeFields: ["targetSolutionCode", "subTargetSolutionCode"],//
// maxVolumeField: "actSolutionVolume",//
// maxVolumeFieldUnit: "actSolutionVolumeUnit",//
maxVolumeField: "targetSolutionVolume,targetDiluentVolume",//
maxVolumeFieldUnit: "targetSolutionVolumeUnit,targetDiluentVolumeUnit",//
maxVolumeField: "actSolutionVolume",//
maxVolumeFieldUnit: "actSolutionVolumeUnit",//
// maxVolumeField: "targetSolutionVolume,targetDiluentVolume",//
// maxVolumeFieldUnit: "targetSolutionVolumeUnit,targetDiluentVolumeUnit",//
}, },
{ {
label: "起始溶液编号", label: "起始溶液编号",

+ 1
- 1
src/views/business/comps/template/dialog/SelectReagentDialog.vue View File

@ -1,5 +1,5 @@
<template> <template>
<el-dialog :title="$t(title)" @close="onCancel" :visible.sync="visible" append-to-body width="80%">
<el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="$t(title)" @close="onCancel" :visible.sync="visible" append-to-body width="80%">
<!-- 麻醉/精神药品配制/领取申请单 --> <!-- 麻醉/精神药品配制/领取申请单 -->
<div v-if="type === 'MJYLQSQD'" class="header-row"> <div v-if="type === 'MJYLQSQD'" class="header-row">
<el-radio-group v-model="radio" @input="changeRadio"> <el-radio-group v-model="radio" @input="changeRadio">

+ 6
- 3
src/views/business/comps/template/dialog/SubPackageDialog.vue View File

@ -1,5 +1,5 @@
<template> <template>
<el-dialog title="分装(分装后的编号可用于下一步关联选择)" append-to-body :visible.sync="visible" @close="close" width="1100px">
<el-dialog :close-on-click-modal="false" :close-on-press-escape="false" title="分装(分装后的编号可用于下一步关联选择)" append-to-body :visible.sync="visible" @close="close" width="1100px">
<div class="dialog-content"> <div class="dialog-content">
<div class="header-container"> <div class="header-container">
<div class="header-item"> <div class="header-item">
@ -130,6 +130,7 @@ export default {
const {maxVolume,maxVolumeUnit,dw} = this.formData; const {maxVolume,maxVolumeUnit,dw} = this.formData;
const totalVolume = this.fzList.reduce((acc, cur) => acc + Number(cur.num), 0); const totalVolume = this.fzList.reduce((acc, cur) => acc + Number(cur.num), 0);
const compareResult = compareVolume(totalVolume,dw,maxVolume, maxVolumeUnit); const compareResult = compareVolume(totalVolume,dw,maxVolume, maxVolumeUnit);
console.log(compareResult,totalVolume,dw,maxVolume, maxVolumeUnit,"比较结果");
if(compareResult > 0||!maxVolume){// if(compareResult > 0||!maxVolume){//
this.$modal.confirm(errMsg, '提示', { this.$modal.confirm(errMsg, '提示', {
confirmButtonText: this.$t('form.saveConfirm'), confirmButtonText: this.$t('form.saveConfirm'),
@ -150,8 +151,10 @@ export default {
}, },
submitEmit(){ submitEmit(){
EventBus.$emit('dialogSubPackageSubmit', {...this.formData, fzList: this.fzList}); EventBus.$emit('dialogSubPackageSubmit', {...this.formData, fzList: this.fzList});
this.close();
this.$message.success('分装成功');
setTimeout(() => {
this.close();
}, 500);
}, },
validateFormData() { validateFormData() {
let isValid = true; let isValid = true;

Loading…
Cancel
Save