|
@@ -5,20 +5,21 @@
|
|
|
<Card style="width:100%" :bordered="false" :dis-hover="true">
|
|
|
<p slot="title">采购结算详情</p>
|
|
|
<div slot="extra">
|
|
|
- <Button>保存</Button>
|
|
|
+ <Button @click="addJs">保存</Button>
|
|
|
<Button>提交</Button>
|
|
|
- <Button @click="$emit('return')">取消</Button>
|
|
|
+ <Button @click="cancel">取消</Button>
|
|
|
</div>
|
|
|
<Row class="mainCont">
|
|
|
<Col span="4" class-name="tables">结算申请编号</Col>
|
|
|
- <Col span="4" class-name="tables">计算属性</Col>
|
|
|
+ <Col span="4" class-name="tables">{{ form.jssqbh == "" ? "新增成功之后生成" : form.jssqbh }}</Col>
|
|
|
<Col span="4" class-name="tables">标题</Col>
|
|
|
- <Col span="12" class-name="tables">
|
|
|
- <Input v-model="form.bt" placeholder="请输入" style="width: 99%" />
|
|
|
+ <Col span="12" class-name="tables">{{ form.bt == "" ? "新增成功之后生成" : form.bt }}</Col>
|
|
|
+ <Col span="4" class-name="tables">
|
|
|
+ 关联区域
|
|
|
+ <span class="mustSpan">*</span>
|
|
|
</Col>
|
|
|
- <Col span="4" class-name="tables">关联区域</Col>
|
|
|
<Col span="4" class-name="tables">
|
|
|
- <Select v-model="form.glqy" style="width: 95%">
|
|
|
+ <Select v-model="form.glqy" :disabled="balanceType == 'edit'" style="width: 95%">
|
|
|
<Option
|
|
|
v-for="item in glqyList"
|
|
|
:value="item.value"
|
|
@@ -26,9 +27,12 @@
|
|
|
>{{ item.label }}</Option>
|
|
|
</Select>
|
|
|
</Col>
|
|
|
- <Col span="4" class-name="tables">关联项目</Col>
|
|
|
<Col span="4" class-name="tables">
|
|
|
- <Select v-model="form.glxm" style="width: 95%">
|
|
|
+ 关联项目
|
|
|
+ <span class="mustSpan">*</span>
|
|
|
+ </Col>
|
|
|
+ <Col span="4" class-name="tables">
|
|
|
+ <Select v-model="form.glxm" :disabled="balanceType == 'edit'" style="width: 95%">
|
|
|
<Option
|
|
|
v-for="item in glxmList"
|
|
|
:value="item.value"
|
|
@@ -38,7 +42,10 @@
|
|
|
</Col>
|
|
|
<Col span="4" class-name="tables"></Col>
|
|
|
<Col span="4" class-name="tables"></Col>
|
|
|
- <Col span="4" class-name="tables">供应商</Col>
|
|
|
+ <Col span="4" class-name="tables">
|
|
|
+ 供应商
|
|
|
+ <span class="mustSpan">*</span>
|
|
|
+ </Col>
|
|
|
<Col span="4" class-name="tables">
|
|
|
<Select v-model="form.gys" style="width: 95%">
|
|
|
<Option v-for="item in gysList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
@@ -58,15 +65,24 @@
|
|
|
>{{ item.label }}</Option>
|
|
|
</Select>
|
|
|
</Col>
|
|
|
- <Col span="4" class-name="tables">开户行</Col>
|
|
|
+ <Col span="4" class-name="tables">
|
|
|
+ 开户行
|
|
|
+ <span class="mustSpan">*</span>
|
|
|
+ </Col>
|
|
|
<Col span="4" class-name="tables">
|
|
|
<Input v-model="form.khh" placeholder="请输入" style="width: 95%" />
|
|
|
</Col>
|
|
|
- <Col span="4" class-name="tables">账号</Col>
|
|
|
+ <Col span="4" class-name="tables">
|
|
|
+ 账号
|
|
|
+ <span class="mustSpan">*</span>
|
|
|
+ </Col>
|
|
|
<Col span="4" class-name="tables">
|
|
|
<Input v-model="form.zh" placeholder="请输入" style="width: 95%" />
|
|
|
</Col>
|
|
|
- <Col span="4" class-name="tables">单据类型</Col>
|
|
|
+ <Col span="4" class-name="tables">
|
|
|
+ 单据类型
|
|
|
+ <span class="mustSpan">*</span>
|
|
|
+ </Col>
|
|
|
<Col span="4" class-name="tables">
|
|
|
<Select v-model="form.djlx" style="width: 95%">
|
|
|
<Option
|
|
@@ -77,22 +93,31 @@
|
|
|
</Select>
|
|
|
</Col>
|
|
|
<Col span="4" class-name="tables">下单时间</Col>
|
|
|
- <Col span="4" class-name="tables">系统带出,不可编辑</Col>
|
|
|
+ <Col span="4" class-name="tables">{{ form.xdsj == "" ? "新增成功之后生成" : form.xdsj }}</Col>
|
|
|
<Col span="4" class-name="tables">收货人</Col>
|
|
|
<Col span="4" class-name="tables">
|
|
|
<Input v-model="form.shr" placeholder="请输入" style="width: 95%" />
|
|
|
</Col>
|
|
|
<Col span="4" class-name="tables">入库时间(首次)</Col>
|
|
|
<Col span="4" class-name="tables">系统带出,不可编辑</Col>
|
|
|
- <Col span="4" class-name="tables">总价(元)</Col>
|
|
|
- <Col span="4" class-name="tables">系统计算,不可编辑</Col>
|
|
|
+ <Col span="4" class-name="tables">
|
|
|
+ 总价(元)
|
|
|
+ <span class="mustSpan">*</span>
|
|
|
+ </Col>
|
|
|
+ <Col span="4" class-name="tables">{{ form.total }}</Col>
|
|
|
<Col span="4" class-name="tables">调整金额(元)</Col>
|
|
|
<Col span="4" class-name="tables">
|
|
|
<Input v-model="form.tzje" placeholder="请输入" style="width: 95%" />
|
|
|
</Col>
|
|
|
- <Col span="4" class-name="tables">实际支付金额(元)</Col>
|
|
|
- <Col span="4" class-name="tables">系统计算,不可编辑</Col>
|
|
|
- <Col span="4" class-name="tables">申请人</Col>
|
|
|
+ <Col span="4" class-name="tables">
|
|
|
+ 实际支付金额(元)
|
|
|
+ <span class="mustSpan">*</span>
|
|
|
+ </Col>
|
|
|
+ <Col span="4" class-name="tables">{{ Number(form.total) + Number(form.tzje) }}</Col>
|
|
|
+ <Col span="4" class-name="tables">
|
|
|
+ 申请人
|
|
|
+ <span class="mustSpan">*</span>
|
|
|
+ </Col>
|
|
|
<Col span="4" class-name="tables">
|
|
|
<Select v-model="form.sqr" style="width: 95%">
|
|
|
<Option v-for="item in sqrList" :value="item.value" :key="item.value">{{ item.label }}</Option>
|
|
@@ -100,7 +125,12 @@
|
|
|
</Col>
|
|
|
<Col span="4" class-name="tables">审批状态</Col>
|
|
|
<Col span="4" class-name="tables">
|
|
|
- 系统带出,不可编辑
|
|
|
+ <div>
|
|
|
+ <span v-if="form.spzt == '1'">未提交</span>
|
|
|
+ <span v-if="form.spzt == '2'">审核中</span>
|
|
|
+ <span v-if="form.spzt == '3'">审核通过</span>
|
|
|
+ <span v-if="form.spzt == '4'">审核拒绝</span>
|
|
|
+ </div>
|
|
|
</Col>
|
|
|
<Col span="4" class-name="tables"></Col>
|
|
|
<Col span="4" class-name="tables"></Col>
|
|
@@ -127,7 +157,7 @@
|
|
|
</Col>
|
|
|
<Col span="10" class="upl" style="padding: 5px">
|
|
|
<div v-for="(item, index) in form.filesList" :key="index">
|
|
|
- <a href="javascript:;">{{ item.fullName }}</a>
|
|
|
+ <a href="javascript:;">{{ item.fileName }}</a>
|
|
|
<span style="float: right; cursor:pointer" @click="form.filesList.splice(index, 1)">x</span>
|
|
|
</div>
|
|
|
<p v-if="uploading" style="text-align: center">上传中...</p>
|
|
@@ -144,29 +174,35 @@
|
|
|
<Card style="width:100%" :bordered="false" :dis-hover="true">
|
|
|
<p slot="title">结算明细</p>
|
|
|
<div slot="extra">
|
|
|
- <Button type="primary" @click="contentShow = false">新增明细</Button>
|
|
|
+ <Button type="primary" :disabled="balanceType == 'add'" @click="addMxShow">新增明细</Button>
|
|
|
</div>
|
|
|
- <Table
|
|
|
- :columns="tableColumn"
|
|
|
- style="width: 100%"
|
|
|
- :data="tableData"
|
|
|
- :loading="tableLoading"
|
|
|
- @on-select="tableOnSelect"
|
|
|
- >
|
|
|
+ <Table :columns="tableColumn" style="width: 100%" :data="tableData" :loading="tableLoading">
|
|
|
<template slot-scope="{ row, index }" slot="cz">
|
|
|
<div>
|
|
|
- <a href="javascript:;">删除</a>
|
|
|
+ <a href="javascript:;" @click="deleteMx(row, index)">删除</a>
|
|
|
</div>
|
|
|
</template>
|
|
|
</Table>
|
|
|
</Card>
|
|
|
</div>
|
|
|
<!-- 采购明细新增 -->
|
|
|
- <balanceMxAdd @return="contentShow = true" v-show="!contentShow" />
|
|
|
+ <balanceMxAdd
|
|
|
+ ref="mxAdd"
|
|
|
+ :ssxmList="glqyList"
|
|
|
+ @addMx="addMx"
|
|
|
+ @return="contentShow = true"
|
|
|
+ v-show="!contentShow"
|
|
|
+ />
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+import {
|
|
|
+ addPurchaseSettlement,
|
|
|
+ queryPurchaseSettlementInfo,
|
|
|
+ editPurchaseSettlement,
|
|
|
+ selectGoodProviderSelectionList
|
|
|
+} from "@/service/getData";
|
|
|
import balanceMxAdd from "./balanceMxAdd";
|
|
|
export default {
|
|
|
components: {
|
|
@@ -174,9 +210,12 @@ export default {
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ balanceType: "add",
|
|
|
+ settlementId: "",
|
|
|
spinShow: true,
|
|
|
contentShow: true,
|
|
|
form: {
|
|
|
+ jssqbh: "", //结算申请编号
|
|
|
bt: "", //标题
|
|
|
glqy: "", //关联区域
|
|
|
glxm: "", //关联项目
|
|
@@ -188,16 +227,19 @@ export default {
|
|
|
djlx: "", //单据类型
|
|
|
shr: "", //收货人
|
|
|
tzje: "", //调整金额
|
|
|
+ xdsj: "", //下单时间
|
|
|
sqr: "", //申请人
|
|
|
+ spzt: 1, //审批状态
|
|
|
sm: "", //说明
|
|
|
+ total: 0, //总价
|
|
|
filesList: []
|
|
|
},
|
|
|
- glqyList: [],
|
|
|
- glxmList: [],
|
|
|
- gysList: [],
|
|
|
- gyslxdhList: [],
|
|
|
- djlxList: [],
|
|
|
- sqrList: [],
|
|
|
+ glqyList: [{ value: 1, label: "test" }],
|
|
|
+ glxmList: [{ value: 1, label: "test" }],
|
|
|
+ gysList: [{ value: 1, label: "test" }],
|
|
|
+ gyslxdhList: [{ value: 1, label: "test" }],
|
|
|
+ djlxList: [{ value: 1, label: "test" }],
|
|
|
+ sqrList: [{ value: 1, label: "test" }],
|
|
|
uploading: false,
|
|
|
// 批量设置
|
|
|
plszShow: false,
|
|
@@ -205,51 +247,45 @@ export default {
|
|
|
pldhsj: "",
|
|
|
// table
|
|
|
tableColumn: [
|
|
|
- {
|
|
|
- type: "selection",
|
|
|
- width: 60,
|
|
|
- align: "center",
|
|
|
- fixed: "left"
|
|
|
- },
|
|
|
{
|
|
|
title: "入库单",
|
|
|
- key: "rkd",
|
|
|
- tooltip: "true",
|
|
|
+ key: "warehouseEntry",
|
|
|
+ tooltip: "true"
|
|
|
},
|
|
|
{
|
|
|
title: "总价(元)",
|
|
|
- key: "zj",
|
|
|
- tooltip: "true",
|
|
|
+ key: "totalPrice",
|
|
|
+ tooltip: "true"
|
|
|
},
|
|
|
{
|
|
|
title: "采购人",
|
|
|
- key: "cgr",
|
|
|
- tooltip: "true",
|
|
|
+ key: "purchaserName",
|
|
|
+ tooltip: "true"
|
|
|
},
|
|
|
{
|
|
|
title: "采购人联系方式",
|
|
|
- key: "cgrlxfs",
|
|
|
- tooltip: "true",
|
|
|
+ key: "purchaserTel",
|
|
|
+ tooltip: "true"
|
|
|
},
|
|
|
{
|
|
|
title: "下单时间",
|
|
|
- key: "xdsj",
|
|
|
- tooltip: "true",
|
|
|
+ key: "orderTime",
|
|
|
+ tooltip: "true"
|
|
|
},
|
|
|
{
|
|
|
title: "入库时间",
|
|
|
- key: "rksj",
|
|
|
- tooltip: "true",
|
|
|
+ key: "storehouseTime",
|
|
|
+ tooltip: "true"
|
|
|
},
|
|
|
{
|
|
|
title: "入库仓库",
|
|
|
- key: "rkck",
|
|
|
- tooltip: "true",
|
|
|
+ key: "storehouseName",
|
|
|
+ tooltip: "true"
|
|
|
},
|
|
|
{
|
|
|
title: "仓管员",
|
|
|
- key: "cgy",
|
|
|
- tooltip: "true",
|
|
|
+ key: "warehouseKeeper",
|
|
|
+ tooltip: "true"
|
|
|
},
|
|
|
{
|
|
|
title: "操作",
|
|
@@ -266,6 +302,9 @@ export default {
|
|
|
},
|
|
|
created() {
|
|
|
this.getTableData();
|
|
|
+ selectGoodProviderSelectionList().then(res => {
|
|
|
+ console.log(res);
|
|
|
+ })
|
|
|
},
|
|
|
methods: {
|
|
|
//批量设置弹窗
|
|
@@ -282,26 +321,188 @@ export default {
|
|
|
uploadFilesSuccess(response, file, fileList) {
|
|
|
this.uploading = false;
|
|
|
this.form.filesList.push({
|
|
|
- fileName: response.fileInfo.fileName,
|
|
|
- fullName: response.fileInfo.fName,
|
|
|
- resPath: response.fileInfo.resPath,
|
|
|
- fileDetailType: ""
|
|
|
+ fileName: response.fileInfo.fName,
|
|
|
+ // fullName: response.fileInfo.fName,
|
|
|
+ filePath: response.fileInfo.resPath
|
|
|
+ // fileDetailType: ""
|
|
|
});
|
|
|
},
|
|
|
+ //查询结算详情
|
|
|
+ getJs(settlementId) {
|
|
|
+ this.spinShow = true;
|
|
|
+ queryPurchaseSettlementInfo(settlementId).then(res => {
|
|
|
+ this.spinShow = false;
|
|
|
+ if (res.status == 200) {
|
|
|
+ let data = res.data;
|
|
|
+ this.form.glqy = Number(data.areaId);
|
|
|
+ this.form.glxm = Number(data.projectId);
|
|
|
+ this.form.gys = Number(data.supplierId);
|
|
|
+ this.form.gffzr = data.supplierPrincipal;
|
|
|
+ this.form.gyslxdh = Number(data.supplierTel);
|
|
|
+ this.form.khh = data.depositBank;
|
|
|
+ this.form.zh = data.accountNumber;
|
|
|
+ this.form.djlx = data.type;
|
|
|
+ this.form.shr = data.receivedName;
|
|
|
+ this.form.spzt = data.approvalState;
|
|
|
+ this.form.sqr = Number(data.applicantId);
|
|
|
+ this.form.xdsj = data.orderTime;
|
|
|
+ this.form.jssqbh = data.settlementCode;
|
|
|
+ this.form.sm = data.instruction;
|
|
|
+ this.balanceType = "edit";
|
|
|
+ this.form.filesList = data.attachmentList;
|
|
|
+ this.tableData = data.detailList;
|
|
|
+ } else {
|
|
|
+ this.$Message.error(res.message);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //编辑结算详情
|
|
|
+ editJs() {
|
|
|
+ let postData = {
|
|
|
+ settlementId: this.settlementId,
|
|
|
+ areaId: this.form.glqy,
|
|
|
+ areaName: this.glqyList.filter(a => a.value == this.form.glqy)[0].label,
|
|
|
+ supplierId: this.form.gys,
|
|
|
+ supplierPrincipal: this.form.gffzr,
|
|
|
+ supplierTel: this.form.gyslxdh,
|
|
|
+ depositBank: this.form.khh,
|
|
|
+ accountNumber: this.form.zh,
|
|
|
+ type: this.form.djlx,
|
|
|
+ receivedName: this.form.shr,
|
|
|
+ adjustmentPrice: this.form.tzje,
|
|
|
+ instruction: this.form.sm,
|
|
|
+ attachmentList: this.form.filesList,
|
|
|
+ applicantId: this.form.sqr,
|
|
|
+ applicantName: this.sqrList.filter(a => a.value == this.form.sqr)[0]
|
|
|
+ .label,
|
|
|
+ attachmentList: this.form.filesList,
|
|
|
+ detailList: this.tableData
|
|
|
+ };
|
|
|
+ // console.log(postData);
|
|
|
+ editPurchaseSettlement(postData).then(res => {
|
|
|
+ if (res.status == 200) {
|
|
|
+ this.$Message.success("编辑结算详情成功!");
|
|
|
+ } else {
|
|
|
+ this.$Message.error(res.message);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //新增结算
|
|
|
+ addJs() {
|
|
|
+ if (this.balanceType == "edit") {
|
|
|
+ this.editJs();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ let mArr = ["glqy", "glxm", "gys", "khh", "zh", "djlx", "sqr"];
|
|
|
+ for (let item in mArr) {
|
|
|
+ let it = mArr[item];
|
|
|
+ if (this.form[it] == "" || this.form[it].length == 0) {
|
|
|
+ this.$Message.error("请将信息填写完整!");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let postData = {
|
|
|
+ areaId: this.form.glqy,
|
|
|
+ projectId: this.form.glxm,
|
|
|
+ areaName: this.glqyList.filter(a => a.value == this.form.glqy)[0].label,
|
|
|
+ projectName: this.glxmList.filter(a => a.value == this.form.glxm)[0]
|
|
|
+ .label,
|
|
|
+ supplierId: this.form.gys,
|
|
|
+ supplierPrincipal: this.form.gffzr,
|
|
|
+ supplierTel: this.form.gyslxdh,
|
|
|
+ depositBank: this.form.khh,
|
|
|
+ accountNumber: this.form.zh,
|
|
|
+ type: this.form.djlx,
|
|
|
+ receivedName: this.form.shr,
|
|
|
+ // recivedTel: this,
|
|
|
+ adjustmentPrice: Number(this.form.tzje),
|
|
|
+ instruction: this.form.sm,
|
|
|
+ projectCode: "1234",
|
|
|
+ attachmentList: this.form.filesList,
|
|
|
+ applicantId: this.form.sqr,
|
|
|
+ applicantName: this.sqrList.filter(a => a.value == this.form.sqr)[0]
|
|
|
+ .label
|
|
|
+ };
|
|
|
+ addPurchaseSettlement(postData).then(res => {
|
|
|
+ if (res.status == 200) {
|
|
|
+ this.$Message.success("新增采购结算成功");
|
|
|
+ this.form.jssqbh = res.data.settlementCode;
|
|
|
+ this.form.xdsj = res.data.orderTime;
|
|
|
+ this.settlementId = res.data.settlementId;
|
|
|
+ this.balanceType = "edit";
|
|
|
+ } else {
|
|
|
+ this.$Message.error(res.message);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 新增明细弹窗
|
|
|
+ addMxShow() {
|
|
|
+ this.contentShow = false;
|
|
|
+ this.$refs.mxAdd.gysId = this.form.gys;
|
|
|
+ this.$refs.mxAdd.getTableData();
|
|
|
+ },
|
|
|
//列表方法
|
|
|
getTableData() {
|
|
|
this.spinShow = false;
|
|
|
},
|
|
|
tableOnSelect(selection, row) {},
|
|
|
+ //添加明细
|
|
|
+ addMx(list) {
|
|
|
+ for (let item in list) {
|
|
|
+ list[item].orderTime += " 00:00:00";
|
|
|
+ list[item].storehouseTime += " 00:00:00";
|
|
|
+ }
|
|
|
+ this.tableData = list;
|
|
|
+ },
|
|
|
+ //删除明细
|
|
|
+ deleteMx(row, index) {
|
|
|
+ this.tableData.splice(index, 1);
|
|
|
+ },
|
|
|
//取消、返回
|
|
|
cancel() {
|
|
|
- this.spinShow = true;
|
|
|
+ this.spinShow = false;
|
|
|
+ this.balanceType = "add";
|
|
|
+ this.form = {
|
|
|
+ jssqbh: "", //结算申请编号
|
|
|
+ bt: "", //标题
|
|
|
+ glqy: "", //关联区域
|
|
|
+ glxm: "", //关联项目
|
|
|
+ gys: "", //供应商
|
|
|
+ gffzr: "", //供方负责人
|
|
|
+ gyslxdh: "", //供应商联系电话
|
|
|
+ khh: "", //开户行
|
|
|
+ zh: "", //账号
|
|
|
+ djlx: "", //单据类型
|
|
|
+ shr: "", //收货人
|
|
|
+ tzje: "", //调整金额
|
|
|
+ xdsj: "", //下单时间
|
|
|
+ sqr: "", //申请人
|
|
|
+ spzt: 1, //审批状态
|
|
|
+ sm: "", //说明
|
|
|
+ total: 0, //总价
|
|
|
+ filesList: []
|
|
|
+ };
|
|
|
+ this.tableData = [];
|
|
|
+ this.$emit("return");
|
|
|
+ }
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ tableData(val) {
|
|
|
+ let num = 0;
|
|
|
+ for (let item in val) {
|
|
|
+ num += val[item].totalPrice;
|
|
|
+ }
|
|
|
+ this.form.total = num;
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
+.mustSpan {
|
|
|
+ color: red;
|
|
|
+ margin-left: 2px;
|
|
|
+}
|
|
|
button {
|
|
|
min-width: 80px;
|
|
|
}
|
|
@@ -328,8 +529,9 @@ button {
|
|
|
height: 50px;
|
|
|
border-right: 1px solid #e4e4e4;
|
|
|
border-bottom: 1px solid #e4e4e4;
|
|
|
- line-height: 50px;
|
|
|
- text-align: center;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
&:nth-child(2n + 1) {
|
|
|
background: #f8f9fb;
|
|
|
}
|