Просмотр исходного кода

1、手续费结算、非跟单结算页面及功能
2、机构管理页面搜索的bug问题

lihongxiao 2 лет назад
Родитель
Сommit
938978c858

+ 2 - 2
config/dev.env.js

@@ -11,9 +11,9 @@ module.exports = merge(prodEnv, {
   // BASE_URL: '"http://192.168.0.115:8080/"' //凯森
   // BASE_URL: '"http:///192.168.0.106:8080/"',//屈晨
   // BASE_URL: '"http:///192.168.0.253:8080/"',//田智
-  // BASE_URL: '"http:///192.168.0.42:8080/"',//武鸿鹏
+  BASE_URL: '"http:///192.168.0.42:8080/"',//武鸿鹏
   // BASE_URL: '"http://192.168.1.101:8080/"',
-  BASE_URL: '"http:///192.168.0.22:8080/"',//郝宇
+  // BASE_URL: '"http:///192.168.0.22:8080/"',//郝宇
   // BASE_URL: '"http:///192.168.0.103:8080/"',//
 })
 

+ 5 - 3
src/components/TemplateTable/index.vue

@@ -185,7 +185,7 @@ export default {
       type: Object,
       default: () => ({
         pageNum: 1,
-        pageSize: 10,
+        pageSize: 20,
         totalSize: 0,
       }),
     },
@@ -206,7 +206,9 @@ export default {
     };
   },
   created() {
-    this.companyFun()
+    if(this.formList.length>0 && this.formList.find(val=>val.type=='company' || val.type=='companyCheck')){
+      this.companyFun()
+    }
   },
   mounted() {
     setTimeout(() => {
@@ -288,7 +290,7 @@ export default {
     handleSearchList() {
       // 更新父组件searchData
       this.pagination.pageNum = 1;
-      this.pagination.pageSize = 10;
+      this.pagination.pageSize = 20;
       this.$emit("handleSearchList", this.searchDataClone);
     },
     // 重置

+ 56 - 0
src/http/moudules/task.js

@@ -282,6 +282,13 @@ export const deptAccountPage = (data) => {
   })
 }
 
+export const sysDeptAccountPage = (data) => {
+  return axios({
+    url: '/sysDeptAccount/sysDeptAccountPage',
+    method: 'post',
+    data
+  })
+}
 // 账户余额分页查询
 export const findPageAccount = (data) => {
   return axios({
@@ -827,3 +834,52 @@ export const settlementTemplate = () => {
     method: "get",
   })
 }
+
+// 保险公司结算-手续费结算页面列表
+export const plyFeequery = (data) => {
+  return axios({
+    url: "/fnc/plyFee/query",
+    method: "post",
+    data
+  })
+}
+// 保险公司结算-手续费结算页面-结算接口
+export const plyFeebalance = (data) => {
+  return axios({
+    url: "/fnc/plyFee/balance",
+    method: "put",
+    data
+  })
+}
+// 保险公司结算-非跟单结算页面列表
+export const settlementFees = (data) => {
+  return axios({
+    url: "/fnc/SettlementFees/query",
+    method: "post",
+    data
+  })
+}
+// 保险公司结算-非跟单结算页面查询批量手续费结算
+export const totalQuery = (data) => {
+  return axios({
+    url: "/fnc/plyFee/totalQuery",
+    method: "post",
+    data
+  })
+}
+// 保险公司结算-非跟单结算页面批量手续费结算保存
+export const batchBalance = (data) => {
+  return axios({
+    url: "/fnc/plyFee/batchBalance",
+    method: "put",
+    data
+  })
+}
+// 保险公司结算-非跟单结算页面单行结算保存
+export const documentarySettle = (data) => {
+  return axios({
+    url: "/fnc/SettlementFees/documentarySettle",
+    method: "put",
+    data
+  })
+}

+ 1 - 1
src/views/AgreementManage/CarInsurance/AgreementEntry.vue

@@ -132,7 +132,7 @@
               </el-col>
               <el-col :span="12">
                 <el-form-item label="协议类型" prop="agreementType">
-                  <el-select disabled v-model="agreement.agreementType" placeholder="请选择协议类型" style="width: 100%"
+                  <el-select  v-model="agreement.agreementType" placeholder="请选择协议类型" style="width: 100%"
                     @change="agreementTypeChange">
                     <el-option v-for="item in agreementTypeoptions" :key="item.dictValue" :label="item.dictTag"
                       :value="item.dictValue"></el-option>

+ 364 - 0
src/views/FinancialManagement/CarInsurance/CompanySettlement/HandlingFees.vue

@@ -0,0 +1,364 @@
+<template>
+  <!--布局容器-->
+  <div class="container" style="width: 99%; margin-top: 0px">
+    <!-- <kt-common-table 
+    permsButton3="sys:handlingFees:balance"
+    :data="pageResult" 
+    :columns="columns"  
+    :button3Name="'结算'"
+    @handleButton3="balanceFun"
+    :showBatchDelete="false" 
+    @findPage="findPage" >
+    </kt-common-table> -->
+    <templateTable
+      :formList="formList"
+      :searchData.sync="searchData"
+      :tableConfig="tableConfig"
+      :data="tableData"
+      @findPage="findPage"
+      @handleSearchList="handleSearchList"
+      :pagination="pageData"
+    >
+    </templateTable>
+    <el-dialog
+      v-dialogDrag
+      title="结算"
+      :visible.sync="dialogVisible"
+      width="40%"
+      @close="closdialogVisible"
+    >
+    <el-form :model="formData" :rules="rules" ref="formData" :inline="true" label-width="130px" size="small">
+        <el-row>
+            <el-col :span="12">
+                <el-form-item label="凭证号" prop="voucherNumber">
+                    <el-input v-model="formData.voucherNumber" ></el-input>
+                </el-form-item>
+            </el-col>
+            <el-col :span="12">
+                <el-form-item label="合同号" prop="contractId">
+                    <el-input v-model="formData.contractId"></el-input>
+                </el-form-item>
+            </el-col>
+            <el-col :span="24">
+                <el-form-item label="合同附件"  prop="contractFileId" style="width: 50%">
+                    <el-upload
+                        v-model="formData.contractFileId"
+                        class="upload-demo"
+                        action=""
+                        name="DX_00"
+                        :show-file-list="false"
+                        :http-request="httpRequest"
+                        :before-upload="beforeAvatarUpload"
+                    >
+                    <el-button size="small" type="primary">点击上传</el-button>
+                    <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
+                    </el-upload>
+                    </el-form-item>
+            </el-col>
+        </el-row>
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisible = false">取 消</el-button>
+        <el-button size="small" type="primary" @click="submit('formData')">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+  <script>
+import KtCommonTable from "@/views/Core/KtCommonTable.vue";//表格组件
+import templateTable from '@/components/TemplateTable/index.vue'
+import { mapState } from 'vuex'
+
+export default {
+  name: "baosi",
+  components: { KtCommonTable,templateTable },
+  created() {
+  },
+  computed: {
+    ...mapState({
+      perms: state =>state.user.perms
+    })
+  },
+  data() {
+    return {
+      searchData:{},
+        formList:[
+        {
+          label: "订单号:",
+          prop: "orderno",
+          type: "input",
+        },{
+          label: "车牌号:",
+          prop: "licenseno",
+          type: "input",
+        },
+    ],
+    tableConfig:{
+        columns: [
+          {
+            prop: "orderno",
+            label: "子订单号",
+            type: "text"
+          },
+          {
+            prop: "noPolicyno",
+            label: "非车保单号",
+            type: "text"
+          },
+          {
+            prop: "syPolicyno",
+            label: "商业保单号",
+            type: "text"
+          },
+          {
+            prop: "policyno",
+            label: "交强保单号",
+            type: "text"
+          },
+          {
+            prop: "deptId",
+            label: "机构",
+            type: "text"
+          },
+          {
+            prop: "riskcode",
+            label: "险种",
+            type: "text"
+          },
+          {
+            prop: "payDate",
+            label: "出单时间",
+            type: "text"
+          },
+          {
+            prop: "Signdate",
+            label: "签单日期",
+            type: "text"
+          },
+          {
+            prop: "companyId",
+            label: "保险公司",
+            type: "text"
+          },{
+            prop: "agreementId",
+            label: "协议号",
+            type: "text"
+
+          },{
+            prop: "licenseno",
+            label: "车牌号",
+            type: "text"
+
+          },{
+            prop: "taxamount",
+            label: "车船税",
+            type: "text"
+          },{
+            prop: "noTaxPremium",
+            label: "不含税保费",
+            type: "text"
+          },{
+            prop: "commissionFeerate",
+            label: "手续费比例",
+            type: "text"
+
+          },{
+            prop: "otherFeerate",
+            label: "其他费用比例",
+            type: "text"
+
+          },{
+            prop: "commissionFeevalue",
+            label: "手续费金额",
+            type: "text"
+
+          },{
+            prop: "otherFeevalue",
+            label: "其他费用金额",
+            type: "text"
+
+          },{
+            prop: "allFeeValue",
+            label: "总费用",
+            type: "text"
+
+          },{
+            prop: "finalFeeValue",
+            label: "已结算费用",
+            type: "text"
+
+          },{
+            prop: "createTime",
+            label: "创建时间",
+            type: "text"
+          },{
+            prop: "voucherNumber",
+            label: "凭证号",
+            type: "text"
+          },{
+            prop: "contractId",
+            label: "合同号",
+            type: "text"
+          },{
+            prop: "handlingFeesStatus",
+            label: "手续费结算状态",
+            type: "statMap",
+            options:[{
+              value:'1',
+              label:'已结算'
+            },{
+              value:'0',
+              label:'未结算'
+            }]
+          }
+        ],
+        loading:true,
+        isPaginationShow:true,
+        isShowIndex: true,
+        optBtns:[
+        {
+            type:'primary',
+            label:'结算',
+            perm:'sys:handlingFees:balance',
+            hide:(row)=>{
+              return !row.handlingFeesStatus == 1?true:false
+            },
+            click:(row, index) => {return this.balanceFun(row)},
+        }
+        ]
+    },
+    tableData: [],
+      formData: {},
+      dialogVisible: false,
+      pageData:{
+        pageNum: 1,
+        pageSize: 20,
+        agreementType: 2
+      },
+      formData:{},
+      rules: {
+        voucherNumber: [
+            { required: true, message: '请输入凭证号', trigger: 'blur' },
+          ],
+          contractId: [
+            { required: true, message: '请输入合同号', trigger: 'blur' },
+          ],
+          contractFileId: [
+            { required: true, message: '请上传合同', trigger: 'blur' },
+          ],
+      }
+    };
+  },
+  created(){
+    this.findPage();
+  },
+  methods: {
+    // 查询
+    handleSearchList() {
+      this.findPage();
+    },
+    //列表数据
+    findPage(data) {
+      this.tableConfig.loading = true;
+      this.$api.task
+        .plyFeequery(this.pageData, )
+        .then(res => {
+          if (res.data) {
+            // res.data.content.forEach(val=>val.handlingFeesStatus=val.handlingFeesStatus==1?'已结算':'未结算')
+            this.tableData = res.data.content;
+            this.pageData.pageNum = res.data.pageNum;
+            this.pageData.pageSize = res.data.pageSize;
+            this.pageData.totalSize = res.data.totalSize;
+            this.tableConfig.loading = false;
+          }
+        });
+    },
+    closdialogVisible() {
+      this.dialogVisible = false;
+    },
+    // 结算
+    balanceFun(row){
+        this.formData={
+            voucherNumber:'',
+            contractId:'',
+            contractFileId:'',
+            orderno:row.orderno,
+            policyno:row.policyno,
+            commissionFeevalue:row.commissionFeevalue,
+        }
+        this.dialogVisible=true
+       
+    },
+     // 上传图片的方法Start
+     beforeAvatarUpload(file) {
+      var testmsg = file.name.substring(file.name.lastIndexOf(".") + 1);
+      const extension = testmsg === "pdf";//限制只能上传pdf文件,否则阻止上传
+      const extension1 = testmsg === "docx";//限制只能上传pdf文件,否则阻止上传
+      const extension2 = testmsg === "doc";//限制只能上传pdf文件,否则阻止上传
+      if (!extension && !extension1 && !extension2 ) {
+        this.$message({
+          message: "只允许上传PDF和Word文件!",
+          type: "warning",
+        });
+      }
+      return extension && extension1 && extension2
+    },
+    //上传影像
+    httpRequest(options) {
+      let file = options.file;
+      const params = new FormData(); // 声明formData数据类型
+      params.append("multipartFile", file);
+      params.append("type", 'settle');
+      this.$api.letter.uploadFile(params).then(res => {
+        if (res.code == "200") {
+            this.$message({
+                message: '上传成功',
+                type: 'success'
+            })
+            this.formData.contractFileId=res.data.id
+        }
+        else{
+            this.$message.error(res.msg)
+        }
+      });
+    },
+    submit(formData){
+        this.$refs[formData].validate((valid) => {
+          if (valid) {
+            this.$api.task.plyFeebalance({...this.formData,id:this.formData.contractFileId}).then(res => {
+            if (res.code == "200") {
+                this.$message({
+                    message: res.msg,
+                    type: 'success'
+                })
+                this.dialogVisible=false
+                this.findPage()
+            }
+            else{
+                this.$message.error(res.msg)
+            }
+            });
+            } else {
+                return false;
+            }
+        });
+       
+        
+    },
+    tablePageChange(val) {
+      this.pageData.pageSize = val;
+      this.findPage();
+    },
+    tableCurrentChange(val) {
+      this.pageData.pageNum = val;
+      this.findPage();
+    },
+  
+  }
+};
+</script>
+    
+  <style scoped>
+
+</style>
+    

+ 315 - 0
src/views/FinancialManagement/CarInsurance/CompanySettlement/NonDocumentary.vue

@@ -0,0 +1,315 @@
+<template>
+  <!--布局容器-->
+  <div class="container" style="width: 99%; margin-top: 0px">
+    <templateTable
+      :btnGroup="btnGroup"
+      :formList="formList"
+      :tableConfig="tableConfig"
+      :data="tableData"
+      @findPage="findPage"
+      @handleSearchList="handleSearchList"
+      :pagination="pageData"
+    ></templateTable>
+    <el-dialog
+      v-dialogDrag
+      title="结算"
+      :visible.sync="dialogVisible"
+      width="45%"
+      @close="closdialogVisible"
+    >
+      <el-form
+        :model="formData"
+        :rules="rules"
+        ref="formData"
+        :inline="true"
+        label-width="80px"
+        size="small"
+      >
+        <el-row>
+          <el-col :span="10">
+            <el-form-item label="开始时间" prop="startDate">
+              <el-date-picker
+                v-model="formData.startDate"
+                type="date"
+                value-format="yyyy-MM-dd"
+                placeholder="选择日期时间"
+              ></el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="10">
+            <el-form-item label="结束时间" prop="endDate">
+              <el-date-picker
+                v-model="formData.endDate"
+                type="date"
+                value-format="yyyy-MM-dd"
+                placeholder="选择日期时间"
+              ></el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="2">
+            <el-form-item>
+              <el-button type="primary" @click="handlingFeesFun()">查询</el-button>
+            </el-form-item>
+          </el-col>
+          <el-col :span="10" prop="settlementAmount">
+            <el-form-item label="结算金额" prop="settlementAmount">
+              <el-input v-model="formData.settlementAmount" style="width: 220px;"></el-input>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+
+      <el-table
+        ref="singleTable"
+        :data="protocolTableData"
+        highlight-current-row
+        border
+        class="table_wrapper"
+        @select="selectClick"
+        style="width: 100%"
+        :header-cell-class-name="cellClass"
+      >
+        <el-table-column type="selection" width="55" />
+        <el-table-column type="index" label="序号" align="center" width="50"></el-table-column>
+        <el-table-column label="总金额" align="center" prop="totAmount"></el-table-column>
+        <el-table-column label="总单数" align="center" prop="totalorders"></el-table-column>
+      </el-table>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisible = false">取 消</el-button>
+        <el-button size="small" type="primary" @click="submit('formData')">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+    <script>
+import templateTable from "@/components/TemplateTable/index.vue";
+import { mapState } from "vuex";
+
+export default {
+  name: "baosi",
+  components: { templateTable },
+  created() {},
+  computed: {
+    ...mapState({
+      perms: state => state.user.perms
+    })
+  },
+  data() {
+    return {
+      formList: [
+        {
+          label: " 结算金额:",
+          prop: "settlementAmount",
+          type: "input"
+        }
+      ],
+      btnGroup: [
+        {
+          name: "批量手续费结算",
+          click: () => {
+            return this.addSettlement();
+          }
+        }
+      ],
+    
+      tableConfig: {
+        columns: [
+          {
+            prop: "totalOrders",
+            label: "结算单数",
+            type: "text"
+          },
+          {
+            prop: "totalAmount",
+            label: "结算总金额",
+            type: "text"
+          },
+          {
+            prop: "startTime",
+            label: "开始时间",
+            type: "text"
+          },
+          {
+            prop: "endTime",
+            label: "结束时间",
+            type: "text"
+          },
+          {
+            prop: "settlementAmount",
+            label: "结算金额",
+            type: "text"
+          },
+
+          {
+            prop: "unsettledAmount",
+            label: "未结算金额",
+            type: "text"
+          }
+        ],
+        loading: true,
+        isPaginationShow: true,
+        isShowIndex: true,
+        operationWidth:'50',
+        optBtns:[
+        {
+            type:'primary',
+            label:'结算',
+            perm:'sys:nonDocumentary:balance',
+            click:(row, index) => {return this.balanceFun(row)},
+        }
+        ],
+      },
+      tableData: [],
+      formData: {},
+      dialogVisible: false,
+      pageData: {
+        pageNum: 1,
+        pageSize: 20
+      },
+      rules: {
+        startDate: [
+          { required: true, message: "请输入开始时间", trigger: "blur" }
+        ],
+        endDate: [
+          { required: true, message: "请输入结束时间", trigger: "blur" }
+        ],
+        settlementAmount: [
+          { required: true, message: "请输入结算金额", trigger: "blur" }
+        ],
+      },
+      protocolTableData: [],
+      toggleSelection:{}
+    };
+  },
+  created() {
+    this.findPage();
+  },
+  methods: {
+    // 查询
+    handleSearchList() {
+      this.findPage();
+    },
+    //列表数据
+    findPage(data) {
+      this.tableConfig.loading = true;
+      this.$api.task.settlementFees(this.pageData).then(res => {
+        if (res.data) {
+          this.tableData = res.data.content;
+          this.pageData.pageNum = res.data.pageNum;
+          this.pageData.pageSize = res.data.pageSize;
+          this.pageData.totalSize = res.data.totalSize;
+          this.tableConfig.loading = false;
+        }
+      });
+    },
+    // 新增
+    addSettlement() {
+      this.formData={}
+      this.dialogVisible = true;
+    },
+    closdialogVisible() {
+      this.dialogVisible = false;
+    },
+
+    submit(formData) {
+      this.$refs[formData].validate(valid => {
+        if (valid) {
+          this.$api.task
+            .batchBalance({
+              ...this.toggleSelection,
+              ... this.formData,
+            })
+            .then(res => {
+              if (res.code == "200") {
+                this.$message({
+                  message: res.msg,
+                  type: "success"
+                });
+                this.dialogVisible = false;
+                this.findPage();
+              } else {
+                this.$message.error(res.msg);
+              }
+            });
+        } else {
+          return false;
+        }
+      });
+    },
+    tablePageChange(val) {
+      this.pageData.pageSize = val;
+      this.findPage();
+    },
+    tableCurrentChange(val) {
+      this.pageData.pageNum = val;
+      this.findPage();
+    },
+    selectClick(selection, row) {
+      if(selection.length==1){
+        this.toggleSelection={
+          totAmount:selection[0].totAmount,
+          totalorders:selection[0].totalorders,
+        }
+      }
+      if (selection.length > 1) {
+        let del_row = selection.shift();
+        this.$refs.singleTable.toggleRowSelection(del_row, false); // 用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中);第二个参数为true时又变成了多选
+        this.toggleSelection=del_row
+      }
+    },
+    cellClass(row) {
+      if (row.columnIndex === 0) {
+        return 'disabledCheck';
+      }
+    },
+    // 新增里的查询
+    handlingFeesFun() {
+      if(this.formData.startDate && this.formData.endDate){
+          this.$api.task
+          .totalQuery({ ...this.formData, agreementtype: 2 })
+          .then(res => {
+            if (res.code == "200") {
+              this.protocolTableData = res.data.content;
+            } else {
+              this.$message.error(res.msg);
+            }
+          });
+      }
+      else{
+        this.$message.error('请输入开始时间与结束时间进行查询!');
+      }
+    },
+    balanceFun(row){
+      this.$prompt('请输入结算金额', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          inputPattern: /^\d+(.\d{1,2})?$/,
+          inputErrorMessage: '请输入结算金额'
+        }).then(({ value }) => {
+          this.$api.task
+          .documentarySettle({ id:row.id,settlementAmount:value})
+          .then(res => {
+            if (res.code == "200") {
+              this.$message({
+                type: 'success',
+                message: res.msg
+              });
+            this.findPage();
+            } else {
+              this.$message.error(res.msg);
+            }
+          });
+        })
+    }
+  }
+};
+</script>
+      
+<style scoped lang="scss">
+.table_wrapper  {
+  /deep/ .disabledCheck .cell {
+    visibility: hidden;
+  }
+}
+</style>
+      

+ 50 - 42
src/views/FinancialManagement/CarInsurance/DeptSettlement/QueryBalance.vue

@@ -5,7 +5,6 @@
         <!-- 左侧树Start -->
         <SplitArea :size="leftSplitWidth" :minSize="240">
           <div>
-            <el-checkbox v-model="containsSubDeptChecked">包含下级机构</el-checkbox>
             <el-divider></el-divider>
             <tree :setting="ztreeSetting" :nodes="ztreeNodes" @onClick="onZTreeClick" @onCreated="onZTreeCreated"/>
           </div>
@@ -39,7 +38,30 @@
               </el-form>
             </el-row> -->
             <!-- 筛选区域End -->
-
+            <el-row >
+              <el-form ref="queryFormRef" :model="pageRequest" label-width="80px">
+              <el-col :span="5">
+                <el-form-item label="机构名称">
+                <el-input
+                  clearable
+                  size="small"
+                  placeholder="机构名称"
+                  v-model="pageRequest.deptName"
+                ></el-input>
+              </el-form-item>
+              </el-col>
+              <el-col :span="4">
+                <el-form-item label="">
+                  <el-button
+                    size="small"
+                    type="primary"
+                    @click="queryStaffInfo"
+                    >查询</el-button
+                  >
+                </el-form-item>
+                </el-col>
+              </el-form>
+            </el-row>
             <!-- 审核通过 -->
               <kt-common-table :showOperation="false" :data="pageResult" :columns="columns"   :showBatchDelete="false" @findPage="findPage" >
               </kt-common-table>
@@ -65,16 +87,14 @@
     },
     data() {
       return {
-        peopleid:"",
-        peopledeptid:"",
-
+        // peopleid:"",
+        // peopledeptId:"",
         /**Split 开始 */
         leftSplitWidth: 20,
         rightSplitWidth: 80,
         /**Split 结束 */
 
         //----ztreeLeft begin---------
-        containsSubDeptChecked: true, //是否包含下级机构
         ztreeObj: null,
         ztreeSetting: {
           check: {
@@ -101,24 +121,17 @@
         pageRequest: {  //查询的默认条件
           pageNum: 1,
           pageSize: 20,
-          columnFilters: {
-            "deptid": {
-              "name": "deptid",
-              "value": ''
-            },
-            "containsSubDept": {
-              "name": "containsSubDept",
-              "value": 1
-            }
-          }
+          deptId:JSON.parse(localStorage.getItem('user_data')).deptId  ,
         },
         columns: [  // 数据列
-          { prop: "deptid",label: "机构编码",minWidth: 80,sortable: false},
-          { prop: "deptName",label: "机构名称",minWidth: 80,sortable: false,formatter:this.companyNameFormatter},
-          { prop: "accountBalance",label: "可提现余额",minWidth: 80,sortable: false},
+          { prop: "deptId",label: "机构编码",minWidth: 80,sortable: false},
+          // { prop: "deptName",label: "机构名称",minWidth: 80,sortable: false,formatter:this.companyNameFormatter},
+          { prop: "deptName",label: "机构名称",minWidth: 80,sortable: false,},
+          { prop: "managementFee",label: "可提现余额",minWidth: 80,sortable: false},
           { prop: "applyAmount",label: "提现中金额",minWidth: 80,sortable: false},
           { prop: "payamount",label: "已提现金额",minWidth: 100,sortable: false},
-          { prop: "totalAmount",label: "累计提现",minWidth: 100,sortable: false}
+          { prop: "totalAmount",label: "累计提现",minWidth: 100,sortable: false},
+          { prop: "createTime",label: "创建时间",minWidth: 100,sortable: false}
         ],
         // 右侧列表查询数据End
 
@@ -134,14 +147,14 @@
       }
     },
     created() {
-      this.peopleid = Cookies.get('user');
-      if(this.peopleid!='admin'){
-        this.peopledeptid = Cookies.get('user').split('D')[0];
-        this.pageRequest.columnFilters.deptid.value = this.peopledeptid;
-      }else{
-        this.peopledeptid = '9';
-        this.pageRequest.columnFilters.deptid.value = this.peopledeptid;
-      }
+      // this.peopleid = Cookies.get('user');
+      // if(this.peopleid!='admin'){
+      //   this.peopledeptId = Cookies.get('user').split('D')[0];
+      //   this.pageRequest.columnFilters.deptId.value = this.peopledeptId;
+      // }else{
+      //   this.peopledeptId = '9';
+      //   this.pageRequest.columnFilters.deptId.value = this.peopledeptId;
+      // }
       //获取所有下拉框数据(字典)
       this.findLeftTreeData();// 获取机构树的数据
     },
@@ -149,12 +162,6 @@
       //用像素初始化左边的split的宽度
       this.changeTreeWidth(240);// 初始化树的宽度
     },
-    watch:{
-      containsSubDeptChecked(){ // 监听是否包含下级
-        this.pageRequest.columnFilters.containsSubDept.value = this.containsSubDeptChecked ? "1" : "0";
-        this.findPage();
-      }
-    },
     methods: {
       /**Split 开始 */
       changeTreeWidth(widthVal){
@@ -167,7 +174,7 @@
       //--left tree start-------
       findLeftTreeData: function() {
         // 获取数据
-        this.$api.dept.findLeftDeptTree(this.peopledeptid).then(res => {
+        this.$api.dept.findTree().then(res => {
           this.ztreeNodes = res.data;
         });
       },
@@ -180,21 +187,18 @@
       onZTreeClick: function(evt, treeId, treeNode) {
         // 点击事件
         this.currentTreeNode = treeNode;
-        this.pageRequest.columnFilters.deptid.value = this.currentTreeNode.id;
+        this.pageRequest.deptId = this.currentTreeNode.id;
         this.findPage();
       },
       //--left tree end-------
 	  
 	  companyNameFormatter(row, column){
-	  	let companyId = row.deptid;
+	  	let companyId = row.deptId;
 	  	return CommonUtil.getDataName({dataList: this.ztreeNodes, value: 'id', label: 'name', data: companyId})
 	  },
 
       // 查询Start
       queryStaffInfo(val){
-        // this.pageRequest.columnFilters.id.value = this.queryFrom.id;
-        // this.pageRequest.columnFilters.name.value = this.queryFrom.name;
-        // this.pageRequest.columnFilters.mobile.value = this.queryFrom.tel;
         this.pageRequest.pageNum = 1;
         this.findPage();
       },
@@ -207,9 +211,13 @@
           this.pageRequest.pageNum = data.pageRequest.pageNum;
           this.pageRequest.pageSize = data.pageRequest.pageSize;
         }
-         this.$api.task.deptAccountPage(this.pageRequest).then((res) => {
-           console.log(res.data)
+         this.$api.task.sysDeptAccountPage(this.pageRequest).then((res) => {
+          res.data.pageNum=res.data.current
+          res.data.pageSize=res.data.size
+          res.data.totalSize=res.data.total
+           res.data.content= res.data.records
           this.pageResult = res.data;
+
         }).then(data != null ? data.callback : '')
       },
       // 右侧列表的方法End

+ 363 - 0
src/views/FinancialManagement/CarInsurance/PlatformSettlement/HandlingFees.vue

@@ -0,0 +1,363 @@
+<template>
+  <!--布局容器-->
+  <div class="container" style="width: 99%; margin-top: 0px">
+    <!-- <kt-common-table 
+    permsButton3="sys:handlingFees:balance"
+    :data="pageResult" 
+    :columns="columns"  
+    :button3Name="'结算'"
+    @handleButton3="balanceFun"
+    :showBatchDelete="false" 
+    @findPage="findPage" >
+    </kt-common-table> -->
+    <templateTable
+      :formList="formList"
+      :searchData.sync="searchData"
+      :tableConfig="tableConfig"
+      :data="tableData"
+      @findPage="findPage"
+      @handleSearchList="handleSearchList"
+      :pagination="pageData"
+    >
+    </templateTable>
+    <el-dialog
+      v-dialogDrag
+      title="结算"
+      :visible.sync="dialogVisible"
+      width="40%"
+      @close="closdialogVisible"
+    >
+    <el-form :model="formData" :rules="rules" ref="formData" :inline="true" label-width="130px" size="small">
+        <el-row>
+            <el-col :span="12">
+                <el-form-item label="凭证号" prop="voucherNumber">
+                    <el-input v-model="formData.voucherNumber" ></el-input>
+                </el-form-item>
+            </el-col>
+            <el-col :span="12">
+                <el-form-item label="合同号" prop="contractId">
+                    <el-input v-model="formData.contractId"></el-input>
+                </el-form-item>
+            </el-col>
+            <el-col :span="24">
+                <el-form-item label="合同附件"  prop="contractFileId" style="width: 50%">
+                    <el-upload
+                        v-model="formData.contractFileId"
+                        class="upload-demo"
+                        action=""
+                        name="DX_00"
+                        :show-file-list="false"
+                        :http-request="httpRequest"
+                        :before-upload="beforeAvatarUpload"
+                    >
+                    <el-button size="small" type="primary">点击上传</el-button>
+                    <div slot="tip" class="el-upload__tip">只能上传jpg/png文件,且不超过500kb</div>
+                    </el-upload>
+                    </el-form-item>
+            </el-col>
+        </el-row>
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisible = false">取 消</el-button>
+        <el-button size="small" type="primary" @click="submit('formData')">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+  <script>
+import KtCommonTable from "@/views/Core/KtCommonTable.vue";//表格组件
+import templateTable from '@/components/TemplateTable/index.vue'
+import { mapState } from 'vuex'
+
+export default {
+  name: "baosi",
+  components: { KtCommonTable,templateTable },
+  created() {
+  },
+  computed: {
+    ...mapState({
+      perms: state =>state.user.perms
+    })
+  },
+  data() {
+    return {
+      searchData:{},
+        formList:[
+        {
+          label: "订单号:",
+          prop: "orderno",
+          type: "input",
+        },{
+          label: "车牌号:",
+          prop: "licenseno",
+          type: "input",
+        },
+    ],
+    tableConfig:{
+        columns: [
+          {
+            prop: "orderno",
+            label: "子订单号",
+            type: "text"
+          },
+          {
+            prop: "noPolicyno",
+            label: "非车保单号",
+            type: "text"
+          },
+          {
+            prop: "syPolicyno",
+            label: "商业保单号",
+            type: "text"
+          },
+          {
+            prop: "policyno",
+            label: "交强保单号",
+            type: "text"
+          },
+          {
+            prop: "deptId",
+            label: "机构",
+            type: "text"
+          },
+          {
+            prop: "riskcode",
+            label: "险种",
+            type: "text"
+          },
+          {
+            prop: "payDate",
+            label: "出单时间",
+            type: "text"
+          },
+          {
+            prop: "Signdate",
+            label: "签单日期",
+            type: "text"
+          },
+          {
+            prop: "companyId",
+            label: "保险公司",
+            type: "text"
+          },{
+            prop: "agreementId",
+            label: "协议号",
+            type: "text"
+
+          },{
+            prop: "licenseno",
+            label: "车牌号",
+            type: "text"
+
+          },{
+            prop: "taxamount",
+            label: "车船税",
+            type: "text"
+          },{
+            prop: "noTaxPremium",
+            label: "不含税保费",
+            type: "text"
+          },{
+            prop: "commissionFeerate",
+            label: "手续费比例",
+            type: "text"
+
+          },{
+            prop: "otherFeerate",
+            label: "其他费用比例",
+            type: "text"
+
+          },{
+            prop: "commissionFeevalue",
+            label: "手续费金额",
+            type: "text"
+
+          },{
+            prop: "otherFeevalue",
+            label: "其他费用金额",
+            type: "text"
+
+          },{
+            prop: "allFeeValue",
+            label: "总费用",
+            type: "text"
+
+          },{
+            prop: "finalFeeValue",
+            label: "已结算费用",
+            type: "text"
+
+          },{
+            prop: "createTime",
+            label: "创建时间",
+            type: "text"
+          },{
+            prop: "voucherNumber",
+            label: "凭证号",
+            type: "text"
+          },{
+            prop: "contractId",
+            label: "合同号",
+            type: "text"
+          },{
+            prop: "handlingFeesStatus",
+            label: "手续费结算状态",
+            type: "statMap",
+            options:[{
+              value:'1',
+              label:'已结算'
+            },{
+              value:'0',
+              label:'未结算'
+            }]
+          }
+        ],
+        loading:true,
+        isPaginationShow:true,
+        isShowIndex: true,
+        optBtns:[
+        {
+            type:'primary',
+            label:'结算',
+            perm:'sys:handlingFees:balance',
+            hide:(row)=>{
+              return !row.handlingFeesStatus == 1?true:false
+            },
+            click:(row, index) => {return this.balanceFun(row)},
+        }
+        ]
+    },
+    tableData: [],
+      formData: {},
+      dialogVisible: false,
+      pageData:{
+        pageNum: 1,
+        pageSize: 20,
+        agreementType: 1
+      },
+      formData:{},
+      rules: {
+        voucherNumber: [
+            { required: true, message: '请输入凭证号', trigger: 'blur' },
+          ],
+          contractId: [
+            { required: true, message: '请输入合同号', trigger: 'blur' },
+          ],
+          contractFileId: [
+            { required: true, message: '请上传合同', trigger: 'blur' },
+          ],
+      }
+    };
+  },
+  created(){
+    this.findPage();
+  },
+  methods: {
+    // 查询
+    handleSearchList() {
+      this.findPage();
+    },
+    //列表数据
+    findPage(data) {
+      this.tableConfig.loading = true;
+      this.$api.task
+        .plyFeequery(this.pageData, )
+        .then(res => {
+          if (res.data) {
+            this.tableData = res.data.content;
+            this.pageData.pageNum = res.data.pageNum;
+            this.pageData.pageSize = res.data.pageSize;
+            this.pageData.totalSize = res.data.totalSize;
+            this.tableConfig.loading = false;
+          }
+        });
+    },
+    closdialogVisible() {
+      this.dialogVisible = false;
+    },
+    // 结算
+    balanceFun(row){
+        this.formData={
+            voucherNumber:'',
+            contractId:'',
+            contractFileId:'',
+            orderno:row.orderno,
+            policyno:row.policyno,
+            commissionFeevalue:row.commissionFeevalue,
+        }
+        this.dialogVisible=true
+       
+    },
+     // 上传图片的方法Start
+     beforeAvatarUpload(file) {
+      var testmsg = file.name.substring(file.name.lastIndexOf(".") + 1);
+      const extension = testmsg === "pdf";//限制只能上传pdf文件,否则阻止上传
+      const extension1 = testmsg === "docx";//限制只能上传pdf文件,否则阻止上传
+      const extension2 = testmsg === "doc";//限制只能上传pdf文件,否则阻止上传
+      if (!extension && !extension1 && !extension2 ) {
+        this.$message({
+          message: "只允许上传PDF和Word文件!",
+          type: "warning",
+        });
+      }
+      return extension && extension1 && extension2
+    },
+    //上传影像
+    httpRequest(options) {
+      let file = options.file;
+      const params = new FormData(); // 声明formData数据类型
+      params.append("multipartFile", file);
+      params.append("type", 'settle');
+      this.$api.letter.uploadFile(params).then(res => {
+        if (res.code == "200") {
+            this.$message({
+                message: '上传成功',
+                type: 'success'
+            })
+            this.formData.contractFileId=res.data.id
+        }
+        else{
+            this.$message.error(res.msg)
+        }
+      });
+    },
+    submit(formData){
+        this.$refs[formData].validate((valid) => {
+          if (valid) {
+            this.$api.task.plyFeebalance({...this.formData,id:this.formData.contractFileId}).then(res => {
+            if (res.code == "200") {
+                this.$message({
+                    message: res.msg,
+                    type: 'success'
+                })
+                this.dialogVisible=false
+                this.findPage()
+            }
+            else{
+                this.$message.error(res.msg)
+            }
+            });
+            } else {
+                return false;
+            }
+        });
+       
+        
+    },
+    tablePageChange(val) {
+      this.pageData.pageSize = val;
+      this.findPage();
+    },
+    tableCurrentChange(val) {
+      this.pageData.pageNum = val;
+      this.findPage();
+    },
+  
+  }
+};
+</script>
+    
+  <style scoped>
+
+</style>
+    

+ 185 - 0
src/views/FinancialManagement/WithdrawalManagement/WithdrawalProcedures.vue

@@ -0,0 +1,185 @@
+<template>
+  <div>
+    <el-main ref="elMain" style="padding: 0px;">
+      <el-row>
+        <el-form
+          :inline="true"
+          :model="queryForm"
+          class="demo-form-inline"
+          label-width="130px"
+          size="small"
+        >
+          <el-form-item label="业务员工号">
+            <el-input v-model="queryForm.userId" placeholder="业务员工号" clearable></el-input>
+          </el-form-item>
+          <el-form-item label="提现单号">
+            <el-input v-model="queryForm.id" placeholder="提现单号" clearable></el-input>
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" size="small" @click="findPage">查询</el-button>
+          </el-form-item>
+        </el-form>
+      </el-row>
+      <kt-common-table
+        button2Type="text"
+        button3Type="text"
+        :showBatchDelete="false"
+        :showBatchPrint="true"
+        permsButton3="sys:balanceWithdrawalnotpay:examine"
+        permsButton2="sys:balanceWithdrawalnotpay:examinepay"
+        :data="pageResult"
+        :columns="columns"
+        @findPage="findPage"
+        button3Name="审核并支付"
+        @handleButton3="handleButton3"
+        button2Name="审核提现"
+        @handleButton2="handleButton2"
+      ></kt-common-table>
+    </el-main>
+  </div>
+</template>
+  <script>
+import Cookies from "js-cookie";
+import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import KtButton from "@/views/Core/KtButton";
+import CommonUtil from "@/utils/comutil.js";
+export default {
+  components: {
+    KtCommonTable,
+    KtButton
+  },
+  data() {
+    return {
+      // 右侧列表查询数据Start
+      queryForm: {},
+      pageResult: {},
+      pageRequest: {
+        //查询的默认条件
+        pageNum: 1,
+        pageSize: 10,
+        auditingStatus: "2"
+      },
+      columns: [
+        //数据列
+        { prop: "id", label: "提现单号" },
+        { prop: "userId", label: "业务员工号" },
+        { prop: "userName", label: "业务员姓名" },
+        { prop: "deptId", label: "机构代码" },
+        { prop: "deptName", label: "机构名称" },
+        { prop: "userAmount ", label: "可提现账户余额" },
+        { prop: "amount", label: "提现金额" },
+        { prop: "surplusAmount", label: "账户余额" },
+        { prop: "bankAccount", label: "开户行" },
+        { prop: "bankNumber", label: "账号" },
+        { prop: "createTime", label: "提现时间" }
+      ],
+    };
+  },
+  created() {
+  },
+  mounted() {},
+  methods: {
+    handlePrint(index, row) {
+      this.$api.task.AmountReview(this.pageRequest).then(res => {
+        console.log(res);
+        let blob = new Blob([res], {
+          type: "application/vnd.ms-excel"
+        }); // 2.获取请求返回的response对象中的blob 设置文件类型,这里以excel为例
+        let url = window.URL.createObjectURL(blob); // 3.创建一个临时的url指向blob对象
+        // 4.创建url之后可以模拟对此文件对象的一系列操作,例如:预览、下载
+        let a = document.createElement("a");
+        a.href = url;
+        a.download = "提现待支付清单.xlsx";
+        a.click();
+        // 5.释放这个临时的对象url
+        window.URL.revokeObjectURL(url);
+      });
+    },
+    // 右侧列表的方法Start
+    findPage(data) {
+      // 获取分页数据
+      let that = this;
+      if (data && data.pageRequest) {
+        this.pageRequest.pageNum = data.pageRequest.pageNum;
+        this.pageRequest.pageSize = data.pageRequest.pageSize;
+      }
+      that.$api.task
+        .payqueryPage({ ...this.pageRequest, ...this.queryForm,amountStatus:'1' })
+        .then(res => {
+          if (res.code == 200) {
+            that.pageResult = res.data;
+          }
+        })
+        .then(data != null ? data.callback : "");
+    },
+    handleButton2({ row, index }) {
+      this.$api.task.AmountReview(row).then(res => {
+        if (res.code == 200) {
+          this.$message({
+            type: "success",
+            message: res.msg
+          });
+          this.findPage();
+        }
+      });
+    },
+    handleButton3({ row, index }) {
+      let auditid = Cookies.get("user"); // 放置token到Cookie
+      let auditname = Cookies.get("name"); // 放置token到Cookie
+      this.$confirm("是否确认审核并线下支付?", "提示", {})
+        .then(() => {
+          var data = {
+            applyno: row.applyno,
+            applystatus: "2",
+            auditid: auditid,
+            auditname: auditname,
+            paytime: this.formatTime(new Date().getTime(), "Y-M-D h:m:s")
+          };
+          this.$api.task.insPayApplyAudit(data).then(res => {
+            this.dialogVisible = false;
+            this.findPage(null);
+            this.$message({
+              type: "success",
+              message: "已提交"
+            });
+          });
+        })
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "已取消审核"
+          });
+        });
+    },
+
+    // 格式化日期,如月、日、时、分、秒保证为2位数
+    formatNumber(n) {
+      n = n.toString();
+      return n[1] ? n : "0" + n;
+    },
+    // 参数number为毫秒时间戳,format为需要转换成的日期格式
+    formatTime(number, format) {
+      let time = new Date(number);
+      let newArr = [];
+      let formatArr = ["Y", "M", "D", "h", "m", "s"];
+      newArr.push(time.getFullYear());
+      newArr.push(this.formatNumber(time.getMonth() + 1));
+      newArr.push(this.formatNumber(time.getDate()));
+
+      newArr.push(this.formatNumber(time.getHours()));
+      newArr.push(this.formatNumber(time.getMinutes()));
+      newArr.push(this.formatNumber(time.getSeconds()));
+
+      for (let i in newArr) {
+        format = format.replace(formatArr[i], newArr[i]);
+      }
+      return format;
+    }
+  }
+};
+</script>
+  
+  
+  <style scoped>
+</style>
+  

+ 2 - 1
src/views/PeopleManage/Player/RegionPerformanceManage.vue

@@ -333,7 +333,7 @@
         if (data && data.pageRequest) {
           this.formData.pageNum = data.pageRequest.pageNum;
           this.formData.pageSize = data.pageRequest.pageSize;
-        }
+        }   
         let areaCode=''
         if(this.formData.areaCode && this.formData.areaCode.length>0){
            this.formData.level=this.$refs['area'].getCheckedNodes()[0].level
@@ -342,6 +342,7 @@
         else{
           this.formData.areaCode=''
           this.formData.level=''
+
         }
         this.loading = true;
         let res=await this.$api.user.quUserNumList({...this.formData,userId: this.userId,areaCode })

+ 2 - 2
src/views/PeopleManage/Staff/StaffManage.vue

@@ -219,7 +219,7 @@
         </el-tab-pane>
         <el-tab-pane label="详细信息" name="2">
           <el-form :model="formDataDetail" :rules="formDataRulesDetail" ref="formDataDetail" :inline="true"
-           label-width="130px" size="small">
+           label-width="100px" size="small">
             <el-row>
               <el-col :span="8">
                 <el-form-item label="开户账号" prop="accountno">
@@ -765,7 +765,7 @@ export default {
       }
       this.formData = {
         roleId: '22',
-        status: '',
+        status: '2',
         leaderId: "",
         deptId: this.deptId
       }

+ 2 - 2
src/views/Sys/Deptall.vue

@@ -44,8 +44,8 @@
               ></el-input>
             </el-form-item>
             <el-form-item label="来源:">
-              <el-select v-model="managementSource" placeholder="选择来源" v-for="val in organizationSourceoptions" :key="val.dictValue">
-                <el-option  :label="val.dictTag" :value="val.dictValue"></el-option>
+              <el-select v-model="managementSource" placeholder="选择来源" >
+                <el-option v-for="val in organizationSourceoptions" :key="val.dictValue" :label="val.dictTag" :value="val.dictValue"></el-option>
               </el-select>
             </el-form-item>
             <el-form-item>