fix:业务类型增加回传参数设置、单据明细card页面

20240912_adapter
chenhc 5 months ago
parent 130d4d7a0a
commit 10d0276c58

@ -247,6 +247,38 @@
</el-col>
</el-row>-->
<el-divider></el-divider>
<el-row :gutter="24" class="el-row">
<el-col :span="12" class="el-col">
<el-form-item label="回传系统:" prop="uploadIsMatching" class="query-form-item">
<el-select v-model="formData.uploadIsMatching" style="width: 80%" placeholder="是否配套系统"
@change="change"
>
<el-option label="内部" :value="0"></el-option>
<el-option label="外部" :value="1"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12" class="el-col">
<el-form-item label="回传单据类型:" prop="uploadDocumentTypeCode" class="query-form-item">
<el-select v-model="formData.uploadDocumentTypeCode" placeholder="请选择单据类型"
style="width: 80%"
@change="documentTypeChange"
>
<el-option
v-for="item in busTypes"
:key="item.name"
:label="item.name"
:value="item.code"
>
<span style="float: left">{{ item.name }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click.native="hideForm">取消</el-button>
@ -298,8 +330,10 @@ export default {
scanType: 2,
checkInsert: 2,
isMatching: 1,
uploadIsMatching: 1,
inoutType: null,
documentTypeCode: null,
uploadDocumentTypeCode: null,
orderCirType: 1,
warnType: 2,
workplaceType: 3,
@ -326,6 +360,12 @@ export default {
documentTypeCode: [
{required: true, message: '请选择单据类型', trigger: 'blur'}
],
uploadIsMatching: [
{required: true, message: '请选择回传系统', trigger: 'blur'}
],
uploadDocumentTypeCode: [
{required: true, message: '请选择回传单据类型', trigger: 'blur'}
],
scanType: [
{required: true, message: '请选择扫码方式', trigger: 'blur'}
],

@ -61,6 +61,10 @@
<!-- <i class="el-icon-edit-outline"></i>-->
<span slot="title">处理单据</span>
</el-menu-item>
<el-menu-item :index=9 @click="clickMenuItem(9)" v-if="workPlaceClass == 1">
<!-- <i class="el-icon-edit-outline"></i>-->
<span slot="title">取药确认</span>
</el-menu-item>
<el-menu-item :index=4 @click="clickMenuItem(4)" v-if="workPlaceClass == 1">
<!-- <i class="el-icon-s-order"></i>-->
@ -259,6 +263,7 @@
<script>
import logoImg from '@/assets/logo/logo_dm.png'
import DealOrder from '@/views/collect/DealOrder.vue'
import ConfirmDrugDealOrder from '@/views/collect/ConfirmDrugDealOrder.vue'
import CollectOrderAllot from '@/views/collect/CollectOrderAllot.vue'
import CollectOrderEnd from '@/views/collect/CollectOrderEnd.vue'
import IoCreateOrderReturn from '@/views/collect/IoCreateOrder.vue'
@ -277,6 +282,7 @@ import {
export default {
components: {
DealOrder,
ConfirmDrugDealOrder,
IoCreateOrderReturn,
IoCreateOrderOut,
ioSplitFifoCode,
@ -400,6 +406,14 @@ export default {
component: IoSplitFifoRemind,
//
componentProps: {}
},
{
number: 9,
title: '取药确认',
name: 'ConfirmDrugDealOrder',
component: ConfirmDrugDealOrder,
//
componentProps: {}
}],
editableTabs: [{
number: 0,

File diff suppressed because it is too large Load Diff

@ -0,0 +1,372 @@
<template>
<div>
<el-table v-loading="preLoading" :data="preDetailList" style="width: 100%" border :row-style="rowStyle">
<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-row>
<el-col v-for="(info, index) in preDetailList" :key="index" :xs="12" :sm="6" :md="6" :lg="6" >
<el-card :body-style="{margin:'20px'}"
style="margin:20px 20px 20px 20px;;background-color: #e1f3fb;border-radius: 12px; position: relative;">
<div style="display: flex; justify-content: space-between; align-items: center; height: 26px; /* 约为 200px 的 1/3 */" >
<p style="font-size: 20px;background-color: #e1f3fb;font-weight: bold;">{{ info.cpmctymc }}</p>
</div>
<div style="display: flex; justify-content: space-between; align-items: center; height: 26px; /* 约为 200px 的 1/3 */" >
<p style="font-size: 12px;background-color: #e1f3fb;font-weight: bold;">{{ info.nameCode }}</p>
</div>
<div style="display: flex; justify-content: space-between; align-items: center; height: 26px; /* 约为 200px 的 1/3 */" >
<p style="font-size: 12px;background-color: #e1f3fb;font-weight: bold;">{{ info.ggxh }}</p>
</div>
<div style="display: flex; justify-content: space-between; align-items: center; height: 26px; /* 约为 200px 的 1/3 */" >
<p style="font-size: 12px;background-color: #e1f3fb;font-weight: bold;">{{ info.measureUnit }}</p>
</div>
<div style="flex: 1; display: flex; flex-direction: column; justify-content: flex-end; padding-top: 10px;" >
<p style="font-size: 14px;background-color: #e1f3fb" >{{ info.count }}</p>
<el-button type="primary" style="position: absolute; bottom: 20px; right: 20px;" icon="el-icon-thumb" @click="handleClick(info)"></el-button>
</div>
</el-card>
</el-col>
</el-row>
<el-dialog
title="扫码明细"
:visible.sync="scanDetailVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
v-if="scanDetailVisible"
width="65%"
append-to-body
>
<PanelOrderManuTagCode
:fifoSplit="3"
:prescribeData="prescribeData"
:bizId="bizId"
:closeScanDialog="closeScanDialog"
></PanelOrderManuTagCode>
</el-dialog>
</div>
</template>
<script>
import {convertDate} from "@/utils/date";
import {detail} from "@/api/basic/sicker/prescribeApi";
import {executeFuc, getHead} from "@/utils/customConfig";
import {orderDetail, codeRemove} from "@/api/collect/collectOrder";
import PanelOrderManuTagCode from "@/views/collect/PanelOrderManuTagCode";
/**
* 原始处方明细
*/
export default {
name: "prescribeOriginPanel",
props: {
prescribeData: {
type: Object,
default: null,
required: true
},
//1:2:;
fifoSplit: {
type: Object,
default: null,
required: true
},
dealStatus: {
type: Number,
default: 1,
required: true
},
},
data() {
return {
currentDate: new Date(),
//
//
tableHeader1: [],
queryList1: [],
tableObj1: [],
fromList1: [],
convertDateFun: convertDate,
preLoading: false,
preDetailList: [],
preTotal: 0,
preQuery: {
orderIdFk: null,
page: 1,
limit: 10,
},
countVisible: false,
scanDetailVisible: false,
bizId: null,
}
},
methods: {
deleteMan(_this, row) {
_this.$confirm("是否确定删除该条扫码?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
_this.loading = true;
_this.codeRemoveMan(row.id, 2);
})
},
deleteCode(_this, row) {
_this.$confirm("是否确定移除一个条码?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
}).then(() => {
_this.loading = true;
_this.codeRemoveMan(row.id, 1);
})
},
codeRemoveMan(codeManId, delType) {
let post = {
codeManId: codeManId,
delType: delType
}
codeRemove(post).then((response) => {
if (response.code === 20000) {
this.$message.success("操作成功!");
this.getList(this)
} else {
this.$message.error(response.message);
}
this.loading = false;
}).catch(() => {
this.loading = false;
})
},
//-------------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.orderIdFk = this.prescribeData.billNo
}
_this.preLoading = true;
orderDetail(_this.preQuery).then(res => {
_this.preLoading = false
if (res.code != 20000) {
_this.$message.error(res.message)
return
}
_this.preDetailList = res.data.list
_this.preLoading = false
}).catch(() => {
_this.preLoading = false
_this.$message.error("数据加载失败")
})
},
scanDetail(_this, row) {
_this.bizId = row.id;
_this.scanDetailVisible = true;
},
closeScanDialog() {
this.getPrescribeDetail(this);
this.refreshPanel(this)
},
rowStyle({row, rowIndex}) {
let rowBackground = {};
if (row.scanActCount < row.count) {
rowBackground.color = '#F56C6C';
}
if (row.autoTagStatus == 2) {
rowBackground.color = '#E6A23C';
}
if (row.scanActCount >= row.count) {
rowBackground.color = '#56a717';
}
rowBackground.height = "38px"
return rowBackground;
},
},
components: {
PanelOrderManuTagCode
},
created() {
if (this.tableHeader1 == null || this.tableHeader1.length == 0) {
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);
});
}
this.getPrescribeDetail(this);
if (this.dealStatus == 1) {
this.countVisible = false;
} else {
this.countVisible = true;
}
}
}
</script>
<style scoped>
</style>

@ -333,6 +333,7 @@ export default {
this.fileList = fileList;
if (res.code === 20000) {
this.$message.success(res.message);
this.fileList = []
} else {
this.$message.error(res.message);
}

Loading…
Cancel
Save