1.提交送货单审核功能页面

ywj_dev
x_z 2 years ago
parent 37c5c04345
commit 31a44507bc

@ -1,4 +1,4 @@
rd /s /q UDI_WMS_NEW
rd /s /q UDI_SPMS_NEW
npm run build:prod

@ -137,5 +137,38 @@ export function updateDetail(data) {
})
}
// 查询验收单据详情
export function getAcceptOrder(params) {
return axios({
url: "/purchase/delivery/list/getAcceptOrder",
method: "get",
params: params
});
}
// 审核添加条码
export function acceptAddCode(data) {
return axios({
url: "/purchase/delivery/list/acceptAddCode",
method: "post",
data: data
});
}
// 重新验收
export function acceptClear(data) {
return axios({
url: "/purchase/delivery/list/acceptClear",
method: "post",
data: data
});
}
// 完成验收
export function updateStatus(data) {
return axios({
url: "/purchase/delivery/list/updateStatus",
method: "post",
data: data
});
}

@ -131,6 +131,7 @@ export default {
corpName: null,
type: 1,
editStatus: 1,
status: 1,
},
formName: null,
formMap: {
@ -205,6 +206,7 @@ export default {
corpName: null,
type: 1,
editStatus: 1,
status: 1,
};
this.actDateRange = [];
this.getList();

@ -1,7 +1,7 @@
<template>
<div>
<el-card class="el-card">
<el-form :model="filterQuery" class="query-form" label-width="100px" v-show="showSearch">
<el-form :model="filterQuery" class="query-form" label-width="100px" v-show="showSearch">
<el-row>
<el-col :span="6">
<el-form-item label="单据号:">
@ -26,29 +26,29 @@
</el-col>
</el-row>
</el-form>
<div class="top-right-btn">
<el-button-group style="display:flex;">
<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="onSubmitFind"></el-button>
</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 @current-change="handleDetail">
<el-table v-loading="loading" :data="list" style="width: 100%" border highlight-current-row
@current-change="handleDetail">
<el-table-column label="序号" type="index" width="60"></el-table-column>
<el-table-column label="单据号" prop="billNo"></el-table-column>
<el-table-column label="采购日期" prop="billDate">
<el-table-column label="单据日期" prop="billDate">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.billDate, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="创建人" prop="createUserName"></el-table-column>
<el-table-column label="审核人" prop="auditUserName"></el-table-column>
<el-table-column label="采购部门" prop="deptName"></el-table-column>
<el-table-column label="采购仓库" prop="invName"></el-table-column>
<el-table-column label="采购说明" prop="remark"></el-table-column>
<el-table-column label="供应商" prop="supName"></el-table-column>
<el-table-column label="部门" prop="deptName"></el-table-column>
<el-table-column label="仓库" prop="invName"></el-table-column>
<el-table-column label="备注" prop="remark"></el-table-column>
<el-table-column label="状态" prop="status">
<template slot-scope="scope">
<el-tag :type="(scope.row.status) | statusFilterType">
@ -56,11 +56,11 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="60px">
<el-table-column label="操作" width="120">
<template slot-scope="scope">
<el-button type="text" :disabled="scope.row.status!=2" @click.native="newDistributionForm(scope.$index, scope.row)">审核</el-button>
<el-button type="text" size="small" @click.native="auditOrder(scope.row)">审核
</el-button>
<el-button type="text" size="small" @click.native.stop="deleteDialog(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
@ -71,51 +71,53 @@
:page.sync="filterQuery.page"
:limit.sync="filterQuery.limit"
@pagination="handleCurrentChange"
></pagination>
</el-card>
<el-card class="el-card">
<el-table v-loading="loading" :data="detailList" style="width: 100%" border highlight-current-row>
<el-table-column label="序号" type="index" width="120"></el-table-column>
<!-- <el-table-column label="产品编码" prop="productId"></el-table-column> -->
<el-table-column label="产品通用名" prop="productName" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="规格型号" prop="spec" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="申购数量" prop="count"></el-table-column>
<el-table-column label="送货数量" prop="count"></el-table-column>
<el-table-column label="批次号" prop="batchNo"></el-table-column>
<el-table-column label="生产日期" prop="productDate"></el-table-column>
<el-table-column label="失效日期" prop="expireDate"></el-table-column>
<el-table-column label="注册/备案凭证号" prop="zczbhhzbapzbh" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="生产企业" prop="manufactory" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="医疗器械注册人" prop="ylqxzcrbarmc" show-overflow-tooltip="true"></el-table-column>
<el-table-column label="供应商" prop="supName" show-overflow-tooltip="true"></el-table-column>
</el-table>
</el-card>
<el-dialog
:title="formMap[formName]"
:visible.sync="newSpDistributionVisible"
title="送货单审核"
:visible.sync="dialogVisible"
width="80%"
v-if="newSpDistributionVisible"
v-if="dialogVisible"
@close='closeDialog'
:close-on-click-modal="false"
:close-on-press-escape="false"
:before-close="closeDialog"
>
<purPlanEdit
<purDeliveryAudit
:formData="formData"
:closeDialog="closeDialog"
:idQuery="idQuery"
:editType="editType"
></purPlanEdit>
></purDeliveryAudit>
</el-dialog>
</div>
</template>
<script>
import purPlanEdit from "./purDeliveryDetailDialog";
import {delOrder, auditListOrder, listOrderDetail} from "@/api/purchase/purOrder";
import purDeliveryAudit from "@/views/purchase/purDelivery/purDeliveryAuditDialog.vue";
import {listOrderDetail, delOrderDetailAll, listOrder} from "@/api/purchase/purDelivery";
export default {
data() {
name: "purDeliveryAudit"
return {
showSearch: true,
pId: null,
isChang: false,
filterQuery: {
billAction: null,
billNo: "",
@ -126,11 +128,12 @@ export default {
corpName: null,
type: 1,
editStatus: 1,
status: 2,
},
formName: null,
formMap: {
add: "新增采购计划",
update: "采购计划审核",
add: "新增送货单",
update: "编辑送货单",
},
statusMap: {
1: "草稿",
@ -138,8 +141,7 @@ export default {
3: "已审核",
4: "已拒绝"
},
idQuery: {},
editType: 1,
formData: {},
total: 0,
thirdSys: [],
thirdSysDetail: null,
@ -149,7 +151,7 @@ export default {
detailList: [],
loading: false,
actDateRange: [],
newSpDistributionVisible: false,
dialogVisible: false,
pickerOptions: {
shortcuts: [
{
@ -201,11 +203,11 @@ export default {
corpName: null,
type: 1,
editStatus: 1,
status: 2,
};
this.actDateRange = [];
this.getList();
},
onSubmitFind() {
this.filterQuery.page = 1;
this.getList();
@ -222,7 +224,8 @@ export default {
this.filterQuery.endDate = null;
}
this.loading = true;
auditListOrder(this.filterQuery)
this.detailList = [];
listOrder(this.filterQuery)
.then((response) => {
if (response.code == 20000) {
this.list = response.data.list || [];
@ -249,6 +252,7 @@ export default {
.catch(() => {
this.loading = false;
this.detailList = [];
this.total = 0;
});
},
deleteDialog(row) {
@ -258,12 +262,13 @@ export default {
type: "warning",
})
.then(() => {
delOrder(row.id)
delOrderDetailAll({id: row.id})
.then((response) => {
this.loading = false;
if (response.code == 20000) {
this.$message.success("删除成功");
this.getList();
this.detailList = null;
} else {
this.$message.error(response.message);
}
@ -271,7 +276,6 @@ export default {
.catch(() => {
this.loading = false;
});
})
.catch(() => {
});
@ -280,45 +284,29 @@ export default {
this.filterQuery.page = val.page;
this.getList();
},
auditOrder(row) {
this.dialogVisible = true;
this.formData = row;
},
closeDialog() {
this.newSpDistributionVisible = false;
this.dialogVisible = false;
this.getList();
this.detailList = [];
},
newDistributionForm(index, row) {
this.idQuery.id = '';
if (this.$isNotBlank(row) && this.$isNotBlank(row.id)) {
this.idQuery.id = row.id;
this.idQuery.formData = row;
this.formName = "update";
} else
this.formName = "add";
this.newSpDistributionVisible = true;
},
}
,
},
components: {
purPlanEdit,
}
,
purDeliveryAudit,
},
filters: {
statusFilterType(status) {
const statusMap = {
2: "warning",
3: "success",
4: "danger",
1: "warning",
2: "success",
};
return statusMap[status];
},
}
,
},
mounted() {
}
,
},
created() {
let end = new Date();
let start = new Date();

@ -0,0 +1,298 @@
<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.orderId" 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.invName" 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.remark" 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="loading" :data="codeArray" style="width: 100%;" :row-class-name="tableRowClassName" border
highlight-current-row max-height="300" height="300" ref="multipleTable">
<el-table-column label="序号" type="index" width="50"></el-table-column>
<el-table-column label="产品通用名" prop="productName" width="150" show-overflow-tooltip></el-table-column>
<el-table-column label="规格型号" prop="spec" width="150" show-overflow-tooltip></el-table-column>
<el-table-column width="150" label="批次号" prop="batchNo"></el-table-column>
<el-table-column width="180" label="生产日期(yyMMdd)" prop="productDate"></el-table-column>
<el-table-column width="180" label="失效日期(yyMMdd)" prop="expireDate"></el-table-column>
<el-table-column width="150" label="送货数量" prop="count"></el-table-column>
<el-table-column width="150" label="验收数量" prop="acceptCount"></el-table-column>
<el-table-column label="注册/备案凭证号" prop="zczbhhzbapzbh" 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="ylqxzcrbarmc" width="150" show-overflow-tooltip></el-table-column>
</el-table>
</el-card>
</div>
</template>
<script>
import draggable from "vuedraggable";
import {getAcceptOrder, acceptClear, acceptAddCode, updateStatus} from "@/api/purchase/purDelivery";
export default {
name: "purDeliveryAuditDialog",
props: {
closeDialog: {
type: Function,
required: true,
},
formData: {
type: Object,
required: true
}
},
data() {
return {
code: "",
codeArray: [],
total: 0,
loading: false,
index: null,
formLoading: false,
formVisible: false,
deleteLoading: false,
orderNo: null,
statusMap: {
1: "草稿",
2: "未审核",
3: "已审核",
},
typeMap: {
1: "预入库",
2: "普通采购",
},
orderEditor: true,
sOptions: [],
sValue: [],
sList: [],
sLoading: false,
busTypes: [],
currentRow: {},
udiCode: null
};
},
components: {
draggable,
},
methods: {
getOrderDetail() {
this.detailLoading = true;
let query = {
billNo: this.formData.orderId,
}
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 = [];
});
},
getInputFocus(event) {
event.currentTarget.select();
},
enterKey(event) {
this.checkSuccess = true;
let tQuery = {
originCode: this.originCode,
code: this.udiCode.trim(),
}
},
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;
});
},
finishAccept() {
this.$confirm('是否确定完成验收此单据?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
let query = {
orderId: this.orderQuery.billNo,
finishAccept: true
};
updateStatus(query)
.then((response) => {
if (response.code == 20000) {
this.$message.success("验收成功!");
this.closeDialog();
} 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 = [];
});
},
},
filters: {},
mounted() {
document.body.ondrop = function (event) {
event.preventDefault();
event.stopPropagation();
};
},
created() {
this.getOrderDetail();
},
};
</script>
<style>
.ao-text {
width: 100%;
font-size: 13px;
font-family: "Microsoft YaHei";
float: right;
text-align: right;
margin-top: 10px;
}
</style>

@ -4,7 +4,7 @@
<el-row type="flex" justify="end">
<el-button-group style="display: flex;margin-bottom: 15px; margin-right: 50px">
<el-button type="primary" @click.native="saveOrder('1')" :loading="loading">草稿保存</el-button>
<el-button type="primary" @click.native="saveOrder('3')" :loading="loading">提交单据</el-button>
<el-button type="primary" @click.native="saveOrder('2')" :loading="loading">提交单据</el-button>
</el-button-group>
</el-row>

@ -246,6 +246,7 @@ export default {
var data = {
id: this.pId,
purOrderId: this.currentRow.id,
applyId: this.currentRow.id
}
addPlanDetailAndOrder(data).then((res) => {

@ -164,7 +164,7 @@
<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">
<el-table-column label="操作" width="100" fixed="right">
<template slot-scope="scope">
<el-button
type="text"

Loading…
Cancel
Save