瀏覽代碼

提交初始化审批流页面,以及收费、付费页面完成

caojunjie 4 年之前
父節點
當前提交
1f8af83b7f

+ 70 - 0
src/api/finance/payment.js

@@ -0,0 +1,70 @@
+import request from '@/utils/request'
+
+// 查询财务数据主列表
+export function listCharge(query) {
+  return request({
+    url: '/finance/payment/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询财务数据主详细
+export function getCharge(fId) {
+  return request({
+    url: '/finance/payment/' + fId,
+    method: 'get'
+  })
+}
+
+// 新增财务数据主
+export function addCharge(data) {
+  return request({
+    url: '/finance/payment/add',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改财务数据主
+export function updateCharge(data) {
+  return request({
+    url: '/finance/payment',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除财务数据主
+export function delCharge(fId) {
+  return request({
+    url: '/finance/payment/' + fId,
+    method: 'delete'
+  })
+}
+
+// 导出财务数据主
+export function exportCharge(query) {
+  return request({
+    url: '/finance/payment/export',
+    method: 'get',
+    params: query
+  })
+}
+// 导入搜索
+export function search(queryParameter) {
+  return request({
+    url: '/finance/payment/paymentList',
+    method: 'get',
+    params: queryParameter
+  })
+}
+
+// 查询客户详情列表
+export function listCorps(query) {
+  return request({
+    url: '/basicdata/customerDetails/corps/list',
+    method: 'get',
+    params: query
+  })
+}

+ 10 - 0
src/api/system/toConfigure.js

@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+
+// 查询主列表
+export function addCharge(data) {
+  return request({
+    url: '/warehouse/paths/list',
+    method: 'get',
+    data: data
+  })
+}

+ 16 - 4
src/views/finance/charge/index.vue

@@ -378,7 +378,7 @@
             <el-button icon="el-icon-refresh" size="mini" @click="resetQuery_s">重1置</el-button>
           </el-form-item>
         </el-form>
-        <el-table v-loading="loading" :data="chargeList_s" show-summary :summary-method="getSummaries" @selection-change="handleSelectionChange_s">
+        <el-table v-loading="loading" :data="chargeList_s" ref="chargeList" show-summary :summary-method="getSummaries" @selection-change="handleSelectionChange_s">
           <el-table-column type="selection" width="55" align="center"/>
           <el-table-column label="序2号" type="index" width="55" align="center"/>
           <el-table-column label="货权方" align="center" prop="fName"/>
@@ -582,18 +582,23 @@ export default {
           }, 0);
           sums[0] = '合计';
           sums[3] = '';
-          this.pass.fAmtdr = sums[9]
-          this.pass.fAmtcr = sums[10]
+          if (this.pass.fAmtcr == ''){
+
+            return sums[10]
+          }else {
+            sums[10] = this.pass.fAmtcr
+            sums[9] = this.pass.fAmtdr
+          }
         }
       });
       return sums;
     },
     imgChange1(row){
-
       if (row.fAmt && Number(row.fAmt) > Number(row.fAmtdr)){
         this.$set(row, 'fAmt', row.fAmtdr)
         this.state_s = true
       }
+      this.$refs.chargeList.clearSelection()
     },
     //确认导入
     confirmImport() {
@@ -749,6 +754,13 @@ export default {
     },
     // 导入多选框
     handleSelectionChange_s(selection) {
+      console.log(selection)
+      this.pass.fAmtcr = 0
+      this.pass.fAmtdr = 0
+      for (let item in selection){
+        this.pass.fAmtcr += Number(selection[item].fAmt)
+        this.pass.fAmtdr += Number(selection[item].fAmtdr)
+      }
       this.selection = selection
     },
     /** 新增按钮操作 */

+ 876 - 0
src/views/finance/payment/index.vue

@@ -0,0 +1,876 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams_s" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="系统编号" prop="fCtrlcorpid">
+        <el-input
+          v-model="queryParams_s.fBillno"
+          placeholder="请输入系统编号"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="货权方" prop="fCtrlcorpid">
+        <el-input
+          v-model="queryParams_s.fCtrlcorpid"
+          placeholder="请输入货权方"
+          clearable
+          size="small"
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="对账日期" prop="fAccbilldate">
+        <el-date-picker clearable size="small" style="width: 200px"
+                        v-model="queryParams_s.fAccbilldate"
+                        type="date"
+                        value-format="yyyy-MM-dd"
+                        placeholder="选择账单日期"
+        >
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="结算单位" prop="fCorpid">
+        <el-select
+          v-model="queryParams_s.fCorpid"
+          filterable
+          remote
+          clearable
+          style="width: 200px"
+          @keyup.enter.native="handleQuery"
+          :remote-method="corpsRemoteMethod"
+          placeholder="请输入结算单位"
+        >
+          <el-option
+            v-for="(dict, index) in fMblnoOptions"
+            :key="index.fId"
+            :label="dict.fName"
+            :value="dict.fId"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="状态" prop="fBillstatus">
+        <el-select v-model="queryParams_s.fBillstatus" placeholder="请选择">
+          <el-option
+            v-for="item in options"
+            :key="item.value"
+            :label="item.dictLabel"
+            :value="item.dictValue">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['finance:charge:add']"
+        >新增
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['finance:charge:edit']"
+        >修改
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['finance:charge:remove']"
+        >删除
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['finance:charge:export']"
+        >导出
+        </el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="chargeList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center"/>
+      <el-table-column label="序1号" type="index" width="55" align="center"/>
+      <el-table-column label="系统编号" align="center" prop="fBillno"/>
+      <el-table-column label="货权方" align="center" prop="fCtrlcorpid"/>
+      <!--      <el-table-column label="账单日期" align="center" prop="fAccbilldate" width="180">-->
+      <!--        <template slot-scope="scope">-->
+      <!--          <span>{{ parseTime(scope.row.fAccbilldate, '{y}-{m}-{d}') }}</span>-->
+      <!--        </template>-->
+      <!--      </el-table-column>-->
+      <!--      <el-table-column label="制单部门" align="center" prop="fId"/>-->
+      <!--      <el-table-column label="结算单位" align="center" prop="fCorpid"/>-->
+      <el-table-column label="对账日期" align="center" prop="fAccbilldate"/>
+      <el-table-column label="提单号" align="center" prop="tMblno"/>
+      <el-table-column label="应收合计" align="center" prop="fAmtdr"/>
+      <el-table-column label="应付合计" align="center" prop="fAmtcr"/>
+      <el-table-column label="备注" align="center" prop="fRemarks"/>
+      <el-table-column label="状态" align="center" prop="fBillstatus">
+        <template slot-scope="scope">
+          <span v-if="scope.row.fBillstatus == '1'">新建</span>
+          <span v-else-if="scope.row.fBillstatus == '2'">暂存</span>
+          <span v-else-if="scope.row.fBillstatus == '3'">审批驳回</span>
+          <span v-else-if="scope.row.fBillstatus == '4'">提交审核</span>
+          <span v-else-if="scope.row.fBillstatus == '5'">审核中</span>
+          <span v-else-if="scope.row.fBillstatus == '6'">审核完成</span>
+        </template>
+      </el-table-column>
+
+      <!--      <el-table-column label="单据类型" align="center" prop="fBilltype"/>-->
+      <!--      <el-table-column label="制单部门" align="center" prop="fDeptid"/>-->
+      <el-table-column label="操作" width="100" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['finance:charge:edit']"
+          >修改
+          </el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['finance:charge:remove']"
+          >删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改财务数据主对话框 -->
+    <el-dialog :close-on-click-modal="false" :title="title" :visible.sync="open" width="70%" append-to-body>
+      <el-form :model="queryParams" :rules="ruless" ref="ruless" :inline="true" v-show="showSearch"
+               label-width="68px"
+      >
+        <el-form-item label="货权方" prop="fCtrlcorpid">
+          <el-input
+            v-model="queryParams.fCtrlcorpid"
+            placeholder="请输入货权方"
+            clearable
+            size="small"
+            @keyup.enter.native="handleQuery"
+          />
+        </el-form-item>
+        <el-form-item label="结算单位" label-width="78px" prop="fCorpid">
+          <el-select
+            v-model="queryParams.fCorpid"
+            filterable
+            remote
+            clearable
+            style="width: 200px"
+            @keyup.enter.native="handleQuery"
+            :remote-method="corpsRemoteMethod"
+            placeholder="请输入结算单位"
+          >
+            <el-option
+              v-for="(dict, index) in fMblnoOptions"
+              :key="index.fId"
+              :label="dict.fName"
+              :value="dict.fId"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="结算日期" label-width="78px" prop="fAccbilldate">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="queryParams.fAccbilldate"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择账单日期"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="系统编号" prop="fBillno">
+          <el-input
+            v-model="queryParams.fBillno"
+            placeholder="请输入系统编号"
+            clearable
+            disabled
+            size="small"
+            @keyup.enter.native="handleQuery"
+          />
+        </el-form-item>
+        <el-form-item label="备注" prop="fRemarks">
+          <el-input
+            v-model="queryParams.fRemarks"
+            placeholder="请输入备注"
+            clearable
+            size="small"
+            @keyup.enter.native="handleQuery"
+          />
+        </el-form-item>
+      </el-form>
+      <div style="width: 100%;">
+        <el-button type="warning" size="small" @click="innerVisible = true">收费</el-button>
+        <el-button type="primary" size="small">确认收费</el-button>
+        <el-button type="success" size="small">导出</el-button>
+        <el-button type="info" size="small">打印</el-button>
+        <el-button type="danger" size="small">删除</el-button>
+      </div>
+      <el-table v-loading="loading" :data="increase_s" @selection-change="handleSelectionChange_s">
+        <el-table-column type="selection" width="55" align="center"/>
+        <el-table-column label="序号" type="index" width="55" align="center"/>
+        <el-table-column label="提单号" align="center" prop="fMblno"/>
+        <el-table-column label="存货单号" align="center" prop="fBscorpno"/>
+        <el-table-column label="品名" align="center" prop="fProductName"/>
+        <el-table-column label="业务日期" align="center" prop="fBsdate">
+          <template slot-scope="scope">
+            <span>{{scope.row.fBsdate.slice(0,10)}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="费用名称" align="center" prop="fFeeName"/>
+        <el-table-column label="收/付" align="center" prop="fSrcdc">
+          <template slot-scope="scope">
+            <span v-if="scope.row.fSrcdc =='D'">收</span>
+            <span v-else-if="scope.row.fSrcdc =='C'">付</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="业务类型" align="center" prop="fBilltype">
+          <template slot-scope="scope">
+            <span v-if="scope.row.fBilltype =='SJRK'">入库</span>
+
+            <span v-else-if="scope.row.fBilltype == 'SJCK'">出库</span>
+            <span v-else>{{scope.row.fBilltype}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="本次金额" align="center" prop="fAmt"/>
+        <el-table-column label="备注" align="center" prop="fRemarks"/>
+
+        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+          <template slot-scope="scope">
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-delete"
+              @click.native.prevent="deleteRow(scope.$index, increase_s)"
+            >删除
+            </el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">保 存</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+      <el-dialog :close-on-click-modal="false" width="70%" :visible.sync="innerVisible" title="导入数据" append-to-body>
+        <el-form ref="form" :model="queryParameter" :rules="rules" label-width="80px"
+                 style="display: flex;flex-wrap: wrap;"
+        >
+          <el-form-item label="货权方" prop="fCtrlcorpid">
+            <!--            <el-input v-model="queryParameter.fCorpid" placeholder="请输入货权方" style="width: 200px;"/>-->
+            <el-select
+              v-model="queryParams.fCorpid"
+              filterable
+              remote
+              clearable
+              style="width: 200px"
+              @keyup.enter.native="handleQuery"
+              :remote-method="corpsRemoteMethod"
+              placeholder="请选择货权方"
+            >
+              <el-option
+                v-for="(dict, index) in fMblnoOptions"
+                :key="index.fId"
+                :label="dict.fName"
+                :value="dict.fId"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="结算单位" prop="fToCorpid">
+            <el-select
+              v-model="queryParameter.fToCorpid"
+              filterable
+              remote
+              clearable
+              style="width: 200px"
+              @keyup.enter.native="handleQuery"
+              :remote-method="corpsRemoteMethod"
+              placeholder="请输入结算单位"
+            >
+              <el-option
+                v-for="(dict, index) in fMblnoOptions"
+                :key="index.fId"
+                :label="dict.fName"
+                :value="dict.fId"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="提单号" prop="tMblno">
+            <el-input v-model="queryParameter.fMblno" placeholder="请输入提单号" style="width: 200px;"/>
+          </el-form-item>
+          <el-form-item label="对账单号" prop="fStatementNo">
+            <el-input v-model="queryParameter.fStatementNo" placeholder="请输入提单号" style="width: 200px;"/>
+          </el-form-item>
+          <el-form-item label="费用名称" prop="fFeeid">
+            <template>
+              <el-select
+                v-model="queryParameter.fFeeid"
+                filterable
+                remote
+                :remote-method="fWRemoteMethod"
+                placeholder="费用名称"
+                multiple
+              >
+                <el-option v-for="item in fWbuOptions" :key="item.fId" :label="item.fName" :value="item.fId">
+                </el-option>
+              </el-select>
+            </template>
+          </el-form-item>
+          <el-form-item label="审核日期" prop="timeExamine">
+            <el-date-picker
+              size="small"
+              style="width: 200px"
+              v-model="queryParameter.timeExamine"
+              type="daterange"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              value-format="yyyy-MM-dd"
+              :default-time="['00:00:00', '23:59:59']"
+            >
+            </el-date-picker>
+          </el-form-item>
+          <el-form-item label="出入库日期" label-width="85px" prop="fAccbilldate">
+            <el-date-picker
+              size="small"
+              style="width: 200px"
+              v-model="queryParameter.timeInterval"
+              type="daterange"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              value-format="yyyy-MM-dd"
+              :default-time="['00:00:00', '23:59:59']"
+            >
+            </el-date-picker>
+          </el-form-item>
+          <el-form-item>
+            <el-button type="cyan" icon="el-icon-search" size="mini" @click="importSearch">搜索</el-button>
+            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery_s">重1置</el-button>
+          </el-form-item>
+        </el-form>
+        <el-table v-loading="loading" :data="chargeList_s" ref="chargeList" show-summary :summary-method="getSummaries" @selection-change="handleSelectionChange_s">
+          <el-table-column type="selection" width="55" align="center"/>
+          <el-table-column label="序2号" type="index" width="55" align="center"/>
+          <el-table-column label="货权方" align="center" prop="fName"/>
+          <el-table-column label="提单号" align="center" prop="fMblno"/>
+          <el-table-column label="品名" align="center" prop="fProductName"/>
+          <el-table-column label="业务日期" align="center" prop="fBsdate"/>
+          <el-table-column label="业务类型" align="center" prop="fBilltype">
+            <template slot-scope="scope">
+              <span v-if="scope.row.fBilltype =='SJRK'">入库</span>
+
+              <span v-else-if="scope.row.fBilltype == 'SJCK'">出库</span>
+              <span v-else>{{scope.row.fBilltype}}</span>
+            </template>
+          </el-table-column>
+          <el-table-column label="审核日期" align="center" prop="fReviewDate"/>
+          <el-table-column label="费用名称" align="center" prop="fFeeName"/>
+          <el-table-column label="金额" align="center" prop="fAmtdr"/>
+          <el-table-column label="本次金额" align="center" prop="fAmt">
+            <template slot-scope="scope">
+              <el-input
+                v-model="scope.row.fAmt"
+                placeholder="请输入本次金额"
+                clearable
+                size="small"
+                oninput='this.value=this.value.replace(/[^\-?\d.]/g,"").replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3")'
+                @change="imgChange1(scope.row)"
+              />
+            </template>
+          </el-table-column>
+          <el-table-column label="备1注" align="center" prop="fRemarks">
+            <template slot-scope="scope">
+              <el-input
+                v-model="scope.row.fRemarks"
+                placeholder="请输入备注"
+                clearable
+                size="small"
+              />
+            </template>
+          </el-table-column>
+        </el-table>
+        <div slot="footer" class="dialog-footer">
+          <el-button type="primary" @click="confirmImport">确 定</el-button>
+          <el-button @click="innerVisible = false">取 消</el-button>
+        </div>
+      </el-dialog>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import {
+  listCharge,
+  getCharge,
+  delCharge,
+  addCharge,
+  updateCharge,
+  exportCharge,
+  search,
+  listCorps
+} from '@/api/finance/charge'
+import { listFees } from '@/api/basicdata/fees'
+import log from '@/views/monitor/job/log'
+
+export default {
+  name: 'Charge',
+  components: {},
+  data() {
+    return {
+      browseStatus: true,
+      //导入状态
+      state_s: true ,
+      fWbuOptions: [],
+      options:'',
+      // 遮罩层
+      loading: true,
+      //打开内部弹窗
+      innerVisible: false,
+      chargeList_s: [],
+      selection: '',
+      increase_s: [],
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      //提单号暂存
+      fMblno:'',
+      // 财务数据主表格数据
+      chargeList: [],
+      // 弹出层标题
+      title: '',
+      // 是否显示弹出层
+      open: false,
+      fMblnoOptions: '',
+      //导入查询参数
+      queryParameter: {
+        fCorpid: '',
+        fToCorpid: '',
+        fMblno: '',
+        fStatementNo: '',
+        fFeeid: '',
+        timeExamine: '',
+        timeInterval: ''
+      },
+      //导入从表传主表
+      pass:{
+        fAmtdr:'',    //应收合计
+        fAmtcr:'',    //应付合计
+        fMblno:'',    //提单号
+        fName:''      //货权方
+      },
+      // 查询参数
+      queryParams: {
+        fId: null,
+        pageNum: 1,
+        pageSize: 10,
+        fBillno: null,
+        fCtrlcorpid: null,
+        fCorpid: null,
+        tMblno: null,
+        fAmtdr: null,
+        fAmtcr: null,
+        fBilltype: null,
+        fBillstatus: null,
+        fRemarks: null,
+        fAccbilldate: null,
+        fDeptid: null
+      },
+      // 主表查询参数
+      queryParams_s: {
+        pageNum: 1,
+        pageSize: 10,
+        fBillno: null,
+        fCtrlcorpid: null,
+        fCorpid: null,
+        tMblno: null,
+        fAmtdr: null,
+        fAmtcr: null,
+        fBilltype: null,
+        fBillstatus: null,
+        fRemarks: null,
+        fAccbilldate: null,
+        fDeptid: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      ruless: {
+        fCtrlcorpid: [
+          { required: true, message: '货权方不能为空', trigger: 'blur' }
+        ],
+        fCorpid: [
+          { required: true, message: '结算单位不能为空', trigger: 'blur' }
+        ],
+        fAccbilldate: [
+          { required: true, message: '对账日期不能为空', trigger: 'blur' }
+        ]
+      },
+      // 表单校验
+      rules: {
+        fBilltype: [
+          { required: true, message: '单据类型', trigger: 'change' }
+        ],
+        fBillstatus: [
+          { required: true, message: '状态不能为空', trigger: 'blur' }
+        ],
+        fDeptid: [
+          { required: true, message: '制单部门不能为空', trigger: 'blur' }
+        ],
+        fToCorpid: [
+          { required: true, message: '结算单位不能为空', trigger: 'blur' }
+        ],
+        timeExamine: [
+          { required: true, message: '审核日期不能为空', trigger: 'blur' }
+        ]
+      }
+    }
+  },
+  created() {
+    this.getList()
+  },
+  methods: {
+    getSummaries(param) {
+      const { columns, data } = param;
+      const sums = [];
+      columns.forEach((column, index) => {
+        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);
+          sums[0] = '合计';
+          sums[3] = '';
+          if (this.pass.fAmtcr == ''){
+
+            return sums[10]
+          }else {
+            sums[10] = this.pass.fAmtcr
+            sums[9] = this.pass.fAmtdr
+          }
+        }
+      });
+      return sums;
+    },
+    imgChange1(row){
+      if (row.fAmt && Number(row.fAmt) > Number(row.fAmtdr)){
+        this.$set(row, 'fAmt', row.fAmtdr)
+        this.state_s = true
+      }
+      this.$refs.chargeList.clearSelection()
+    },
+    //确认导入
+    confirmImport() {
+      console.log(this.state_s)
+      if(this.state_s == true){
+        if (this.selection.length == '0') {
+          console.log('未选择')//写入提示
+          this.$message.error('未选择导入行');
+        }else {
+          console.log(this.selection[0].fMblno)
+          for (let item in this.selection){
+            console.log(this.selection[item])
+            console.log(this.selection[item].fMblno)
+
+            console.log(this.selection[item].fName)
+            if(item >= 1){
+              this.pass.fMblno = this.selection[item].fMblno + "..."
+              this.pass.fName = this.selection[item].fName + "..."
+
+            }else if(item == 0){
+              this.pass.fMblno = this.selection[item].fMblno
+              this.pass.fName = this.selection[item].fName
+            }
+          }
+          this.increase_s = this.selection
+          this.queryParams.tMblno = this.pass.fMblno //提单号
+          this.queryParams.fCtrlcorpid = this.pass.fName
+          this.queryParams.fAmtcr = this.pass.fAmtcr
+          this.queryParams.fAmtdr = this.pass.fAmtdr
+          console.log(this.queryParams)
+          this.innerVisible = false
+          this.chargeList_s = []
+          this.queryParameter = {
+            fCorpid: '',
+            fToCorpid: '',
+            fMblno: '',
+            fStatementNo: '',
+            fFeeid: '',
+            timeExamine: '',
+            timeInterval: ''
+          }
+        }
+      }else if(this.state_s == false){
+        this.$message.error('本次金额不能大于原定金额');
+      }
+    },
+    /** 查询财务数据主列表 */
+    getList() {
+      this.loading = true
+      this.getDicts("approval_process").then((response) => {
+        console.log(response.data)
+        this.options = response.data
+      });
+      listCharge(this.queryParams_s).then(response => {
+        console.log(response)
+        this.chargeList = response.rows
+        this.total = response.total
+        this.loading = false
+      })
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false
+      this.reset()
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        fId: null,
+        fBillno: null,
+        fCtrlcorpid: null,
+        fCorpid: null,
+        tMblno: null,
+        fAmtdr: null,
+        fAmtcr: null,
+        fBilltype: null,
+        fBillstatus: '0',
+        fRemarks: null,
+        fAccbilldate: null,
+        delFlag: null,
+        createBy: null,
+        fDeptid: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null
+      }
+      this.resetForm('form')
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1
+      this.getList()
+    },
+    /** 导入搜索 */
+    importSearch() {
+      console.log(this.queryParameter)
+      // console.log(this.queryParameter[0].fFeeid.join(','))
+      // .join(',')
+      this.chargeList_s = []
+      this.$refs['form'].validate(valid => {
+        if (valid) {
+          search(this.queryParameter).then(response => {
+            this.chargeList_s = response.rows
+          })
+        }
+      })
+    },
+    /** 远程模糊查询用户 */
+    corpsRemoteMethod(name) {
+      if (name == null || name === '') {
+        return false
+      }
+      let queryParams = { pageNum: 1, pageSize: 10, fName: name, type: 1 }
+      listCorps(queryParams).then((response) => {
+        this.fMblnoOptions = response.rows
+        this.KHblnoOptions = response.rows
+      })
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm('queryParams_s')
+      this.handleQuery()
+    },
+    //导入重置按钮
+    resetQuery_s() {
+      this.queryParameter = {
+        fCorpid: '',
+        fToCorpid: '',
+        fMblno: '',
+        fStatementNo: '',
+        fFeeid: '',
+        timeExamine: '',
+        timeInterval: ''
+      }
+    },
+    // 远程模糊查询费用名称
+    fWRemoteMethod(name) {
+      this.fWbuOptions = []
+      if (name == null || name === '') {
+        return false
+      }
+      let queryParams = { pageNum: 1, pageSize: 10, fName: name }
+      listFees(queryParams).then((response) => {
+        console.log(this.fWbuOptions)
+        this.fWbuOptions = response.rows
+      })
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.fId)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    // 导入多选框
+    handleSelectionChange_s(selection) {
+      console.log(selection)
+      this.pass.fAmtcr = 0
+      this.pass.fAmtdr = 0
+      for (let item in selection){
+        this.pass.fAmtcr += Number(selection[item].fAmt)
+        this.pass.fAmtdr += Number(selection[item].fAmtdr)
+      }
+      this.selection = selection
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset()
+      // this.queryParams = []
+      this.increase_s = []
+      this.queryParams = {
+        pageNum: 1,
+        pageSize: 10,
+        fBillno: null,
+        fCtrlcorpid: null,
+        fCorpid: null,
+        tMblno: null,
+        fAmtdr: null,
+        fAmtcr: null,
+        fBilltype: null,
+        fBillstatus: null,
+        fRemarks: null,
+        fAccbilldate: null,
+        fDeptid: null
+      },
+        this.resetForm('queryParams')
+      this.open = true
+      this.title = '添加财务数据主'
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      console.log(row)
+      this.reset()
+      const fId = row.fId || this.ids
+      console.log(fId)
+      getCharge(fId).then(response => {
+        console.log(response)
+        this.increase_s = response.data.feeDoList
+        this.fWbuOptions = response.data.feesList
+        this.queryParams = response.data.tFee
+        this.fWbuOptions = response.data.feesList
+        this.fMblnoOptions = response.data.corps
+        this.open = true
+        this.title = '修改收费列表'
+      })
+    },
+    /** 提交按钮 */
+    submitForm() {
+      console.log(this.queryParameter)
+      this.$refs['ruless'].validate(valid => {
+        console.log(valid)
+        if (valid) {
+          if(this.queryParams.fId == null){
+            console.log(this.queryParams)
+            // this.chargeList.fBillstatus = '1'
+            this.queryParams.fBillstatus = '1'
+            let formData = new window.FormData()
+            formData.append('tFee', JSON.stringify(this.queryParams))
+            formData.append('tFeeDo', JSON.stringify(this.increase_s))
+            addCharge(formData).then(response => {
+              this.msgSuccess('新增成功')
+              this.increase_s = []
+              this.open = false
+              this.getList()
+            })
+          }else {
+            console.log(this.queryParams)
+            // this.chargeList.fBillstatus = '1'
+            this.queryParams.fBillstatus = '1'
+            let formData = new window.FormData()
+            formData.append('tFee', JSON.stringify(this.queryParams))
+            formData.append('tFeeDo', JSON.stringify(this.increase_s))
+            addCharge(formData).then(response => {
+              this.msgSuccess('修改成功')
+              this.increase_s = []
+              this.open = false
+              this.getList()
+            })
+          }
+        }
+      })
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const fIds = row.fId || this.ids
+      this.$confirm('是否确认删除财务数据主编号为"' + fIds + '"的数据项?', '警告', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(function() {
+        return delCharge(fIds)
+      }).then(() => {
+        this.getList()
+        this.msgSuccess('删除成功')
+      })
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      const queryParams = this.queryParams
+      this.$confirm('是否确认导出所有财务数据主数据项?', '警告', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(function() {
+        return exportCharge(queryParams)
+      }).then(response => {
+        this.download(response.msg)
+      })
+    },
+    //清空一行
+    deleteRow(index, rows) {
+      rows.splice(index, 1);
+    },
+  }
+}
+</script>

+ 283 - 0
src/views/system/toConfigure/auditPaths-add-or-update.vue

@@ -0,0 +1,283 @@
+<template>
+  <el-dialog
+    :title="!dataForm.id ? '新增' : '修改'"
+    :close-on-click-modal="false"
+    :before-close="closeDialog"
+    :visible.sync="visible"
+    :modal="false"
+    width="75%">
+    <el-form :inline="true" :model="dataForm" :rules="dataRule" ref="dataForm">
+      <div class="form-group dialog">
+        <el-form-item label="审核路径名称" prop="pathName">
+          <el-input v-model="dataForm.pathName" placeholder="审核路径名称"></el-input>
+        </el-form-item>
+        <el-form-item label="状态" prop="status">
+          <el-select v-model="dataForm.status" placeholder="状态" style="width: 100%">
+            <el-option
+              v-for="item in optionsStatue"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="维护人" prop="opUserName">
+          <el-input v-model="dataForm.opUserName" disabled placeholder="维护人"></el-input>
+        </el-form-item>
+        <el-form-item label="维护时间" prop="opDate">
+          <el-input v-model="dataForm.opDate" disabled placeholder="维护时间"></el-input>
+        </el-form-item>
+        <el-form-item label="备注" class="full" prop="remarks">
+          <el-input v-model="dataForm.remarks" placeholder="备注"></el-input>
+        </el-form-item>
+      </div>
+    </el-form>
+    <el-button @click.prevent="addRow()" style="float: left">添加</el-button>
+    <el-table :data="dataList" tooltip-effect="dark" border stripe style="width: 100%; margin-bottom: 20px">
+      <el-table-column
+        width="80PX"
+        label="级次"
+        type="index">
+      </el-table-column>
+      <el-table-column
+        prop="levelName"
+        header-align="center"
+        align="center"
+        label="路径名称">
+        <template slot-scope="scope">
+          <el-input v-model="scope.row.levelName" placeholder="路径名称" show-word-limit/>
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="iffixAuditUser"
+        header-align="center"
+        align="center"
+        label="是否指定审批人">
+        <template slot-scope="scope">
+          <el-select v-model="scope.row.iffixAuditUser" placeholder="是否指定审批人" @change="changeIffixAudit(scope.row)"
+                     style="width: 100%">
+            <el-option
+              v-for="item in optionsiffixAudit"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id">
+            </el-option>
+          </el-select>
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="auditUserId"
+        header-align="center"
+        align="center"
+        label="审核人">
+        <template slot-scope="scope">
+          <el-select v-model="scope.row.auditUserId" :disabled="scope.row.iffixAuditUser === 'F'"
+                     filterable multiple collapse-tags placeholder="审核人" style="width: 100%">
+            <el-option
+              v-for="item in optionsUsers"
+              :key="item.userId"
+              :label="item.actualname"
+              :value="item.userId">
+            </el-option>
+          </el-select>
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="iffinalItem"
+        header-align="center"
+        align="center"
+        label="是否最后一级">
+        <template slot-scope="scope">
+          <el-select v-model="scope.row.iffinalItem" placeholder="是否最后一级" style="width: 100%">
+            <el-option
+              v-for="item in optionsIfStatus"
+              :key="item.val"
+              :label="item.name"
+              :value="item.val">
+            </el-option>
+          </el-select>
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="remarks"
+        header-align="center"
+        align="center"
+        label="备注">
+        <template slot-scope="scope">
+          <el-input v-model="scope.row.remarks" placeholder="备注" show-word-limit/>
+        </template>
+      </el-table-column>
+      <el-table-column
+        header-align="center"
+        align="center"
+        label="操作">
+        <template slot-scope="scope">
+          <el-button @click.native.prevent="deleteRow(scope.$index, dataList)" size="small">移除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <span slot="footer" class="dialog-footer">
+      <el-button @click="closeDia">取消</el-button>
+      <el-button type="primary" @click="dataFormSubmit()" v-preventReClick>确定</el-button>
+    </span>
+  </el-dialog>
+</template>
+
+<script>
+  export default {
+    data () {
+      return {
+        dataForm: {
+          status: 'A'
+        },
+        visible: false,
+        dataRule: {},
+        dataList: [],
+        optionsUsers: [],
+        optionsiffixAudit: [{
+          id: 'S',
+          name: '是'
+        }, {
+          id: 'F',
+          name: '否'
+        }],
+        optionsIfStatus: [{
+          val: 'F',
+          name: '否'
+        }, {
+          val: 'T',
+          name: '是'
+        }],
+        optionsStatue: [{
+          id: 'A',
+          name: '有效'
+        }, {
+          id: 'S',
+          name: '停用'
+        }]
+      }
+    },
+    methods: {
+      init (val) {
+        this.optionsUsers = []
+        this.visible = true
+        if (typeof val !== 'undefined') {
+          this.queryAuditPath(val)
+        } else {
+          this.queryUsers()
+        }
+      },
+      queryUsers () {
+        this.$http({
+          url: this.$http.adornUrl('/sys/user/selectUser'),
+          method: 'post',
+          data: ({mobile: 'auditUser'})
+        }).then(({data}) => {
+          if (typeof data.list !== 'undefined' && data.list !== null) {
+            if (typeof data.list.users !== 'undefined' && data.list.users !== null) {
+              this.optionsUsers = data.list.users
+            }
+          }
+        })
+      },
+      queryAuditPath (val) {
+        this.$http({
+          url: this.$http.adornUrl('/engineering/auditPaths/queryAuditPath'),
+          method: 'post',
+          data: ({id: val})
+        }).then(({data}) => {
+          if (typeof data.list !== 'undefined' && data.list !== null) {
+            if (typeof data.list.users !== 'undefined' && data.list.users !== null) {
+              this.optionsUsers = data.list.users
+            }
+            if (typeof data.list.audit !== 'undefined' && data.list.audit !== null) {
+              this.dataForm = data.list.audit
+            }
+            if (typeof data.list.auditPathsLevels !== 'undefined' && data.list.auditPathsLevels !== null) {
+              this.dataList = data.list.auditPathsLevels
+              if (typeof data.list.auditUserIds !== 'undefined' && data.list.auditUserIds !== null) {
+                for (let use in data.list.auditUserIds) {
+                  this.$set(this.dataList[use], 'auditUserId', data.list.auditUserIds[use])
+                }
+              }
+            }
+          }
+        })
+      },
+      addRow () {
+        let val = {
+          levelName: null,
+          auditUserId: null,
+          auditUserName: null,
+          iffixAuditUser: 'S',
+          iffinalItem: 'T',
+          remarks: null
+        }
+        this.dataList.push(val)
+      },
+      deleteRow (index, rows) { // 删除改行
+        rows.splice(index, 1)
+      },
+      changeIffixAudit (row) {
+        if (row.iffixAuditUser === 'F') {
+          row.auditUserId = null
+          row.auditUserName = null
+        }
+      },
+      // 表单提交
+      dataFormSubmit () {
+        if (this.dataList.length === 0) {
+          this.$message.error('请维护审批级次')
+          return false
+        }
+        for (let x in this.dataList) {
+          if (this.dataList[x].iffixAuditUser === 'S') {
+            if (this.dataList[x].auditUserId === null || this.dataList[x].auditUserId === '' || this.dataList[x].auditUserId.length === 0) {
+              this.$message.error('请维护第' + (Number(x) + 1) + '级的审核人')
+              return false
+            }
+          }
+        }
+        this.$confirm(`是否提交?`, '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+          let formData = new FormData()
+          formData.append('auditPaths', JSON.stringify(this.dataForm))
+          formData.append('auditPathsLevels', JSON.stringify(this.dataList))
+          this.$http({
+            url: this.$http.adornUrl(`/engineering/auditPaths/save`),
+            method: 'post',
+            data: formData
+          }).then(({data}) => {
+            if (data && data.code === 0) {
+              this.$message({
+                message: '操作成功',
+                type: 'success',
+                duration: 600,
+                onClose: () => {
+                  this.closeDia()
+                }
+              })
+            } else {
+              this.$message.error(data.msg)
+            }
+          })
+        })
+      },
+      closeDialog (done) {
+        done()
+        // location.reload()
+        this.visible = false
+        this.$emit('refreshDataList')
+        Object.assign(this.$data, this.$options.data.call(this))
+      },
+      closeDia () {
+        this.visible = false
+        this.$emit('refreshDataList')
+        Object.assign(this.$data, this.$options.data.call(this))
+      }
+    }
+  }
+</script>

+ 210 - 0
src/views/system/toConfigure/index.vue

@@ -0,0 +1,210 @@
+<template>
+  <div class="mod-auditPaths">
+    <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
+      <el-form-item>
+        <el-input v-model="dataForm.pathName" placeholder="审核路径名称" clearable style="width: 138PX;"></el-input>
+      </el-form-item>
+      <el-form-item style="float: right">
+        <el-button icon="el-icon-search" @click="getDataList()">查询</el-button>
+        <el-button icon="el-icon-refresh-left" @click="resetSearch">重置</el-button>
+        <el-button type="primary" @click="addOrUpdateHandle()">
+          新增
+        </el-button>
+      </el-form-item>
+    </el-form>
+    <el-table :data="dataList" border v-loading="dataListLoading" style="width: 100%;">
+      <el-table-column
+        header-align="center"
+        align="center"
+        type="index"
+        width="80"
+        label="序号">
+      </el-table-column>
+      <el-table-column
+        prop="pathName"
+        header-align="center"
+        align="center"
+        width="220"
+        label="审核路径名称">
+      </el-table-column>
+      <el-table-column
+        prop="opUserName"
+        header-align="center"
+        align="center"
+        width="150"
+        label="维护人">
+      </el-table-column>
+      <el-table-column
+        prop="opDate"
+        header-align="center"
+        align="center"
+        width="150"
+        label="维护时间">
+      </el-table-column>
+      <el-table-column
+        prop="branName"
+        header-align="center"
+        align="center"
+        width="180"
+        label="公司名称">
+      </el-table-column>
+      <el-table-column
+        prop="status"
+        header-align="center"
+        align="center"
+        width="90"
+        label="状态">
+        <template slot-scope="scope">
+          <span v-if="scope.row.status === 'N'">新建</span>
+          <span v-if="scope.row.status === 'A'">有效</span>
+          <span v-if="scope.row.status === 'S'">停用</span>
+        </template>
+      </el-table-column>
+      <el-table-column
+        prop="remarks"
+        header-align="center"
+        align="center"
+        label="备注">
+      </el-table-column>
+      <el-table-column
+        fixed="right"
+        header-align="center"
+        align="center"
+        width="150"
+        label="操作">
+        <template slot-scope="scope">
+          <el-button type="text" size="small"
+                     @click="addOrUpdateHandle(scope.row.id)">修改
+          </el-button>
+          <el-button type="text" size="small"
+                     @click="deleteHandle(scope.row.id)">删除
+          </el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <el-pagination
+      @size-change="sizeChangeHandle"
+      @current-change="currentChangeHandle"
+      :current-page="dataForm.current"
+      :page-sizes="[10, 20, 50, 100]"
+      :page-size="dataForm.size"
+      :total="totalPage"
+      layout="total, sizes, prev, pager, next, jumper">
+    </el-pagination>
+    <!-- 弹窗, 新增 / 修改 -->
+    <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList" :dataForm="editModel"></add-or-update>
+  </div>
+</template>
+
+<script>
+import AddOrUpdate from './auditPaths-add-or-update'
+import {addCharge} from '@/api/system/toConfigure'
+import { listCharge } from '@/api/finance/charge'
+
+export default {
+  data () {
+    return {
+      loginContractorId: null,
+      dataForm: {
+        pathId: null,
+        pathName: null,
+        opUserId: null,
+        opUserName: null,
+        opDate: null,
+        status: 'A',
+        remarks: null,
+        current: 1,
+        size: 10
+      },
+      editModel: {},
+      dataList: [],
+      totalPage: 0,
+      dataListLoading: false,
+      addOrUpdateVisible: false
+    }
+  },
+  components: {
+    AddOrUpdate
+  },
+  activated () {
+    // this.$http({
+    //   url: this.$http.adornUrl('/sys/user/getLoginContractorId'),
+    //   method: 'post'
+    // }).then(({data}) => {
+    //   this.loginContractorId = data.loginContractorId
+    // })
+    this.getDataList()
+  },
+  methods: {
+    // 获取数据列表
+    getDataList () {
+      this.dataListLoading = true
+      addCharge(this.dataForm).then(data => {
+        console.log(data)
+        if (typeof data.rows !== 'undefined' && data.rows !== null) {
+          this.dataList = data.rows
+          this.totalPage = data.rows.total
+        } else {
+          this.dataList = []
+          this.totalPage = 0
+        }
+        this.dataListLoading = false
+      })
+    },
+    resetSearch () {
+      this.dataForm.pathName = null
+      this.dataForm.opUserName = null
+      this.dataForm.opDate = null
+      this.dataForm.current = 1
+      this.dataForm.size = 10
+      this.getDataList()
+    },
+    // 每页数
+    sizeChangeHandle (val) {
+      this.dataForm.size = val
+      this.dataForm.current = 1
+      this.getDataList()
+    },
+    // 当前页
+    currentChangeHandle (val) {
+      this.dataForm.current = val
+      this.getDataList()
+    },
+    // 新增 / 修改
+    addOrUpdateHandle (val) {
+      this.addOrUpdateVisible = true
+      this.$nextTick(() => {
+        this.$refs.addOrUpdate.init(val)
+      })
+    },
+    // 删除
+    deleteHandle (id) {
+      this.$confirm(`确定进行删除操作?`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        this.$http({
+          url: this.$http.adornUrl('/engineering/auditPaths/delete'),
+          method: 'post',
+          data: (id)
+        }).then(({data}) => {
+          if (data && data.code === 0) {
+            this.$message({
+              message: '操作成功',
+              type: 'success',
+              duration: 600,
+              onClose: () => {
+                this.getDataList()
+              }
+            })
+          } else {
+            this.$message.error(data.msg)
+          }
+        })
+      }).catch(() => {
+      })
+    }
+  }
+}
+</script>

+ 2 - 1
vue.config.js

@@ -34,7 +34,8 @@ module.exports = {
     proxy: {
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
-        target: `http://192.168.137.1:9010`,
+        target: `http://192.168.2.7:9010`,
+        // target: `http://192.168.2.3:9010`,
         // target: `http://engineering.echepei.com:9010/`,
         changeOrigin: true,
         pathRewrite: {