处方赋码相关界面调整

20240912_adapter_z
anthonywj 8 months ago
parent 3be141f636
commit b7d34809b9

@ -6,7 +6,7 @@ ENV = 'development'
# 开发环境
# VUE_APP_BASE_API = 'https://mudi.dsxyy.org/UDI_WMS_MC/'
VUE_APP_BASE_API = 'http://192.168.0.166:9991'
VUE_APP_BASE_API = 'http://127.0.0.1:9991'
VUE_APP_SYNC_API ="http://127.0.0.1:10001"
# 应用访问路径 例如使用前缀 /admin/

@ -6,7 +6,7 @@
"license": "MIT",
"scripts": {
"dev": "vue-cli-service serve",
"build:prod": "vue-cli-service build",
"build:prod": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
"build:test": "vue-cli-service build --mode test",
"preview": "node build/index.js --preview",
"lint": "eslint --ext .js,.vue src",

@ -41,6 +41,14 @@ export function bindWork(query) {
data: query
});
}
export function tagCode(query) {
return axios({
url: "/udiwms/ioSplit/material/prescribe/tagCode",
method: "post",
data: query
});
}

@ -36,10 +36,11 @@
<el-table-column label="序号" type="index" width="50"></el-table-column>
<el-table-column label="患者编号" prop="code" width="120"></el-table-column>
<el-table-column label="患者姓名" prop="name" width="120"></el-table-column>
<el-table-column label="性别" prop="createByName" width="120"></el-table-column>
<el-table-column label="性别" prop="gender" width="80"></el-table-column>
<el-table-column label="住院号" prop="adNum" width="120"></el-table-column>
<el-table-column label="职业" prop="gender" width="120"></el-table-column>
<el-table-column label="最后更新时间" prop="createTime" width="120"></el-table-column>
<el-table-column label="就诊卡号" prop="idNum" width="160"></el-table-column>
<el-table-column label="职业" prop="job" width="120"></el-table-column>
<el-table-column label="最后更新时间" prop="createTime" width="140"></el-table-column>
<el-table-column label="操作" width="160" fixed="right">
<template slot-scope="scope">
<el-button type="text" @click="showSickerInfo(scope.row)"></el-button>

@ -618,7 +618,6 @@ import {
submitCodes,
submitOrderWeb,
saveOrderWeb,
updateCodeBindSup,
enterCodeWeb, submitAllocateBiz, rollbackWaitcheck, submitCodeResult, submitCheckResult, delmitBiz,
} from "../../api/inout/order";
import {filterSubAll, findByFrom, findInvByUser} from "../../api/system/invSubWarehouse";
@ -640,7 +639,6 @@ import DialogSelectUnit from "./DialogSelectUnit";
import selectRlDialog from "./DialogSelectRl";
import DialogSelectSpace from "./DialogSelectSpace";
import {isBlank} from "@/utils/strUtil";
import {getDetailBizs} from "@/api/inout/orderDetailCode";
import {filterNoPage, page, remoteFilter} from "@/api/basic/sicker/skPersonApi";
import {selectSysParamByKey} from "@/api/param/systemParamConfig";
import dialogInvProduct from "@/views/inout/DialogSelectInvProduct";
@ -1745,6 +1743,7 @@ export default {
this.$refs.inputRef.focus();
this.$refs.inputRef.select();
this.isSuccess = true;
this.scanCode = ""
this.printCodeResult(response.data)
this.codeFormData.code = response.data.code;
this.addCode();
@ -1752,6 +1751,7 @@ export default {
if (response.code == 502) {
this.checkSuccess = false;
this.isSuccess = false;
this.scanCode = ""
this.printCodeResult(response.data)
this.codeFormData.code = response.data.code;
this.originCode = this.codeFormData.code;
@ -1761,6 +1761,7 @@ export default {
} else if (response.code == 503) {
this.checkSuccess = false;
this.isSuccess = false;
this.scanCode = ""
this.printCodeResult(response.data)
this.codeFormData.code = response.data.code;
this.$confirm(response.message, "提示", {
@ -1774,6 +1775,7 @@ export default {
this.codeFormData.code = response.data.code;
});
} else if (response.code == 508) {
this.scanCode = ""
this.originCode = "";
this.codeFormData.code = "01" + response.data.nameCode;
this.originCode = this.codeFormData.code;
@ -1905,8 +1907,6 @@ export default {
}
this.result = resultParts.join(" , ");
}
},
filters: {},
mounted() {

@ -788,7 +788,6 @@ export default {
flex-wrap: wrap;
width: 100%;
}
.query-form-item {
margin-right: 5px;
margin-bottom: 6px;

@ -2,13 +2,14 @@
<div>
<el-tabs type="border-card" style="margin: 15px">
<el-tab-pane label="按患者处方查询">
<el-tab-pane label="已完成赋码处方">
<prescribePanel
style="margin: -15px"
></prescribePanel>
</el-tab-pane>
<el-tab-pane label="扫码查询">
<codePanel
<codePanel style="margin: -15px"
></codePanel>
</el-tab-pane>
@ -23,6 +24,9 @@
import prescribePanel from "./prescribePanel";
import codePanel from "./codePanel";
/**
* 已完成处方
*/
export default {
name: "PrescribeTagCode",
components: {

@ -1,7 +1,7 @@
<template>
<div>
<el-card>
<el-form :model="query" label-width="auto" v-show="showSearch" size="mini" class="order-el-form">
<el-form :model="query" label-width="auto" v-show="showSearch" size="mini" class="query-form">
<el-row :gutter="20">
<el-col :span="8">
<el-form-item label="当前仓库:" class="query-form-item">
@ -222,5 +222,14 @@ export default {
</script>
<style scoped>
.query-form {
display: flex;
flex-wrap: wrap;
width: 100%;
}
.query-form-item {
margin-right: 5px;
margin-bottom: 6px;
}
</style>

@ -17,7 +17,6 @@
></el-input>
</el-form-item>
</el-col>
<template v-for="(item, index) in queryList">
<el-form-item v-if="item.columnType == 'input' && executeEval(row,item.expression,true)"
class="query-form-item"
@ -529,5 +528,14 @@ export default {
</script>
<style scoped>
.query-form {
display: flex;
flex-wrap: wrap;
width: 100%;
}
.query-form-item {
margin-right: 5px;
margin-bottom: 6px;
}
</style>

@ -100,7 +100,6 @@
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%;" border highlight-current-row
@row-click="(row) => executeFuc(row,'0',tableObj.handleChangeFuc)" ref="multipleTable"
:default-sort="defaultSort"
@ -202,7 +201,6 @@
</el-table-column>
</template>
</el-table>
<pagination
v-show="total>0"
:total="total"
@ -212,268 +210,23 @@
></pagination>
</el-card>
<el-tabs type="border-card" style="margin: 15px">
<el-tab-pane label="处方使用耗材明细">
<el-table v-loading="preDiLoading" :data="preDiDetailList" style="width: 100%" border>
<template v-for="(item, index) in tableHeader2">
<el-table-column
v-if="item.columnType == 'id' && executeEval(row,item.expression,true)"
type="index" :label="item.columnDesc"></el-table-column>
<el-table-column
v-if="item.columnType == 'selection'"
type="selection"
:width="item.width"
:selectable="(row,number) => executeFuc(row,'3',item.clickFuc)"
></el-table-column>
<el-table-column
v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{
item.lableRuleObj[scope.row[item.columnName]]
}}</span>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-tag
:type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])">
<span>{{
item.lableRuleObj ? item.lableRuleObj[scope.row[item.columnName]] : scope.row[item.columnName]
}}</span>
</el-tag>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'button' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:width="item.width"
:key="item.columnName"
fixed="right"
>
<template slot-scope="scope">
<el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj"
:type="buttonItem.type"
:size="buttonItem.size"
:style="buttonItem.style"
:key="buttonItem"
v-if="executeEval(scope.row,buttonItem.hasPermi,true)"
:disabled="executeEval(scope.row,buttonItem.disabledFuc,false)"
@click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)"
>{{ buttonItem.name }}
</el-button>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && !(item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{
scope.row[item.columnName]
}}</span>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && (item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{
convertDateFun(scope.row[item.columnName])
}}</span>
</template>
</el-table-column>
</template>
</el-table>
<pagination
v-show="preDiTotal>0"
:total="preDiTotal"
:limit.sync="preDiQuery.limit"
:page.sync="preDiQuery.page"
@pagination="preDiHandleCurrentChange"
></pagination>
<prescribeOriginDiPanel
v-if="panelALive"
:prescribeData="curRow"
></prescribeOriginDiPanel>
</el-tab-pane>
<el-tab-pane label="原始处方明细">
<el-table v-loading="preLoading" :data="preDetailList" style="width: 100%" border>
<template v-for="(item, index) in tableHeader1">
<el-table-column
v-if="item.columnType == 'id' && executeEval(row,item.expression,true)"
type="index" :label="item.columnDesc"></el-table-column>
<el-table-column
v-if="item.columnType == 'selection'"
type="selection"
:width="item.width"
:selectable="(row,number) => executeFuc(row,'3',item.clickFuc)"
></el-table-column>
<el-table-column
v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{
item.lableRuleObj[scope.row[item.columnName]]
}}</span>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-tag
:type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])">
<span>{{
item.lableRuleObj ? item.lableRuleObj[scope.row[item.columnName]] : scope.row[item.columnName]
}}</span>
</el-tag>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'button' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:width="item.width"
:key="item.columnName"
fixed="right"
>
<template slot-scope="scope">
<el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj"
:type="buttonItem.type"
:size="buttonItem.size"
:style="buttonItem.style"
:key="buttonItem"
v-if="executeEval(scope.row,buttonItem.hasPermi,true)"
:disabled="executeEval(scope.row,buttonItem.disabledFuc,false)"
@click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)"
>{{ buttonItem.name }}
</el-button>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && !(item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{
scope.row[item.columnName]
}}</span>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && (item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{
convertDateFun(scope.row[item.columnName])
}}</span>
</template>
</el-table-column>
</template>
</el-table>
<pagination
v-show="preTotal>0"
:total="preTotal"
:limit.sync="preQuery.limit"
:page.sync="preQuery.page"
@pagination="preHandleCurrentChange"
></pagination>
<prescribeOriginPanel
v-if="panelALive"
:prescribeData="curRow"
></prescribeOriginPanel>
</el-tab-pane>
</el-tabs>
<el-dialog
title="下载处方"
:visible.sync="downloadPrescriptionVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
v-if="downloadPrescriptionVisible"
width="65%"
append-to-body
>
<prescribeDownloadDialog
:closeDialog="this.closeDialog"
></prescribeDownloadDialog>
</el-dialog>
<el-dialog
title="下载处方"
title="绑定工位"
:visible.sync="bindWorkPlaceVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
@ -496,10 +249,10 @@ import addOrder from "@/views/inout/DialogCreateOrder";
import errOrder from "@/views/inout/IoCreateErrorOrder";
import {executeFuc, getHead} from "@/utils/customConfig";
import {convertDate} from "@/utils/date";
import {detail, page as prescribePage, deleteDataByCode} from "@/api/basic/sicker/prescribeApi";
import prescribeDownloadDialog from "@/views/inout/split/prescribeDownloadDialog";
import {page as prescribePage, deleteDataByCode} from "@/api/basic/sicker/prescribeApi";
import bindWorkDialog from "@/views/inout/split/bindWorkDialog";
import {skPrescribeDi} from "@/api/basic/sicker/skPersonApi";
import prescribeOriginPanel from "./prescribeOriginPanel";
import prescribeOriginDiPanel from "./prescribeOriginDiPanel";
export default {
name: "prescribePanel",
@ -535,7 +288,6 @@ export default {
loading: false,
list: [],
total: 0,
downloadPrescriptionVisible: false,
deleteData: {},
preLoading: false,
preDetailList: [],
@ -557,11 +309,13 @@ export default {
bindWorkPlaceVisible: false,
multiplePreSelection: [],
curRow: null,
panelALive: false,
}
},
components: {
addOrder, errOrder, prescribeDownloadDialog, bindWorkDialog
addOrder, errOrder, bindWorkDialog, prescribeOriginPanel, prescribeOriginDiPanel
},
methods: {
@ -595,9 +349,6 @@ export default {
this.actDateRange = [];
this.getList();
},
downloadPrescription() {
this.downloadPrescriptionVisible = true
},
bindWorkPlace() {
if (this.multiplePreSelection.length == 0) {
@ -635,53 +386,14 @@ export default {
},
prescribeClick(_this, row) {
this.getPrescribeDetail(_this, row)
this.getCodeDetail(_this, row)
_this.curRow = row;
_this.refreshCodesPanel(_this);
},
getPrescribeDetail(_this, row) {
if (row != null) {
_this.preQuery.page = 1
_this.preQuery.prescribeCode = row.code
}
_this.preLoading = true;
detail(_this.preQuery).then(res => {
_this.preLoading = false
if (res.code != 20000) {
_this.$message.error(res.message)
return
}
_this.preDetailList = res.data.items
_this.preLoading = false
}).catch(() => {
_this.preLoading = false
_this.$message.error("数据加载失败")
})
if (row != null) {
_this.preDiQuery.page = 1
_this.preDiQuery.prescribeCode = row.code
}
_this.preDiLoading = true;
skPrescribeDi(_this.preDiQuery).then(res => {
_this.preLoading = false
if (res.code != 20000) {
_this.$message.error(res.message)
return
}
_this.preDiDetailList = res.data.list
_this.preDiLoading = false
}).catch(() => {
_this.preDiLoading = false
_this.$message.error("数据加载失败")
})
},
preHandleCurrentChange(val) {
this.filterQuery.page = val.page;
this.getPrescribeDetail(this, null);
refreshCodesPanel(_this) {
_this.panelALive = false;
_this.$nextTick(() => {
_this.panelALive = true;
});
},
deleteDialog(_this, row) {
@ -734,28 +446,19 @@ export default {
this.fromList = re.data.fromList;
this.getList();
});
getHead("prescribeAllot-1", "1").then((re) => {
//
this.tableObj1 = re.data;
this.tableHeader1 = re.data.tableList;
this.queryList1 = re.data.queryList;
this.fromList1 = re.data.fromList;
});
getHead("prescribeAllot-2", "1").then((re) => {
//
this.tableObj2 = re.data;
this.tableHeader2 = re.data.tableList;
this.queryList2 = re.data.queryList;
this.fromList2 = re.data.fromList;
this.getList();
});
}
}
</script>
<style scoped>
.query-form {
display: flex;
flex-wrap: wrap;
width: 100%;
}
.query-form-item {
margin-right: 5px;
margin-bottom: 6px;
}
</style>

@ -1,22 +1,21 @@
<template>
<div>
<el-tabs type="border-card" style="margin: 15px">
<el-tabs type="border-card" style="margin: 15px ;">
<el-tab-pane label="处理中处方">
<allotPanel
style="margin: -10px"
:panelType="1"
></allotPanel>
</el-tab-pane>
<el-tab-pane label="异常处方">
<allotPanel
style="margin: -10px"
:panelType="2"
></allotPanel>
</el-tab-pane>
</el-tabs>
</div>
</template>

@ -210,280 +210,39 @@
<el-tabs type="border-card" style="margin: 15px">
<el-tab-pane label="处方使用耗材明细">
<el-table v-loading="preDiLoading" :data="preDiDetailList" style="width: 100%" border>
<template v-for="(item, index) in tableHeader2">
<el-table-column
v-if="item.columnType == 'id' && executeEval(row,item.expression,true)"
type="index" :label="item.columnDesc"></el-table-column>
<el-table-column
v-if="item.columnType == 'selection'"
type="selection"
:width="item.width"
:selectable="(row,number) => executeFuc(row,'3',item.clickFuc)"
></el-table-column>
<el-table-column
v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{
item.lableRuleObj[scope.row[item.columnName]]
}}</span>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-tag
:type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])">
<span>{{
item.lableRuleObj ? item.lableRuleObj[scope.row[item.columnName]] : scope.row[item.columnName]
}}</span>
</el-tag>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'button' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:width="item.width"
:key="item.columnName"
fixed="right"
>
<template slot-scope="scope">
<el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj"
:type="buttonItem.type"
:size="buttonItem.size"
:style="buttonItem.style"
:key="buttonItem"
v-if="executeEval(scope.row,buttonItem.hasPermi,true)"
:disabled="executeEval(scope.row,buttonItem.disabledFuc,false)"
@click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)"
>{{ buttonItem.name }}
</el-button>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && !(item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{
scope.row[item.columnName]
}}</span>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && (item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{
convertDateFun(scope.row[item.columnName])
}}</span>
</template>
</el-table-column>
</template>
</el-table>
<pagination
v-show="preDiTotal>0"
:total="preDiTotal"
:limit.sync="preDiQuery.limit"
:page.sync="preDiQuery.page"
@pagination="preDiHandleCurrentChange"
></pagination>
<prescribeOriginDiPanel
v-if="panelALive"
:prescribeData="curRow"
></prescribeOriginDiPanel>
</el-tab-pane>
<el-tab-pane label="原始处方明细">
<el-table v-loading="preLoading" :data="preDetailList" style="width: 100%" border>
<template v-for="(item, index) in tableHeader1">
<el-table-column
v-if="item.columnType == 'id' && executeEval(row,item.expression,true)"
type="index" :label="item.columnDesc"></el-table-column>
<el-table-column
v-if="item.columnType == 'selection'"
type="selection"
:width="item.width"
:selectable="(row,number) => executeFuc(row,'3',item.clickFuc)"
></el-table-column>
<el-table-column
v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{
item.lableRuleObj[scope.row[item.columnName]]
}}</span>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-tag
:type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])">
<span>{{
item.lableRuleObj ? item.lableRuleObj[scope.row[item.columnName]] : scope.row[item.columnName]
}}</span>
</el-tag>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'button' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:width="item.width"
:key="item.columnName"
fixed="right"
>
<template slot-scope="scope">
<el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj"
:type="buttonItem.type"
:size="buttonItem.size"
:style="buttonItem.style"
:key="buttonItem"
v-if="executeEval(scope.row,buttonItem.hasPermi,true)"
:disabled="executeEval(scope.row,buttonItem.disabledFuc,false)"
@click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)"
>{{ buttonItem.name }}
</el-button>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && !(item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{
scope.row[item.columnName]
}}</span>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && (item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{
convertDateFun(scope.row[item.columnName])
}}</span>
</template>
</el-table-column>
</template>
</el-table>
<pagination
v-show="preTotal>0"
:total="preTotal"
:limit.sync="preQuery.limit"
:page.sync="preQuery.page"
@pagination="preHandleCurrentChange"
></pagination>
<prescribeOriginPanel
v-if="panelALive"
:prescribeData="curRow"
></prescribeOriginPanel>
</el-tab-pane>
<el-tab-pane label="自动赋码明细">
<prescribeCodePanel
v-if="panelALive"
:prescribeData="curRow"
></prescribeCodePanel>
</el-tab-pane>
<el-tab-pane label="拆零赋码明细">
<prescribeCodePanel
v-if="panelALive"
:prescribeData="curRow"
:fifoSplit="1"
></prescribeCodePanel>
</el-tab-pane>
<el-tab-pane label="整取赋码明细">
<prescribeCodePanel
v-if="panelALive"
:prescribeData="curRow"
:fifoSplit="2"
></prescribeCodePanel>
</el-tab-pane>
</el-tabs>
<el-dialog
title="下载处方"
:visible.sync="downloadPrescriptionVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
v-if="downloadPrescriptionVisible"
width="65%"
append-to-body
>
<prescribeDownloadDialog
:closeDialog="this.closeDialog"
></prescribeDownloadDialog>
</el-dialog>
<el-dialog
title="下载处方"
:visible.sync="bindWorkPlaceVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
v-if="bindWorkPlaceVisible"
width="45%"
append-to-body
>
<bindWorkDialog
:prescribeList="this.multiplePreSelection"
:closeDialog="this.closeDialog"
></bindWorkDialog>
</el-dialog>
</div>
</template>
@ -492,10 +251,10 @@ import addOrder from "@/views/inout/DialogCreateOrder";
import errOrder from "@/views/inout/IoCreateErrorOrder";
import {executeFuc, getHead} from "@/utils/customConfig";
import {convertDate} from "@/utils/date";
import {detail, page as prescribePage, deleteDataByCode} from "@/api/basic/sicker/prescribeApi";
import prescribeDownloadDialog from "@/views/inout/split/prescribeDownloadDialog";
import bindWorkDialog from "@/views/inout/split/bindWorkDialog";
import {skPrescribeDi} from "@/api/basic/sicker/skPersonApi";
import {page as prescribePage, deleteDataByCode} from "@/api/basic/sicker/prescribeApi";
import prescribeCodePanel from "@/views/inout/split/prescribeCodePanel";
import prescribeOriginPanel from "@/views/inout/split/prescribeOriginPanel";
import prescribeOriginDiPanel from "@/views/inout/split/prescribeOriginDiPanel";
export default {
name: "prescribeAllotIngPanel",
@ -514,16 +273,6 @@ export default {
queryList: [],
tableObj: [],
fromList: [],
//
tableHeader1: [],
queryList1: [],
tableObj1: [],
fromList1: [],
//使
tableHeader2: [],
queryList2: [],
tableObj2: [],
fromList2: [],
convertDateFun: convertDate,
//-------------end
@ -537,7 +286,6 @@ export default {
loading: false,
list: [],
total: 0,
downloadPrescriptionVisible: false,
deleteData: {},
preLoading: false,
preDetailList: [],
@ -557,13 +305,14 @@ export default {
limit: 10,
},
bindWorkPlaceVisible: false,
curRow: null,
panelALive: false,
multiplePreSelection: [],
}
},
components: {
addOrder, errOrder, prescribeDownloadDialog, bindWorkDialog
addOrder, errOrder, prescribeOriginPanel, prescribeOriginDiPanel, prescribeCodePanel
},
methods: {
@ -607,7 +356,6 @@ export default {
return
}
this.bindWorkPlaceVisible = true;
},
closeDialog() {
@ -636,54 +384,16 @@ export default {
this.getList();
},
prescribeClick(_this, row) {
this.getPrescribeDetail(_this, row)
this.getCodeDetail(_this, row)
},
getPrescribeDetail(_this, row) {
if (row != null) {
_this.preQuery.page = 1
_this.preQuery.prescribeCode = row.code
}
_this.preLoading = true;
detail(_this.preQuery).then(res => {
_this.preLoading = false
if (res.code != 20000) {
_this.$message.error(res.message)
return
}
_this.preDetailList = res.data.items
_this.preLoading = false
}).catch(() => {
_this.preLoading = false
_this.$message.error("数据加载失败")
})
if (row != null) {
_this.preDiQuery.page = 1
_this.preDiQuery.prescribeCode = row.code
}
_this.preDiLoading = true;
skPrescribeDi(_this.preDiQuery).then(res => {
_this.preLoading = false
if (res.code != 20000) {
_this.$message.error(res.message)
return
}
_this.preDiDetailList = res.data.list
_this.preDiLoading = false
}).catch(() => {
_this.preDiLoading = false
_this.$message.error("数据加载失败")
})
prescribeClick(_this, row) {
_this.curRow = row;
_this.refreshCodesPanel(_this);
},
preHandleCurrentChange(val) {
this.filterQuery.page = val.page;
this.getPrescribeDetail(this, null);
refreshCodesPanel(_this) {
_this.panelALive = false;
_this.$nextTick(() => {
_this.panelALive = true;
});
},
deleteDialog(_this, row) {
@ -737,27 +447,20 @@ export default {
this.getList();
});
getHead("prescribeIng-1", "1").then((re) => {
//
this.tableObj1 = re.data;
this.tableHeader1 = re.data.tableList;
this.queryList1 = re.data.queryList;
this.fromList1 = re.data.fromList;
});
getHead("prescribeIng-2", "1").then((re) => {
//
this.tableObj2 = re.data;
this.tableHeader2 = re.data.tableList;
this.queryList2 = re.data.queryList;
this.fromList2 = re.data.fromList;
this.getList();
});
}
}
</script>
<style scoped>
.query-form {
display: flex;
flex-wrap: wrap;
width: 100%;
}
.query-form-item {
margin-right: 5px;
margin-bottom: 6px;
}
</style>

@ -0,0 +1,239 @@
<template>
<div>
<el-table v-loading="codeLoading" :data="codeDetailList" style="width: 100%" border>
<template v-for="(item, index) in tableHeader2">
<el-table-column
v-if="item.columnType == 'id' && executeEval(row,item.expression,true)"
type="index" :label="item.columnDesc"></el-table-column>
<el-table-column
v-if="item.columnType == 'selection'"
type="selection"
:width="item.width"
:selectable="(row,number) => executeFuc(row,'3',item.clickFuc)"
></el-table-column>
<el-table-column
v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{
item.lableRuleObj[scope.row[item.columnName]]
}}</span>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-tag
:type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])">
<span>{{
item.lableRuleObj ? item.lableRuleObj[scope.row[item.columnName]] : scope.row[item.columnName]
}}</span>
</el-tag>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'button' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:width="item.width"
:key="item.columnName"
fixed="right"
>
<template slot-scope="scope">
<el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj"
:type="buttonItem.type"
:size="buttonItem.size"
:style="buttonItem.style"
:key="buttonItem"
v-if="executeEval(scope.row,buttonItem.hasPermi,true)"
:disabled="executeEval(scope.row,buttonItem.disabledFuc,false)"
@click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)"
>{{ buttonItem.name }}
</el-button>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && !(item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{
scope.row[item.columnName]
}}</span>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && (item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{
convertDateFun(scope.row[item.columnName])
}}</span>
</template>
</el-table-column>
</template>
</el-table>
<pagination
v-show="codeTotal>0"
:total="codeTotal"
:limit.sync="codeQuery.limit"
:page.sync="codeQuery.page"
@pagination="codeHandleCurrentChange"
></pagination>
</div>
</template>
<script>
import {convertDate} from "@/utils/date";
import {executeFuc, getHead} from "@/utils/customConfig";
import {materialPrescribePage} from "@/api/inout/splitCode";
export default {
/**
* 处方赋码明细
*/
name: "prescribeCodePanel",
props: {
prescribeData: {
type: Object,
default: null,
required: true
},
//1:2:;
fifoSplit: {
type: Object,
default: null,
required: true
},
},
data() {
return {
//
//
tableHeader2: [],
queryList2: [],
tableObj2: [],
fromList2: [],
convertDateFun: convertDate,
//-------------end
codeLoading: false,
codeDetailList: [],
codeTotal: 0,
codeQuery: {
fifoSplit: null,
page: 1,
limit: 10,
},
}
},
methods: {
//------------
executeFuc(row, type, clickFuc, value) {
return executeFuc(this, row, type, clickFuc, value);
},
executeEval(row, expression, defaultRet) {
if (expression) {
return eval(expression);
}
return defaultRet;
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.query.sort = 'desc'
} else {
this.query.sort = 'asc'
}
this.query.orderBy = column.prop;
this.getList();
},
///------------end
getCodeDetail(_this) {
if (this.prescribeData == null)
return
if (this.prescribeData != null) {
_this.codeQuery.page = 1
_this.codeQuery.prescribeNum = this.prescribeData.code
}
_this.codeLoading = true;
_this.codeQuery.fifoSplit = this.fifoSplit
materialPrescribePage(_this.codeQuery).then(res => {
_this.codeLoading = false
if (res.code != 20000) {
_this.$message.error(res.message)
return
}
_this.codeDetailList = res.data.list
_this.codeLoading = false
}).catch(() => {
_this.codeLoading = false
_this.$message.error("数据加载失败")
})
},
codeHandleCurrentChange(val) {
this.filterQuery.page = val.page;
this.getCodeDetail(this, null);
},
},
created() {
getHead("prescribePanel-2", "1").then((re) => {
//
this.tableObj2 = re.data;
this.tableHeader2 = re.data.tableList;
this.queryList2 = re.data.queryList;
this.fromList2 = re.data.fromList;
this.getList();
});
}
}
</script>
<style scoped>
</style>

@ -211,133 +211,12 @@
></pagination>
</el-card>
<el-tabs type="border-card" style="margin: 15px">
<el-tab-pane label="原始处方明细">
<el-table v-loading="preLoading" :data="preDetailList" style="width: 100%" border>
<template v-for="(item, index) in tableHeader1">
<el-table-column
v-if="item.columnType == 'id' && executeEval(row,item.expression,true)"
type="index" :label="item.columnDesc"></el-table-column>
<el-table-column
v-if="item.columnType == 'selection'"
type="selection"
:width="item.width"
:selectable="(row,number) => executeFuc(row,'3',item.clickFuc)"
></el-table-column>
<el-table-column
v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{
item.lableRuleObj[scope.row[item.columnName]]
}}</span>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-tag
:type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])">
<span>{{
item.lableRuleObj ? item.lableRuleObj[scope.row[item.columnName]] : scope.row[item.columnName]
}}</span>
</el-tag>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'button' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:width="item.width"
:key="item.columnName"
fixed="right"
>
<template slot-scope="scope">
<el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj"
:type="buttonItem.type"
:size="buttonItem.size"
:style="buttonItem.style"
:key="buttonItem"
v-if="executeEval(scope.row,buttonItem.hasPermi,true)"
:disabled="executeEval(scope.row,buttonItem.disabledFuc,false)"
@click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)"
>{{ buttonItem.name }}
</el-button>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && !(item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{
scope.row[item.columnName]
}}</span>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && (item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{
convertDateFun(scope.row[item.columnName])
}}</span>
</template>
</el-table-column>
</template>
</el-table>
<pagination
v-show="preTotal>0"
:total="preTotal"
:limit.sync="preQuery.limit"
:page.sync="preQuery.page"
@pagination="preHandleCurrentChange"
></pagination>
<prescribeOriginPanel
v-if="panelALive"
:prescribeData="curRow"
></prescribeOriginPanel>
</el-tab-pane>
</el-tabs>
<el-dialog
@ -364,7 +243,7 @@ import {executeFuc, getHead} from "@/utils/customConfig";
import {convertDate} from "@/utils/date";
import {detail, page as prescribePage, deleteDataByCode} from "@/api/basic/sicker/prescribeApi";
import prescribeDownloadDialog from "@/views/inout/split/prescribeDownloadDialog";
import {skPrescribeDi} from "@/api/basic/sicker/skPersonApi";
import prescribeOriginPanel from "./prescribeOriginPanel";
export default {
name: "prescribePanel",
@ -406,13 +285,13 @@ export default {
page: 1,
limit: 10,
},
curRow: null,
panelALive: false,
}
},
components: {
addOrder, errOrder, prescribeDownloadDialog
addOrder, errOrder, prescribeDownloadDialog, prescribeOriginPanel
},
methods: {
@ -476,10 +355,15 @@ export default {
},
prescribeClick(_this, row) {
this.getPrescribeDetail(_this, row)
this.getCodeDetail(_this, row)
_this.curRow = row;
_this.refreshCodesPanel(_this);
},
refreshCodesPanel(_this) {
_this.panelALive = false;
_this.$nextTick(() => {
_this.panelALive = true;
});
},
getPrescribeDetail(_this, row) {
if (row != null) {
_this.preQuery.page = 1
@ -498,12 +382,8 @@ export default {
_this.preLoading = false
_this.$message.error("数据加载失败")
})
},
preHandleCurrentChange(val) {
this.filterQuery.page = val.page;
this.getPrescribeDetail(this, null);
@ -560,20 +440,20 @@ export default {
this.fromList = re.data.fromList;
this.getList();
});
getHead("prescribeDownload-1", "1").then((re) => {
//
this.tableObj1 = re.data;
this.tableHeader1 = re.data.tableList;
this.queryList1 = re.data.queryList;
this.fromList1 = re.data.fromList;
});
}
}
</script>
<style scoped>
.query-form {
display: flex;
flex-wrap: wrap;
width: 100%;
}
.query-form-item {
margin-right: 5px;
margin-bottom: 6px;
}
</style>

@ -0,0 +1,243 @@
<template>
<div>
<el-table v-loading="preLoading" :data="preDetailList" style="width: 100%" border :row-style="{ height: '32px' }">
<template v-for="(item, index) in tableHeader1">
<el-table-column
v-if="item.columnType == 'id' && executeEval(row,item.expression,true)"
type="index" :label="item.columnDesc"></el-table-column>
<el-table-column
v-if="item.columnType == 'selection'"
type="selection"
:width="item.width"
:selectable="(row,number) => executeFuc(row,'3',item.clickFuc)"
></el-table-column>
<el-table-column
v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{
item.lableRuleObj[scope.row[item.columnName]]
}}</span>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-tag
:type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])">
<span>{{
item.lableRuleObj ? item.lableRuleObj[scope.row[item.columnName]] : scope.row[item.columnName]
}}</span>
</el-tag>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'button' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:width="item.width"
:key="item.columnName"
fixed="right"
>
<template slot-scope="scope">
<el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj"
:type="buttonItem.type"
:size="buttonItem.size"
:style="buttonItem.style"
:key="buttonItem"
v-if="executeEval(scope.row,buttonItem.hasPermi,true)"
:disabled="executeEval(scope.row,buttonItem.disabledFuc,false)"
@click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)"
>{{ buttonItem.name }}
</el-button>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && !(item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{
scope.row[item.columnName]
}}</span>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && (item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{
convertDateFun(scope.row[item.columnName])
}}</span>
</template>
</el-table-column>
</template>
</el-table>
<pagination
v-show="preTotal>0"
:total="preTotal"
:limit.sync="preQuery.limit"
:page.sync="preQuery.page"
@pagination="preHandleCurrentChange"
></pagination>
</div>
</template>
<script>
import {convertDate} from "@/utils/date";
import {detail} from "@/api/basic/sicker/prescribeApi";
import {executeFuc, getHead} from "@/utils/customConfig";
import {skPrescribeDi} from "@/api/basic/sicker/skPersonApi";
/**
* 原始处方使用耗材明细
*/
export default {
name: "prescribeOriginDiPanel",
props: {
prescribeData: {
type: Object,
default: null,
required: true
},
//1:2:;
fifoSplit: {
type: Object,
default: null,
required: true
},
},
data() {
return {
//
//
tableHeader1: [],
queryList1: [],
tableObj1: [],
fromList1: [],
convertDateFun: convertDate,
preLoading: false,
preDetailList: [],
preTotal: 0,
preQuery: {
prescribeCode: null,
page: 1,
limit: 10,
},
}
},
methods: {
//-------------end
executeFuc(row, type, clickFuc, value) {
return executeFuc(this, row, type, clickFuc, value);
},
executeEval(row, expression, defaultRet) {
if (expression) {
return eval(expression);
}
return defaultRet;
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.query.sort = 'desc'
} else {
this.query.sort = 'asc'
}
this.query.orderBy = column.prop;
this.getList();
},
///------------end
preHandleCurrentChange(val) {
this.filterQuery.page = val.page;
this.getPrescribeDetail(this, null);
},
getPrescribeDetail(_this) {
if (_this.prescribeData == null)
return
if (_this.prescribeData != null) {
_this.preQuery.page = 1
_this.preQuery.prescribeCode = this.prescribeData.code
}
_this.preLoading = true;
skPrescribeDi(_this.preQuery).then(res => {
_this.preLoading = false
if (res.code != 20000) {
_this.$message.error(res.message)
return
}
_this.preDetailList = res.data.items
_this.preLoading = false
}).catch(() => {
_this.preLoading = false
_this.$message.error("数据加载失败")
})
},
},
created() {
getHead("prescribeOriginDiPanel", "1").then((re) => {
//
this.tableObj1 = re.data;
this.tableHeader1 = re.data.tableList;
this.queryList1 = re.data.queryList;
this.fromList1 = re.data.fromList;
this.getPrescribeDetail(this);
});
}
}
</script>
<style scoped>
</style>

@ -0,0 +1,239 @@
<template>
<div>
<el-table v-loading="preLoading" :data="preDetailList" style="width: 100%" border :row-style="{ height: '32px' }">
<template v-for="(item, index) in tableHeader1">
<el-table-column
v-if="item.columnType == 'id' && executeEval(row,item.expression,true)"
type="index" :label="item.columnDesc"></el-table-column>
<el-table-column
v-if="item.columnType == 'selection'"
type="selection"
:width="item.width"
:selectable="(row,number) => executeFuc(row,'3',item.clickFuc)"
></el-table-column>
<el-table-column
v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{
item.lableRuleObj[scope.row[item.columnName]]
}}</span>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-tag
:type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])">
<span>{{
item.lableRuleObj ? item.lableRuleObj[scope.row[item.columnName]] : scope.row[item.columnName]
}}</span>
</el-tag>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'button' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:width="item.width"
:key="item.columnName"
fixed="right"
>
<template slot-scope="scope">
<el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj"
:type="buttonItem.type"
:size="buttonItem.size"
:style="buttonItem.style"
:key="buttonItem"
v-if="executeEval(scope.row,buttonItem.hasPermi,true)"
:disabled="executeEval(scope.row,buttonItem.disabledFuc,false)"
@click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)"
>{{ buttonItem.name }}
</el-button>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && !(item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{
scope.row[item.columnName]
}}</span>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && (item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{
convertDateFun(scope.row[item.columnName])
}}</span>
</template>
</el-table-column>
</template>
</el-table>
<pagination
v-show="preTotal>0"
:total="preTotal"
:limit.sync="preQuery.limit"
:page.sync="preQuery.page"
@pagination="preHandleCurrentChange"
></pagination>
</div>
</template>
<script>
import {convertDate} from "@/utils/date";
import {detail} from "@/api/basic/sicker/prescribeApi";
import {executeFuc, getHead} from "@/utils/customConfig";
/**
* 原始处方明细
*/
export default {
name: "prescribeOriginPanel",
props: {
prescribeData: {
type: Object,
default: null,
required: true
},
//1:2:;
fifoSplit: {
type: Object,
default: null,
required: true
},
},
data() {
return {
//
//
tableHeader1: [],
queryList1: [],
tableObj1: [],
fromList1: [],
convertDateFun: convertDate,
preLoading: false,
preDetailList: [],
preTotal: 0,
preQuery: {
prescribeCode: null,
page: 1,
limit: 10,
},
}
},
methods: {
//-------------end
executeFuc(row, type, clickFuc, value) {
return executeFuc(this, row, type, clickFuc, value);
},
executeEval(row, expression, defaultRet) {
if (expression) {
return eval(expression);
}
return defaultRet;
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.query.sort = 'desc'
} else {
this.query.sort = 'asc'
}
this.query.orderBy = column.prop;
this.getList();
},
///------------end
preHandleCurrentChange(val) {
this.filterQuery.page = val.page;
this.getPrescribeDetail(this, null);
},
getPrescribeDetail(_this) {
if (_this.prescribeData == null)
return
if (_this.prescribeData != null) {
_this.preQuery.page = 1
_this.preQuery.prescribeCode = this.prescribeData.code
}
_this.preLoading = true;
detail(_this.preQuery).then(res => {
_this.preLoading = false
if (res.code != 20000) {
_this.$message.error(res.message)
return
}
_this.preDetailList = res.data.items
_this.preLoading = false
}).catch(() => {
_this.preLoading = false
_this.$message.error("数据加载失败")
})
},
},
created() {
getHead("prescribeOriginPanel", "1").then((re) => {
//
this.tableObj1 = re.data;
this.tableHeader1 = re.data.tableList;
this.queryList1 = re.data.queryList;
this.fromList1 = re.data.fromList;
this.getPrescribeDetail(this);
});
}
}
</script>
<style scoped>
</style>

@ -1,6 +1,5 @@
<template>
<div>
<el-card>
<el-form v-if="queryList && queryList.length > 0 && showSearch" :model="filterQuery" class="query-form"
size="mini" label-width="100px">
@ -97,7 +96,6 @@
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%;" border highlight-current-row
@row-click="(row) => executeFuc(row,'0',tableObj.handleChangeFuc)" ref="multipleTable"
:default-sort="defaultSort"
@ -209,251 +207,18 @@
</el-card>
<el-tabs type="border-card" style="margin: 15px">
<el-tab-pane label="处方明细">
<el-table v-loading="preLoading" :data="preDetailList" style="width: 100%" border>
<template v-for="(item, index) in tableHeader1">
<el-table-column
v-if="item.columnType == 'id' && executeEval(row,item.expression,true)"
type="index" :label="item.columnDesc"></el-table-column>
<el-table-column
v-if="item.columnType == 'selection'"
type="selection"
:width="item.width"
:selectable="(row,number) => executeFuc(row,'3',item.clickFuc)"
></el-table-column>
<el-table-column
v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{
item.lableRuleObj[scope.row[item.columnName]]
}}</span>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-tag
:type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])">
<span>{{
item.lableRuleObj ? item.lableRuleObj[scope.row[item.columnName]] : scope.row[item.columnName]
}}</span>
</el-tag>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'button' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:width="item.width"
:key="item.columnName"
fixed="right"
>
<template slot-scope="scope">
<el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj"
:type="buttonItem.type"
:size="buttonItem.size"
:style="buttonItem.style"
:key="buttonItem"
v-if="executeEval(scope.row,buttonItem.hasPermi,true)"
:disabled="executeEval(scope.row,buttonItem.disabledFuc,false)"
@click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)"
>{{ buttonItem.name }}
</el-button>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && !(item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{
scope.row[item.columnName]
}}</span>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && (item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{
convertDateFun(scope.row[item.columnName])
}}</span>
</template>
</el-table-column>
</template>
</el-table>
<pagination
v-show="preTotal>0"
:total="preTotal"
:limit.sync="preQuery.limit"
:page.sync="preQuery.page"
@pagination="preHandleCurrentChange"
></pagination>
<el-tab-pane label="原始处方明细">
<prescribeOriginPanel
v-if="panelALive"
:prescribeData="curRow"
></prescribeOriginPanel>
</el-tab-pane>
<el-tab-pane label="赋码明细">
<el-table v-loading="codeLoading" :data="codeDetailList" style="width: 100%" border>
<template v-for="(item, index) in tableHeader2">
<el-table-column
v-if="item.columnType == 'id' && executeEval(row,item.expression,true)"
type="index" :label="item.columnDesc"></el-table-column>
<el-table-column
v-if="item.columnType == 'selection'"
type="selection"
:width="item.width"
:selectable="(row,number) => executeFuc(row,'3',item.clickFuc)"
></el-table-column>
<el-table-column
v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{
item.lableRuleObj[scope.row[item.columnName]]
}}</span>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-tag
:type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])">
<span>{{
item.lableRuleObj ? item.lableRuleObj[scope.row[item.columnName]] : scope.row[item.columnName]
}}</span>
</el-tag>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'button' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:width="item.width"
:key="item.columnName"
fixed="right"
>
<template slot-scope="scope">
<el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj"
:type="buttonItem.type"
:size="buttonItem.size"
:style="buttonItem.style"
:key="buttonItem"
v-if="executeEval(scope.row,buttonItem.hasPermi,true)"
:disabled="executeEval(scope.row,buttonItem.disabledFuc,false)"
@click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)"
>{{ buttonItem.name }}
</el-button>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && !(item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{
scope.row[item.columnName]
}}</span>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && (item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{
convertDateFun(scope.row[item.columnName])
}}</span>
</template>
</el-table-column>
</template>
</el-table>
<pagination
v-show="codeTotal>0"
:total="codeTotal"
:limit.sync="codeQuery.limit"
:page.sync="codeQuery.page"
@pagination="codeHandleCurrentChange"
></pagination>
<el-tab-pane label="处方赋码明细">
<prescribeCodePanel
v-if="panelALive"
:prescribeData="curRow"
></prescribeCodePanel>
</el-tab-pane>
@ -467,11 +232,11 @@
import addOrder from "@/views/inout/DialogCreateOrder";
import errOrder from "@/views/inout/IoCreateErrorOrder";
import {executeFuc, getHead} from "@/utils/customConfig";
import store from "@/store";
import {filterOrder} from "@/api/inout/order";
import {convertDate} from "@/utils/date";
import {detail, page as prescribePage} from "@/api/basic/sicker/prescribeApi";
import {materialPrescribePage} from "@/api/inout/splitCode";
import prescribeCodePanel from "./prescribeCodePanel";
import prescribeOriginPanel from "@/views/inout/split/prescribeOriginPanel";
export default {
name: "prescribePanel",
@ -489,11 +254,7 @@ export default {
queryList1: [],
tableObj1: [],
fromList1: [],
//
tableHeader2: [],
queryList2: [],
tableObj2: [],
fromList2: [],
convertDateFun: convertDate,
//-------------end
@ -508,7 +269,6 @@ export default {
list: [],
total: 0,
preLoading: false,
preDetailList: [],
preTotal: 0,
@ -517,18 +277,15 @@ export default {
page: 1,
limit: 10,
},
codeLoading: false,
codeDetailList: [],
codeTotal: 0,
codeQuery: {
page: 1,
limit: 10,
},
curRow: null,
panelALive: false,
}
},
components: {
addOrder, errOrder
addOrder, errOrder, prescribeCodePanel, prescribeOriginPanel
},
methods: {
@ -585,50 +342,14 @@ export default {
},
prescribeClick(_this, row) {
this.getPrescribeDetail(_this, row)
this.getCodeDetail(_this, row)
},
getPrescribeDetail(_this, row) {
if (row != null) {
_this.preQuery.page = 1
_this.preQuery.prescribeCode = row.code
}
_this.preLoading = true;
detail(_this.preQuery).then(res => {
_this.preLoading = false
if (res.code != 20000) {
_this.$message.error(res.message)
return
}
_this.preDetailList = res.data.items
_this.preLoading = false
}).catch(() => {
_this.preLoading = false
_this.$message.error("数据加载失败")
})
_this.curRow = row;
_this.refreshCodesPanel(_this);
},
getCodeDetail(_this, row) {
if (row != null) {
_this.codeQuery.page = 1
_this.codeQuery.prescribeNum = row.code
}
_this.codeLoading = true;
materialPrescribePage(_this.codeQuery).then(res => {
_this.codeLoading = false
if (res.code != 20000) {
_this.$message.error(res.message)
return
}
_this.codeDetailList = res.data.list
_this.codeLoading = false
}).catch(() => {
_this.codeLoading = false
_this.$message.error("数据加载失败")
})
refreshCodesPanel(_this) {
_this.panelALive = false;
_this.$nextTick(() => {
_this.panelALive = true;
});
},
@ -638,12 +359,6 @@ export default {
},
codeHandleCurrentChange(val) {
this.filterQuery.page = val.page;
this.getCodeDetail(this, null);
},
},
created() {
getHead("prescribePanel", "1").then((re) => {
@ -655,28 +370,20 @@ export default {
this.getList();
});
getHead("prescribePanel-1", "1").then((re) => {
//
this.tableObj1 = re.data;
this.tableHeader1 = re.data.tableList;
this.queryList1 = re.data.queryList;
this.fromList1 = re.data.fromList;
this.getList();
});
getHead("prescribePanel-2", "1").then((re) => {
//
this.tableObj2 = re.data;
this.tableHeader2 = re.data.tableList;
this.queryList2 = re.data.queryList;
this.fromList2 = re.data.fromList;
this.getList();
});
}
}
</script>
<style scoped>
.query-form {
display: flex;
flex-wrap: wrap;
width: 100%;
}
.query-form-item {
margin-right: 5px;
margin-bottom: 6px;
}
</style>

@ -105,156 +105,186 @@
</el-form-item>
</el-col>
</el-row>
</el-card>
<el-card>
<el-row :gutter="0">
<el-col :span="20">
<el-form-item prop="code" label="扫码关联:">
<el-input
id="inputer"
@focus="getInputFocus($event)"
@keypress.enter.native="enterKey($event)"
ref="inputRef"
style="ime-mode: disabled"
type="tel"
v-model="filterQuery.code"
></el-input>
</el-form-item>
</el-col>
<el-col :span="2">
<el-button
type="primary"
size="mini"
@click.native.stop="addCode()"
style="margin-left: 15px"
>添加
</el-button>
</el-col>
</el-row>
<el-table v-loading="loading" :data="list" style="width: 100%" border>
<template v-for="(item, index) in tableHeader">
<el-table-column
v-if="item.columnType == 'id' && executeEval(row,item.expression,true)"
type="index" :label="item.columnDesc"></el-table-column>
<el-table-column
v-if="item.columnType == 'selection'"
type="selection"
:width="item.width"
:selectable="(row,number) => executeFuc(row,'3',item.clickFuc)"
></el-table-column>
<el-table-column
v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-tabs type="border-card" style="margin: 15px">
<el-tab-pane label="手动扫码">
<el-row :gutter="0">
<el-col :span="20">
<el-form-item prop="code" label="扫码关联:">
<el-input
id="inputer"
@focus="getInputFocus($event)"
@keypress.enter.native="enterKey($event)"
ref="inputRef"
style="ime-mode: disabled"
type="tel"
placeholder="请点击输入框进行扫码设置或者扫码录入"
v-model="scanCode"
></el-input>
</el-form-item>
</el-col>
<el-col :span="2">
<el-button
type="primary"
size="mini"
@click.native.stop="addCode()"
style="margin-left: 15px"
>添加
</el-button>
</el-col>
</el-row>
<div class="result-display" :class="{'result-success': isSuccess, 'result-failure': !isSuccess}">
<p class="result-text" :class="{'result-text-success': isSuccess, 'result-text-failure': !isSuccess}">{{
result
}}</p>
</div>
<el-table v-loading="loading" :data="list" style="width: 100%" border>
<template v-for="(item, index) in tableHeader">
<el-table-column
v-if="item.columnType == 'id' && executeEval(row,item.expression,true)"
type="index" :label="item.columnDesc"></el-table-column>
<el-table-column
v-if="item.columnType == 'selection'"
type="selection"
:width="item.width"
:selectable="(row,number) => executeFuc(row,'3',item.clickFuc)"
></el-table-column>
<el-table-column
v-if="item.columnType == 'radio' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-radio :label="scope.row.id" v-model="radioCheck"><span></span></el-radio>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'laber' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item.lableRuleObj[scope.row[item.columnName]])}">{{
item.lableRuleObj[scope.row[item.columnName]]
}}</span>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-tag
:type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])">
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'eltag' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<el-tag
:type="executeFuc(scope.row,'4',item,item.lableRuleObj?item.lableRuleObj[scope.row[item.columnName]]:scope.row[item.columnName])">
<span>{{
item.lableRuleObj ? item.lableRuleObj[scope.row[item.columnName]] : scope.row[item.columnName]
}}</span>
</el-tag>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'button' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:width="item.width"
:key="item.columnName"
fixed="right"
>
<template slot-scope="scope">
<el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj"
:type="buttonItem.type"
:size="buttonItem.size"
:style="buttonItem.style"
:key="buttonItem"
v-if="executeEval(scope.row,buttonItem.hasPermi,true)"
:disabled="executeEval(scope.row,buttonItem.disabledFuc,false)"
@click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)"
>{{ buttonItem.name }}
</el-button>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && !(item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
</el-tag>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'button' && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:width="item.width"
:key="item.columnName"
fixed="right"
>
<template slot-scope="scope">
<el-button v-for="(buttonItem, buttonIndex) in item.buttonRulObj"
:type="buttonItem.type"
:size="buttonItem.size"
:style="buttonItem.style"
:key="buttonItem"
v-if="executeEval(scope.row,buttonItem.hasPermi,true)"
:disabled="executeEval(scope.row,buttonItem.disabledFuc,false)"
@click.native.stop="executeFuc(scope.row,'1',buttonItem.clickFuc)"
>{{ buttonItem.name }}
</el-button>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && !(item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{
scope.row[item.columnName]
}}</span>
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && (item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
</template>
</el-table-column>
<el-table-column
v-if="item.columnType == 'text' && (item.columnName == 'productDate' || item.columnName == 'expireDate') && executeEval(row,item.expression,true)"
:prop="item.columnName"
:label="item.columnDesc"
:sortable="item.sort"
:width="item.width"
:show-overflow-tooltip="item.tooltip"
:key="item.columnName"
>
<template slot-scope="scope">
<span :style="{color: executeFuc(scope.row,'4',item,scope.row[item.columnName])}">{{
convertDateFun(scope.row[item.columnName])
}}</span>
</template>
</el-table-column>
</template>
</el-table>
<pagination
v-show="total>0"
:total="total"
:limit.sync="filterQuery.limit"
:page.sync="filterQuery.page"
@pagination="codeHandleCurrentChange"
></pagination>
</template>
</el-table-column>
</template>
</el-table>
</el-card>
<pagination
v-show="total>0"
:total="total"
:limit.sync="filterQuery.limit"
:page.sync="filterQuery.page"
@pagination="codeHandleCurrentChange"
></pagination>
</el-tab-pane>
<el-tab-pane label="自动赋码明细">
<prescribeCodePanel
:prescribeData="curRow"
></prescribeCodePanel>
</el-tab-pane>
<el-tab-pane label="拆零赋码明细">
<prescribeCodePanel
:prescribeData="curRow"
:fifoSplit="1"
></prescribeCodePanel>
</el-tab-pane>
<el-tab-pane label="整取赋码明细">
<prescribeCodePanel
:prescribeData="curRow"
:fifoSplit="2"
></prescribeCodePanel>
</el-tab-pane>
</el-tabs>
<el-dialog
@ -281,14 +311,18 @@ import errOrder from "@/views/inout/IoCreateErrorOrder";
import {executeFuc, getHead} from "@/utils/customConfig";
import {convertDate} from "@/utils/date";
import {materialPrescribePage} from "@/api/inout/splitCode";
import {detail, page as prescribePage} from "@/api/basic/sicker/prescribeApi";
import {detail, page as prescribePage, tagCode} from "@/api/basic/sicker/prescribeApi";
import selectPrescribeDialog from "@/views/inout/split/selectPrescribeDialog";
import prescribeCodePanel from "./prescribeCodePanel";
import {enterCodeWeb} from "@/api/inout/order";
export default {
/**
* 处理处方
*/
name: "prescribeTagCodeDeal",
data() {
return {
//
//
loading: false,
@ -309,14 +343,21 @@ export default {
total: 0,
defaultSort: {prop: 'createTime', order: 'desc'},
formData: {},
selectPrescriptionVisible: false,
curRow: null,
//
scanCode: "",
isSuccess: false,
result: "扫码解析结果:",
originCode: "",
checkSuccess: false,
}
},
components: {
addOrder, errOrder, selectPrescribeDialog
addOrder, errOrder, selectPrescribeDialog, prescribeCodePanel
},
methods: {
@ -373,6 +414,7 @@ export default {
},
prescribeClick(_this, row) {
this.curRow = row;
this.getPrescribeDetail(_this, row)
this.getCodeDetail(_this, row)
},
@ -434,12 +476,77 @@ export default {
event.currentTarget.select();
},
enterKey(event) {
enterKey() {
this.checkSuccess = true;
this.filterQuery.code = this.scanCode;
let tQuery = {
originCode: this.originCode,
code: this.filterQuery.code.trim(),
};
enterCodeWeb(tQuery).then((response) => {
if (response.code === 20000) {
this.$refs.inputRef.focus();
this.$refs.inputRef.select();
this.isSuccess = true;
this.printCodeResult(response.data)
this.filterQuery.code = response.data.code;
this.addCode();
} else {
if (response.code == 502) {
this.checkSuccess = false;
this.isSuccess = false;
this.printCodeResult(response.data)
this.filterQuery.code = response.data.code;
this.originCode = this.filterQuery.code;
} else if (response.code == 501) {
this.checkSuccess = false;
this.$message.error(response.message);
} else if (response.code == 503) {
this.checkSuccess = false;
this.isSuccess = false;
this.printCodeResult(response.data)
this.filterQuery.code = response.data.code;
this.$confirm(response.message, "提示", {
type: "warning",
})
.then(() => {
this.filterQuery.code = response.data.code;
this.addCode();
})
.catch(() => {
this.filterQuery.code = response.data.code;
});
} else if (response.code == 508) {
this.originCode = "";
this.filterQuery.code = "01" + response.data.nameCode;
this.originCode = this.filterQuery.code;
} else {
this.$alert(response.message, "提示", {
confirmButtonText: "确定",
type: "warning",
closeOnClickModal: true,
callback: (action) => {
this.$refs.inputRef.focus();
this.$refs.inputRef.select();
},
});
}
}
this.loading = false;
});
},
addCode() {
let tagQuery = {
prescribeNum: this.formData.code,
code: this.filterQuery.code.trim(),
};
tagCode(tagQuery).then(res => {
this.loading = false
this.getList()
}).catch(() => {
this.loading = false
})
},
selectPrescribe() {
@ -453,6 +560,26 @@ export default {
confirmSelect(row) {
this.selectPrescriptionVisible = false;
this.formData = row;
},
printCodeResult(data, isSuccess) {
const resultParts = ["扫码解析结果:" + data.code];
if (data.udi) {
resultParts.push("DI标识: " + data.udi);
}
if (data.batchNo) {
resultParts.push("批次号: " + data.batchNo);
}
if (data.produceDate) {
resultParts.push("生产日期: " + data.produceDate);
}
if (data.expireDate) {
resultParts.push("失效日期: " + data.expireDate);
}
if (data.serialNo) {
resultParts.push("序列号: " + data.serialNo);
}
this.result = resultParts.join(" , ");
}
},
created() {
@ -474,4 +601,38 @@ export default {
margin-top: -5px;
margin-bottom: -5px;
}
.result-display {
border: 2px solid #ccc; /* 默认外框颜色 */
border-radius: 10px;
margin-bottom: 5px;
margin-left: 15px;
margin-right: 25px;
padding-left: 25px;
/* 不设置背景颜色 */
}
.result-success {
border-color: #4CAF50; /* 成功时外框颜色 */
}
.result-failure {
border-color: #0080ff; /* 失败时外框颜色 */
}
.result-text {
height: 18px;
/* 你可以在这里设置默认的文本颜色或其他样式 */
}
.result-text-success {
color: #4CAF50; /* 成功时文本颜色 */
font-size: 14px;
}
.result-text-failure {
color: #0080ff; /* 失败时文本颜色 */
font-size: 14px;
}
</style>

Loading…
Cancel
Save