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="flex flex1">
<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"
:orange-bg="orangeBgFields[key]" />
@ -66,7 +66,7 @@
</div>
<div v-else-if="sItem.type === 'select'">
<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"
:orange-bg="orangeBgFields[key]" />
</div>
@ -105,7 +105,7 @@
<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"
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]" />
<div v-show="isShowOther(formFields[key])" class="flex flex1">
<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]" />
<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)"
@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"
:orange-bg="orangeBgFields[sItem.subKey]" />
<div class="ml-10 item-span" v-else-if="sItem.subType === 'span'">{{ formFields[sItem.subKey] }}</div>
@ -153,7 +153,7 @@
:orange-bg="orangeBgFields[key]" />
<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)"
@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"
:orange-bg="orangeBgFields[sItem.subKey]" />
<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);
}
},
onSelectChange(key, val) {
onSelectChange(key, val, type) {
//
const currentConfig = this.allFieldsConfig[key];
console.log(currentConfig,"currentConfig")
if(currentConfig.selectTo){
this.formFields[currentConfig.selectTo] = val;
}
this.onValueChangeCompareTo(key, val);
this.formFields[key] = val;
this.$emit("select", { key, value: val });
this.$emit("select", { key, value: val, type });
//
if (this.errors[key]) {
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.$emit('input', this.inputValue); // v-model
this.$emit("blur", this.oldValue);
this.$emit("change", this.oldValue);
this.$emit("change", this.oldValue,"cancel");
if(this.item.type === "clickable"){
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>
</el-popconfirm>
<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>
</div>
</template>
<script>
import { EventBus } from "@/utils/eventBus";
import { addTj } from "@/utils/calUnitTools";
export default {
name: "TableOpertaion",
@ -39,7 +40,7 @@ export default {
default: "preFill",
},
},
mounted() {
EventBus.$on("dialogSubPackageSubmit", (data) => {
this.onSubPackageSubmit(data)
@ -53,51 +54,58 @@ export default {
deep: true,
}
},
data(){
return{
data() {
return {
innerRow: this.row,
}
},
methods: {
//
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() {
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() {
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() {
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])
});
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
}
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;
//
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>
<style lang="scss" scoped>
.delete-button{
color: red;
.delete-button {
color: red;
}
</style>

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

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

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

@ -1,5 +1,5 @@
<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">
<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>
<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="header-container">
<div class="header-item">
@ -130,6 +130,7 @@ export default {
const {maxVolume,maxVolumeUnit,dw} = this.formData;
const totalVolume = this.fzList.reduce((acc, cur) => acc + Number(cur.num), 0);
const compareResult = compareVolume(totalVolume,dw,maxVolume, maxVolumeUnit);
console.log(compareResult,totalVolume,dw,maxVolume, maxVolumeUnit,"比较结果");
if(compareResult > 0||!maxVolume){//
this.$modal.confirm(errMsg, '提示', {
confirmButtonText: this.$t('form.saveConfirm'),
@ -150,8 +151,10 @@ export default {
},
submitEmit(){
EventBus.$emit('dialogSubPackageSubmit', {...this.formData, fzList: this.fzList});
this.close();
this.$message.success('分装成功');
setTimeout(() => {
this.close();
}, 500);
},
validateFormData() {
let isValid = true;

Loading…
Cancel
Save