nalinv-ui/src/views/wms/document-cancel/index.vue
2024-11-20 10:37:52 +08:00

145 lines
4.2 KiB
Vue

<template>
<div class="execution">
<basic-container>
<avue-crud ref="crud"
:page.sync="page"
:data="tableData"
:permission="permissionList"
:table-loading="tableLoading"
:option="tableOption"
@search-change="searchChange"
@refresh-change="refreshChange"
@size-change="sizeChange"
@current-change="currentChange"
@search-reset="searchReset">
<template slot="searchMenu" slot-scope="{row,size}">
<el-button type="primary" @click="doCancel">冲销</el-button>
</template>
</avue-crud>
</basic-container>
</div>
</template>
<script>
import {pageForCancel, cancelCloseDocument, saleReturnCancel} from '@/api/wms/document-cancel';
import {isBlank} from "@/util/string";
import {hideLoading, showLoading} from '@/const/loading';
import {formatterConst, tableOption} from '@/const/crud/wms/document-cancel';
import {mapGetters} from 'vuex';
export default {
name: 'document-cancel',
data() {
return {
searchForm: {},
tableData: [],
tableSelection: [],
changeStamp: 0,
page: {
total: 0, // 总页数
currentPage: 1, // 当前页数
pageSize: 20 // 每页显示多少条
},
tableLoading: false,
tableOption: tableOption,
formatterConst: formatterConst,
dialogVisible: false,
onEdit: false,
formObj: {},
};
},
computed: {
...mapGetters(['permissions']),
permissionList() {
return {
addBtn: false,
delBtn: false,
editBtn: false
};
}
},
methods: {
// 列表查询
getList(page, params) {
let me = this;
if (!params || isBlank(params.documentNo)) {
return me.$message.error("内部单号不能为空");
} else {
me.tableLoading = true;
pageForCancel(Object.assign({
current: page.currentPage,
size: page.pageSize
}, params, me.searchForm)).then(response => {
me.tableData = response.data.data.records;
me.page.total = response.data.data.total;
me.tableLoading = false;
}).catch(() => {
me.tableLoading = false;
});
}
},
// 每页条数改变事件
sizeChange(pageSize) {
this.page.pageSize = pageSize;
},
// 当前页发生改变事件
currentChange(current) {
this.page.currentPage = current;
},
// 查询事件
searchChange(form, done) {
this.searchForm = form;
this.page.currentPage = 1;
this.getList(this.page, form);
done();
},
searchReset(form, done) {
this.tableData = [];
done();
},
// 刷新事件
refreshChange() {
this.getList(this.page,this.searchForm);
},
selectionChange(rows) {
this.tableSelection = rows;
},
doCancel() {
let me = this;
if (me.tableData.length === 0) {
return me.$message.error("没有待冲销数据");
} else if (me.tableData[0].state === "CANCEL") {
return me.$message.error("单据已冲销");
} else {
let documentNo = me.tableData[0].documentNo;
let documentType = me.tableData[0].documentType;
let fun;
switch (documentType) {
case "PURCHASE_RETURN":
case "COST_CENTER_RECEIVE":
case "SCRAP_OUT":
case "OUTSOURCING":
case "ENGINEER_RECEIVE":
fun = cancelCloseDocument;
break;
case "SALES_RETURN":
fun = saleReturnCancel;
break;
default:
return me.$message.error("不支持的单据类型");
}
me.tableLoading = true;
fun(documentNo).then(resp => {
me.tableLoading = false;
me.$message.success("冲销成功");
me.refreshChange();
}).catch(() => {
me.tableLoading = false;
});
}
}
}
};
</script>