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

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

baijunde 2 лет назад
Родитель
Сommit
7107ffb158
44 измененных файлов с 3385 добавлено и 550 удалено
  1. 2 2
      config/dev.env.js
  2. 4 0
      src/assets/css/common.css
  3. 26 0
      src/components/TemplateTable/index.vue
  4. 408 408
      src/http/moudules/letter.js
  5. 14 0
      src/http/moudules/role.js
  6. 36 1
      src/http/moudules/task.js
  7. 39 20
      src/store/modules/menu.js
  8. 2 2
      src/views/AgreementManage/CarInsurance/AgreementEntry.vue
  9. 20 0
      src/views/Core/KtCommonTable.vue
  10. 64 5
      src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/HandlingFees.vue
  11. 52 6
      src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/HandlingFees.vue
  12. 0 60
      src/views/Letter/Appletter.vue
  13. 475 0
      src/views/Letter/Wallet/AmountManagement.vue
  14. 279 0
      src/views/Letter/Wallet/BankCard.vue
  15. 236 0
      src/views/Letter/Wallet/FundsWallet.vue
  16. 329 0
      src/views/Sys/PublicizeImg.vue
  17. 1 0
      src/views/Task/AgentPoolChannel/AgentPoolChannel3.vue
  18. 375 0
      src/views/Task/AgentPoolChannel/BatchOrder.vue
  19. 375 0
      src/views/Task/CompanyPoolChannel/BatchOrder.vue
  20. 151 42
      src/views/Task/CompanyPoolChannel/CompanyPoolChannel3.vue
  21. 375 0
      src/views/Task/TaskPoolChannel/BatchOrder.vue
  22. 9 4
      src/views/Task/TaskPoolChannel/TaskPoolChannel3.vue
  23. 113 0
      src/views/Task/mixin.js
  24. BIN
      static/bankLogo/beijing.png
  25. BIN
      static/bankLogo/bohai.png
  26. BIN
      static/bankLogo/gongshang.png
  27. BIN
      static/bankLogo/guangda.png
  28. BIN
      static/bankLogo/huaxia.png
  29. BIN
      static/bankLogo/img1.png
  30. BIN
      static/bankLogo/jianshe.png
  31. BIN
      static/bankLogo/jiaotong.png
  32. BIN
      static/bankLogo/jinshang.png
  33. BIN
      static/bankLogo/logo.png
  34. BIN
      static/bankLogo/minsheng.png
  35. BIN
      static/bankLogo/nongye.png
  36. BIN
      static/bankLogo/pingan.png
  37. BIN
      static/bankLogo/pufa.png
  38. BIN
      static/bankLogo/xingye.png
  39. BIN
      static/bankLogo/youzheng.png
  40. BIN
      static/bankLogo/zhaoshang.png
  41. BIN
      static/bankLogo/zhongguo.png
  42. BIN
      static/bankLogo/zhongxin.png
  43. BIN
      static/bankadd.png
  44. BIN
      static/bankdel.png

+ 2 - 2
config/dev.env.js

@@ -11,9 +11,9 @@ module.exports = merge(prodEnv, {
   // BASE_URL:'"https://sxzgkj.baoxianzhanggui.com/web-api"'//正式服务器
   // BASE_URL:'"https://sxzgkj.baoxianzhanggui.com/web-api"'//正式服务器
   // BASE_URL: '"http://192.168.0.115:8080/"' //凯森
-  BASE_URL: '"http:///192.168.0.106:8080/"',//屈晨
+  // BASE_URL: '"http:///192.168.0.106:8080/"',//屈晨
   // BASE_URL: '"http:///192.168.0.253:8080/"',//田智
-  // BASE_URL: '"http:///192.168.0.42:8080/"',//武鸿鹏
+  BASE_URL: '"http:///192.168.0.42:8080/"',//武鸿鹏
   // BASE_URL: '"http:///192.168.0.253:8080/"',//田智
   // BASE_URL: '"http:///192.168.0.42:8080/"',//武鸿鹏
   // BASE_URL: '"http://192.168.1.101:8080/"',

+ 4 - 0
src/assets/css/common.css

@@ -31,6 +31,10 @@
 }
 .flex{
 	display: flex;
+
+}
+.f-wrap{
+  flex-wrap: wrap;
 }
 .j-s{
 	justify-content: space-between;

+ 26 - 0
src/components/TemplateTable/index.vue

@@ -29,6 +29,14 @@
                 :value="s.value || s.dictValue"></el-option>
             </el-select>
           </template>
+          <template v-else-if="f.type === 'selectDept'">
+            <el-select  size="small" v-model="searchDataClone[f.prop]" filterable clearable :placeholder="'请选择' + f.label"
+              @change="selectChange($event, f.prop)">
+              <el-option v-for="(option, index) in f.options" :key="index"
+                :label="f.optionsIabel ? option[f.optionsIabel] : option.name"
+                :value="f.optionsValue ? option[f.optionsValue] : option.id"></el-option>
+            </el-select>
+          </template>
           <template v-else-if="f.type === 'datePicker'">
             <!-- 日期区间 -->
             <el-date-picker style="width: 215px;" type="daterange" size="small" v-model="searchDataClone[f.prop]" align="right" unlink-panels
@@ -245,6 +253,24 @@ export default {
   },
 
   methods: {
+    selectChange(id, filed) {
+      switch (filed) {
+        case 'provinceId':
+          break;
+        case 'cityId':
+
+          break;
+        case 'countyId':
+
+          break;
+
+        default:
+          break;
+      }
+      if (id) {
+        this.$emit('areaSelectChange', { id, filed });
+      }
+    },
     formatDateTime(date) {
       let d = new Date(date),
         month = '' + (d.getMonth() + 1),

Разница между файлами не показана из-за своего большого размера
+ 408 - 408
src/http/moudules/letter.js


+ 14 - 0
src/http/moudules/role.js

@@ -107,4 +107,18 @@ export const postViewAll = () => {
         url: '/sys/position/all',
         method: 'get',
     })
+}
+
+export const pictureSave = (data) => {
+    return axios({
+        url: '/sys/qy/wechat/save/picture',
+        method: 'post',
+        data
+    })
+}
+export const pictureFind = (userId) => {
+    return axios({
+        url: '/sys/qy/wechat/find/picture/'+userId,
+        method: 'get',
+    })
 }

+ 36 - 1
src/http/moudules/task.js

@@ -1340,4 +1340,39 @@ export const auditByBankNumber = (data) => {
     method: "post",
     data
   })
-}
+}
+export const batchOrder = (data) => {
+  return axios({
+    url: "/insurance/order/batchOrder",
+    method: "post",
+    data
+  })
+}
+export const getBatchOrder = (params) => {
+  return axios({
+    url: "/insurance/order/getBatchOrder",
+    method: "get",
+    params
+  })
+}
+export const getBatchOrderList = (data) => {
+  return axios({
+    url: "/insurance/order/getBatchOrderList",
+    method: "post",
+    data
+  })
+}
+export const auditBatchOrder = (data) => {
+  return axios({
+    url: "/insurance/order/auditBatchOrder",
+    method: "post",
+    data
+  })
+}
+export const importAsyncQuery = (data) => {
+  return axios({
+    url: "/fnc/importAsync/query",
+    method: "post",
+    data
+  })
+}

+ 39 - 20
src/store/modules/menu.js

@@ -1,28 +1,47 @@
 export default {
-    state: {
-        navTree: [],  // 导航菜单树
-        leftTree: [], //左侧菜单树
-    },
-    getters: {
+  state: {
+    navTree: [],  // 导航菜单树
+    leftTree: [], //左侧菜单树
+    filterList: [
+      "agreementManage/carInsurance/agreementHistoryRecord",
+      "agreementManage/carInsurance/agreementProductFee",
+      "agreementManage/carInsurance/agreementUnderwritingRule",
+      "agreementManage/carInsurance/agreementNonVehicleConfig",
+      "letter/wallet/amountManagement"
+    ]
+  },
+  getters: {
 
-    },
-    mutations: {
-        setNavTree(state, navTree) {  // 设置导航菜单树
-            state.navTree = navTree;
-            if (Array.isArray(navTree) && navTree.length > 0) {
-                state.leftTree = navTree[0].children;
-            }
-        },
-        changeLeftTree(state, id) {
-            for (let i = 0; i < state.navTree.length; i++) {
-                if (state.navTree[i].id === id) {
-                    state.leftTree = state.navTree[i].children;
-                    break;
-                }
+  },
+  mutations: {
+    setNavTree(state, navTree) {  // 设置导航菜单树
+      function filterTree(tree, filterList) {
+        return tree
+          .filter(item => !filterList.includes(item.url))
+          .map(item => {
+            // 如果项目有子项目,则递归过滤子树
+            if (item.children && item.children.length) {
+              return { ...item, children: filterTree(item.children, filterList) };
             }
+            return item;
+          });
+        };
+        const filteredNavTree = filterTree(navTree, state.filterList);
+        state.navTree = filteredNavTree;
+        if (Array.isArray(filteredNavTree) && filteredNavTree.length > 0) {
+          state.leftTree = filteredNavTree[0].children;
+        }
+      },
+      changeLeftTree(state, id) {
+        for (let i = 0; i < state.navTree.length; i++) {
+          if (state.navTree[i].id === id) {
+            state.leftTree = state.navTree[i].children;
+            break;
+          }
         }
+      }
     },
     actions: {
 
     }
-}
+  }

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

@@ -253,8 +253,8 @@
                 </el-form-item>
               </el-col>
               <el-col :span="12">
-                <el-form-item label="保单日期类型" prop="matchType">
-                  <el-select v-model="agreement.matchType" placeholder="请选择保单日期类型" style="width: 100%">
+                <el-form-item label="选择日期类型" prop="matchType">
+                  <el-select v-model="agreement.matchType" placeholder="请选择日期类型" style="width: 100%">
                     <el-option v-for="item in matchTypeoptions" :key="item.dictValue" :label="item.dictTag"
                       :value="item.dictValue"></el-option>
                   </el-select>

+ 20 - 0
src/views/Core/KtCommonTable.vue

@@ -224,6 +224,13 @@
             :icon="button5Icon"
             @click="handleButton5(scope.$index, scope.row)"
           />
+          <kt-button
+            v-if="button6Name"
+            :label="button6Name"
+            :size="size"
+            :type="button6Type"
+            @click="handleButton6(scope.$index, scope.row)"
+          />
         </template>
       </el-table-column>
     </el-table>
@@ -354,6 +361,9 @@ export default {
     button5Name: {
       type: String,
     },
+    button6Name: {
+      type: String,
+    },
     permsButton1: {
       type: String,
     },
@@ -418,6 +428,10 @@ export default {
       type: String,
       default: "primary",
     },
+    button6Type: {
+      type: String,
+      default: "primary",
+    },
     editButtonName: {
       type: String,
     },
@@ -647,6 +661,12 @@ export default {
         row: row,
       });
     },
+    handleButton6: function (index, row) {
+      this.$emit("handleButton6", {
+        index: index,
+        row: row,
+      });
+    },
     handleButton: function (index, row) {
       this.$emit("handleButton", {
         index: index,

+ 64 - 5
src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/HandlingFees.vue

@@ -4,14 +4,14 @@
     <templateTable custom :formList="formList" ref="templateTable" :searchData.sync="searchData"
       :tableConfig="tableConfig" :data="tableData" :btnGroup="btnGroup" @findPage="findPage"
       @handleSearchList="handleSearchList" :pagination="pageData" @getList="getList">
-      <template slot="内部机构">
+      <!-- <template slot="内部机构">
         <el-select v-model="labelData" placeholder="请选择" :popper-append-to-body="false" style="width: 100%" size="small">
           <el-option :value="selectTree" class="deptOption" disabled>
             <el-tree :data="treedata" :props="defaultProps" ref="tree" :highlight-current="true" @n="handleNodeClick"
               default-expand-all></el-tree>
           </el-option>
         </el-select>
-      </template>
+      </template> -->
       <template slot="保司机构">
         <el-cascader v-model="pageData.partnerCompaniesIdList" size="small" :show-all-levels="false" ize="small"
           :options="ztreeNodes" :props="optionProps" clearable filterable></el-cascader>
@@ -285,10 +285,28 @@ export default {
       moneyList: {},
       searchData: {},
       formList: [
+        // {
+        //   label: "内部机构",
+        //   name: "内部机构",
+        //   type: "slot",
+        // },
         {
-          label: "内部机构",
-          name: "内部机构",
-          type: "slot",
+          prop: 'provinceId',
+          label: '省机构名称',
+          type: 'selectDept',
+          options: []
+        },
+        {
+          prop: 'cityId',
+          label: '市机构名称',
+          type: 'selectDept',
+          options: []
+        },
+        {
+          prop: 'countyId',
+          label: '区机构名称',
+          type: 'selectDept',
+          options: []
         },
         {
           label: "保司机构",
@@ -550,6 +568,10 @@ export default {
         isOther: '0',
         isNotDocumentary: '0'
       },
+      pageDataPro: {
+        pageNum: 1,
+        pageSize: 20,
+      },
       formData: {},
       rules: {
         voucherNumber: [
@@ -572,6 +594,8 @@ export default {
     this.findPage();
     this.getDicType("InsInsuranceKind"); //险种类型
     this.getDicType("agreementType"); //险种类型
+    this.areaqueryList(1, 99, "provinceId");
+
     let params = {
       classname: "",
       type: '1',
@@ -596,6 +620,33 @@ export default {
     });
   },
   methods: {
+      //下拉数据匹配
+      selectDataMatching(files, name, data) {
+      files.forEach(filed => {
+        if (filed.prop == name) {
+          filed.options = data;
+        }
+      })
+    },
+    areaqueryList(level, parentId, filed) {
+      this.$api.task.queryListByParentId(level, parentId).then((res) => {
+        this.selectDataMatching(this.formList, filed, res.data);
+      });
+    },
+    areaSelectChange(obj) {
+      switch (obj.filed) {
+        case 'provinceId':
+          this.areaqueryList(2, obj.id, 'cityId')
+          break;
+        case 'cityId':
+          this.areaqueryList(3, obj.id, 'countyId')
+          break;
+        case 'countyId':
+          this.areaqueryList(4, obj.id, 'houseId')
+          break;
+        default:
+      }
+    },
     getDicType(type) {
       this.$api.insCompany.dicType(type).then((res) => {
         if (res.code == 200) {
@@ -806,6 +857,14 @@ export default {
       this.fileList = []
       this.batchData = {}
       this.InvoicingData = {}
+      // this.$api.task.importAsyncQuery(this.pageDataPro)
+      //   .then(res => {
+      //     if (res.code == 200) {
+      //     }
+      //     else {
+      //       this.$message.error(res.msg)
+      //     }
+      //   });
       this.dialogVisibleBatch = true
     },
     templateDownload() {

+ 52 - 6
src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/HandlingFees.vue

@@ -3,15 +3,15 @@
   <div class="container" style="width: 99%; margin-top: 0px">
     <templateTable custom :formList="formList" ref="templateTable" :searchData.sync="searchData"
       :tableConfig="tableConfig" :data="tableData" :btnGroup="btnGroup" @findPage="findPage"
-      @handleSearchList="handleSearchList" :pagination="pageData" @getList="getList">
-      <template slot="内部机构">
+      @handleSearchList="handleSearchList" :pagination="pageData" @areaSelectChange="areaSelectChange" @getList="getList">
+      <!-- <template slot="内部机构">
         <el-select v-model="labelData" placeholder="请选择" :popper-append-to-body="false" style="width: 100%" size="small">
           <el-option :value="selectTree" class="deptOption" disabled>
             <el-tree :data="treedata" :props="defaultProps" ref="tree" :highlight-current="true"
               @node-click="handleNodeClick" default-expand-all></el-tree>
           </el-option>
         </el-select>
-      </template>
+      </template> -->
       <template slot="保司机构">
         <el-cascader v-model="pageData.partnerCompaniesIdList" size="small" :show-all-levels="false" ize="small"
           :options="ztreeNodes" :props="optionProps" clearable filterable></el-cascader>
@@ -221,10 +221,28 @@ export default {
         value: "1",
       }],
       formList: [
+        // {
+        //   label: "内部机构",
+        //   name: "内部机构",
+        //   type: "slot",
+        // },
         {
-          label: "内部机构",
-          name: "内部机构",
-          type: "slot",
+          prop: 'provinceId',
+          label: '省机构名称',
+          type: 'selectDept',
+          options: []
+        },
+        {
+          prop: 'cityId',
+          label: '市机构名称',
+          type: 'selectDept',
+          options: []
+        },
+        {
+          prop: 'countyId',
+          label: '区机构名称',
+          type: 'selectDept',
+          options: []
         },
         {
           label: "保司机构",
@@ -529,6 +547,7 @@ export default {
     });
     this.getDicType("InsInsuranceKind"); //险种类型
     this.getDicType("agreementType"); //险种类型
+    this.areaqueryList(1, 99, "provinceId");
 
     this.findPage();
     let params = {
@@ -555,6 +574,33 @@ export default {
     });
   },
   methods: {
+      //下拉数据匹配
+      selectDataMatching(files, name, data) {
+      files.forEach(filed => {
+        if (filed.prop == name) {
+          filed.options = data;
+        }
+      })
+    },
+    areaqueryList(level, parentId, filed) {
+      this.$api.task.queryListByParentId(level, parentId).then((res) => {
+        this.selectDataMatching(this.formList, filed, res.data);
+      });
+    },
+    areaSelectChange(obj) {
+      switch (obj.filed) {
+        case 'provinceId':
+          this.areaqueryList(2, obj.id, 'cityId')
+          break;
+        case 'cityId':
+          this.areaqueryList(3, obj.id, 'countyId')
+          break;
+        case 'countyId':
+          this.areaqueryList(4, obj.id, 'houseId')
+          break;
+        default:
+      }
+    },
     getDicType(type) {
       this.$api.insCompany.dicType(type).then((res) => {
         if (res.code == 200) {

+ 0 - 60
src/views/Letter/Appletter.vue

@@ -1,60 +0,0 @@
-<template>
-  <div>
-    <div class="iframe-wrap">
-      <iframe :src="this.global.h5BaseUrl" allowtransparency="true" frameborder="0"   scrolling="auto"  width="420" class="iframe" ref="homePage"></iframe>
-    </div>
-  </div>
-</template>
-<script>
-export default {
-  data() {
-    return {
-      clientHeight: "",
-    
-    };
-  },
-  mounted() {
-    // 获取浏览器可视区域高度
-    this.clientHeight = `${document.documentElement.clientHeight}`; //document.body.clientWidth;
-    //console.log(self.clientHeight);
-    window.onresize = function temp() {
-      this.clientHeight = `${document.documentElement.clientHeight}`;
-    };
-  },
-  watch: {
-    // 如果 `clientHeight` 发生改变,这个函数就会运行
-    clientHeight: function () {
-      this.changeFixed(this.clientHeight);
-    },
-  },
-  created() { },
-  methods: {
-    changeFixed(clientHeight) {
-      //动态修改样式
-      this.$refs.homePage.style.height = clientHeight - 120 + "px";
-
-    },
-  },
-};
-</script>
-<style scoped  lang="scss">
-.iframe-wrap {
-  display: flex;
-  justify-content: center;
-  align-items: center;
-}
-.demo-table-expand {
-    font-size: 0;
-    padding: 20px;
-    box-sizing: border-box;
-  }
-  .demo-table-expand label {
-    width: 90px;
-    color: #99a9bf;
-  }
-  .demo-table-expand .el-form-item {
-    margin-right: 0;
-    margin-bottom: 0;
-    width: 50%;
-  }
-</style>

+ 475 - 0
src/views/Letter/Wallet/AmountManagement.vue

@@ -0,0 +1,475 @@
+<!-- 模板区域 -->
+<template>
+  <div id="body">
+    <!-- 模板内容 -->
+    <div  class="flex a-c">
+      <el-button  size="small" type="primary" icon="el-icon-arrow-left" @click="back">
+        返回
+      </el-button>
+      <h2 style="display: inline-block;margin-left: 20px;">{{ pageTitle }}</h2>
+    </div>
+    <div class="content">
+      <div class="header flex a-c j-s">
+        <template v-if="formQuery.amountStatus == '1'">
+          <div class="flex a-end j-s sum">
+            <div class="flex f-c a-start j-s" style="height:100%;">
+              <span>可提现(元)</span>
+              <span v-if="MoneyData.handlingFee" style="font-size: 28px;font-weight: bold;color: #333;">{{
+                MoneyData.handlingFee }}</span>
+              <span v-else>0.00</span>
+            </div>
+            <el-button type="primary" size="small">提现</el-button>
+          </div>
+          <div class="flex f-c a-c j-s">
+            <span>预收金额(元)</span>
+            <span v-if="MoneyData.willHalding">{{ MoneyData.willHalding }}</span>
+            <span v-else>0.00</span>
+          </div>
+          <div class="flex f-c a-c j-s">
+            <span>提现中(元)</span>
+            <span v-if="MoneyData.withdrawalHalding">{{ MoneyData.withdrawalHalding }}</span>
+            <span v-else>0.00</span>
+          </div>
+          <div class="flex f-c a-c j-s">
+            <span>已提现(元)</span>
+            <span v-if="MoneyData.approvedHalding">{{ MoneyData.approvedHalding }}</span>
+            <span v-else>0.00</span>
+          </div>
+        </template>
+        <template v-if="formQuery.amountStatus == '2'">
+          <div class="flex a-end j-s sum">
+            <div class="flex f-c a-start j-s">
+              <span>可提现(元)</span>
+              <span v-if="MoneyData.documentary" style="font-size: 28px;font-weight: bold;color: #333;">{{ MoneyData.documentary }}</span>
+              <span v-else>0.00</span>
+            </div>
+            <el-button type="primary" size="small">提现</el-button>
+          </div>
+          <div class="flex f-c a-c j-s">
+            <span>预收金额(元)</span>
+            <span v-if="MoneyData.willDocumentary">{{ MoneyData.willDocumentary }}</span>
+            <span v-else>0.00</span>
+          </div>
+          <div class="flex f-c a-c j-s">
+            <span>提现中(元)</span>
+            <span v-if="MoneyData.withdrawalDocumentary">{{ MoneyData.withdrawalDocumentary }}</span>
+            <span v-else>0.00</span>
+
+          </div>
+          <div class="flex f-c a-c j-s">
+            <span>已提现(元)</span>
+            <span v-if="MoneyData.approvedDocumentary">{{ MoneyData.approvedDocumentary }}</span>
+            <span v-else>0.00</span>
+
+          </div>
+        </template>
+        <template v-if="formQuery.amountStatus == '3'">
+          <div class="flex a-end j-s sum">
+            <div class="flex f-c a-start j-s">
+              <span>可提现(元)</span>
+              <span v-if="MoneyData.promotion" style="font-size: 28px;font-weight: bold;color: #333;">{{ MoneyData.promotion }}</span>
+            <span v-else>0.00</span>
+
+            </div>
+            <el-button type="primary" size="small">提现</el-button>
+          </div>
+          <div class="flex f-c a-c j-s">
+            <span>预收金额(元)</span>
+            <span v-if="MoneyData.willPromotion">{{ MoneyData.willPromotion }}</span>
+            <span v-else>0.00</span>
+
+          </div>
+          <div class="flex f-c a-c j-s">
+            <span>提现中(元)</span>
+            <span v-if="MoneyData.withdrawalPromotion">{{ MoneyData.withdrawalPromotion }}</span>
+            <span v-else>0.00</span>
+
+          </div>
+          <div class="flex f-c a-c j-s">
+            <span>已提现(元)</span>
+            <span v-if="MoneyData.approvedPromotion">{{ MoneyData.approvedPromotion }}</span>
+            <span v-else>0.00</span>
+          </div>
+        </template>
+      </div>
+      <el-form :inline="true" :model="formQuery" class="demo-form-inline" size="small" style="margin: 15px 0;">
+        <el-row>
+          <el-col :span="8">
+            <el-form-item label="订单状态:">
+              <el-radio-group v-model="formQuery.auditingStatus" @input="radioinput">
+                <el-radio v-for="val in statusList" :key="val.value" :label="val.value">{{ val.label
+                }}</el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
+
+          <el-col :span="8">
+            <el-form-item label="日期查询:">
+              <el-date-picker v-model="datetime" type="date" value-format="yyyy-MM-dd" placeholder="选择日期">
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item>
+              <el-button type="primary" @click="onSubmit">查询</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+      <el-table size="small" :data="[2, 3].includes(formQuery.auditingStatus) ? pageResult : preReceivedPageResult"
+        height="500" border highlight-current-row stripe :header-cell-style="{
+          background: '#F2F7FC',
+          fontWeight: '700',
+          color: '#606266',
+        }">
+        <template v-if="[2, 3].includes(formQuery.auditingStatus)">
+          <el-table-column prop="id" label="订单号" align="center"></el-table-column>
+          <el-table-column prop="createTime" label="提现时间" align="center"></el-table-column>
+          <el-table-column prop="paytime" label="到账时间" align="center"></el-table-column>
+          <el-table-column prop="amount" label="金额" align="center"></el-table-column>
+        </template>
+        <template v-else>
+          <el-table-column prop="id" label="订单号" align="center"></el-table-column>
+          <el-table-column prop="signingTime" label="签单时间" align="center"></el-table-column>
+          <el-table-column prop="licenseno" label="车牌号" align="center"></el-table-column>
+          <el-table-column prop="willAmount" label="金额" align="center"></el-table-column>
+        </template>
+        <el-table-column label="操作" align="center" width="200" fixed="right">
+          <template slot-scope="scope">
+            <el-button size="small" type="primary" @click="OrderDetails(scope.$index, scope.row)">编辑</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+    <!-- 车辆报价新页面 -->
+    <detailsDialog ref="detailsDialog" :orderInfo.sync="orderInfo" :Feepermissions="false"></detailsDialog>
+  </div>
+</template>
+<!-- 行为区域 -->
+<script>
+import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import detailsDialog from "@/views/Core/components/detailsDialog.vue";
+
+export default {
+  components: {
+    KtCommonTable,
+    detailsDialog
+  },
+  // 数据存放区域
+  data() {
+    return {
+      pageResult: [],
+      preReceivedPageResult: [],
+      datetime: '',
+      Columns: [
+        //数据列
+        { prop: "id", label: " 订单号", minWidth: 160 },
+        { prop: "createTime", label: "提现时间", minWidth: 160 },
+        { prop: "paytime", label: "到账时间", minWidth: 160 },
+        { prop: "amount", label: "金额", minWidth: 160 },
+      ],
+      preReceivedColumns: [
+        //数据列
+        { prop: "id", label: " 订单号", minWidth: 160 },
+        { prop: "signingTime", label: "签单时间", minWidth: 160 },
+        { prop: "licenseno", label: "车牌号", minWidth: 160 },
+        { prop: "willAmount", label: "金额", minWidth: 160 },
+      ],
+      activeName: 'first',
+      formQuery: {
+        pageNum: 1,
+        pageSize: 20,
+        auditingStatus: 2,
+        amountStatus: '',
+      },
+      searchType: "",
+      amountType: "1",
+      statusList: [{
+        label: '预收',
+        value: 0,
+        searchType: 1,
+      },
+      {
+        label: '实收',
+        value: 1,
+        searchType: 2,
+      },
+      {
+        label: '提现中',
+        value: 2,
+      },
+      {
+        label: '已提现',
+        value: 3,
+      },
+      ],
+      MoneyData: {},
+      pageTitle:"",
+      orderInfo: {
+        //选中的订单
+        ownerinfo: {},
+        carinfo: {},
+        applyinfo: {},
+        insureinfo: {},
+        kindinfo: [],
+        riskinfo: [],
+        ownerinfo: {},
+        orderCommissionVo: {},
+        extendInfo: {}
+      },
+    }
+  },
+  // 生命周期函数
+  created() {
+    this.formQuery.amountStatus = this.$route.query.type;
+    switch (this.formQuery.amountStatus) {
+      case 1:
+        this.pageTitle="手续金额"
+        break;
+      case 2:
+      this.pageTitle="跟单金额"
+
+        break;
+      case 3:
+      this.pageTitle="推广金额"
+
+        break;
+    }
+    this.amountType = this.$route.query.type;
+    this.datetime = this.transformTime();
+    this.allamount();
+    this.FindPage();
+  },
+  // 方法函数
+  methods: {
+    OrderDetails(index, row) {
+      for (let i = 0; i < this.global.insureList.length; i++) {
+        this.global.insureList[i].coveragePremium = "";
+        this.global.insureList[i].amount = 0;
+      }
+      let params = {
+        companyId: row.id
+      };
+      this.$api.letter.getByCompanyId(params).then(res => {
+        if (res.code == 200) {
+          this.licenseNo = res.data.licenseno; //车牌号
+          this.inscompany = res.data.inscompany; //保险公司
+          // res.data.carinfo.carnature = this.natureOfVehicleUseCap(
+          //   res.data.carinfo.carnature
+          // );
+          if (res.data.accidentInfo) {
+            res.data.accidentInfo.constructor === Object
+              ? [res.data.accidentInfo]
+              : res.data.accidentInfo;
+          }
+          Object.assign(this.orderInfo, res.data);
+          if (this.orderInfo.riskinfo && this.orderInfo.riskinfo.length > 0) {
+            for (let i = 0; i < this.orderInfo.riskinfo.length; i++) {
+              if (this.orderInfo.riskinfo[i].riskCode == "0510") {
+                for (let j = 0; j < this.orderInfo.kindinfo.length; j++) {
+                  for (let m = 0; m < this.global.insureList.length; m++) {
+                    if (
+                      this.orderInfo.kindinfo[j].kindCode ==
+                      this.global.insureList[m].kindCode
+                    ) {
+                      this.global.insureList[
+                        m
+                      ].coveragePremium = this.orderInfo.kindinfo[
+                        j
+                      ].coveragePremium;
+                      if (this.orderInfo.kindinfo[j].kindCode == "B") {
+                        this.global.insureList[9].amtList[0].value = this.orderInfo.kindinfo[
+                          j
+                        ].amount;
+                      }
+                      if (this.orderInfo.kindinfo[j].kindCode == "A") {
+                        this.global.insureList[m].amount = "1";
+                      } else if (this.global.insureList[m].kindCode == "D4") {
+                        this.global.insureList[
+                          m
+                        ].amount = this.orderInfo.kindinfo[j].unitAmount;
+                      } else if (
+                        this.global.insureList[m].isMainRisk ||
+                        this.global.insureList[m].kindCode == "BD" ||
+                        this.global.insureList[m].kindCode == "L"
+                      ) {
+                        this.global.insureList[
+                          m
+                        ].amount = this.orderInfo.kindinfo[j].amount;
+                      } else {
+                        this.global.insureList[
+                          m
+                        ].amount = this.orderInfo.kindinfo[j].deductibleRate;
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+
+
+          this.$refs.detailsDialog.setBackupVisible(true);
+        } else {
+          this.$message.error("订单获取失败");
+        }
+      });
+    },
+
+    ordersUpdate(index,row){
+      console.log(row)
+    },
+    radioinput(id) {
+      let info = this.statusList.find(val => val.value == id)
+      this.searchType = info.searchType;
+    },
+    onSubmit() {
+      switch (this.formQuery.auditingStatus) {
+        case 0:
+        case 1:
+          let param = {
+            timeFiltering: this.datetime,
+            amountType: this.amountType,
+            searchType: this.searchType,
+          }
+          this.$api.letter.sysUsergetInsOrders(param).then((res) => {
+            if (res.code == '200') {
+              this.preReceivedPageResult = res.data.insFeeOrderNewList;
+            } else {
+              this.$message({
+                type: 'error',
+                message: res.msg,
+              });
+            }
+          });
+          break;
+        case 2:
+        case 3:
+          this.FindPage();
+          break;
+      }
+    },
+    allamount() {
+      this.$api.letter.getSysAllAmount().then((res) => {
+        if (res.code == '200') {
+          this.MoneyData = res.data;
+        } else {
+          this.$message({
+            type: 'error',
+            message: res.msg,
+          });
+        }
+      });
+    },
+    productUpdate() {
+
+    },
+    preReceivedFindPage(data) {
+
+    },
+    //产品分页json
+    FindPage(data) {
+      if (data && data.pageRequest) {
+        this.formQuery.pageNum = data.pageRequest.pageNum;
+        this.formQuery.pageSize = data.pageRequest.pageSize;
+      } else {
+        this.formQuery.pageNum = 1;
+        this.formQuery.pageSize = 20;
+      }
+      let params = {
+        [this.formQuery.auditingStatus == 2 ? "withdrawalTime" : "timeFiltering"]: this.datetime,
+      }
+      this.$api.letter.queryAppPage({ ...params, ...this.formQuery }).then((res) => {
+        if (res.code == '200') {
+          this.pageResult = res.data.content;
+        } else {
+          this.$message({
+            type: 'error',
+            message: res.msg,
+          });
+        }
+      });
+    },
+    back() {
+      this.$router.push({
+        path: "fundsWallet",
+      });
+    },
+    handleClick(tab, event) {
+      console.log(tab.label);
+      switch (tab.label) {
+        case "手续金额":
+
+          break;
+        case "车险金额":
+
+          break;
+        case "推广金额":
+
+          break;
+      }
+    },
+    transformTime(day) {
+      var date = new Date();
+      date.setFullYear(date.getFullYear());
+      date.setTime(date.getTime());
+      var strYear = date.getFullYear();
+      var strDay = day ? date.getDate() - day : date.getDate();
+      var strMonth = date.getMonth() + 1;
+      if (strMonth < 10) {
+        strMonth = "0" + strMonth;
+      }
+      if (strDay < 10) {
+        strDay = "0" + strDay;
+      }
+      var datastr = strYear + "-" + strMonth + "-" + strDay;
+      return datastr;
+    },
+  },
+  // 计算属性
+  computed: {
+  }
+}
+</script>
+<!-- 样式区域 -->
+<style lang='scss' scoped>
+#body {
+  padding: 0 24px;
+}
+
+.content {
+  padding: 5px 24px 20px 24px;
+
+  .header {
+    width: 100%;
+    height: 108px;
+    background: #F5F6F8;
+    border-radius: 12px 12px 12px 12px;
+    padding: 15px 40px;
+    box-sizing: border-box;
+
+    >div {
+      width: 25%;
+      height: 100%;
+
+      span:nth-child(2) {
+        font-family: DIN, DIN;
+        font-size: 28px;
+        font-weight: bold;
+      }
+
+    }
+
+    .sum {
+      border-right: 1px solid #D7DBE7;
+      box-sizing: border-box;
+      padding-right: 80px;
+
+      span:nth-child(1) {
+        font-family: DIN, DIN;
+        font-size: 20px;
+        color: rgba(51, 51, 51, 0.8);
+      }
+
+    }
+  }
+}
+</style>

+ 279 - 0
src/views/Letter/Wallet/BankCard.vue

@@ -0,0 +1,279 @@
+<!-- 模板区域 -->
+<template>
+  <div id="body" class="flex f-wrap  a-c">
+    <!-- 模板内容 -->
+    <div class="bankClass " @click="bankAdd">
+      <div class="add flex j-c a-c">
+        <img src="../../../../static/bankadd.png" alt="">
+        <span>添加银行卡提现</span>
+      </div>
+    </div>
+    <div class="bankdata flex f-c j-s" :style="{ background: item.stylelist.background }"
+      v-for="(item, index) in cardPackList" :key="index">
+      <img class="Backgroundimage" src="../../../../static/bankLogo/img1.png" alt="">
+      <div class="flex j-s a-start">
+        <div class="flex">
+          <div class="logo">
+            <img :src="item.stylelist.logo" mode="">
+          </div>
+          <div class="banktitle flex f-c">
+            <span>{{ item.bankAccount }}</span>
+            <span>储蓄卡</span>
+          </div>
+        </div>
+        <img src="../../../../static/bankdel.png" mode="" style="width: 24px;height: 24px;" @click="bankdel(item.id)"
+          v-loading.fullscreen.lock="Loading">
+      </div>
+      <div class="bank flex j-s a-c">
+        <div>****</div>
+        <div>****</div>
+        <div>****</div>
+        <span>{{ item.bankNumber.slice(-4) }}</span>
+      </div>
+    </div>
+    <el-dialog title="添加银行卡" :visible.sync="bankAddVisible" width="30%" >
+      <div class="dialogCentent">
+
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisible = false">取 消</el-button>
+        <el-button size="small" type="primary" @click="dialogVisible = false">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+<!-- 行为区域 -->
+<script>
+export default {
+  // 数据存放区域
+  data() {
+    return {
+      bankAddVisible:false,
+      Loading: false,
+      cardPackList: [],
+      bankList: [{
+        bankName: "中国邮政储蓄银行",
+        logo: "../../../../static/bankLogo/youzheng.png",
+        background: "linear-gradient(90deg, rgba(79, 136, 69, 0.7) 0%, #4f8845 100%)"
+      },
+      {
+        bankName: "中国工商银行",
+        logo: "../../../../static/bankLogo/gongshang.png",
+        background: "linear-gradient(90deg, rgba(177, 0, 13, 0.7) 0%, #b1000d 100%)"
+      },
+      {
+        bankName: "中国农业银行",
+        logo: "../../../../static/bankLogo/nongye.png",
+        background: "linear-gradient(90deg, rgba(86,152, 130, 0.7) 0%, #569882 100%)"
+      },
+      {
+        bankName: "中国银行",
+        logo: "../../../../static/bankLogo/zhongguo.png",
+        background: "linear-gradient(90deg, rgba(157, 32, 40, 0.7) 0%, #9d2028 100%)"
+      },
+      {
+        bankName: "中国建设银行",
+        logo: "../../../../static/bankLogo/jianshe.png",
+        background: "linear-gradient(90deg, rgba(6, 89, 159, 0.7) 0%, #06569F 100%)"
+      },
+      {
+        bankName: "招商银行",
+        logo: "../../../../static/bankLogo/zhaoshang.png",
+        background: "linear-gradient(90deg, rgba(197, 0, 25, 0.7) 0%, #c50019 100%)"
+      },
+      {
+        bankName: "中国民生银行",
+        logo: "../../../../static/bankLogo/minsheng.png",
+        background: "linear-gradient(90deg, rgba(84,149, 92, 0.7) 0%, #54955c 100%)"
+      },
+      {
+        bankName: "中国光大银行",
+        logo: "../../../../static/bankLogo/guangda.png",
+        background: "linear-gradient(90deg, rgba(93, 30, 131, 0.7) 0%, #5d1e83 100%)"
+      },
+      {
+        bankName: "中信银行",
+        logo: "../../../../static/bankLogo/zhongxin.png",
+        background: "linear-gradient(90deg, rgba(184, 0,22, 0.7) 0%, #b80016 100%)"
+      },
+      {
+        bankName: "华夏银行",
+        logo: "../../../../static/bankLogo/huaxia.png",
+        background: "linear-gradient(90deg, rgba(216, 12, 24, 0.7) 0%, #d80c18 100%)"
+      },
+      {
+        bankName: "中国交通银行",
+        logo: "../../../../static/bankLogo/jiaotong.png",
+        background: "linear-gradient(90deg, rgba(33, 58, 120, 0.7) 0%, #213a78 100%)"
+      },
+      {
+        bankName: "晋商银行",
+        logo: "../../../../static/bankLogo/jinshang.png",
+        background: "linear-gradient(90deg, rgba(224, 150, 165, 0.7) 0%, #e096a5 100%)"
+      },
+      ],
+    }
+  },
+  // 生命周期函数
+  created() {
+    this.banklist();
+  },
+  // 方法函数
+  methods: {
+    bankAdd() {
+
+    },
+    bankdel(id) {
+      this.$confirm('是否删除银行卡?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        this.loading = true;
+        this.$api.letter.Bankdelete(id).then((res) => {
+          if (res.code == '200') {
+            this.banklist();
+            this.$message({
+              type: 'success',
+              message: '删除成功!'
+            });
+            this.loading = false;
+          } else {
+            this.$message({
+              type: 'error',
+              message: res.msg,
+            });
+          }
+        });
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消删除'
+        });
+      });
+
+    },
+    banklist() {
+      const loading = this.$loading({
+        lock: true,
+        text: 'Loading',
+        spinner: 'el-icon-loading',
+        background: 'rgba(0, 0, 0, 0.7)'
+      });
+      this.$api.letter.getUserBankList().then((res) => {
+        if (res.code == '200') {
+          res.data.map(val => {
+            let name = this.bankList.find(ele => ele.bankName === val.bankAccount)
+            if (name) {
+              val.stylelist = {
+                ...name
+              };
+            } else {
+              val.stylelist = {
+                logo: "/static/image/bindBank/img1.png",
+                background: 'linear-gradient(90deg, rgba(229, 166,0,0.7) 0%, #e5a600 100%)',
+              }
+            }
+          })
+          this.cardPackList = res.data;
+          loading.close();
+        } else {
+          this.$message({
+            type: 'error',
+            message: res.msg,
+          });
+        }
+      });
+    },
+  },
+  // 计算属性
+  computed: {
+  }
+}
+</script>
+<!-- 样式区域 -->
+<style lang='scss' scoped>
+#body {
+  padding: 24px;
+}
+.bankClass,
+.bankdata {
+  width: 322px;
+  height: 178px;
+  background: linear-gradient(90deg, rgba(45, 77, 137, 0.7) 0%, #2D4D89 100%);
+  border-radius: 12px 12px 12px 12px;
+  font-size: 16px;
+  color: #fff;
+  padding: 14px;
+  margin: 10px 40px;
+  box-sizing: border-box;
+  position: relative;
+  cursor: pointer;
+
+  .Backgroundimage {
+    width: 117px;
+    height: 107px;
+    position: absolute;
+    right: 0;
+    bottom: 0;
+  }
+
+  .banktitle {
+    margin-left: 12px;
+
+    span:first-child {
+      color: #fff;
+      font-weight: 600;
+      font-size: 16px;
+    }
+
+    span:last-child {
+      color: #fff;
+      font-size: 12px;
+    }
+  }
+
+  .bank {
+    font-size: 20px;
+    color: #fff;
+    margin-bottom: 30px;
+
+    span {
+      font-size: 20px;
+    }
+  }
+
+  .add {
+    width: 100%;
+    height: 100%;
+    border-radius: 8px 8px 8px 8px;
+    border: 1px dashed #fff;
+    background: transparent;
+
+    img {
+      width: 28px;
+      height: 28px;
+      margin-right: 16px;
+    }
+  }
+
+  .logo {
+    width: 40px;
+    height: 40px;
+    background: #FFFFFF;
+    border-radius: 8px 8px 8px 8px;
+
+    >img {
+      width: 100%;
+      height: 100%;
+    }
+  }
+
+
+
+}
+
+.bankClass:hover {
+  background: linear-gradient(90deg, rgba(88, 113, 161, 0.7) 0%, #5871A1 100%);
+}
+</style>

+ 236 - 0
src/views/Letter/Wallet/FundsWallet.vue

@@ -0,0 +1,236 @@
+<!-- 模板区域 -->
+<template>
+  <div id="body">
+    <!-- 模板内容 -->
+    <div class="header flex a-c j-s">
+      <div class="flex f-c a-c j-s" @click="toBillDetails(1)">
+        <span>手续金额(元)</span>
+        <span class="color1" v-if="MoneyData.handlingFee">{{ MoneyData.handlingFee.toFixed(2) }}</span>
+        <span class="color1" v-else>0.00</span>
+      </div>
+      <div class="flex f-c a-c j-s center" @click="toBillDetails(2)">
+        <span>车险金额(元)</span>
+        <span class="color2" v-if="MoneyData.documentary">{{ MoneyData.documentary.toFixed(2) }}</span>
+        <span class="color2" v-else>0.00</span>
+      </div>
+      <div class="flex f-c a-c j-s" @click="toBillDetails(3)">
+        <span>推广金额(元)</span>
+        <span class="color3" v-if="MoneyData.promotion">{{ MoneyData.promotion.toFixed(2) }}</span>
+        <span v-else class="color3">0.00</span>
+      </div>
+    </div>
+    <div class="content flex f-wrap j-s a-c">
+      <div class="flex f-c a-c j-s">
+        <span>手续金额预收(元)</span>
+        <span v-if="MoneyData.willHalding">{{ MoneyData.willHalding }}</span>
+        <span v-else>0.00</span>
+      </div>
+      <div class="flex f-c a-c j-s">
+        <span>跟单金额预收(元)</span>
+        <span v-if="MoneyData.willDocumentary">{{ MoneyData.willDocumentary }}</span>
+        <span v-else>0.00</span>
+      </div>
+      <div class="flex f-c a-c j-s">
+        <span>推广金额预收(元)</span>
+        <span v-if="MoneyData.willPromotion">{{ MoneyData.willPromotion }}</span>
+        <span v-else>0.00</span>
+      </div>
+      <div class="flex f-c a-c j-s">
+        <span>手续金额提现中(元)</span>
+        <span v-if="MoneyData.withdrawalHalding">{{ MoneyData.withdrawalHalding }}</span>
+        <span v-else>0.00</span>
+      </div>
+      <div class="flex f-c a-c j-s">
+        <span>跟单金额提现中(元)</span>
+        <span v-if="MoneyData.withdrawalDocumentary">{{ MoneyData.withdrawalDocumentary }}</span>
+        <span v-else>0.00</span>
+      </div>
+      <div class="flex f-c a-c j-s">
+        <span>推广金额提现中(元)</span>
+        <span v-if="MoneyData.withdrawalPromotion">{{ MoneyData.withdrawalPromotion }}</span>
+        <span v-else>0.00</span>
+      </div>
+      <div class="flex f-c a-c j-s">
+        <span>手续金额已提现(元)</span>
+        <span v-if="MoneyData.approvedHalding">{{ MoneyData.approvedHalding }}</span>
+        <span v-else>0.00</span>
+      </div>
+      <div class="flex f-c a-c j-s">
+        <span>跟单金额已提现(元)</span>
+        <span v-if="MoneyData.approvedDocumentary">{{ MoneyData.approvedDocumentary }}</span>
+        <span v-else>0.00</span>
+      </div>
+      <div class="flex f-c a-c j-s">
+        <span>推广金额已提现(元)</span>
+        <span v-if="MoneyData.approvedPromotion">{{ MoneyData.approvedPromotion }}</span>
+        <span v-else>0.00</span>
+      </div>
+    </div>
+  </div>
+</template>
+
+<!-- 行为区域 -->
+<script>
+export default {
+  // 数据存放区域
+  data() {
+    return {
+      MoneyData: {},//数据对象
+    }
+  },
+  // 生命周期函数
+  created() {
+    this.allamount();
+  },
+  // 方法函数
+  methods: {
+    toBillDetails(type) {
+      this.$router.push({
+        path: "amountManagement",
+        query: { type: type },
+      });
+    },
+    allamount() {
+      const loading = this.$loading({
+          lock: true,
+          text: 'Loading',
+          spinner: 'el-icon-loading',
+          background: 'rgba(0, 0, 0, 0.7)'
+        });
+      this.$api.letter.getSysAllAmount().then((res) => {
+        if (res.code == '200') {
+          this.MoneyData = res.data;
+          loading.close();
+        } else {
+          this.$message({
+            type: 'error',
+            message: res.msg,
+          });
+        }
+      });
+    }
+  },
+  // 计算属性
+  computed: {
+  }
+}
+</script>
+<!-- 样式区域 -->
+<style lang='scss' scoped>
+#body {
+  padding: 20px 24px;
+}
+
+.color1 {
+  color: #0052FF;
+}
+
+.color2 {
+  color: #FF5600;
+}
+
+.color3 {
+  color: #229805;
+}
+
+.header {
+  width: 100%;
+  height: 108px;
+  background: #F2F5FD;
+  border-radius: 12px 12px 12px 12px;
+  padding: 16px;
+  box-sizing: border-box;
+
+  div {
+    width: 33.33%;
+    height: 100%;
+
+    span:nth-child(1) {
+      font-size: 20px;
+      color: rgba(51, 51, 51, 0.8);
+    }
+
+    span:nth-child(2) {
+      font-family: DIN, DIN;
+      font-size: 28px;
+      font-weight: bold;
+    }
+  }
+
+  .center {
+    border: 1px solid #D7DBE7;
+    border-top: none;
+    border-bottom: none;
+  }
+}
+
+.content {
+  width: 100%;
+  height: 283px;
+  background: #F5F6F8;
+  border-radius: 12px 12px 12px 12px;
+  padding: 28px;
+  box-sizing: border-box;
+  margin-top: 18px;
+
+  div {
+    width: 33.33%;
+    text-align: left;
+
+    span:nth-child(2) {
+      margin-top: 12px;
+      font-family: DIN, DIN;
+      font-size: 28px;
+      font-weight: bold;
+    }
+  }
+
+  :nth-child(1),
+  :nth-child(4),
+  :nth-child(7) {
+    span:nth-child(1) {
+      &::before {
+        content: "";
+        display: inline-block;
+        width: 10px;
+        height: 10px;
+        background: #0052FF;
+        margin-right: 6px;
+        border-radius: 50%;
+      }
+    }
+  }
+
+  :nth-child(2),
+  :nth-child(5),
+  :nth-child(8) {
+    span:nth-child(1) {
+      &::before {
+        content: "";
+        display: inline-block;
+        width: 10px;
+        height: 10px;
+        background: #FF5600;
+        margin-right: 6px;
+        border-radius: 50%;
+      }
+    }
+  }
+
+  :nth-child(3),
+  :nth-child(6),
+  :nth-child(9) {
+    span:nth-child(1) {
+      &::before {
+        content: "";
+        display: inline-block;
+        width: 10px;
+        height: 10px;
+        background: #229805;
+        margin-right: 6px;
+        border-radius: 50%;
+      }
+    }
+  }
+}
+</style>

+ 329 - 0
src/views/Sys/PublicizeImg.vue

@@ -0,0 +1,329 @@
+<template>
+    <div>
+        <el-main ref="elMain" style="padding: 0px">
+            <Split :gutterSize="2" style="height: calc(100vh - 120px)">
+                <!-- 左侧树Start -->
+                <SplitArea :size="leftSplitWidth" :minSize="240">
+                    <div>
+                        <!-- 左侧树形结构 -->
+                        <el-tree :data="ztreeNodes" :props="{ children: 'children', label: 'name' }" node-key="id"
+                            :default-expanded-keys="['9']" @node-click="onZTreeClick"></el-tree>
+                    </div>
+                </SplitArea>
+                <!-- 左侧树End -->
+
+                <!-- 右侧列表页面Start -->
+                <SplitArea :size="rightSplitWidth">
+                    <!-- 筛选区域Start -->
+                    <el-row class="queryFrom">
+                        <el-form ref="queryFormRef" :model="pageData" label-width="80px" size="small">
+                            <el-row>
+                                <el-col :span="5">
+                                    <el-form-item label="工号">
+                                        <el-input clearable placeholder="工号" v-model="pageData.userId"></el-input>
+                                    </el-form-item>
+                                </el-col>
+                                <el-col :span="5">
+                                    <el-form-item label="姓名">
+                                        <el-input clearable placeholder="姓名" v-model="pageData.name"></el-input>
+                                    </el-form-item>
+                                </el-col>
+                                <el-col :span="5">
+                                    <el-form-item label="手机号">
+                                        <el-input clearable placeholder="手机号" v-model="pageData.mobile"></el-input>
+                                    </el-form-item>
+                                </el-col>
+                                <el-col :span="5">
+                                    <el-form-item label="状态">
+                                        <el-select style="width:200px" clearable v-model="pageData.status"
+                                            placeholder="请选择">
+                                            <el-option v-for="val in user_statusoptions" :label="val.label"
+                                                :value="val.value" :key="val.id"></el-option>
+                                        </el-select>
+                                    </el-form-item>
+                                </el-col>
+                                <el-col :span="5">
+                                    <el-form-item label="领导人">
+                                        <el-select size="small" style="width:215px" clearable filterable
+                                            v-model="pageData.leaderId" placeholder="请选择">
+                                            <el-option v-for="item in searchLeaderOptions" :key="item.id" :label="item.name"
+                                                :value="item.name">
+                                            </el-option>
+                                        </el-select>
+                                    </el-form-item>
+                                </el-col>
+                                <el-col :span="4">
+                                    <el-form-item label="">
+                                        <el-button type="primary" @click="queryStaffInfo">查询</el-button>
+                                    </el-form-item>
+                                </el-col>
+                            </el-row>
+                        </el-form>
+                    </el-row>
+                    <kt-common-table permsEdit="sys:backline:edit" :data="pageResult" :columns="columns" editButtonName="配置图片"
+                        :showBatchDelete="false" @findPage="findPage" @handleEdit="handleTableEdit">
+                    </kt-common-table>
+
+                </SplitArea>
+                <!-- 右侧列表页面End -->
+            </Split>
+        </el-main>
+
+        <!-- 新增修改界面 -->
+        <el-dialog width="20%" :visible.sync="dialogVisible" :close-on-click-modal="false"
+             @close="closeDialog" v-dialogDrag>
+             <div>
+             上传图片: <el-upload
+                action="#"
+                style="display:inline-block"
+                list-type="picture-card"
+                :auto-upload="false"
+                accept=".png, .jpg, .jpeg"
+                :show-file-list="false"
+                :on-change="drivingupload">
+                <img v-if="qrCodeImage" :src="qrCodeImage"  class="avatar">
+                <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+              </el-upload>
+             </div>
+             <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisible = 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 tree from "@/components/ztree.vue"; // 机构树组件
+import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
+import mixa from '../PeopleManage/mixin'
+const mixin = new mixa({
+    treeTypeNum: null
+})
+export default {
+    components: {
+        KtButton,
+        tree,
+        KtCommonTable,
+    },
+    mixins: [mixin],
+    data() {
+        return {
+            qrCodeImage:'',
+            CarFrontFile:{},
+            pageData: {
+                pageNum: 1,
+                pageSize: 20,
+                deptId: JSON.parse(localStorage.getItem('user_data')).deptId,
+                userId: '',
+                realName: '',
+                mobile: '',
+            },
+            formData: {},
+            queryFrom: {},
+            pageResult: {},
+            dialogVisible: false, // 新增编辑界面是否显示
+            departmentList: [], // 选中公司的所有部门的集合
+            deptInfo: {}, //选中机构的基本信息
+            option: [], //机构列表
+            //影像上传列表
+            imagesIdList: [],
+            leaderOptions: [],
+            searchLeaderOptions: {},
+            columns: [
+        // 数据列
+        { prop: "deptId", label: "部门编码", minWidth: 80, sortable: false },
+        {
+          prop: "pdeptName",
+          label: "机构名称",
+          minWidth: 120,
+          sortable: false,
+        },
+
+        { prop: "deptName", label: "部门名称", minWidth: 80, sortable: false },
+
+        { prop: "userId", label: "工号", minWidth: 80, sortable: false },
+        { prop: "name", label: "姓名", minWidth: 120, sortable: false },
+        {
+          prop: "sex",
+          label: "性别",
+          minWidth: 50,
+          sortable: false,
+        },
+        { prop: "mobile", label: "联系电话", minWidth: 100, sortable: false },
+        {
+          prop: "roleId",
+          label: "角色",
+          minWidth: 80,
+          sortable: false,
+        },
+        {
+          prop: "positionName",
+          label: "岗位",
+          minWidth: 120,
+        },
+        {
+          prop: "status",
+          label: "状态",
+          minWidth: 50,
+          sortable: false,
+        },
+      ],
+        };
+    },
+    created() {
+        this.searchLeaderFun()
+    },
+    methods: {
+        drivingupload(file, fileList){
+            let fileRaw = file.raw;
+      this.qrCodeImage = window.URL.createObjectURL(fileRaw);
+        const params = new FormData(); // 声明formData数据类型
+        params.append("multipartFile", file.raw);
+        params.append("type", "image");
+        this.$api.letter.uploadFile(params).then(res => {
+            if (res.code == "200") {
+                this.CarFrontFile=res.data
+            }
+            else{
+            this.$message.error(res.msg)
+            }
+        });
+        },
+        searchLeaderFun() {
+            this.$api.user
+                .findBackListByDeptId({ deptId: this.deptId })
+                .then((res) => {
+                    this.searchLeaderOptions = res.data;
+                });
+        },
+        // 查询Start
+        queryStaffInfo() {
+            this.findPage();
+        },
+        onZTreeClick: function (evt, treeId, treeNode) {
+            // 点击事件
+            this.currentTreeNode = evt;
+            this.deptId = this.currentTreeNode.id;
+            this.pageData.pageNum = 1;
+            this.findPage();
+            this.searchLeaderFun()
+        },
+       
+        // 右侧列表的方法Start
+        findPage(data) {
+            // 获取分页数据
+            if (data && data.pageRequest) {
+                this.pageData.pageNum = data.pageRequest.pageNum;
+                this.pageData.pageSize = data.pageRequest.pageSize;
+            }
+            let dto = {
+                deptId: this.deptId,
+                mobile: this.pageData.mobile,
+                name: this.pageData.name,
+                userId: this.pageData.userId,
+                status: this.pageData.status,
+                agentFlag: 0,
+                leaderName: this.pageData.leaderId,
+                roleId: '22',
+            }
+            this.$api.user
+                .findBackUserList({ dto, pageNum: this.pageData.pageNum, pageSize: this.pageData.pageSize })
+                .then((res) => {
+                    res.data.records.forEach(val => {
+                        if (val.sex && val.sex !== '' && val.sex !== null) {
+                            val.sex = this.sexoptions.find(ele => ele.value == val.sex).label
+                        }
+                        if (val.status && val.status !== '' && val.status !== null) {
+                            val.status = this.user_statusoptions.find(ele => ele.value == val.status).label
+                        }
+                        val.roleId = val.roleName
+                    })
+                    this.pageResult = {
+                        content: res.data.records,
+                        pageNum: res.data.current,
+                        pageSize: res.data.size,
+                        totalPages: res.data.pages,
+                        totalSize: res.data.total,
+                    };
+                })
+
+        },
+        
+        async handleTableEdit(params) {
+            this.formData=params.row
+            this.dialogVisible=true
+            this.CarFrontFile={}
+            this.qrCodeImage=''
+            this.$api.role
+                .pictureFind(params.row.userId)
+                .then((res) => {
+                    if (res.code == "200" ) {
+                        if(res.data){
+                            this.qrCodeImage=process.env.BASE_URL  +res.data.wechatPictureUrl
+                            res.data.url=res.data.wechatPictureUrl
+                            this.CarFrontFile=res.data
+                        }
+                    }
+                    else{
+                        this.$message.error(res.msg)
+                    }
+                })
+        },
+
+        getDictItems(typeName) {
+            //--数据字典--
+            this.$api.dict
+                .findByLableName(typeName)
+                .then((response) => {
+                    this[typeName + "options"] = response.data; // 把获取到的数据赋给this.data
+                })
+                .catch((error) => {
+                    this[typeName + "options"] = [];
+                });
+        },
+        closeDialog() {
+            this.deptInfo = {};
+            this.dialogVisible = false;
+        },
+        // 提交
+        submitForm() {
+            let data={
+                wechatpicture:this.CarFrontFile.id,
+                wechatPictureUrl:this.CarFrontFile.url,
+                userId:this.formData.userId,
+                userName:this.formData.name,
+            }
+            this.$api.role
+                .pictureSave(data)
+                .then((res) => {
+                    if (res.code == "200") {
+                        this.$message({
+                            message: res.msg ||'操作成功',
+                            type: 'success'
+                            });
+                        this.dialogVisible=false
+                    }
+                    else{
+                    this.$message.error(res.msg)
+                    }
+                })
+               
+        },
+    },
+};
+</script>
+  
+<style scoped>
+.avatar {
+  border: 1px dashed #d9d9d9;
+  padding: 5px;
+  border-radius: 6px;
+  width: 150px;
+  height: 150px;
+  display: block;
+}
+</style>
+  

+ 1 - 0
src/views/Task/AgentPoolChannel/AgentPoolChannel3.vue

@@ -5,6 +5,7 @@
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
       @handleButton3="transmit" button2Name="报价轨迹" button2Type="text"
+      button6Name="批单" button6Type="text" @handleButton6="batchOrder"
       @handleButton2="trajectory" button5Name="详情" button5Type="text" @handleButton5="detailFun" button4Name="转发记录" button4Type="text"
       @handleButton4="forwardingRecords" :operationWidth="300"></kt-common-table>
     <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">

+ 375 - 0
src/views/Task/AgentPoolChannel/BatchOrder.vue

@@ -0,0 +1,375 @@
+<template>
+    <!--布局容器-->
+    <div class="container" style="width: 99%; margin-top: 0px">
+        <templateTable :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
+            @getList="getList" @handleSearchList="handleSearchList" :pagination="queryFrom">
+        </templateTable>
+        <!-- <el-dialog :visible.sync="dialogVisibleOrder" width="40%" :before-close="handleCloseOrder">
+            <el-form ref="form" :model="formDataOrder" label-width="120px" size="small" disabled>
+                <h4 class="form_title">车辆信息</h4>
+                <el-row :gutter="20">
+                    <el-col :span="12" v-for="f in formvehicleList" :key="f.prop">
+                        <el-form-item :label="f.label" :prop="f.prop">
+                            <el-input v-model.trim="formDataOrder.carInfo[f.prop]"
+                                :placeholder="'请输入' + f.label"></el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="使用性质" prop="carnature">
+                            <el-select v-model="formDataOrder.carInfo.carnature" placeholder="请选择使用性质" @change="natureFun">
+                                <el-option :label="item.dictTag" :value="item.dictValue"
+                                    v-for="(item, index) in natureOfVehicleUseoptions" :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="车辆用途" prop="vehicleUse">
+                            <el-select v-if="formDataOrder.carInfo.carnature == '02'"
+                                v-model="formDataOrder.carInfo.vehicleUse" placeholder="请选择使车辆用途">
+                                <el-option :label="item.dictTag" :value="item.dictValue"
+                                    v-for="(item, index) in outOfBusinessVehicleUseoptions" :key="index"></el-option>
+                            </el-select>
+                            <el-select v-else v-model="formDataOrder.carInfo.vehicleUse" placeholder="请选择使车辆用途">
+                                <el-option :label="item.dictTag" :value="item.dictValue"
+                                    v-for="(item, index) in businessVehicleUseoptions" :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="车辆类型" prop="cartype">
+                            <el-select v-model="formDataOrder.carInfo.cartype" placeholder="请选择车辆种类" filterable clearable>
+                                <el-option :label="item.dictValue + item.dictTag" :value="item.dictValue"
+                                    v-for="(item, index) in trafficManagementVehicleTypeoptions" :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="车辆种类" prop="cimodelclass">
+                            <el-select v-model="formDataOrder.carInfo.cimodelclass" placeholder="请选择车辆种类" clearable>
+                                <el-option :label="item.dictTag" :value="item.dictValue"
+                                    v-for="(item, index) in vehicleTypeoptions" :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="能源种类" prop="energyType">
+                            <el-select v-model="formDataOrder.carInfo.energyType" placeholder="请选择能源种类">
+                                <el-option :label="item.dictTag" :value="item.dictValue"
+                                    v-for="(item, index) in energyTypeoptions" :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="注册日期" prop="registerDate">
+                            <el-date-picker v-dateFormat v-model="formDataOrder.carInfo.registerDate"
+                                :picker-options="pickerOptions" value-format="yyyy-MM-dd" type="date" placeholder="选择注册日期"
+                                placement="bottom-start"></el-date-picker>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="发证日期" prop="issueDate">
+                            <el-date-picker v-dateFormat v-model="formDataOrder.carInfo.issueDate"
+                                :picker-options="issueDateOptions" type="date" placeholder="选择发证日期"
+                                value-format="yyyy-MM-dd" placement="bottom-start"></el-date-picker>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="转移登记日期" prop="transferDate">
+                            <el-date-picker v-dateFormat v-model="formDataOrder.carInfo.transferDate"
+                                :picker-options="pickerOptions" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"
+                                placement="bottom-start"></el-date-picker>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="是否过户" prop="transferFlag">
+                            <el-select v-model="formDataOrder.carInfo.transferFlag" placeholder="请选择是否过户">
+                                <el-option :label="item.label" :value="item.value" v-for="(item, index) in whetheroptions"
+                                    :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="商业险是否过户" prop="transferFlagBi">
+                            <el-select v-model="formDataOrder.carInfo.transferFlagBi" placeholder="请选择商业险是否过户">
+                                <el-option :label="item.label" :value="item.value" v-for="(item, index) in whetheroptions"
+                                    :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="是否脱保" prop="outOfInsurance">
+                            <el-select v-model="formDataOrder.carInfo.outOfInsurance" placeholder="请选择是否脱保">
+                                <el-option :label="item.label" :value="item.value" v-for="(item, index) in whetheroptions"
+                                    :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="是否二手车" prop="usedCar">
+                            <el-select v-model="formDataOrder.carInfo.usedCar" placeholder="请选择是否二手车">
+                                <el-option :label="item.label" :value="item.value" v-for="(item, index) in whetheroptions"
+                                    :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <h4 class="form_title">车主信息</h4>
+                <el-row>
+                    <el-col :span="12" v-for="f in formownersList" :key="f.prop">
+                        <el-form-item :label="f.label" :prop="f.prop">
+                            <el-input v-model.trim="formDataOrder.ownerInfo[f.prop]"
+                                :placeholder="'请输入' + f.label"></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <h4 class="form_title">投保人信息</h4>
+                <el-row>
+                    <el-col :span="12" v-for="f in formPolicyholderList" :key="f.prop">
+                        <el-form-item :label="f.label" :prop="f.prop">
+                            <el-input v-model.trim="formDataOrder.applyInfo[f.prop]"
+                                :placeholder="'请输入' + f.label"></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <h4 class="form_title">被保人信息</h4>
+                <el-row>
+                    <el-col :span="12" v-for="f in forminsureinfoList" :key="f.prop">
+                        <el-form-item :label="f.label" :prop="f.prop">
+                            <el-input v-model.trim="formDataOrder.insureInfo[f.prop]"
+                                :placeholder="'请输入' + f.label"></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+            </el-form>
+            <span slot="footer" class="dialog-footer">
+                <el-button size="small" @click="dialogVisibleOrder = false">取 消</el-button>
+                <el-button size="small" @click="handAuditing">审核</el-button>
+            </span>
+        </el-dialog> -->
+    </div>
+</template>
+<script>
+import templateTable from '../../../components/TemplateTable/index.vue'
+import { mixin } from "../mixin";
+
+export default {
+    name: "baosi",
+    components: { templateTable, },
+    created() {
+        this.getList();
+    },
+    mixins: [mixin],
+    data() {
+        return {
+            isAuditoption: [
+                {
+                    label: '未审核',
+                    value: '0'
+                }, {
+                    label: '审核通过',
+                    value: '1'
+                }, {
+                    label: '审核驳回',
+                    value: '2'
+                },
+            ],
+            formList: [
+                {
+                    label: "车牌号",
+                    prop: "licenseNo",
+                    type: "input",
+                },
+                {
+                    label: "发动机号",
+                    prop: "engineNo",
+                    type: "input",
+                },
+                {
+                    label: "车辆识别代码",
+                    prop: "frameNo",
+                    type: "input",
+                },
+                {
+                    label: "审核状态",
+                    prop: "isAudit",
+                    type: "select",
+                    options: [
+                        {
+                            label: '未审核',
+                            value: '0'
+                        }, {
+                            label: '审核通过',
+                            value: '1'
+                        }, {
+                            label: '审核驳回',
+                            value: '2'
+                        },
+                    ],
+                },
+            ],
+            searchData: {},
+            tableConfig: {
+                columns: [
+                    {
+                        prop: 'licenseNo', label: '车牌', type: 'text',
+                    },
+                    {
+                        prop: 'vinNo', label: '车架号', type: 'text',
+                    },
+                    {
+                        prop: 'tbrname', label: '投保人姓名', type: 'text',
+                    }, {
+                        prop: 'identifyNumber', label: '身份证号', type: 'text',
+                    }, {
+                        prop: 'isAudit', label: '审核状态', type: 'text',
+                    },
+                ],
+                loading: true,
+                // operateShow: true,
+                isPaginationShow: true,
+                // operationWidth: '150',
+                optBtns: [
+                    {
+                        type: 'primary',
+                        label: '审核',
+                        click: (row, index) => { return this.modifyFun(row) },
+                    }
+                ]
+            },
+
+            queryFrom: {
+                pageNum: 1,
+                pageSize: 10,
+                totalSize: 0
+            },
+            tableData: [],
+            dialogVisible: false,
+
+        };
+    },
+    methods: {
+        handAuditing() {
+            // this.$prompt('是否审核通过,输入驳回原因', '提示', {
+            //     confirmButtonText: '审核驳回',
+            //     cancelButtonText: '审核通过',
+            //     inputPattern: /^.+$/,
+            //     distinguishCancelAndClose: true,
+            //     inputErrorMessage: '输入驳回原因!'
+            // }).then(({ value }) => {
+            //     this.$api.task.auditBatchOrder({ orderNo: this.formDataOrder.subOrderNo, isAudit: '2', rejectReason: value }).then(res => {
+            //         if (res.code == 200) {
+            //             this.findPage();
+            //             this.$message({
+            //                 type: 'success',
+            //                 message: '审核驳回通过'
+            //             });
+            //         }
+            //         else {
+            //             this.$message.error(res.msg)
+            //         }
+            //     })
+            // }).catch((action) => {
+            //     if (action === 'cancel') {
+            //         this.$api.task.auditBatchOrder({ orderNo: this.formDataOrder.subOrderNo, isAudit: '1', }).then(res => {
+            //             if (res.code == 200) {
+            //                 this.findPage();
+            //                 this.$message({
+            //                     type: 'success',
+            //                     message: '审核通过'
+            //                 });
+            //             }
+            //             else {
+            //                 this.$message.error(res.msg)
+            //             }
+            //         })
+            //     }
+            // });
+        },
+
+        modifyFun(row) {
+            // this.$api.task.getBatchOrder({ subOrderNo: row.subOrderNo }).then(res => {
+            //     if (res.code == 200) {
+            //         this.dialogVisibleOrder = true
+            //         this.formDataOrder = res.data
+            //     }
+            //     else {
+            //         this.$message.error(res.msg)
+            //     }
+            // })
+                this.$prompt('是否审核通过,输入驳回原因', '提示', {
+                confirmButtonText: '审核驳回',
+                  cancelButtonText: '审核通过',
+                  inputPattern: /^.+$/,
+                  distinguishCancelAndClose: true,
+                inputErrorMessage: '输入驳回原因!'
+                }).then(({ value }) => {
+                    this.$api.task.auditBatchOrder({ orderNo:row.subOrderNo, isAudit: '2', rejectReason: value }).then(res => {
+                    if (res.code == 200) {
+                        this.findPage();
+                        this.$message({
+                        type: 'success',
+                        message: '审核驳回通过'
+                        });
+                    }
+                    else {
+                        this.$message.error(res.msg)
+                    }
+                })
+            }) .catch((action) => {
+                if (action === 'cancel') {
+                  this.$api.task.auditBatchOrder({ orderNo:row.subOrderNo, isAudit: '1', }).then(res => {
+                    if (res.code == 200) {
+                      this.dialogVisible = false
+                      this.findPage();
+                      this.$message({
+                        type: 'success',
+                        message: '审核通过'
+                      });
+                    }
+                    else {
+                      this.$message.error(res.msg)
+                    }
+                  })
+                }
+              });
+        },
+        handleSearchList(data) {
+            this.getList(data)
+        },
+        //列表数据
+        getList(data) {
+            this.tableConfig.loading = true;
+            this.$api.task.getBatchOrderList({ ...data, ...this.queryFrom }).then(res => {
+                if (res.data) {
+                    res.data.records.forEach(e => {
+                        e.licenseNo = e.carInfo.licenseNo? e.carInfo.licenseNo:''
+                        e.vinNo = e.carInfo.vinNo?e.carInfo.vinNo:''
+                        e.tbrname = e.applyInfo.name?e.applyInfo.name:''
+                        e.identifyNumber = e.applyInfo.identifyNumber?e.applyInfo.identifyNumber:''
+                          this.isAuditoption.find(val => {
+                                if (val.value == e.isAudit) {
+                                    e.isAudit = val.label
+                                }
+                            })
+                    })
+
+                    this.tableData = res.data.records;
+                    this.queryFrom.pageNum = res.data.pageNum;
+                    this.queryFrom.pageSize = res.data.pageSize;
+                    this.queryFrom.totalSize = res.data.totalSize;
+                    this.tableConfig.loading = false;
+
+                } else {
+                    this.tableConfig.loading = false;
+                }
+            });
+        },
+
+
+
+    }
+};
+</script>
+    
+<style scoped></style>
+    

+ 375 - 0
src/views/Task/CompanyPoolChannel/BatchOrder.vue

@@ -0,0 +1,375 @@
+<template>
+    <!--布局容器-->
+    <div class="container" style="width: 99%; margin-top: 0px">
+        <templateTable :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
+            @getList="getList" @handleSearchList="handleSearchList" :pagination="queryFrom">
+        </templateTable>
+        <!-- <el-dialog :visible.sync="dialogVisibleOrder" width="40%" :before-close="handleCloseOrder">
+            <el-form ref="form" :model="formDataOrder" label-width="120px" size="small" disabled>
+                <h4 class="form_title">车辆信息</h4>
+                <el-row :gutter="20">
+                    <el-col :span="12" v-for="f in formvehicleList" :key="f.prop">
+                        <el-form-item :label="f.label" :prop="f.prop">
+                            <el-input v-model.trim="formDataOrder.carInfo[f.prop]"
+                                :placeholder="'请输入' + f.label"></el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="使用性质" prop="carnature">
+                            <el-select v-model="formDataOrder.carInfo.carnature" placeholder="请选择使用性质" @change="natureFun">
+                                <el-option :label="item.dictTag" :value="item.dictValue"
+                                    v-for="(item, index) in natureOfVehicleUseoptions" :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="车辆用途" prop="vehicleUse">
+                            <el-select v-if="formDataOrder.carInfo.carnature == '02'"
+                                v-model="formDataOrder.carInfo.vehicleUse" placeholder="请选择使车辆用途">
+                                <el-option :label="item.dictTag" :value="item.dictValue"
+                                    v-for="(item, index) in outOfBusinessVehicleUseoptions" :key="index"></el-option>
+                            </el-select>
+                            <el-select v-else v-model="formDataOrder.carInfo.vehicleUse" placeholder="请选择使车辆用途">
+                                <el-option :label="item.dictTag" :value="item.dictValue"
+                                    v-for="(item, index) in businessVehicleUseoptions" :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="车辆类型" prop="cartype">
+                            <el-select v-model="formDataOrder.carInfo.cartype" placeholder="请选择车辆种类" filterable clearable>
+                                <el-option :label="item.dictValue + item.dictTag" :value="item.dictValue"
+                                    v-for="(item, index) in trafficManagementVehicleTypeoptions" :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="车辆种类" prop="cimodelclass">
+                            <el-select v-model="formDataOrder.carInfo.cimodelclass" placeholder="请选择车辆种类" clearable>
+                                <el-option :label="item.dictTag" :value="item.dictValue"
+                                    v-for="(item, index) in vehicleTypeoptions" :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="能源种类" prop="energyType">
+                            <el-select v-model="formDataOrder.carInfo.energyType" placeholder="请选择能源种类">
+                                <el-option :label="item.dictTag" :value="item.dictValue"
+                                    v-for="(item, index) in energyTypeoptions" :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="注册日期" prop="registerDate">
+                            <el-date-picker v-dateFormat v-model="formDataOrder.carInfo.registerDate"
+                                :picker-options="pickerOptions" value-format="yyyy-MM-dd" type="date" placeholder="选择注册日期"
+                                placement="bottom-start"></el-date-picker>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="发证日期" prop="issueDate">
+                            <el-date-picker v-dateFormat v-model="formDataOrder.carInfo.issueDate"
+                                :picker-options="issueDateOptions" type="date" placeholder="选择发证日期"
+                                value-format="yyyy-MM-dd" placement="bottom-start"></el-date-picker>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="转移登记日期" prop="transferDate">
+                            <el-date-picker v-dateFormat v-model="formDataOrder.carInfo.transferDate"
+                                :picker-options="pickerOptions" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"
+                                placement="bottom-start"></el-date-picker>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="是否过户" prop="transferFlag">
+                            <el-select v-model="formDataOrder.carInfo.transferFlag" placeholder="请选择是否过户">
+                                <el-option :label="item.label" :value="item.value" v-for="(item, index) in whetheroptions"
+                                    :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="商业险是否过户" prop="transferFlagBi">
+                            <el-select v-model="formDataOrder.carInfo.transferFlagBi" placeholder="请选择商业险是否过户">
+                                <el-option :label="item.label" :value="item.value" v-for="(item, index) in whetheroptions"
+                                    :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="是否脱保" prop="outOfInsurance">
+                            <el-select v-model="formDataOrder.carInfo.outOfInsurance" placeholder="请选择是否脱保">
+                                <el-option :label="item.label" :value="item.value" v-for="(item, index) in whetheroptions"
+                                    :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="是否二手车" prop="usedCar">
+                            <el-select v-model="formDataOrder.carInfo.usedCar" placeholder="请选择是否二手车">
+                                <el-option :label="item.label" :value="item.value" v-for="(item, index) in whetheroptions"
+                                    :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <h4 class="form_title">车主信息</h4>
+                <el-row>
+                    <el-col :span="12" v-for="f in formownersList" :key="f.prop">
+                        <el-form-item :label="f.label" :prop="f.prop">
+                            <el-input v-model.trim="formDataOrder.ownerInfo[f.prop]"
+                                :placeholder="'请输入' + f.label"></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <h4 class="form_title">投保人信息</h4>
+                <el-row>
+                    <el-col :span="12" v-for="f in formPolicyholderList" :key="f.prop">
+                        <el-form-item :label="f.label" :prop="f.prop">
+                            <el-input v-model.trim="formDataOrder.applyInfo[f.prop]"
+                                :placeholder="'请输入' + f.label"></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <h4 class="form_title">被保人信息</h4>
+                <el-row>
+                    <el-col :span="12" v-for="f in forminsureinfoList" :key="f.prop">
+                        <el-form-item :label="f.label" :prop="f.prop">
+                            <el-input v-model.trim="formDataOrder.insureInfo[f.prop]"
+                                :placeholder="'请输入' + f.label"></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+            </el-form>
+            <span slot="footer" class="dialog-footer">
+                <el-button size="small" @click="dialogVisibleOrder = false">取 消</el-button>
+                <el-button size="small" @click="handAuditing">审核</el-button>
+            </span>
+        </el-dialog> -->
+    </div>
+</template>
+<script>
+import templateTable from '../../../components/TemplateTable/index.vue'
+import { mixin } from "../mixin";
+
+export default {
+    name: "baosi",
+    components: { templateTable, },
+    created() {
+        this.getList();
+    },
+    mixins: [mixin],
+    data() {
+        return {
+            isAuditoption: [
+                {
+                    label: '未审核',
+                    value: '0'
+                }, {
+                    label: '审核通过',
+                    value: '1'
+                }, {
+                    label: '审核驳回',
+                    value: '2'
+                },
+            ],
+            formList: [
+                {
+                    label: "车牌号",
+                    prop: "licenseNo",
+                    type: "input",
+                },
+                {
+                    label: "发动机号",
+                    prop: "engineNo",
+                    type: "input",
+                },
+                {
+                    label: "车辆识别代码",
+                    prop: "frameNo",
+                    type: "input",
+                },
+                {
+                    label: "审核状态",
+                    prop: "isAudit",
+                    type: "select",
+                    options: [
+                        {
+                            label: '未审核',
+                            value: '0'
+                        }, {
+                            label: '审核通过',
+                            value: '1'
+                        }, {
+                            label: '审核驳回',
+                            value: '2'
+                        },
+                    ],
+                },
+            ],
+            searchData: {},
+            tableConfig: {
+                columns: [
+                    {
+                        prop: 'licenseNo', label: '车牌', type: 'text',
+                    },
+                    {
+                        prop: 'vinNo', label: '车架号', type: 'text',
+                    },
+                    {
+                        prop: 'tbrname', label: '投保人姓名', type: 'text',
+                    }, {
+                        prop: 'identifyNumber', label: '身份证号', type: 'text',
+                    }, {
+                        prop: 'isAudit', label: '审核状态', type: 'text',
+                    },
+                ],
+                loading: true,
+                // operateShow: true,
+                isPaginationShow: true,
+                // operationWidth: '150',
+                optBtns: [
+                    {
+                        type: 'primary',
+                        label: '审核',
+                        click: (row, index) => { return this.modifyFun(row) },
+                    }
+                ]
+            },
+
+            queryFrom: {
+                pageNum: 1,
+                pageSize: 10,
+                totalSize: 0
+            },
+            tableData: [],
+            dialogVisible: false,
+
+        };
+    },
+    methods: {
+        handAuditing() {
+            // this.$prompt('是否审核通过,输入驳回原因', '提示', {
+            //     confirmButtonText: '审核驳回',
+            //     cancelButtonText: '审核通过',
+            //     inputPattern: /^.+$/,
+            //     distinguishCancelAndClose: true,
+            //     inputErrorMessage: '输入驳回原因!'
+            // }).then(({ value }) => {
+            //     this.$api.task.auditBatchOrder({ orderNo: this.formDataOrder.subOrderNo, isAudit: '2', rejectReason: value }).then(res => {
+            //         if (res.code == 200) {
+            //             this.findPage();
+            //             this.$message({
+            //                 type: 'success',
+            //                 message: '审核驳回通过'
+            //             });
+            //         }
+            //         else {
+            //             this.$message.error(res.msg)
+            //         }
+            //     })
+            // }).catch((action) => {
+            //     if (action === 'cancel') {
+            //         this.$api.task.auditBatchOrder({ orderNo: this.formDataOrder.subOrderNo, isAudit: '1', }).then(res => {
+            //             if (res.code == 200) {
+            //                 this.findPage();
+            //                 this.$message({
+            //                     type: 'success',
+            //                     message: '审核通过'
+            //                 });
+            //             }
+            //             else {
+            //                 this.$message.error(res.msg)
+            //             }
+            //         })
+            //     }
+            // });
+        },
+
+        modifyFun(row) {
+            // this.$api.task.getBatchOrder({ subOrderNo: row.subOrderNo }).then(res => {
+            //     if (res.code == 200) {
+            //         this.dialogVisibleOrder = true
+            //         this.formDataOrder = res.data
+            //     }
+            //     else {
+            //         this.$message.error(res.msg)
+            //     }
+            // })
+                this.$prompt('是否审核通过,输入驳回原因', '提示', {
+                confirmButtonText: '审核驳回',
+                  cancelButtonText: '审核通过',
+                  inputPattern: /^.+$/,
+                  distinguishCancelAndClose: true,
+                inputErrorMessage: '输入驳回原因!'
+                }).then(({ value }) => {
+                    this.$api.task.auditBatchOrder({ orderNo:row.subOrderNo, isAudit: '2', rejectReason: value }).then(res => {
+                    if (res.code == 200) {
+                        this.findPage();
+                        this.$message({
+                        type: 'success',
+                        message: '审核驳回通过'
+                        });
+                    }
+                    else {
+                        this.$message.error(res.msg)
+                    }
+                })
+            }) .catch((action) => {
+                if (action === 'cancel') {
+                  this.$api.task.auditBatchOrder({ orderNo:row.subOrderNo, isAudit: '1', }).then(res => {
+                    if (res.code == 200) {
+                      this.dialogVisible = false
+                      this.findPage();
+                      this.$message({
+                        type: 'success',
+                        message: '审核通过'
+                      });
+                    }
+                    else {
+                      this.$message.error(res.msg)
+                    }
+                  })
+                }
+              });
+        },
+        handleSearchList(data) {
+            this.getList(data)
+        },
+        //列表数据
+        getList(data) {
+            this.tableConfig.loading = true;
+            this.$api.task.getBatchOrderList({ ...data, ...this.queryFrom }).then(res => {
+                if (res.data) {
+                    res.data.records.forEach(e => {
+                        e.licenseNo = e.carInfo.licenseNo? e.carInfo.licenseNo:''
+                        e.vinNo = e.carInfo.vinNo?e.carInfo.vinNo:''
+                        e.tbrname = e.applyInfo.name?e.applyInfo.name:''
+                        e.identifyNumber = e.applyInfo.identifyNumber?e.applyInfo.identifyNumber:''
+                          this.isAuditoption.find(val => {
+                                if (val.value == e.isAudit) {
+                                    e.isAudit = val.label
+                                }
+                            })
+                    })
+
+                    this.tableData = res.data.records;
+                    this.queryFrom.pageNum = res.data.pageNum;
+                    this.queryFrom.pageSize = res.data.pageSize;
+                    this.queryFrom.totalSize = res.data.totalSize;
+                    this.tableConfig.loading = false;
+
+                } else {
+                    this.tableConfig.loading = false;
+                }
+            });
+        },
+
+
+
+    }
+};
+</script>
+    
+<style scoped></style>
+    

+ 151 - 42
src/views/Task/CompanyPoolChannel/CompanyPoolChannel3.vue

@@ -3,9 +3,11 @@
     <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
-      :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
-      @handleButton3="transmit" button2Name="报价轨迹" button2Type="text"
-      @handleButton2="trajectory" button5Name="详情" button5Type="text" @handleButton5="detailFun" button4Name="转发记录" button4Type="text"
+      :showBatchDelete="false" @findPage="findPage"
+       button3Name="转发" button3Type="text" @handleButton3="transmit"
+        button2Name="报价轨迹" button2Type="text" @handleButton2="trajectory"
+      button6Name="批单" button6Type="text" @handleButton6="batchOrder"
+       button5Name="详情" button5Type="text" @handleButton5="detailFun" button4Name="转发记录" button4Type="text"
       @handleButton4="forwardingRecords" :operationWidth="300"></kt-common-table>
     <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
       转发人:
@@ -51,6 +53,144 @@
         <el-table-column property="createTime" align="center" label="转发时间"></el-table-column>
       </el-table>
     </el-dialog>
+    <el-dialog
+    :visible.sync="dialogVisibleOrder"
+    width="40%"
+    :before-close="handleCloseOrder">
+    <el-form ref="form" :model="formDataOrder" label-width="120px" size="small">
+      <h4 class="form_title">车辆信息</h4>
+      <el-row :gutter="20">
+        <el-col :span="12"  v-for="f in formvehicleList" :key="f.prop">
+          <el-form-item  :label="f.label" :prop="f.prop">
+              <el-input v-model.trim="formDataOrder.carinfo[f.prop]"  :placeholder="'请输入' + f.label"></el-input>
+            </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="使用性质" prop="carnature">
+              <el-select v-model="formDataOrder.carinfo.carnature" placeholder="请选择使用性质" @change="natureFun">
+                <el-option :label="item.dictTag" :value="item.dictValue"
+                  v-for="(item, index) in natureOfVehicleUseoptions" :key="index"></el-option>
+              </el-select>
+            </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="车辆用途" prop="vehicleUse">
+              <el-select v-if="formDataOrder.carinfo.carnature == '02'" v-model="formDataOrder.carinfo.vehicleUse" placeholder="请选择使车辆用途">
+                <el-option :label="item.dictTag" :value="item.dictValue"
+                  v-for="(item, index) in outOfBusinessVehicleUseoptions" :key="index"></el-option>
+              </el-select>
+              <el-select v-else v-model="formDataOrder.carinfo.vehicleUse" placeholder="请选择使车辆用途">
+                <el-option :label="item.dictTag" :value="item.dictValue"
+                  v-for="(item, index) in businessVehicleUseoptions" :key="index"></el-option>
+              </el-select>
+            </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="车辆类型" prop="cartype">
+              <el-select v-model="formDataOrder.carinfo.cartype" placeholder="请选择车辆种类" filterable clearable>
+                <el-option :label="item.dictValue + item.dictTag" :value="item.dictValue"
+                  v-for="(item, index) in trafficManagementVehicleTypeoptions" :key="index"></el-option>
+              </el-select>
+            </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="车辆种类" prop="cimodelclass">
+              <el-select v-model="formDataOrder.carinfo.cimodelclass" placeholder="请选择车辆种类" clearable>
+                <el-option :label="item.dictTag" :value="item.dictValue" v-for="(item, index) in vehicleTypeoptions"
+                  :key="index"></el-option>
+              </el-select>
+            </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="能源种类" prop="energyType">
+              <el-select v-model="formDataOrder.carinfo.energyType" placeholder="请选择能源种类">
+                <el-option :label="item.dictTag" :value="item.dictValue" v-for="(item, index) in energyTypeoptions"
+                  :key="index"></el-option>
+              </el-select>
+            </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="注册日期" prop="registerDate">
+              <el-date-picker v-dateFormat v-model="formDataOrder.carinfo.registerDate" :picker-options="pickerOptions"
+                value-format="yyyy-MM-dd" type="date" placeholder="选择注册日期" placement="bottom-start"></el-date-picker>
+            </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="发证日期" prop="issueDate">
+              <el-date-picker v-dateFormat v-model="formDataOrder.carinfo.issueDate" :picker-options="issueDateOptions" type="date"
+                placeholder="选择发证日期" value-format="yyyy-MM-dd" placement="bottom-start"></el-date-picker>
+            </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="转移登记日期" prop="transferDate">
+              <el-date-picker v-dateFormat v-model="formDataOrder.carinfo.transferDate" :picker-options="pickerOptions" type="date"
+                placeholder="选择日期" value-format="yyyy-MM-dd" placement="bottom-start"></el-date-picker>
+            </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="是否过户" prop="transferFlag">
+              <el-select v-model="formDataOrder.carinfo.transferFlag" placeholder="请选择是否过户">
+                <el-option :label="item.label" :value="item.value" v-for="(item, index) in whetheroptions"
+                  :key="index"></el-option>
+              </el-select>
+            </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="商业险是否过户" prop="transferFlagBi">
+              <el-select v-model="formDataOrder.carinfo.transferFlagBi" placeholder="请选择商业险是否过户">
+                <el-option :label="item.label" :value="item.value" v-for="(item, index) in whetheroptions"
+                  :key="index"></el-option>
+              </el-select>
+            </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="是否脱保" prop="outOfInsurance">
+              <el-select v-model="formDataOrder.carinfo.outOfInsurance" placeholder="请选择是否脱保">
+                <el-option :label="item.label" :value="item.value" v-for="(item, index) in whetheroptions"
+                  :key="index"></el-option>
+              </el-select>
+            </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="是否二手车" prop="usedCar">
+              <el-select v-model="formDataOrder.carinfo.usedCar" placeholder="请选择是否二手车">
+                <el-option :label="item.label" :value="item.value" v-for="(item, index) in whetheroptions"
+                  :key="index"></el-option>
+              </el-select>
+            </el-form-item>
+        </el-col>
+      </el-row>
+      <h4 class="form_title">车主信息</h4>
+      <el-row>
+        <el-col :span="12" v-for="f in formownersList" :key="f.prop">
+          <el-form-item  :label="f.label" :prop="f.prop">
+              <el-input  v-model.trim="formDataOrder.ownerinfo[f.prop]"  :placeholder="'请输入' + f.label"></el-input>
+            </el-form-item>
+        </el-col>
+      </el-row>
+      <h4 class="form_title">投保人信息</h4>
+      <el-row>
+        <el-col :span="12" v-for="f in formPolicyholderList" :key="f.prop">
+          <el-form-item  :label="f.label" :prop="f.prop">
+              <el-input  v-model.trim="formDataOrder.applyinfo[f.prop]"  :placeholder="'请输入' + f.label"></el-input>
+            </el-form-item>
+        </el-col>
+      </el-row>
+      <h4 class="form_title">被保人信息</h4>
+      <el-row>
+        <el-col :span="12" v-for="f in forminsureinfoList" :key="f.prop">
+          <el-form-item  :label="f.label" :prop="f.prop">
+              <el-input  v-model.trim="formDataOrder.insureinfo[f.prop]"  :placeholder="'请输入' + f.label"></el-input>
+            </el-form-item>
+        </el-col>
+      </el-row>
+  </el-form>
+  <span slot="footer" class="dialog-footer">
+    <el-button size="small" @click="dialogVisibleOrder = false">取 消</el-button>
+    <el-button size="small" type="primary" @click="submitOrder">确 定</el-button>
+  </span>
+</el-dialog>
+
   </div>
 </template>
 <script>
@@ -203,45 +343,7 @@ export default {
         this.queryFrom.endDate = e[1];
       }
     },
-    // detailFun(row) {
-
-    //   let params = {
-    //     companyId: row.row.subOrderId
-    //   };
-
-    //   this.$api.letter.getByCompanyId(params).then(res => {
-    //     if (res.code == "200") {
-    //       var data = res.data;
-    //       this.orderInfo = res.data;
-    //       this.cpolicy();
-    //       this.ImageList();
-    //       data.kindinfo.map((ele, index) => {
-    //         switch (ele.kindCode) {
-    //           case "A":
-    //             ele.amount = "投保";
-    //             break;
-    //           case "D4":
-    //           case "SY_FJ_YBW2":
-    //             ele.unitAmount = this.toChinesNum(ele.unitAmount);
-    //             break;
-    //           case "MJ1":
-    //           case "MJ2":
-    //           case "MJ3":
-    //           case "MJ4":
-    //             ele.deductibleRate = ele.deductibleRate + "%";
-    //             break;
-    //           default:
-    //             ele.amount = this.toChinesNum(ele.amount);
-    //         }
-    //         return ele;
-    //       });
-    //       this.queryOrders = data;
-    //       //赋值费用信息
-    //       // this.feeDetailInfo=data.orderFeeResult;
-    //     }
-    //   });
-    //   this.$refs.detailsDialog.setBackupVisible(true);
-    // },
+    
   }
 };
 </script>
@@ -269,4 +371,11 @@ export default {
     box-shadow: 0px 2px 2px 0px rgba(0,0,0,0.1);
   }
 }
+.form_title{
+  padding-bottom: 10px;
+  border-bottom: 1px solid #ccc;
+}
+.width{
+  width: 240px;
+}
 </style>

+ 375 - 0
src/views/Task/TaskPoolChannel/BatchOrder.vue

@@ -0,0 +1,375 @@
+<template>
+    <!--布局容器-->
+    <div class="container" style="width: 99%; margin-top: 0px">
+        <templateTable :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
+            @getList="getList" @handleSearchList="handleSearchList" :pagination="queryFrom">
+        </templateTable>
+        <!-- <el-dialog :visible.sync="dialogVisibleOrder" width="40%" :before-close="handleCloseOrder">
+            <el-form ref="form" :model="formDataOrder" label-width="120px" size="small" disabled>
+                <h4 class="form_title">车辆信息</h4>
+                <el-row :gutter="20">
+                    <el-col :span="12" v-for="f in formvehicleList" :key="f.prop">
+                        <el-form-item :label="f.label" :prop="f.prop">
+                            <el-input v-model.trim="formDataOrder.carInfo[f.prop]"
+                                :placeholder="'请输入' + f.label"></el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="使用性质" prop="carnature">
+                            <el-select v-model="formDataOrder.carInfo.carnature" placeholder="请选择使用性质" @change="natureFun">
+                                <el-option :label="item.dictTag" :value="item.dictValue"
+                                    v-for="(item, index) in natureOfVehicleUseoptions" :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="车辆用途" prop="vehicleUse">
+                            <el-select v-if="formDataOrder.carInfo.carnature == '02'"
+                                v-model="formDataOrder.carInfo.vehicleUse" placeholder="请选择使车辆用途">
+                                <el-option :label="item.dictTag" :value="item.dictValue"
+                                    v-for="(item, index) in outOfBusinessVehicleUseoptions" :key="index"></el-option>
+                            </el-select>
+                            <el-select v-else v-model="formDataOrder.carInfo.vehicleUse" placeholder="请选择使车辆用途">
+                                <el-option :label="item.dictTag" :value="item.dictValue"
+                                    v-for="(item, index) in businessVehicleUseoptions" :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="车辆类型" prop="cartype">
+                            <el-select v-model="formDataOrder.carInfo.cartype" placeholder="请选择车辆种类" filterable clearable>
+                                <el-option :label="item.dictValue + item.dictTag" :value="item.dictValue"
+                                    v-for="(item, index) in trafficManagementVehicleTypeoptions" :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="车辆种类" prop="cimodelclass">
+                            <el-select v-model="formDataOrder.carInfo.cimodelclass" placeholder="请选择车辆种类" clearable>
+                                <el-option :label="item.dictTag" :value="item.dictValue"
+                                    v-for="(item, index) in vehicleTypeoptions" :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="能源种类" prop="energyType">
+                            <el-select v-model="formDataOrder.carInfo.energyType" placeholder="请选择能源种类">
+                                <el-option :label="item.dictTag" :value="item.dictValue"
+                                    v-for="(item, index) in energyTypeoptions" :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="注册日期" prop="registerDate">
+                            <el-date-picker v-dateFormat v-model="formDataOrder.carInfo.registerDate"
+                                :picker-options="pickerOptions" value-format="yyyy-MM-dd" type="date" placeholder="选择注册日期"
+                                placement="bottom-start"></el-date-picker>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="发证日期" prop="issueDate">
+                            <el-date-picker v-dateFormat v-model="formDataOrder.carInfo.issueDate"
+                                :picker-options="issueDateOptions" type="date" placeholder="选择发证日期"
+                                value-format="yyyy-MM-dd" placement="bottom-start"></el-date-picker>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="转移登记日期" prop="transferDate">
+                            <el-date-picker v-dateFormat v-model="formDataOrder.carInfo.transferDate"
+                                :picker-options="pickerOptions" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"
+                                placement="bottom-start"></el-date-picker>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="是否过户" prop="transferFlag">
+                            <el-select v-model="formDataOrder.carInfo.transferFlag" placeholder="请选择是否过户">
+                                <el-option :label="item.label" :value="item.value" v-for="(item, index) in whetheroptions"
+                                    :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="商业险是否过户" prop="transferFlagBi">
+                            <el-select v-model="formDataOrder.carInfo.transferFlagBi" placeholder="请选择商业险是否过户">
+                                <el-option :label="item.label" :value="item.value" v-for="(item, index) in whetheroptions"
+                                    :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="是否脱保" prop="outOfInsurance">
+                            <el-select v-model="formDataOrder.carInfo.outOfInsurance" placeholder="请选择是否脱保">
+                                <el-option :label="item.label" :value="item.value" v-for="(item, index) in whetheroptions"
+                                    :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="是否二手车" prop="usedCar">
+                            <el-select v-model="formDataOrder.carInfo.usedCar" placeholder="请选择是否二手车">
+                                <el-option :label="item.label" :value="item.value" v-for="(item, index) in whetheroptions"
+                                    :key="index"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <h4 class="form_title">车主信息</h4>
+                <el-row>
+                    <el-col :span="12" v-for="f in formownersList" :key="f.prop">
+                        <el-form-item :label="f.label" :prop="f.prop">
+                            <el-input v-model.trim="formDataOrder.ownerInfo[f.prop]"
+                                :placeholder="'请输入' + f.label"></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <h4 class="form_title">投保人信息</h4>
+                <el-row>
+                    <el-col :span="12" v-for="f in formPolicyholderList" :key="f.prop">
+                        <el-form-item :label="f.label" :prop="f.prop">
+                            <el-input v-model.trim="formDataOrder.applyInfo[f.prop]"
+                                :placeholder="'请输入' + f.label"></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+                <h4 class="form_title">被保人信息</h4>
+                <el-row>
+                    <el-col :span="12" v-for="f in forminsureinfoList" :key="f.prop">
+                        <el-form-item :label="f.label" :prop="f.prop">
+                            <el-input v-model.trim="formDataOrder.insureInfo[f.prop]"
+                                :placeholder="'请输入' + f.label"></el-input>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+            </el-form>
+            <span slot="footer" class="dialog-footer">
+                <el-button size="small" @click="dialogVisibleOrder = false">取 消</el-button>
+                <el-button size="small" @click="handAuditing">审核</el-button>
+            </span>
+        </el-dialog> -->
+    </div>
+</template>
+<script>
+import templateTable from '../../../components/TemplateTable/index.vue'
+import { mixin } from "../mixin";
+
+export default {
+    name: "baosi",
+    components: { templateTable, },
+    created() {
+        this.getList();
+    },
+    mixins: [mixin],
+    data() {
+        return {
+            isAuditoption: [
+                {
+                    label: '未审核',
+                    value: '0'
+                }, {
+                    label: '审核通过',
+                    value: '1'
+                }, {
+                    label: '审核驳回',
+                    value: '2'
+                },
+            ],
+            formList: [
+                {
+                    label: "车牌号",
+                    prop: "licenseNo",
+                    type: "input",
+                },
+                {
+                    label: "发动机号",
+                    prop: "engineNo",
+                    type: "input",
+                },
+                {
+                    label: "车辆识别代码",
+                    prop: "frameNo",
+                    type: "input",
+                },
+                {
+                    label: "审核状态",
+                    prop: "isAudit",
+                    type: "select",
+                    options: [
+                        {
+                            label: '未审核',
+                            value: '0'
+                        }, {
+                            label: '审核通过',
+                            value: '1'
+                        }, {
+                            label: '审核驳回',
+                            value: '2'
+                        },
+                    ],
+                },
+            ],
+            searchData: {},
+            tableConfig: {
+                columns: [
+                    {
+                        prop: 'licenseNo', label: '车牌', type: 'text',
+                    },
+                    {
+                        prop: 'vinNo', label: '车架号', type: 'text',
+                    },
+                    {
+                        prop: 'tbrname', label: '投保人姓名', type: 'text',
+                    }, {
+                        prop: 'identifyNumber', label: '身份证号', type: 'text',
+                    }, {
+                        prop: 'isAudit', label: '审核状态', type: 'text',
+                    },
+                ],
+                loading: true,
+                // operateShow: true,
+                isPaginationShow: true,
+                // operationWidth: '150',
+                optBtns: [
+                    {
+                        type: 'primary',
+                        label: '审核',
+                        click: (row, index) => { return this.modifyFun(row) },
+                    }
+                ]
+            },
+
+            queryFrom: {
+                pageNum: 1,
+                pageSize: 10,
+                totalSize: 0
+            },
+            tableData: [],
+            dialogVisible: false,
+
+        };
+    },
+    methods: {
+        handAuditing() {
+            // this.$prompt('是否审核通过,输入驳回原因', '提示', {
+            //     confirmButtonText: '审核驳回',
+            //     cancelButtonText: '审核通过',
+            //     inputPattern: /^.+$/,
+            //     distinguishCancelAndClose: true,
+            //     inputErrorMessage: '输入驳回原因!'
+            // }).then(({ value }) => {
+            //     this.$api.task.auditBatchOrder({ orderNo: this.formDataOrder.subOrderNo, isAudit: '2', rejectReason: value }).then(res => {
+            //         if (res.code == 200) {
+            //             this.findPage();
+            //             this.$message({
+            //                 type: 'success',
+            //                 message: '审核驳回通过'
+            //             });
+            //         }
+            //         else {
+            //             this.$message.error(res.msg)
+            //         }
+            //     })
+            // }).catch((action) => {
+            //     if (action === 'cancel') {
+            //         this.$api.task.auditBatchOrder({ orderNo: this.formDataOrder.subOrderNo, isAudit: '1', }).then(res => {
+            //             if (res.code == 200) {
+            //                 this.findPage();
+            //                 this.$message({
+            //                     type: 'success',
+            //                     message: '审核通过'
+            //                 });
+            //             }
+            //             else {
+            //                 this.$message.error(res.msg)
+            //             }
+            //         })
+            //     }
+            // });
+        },
+
+        modifyFun(row) {
+            // this.$api.task.getBatchOrder({ subOrderNo: row.subOrderNo }).then(res => {
+            //     if (res.code == 200) {
+            //         this.dialogVisibleOrder = true
+            //         this.formDataOrder = res.data
+            //     }
+            //     else {
+            //         this.$message.error(res.msg)
+            //     }
+            // })
+                this.$prompt('是否审核通过,输入驳回原因', '提示', {
+                confirmButtonText: '审核驳回',
+                  cancelButtonText: '审核通过',
+                  inputPattern: /^.+$/,
+                  distinguishCancelAndClose: true,
+                inputErrorMessage: '输入驳回原因!'
+                }).then(({ value }) => {
+                    this.$api.task.auditBatchOrder({ orderNo:row.subOrderNo, isAudit: '2', rejectReason: value }).then(res => {
+                    if (res.code == 200) {
+                        this.findPage();
+                        this.$message({
+                        type: 'success',
+                        message: '审核驳回通过'
+                        });
+                    }
+                    else {
+                        this.$message.error(res.msg)
+                    }
+                })
+            }) .catch((action) => {
+                if (action === 'cancel') {
+                  this.$api.task.auditBatchOrder({ orderNo:row.subOrderNo, isAudit: '1', }).then(res => {
+                    if (res.code == 200) {
+                      this.dialogVisible = false
+                      this.findPage();
+                      this.$message({
+                        type: 'success',
+                        message: '审核通过'
+                      });
+                    }
+                    else {
+                      this.$message.error(res.msg)
+                    }
+                  })
+                }
+              });
+        },
+        handleSearchList(data) {
+            this.getList(data)
+        },
+        //列表数据
+        getList(data) {
+            this.tableConfig.loading = true;
+            this.$api.task.getBatchOrderList({ ...data, ...this.queryFrom }).then(res => {
+                if (res.data) {
+                    res.data.records.forEach(e => {
+                        e.licenseNo = e.carInfo.licenseNo? e.carInfo.licenseNo:''
+                        e.vinNo = e.carInfo.vinNo?e.carInfo.vinNo:''
+                        e.tbrname = e.applyInfo.name?e.applyInfo.name:''
+                        e.identifyNumber = e.applyInfo.identifyNumber?e.applyInfo.identifyNumber:''
+                          this.isAuditoption.find(val => {
+                                if (val.value == e.isAudit) {
+                                    e.isAudit = val.label
+                                }
+                            })
+                    })
+
+                    this.tableData = res.data.records;
+                    this.queryFrom.pageNum = res.data.pageNum;
+                    this.queryFrom.pageSize = res.data.pageSize;
+                    this.queryFrom.totalSize = res.data.totalSize;
+                    this.tableConfig.loading = false;
+
+                } else {
+                    this.tableConfig.loading = false;
+                }
+            });
+        },
+
+
+
+    }
+};
+</script>
+    
+<style scoped></style>
+    

+ 9 - 4
src/views/Task/TaskPoolChannel/TaskPoolChannel3.vue

@@ -3,10 +3,12 @@
     <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns" element-loading-text="加载中..." v-loading="loading"
-      :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text" @handleButton3="transmit"
-      button2Name="报价轨迹" button2Type="text" @handleButton2="trajectory" button5Name="详情" button5Type="text"
-      @handleButton5="detailFun" button4Name="转发记录" button4Type="text"
-      @handleButton4="forwardingRecords" :operationWidth="300"></kt-common-table>
+      :showBatchDelete="false" @findPage="findPage" 
+      button3Name="转发" button3Type="text" @handleButton3="transmit"
+      button2Name="报价轨迹" button2Type="text" @handleButton2="trajectory"
+      button6Name="批单" button6Type="text" @handleButton6="batchOrder"
+      button5Name="详情" button5Type="text" @handleButton5="detailFun"
+      button4Name="转发记录" button4Type="text" @handleButton4="forwardingRecords" :operationWidth="300"></kt-common-table>
     <el-dialog title="转发" :visible.sync="dialogVisible" width="30%">
       转发人:
       <el-select v-model="transmitValue" filterable clearable  placeholder="请选择">
@@ -198,6 +200,9 @@ export default {
         this.queryFrom.startDate = e[0];
         this.queryFrom.endDate = e[1];
       }
+    },
+    batchOrder(row){
+
     },
     // detailFun(row) {
     //   let params = {

+ 113 - 0
src/views/Task/mixin.js

@@ -163,9 +163,72 @@ export const mixin = { // 导出混入对象
         adjustFeeFlag:false,
       },
       feeOrderNewVoList:{},
+      dialogVisibleOrder:false,
+      formDataOrder:{
+        carinfo:{},
+        ownerinfo:{},
+        applyinfo:{},
+        insureinfo:{},
+      },
+      formvehicleList: [
+        { prop: "licenseNo", label: "车牌号" },
+        { prop: "vinNo", label: "车辆识别代码" },
+        { prop: "modelcname", label: "品牌型号" },
+        { prop: "engineNo", label: "发动机号" },
+        { prop: "caryear", label: "年款" },
+        { prop: "seatCount", label: "座位数" },
+        { prop: "completeKerbMass", label: "整备质量" },
+        { prop: "limitLoad", label: "核定载质量" },
+        { prop: "enginedesc", label: "排量" },
+        { prop: "powerScale", label: "功率" },
+        { prop: "purchasePrice", label: "新车购置价" },
+      ],
+      formownersList: [
+        { prop: "name", label: "车主姓名" },
+        { prop: "identifyType", label: "证件类型" ,type:'select'},
+        { prop: "identifyNumber", label: "身份证号" },
+        { prop: "mobile", label: "手机号" },
+        { prop: "email", label: "电子邮箱" },
+        { prop: "addr", label: "地址" },
+      ],
+      formPolicyholderList: [
+        { prop: "name", label: "投保人姓名" },
+        { prop: "identifyType", label: "证件类型" ,type:'select'},
+        { prop: "identifyNumber", label: "身份证号" },
+        { prop: "mobile", label: "手机号" },
+        { prop: "email", label: "电子邮箱" },
+        { prop: "addr", label: "地址" },
+      ],
+      forminsureinfoList: [
+        { prop: "name", label: "被保人姓名" },
+        { prop: "identifyType", label: "证件类型" ,type:'select'},
+        { prop: "identifyNumber", label: "身份证号" },
+        { prop: "mobile", label: "手机号" },
+        { prop: "email", label: "电子邮箱" },
+        { prop: "addr", label: "地址" },
+      ],
+      pickerOptions: {
+        disabledDate(time) {
+          return time.getTime() > Date.now();
+        }
+      },
+      whetheroptions:[
+        {
+          label:'是',
+          value:false
+        }, {
+          label:'否',
+          value:true
+        },
+      ]
     }
   },
   computed: {
+    issueDateOptions() {
+      return {
+        disabledDate: this.disabledDate
+      };
+    },
     currentDate() {
       const today = new Date();
       const year = today.getFullYear();
@@ -195,6 +258,42 @@ export const mixin = { // 导出混入对象
     this.getDicTypePro("outOfBusinessVehicleUse"); //(车辆用途)非营业
   },
   methods: {
+    submitOrder(){
+      let data={
+        ownerInfo:this.formDataOrder.ownerinfo,
+        carInfo:this.formDataOrder.carinfo,
+        applyInfo:this.formDataOrder.applyinfo,
+        insureInfo:this.formDataOrder.insureinfo,
+        subOrderNo:this.formDataOrder.id
+      }
+      this.$api.task.batchOrder(data).then(res => {
+        if (res.code == 200) {
+      this.findPage();
+      this.dialogVisibleOrder=false
+
+          this.$message({
+            message: res.msg ||'操作成功',
+            type: 'success'
+          });
+        }
+        else{
+          this.$message.error(res.msg);
+        }
+      });
+    },
+    disabledDate(time) {
+      let datetime = this.formDataOrder.registerDate;
+      return time.getTime() < new Date(datetime).getTime();
+    },
+
+    natureFun() {
+      if (this.formDataOrder.carinfo.carnature == "01") {
+        this.formDataOrder.carinfo.vehicleUse = "";
+      }
+    },
+    handleCloseOrder(){
+      this.dialogVisibleOrder=false
+    },
     getDicTypePro(type) {
       this.$api.insCompany.dicType(type).then(res => {
         if (res.code == 200) {
@@ -288,6 +387,20 @@ export const mixin = { // 导出混入对象
       });
       this.$refs.detailsDialog.setBackupVisible(true);
     },
+    batchOrder(row){
+      this.dialogVisibleOrder=true
+      let params = {
+        companyId: row.row.subOrderId
+      };
+      this.$api.letter.getTaskByCompanyId(params).then(res => {
+        if(res.code==200){
+          this.formDataOrder = res.data;
+        }
+        else{
+          this.$message.error(res.msg)
+        }
+      })
+    },
     areaSelectChange(obj) {
       switch (obj.filed) {
         case 'provinceId':

BIN
static/bankLogo/beijing.png


BIN
static/bankLogo/bohai.png


BIN
static/bankLogo/gongshang.png


BIN
static/bankLogo/guangda.png


BIN
static/bankLogo/huaxia.png


BIN
static/bankLogo/img1.png


BIN
static/bankLogo/jianshe.png


BIN
static/bankLogo/jiaotong.png


BIN
static/bankLogo/jinshang.png


BIN
static/bankLogo/logo.png


BIN
static/bankLogo/minsheng.png


BIN
static/bankLogo/nongye.png


BIN
static/bankLogo/pingan.png


BIN
static/bankLogo/pufa.png


BIN
static/bankLogo/xingye.png


BIN
static/bankLogo/youzheng.png


BIN
static/bankLogo/zhaoshang.png


BIN
static/bankLogo/zhongguo.png


BIN
static/bankLogo/zhongxin.png


BIN
static/bankadd.png


BIN
static/bankdel.png


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