4/8 退货1.0

dev2.5_scan
wangwei 3 months ago
parent 9410b60dc0
commit aa168e3a15

@ -42,6 +42,7 @@ export function orderDetail(query) {
}); });
} }
export function allDetail(query) { export function allDetail(query) {
return axios({ return axios({
url: "/udiwms/basic/collect/order/allDetail", url: "/udiwms/basic/collect/order/allDetail",
@ -328,6 +329,16 @@ export function returnOrderSubmit(query) {
} }
export function splitOrderCode(query) {
return axios({
url: "/udiwms/ioSplit/collect/order/splitOrderCode",
method: "post",
data: query
});
}
export function finishReturnOrder(query) { export function finishReturnOrder(query) {
return axios({ return axios({
@ -336,3 +347,33 @@ export function finishReturnOrder(query) {
data: query data: query
}); });
} }
export function returnOrderDetail(query) {
return axios({
url: "/udiwms/basic/collect/ReturnOrder/detail",
method: "get",
params: query
});
}
export function splitReturnOrderCode(query) {
return axios({
url: "/udiwms/ioSplit/collect/order/splitReturnOrderCode",
method: "post",
data: query
});
}
/**
* 退货删除或减扫码明细
* @param query
* @returns {AxiosPromise}
*/
export function codeReturnRemove(query) {
return axios({
url: "/udiwms/ioSplit/collect/code/codeReturnRemove",
method: "post",
data: query
});
}

@ -24,7 +24,7 @@
<div class="table-cell count">{{ scope.row.count }}</div> <div class="table-cell count">{{ scope.row.count }}</div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="应扫码数量" prop="scanActCount" :min-width="120"> <el-table-column label="应扫整取码数量" prop="scanActCount" :min-width="120">
<template v-slot="scope"> <template v-slot="scope">
<!--<div v-if="scope.row.autoTagStatus === 2" class="table-cell warning">--> <!--<div v-if="scope.row.autoTagStatus === 2" class="table-cell warning">-->
<!-- 无需扫码--> <!-- 无需扫码-->
@ -60,13 +60,19 @@
<el-table-column <el-table-column
fixed="right" fixed="right"
label="操作" label="操作"
width="120" width="240"
> >
<!-- :disabled="!scope.row.scanCount"-->
<template slot-scope="scope"> <template slot-scope="scope">
<el-button type="primary" @click="scanDetail(scope.row)" style="font-size: 14px" <el-button type="primary" @click="scanDetail(scope.row)" style="font-size: 14px"
:disabled="!scope.row.scanCount"
> >
扫码明细({{ scope.row.scanCount || 0 }}) 赋码明细
<!--({{ scope.row.scanCount || 0 }})-->
</el-button>
<el-button type="primary" @click="splitReturnOrder(scope.row)" style="font-size: 14px"
:disabled="scope.row.isSplit != 1"
>
拆零退货
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
@ -80,24 +86,79 @@
@pagination="preHandleCurrentChange" @pagination="preHandleCurrentChange"
></pagination> ></pagination>
<el-dialog <el-dialog
title="扫码明细" title="扫码明细"
:visible.sync="scanDetailVisible" :visible.sync="scanDetailVisible"
:close-on-click-modal="false" :close-on-click-modal="false"
:close-on-press-escape="false" :close-on-press-escape="false"
v-if="scanDetailVisible" v-if="scanDetailVisible"
width="65%" width="75%"
append-to-body append-to-body
> >
<PanelOrderManuTagCode <div class="double-table-container">
:fifoSplit="3" <!-- 第一个表格 -->
:prescribeData="prescribeData" <div class="table-wrapper">
:bizId="bizId" <h3>原始处方追溯码</h3>
:closeScanDialog="closeScanDialog" <div class="table-scroll">
></PanelOrderManuTagCode> <el-table
:data="codeDetailList"
style="width: 100%; min-width: 500px;" max-height="500" :row-style="{height: '32.8px' }">
<el-table-column
type="index"
label="序号"
>
</el-table-column>
<el-table-column property="udiCode" label="追溯码" width="180" />
<el-table-column property="cpmctymc" label="产品通用名称" width="100" />
<el-table-column property="nameCode" label="产品标识" width="100" />
<el-table-column property="ggxh" label="规格" width="80" />
<el-table-column property="batchNo" label="批次号" width="100" />
<el-table-column property="scanCount" label="扫码数量" width="80" />
<el-table-column property="produceDate" label="生产日期" width="100" />
<el-table-column property="expireDate" label="过期时间" width="100" />
<el-table-column property="serialNo" label="序列号" width="100" />
</el-table>
</div>
</div>
<!-- 第二个表格 -->
<div class="table-wrapper">
<h3>退货处方追溯码</h3>
<div class="table-scroll">
<el-table
:data="codeReturnDetailList"
style="width: 100%; min-width: 500px;"max-height="500">
<el-table-column
type="index"
label="序号"
>
</el-table-column>
<el-table-column property="udiCode" label="追溯码" width="180" />
<el-table-column property="cpmctymc" label="产品通用名称" width="100" />
<el-table-column property="nameCode" label="产品标识" width="100" />
<el-table-column property="ggxh" label="规格" width="80" />
<el-table-column property="batchNo" label="批次号" width="100" />
<el-table-column property="scanCount" label="扫码数量" width="80" />
<el-table-column property="produceDate" label="生产日期" width="100" />
<el-table-column property="expireDate" label="过期时间" width="100" />
<el-table-column property="serialNo" label="序列号" width="100" />
<el-table-column
fixed="right"
label="操作"
width="100">
<template #default="scope">
<el-button @click="deleteCode(scope.row)" type="text" size="small">减一</el-button>
<el-button @click="deleteMan(scope.row)" type="text" size="small">删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
</div>
</div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
@ -105,8 +166,13 @@
import { convertDate } from '@/utils/date' import { convertDate } from '@/utils/date'
import { detail } from '@/api/basic/sicker/prescribeApi' import { detail } from '@/api/basic/sicker/prescribeApi'
import { executeFuc, getHead } from '@/utils/customConfig' import { executeFuc, getHead } from '@/utils/customConfig'
import { orderDetail, codeRemove } from '@/api/collect/collectOrder' import {
import PanelOrderManuTagCode from '@/views/collect/PanelOrderManuTagCode' returnOrderDetail,
codeRemove,
splitReturnOrderCode,
manualCodeDetail,
autoCodeResult, codeReturnRemove
} from '@/api/collect/collectOrder'
/** /**
* 处方退药码明细 * 处方退药码明细
@ -147,39 +213,57 @@ export default {
countVisible: false, countVisible: false,
scanDetailVisible: false, scanDetailVisible: false,
bizId: null, bizId: null,
codingStatus: '已赋码' codingStatus: '已赋码',
//
fifoSplit:3,
codeQuery: {
fifoSplit: null,
bizIdFk: null,
relId:null,
page: 1,
limit: 10,
},
codeRetureQuery: {
fifoSplit: null,
bizIdFk: null,
page: 1,
limit: 10,
},
codeDetailList: [],
codeReturnDetailList: [],
codeTotal: 0,
} }
}, },
methods: { methods: {
deleteMan(_this, row) { deleteMan(row) {
_this.$confirm('是否确定删除该条扫码?', '提示', { this.$confirm('是否确定删除该条扫码?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
_this.loading = true this.codeRemoveMan(row.id, 2)
_this.codeRemoveMan(row.id, 2)
}) })
}, },
deleteCode(_this, row) { deleteCode(row) {
_this.$confirm('是否确定移除一个条码?', '提示', { this.$confirm('是否确定移除一个条码?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
cancelButtonText: '取消', cancelButtonText: '取消',
type: 'warning' type: 'warning'
}).then(() => { }).then(() => {
_this.loading = true this.codeRemoveMan(row.id, 1)
_this.codeRemoveMan(row.id, 1)
}) })
}, },
codeRemoveMan(codeManId, delType) { codeRemoveMan(codeManId, delType) {
let post = { let post = {
codeManId: codeManId, codeManId: codeManId,
delType: delType delType: delType,
orderId:this.prescribeData.billNo
} }
codeRemove(post).then((response) => { codeReturnRemove(post).then((response) => {
if (response.code === 20000) { if (response.code === 20000) {
this.$message.success('操作成功!') this.$message.success('操作成功!')
this.getList(this) this.getReturnCodeDetailList()
this.getPrescribeDetail(this)
} else { } else {
this.$message.error(response.message) this.$message.error(response.message)
} }
@ -223,7 +307,7 @@ export default {
_this.preQuery.orderIdFk = this.prescribeData.billNo _this.preQuery.orderIdFk = this.prescribeData.billNo
} }
_this.preLoading = true _this.preLoading = true
orderDetail(_this.preQuery).then(res => { returnOrderDetail(_this.preQuery).then(res => {
_this.preLoading = false _this.preLoading = false
if (res.code != 20000) { if (res.code != 20000) {
_this.$message.error(res.message) _this.$message.error(res.message)
@ -239,8 +323,26 @@ export default {
scanDetail(row) { scanDetail(row) {
this.bizId = row.id this.bizId = row.id
this.getCodeDetailList(row)
this.getReturnCodeDetailList()
this.scanDetailVisible = true this.scanDetailVisible = true
}, },
//退
splitReturnOrder(row){
let query = {
billNo :row.orderIdFk,
workPlaceCode: this.$route.query.workplaceId,
relId:row.relId
}
splitReturnOrderCode(query).then(res => {
if (res.code == 20000){
this.getPrescribeDetail(this)
return this.$message.success("拆零成功")
}else {
return this.$message.error(res.message)
}
})
},
closeScanDialog() { closeScanDialog() {
this.getPrescribeDetail(this) this.getPrescribeDetail(this)
@ -261,12 +363,47 @@ export default {
if (row.shouldCount === 0) return 'error' if (row.shouldCount === 0) return 'error'
return row.scanCount < row.shouldCount ? 'error' : 'success' return row.scanCount < row.shouldCount ? 'error' : 'success'
}, },
getCodeDetailList(row) {
this.fifoSplit = 3
if (this.prescribeData == null)
return
if (this.prescribeData != null) {
this.codeQuery.orderIdFk = this.prescribeData.remark
this.codeQuery.relId = row.relId
}
manualCodeDetail(this.codeQuery).then(res => {
this.codeLoading = false
if (res.code != 20000) {
this.$message.error(res.message)
return
}
this.codeDetailList = res.data.list
}).catch(() => {
this.$message.error("数据加载失败")
})
},
getReturnCodeDetailList() {
this.fifoSplit = 3
if (this.prescribeData == null)
return
if (this.prescribeData != null) {
this.codeRetureQuery.orderIdFk = this.prescribeData.billNo
this.codeRetureQuery.bizIdFk = this.bizId
}
manualCodeDetail(this.codeRetureQuery).then(res => {
if (res.code != 20000) {
this.$message.error(res.message)
return
}
this.codeReturnDetailList = res.data.list
}).catch(() => {
this.$message.error("数据加载失败")
})
},
}, },
components: { components: {
PanelOrderManuTagCode
}, },
created() { created() {
this.getPrescribeDetail(this) this.getPrescribeDetail(this)
@ -308,4 +445,22 @@ export default {
color: #56a717; color: #56a717;
} }
.double-table-container {
display: flex;
justify-content: space-between;
gap: 20px;
}
.table-wrapper {
flex: 1;
overflow: hidden;
}
h3 {
margin-bottom: 10px;
font-weight: bold;
}
/*.table-scroll {*/
/* overflow-x: auto;*/
/*}*/
</style> </style>

@ -116,7 +116,8 @@
type="tel" type="tel"
:placeholder="this.placeholder" :placeholder="this.placeholder"
v-model="scanCode" v-model="scanCode"
size="50" size="80"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -145,7 +146,19 @@
type="primary" type="primary"
:disabled="!formData.billNo" :disabled="!formData.billNo"
@click.native="confirmFinishOrder()" @click.native="confirmFinishOrder()"
>退货完成 >完成
</el-button>
<!--<el-button-->
<!-- type="primary"-->
<!-- :disabled="!formData.billNo"-->
<!-- @click.native="fullFinishOrder()"-->
<!--&gt;整单退货-->
<!--</el-button>-->
<el-button
type="primary"
:disabled="!formData.billNo || disabledSplitReturnOrder"
@click.native="splitReturnOrder()"
>整单拆零退货
</el-button> </el-button>
</el-button-group> </el-button-group>
</el-col> </el-col>
@ -314,7 +327,7 @@ import {
findByBill, findByBill,
findFromCorp, findFromCorp,
orderDetail, orderDetail,
removeByScanCode, finishReturnOrder removeByScanCode, finishReturnOrder, returnOrderSubmit, splitReturnOrderCode, splitOrderCode
} from '@/api/collect/collectOrder' } from '@/api/collect/collectOrder'
import PanelOrderAllDetail from '@/views/collect/PanelOrderAllDetail' import PanelOrderAllDetail from '@/views/collect/PanelOrderAllDetail'
import { getWorkBindBusTypes, removeBusTypeById } from '@/api/basic/workPlace/sysWorkplaceDocuments' import { getWorkBindBusTypes, removeBusTypeById } from '@/api/basic/workPlace/sysWorkplaceDocuments'
@ -438,7 +451,8 @@ export default {
}, },
labelName: 1, labelName: 1,
scanStatus: null, // 1:; null scanStatus: null, // 1:; null
collectSet: {} collectSet: {},
disabledSplitReturnOrder: false,
} }
}, },
@ -651,7 +665,7 @@ export default {
_this.$nextTick(() => { _this.$nextTick(() => {
_this.panelALive = true _this.panelALive = true
}) })
// _this.getBizDetailList(); _this.getBizDetailList();
_this.vailOrderFinish() _this.vailOrderFinish()
}, },
refreshCodesPanelP() { refreshCodesPanelP() {
@ -928,6 +942,7 @@ export default {
this.formData.tagStatus = 2 this.formData.tagStatus = 2
this.formData.insert = false this.formData.insert = false
this.formData = res.data this.formData = res.data
this.formData.confirmFinish = false
this.curRow = this.formData this.curRow = this.formData
this.$refs.inputRef.focus() this.$refs.inputRef.focus()
this.refreshCodesPanel(this) this.refreshCodesPanel(this)
@ -993,6 +1008,71 @@ export default {
}).catch(() => { }).catch(() => {
}) })
}, },
fullFinishOrder(){
this.$confirm('是否确定整单处方退货?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let query = {
billNo: this.formData.billNo,
busType:this.formData.busType
}
returnOrderSubmit(query).then(res => {
if (res.code == 20000){
// const audio = new Audio(require('@/assets/audioFiles/order.mp3'))
// audio.play()
this.resetSplit()
return this.$message.success("退货成功")
}else {
return this.$message.error(res.message)
}
})
}).catch(() => {
})
},
resetSplit() {
this.formData = {
billNo: null,
tagStatus: -1,
workPlaceCode: this.formData.workPlaceCode,
busType: this.formData.busType,
shipper: null,
fromCorp: null
}
this.selectSysParam()
this.curRow = null
this.formData.confirmFinish = false
this.clearCode()
this.$refs.inputRef.focus()
this.$refs.inputRef.select()
},
splitReturnOrder(){
this.$confirm('是否确定整单拆零退货?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let query = {
billNo: this.formData.billNo,
busType:this.formData.busType,
workPlaceCode:this.workplaceId
}
splitOrderCode(query).then(res => {
if (res.code == 20000){
// const audio = new Audio(require('@/assets/audioFiles/order.mp3'))
// audio.play()
this.disabledSplitReturnOrder = true
this.refreshCodesPanel(this)
return this.$message.success("退货成功")
}else {
return this.$message.error(res.message)
}
})
}).catch(() => {
})
},
finishOrder() { finishOrder() {
finishReturnOrder(this.formData).then(res => { finishReturnOrder(this.formData).then(res => {
@ -1000,7 +1080,7 @@ export default {
if (res.code == 20000) { if (res.code == 20000) {
const audio = new Audio(require('@/assets/audioFiles/order.mp3')) const audio = new Audio(require('@/assets/audioFiles/order.mp3'))
audio.play() audio.play()
this.reset() this.resetSplit()
return this.$message.success("退货成功") return this.$message.success("退货成功")
if (this.formDataVisible.scanType != 1) { if (this.formDataVisible.scanType != 1) {
this.findCurOrder() this.findCurOrder()
@ -1084,6 +1164,7 @@ export default {
} else if (temp.tagStatus === 2 || temp.tagStatus === 1) { } else if (temp.tagStatus === 2 || temp.tagStatus === 1) {
this.formData = temp this.formData = temp
this.formData.confirmFinish = false
// this.generateBarcode() // this.generateBarcode()
this.panelALive = true this.panelALive = true
this.startDeal() this.startDeal()
@ -1754,4 +1835,8 @@ export default {
margin-left: 20px; margin-left: 20px;
margin-right: 10px; margin-right: 10px;
} }
/*.el-input__inner {*/
/* width: 10% !important;*/
/*}*/
</style> </style>

Loading…
Cancel
Save