|
@@ -0,0 +1,1494 @@
|
|
|
|
+//汽运结算报表
|
|
|
|
+<template>
|
|
|
|
+ <div class="container">
|
|
|
|
+ <el-scrollbar style="height: 100%">
|
|
|
|
+ <el-row>
|
|
|
|
+ <el-col style="padding-left: 15px" :span="16">
|
|
|
|
+ <ws-button
|
|
|
|
+ :type="searchType == 1 ? 'primary' : ''"
|
|
|
|
+ @click="handlestatus(1)"
|
|
|
|
+ >待审核</ws-button
|
|
|
|
+ >
|
|
|
|
+ <ws-button
|
|
|
|
+ :type="searchType == 2 ? 'primary' : ''"
|
|
|
|
+ @click="handlestatus(2)"
|
|
|
|
+ >待结算</ws-button
|
|
|
|
+ >
|
|
|
|
+ <ws-button
|
|
|
|
+ :type="searchType == 3 ? 'primary' : ''"
|
|
|
|
+ @click="handlestatus(3)"
|
|
|
|
+ >已结算</ws-button
|
|
|
|
+ >
|
|
|
|
+ <ws-button
|
|
|
|
+ :type="searchType == '' ? 'primary' : ''"
|
|
|
|
+ @click="handlestatus('')"
|
|
|
|
+ >全部</ws-button
|
|
|
|
+ >
|
|
|
|
+ <ws-button
|
|
|
|
+ type="primary"
|
|
|
|
+ v-hasPermission="`report.procurementInReport.view`"
|
|
|
|
+ @click="handlepass()"
|
|
|
|
+ >通过</ws-button
|
|
|
|
+ >
|
|
|
|
+ <ws-button
|
|
|
|
+ type="primary"
|
|
|
|
+ v-hasPermission="`report.procurementInReport.view`"
|
|
|
|
+ @click="handlereject()"
|
|
|
|
+ >驳回</ws-button
|
|
|
|
+ >
|
|
|
|
+ <ws-button
|
|
|
|
+ type="primary"
|
|
|
|
+ v-hasPermission="`report.procurementInReport.payment`"
|
|
|
|
+ @click="handlepayment"
|
|
|
|
+ >付款</ws-button
|
|
|
|
+ >
|
|
|
|
+ <ws-button
|
|
|
|
+ type="primary"
|
|
|
|
+ v-hasPermission="`report.procurementInReport.draw`"
|
|
|
|
+ @click="handleninvoice"
|
|
|
|
+ >开发票</ws-button
|
|
|
|
+ >
|
|
|
|
+ </el-col>
|
|
|
|
+ <el-col
|
|
|
|
+ style="text-align: right; line-height: 60px; padding-right: 10px"
|
|
|
|
+ :span="8"
|
|
|
|
+ >
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="contractNo"
|
|
|
|
+ placeholder="请选择合同"
|
|
|
|
+ clearable
|
|
|
|
+ filterable
|
|
|
|
+ :filter-method="dataFilter"
|
|
|
|
+ @change="contractchange"
|
|
|
|
+ maxlength="500"
|
|
|
|
+ type="input"
|
|
|
|
+ class="findValue"
|
|
|
|
+ >
|
|
|
|
+ <el-option
|
|
|
|
+ v-if="item.reportStatus"
|
|
|
|
+ v-for="item in options"
|
|
|
|
+ :key="item.constKey"
|
|
|
|
+ :label="item.contractNo + '(' + item.reportStatus + ')'"
|
|
|
|
+ :value="item.contractNo"
|
|
|
|
+ />
|
|
|
|
+ <el-option
|
|
|
|
+ v-if="!item.reportStatus"
|
|
|
|
+ v-for="item in options"
|
|
|
|
+ :key="item.constKey"
|
|
|
|
+ :label="item.contractNo"
|
|
|
|
+ :value="item.contractNo"
|
|
|
|
+ />
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-col>
|
|
|
|
+ </el-row>
|
|
|
|
+
|
|
|
|
+ <el-table
|
|
|
|
+ class="wenzi"
|
|
|
|
+ :data="warehouseList.records"
|
|
|
|
+ style="width: 100%; margin-top: 20px"
|
|
|
|
+ ref="warehouseList"
|
|
|
|
+ border
|
|
|
|
+ :summary-method="getSummaries"
|
|
|
|
+ show-summary
|
|
|
|
+ @row-click="handleRowClick"
|
|
|
|
+ @selection-change="handleSelectionChange"
|
|
|
|
+ >
|
|
|
|
+ <el-table-column
|
|
|
|
+ :selectable="selectInit"
|
|
|
|
+ type="selection"
|
|
|
|
+ width="55"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column type="index" label="序号" width="50"></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ class="table_td"
|
|
|
|
+ prop="contractNo"
|
|
|
|
+ width="120"
|
|
|
|
+ label="合同编号"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ width="120"
|
|
|
|
+ class="table_td"
|
|
|
|
+ prop="processNo"
|
|
|
|
+ label="运输阶段"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ width="60"
|
|
|
|
+ class="table_td"
|
|
|
|
+ prop="name"
|
|
|
|
+ label="姓名"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ width="120"
|
|
|
|
+ class="table_td"
|
|
|
|
+ prop="phone"
|
|
|
|
+ label="电话"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ class="table_td"
|
|
|
|
+ prop="carNo"
|
|
|
|
+ label="车牌号"
|
|
|
|
+ width="140"
|
|
|
|
+ ><template slot-scope="scope">
|
|
|
|
+ {{ scope.row.carNo }}({{ scope.row.tranCarNo }})
|
|
|
|
+ </template></el-table-column
|
|
|
|
+ >
|
|
|
|
+ <el-table-column
|
|
|
|
+ width="100"
|
|
|
|
+ class="table_td"
|
|
|
|
+ prop="loadingWeight"
|
|
|
|
+ label="装车净重(吨)"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ width="100"
|
|
|
|
+ class="table_td"
|
|
|
|
+ prop="unloadingWeight"
|
|
|
|
+ label="卸车净重(吨)"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ width="100"
|
|
|
|
+ class="table_td"
|
|
|
|
+ prop="lossWeight"
|
|
|
|
+ label="损耗(吨)"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ width="120"
|
|
|
|
+ class="table_td"
|
|
|
|
+ prop="transportPrice"
|
|
|
|
+ label="运输单价(元/吨)"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ width="120"
|
|
|
|
+ class="table_td"
|
|
|
|
+ prop="settlementWeight"
|
|
|
|
+ label="结算重量(吨)"
|
|
|
|
+ ><template slot-scope="scope">
|
|
|
|
+ <span
|
|
|
|
+ v-if="
|
|
|
|
+ !scope.row.settlementWeightchange && scope.row.settlementWeight
|
|
|
|
+ "
|
|
|
|
+ >{{ scope.row.settlementWeight }}</span
|
|
|
|
+ >
|
|
|
|
+ <input
|
|
|
|
+ v-if="scope.row.settlementWeightchange"
|
|
|
|
+ style="width: 60px"
|
|
|
|
+ v-model="settlementWeight"
|
|
|
|
+ type="text"
|
|
|
|
+ />
|
|
|
|
+ <!--改结算重量-->
|
|
|
|
+ <i
|
|
|
|
+ @click="changesettlementWeight(scope.row)"
|
|
|
|
+ v-if="
|
|
|
|
+ (scope.row.settlementWeightchange &&
|
|
|
|
+ scope.row.status == '待审核') ||
|
|
|
|
+ (scope.row.settlementWeightchange &&
|
|
|
|
+ scope.row.status == '已驳回')
|
|
|
|
+ "
|
|
|
|
+ class="iconfont icon-dui"
|
|
|
|
+ ></i>
|
|
|
|
+ <img
|
|
|
|
+ v-if="
|
|
|
|
+ (!scope.row.settlementWeightchange &&
|
|
|
|
+ scope.row.settlementWeight &&
|
|
|
|
+ scope.row.status == '待审核') ||
|
|
|
|
+ (!scope.row.settlementWeightchange &&
|
|
|
|
+ scope.row.settlementWeight &&
|
|
|
|
+ scope.row.status == '已驳回')
|
|
|
|
+ "
|
|
|
|
+ width="17"
|
|
|
|
+ height="18"
|
|
|
|
+ style="vertical-align: text-top; position: relative; top: -1px"
|
|
|
|
+ src="../../../public/img/edit.png"
|
|
|
|
+ @click="editsettlementWeight(scope.row)"
|
|
|
|
+ alt=""
|
|
|
|
+ /> </template
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ width="120"
|
|
|
|
+ class="table_td"
|
|
|
|
+ prop="deductionAmount"
|
|
|
|
+ label="扣款(元)"
|
|
|
|
+ ><template slot-scope="scope">
|
|
|
|
+ <span
|
|
|
|
+ v-if="
|
|
|
|
+ !scope.row.deductionAmountchange && scope.row.deductionAmount
|
|
|
|
+ "
|
|
|
|
+ >{{ scope.row.deductionAmount }}</span
|
|
|
|
+ >
|
|
|
|
+ <input
|
|
|
|
+ v-if="scope.row.deductionAmountchange"
|
|
|
|
+ style="width: 60px"
|
|
|
|
+ v-model="deductionAmount"
|
|
|
|
+ type="text"
|
|
|
|
+ />
|
|
|
|
+ <!--改扣款-->
|
|
|
|
+ <i
|
|
|
|
+ @click="changedeductionAmount(scope.row)"
|
|
|
|
+ v-if="
|
|
|
|
+ (scope.row.deductionAmountchange &&
|
|
|
|
+ scope.row.status == '待审核') ||
|
|
|
|
+ (scope.row.deductionAmountchange &&
|
|
|
|
+ scope.row.status == '已驳回')
|
|
|
|
+ "
|
|
|
|
+ class="iconfont icon-dui"
|
|
|
|
+ ></i>
|
|
|
|
+ <img
|
|
|
|
+ v-if="
|
|
|
|
+ (!scope.row.deductionAmountchange &&
|
|
|
|
+ scope.row.deductionAmount &&
|
|
|
|
+ scope.row.status == '待审核') ||
|
|
|
|
+ (!scope.row.deductionAmountchange &&
|
|
|
|
+ scope.row.deductionAmount &&
|
|
|
|
+ scope.row.status == '已驳回')
|
|
|
|
+ "
|
|
|
|
+ width="17"
|
|
|
|
+ height="18"
|
|
|
|
+ style="vertical-align: text-top; position: relative; top: -1px"
|
|
|
|
+ src="../../../public/img/edit.png"
|
|
|
|
+ @click="editdeductionAmount(scope.row)"
|
|
|
|
+ alt=""
|
|
|
|
+ /> </template
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ width="100"
|
|
|
|
+ class="table_td"
|
|
|
|
+ label="应付金额(元)"
|
|
|
|
+ prop="amountIngPayable"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ width="100"
|
|
|
|
+ class="table_td"
|
|
|
|
+ label="已付金额(元)"
|
|
|
|
+ prop="amountEdPayable"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ width="100"
|
|
|
|
+ class="table_td"
|
|
|
|
+ label="未付金额(元)"
|
|
|
|
+ prop="amountNotPayable"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ width="100"
|
|
|
|
+ class="table_td"
|
|
|
|
+ label="已开发票(元)"
|
|
|
|
+ prop="alreadyInvoice"
|
|
|
|
+ ><template slot-scope="scope">
|
|
|
|
+ {{ scope.row.alreadyInvoice }}
|
|
|
|
+ <img
|
|
|
|
+ v-if="
|
|
|
|
+ scope.row.amountEdPayable > 0
|
|
|
|
+ "
|
|
|
|
+ width="17"
|
|
|
|
+ height="18"
|
|
|
|
+ style="vertical-align: text-top; position: relative; top: -1px"
|
|
|
|
+ src="../../../public/img/edit.png"
|
|
|
|
+ @click="editClickInvoice(scope.row)"
|
|
|
|
+ alt=""
|
|
|
|
+ />
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column
|
|
|
|
+ width="150"
|
|
|
|
+ class="table_td"
|
|
|
|
+ label="付款日期"
|
|
|
|
+ prop="paymentDate"
|
|
|
|
+ ></el-table-column>
|
|
|
|
+ <el-table-column class="table_td" label="账户" prop="">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <div
|
|
|
|
+ style="
|
|
|
|
+ display: inline-block;
|
|
|
|
+ color: #5878e8;
|
|
|
|
+ padding: 0 4px !important;
|
|
|
|
+ position: relative;
|
|
|
|
+ font-size: 14px;
|
|
|
|
+ "
|
|
|
|
+ @click="look(scope.row)"
|
|
|
|
+ >
|
|
|
|
+ 查看
|
|
|
|
+ </div>
|
|
|
|
+ </template></el-table-column
|
|
|
|
+ >
|
|
|
|
+ <el-table-column label="状态" prop="status">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <span v-if="scope.row.approveStatus != null">{{
|
|
|
|
+ scope.row.approveStatus
|
|
|
|
+ }}</span>
|
|
|
|
+ <span v-else>{{ scope.row.status }}</span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </el-table>
|
|
|
|
+
|
|
|
|
+ <!-- 页数 -->
|
|
|
|
+ <el-pagination
|
|
|
|
+ @size-change="handleSizeChange"
|
|
|
|
+ @current-change="handleCurrentChange"
|
|
|
|
+ :current-page="currentPage"
|
|
|
|
+ :page-size="pageSize"
|
|
|
|
+ layout="total, sizes, prev, pager, next, jumper"
|
|
|
|
+ :total="deptBudgetTotal"
|
|
|
|
+ ></el-pagination>
|
|
|
|
+ </el-scrollbar>
|
|
|
|
+ <!-- 付款 -->
|
|
|
|
+ <el-dialog
|
|
|
|
+ width="25%"
|
|
|
|
+ title="付款"
|
|
|
|
+ :visible.sync="dialogFormVisible1"
|
|
|
|
+ :append-to-body="true"
|
|
|
|
+ >
|
|
|
|
+ <el-form :model="form">
|
|
|
|
+ <el-form-item label="未付金额(元)" :label-width="formLabelWidth">
|
|
|
|
+ <template>
|
|
|
|
+ <span>{{ amountNotPayable }}</span>
|
|
|
|
+ </template>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="本次付款金额" :label-width="formLabelWidth">
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="money"
|
|
|
|
+ autocomplete="off"
|
|
|
|
+ placeholder="请输入本次付款金额"
|
|
|
|
+ class="deal"
|
|
|
|
+ ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item
|
|
|
|
+ label="付款日期"
|
|
|
|
+ prop="paymentDate"
|
|
|
|
+ :label-width="formLabelWidth"
|
|
|
|
+ class="deal"
|
|
|
|
+ >
|
|
|
|
+ <ws-date-picker
|
|
|
|
+ v-model="paymentDate"
|
|
|
|
+ type="date"
|
|
|
|
+ placeholder="请选择付款日期"
|
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
|
+ class="deal"
|
|
|
|
+ />
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="上传付款截图" :label-width="formLabelWidth">
|
|
|
|
+ <el-upload
|
|
|
|
+ action="https://www.zthymaoyi.com/upload/admin"
|
|
|
|
+ list-type="picture-card"
|
|
|
|
+ :on-success="handlePictureCardPreview"
|
|
|
|
+ :on-remove="handleRemove"
|
|
|
|
+ class="photo2"
|
|
|
|
+ >
|
|
|
|
+ <i class="el-icon-plus"></i>
|
|
|
|
+ </el-upload>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
|
+ <el-button @click="dialogFormVisible1 = false">取 消</el-button>
|
|
|
|
+ <el-button type="primary" @click="submitMoney()">提 交</el-button>
|
|
|
|
+ </div>
|
|
|
|
+ </el-dialog>
|
|
|
|
+ <!-- 批量开发票 -->
|
|
|
|
+ <el-dialog
|
|
|
|
+ width="30%"
|
|
|
|
+ title="批量开发票"
|
|
|
|
+ :visible.sync="dialogFormVisible2"
|
|
|
|
+ :append-to-body="true"
|
|
|
|
+ >
|
|
|
|
+ <el-form :model="form">
|
|
|
|
+ <el-form-item label="发票金额(元)" :label-width="formLabelWidth">
|
|
|
|
+ <span> {{ amountEdPayable }}</span>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
|
+ <el-button @click="dialogFormVisible2 = false">取 消</el-button>
|
|
|
|
+ <el-button type="primary" @click="submitBatchInvoice()">提 交</el-button>
|
|
|
|
+ </div>
|
|
|
|
+ </el-dialog>
|
|
|
|
+ <!-- 开发票 -->
|
|
|
|
+ <el-dialog
|
|
|
|
+ width="30%"
|
|
|
|
+ title="开发票"
|
|
|
|
+ :visible.sync="dialogFormVisible3"
|
|
|
|
+ :append-to-body="true"
|
|
|
|
+ >
|
|
|
|
+ <el-form :model="form">
|
|
|
|
+ <el-form-item label="可开发票金额(元)" :label-width="formLabelWidth">
|
|
|
|
+ {{ amountEdPayable }}
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="实际发票金额(元)" :label-width="formLabelWidth">
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="alreadyInvoice"
|
|
|
|
+ autocomplete="off"
|
|
|
|
+ class="deal"
|
|
|
|
+ ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
|
+ <el-button @click="dialogFormVisible3 = false">取 消</el-button>
|
|
|
|
+ <el-button type="primary" @click="submitInvoice()">提 交</el-button>
|
|
|
|
+ </div>
|
|
|
|
+ </el-dialog>
|
|
|
|
+ <!--账户-->
|
|
|
|
+ <el-dialog
|
|
|
|
+ width="30%"
|
|
|
|
+ title="的账户"
|
|
|
|
+ :visible.sync="dialogFormVisible8"
|
|
|
|
+ :append-to-body="true"
|
|
|
|
+ >
|
|
|
|
+ <span>账户-1</span>
|
|
|
|
+ <el-form class="customer" :model="form">
|
|
|
|
+ <el-form-item label="账户类型" :label-width="formLabelWidth" >
|
|
|
|
+ {{ customerlist.accountType }}
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="银行卡号" :label-width="formLabelWidth">
|
|
|
|
+ {{ customerlist.bankCard }}
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="开户行" :label-width="formLabelWidth">
|
|
|
|
+ {{ customerlist.bankDeposit }}
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="开户支行" :label-width="formLabelWidth">
|
|
|
|
+ {{ customerlist.bankDepositBranch }}
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item
|
|
|
|
+ label="收款人姓名"
|
|
|
|
+ :label-width="formLabelWidth"
|
|
|
|
+ v-if="customerlist.accountTypeFlag == 1"
|
|
|
|
+ >
|
|
|
|
+ {{ customerlist.payeeName }}
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item
|
|
|
|
+ label="收款人身份证号"
|
|
|
|
+ :label-width="formLabelWidth"
|
|
|
|
+ v-if="customerlist.accountTypeFlag == 1"
|
|
|
|
+ >
|
|
|
|
+ {{ customerlist.payeeNumberCard }}
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item
|
|
|
|
+ v-if="customerlist.accountTypeFlag == 2"
|
|
|
|
+ label="企业名称"
|
|
|
|
+ :label-width="formLabelWidth"
|
|
|
|
+ >
|
|
|
|
+ {{ customerlist.compName }}
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
|
+ <el-button @click="dialogFormVisible8 = false">取 消</el-button>
|
|
|
|
+ </div>
|
|
|
|
+ </el-dialog>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- </div> -->
|
|
|
|
+</template>
|
|
|
|
+<script>
|
|
|
|
+import {
|
|
|
|
+ autoList,
|
|
|
|
+ editauto,
|
|
|
|
+ autocontract,
|
|
|
|
+ autopaymoney,
|
|
|
|
+ openinvoicelist,
|
|
|
|
+ // getorder,
|
|
|
|
+ // postaudit,
|
|
|
|
+ // getselectctcontractno,
|
|
|
|
+} from '@/model/statisticalReport/index'
|
|
|
|
+import { posthandle } from '@/model/purchasingManagement/index'
|
|
|
|
+import { downloadFile } from '@/utils/batchDown'
|
|
|
|
+import Pagination from '@/components/Pagination'
|
|
|
|
+import WsUpload from '@/components/WsUpload'
|
|
|
|
+import { EventBus } from 'base-core-lib'
|
|
|
|
+export default {
|
|
|
|
+ name: 'viewSpareMoney',
|
|
|
|
+ components: {
|
|
|
|
+ WsUpload,
|
|
|
|
+ Pagination,
|
|
|
|
+ },
|
|
|
|
+ watch: {
|
|
|
|
+ vesselId(val) {
|
|
|
|
+ this.getList()
|
|
|
|
+ },
|
|
|
|
+ isShow(val) {
|
|
|
|
+ this.showType = val
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ data() {
|
|
|
|
+ return {
|
|
|
|
+ checked: true,
|
|
|
|
+ alreadyInvoice: '',
|
|
|
|
+ needReapply: true,
|
|
|
|
+ dialogFormVisible1: false,
|
|
|
|
+ dialogFormVisible2: false,
|
|
|
|
+ dialogFormVisible3: false,
|
|
|
|
+ dialogFormVisible4: false,
|
|
|
|
+ dialogFormVisible5: false,
|
|
|
|
+ dialogFormVisible6: false,
|
|
|
|
+ dialogFormVisible7: false,
|
|
|
|
+ dialogFormVisible8: false,
|
|
|
|
+ dialogFormVisible11: false,
|
|
|
|
+ dialogVisible: false,
|
|
|
|
+
|
|
|
|
+ form: {
|
|
|
|
+ transactionPrice: '',
|
|
|
|
+ transactionsNumber: '',
|
|
|
|
+ basis: '',
|
|
|
|
+ },
|
|
|
|
+ currect: true,
|
|
|
|
+ formLabelWidth: '120px',
|
|
|
|
+ barWidth: 0,
|
|
|
|
+ barHeight: 0,
|
|
|
|
+ retioX: 1,
|
|
|
|
+ ratioY: 1,
|
|
|
|
+ isTaped: false,
|
|
|
|
+ isHover: false,
|
|
|
|
+ settlementWeightchange: false,
|
|
|
|
+ deductionAmountchange: false,
|
|
|
|
+ isShow: !this.autohide,
|
|
|
|
+ //弹出框
|
|
|
|
+ dialogViewSpareMoney: false,
|
|
|
|
+ contractNoList: [],
|
|
|
|
+ // 是否显示
|
|
|
|
+ showType: true,
|
|
|
|
+ // 年
|
|
|
|
+ year: '',
|
|
|
|
+ options: [],
|
|
|
|
+ pickerOptions: {},
|
|
|
|
+ value2: '',
|
|
|
|
+ deptBudgetTotal: 0,
|
|
|
|
+ currentPage: 1,
|
|
|
|
+ pageSize: 10,
|
|
|
|
+ searchType: '1',
|
|
|
|
+ manualFlag:'',
|
|
|
|
+ searchTypeText: '未完成',
|
|
|
|
+ searchKeyWord: '',
|
|
|
|
+ customerlist: {},
|
|
|
|
+ contractType: 2,
|
|
|
|
+ enter: {
|
|
|
|
+ closePositionList: [],
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 提交类型
|
|
|
|
+ submitType: true,
|
|
|
|
+ size: 10,
|
|
|
|
+ spanArr: [],
|
|
|
|
+ contractNo: '全部合同',
|
|
|
|
+ inOutTaskNo: '',
|
|
|
|
+ compId: sessionStorage.getItem('ws-pf_compId'),
|
|
|
|
+ roleId: sessionStorage.getItem('ws-pf_roleId'),
|
|
|
|
+ deptCircularPage: {},
|
|
|
|
+ warehouseList: [],
|
|
|
|
+ orderList: {},
|
|
|
|
+ deptBudgetList: {},
|
|
|
|
+ id: '',
|
|
|
|
+
|
|
|
|
+ pcFlag: 1,
|
|
|
|
+ carryoverlist: {},
|
|
|
|
+ modification: [],
|
|
|
|
+ amendlist: {},
|
|
|
|
+ roleFlag: 1,
|
|
|
|
+ alreadyInvoice1: 0,
|
|
|
|
+ money: '',
|
|
|
|
+ paymentDate: '',
|
|
|
|
+ autoSettlementList: [],
|
|
|
|
+ autoSettlementReport: {
|
|
|
|
+ autoSettlementList: [],
|
|
|
|
+ money: '',
|
|
|
|
+ amountNotPayable: 0,
|
|
|
|
+ amountEdPayable: 0,
|
|
|
|
+ paymentDate: '',
|
|
|
|
+ paymentScreenshot: '',
|
|
|
|
+ id: '',
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ amountNotPayable: 0,
|
|
|
|
+ amountEdPayable: 0,
|
|
|
|
+ paymentScreenshotUrls: [],
|
|
|
|
+ carryovercontractnolist: [],
|
|
|
|
+ historyList: [],
|
|
|
|
+ pickerBeginDateBefore: {
|
|
|
|
+ disabledDate: (time) => {
|
|
|
|
+ return time.getTime() > Date.now()
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ accessoryTFs: false,
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ activated() {
|
|
|
|
+ this.getList()
|
|
|
|
+ this.showType = this.isShow
|
|
|
|
+ },
|
|
|
|
+ methods: {
|
|
|
|
+ cur(status) {
|
|
|
|
+ if (status == 0) {
|
|
|
|
+ this.currect = true
|
|
|
|
+ } else {
|
|
|
|
+ var that = this
|
|
|
|
+ this.currect = false
|
|
|
|
+ getselectctcontractno({
|
|
|
|
+ customerName: this.modification[0].customerName,
|
|
|
|
+ contractNo: this.modification[0].contractNo,
|
|
|
|
+ })
|
|
|
|
+ .toPromise()
|
|
|
|
+ .then((response) => {
|
|
|
|
+ that.carryovercontractnolist = response
|
|
|
|
+ for (var i = 0; i < that.carryovercontractnolist.length; i++) {
|
|
|
|
+ if (that.carryovercontractnolist[i].amountNotPayable > 0) {
|
|
|
|
+ that.carryovercontractnolist[i].closeaccountstatus = '待结算'
|
|
|
|
+ } else {
|
|
|
|
+ that.carryovercontractnolist[i].closeaccountstatus = '已结算'
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ .catch((response) => {
|
|
|
|
+ console.log(response)
|
|
|
|
+ EventBus.$emit('error', response.message)
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ handleRowClick(row) {
|
|
|
|
+ if (row.approveStatus == null) {
|
|
|
|
+ this.$refs.warehouseList.toggleRowSelection(row)
|
|
|
|
+ return true
|
|
|
|
+ } else if (row.approveStatus != null) {
|
|
|
|
+ if (row.taskId == null) {
|
|
|
|
+ return false
|
|
|
|
+ } else {
|
|
|
|
+ this.$refs.warehouseList.toggleRowSelection(row)
|
|
|
|
+ return true
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ selectInit(row) {
|
|
|
|
+ //在这里一定要记得类型匹配的上。
|
|
|
|
+ if (row.approveStatus == null) {
|
|
|
|
+ return true
|
|
|
|
+ } else if (row.approveStatus != null) {
|
|
|
|
+ if (row.taskId == null) {
|
|
|
|
+ return false
|
|
|
|
+ } else {
|
|
|
|
+ return true
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ //账户
|
|
|
|
+ look(item) {
|
|
|
|
+ this.dialogFormVisible8 = true
|
|
|
|
+ if (item.customerInfo) {
|
|
|
|
+ this.customerlist = item.customerInfo
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ //付款
|
|
|
|
+ handlepayment() {
|
|
|
|
+ this.amountNotPayable = 0
|
|
|
|
+ this.money = this.money
|
|
|
|
+ this.autoSettlementList =
|
|
|
|
+ this.warehouseList.records[0].autoSettlementList
|
|
|
|
+ this.amountEdPayable = this.warehouseList.records[0].amountEdPayable
|
|
|
|
+ this.paymentDate = this.paymentDate
|
|
|
|
+ if (this.modification.length == 0) {
|
|
|
|
+ this.$message.warning('请选择一条要付款的条目')
|
|
|
|
+ } else {
|
|
|
|
+ for (var i = 0; i < this.modification.length; i++) {
|
|
|
|
+ if (
|
|
|
|
+ this.modification[i].status != '已通过' &&
|
|
|
|
+ this.modification[i].status != '部分付款'
|
|
|
|
+ ) {
|
|
|
|
+ this.$message.warning('只有已通过或部分付款的条目才可进行付款操作')
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ this.amountNotPayable += this.modification[i].amountNotPayable
|
|
|
|
+ }
|
|
|
|
+ this.dialogFormVisible1 = true
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ submitMoney() {
|
|
|
|
+ this.autoSettlementReport.money = this.money
|
|
|
|
+ this.autoSettlementReport.paymentDate = this.paymentDate
|
|
|
|
+ if (this.modification.length == 0) {
|
|
|
|
+ this.$message.warning('请选择一条要付款的条目')
|
|
|
|
+ } else {
|
|
|
|
+ if (
|
|
|
|
+ this.money < 0 ||
|
|
|
|
+ (String(this.money).indexOf('.') != -1 &&
|
|
|
|
+ String(this.money).length - (String(this.money).indexOf('.') + 1) >
|
|
|
|
+ 2)
|
|
|
|
+ ) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '付款金额输入错误',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (this.money) {
|
|
|
|
+ if (isNaN(this.money)) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '付款金额非数字!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (!this.money) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '付款金额不能为空!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (this.money > this.modification[0].amountNotPayable) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '付款金额不能大于未付金额!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ this.$confirm(`确定提交付款信息?`, {
|
|
|
|
+ cancelButtonText: '取消',
|
|
|
|
+ confirmButtonText: '确定',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ }).then(() => {
|
|
|
|
+ autopaymoney({
|
|
|
|
+ autoSettlementList: this.modification,
|
|
|
|
+ // amountEdPayable: this.modification[0].amountEdPayable,
|
|
|
|
+ // amountNotPayable: this.modification[0].amountNotPayable,
|
|
|
|
+ money: this.money,
|
|
|
|
+ paymentDate: this.paymentDate,
|
|
|
|
+ paymentScreenshot: this.paymentScreenshot,
|
|
|
|
+ })
|
|
|
|
+ .toPromise()
|
|
|
|
+ .then((response) => {
|
|
|
|
+ this.$notify.success({
|
|
|
|
+ title: '成功',
|
|
|
|
+ message: '付款成功',
|
|
|
|
+ })
|
|
|
|
+ this.autoSettlementList = {}
|
|
|
|
+ this.money = ''
|
|
|
|
+ this.paymentDate = ''
|
|
|
|
+ this.dialogFormVisible1 = false
|
|
|
|
+ this.getList()
|
|
|
|
+ })
|
|
|
|
+ .catch((response) => {
|
|
|
|
+ console.log(response)
|
|
|
|
+ EventBus.$emit('error', response.message)
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ //开发票
|
|
|
|
+ editClickInvoice(row) {
|
|
|
|
+ this.id = row.id
|
|
|
|
+ this.alreadyInvoice1 = row.alreadyInvoice
|
|
|
|
+ this.amountEdPayable = row.amountEdPayable
|
|
|
|
+ this.amountNotPayable = row.amountNotPayable
|
|
|
|
+ this.dialogFormVisible3 = 'true'
|
|
|
|
+ },
|
|
|
|
+ submitInvoice() {
|
|
|
|
+ if (this.amountEdPayable < 0) {
|
|
|
|
+ this.$message.warning('请选择一条已付款的条目')
|
|
|
|
+ } else {
|
|
|
|
+ if (
|
|
|
|
+ this.alreadyInvoice < 0 ||
|
|
|
|
+ this.alreadyInvoice > this.amountEdPayable - this.alreadyInvoice1 ||
|
|
|
|
+ (String(this.alreadyInvoice).indexOf('.') != -1 &&
|
|
|
|
+ String(this.alreadyInvoice).length -
|
|
|
|
+ (String(this.alreadyInvoice).indexOf('.') + 1) >
|
|
|
|
+ 2)
|
|
|
|
+ ) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '金额输入错误',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (this.alreadyInvoice) {
|
|
|
|
+ if (isNaN(this.alreadyInvoice)) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '金额非数字!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (!this.alreadyInvoice) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '金额不能为空!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ this.$confirm(`确定提交发票信息?`, {
|
|
|
|
+ cancelButtonText: '取消',
|
|
|
|
+ confirmButtonText: '确定',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ }).then(() => {
|
|
|
|
+ editauto({
|
|
|
|
+ id: this.id,
|
|
|
|
+ flag: 2,
|
|
|
|
+ alreadyInvoice: this.alreadyInvoice,
|
|
|
|
+ amountEdPayable: this.amountEdPayable,
|
|
|
|
+ amountNotPayable: this.amountNotPayable,
|
|
|
|
+ })
|
|
|
|
+ .toPromise()
|
|
|
|
+ .then((response) => {
|
|
|
|
+ this.$notify.success({
|
|
|
|
+ title: '成功',
|
|
|
|
+ message: '提交成功',
|
|
|
|
+ })
|
|
|
|
+ this.dialogFormVisible3 = false
|
|
|
|
+ this.getList()
|
|
|
|
+ })
|
|
|
|
+ .catch((response) => {
|
|
|
|
+ console.log(response)
|
|
|
|
+ EventBus.$emit('error', response.message)
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ //批量开发票
|
|
|
|
+ handleninvoice() {
|
|
|
|
+ this.amountEdPayable = 0
|
|
|
|
+ this.autoSettlementList =
|
|
|
|
+ this.warehouseList.records[0].autoSettlementList
|
|
|
|
+ for (var i = 0; i < this.modification.length; i++) {
|
|
|
|
+ this.amountEdPayable += this.modification[i].amountEdPayable
|
|
|
|
+ }
|
|
|
|
+ this.dialogFormVisible2 = true
|
|
|
|
+ },
|
|
|
|
+ submitBatchInvoice() {
|
|
|
|
+ if (this.modification.length == 0) {
|
|
|
|
+ this.$message.warning('请选择一条要开发票的条目')
|
|
|
|
+ } else if (this.modification[0].amountEdPayable < 0) {
|
|
|
|
+ this.$message.warning('请选择一条已付款的条目')
|
|
|
|
+ } else {
|
|
|
|
+ this.$confirm(`确定提交发票信息?`, {
|
|
|
|
+ cancelButtonText: '取消',
|
|
|
|
+ confirmButtonText: '确定',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ }).then(() => {
|
|
|
|
+ openinvoicelist({
|
|
|
|
+ autoSettlementList: this.modification,
|
|
|
|
+ })
|
|
|
|
+ .toPromise()
|
|
|
|
+ .then((response) => {
|
|
|
|
+ this.$notify.success({
|
|
|
|
+ title: '成功',
|
|
|
|
+ message: '提交成功',
|
|
|
|
+ })
|
|
|
|
+ this.dialogFormVisible2 = false
|
|
|
|
+ this.getList()
|
|
|
|
+ })
|
|
|
|
+ .catch((response) => {
|
|
|
|
+ console.log(response)
|
|
|
|
+ EventBus.$emit('error', response.message)
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ //修改结算重量
|
|
|
|
+ changesettlementWeight(item) {
|
|
|
|
+ if (!this.settlementWeight) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '结算重量不能为空!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (
|
|
|
|
+ this.settlementWeight&&String(this.settlementWeight).indexOf('.') != -1 &&
|
|
|
|
+ String(this.settlementWeight).length -
|
|
|
|
+ (String(this.settlementWeight).indexOf('.') + 1) >
|
|
|
|
+ 2||this.settlementWeight&&this.settlementWeight>100||this.settlementWeight&&this.settlementWeight<1) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '结算重量输入错误',
|
|
|
|
+ type: 'warning'
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ editauto({
|
|
|
|
+ settlementWeight: Math.abs(this.settlementWeight),
|
|
|
|
+ id: item.id,
|
|
|
|
+ flag: 0,
|
|
|
|
+ })
|
|
|
|
+ .toPromise()
|
|
|
|
+ .then((response) => {
|
|
|
|
+ this.$message.success('修改结算重量成功')
|
|
|
|
+ this.getList()
|
|
|
|
+ })
|
|
|
|
+ .catch((req) => {
|
|
|
|
+ this.$message.warning('修改结算重量失败')
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ editsettlementWeight(item) {
|
|
|
|
+ this.settlementWeight = item.settlementWeight
|
|
|
|
+ item.settlementWeightchange = true
|
|
|
|
+ },
|
|
|
|
+ //修改扣款
|
|
|
|
+ changedeductionAmount(item) {
|
|
|
|
+ if (!this.deductionAmount) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '扣款金额不能为空!',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if (
|
|
|
|
+ this.deductionAmount&&String(this.deductionAmount).indexOf('.') != -1 &&
|
|
|
|
+ String(this.deductionAmount).length -
|
|
|
|
+ (String(this.deductionAmount).indexOf('.') + 1) >
|
|
|
|
+ 2||this.deductionAmount&&this.deductionAmount>100000||this.deductionAmount&&this.deductionAmount<1) {
|
|
|
|
+ this.$message({
|
|
|
|
+ message: '扣款金额输入错误',
|
|
|
|
+ type: 'warning'
|
|
|
|
+ })
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ editauto({
|
|
|
|
+ deductionAmount: Math.abs(this.deductionAmount),
|
|
|
|
+ id: item.id,
|
|
|
|
+ flag: 1,
|
|
|
|
+ })
|
|
|
|
+ .toPromise()
|
|
|
|
+ .then((response) => {
|
|
|
|
+ this.$message.success('修改扣款成功')
|
|
|
|
+ this.getList()
|
|
|
|
+ })
|
|
|
|
+ .catch((req) => {
|
|
|
|
+ this.$message.warning('修改扣款失败')
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ editdeductionAmount(item) {
|
|
|
|
+ this.deductionAmount = item.deductionAmount
|
|
|
|
+ item.deductionAmountchange = true
|
|
|
|
+ },
|
|
|
|
+ //审核
|
|
|
|
+ audit(item, index, status, status2, reason) {
|
|
|
|
+ if (index < this.modification.length) {
|
|
|
|
+ posthandle({
|
|
|
|
+ taskId: item.taskId,
|
|
|
|
+ approved: status,
|
|
|
|
+ auditMind: reason != undefined ? '已驳回' : '34',
|
|
|
|
+ needReapply: status2 != undefined ? true : false,
|
|
|
|
+ })
|
|
|
|
+ .toPromise()
|
|
|
|
+ .then((response) => {
|
|
|
|
+ this.audit(this.modification[index + 1], index + 1, status)
|
|
|
|
+ })
|
|
|
|
+ .catch((req) => {
|
|
|
|
+ this.$message.warning(req.message)
|
|
|
|
+ })
|
|
|
|
+ } else {
|
|
|
|
+ if (status) {
|
|
|
|
+ this.$message.success('通过成功')
|
|
|
|
+ this.getList()
|
|
|
|
+ } else if (!status) {
|
|
|
|
+ if (status1 == 2) {
|
|
|
|
+ postaudit({
|
|
|
|
+ flag: 2,
|
|
|
|
+ autoSettlementList: this.modification,
|
|
|
|
+ })
|
|
|
|
+ .toPromise()
|
|
|
|
+ .then((response) => {
|
|
|
|
+ this.$message.success('驳回成功')
|
|
|
|
+ this.getList()
|
|
|
|
+ })
|
|
|
|
+ .catch((req) => {
|
|
|
|
+ this.$message.success('驳回失败')
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ handlereject(status) {
|
|
|
|
+ var that = this
|
|
|
|
+ if (this.modification.length == 0) {
|
|
|
|
+ this.$message.warning('请选择要驳回的条目')
|
|
|
|
+ } else {
|
|
|
|
+ this.$confirm(`是否确定驳回?`, {
|
|
|
|
+ cancelButtonText: '取消',
|
|
|
|
+ confirmButtonText: '确定',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ }).then(() => {
|
|
|
|
+ that.audit(this.modification[0], 0, false, true, '已驳回')
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ dataFilter(val) {
|
|
|
|
+ // console.log(val,"名")
|
|
|
|
+ this.contractNo = val
|
|
|
|
+ if (val) {
|
|
|
|
+ //val存在
|
|
|
|
+ this.options = this.contractNoList.filter((item) => {
|
|
|
|
+ if (
|
|
|
|
+ !!~item.contractNo.indexOf(val) ||
|
|
|
|
+ !!~item.contractNo.toUpperCase().indexOf(val.toUpperCase())
|
|
|
|
+ ) {
|
|
|
|
+ return true
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ } else {
|
|
|
|
+ //val为空时,还原数组
|
|
|
|
+ this.options = this.contractNoList
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ handlepass() {
|
|
|
|
+ var that = this
|
|
|
|
+ if (this.modification.length == 0) {
|
|
|
|
+ this.$message.warning('请选择要通过的条目')
|
|
|
|
+ } else {
|
|
|
|
+ this.$confirm(`是否确定通过?`, {
|
|
|
|
+ cancelButtonText: '取消',
|
|
|
|
+ confirmButtonText: '确定',
|
|
|
|
+ type: 'warning',
|
|
|
|
+ }).then(() => {
|
|
|
|
+ that.audit(this.modification[0], 0, true, 2)
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ handleSelectionChange(val) {
|
|
|
|
+ this.modification = val
|
|
|
|
+ },
|
|
|
|
+ handlestatus(status) {
|
|
|
|
+ this.searchType = status
|
|
|
|
+ this.getList()
|
|
|
|
+ },
|
|
|
|
+ contractchange(e) {
|
|
|
|
+ this.contractNo = e
|
|
|
|
+ getorder({
|
|
|
|
+ contractNo: this.contractNo,
|
|
|
|
+ })
|
|
|
|
+ .toPromise()
|
|
|
|
+ .then((response) => {
|
|
|
|
+ if (response != null) {
|
|
|
|
+ this.orderList = response
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ this.getList()
|
|
|
|
+ },
|
|
|
|
+ updated() {
|
|
|
|
+ this.$nextTick(() => {
|
|
|
|
+ this.$refs.warehouseList.doLayout()
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ //合计
|
|
|
|
+ getSummaries(param) {
|
|
|
|
+ const { columns, data } = param
|
|
|
|
+ const sums = []
|
|
|
|
+ columns.forEach((column, index) => {
|
|
|
|
+ if (index === 0) {
|
|
|
|
+ sums[index] = '合计'
|
|
|
|
+ } else if (
|
|
|
|
+ index === 13 ||
|
|
|
|
+ index === 14 ||
|
|
|
|
+ index === 15 ||
|
|
|
|
+ index === 16
|
|
|
|
+ ) {
|
|
|
|
+ const values = data.map((item) => Number(item[column.property]))
|
|
|
|
+ if (!values.every((value) => isNaN(value))) {
|
|
|
|
+ sums[index] = values.reduce((prev, curr) => {
|
|
|
|
+ const value = Number(curr)
|
|
|
|
+ if (!isNaN(value)) {
|
|
|
|
+ return prev + curr
|
|
|
|
+ } else {
|
|
|
|
+ return prev
|
|
|
|
+ }
|
|
|
|
+ }, 0)
|
|
|
|
+ } else {
|
|
|
|
+ sums[index] = '元'
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ sums[index] = '--'
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ return sums
|
|
|
|
+ },
|
|
|
|
+ //列表
|
|
|
|
+ getList() {
|
|
|
|
+ autoList({
|
|
|
|
+ compId: sessionStorage.getItem('ws-pf_compId'),
|
|
|
|
+ currentPage: this.currentPage,
|
|
|
|
+ pageSize: this.pageSize,
|
|
|
|
+ searchType: this.searchType,
|
|
|
|
+ contractNo: this.contractNo,
|
|
|
|
+ manualFlag: this. manualFlag,
|
|
|
|
+ })
|
|
|
|
+ .toPromise()
|
|
|
|
+ .then((response) => {
|
|
|
|
+ for (var i = 0; i < response.records.length; i++) {
|
|
|
|
+ response.records[i].settlementWeightchange = false
|
|
|
|
+ response.records[i].deductionAmountchange = false
|
|
|
|
+ // response.records[i].settlementPrice =
|
|
|
|
+ // response.records[i].unitPrice -
|
|
|
|
+ // Math.abs(response.records[i].basisPrice) -
|
|
|
|
+ // Math.abs(response.records[i].unloadingCharge) -
|
|
|
|
+ // Math.abs(response.records[i].invoiceFee) -
|
|
|
|
+ // Math.abs(response.records[i].deductionAmount)
|
|
|
|
+ }
|
|
|
|
+ this.deptBudgetTotal = response.total
|
|
|
|
+ this.warehouseList = response
|
|
|
|
+ })
|
|
|
|
+ autocontract({
|
|
|
|
+ compId: sessionStorage.getItem('ws-pf_compId'),
|
|
|
|
+ currentPage: this.currentPage,
|
|
|
|
+ pageSize: this.pageSize,
|
|
|
|
+ roleFlag: this.roleFlag,
|
|
|
|
+ })
|
|
|
|
+ .toPromise()
|
|
|
|
+ .then((response) => {
|
|
|
|
+ this.contractNoList = response
|
|
|
|
+ this.contractNoList.unshift({ contractNo: '全部合同' })
|
|
|
|
+ this.options = this.contractNoList
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ handleRemove(file) {
|
|
|
|
+ console.log(file)
|
|
|
|
+ },
|
|
|
|
+ handlePictureCardPreview(file) {
|
|
|
|
+ this.paymentScreenshot = file.url
|
|
|
|
+
|
|
|
|
+ this.dialogVisible = true
|
|
|
|
+ },
|
|
|
|
+ handleDownload(file) {
|
|
|
|
+ console.log(file)
|
|
|
|
+ },
|
|
|
|
+ getSpanArr(data) {
|
|
|
|
+ let that = this
|
|
|
|
+
|
|
|
|
+ //页面展示的数据,不一定是全部的数据,所以每次都清空之前存储的 保证遍历的数据是最新的数据。以免造成数据渲染混乱
|
|
|
|
+
|
|
|
|
+ that.spanArr = []
|
|
|
|
+
|
|
|
|
+ that.pos = 0
|
|
|
|
+
|
|
|
|
+ // //遍历数据
|
|
|
|
+
|
|
|
|
+ data.forEach((item, index) => {
|
|
|
|
+ //判断是否是第一项
|
|
|
|
+
|
|
|
|
+ if (index === 0) {
|
|
|
|
+ this.spanArr.push(1)
|
|
|
|
+ this.pos = 0
|
|
|
|
+ } else {
|
|
|
|
+ //不是第一项时,就根据标识去存储
|
|
|
|
+ if (data[index].warehouseNumViewList.length > 1) {
|
|
|
|
+ 查找到符合条件的数据时每次要把之前存储的数据 + 1
|
|
|
|
+ this.spanArr[this.pos] = data[index].warehouseNumViewList.length
|
|
|
|
+ this.spanArr.push(0)
|
|
|
|
+ } else {
|
|
|
|
+ // 没有符合的数据时,要记住当前的index
|
|
|
|
+ this.spanArr.push(1)
|
|
|
|
+ this.pos = index
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ dateFormat(fmt, date) {
|
|
|
|
+ let ret
|
|
|
|
+ const opt = {
|
|
|
|
+ 'Y+': date.getFullYear().toString(), // 年
|
|
|
|
+ 'm+': (date.getMonth() + 1).toString(), // 月
|
|
|
|
+ 'd+': date.getDate().toString(), // 日
|
|
|
|
+ 'H+': date.getHours().toString(), // 时
|
|
|
|
+ // "M+": date.getMinutes().toString(), // 分
|
|
|
|
+ // "S+": date.getSeconds().toString() // 秒
|
|
|
|
+ // 有其他格式化字符需求可以继续添加,必须转化成字符串
|
|
|
|
+ }
|
|
|
|
+ for (let k in opt) {
|
|
|
|
+ ret = new RegExp('(' + k + ')').exec(fmt)
|
|
|
|
+ if (ret) {
|
|
|
|
+ fmt = fmt.replace(
|
|
|
|
+ ret[1],
|
|
|
|
+ ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')
|
|
|
|
+ )
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return fmt
|
|
|
|
+ },
|
|
|
|
+ handleClose() {
|
|
|
|
+ this.accessoryTFs = false
|
|
|
|
+ },
|
|
|
|
+ handleSizeChange(val) {
|
|
|
|
+ console.log(`每页 ${val} 条`)
|
|
|
|
+ this.pageSize = val
|
|
|
|
+ this.getList()
|
|
|
|
+ },
|
|
|
|
+ handleCurrentChange(val) {
|
|
|
|
+ this.currentPage = val
|
|
|
|
+ console.log(`当前页: ${val}`)
|
|
|
|
+ this.getList()
|
|
|
|
+ },
|
|
|
|
+ // 关闭 dialog时 处理文件url 初始化upload组件
|
|
|
|
+ handleCloe() {
|
|
|
|
+ this.dialogViewSpareMoney = false
|
|
|
|
+ },
|
|
|
|
+ history(row) {
|
|
|
|
+ billoperatehis({ id: row.id })
|
|
|
|
+ .toPromise()
|
|
|
|
+ .then((response) => {
|
|
|
|
+ this.historyList = response
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ async exportlist() {
|
|
|
|
+ const { data } = await export1(
|
|
|
|
+ {
|
|
|
|
+ compId: sessionStorage.getItem('ws-pf_compId'),
|
|
|
|
+ contractType: this.contractType,
|
|
|
|
+ currentPage: this.currentPage,
|
|
|
|
+ pageSize: this.pageSize,
|
|
|
|
+ searchType: this.searchType,
|
|
|
|
+ searchKeyWord: this.searchKeyWord,
|
|
|
|
+ startDate: this.startDate,
|
|
|
|
+ endDate: this.endDate,
|
|
|
|
+ },
|
|
|
|
+ {},
|
|
|
|
+ { responseType: 'blob' }
|
|
|
|
+ ).toPromise()
|
|
|
|
+ downloadFile({
|
|
|
|
+ res: data,
|
|
|
|
+ fileName: `${
|
|
|
|
+ this.date.year + (this.date.month ? `-${this.date.month}` : '')
|
|
|
|
+ }_采购合同`,
|
|
|
|
+ type: 'xls',
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ total() {},
|
|
|
|
+ },
|
|
|
|
+}
|
|
|
|
+</script>
|
|
|
|
+<style lang="scss" scoped>
|
|
|
|
+.connert {
|
|
|
|
+ width: 90%;
|
|
|
|
+ margin: 0 auto;
|
|
|
|
+}
|
|
|
|
+.vertical-text-left {
|
|
|
|
+ width: 62px;
|
|
|
|
+ text-align: right;
|
|
|
|
+}
|
|
|
|
+//分页
|
|
|
|
+.el-pagination {
|
|
|
|
+ padding: 10px 15px;
|
|
|
|
+ margin-bottom: 0;
|
|
|
|
+ text-align: center;
|
|
|
|
+}
|
|
|
|
+/deep/.el-pager li.active {
|
|
|
|
+ color: #5878e8;
|
|
|
|
+ cursor: default;
|
|
|
|
+}
|
|
|
|
+/deep/.el-pager li:hover {
|
|
|
|
+ color: #5878e8;
|
|
|
|
+ cursor: default;
|
|
|
|
+}
|
|
|
|
+.el-button--default {
|
|
|
|
+ color: #8890b1;
|
|
|
|
+ border-color: #e8eaf1;
|
|
|
|
+}
|
|
|
|
+/deep/.base_header_layout .grid-content.right .find.el-button--primary {
|
|
|
|
+ width: 30px;
|
|
|
|
+ margin-left: 0;
|
|
|
|
+ border-top-left-radius: 0px;
|
|
|
|
+ border-bottom-left-radius: 0px;
|
|
|
|
+}
|
|
|
|
+/deep/.findValue .el-input__inner {
|
|
|
|
+ border-top-right-radius: 0px;
|
|
|
|
+ border-bottom-right-radius: 0px;
|
|
|
|
+ width: 385px;
|
|
|
|
+}
|
|
|
|
+.completed.el-button--default {
|
|
|
|
+ border-color: #5878e8;
|
|
|
|
+ background-color: #f6f7fc;
|
|
|
|
+ color: #5878e8;
|
|
|
|
+}
|
|
|
|
+.putstorage.el-button--default,
|
|
|
|
+.deliverystorage.el-button--default {
|
|
|
|
+ border-color: #8890b1;
|
|
|
|
+ background-color: #fff;
|
|
|
|
+ color: #8890b1;
|
|
|
|
+}
|
|
|
|
+/deep/.el-table td,
|
|
|
|
+/deep/.el-table th.is-leaf {
|
|
|
|
+ border-right: 1px solid #e9ecf7;
|
|
|
|
+ text-align: center;
|
|
|
|
+}
|
|
|
|
+/deep/.el-table tr td:first-child,
|
|
|
|
+/deep/.el-table tr th.is-leaf:first-child {
|
|
|
|
+ border-left: 1px solid #e9ecf7;
|
|
|
|
+}
|
|
|
|
+.record,
|
|
|
|
+.adjustment {
|
|
|
|
+ display: inline-block;
|
|
|
|
+ color: #5878e8;
|
|
|
|
+ padding: 0 4px !important;
|
|
|
|
+ position: relative;
|
|
|
|
+}
|
|
|
|
+.record:after {
|
|
|
|
+ position: absolute;
|
|
|
|
+ content: '';
|
|
|
|
+ display: block;
|
|
|
|
+ top: 5px;
|
|
|
|
+ right: -2px;
|
|
|
|
+ width: 1px;
|
|
|
|
+ height: 12px;
|
|
|
|
+ background: #e9ecf7;
|
|
|
|
+}
|
|
|
|
+// .el-row{
|
|
|
|
+// height: 150px;
|
|
|
|
+// }
|
|
|
|
+.base_header_layout .grid-content {
|
|
|
|
+ margin-top: 80px;
|
|
|
|
+}
|
|
|
|
+.el-input--small .el-input__inner {
|
|
|
|
+ margin-left: 20px;
|
|
|
|
+}
|
|
|
|
+.el-range-editor--small.el-input__inner {
|
|
|
|
+ height: 32px;
|
|
|
|
+ margin-left: -20%;
|
|
|
|
+}
|
|
|
|
+//执行样式
|
|
|
|
+.executory,
|
|
|
|
+.inExecution,
|
|
|
|
+.done {
|
|
|
|
+ width: 6px;
|
|
|
|
+ height: 6px;
|
|
|
|
+ display: inline-block;
|
|
|
|
+ border-radius: 50%;
|
|
|
|
+ position: relative;
|
|
|
|
+ top: -1px;
|
|
|
|
+ font-size: 14px;
|
|
|
|
+}
|
|
|
|
+.executory {
|
|
|
|
+ background: #ff9f24;
|
|
|
|
+}
|
|
|
|
+.inExecution {
|
|
|
|
+ background: #5878e8;
|
|
|
|
+}
|
|
|
|
+.done {
|
|
|
|
+ background: #50cad4;
|
|
|
|
+}
|
|
|
|
+.record,
|
|
|
|
+.adjustment {
|
|
|
|
+ display: inline-block;
|
|
|
|
+ color: #5878e8;
|
|
|
|
+ padding: 0 4px !important;
|
|
|
|
+ position: relative;
|
|
|
|
+ font-size: 14px;
|
|
|
|
+}
|
|
|
|
+.container {
|
|
|
|
+ overflow: scroll;
|
|
|
|
+ height: 93vh;
|
|
|
|
+}
|
|
|
|
+.button-container {
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-wrap: nowrap;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ align-items: center;
|
|
|
|
+ background-color: #fff;
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 50px;
|
|
|
|
+ padding: 0 10px;
|
|
|
|
+ & > div {
|
|
|
|
+ margin-left: 10px;
|
|
|
|
+ display: flex;
|
|
|
|
+ flex-wrap: nowrap;
|
|
|
|
+ flex-direction: row;
|
|
|
|
+ & > span {
|
|
|
|
+ line-height: 50px;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /deep/.auditFlow-box {
|
|
|
|
+ position: unset;
|
|
|
|
+ margin-left: 10px;
|
|
|
|
+ &/deep/.auditFlow-icon {
|
|
|
|
+ width: auto;
|
|
|
|
+ padding-right: 30px;
|
|
|
|
+ }
|
|
|
|
+ &/deep/.auditFlow-main {
|
|
|
|
+ position: absolute;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+.bg-left {
|
|
|
|
+ padding-left: 30px;
|
|
|
|
+}
|
|
|
|
+.title {
|
|
|
|
+ position: relative;
|
|
|
|
+}
|
|
|
|
+.title::before {
|
|
|
|
+ content: '';
|
|
|
|
+ display: inline-block;
|
|
|
|
+ width: 5px;
|
|
|
|
+ height: 30px;
|
|
|
|
+ background: #5473e8;
|
|
|
|
+ position: absolute;
|
|
|
|
+ left: 0;
|
|
|
|
+}
|
|
|
|
+.el-button--primary {
|
|
|
|
+ background-color: #5878e8;
|
|
|
|
+ border-color: #5878e8;
|
|
|
|
+ // margin-left: 85%;
|
|
|
|
+ margin-top: 13px;
|
|
|
|
+}
|
|
|
|
+//导航条样式
|
|
|
|
+.el-col-12 {
|
|
|
|
+ width: 50%;
|
|
|
|
+ height: 60px;
|
|
|
|
+ background: #f6f7fc;
|
|
|
|
+ border-radius: 4px 4px 1px 1px;
|
|
|
|
+}
|
|
|
|
+.el-input--small .el-input__inner {
|
|
|
|
+ height: 32px;
|
|
|
|
+ line-height: 32px;
|
|
|
|
+ width: 385px;
|
|
|
|
+ margin-top: 10px;
|
|
|
|
+}
|
|
|
|
+.bg-bottom {
|
|
|
|
+ margin-left: 85%;
|
|
|
|
+}
|
|
|
|
+.but {
|
|
|
|
+ margin-left: 30%;
|
|
|
|
+ /* margin-top: -32px; */
|
|
|
|
+ overflow: auto;
|
|
|
|
+ /* float: left; */
|
|
|
|
+ /* margin-left: 1px; */
|
|
|
|
+ margin-left: -10px;
|
|
|
|
+}
|
|
|
|
+.look .el-form-item {
|
|
|
|
+ border-bottom: 1px solid #ccc;
|
|
|
|
+}
|
|
|
|
+.el-input--small {
|
|
|
|
+ font-size: 13px;
|
|
|
|
+ width: 390px;
|
|
|
|
+ margin-left: 74%;
|
|
|
|
+}
|
|
|
|
+/deep/.el-table .el-table__header .cell,
|
|
|
|
+.el-table .el-table__body .cell {
|
|
|
|
+ text-align: center;
|
|
|
|
+}
|
|
|
|
+.el-scrollbar__wrap {
|
|
|
|
+ overflow-y: hidden;
|
|
|
|
+}
|
|
|
|
+/deep/.deal {
|
|
|
|
+ margin-left: 0%;
|
|
|
|
+ width: 64%;
|
|
|
|
+}
|
|
|
|
+.photo {
|
|
|
|
+ padding: 0% 34%;
|
|
|
|
+}
|
|
|
|
+.photo1 {
|
|
|
|
+ padding: 0 10%;
|
|
|
|
+}
|
|
|
|
+.photo2 {
|
|
|
|
+ padding: 0 12%;
|
|
|
|
+}
|
|
|
|
+/deep/.el-form-item--small .el-form-item__label,
|
|
|
|
+.el-form-item--small .el-form-item__content {
|
|
|
|
+ text-align: center;
|
|
|
|
+}
|
|
|
|
+hr {
|
|
|
|
+ width: 91%;
|
|
|
|
+}
|
|
|
|
+/deep/.deaal {
|
|
|
|
+ width: 66%;
|
|
|
|
+ margin-left: 9%;
|
|
|
|
+}
|
|
|
|
+.el-date-editor.el-input,
|
|
|
|
+.el-date-editor.el-input__inner,
|
|
|
|
+.el-input-number--small {
|
|
|
|
+ width: 123% !important;
|
|
|
|
+}
|
|
|
|
+/deep/.el-table td,
|
|
|
|
+.el-table th.is-leaf {
|
|
|
|
+ border-right: 1px solid #e9ecf7;
|
|
|
|
+ text-align: center;
|
|
|
|
+ height: 40px;
|
|
|
|
+}
|
|
|
|
+</style>
|