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

Merge branch 'dev' of http://www.baoxianzhanggui.com:8090/sxzgd/vue-insagent-pc into dev

@dongkboy 2 лет назад
Родитель
Сommit
3c198b021c
21 измененных файлов с 3571 добавлено и 682 удалено
  1. 2 2
      config/dev.env.js
  2. 8 0
      src/http/moudules/letter.js
  3. 127 0
      src/http/moudules/task.js
  4. 303 0
      src/views/AgreementManage/CarInsurance/BacklineAllocation.vue
  5. 266 0
      src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/DocumentaryFees.vue
  6. 366 0
      src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/HandlingFees.vue
  7. 266 0
      src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/DocumentaryFees.vue
  8. 3 1
      src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/HandlingFees.vue
  9. 0 315
      src/views/FinancialManagement/CarInsurance/CompanySettlement/NonDocumentary.vue
  10. 365 0
      src/views/FinancialManagement/CarInsurance/PlatformSettlement/CarInsuranceBalance.vue
  11. 365 0
      src/views/FinancialManagement/CarInsurance/PlatformSettlement/NonVehicleBalance.vue
  12. 20 2
      src/views/PeopleManage/Agent/AgentExamine.vue
  13. 18 3
      src/views/PeopleManage/Agent/AgentManage.vue
  14. 7 1
      src/views/PeopleManage/Player/PlayerManage.vue
  15. 20 2
      src/views/PeopleManage/Player/PlayerManageteam.vue
  16. 283 0
      src/views/Task/AgentPoolChannel.vue
  17. 284 0
      src/views/Task/CompanyPoolChannel.vue
  18. 148 74
      src/views/Task/DaikeLetter.vue
  19. 284 0
      src/views/Task/TaskPoolChannel.vue
  20. 393 222
      src/views/Task/daikeComponents/KtLetter.vue
  21. 43 60
      src/views/Task/daikeComponents/KtOrder.vue

+ 2 - 2
config/dev.env.js

@@ -13,8 +13,8 @@ module.exports = merge(prodEnv, {
   // BASE_URL: '"http:///192.168.0.253: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.103:8080/"',//
+  // BASE_URL: '"http:///192.168.0.22:8080/"',//郝宇
+  BASE_URL: '"http:///192.168.0.103:8080/"',//
 })
 
 

+ 8 - 0
src/http/moudules/letter.js

@@ -865,4 +865,12 @@ export const getPolicyPrintboHai = (data) => {
         method: "post",
         data
     })
+  }
+  //代客录单生成订单接口
+export const ordergenerateOrder = (data) => {
+    return axios({
+      url: "/insurance/order/generateOrder",
+      method: "post",
+      data
+    })
   }

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

@@ -924,3 +924,130 @@ export const sysDeptAccountHistoryPage = (data) => {
     data
   })
 }
+//代客录单业务员列表接口
+export const getAllUsersByHospitality = (data) => {
+  return axios({
+    url: "/user/getAllUsersByHospitality",
+    method: "post",
+    data
+  })
+}
+//代客录单订单列表接口
+export const queryPageHospitalityOrder = (data) => {
+  return axios({
+    url: "/insurance/order/queryPageHospitalityOrder",
+    method: "post",
+    data
+  })
+}
+// 任务池(渠道)列表接口
+export const queryPageHospitalityByChannel = (data) => {
+  return axios({
+    url: "/insurance/order/queryPageHospitalityByChannel",
+    method: "post",
+    data
+  })
+}
+// 任务池(代理人)列表接口
+export const queryPageHospitalityLinkagent = (data) => {
+  return axios({
+    url: "/insurance/order/queryPageHospitalityLinkagent",
+    method: "post",
+    data
+  })
+}
+// 任务池(保险公司)列表接口
+export const queryPageHospitalityByInsuranceCompany = (data) => {
+  return axios({
+    url: "/insurance/order/queryPageHospitalityByInsuranceCompany",
+    method: "post",
+    data
+  })
+}
+// 任务池(渠道、代理人、保险公司)转发人列表
+export const getCustomerUsers = (data) => {
+  return axios({
+    url: "/user/getCustomerUsers",
+    method: "post",
+    data
+  })
+}
+// 任务池(渠道、代理人、保险公司)转发接口
+export const forwardingSubOrders = (data) => {
+  return axios({
+    url: "/order/taskPools/forwardingSubOrders",
+    method: "post",
+    data
+  })
+}
+// 任务池(渠道、代理人、保险公司)收回接口
+export const taskPoolsRecover = (data) => {
+  return axios({
+    url: "/order/taskPools/recover",
+    method: "post",
+    data
+  })
+}
+// 后线人员协议配置分页
+export const sysUserLinkPtlAgreementPage = (data) => {
+  return axios({
+    url: "/sysUserLinkPtlAgreement/queryPage",
+    method: "post",
+    data
+  })
+}
+// 后线人员协议配置-后线人员列表
+export const findUserList = (params) => {
+  return axios({
+    url: "/sysUserLinkPtlAgreement/findUserList",
+    method: "get",
+    params
+  })
+}
+// 后线人员协议配置-协议列表
+export const findPtlAgreementList = () => {
+  return axios({
+    url: "/sysUserLinkPtlAgreement/findPtlAgreementList",
+    method: "get",
+  })
+}
+// 后线人员协议配置-编辑
+export const findPtlAgreementListByUserId = (userId) => {
+  return axios({
+    url: "/sysUserLinkPtlAgreement/findPtlAgreementListByUserId/"+userId,
+    method: "get",
+  })
+}
+// 后线人员协议配置-新增
+export const addOrUpdate = (data) => {
+  return axios({
+    url: "/sysUserLinkPtlAgreement/addOrUpdate",
+    method: "post",
+    data
+  })
+}
+
+// 后线人员协议配置-删除
+export const addOrDelete = (data) => {
+  return axios({
+    url: "/sysUserLinkPtlAgreement/delete",
+    method: "post",
+    data
+  })
+}
+// 平台公司结算-车险结算、手续费结算列表
+export const plyFeeQuery = (data) => {
+  return axios({
+    url: "/fnc/plyFee/query",
+    method: "post",
+    data
+  })
+}
+// 保险公司结算-跟单费接口列表
+export const NonSettlementQuery = (data) => {
+  return axios({
+    url: "/fnc/plyFee/NonSettlementQuery",
+    method: "post",
+    data
+  })
+}

+ 303 - 0
src/views/AgreementManage/CarInsurance/BacklineAllocation.vue

@@ -0,0 +1,303 @@
+<template>
+  <div>
+    <el-main ref="elMain" style="padding: 0px;">
+      <Split :gutterSize="2" style="height: calc(100vh - 120px)">
+        <!-- 左侧树Start -->
+        <SplitArea :size="leftSplitWidth" :minSize="240">
+          <div>
+            <div>
+              <kt-button icon="fa fa-plus" label="添加" type="primary" @click="handleAddProduct" />
+              <kt-button icon="fa fa-edit" label="编辑" type="primary" @click="handleTableEdit" />
+            </div>
+            <el-divider></el-divider>
+            <el-input size="small" style="width:90%" placeholder="请输入工号" v-model="personnelValue" clearable >
+              <el-button type="primary" slot="append" icon="el-icon-search" @click="personnelFun()"></el-button>
+            </el-input>
+            <!-- 左侧树形结构 -->
+            <el-tree
+              :data="nonCarInsuranceCodeoptions"
+              :props="{ children: 'children', label: 'name' }"
+              node-key="id"
+              :default-expanded-keys="['9']"
+              @node-click="onZTreeClick"
+            ></el-tree>
+          </div>
+        </SplitArea>
+        <!-- 工具区域Start -->
+        <SplitArea :size="rightSplitWidth">
+          <kt-common-table
+            permsEdit="sys:productEntry:edit"
+            permsDelete="sys:productEntry:delete"
+            :data="pageResult"
+            :columns="columns"
+            deleteButtonName="删除"
+            :showBatchDelete="false"
+            @findPage="findPage"
+            @handleDeleteFlag="handleTableDeleteFlag"
+          ></kt-common-table>
+        </SplitArea>
+        <!-- 右侧列表页面End -->
+      </Split>
+    </el-main>
+
+    <!-- 新增对话框 -->
+    <el-dialog
+      :title="dialogTitle"
+      v-dialogDrag
+      :visible.sync="productDialogVisible"
+      width="800px"
+    >
+      <el-table
+        @selection-change="handleSelectionChange"
+        :data="tableData"
+        border
+        ref="multipleTable"
+        style="width: 100%"
+      >
+        <el-table-column type="selection" width="55"></el-table-column>
+        <el-table-column prop="agreementCode" label="协议代码" width="180"></el-table-column>
+        <el-table-column prop="agreementName" label="协议名称"></el-table-column>
+      </el-table>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="productDialogVisible = false">取 消</el-button>
+        <el-button size="small" type="primary" @click="submitForm">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+  <script>
+import KtButton from "@/views/Core/KtButton"; //按钮权限组件
+import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import CommonUtil from "@/utils/comutil.js";
+export default {
+  components: {
+    KtButton,
+    KtCommonTable
+  },
+  data() {
+    return {
+      overSize: "small",
+      agreementTypeoptions: [], //协议类型
+      leftSplitWidth: 20,
+      rightSplitWidth: 80,
+      // 右侧列表查询数据Start
+      pageResult: {},
+      pageRequest: {
+        //查询的默认条件
+        pageNum: 1,
+        pageSize: 20
+      },
+      columns: [
+        // 数据列
+        {
+          prop: "sysUserId",
+          label: "工号 ",
+          sortable: false
+        },
+        {
+          prop: "sysUserName",
+          label: "姓名",
+          sortable: false
+        },
+        {
+          prop: "agreementCode",
+          label: "协议代码",
+          sortable: false
+        },
+        {
+          prop: "agreementName",
+          label: "协议名称",
+          sortable: false
+        },
+        {
+          prop: "agreementType",
+          label: "协议类型",
+          formatter: this.agreementtypeFormatter,
+          sortable: false
+        }
+      ],
+      productDialogVisible: false, //控制产品对话框
+      dialogTitle: "新增",
+      nonCarInsuranceCodeoptions: [], //险类代码字典
+      userId: "",
+      tableData: [],
+      personnelValue:'', //工号搜索
+    };
+  },
+  created() {
+    this.getDicType("agreementType"); //协议类型
+    this.personnelFun()
+  },
+  watch: {},
+  methods: {
+    personnelFun(){
+      this.$api.task.findUserList({userId:this.personnelValue}).then(res => {
+      if (res.code == 200) {
+        this.nonCarInsuranceCodeoptions = res.data;
+      } else {
+        this.$message.error(res.msg);
+      }
+    });
+    },
+    //--tree begin-------
+    handleTableEdit({ row, index }) {
+      if (this.userId) {
+        this.$api.task.findPtlAgreementListByUserId(this.userId).then(res => {
+          if (res.code == 200) {
+            this.tableData = res.data;
+            this.$nextTick(() => {
+              this.tableData.forEach(val => {
+              if(val.flag=='true'){
+                this.$refs.multipleTable.toggleRowSelection(val);
+              }
+            });
+            })
+            this.dialogTitle = "修改";
+            this.productDialogVisible = true;
+          } else {
+            this.$message.error(res.msg);
+          }
+        });
+      } else {
+        this.$message.error("请选择人员!");
+      }
+    },
+    handleTableDeleteFlag(data) {
+      this.$api.task.addOrDelete({ ids: [data.row.id] }).then(res => {
+        if (res.code == "200") {
+          this.$message({
+            message: "删除成功",
+            type: "success"
+          });
+          this.findPage();
+        } else {
+          this.$message({
+            message: "操作失败",
+            type: "error"
+          });
+        }
+      });
+    },
+    //-- tree end-------
+    // 右侧按钮方法Start
+    handleAddProduct() {
+      if (this.userId) {
+        this.$api.task.findPtlAgreementList().then(res => {
+          if (res.code == 200) {
+            this.tableData = res.data;
+            this.dialogTitle = "新增";
+            this.productDialogVisible = true;
+          } else {
+            this.$message.error(res.msg);
+          }
+        });
+      } else {
+        this.$message.error("请选择人员!");
+      }
+    },
+    // 右侧按钮方法End
+    // 右侧列表的方法Start
+    findPage(data) {
+      // 获取分页数据
+      if (data && data.pageRequest) {
+        this.pageRequest.pageNum = data.pageRequest.pageNum;
+        this.pageRequest.pageSize = data.pageRequest.pageSize;
+      }
+      this.$api.task
+        .sysUserLinkPtlAgreementPage({...this.pageRequest, userId:this.userId})
+        .then(res => {
+          if (res.code == 200) {
+            res.data.content.forEach(val => {
+              val.sysUserId = val.sysUser ? val.sysUser.id : "";
+              val.sysUserName = val.sysUser ? val.sysUser.name : "";
+              val.agreementCode = val.ptlAgreement
+                ? val.ptlAgreement.agreementCode
+                : "";
+              val.agreementName = val.ptlAgreement
+                ? val.ptlAgreement.agreementName
+                : "";
+              val.agreementType = val.ptlAgreement
+                ? val.ptlAgreement.agreementType
+                : "";
+            });
+            this.pageResult = res.data;
+          } else {
+            this.$message.error(res.msg);
+          }
+        })
+        .then(data != null ? data.callback : "");
+    },
+  
+    onZTreeClick: function(evt, treeId, treeNode) {
+      this.userId = evt.userId;
+      this.findPage()
+    },
+    submitForm() {
+      this.$api.task
+        .addOrUpdate({
+          ptlAgreementIds: this.ptlAgreementIds,
+          userId: this.userId
+        })
+        .then(res => {
+          if (res.code == 200) {
+            this.$message({
+              message: "操作成功",
+              type: "success"
+            });
+            this.findPage();
+            this.productDialogVisible = false;
+          } else {
+            this.$message({
+              message: "操作失败",
+              type: "error"
+            });
+          }
+        });
+    },
+    agreementtypeFormatter(row, column) {
+      //协议类型
+      let agreementType = row.agreementType;
+      return CommonUtil.getDataName({
+        dataList: this.agreementTypeoptions,
+        value: "dictValue",
+        label: "dictTag",
+        data: agreementType
+      });
+    },
+    //--数据字典 begin --
+    getDicType(type) {
+      this.$api.insCompany.dicType(type).then(res => {
+        if (res.code == 200) {
+          this[type + "options"] = res.data.ddList;
+        }
+      });
+    },
+    //--数据字典 end --
+    handleSelectionChange(val) {
+        this.ptlAgreementIds = [];
+        val.forEach(obj => {
+          this.ptlAgreementIds.push(obj.id); // 将每个对象的id添加到allIds数组中
+        });
+        // this.ptlAgreementIds.push(val.find(e=>e.sysUserId).sysUserId) ;
+    }
+  }
+};
+</script>
+  
+  <style scoped>
+/* 顶部查询条件样式Start */
+.queryFrom .el-row {
+  margin: 10px 0px;
+}
+
+.queryFrom .el-form-item {
+  margin-bottom: 0px;
+}
+
+.queryFrom .queryButton .el-form-item__content {
+  margin-left: 40px !important;
+}
+
+/* 顶部查询条件样式End */
+</style>
+  

+ 266 - 0
src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/DocumentaryFees.vue

@@ -0,0 +1,266 @@
+<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: "companyId",
+            label: "保险id",
+            type: "text"
+          },
+          {
+            prop: "totalorders",
+            label: "总单数",
+            type: "text"
+          },
+          {
+            prop: "allLOtherFeevalue",
+            label: "跟单费总额",
+            type: "text"
+          },
+         
+        ],
+        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,
+        isNotCar :'0',
+        isNotDocumentary:'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
+        .NonSettlementQuery(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>
+    

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

@@ -0,0 +1,366 @@
+<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',
+        isNotCar: '0',
+        isOther:'0'
+      },
+      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>
+    

+ 266 - 0
src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/DocumentaryFees.vue

@@ -0,0 +1,266 @@
+<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: "companyId",
+            label: "保险id",
+            type: "text"
+          },
+          {
+            prop: "totalorders",
+            label: "总单数",
+            type: "text"
+          },
+          {
+            prop: "allLOtherFeevalue",
+            label: "跟单费总额",
+            type: "text"
+          },
+         
+        ],
+        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,
+        isNotCar :'1',
+        isNotDocumentary:'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
+        .NonSettlementQuery(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>
+    

+ 3 - 1
src/views/FinancialManagement/CarInsurance/CompanySettlement/HandlingFees.vue → src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/HandlingFees.vue

@@ -233,7 +233,9 @@ export default {
       pageData:{
         pageNum: 1,
         pageSize: 20,
-        agreementType: 2
+        agreementType: 2,
+        isNotCar :'1',
+        isOther:'0'
       },
       formData:{},
       rules: {

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

@@ -1,315 +0,0 @@
-<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>
-      

+ 365 - 0
src/views/FinancialManagement/CarInsurance/PlatformSettlement/CarInsuranceBalance.vue

@@ -0,0 +1,365 @@
+<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',
+        isNotCar:'0',
+        isOther:'0'
+      },
+      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>
+    

+ 365 - 0
src/views/FinancialManagement/CarInsurance/PlatformSettlement/NonVehicleBalance.vue

@@ -0,0 +1,365 @@
+<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',
+        isNotCar:'1',
+        isOther:'0'
+      },
+      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>
+    

+ 20 - 2
src/views/PeopleManage/Agent/AgentExamine.vue

@@ -110,7 +110,7 @@
             ref="formData"
             :inline="true"
             @keyup.enter.native="nextStep()"
-            label-width="130px"
+            label-width="110px"
             size="small"
           >
             <el-row>
@@ -141,6 +141,8 @@
                   <el-input v-model="formData.mobile"></el-input>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="身份证号" prop="identity">
                   <el-input
@@ -164,6 +166,8 @@
                   ></el-input>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="状态" prop="status">
                   <el-select
@@ -197,6 +201,8 @@
                   </el-select>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="岗位" prop="positionId">
                   <el-select style="width:200px" v-model="formData.positionId" placeholder="请选择">
@@ -219,7 +225,7 @@
             ref="formDataDetail"
             :inline="true"
             @keyup.enter.native="submitForml('提交审核')"
-            label-width="130px"
+            label-width="110px"
             size="small"
           >
             <el-row>
@@ -256,6 +262,8 @@
                   </el-select>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="出生日期" prop="birthday">
                   <el-date-picker
@@ -280,6 +288,8 @@
                   </el-select>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="民族" prop="nations">
                   <el-select disabled style="width:200px" v-model="formDataDetail.nations" placeholder="请选择民族">
@@ -302,6 +312,8 @@
                   </el-select>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="邮政编码" prop="postalCode">
                   <el-input
@@ -331,6 +343,8 @@
                   </el-select>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="学历" prop="education">
                   <el-select
@@ -366,6 +380,8 @@
                   </el-date-picker>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="原工作单位" prop="formerEmployer">
                   <el-input
@@ -397,6 +413,8 @@
                   ></el-input>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="紧急联系人电话" prop="emergencyContactTel">
                   <el-input

+ 18 - 3
src/views/PeopleManage/Agent/AgentManage.vue

@@ -70,7 +70,7 @@
             ref="formData"
             :inline="true"
             @keyup.enter.native="nextStep()"
-            label-width="130px"
+            label-width="110px"
             size="small"
           >
             <el-row>
@@ -102,6 +102,8 @@
                   <el-input v-model="formData.mobile"></el-input>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="身份证号" prop="identity">
                   <el-input
@@ -127,7 +129,8 @@
                     show-password></el-input> -->
                 </el-form-item>
               </el-col>
-
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="状态" prop="status">
                   <el-select
@@ -169,6 +172,8 @@
                   </el-select>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="推荐人" prop="referrerId">
                   <el-select
@@ -216,7 +221,7 @@
             :rules="formDataRulesDetail"
             ref="formDataDetail"
             :inline="true"
-            label-width="130px"
+            label-width="110px"
             size="small"
           >
             <el-row>
@@ -246,6 +251,8 @@
                   </el-select>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="出生日期" prop="birthday">
                   <el-date-picker
@@ -269,6 +276,8 @@
                   </el-select>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="民族" prop="nations">
                   <el-select  style="width:200px" v-model="formDataDetail.nations" placeholder="请选择民族">
@@ -291,6 +300,8 @@
                   </el-select>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="邮政编码" prop="postalCode">
                   <el-input v-model="formDataDetail.postalCode"></el-input>
@@ -313,6 +324,8 @@
                   </el-select>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="学历" prop="education">
                   <el-select
@@ -346,6 +359,8 @@
                   </el-date-picker>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="原工作单位" prop="formerEmployer">
                   <el-input v-model="formDataDetail.formerEmployer"></el-input>

+ 7 - 1
src/views/PeopleManage/Player/PlayerManage.vue

@@ -62,7 +62,7 @@
             :rules="formDataRules"
             ref="formData"
             :inline="true"
-            label-width="130px"
+            label-width="110px"
             size="small"
           >
             <el-row>
@@ -94,6 +94,8 @@
                   <el-input v-model="formData.mobile"></el-input>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="名称" prop="name">
                   <el-input v-model="formData.name"></el-input>
@@ -128,6 +130,8 @@
                   </el-select>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="角色" prop="roleId">
                   <el-select
@@ -168,6 +172,8 @@
                   </el-select>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="领导人工号" prop="leaderName">
                   <el-input v-model="formData.leaderId" disabled></el-input>

+ 20 - 2
src/views/PeopleManage/Player/PlayerManageteam.vue

@@ -62,7 +62,7 @@
             ref="formData"
             :inline="true"
             @keyup.enter.native="nextStep()"
-            label-width="130px"
+            label-width="110px"
             size="small"
           >
             <el-row>
@@ -95,6 +95,8 @@
                   <el-input v-model="formData.mobile"></el-input>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="身份证号" prop="identity">
                   <el-input
@@ -121,6 +123,8 @@
                   <!-- show-password></el-input> -->
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="状态" prop="status">
                   <el-select
@@ -162,6 +166,8 @@
                   </el-select>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="领导人" prop="leaderId">
                   <el-select
@@ -209,7 +215,7 @@
             :rules="formDataRulesDetail"
             ref="formDataDetail"
             :inline="true"
-            label-width="130px"
+            label-width="110px"
             size="small"
           >
             <el-row>
@@ -239,6 +245,8 @@
                   </el-select>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="出生日期" prop="birthday">
                   <el-date-picker
@@ -262,6 +270,8 @@
                   </el-select>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="民族" prop="nations">
                   <el-select  style="width:200px" v-model="formDataDetail.nations" placeholder="请选择民族">
@@ -284,6 +294,8 @@
                   </el-select>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="邮政编码" prop="postalCode">
                   <el-input v-model="formDataDetail.postalCode"></el-input>
@@ -306,6 +318,8 @@
                   </el-select>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="学历" prop="education">
                   <el-select
@@ -333,6 +347,8 @@
                   </el-date-picker>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item label="原工作单位" prop="formerEmployer">
                   <el-input v-model="formDataDetail.formerEmployer"></el-input>
@@ -366,6 +382,8 @@
                   ></el-input>
                 </el-form-item>
               </el-col>
+            </el-row>
+              <el-row>
               <el-col :span="8">
                 <el-form-item
                   label="紧急联系人姓名"

+ 283 - 0
src/views/Task/AgentPoolChannel.vue

@@ -0,0 +1,283 @@
+<template>
+  <div>
+    <el-row class="queryFrom">
+      <el-form ref="queryFormRef" :inline="true" :model="queryFrom" label-width="130px"   size="small">
+        <el-row>
+          <el-col :span="6">
+            <el-form-item label="订单号">
+              <el-input v-model="queryFrom.orderNo" placeholder="请输入订单号" class="widths" clearable></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="车牌号">
+              <el-input v-model="queryFrom.licenseNo" placeholder="请输入车牌号" class="widths" clearable></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="车架号">
+              <el-input v-model="queryFrom.frameNo" placeholder="请输入车架号" class="widths" clearable></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="投保人姓名">
+              <el-input
+                v-model="queryFrom.insuredName"
+                placeholder="请输入投保人姓名"
+                class="widths"
+                clearable
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="机构名称">
+              <el-cascader
+                class="widths"
+                :options="institutionOptions"
+                v-model="queryFrom.deptId"
+                :props="{
+                  checkStrictly: true,
+                  value: 'id',
+                  label: 'name',
+                }"
+                @change="handleChange"
+                clearable
+              ></el-cascader>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="6">
+            <el-form-item label="录单日期">
+              <el-date-picker
+                v-model="queryFrom.data"
+                type="daterange"
+                @change="monthChange"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                value-format="yyyy-MM-dd"
+                clearable
+                style="width: 200px;"
+              ></el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="保险公司">
+              <el-select v-model="queryFrom.companyId" filterable class="widths" clearable>
+                <el-option
+                  v-for="val in companyList"
+                  :key="val.id"
+                  :label="val.name"
+                  :value="val.id"
+                ></el-option>
+              </el-select>
+            </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-row>
+      </el-form>
+    </el-row>
+
+    <kt-common-table
+      :data="pageResult"
+      :columns="columns"
+      :showBatchDelete="false"
+      @findPage="findPage"
+      button3Name="转发"
+      @handleButton3="transmit"
+      button2Name="收回"
+      @handleButton2="takeBack"
+
+    ></kt-common-table>
+    <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
+        转发人:
+      <el-select v-model="transmitValue" placeholder="请选择">
+        <el-option
+          v-for="item in options"
+          :key="item.userId"
+          :label="item.name"
+          :value="item.userId"
+        ></el-option>
+      </el-select>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" size="small" @click="transmitSumit">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+  
+  <script>
+import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import Cookies from "js-cookie";
+import CommonUtil from "@/utils/comutil.js";
+
+export default {
+  components: {
+    KtCommonTable
+  },
+  data() {
+    return {
+      pageData: {
+        pageNum: 1,
+        pageSize: 20
+      },
+      queryFrom: {},
+      pageResult: {},
+      columns: [
+        // 数据列
+        { prop: "orderno", label: "订单号", sortable: false },
+        {
+          prop: "username",
+          label: "业务员",
+          sortable: false
+        },
+
+        { prop: "deptname", label: "部门名称", sortable: false },
+
+        { prop: "insCompany", label: "承保公司", sortable: false },
+        {
+          prop: "licenseno",
+          label: "车牌号",
+          sortable: false
+        },
+        { prop: "product", label: "投保险种", sortable: false },
+        {
+          prop: "insuredname",
+          label: "投保人姓名",
+          sortable: false
+        },
+        {
+          prop: "orderstatus",
+          label: "状态",
+          sortable: false,
+          formatter: this.statusFormatter
+        }
+      ],
+      statusoptions: [],
+      dialogVisible: false,
+      companyList: [], //保险公司
+      institutionOptions: [], //机构名称列表
+      options: [],//转发人列表
+      transmitValue: "", //选中的转发人
+      orderNo:'', //主订单号
+      subOrderId:'', //子订单号
+    };
+  },
+  created() {
+    this.$api.insCompany.dicType("insOrderStatus").then(res => {
+      this.statusoptions = res.data.ddList;
+    });
+    this.$api.letter.gainTopList().then(res => {
+      this.companyList = res.data;
+    });
+    this.$api.dept.findDeptTree().then(res => {
+      this.institutionOptions = res.data;
+    });
+  },
+  methods: {
+    queryStaffInfo() {
+      this.findPage();
+    },
+    statusFormatter(row, column) {
+      //协议类型
+      let status = row.orderstatus;
+      return CommonUtil.getDataName({
+        dataList: this.statusoptions,
+        value: "dictValue",
+        label: "dictTag",
+        data: status
+      });
+    },
+    // 右侧列表的方法Start
+    findPage() {
+      this.$api.task
+        .queryPageHospitalityLinkagent({
+          ...this.pageData,
+          ...this.queryFrom,
+          userId: Cookies.get("user")
+        })
+        .then(res => {
+          if (res.code == 200) {
+            this.pageResult = res.data;
+          } else {
+            this.$message.error(res.msg);
+          }
+        });
+    },
+    transmit(row) {
+      this.dialogVisible = true;
+      this.transmitValue = "";
+      this.orderNo=row.row.orderno
+      this.subOrderId=row.row.subOrderId
+      this.$api.task.getCustomerUsers().then(res=>{
+        if(res.code==200){
+            this.options=res.data
+        }
+      })
+    },
+    // 收回
+    takeBack(row) {
+      let orderNo=row.row.orderno
+      let subOrderId=row.row.subOrderId
+      this.$api.task.taskPoolsRecover({orderNo,subOrderId}).then(res=>{
+        if(res.code==200){
+            this.$message({
+                message: res.msg,
+                type: 'success'  
+            });
+        }
+        else{
+            this.$message.error(res.msg);
+        }
+      })
+    },
+    transmitSumit() {
+        if(this.transmitValue){
+            this.$api.task.forwardingSubOrders({auditId:this.transmitValue,orderNo:this.orderNo,subOrderId:this.subOrderId}).then(res=>{
+                if(res.code==200){
+                    this.options=res.data
+                    this.dialogVisible = false;
+                    this.findPage()
+                }
+                else{
+                     this.$message.error(res.msg);
+                }
+            })
+            
+        }
+        else{
+            this.$message.error('请选择转发人!');
+
+        }
+    },
+    //联级选择器触发事件
+    handleChange(val) {
+      if (val.length !== 0) {
+        this.queryFrom.deptId = val.at(-1);
+      } else {
+        this.queryFrom.deptId = "";
+      }
+    },
+    monthChange(e) {
+      if (e === null) {
+        this.queryFrom.startDate = "";
+        this.queryFrom.endDate = "";
+      } else {
+        this.queryFrom.startDate = e[0];
+        this.queryFrom.endDate = e[1];
+      }
+    }
+  }
+};
+</script>
+  
+  <style scoped>
+  .widths {
+  width: 200px;
+}
+
+</style>
+  

+ 284 - 0
src/views/Task/CompanyPoolChannel.vue

@@ -0,0 +1,284 @@
+<template>
+  <div>
+    <el-row class="queryFrom">
+      <el-form ref="queryFormRef" :inline="true" :model="queryFrom" label-width="130px"   size="small">
+        <el-row>
+          <el-col :span="6">
+            <el-form-item label="订单号">
+              <el-input v-model="queryFrom.orderNo" placeholder="请输入订单号" class="widths" clearable></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="车牌号">
+              <el-input v-model="queryFrom.licenseNo" placeholder="请输入车牌号" class="widths" clearable></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="车架号">
+              <el-input v-model="queryFrom.frameNo" placeholder="请输入车架号" class="widths" clearable></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="投保人姓名">
+              <el-input
+                v-model="queryFrom.insuredName"
+                placeholder="请输入投保人姓名"
+                class="widths"
+                clearable
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="机构名称">
+              <el-cascader
+                class="widths"
+                :options="institutionOptions"
+                v-model="queryFrom.deptId"
+                :props="{
+                  checkStrictly: true,
+                  value: 'id',
+                  label: 'name',
+                }"
+                @change="handleChange"
+                clearable
+              ></el-cascader>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="6">
+            <el-form-item label="录单日期">
+              <el-date-picker
+                v-model="queryFrom.data"
+                type="daterange"
+                @change="monthChange"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                value-format="yyyy-MM-dd"
+                clearable
+                style="width: 200px;"
+              ></el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="保险公司">
+              <el-select v-model="queryFrom.companyId" filterable class="widths" clearable>
+                <el-option
+                  v-for="val in companyList"
+                  :key="val.id"
+                  :label="val.name"
+                  :value="val.id"
+                ></el-option>
+              </el-select>
+            </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-row>
+      </el-form>
+    </el-row>
+
+    <kt-common-table
+      :data="pageResult"
+      :columns="columns"
+      :showBatchDelete="false"
+      @findPage="findPage"
+      button3Name="转发"
+      @handleButton3="transmit"
+      button2Name="收回"
+      @handleButton2="takeBack"
+
+    ></kt-common-table>
+    <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
+        转发人:
+      <el-select v-model="transmitValue" placeholder="请选择">
+        <el-option
+          v-for="item in options"
+          :key="item.userId"
+          :label="item.name"
+          :value="item.userId"
+        ></el-option>
+      </el-select>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" size="small" @click="transmitSumit">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+  
+  <script>
+import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import Cookies from "js-cookie";
+import CommonUtil from "@/utils/comutil.js";
+
+export default {
+  components: {
+    KtCommonTable
+  },
+  data() {
+    return {
+      pageData: {
+        pageNum: 1,
+        pageSize: 20
+      },
+      queryFrom: {},
+      pageResult: {},
+      columns: [
+        // 数据列
+        { prop: "orderno", label: "订单号", sortable: false },
+        {
+          prop: "username",
+          label: "业务员",
+          sortable: false
+        },
+
+        { prop: "deptname", label: "部门名称", sortable: false },
+
+        { prop: "insCompany", label: "承保公司", sortable: false },
+        {
+          prop: "licenseno",
+          label: "车牌号",
+          sortable: false
+        },
+        { prop: "product", label: "投保险种", sortable: false },
+        {
+          prop: "insuredname",
+          label: "投保人姓名",
+          sortable: false
+        },
+        {
+          prop: "orderstatus",
+          label: "状态",
+          sortable: false,
+          formatter: this.statusFormatter
+        }
+      ],
+      statusoptions: [],
+      dialogVisible: false,
+      companyList: [], //保险公司
+      institutionOptions: [], //机构名称列表
+      options: [],//转发人列表
+      transmitValue: "", //选中的转发人
+      orderNo:'', //主订单号
+      subOrderId:'', //子订单号
+    };
+  },
+  created() {
+    this.$api.insCompany.dicType("insOrderStatus").then(res => {
+      this.statusoptions = res.data.ddList;
+    });
+    this.$api.letter.gainTopList().then(res => {
+      this.companyList = res.data;
+    });
+    this.$api.dept.findDeptTree().then(res => {
+      this.institutionOptions = res.data;
+    });
+  },
+  methods: {
+    queryStaffInfo() {
+      this.findPage();
+    },
+    statusFormatter(row, column) {
+      //协议类型
+      let status = row.orderstatus;
+      return CommonUtil.getDataName({
+        dataList: this.statusoptions,
+        value: "dictValue",
+        label: "dictTag",
+        data: status
+      });
+    },
+    // 右侧列表的方法Start
+    findPage() {
+      this.$api.task
+        .queryPageHospitalityByInsuranceCompany({
+          ...this.pageData,
+          ...this.queryFrom,
+          userId: Cookies.get("user")
+          // userId: '99140105M01D01001'
+        })
+        .then(res => {
+          if (res.code == 200) {
+            this.pageResult = res.data;
+          } else {
+            this.$message.error(res.msg);
+          }
+        });
+    },
+    transmit(row) {
+      this.dialogVisible = true;
+      this.transmitValue = "";
+      this.orderNo=row.row.orderno
+      this.subOrderId=row.row.subOrderId
+      this.$api.task.getCustomerUsers().then(res=>{
+        if(res.code==200){
+            this.options=res.data
+        }
+      })
+    },
+    // 收回
+    takeBack(row) {
+      let orderNo=row.row.orderno
+      let subOrderId=row.row.subOrderId
+      this.$api.task.taskPoolsRecover({orderNo,subOrderId}).then(res=>{
+        if(res.code==200){
+            this.$message({
+                message: res.msg,
+                type: 'success'  
+            });
+        }
+        else{
+            this.$message.error(res.msg);
+        }
+      })
+    },
+    transmitSumit() {
+        if(this.transmitValue){
+            this.$api.task.forwardingSubOrders({auditId:this.transmitValue,orderNo:this.orderNo,subOrderId:this.subOrderId}).then(res=>{
+                if(res.code==200){
+                    this.options=res.data
+                    this.dialogVisible = false;
+                    this.findPage()
+                }
+                else{
+                     this.$message.error(res.msg);
+                }
+            })
+            
+        }
+        else{
+            this.$message.error('请选择转发人!');
+
+        }
+    },
+    //联级选择器触发事件
+    handleChange(val) {
+      if (val.length !== 0) {
+        this.queryFrom.deptId = val.at(-1);
+      } else {
+        this.queryFrom.deptId = "";
+      }
+    },
+    monthChange(e) {
+      if (e === null) {
+        this.queryFrom.startDate = "";
+        this.queryFrom.endDate = "";
+      } else {
+        this.queryFrom.startDate = e[0];
+        this.queryFrom.endDate = e[1];
+      }
+    }
+  }
+};
+</script>
+  
+  <style scoped>
+  .widths {
+  width: 200px;
+}
+
+</style>
+  

+ 148 - 74
src/views/Task/DaikeLetter.vue

@@ -4,32 +4,38 @@
       <el-form
         class="demo-ruleForm"
         :model="userform"
-        ref="userform"
         label-width="100px"
         size="small"
         style="margin-top: 15px"
       >
         <el-row type="flex" justify="space-between">
           <el-col :span="5">
-            <el-form-item label="业务员">
-              <el-select  v-model="userform.name" filterable placeholder="请选择" @change="pickUser">
-                <el-option
-                  v-for="item in userOptions"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value" >
-                </el-option>
-              </el-select>
+            <el-form-item label="业务员" prop="name">
+              <el-input
+                placeholder="请输入业务员"
+                v-model="userform.name"
+                maxlength="17"
+                type="text"
+                show-word-limit
+              >
+                <el-button
+                  slot="append"
+                  type="primary"
+                  icon="el-icon-search"
+                  @click="toChooseName()"
+                  style="color: #fff;background-color:#D42426;border-color:#D42426;"
+                ></el-button>
+              </el-input>
             </el-form-item>
           </el-col>
           <el-col :span="5">
             <el-form-item label="工号">
-              <el-input v-model="userform.id" type="text" disabled></el-input>
+              <el-input v-model="userform.userId" type="text" disabled></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="5">
             <el-form-item label="工号类型">
-              <el-select v-model="userform.usertype" disabled>
+              <el-select v-model="userform.noType" disabled>
                 <el-option label="业务员" value="A"></el-option>
                 <el-option label="代理人" value="B"></el-option>
               </el-select>
@@ -37,53 +43,77 @@
           </el-col>
           <el-col :span="5">
             <el-form-item label="归属" >
-              <el-input v-model="deptName" disabled></el-input>
+              <el-input v-model="userform.deptName" disabled></el-input>
             </el-form-item>
           </el-col>
         </el-row>
       </el-form>
     </div>
     <div class="quotation-page">
-      <el-tabs v-model="activeName" tab-position="left" >
-        <el-tab-pane label="报价" name="1"> 
-          <div class="quotation-content">
-            <Ktletter  :isLetter="false"></Ktletter>
-          </div>
-        </el-tab-pane>
-        <el-tab-pane label="全部订单" name="2">
-          <div class="quotation-content">
-            <KtOrder></KtOrder>
-          </div>
-        </el-tab-pane>
-        <el-tab-pane label="报价中" name="3">
-          <div class="quotation-content">
-            <KtOrder orderStatusProp="0"></KtOrder>
-          </div>
-        </el-tab-pane>
-        <el-tab-pane label="待核保" name="4">
+      <el-tabs v-model="activeName"  tab-position="left" @tab-click="handleClick">
+        <el-tab-pane label="报价" name="999" > 
           <div class="quotation-content">
-            <KtOrder orderStatusProp="1"></KtOrder>
+            <Ktletter ref="Ktletter" :isdisabled="isdisabled"  :isLetter="false"></Ktletter>
           </div>
         </el-tab-pane>
-        <el-tab-pane label="已核保待缴费" name="5">
+        <el-tab-pane label="全部订单" name="888" :disabled="isdisabled">
           <div class="quotation-content">
-            <KtOrder orderStatusProp="2"></KtOrder>
+            <KtOrder ref="KtOrder" @orderEdit="orderEdit"></KtOrder>
           </div>
         </el-tab-pane>
-        <el-tab-pane label="已承保" name="6">
+        <el-tab-pane v-for="(val) in orderOption"  :key='val.value' :label="val.lable" :name="val.value" :disabled="isdisabled">
           <div class="quotation-content">
-            <KtOrder orderStatusProp="3"></KtOrder>
-          </div>
-        </el-tab-pane>
-        <el-tab-pane label="核保退回" name="7">
-          <div class="quotation-content">
-            <KtOrder orderStatusProp="4"></KtOrder>
+            <KtOrder :ref="'refName' + val.value"  @orderEdit="orderEdit"></KtOrder>
           </div>
         </el-tab-pane>
       </el-tabs>
-      
     </div>
-
+    <el-dialog title="业务员信息" :visible.sync="dialogVisible" >
+      <el-form :inline="true" class="demo-form-inline" size="small"  label-width="80px" :model="salespersonForm" >
+        <el-row :gutter="20">
+          <el-col :span="12">
+            <el-form-item label="业务员">
+              <el-input v-model="salespersonForm.name" placeholder="业务员" ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="工号">
+              <el-input v-model="salespersonForm.userId" placeholder="工号" ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="12">
+            <el-form-item label="手机号">
+              <el-input v-model="salespersonForm.mobile" placeholder="手机号" ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="9">
+            <el-form-item label="身份证号">
+              <el-input v-model="salespersonForm.identity" placeholder="身份证号" ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="2">
+            <el-form-item>
+              <el-button type="primary" size="small" @click="toChooseName()">查询</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <el-table
+        size="small"
+        :data="salespersonData"
+        height="690"
+        border
+        style="width: 100%"
+        :header-cell-style="{ background: '#F7F7F9 ', fontWeight: '700', color: '#333333' }"
+        highlight-current-row
+        @row-dblclick="reslistCurrentChange"
+      >
+        <el-table-column prop="userId" label="工号" align="center" ></el-table-column>
+        <el-table-column prop="name" label="	业务员名称" align="center" ></el-table-column>
+        <el-table-column prop="mobile" label="手机号" align="center"></el-table-column>
+        <el-table-column prop="identity" label="身份证号" align="center"></el-table-column>
+      </el-table>
+    </el-dialog>
   </div>
 </template>
 <script>
@@ -94,52 +124,96 @@ export default {
   components: { Ktletter,KtOrder },
   data(){
     return{
+      // 业务员信息
       userform: {},
       userOptions:[],//可选人员列表
       deptName:'',
-      activeName:'1'
+      activeName:'999',
+      dialogVisible:false,
+      salespersonData:[],
+      salespersonForm:{},
+      userIdProp:'',
+      isdisabled:true,
+      orderOption:[
+        {
+          lable:'报价中',
+          value:'0',
+        },{
+          lable:'待核保',
+          value:'1',
+        },{
+          lable:'已核保待缴费',
+          value:'2',
+        },{
+          lable:'已承保',
+          value:'3',
+        },{
+          lable:'核保退回',
+          value:'4',
+        },
+      ],
+      message:''
     }
   },
   created(){
-     //代客录单获取可选业务员,原来保险公司获取在选择业务员的时候再获取
-     this.$api.user.getAllUserInfo('').then(res => {
-      if (res.code == 200) {
-        this.userOptions = res.data.map(item => {
-          return { value: `${item.id}`, label: `${item.id} - ${item.name}` };
-        });
-      }
-    });
-    this.$api.user.getLoginUser().then(res => {
-        if (res.code == 200) {
-          this.userform = res.data;
-          // this.$api.dept.getDeptById(res.data.deptId).then(res => {
-          //   this.deptName = res.data.name;
-          // });
-        }
-      });
   },
   methods:{
-      //代客录单专用
-      pickUser(val){
-        // this.userId = val;
-        // this.$api.user.getAllUserInfo(val).then(res => {
-        //   if (res.code == 200) {
-        //     this.userform=res.data[0];
-        //     this.$api.dept.getDeptById(res.data[0].deptId).then(res => {
-        //       this.deptName = res.data.name;
-        //     });
-        //     this.commpanyList(); //获取保险公司
-        //   }
-        // });
+     //业务列表双击选中事件
+     reslistCurrentChange(row, column, event) {
+      this.userform = row; //名称
+      this.activeName='999'
+      this.userIdProp=row.userId
+      this.dialogVisible = false;
+      this.isdisabled=false
+    },
+    toChooseName(){
+      this.salespersonForm.name= this.userform.name
+      const loading = this.$loading({
+        lock: true,
+        text: "Loading",
+        spinner: "el-icon-loading",
+        background: "rgba(0, 0, 0, 0.7)"
+      });
+      this.$api.task.getAllUsersByHospitality({... this.salespersonForm}).then(res => {
+        if (res.code == "200") {
+          this.salespersonData = res.data;
+          loading.close();
+          this.dialogVisible = true;
+        } else {
+          loading.close();
+          this.$message.error(res.msg);
+        }
+      });
     },
+    handleClick(tab){
+      if(tab.index==0){
+        this.$refs.Ktletter.add()
+      }
+      if(tab.index==1){
+        this.$refs.KtOrder.userIdPor=this.userform.userId
+        this.$refs.KtOrder.statusPor=tab.name
+        this.$refs.KtOrder.findPage()
+      }
+      if(tab.index>1){
+        let ref = eval('this.$refs.refName' + Number(tab.name))[0]
+        ref.userIdPor=this.userform.userId
+        ref.statusPor=tab.name
+        ref.findPage()
+      }
+    },
+    orderEdit(data){
+      this.activeName=data.activeName
+      this.$refs.Ktletter.editingWay(data)
+      this.$refs.Ktletter.obtainProtocol(data)
+    }
   }
 }
 </script>
 <style lang="scss" scoped>
 .quotation-page{
-  border-radius: 6px;
-  border: 1px solid #ebeef5;
-  background-color: #fff;
+  // border-radius: 6px;
+  // border: 1px solid #ebeef5;
+  // background-color: #fff;
 }
 .quotation-content{
   overflow-y: auto;

+ 284 - 0
src/views/Task/TaskPoolChannel.vue

@@ -0,0 +1,284 @@
+<template>
+  <div>
+    <el-row class="queryFrom">
+      <el-form ref="queryFormRef" :inline="true" :model="queryFrom" label-width="130px"   size="small">
+        <el-row>
+          <el-col :span="6">
+            <el-form-item label="订单号">
+              <el-input v-model="queryFrom.orderNo" placeholder="请输入订单号" class="widths" clearable></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="车牌号">
+              <el-input v-model="queryFrom.licenseNo" placeholder="请输入车牌号" class="widths" clearable></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="车架号">
+              <el-input v-model="queryFrom.frameNo" placeholder="请输入车架号" class="widths" clearable></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="投保人姓名">
+              <el-input
+                v-model="queryFrom.insuredName"
+                placeholder="请输入投保人姓名"
+                class="widths"
+                clearable
+              ></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="机构名称">
+              <el-cascader
+                class="widths"
+                :options="institutionOptions"
+                v-model="queryFrom.deptId"
+                :props="{
+                  checkStrictly: true,
+                  value: 'id',
+                  label: 'name',
+                }"
+                @change="handleChange"
+                clearable
+              ></el-cascader>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="6">
+            <el-form-item label="录单日期">
+              <el-date-picker
+                v-model="queryFrom.data"
+                type="daterange"
+                @change="monthChange"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                value-format="yyyy-MM-dd"
+                clearable
+                style="width: 200px;"
+              ></el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="保险公司">
+              <el-select v-model="queryFrom.companyId" filterable class="widths" clearable>
+                <el-option
+                  v-for="val in companyList"
+                  :key="val.id"
+                  :label="val.name"
+                  :value="val.id"
+                ></el-option>
+              </el-select>
+            </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-row>
+      </el-form>
+    </el-row>
+
+    <kt-common-table
+      :data="pageResult"
+      :columns="columns"
+      :showBatchDelete="false"
+      @findPage="findPage"
+      button3Name="转发"
+      @handleButton3="transmit"
+      button2Name="收回"
+      @handleButton2="takeBack"
+
+    ></kt-common-table>
+    <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
+        转发人:
+      <el-select v-model="transmitValue" placeholder="请选择">
+        <el-option
+          v-for="item in options"
+          :key="item.userId"
+          :label="item.name"
+          :value="item.userId"
+        ></el-option>
+      </el-select>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" size="small" @click="transmitSumit">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+  
+  <script>
+import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import Cookies from "js-cookie";
+import CommonUtil from "@/utils/comutil.js";
+
+export default {
+  components: {
+    KtCommonTable
+  },
+  data() {
+    return {
+      pageData: {
+        pageNum: 1,
+        pageSize: 20
+      },
+      queryFrom: {},
+      pageResult: {},
+      columns: [
+        // 数据列
+        { prop: "orderno", label: "订单号", sortable: false },
+        {
+          prop: "username",
+          label: "业务员",
+          sortable: false
+        },
+
+        { prop: "deptname", label: "部门名称", sortable: false },
+
+        { prop: "insCompany", label: "承保公司", sortable: false },
+        {
+          prop: "licenseno",
+          label: "车牌号",
+          sortable: false
+        },
+        { prop: "product", label: "投保险种", sortable: false },
+        {
+          prop: "insuredname",
+          label: "投保人姓名",
+          sortable: false
+        },
+        {
+          prop: "orderstatus",
+          label: "状态",
+          sortable: false,
+          formatter: this.statusFormatter
+        }
+      ],
+      statusoptions: [],
+      dialogVisible: false,
+      companyList: [], //保险公司
+      institutionOptions: [], //机构名称列表
+      options: [],//转发人列表
+      transmitValue: "", //选中的转发人
+      orderNo:'', //主订单号
+      subOrderId:'', //子订单号
+    };
+  },
+  created() {
+    this.$api.insCompany.dicType("insOrderStatus").then(res => {
+      this.statusoptions = res.data.ddList;
+    });
+    this.$api.letter.gainTopList().then(res => {
+      this.companyList = res.data;
+    });
+    this.$api.dept.findDeptTree().then(res => {
+      this.institutionOptions = res.data;
+    });
+  },
+  methods: {
+    queryStaffInfo() {
+      this.findPage();
+    },
+    statusFormatter(row, column) {
+      //协议类型
+      let status = row.orderstatus;
+      return CommonUtil.getDataName({
+        dataList: this.statusoptions,
+        value: "dictValue",
+        label: "dictTag",
+        data: status
+      });
+    },
+    // 右侧列表的方法Start
+    findPage() {
+      this.$api.task
+        .queryPageHospitalityByChannel({
+          ...this.pageData,
+          ...this.queryFrom,
+          userId: Cookies.get("user")
+          // userId: '99140105M01D01001'
+        })
+        .then(res => {
+          if (res.code == 200) {
+            this.pageResult = res.data;
+          } else {
+            this.$message.error(res.msg);
+          }
+        });
+    },
+    transmit(row) {
+      this.dialogVisible = true;
+      this.transmitValue = "";
+      this.orderNo=row.row.orderno
+      this.subOrderId=row.row.subOrderId
+      this.$api.task.getCustomerUsers().then(res=>{
+        if(res.code==200){
+            this.options=res.data
+        }
+      })
+    },
+    // 收回
+    takeBack(row) {
+      let orderNo=row.row.orderno
+      let subOrderId=row.row.subOrderId
+      this.$api.task.taskPoolsRecover({orderNo,subOrderId}).then(res=>{
+        if(res.code==200){
+            this.$message({
+                message: res.msg,
+                type: 'success'  
+            });
+        }
+        else{
+            this.$message.error(res.msg);
+        }
+      })
+    },
+    transmitSumit() {
+        if(this.transmitValue){
+            this.$api.task.forwardingSubOrders({auditId:this.transmitValue,orderNo:this.orderNo,subOrderId:this.subOrderId}).then(res=>{
+                if(res.code==200){
+                    this.options=res.data
+                    this.dialogVisible = false;
+                    this.findPage()
+                }
+                else{
+                     this.$message.error(res.msg);
+                }
+            })
+            
+        }
+        else{
+            this.$message.error('请选择转发人!');
+
+        }
+    },
+    //联级选择器触发事件
+    handleChange(val) {
+      if (val.length !== 0) {
+        this.queryFrom.deptId = val.at(-1);
+      } else {
+        this.queryFrom.deptId = "";
+      }
+    },
+    monthChange(e) {
+      if (e === null) {
+        this.queryFrom.startDate = "";
+        this.queryFrom.endDate = "";
+      } else {
+        this.queryFrom.startDate = e[0];
+        this.queryFrom.endDate = e[1];
+      }
+    }
+  }
+};
+</script>
+  
+  <style scoped>
+  .widths {
+  width: 200px;
+}
+
+</style>
+  

Разница между файлами не показана из-за своего большого размера
+ 393 - 222
src/views/Task/daikeComponents/KtLetter.vue


+ 43 - 60
src/views/Task/daikeComponents/KtOrder.vue

@@ -33,7 +33,7 @@
             ></el-input>
           </el-form-item>
         </el-col>
-        <el-col :span="6">
+        <!-- <el-col :span="6">
           <el-form-item label="机构名称">
             <el-cascader
               class="widths"
@@ -48,7 +48,7 @@
               clearable
             ></el-cascader>
           </el-form-item>
-        </el-col>
+        </el-col> -->
 
         <el-col :span="6">
           <el-form-item label="录单日期">
@@ -94,7 +94,7 @@
       size="small"
       :data="pageResult"
       border
-      v-loading="loading"
+      v-loading="orderLoaing"
       highlight-current-row
       stripe
       @expand-change="handleRowChange"
@@ -606,6 +606,7 @@ import detailsDialog from "@/views/Core/components/detailsDialog.vue";
 export default {
   data() {
     return {
+      orderLoaing:false,
       qrcodeWidth: "180",
       qrcodeHeight: "180",
       ddgjdialogVisible: false,
@@ -691,7 +692,9 @@ export default {
       querystatusLoaing: false,
       quotationhistorydialogVisible: false, //报价历史显示状态
       HistoryList: [], //报价历史数据
-      natureOfVehicleUseoptions: []
+      natureOfVehicleUseoptions: [],
+      userIdPor:'',
+      statusPor:'',
     };
   },
   components: { quotationDialog, detailsDialog, quotationDialogPro },
@@ -703,19 +706,14 @@ export default {
     this.$api.insCompany.dicType("insOrderStatus").then(res => {
       this.optionsStatus = res.data.ddList;
     });
-    this.peopleid = Cookies.get("user");
-    this.pageRequest.deptId = JSON.parse(
-      localStorage.getItem("user_data")
-    ).deptId;
+    // this.pageRequest.deptId = JSON.parse(
+    //   localStorage.getItem("user_data")
+    // ).deptId;
     this.$api.dept.findDeptTree().then(res => {
       this.institutionOptions = res.data;
     });
-    if (this.peopleid != "admin") {
-      this.pageRequest.userId = this.peopleid;
-      this.findPage();
-    } else {
-      this.pageRequest.userId = "admin";
-    }
+    // this.findPage();
+ 
   },
   mounted() {
     window.addEventListener("resize", this.getDimensions);
@@ -723,12 +721,12 @@ export default {
   beforeCreate() {
     _self = this;
   },
-  props:{
-    orderStatusProp:{
-        type:String,
-        default:'888'
-    }
-  },
+  // props:{
+  //   isdisabled:{
+  //       type:Boolean,
+  //       default:true
+  //   },
+  // },
   filters: {
     cap(ele) {
       return _self.optionsStatus.find(item => {
@@ -890,42 +888,23 @@ export default {
         return "row-expand-cover";
       }
     },
-    //联级选择器触发事件
-    handleChange(val) {
-      if (val.length !== 0) {
-        this.pageRequest.deptId = val.at(-1);
-      } else {
-        this.pageRequest.deptId = "";
-      }
-    },
     getDimensions() {
       this.width = document.documentElement.clientWidth - 350 + "px";
     },
-
     //订单修改
     CloseEdit(index, row) {
       this.$api.letter.getByOrderNo({ orderNo: row.orderno }).then(res => {
-        this.$router.push({
-          path: "/letter/letter",
-          query: { data: res.data }
-        });
+        if(res.code==200){
+          res.data.activeName='999'
+          this.$emit('orderEdit',res.data)
+          // this.$router.push({
+          //   path: "/task/daikeLetter",
+          //   query: { data: {...res.data,activeName} }
+          // });
+        }
+      
       });
     },
-    //关闭报价
-    CloseQoute(index, row) {
-      this.$confirm("是否确认关闭" + row.orderno + "订单?")
-        .then(_ => {
-          this.$api.task.closeOrderno({ quoteno: row.orderno }).then(res => {
-            if (res.code == 200) {
-              this.findPage();
-              this.$message.success("已成功关闭订单");
-            }
-          });
-        })
-        .catch(_ => {
-          this.$message.info("已取消关闭订单");
-        });
-    },
     //二维码生成插件
     creatQrCode(text) {
       if (this.qrcode) {
@@ -2118,24 +2097,28 @@ export default {
     },
     //数据
     findPage() {
-      this.loading = true;
+      console.log(this.statusPor,3333333);
+      this.orderLoaing = true;
       let orderStatus = "";
       orderStatus =
-        this.orderStatusProp == 888 ? "" : this.orderStatusProp;
-      this.$api.letter
-        .queryOrders({ ...this.pageRequest, orderStatus })
+      this.statusPor == 888 ? "" : this.statusPor;
+      this.$api.task
+        .queryPageHospitalityOrder({ ...this.pageRequest, orderStatus,userId:this.userIdPor })
         .then(res => {
           if (res.code == "200") {
-            this.loading = false;
-            this.pageResult = res.data.content;
-            this.pageNum = res.data.pageNum;
-            this.totalSize = res.data.totalSize;
-            this.pageResult.forEach((val, index) => {
-              this.$set(val, "expanded", false);
-            });
+            this.orderLoaing = false;
+            this.$nextTick(()=>{
+              this.pageResult = res.data.content;
+              this.pageNum = res.data.pageNum;
+              this.totalSize = res.data.totalSize;
+              this.pageResult.forEach((val, index) => {
+                this.$set(val, "expanded", false);
+              });
+            })
+           
           } else {
             this.$message.error(res.msg);
-            this.loading = false;
+            this.orderLoaing = false;
           }
         });
     },

Некоторые файлы не были показаны из-за большого количества измененных файлов