You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udiwms-vue-frame/src/views/inout/IoCheckAuditOrder.vue

1270 lines
38 KiB
Vue

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<div>
<el-card class="el-card">
<el-form :model="filterQuery" class="query-form" size="mini" label-width="100px" v-show="showSearch">
<el-row>
<el-col :span="6">
<el-form-item class="query-form-item" label="单号:">
<el-input v-model="filterQuery.billNo" placeholder="请输入单号"
style="width: 90%"
clearable="true"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item class="query-form-item" label="出入库类型:">
<el-select v-model="filterQuery.mainAction" placeholder="请选择出入库类型" style="width: 90%">
<el-option label="全部" value=""></el-option>
<el-option label="入库" value="WareHouseIn"></el-option>
<el-option label="出库" value="WareHouseOut"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item class="query-form-item" label="单据类型:">
<el-select v-model="filterQuery.action" placeholder="请选择单据类型"
style="width: 90%"
clearable>
<el-option
v-for="item in busTypes"
:key="item.name"
:label="item.name"
:value="item.action">
<span style="float: left">{{ item.name }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item class="query-form-item" label="所属仓库:">
<el-select v-model="filterQuery.invCode" placeholder="请选择所属仓库" clearable="true"
style="width: 90%"
@change="invChange"
>
<el-option
v-for="item in invList"
: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-row>
<el-col :span="6">
<el-form-item class="query-form-item" label="创建时间:">
<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="结束日期"
style="width: 90%"
>
</el-date-picker>
</el-form-item>
</el-col>
</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 type="primary" icon="el-icon-plus" @click="newReview"
>新增单据审核
</el-button
>
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" highlight-current-row
border
@row-click="handleSelectionChange"
:default-sort="defaultSort"
@sort-change="handleSortChange">
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column label="单据号" prop="billNo" show-overflow-tooltip width="180"></el-table-column>
<el-table-column label="单据类型" prop="billTypeName" width="150"></el-table-column>
<el-table-column label="往来单位" prop="fromName" width="220">
</el-table-column>
<el-table-column label="创建时间" prop="createTime" show-overflow-tooltip width="150"
sortable="custom"
:sort-orders="['ascending', 'descending']">
<!--<template slot-scope="scope">-->
<!-- <i class="el-icon-time"></i>-->
<!-- <span>{{ scope.row.createTime }}</span>-->
<!--</template>-->
</el-table-column>
<el-table-column label="核对时间" prop="checkTime" show-overflow-tooltip width="150"
sortable="custom"
:sort-orders="['ascending', 'descending']">
<!--<template slot-scope="scope">-->
<!-- <i class="el-icon-time"></i>-->
<!-- <span>{{ scope.row.createTime }}</span>-->
<!--</template>-->
</el-table-column>
<el-table-column label="所属部门" prop="deptName" width="120">
</el-table-column>
<el-table-column label="所属仓库" prop="invName" width="120">
</el-table-column>
<el-table-column label="核对人" prop="checkUserName" width="120">
</el-table-column>
<el-table-column label="来源单号" prop="corpOrderId" show-overflow-tooltip width="180"></el-table-column>
<el-table-column label="来源" prop="fromType" width="120">
<template slot-scope="scope">
<span>{{ fromTypeMap[scope.row.fromType] }}</span>
</template>
</el-table-column>
<el-table-column label="审核状态" prop="status" width="100">
<template slot-scope="scope">
<el-tag :type="statusFilterType(scope.row.status)">{{
checkStatus[scope.row.status]
}}
</el-tag>
</template>
</el-table-column>
<el-table-column label="备注" prop="remark" width="180" show-overflow-tooltip>
</el-table-column>
<el-table-column label="操作" width="220" fixed="right">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click.native.stop="printOrder(scope.row)"
>打印
</el-button
>
<el-button
type="text"
size="small"
@click.native="printOrderDetailPDF(scope.row)"
>报表打印
</el-button
>
<!-- 暂时隐藏-->
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- @click.native.stop="rollback(scope.row)"-->
<!-- >撤回-->
<!-- </el-button-->
<!-- >-->
<el-button
type="text"
size="small"
@click.native.stop="reviewOrder(scope.row)"
>审核
</el-button
>
<el-button
type="text"
size="small"
@click.native.stop="deleteDialog(scope.row)"
>删除
</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:limit.sync="filterQuery.limit"
:page.sync="filterQuery.page"
@pagination="getList"
></pagination>
</el-card>
<el-tabs type="border-card" style="margin: 15px">
<!--单据业务详情-->
<el-tab-pane>
<span slot="label">单据 {{ currentRow.billNo }}-业务详情</span>
<el-form :inline="true" :model="bizQuery" class="query-form" size="mini">
<el-form-item class="query-form-item" label="物资名称:">
<el-input
v-model="bizQuery.productName"
placeholder="请输入物资名称"
clearable
>
</el-input>
</el-form-item>
<el-form-item>
<el-button-group>
<el-button
type="primary"
icon="el-icon-refresh"
@click="onBizReset"
>重置
</el-button>
<el-button type="primary" @click="onBizSubmit"
icon="el-icon-search"
>查询
</el-button>
</el-button-group>
</el-form-item>
</el-form>
<el-table v-loading="bizDetailLoading" :data="bizDetailList" style="width: 100%" border
row-key="id"
>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column
label="物资名称"
prop="coName" width="160"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="规格型号" width="160"
prop="spec"
></el-table-column>
<el-table-column
label="批次号" width="120"
prop="batchNo"
></el-table-column>
<el-table-column
label="生产日期" width="120"
prop="productDate"
></el-table-column>
<el-table-column
label="失效日期"
prop="expireDate" width="120"
></el-table-column>
<el-table-column
label="单据数量" width="100"
prop="count"
></el-table-column>
<el-table-column
label="扫码数量"
prop="scanCount" width="100"
></el-table-column>
<el-table-column
label="价格" width="100"
prop="price"
></el-table-column>
<el-table-column
label="计量单位" width="100"
prop="measname"
></el-table-column>
<el-table-column
label="生产企业" width="180"
prop="manufacturer"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="注册/备案号"
prop="certCode" width="180"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="检验报告"
width="160"
prop="filePath"
show-overflow-tooltip
>
<template slot-scope="scope">
<div style="color: #1890ff;" @click="showImgViewer(scope.row)">{{ scope.row.checkFileName }}</div>
</template>
</el-table-column>
<el-table-column
label="冷链报告"
width="160"
prop="coldFilePath"
show-overflow-tooltip
>
<template slot-scope="scope">
<div style="color: #1890ff;" @click="showImgViewerCold(scope.row)">{{ scope.row.checkColdFileName }}</div>
</template>
</el-table-column>
<el-table-column label="操作" width="220" fixed="right">
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click="showImgViewer(scope.row)"
:disabled="scope.row.filePath == null"
>检验报告预览
</el-button
>
<el-button
type="text"
size="small"
@click="showImgViewerCold(scope.row)"
:disabled="scope.row.coldFilePath == null"
>冷链报告预览
</el-button
>
</template>
</el-table-column>
</el-table>
<el-image-viewer v-if="imgViewerVisible" style="z-index:9999" :on-close="closeImgViewer" :url-list="imgList"/>
<el-image-viewer v-if="imgViewerVisibleCold" style="z-index:9999" :on-close="closeImgViewerCold"
:url-list="imgListCold"/>
<pagination
v-show="bizTotal>0"
:total="bizTotal"
:page.sync="bizQuery.page"
:limit.sync="bizQuery.limit"
@pagination="getBizDetailList"
/>
</el-tab-pane>
<!--单据扫码详情-->
<el-tab-pane>
<span slot="label">单据 {{ currentRow.billNo }}-扫码详情</span>
<el-form :inline="true" :model="codeQuery" class="query-form" size="mini">
<el-form-item class="query-form-item" label="物资名称:">
<el-input
v-model="codeQuery.productName"
placeholder="请输入物资名称"
clearable
>
</el-input>
</el-form-item>
<el-form-item>
<el-button-group>
<el-button
type="primary"
icon="el-icon-refresh"
@click="onCodeReset"
>重置
</el-button>
<el-button type="primary" @click="onCodeSubmit"
icon="el-icon-search"
>查询
</el-button>
</el-button-group>
</el-form-item>
</el-form>
<el-table v-loading="codeDetailLoading" :data="codeDetailList" style="width: 100%" border
row-key="id"
>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column
label="物资名称" width="160"
prop="coName"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="规格型号" width="160"
prop="spec"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="批次号" width="120"
prop="batchNo"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="生产日期" width="120"
prop="productDate"
></el-table-column>
<el-table-column
label="失效日期" width="120"
prop="expireDate"
></el-table-column>
<el-table-column
label="单据数量" width="100"
prop="orderCount"
></el-table-column>
<el-table-column
label="扫码数量"
prop="reCount" width="100"
></el-table-column>
<el-table-column
label="计量单位" width="100"
prop="measname"
></el-table-column>
<el-table-column
label="注册/备案号" width="180"
prop="certCode"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="生产企业" width="180"
prop="manufacturer"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="供应商"
prop="supName" width="180"
show-overflow-tooltip
></el-table-column>
</el-table>
<pagination
v-show="codeTotal>0"
:total="codeTotal"
:page.sync="codeQuery.page"
:limit.sync="codeQuery.limit"
@pagination="getCodeDetailList"
/>
</el-tab-pane>
<!--单据扫码明细-->
<el-tab-pane>
<span slot="label">单据 {{ currentRow.billNo }}-扫码明细</span>
<el-form :inline="true" :model="resultQuery" class="query-form" size="mini">
<el-form-item class="query-form-item" label="UDI码:">
<el-input
v-model="resultQuery.code"
placeholder="请输入UDI码"
clearable
>
</el-input>
</el-form-item>
<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"
>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column
label="UDI码"
prop="code"
width="220"
show-overflow-tooltip
></el-table-column>
<el-table-column
label="生产日期"
prop="produceDate"
width="120"
></el-table-column>
<el-table-column
label="失效日期"
prop="expireDate"
width="120"
></el-table-column>
<el-table-column
label="批次号"
prop="batchNo" width="120"
></el-table-column>
<el-table-column
label="序列号"
prop="serialNo" width="120"
></el-table-column>
<el-table-column
label="扫码数量"
prop="count" width="100"
></el-table-column>
<el-table-column
label="实际数量"
prop="reCount" width="100"
></el-table-column>
<el-table-column
label="供应商"
prop="supName" width="180"
></el-table-column>
</el-table>
<pagination
v-show="resultTotal>0"
:total="resultTotal"
:page.sync="resultQuery.page"
:limit.sync="resultQuery.limit"
@pagination="getResultDetailList"
/>
</el-tab-pane>
</el-tabs>
<el-dialog
title="单据审核"
:visible.sync="acceptOrderVisible"
width="80%"
:close-on-click-modal="false"
:close-on-press-escape="false"
v-if="acceptOrderVisible"
>
<accept-order
:closeDialog="closeAcceptDialog"
:orderQuery="acceptQuery"
v-on:childByValue="parentByFn"
></accept-order>
</el-dialog>
<el-dialog
title="新增单据审核"
:visible.sync="newAcceptOrderVisible"
width="80%"
:close-on-click-modal="false"
:close-on-press-escape="false"
v-if="newAcceptOrderVisible"
>
<NewAcceptOrder
:closeDialog="closeAcceptDialog"
v-on:childByValue="parentByFn"
></NewAcceptOrder>
</el-dialog>
</div>
</template>
<script>
import {
deleteByOrderId,
getOrderList, rollUnReceivebackOrder
} from "../../api/inout/order";
import {getLocalJoinByUser} from "@/api/basic/busType";
import {getInvListByUser} from "@/api/system/invWarehouse";
import {isBlank} from "@/utils/strUtil";
import {selectSysParamByKey} from "@/api/param/systemParamConfig";
import {getBizDetailList} from "@/api/inout/orderDetailBiz";
import {getCodeDetailList} from "@/api/inout/orderDetailCode";
import {getCodeList} from "@/api/inout/code";
import AcceptOrder from "@/views/inout/DialogReviewOrder";
import NewAcceptOrder from "@/views/inout/DialogNewReviewOrder";
import {
inspectionOrderPDFFromStatemenTemplateFile,
inspectionOrderPDFFromTemplateFile, orderPDFFromStatemenTemplateFile,
orderPDFFromTemplateFile
} from "@/api/itextpdf/orderPrint"
import {getBasicUnitMaintains} from "@/api/basic/basicUnitMaintain";
import {previewImage,previewFile} from '@/api/purchase/supCompany'
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
const formJson = {
site_id: "",
site_name: "",
describe: "",
ads: [],
};
export default {
name: "IoCheckSuccessOrder",
data() {
return {
defaultSort: {prop: 'createTime', order: 'desc'},
imgList: [],
imgListCold: [],
imgViewerVisible: false,
imgViewerVisibleCold: false,
BASE_URL: process.env.VUE_APP_BASE_API,
IMAGE_URL: process.env.VUE_APP_SYNC_API,
showSearch: true,
filterQuery: {
id: "",
billNo: null,
mainAction: null,
action: null,
statusType: "waitAudited",
page: 1,
limit: 10,
startTime: null,
endTime: null,
invCode: this.$store.getters.locInvCode,
},
customerId: this.$store.getters.customerId,
checkStatus: {
1: "草稿",
2: "等待处理",
3: "等待校验",
4: "处理异常",
5: "待核对",
6: "校验异常",
7: "已审核",
8: "审核拒绝",
9: "正在处理", 10: "待审核", 11: "待配货",
},
reviceStatus: {
1: "未验收",
5: "已验收",
},
storageList: [],
invList: [],
list: [],
total: 0,
loading: false,
index: null,
enableDept: false,
fromTypeMap: {
"1": "UDIMS平台",
"2": "网页新增",
"3": "pda即时校验",
"4": "pda未校验",
"5": "pc端扫码精灵",
"6": "流转自动补单",
"7": "UDI供应商平台",
"8": "平衡补录单据",
"10": "手动补单",
"11": "仓库盘点",
"12": "采购计划",
"13": "领用单据",
"14": "第三方系统单据",
},
deleteData: {
id: "",
status: 10,
},
dialogTableVisible: false,
formLoading: false,
dialogVisible: false,
formData: formJson,
deleteLoading: false,
busTypes: [],
corpLoading: false,
fromOptions: [],
currentRow: {
billNo: ""
},
actDateRange: [],
auditDateRange: [],
pickerOptions: {
shortcuts: [
{
text: "最近一周",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近一个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: "最近三个月",
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
bizQuery: {
productName: null,
orderIdFk: null,
page: 1,
limit: 10
},
bizTotal: 0,
bizDetailLoading: false,
bizDetailList: [],
codeQuery: {
orderIdFk: null,
page: 1,
limit: 10
},
codeTotal: 0,
codeDetailLoading: false,
codeDetailList: [],
resultQuery: {
orderId: null,
code: null,
page: 1,
limit: 10
},
resultTotal: 0,
resultDetailLoading: false,
resultDetailList: [],
acceptQuery: null,
acceptOrderVisible: false,
newAcceptOrderVisible: false,
};
},
components: {AcceptOrder, NewAcceptOrder, ElImageViewer},
methods: {
onReset() {
this.$router.push({
path: "",
});
this.filterQuery = {
id: "",
billNo: null,
mainAction: null,
action: null,
statusType: "waitAudited",
page: 1,
limit: 10,
startTime: null,
endTime: null,
invCode: this.$store.getters.locInvCode,
};
this.actDateRange = [];
this.getList();
},
onSubmit() {
this.loading = true;
if (this.actDateRange !== null) {
this.filterQuery.startTime = this.actDateRange[0];
this.filterQuery.endTime = this.actDateRange[1];
} else {
this.filterQuery.startTime = null;
this.filterQuery.endTime = null;
}
if (this.auditDateRange !== null) {
this.filterQuery.startAduditTime = this.auditDateRange[0];
this.filterQuery.endAduditTime = this.auditDateRange[1];
} else {
this.filterQuery.startAduditTime = null;
this.filterQuery.endAduditTime = null;
}
this.filterQuery.page = 1;
this.getList();
},
hideSearch() {
this.showSearch = !this.showSearch;
},
showImgViewer(row) {
if(row.filePath.substr(-1) == ','){
row.filePath=row.filePath.slice(0, row.filePath.length-1);
}
this.certFileUrl =
this.BASE_URL +
"/udiwms/image/register/file/getImage?type=image2&name="+row.filePath;
this.imgList = [];
this.imgList.push(this.certFileUrl)
let index = row.filePath.lastIndexOf('.');
if(index===-1){
this.$message.error("文件名异常!")
return false
}
if(row.filePath.substr(index+1)==='pdf'){
let pdf = "application/pdf"
let binaryData = [];
previewFile(this.certFileUrl).then(res=>{
binaryData.push(res);
let URL = window.URL.createObjectURL(new Blob(binaryData, {type: pdf}));
window.open(URL);
})
// window.open(this.imgList[0])
return false
}
this.imgViewerVisible = true;
// previewImage({
// imageUrl: this.inputQuery.licenseUrl,
// certFileUrl: this.certFileUrl,
// }).then((response) => {
// if (response.code === 20000) {
// }
// console.log(this.imgList);
// });
const m = (e) => {
e.preventDefault();
};
document.body.style.overflow = "hidden";
document.addEventListener("touchmove", m, false); // 禁止页面滑动
},
showImgViewerCold(row) {
if(row.coldFilePath.substr(-1) == ','){
row.coldFilePath=row.coldFilePath.slice(0, row.coldFilePath.length-1);
}
this.certFileUrl =
this.BASE_URL +
"/udiwms/image/register/file/getImage?type=image2&name="+row.coldFilePath;
this.imgList = [];
this.imgList.push(this.certFileUrl)
let index = row.coldFilePath.lastIndexOf('.');
if(index===-1){
this.$message.error("文件名异常!")
return false
}
if(row.coldFilePath.substr(index+1)==='pdf'){
let pdf = "application/pdf"
let binaryData = [];
previewFile(this.certFileUrl).then(res=>{
binaryData.push(res);
let URL = window.URL.createObjectURL(new Blob(binaryData, {type: pdf}));
window.open(URL);
})
// window.open(this.imgList[0])
return false
}
this.imgViewerVisible = true;
// previewImage({
// imageUrl: this.inputQuery.licenseUrl,
// certFileUrl: this.certFileUrl,
// }).then((response) => {
// if (response.code === 20000) {
// }
// console.log(this.imgList);
// });
const m = (e) => {
e.preventDefault();
};
document.body.style.overflow = "hidden";
document.addEventListener("touchmove", m, false); // 禁止页面滑动
},
closeImgViewer() {
this.imgViewerVisible = false;
const m = (e) => {
e.preventDefault()
};
document.body.style.overflow = 'auto';
document.removeEventListener("touchmove", m, true);
},
closeImgViewerCold() {
this.imgViewerVisibleCold = false;
const m = (e) => {
e.preventDefault()
};
document.body.style.overflow = 'auto';
document.removeEventListener("touchmove", m, true);
},
invChange() {
this.filterQuery.action = null;
this.busTypes = [];
this.getBusType();
},
printOrder(row) {
let tQuery = {
action: row.action,
status: row.status,
}
this.loading = true;
inspectionOrderPDFFromTemplateFile(tQuery).then((response) => {
if (response.code === 20000) {
tQuery = {
templateId: response.data,
status: row.status,
orderIdFk: row.billNo,
action: row.action,
moduleId: 2,
}
orderPDFFromTemplateFile(tQuery).then((response) => {
//将pdf文件转换为url。
const binaryData = [];
binaryData.push(response);
//获取blob链接。
let url = window.URL.createObjectURL(
new Blob(binaryData, {type: "application/pdf"})
);
this.loading = false;
window.open(url);//打开新标签页预览pdf。
}).catch(() => {
this.loading = false;
});
} else {
this.loading = false;
this.$message.error(response.message);
}
}).catch(() => {
this.loading = false;
});
},
printOrderDetailPDF(row) {
let tQuery = {
labelId: 5,
orderIdFk: row.billNo
};
this.loading = true;
inspectionOrderPDFFromStatemenTemplateFile(tQuery).then((response) => {
if (response.code === 20000) {
orderPDFFromStatemenTemplateFile(tQuery).then((response) => {
//将pdf文件转换为url。
const binaryData = [];
binaryData.push(response);
//获取blob链接。
let url = window.URL.createObjectURL(
new Blob(binaryData, {type: "application/pdf"})
);
this.loading = false;
window.open(url);//打开新标签页预览pdf。
this.getOrderQRCodeTextList();
}).catch(() => {
this.loading = false;
});
} else {
this.loading = false;
this.$message.error(response.message);
}
}).catch(() => {
this.loading = false;
});
},
getBusType() {
let query = {
code: this.filterQuery.invCode,
enabled: true,
};
getLocalJoinByUser(query)
.then((response) => {
this.busTypes = response.data.list || [];
})
.catch(() => {
});
},
findMethod(key) {
this.corpLoading = true;
this.fromOptions = [];
let params = {
key: key,
corpType: 2,
page: 1,
limit: 20
};
getBasicUnitMaintains(params).then((res) => {
this.corpLoading = false;
this.fromOptions = res.data.list || [];
}).catch(() => {
this.corpLoading = false;
})
},
corpChange(value) {
if (!isBlank(value)) {
this.findMethod(value);
}
},
handleSelectionChange(val) {
this.currentRow.billNo = val.billNo;
this.getOrderDetails();
},
// 获取单据 业务详情、扫码详情、扫码明细
getOrderDetails() {
this.bizQuery.page = 1;
this.codeQuery.page = 1;
this.resultQuery.page = 1;
this.getBizDetailList();
this.getCodeDetailList();
this.getResultDetailList();
},
// 清空单据详情数据列表
clearDetailList() {
// 清空业务详情
this.bizDetailList = [];
this.bizTotal = 0;
// 清空扫码详情
this.codeDetailList = [];
this.codeTotal = 0;
// 清空扫码明细
this.resultDetailList = [];
this.resultTotal = 0;
},
handleSortChange(column, prop, order) {
if (column.order === 'descending') {
this.filterQuery.sort = 'desc'
} else {
this.filterQuery.sort = 'asc'
}
this.filterQuery.orderBy = column.prop;
this.getList();
},
//获取订单列表
getList() {
this.loading = true;
this.currentRow = {billNo: ""};
this.clearDetailList();
getOrderList(this.filterQuery)
.then((response) => {
this.loading = false;
if (response.code === 20000) {
this.list = response.data.list || [];
this.total = response.data.total || 0;
} else {
this.$message.error(response.message);
}
})
.catch((error) => {
this.$message.error(error.message)
this.loading = false;
this.list = [];
this.total = 0;
});
},
deleteOrders(data) {
this.loading = true;
this.deleteData.billNo = data.billNo;
deleteByOrderId(this.deleteData)
.then((response) => {
if (response.code == 20000) {
this.getList();
this.$message({
type: "success",
message: "删除成功!",
});
} else if (response.code == 520) {
this.$message.error("新增扫码单据列表已不存在该扫码单据!");
this.getList();
} else {
this.$message.error(response.message);
this.getList();
}
})
.catch(() => {
});
},
deleteDialog(row) {
this.$confirm("此操作将永久删除该订单, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.deleteOrders(row);
})
.catch(() => {
});
},
getInvList() {
getInvListByUser()
.then((response) => {
this.invList = response.data || [];
})
.catch(() => {
});
},
onBizReset() {
this.bizQuery = {
productName: null,
orderIdFk: null,
page: 1,
limit: 10
};
if (!isBlank(this.currentRow.billNo)) {
this.getBizDetailList();
}
},
onBizSubmit() {
this.bizQuery.page = 1;
this.getBizDetailList();
},
getBizDetailList() {
if (isBlank(this.currentRow.billNo)) {
this.$message.error("请先选择需要查询的单据!")
return;
}
this.bizDetailLoading = true;
this.bizQuery.orderIdFk = this.currentRow.billNo;
getBizDetailList(this.bizQuery).then((res) => {
this.bizDetailLoading = false;
if (res.code === 20000) {
this.bizDetailList = res.data.list || [];
this.bizTotal = res.data.total || 0;
} else {
this.$message.error(res.message);
this.bizDetailList = [];
this.bizTotal = 0;
}
}).catch((error) => {
this.bizDetailLoading = false;
this.$message.error(error.message);
this.bizDetailList = [];
this.bizTotal = 0;
})
},
onCodeReset() {
this.codeQuery = {
orderIdFk: null,
page: 1,
limit: 10
};
if (!isBlank(this.currentRow.billNo)) {
this.getCodeDetailList();
}
},
onCodeSubmit() {
this.codeQuery.page = 1;
this.getCodeDetailList();
},
getCodeDetailList() {
if (isBlank(this.currentRow.billNo)) {
this.$message.error("请先选择需要查询的单据!")
return;
}
this.codeQuery.orderIdFk = this.currentRow.billNo;
this.codeDetailLoading = true;
getCodeDetailList(this.codeQuery).then((res) => {
this.codeDetailLoading = false;
if (res.code === 20000) {
this.codeDetailList = res.data.list || [];
this.codeTotal = res.data.total || 0;
} else {
this.$message.error(res.message);
this.codeDetailList = [];
this.codeTotal = 0;
}
}).catch((error) => {
this.codeDetailLoading = true;
this.$message.error(error.message);
this.codeDetailList = [];
this.codeTotal = 0;
})
},
onResultReset() {
this.resultQuery = {
orderId: null,
code: null,
page: 1,
limit: 10
};
if (!isBlank(this.currentRow.billNo)) {
this.getResultDetailList();
}
},
onResultSubmit() {
this.resultQuery.page = 1;
this.getResultDetailList();
},
getResultDetailList() {
if (isBlank(this.currentRow.billNo)) {
this.$message.error("请先选择需要查询的单据!")
return;
}
this.resultQuery.orderId = this.currentRow.billNo;
this.resultDetailLoading = true;
getCodeList(this.resultQuery).then((res) => {
this.resultDetailLoading = false;
if (res.code === 20000) {
this.resultDetailList = res.data.list || [];
this.resultTotal = res.data.total || 0;
} else {
this.$message.error(res.message);
this.resultDetailList = [];
this.resultTotal = 0;
}
}).catch((error) => {
this.resultDetailLoading = false;
this.$message.error(error.message);
this.resultDetailList = [];
this.resultTotal = 0;
});
},
//单据撤回
rollback(row) {
this.$confirm('此操作将撤回单据至已校验未审核状态, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let param = {billNo: row.billNo};
rollUnReceivebackOrder(param).then((res) => {
if (res.code === 20000) {
this.$message.success("撤回成功");
this.getList();
} else {
this.$message.error(res.message);
}
})
}).catch(() => {
// this.$message.info('回退失败');
});
},
//验收结束
closeAcceptDialog() {
this.acceptOrderVisible = false;
this.newAcceptOrderVisible = false;
},
//开始验收
reviewOrder(row) {
this.acceptQuery = row;
this.acceptOrderVisible = true;
},
newReview() {
this.newAcceptOrderVisible = true;
},
parentByFn: function (childValue) {
this.getList();
},
statusFilterType(status) {
const statusMap = {
5: "warning",
1: "warning",
6: "danger",
7: "success",
};
return statusMap[status];
},
}
,
mounted() {
document.body.ondrop = function (event) {
event.preventDefault();
event.stopPropagation();
};
}
,
created() {
this.getInvList();
this.getBusType();
selectSysParamByKey({paramKey: "muti_inv_mode"}).then((res) => {
if (res.code === 20000) {
if (res.data.paramValue === "0") {
this.enableDept = true;
}
}
});
this.getList();
}
,
}
;
</script>
<style type="text/scss" lang="scss">
</style>