委托验收相关功能

prod
anthonywj 2 years ago
parent 400a852ab4
commit 0e5acf54e7

@ -82,3 +82,21 @@ export function getBusTypeListByUser(params) {
params: params params: params
}); });
} }
export function filterUnUse(params) {
return axios({
url: "/udiwms/localBusType/filterUnUse",
method: "get",
params: params
});
}
export function findByInvUser(query) {
return axios({
url: "/udiwms/busType/findByInvUser",
method: "get",
params: query
});
}

@ -0,0 +1,28 @@
import axios from '@/utils/request'
export function getAcceptOrder(query) {
return axios({
url: "/udiwms/stock/order/accept/getOrder",
method: "get",
params: query
});
}
export function acceptClear(query) {
return axios({
url: "/udiwms/stock/order/acceptClear",
method: "post",
data: query
});
}
export function acceptAddCode(query) {
return axios({
url: "/udiwms/stock/order/accept/addCode",
method: "post",
data: query
});
}

@ -393,3 +393,14 @@ export function getOrderList(params) {
params: params params: params
}); });
} }
export function updateStatus(query) {
return axios({
url: "/spms/inout/order/web/updateStatus",
method: "post",
data: query
});
}

@ -9,13 +9,6 @@ export function filterSubAll(query) {
}); });
} }
export function findByInvUser(query) {
return axios({
url: "/udiwms/busType/findByInvUser",
method: "get",
params: query
});
}
//获取用户所有关联仓库 //获取用户所有关联仓库
export function findInvByUser(query) { export function findInvByUser(query) {

@ -0,0 +1,44 @@
import axios from '@/utils/request'
export function getEntrustRece(query) {
return axios({
url: "/spms/entrust/rece/filter",
method: "get",
params: query
});
}
export function deleteEntrustRece(query) {
return axios({
url: "/spms/entrust/rece/delete",
method: "post",
data: query
});
}
export function updateEntrustRece(query) {
return axios({
url: "/spms/entrust/rece/update",
method: "post",
data: query
});
}
export function insertEntrustRece(query) {
return axios({
url: "/spms/entrust/rece/add",
method: "post",
data: query
});
}
export function filterNoUseBusType(query) {
return axios({
url: "/spms/entrust/rece/filterAllNoUse",
method: "get",
params: query
});
}

@ -140,8 +140,8 @@
<el-button <el-button
type="text" type="text"
size="small" size="small"
@click.native.stop="checkOrder(scope.row.id)" @click.native.stop="reviewOrder(scope.row)"
>验单据 >单据
</el-button </el-button
> >
</template> </template>
@ -444,6 +444,22 @@
</el-tab-pane> </el-tab-pane>
</el-tabs> </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>
</div> </div>
</template> </template>
@ -461,6 +477,7 @@ import {selectSysParamByKey} from "@/api/param/systemParamConfig";
import {getBizDetailList} from "@/api/inout/orderDetailBiz"; import {getBizDetailList} from "@/api/inout/orderDetailBiz";
import {getCodeDetailList} from "@/api/inout/orderDetailCode"; import {getCodeDetailList} from "@/api/inout/orderDetailCode";
import {getResultDetailList} from "@/api/inout/orderDetailResult"; import {getResultDetailList} from "@/api/inout/orderDetailResult";
import AcceptOrder from "@/views/inout/IoReviewOrder";
const formJson = { const formJson = {
site_id: "", site_id: "",
@ -479,7 +496,7 @@ export default {
mainAction: null, mainAction: null,
action: null, action: null,
page: 1, page: 1,
status: 10, status: 6,
limit: 10, limit: 10,
startTime: null, startTime: null,
endTime: null, endTime: null,
@ -493,6 +510,7 @@ export default {
3: "校验异常", 3: "校验异常",
4: "校验成功", 4: "校验成功",
}, },
list: [],
storageList: [], storageList: [],
subInvList: [], subInvList: [],
total: 0, total: 0,
@ -579,9 +597,13 @@ export default {
resultTotal: 0, resultTotal: 0,
resultDetailLoading: false, resultDetailLoading: false,
resultDetailList: [], resultDetailList: [],
acceptQuery: null,
acceptOrderVisible: false,
}; };
}, },
components: {}, components: {AcceptOrder},
methods: { methods: {
onReset() { onReset() {
this.$router.push({ this.$router.push({
@ -684,10 +706,9 @@ export default {
}, },
// //
getList() { getList() {
this.loading = true; this.loading = true;
this.currentRow = null; getDraft(this.filterQuery)
this.clearDetailList();
getOrderList(this.filterQuery)
.then((response) => { .then((response) => {
this.loading = false; this.loading = false;
if (response.code === 20000) { if (response.code === 20000) {
@ -703,6 +724,27 @@ export default {
this.list = []; this.list = [];
this.total = 0; this.total = 0;
}); });
// this.loading = true;
// this.currentRow = null;
// 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) { deleteOrders(data) {
this.loading = true; this.loading = true;
@ -887,6 +929,22 @@ export default {
editResultDialog(row) { editResultDialog(row) {
}, },
//
closeAcceptDialog() {
this.acceptOrderVisible = false;
},
//
reviewOrder(row) {
this.acceptQuery = row;
this.acceptOrderVisible = true;
},
parentByFn: function (childValue) {
this.getList();
},
}, },
filters: { filters: {
statusFilterType(status) { statusFilterType(status) {

@ -179,7 +179,7 @@
</el-form> </el-form>
</el-card> </el-card>
<el-tabs type="border-card" style="margin: 5px"> <el-tabs type="border-card" style="margin: 5px">
<el-tab-pane label="业务详情"> <el-tab-pane label="业务详情" v-if="bizShow">
<biz-detail-panel :idQuery="orderFormData" :refreshPanel="refreshCodesPanel" :refreshOrder="refreshOrder" <biz-detail-panel :idQuery="orderFormData" :refreshPanel="refreshCodesPanel" :refreshOrder="refreshOrder"
v-if="isBizDetailAlive"></biz-detail-panel> v-if="isBizDetailAlive"></biz-detail-panel>
</el-tab-pane> </el-tab-pane>
@ -266,35 +266,27 @@ import {
errorCodeList, addOrderWeb, deleteCodesTempById, submitOrderWeb, saveOrderWeb, errorCodeList, addOrderWeb, deleteCodesTempById, submitOrderWeb, saveOrderWeb,
updateCodeBindSup, enterCodeWeb updateCodeBindSup, enterCodeWeb
} from "../../api/inout/order"; } from "../../api/inout/order";
import {filterSubByInv, findByFrom, findByInvUser, findInvByUser} from "../../api/system/invSubWarehouse"; import {findByFrom, findInvByUser} from "../../api/system/invSubWarehouse";
import draggable from "vuedraggable"; import draggable from "vuedraggable";
import {parseTime} from "../../utils/coTools"; import {parseTime} from "../../utils/coTools";
import {getBasicUnitMaintains} from "../../api/basic/basicUnitMaintain" import {getBasicUnitMaintains} from "../../api/basic/basicUnitMaintain"
import {filterAllByLoc, filterAllByUser} from "@/api/system/invWarehouse";
import {getLocalJoinByUser} from "../../api/basic/busType";
// import DialogSelectUnit from "./DialogSelectUnit";
// import selectRlDialog from "./DialogSelectRl";
// import editCodeDialog from "./editCode";
import codesPanel from "./IoCreateOrderCodes" import codesPanel from "./IoCreateOrderCodes"
import codeDetailPanel from "./IoCreateOrderCodeDetail" import codeDetailPanel from "./IoCreateOrderCodeDetail"
import bizDetailPanel from "./IoCreateOrderBizDetail" import bizDetailPanel from "./IoCreateOrderBizDetail"
import A from "../../plugins/KeyScaner" import A from "../../plugins/KeyScaner"
import {isBlank} from "@/utils/strUtil"; import {findByInvUser} from "@/api/basic/busType";
import {filterDepts} from "@/api/auth/authDept";
import {selectSysParamByKey} from "@/api/param/systemParamConfig";
import store from "@/store";
export default { export default {
name: "idQuery", name: "ioCreateOrder",
props: { props: {
closeDialog: { closeDialog: {
type: Function, type: Function,
required: true, required: true,
}, },
idQuery: { orderQuery: {
type: Object, type: Object,
required: true, required: true,
}, },
@ -332,6 +324,7 @@ export default {
}, },
fromOptions: [], fromOptions: [],
isCodeAlive: true, isCodeAlive: true,
bizShow: true,
isBizDetailAlive: true, isBizDetailAlive: true,
isCodeDetailAlive: true, isCodeDetailAlive: true,
@ -377,15 +370,13 @@ export default {
codesPanel, codeDetailPanel, bizDetailPanel codesPanel, codeDetailPanel, bizDetailPanel
}, },
methods: { methods: {
// //
findInvByUser() { findInvListByUser() {
this.curInvOptions = []; this.curInvOptions = [];
findInvByUser() findInvByUser()
.then((response) => { .then(response => {
this.curInvOptions = response.data || []; this.curInvOptions = response.data || [];
if (this.curInvOptions != null && this.curInvOptions.length > 0) { if (this.curInvOptions != null && this.curInvOptions.length > 0 && this.orderFormData.invWarehouseCode == null) {
this.orderFormData.invWarehouseCode = this.curInvOptions[0].code; this.orderFormData.invWarehouseCode = this.curInvOptions[0].code;
this.getBusTypeByInv() this.getBusTypeByInv()
} }
@ -444,6 +435,10 @@ export default {
// //
actionChange(item) { actionChange(item) {
this.curAction = this.getActionItem(item); this.curAction = this.getActionItem(item);
if (this.curAction.checkEnable && this.curAction.checkWebNew) {
this.bizShow = true;
} else
this.bizShow = false;
if (this.curAction.corpType == 0 || this.curAction.corpType == 2 || (this.curAction.corpType == 1 && !this.curAction.genUnit)) { if (this.curAction.corpType == 0 || this.curAction.corpType == 2 || (this.curAction.corpType == 1 && !this.curAction.genUnit)) {
//1. //1.
this.orderFormData.fromCorp = null; this.orderFormData.fromCorp = null;
@ -604,8 +599,8 @@ export default {
}, },
refreshOrder(idQuery) { refreshOrder(orderQuery) {
this.orderFormData = idQuery; this.orderFormData = orderQuery;
}, },
@ -648,7 +643,6 @@ export default {
this.$refs["dataForm"].clearValidate(); this.$refs["dataForm"].clearValidate();
// //
this.$refs["dataForm"].resetFields(); this.$refs["dataForm"].resetFields();
this.getList();
} }
}, },
enterKey(event) { enterKey(event) {
@ -819,13 +813,13 @@ export default {
created() { created() {
this.codeFormData.code = ''; this.codeFormData.code = '';
this.codeArray = []; this.codeArray = [];
if (this.$isNotBlank(this.idQuery.billNo)) { if (this.$isNotBlank(this.orderQuery.billNo)) {
this.corpOrderIdDisabled = true; this.corpOrderIdDisabled = true;
this.orderFormData = this.idQuery; this.orderFormData = this.orderQuery;
this.actionEnable = true; this.actionEnable = true;
this.refreshCodesPanel(); this.refreshCodesPanel();
// //
this.findInvByUser(); this.findInvListByUser();
this.getBusTypeByInv(); this.getBusTypeByInv();
this.findMethod(this.orderFormData.fromCorp); this.findMethod(this.orderFormData.fromCorp);
this.findFromInvList(); this.findFromInvList();
@ -836,7 +830,7 @@ export default {
this.orderFormData.corpOrderId = parseTime(date, '{y}{m}{d}{h}{i}{s}') + Math.ceil(Math.random() * 89 + 10); this.orderFormData.corpOrderId = parseTime(date, '{y}{m}{d}{h}{i}{s}') + Math.ceil(Math.random() * 89 + 10);
this.orderFormData.deptCode = this.$store.getters.deptCode; this.orderFormData.deptCode = this.$store.getters.deptCode;
this.orderFormData.invCode = this.$store.getters.locInvCode; this.orderFormData.invCode = this.$store.getters.locInvCode;
this.findInvByUser(); this.findInvListByUser();
} }

@ -29,7 +29,7 @@
:total="total" :total="total"
:page.sync="query.page" :page.sync="query.page"
:limit.sync="query.limit" :limit.sync="query.limit"
@pagination="getList" @pagination="getOrderDetails"
/> />
</div> </div>
</div> </div>

@ -229,7 +229,7 @@
> >
<addOrder <addOrder
:closeDialog="closeDialog" :closeDialog="closeDialog"
:idQuery="idQuery" :orderQuery="idQuery"
></addOrder> ></addOrder>
</el-dialog> </el-dialog>
<el-dialog <el-dialog

@ -0,0 +1,423 @@
<template>
<div>
<el-card>
<el-form :model="formData" ref="dataForm" label-width="100px">
<el-button-group style="display: flex;margin: 0px 0 10px 80%; height: 35px">
<el-button
type="primary"
@click.native="finishAccept()"
>完成验收
</el-button
>
<el-button
type="primary"
@click.native="renewAccept()"
>重新验收
</el-button
>
</el-button-group>
<el-row>
<el-col :span="11">
<el-form-item prop="fromCorp" label="单据编号:">
<el-input v-model="formData.billNo" auto-complete="off"
disabled
></el-input>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item prop="fromCorp" label="单据时间:">
<el-input v-model="formData.billdate" auto-complete="off"
disabled
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-form-item prop="fromCorp" label="单据类型:">
<el-input v-model="formData.billTypeName" auto-complete="off"
disabled
></el-input>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item prop="fromCorp" label="当前仓库:">
<el-input v-model="formData.invName" auto-complete="off"
disabled
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-form-item prop="fromCorp" label="往来信息:">
<el-input v-model="formData.corpName" auto-complete="off"
disabled
></el-input>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item prop="fromCorp" label="当前分库:">
<el-input v-model="formData.subInvName" auto-complete="off"
disabled
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="20">
<el-form-item prop="code" label="UDI码:">
<el-input
id="inputer"
placeholder="请输入UDI码"
@focus="getInputFocus($event)"
@keypress.enter.native="enterKey($event)"
ref='inputRef'
style="ime-mode:disabled"
type="tel"
v-model="udiCode"
></el-input>
</el-form-item>
</el-col>
<el-col :span="2">
<el-button
type="primary"
size="small"
@click.native.stop="addCode()"
style="height: 31px; margin-left: 20px"
>添加
</el-button
>
</el-col>
</el-row>
</el-form>
</el-card>
<el-card>
<el-table v-loading="detailLoading"
:data="detailList"
border
:row-style="rowStyle"
:cell-style="{padding:6+'px'}"
style="width: 100%">
<el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="产品通用名" width="160" prop="productName"></el-table-column>
<el-table-column label="包装规格" width="160" prop="spec"></el-table-column>
<el-table-column label="批次号" width="100" prop="batchNo"></el-table-column>
<el-table-column label="注册/备案凭证号" width="150" prop="zczbhhzbapzbh"></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="count"></el-table-column>
<el-table-column label="验收数量" width="100" prop="acceptCount"></el-table-column>
<el-table-column label="价格" width="120" prop="price"></el-table-column>
<el-table-column label="销售清单号(第二票)" width="180" prop="secSalesListNo">
</el-table-column>
<el-table-column label="销售发票号(第一票)" width="180" prop="firstSalesInvNo">
</el-table-column>
<el-table-column label="销售发票号(第二票)" width="180" prop="secSalesInvNo">
</el-table-column>
<el-table-column label="发票日期" width="150" prop="invoiceDate">
</el-table-column>
</el-table>
</el-card>
</div>
</template>
<script>
import A from "../../plugins/KeyScaner"
import {updateStatus, enterCodeWeb} from "@/api/inout/order";
import {getAcceptOrder, acceptClear, acceptAddCode} from "@/api/inout/acceptOrder";
export default {
name: "acceptOrder",
props: {
closeDialog: {
type: Function,
required: true,
},
orderQuery: {
type: Object,
required: true,
},
},
data() {
return {
formData: {},
loading: false,
detailLoading: false,
udiCode: null,
sictomText: "",
originCode: "",
checkSuccess: false,
detailList: [],
query: {
code: "",
corpOrderId: "",
page: 1,
limit: 10,
},
}
},
components: {},
methods: {
rowStyle({row, rowIndex}) {
let rowBackground = {
};
if (row.reCount != row.acceptCount) {
rowBackground.color = '#f60303';
}
return rowBackground;
},
handleCurrentChange(val) {
this.query.page = val;
this.getCodeList();
},
enterKey(event) {
this.checkSuccess = true;
let tQuery = {
originCode: this.originCode,
code: this.udiCode.trim(),
}
enterCodeWeb(tQuery).then((response) => {
if (response.code === 20000) {
this.$refs.inputRef.focus();
this.$refs.inputRef.select();
this.udiCode = response.data;
this.addCode();
} else {
if (response.code == 502) {
this.checkSuccess = false;
this.udiCode = response.data;
this.originCode = this.udiCode;
} else if (response.code == 501) {
this.checkSuccess = false;
this.$message.error(response.message);
} else if (response.code == 503) {
this.checkSuccess = false;
this.udiCode = response.data;
this.$confirm(response.message, "提示", {
type: "warning",
})
.then(() => {
this.udiCode = response.data;
this.addCode();
})
.catch(() => {
this.udiCode = this.originCode;
});
} else if (response.code == 508) {
this.originCode = "";
this.udiCode = "01" + response.data.nameCode;
this.originCode = this.udiCode;
} else {
this.$alert(response.message, '提示', {
confirmButtonText: '确定',
type: 'warning',
closeOnClickModal: true,
callback: action => {
this.$refs.inputRef.focus();
this.$refs.inputRef.select();
}
});
}
}
this.loading = false;
});
},
addCode() {
if (this.$isBlank(this.udiCode)) {
this.$message.error("UDI码不能为空");
}
let postQuery = {
billNo: this.orderQuery.billNo,
orderDetailEntities: this.detailList,
code: this.udiCode,
}
acceptAddCode(postQuery)
.then((response) => {
if (response.code == 20000) {
this.detailLoading = false;
this.detailList = response.data.orderDetailEntities || [];
if (response.data.finishAccept) {
this.$confirm("校验完成,是否立即完成验收?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.finishAccept();
})
.catch(() => {
});
}
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.detailLoading = false;
this.detailList = [];
});
},
getInputFocus(event) {
event.currentTarget.select();
},
finishAccept() {
this.$confirm('是否确定完成验收此单据?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let query = {
stockOrderId: this.orderQuery.billNo,
};
updateStatus(query)
.then((response) => {
if (response.code == 20000) {
this.$message.success("验收成功!");
this.closeDialog();
this.$emit('childByValue', 1)
} else {
this.$message.error(response.message);
}
})
.catch(() => {
});
}).catch(() => {
// this.$message.info('退');
});
},
renewAccept() {
let query = {
billNo: this.orderQuery.billNo,
}
acceptClear(query)
.then((response) => {
this.detailLoading = false;
this.detailList = response.data.orderDetailEntities || [];
})
.catch(() => {
this.detailLoading = false;
this.detailList = [];
});
},
getOrderDetail() {
this.detailLoading = true;
let query = {
billNo: this.orderQuery.billNo,
}
getAcceptOrder(query)
.then((response) => {
this.detailLoading = false;
this.detailList = response.data.orderDetailEntities || [];
if (response.data.exitAccept) {
this.$confirm("检测到上一次验收操作未完成, 是否继续上一次验收?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
})
.catch(() => {
this.renewAccept();
});
}
})
.catch(() => {
this.detailLoading = false;
this.detailList = [];
});
}
},
mounted() {
document.body.ondrop = function (event) {
event.preventDefault();
event.stopPropagation();
};
var that = this;
var inputer = document.getElementById("inputer");
window.sc = new A.KeyScaner(inputer);//DOM
sc.onInput = function (text) {
if (text.includes("delete")) {
that.vailQuery.code = "";
return;
}
if (that.sitcomScan) {
let tempTxt = text;
let str = tempTxt.replace(/[\r]/g, "");
that.sictomText = that.sictomText + str;
that.vailQuery.code = that.sictomText;
} else {
that.vailQuery.code = text;
}
};
inputer.focus();
},
created() {
this.formData = this.orderQuery;
this.getOrderDetail()
},
}
</script>
<style scoped>
#inputer {
width: 100%;
min-height: 30px;
background-color: white;
border: #d0d0d0;
border-style: solid;
border-width: 0.1px;
color: #4a4a4a;
}
#inputer:focus {
width: 100%;
min-height: 30px;
background-color: white;
border: #0080FF;
border-style: solid;
border-width: 0.1px;
color: #4a4a4a;
}
</style>

@ -454,6 +454,7 @@ import {
} from "../../api/inout/order"; } from "../../api/inout/order";
import {getLocalJoinByUser} from "@/api/basic/busType"; import {getLocalJoinByUser} from "@/api/basic/busType";
import {getInvListByUser} from "@/api/system/invWarehouse"; import {getInvListByUser} from "@/api/system/invWarehouse";
import {findInvByUser} from "@/api/system/invSubWarehouse";
import {filterSubByInv} from "@/api/system/invSubWarehouse"; import {filterSubByInv} from "@/api/system/invSubWarehouse";
import {isBlank} from "@/utils/strUtil"; import {isBlank} from "@/utils/strUtil";
import {selectSysParamByKey} from "@/api/param/systemParamConfig"; import {selectSysParamByKey} from "@/api/param/systemParamConfig";
@ -719,10 +720,10 @@ export default {
.then((response) => { .then((response) => {
this.invList = response.data || []; this.invList = response.data || [];
console.log(this.invList) console.log(this.invList)
this.getList(); // this.getList();
}) })
.catch(() => { .catch(() => {
}); })
}, },
checkOrder(orderId) { checkOrder(orderId) {
}, },

@ -0,0 +1,289 @@
<template>
<div>
<el-card>
<el-form :inline="true" :model="filterQuery" class="query-form" size="mini">
<el-form-item class="query-form-item" label="单据类型:">
<el-input
v-model="filterQuery.name"
placeholder="单据类型名称"
></el-input>
</el-form-item>
<el-form-item>
<el-button-group style="margin-left: 10px;display:flex;">
<el-button type="primary" icon="el-icon-refresh" @click="onReset"></el-button>
<el-button type="primary" icon="el-icon-search" @click="getList"></el-button>
<el-button type="primary" icon="el-icon-plus" @click="handleAddClick"
:disabled="!configParms.entrustAction"
>新增
</el-button
>
</el-button-group>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="list" style="width: 100%" border>
<el-table-column label="序号" type="index" width="60" ></el-table-column>
<el-table-column label="扫码单据类型" prop="curName" ></el-table-column>
<el-table-column label="当前仓库" prop="curInvName" ></el-table-column>
<el-table-column label="委托验收仓库" prop="entrustInvName" ></el-table-column>
<el-table-column label="委托验收人" prop="employeeName" >
</el-table-column>
<el-table-column label="操作" >
<template slot-scope="scope">
<el-button
type="text"
size="small"
:disabled="!configParms.entrustAction"
@click.native.stop="handleModifyClick(scope.row)"
>编辑
</el-button
>
<el-button
type="text"
size="small"
:disabled="!configParms.entrustAction"
@click.native.stop="deleteDialog(scope.row)"
>删除
</el-button
>
</template>
</el-table-column>
</el-table>
<el-dialog
title="新增委托验收"
:visible.sync="addDialogVisible"
width="60%"
:close-on-click-modal="false"
:close-on-press-escape="false"
v-if="addDialogVisible"
>
<modifyDialog :inputQuery="inputQuery"></modifyDialog>
<div style="text-align: center">
<el-button type="primary" size="small" icon="search" @click="onAddSubmit"
>提交
</el-button
>
<el-button type="primary" size="small" icon="search" @click="cancelDialog"
>取消
</el-button
>
</div>
</el-dialog>
<el-dialog
title="编辑委托验收"
:visible.sync="modifyDialogVisible"
width="70%"
:close-on-click-modal="false"
:close-on-press-escape="false"
v-if="modifyDialogVisible"
>
<modifyDialog :inputQuery="inputQuery"></modifyDialog>
<div style="text-align: center">
<el-button type="primary" size="small" icon="search" @click="onModifySubmit"
>提交
</el-button
>
<el-button type="primary" size="small" icon="search" @click="cancelDialog"
>取消
</el-button
>
</div>
</el-dialog>
<el-pagination
:page-size="filterQuery.limit"
@current-change="handleCurrentChange"
layout="prev, pager, next"
:total="total"
:current-page="filterQuery.page"
></el-pagination>
</el-card>
</div>
</template>
<script>
import {
getEntrustRece,
deleteEntrustRece,
updateEntrustRece,
insertEntrustRece,
} from "@/api/system/param/EntrustRece";
import modifyDialog from "./BasicEntrutsReceModify";
import {findConfig} from "@/api/thrsys/spsSyncStatus";
export default {
data() {
return {
filterQuery: {
name: "",
page: 1,
limit: 20,
},
loading: false,
addDialogVisible: false,
modifyDialogVisible: false,
list: [],
inputQuery: {
action: null,
name: "",
entrustInv: "",
entrustUser: "",
entrustAction: null,
finishRece: false,
curInv: "",
userId: null,
},
enableMap: {
true: "是",
false: "否",
},
mainActionMap: {
WareHouseIn: "入库",
WareHouseOut: "出库"
},
fileList: [],
total: 0,
multipleSelection: [],
uploadFileUrl: null,
headers: {},
configParms: {},
};
},
methods: {
onReset() {
this.$router.push({
path: "",
});
this.filterQuery = {
name: "",
page: 1,
limit: 20,
};
this.getList();
},
cancelDialog() {
this.modifyDialogVisible = false;
this.addDialogVisible = false;
},
handleCurrentChange(val) {
this.filterQuery.page = val;
this.getList();
},
getList() {
this.loading = true;
getEntrustRece(this.filterQuery)
.then((response) => {
this.loading = false;
this.list = response.data.list || [];
this.total = response.data.total || 0;
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
});
},
onAddSubmit() {
insertEntrustRece(this.inputQuery)
.then((response) => {
if (response.code == 20000) {
this.loading = false;
this.cancelDialog();
this.getList();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
this.cancelDialog();
});
},
onModifySubmit() {
updateEntrustRece(this.inputQuery)
.then((response) => {
this.loading = false;
this.cancelDialog();
this.getList();
})
.catch(() => {
this.loading = false;
this.cancelDialog();
});
},
handleAddClick() {
this.inputQuery = {};
this.addDialogVisible = true;
},
handleModifyClick(row) {
this.inputQuery = row;
this.modifyDialogVisible = true;
},
deleteDialog(rowId) {
this.$confirm("此操作将永久删除该委托验收信息, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.deleteOrders(rowId);
})
.catch(() => {
});
},
deleteOrders(data) {
this.loading = true;
let tquery = {
id: data.id + "",
};
deleteEntrustRece(tquery)
.then((response) => {
this.getList();
if (response.code == 20000) {
this.$message({
type: "success",
message: "删除成功!",
});
} else {
this.$message.error(response.message);
}
})
.catch(() => {
});
},
getSyncConfig() {
findConfig()
.then((response) => {
if (response.code == 20000) {
this.configParms = response.data;
}
})
.catch(() => {
});
},
},
components: {
modifyDialog,
},
mounted() {
},
created() {
this.getSyncConfig();
this.getList();
},
};
</script>

@ -0,0 +1,274 @@
<template>
<div>
<el-form :model="inputQuery" :rules="formRules" ref="dataForm" label-width="100px">
<el-row :gutter="20">
<el-col :span="11">
<el-form-item label="当前仓库" prop="curInv">
<el-select v-model="inputQuery.curInv" placeholder="当前仓库"
@change="curInvChange"
filterable
style="width: 90%"
clearable>
<el-option
v-for="item in invList"
:key="item.code"
:label="item.name"
:value="item.code">
<span style="float: left">{{ item.name }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.warehouseName }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="当前单据类型" prop="action">
<el-select v-model="inputQuery.action" placeholder="请选择" clearable
style="width: 90%"
>
<el-option
v-for="item in busTypes"
:key="item.action"
:label="item.name"
:value="item.action">
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" type="flex">
<el-col :span="11">
<el-form-item label="委托仓库" prop="entrustInv">
<el-select v-model="inputQuery.entrustInv" placeholder="委托仓库"
@change="entrustInvChange"
filterable
style="width: 90%"
clearable>
<el-option
v-for="item in entrustSubInvList"
:key="item.code"
:label="item.name"
:value="item.code">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="委托验收人" prop="entrustUser">
<el-select v-model="inputQuery.entrustUser" placeholder="委托验收人" clearable style="width: 90%">
<el-option
v-for="item in entrustUserArray"
:key="item.userid"
:label="item.employeeName"
:value="item.userid">
<span style="float: left">{{ item.employeeName }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20" type="flex">
<el-col :span="11">
<el-form-item label="生成单据类型" prop="entrustUser">
<el-select v-model="inputQuery.entrustAction" placeholder="单据类型"
style="width: 90%"
clearable>
<el-option
v-for="item in entrustBusArray"
:key="item.action"
: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="11">
<div class="text item">
<el-checkbox v-model="inputQuery.finishRece">
</el-checkbox>
</div>
</el-col>
</el-row>
</el-form>
</div>
</template>
<script>
import {
getBasicThirdSys,
} from "@/api/basic/basicThirdSys";
import {
filterUnUse, findByInvUser
} from "@/api/basic/busType";
import {filterAll, filterNext, warehouseBussinessTypeList, warehouseUserList} from "@/api/system/invWarehouse";
import {filterSubByInv, filterSub, findInvByUser, findByFrom} from "@/api/system/invSubWarehouse";
export default {
name: "inputQuery",
props: {
inputQuery: {
type: Object,
required: true,
},
},
data() {
return {
filterQuery: {
enabled: true,
isBuType: true,
isFilterBind: true,
},
storageList: [],
invList: [],
entrustSubInvList: [],
entrustStorageList: [],
orderTypeList: [],
fromSpecialOptions: [],
thirdSys: [],
busTypes: [],
entrustBusArray: [],
entrustUserArray: [],
formRules: {
action: [
{required: true, message: "请输入扫码单据类型", trigger: "blur"}
],
entrustInv: [
{required: true, message: "请输入委托验收人仓库", trigger: "blur"}
],
entrustUser: [
{required: true, message: "请输入委托验收人", trigger: "blur"}
],
},
}
},
methods: {
//
findCurInvs() {
this.invList = [];
findInvByUser()
.then((response) => {
this.invList = response.data || [];
})
.catch(() => {
});
},
//
curInvChange() {
this.inputQuery.action = null;
this.inputQuery.entrustInv = null;
this.inputQuery.entrustUser = null;
this.inputQuery.entrustAction = null;
this.getOrderType();
this.findEntrustInv();
},
//
getOrderType() {
let query = {
code: this.inputQuery.curInv
}
findByInvUser(query).then((response) => {
this.busTypes = response.data || [];
}).catch(() => {
})
},
//
findEntrustInv() {
let query = {
locInvCode: this.inputQuery.curInv,
};
findByFrom(query)
.then((response) => {
this.entrustSubInvList = response.data || [];
})
.catch(() => {
});
},
//
entrustInvChange() {
this.inputQuery.entrustUser = null;
this.inputQuery.entrustAction = null;
this.getUserBus();
},
getUserBus() {
let query = {
code: this.inputQuery.entrustInv,
}
//
warehouseUserList(query).then((res) => {
this.entrustUserArray = [];
this.entrustUserArray = res.data.list;
}).catch((error) => {
this.$message.error("用户数据加载失败")
});
//
warehouseBussinessTypeList(query).then((res) => {
this.entrustBusArray = res.data.list;
}).catch((error) => {
this.$message.error("单据类型数据加载失败")
});
},
},
computed: {
corpType() {
return this.inputQuery.corpType;
}
},
created() {
this.findCurInvs();
if (this.inputQuery.action != null) {
//----
this.getOrderType();
this.findEntrustInv();
this.getUserBus();
}
},
};
</script>
<style scoped>
.itemTag {
float: left;
text-align: left;
margin-top: 10px;
width: 100px;
}
.text {
font-size: 13px;
font-family: "Microsoft YaHei";
}
</style>
Loading…
Cancel
Save