浏览代码

汽运结算列表

huangfuli 3 年之前
父节点
当前提交
25503a89d3

+ 10 - 0
src/api/V2/statisticalReport/index.js

@@ -60,3 +60,13 @@ export const API_POST_FINAL_SETTLEMENT_PRICE = '/salesDeliveryReport/api/editSal
 export const API_POST_ISSUE_APPROVAL = '/salesDeliveryReport/api/examineSalesDeliveryReport'
 // 销售出库报表头部信息
 export const API_GET_SELECTSALEORDER= '/salesDeliveryReport/selectOrder'
+// 汽运结算报表
+export const API_GET_AUTOSETTLEMENT= '/tranSettlementReport/selectTranSettlementReport'
+// 汽运结算报表修改结算重量,扣款,已开发票
+export const API_POST_EDITAUTOSETTLEMENT= '/tranSettlementReport/api/editTranSettlementReport'
+// 汽运结算报表合同
+export const API_GET_AUTOCONTRACT= '/tranSettlementReport/selectContractNoList'
+// 汽运结算报表付款
+export const API_POST_AUTOPAYMONEY= '/tranSettlementReport/api/payMoney'
+// 汽运结算报表批量开发票
+export const API_POST_OPENINVOICELIST= '/tranSettlementReport/api/openInvoiceList'

+ 1 - 0
src/lang/zh.js

@@ -538,6 +538,7 @@
     purchaseClosingCashierList:'采购平仓报表',
     salesDeliveryReportList:'销售出库报表',
     salesClosingCashierList:'销售平仓报表',
+    autoSettlementList:'汽运结算报表',
     // 财务管理
     financialManagement:'财务管理',
     collectionManagementList:'收款管理',

+ 17 - 1
src/model/statisticalReport/index.js

@@ -28,7 +28,12 @@ import {
     API_GET_PURCHASE_IN_CONTRACTNO,
     API_GET_SELECTORDER,
     API_GET_SELECTSALEORDER,
-    API_GET_SELECTCONTRACTNO
+    API_GET_SELECTCONTRACTNO,
+    API_GET_AUTOSETTLEMENT,
+    API_POST_EDITAUTOSETTLEMENT,
+    API_GET_AUTOCONTRACT,
+    API_POST_AUTOPAYMONEY,
+    API_POST_OPENINVOICELIST
 } from '@/api/V2/statisticalReport'
 //采购入库报表
 export const getpurchreceipt = appRx.get(API_GET_PURCHRECEIPT, errorCatcher, errorHandle, filter)
@@ -91,3 +96,14 @@ export const issueapproval = appRx.post(API_POST_ISSUE_APPROVAL, errorCatcher, e
 export const getsaleorder = appRx.get(API_GET_SELECTSALEORDER, errorCatcher, errorHandle, filter)
 
 
+
+//汽运结算报表 
+export const autoList = appRx.get(API_GET_AUTOSETTLEMENT, errorCatcher, errorHandle, filter)
+// 汽运结算报表修改结算重量,扣款,已开发票
+export const editauto = appRx.post(API_POST_EDITAUTOSETTLEMENT, errorCatcher, errorHandle, filter)
+//汽运结算报表合同
+export const autocontract = appRx.get(API_GET_AUTOCONTRACT, errorCatcher, errorHandle, filter)
+// 汽运结算报表付款
+export const autopaymoney = appRx.post(API_POST_AUTOPAYMONEY, errorCatcher, errorHandle, filter)
+// 汽运结算报表批量开发票
+export const openinvoicelist = appRx.post(API_POST_OPENINVOICELIST, errorCatcher, errorHandle, filter)

+ 1 - 1
src/views/salesManagement/salesPlanOrderList.vue

@@ -1428,7 +1428,7 @@ export default {
           this.getList()
         })
         .catch((req) => {
-          this.$message.success('修改基差失败')
+          this.$message.warning('修改基差失败')
         })
     },
     editbasis(item) {

+ 1494 - 0
src/views/statisticalReport/autoSettlementList.vue

@@ -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>

+ 15 - 1
src/views/statisticalReport/component/routers/route.js

@@ -72,7 +72,21 @@ const statisticalReportRouter = {
         // module: 'procurement.sparepart.applDetail'
         }
       },
-      
+      //汽运结算报表
+      {
+        path: 'autoSettlementList',
+        component: () =>
+        import(/* webpackChunkName: "applDetail" */ '@/views/statisticalReport/autoSettlementList'),
+        name: 'autoSettlementList',
+        meta: {
+        title: 'autoSettlementList',
+        shortcutEntrance: 'statisticalReport',
+        module: 'report.saleCloseReport',
+        permissicon: [],
+        keepAlive: true
+        // module: 'procurement.sparepart.applDetail'
+        }
+      },
     
   ],
 

+ 3 - 0
src/views/statisticalReport/purchaseReceiptStatisticsList.vue

@@ -267,6 +267,9 @@
           <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"

+ 3 - 0
src/views/statisticalReport/salesDeliveryReportList.vue

@@ -238,6 +238,9 @@
           <template slot-scope="scope">
             {{ scope.row.alreadyInvoice }}
             <img
+            v-if="
+                scope.row.collectionEdPayable > 0
+              "
               width="17"
               height="18"
               style="vertical-align: text-top; position: relative; top: -1px"