发票登记按钮优化

ywj_dev
CTP 2 years ago
parent ca33251466
commit e02c1328d5

@ -1,16 +1,22 @@
<template>
<div>
<el-button-group>
<el-button style="margin: 20px 0 0 1500px" type="primary" icon="el-icon-bottom-right" @click="onSubmit"
>登记
</el-button
>
</el-button-group>
<el-form :model="inputQuery" :rules="formRules" ref="dataForm" label-width="110px">
<div style="display: flex; flex-direction: column">
<el-button
style="width: 10%; margin-left: auto"
type="primary"
icon="el-icon-bottom-right"
@click="onSubmit"
>登记
</el-button>
<el-form
:model="inputQuery"
:rules="formRules"
ref="dataForm"
label-width="110px"
style="padding-top: 40px"
>
<el-card style="margin-top: -30px">
<el-row >
<el-row>
<el-col :span="20">
<el-form-item prop="code" label="扫码校验:">
<el-input
@ -22,32 +28,41 @@
</el-form-item>
</el-col>
</el-row>
<el-row >
<el-row>
<el-col :span="11">
<el-form-item label="机械编码:" prop="machineNo">
<el-input v-model="inputQuery.machineNo" auto-complete="off" ></el-input>
<el-form-item label="机械编码:" prop="machineNo">
<el-input
v-model="inputQuery.machineNo"
auto-complete="off"
></el-input>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="发票代码:" prop="invoiceCode">
<el-input v-model="inputQuery.invoiceCode" auto-complete="off" ></el-input>
<el-input
v-model="inputQuery.invoiceCode"
auto-complete="off"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-form-item label="发票编码:" prop="invoiceEncode">
<el-input v-model="inputQuery.invoiceEncode" auto-complete="off" ></el-input>
<el-form-item label="发票编码:" prop="invoiceEncode">
<el-input
v-model="inputQuery.invoiceEncode"
auto-complete="off"
></el-input>
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="发票价格:" prop="price">
<el-input v-model="inputQuery.price" auto-complete="off" ></el-input>
<el-input
v-model="inputQuery.price"
auto-complete="off"
></el-input>
</el-form-item>
</el-col>
@ -67,12 +82,14 @@
<el-col :span="11">
<el-form-item label="备注:" prop="remark">
<el-input v-model="inputQuery.remark" auto-complete="off" ></el-input>
<el-input
v-model="inputQuery.remark"
auto-complete="off"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="11">
<el-form-item label="文件:">
@ -91,9 +108,15 @@
:on-success="uploadHandleSuccess"
:on-error="uploadHandleError"
:file-list="fileList"
:data="{type:'image2'}"
:auto-upload="true">
<el-button slot="trigger" size="small" type="primary" :disabled="formData.auditStatus == 1">
:data="{ type: 'image2' }"
:auto-upload="true"
>
<el-button
slot="trigger"
size="small"
type="primary"
:disabled="formData.auditStatus == 1"
>
{{ choiceFile }}
</el-button>
<div>只能上传 jpg,png,pdf,doc 文件且不超过 10 MB</div>
@ -101,18 +124,29 @@
</el-form-item>
</el-col>
<el-col :span="11">
<el-form-item label="文件预览:" v-if="this.inputQuery.licenseUrl!=null">
<el-button type="success" size="mini" icon="search" v-if="this.inputQuery.licenseUrl!=null"
style="text-align:right" @click="showImgViewer" >
<el-form-item
label="文件预览:"
v-if="this.inputQuery.licenseUrl != null"
>
<el-button
type="success"
size="mini"
icon="search"
v-if="this.inputQuery.licenseUrl != null"
style="text-align: right"
@click="showImgViewer"
>
文件预览
</el-button>
</el-form-item>
<el-image-viewer v-if="imgViewerVisible" style="z-index:9999" :on-close="closeImgViewer" :url-list="imgList"/>
<el-image-viewer
v-if="imgViewerVisible"
style="z-index: 9999"
:on-close="closeImgViewer"
:url-list="imgList"
/>
</el-col>
</el-row>
</el-card>
</el-form>
@ -121,15 +155,17 @@
<!--单据业务详情-->
<el-tab-pane>
<span slot="label">单据 {{ input.billNo }}-单据详情</span>
<el-table v-loading="bizDetailLoading" :data="codeDetailList" style="width: 100%" border
@current-change="BizDetailInv"
@selection-change="handleSelectionUdiChange"
row-key="id" highlight-current-row
<el-table
v-loading="bizDetailLoading"
:data="codeDetailList"
style="width: 100%"
border
@current-change="BizDetailInv"
@selection-change="handleSelectionUdiChange"
row-key="id"
highlight-current-row
>
<el-table-column
type="selection"
width="55">
</el-table-column>
<el-table-column type="selection" width="55"> </el-table-column>
<el-table-column label="序号" type="index"></el-table-column>
<el-table-column
label="物资名称"
@ -188,13 +224,13 @@
show-overflow-tooltip
></el-table-column>
<el-table-column
label="发票编码"
prop="invoiceCodes"
show-overflow-tooltip
></el-table-column>
label="发票编码"
prop="invoiceCodes"
show-overflow-tooltip
></el-table-column>
</el-table>
<pagination
v-show="codeTotal>0"
v-show="codeTotal > 0"
:total="codeTotal"
:page.sync="codeQuery.page"
:limit.sync="codeQuery.limit"
@ -203,7 +239,12 @@
</el-tab-pane>
</el-tabs>
<el-image-viewer v-if="imgViewerVisible" style="z-index:9999" :on-close="closeImgViewer" :url-list="imgList"/>
<el-image-viewer
v-if="imgViewerVisible"
style="z-index: 9999"
:on-close="closeImgViewer"
:url-list="imgList"
/>
</div>
</template>
@ -215,78 +256,78 @@ import {
insertInvoice,
updateOrder,
filterBizOrderList,
updateorderBiz
} from '@/api/inout/orderDetailBiz'
import AcceptOrder from '@/views/inout/DialogReviewOrder'
import DialogInvoice from '@/views/inout/DialogInvoice'
import InvoiceRegister from '@/views/inout/InvoiceRegister'
updateorderBiz,
} from "@/api/inout/orderDetailBiz";
import AcceptOrder from "@/views/inout/DialogReviewOrder";
import DialogInvoice from "@/views/inout/DialogInvoice";
import InvoiceRegister from "@/views/inout/InvoiceRegister";
import { previewImage } from '@/api/purchase/supCompany'
import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
import store from '@/store'
import { previewImage } from "@/api/purchase/supCompany";
import ElImageViewer from "element-ui/packages/image/src/image-viewer";
import store from "@/store";
const formJson = {
site_id: '',
site_name: '',
describe: '',
ads: []
}
site_id: "",
site_name: "",
describe: "",
ads: [],
};
export default {
name: 'checkInvoice',
name: "checkInvoice",
props: {
closeDialog:{
type:Function,
required: true
closeDialog: {
type: Function,
required: true,
},
input: {
type: Object,
required: true
required: true,
},
getOrderDetails :{
getOrderDetails: {
type: Object,
required: true
required: true,
},
invoiceRow:{
invoiceRow: {
type: Array,
required: true
}
required: true,
},
},
data() {
return {
idList:[],
invoiceRow:[],
statusCode:null,
idList: [],
invoiceRow: [],
statusCode: null,
choiceFile: "选取文件",
fileList: [],
headers: {},
uploadUrl: "",
inputQuery:{
ggxh:null,
cpmctymc:null,
machineNo:null,
invoiceCode:null,
invoiceEncode:null,
price:null,
invoiceDate:null,
remark:null,
licenseUrl:null
inputQuery: {
ggxh: null,
cpmctymc: null,
machineNo: null,
invoiceCode: null,
invoiceEncode: null,
price: null,
invoiceDate: null,
remark: null,
licenseUrl: null,
},
imgList: [],
imgViewerVisible: false,
BASE_URL: process.env.VUE_APP_BASE_API,
showSearch: true,
filterQuery: {
id: '',
id: "",
billNo: null,
mainAction: null,
action: null,
page: 1,
supInoivceSearch: 'supInvoice',
supInoivceSearch: "supInvoice",
limit: 10,
startTime: null,
endTime: null,
invCode: this.$store.getters.locInvCode
invCode: this.$store.getters.locInvCode,
},
corpLoading: false,
@ -294,39 +335,36 @@ export default {
formName: 1,
formMap: {
1: '发票登记'
1: "发票登记",
},
formRules: {
machineNo: [
{required: true, message: "请输入机械编码", trigger: "blur"}
{ required: true, message: "请输入机械编码", trigger: "blur" },
],
invoiceCode: [
{required: true, message: "请输入发票代码", trigger: "blur"}
{ required: true, message: "请输入发票代码", trigger: "blur" },
],
invoiceEncode: [
{required: true, message: "请输入发票编码", trigger: "blur"}
],
price: [
{required : true, message: "请输入发票价格", trigger:"blur"}
],
remark: [
{required : true, message: "请输入备注", trigger:"blur"}
{ required: true, message: "请输入发票编码", trigger: "blur" },
],
price: [{ required: true, message: "请输入发票价格", trigger: "blur" }],
remark: [{ required: true, message: "请输入备注", trigger: "blur" }],
},
certFileUrl: '',
certFileUrl: "",
Upinvoice: false,
currentManufacturer: {},
InvoiceRegisterv: false,
checkStatus: {
1: '草稿',
2: '等待处理',
3: '等待校验',
4: '处理异常',
5: '待核对',
6: '校验异常',
7: '已审核',
8: '审核拒绝',
9: '正在处理', 10: '待审核'
1: "草稿",
2: "等待处理",
3: "等待校验",
4: "处理异常",
5: "待核对",
6: "校验异常",
7: "已审核",
8: "审核拒绝",
9: "正在处理",
10: "待审核",
},
storageList: [],
invList: [],
@ -339,23 +377,23 @@ export default {
showSup: false,
fromTypeMap: {
'1': 'UDIMS平台',
'2': '网页新增',
'3': 'pda即时校验',
'4': 'pda未校验',
'5': 'pc端扫码精灵',
'6': '流转自动补单',
'7': 'UDI供应商平台',
'8': '平衡补录单据',
'10': '手动补单',
'11': '仓库盘点',
'12': '采购计划',
'13': '领用单据',
'14': '第三方系统单据'
1: "UDIMS平台",
2: "网页新增",
3: "pda即时校验",
4: "pda未校验",
5: "pc端扫码精灵",
6: "流转自动补单",
7: "UDI供应商平台",
8: "平衡补录单据",
10: "手动补单",
11: "仓库盘点",
12: "采购计划",
13: "领用单据",
14: "第三方系统单据",
},
deleteData: {
id: '',
status: 10
id: "",
status: 10,
},
dialogTableVisible: false,
formLoading: false,
@ -364,46 +402,46 @@ export default {
deleteLoading: false,
busTypes: [],
currentRow: {
billNo: ''
billNo: "",
},
actDateRange: [],
auditDateRange: [],
pickerOptions: {
shortcuts: [
{
text: '最近一周',
text: "最近一周",
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
picker.$emit('pick', [start, end])
}
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit("pick", [start, end]);
},
},
{
text: '最近一个月',
text: "最近一个月",
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
picker.$emit('pick', [start, end])
}
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit("pick", [start, end]);
},
},
{
text: '最近三个月',
text: "最近三个月",
onClick(picker) {
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90)
picker.$emit('pick', [start, end])
}
}
]
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit("pick", [start, end]);
},
},
],
},
bizQuery: {
productName: null,
orderIdFk: null,
page: 1,
limit: 10
limit: 10,
},
bizTotal: 0,
invTotal: 0,
@ -412,7 +450,7 @@ export default {
codeQuery: {
orderIdFk: null,
page: 1,
limit: 10
limit: 10,
},
codeTotal: 0,
codeDetailLoading: false,
@ -421,70 +459,65 @@ export default {
orderId: null,
code: null,
page: 1,
limit: 10
limit: 10,
},
resultTotal: 0,
resultDetailLoading: false,
resultDetailList: [],
acceptQuery: null,
acceptOrderVisible: false,
subRow: null
}
subRow: null,
};
},
components: { AcceptOrder, DialogInvoice, InvoiceRegister, ElImageViewer },
methods: {
onSubmit() {
if(this.invoiceRow.length==0) {
this.$message.error("请选择要登记的物资! ");
return false;
}
if (this.$isBlank(this.inputQuery.machineNo)) {
this.$message.error("机械编码不能为空!");
return;
}
if (this.$isBlank(this.inputQuery.invoiceCode)) {
this.$message.error("发票代码不能为空!");
return;
}
if (this.$isBlank(this.inputQuery.invoiceEncode)) {
this.$message.error("发票编码不能为空!");
return;
}
if (this.$isBlank(this.inputQuery.price)) {
this.$message.error("发票价格不能为空!");
return;
}
if (this.$isBlank(this.inputQuery.remark)) {
this.$message.error("备注不能为空!");
return;
}
this.inputQuery.list=this.invoiceRow;
insertInvoice(this.inputQuery)
.then(response => {
if (response.code === 20000) {
this.statusCode=response.code;
} else {
this.$message.error(response.message);
}
})
.catch((response) => {
if (this.invoiceRow.length == 0) {
this.$message.error("请选择要登记的物资! ");
return false;
}
if (this.$isBlank(this.inputQuery.machineNo)) {
this.$message.error("机械编码不能为空!");
return;
}
if (this.$isBlank(this.inputQuery.invoiceCode)) {
this.$message.error("发票代码不能为空!");
return;
}
if (this.$isBlank(this.inputQuery.invoiceEncode)) {
this.$message.error("发票编码不能为空!");
return;
}
if (this.$isBlank(this.inputQuery.price)) {
this.$message.error("发票价格不能为空!");
return;
}
if (this.$isBlank(this.inputQuery.remark)) {
this.$message.error("备注不能为空!");
return;
}
this.inputQuery.list = this.invoiceRow;
insertInvoice(this.inputQuery)
.then((response) => {
if (response.code === 20000) {
this.statusCode = response.code;
} else {
this.$message.error(response.message);
});
}
})
.catch((response) => {
this.$message.error(response.message);
});
//
updateorderBiz(this.inputQuery.list).then(res =>{
updateorderBiz(this.inputQuery.list).then((res) => {
this.closeDialog();
})
});
},
uploadHandleError() {
},
uploadHandleError() {},
uploadHandleSuccess(response, file, fileList) {
debugger
debugger;
if (response.code === 20000) {
this.inputQuery.licenseUrl = response.data.name;
// this.onSubmit();
@ -494,14 +527,20 @@ export default {
},
uploadOnchange(file, fileList) {
let fileName = file.name;
let uid = file.uid
let uid = file.uid;
let pos = fileName.lastIndexOf(".");
let lastName = fileName.substring(pos, fileName.length);
if (lastName.toLowerCase() !== ".jpg" && lastName.toLowerCase() !== ".png" && lastName.toLowerCase() !== ".doc" && lastName.toLowerCase() !== ".pdf") {
if (
lastName.toLowerCase() !== ".jpg" &&
lastName.toLowerCase() !== ".png" &&
lastName.toLowerCase() !== ".doc" &&
lastName.toLowerCase() !== ".pdf"
) {
this.$message.error("上传文件只能是 jpg,png,doc,pdf 格式");
for (let i = 0; i < fileList.length; i++) {//list
for (let i = 0; i < fileList.length; i++) {
//list
if (fileList[i].uid === uid) {
fileList.splice(i, 1)
fileList.splice(i, 1);
}
}
return;
@ -512,21 +551,25 @@ export default {
this.$message.error("上传文件大小不能超过 30MB");
for (let i = 0; i < fileList.length; i++) {
if (fileList[i].uid === uid) {
fileList.splice(i, 1)
fileList.splice(i, 1);
}
}
}
return isLt;
},
uploadHandleExceed(files, fileList) {
this.$message.warning(`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`);
this.$message.warning(
`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
files.length + fileList.length
} 个文件`
);
},
uploadHandlePreview(file) {
console.log(file);
console.log(this.fileList);
},
uploadHandleRemove(file, fileList) {
this.inputQuery.licenseUrl=null;
this.inputQuery.licenseUrl = null;
console.log(file, fileList);
},
getOrderDetail() {
@ -538,91 +581,99 @@ export default {
getCodeDetailLists() {
this.codeQuery.orderIdFk = this.input.billNo;
this.codeDetailLoading = true;
filterBizOrderList(this.codeQuery).then((res) => {
this.codeDetailLoading = false;
if (res.code === 20000) {
this.codeDetailList = res.data.list || [];
this.codeTotal = res.data.total || 0;
} else {
this.$message.error(res.message);
filterBizOrderList(this.codeQuery)
.then((res) => {
this.codeDetailLoading = false;
if (res.code === 20000) {
this.codeDetailList = res.data.list || [];
this.codeTotal = res.data.total || 0;
} else {
this.$message.error(res.message);
this.codeDetailList = [];
this.codeTotal = 0;
}
})
.catch((error) => {
this.codeDetailLoading = true;
this.$message.error(error.message);
this.codeDetailList = [];
this.codeTotal = 0;
}
}).catch((error) => {
this.codeDetailLoading = true;
this.$message.error(error.message);
this.codeDetailList = [];
this.codeTotal = 0;
})
});
},
BizDetailInv(row) {
this.bizQuery.page = 1;
this.getBizDetailList(row);
},
handleSelectionUdiChange(val){
this.invoiceRow=val;
// this.$emit("upData",this.invoiceRow);
handleSelectionUdiChange(val) {
this.invoiceRow = val;
// this.$emit("upData",this.invoiceRow);
},
getBizDetailList(row) {
this.bizQuery.orderIdFk = this.input.billNo;
if(row != null) {
if (row != null) {
this.bizQuery.batchNo = row.batchNo;
this.bizQuery.relId = row.bindRlFk;
}
filterListInvoice(this.bizQuery).then((res) => {
this.bizDetailLoading = false;
if (res.code === 20000) {
this.bizDetailList = res.data.list || [];
this.invTotal = res.data.total || 0;
} else {
this.$message.error(res.message);
filterListInvoice(this.bizQuery)
.then((res) => {
this.bizDetailLoading = false;
if (res.code === 20000) {
this.bizDetailList = res.data.list || [];
this.invTotal = res.data.total || 0;
} else {
this.$message.error(res.message);
this.bizDetailList = [];
this.invTotal = 0;
}
})
.catch((error) => {
this.bizDetailLoading = false;
this.$message.error(error.message);
this.bizDetailList = [];
this.invTotal = 0;
}
}).catch((error) => {
this.bizDetailLoading = false;
this.$message.error(error.message);
this.bizDetailList = [];
this.invTotal = 0;
})
});
},
determineBtn() {
var data={
billNo:this.input.billNo,
checkStatus:1
}
updateOrder(data).then((res) => {
this.closeDialog();
}).catch((error) => {
})
var data = {
billNo: this.input.billNo,
checkStatus: 1,
};
updateOrder(data)
.then((res) => {
this.closeDialog();
})
.catch((error) => {});
},
showImgViewer(row) {
this.certFileUrl = this.BASE_URL + "/udiwms/image/register/file/getImage?type=image2&name=";
this.certFileUrl =
this.BASE_URL +
"/udiwms/image/register/file/getImage?type=image2&name=";
this.imgList = [];
previewImage({imageUrl: this.inputQuery.licenseUrl, certFileUrl: this.certFileUrl}).then(response => {
previewImage({
imageUrl: this.inputQuery.licenseUrl,
certFileUrl: this.certFileUrl,
}).then((response) => {
if (response.code === 20000) {
this.imgList = response.data;
}
console.log(this.imgList)
console.log(this.imgList);
this.imgViewerVisible = true;
});
const m = (e) => {
e.preventDefault()
e.preventDefault();
};
document.body.style.overflow = 'hidden';
document.body.style.overflow = "hidden";
document.addEventListener("touchmove", m, false); //
},
closeImgViewer() {
this.imgViewerVisible = false;
const m = (e) => {
e.preventDefault()
e.preventDefault();
};
document.body.style.overflow = 'auto';
document.body.style.overflow = "auto";
document.removeEventListener("touchmove", m, true);
},
},
@ -633,12 +684,8 @@ export default {
ADMIN_TOKEN: store.getters.token,
};
this.getOrderDetail();
}
}
},
};
</script>
<style type="text/scss" lang="scss">
</style>
<style type="text/scss" lang="scss"></style>

Loading…
Cancel
Save