单据流程梳理

prod
anthonywj 3 years ago
parent 92b538a53c
commit 21de2022b3

@ -41,6 +41,20 @@ export function submitOrderWeb(query) {
data: query
});
}
export function submitCodes(query) {
return axios({
url: "/warehouse/inout/submitCodes",
method: "post",
data: query
});
}
export function submitBiz(query) {
return axios({
url: "/warehouse/inout/submitBiz",
method: "post",
data: query
});
}
export function saveOrderWeb(query) {

@ -132,7 +132,6 @@
>打印
</el-button
>
<el-button
type="text"
size="small"
@ -875,6 +874,7 @@ export default {
}
}
});
this.getList();
},
};
</script>

@ -202,7 +202,7 @@ export default {
billNo: null,
mainAction: null,
action: null,
statusType: "newOrder",
statusType: "new_biz",
page: 1,
limit: 10,
startTime: null,
@ -288,7 +288,7 @@ export default {
},
],
},
viewType: 2,
viewType: 1,
};
},
@ -302,7 +302,7 @@ export default {
billNo: null,
mainAction: null,
action: null,
statusType: "newOrder",
statusType: "new_biz",
page: 1,
limit: 10,
startTime: null,

@ -161,7 +161,7 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-row v-if="viewType!=1">
<el-col :span="20">
<el-form-item prop="code" label="扫码录入:">
<el-input
@ -191,16 +191,19 @@
<el-tabs type="border-card" style="margin: 5px">
<el-tab-pane label="业务详情" v-if="bizShow && viewBizVisible">
<biz-detail-panel :idQuery="orderFormData" :refreshPanel="refreshCodesPanel" :refreshOrder="refreshOrder"
:viewType="viewType"
v-if="isBizDetailAlive"></biz-detail-panel>
</el-tab-pane>
<el-tab-pane label="扫码详情" v-if="viewCodeVisible">
<codeDetailPanel :idQuery="orderFormData" :refreshPanel="refreshCodesPanel"
:viewType="viewType"
v-if="isCodeDetailAlive"></codeDetailPanel>
</el-tab-pane>
<el-tab-pane label="扫码明细" v-if="viewCodeDetailVisible">
<codesPanel :idQuery="orderFormData"
:refreshPanel="refreshCodesPanel"
v-if="isCodeAlive"
:viewType="viewType"
:selectRlTitle="selectRlTitle"
:editTitle="editTitle"
:selectUnitTitle="selectUnitTitle"></codesPanel>
@ -211,7 +214,7 @@
<script>
import {
errorCodeList, addOrderWeb, deleteCodesTempById, submitOrderWeb, saveOrderWeb,
submitBiz, addOrderWeb, submitCodes, submitOrderWeb, saveOrderWeb,
updateCodeBindSup, enterCodeWeb
} from "../../api/inout/order";
import {findByFrom, findInvByUser} from "../../api/system/invSubWarehouse";
@ -219,9 +222,9 @@ import {parseTime} from "../../utils/coTools";
import {getBasicUnitMaintains} from "../../api/basic/basicUnitMaintain"
import codesPanel from "./IoCreateOrderCodes"
import codeDetailPanel from "./IoCreateOrderCodeDetail"
import bizDetailPanel from "./IoCreateOrderBizDetail"
import codesPanel from "./PanelCreateOrderCodes"
import codeDetailPanel from "./PanelCreateOrderCodeDetail"
import bizDetailPanel from "./PanelCreateOrderBizDetail"
import A from "../../plugins/KeyScaner"
import {findByInvUser} from "@/api/basic/busType";
@ -240,7 +243,7 @@ export default {
type: Object,
required: true,
},
viewType: { //1.23
viewType: { //12.3
type: Object,
required: true,
},
@ -584,16 +587,36 @@ export default {
submit() {
let tQuery = Object.assign(JSON.parse(JSON.stringify(this.orderFormData)));
tQuery.orderId = this.orderFormData.billNo;
submitOrderWeb(tQuery)
.then((response) => {
if (response.code === 20000) {
this.$message.success("提交成功");
this.closeDialog();
} else {
this.$message.error(response.message);
}
this.loading = false;
});
if (this.viewType == 2) {
submitCodes(tQuery)
.then((response) => {
if (response.code === 20000) {
this.$message.success("提交成功,等待处理,请刷新后查看!");
this.closeDialog();
} else {
this.$message.error(response.message);
}
});
} else if (this.viewType == 1) {
submitBiz(tQuery)
.then((response) => {
if (response.code === 20000) {
this.$message.success("提交成功");
this.closeDialog();
} else {
this.$message.error(response.message);
}
});
} else
submitOrderWeb(tQuery)
.then((response) => {
if (response.code === 20000) {
this.$message.success("提交成功");
this.closeDialog();
} else {
this.$message.error(response.message);
}
});
},
saveOrder() {
let tQuery = Object.assign(JSON.parse(JSON.stringify(this.orderFormData)));
@ -744,17 +767,17 @@ export default {
this.codeFormData.code = '';
//
if (this.viewType == 1) {//1.23
if (this.viewType == 2) {//2.13
this.viewCodeVisible = true;
this.viewCodeDetailVisible = true;
} else if (this.viewType == 2) {
} else if (this.viewType == 1) {
this.viewBizVisible = true;
} else {
this.viewCodeVisible = true;
this.viewCodeDetailVisible = true;
this.viewBizVisible = true;
}
this.orderFormData.orderType = this.viewType;
if (this.$isNotBlank(this.orderQuery.billNo)) { //
this.corpOrderIdDisabled = true;
this.orderFormData = this.orderQuery;

@ -202,7 +202,7 @@ export default {
billNo: null,
mainAction: null,
action: null,
statusType: "newOrder",
statusType: "scan_code",
page: 1,
limit: 10,
startTime: null,
@ -288,7 +288,7 @@ export default {
},
],
},
viewType: 1,
viewType: 2,
};
},
@ -302,7 +302,7 @@ export default {
billNo: null,
mainAction: null,
action: null,
statusType: "newOrder",
statusType: "scan_code",
page: 1,
limit: 10,
startTime: null,

@ -161,6 +161,7 @@
<addOrder
:closeDialog="closeDialog"
:orderQuery="idQuery"
:viewType="viewType"
></addOrder>
</el-dialog>
<el-dialog
@ -219,7 +220,9 @@ export default {
startTime: null,
endTime: null,
invCode: this.$store.getters.locInvCode,
},
viewType: 3,
checkStatus: {
1: "草稿",
2: "等待处理",
@ -303,9 +306,7 @@ export default {
};
},
components: {
// codeDetail,
addOrder,
// ioErrorOrder
},
methods: {
onReset() {
@ -452,7 +453,6 @@ export default {
getInvListByUser()
.then((response) => {
this.invList = response.data || [];
this.getList();
})
.catch(() => {
});
@ -491,7 +491,8 @@ export default {
this.enableDept = true;
}
}
})
});
this.getList();
},
};

@ -0,0 +1,357 @@
<template>
<div>
<el-row>
<div style="margin: 0px 60px 10px auto; height: 35px; float: right;">
<el-button-group>
<el-button
type="primary"
ref="mainTable"
@click.native.stop="selectProductFunction()"
:loading="loading"
>产品录入
</el-button
>
</el-button-group>
</div>
</el-row>
<el-table v-loading="loading" :data="detailList" style="width: 100%;"
:row-class-name="tableRowClassName"
border
:row-style="rowStyle"
max-height="350" height="350" ref="multipleTable">
<el-table-column label="序号" type="index" width="50"></el-table-column>
<el-table-column width="150"
label="产品通用名"
prop="coName"
show-overflow-tooltip
></el-table-column>
<el-table-column width="150"
label="规格型号"
prop="spec"
show-overflow-tooltip
></el-table-column>
<el-table-column width="150" label="批次号">
<template slot-scope="scope">
<el-input v-model="scope.row.batchNo"
:disabled="scope.row.index !== selectedIndex"
@input="scope.row.batchNo =scope.row.batchNo.replace(/[\W]/g, '')"
ref='inputBatchNoRef'
placeholder="请输入批次号"></el-input>
</template>
</el-table-column>
<el-table-column width="180" label="生产日期(yyMMdd)">
<template slot-scope="scope">
<el-input v-model="scope.row.productDate" auto-complete="off"
oninput="if(value.length>6)value=value.slice(0,6)"
:disabled="scope.row.index !== selectedIndex"
type="number"
></el-input>
</template>
</el-table-column>
<el-table-column width="180" label="失效日期(yyMMdd)">
<template slot-scope="scope">
<el-input v-model="scope.row.expireDate" auto-complete="off"
oninput="if(value.length>6)value=value.slice(0,6)"
:disabled="scope.row.index !== selectedIndex"
type="number"
></el-input>
</template>
</el-table-column>
<el-table-column width="120" label="单据数量">
<template slot-scope="scope">
<el-input v-model="scope.row.count"
type='number'
:disabled="scope.row.index !== selectedIndex"
oninput="value=value.replace(/[^\d]/g,'')"></el-input>
</template>
</el-table-column>
<el-table-column width="150" label="价格">
<template slot-scope="scope">
<el-input v-model="scope.row.price"
type='number'
:disabled="scope.row.index !== selectedIndex"
placeholder="请输入价格"
></el-input>
</template>
</el-table-column>
<el-table-column width="160"
label="注册/备案凭证号"
prop="certCode"
show-overflow-tooltip
>
</el-table-column>
<el-table-column width="150"
label="生产厂家"
prop="manufacturer"
show-overflow-tooltip
></el-table-column>
<el-table-column label="操作" width="150" fixed="right">
<template slot-scope="scope">
<el-button
type="text"
size="small"
v-if="scope.row.index == selectedIndex"
@click.stop="true"
@click.native="saveChange(scope.row)"
>保存
</el-button
>
<el-button
type="text"
size="small"
v-if="scope.row.index != selectedIndex"
@click.stop="true"
@click.native="rowChange(scope.row)"
>编辑
</el-button
>
<el-button
type="text"
size="small"
@click.stop="true"
@click.native="copyDetail(scope.row)"
>复制
</el-button
>
<el-button
type="text"
size="small"
@click.stop="true"
@click.native="deleteDetail(scope.row)"
>删除
</el-button
>
</template>
</el-table-column>
</el-table>
<el-dialog
title="业务详情-产品录入"
:visible.sync="selectProductVisible"
:close-on-click-modal="false"
:close-on-press-escape="false"
width="85%"
v-if="selectProductVisible"
:append-to-body='true'
>
<stockOrderNewSelectProduct
:closeDialog="closeDialog"
:data="thisData"
></stockOrderNewSelectProduct>
</el-dialog>
</div>
</template>
<script>
import stockOrderNewSelectProduct from "./DialogSelectProduct";
import {addBizProduct, getDetailBizs, updateBizProduct, delBizProduct} from "@/api/inout/orderDetailCode";
export default {
name: "IoCreateOrderBizDetail",
props: {
idQuery: {
type: Object,
required: true,
},
refreshPanel: {
type: Function,
required: true,
},
refreshOrder: {
type: Function,
required: true,
},
},
data() {
return {
loading: false,
query: {
orderId: null,
code: "",
corpOrderId: "",
page: 1,
limit: 10,
},
detailList: [],
total: 0,
iCount: 0,
selectProductVisible: false,
thisData: {},
selectedIndex: null,
};
},
components: {
stockOrderNewSelectProduct,
},
methods: {
getOrderDetails() {
this.loading = true;
this.query.orderId = this.idQuery.billNo;
getDetailBizs(this.query) //
.then((response) => {
this.detailList = response.data.list || [];
this.total = response.data.total || 0;
this.loading = false;
})
.catch(() => {
this.loading = false;
this.detailList = [];
this.total = 0;
});
},
rowChange(val) {
this.currentRow = val;
this.selectedIndex = val.index;
},
closeDialog(rData) {
this.selectProductVisible = false;
this.selectInvProductVisible = false;
this.idQuery = rData;
this.getOrderDetails();
},
rowStyle({row, rowIndex}) {
let rowBackground = {};
if (!row.checkSuccess) {
rowBackground.color = '#f60303';
}
return rowBackground;
},
tableRowClassName({row, rowIndex}) {
row.index = rowIndex;
},
selectProductFunction() {
this.selectProductVisible = true;
this.thisData = this.idQuery;
},
saveChange(row) {
updateBizProduct(row)
.then((response) => {
this.loading = false;
if (response.code === 20000) {
this.$message.success("保存成功!");
this.selectedIndex = null;
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
this.dataList = [];
this.pageTotal = 0;
});
},
copyDetail(row) {
let data = {
relId: row.bindRlFk,
zczbhhzbapzbh: row.zczbhhzbapzbh,
orderEntity: this.idQuery,
}
this.loading = true;
addBizProduct(data)
.then((response) => {
this.loading = false;
if (response.code === 20000) {
this.getOrderDetails();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
this.dataList = [];
this.pageTotal = 0;
});
},
deleteDetail(row) {
let data = {
id: row.id,
}
this.loading = true;
delBizProduct(data)
.then((response) => {
this.loading = false;
if (response.code === 20000) {
this.getOrderDetails();
} else {
this.$message.error(response.message);
}
})
.catch(() => {
this.loading = false;
this.dataList = [];
this.pageTotal = 0;
});
}
}
,
filters: {}
,
watch: {
'idQuery.billNo': {
handler() {
this.refreshOrder(this.idQuery);
},
}
},
mounted() {
document.body.ondrop = function (event) {
event.preventDefault();
event.stopPropagation();
};
}
,
created() {
if (this.idQuery.billNo != null)
this.getOrderDetails();
}
,
}
;
</script>
<style scoped>
.el-table_fixed, el-table__fixed-right {
height: 80% !important;
}
.el-table__fixed-body-wrapper {
height: 80% !important;
}
.ao-text {
width: 100%;
font-size: 13px;
font-family: "Microsoft YaHei";
float: right;
text-align: right;
margin-top: 10px;
}
/**
解决el-input输入框 type=number时输入中文光标上移问题
*/
.el-input__inner {
line-height: 1px !important;
}
</style>

@ -73,6 +73,7 @@
<el-table-column width="80"
label="扫码数量"
prop="scanCount"
v-if="viewType!=2"
show-overflow-tooltip
></el-table-column>
<el-table-column width="150" label="价格">
@ -90,12 +91,6 @@
prop="certCode"
show-overflow-tooltip
>
<!-- <template slot-scope="scope">-->
<!-- <el-input size="small" v-model="scope.row.certCode"-->
<!-- :disabled="scope.row.index !== selectedIndex"-->
<!-- placeholder="请输入注册/备案凭证号" style="width: 100%"-->
<!-- ></el-input>-->
<!-- </template>-->
</el-table-column>
<el-table-column width="150"
label="生产厂家"
@ -197,6 +192,11 @@ export default {
type: Function,
required: true,
},
viewType: {
type: Object,
required: true,
},
},
data() {
return {
@ -251,6 +251,8 @@ export default {
},
rowStyle({row, rowIndex}) {
if (this.viewType == 1)
return null;
let rowBackground = {};
if (!row.checkSuccess) {
rowBackground.color = '#f60303';

@ -2,6 +2,7 @@
<div>
<el-table v-loading="loading" :data="detailList" style="width: 100%;" max-height="350" height="350"
border
:row-style="rowStyle"
ref="multipleTable">
<el-table-column type="index" label="序号" width="50"></el-table-column>
<el-table-column label="产品通用名" width="150" prop="coName" show-overflow-tooltip></el-table-column>
@ -46,6 +47,10 @@ export default {
type: Object,
required: true,
},
viewType: {
type: Object,
required: true,
},
},
data() {
return {
@ -84,11 +89,12 @@ export default {
rowStyle({row, rowIndex}) {
let rowBackground = {};
if (!this.$isNotBlank(row.supId) || !this.$isNotBlank(row.relId)) {
if (this.viewType == 3 && !row.checkSuccess) {
rowBackground.color = '#f60303';
}
return rowBackground;
},
},
created() {
if (this.idQuery.billNo != null)

@ -288,7 +288,7 @@ export default {
rowStyle({row, rowIndex}) {
let rowBackground = {};
if (!this.$isNotBlank(row.supId) || !this.$isNotBlank(row.relId)) {
if (!this.$isNotBlank(row.supId) || !this.$isNotBlank(row.relId) ) {
rowBackground.color = '#f60303';
}
return rowBackground;
Loading…
Cancel
Save