bug 修改码替换相关修改

20240912_adapter_z
yewj 10 months ago
parent e8dc69d26a
commit 259dcfbc76

@ -118,6 +118,16 @@ export function bindWork(query) {
});
}
export function updateBiz(query) {
return axios({
url: "/udiwms/basic/collect/order/biz/save",
method: "post",
data: query
});
}
export function importOrder(query) {
return axios({
url: "/udiwms/collect/order/import",

@ -0,0 +1,335 @@
<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="codeReplaceVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
v-if="codeReplaceVisible"
width="60%"
append-to-body
>
<DialogReplaceCode
:prescribeData="bizData"
:closeDialog="closeScanDialog"
></DialogReplaceCode>
</el-dialog>
</div>
</template>
<script>
import {convertDate} from "@/utils/date";
import {executeFuc, getHead} from "@/utils/customConfig";
import {allDetail, codeRemove} from "@/api/collect/collectOrder";
import DialogReplaceCode from "./DialogReplaceCode.vue";
/**
* 原始处方明细
*/
export default {
name: "FinishOrderDetail",
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,
codeReplaceVisible: false,
bizData: null,
}
},
components: {DialogReplaceCode},
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;
allDetail(_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("数据加载失败")
})
},
codePlaceClick(_this, row) {
_this.bizData = row
_this.codeReplaceVisible = true;
},
closeScanDialog() {
this.getPrescribeDetail(this);
this.codeReplaceVisible = false;
},
rowStyle({row, rowIndex}) {
let rowBackground = {};
if (this.$isBlank(row.finishUdiCode)) {
rowBackground.color = '#f60303';
}
rowBackground.height = "38px"
return rowBackground;
},
},
created() {
if (this.tableHeader1 == null || this.tableHeader1.length == 0) {
getHead("FinishOrderDetail", "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);
});
} else {
this.getPrescribeDetail(this);
}
if (this.dealStatus == 1) {
this.countVisible = false;
} else {
this.countVisible = true;
}
}
}
</script>
<style scoped>
</style>

@ -1,20 +1,19 @@
<template>
<div>
<prescribePanel
style="margin: -15px"
:RowType="type"
:workPlaceCode="workPlaceCode"
></prescribePanel>
<!-- <el-tabs type="border-card" style="margin: 15px">-->
<el-tabs type="border-card" style="margin: 15px">
<!-- <el-tab-pane label="已完成单据">-->
<!-- -->
<!-- </el-tab-pane>-->
<el-tab-pane label="已完成单据">
<prescribePanel
style="margin: -15px"
:RowType="type"
:workPlaceCode="workPlaceCode"
></prescribePanel>
</el-tab-pane>
</el-tabs>
<!-- </el-tabs>-->
</div>
@ -40,7 +39,7 @@ export default {
}
},
created() {
if (this.$route.query.workplaceId != null){
if (this.$route.query.workplaceId != null) {
this.workPlaceCode = Number(this.$route.query.workplaceId);
}
}

@ -0,0 +1,136 @@
<template>
<div>
<el-card style="margin-top: -20px">
<el-descriptions title="产品信息" :column="2" border style="margin-top: 5px">
<el-descriptions-item label="产品名称">{{ prescribeData.cpmctymc }}</el-descriptions-item>
<el-descriptions-item label="产品标识">{{ prescribeData.nameCode }}</el-descriptions-item>
<el-descriptions-item label="产品规格">{{ prescribeData.ggxh }}</el-descriptions-item>
<el-descriptions-item label="计量单位">{{ prescribeData.measureUnit }}</el-descriptions-item>
<el-descriptions-item label="批次号">{{ prescribeData.batchNo }}</el-descriptions-item>
<el-descriptions-item label="生产日期">{{ prescribeData.productDate }}</el-descriptions-item>
<el-descriptions-item label="失效日期">{{ prescribeData.expireDate }}</el-descriptions-item>
</el-descriptions>
<el-form :model="formData" class="demo-form-inline" style="margin-top: 30px" :rules="rules"
ref="formRef">
<el-row :gutter="24">
<el-col :span="24">
<el-form-item label="原始追溯码" prop="count" label-width="100px">
<el-input v-model="prescribeData.finishUdiCode" placeholder=""
style="width:90%;"
disabled
></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="实际追溯码" label-width="100px">
<el-input
id="inputer"
@focus="getInputFocus($event)"
ref="inputRef"
style="ime-mode: disabled;width:90%;"
type="tel"
placeholder="请扫码或手动录入实际条码,多个条码请 ; 隔开"
v-model="prescribeData.replaceCode"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div style="text-align: center; margin-top: 20px;">
<el-button type="primary" @click="destroyOutOrder" :loading="saveLoading">提交</el-button>
<el-button @click="closeAddDialog"></el-button>
</div>
</el-card>
</div>
</template>
<script>
import {destroyOut} from '@/api/collect/IoDestroy'
import {updateBiz} from "@/api/collect/collectOrder";
export default {
name: 'DialogReplaceCode',
props: {
prescribeData: {
type: Object,
required: true
},
closeDialog: {
type: Function,
required: true
}
},
data() {
return {
formData: {},
produceDate: null,
expireDate: null,
saveLoading: false,
rules: {
count: [
{validator: this.validateCount, message: '损耗出库数量不能超出剩余数量', trigger: 'blur'}
]
},
}
},
methods: {
conversionDate(dateString) {
const parts = dateString.split('');
const year = '20' + parts.slice(0, 2).join('');
const month = parts[2] + parts[3];
const day = parts[4] + parts[5];
return `${year}-${month}-${day}`;
},
validateCount(rule, value, callback) {
if (value > this.prescribeData.reCount) {
callback(new Error('损耗出库数量超出剩余数量'));
} else {
callback();
}
},
checkCount() {
//
this.$refs.formRef.validateField('count');
},
closeAddDialog() {
this.closeDialog()
},
//
destroyOutOrder() {
updateBiz(this.prescribeData).then(res => {
if (res.code == 20000) {
this.closeDialog()
return this.$message.success("替换成功!")
} else {
return this.$message.error(res.message)
}
})
},
getInputFocus(event) {
event.currentTarget.select();
},
},
created() {
if (this.prescribeData.produceDate != null) {
this.produceDate = this.conversionDate(this.prescribeData.produceDate)
}
if (this.prescribeData.expireDate != null) {
this.expireDate = this.conversionDate(this.prescribeData.expireDate)
}
this.$refs.inputRef.focus();
this.$refs.inputRef.select();
}
}
</script>
<style scoped>
</style>

@ -450,7 +450,7 @@
:visible.sync="destroyOutDialogVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="70%"
width="60%"
v-if="destroyOutDialogVisible"
>
<destroyOutDialog

@ -240,10 +240,10 @@
></prescribeCodePanel>
</el-tab-pane>
<el-tab-pane label="整单详情">
<PanelOrderAllDetail
<CollectFinishOrderDetail
v-if="panelALive"
:prescribeData="curRow"
></PanelOrderAllDetail>
></CollectFinishOrderDetail>
</el-tab-pane>
@ -261,7 +261,7 @@ import { convertDate } from '@/utils/date'
import prescribeCodePanel from './PanelOrderTagCode'
import PanelOrderManuTagCode from './PanelOrderManuTagCode'
import prescribeOriginPanel from '@/views/collect/PannelOrderBiz'
import PanelOrderAllDetail from '@/views/collect/PanelOrderAllDetail'
import CollectFinishOrderDetail from '@/views/collect/CollectFinishOrderDetail'
import { orderPage } from '@/api/collect/collectOrder'
import { filterWorkOptimize } from '@/api/basic/workPlace/sysWorkplaceManage'
@ -330,7 +330,7 @@ export default {
},
components: {
addOrder, errOrder, prescribeCodePanel, prescribeOriginPanel, PanelOrderManuTagCode, PanelOrderAllDetail
addOrder, errOrder, prescribeCodePanel, prescribeOriginPanel, PanelOrderManuTagCode, CollectFinishOrderDetail
},
methods: {

Loading…
Cancel
Save