Merge branch 'dev_ksck_z' of http://116.204.71.86:3000/UDI/udiwms-vue-frame into dev_ksck_z

20240912_adapter_z
zane 10 months ago
commit 247b00e50e

@ -1,28 +1,36 @@
<template>
<div>
<el-card>
<CollectOrderAllotCardComponents style="margin: -15px"
:tagStatus="'1'"
:workPlaceCode="workPlaceCode"
@parent-method="parentMethod"
></CollectOrderAllotCardComponents>
</el-card>
<el-tabs type="border-card" style="margin: 15px">
<el-tab-pane label="待处理单据">
<CollectOrderAllotCardComponents style="margin: -15px"
:tagStatus="'1'"
:workPlaceCode="workPlaceCode"
@parent-method="parentMethod"
></CollectOrderAllotCardComponents>
</el-tab-pane>
<!-- <el-tabs type="border-card" style="margin: 15px">-->
<el-tab-pane label="未分配工位单据">
<CollectOrderAllotComponents
style="margin: -15px"
:tagStatus="'0'"
:viewType="1"
:workPlaceCode="workPlaceCode"
></CollectOrderAllotComponents>
</el-tab-pane>
<!-- <el-tab-pane label="待处理单据">-->
<!-- <CollectOrderAllotCardComponents style="margin: -15px"-->
<!-- :tagStatus="'1'"-->
<!-- :workPlaceCode="workPlaceCode"-->
<!-- @parent-method="parentMethod"-->
<!-- ></CollectOrderAllotCardComponents>-->
<!-- </el-tab-pane>-->
<!-- <el-tab-pane label="未分配工位单据">-->
<!-- <CollectOrderAllotComponents-->
<!-- style="margin: -15px"-->
<!-- :tagStatus="'0'"-->
<!-- :viewType="1"-->
<!-- :workPlaceCode="workPlaceCode"-->
<!-- ></CollectOrderAllotComponents>-->
<!-- </el-tab-pane>-->
</el-tabs>
<!-- </el-tabs>-->
</div>
</template>

@ -271,7 +271,7 @@
<el-divider style="margin: 15px"></el-divider>
<el-row :gutter="24">
<el-col v-for="(info, index) in list" :key="index" :xs="12" :sm="8" :md="8" :lg="6">
<el-col v-for="(info, index) in list" :key="index" :xs="12" :sm="8" :md="8" :lg="8">
<el-card :body-style="{margin:'20px'}"
style="margin:10px 10px 5px 5px;height: 200px;background-color: #e1f3fb;border-radius: 12px; position: relative;"
>
@ -341,7 +341,7 @@
:total="total"
:limit.sync="filterQuery.limit"
:page.sync="filterQuery.page"
:page-sizes="[12, 24, 48]"
:page-sizes="[9, 18, 36]"
@pagination="handleCurrentChange"
></pagination>
</div>
@ -351,10 +351,10 @@
<el-tabs type="border-card" style="margin: 15px" v-if="!this.changeViewDisabled">
<el-tab-pane label="单据详情">
<prescribeOriginDiPanel
<CollectOrderAllotDetail
v-if="panelALive"
:prescribeData="curRow"
></prescribeOriginDiPanel>
></CollectOrderAllotDetail>
</el-tab-pane>
<!-- <el-tab-pane label="原始处方明细">-->
<!-- <prescribeOriginPanel-->
@ -393,7 +393,7 @@ import {convertDate} from "@/utils/date";
import {page as prescribePage, deleteDataByCode} from "@/api/basic/sicker/prescribeApi";
import bindWorkDialog from "@/views/collect/bindWorkDialog";
import prescribeOriginPanel from "./PannelOrderBiz";
import prescribeOriginDiPanel from "./PannelOrderBiz";
import CollectOrderAllotDetail from "./CollectOrderAllotDetail";
import {filterWorkOptimize} from "@/api/basic/workPlace/sysWorkplaceManage";
import {deleteByOrder, orderPage, orderTop} from "@/api/collect/collectOrder";
@ -491,7 +491,7 @@ export default {
},
components: {
addOrder, errOrder, bindWorkDialog, prescribeOriginPanel, prescribeOriginDiPanel
addOrder, errOrder, bindWorkDialog, prescribeOriginPanel, CollectOrderAllotDetail
},
methods: {
changeInvRemind(val) {

@ -0,0 +1,339 @@
<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-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: "CollectOrderAllotDetail",
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 {
//
//
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.autoResCount < 0) {
rowBackground.color = '#f60303';
}
rowBackground.height = "38px"
return rowBackground;
},
},
components: {
PanelOrderManuTagCode
},
created() {
if (this.tableHeader1 == null || this.tableHeader1.length == 0) {
getHead("CollectOrderAllotDetail", "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>

@ -6,54 +6,19 @@
</el-col>
<div>
<el-form :model="formData" class="order-el-form" ref="formData" label-width="120px" style="margin-top: 5px">
<el-col :span="6">
<el-form-item prop="workPlaceCode" class="query-form-item" label="当前工位:">
<el-select
v-model="formData.workPlaceCode"
placeholder="当前工位"
style="width: 90%"
disabled
>
<el-option
v-for="item in curWorkPlaces"
:key="item.workplaceId"
:label="item.workplaceName"
:value="item.workplaceId"
>
<span style="float: left">{{ item.workplaceName }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{
item.workplaceId
}}</span>
</el-option>
</el-select>
</el-form-item>
<el-form :model="formData" class="order-el-form" ref="formData" label-width="120px" >
<el-col :span="6" align="center">
<h5 style="color: #1c84c6">当前工位:&nbsp&nbsp&nbsp&nbsp<span style="font-size: 20px;color: #000000">{{this.formData.workplaceName}}</span></h5>
</el-col>
<el-col :span="6">
<el-form-item prop="busType" class="query-form-item" label="当前业务类型:">
<el-select v-model="formData.busType"
filterable
remote
reserve-keyword
disabled
placeholder="请选择业务类型" clearable style="width: 55%">
<el-option
v-for="item in busTypeList"
:key="item.documentTypeCode"
:label="item.busName"
:value="item.documentTypeCode"
>
<span style="float: left">{{ item.busName }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.documentTypeCode }}</span>
</el-option>
</el-select>
<el-button type="primary" @click="toggleBusType" style="margin-left: 5px">切换业务</el-button>
</el-form-item>
<el-col :span="8" align="center">
<h5 style="color: #1c84c6">当前业务类型:&nbsp&nbsp&nbsp&nbsp<span style="font-size: 20px;color: #000000">{{this.formData.busName}}</span>
&nbsp&nbsp&nbsp&nbsp <el-button type="primary" @click="toggleBusType" style="margin-left: 10px;" >切换业务</el-button>
</h5>
</el-col>
<el-col :span="6">
<el-col :span="4">
<el-form-item>
</el-form-item>
@ -97,7 +62,7 @@
<span slot="title">已完成单</span>
</el-menu-item>
<el-menu-item :index=6 @click="clickMenuItem(6)">
<i class="el-icon-s-claim"></i>
<i class="el-icon-upload"></i>
<span slot="title">单据上传</span>
</el-menu-item>
<el-menu-item :index=1 @click="clickMenuItem(1)">
@ -110,11 +75,11 @@
</el-menu-item>
<el-menu-item :index=3 @click="clickMenuItem(3)">
<i class="el-icon-s-platform"></i>
<span slot="title">工位</span>
<span slot="title">工位</span>
</el-menu-item>
<el-menu-item :index=7 @click="clickMenuItem(7)">
<i class="el-icon-s-claim"></i>
<span slot="title">损耗出库</span>
<i class="el-icon-s-release"></i>
<span slot="title">拆零管理</span>
</el-menu-item>
</el-menu>
</el-col>
@ -128,23 +93,15 @@
:label="item.title"
:name="item.name"
@contextmenu.stop.prevent="handleTabContextMenu($event, item)"
style="background-color: white"
>
<ul v-if="showContextMenu" class="context-menu" :style="contextMenuPosition">
<li @click="closeCurrentTab(contextMenuIndex)"></li>
<li @click="closeOtherTabs"></li>
<li @click="closeAllTabs"></li>
</ul>
<div >
<component v-if="showChild" :is="item.component" v-bind="item.componentProps" :reset-key="resetKeys[item.name]" @parent-method="parentMethod" />
</div>
</el-tab-pane>
<!-- 自定义的上下文菜单这里只是一个占位符你需要实现它 -->
<div v-if="showContextMenu" class="context-menu" :style="contextMenuStyle">
<button @click="closeCurrentTab"></button>
<button @click="closeOtherTabs"></button>
<button @click="closeAllTabs"></button>
</div>
</el-tabs>
</el-col>
@ -172,7 +129,7 @@
<div
style="display: flex; justify-content: space-between; align-items: center; height: 46px; /* 约为 200px 的 1/3 */"
@click="selectBusType(info.documentTypeCode)">
@click="selectBusType(info)">
<p style="font-size: 20px;background-color: #e1f3fb;font-weight: bold;">{{ info.busName }}</p>
<!-- 假设你的信息对象中包含一个title属性 -->
<!-- <div style="width: 60px; height: 60px; display: flex; justify-content: center; align-items: center;">-->
@ -185,10 +142,10 @@
<div style="flex: 1; display: flex; flex-direction: column; justify-content: flex-end; padding-top: 10px;"
>
<!-- 假设这里有一些信息内容 -->
<p style="font-size: 14px;background-color: #e1f3fb" @click="selectBusType(info.documentTypeCode)">
<p style="font-size: 14px;background-color: #e1f3fb" @click="selectBusType(info)">
{{ info.remark }}</p>
<el-button type="primary" style="position: absolute; bottom: 20px; right: 20px;" icon="el-icon-thumb"
@click="selectBusType(info.documentTypeCode)">开始作业
@click="selectBusType(info)">开始作业
</el-button>
</div>
@ -239,7 +196,10 @@ export default {
page: 1,
limit: 100
},
formData: {},
formData: {
busName: null,
workplaceName: null
},
curWorkPlaces: [],
busTypeList: [],
logo: logoImg,
@ -261,7 +221,7 @@ export default {
component: DealOrder,
//
componentProps: {
title: '这是单据的标题',
// title: '',
}
},
{
@ -286,7 +246,7 @@ export default {
},
{
number: 3,
title: '工位',
title: '工位存',
name: 'ioSplitFifoCode',
component: ioSplitFifoCode,
//
@ -318,7 +278,7 @@ export default {
},
{
number: 7,
title: '损耗出库',
title: '拆零管理',
name: 'IoDestroyOrder',
component: IoDestroyOrder,
//
@ -331,7 +291,7 @@ export default {
component: DealOrder,
//
componentProps: {
title: '这是单据的标题'
// title: ''
}
}
],
@ -346,12 +306,14 @@ export default {
// this.$refs.selectHeadEmpId.blur();
this.selectBusTypeDisabled = true
},
selectBusType(val) {
selectBusType(info) {
let val = info.documentTypeCode
this.formData.busType = val
let newQuery = {...this.$route.query};
delete newQuery.billNo;
newQuery.busType = val
this.$router.push({query: newQuery, path: this.$route.path});
this.formData.busName = info.busName;
this.editableTabs = []
this.clickMenuItem(0)
this.showChild = false;
@ -439,6 +401,10 @@ export default {
}
listPage(query).then((res) => {
this.curWorkPlaces = res.data.list || [];
if (this.$route.query.workplaceId != null){
let item = this.curWorkPlaces.find(item => item.workplaceId == this.$route.query.workplaceId);
this.formData.workplaceName = item.workplaceName
}
})
},
getWorkBindBusTypes(workplaceId) {
@ -450,10 +416,12 @@ export default {
if (this.$route.query.busType != null) {
this.formData.busType = this.$route.query.busType
this.formData.busName = this.busTypeList.find(item => item.documentTypeCode == this.formData.busType).busName;
}else if (this.busTypeList.length == 1) {
this.formData.busType = this.busTypeList[0].documentTypeCode
this.$router.push({query: {...this.$route.query, busType: this.formData.busType}, path: this.$route.path})
this.selectBusTypeDisabled = false
this.formData.busName = this.busTypeList.find(item => item.documentTypeCode == this.formData.busType).busName;
} else {
this.selectBusTypeDisabled = true
this.formData.busType = null
@ -526,7 +494,7 @@ export default {
margin-left: 25px;
}
.context-menu {
zIndex: 1000;
zIndex: 100000;
position: fixed ;
list-style-type: none;
padding: 0;

@ -4,6 +4,7 @@
:model="orderFormData"
:rules="formRules"
ref="dataForm"
@submit.native.prevent
label-width="110px"
>
<el-card style="margin: 5px;">

@ -128,6 +128,7 @@ import {convertDate} from "@/utils/date";
import {detail} from "@/api/basic/sicker/prescribeApi";
import {executeFuc, getHead} from "@/utils/customConfig";
import {allDetail,codeRemove} from "@/api/collect/collectOrder";
import {isBlank} from "@/utils/strUtil";
/**
* 原始处方明细
@ -266,7 +267,7 @@ export default {
rowStyle({row, rowIndex}) {
let rowBackground = {};
if (row.count != row.scanActCount) {
if (this.$isBlank(row.finishUdiCode)) {
rowBackground.color = '#f60303';
}

@ -327,6 +327,7 @@ export default {
curRow: null,
panelALive: false,
isLinkDisabled: false,
options: {
findWorkPlace: []
},
@ -426,6 +427,7 @@ export default {
created() {
this.filterQuery.tagStatus = this.tagStatus
if (this.$route.query.workplaceId != null) {
this.isLinkDisabled=true
this.filterQuery.workPlaceCode = this.$route.query.workplaceId
this.showType = 2
}

Loading…
Cancel
Save