处方赋码相关修改

20240912_adapter_z
anthonywj 11 months ago
parent 4582bed984
commit 3be141f636

@ -9,7 +9,9 @@
"build:prod": "vue-cli-service build", "build:prod": "vue-cli-service build",
"build:test": "vue-cli-service build --mode test", "build:test": "vue-cli-service build --mode test",
"preview": "node build/index.js --preview", "preview": "node build/index.js --preview",
"lint": "eslint --ext .js,.vue src" "lint": "eslint --ext .js,.vue src",
"server": "SET NODE_OPTIONS=--openssl-legacy-provider && webpack-dev-server --env.server --env.develop --inline --max-old-space-size=3000",
"dev": "set NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --open"
}, },
"husky": { "husky": {
"hooks": { "hooks": {

@ -48,6 +48,15 @@ export function createWorkplaceId(query) {
data: query data: query
}); });
} }
export function printWorkLabel(query) {
return axios({
url: "/udiwms/sysWorkplace/label/print",
method: "post",
data: query,
headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'},
responseType: 'arraybuffer', //一定要设置响应类型否则页面会是空白pdf
});
}

@ -27,3 +27,13 @@ export function splitFifoPage(query) {
} }
export function splitFifoDetail(query) {
return axios({
url: "/udiwms/ioSplit/code/filter",
method: "get",
params: query
});
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

@ -694,6 +694,23 @@
</el-col> </el-col>
</el-row> </el-row>
<el-divider></el-divider> <el-divider></el-divider>
<el-row>
<el-col span="5">
<span class="sptext">是否拆零</span>
</el-col>
<el-divider direction="vertical"></el-divider>
<el-col span="5">
<el-select v-model="editQuery.splitEnable" style="width: 65%" placeholder="是否拆零" clearable>
<el-option label="是" :value="true"></el-option>
<el-option label="否" :value="false"></el-option>
</el-select>
</el-col>
<el-divider direction="vertical"></el-divider>
<el-col span="13">
<span class="sptext">是否拆零</span>
</el-col>
</el-row>
<el-divider></el-divider>
<el-row> <el-row>
<el-col span="5"> <el-col span="5">
<span class="sptext">使用周期</span> <span class="sptext">使用周期</span>
@ -789,7 +806,14 @@
</template> </template>
<script> <script>
import {getYbHcflDetail,disableUdi, removeDiRl, removeRl, thirdSysDetail, updatetSingleUdiInfo} from "@/api/basic/product/udiRelevance"; import {
getYbHcflDetail,
disableUdi,
removeDiRl,
removeRl,
thirdSysDetail,
updatetSingleUdiInfo
} from "@/api/basic/product/udiRelevance";
import {isBlank} from "@/utils/strUtil"; import {isBlank} from "@/utils/strUtil";
import {filterByUuid} from "@/api/basic/product/udiInfo"; import {filterByUuid} from "@/api/basic/product/udiInfo";
import ProductSingleEdit from "@/views/basic/product/productSingleEdit"; import ProductSingleEdit from "@/views/basic/product/productSingleEdit";

@ -46,8 +46,15 @@
<el-table-column label="所属仓库" prop="invName" width="90"></el-table-column> <el-table-column label="所属仓库" prop="invName" width="90"></el-table-column>
<el-table-column label="创建时间" prop="createTime" width="90"></el-table-column> <el-table-column label="创建时间" prop="createTime" width="90"></el-table-column>
<el-table-column label="备注" prop="remake" width="90"></el-table-column> <el-table-column label="备注" prop="remake" width="90"></el-table-column>
<el-table-column label="操作" fixed="right" width="100"> <el-table-column label="操作" fixed="right" width="120">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button
type="text"
size="small"
@click.native.stop="printLabel(scope.row)"
>打印
</el-button>
<el-button <el-button
type="text" type="text"
size="small" size="small"
@ -137,7 +144,7 @@ import {
addWorkplace, addWorkplace,
updateWorkplace, updateWorkplace,
deleteWorkplace, deleteWorkplace,
createWorkplaceId createWorkplaceId, printWorkLabel
} from '@/api/basic/sysWorkplaceManage' } from '@/api/basic/sysWorkplaceManage'
@ -280,6 +287,20 @@ export default {
}).catch(() => { }).catch(() => {
}) })
},
printLabel(row) {
row.labelId = 5;
printWorkLabel(row).then((response) => {
const binaryData = [];
binaryData.push(response);
let url = window.URL.createObjectURL(
new Blob(binaryData, {type: "application/pdf"})
);
this.loading = false;
window.open(url);
}).catch(() => {
this.loading = false;
});
} }
}, },
created() { created() {

@ -1,6 +1,39 @@
<template> <template>
<div> <div>
<el-card style="margin: 5px;"> <el-card style="margin: 5px;margin-top: -15px">
<div v-if="showSearch && splitBusType!=null">
<el-divider style="margin-top: 60px">
<p style="font-weight: bold">扫码快捷设置</p>
</el-divider>
<el-row justify="center">
<el-col :span="4" style="text-align: center;">
<div>
<img src="@/assets/images/fifoSplit1.png" alt="二维码" style="width: 80px; height: 80px;">
<p style="margin-top: 5px;font-weight: bold">拆零上货</p>
</div>
</el-col>
<el-col :span="4" style="text-align: center;">
<div>
<img src="@/assets/images/fifoSplit2.png" alt="二维码" style="width: 80px; height: 80px;">
<p style="margin-top: 5px;font-weight: bold">整取上货</p>
</div>
</el-col>
<el-col :span="4" style="text-align: center;">
<div>
<img src="@/assets/images/splitOut.png" alt="二维码" style="width: 80px; height: 80px;">
<p style="margin-top: 5px;font-weight: bold">工位上货</p>
</div>
</el-col>
<el-col :span="4" style="text-align: center;">
<div>
<img src="@/assets/images/splitIn.png" alt="二维码" style="width: 80px; height: 80px;">
<p style="margin-top: 5px;font-weight: bold">工位退货</p>
</div>
</el-col>
</el-row>
<el-divider>
</el-divider>
</div>
<el-form <el-form
:model="orderFormData" :model="orderFormData"
:rules="formRules" :rules="formRules"
@ -12,6 +45,7 @@
<el-button-group <el-button-group
style="display: flex; margin: 0px 0 15px 0; height: 35px;float: right" style="display: flex; margin: 0px 0 15px 0; height: 35px;float: right"
> >
<el-button icon="el-icon-view" @click="hideSearch">/</el-button>
<el-button <el-button
size="mini" size="mini"
type="primary" type="primary"
@ -90,7 +124,7 @@
</el-col> </el-col>
<el-col :span="11" v-if="splitBusType!=null"> <el-col :span="11" v-if="splitBusType!=null">
<el-form-item prop="invCode" label="当前工位:"> <el-form-item prop="workPlaceCode" label="当前工位:">
<el-select <el-select
v-model="orderFormData.workPlaceCode" v-model="orderFormData.workPlaceCode"
placeholder="当前工位" placeholder="当前工位"
@ -113,6 +147,15 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="11" v-if="splitBusType!=null">
<el-form-item prop="fifoSplit" label="上货方式:">
<el-select v-model="orderFormData.fifoSplit" placeholder="请选择出入库类型" style="width: 90%">
<el-option label="拆零上货" :value="1"></el-option>
<el-option label="整取上货" :value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="11" v-if="!splitBusType"> <el-col :span="11" v-if="!splitBusType">
<el-form-item prop="action" label="单据类型:"> <el-form-item prop="action" label="单据类型:">
<el-select <el-select
@ -324,31 +367,6 @@
</el-row> </el-row>
<el-row v-if="preSpaceShow"> <el-row v-if="preSpaceShow">
<!-- <el-col :span="11">-->
<!-- <el-form-item prop="checkPreInInvCode" label="预验收仓库:">-->
<!-- <el-select-->
<!-- v-model="orderFormData.checkPreInInvCode"-->
<!-- placeholder="预验收仓库"-->
<!-- style="width: 90%"-->
<!-- :disabled="corpOrderIdDisabled"-->
<!-- @change="changePreInInv"-->
<!-- filterable-->
<!-- >-->
<!-- <el-option-->
<!-- v-for="item in curPreInInvOptions"-->
<!-- :key="item.name"-->
<!-- :label="item.name"-->
<!-- :value="item.code"-->
<!-- >-->
<!-- <span style="float: left">{{ item.name }}</span>-->
<!-- <span style="float: right; color: #8492a6; font-size: 13px">{{-->
<!-- item.code-->
<!-- }}</span>-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<el-col :span="11"> <el-col :span="11">
<el-form-item prop="preCurSpaceCode" label="寄售出库货位:"> <el-form-item prop="preCurSpaceCode" label="寄售出库货位:">
<el-select <el-select
@ -382,7 +400,7 @@
</el-row> </el-row>
<el-row v-if="viewType != 1"> <el-row v-if="viewType != 1">
<el-col :span="20"> <el-col :span="20">
<el-form-item prop="code" label="扫码录入校验:"> <el-form-item prop="code" label="扫码录入:">
<el-input <el-input
id="inputer" id="inputer"
@focus="getInputFocus($event)" @focus="getInputFocus($event)"
@ -390,7 +408,8 @@
ref="inputRef" ref="inputRef"
style="ime-mode: disabled" style="ime-mode: disabled"
type="tel" type="tel"
v-model="codeFormData.code" placeholder="请点击输入框进行扫码设置或者扫码录入"
v-model="scanCode"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -400,7 +419,7 @@
size="mini" size="mini"
@click.native.stop="addCode()" @click.native.stop="addCode()"
style="margin-left: 15px" style="margin-left: 15px"
>扫码添加 >添加
</el-button> </el-button>
<el-button <el-button
type="primary" type="primary"
@ -412,6 +431,13 @@
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<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-card> </el-card>
<el-tabs type="border-card" style="margin: 5px"> <el-tabs type="border-card" style="margin: 5px">
@ -658,6 +684,12 @@ export default {
required: true, required: true,
}, },
dialogTitle: {//
type: Object,
required: true,
},
}, },
data() { data() {
return { return {
@ -682,6 +714,7 @@ export default {
preCurSpaceCode: null, // preCurSpaceCode: null, //
sickerAdNum: null, sickerAdNum: null,
workPlaceCode: null, workPlaceCode: null,
fifoSplit: 1,
}, },
detailList: [], detailList: [],
@ -799,6 +832,10 @@ export default {
invQueryData: { invQueryData: {
invCode: null, invCode: null,
}, },
showSearch: false,
scanCode: "",
isSuccess: false,
result: "扫码解析结果:"
}; };
}, },
components: { components: {
@ -858,6 +895,8 @@ export default {
this.orderFormData.preCurSpaceCode = false; this.orderFormData.preCurSpaceCode = false;
this.getBusTypeByInv(); this.getBusTypeByInv();
this.findCurSpaceList(row); this.findCurSpaceList(row);
this.orderFormData.workPlaceCode = null
this.findCurWorkPlaces();
}, },
//, //,
@ -1276,7 +1315,7 @@ export default {
parseTime(date, "{y}{m}{d}{h}{i}{s}") + parseTime(date, "{y}{m}{d}{h}{i}{s}") +
Math.ceil(Math.random() * 89 + 10); Math.ceil(Math.random() * 89 + 10);
} }
this.codeFormData.code = this.codeFormData.code.trim(); this.codeFormData.code = this.scanCode.trim();
if (this.$isBlank(this.codeFormData.code)) return; if (this.$isBlank(this.codeFormData.code)) return;
this.loading = true; this.loading = true;
let tQuery = Object.assign( let tQuery = Object.assign(
@ -1484,7 +1523,9 @@ export default {
.catch(() => { .catch(() => {
}); });
}, },
hideSearch() {
this.showSearch = !this.showSearch;
},
submitCheckDialog() { submitCheckDialog() {
this.checkTipDialogVisible = true; this.checkTipDialogVisible = true;
@ -1692,6 +1733,9 @@ export default {
}, },
enterKey(event) { enterKey(event) {
this.checkSuccess = true; this.checkSuccess = true;
if (this.getDMHotskeyValue(this.scanCode))
return
this.codeFormData.code = this.scanCode;
let tQuery = { let tQuery = {
originCode: this.originCode, originCode: this.originCode,
code: this.codeFormData.code.trim(), code: this.codeFormData.code.trim(),
@ -1700,28 +1744,34 @@ export default {
if (response.code === 20000) { if (response.code === 20000) {
this.$refs.inputRef.focus(); this.$refs.inputRef.focus();
this.$refs.inputRef.select(); this.$refs.inputRef.select();
this.codeFormData.code = response.data; this.isSuccess = true;
this.printCodeResult(response.data)
this.codeFormData.code = response.data.code;
this.addCode(); this.addCode();
} else { } else {
if (response.code == 502) { if (response.code == 502) {
this.checkSuccess = false; this.checkSuccess = false;
this.codeFormData.code = response.data; this.isSuccess = false;
this.printCodeResult(response.data)
this.codeFormData.code = response.data.code;
this.originCode = this.codeFormData.code; this.originCode = this.codeFormData.code;
} else if (response.code == 501) { } else if (response.code == 501) {
this.checkSuccess = false; this.checkSuccess = false;
this.$message.error(response.message); this.$message.error(response.message);
} else if (response.code == 503) { } else if (response.code == 503) {
this.checkSuccess = false; this.checkSuccess = false;
this.codeFormData.code = response.data; this.isSuccess = false;
this.printCodeResult(response.data)
this.codeFormData.code = response.data.code;
this.$confirm(response.message, "提示", { this.$confirm(response.message, "提示", {
type: "warning", type: "warning",
}) })
.then(() => { .then(() => {
this.codeFormData.code = response.data; this.codeFormData.code = response.data.code;
this.addCode(); this.addCode();
}) })
.catch(() => { .catch(() => {
this.codeFormData.code = this.originCode; this.codeFormData.code = response.data.code;
}); });
} else if (response.code == 508) { } else if (response.code == 508) {
this.originCode = ""; this.originCode = "";
@ -1810,6 +1860,50 @@ export default {
} }
} }
}); });
},
getDMHotskeyValue(str) {
console.log(str)
if (str.includes("DMHotskey")) {
try {
const jsonObj = JSON.parse(str);
if (jsonObj.hasOwnProperty("DMHotskey")) {
const dmhotskey = jsonObj.DMHotskey;
if (dmhotskey.hasOwnProperty("workPlace")) {
this.scanCode = ""
this.orderFormData.workPlaceCode = dmhotskey.workPlace
return true
} else if (dmhotskey.hasOwnProperty("fifoSplit")) {
this.scanCode = ""
this.orderFormData.fifoSplit = dmhotskey.fifoSplit;
return true;
}
}
} catch (error) {
console.log("字符串不是有效的 JSON 格式");
}
}
return false;
},
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(" , ");
} }
@ -1902,12 +1996,24 @@ export default {
this.findSickMethod(this.orderFormData.sickerAdNum) this.findSickMethod(this.orderFormData.sickerAdNum)
this.orderFormData.fromCorp = this.sickerAdNum this.orderFormData.fromCorp = this.sickerAdNum
} }
this.showSearch = true
} }
if (this.viewTypeKsck) { if (this.viewTypeKsck) {
this.curAction.corpType = 1 this.curAction.corpType = 1
this.curAction.genUnit = true this.curAction.genUnit = true
this.curAction.inputSick = true this.curAction.inputSick = true
} }
// this.$refs.inputRef.focus();
// this.$refs.inputRef.select();
// if (this.splitBusType != null && this.splitBusType == 'SC72197936495755') {
// this.dialogTitle = 'splitAddIn'
// } else if (this.splitBusType != null && this.splitBusType == 'SC72249388338364') {
// this.dialogTitle = 'splitAddOut'
// }
//
// this.dialogTitle = 'splitAddIn'
}, },
}; };
</script> </script>
@ -1937,6 +2043,41 @@ export default {
.ime-disabled { .ime-disabled {
ime-mode: disabled; ime-mode: disabled;
} }
.result-display {
border: 2px solid #ccc; /* 默认外框颜色 */
border-radius: 10px;
margin-top: 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> </style>

@ -0,0 +1,617 @@
<template>
<div>
<el-card>
<el-form v-if="queryList && queryList.length > 0 && showSearch" :model="filterQuery" class="query-form"
size="mini" label-width="100px">
<el-row style=" display:flex; flex-wrap: wrap; ">
<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>
<template v-for="(item, index) in queryList">
<el-form-item v-if="item.columnType == 'input' && executeEval(row,item.expression,true)"
class="query-form-item"
:label="item.columnDesc+`:`" :key="item.id">
<el-input
v-model="filterQuery[item.columnName]"
:placeholder="item.columnDesc"
:disabled="executeEval(null,item.disabledFuc,false)"
@keyup.enter.native="executeFuc($event,'5',item.clickFuc)"
clearable
></el-input>
</el-form-item>
<el-form-item v-if="item.columnType == 'select' && executeEval(row,item.expression,true)"
class="query-form-item"
:label="item.columnDesc+`:`">
<el-select v-model="filterQuery[item.columnName]"
:placeholder="item.columnDesc"
:disabled="executeEval(null,item.disabledFuc,false)"
clearable>
<el-option
v-for="dict in item.lableRuleObj"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item v-if="item.columnType == 'selectServer' && executeEval(row,item.expression,true)"
class="query-form-item"
:label="item.columnDesc+`:`">
<el-select
v-model="filterQuery[item.columnName]"
:placeholder="item.columnDesc"
@change="executeFuc($event,'5',item.checkRules)"
:disabled="executeEval(null,item.disabledFuc,false)"
filterable
remote
:remote-method="(query) => executeFuc(query,'5',item.clickFuc)"
clearable>
<el-option
v-for="item in options[item.clickFuc]"
:key="item.code"
:label="item.label"
:value="item.code"
/>
</el-select>
</el-form-item>
<el-form-item v-if="item.columnType == 'datePicker' && executeEval(row,item.expression,true)"
class="query-form-item"
:label="item.columnDesc+`:`">
<el-date-picker
:picker-options="pickerOptions"
v-model="actDateRange"
type="daterange"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item v-if="item.columnType == 'date' && executeEval(row,item.expression,true)"
class="query-form-item"
:label="item.columnDesc+`:`">
<el-date-picker
v-model="filterQuery[item.columnName]"
:style="`width:${item.width+'px'}`"
value-format="yyyy-MM-dd"
:disabled="executeEval(null,item.disabledFuc,false)"
type="date"
:placeholder="item.columnDesc"
></el-date-picker>
</el-form-item>
</template>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group>
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button
type="primary"
icon="el-icon-refresh"
@click="onReset"
>重置
</el-button>
<el-button type="primary" icon="el-icon-search" @click="onSubmit"
>查询
</el-button
>
</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"
:row-style="{ height: '32px' }"
@sort-change="handleSortChange">
<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])">
<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' && 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>
</template>
</el-table>
<pagination
v-show="total>0"
:total="total"
:limit.sync="filterQuery.limit"
:page.sync="filterQuery.page"
@pagination="handleCurrentChange"
></pagination>
</el-card>
<el-tabs type="border-card" style="margin: 15px">
<el-tab-pane>
<span slot="label"> {{ currentRow.cpmctymc }}-扫码明细</span>
<el-form v-if="queryList4 && queryList4.length > 0" :inline="true" :model="resultQuery" class="query-form"
size="mini">
<el-row style=" display:flex; flex-wrap: wrap; ">
<template v-for="(item, index) in queryList4">
<el-form-item v-if="item.columnType == 'input' && executeEval(row,item.expression,true)"
:label="item.columnDesc+`:`" :key="item.id">
<el-input
v-model="resultQuery[item.columnName]"
:placeholder="item.columnDesc"
:disabled="executeEval(null,item.disabledFuc,false)"
@keyup.enter.native="executeFuc($event,'5',item.clickFuc)"
clearable
></el-input>
</el-form-item>
<el-form-item v-if="item.columnType == 'select' && executeEval(row,item.expression,true)"
:label="item.columnDesc+`:`">
<el-select v-model="resultQuery[item.columnName]"
:placeholder="item.columnDesc"
:disabled="executeEval(null,item.disabledFuc,false)"
clearable>
<el-option
v-for="dict in item.lableRuleObj"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item v-if="item.columnType == 'selectServer' && executeEval(row,item.expression,true)"
:label="item.columnDesc+`:`">
<el-select
v-model="resultQuery[item.columnName]"
:placeholder="item.columnDesc"
@change="executeFuc($event,'5',item.checkRules)"
:disabled="executeEval(null,item.disabledFuc,false)"
filterable
remote
:remote-method="(query) => executeFuc(query,'5',item.clickFuc)"
clearable>
<el-option
v-for="item in options[item.clickFuc]"
:key="item.code"
:label="item.label"
:value="item.code"
/>
</el-select>
</el-form-item>
<el-form-item v-if="item.columnType == 'datePicker' && executeEval(row,item.expression,true)"
:label="item.columnDesc+`:`">
<el-date-picker
:picker-options="pickerOptions"
v-model="actDateRange"
type="daterange"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item v-if="item.columnType == 'date' && executeEval(row,item.expression,true)"
:label="item.columnDesc+`:`">
<el-date-picker
v-model="resultQuery[item.columnName]"
:style="`width:${item.width+'px'}`"
value-format="yyyy-MM-dd"
:disabled="executeEval(null,item.disabledFuc,false)"
type="date"
:placeholder="item.columnDesc"
></el-date-picker>
</el-form-item>
</template>
</el-row>
<el-form-item>
<el-button-group>
<el-button
type="primary"
icon="el-icon-refresh"
@click="onResultReset"
>重置
</el-button>
<el-button type="primary" @click="onResultSubmit"
icon="el-icon-search"
>查询
</el-button
>
</el-button-group>
</el-form-item>
</el-form>
<el-table v-loading="resultDetailLoading" :data="resultDetailList" style="width: 100%" border
row-key="id"
>
<template v-for="(item, index) in tableHeader4">
<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' && 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>
</template>
</el-table>
<pagination
v-show="resultTotal>0"
:total="resultTotal"
:page.sync="resultQuery.page"
:limit.sync="resultQuery.limit"
@pagination="getResultDetailList"
/>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import {executeFuc, getHead} from "@/utils/customConfig";
import {convertDate} from "@/utils/date";
import {detail, page as prescribePage} from "@/api/basic/sicker/prescribeApi";
import {materialCodePage, materialPrescribePage, splitFifoDetail, splitFifoPage} from "@/api/inout/splitCode";
import {getInvListByUserOptimize} from "@/api/system/invWarehouse";
export default {
name: "IoSplitFifoCodePanel",
props: {
panelType: {
type: Object,
default: 1,
required: true
},
},
data() {
return {
//
//
tableHeader: [],
queryList: [],
tableObj: [],
fromList: [],
tableHeader4: [],
queryList4: [],
fromList4: [],
convertDateFun: convertDate,
//-------------end
options: {
getInvList: [],
getDeptList: [],
getBusType: [],
},
showSearch: true,
filterQuery: {
fifoSplit: null,
code: null,
billNo: null,
page: 1,
limit: 10,
},
defaultSort: {prop: 'createTime', order: 'desc'},
loading: false,
list: [],
total: 0,
resultQuery: {
billNo: null,
code: null,
page: 1,
limit: 10
},
currentRow: {},
resultTotal: 0,
resultDetailLoading: false,
resultDetailList: [],
}
},
components: {},
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
getInvList(_this) {
getInvListByUserOptimize()
.then((response) => {
_this.options.getInvList = response.data || [];
_this.getList();
})
.catch(() => {
});
},
hideSearch() {
this.showSearch = !this.showSearch;
},
onReset() {
this.filterQuery = {};
this.actDateRange = [];
this.getList();
},
onSubmit() {
this.filterQuery.page = 1;
this.getList();
},
getList() {
this.loading = true;
this.filterQuery.fifoSplit = this.panelType
splitFifoPage(this.filterQuery).then(res => {
this.loading = false
this.list = res.data.list || []
this.total = res.data.total || 0
}).catch(() => {
this.loading = false
this.list = []
this.total = 0
})
},
detailClick(row) {
this.resultQuery = {
relId: row.relId,
batchNo: row.batchNo,
supId: row.supId,
workPlaceCode: row.workPlaceCode,
fifoSplit: row.fifoSplit,
page: 1,
limit: 10
}
this.getResultDetailList();
},
getResultDetailList() {
this.loading = true;
splitFifoDetail(this.resultQuery).then(res => {
this.loading = false
this.list = res.data.list || []
this.total = res.data.total || 0
}).catch(() => {
this.loading = false
this.list = []
this.total = 0
})
},
handleCurrentChange(val) {
this.filterQuery.page = val.page;
this.getList();
},
getInputFocus(event) {
event.currentTarget.select();
},
enterKey(_this, event) {
_this.onSubmit();
},
},
created() {
console.log(this.panelType)
getHead("ioSplitFifoCode", "1").then((re) => {
//
this.tableObj = re.data;
this.tableHeader = re.data.tableList;
this.queryList = re.data.queryList;
this.fromList = re.data.fromList;
this.getList();
});
getHead("IoEditOrder-smmx", "1").then((re) => {
//
this.tableObj4 = re.data;
this.tableHeader4 = re.data.tableList;
this.queryList4 = re.data.queryList;
this.fromList4 = re.data.fromList;
});
}
}
</script>
<style scoped>
</style>

@ -233,6 +233,7 @@
:orderQuery="idQuery" :orderQuery="idQuery"
:splitBusType="splitBusType" :splitBusType="splitBusType"
:viewType="viewType" :viewType="viewType"
:dialogTitle="title"
></addOrder> ></addOrder>
</el-dialog> </el-dialog>
<el-dialog <el-dialog
@ -266,9 +267,8 @@ import {
} from "@/api/inout/order"; } from "@/api/inout/order";
import addOrder from "@/views/inout/DialogCreateOrder"; import addOrder from "@/views/inout/DialogCreateOrder";
import errOrder from "@/views/inout/IoCreateErrorOrder"; import errOrder from "@/views/inout/IoCreateErrorOrder";
import {getInvListByUser, getInvListByUserOptimize} from "@/api/system/invWarehouse"; import {getInvListByUserOptimize} from "@/api/system/invWarehouse";
import {getLocalJoinByUser, getLocalJoinByUserOptimize} from "@/api/basic/busType"; import {getLocalJoinByUserOptimize} from "@/api/basic/busType";
import {selectSysParamByKey} from "@/api/param/systemParamConfig";
import {getCorrespondence} from "@/api/basic/basicUnitMaintain"; import {getCorrespondence} from "@/api/basic/basicUnitMaintain";
import { import {
getHead, executeFuc getHead, executeFuc
@ -314,6 +314,10 @@ export default {
titleMap: { titleMap: {
add: "新增单据", add: "新增单据",
edit: "编辑单据", edit: "编辑单据",
splitAddIn: "工位上货-新增",
splitEditIn: "工位上货-编辑",
splitAddOut: "工位退货-新增",
splitEditOut: "工位退货-编辑",
}, },
title: "add", title: "add",
filterQuery: { filterQuery: {

@ -1,355 +1,34 @@
<template> <template>
<div> <div>
<el-card> <el-tabs type="border-card" style="margin: 15px">
<el-form v-if="queryList && queryList.length > 0 && showSearch" :model="filterQuery" class="query-form"
size="mini" label-width="100px">
<el-row style=" display:flex; flex-wrap: wrap; ">
<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>
<template v-for="(item, index) in queryList"> <el-tab-pane label="拆零库存">
<el-form-item v-if="item.columnType == 'input' && executeEval(row,item.expression,true)" <fifoPanel
class="query-form-item" :panelType="1"
:label="item.columnDesc+`:`" :key="item.id"> ></fifoPanel>
<el-input </el-tab-pane>
v-model="filterQuery[item.columnName]"
:placeholder="item.columnDesc"
:disabled="executeEval(null,item.disabledFuc,false)"
@keyup.enter.native="executeFuc($event,'5',item.clickFuc)"
clearable
></el-input>
</el-form-item>
<el-form-item v-if="item.columnType == 'select' && executeEval(row,item.expression,true)"
class="query-form-item"
:label="item.columnDesc+`:`">
<el-select v-model="filterQuery[item.columnName]"
:placeholder="item.columnDesc"
:disabled="executeEval(null,item.disabledFuc,false)"
clearable>
<el-option
v-for="dict in item.lableRuleObj"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item v-if="item.columnType == 'selectServer' && executeEval(row,item.expression,true)"
class="query-form-item"
:label="item.columnDesc+`:`">
<el-select
v-model="filterQuery[item.columnName]"
:placeholder="item.columnDesc"
@change="executeFuc($event,'5',item.checkRules)"
:disabled="executeEval(null,item.disabledFuc,false)"
filterable
remote
:remote-method="(query) => executeFuc(query,'5',item.clickFuc)"
clearable>
<el-option
v-for="item in options[item.clickFuc]"
:key="item.code"
:label="item.label"
:value="item.code"
/>
</el-select>
</el-form-item>
<el-form-item v-if="item.columnType == 'datePicker' && executeEval(row,item.expression,true)"
class="query-form-item"
:label="item.columnDesc+`:`">
<el-date-picker
:picker-options="pickerOptions"
v-model="actDateRange"
type="daterange"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item v-if="item.columnType == 'date' && executeEval(row,item.expression,true)"
class="query-form-item"
:label="item.columnDesc+`:`">
<el-date-picker
v-model="filterQuery[item.columnName]"
:style="`width:${item.width+'px'}`"
value-format="yyyy-MM-dd"
:disabled="executeEval(null,item.disabledFuc,false)"
type="date"
:placeholder="item.columnDesc"
></el-date-picker>
</el-form-item>
</template>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group>
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button
type="primary"
icon="el-icon-refresh"
@click="onReset"
>重置
</el-button>
<el-button type="primary" icon="el-icon-search" @click="onSubmit"
>查询
</el-button
>
</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 <el-tab-pane label="整取库存">
@row-click="(row) => executeFuc(row,'0',tableObj.handleChangeFuc)" ref="multipleTable" <fifoPanel
:default-sort="defaultSort" :panelType="2"
:row-style="{ height: '32px' }" ></fifoPanel>
@sort-change="handleSortChange"> </el-tab-pane>
<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 </el-tabs>
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' && 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>
</template>
</el-table>
<pagination
v-show="total>0"
:total="total"
:limit.sync="filterQuery.limit"
:page.sync="filterQuery.page"
@pagination="handleCurrentChange"
></pagination>
</el-card>
</div> </div>
</template> </template>
<script> <script>
import {executeFuc, getHead} from "@/utils/customConfig";
import {convertDate} from "@/utils/date";
import {detail, page as prescribePage} from "@/api/basic/sicker/prescribeApi";
import {materialCodePage, materialPrescribePage, splitFifoPage} from "@/api/inout/splitCode";
import {getInvListByUserOptimize} from "@/api/system/invWarehouse";
export default {
name: "ioSplitFifoCode",
data() {
return {
//
//
tableHeader: [],
queryList: [],
tableObj: [],
fromList: [],
convertDateFun: convertDate,
//-------------end
options: {
getInvList: [],
getDeptList: [],
getBusType: [],
},
showSearch: true,
filterQuery: {
code: null,
billNo: null,
page: 1,
limit: 10,
},
defaultSort: {prop: 'createTime', order: 'desc'},
loading: false,
list: [],
total: 0,
}
},
components: {},
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
getInvList(_this) {
getInvListByUserOptimize()
.then((response) => {
_this.options.getInvList = response.data || [];
_this.getList();
})
.catch(() => {
});
},
hideSearch() {
this.showSearch = !this.showSearch;
},
onReset() {
this.filterQuery = {};
this.actDateRange = [];
this.getList();
},
onSubmit() {
this.filterQuery.page = 1;
this.getList();
},
getList() {
this.loading = true;
splitFifoPage(this.filterQuery).then(res => {
this.loading = false
this.list = res.data.list || []
this.total = res.data.total || 0
}).catch(() => {
this.loading = false
this.list = []
this.total = 0
})
},
handleCurrentChange(val) {
this.filterQuery.page = val.page;
this.getList();
},
getInputFocus(event) {
event.currentTarget.select();
},
enterKey(_this, event) {
_this.onSubmit();
},
},
created() {
getHead("ioSplitFifoCode", "1").then((re) => {
//
this.tableObj = re.data;
this.tableHeader = re.data.tableList;
this.queryList = re.data.queryList;
this.fromList = re.data.fromList;
this.getList();
});
import fifoPanel from "./IoSplitFifoCodePanel";
export default {
name: "PrescribeTagCode",
components: {
fifoPanel
} }
} }
</script> </script>

@ -1,757 +1,37 @@
<template> <template>
<div> <div>
<el-card>
<el-form v-if="queryList && queryList.length > 0 && showSearch" :model="filterQuery" class="query-form"
size="mini" label-width="100px">
<el-row style=" display:flex; flex-wrap: wrap; ">
<template v-for="(item, index) in queryList">
<el-form-item v-if="item.columnType == 'input' && executeEval(row,item.expression,true)"
class="query-form-item"
:label="item.columnDesc+`:`" :key="item.id">
<el-input
v-model="filterQuery[item.columnName]"
:placeholder="item.columnDesc"
:disabled="executeEval(null,item.disabledFuc,false)"
@keyup.enter.native="executeFuc($event,'5',item.clickFuc)"
clearable
></el-input>
</el-form-item>
<el-form-item v-if="item.columnType == 'select' && executeEval(row,item.expression,true)"
class="query-form-item"
:label="item.columnDesc+`:`">
<el-select v-model="filterQuery[item.columnName]"
:placeholder="item.columnDesc"
:disabled="executeEval(null,item.disabledFuc,false)"
clearable>
<el-option
v-for="dict in item.lableRuleObj"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item v-if="item.columnType == 'selectServer' && executeEval(row,item.expression,true)"
class="query-form-item"
:label="item.columnDesc+`:`">
<el-select
v-model="filterQuery[item.columnName]"
:placeholder="item.columnDesc"
@change="executeFuc($event,'5',item.checkRules)"
:disabled="executeEval(null,item.disabledFuc,false)"
filterable
remote
:remote-method="(query) => executeFuc(query,'5',item.clickFuc)"
clearable>
<el-option
v-for="item in options[item.clickFuc]"
:key="item.code"
:label="item.label"
:value="item.code"
/>
</el-select>
</el-form-item>
<el-form-item v-if="item.columnType == 'datePicker' && executeEval(row,item.expression,true)"
class="query-form-item"
:label="item.columnDesc+`:`">
<el-date-picker
:picker-options="pickerOptions"
v-model="actDateRange"
type="daterange"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item v-if="item.columnType == 'date' && executeEval(row,item.expression,true)"
class="query-form-item"
:label="item.columnDesc+`:`">
<el-date-picker
v-model="filterQuery[item.columnName]"
:style="`width:${item.width+'px'}`"
value-format="yyyy-MM-dd"
:disabled="executeEval(null,item.disabledFuc,false)"
type="date"
:placeholder="item.columnDesc"
></el-date-picker>
</el-form-item>
</template>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group>
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button
type="primary"
icon="el-icon-refresh"
@click="onReset"
>重置
</el-button>
<el-button type="primary" icon="el-icon-search" @click="onSubmit"
>查询
</el-button
>
</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"
:row-style="{ height: '32px' }"
@selection-change="handleSelectionChange"
@sort-change="handleSortChange">
<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])">
<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' && 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>
</template>
</el-table>
<pagination
v-show="total>0"
:total="total"
:limit.sync="filterQuery.limit"
:page.sync="filterQuery.page"
@pagination="handleCurrentChange"
></pagination>
</el-card>
<el-tabs type="border-card" style="margin: 15px"> <el-tabs type="border-card" style="margin: 15px">
<el-tab-pane label="处方使用耗材明细"> <el-tab-pane label="处理中处方">
<el-table v-loading="preDiLoading" :data="preDiDetailList" style="width: 100%" border> <allotPanel
<template v-for="(item, index) in tableHeader2"> :panelType="1"
<el-table-column ></allotPanel>
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>
</el-tab-pane> </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>
<el-tab-pane label="异常处方">
<allotPanel
:panelType="2"
></allotPanel>
</el-tab-pane> </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 </el-tabs>
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> </div>
</template> </template>
<script> <script>
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";
export default {
name: "prescribePanel",
data() {
return {
//
//
tableHeader: [],
queryList: [],
tableObj: [],
fromList: [],
//
tableHeader1: [],
queryList1: [],
tableObj1: [],
fromList1: [],
//使
tableHeader2: [],
queryList2: [],
tableObj2: [],
fromList2: [],
convertDateFun: convertDate,
//-------------end
showSearch: true, import allotPanel from "./prescribeAllotIngPanel";
filterQuery: {
billNo: null,
page: 1,
limit: 10,
},
defaultSort: {prop: 'createTime', order: 'desc'},
loading: false,
list: [],
total: 0,
downloadPrescriptionVisible: false,
deleteData: {},
preLoading: false,
preDetailList: [],
preTotal: 0,
preQuery: {
prescribeCode: null,
page: 1,
limit: 10,
},
preDiLoading: false,
preDiDetailList: [],
preDiTotal: 0,
preDiQuery: {
prescribeCode: null,
page: 1,
limit: 10,
},
bindWorkPlaceVisible: false,
multiplePreSelection: [],
}
},
export default {
name: "PrescribeTagCode",
components: { components: {
addOrder, errOrder, prescribeDownloadDialog, bindWorkDialog allotPanel
},
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
hideSearch() {
this.showSearch = !this.showSearch;
},
onReset() {
this.filterQuery = {};
this.actDateRange = [];
this.getList();
},
downloadPrescription() {
this.downloadPrescriptionVisible = true
},
bindWorkPlace() {
if (this.multiplePreSelection.length == 0) {
this.$message.warning('请先选择处方!');
return
}
this.bindWorkPlaceVisible = true;
},
closeDialog() {
this.bindWorkPlaceVisible = false;
this.getList();
},
onSubmit() {
this.filterQuery.page = 1;
this.getList();
},
getList() {
this.loading = true;
prescribePage(this.filterQuery).then(res => {
this.loading = false
this.list = res.data.list || []
this.total = res.data.total || 0
}).catch(() => {
this.loading = false
this.list = []
this.total = 0
})
},
handleCurrentChange(val) {
this.filterQuery.page = val.page;
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("数据加载失败")
})
},
preHandleCurrentChange(val) {
this.filterQuery.page = val.page;
this.getPrescribeDetail(this, null);
},
deleteDialog(_this, row) {
_this.$confirm("此操作将永久删除该订单, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
_this.deleteOrders(row.code);
})
.catch(() => {
});
},
deleteOrders(data) {
this.loading = true;
this.deleteData.code = data;
deleteDataByCode(this.deleteData)
.then((response) => {
if (response.code == 20000) {
this.getList();
this.$message({
type: "success",
message: "删除成功!",
});
} else if (response.code == 520) {
this.$message.error(response.message);
this.getList();
} else {
this.$message.error(response.message);
this.getList();
}
})
.catch(() => {
});
},
handleSelectionChange(val) {
this.multiplePreSelection = val;
},
},
created() {
getHead("prescribeIng", "1").then((re) => {
//
this.tableObj = re.data;
this.tableHeader = re.data.tableList;
this.queryList = re.data.queryList;
this.fromList = re.data.fromList;
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> </script>
<style scoped> <style scoped>
</style> </style>

@ -0,0 +1,763 @@
<template>
<div>
<el-card>
<el-form v-if="queryList && queryList.length > 0 && showSearch" :model="filterQuery" class="query-form"
size="mini" label-width="100px">
<el-row style=" display:flex; flex-wrap: wrap; ">
<template v-for="(item, index) in queryList">
<el-form-item v-if="item.columnType == 'input' && executeEval(row,item.expression,true)"
class="query-form-item"
:label="item.columnDesc+`:`" :key="item.id">
<el-input
v-model="filterQuery[item.columnName]"
:placeholder="item.columnDesc"
:disabled="executeEval(null,item.disabledFuc,false)"
@keyup.enter.native="executeFuc($event,'5',item.clickFuc)"
clearable
></el-input>
</el-form-item>
<el-form-item v-if="item.columnType == 'select' && executeEval(row,item.expression,true)"
class="query-form-item"
:label="item.columnDesc+`:`">
<el-select v-model="filterQuery[item.columnName]"
:placeholder="item.columnDesc"
:disabled="executeEval(null,item.disabledFuc,false)"
clearable>
<el-option
v-for="dict in item.lableRuleObj"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item v-if="item.columnType == 'selectServer' && executeEval(row,item.expression,true)"
class="query-form-item"
:label="item.columnDesc+`:`">
<el-select
v-model="filterQuery[item.columnName]"
:placeholder="item.columnDesc"
@change="executeFuc($event,'5',item.checkRules)"
:disabled="executeEval(null,item.disabledFuc,false)"
filterable
remote
:remote-method="(query) => executeFuc(query,'5',item.clickFuc)"
clearable>
<el-option
v-for="item in options[item.clickFuc]"
:key="item.code"
:label="item.label"
:value="item.code"
/>
</el-select>
</el-form-item>
<el-form-item v-if="item.columnType == 'datePicker' && executeEval(row,item.expression,true)"
class="query-form-item"
:label="item.columnDesc+`:`">
<el-date-picker
:picker-options="pickerOptions"
v-model="actDateRange"
type="daterange"
format="yyyy 年 MM 月 dd 日"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item v-if="item.columnType == 'date' && executeEval(row,item.expression,true)"
class="query-form-item"
:label="item.columnDesc+`:`">
<el-date-picker
v-model="filterQuery[item.columnName]"
:style="`width:${item.width+'px'}`"
value-format="yyyy-MM-dd"
:disabled="executeEval(null,item.disabledFuc,false)"
type="date"
:placeholder="item.columnDesc"
></el-date-picker>
</el-form-item>
</template>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group>
<el-button icon="el-icon-view" type="primary" @click="hideSearch">/</el-button>
<el-button
type="primary"
icon="el-icon-refresh"
@click="onReset"
>重置
</el-button>
<el-button type="primary" icon="el-icon-search" @click="onSubmit"
>查询
</el-button
>
</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"
:row-style="{ height: '32px' }"
@selection-change="handleSelectionChange"
@sort-change="handleSortChange">
<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])">
<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' && 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>
</template>
</el-table>
<pagination
v-show="total>0"
:total="total"
:limit.sync="filterQuery.limit"
:page.sync="filterQuery.page"
@pagination="handleCurrentChange"
></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>
</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>
</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>
<script>
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";
export default {
name: "prescribeAllotIngPanel",
props: {
panelType: {
type: Object,
default: 1,
required: true
},
},
data() {
return {
//
//
tableHeader: [],
queryList: [],
tableObj: [],
fromList: [],
//
tableHeader1: [],
queryList1: [],
tableObj1: [],
fromList1: [],
//使
tableHeader2: [],
queryList2: [],
tableObj2: [],
fromList2: [],
convertDateFun: convertDate,
//-------------end
showSearch: true,
filterQuery: {
billNo: null,
page: 1,
limit: 10,
},
defaultSort: {prop: 'createTime', order: 'desc'},
loading: false,
list: [],
total: 0,
downloadPrescriptionVisible: false,
deleteData: {},
preLoading: false,
preDetailList: [],
preTotal: 0,
preQuery: {
prescribeCode: null,
page: 1,
limit: 10,
},
preDiLoading: false,
preDiDetailList: [],
preDiTotal: 0,
preDiQuery: {
prescribeCode: null,
page: 1,
limit: 10,
},
bindWorkPlaceVisible: false,
multiplePreSelection: [],
}
},
components: {
addOrder, errOrder, prescribeDownloadDialog, bindWorkDialog
},
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
hideSearch() {
this.showSearch = !this.showSearch;
},
onReset() {
this.filterQuery = {};
this.actDateRange = [];
this.getList();
},
downloadPrescription() {
this.downloadPrescriptionVisible = true
},
bindWorkPlace() {
if (this.multiplePreSelection.length == 0) {
this.$message.warning('请先选择处方!');
return
}
this.bindWorkPlaceVisible = true;
},
closeDialog() {
this.bindWorkPlaceVisible = false;
this.getList();
},
onSubmit() {
this.filterQuery.page = 1;
this.getList();
},
getList() {
this.loading = true;
prescribePage(this.filterQuery).then(res => {
this.loading = false
this.list = res.data.list || []
this.total = res.data.total || 0
}).catch(() => {
this.loading = false
this.list = []
this.total = 0
})
},
handleCurrentChange(val) {
this.filterQuery.page = val.page;
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("数据加载失败")
})
},
preHandleCurrentChange(val) {
this.filterQuery.page = val.page;
this.getPrescribeDetail(this, null);
},
deleteDialog(_this, row) {
_this.$confirm("此操作将永久删除该订单, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
_this.deleteOrders(row.code);
})
.catch(() => {
});
},
deleteOrders(data) {
this.loading = true;
this.deleteData.code = data;
deleteDataByCode(this.deleteData)
.then((response) => {
if (response.code == 20000) {
this.getList();
this.$message({
type: "success",
message: "删除成功!",
});
} else if (response.code == 520) {
this.$message.error(response.message);
this.getList();
} else {
this.$message.error(response.message);
this.getList();
}
})
.catch(() => {
});
},
handleSelectionChange(val) {
this.multiplePreSelection = val;
},
},
created() {
getHead("prescribeIng", "1").then((re) => {
//
this.tableObj = re.data;
this.tableHeader = re.data.tableList;
this.queryList = re.data.queryList;
this.fromList = re.data.fromList;
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>
</style>

@ -1651,7 +1651,6 @@ export default {
} }
}, },
enterKey(event) { enterKey(event) {
this.addCode() this.addCode()
}, },

Loading…
Cancel
Save