单据流程修改

ywj_dev
anthonywj 2 years ago
parent 01522980d0
commit 1c61211851

File diff suppressed because it is too large Load Diff

@ -4,8 +4,8 @@
<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="请输入单据类型"
v-model="filterQuery.name"
placeholder="请输入单据类型"
></el-input>
</el-form-item>
<el-form-item class="query-form-item" label="出入库类型:">
@ -31,13 +31,13 @@
>
<el-button type="primary" icon="el-icon-download" @click="exportJsonFile"></el-button>
<el-upload
:action="uploadFileUrl"
multiple
:limit="3"
:headers="headers"
:show-file-list="false"
:on-success="handleChange"
:file-list="fileList"
:action="uploadFileUrl"
multiple
:limit="3"
:headers="headers"
:show-file-list="false"
:on-success="handleChange"
:file-list="fileList"
>
<el-button icon="el-icon-upload2" type="primary">导入单据类型</el-button>
</el-upload>
@ -60,12 +60,17 @@
<span>{{ enableMap[scope.row.enable] }}</span>
</template>
</el-table-column>
<el-table-column label="一次校验" prop="checkEnable">
<el-table-column label="校验业务单" prop="checkEnable">
<template slot-scope="scope">
<span>{{ enableMap[scope.row.checkEnable] }}</span>
</template>
</el-table-column>
<el-table-column label="二次核对" prop="secCheckEnable">
<el-table-column label="一次审核" prop="thrCheckEnable">
<template slot-scope="scope">
<span>{{ enableMap[scope.row.thrCheckEnable] }}</span>
</template>
</el-table-column>
<el-table-column label="二次审核" prop="secCheckEnable">
<template slot-scope="scope">
<span>{{ enableMap[scope.row.secCheckEnable] }}</span>
</template>
@ -73,15 +78,15 @@
<el-table-column label="操作">
<template slot-scope="scope">
<el-button
type="text"
@click.native.stop="handleModifyClick(scope.row)"
type="text"
@click.native.stop="handleModifyClick(scope.row)"
>编辑
</el-button
>
<el-button
type="text"
:disabled="!configParams.typeScan"
@click.native.stop="deleteDialog(scope.row)"
type="text"
:disabled="!configParams.typeScan"
@click.native.stop="deleteDialog(scope.row)"
>删除
</el-button
>
@ -91,14 +96,14 @@
</el-table>
<el-dialog
title="新增扫码单据类型"
:visible.sync="addDialogVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
v-if="addDialogVisible"
class="dialog-two"
width="60%"
top="5vh"
title="新增扫码单据类型"
:visible.sync="addDialogVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
v-if="addDialogVisible"
class="dialog-two"
width="60%"
top="5vh"
>
<modifyDialog :inputQuery="inputQuery"></modifyDialog>
<div slot="footer" class="dialog-footer">
@ -115,12 +120,12 @@
</el-dialog>
<el-dialog
title="编辑单据类型"
:visible.sync="modifyDialogVisible"
width="70%"
:close-on-click-modal="false"
:close-on-press-escape="false"
v-if="modifyDialogVisible"
title="编辑单据类型"
:visible.sync="modifyDialogVisible"
width="70%"
:close-on-click-modal="false"
:close-on-press-escape="false"
v-if="modifyDialogVisible"
>
<modifyDialog :inputQuery="inputQuery" :modifySubmit="onModifySubmit"></modifyDialog>
<div style="text-align: center">
@ -137,11 +142,11 @@
</el-dialog>
<pagination
v-show="total>0"
:total="total"
:limit.sync="filterQuery.limit"
:page.sync="filterQuery.page"
@pagination="getList"
v-show="total>0"
:total="total"
:limit.sync="filterQuery.limit"
:page.sync="filterQuery.page"
@pagination="getList"
></pagination>
</el-card>
</div>
@ -223,6 +228,19 @@ export default {
vailGroupBuy: null,
inStock: null,
actionType: null,
thrCheckEnable: null,
thrCheckWebNew: null,
thrCheckPdaUn: null,
thrCheckPdaEd: null,
thrCheckUdims: null,
thrCheckPc: null,
thrCheckSp: null,
thrCheckChange: null,
thrCheckBalance: null,
thrCheckCopy: null,
},
enableMap: {
true: "是",
@ -269,20 +287,20 @@ export default {
getList() {
this.loading = true;
getBusTypeList(this.filterQuery)
.then((response) => {
if (response.code === 20000) {
this.list = response.data.list || [];
this.total = response.data.total || 0;
} else {
this.$message.error(response.message);
}
this.loading = false;
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
});
.then((response) => {
if (response.code === 20000) {
this.list = response.data.list || [];
this.total = response.data.total || 0;
} else {
this.$message.error(response.message);
}
this.loading = false;
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
});
},
handleCurrentChange(val) {
this.filterQuery.page = val;
@ -304,10 +322,10 @@ export default {
this.$message.error("单据类型名称不能为空!");
return;
}
if (isBlank(this.inputQuery.actionType)) {
this.$message.error("请选择单据类型!");
return;
}
// if (isBlank(this.inputQuery.actionType)) {
// this.$message.error("");
// return;
// }
if (isBlank(this.inputQuery.inStock)) {
this.$message.error("请选择是否更改库存!");
return;
@ -317,18 +335,18 @@ export default {
return;
}
insertBusType(this.inputQuery)
.then((response) => {
if (response.code == 20000) {
.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();
this.getList();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
});
});
},
onModifySubmit() {
@ -345,10 +363,10 @@ export default {
this.$message.error("单据类型名称不能为空!");
return;
}
if (isBlank(this.inputQuery.actionType)) {
this.$message.error("请选择单据类型!");
return;
}
// if (isBlank(this.inputQuery.actionType)) {
// this.$message.error("");
// return;
// }
if (isBlank(this.inputQuery.inStock)) {
this.$message.error("请选择是否更改库存!");
return;
@ -359,26 +377,26 @@ export default {
}
updateBusType(this.inputQuery)
.then((response) => {
if (response.code == 20000) {
.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();
this.getList();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
this.cancelDialog();
});
});
},
exportJsonFile() {
exportFile().then((response) => {
const binaryData = [];
binaryData.push(response);
let url = window.URL.createObjectURL(
new Blob(binaryData, {type: "application/json"})
new Blob(binaryData, {type: "application/json"})
);
this.loading = false;
const eleLink = document.createElement('a');
@ -451,6 +469,16 @@ export default {
vailGroupBuy: null,
inStock: null,
actionType: null,
thrCheckEnable: null,
thrCheckWebNew: null,
thrCheckPdaUn: null,
thrCheckPdaEd: null,
thrCheckUdims: null,
thrCheckPc: null,
thrCheckSp: null,
thrCheckChange: null,
thrCheckBalance: null,
thrCheckCopy: null,
}
this.addDialogVisible = true;
},
@ -466,11 +494,11 @@ export default {
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
this.deleteOrders(rowId);
})
.catch(() => {
});
.then(() => {
this.deleteOrders(rowId);
})
.catch(() => {
});
},
deleteOrders(data) {
@ -479,20 +507,20 @@ export default {
id: data.id + "",
};
deleteBusType(tquery)
.then((response) => {
this.getList();
if (response.code == 20000) {
this.$message({
type: "success",
message: "删除成功!",
});
} else {
this.$message.error(response.message);
}
.then((response) => {
this.getList();
if (response.code == 20000) {
this.$message({
type: "success",
message: "删除成功!",
});
} else {
this.$message.error(response.message);
}
})
.catch(() => {
});
})
.catch(() => {
});
},
handleChange(response, files, fileList) {
if (response.code != 20000) {
@ -515,13 +543,13 @@ export default {
},
getSyncConfig() {
findConfig()
.then((response) => {
if (response.code == 20000) {
this.configParams = response.data;
}
})
.catch(() => {
});
.then((response) => {
if (response.code == 20000) {
this.configParams = response.data;
}
})
.catch(() => {
});
},
},
components: {

@ -30,11 +30,13 @@
</el-col>
<el-col :span="11" type="flex">
<el-form-item label="单据类型" prop="actionType">
<el-form-item label="入库方式" prop="actionType">
<el-select v-model="inputQuery.actionType"
size="small"
style="width: 90%"
placeholder="请选择单据类型"
clearable
:disabled="inputQuery.mainAction!='WareHouseIn' "
placeholder="请选择入库方式"
>
<el-option label="带票" :value="1"></el-option>
<el-option label="预验收" :value="2"></el-option>
@ -257,13 +259,6 @@ export default {
trigger: "change"
}
],
actionType: [
{
required: true,
message: "请选择单据类型",
trigger: "change"
}
],
inStock: [
{
required: true,
@ -360,6 +355,10 @@ export default {
}).catch(() => {
})
if (this.inputQuery.mainAction != "WareHouseIn") {
this.inputQuery.actionType = null;
}
},
//

@ -102,6 +102,50 @@
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" class="edit-row">
<el-col :span="12">
<el-form-item label="库存积压预警数量:">
<el-input
style="width: 80%"
size="small"
splaceholder="请输入内容"
v-model="editQuery.overStockNum"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="低库存预警数量:">
<el-input
style="width: 80%"
size="small"
splaceholder="请输入内容"
v-model="editQuery.lowStockNum"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" class="edit-row">
<el-col :span="12">
<el-form-item label="近效期预警时间:">
<el-input
style="width: 80%"
size="small"
splaceholder="请输入内容"
v-model="editQuery.recentDateTime"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="预警时间格式:">
<el-select v-model="editQuery.isDateBy" style="width: 65%" placeholder="状态" clearable>
<el-option label="天" :value="1"></el-option>
<el-option label="小时" :value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row type="flex" class="edit-row">
<el-col :span="12" v-if="productRemarkSet.remarkEnable1">
<el-form-item :label="productRemarkSet.remarkTitle1+':'" +>
@ -422,70 +466,6 @@
</el-col>
</el-row>
<el-divider></el-divider>
<el-row>
<el-col span="5">
<span class="sptext">库存积压预警数量</span>
</el-col>
<el-divider direction="vertical"></el-divider>
<el-col span="5">
<el-input style="width: 65%" size="small" splaceholder="请输入内容" :disabled="this.useNumEnable"
type="number" v-model="editQuery.overStockNum"></el-input>
</el-col>
<el-divider direction="vertical"></el-divider>
<el-col span="13">
<span class="sptext">库存积压预警数量</span>
</el-col>
</el-row>
<el-divider></el-divider>
<el-row>
<el-col span="5">
<span class="sptext">低库存预警数量</span>
</el-col>
<el-divider direction="vertical"></el-divider>
<el-col span="5">
<el-input style="width: 65%" size="small" splaceholder="请输入内容" :disabled="this.useNumEnable"
type="number" v-model="editQuery.lowStockNum"></el-input>
</el-col>
<el-divider direction="vertical"></el-divider>
<el-col span="13">
<span class="sptext"> 低库存预警数量</span>
</el-col>
</el-row>
<el-divider></el-divider>
<el-row>
<el-col span="5">
<span class="sptext">近效期预警时间</span>
</el-col>
<el-divider direction="vertical"></el-divider>
<el-col span="5">
<el-input style="width: 65%" size="small" splaceholder="请输入内容" :disabled="this.useNumEnable"
type="number" v-model="editQuery.recentDateTime"></el-input>
</el-col>
<el-divider direction="vertical"></el-divider>
<el-col span="13">
<span class="sptext">近效期预警时间</span>
</el-col>
</el-row>
<el-divider></el-divider>
<el-row>
<el-col span="5">
<span class="sptext">预警时间格式</span>
</el-col>
<el-divider direction="vertical"></el-divider>
<el-col span="5">
<el-select v-model="editQuery.isDateBy" style="width: 65%" placeholder="状态" clearable>
<el-option label="天" :value="1"></el-option>
<el-option label="小时" :value="2"></el-option>
</el-select>
</el-col>
<el-divider direction="vertical"></el-divider>
<el-col span="13">
<span class="sptext">预警时间格式</span>
</el-col>
</el-row>
<el-divider></el-divider>
<el-row>
<el-col span="5">
<span class="sptext">使用周期</span>

@ -15,7 +15,7 @@
size="mini"
type="primary"
@click.native="submit()"
>校验提交
>立即提交
</el-button
>
</el-button-group>

@ -250,7 +250,7 @@ export default {
this.detailLoading = false;
this.detailList = response.data.orderDetailEntities || [];
if (response.data.finishAccept) {
this.$confirm("校验完成,是否立即完成审核?", "提示", {
this.$confirm("审核结果正确,是否立即完成审核?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
@ -282,7 +282,7 @@ export default {
},
finishAccept() {
this.$confirm('是否确定完成审核此单据?', '提示', {
this.$confirm('审核未完成,是否强制完成审核此单据?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
@ -292,15 +292,17 @@ export default {
};
if (this.reviewType != null && this.reviewType == 2) {
thirdUpdateStatus(query)
.then((response) => {
if (response.code == 20000) {
this.$message.success("验收成功!");
this.$message.success("核对成功!");
this.closeDialog();
this.$emit('childByValue', 1)
} else {
this.$message.error(response.message);
}
})
.catch(() => {
});
@ -309,7 +311,7 @@ export default {
updateStatus(query)
.then((response) => {
if (response.code == 20000) {
this.$message.success("验收成功!");
this.$message.success("审核成功!");
this.closeDialog();
this.$emit('childByValue', 1)
} else {

@ -0,0 +1,420 @@
<template>
<div>
<el-card style="margin-top: -20px">
<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.createTime" 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
clearable
></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.fromCorpName" 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="扫码校验:">
<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="coName"></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="100" prop="count"></el-table-column>
<el-table-column label="审核数量" width="100" prop="acceptCount"></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="120" prop="price"></el-table-column>
<el-table-column label="注册/备案凭证号" width="150" prop="certCode"></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, thirdUpdateStatus} 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,
},
reviewType: {
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.success("匹配成功!");
}
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.detailLoading = false;
});
},
getInputFocus(event) {
event.currentTarget.select();
},
finishAccept() {
this.$confirm('核对未完成,是否强制完成核对此单据??', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let query = {
orderId: this.orderQuery.billNo,
};
thirdUpdateStatus(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>

@ -364,11 +364,11 @@ export default {
2: "等待处理",
3: "等待校验",
4: "处理异常",
5: "待核",
5: "待",
6: "校验异常",
7: "已审核",
8: "审核拒绝",
9: "正在处理"
9: "正在处理",10: "待审核",
},
storageList: [],
invList: [],

@ -514,11 +514,11 @@ export default {
2: "等待处理",
3: "等待校验",
4: "处理异常",
5: "待核",
5: "待",
6: "校验异常",
7: "已审核",
8: "审核拒绝",
9: "正在处理"
9: "正在处理",10: "待审核",
},
storageList: [],
invList: [],

@ -480,17 +480,17 @@ export default {
endTime: null,
invCode: this.$store.getters.locInvCode,
},
customerId:this.$store.getters.customerId,
customerId: this.$store.getters.customerId,
checkStatus: {
1: "草稿",
2: "等待处理",
3: "等待校验",
4: "处理异常",
5: "待核",
5: "待",
6: "校验异常",
7: "已审核",
8: "审核拒绝",
9: "正在处理"
9: "正在处理", 10: "待审核",
},
storageList: [],
invList: [],

@ -157,7 +157,7 @@
size="small"
v-if="scope.row.status == 1"
@click.native.stop="onUpload(scope.row.billNo)"
>立即提交
>提交校验
</el-button
>
</template>
@ -263,7 +263,7 @@ export default {
6: "校验异常",
7: "已审核",
8: "审核拒绝",
9: "正在处理"
9: "正在处理",10: "待审核",
},
curIndex: "",
idQuery: {},

@ -234,7 +234,7 @@ export default {
6: "校验异常",
7: "已审核",
8: "审核拒绝",
9: "正在处理"
9: "正在处理",10: "待审核",
},
curIndex: "",
idQuery: {},

@ -233,7 +233,7 @@ export default {
limit: 10,
startTime: null,
endTime: null,
deptCode: this.$store.getters.locDeptCode,
// deptCode: this.$store.getters.locDeptCode,
invCode: this.$store.getters.locInvCode,
},
@ -247,7 +247,7 @@ export default {
6: "校验异常",
7: "已审核",
8: "审核拒绝",
9: "正在处理"
9: "正在处理", 10: "待审核",
},
curIndex: "",
idQuery: {},
@ -466,6 +466,7 @@ export default {
this.loading = false;
if (response.code === 20000) {
this.$message.success("提交成功");
this.getList();
} else {
this.$message.error(response.message);
}

@ -148,7 +148,7 @@
size="small"
v-if="scope.row.status == 1"
@click.native.stop="onUpload(scope.row.billNo)"
>校验提交
>提交校验
</el-button
>
</template>
@ -223,7 +223,7 @@ export default {
6: "校验异常",
7: "已审核",
8: "审核拒绝",
9: "正在处理"
9: "正在处理",10: "待审核",
},
curIndex: "",
idQuery: {},

@ -358,7 +358,7 @@ export default {
6: "校验异常",
7: "审核通过",
8: "审核拒绝",
9: "正在处理"
9: "正在处理",10: "待审核",
},
curIndex: "",
idQuery: {},

@ -10,6 +10,7 @@
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%">-->
@ -53,6 +54,17 @@
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item class="query-form-item" label="审核状态:">
<el-select v-model="filterQuery.status" placeholder="请选择出入库类型" style="width: 90%">
<el-option label="全部" value=""></el-option>
<el-option label="已审核" :value="7"></el-option>
<el-option label="待审核" :value="10"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="query-form-item" label="创建时间:">
<el-date-picker
@ -147,14 +159,14 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="验收状态" prop="status" width="100">
<template slot-scope="scope">
<el-tag :type="statusFilterType(scope.row.status)">{{
reviceStatus[scope.row.status]
}}
</el-tag>
</template>
</el-table-column>
<!-- <el-table-column label="验收状态" prop="status" width="100">-->
<!-- <template slot-scope="scope">-->
<!-- <el-tag :type="statusFilterType(scope.row.status)">{{-->
<!-- reviceStatus[scope.row.status]-->
<!-- }}-->
<!-- </el-tag>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="审核状态" prop="status" width="100">-->
<!-- <template slot-scope="scope">-->
<!-- <el-tag :type="statusFilterType(scope.row.status)">{{-->
@ -163,7 +175,7 @@
<!-- </el-tag>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="操作" width="160">
<el-table-column label="操作" width="160" fixed="right">
<template slot-scope="scope">
<el-button
@ -182,24 +194,24 @@
>
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- v-if="customerId == 110 && scope.row.status == 5"-->
<!-- @click.native.stop="reviewOrder(scope.row)"-->
<!-- >审核-->
<!-- </el-button-->
<!-- >-->
<el-button
type="text"
size="small"
v-if="customerId == 110"
@click.native.stop="deleteDialog(scope.row)"
>删除
v-if="customerId == 110 && scope.row.status == 10"
@click.native.stop="reviewOrder(scope.row)"
>审核/验收
</el-button
>
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- v-if="customerId == 110"-->
<!-- @click.native.stop="deleteDialog(scope.row)"-->
<!-- >删除-->
<!-- </el-button-->
<!-- >-->
</template>
</el-table-column>
</el-table>
@ -517,6 +529,7 @@ export default {
action: null,
statusType: "audited",
page: 1,
status: null,
limit: 10,
startTime: null,
endTime: null,
@ -528,11 +541,11 @@ export default {
2: "等待处理",
3: "等待校验",
4: "处理异常",
5: "待核",
5: "待",
6: "校验异常",
7: "已审核",
8: "审核拒绝",
9: "正在处理"
9: "正在处理", 10: "待审核",
},
reviceStatus: {
1: "未验收",

@ -507,11 +507,11 @@ export default {
2: "等待处理",
3: "等待校验",
4: "处理异常",
5: "待核",
5: "待",
6: "校验异常",
7: "审核通过",
8: "审核拒绝",
9: "正在处理"
9: "正在处理",10: "待审核",
},
storageList: [],
invList: [],

@ -514,11 +514,11 @@ export default {
2: "等待处理",
3: "等待校验",
4: "处理异常",
5: "待核",
5: "待",
6: "校验异常",
7: "已审核",
8: "审核拒绝",
9: "正在处理"
9: "正在处理",10: "待审核",
},
storageList: [],
invList: [],

@ -140,7 +140,7 @@
size="small"
v-if="scope.row.status == 5"
@click.native.stop="reviewOrder(scope.row)"
>
>
</el-button
>
<el-button
@ -350,7 +350,7 @@
</el-tabs>
<el-dialog
title="送货单核"
title="送货单"
:visible.sync="acceptOrderVisible"
width="80%"
:close-on-click-modal="false"
@ -379,7 +379,7 @@ import {getResultDetailList} from "@/api/inout/orderDetailResult";
import {getCodeDetailList} from "@/api/inout/orderDetailCode";
import {getCodeList} from "@/api/inout/code";
import {inspectionOrderPDFFromTemplateFile, orderPDFFromTemplateFile} from "@/api/itextpdf/orderPrint"
import AcceptOrder from "@/views/inout/DialogReviewOrder";
import AcceptOrder from "@/views/inout/DialogThrReviewOrder";
import {getDeptListByUser} from "@/api/auth/authDept";
const formJson = {
@ -404,19 +404,20 @@ export default {
limit: 10,
startTime: null,
endTime: null,
deptCode: this.$store.getters.locDeptCode,
invCode: this.$store.getters.locInvCode,
},
reviewType:2,
checkStatus: {
1: "草稿",
2: "等待处理",
3: "等待校验",
4: "处理异常",
5: "待核",
5: "待",
6: "校验异常",
7: "已审核",
8: "审核拒绝",
9: "正在处理"
9: "正在处理",
10: "待审核",
},
invList: [],
deptList: [],

@ -139,14 +139,14 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="验收状态" prop="status" width="100">
<template slot-scope="scope">
<el-tag :type="statusFilterType(scope.row.status)">{{
reviceStatus[scope.row.status]
}}
</el-tag>
</template>
</el-table-column>
<!-- <el-table-column label="验收状态" prop="status" width="100">-->
<!-- <template slot-scope="scope">-->
<!-- <el-tag :type="statusFilterType(scope.row.status)">{{-->
<!-- reviceStatus[scope.row.status]-->
<!-- }}-->
<!-- </el-tag>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="操作" width="120" fixed="right">
<template slot-scope="scope">
<el-button
@ -425,7 +425,6 @@ export default {
limit: 10,
startTime: null,
endTime: null,
deptCode: this.$store.getters.locDeptCode,
invCode: this.$store.getters.locInvCode,
},
@ -439,11 +438,11 @@ export default {
2: "等待处理",
3: "等待校验",
4: "处理异常",
5: "待核",
5: "待",
6: "校验异常",
7: "已审核",
8: "审核拒绝",
9: "正在处理"
9: "正在处理",10: "待审核",
},
invList: [],
deptList: [],

@ -0,0 +1,410 @@
<template>
<div>
<el-card class="el-card">
<el-form :model="filterQuery" class="query-form" label-width="100px" v-show="showSearch">
<el-row>
<el-col :span="8">
<el-form-item class="query-form-item" label="物资名称:">
<el-autocomplete
class="inline-input"
style="width: 90%"
v-model="queryName"
:fetch-suggestions="queryProductName"
placeholder="情请输入物资名称"
clearable
@select="handleSelect"
@clear="clearQueryProduct"
></el-autocomplete>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="query-form-item" label="规格型号:">
<el-select v-model="filterQuery.ggxh" placeholder="请选择" style="width: 90%">
<el-option
v-for="item in ggxhList"
:key="item"
:label="item"
:value="item">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item class="query-form-item" label="预警类型:">
<el-select v-model="filterQuery.type"
placeholder="请选择消息状态"
clearable
style="width: 90%"
>
<el-option label="库存不足预警" :value="1"></el-option>
<el-option label="负库存预警" :value="2"></el-option>
<el-option label="库存积压预警" :value="3"></el-option>
<el-option label="库存过期预警" :value="4"></el-option>
<el-option label="近效期预警" :value="5"></el-option>
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="8">-->
<!-- <el-form-item class="query-form-item" label="批次号:">-->
<!-- <el-input v-model="filterQuery.batchNo" placeholder="批次号"-->
<!-- style="width: 90%"-->
<!-- clearable="true"></el-input>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
</el-row>
<el-row>
<el-col :span="8">
<el-form-item class="query-form-item" label="状态:">
<el-select v-model="filterQuery.status"
placeholder="请选择消息状态"
clearable
style="width: 90%"
>
<el-option label="未确认" :value="1"></el-option>
<el-option label="已确认" :value="2"></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.ignoreStatus"-->
<!-- placeholder="请选择消息忽略状态"-->
<!-- clearable-->
<!-- style="width: 90%"-->
<!-- >-->
<!-- <el-option label="不忽略" :value="0"></el-option>-->
<!-- <el-option label="忽略7天" :value="1"></el-option>-->
<!-- <el-option label="忽略15天" :value="2"></el-option>-->
<!-- <el-option label="忽略30天" :value="3"></el-option>-->
<!-- </el-select>-->
<!-- </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" @click.native="search" icon="el-icon-search">查询</el-button>
</el-button-group>
</div>
<el-divider style="margin: 15px"></el-divider>
<el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row>
<el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="物资名称" prop="productName" width="180" show-overflow-tooltip></el-table-column>
<el-table-column label="规格型号" prop="ggxh" width="180" show-overflow-tooltip></el-table-column>
<!-- <el-table-column label="批次号" prop="batchNo" width="120" show-overflow-tooltip></el-table-column>-->
<el-table-column label="预警次数" prop="batchNo" width="120" show-overflow-tooltip></el-table-column>
<el-table-column label="预警类型" prop="productionDate" width="120">
<template slot-scope="scope">
<el-tag type="danger">{{ typeMap[scope.row.type] }}</el-tag>
</template>
</el-table-column>
<el-table-column label="预警详情" prop="msg" width="250" show-overflow-tooltip></el-table-column>
<el-table-column label="状态" prop="status" width="120">
<template slot-scope="scope">
<el-tag :type="statusFilterType(scope.row.status)">{{
statusMap[scope.row.status]
}}
</el-tag>
</template>
</el-table-column>
<el-table-column label="处理结果" prop="handleMsg" width="200" show-overflow-tooltip></el-table-column>
<!-- <el-table-column label="忽略预警" prop="ignoreStatus" width="100">-->
<!-- <template slot-scope="scope">-->
<!-- <el-tag>{{ ignoreStatusMap[scope.row.ignoreStatus] }}</el-tag>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="入库数量" prop="inCount" width="100"></el-table-column>-->
<!-- <el-table-column label="出库数量" prop="outCount" width="100"></el-table-column>-->
<el-table-column label="库存数量" prop="reCount" width="100"></el-table-column>
<!-- <el-table-column label="生产日期" prop="productionDate" width="120"></el-table-column>-->
<!-- <el-table-column label="失效日期" prop="expireDate" width="120"></el-table-column>-->
<!-- <el-table-column label="供应商" prop="supName" width="150" show-overflow-tooltip></el-table-column>-->
<el-table-column label="生产企业" prop="manufactory" width="150" show-overflow-tooltip></el-table-column>
<el-table-column label="注册备案证号" prop="zczbhhzbapzbh" width="150" show-overflow-tooltip></el-table-column>
<el-table-column label="操作" width="100" fixed="right">
<template slot-scope="scope">
<el-button
type="text"
size="small"
v-if="scope.row.status === 1"
@click.native="confirmMsg(scope.row)"
>确认
</el-button>
<!-- <el-button-->
<!-- type="text"-->
<!-- size="small"-->
<!-- v-if="scope.row.ignoreStatus === 0"-->
<!-- @click.native="ignoreMsg(scope.row)"-->
<!-- >忽略-->
<!-- </el-button>-->
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="filterQuery.page"
:limit.sync="filterQuery.limit"
@pagination="getList"
/>
</el-card>
<!-- 忽略预警弹窗 -->
<el-dialog
v-if="ignoreVisible"
title="忽略预警"
:visible.sync="ignoreVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="30%"
top="5vh"
>
<el-row>
<el-button type="primary" size="medium" style="margin-left: 20%; margin-right: 20px;" @click="ignore(1)">
忽略7天
</el-button>
<el-button type="success" size="medium" style="margin-right: 20px;" @click="ignore(2)">15</el-button>
<el-button type="warning" size="medium" style="margin-right: 20px;" @click="ignore(3)">30</el-button>
</el-row>
</el-dialog>
</div>
</template>
<script>
import {getInvRemindMsgList, confirmMsg, ignoreMsg} from "@/api/system/invRemindMsg";
import {getInvListByUser} from "@/api/system/invWarehouse";
import {getInvSpaceList} from "@/api/inventory/invSpace";
import {filterProductNames} from "@/api/inventory/invPorduct";
import {getGgxhList} from "@/api/basic/product/udiRelevance";
export default {
name: "invRemindMsg",
data() {
return {
showSearch: true,
filterQuery: {
relId: null,
batchNo: null,
ggxh: null,
status: 1,
ignoreStatus: 0,
invCode: this.$store.getters.locInvCode,
invSpaceCode: null,
type: null,
page: 1,
limit: 20,
},
list: [],
total: 0,
loading: true,
index: null,
statusMap: {
1: "未处理",
2: "已处理"
},
typeMap: {
1: "库存不足预警",
2: "负库存预警",
3: "库存积压预警",
4: "库存过期预警",
5: "近效期预警"
},
ignoreStatusMap: {
0: "不忽略",
1: "忽略7天",
2: "忽略15天",
3: "忽略30天"
},
queryName: null,
invList: [],
spaceList: [],
ggxhList: [],
ignoreVisible: false,
currentId: null
};
},
methods: {
hideSearch() {
this.showSearch = !this.showSearch;
},
onReset() {
this.$router.push({
path: "",
});
this.filterQuery = {
paramStatus: 1,
page: 1,
limit: 20,
};
this.getList();
},
search() {
this.filterQuery.page = 1;
this.getList();
},
getList() {
this.loading = true;
getInvRemindMsgList(this.filterQuery)
.then((response) => {
this.loading = false;
if (response.code === 20000) {
this.list = response.data.list || [];
this.total = response.data.total || 0;
} else {
this.list = [];
this.total = 0;
}
})
.catch(() => {
this.loading = false;
this.list = [];
this.total = 0;
});
},
invChange() {
this.spaceList = [];
this.filterQuery.invSpaceCode = null;
this.getSpaceList();
this.getList();
},
getInvList() {
getInvListByUser()
.then((response) => {
this.invList = response.data || [];
this.getSpaceList();
this.getList();
})
.catch(() => {
});
},
getSpaceList() {
let params = {invWarehouseCode: this.filterQuery.invCode, status: 1};
getInvSpaceList(params).then((res) => {
this.spaceList = res.data.list || [];
})
},
invSpaceChange() {
this.clearProduct();
let params = {
cpmctymc: this.filterQuery.cpmctymc,
invCode: this.filterQuery.invCode,
invSpaceCode: this.filterQuery.invSpaceCode
};
filterProductNames(params).then((res) => {
this.productList = res.data.list || [];
})
},
clearProduct() {
this.filterQuery.relId = null;
this.queryName = null;
this.filterQuery.ggxh = null;
this.ggxhList = [];
this.productList = null;
},
queryProductName(productName, cb) {
let params = {
cpmctymc: productName,
invCode: this.filterQuery.invCode,
invSpaceCode: this.filterQuery.invSpaceCode
};
filterProductNames(params).then((res) => {
let productList = res.data.list || [];
let results = productName ? productList.filter(this.createFilter(productName)) : productList;
let rs = [];
results.forEach(item => {
let data = {value: item.cpmctymc, relId: item.relIdFk}
rs.push(data);
});
cb(rs);
})
},
createFilter(queryString) {
return (productList) => {
return productList.cpmctymc.toLowerCase().indexOf(queryString.toLowerCase()) === 0;
}
},
handleSelect(item) {
this.queryName = item.value;
this.filterQuery.relId = item.relId;
let params = {relId: item.relId};
getGgxhList(params).then((res) => {
this.ggxhList = res.data || [];
});
},
clearQueryProduct() {
this.queryName = null;
this.filterQuery.relId = null;
},
confirmMsg(row) {
this.$prompt('请输入处理方式', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
}).then(({value}) => {
let params = {
id: row.id,
handleMsg: value
};
confirmMsg(params).then((res) => {
if (res.code === 20000) {
this.$message.success("已确认");
this.getList();
} else {
this.$message.error(res.message);
}
})
}).catch(() => {
});
},
ignoreMsg(row) {
this.ignoreVisible = true;
this.currentId = row.id;
},
ignore(type) {
this.ignoreVisible = false;
let params = {
id: this.currentId,
ignoreStatus: type
};
ignoreMsg(params).then((res) => {
this.currentId = null;
if (res.code === 20000) {
this.$message.success("已忽略预警");
this.getList();
} else {
this.$message.error(res.message);
}
}).catch(() => {
this.currentId = null;
})
},
statusFilterType(status) {
const statusMap = {
1: "warning",
2: "success",
};
return statusMap[status];
},
},
created() {
this.getInvList();
//
this.getList();
},
};
</script>

@ -178,10 +178,7 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="备注" prop="remark"></el-table-column>
<el-table-column label="确认说明" prop="auditComment" show-overflow-tooltip></el-table-column>
<el-table-column label="状态" prop="status" width="120">
<template slot-scope="scope">
<el-tag :type="(scope.row.status) | statusType">
@ -410,11 +407,11 @@ export default {
6: "未确认",
},
checkSupFlag: {
0: "草稿",
1: "已审核",
0: "未认证",
1: "已认证",
2: "已拒绝",
3: "变更未审核",
6: "未审核",
3: "变更未确认",
6: "待认证",
},
statusFlag: {
0: "有效",
@ -486,8 +483,10 @@ export default {
}
});
} else { //
if (val == 0 || val == 6) {
var str = "是否确定提交保存?";
if (val == 0) {
var str = "是否确定草稿保存?";
} else if (val == 6) {
var str = "是否确定提交审核?";
} else {
var str = "企业信息已通过审核,是否确认重新提交审核?";
}

@ -663,6 +663,7 @@ export default {
closeSelDialog(val) {
this.selectProductVisible = false;
this.addProductVisible = false;
this.getList();
},
cancelDialog() {
this.editDialogVisible = false;

@ -94,8 +94,14 @@
<el-form-item label="审核状态" prop="auditStatus" class="query-form-item">
<el-radio-group v-model="inputQuery.auditStatus">
<el-radio :label="1">草稿</el-radio>
<el-radio :label="2">待审核</el-radio>
<el-radio :label="2">带和对</el-radio>
</el-radio-group>
<!-- <el-select v-model="inputQuery.auditStatus" placeholder="请选择出入库类型" style="width: 90%">-->
<!-- <el-radio :label="1">草稿</el-radio>-->
<!-- <el-radio :label="2">待核对</el-radio>-->
<!-- <el-radio :label="3">待审核</el-radio>-->
<!-- </el-select>-->
</el-form-item>
</el-col>
</el-row>

Loading…
Cancel
Save