|
@@ -100,6 +100,9 @@ export default {
|
|
|
showRS: false,
|
|
showRS: false,
|
|
|
rsLoading: false,
|
|
rsLoading: false,
|
|
|
rs: [],
|
|
rs: [],
|
|
|
|
|
+
|
|
|
|
|
+ /* 药品编辑替换 id */
|
|
|
|
|
+ replaceId: '',
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
computed: {
|
|
computed: {
|
|
@@ -330,6 +333,13 @@ export default {
|
|
|
else delete model[`decoct_${key}`];
|
|
else delete model[`decoct_${key}`];
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
|
|
+ delayClick(id) {
|
|
|
|
|
+ const f = () => requestAnimationFrame(() => {
|
|
|
|
|
+ const dom = document.querySelector(`#s-${id}`);
|
|
|
|
|
+ if (!dom) f();
|
|
|
|
|
+ });
|
|
|
|
|
+ // f()
|
|
|
|
|
+ },
|
|
|
searchMedicinesFormat(res) {
|
|
searchMedicinesFormat(res) {
|
|
|
try {
|
|
try {
|
|
|
if (res.rows) return {totalRow: res.total, list: res.rows};
|
|
if (res.rows) return {totalRow: res.total, list: res.rows};
|
|
@@ -338,6 +348,7 @@ export default {
|
|
|
},
|
|
},
|
|
|
selectMedicine([value], row, index) {
|
|
selectMedicine([value], row, index) {
|
|
|
if (value) {
|
|
if (value) {
|
|
|
|
|
+ row.invalid = !value.drugsId;
|
|
|
row.matCode = value.drugsId;
|
|
row.matCode = value.drugsId;
|
|
|
row.matName = value.drugsName;
|
|
row.matName = value.drugsName;
|
|
|
row.drugsSpecsName = value.drugsSpecsName;
|
|
row.drugsSpecsName = value.drugsSpecsName;
|
|
@@ -348,6 +359,7 @@ export default {
|
|
|
row.matPfj = value.matPfj;
|
|
row.matPfj = value.matPfj;
|
|
|
row.subtotalMoney = this.calculationMedicinePrice(row);
|
|
row.subtotalMoney = this.calculationMedicinePrice(row);
|
|
|
} else {
|
|
} else {
|
|
|
|
|
+ delete row.invalid;
|
|
|
delete row.matCode;
|
|
delete row.matCode;
|
|
|
delete row.matName;
|
|
delete row.matName;
|
|
|
delete row.drugsSpecsName;
|
|
delete row.drugsSpecsName;
|
|
@@ -357,10 +369,12 @@ export default {
|
|
|
delete row.matXsj;
|
|
delete row.matXsj;
|
|
|
delete row.matPfj;
|
|
delete row.matPfj;
|
|
|
delete row.drugMark;
|
|
delete row.drugMark;
|
|
|
|
|
+ delete row.subtotalMoney;
|
|
|
this.medicines.splice(index, 1, row);
|
|
this.medicines.splice(index, 1, row);
|
|
|
}
|
|
}
|
|
|
if (this.getEmptyMedicineRowIndex === -1) this.appendMedicine({}, index + 1);
|
|
if (this.getEmptyMedicineRowIndex === -1) this.appendMedicine({}, index + 1);
|
|
|
if (this.showRS) this.loadRS();
|
|
if (this.showRS) this.loadRS();
|
|
|
|
|
+ this.replaceId = void 0;
|
|
|
},
|
|
},
|
|
|
appendMedicine(model, index = this.medicines.length) {
|
|
appendMedicine(model, index = this.medicines.length) {
|
|
|
this.medicines.splice(index, 0, model || {});
|
|
this.medicines.splice(index, 0, model || {});
|
|
@@ -378,7 +392,7 @@ export default {
|
|
|
return price.multiply(bignumber(medicine.matDose || 0)).value.valueOf();
|
|
return price.multiply(bignumber(medicine.matDose || 0)).value.valueOf();
|
|
|
},
|
|
},
|
|
|
medicinesCellSpan({row, column, rowIndex, columnIndex}) {
|
|
medicinesCellSpan({row, column, rowIndex, columnIndex}) {
|
|
|
- if (columnIndex >= 2 && !(row && row.matCode)) return {
|
|
|
|
|
|
|
+ if (columnIndex >= 2 && !(row && (row.invalid || row.matCode))) return {
|
|
|
rowspan: 1,
|
|
rowspan: 1,
|
|
|
colspan: 8,
|
|
colspan: 8,
|
|
|
};
|
|
};
|
|
@@ -829,7 +843,21 @@ export default {
|
|
|
<el-table-column label="序号" type="index" width="55" align="center" fixed></el-table-column>
|
|
<el-table-column label="序号" type="index" width="55" align="center" fixed></el-table-column>
|
|
|
<el-table-column label="药品名称" prop="matName" min-width="120px" align="center">
|
|
<el-table-column label="药品名称" prop="matName" min-width="120px" align="center">
|
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
|
- <template v-if="!scope.row.matCode">
|
|
|
|
|
|
|
+ <el-popover v-if="scope.row.invalid" width="326" trigger="click" @after-enter="delayClick(scope.row.id)">
|
|
|
|
|
+ <v-selectpage ref="selectPage" v-if="scope.row.id === replaceId" :id="'s-' + scope.row.id" :tb-columns="searchTableForSystemColumns"
|
|
|
|
|
+ key-field="drugsId" :show="true"
|
|
|
|
|
+ placeholder="请点击输入药品名称" title="替换药品"
|
|
|
|
|
+ data="drugsSearchForSystem" :params="{name: scope.row.matName}" :pagination="false"
|
|
|
|
|
+ :result-format="searchMedicinesFormat"
|
|
|
|
|
+ @values="selectMedicine($event, scope.row, scope.$index)"
|
|
|
|
|
+ ></v-selectpage>
|
|
|
|
|
+ <a slot="reference" class="replaceable" @click="(replaceId = scope.row.id);">
|
|
|
|
|
+ {{ scope.row.matName }}
|
|
|
|
|
+ <i class="icon el-icon-circle-close"
|
|
|
|
|
+ @click.self="selectMedicine([], scope.row, scope.$index)"></i>
|
|
|
|
|
+ </a>
|
|
|
|
|
+ </el-popover>
|
|
|
|
|
+ <template v-else-if="!scope.row.matCode">
|
|
|
<v-selectpage :tb-columns="searchTableForSystemColumns"
|
|
<v-selectpage :tb-columns="searchTableForSystemColumns"
|
|
|
key-field="drugsId" v-model="scope.row.matCode"
|
|
key-field="drugsId" v-model="scope.row.matCode"
|
|
|
placeholder="请输入药品名称" title="药品"
|
|
placeholder="请输入药品名称" title="药品"
|
|
@@ -838,15 +866,15 @@ export default {
|
|
|
@values="selectMedicine($event, scope.row, scope.$index)"
|
|
@values="selectMedicine($event, scope.row, scope.$index)"
|
|
|
></v-selectpage>
|
|
></v-selectpage>
|
|
|
</template>
|
|
</template>
|
|
|
- <a v-else>
|
|
|
|
|
|
|
+ <span v-else>
|
|
|
{{ scope.row.matName }}
|
|
{{ scope.row.matName }}
|
|
|
- <i class="icon el-icon-circle-close" @click="selectMedicine([], scope.row, scope.$index)"></i>
|
|
|
|
|
- </a>
|
|
|
|
|
|
|
+ <i class="icon el-icon-circle-close" style="cursor: pointer;" @click="selectMedicine([], scope.row, scope.$index)"></i>
|
|
|
|
|
+ </span>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
<el-table-column label="规格" prop="drugsSpecsName" min-width="110px" align="center"></el-table-column>
|
|
<el-table-column label="规格" prop="drugsSpecsName" min-width="110px" align="center"></el-table-column>
|
|
|
<el-table-column label="剂量" prop="matDose" width="110px" align="center">
|
|
<el-table-column label="剂量" prop="matDose" width="110px" align="center">
|
|
|
- <template slot-scope="scope" v-if="scope.row.matCode">
|
|
|
|
|
|
|
+ <template slot-scope="scope" v-if="scope.row.matCode || scope.row.invalid">
|
|
|
<el-input-number style="width: 100%;" v-model="scope.row.matDose" :min="0" :precision="2"
|
|
<el-input-number style="width: 100%;" v-model="scope.row.matDose" :min="0" :precision="2"
|
|
|
:controls="false"
|
|
:controls="false"
|
|
|
:disabled="saving" size="mini"
|
|
:disabled="saving" size="mini"
|
|
@@ -855,13 +883,13 @@ export default {
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
<el-table-column label="单位" prop="matUnitName" align="center"></el-table-column>
|
|
<el-table-column label="单位" prop="matUnitName" align="center"></el-table-column>
|
|
|
<el-table-column label="用法" prop="matUsageName" width="110px" align="center">
|
|
<el-table-column label="用法" prop="matUsageName" width="110px" align="center">
|
|
|
- <template slot-scope="scope" v-if="scope.row.matCode">
|
|
|
|
|
|
|
+ <template slot-scope="scope" v-if="scope.row.matCode || scope.row.invalid">
|
|
|
<el-input v-model="scope.row.matUsageName" :disabled="saving"
|
|
<el-input v-model="scope.row.matUsageName" :disabled="saving"
|
|
|
@input="updateMedicine(scope.row, scope.$index)"></el-input>
|
|
@input="updateMedicine(scope.row, scope.$index)"></el-input>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
<el-table-column label="标记" prop="drugMark" width="110px" align="center">
|
|
<el-table-column label="标记" prop="drugMark" width="110px" align="center">
|
|
|
- <template slot-scope="scope" v-if="scope.row.matCode">
|
|
|
|
|
|
|
+ <template slot-scope="scope" v-if="scope.row.matCode || scope.row.invalid">
|
|
|
<el-select v-model="scope.row.drugMark" placeholder="" clearable :disabled="saving">
|
|
<el-select v-model="scope.row.drugMark" placeholder="" clearable :disabled="saving">
|
|
|
<el-option v-for="item in drugMarkOptions" :key="item.dictValue"
|
|
<el-option v-for="item in drugMarkOptions" :key="item.dictValue"
|
|
|
:label="item.dictLabel" :value="item.dictValue"
|
|
:label="item.dictLabel" :value="item.dictValue"
|
|
@@ -1025,6 +1053,10 @@ export default {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ .replaceable {
|
|
|
|
|
+ color: #ff4949;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.el-input-number--medium {
|
|
.el-input-number--medium {
|