Sfoglia il codice sorgente

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

lihongxiao 2 anni fa
parent
commit
01a0b8f6ed
39 ha cambiato i file con 2387 aggiunte e 969 eliminazioni
  1. BIN
      src/assets/customerService/Frame.png
  2. BIN
      src/assets/customerService/Frame1.png
  3. BIN
      src/assets/customerService/Frame2.png
  4. BIN
      src/assets/customerService/customerService.png
  5. BIN
      src/assets/customerService/customerService1.png
  6. 39 7
      src/components/Form/retrievalForm.vue
  7. 83 0
      src/components/customerService/Loading.vue
  8. 178 0
      src/components/customerService/floatingBar.vue
  9. 278 0
      src/components/customerService/modalDialog.vue
  10. 3 0
      src/http/api.js
  11. 37 0
      src/http/moudules/bindUser.js
  12. 9 0
      src/http/moudules/expense.js
  13. 7 0
      src/http/moudules/insCompany.js
  14. 18 0
      src/http/moudules/service/aiSupport.js
  15. 6 1
      src/views/AgreementManage/CarInsurance/AgreementEntry.vue
  16. 24 0
      src/views/AgreementManage/CarInsurance/AgreementProductFee.vue
  17. 54 10
      src/views/AgreementManage/CarInsurance/SourceManagement.vue
  18. 482 0
      src/views/BindUser/Dx.vue
  19. 12 10
      src/views/BindUser/Zgd.vue
  20. 15 10
      src/views/BindUser/Zzb.vue
  21. 0 148
      src/views/BindUser/mixin.js
  22. 13 0
      src/views/Core/components/detailsDialog.vue
  23. 100 77
      src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/InvoicingUnsettled.vue
  24. 793 665
      src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/InvoicingUnsettled.vue
  25. 6 5
      src/views/FinancialManagement/CarInsurance/Verifytasks/Verifyintasks.vue
  26. 6 1
      src/views/FinancialManagement/CarInsurance/Verifytasks/Verifyuntasks.vue
  27. 77 2
      src/views/FinancialManagement/ExpenseManagement/ExpenseApplyFor.vue
  28. 83 19
      src/views/FinancialManagement/ExpenseManagement/ExpenseManagement.vue
  29. 9 2
      src/views/FinancialManagement/ExpenseManagement/TransferRecord.vue
  30. 8 0
      src/views/FinancialManagement/ExpenseManagement/ViewExpenseReport.vue
  31. 31 0
      src/views/FinancialManagement/WithdrawalManagement/WithdrawalProceduresPending.vue
  32. 1 0
      src/views/Letter/Wallet/AutoInsuranceDetails.vue
  33. 0 7
      src/views/PeopleManage/Staff/AreaOrganization.vue
  34. 1 1
      src/views/Task/AgentPoolChannel/AgentPoolChannel3.vue
  35. 1 1
      src/views/Task/CompanyPoolChannel/CompanyPoolChannel3.vue
  36. 2 2
      src/views/Task/ElectricSales/AgentPoolChannel3.vue
  37. 1 1
      src/views/Task/TaskPoolChannel/TaskPoolChannel3.vue
  38. 4 0
      src/views/Task/daikeComponents/KtLetter.vue
  39. 6 0
      src/views/Task/mixin.js

BIN
src/assets/customerService/Frame.png


BIN
src/assets/customerService/Frame1.png


BIN
src/assets/customerService/Frame2.png


BIN
src/assets/customerService/customerService.png


BIN
src/assets/customerService/customerService1.png


+ 39 - 7
src/components/Form/retrievalForm.vue

@@ -112,6 +112,10 @@ export default {
       type: String,
       default: "120px",
     },
+    dateType :{
+      type: String,
+      default: "0",
+    }
   },
   data() {
     return {
@@ -131,14 +135,42 @@ export default {
   },
   created() {
     this.fields.forEach((field) => {
-      if (field.label === "报价时间" && !this.formData[field.list]) {
-        this.$set(this.formData, field.list, [
-          this.currentDate,
-          this.currentDate,
-        ]);
-        this.$set(this.formData, field.name[0], this.currentDate);
-        this.$set(this.formData, field.name[1], this.currentDate);
+      if(this.dateType!="3"){
+        if (field.label === "报价时间" && !this.formData[field.list]) {
+          this.$set(this.formData, field.list, [
+            this.currentDate,
+            this.currentDate,
+          ]);
+          this.$set(this.formData, field.name[0], this.currentDate);
+          this.$set(this.formData, field.name[1], this.currentDate);
+        }
+        if (field.label === "签单时间" && !this.formData[field.list]) {
+          this.$set(this.formData, field.list, [
+            '',
+            '',
+          ]);
+          this.$set(this.formData, field.name[0], '');
+          this.$set(this.formData, field.name[1], '');
+        }
+      }else{
+        if (field.label === "报价时间" && !this.formData[field.list]) {
+          this.$set(this.formData, field.list, [
+            '',
+            '',
+          ]);
+          this.$set(this.formData, field.name[0], '');
+          this.$set(this.formData, field.name[1], '');
+        }
+        if (field.label === "签单时间" && !this.formData[field.list]) {
+          this.$set(this.formData, field.list, [
+            this.currentDate,
+            this.currentDate,
+          ]);
+          this.$set(this.formData, field.name[0], this.currentDate);
+          this.$set(this.formData, field.name[1], this.currentDate);
+        }
       }
+      
     });
     this.formFields = this.fields;
     this.resetForm();

+ 83 - 0
src/components/customerService/Loading.vue

@@ -0,0 +1,83 @@
+<template>
+  <div>
+    <div class="loader">
+      <li class="ball"></li>
+      <li class="ball"></li>
+      <li class="ball"></li>
+    </div>
+  </div>
+</template>
+
+<!-- 行为区域 -->
+<script>
+export default {
+  // 数据存放区域
+  data() {
+    return {
+    }
+  },
+  // 生命周期函数
+  created() {
+  },
+  // 方法函数
+  methods: {
+  },
+  // 计算属性
+  computed: {
+  }
+}
+</script>
+<!-- 样式区域 -->
+<style lang='scss' scoped>
+/* From Uiverse.io by JkHuger */
+/* From Uiverse.io by G4b413l */
+/* From Uiverse.io by ashish-yadv */
+.loader {
+  width: 60px;
+  display: flex;
+  justify-content: center;
+}
+
+.ball {
+  list-style: none;
+  width: 8px;
+  height: 8px;
+  border-radius: 50%;
+  background-color: #fff;
+  margin-top:10px;
+  margin:0 4px;
+}
+
+.ball:nth-child(1) {
+  animation: bounce-1 1.5s ease-in-out infinite;
+}
+
+@keyframes bounce-1 {
+  50% {
+    transform: translateY(-10px);
+    background-color: #0052FF;
+  }
+}
+
+.ball:nth-child(2) {
+  animation: bounce-3 1.5s ease-in-out 0.3s infinite;
+}
+
+@keyframes bounce-2 {
+  50% {
+    transform: translateY(-10px);
+    background-color: #0052FF;
+  }
+}
+
+.ball:nth-child(3) {
+  animation: bounce-3 1.5s ease-in-out 0.6s infinite;
+}
+
+@keyframes bounce-3 {
+  50% {
+    transform: translateY(-10px);
+    background-color: #0052FF;
+  }
+}
+</style>

+ 178 - 0
src/components/customerService/floatingBar.vue

@@ -0,0 +1,178 @@
+<!-- 模板区域 -->
+<template>
+  <div>
+    <!-- 模板内容 -->
+    <div class="floatingBar flex f-c  a-c j-s">
+      <div class="aiSupport flex f-c a-c " @click="aiSupportClick">
+        <img src="../../assets/customerService/customerService.png" alt="">
+        <span>客服</span>
+      </div>
+      <el-popover placement="right-end" width="30" trigger="hover">
+        <div class="flex f-c a-c">
+          <div class="qrCode flex j-c a-c">
+            <div id="qrcode" ref="qrcode"></div>
+          </div>
+          <span style="font-size: 14px;color: #333;margin-top: 5px;">微信扫码咨询</span>
+        </div>
+        <div class="humanAgent flex f-c j-c a-c" slot="reference" @click="humanAgentClick">
+          <img src="../../assets/customerService/Frame.png" alt="">
+          <span>掌柜</span>
+          <span>客服</span>
+        </div>
+      </el-popover>
+    </div>
+    <modalDialog ref="modalDialog"></modalDialog>
+  </div>
+</template>
+
+<!-- 行为区域 -->
+<script>
+import QRCode from "qrcodejs2";
+import modalDialog from "@/components/customerService/modalDialog.vue";
+
+export default {
+  // 数据存放区域
+  components: {
+    modalDialog,
+  },
+  data() {
+    return {
+      qrcode: null,
+      qrcodeWidth: "130",
+      qrcodeHeight: "130",
+    }
+  },
+  // 生命周期函数
+  created() {
+    this.wechat();
+  },
+  // 方法函数
+  methods: {
+
+    aiSupportClick() {
+      this.$refs.modalDialog.setBackupVisible(true);
+    },
+    wechat() {
+      this.$api.aiSupport.wechatpicture().then((res) => {
+        if (res.code == '200') {
+          this.$nextTick(() => {
+            this.creatQrCode(res.data.wechatPictureUrl);
+          });
+        } else {
+          this.$nextTick(() => {
+            this.creatQrCode("https://www.baidu.com/s?ie=UTF-8&wd=baoidu");
+          });
+        }
+      });
+    },
+    //二维码生成插件
+    creatQrCode(text) {
+      // 查找并删除旧的二维码DOM元素
+      let element = document.getElementById("qrcode");
+      while (element.firstChild) {
+        element.removeChild(element.firstChild);
+      }
+      // 创建新的QRCode实例
+      this.qrcode = new QRCode("qrcode", {
+        text: text,
+        width: this.qrcodeWidth,
+        height: this.qrcodeHeight,
+        colorDark: "#000000",
+        colorLight: "#ffffff",
+        correctLevel: QRCode.CorrectLevel.H,
+      });
+    },
+  },
+  // 计算属性
+  computed: {
+  }
+}
+</script>
+<!-- 样式区域 -->
+<style lang='scss' scoped>
+/deep/ {
+  .el-popover {
+    padding: 5px;
+  }
+}
+#qrCode {
+  display: inline-block;
+  margin: 0 auto;
+  /*水平居中*/
+  position: relative;
+  top: 15%;
+}
+
+#qrCode img {
+  width: 130px;
+  height: 130px;
+  background-color: #fff;
+  padding: 6px;
+}
+.floatingBar {
+  width: auto;
+  position: fixed;
+  bottom: 10%;
+  right: 0;
+  z-index: 99;
+  background: #FFFFFF;
+  box-shadow: 6px 6px 12px 0px rgba(0, 70, 128, 0.08);
+  border-radius: 4px 0px 0px 4px;
+  border: 1px solid #F1F3F6;
+  padding: 8px 6px;
+  box-sizing: border-box;
+
+  .aiSupport {
+    cursor: pointer;
+    background: #FFFFFF;
+    border-radius: 4px 4px 4px 4px;
+    padding: 4px 2px;
+    margin-bottom: 10px;
+
+    span {
+      color: #202D45;
+      font-size: 12px;
+      line-height: 14px;
+      margin-top: 4px;
+    }
+
+    img {
+      width: 32px;
+      height: 44px;
+    }
+  }
+
+  .aiSupport:hover {
+    background: #F0F6FF;
+  }
+
+  .humanAgent {
+    cursor: pointer;
+    background: #fff;
+    border-radius: 4px 4px 4px 4px;
+    padding: 4px 2px;
+
+    span {
+      color: #202D45;
+      font-size: 12px;
+      line-height: 14px;
+      margin-top: 4px;
+    }
+
+    img {
+      width: 32px;
+      height: 26px;
+    }
+  }
+
+  .humanAgent:hover {
+    background: #F0F6FF;
+  }
+}
+
+.qrCode {
+  width: 140px;
+  height: 140px;
+  border: 1px solid #EAEDF1;
+}
+</style>

+ 278 - 0
src/components/customerService/modalDialog.vue

@@ -0,0 +1,278 @@
+<!-- 模板区域 -->
+<template>
+  <div>
+    <!-- 模板内容 -->
+    <el-drawer title="掌柜在线客服" :visible.sync="drawer" :direction="direction" :show-close="true" :modal="false" :size="440"
+      :wrapperClosable="false">
+      <div class="drawer">
+        <div class="scroll-view" ref="scrollView">
+          <div id="okk">
+            <div class="flex f-c j-c" v-for="(item, index) in msgList" :key="index">
+              <div class="flex f-c " v-if="!item.my">
+                <div class="flex j-c a-c">
+                  <span class="initTime flex j-c a-c">{{ item.initTime }}</span>
+                </div>
+                <div style="max-width: 350px;" class="flex">
+                  <div class="conversationText flex j-s a-c">
+                    <img v-if="index == 0" src="../../assets/customerService/customerService1.png" alt="">
+                    <span :style="{ marginLeft: index === 0 ? '60px' : '10px' }">{{ item.msg }}</span>
+                  </div>
+                </div>
+              </div>
+              <div class="flex f-c a-end" v-if="item.my">
+                <div class="conversationText1 flex j-s a-c">
+                  <span>{{ item.msg }}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="flex f-c " v-if="msgLoad" style="width:65px;">
+            <div class="conversationText1loding flex j-c a-end">
+              <isLoading />
+            </div>
+          </div>
+        </div>
+        <div class="outerLayer">
+          <div class="textInput flex j-s a-c">
+            <el-input v-model="msg" class="Input" placeholder="请描述您的问题" @focus="Inputfocus" @blur="InputBlur"
+              @change="InputChange"></el-input>
+            <img v-if="InputfocusShow" src="../../assets/customerService/Frame1.png" alt="">
+            <img v-else src="../../assets/customerService/Frame2.png" alt="">
+          </div>
+        </div>
+      </div>
+    </el-drawer>
+  </div>
+</template>
+
+<!-- 行为区域 -->
+<script>
+import isLoading from "@/components/customerService/Loading.vue";
+
+export default {
+  components: {
+    isLoading,
+  },
+  // 数据存放区域
+  data() {
+    return {
+      InputfocusShow: false,
+      drawer: false,
+      direction: 'rtl',
+      msgLoad: false,
+      msg: "",
+      msgList: [{
+        my: false,
+        msg: "您好,掌柜智能客服助理为您服务!",
+        initTime: this.getFormattedTime(),
+      },
+      ],
+    }
+  },
+  // 生命周期函数
+  created() {
+
+  },
+  // 方法函数
+  methods: {
+    InputChange() {
+      if (this.msg == "") {
+        return 0;
+      }
+      this.msgList.push({
+        "msg": this.msg,
+        "my": true
+      })
+
+      // 保证消息可见
+      this.msgGo()
+      // 回答问题
+      this.msgKf(this.msg)
+      // 清除消息
+      this.msg = ""
+    },
+    msgGo() {
+      // 选择消息体元素
+      // const scrollView = document.querySelector('.scroll-view'); // 获取第一个类名为 'arr' 的元素
+      const content = document.getElementById('okk');
+      if (!content) return; // 确保元素存在
+      // 获取当前视口高度
+      // 这里直接获取消息体高度
+      this.$nextTick(() => {
+          const scrollView = this.$refs.scrollView;
+          scrollView.scrollTop = scrollView.scrollHeight;
+      });
+    },
+    msgKf(msg) {
+      // loading
+      this.msgLoad = true
+      // 这里连接服务器获取答案
+      this.$api.aiSupport.AIsendMessage({
+        message: msg
+      }).then((res) => {
+        if (res.code == 200) {
+          setTimeout(() => {
+            // 取消loading
+            this.msgLoad = false
+            this.msgList.push({
+              my: false,
+              msg: res.data.message,
+              initTime: res.data.date
+            })
+            this.msgGo()
+          }, 1000)
+        }
+      });
+    },
+    Inputfocus() {
+      this.InputfocusShow = true;
+    },
+    InputBlur() {
+      this.InputfocusShow = false;
+
+    },
+    getFormattedTime() {
+      const date = new Date();
+      const year = date.getFullYear();
+      const month = (date.getMonth() + 1).toString().padStart(2, '0');
+      const day = date.getDate().toString().padStart(2, '0');
+      const hours = date.getHours().toString().padStart(2, '0');
+      const minutes = date.getMinutes().toString().padStart(2, '0');
+
+      return `${year}-${month}-${day} ${hours}:${minutes}`;
+    },
+    setBackupVisible: function (backupVisible) {
+      this.drawer = backupVisible
+    },
+  },
+  // 计算属性
+  computed: {
+  }
+}
+</script>
+<!-- 样式区域 -->
+<style lang='scss' scoped>
+/deep/ {
+  .el-drawer {
+    height: 600px;
+    border-radius: 8px;
+    position: fixed;
+    bottom: 8%;
+    right: 5%;
+    top: initial;
+    background: linear-gradient(90deg, #FFFFFF 0%, #EDF3FE 100%);
+  }
+
+  .el-drawer__header {
+    color: #333;
+    font-weight: bold;
+    font-size: 16px;
+    margin-bottom: 16px;
+  }
+
+  .el-drawer__close-btn {
+    color: #979AA0;
+  }
+
+  .el-input__inner {
+    height: 48px;
+    border: none;
+  }
+}
+
+.drawer {
+
+  .scroll-view {
+    padding: 20px;
+    overflow-y: auto;
+    /* 允许垂直滚动 */
+    height: calc(600px - 113px);
+    box-sizing: border-box;
+    padding-bottom: 50px;
+    /* 适应消息区和底部导航栏 */
+    cursor: pointer;
+
+    /* 防止内容溢出 */
+    .initTime {
+      background: rgba(207, 207, 207, 0.2);
+      border-radius: 20px 20px 20px 20px;
+      padding: 4px 16px;
+      font-size: 12px;
+      color: rgba(0, 0, 0, 0.85);
+      margin-bottom: 15px;
+    }
+
+    .conversationText {
+      background: #FFFFFF;
+      box-shadow: 0px 4px 10px 0px #DAE3F4;
+      border-radius: 0px 4px 4px 4px;
+      margin-bottom: 18px;
+      position: relative;
+      padding: 8px;
+
+      span {
+
+        font-size: 14px;
+        color: #000000;
+        word-break: break-all;
+      }
+
+      img {
+        width: 58px;
+        height: 58px;
+        position: absolute;
+        bottom: 0;
+        left: 0;
+      }
+    }
+
+    .conversationText1 {
+      background: #0052FF;
+      box-shadow: 0px 4px 10px 0px #DAE3F4;
+      border-radius: 4px;
+      padding: 8px;
+      margin-bottom: 18px;
+
+      span {
+        color: #FFFFFF;
+        font-size: 14px;
+      }
+    }
+
+    .conversationText1loding {
+      box-shadow: 0px 4px 10px 0px #DAE3F4;
+      border-radius: 4px;
+      height: 36px;
+      padding: 4px 8px;
+      box-sizing: border-box;
+
+    }
+  }
+
+  .outerLayer {
+    width: 100%;
+    height: auto;
+    position: absolute;
+    bottom: 0;
+    left: 0;
+    background: linear-gradient(90deg, #FFFFFF 0%, #EDF3FE 100%);
+    padding: 10px 20px;
+    box-sizing: border-box;
+
+    .textInput {
+      width: 100%;
+      height: 48px;
+      background: #FFFFFF;
+      box-shadow: 6px 6px 12px 0px rgba(83, 98, 153, 0.08);
+      border-radius: 4px 4px 4px 4px;
+
+      img {
+        width: 28px;
+        height: 28px;
+        margin-right: 20px;
+      }
+    }
+  }
+
+}
+</style>

+ 3 - 0
src/http/api.js

@@ -50,6 +50,8 @@ import * as expense from './moudules/expense.js'
 import * as report from './moudules/report.js'
 import * as one from './moudules/service/one'
 import * as sys from './moudules/sys.js'
+//客服
+import * as aiSupport from './moudules/service/aiSupport'
 
 import * as bindUser from './moudules/bindUser.js'
 
@@ -62,6 +64,7 @@ export default {
     menu,
     dict,
     log,
+    aiSupport,
     settlement,
     /////////////////////////////
     esmTeam,

+ 37 - 0
src/http/moudules/bindUser.js

@@ -21,6 +21,15 @@ export const queryUserZZBPage = (data) => {
     data
   })
 }
+
+// 用户关联电销用户列表
+export const queryUserDXPage = (data) => {
+  return axios({
+    url: '/sysUserLinkDxUser/queryUserPage',
+    method: 'post',
+    data
+  })
+}
 // 掌柜鼎用户列表
 export const queryUserZgdListPage = (data) => {
   return axios({
@@ -38,6 +47,15 @@ export const queryUserZzbListPage = (data) => {
     data
   })
 }
+
+// 电销用户列表
+export const queryUserDxListPage = (data) => {
+  return axios({
+    url: '/sysUserLinkDxUser/queryUserDxPage',
+    method: 'post',
+    data
+  })
+}
 // 绑定掌柜鼎用户列表
 export const addOrUpdateZgd = (data) => {
   return axios({
@@ -54,6 +72,16 @@ export const addOrUpdateZzb = (data) => {
     data
   })
 }
+
+// 绑定电销用户列表
+export const addOrUpdateDx = (data) => {
+  return axios({
+    url: '/sysUserLinkDxUser/addOrUpdate',
+    method: 'post',
+    data
+  })
+}
+
 // 清空绑定掌柜鼎用户
 export const deleteZgd = (data) => {
   return axios({
@@ -71,3 +99,12 @@ export const deleteZzb = (data) => {
     data
   })
 }
+
+// 清空绑定掌中保用户
+export const deleteDx = (data) => {
+  return axios({
+    url: '/sysUserLinkDxUser/delete',
+    method: 'post',
+    data
+  })
+}

+ 9 - 0
src/http/moudules/expense.js

@@ -381,4 +381,13 @@ export const deriveReport = (data) => {
         method: "post",
         data
     })
+}
+
+// 支出部分
+export const updateExpenditure = (params) => {
+    return axios({
+        url: '/accountExcel/updateTransferFlag',
+        method: "get",
+        params
+    })
 }

+ 7 - 0
src/http/moudules/insCompany.js

@@ -67,6 +67,13 @@ export const findAgreementByCompanyId = (data) => {
     data
   })
 }
+export const agreementListInternal = (data) => {
+  return axios({
+    url: '/plt/agreement/listInternal',
+    method: 'post',
+    data
+  })
+}
 
 // 编辑保险公司
 export const editCompany = (data) => {

+ 18 - 0
src/http/moudules/service/aiSupport.js

@@ -0,0 +1,18 @@
+import axios from '../../axios'
+
+// AI客服发送消息
+export const AIsendMessage= (data) => {
+    return axios({
+        url: "/customer/ai/sendMessage",
+        method: "post",
+        data
+    })
+}
+// 获取企业微信二维码
+export const wechatpicture= () => {
+  return axios({
+      url: "/sys/qy/wechat/find/picture",
+      method: "get",
+
+  })
+}

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

@@ -125,7 +125,12 @@
         <el-table-column type="selection" width="55" align="center"></el-table-column>
         <el-table-column prop="id" label="编号" width="50" align="center"></el-table-column>
         <el-table-column prop="agreementCode" label="协议代码" align="center" width="180"></el-table-column>
-        <el-table-column prop="agreementName" label="协议名称" align="center"></el-table-column>
+        <el-table-column prop="agreementName" label="协议" align="center" width="300">
+          <template slot-scope="scope">
+            <span>{{ scope.row.agreementName }} - {{ scope.row.businessDescription }} - {{ scope.row.jobDescription }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="dockingPerson" label="对接人" align="center"></el-table-column>
         <el-table-column prop="agreementType" label="协议类型" align="center" width="150"
           :formatter="agreementtypeFormatter"></el-table-column>
         <el-table-column prop="startDate" label="协议生效日期" align="center"></el-table-column>

+ 24 - 0
src/views/AgreementManage/CarInsurance/AgreementProductFee.vue

@@ -1028,6 +1028,7 @@ export default {
         isInquiryNow: '1',  // 是否现询
       },
       areanumberplateList: [],//车牌号列表
+      licenseAreaList: [],  // 车牌地区列表
       dynamicFormArray: [],
       productCostAddDialogTitle: "产品录入",
       productCostAddDialogType: "add",
@@ -1148,6 +1149,10 @@ export default {
             if (val.attrCode == 'LicenseNo') {
               val.dictLabal = this.areanumberplateList;
             }
+            if (val.attrCode == 'LicenseArea') {
+              val.dictLabal = this.licenseAreaList;
+            }
+            // LicenseArea
             return val;
           })
           this.dynamicFormArray = obj.costsAttrLinkList;
@@ -1476,6 +1481,9 @@ export default {
             if (val.attrCode == 'LicenseNo') {
               val.dictLabal = this.areanumberplateList;
             }
+            if (val.attrCode == 'LicenseArea') {
+              val.dictLabal = this.licenseAreaList;
+            }
             return val;
           })
           this.dynamicFormArray = obj.costsAttrLinks;
@@ -1547,6 +1555,10 @@ export default {
             if (ele.attrName == '车牌号') {
               ele.dictLabal = this.areanumberplateList;
             }
+            if (ele.attrName == '车牌地区') {
+              ele.dictLabal = this.licenseAreaList;
+            }
+            
           })
           // this.productCostForm.costsAttrLinks = data;
           this.dynamicFormArray = data;
@@ -1565,6 +1577,18 @@ export default {
         })
         this.areanumberplateList = data;
       });
+      // 
+      this.$api.insCompany.getAreaLicense("0").then((res) => {
+        let data = [];
+        res.data.map(val => {
+          data.push({
+            code: val.areaNumber,
+            name: val.license,
+          })
+          return val;
+        })
+        this.licenseAreaList = data;
+      });
     },
     //--数据字典 begin --
     getDicType(type) {

+ 54 - 10
src/views/AgreementManage/CarInsurance/SourceManagement.vue

@@ -38,14 +38,7 @@
 
     <el-dialog :title="ruleDialogTitle" :visible.sync="ruledialogVisible" width="50%" @open="ruleOpenDialog">
       <el-form :model="localForm" label-width="120px" size="small">
-        <el-col :span="24">
-          <el-form-item label="协议选择">
-            <el-select v-model="localForm.agreementId" placeholder="请选择协议" style="width: 100%;">
-              <el-option v-for="item in agreementList" :key="item.id" :label="item.agreementAbbreviation"
-                :value="item.id"></el-option>
-            </el-select>
-          </el-form-item>
-        </el-col>
+        <el-row>
         <el-col :span="12">
           <el-form-item label="优先级">
             <el-input v-model="localForm.priority" placeholder="输入优先级"></el-input>
@@ -62,6 +55,49 @@
             </div>
           </el-form-item>
         </el-col>
+        <el-col :span="24">
+          <el-form-item label="协议选择">
+            <el-select v-model="localForm.agreementId" placeholder="请选择协议" style="width: 100%;" @change="agreementChange">
+              <el-option v-for="item in agreementList" :key="item.id" :label="item.agreementAbbreviation + '-' + item.businessDescription + '-' + item.jobDescription"
+                :value="item.id"></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="协议代码">
+            <el-input v-model="agreementInfo.agreementCode" disabled placeholder="请选择协议"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="协议名称">
+            <el-input v-model="agreementInfo.agreementTitle" disabled placeholder="请选择协议"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="协议简称">
+            <el-input v-model="agreementInfo.agreementAbbreviation" disabled placeholder="请选择协议"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="协议描述">
+            <el-input v-model="agreementInfo.agreementName" disabled placeholder="请选择协议"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="业务描述">
+            <el-input v-model="agreementInfo.businessDescription" disabled placeholder="请选择协议"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="工号描述">
+            <el-input v-model="agreementInfo.jobDescription" disabled placeholder="请选择协议"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="对接人">
+            <el-input v-model="agreementInfo.dockingPerson" disabled placeholder="请选择协议"></el-input>
+          </el-form-item>
+        </el-col>
         <el-col v-for=" (formItems, index) in dynamicFormArray" :key="index" :span="24">
           <el-form-item :label="formItems.attrName">
             <template v-if="formItems.attrType == 'inputNumber'">
@@ -115,6 +151,7 @@
             </div>
           </el-form-item>
         </el-col>
+      </el-row>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button size="small" @click="ruledialogVisible = false">取 消</el-button>
@@ -173,6 +210,7 @@ export default {
   components: { templateTable, KtCommonTable },
   data() {
     return {
+      agreementInfo: {},
       treekeys:[],
       localForm: {
         agreementId: "",//协议id
@@ -320,6 +358,13 @@ export default {
     this.findPage();
   },
   methods: {
+    agreementChange(e) {
+      this.agreementList.forEach((val, index) => {
+        if (val.id ==  e) {
+          this.agreementInfo = val
+        }
+      })
+    },
     configuration(row){
       this.$api.insCompany.schedulingId(row.id).then((res) => {
         if(res.code==200){
@@ -608,7 +653,7 @@ export default {
       this.localForm.insCompanyName = row.name;
       this.dispatchFindPage();
       this.attrQueryList();
-      this.$api.insCompany.findAgreementByCompanyId({ partnerCompaniesId: row.id }).then((res) => {
+      this.$api.insCompany.agreementListInternal({ partnerCompaniesId: row.id }).then((res) => {
         if (res.data) {
           //清空搜索参数
           this.agreementList = res.data;
@@ -616,7 +661,6 @@ export default {
       })
       this.dispatchdialogVisible = true;
     },
-
   },
 };
 </script>

+ 482 - 0
src/views/BindUser/Dx.vue

@@ -0,0 +1,482 @@
+<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-divider></el-divider>
+            <!-- 左侧树形结构 -->
+            <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">
+              <el-row>
+                <el-col :span="5">
+                  <el-form-item label="工号">
+                    <el-input
+                      clearable
+                      size="small"
+                      placeholder="工号"
+                      v-model="pageData.userId"
+                    ></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5">
+                  <el-form-item label="姓名">
+                    <el-input
+                      clearable
+                      size="small"
+                      placeholder="姓名"
+                      v-model="pageData.name"
+                    ></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="5">
+                  <el-form-item label="手机号">
+                    <el-input
+                      clearable
+                      size="small"
+                      placeholder="手机号"
+                      v-model="pageData.mobile"
+                    ></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="4">
+                  <el-form-item label="">
+                    <el-button
+                      type="primary"
+                      @click="queryStaffInfo"
+                      size="small"
+                      >查询</el-button
+                    >
+                  </el-form-item>
+                </el-col>
+              </el-row>
+            </el-form>
+          </el-row>
+
+          <kt-common-table
+            ref="ktcommonTable"
+            :data="pageResult"
+            :columns="columns"
+            editButtonName="绑定人员"
+            :showBatchDelete="false"
+            @handleEdit="handleTableEdit"
+            :button7Name="'清空'"
+            @handleButton7="handleTableDeleteFlag"
+            @findPage="findPage"
+          >
+          </kt-common-table>
+        </SplitArea>
+        <!-- 右侧列表页面End -->
+      </Split>
+    </el-main>
+
+     <!-- 新增修改界面 -->
+     <el-dialog :title="dialogTitle" width="50%" :visible.sync="dialogVisible" :close-on-click-modal="false" @close="closeDialog" v-dialogDrag>  
+      <el-form ref="queryFormRef1" :model="addQueryForm" label-width="80px" size="small">
+        <el-row>
+          <el-col :span="6">
+            <el-form-item label="姓名">
+              <el-input clearable placeholder="姓名" v-model="addQueryForm.userName"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="电话">
+              <el-input clearable placeholder="电话" v-model="addQueryForm.mobile"></el-input>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item>
+              <el-button type="primary" size="small" @click="handleAddButton">筛选</el-button>
+            </el-form-item>
+          </el-col>
+        </el-row>
+      </el-form>
+        <el-table :data="addListData" border ref="zzbTable" width="100%" size="small" 
+         @selection-change="handleSelectionChange" @select="handleSelect" @row-click="handleRowClick"
+          align="center" :header-cell-style="{
+            background: '#F2F7FC',
+            fontWeight: '900',
+            color: '#606266',
+          }" >
+          <el-table-column type="selection" width="50" align="center" />
+          <el-table-column prop="id" label="用户编码">
+          </el-table-column>
+          <el-table-column prop="name" label="用户名称">
+          </el-table-column>
+          <el-table-column prop="nickname" label="真实名称">
+          </el-table-column>
+          <el-table-column prop="mobile" label="电话">
+          </el-table-column>
+      </el-table>
+      <el-pagination @size-change="handleSizeChangeAdd" @current-change="refreshPageRequestAdd"
+          :current-page="addListDataPage.pageNum" :page-sizes="[10, 20, 50, 100, 200, 300, 400, 500]"
+          :page-size="addListDataPage.pageSize" layout="total, sizes, prev, pager, next, jumper"
+          :total="addListDataPage.total">
+      </el-pagination>
+      <span slot="footer">
+        <kt-button label="确定" type="primary"  @click="addSubmit" />
+      </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 "./mixin";
+const mixin = new mixa({
+  treeTypeNum: null,
+});
+export default {
+  components: {
+    KtButton,
+    tree,
+    KtCommonTable
+  },
+  mixins: [mixin],
+  data() {
+    return {
+      selectedRow:[],
+      addListData: [],
+      addListDataPage: {
+        pageNum: 1,
+        pageSize: 10,
+        total: 0
+      },
+      addQueryForm:{
+        userName: "",
+        mobile: "",
+      },
+      userId: "",
+      pageData: {
+        pageNum: 1,
+        pageSize: 10,
+        deptId: JSON.parse(localStorage.getItem("user_data")).deptId,
+        userId: "",
+        name: "",
+        mobile: "",
+        status:"1"
+      },
+      formData: {},
+      formDataDetail: {},
+      filterObject: {},
+      peopledeptid: "",
+      recommenderList: [],
+      teamleadername: "",
+      teamleaderid: "",
+      // 右侧列表查询数据Start
+      queryFrom: {},
+      pageResult: {
+      },
+      containsSubDeptChecked: true, //是否包含下级机构
+      columns: [
+        // 数据列
+        { prop: "deptId", label: "部门编码", minWidth: 80, sortable: false },
+        { prop: "deptName", label: "部门名称", minWidth: 80, sortable: false },
+        { prop: "userId", label: "工号", minWidth: 80, sortable: false },
+        { prop: "userName", label: "姓名", minWidth: 120, sortable: false },
+        { prop: "mobile", label: "联系电话", minWidth: 100, sortable: false },
+        { prop: "linkUserId", label: "电销用户编码", minWidth: 100, sortable: false },
+        { prop: "linkUserName", label: "电销用户名称", minWidth: 100, sortable: false },
+      ],
+      dialogTitle: "电销用户列表",
+      dialogVisible: false, // 新增编辑界面是否显示
+      departmentList: [], // 选中公司的所有部门的集合
+      deptInfo: {}, //选中机构的基本信息
+      option: [], //机构列表
+      showOut: false,
+      isRadioMode: true,
+      isQueryStaff :false,
+    };
+  },
+  created() {
+    this.queryStaffInfo();
+  },
+  watch: {
+    containsSubDeptChecked() {
+      this.findPage();
+    },
+  },
+  methods: {
+   
+    // 查询Start
+    queryStaffInfo() {
+      this.isQueryStaff = true;
+      this.findPage();
+    },
+    onZTreeClick: function (evt, treeId, treeNode) {
+      // 点击事件
+      this.currentTreeNode = evt;
+      this.deptId = this.currentTreeNode.id;
+      this.pageData.pageNum = 1;
+      this.findPage();
+    },
+    // 右侧列表的方法Start
+    findPage(data) {
+      // 获取分页数据
+      if (data && data.pageRequest) {
+        this.pageData.pageNum = data.pageRequest.pageNum;
+        this.pageData.pageSize = data.pageRequest.pageSize;
+      }
+      if (this.isQueryStaff) {
+        this.pageData.pageNum = 1;
+      }
+      this.isQueryStaff = false;
+      let dto = {
+        deptId: this.deptId,
+        mobile: this.pageData.mobile,
+        userName: this.pageData.name,
+        userId: this.pageData.userId,
+        pageNum: this.pageData.pageNum,
+        pageSize: this.pageData.pageSize,
+      };
+     
+      this.$api.bindUser.queryUserDXPage(dto).then((res) => {
+        this.pageResult = {
+          content: res.data.content,
+          pageNum: res.data.current,
+          pageSize: res.data.size,
+          totalPages: res.data.totalPages,
+          totalSize: res.data.totalSize,
+        };
+      });
+    },
+    //打开掌中保人员列表
+    handleTableEdit(data) {
+      this.userId = data.row.userId;
+      this.handleAddButton()
+    },
+    // 清空单个人员
+    handleTableDeleteFlag(data) {
+      this.$confirm("确认清空?")
+        .then(() => {
+          this.$api.bindUser.deleteDx({userId:data.row.userId}).then((res) => {
+            if (res.code == 200) {
+              this.$message({
+                message: "清空成功",
+                type: "success",
+              });
+              this.findPage();
+            }
+          });
+        })
+        .catch(() => {});
+    },
+    //关闭页面
+    closeDialog() {
+      this.dialogVisible = false;
+      this.addQueryForm = {}
+    },
+    //绑定用户id
+    addSubmit(){
+      if(this.selectedRow.length==0){
+        this.$message({
+              message: "请选择用户",
+              type: "error",
+          });
+          return;
+      }
+      if(this.selectedRow.length>1){
+        this.$message({
+              message: "请选择一个用户",
+              type: "error",
+          });
+          return;
+      }
+      //调用添加接口
+      this.$api.bindUser.addOrUpdateDx({
+        userId:  this.userId,
+        linkUserId: this.selectedRow[0].name,
+      }).then((res) => {
+        if (res.code == 200) {
+              this.$message({
+                message: "绑定成功",
+                type: "success",
+              });
+              this.dialogVisible = false;
+              this.findPage();
+        }
+      })
+    },
+    handleSelectionChange(val){
+      this.selectedRow = val 
+    },
+    handleRowClick(row) {
+      const flag = !row.flag
+      if (this.isRadioMode) {
+        this.$refs['dxTable'].clearSelection()
+        this.addListData.forEach((v) => {
+          v.flag = false
+        })
+      }
+      row.flag = flag
+      this.$refs['dxTable'].toggleRowSelection(row, flag)
+    },
+    handleSelect(selection, row) {
+      if (!this.isRadioMode) return
+      this.$refs['dxTable'].clearSelection()
+      if (selection.length != 0) {
+        row.flag = true
+        this.$refs['dxTable'].toggleRowSelection(row, true)
+      } else {
+        row.flag = false
+        this.$refs['dxTable'].toggleRowSelection(row, false)
+      }
+    },
+    cellClass(row) {
+      if (this.isRadioMode && row.columnIndex === 0) {
+        return 'hideCheckbox'
+      }
+    },
+    refreshPageRequestAdd: function (pageNum) {
+      this.addListDataPage.pageNum = pageNum;
+      this.handleAddButton()
+    },
+    handleSizeChangeAdd(pageSize) {
+      this.addListDataPage.pageSize = pageSize;
+      this.handleAddButton()
+    },
+    handleAddButton() {
+      this.$api.bindUser.queryUserDxListPage({
+        userName: this.addQueryForm.userName,
+        pageNum: this.addListDataPage.pageNum,
+        pageSize: this.addListDataPage.pageSize,
+        mobile: this.addQueryForm.mobile,
+      }).then((res) => {
+        this.addListData = res.data.content
+        this.addListDataPage.pageNum = res.data.pageNum
+        this.addListDataPage.pageSize = res.data.pageSize
+        this.addListDataPage.total = res.data.totalSize
+        this.dialogVisible = true;
+      })
+    },
+  },
+};
+</script>
+
+<style scoped>
+.el-divider--horizontal {
+  margin: 4px 0;
+}
+
+/* 顶部查询条件样式Start */
+.queryFrom .el-row {
+  margin: 10px 0px;
+}
+
+.queryFrom .el-form-item {
+  margin-bottom: 0px;
+}
+
+.queryFrom .queryButton .el-form-item__content {
+  margin-left: 0px !important;
+}
+
+.disc {
+  -webkit-text-security: disc;
+  position: relative;
+}
+
+.none {
+  -webkit-text-security: none;
+  position: relative;
+}
+
+.icon {
+  color: #ccc;
+  position: absolute;
+  right: 0;
+  top: 10px;
+  text-align: center;
+}
+
+.avatar-uploader .el-upload {
+  border: 1px dashed #d9d9d9;
+  border-radius: 6px;
+  cursor: pointer;
+  position: relative;
+  overflow: hidden;
+}
+.avatar-uploader .el-upload:hover {
+  border-color: #409eff;
+}
+.avatar-uploader-icon {
+  font-size: 28px;
+  color: #8c939d;
+  width: 100px;
+  height: 100px;
+  line-height: 100px;
+  text-align: center;
+  border: 1px dashed #d9d9d9;
+}
+
+.avatar {
+  border: 1px dashed #d9d9d9;
+  padding: 5px;
+  border-radius: 6px;
+  width: 100px;
+  height: 100px;
+  display: block;
+  box-sizing: border-box;
+}
+::v-deep.order .el-table__header-wrapper  .el-checkbox{
+    display:none
+  }
+</style>
+
+<style lang="scss" scoped>
+>>> .el-tabs__item:hover {
+  color: #2d4d89;
+}
+>>> .el-tabs__item.is-active {
+  color: #fff;
+  background: #2d4d89;
+  transition: all ease 0.5s;
+}
+>>> .el-tabs__active-bar {
+  background-color: #2d4d89;
+}
+>>> .el-tabs__item.is-top:nth-child(2) {
+  padding-left: 20px !important;
+}
+>>> .el-tabs--top .el-tabs__item.is-top:last-child {
+  padding-right: 20px !important;
+}
+
+.el-tabs {
+  >>> .el-input__inner:focus,
+  >>> .el-select .el-input.is-focus .el-input__inner {
+    border-color: #2d4d89;
+  }
+  .el-button--primary,
+  .el-button--primary:focus {
+    background-color: #2d4d89;
+    border-color: #2d4d89;
+  }
+}
+.select-prop {
+  .el-select-dropdown__item.selected,
+  .el-date-table td.available:hover {
+    color: #2d4d89;
+  }
+  .el-date-table td.current:not(.disabled) span {
+    background-color: #2d4d89;
+  }
+}
+</style>

+ 12 - 10
src/views/BindUser/Zgd.vue

@@ -70,7 +70,6 @@
 
           <kt-common-table
             ref="ktcommonTable"
-            permsEdit="sys:backline:edit"
             :data="pageResult"
             :columns="columns"
             editButtonName="绑定人员"
@@ -78,6 +77,7 @@
             @handleEdit="handleTableEdit"
             :button7Name="'清空'"
             @handleButton7="handleTableDeleteFlag"
+            @findPage="findPage"
           >
           </kt-common-table>
         </SplitArea>
@@ -123,7 +123,7 @@
           <el-table-column prop="phoneNumber" label="电话">
           </el-table-column>
       </el-table>
-      <el-pagination @size-change="handleSizeChange" @current-change="refreshPageRequest"
+      <el-pagination @size-change="handleSizeChangeAdd" @current-change="refreshPageRequestAdd"
           :current-page="addListDataPage.pageNum" :page-sizes="[10, 20, 50, 100, 200, 300, 400, 500]"
           :page-size="addListDataPage.pageSize" layout="total, sizes, prev, pager, next, jumper"
           :total="addListDataPage.total">
@@ -166,10 +166,10 @@ export default {
       userId: "",
       pageData: {
         pageNum: 1,
-        pageSize: 20,
+        pageSize: 10,
         deptId: JSON.parse(localStorage.getItem("user_data")).deptId,
         userId: "",
-        realName: "",
+        name: "",
         mobile: "",
         status:"1"
       },
@@ -182,7 +182,8 @@ export default {
       teamleaderid: "",
       // 右侧列表查询数据Start
       queryFrom: {},
-      pageResult: {},
+      pageResult: {
+      },
       containsSubDeptChecked: true, //是否包含下级机构
       columns: [
         // 数据列
@@ -200,7 +201,8 @@ export default {
       deptInfo: {}, //选中机构的基本信息
       option: [], //机构列表
       showOut: false,
-      isRadioMode: true
+      isRadioMode: true,
+      isQueryStaff :false,
     };
   },
   created() {
@@ -250,8 +252,8 @@ export default {
           content: res.data.content,
           pageNum: res.data.current,
           pageSize: res.data.size,
-          totalPages: res.data.pages,
-          totalSize: res.data.total,
+          totalPages: res.data.totalPages,
+          totalSize: res.data.totalSize,
         };
       });
     },
@@ -343,11 +345,11 @@ export default {
         return 'hideCheckbox'
       }
     },
-    refreshPageRequest: function (pageNum) {
+    refreshPageRequestAdd: function (pageNum) {
       this.addListDataPage.pageNum = pageNum;
       this.handleAddButton()
     },
-    handleSizeChange(pageSize) {
+    handleSizeChangeAdd(pageSize) {
       this.addListDataPage.pageSize = pageSize;
       this.handleAddButton()
     },

+ 15 - 10
src/views/BindUser/Zzb.vue

@@ -70,7 +70,6 @@
 
           <kt-common-table
             ref="ktcommonTable"
-            permsEdit="sys:backline:edit"
             :data="pageResult"
             :columns="columns"
             editButtonName="绑定人员"
@@ -78,6 +77,7 @@
             @handleEdit="handleTableEdit"
             :button7Name="'清空'"
             @handleButton7="handleTableDeleteFlag"
+            @findPage="findPage"
           >
           </kt-common-table>
         </SplitArea>
@@ -123,7 +123,7 @@
           <el-table-column prop="phoneNumber" label="电话">
           </el-table-column>
       </el-table>
-      <el-pagination @size-change="handleSizeChange" @current-change="refreshPageRequest"
+      <el-pagination @size-change="handleSizeChangeAdd" @current-change="refreshPageRequestAdd"
           :current-page="addListDataPage.pageNum" :page-sizes="[10, 20, 50, 100, 200, 300, 400, 500]"
           :page-size="addListDataPage.pageSize" layout="total, sizes, prev, pager, next, jumper"
           :total="addListDataPage.total">
@@ -166,10 +166,10 @@ export default {
       userId: "",
       pageData: {
         pageNum: 1,
-        pageSize: 20,
+        pageSize: 10,
         deptId: JSON.parse(localStorage.getItem("user_data")).deptId,
         userId: "",
-        realName: "",
+        name: "",
         mobile: "",
         status:"1"
       },
@@ -182,7 +182,8 @@ export default {
       teamleaderid: "",
       // 右侧列表查询数据Start
       queryFrom: {},
-      pageResult: {},
+      pageResult: {
+      },
       containsSubDeptChecked: true, //是否包含下级机构
       columns: [
         // 数据列
@@ -200,7 +201,8 @@ export default {
       deptInfo: {}, //选中机构的基本信息
       option: [], //机构列表
       showOut: false,
-      isRadioMode: true
+      isRadioMode: true,
+      isQueryStaff :false,
     };
   },
   created() {
@@ -229,6 +231,7 @@ export default {
     findPage(data) {
       // 获取分页数据
       if (data && data.pageRequest) {
+        console.log(data);
         this.pageData.pageNum = data.pageRequest.pageNum;
         this.pageData.pageSize = data.pageRequest.pageSize;
       }
@@ -246,12 +249,14 @@ export default {
       };
      
       this.$api.bindUser.queryUserZZBPage(dto).then((res) => {
+        console.log(res.data.totalSize);
+        console.log(res.data.totalPages);
         this.pageResult = {
           content: res.data.content,
           pageNum: res.data.current,
           pageSize: res.data.size,
-          totalPages: res.data.pages,
-          totalSize: res.data.total,
+          totalPages: res.data.totalPages,
+          totalSize: res.data.totalSize,
         };
       });
     },
@@ -342,11 +347,11 @@ export default {
         return 'hideCheckbox'
       }
     },
-    refreshPageRequest: function (pageNum) {
+    refreshPageRequestAdd: function (pageNum) {
       this.addListDataPage.pageNum = pageNum;
       this.handleAddButton()
     },
-    handleSizeChange(pageSize) {
+    handleSizeChangeAdd(pageSize) {
       this.addListDataPage.pageSize = pageSize;
       this.handleAddButton()
     },

+ 0 - 148
src/views/BindUser/mixin.js

@@ -5,148 +5,6 @@ export default (params) => { // 导出混入对象
   return {
     data() {
       return {
-        nationalList: [
-          "汉族",
-          "壮族",
-          "满族",
-          "回族",
-          "苗族",
-          "维吾尔族",
-          "土家族",
-          "彝族",
-          "蒙古族",
-          "藏族",
-          "布依族",
-          "侗族",
-          "瑶族",
-          "朝鲜族",
-          "白族",
-          "哈尼族",
-          "哈萨克族",
-          "黎族",
-          "傣族",
-          "畲族",
-          "傈僳族",
-          "仡佬族",
-          "东乡族",
-          "高山族",
-          "拉祜族",
-          "水族",
-          "佤族",
-          "纳西族",
-          "羌族",
-          "土族",
-          "仫佬族",
-          "锡伯族",
-          "柯尔克孜族",
-          "达斡尔族",
-          "景颇族",
-          "毛南族",
-          "撒拉族",
-          "布朗族",
-          "塔吉克族",
-          "阿昌族",
-          "普米族",
-          "鄂温克族",
-          "怒族",
-          "京族",
-          "基诺族",
-          "德昂族",
-          "保安族",
-          "俄罗斯族",
-          "裕固族",
-          "乌兹别克族",
-          "门巴族",
-          "鄂伦春族",
-          "独龙族",
-          "塔塔尔族",
-          "赫哲族",
-          "珞巴族",
-        ],
-        sexoptions: JSON.parse(localStorage.getItem("sexOptions")),
-        postOption: [],
-        bloodOption: [
-          {
-            label: 'A型',
-            value: 'A型'
-          }, {
-            label: 'B型',
-            value: 'B型'
-          }, {
-            label: 'O型',
-            value: 'O型'
-          }, {
-            label: 'AB型',
-            value: 'AB型'
-          },
-        ],
-        educationOption: [
-          {
-            label: '小学',
-            value: '小学'
-          }, {
-            label: '初中',
-            value: '初中'
-          }, {
-            label: '高中',
-            value: '高中'
-          }, {
-            label: '专科',
-            value: '专科'
-          }, {
-            label: '本科',
-            value: '本科'
-          }, {
-            label: '硕士',
-            value: '硕士'
-          }, {
-            label: '博士',
-            value: '博士'
-          },
-        ],
-        healthOption: [
-          {
-            label: '健康',
-            value: '健康'
-          }, {
-            label: '亚健康',
-            value: '亚健康'
-          }, {
-            label: '疾病',
-            value: '疾病'
-          },
-        ],
-        politicsStatusOption: [
-          {
-            label: '群众',
-            value: '群众'
-          }, {
-            label: '共青团员',
-            value: '共青团员'
-          }, {
-            label: '中共党员',
-            value: '中共党员'
-          },
-        ],
-        maritalStatusOption: [
-          {
-            label: '未婚',
-            value: '未婚'
-          }, {
-            label: '已婚',
-            value: '已婚'
-          }, {
-            label: '离异',
-            value: '离异'
-          }, {
-            label: '再婚',
-            value: '再婚'
-          },
-        ],
-        user_statusoptions: JSON.parse(
-          localStorage.getItem("user_statusoptions")
-        ),
-        roles: JSON.parse(localStorage.getItem("find_all")),
         /**Split 开始 */
         ztreeNodes: [],
         leftSplitWidth: 20,
@@ -171,12 +29,6 @@ export default (params) => { // 导出混入对象
       }
     },
     created() {
-      this.$api.role.postViewAll().then((res) => {
-        res.data.forEach(ele => {
-          ele.postId = ele.postId + ''
-        })
-        this.postOption = res.data
-      })
       this.findLeftTreeData(); // 获取机构树的数据
 
     },

+ 13 - 0
src/views/Core/components/detailsDialog.vue

@@ -514,6 +514,19 @@
                     <span>¥{{ scope.row.deptPremiumsLevelFive }}</span>
                   </template>
                 </el-table-column>
+                <el-table-column prop="externalProportion" label="代客录单扣减比例">
+                <template slot-scope="scope" >
+                  <span v-if="scope.row.externalProportion">{{ scope.row.externalProportion }}%</span>
+                  <span v-else>-</span>
+                </template>
+              </el-table-column>
+              <el-table-column prop="externalPremiums" label="代客录单扣减金额">
+                <template slot-scope="scope" >
+                  <span v-if="scope.row.externalPremiums">¥{{ scope.row.externalPremiums }}</span>
+                  <span v-else>-</span>
+                </template>
+              </el-table-column>
+                
                 <el-table-column prop="profitMarginPremiums" label="利润差值">
                   <template slot-scope="scope">
                     <span>¥{{ scope.row.profitMarginPremiums }}</span>

+ 100 - 77
src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/InvoicingUnsettled.vue

@@ -141,23 +141,23 @@
         <el-table
           :data="form.insuranceHandlingList"
           border
-          style="width: 600px;margin-bottom: 20px;"
+          style="width: 600px; margin-bottom: 20px"
         >
-            <el-table-column prop="incomeSigningTime" label="月份"> </el-table-column>
-            <el-table-column prop="remainingAmount" label="未结算金额">
-            </el-table-column>
-            <el-table-column prop="settlementAmount" label="进账金额">
-              <template slot-scope="scope">
-                <el-input v-model="scope.row.settlementAmount"  @input='amountChange(scope.row)'></el-input>
-              </template>
-            </el-table-column>
+          <el-table-column prop="incomeSigningTime" label="月份">
+          </el-table-column>
+          <el-table-column prop="remainingAmount" label="未结算金额">
+          </el-table-column>
+          <el-table-column prop="settlementAmount" label="进账金额">
+            <template slot-scope="scope">
+              <el-input
+                v-model="scope.row.settlementAmount"
+                @input="amountChange(scope.row)"
+              ></el-input>
+            </template>
+          </el-table-column>
         </el-table>
-          <el-form-item label="进账总金额:">
-          <el-input
-            v-model="total"
-            style="width: 220px"
-            readonly
-          ></el-input>
+        <el-form-item label="进账总金额:">
+          <el-input v-model="total" style="width: 220px" readonly></el-input>
         </el-form-item>
         <el-form-item label="进账日期:">
           <el-date-picker
@@ -168,7 +168,7 @@
           >
           </el-date-picker>
         </el-form-item>
-          <el-form-item label="上传凭证:">
+        <el-form-item label="上传凭证:">
           <el-upload
             action="#"
             class="upload-demo"
@@ -184,9 +184,7 @@
         </el-form-item>
       </el-form>
       <span slot="footer" class="dialog-footer">
-        <el-button size="small" @click="cancelSumbit"
-          >取消</el-button
-        >
+        <el-button size="small" @click="cancelSumbit">取消</el-button>
         <el-button type="primary" size="small" @click="balanceSumbit"
           >确实</el-button
         >
@@ -198,7 +196,7 @@
 import templateTable from "@/components/TemplateTable/index.vue";
 import { mapState } from "vuex";
 import yearMonthYay from "../../PlatformSettlement/yearMonthYay.vue";
-import { Decimal } from 'decimal.js'
+import { Decimal } from "decimal.js";
 export default {
   name: "InvoicingUnsettled",
   components: { templateTable, yearMonthYay },
@@ -306,9 +304,9 @@ export default {
       fileList: [],
       dialogVisiblebalance: false,
       form: {
-        insuranceHandlingList:[],
-        settlementAmount:"",
-        settlementTime:"",
+        insuranceHandlingList: [],
+        settlementAmount: "",
+        settlementTime: "",
       },
       formTableData: [],
       tableConfigDetail: {
@@ -512,21 +510,30 @@ export default {
   },
   computed: {
     total() {
-            var sum =0;
-            if(this.form.insuranceHandlingList.length>0){
-                this.form.insuranceHandlingList.forEach(item => {
-                     sum = new Decimal(sum).plus((item.settlementAmount==''||item.settlementAmount==null)?new Decimal(0): new Decimal(item.settlementAmount)).toString();
-                });
-                return  Object.is(Number(sum), NaN)?0:sum;
-            }
-            return sum;
-    }
+      var sum = 0;
+      if (this.form.insuranceHandlingList.length > 0) {
+        this.form.insuranceHandlingList.forEach((item) => {
+          sum = new Decimal(sum)
+            .plus(
+              item.settlementAmount == "" || item.settlementAmount == null
+                ? new Decimal(0)
+                : new Decimal(item.settlementAmount)
+            )
+            .toString();
+        });
+        return Object.is(Number(sum), NaN) ? 0 : sum;
+      }
+      return sum;
+    },
   },
   methods: {
     //改变事件
-    amountChange(row){
-      if(row.settlementAmount>0 && row.settlementAmount>row.remainingAmount){
-         this.$message.error("进账金额不能大于未结算金额");
+    amountChange(row) {
+      if (
+        row.settlementAmount > 0 &&
+        row.settlementAmount > row.remainingAmount
+      ) {
+        this.$message.error("进账金额不能大于未结算金额");
       }
     },
     // 记录
@@ -704,40 +711,43 @@ export default {
       this.dialogVisible = false;
     },
     //取消结算
-    cancelSumbit(){
-      this.dialogVisiblebalance = false
+    cancelSumbit() {
+      this.dialogVisiblebalance = false;
       //清空数据
-      this.form= {
-        insuranceHandlingList:[],
-        settlementAmount:"",
-        settlementTime:"",
-      }
-      this.batchData.id=null;
+      this.form = {
+        insuranceHandlingList: [],
+        settlementAmount: "",
+        settlementTime: "",
+      };
+      this.batchData.id = null;
     },
     balanceSumbit() {
-      var flag=0;
-      var count=0;
-      if(this.form.insuranceHandlingList){
-        this.form.insuranceHandlingList.forEach(e => {  
-          if(e.settlementAmount>0 && e.settlementAmount>e.remainingAmount){
+      var flag = 0;
+      var count = 0;
+      if (this.form.insuranceHandlingList) {
+        this.form.insuranceHandlingList.forEach((e) => {
+          if (
+            e.settlementAmount > 0 &&
+            e.settlementAmount > e.remainingAmount
+          ) {
             this.$message.error("进账金额不能大于未结算金额");
-            flag+=1;
+            flag += 1;
           }
-          if(e.settlementAmount>0){
-            count+=1;
+          if (e.settlementAmount > 0) {
+            count += 1;
           }
-        })
+        });
       }
-      if (count==0) {
+      if (count == 0) {
         this.$message.error("未填写金额!!");
         return;
       }
-      if (flag>0) {
+      if (flag > 0) {
         this.$message.error("金额输入错误!!");
         return;
       }
-      
-      this.form.settlementAmount=this.total;
+
+      this.form.settlementAmount = this.total;
       this.$api.task
         .batchBxBalance({
           ...this.openBalanceDetail,
@@ -766,17 +776,30 @@ export default {
       this.dialogVisiblebalance = false;
     },
     handVoid(row) {
-      this.$api.task.yaidlnvoicing({ id: row.id }).then((res) => {
-        if (res.code == 200) {
-          this.dialogVisible = false;
+      this.$confirm("是否确认作废?", "提示", {
+        confirmButtonText: "提交",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          this.$api.task.yaidlnvoicing({ id: row.id }).then((res) => {
+            if (res.code == 200) {
+              this.dialogVisible = false;
+              this.$message({
+                message: res.msg || "操作成功",
+                type: "success",
+              });
+            } else {
+              this.$message.error(res.msg);
+            }
+          });
+        })
+        .catch(() => {
           this.$message({
-            message: res.msg || "操作成功",
-            type: "success",
+            type: "info",
+            message: "已取消作废",
           });
-        } else {
-          this.$message.error(res.msg);
-        }
-      });
+        });
     },
     // 结算
     balanceFun(row) {
@@ -784,21 +807,21 @@ export default {
       this.fileList = [];
       this.getSettlementList(row);
       this.dialogVisiblebalance = true;
-
     },
     //通过结算数据id查询需要结算的数据
-    getSettlementList(row){
-      this.$api.settlement.queryListByTaskIdAndCompanyId(
-        { 
+    getSettlementList(row) {
+      this.$api.settlement
+        .queryListByTaskIdAndCompanyId({
           taskId: row.taskId,
-          partnerCompaniesId:row.partnerCompaniesId,
-          isNotCar:"0",
-          isNotDocumentary:"0"
-        }).then((res) => {
-        if (res.code == 200) {
-           this.form.insuranceHandlingList =res.data; 
-        } 
-      }); 
+          partnerCompaniesId: row.partnerCompaniesId,
+          isNotCar: "0",
+          isNotDocumentary: "0",
+        })
+        .then((res) => {
+          if (res.code == 200) {
+            this.form.insuranceHandlingList = res.data;
+          }
+        });
     },
     tablePageChange(val) {
       this.pageData.pageSize = val;

+ 793 - 665
src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/InvoicingUnsettled.vue

@@ -1,694 +1,822 @@
 <template>
-    <!--布局容器-->
-    <div class="InvoicedAndSettled" style="width: 99%; margin-top: 0px">
-        <templateTable :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
-            @findPage="findPage" @handleSearchList="handleSearchList" @resetForm="resetForm" :pagination="pageData"
-            @getList="getList">
-            <template slot="data">
-                <yearMonthYay ref="yearMonthYay" @getYearData="getYearData" @getMonthData="getMonthData"
-                    @getDayData="getDayData"></yearMonthYay>
+  <!--布局容器-->
+  <div class="InvoicedAndSettled" style="width: 99%; margin-top: 0px">
+    <templateTable
+      :formList="formList"
+      :searchData.sync="searchData"
+      :tableConfig="tableConfig"
+      :data="tableData"
+      @findPage="findPage"
+      @handleSearchList="handleSearchList"
+      @resetForm="resetForm"
+      :pagination="pageData"
+      @getList="getList"
+    >
+      <template slot="data">
+        <yearMonthYay
+          ref="yearMonthYay"
+          @getYearData="getYearData"
+          @getMonthData="getMonthData"
+          @getDayData="getDayData"
+        ></yearMonthYay>
+      </template>
+      <template slot="保司机构">
+        <el-cascader
+          v-model="pageData.partnerCompaniesIdList"
+          size="small"
+          :show-all-levels="false"
+          ize="small"
+          :options="ztreeNodes"
+          :props="{
+            checkStrictly: true,
+            value: 'id',
+            label: 'name',
+            children: 'children',
+          }"
+          clearable
+          filterable
+        ></el-cascader>
+      </template>
+    </templateTable>
+    <el-dialog
+      title="详情"
+      :visible.sync="dialogVisible"
+      width="80%"
+      :before-close="handleClose"
+    >
+      <templateTable
+        ref="templateTable"
+        :formList="formList1"
+        @handleSearchList="handleSearchList1"
+        :tableConfig="tableConfigDetail"
+        :data="formTableData"
+        @findPage="findPageDetail"
+      >
+        <template slot="开票方式" slot-scope="scope">
+          <span>{{
+            scope.row.invoicingMethod == 0
+              ? "保司开票"
+              : scope.row.invoicingMethod == 1
+              ? "掌柜开票"
+              : scope.row.invoicingMethod
+          }}</span>
+        </template>
+        <template slot="结算状态" slot-scope="scope">
+          <span>{{
+            scope.row.completionStatus == 0
+              ? "开票未结算"
+              : scope.row.completionStatus == 1
+              ? "开票已结算"
+              : scope.row.completionStatus == 2
+              ? "开票结算清"
+              : scope.row.completionStatus
+          }}</span>
+        </template>
+      </templateTable>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisible = false">取消</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog
+      title="结算"
+      :visible.sync="dialogVisiblebalance"
+      width="30%"
+      :before-close="handleClosebalance"
+    >
+      <el-form ref="form" :model="form" label-width="200px">
+        <el-table
+          :data="form.insuranceHandlingList"
+          border
+          style="width: 600px; margin-bottom: 20px"
+        >
+          <el-table-column prop="incomeSigningTime" label="月份">
+          </el-table-column>
+          <el-table-column prop="remainingAmount" label="未结算金额">
+          </el-table-column>
+          <el-table-column prop="settlementAmount" label="进账金额">
+            <template slot-scope="scope">
+              <el-input
+                v-model="scope.row.settlementAmount"
+                @input="amountChange(scope.row)"
+              ></el-input>
             </template>
-            <template slot="保司机构">
-                <el-cascader v-model="pageData.partnerCompaniesIdList" size="small" :show-all-levels="false" ize="small"
-                    :options="ztreeNodes" :props='{
-                        checkStrictly: true,
-                        value: "id",
-                        label: "name",
-                        children: "children",
-                    }' clearable filterable></el-cascader>
-            </template>
-        </templateTable>
-        <el-dialog title="详情" :visible.sync="dialogVisible" width="80%" :before-close="handleClose">
-            <templateTable ref="templateTable" :formList="formList1" @handleSearchList="handleSearchList1"
-                :tableConfig="tableConfigDetail" :data="formTableData" @findPage="findPageDetail">
-                <template slot="开票方式" slot-scope="scope">
-                <span>{{ scope.row.invoicingMethod == 0 ? '保司开票' : scope.row.invoicingMethod == 1 ? '掌柜开票' : scope.row.invoicingMethod }}</span>
-              </template>
-              <template slot="结算状态" slot-scope="scope">
-                <span>{{ scope.row.completionStatus == 0 ? '开票未结算' : scope.row.completionStatus == 1 ? '开票已结算' : scope.row.completionStatus == 2 ? '开票结算清' : scope.row.completionStatus }}</span>
-              </template>
-            </templateTable>
-            <span slot="footer" class="dialog-footer">
-                <el-button size="small" @click="dialogVisible = false">取消</el-button>
-            </span>
-        </el-dialog>
-        <el-dialog title="结算" :visible.sync="dialogVisiblebalance" width="30%" :before-close="handleClosebalance">
-            
-            <el-form ref="form" :model="form" label-width="200px">
-                <el-table
-                :data="form.insuranceHandlingList"
-                border
-                style="width: 600px;margin-bottom: 20px;"
-                >
-                    <el-table-column prop="incomeSigningTime" label="月份"> </el-table-column>
-                    <el-table-column prop="remainingAmount" label="未结算金额">
-                    </el-table-column>
-                    <el-table-column prop="settlementAmount" label="进账金额">
-                    <template slot-scope="scope">
-                        <el-input v-model="scope.row.settlementAmount"  @input='amountChange(scope.row)'></el-input>
-                    </template>
-                    </el-table-column>
-                </el-table>
-                    <el-form-item label="进账总金额:">
-                        <el-input v-model="total" style="width:220px"></el-input>
-                    </el-form-item>
-                    <el-form-item label="进账日期:">
-                        <el-date-picker v-model="form.settlementTime" type="date" placeholder="选择日期" value-format="yyyy-MM-dd">
-                        </el-date-picker>
-                    </el-form-item>
-                    <el-form-item label="上传凭证:">
-                        <el-upload action="#" class="upload-demo" :limit="1" :auto-upload="false" :on-change="drivingupload"
-                            ref="upload3" accept=".png, .jpg, .jpeg" :file-list="fileList">
-                            <el-button size="small" type="primary">点击上传</el-button>
-                        </el-upload>
-                    </el-form-item>
-                </el-form>
-            <span slot="footer" class="dialog-footer">
-                <el-button size="small" @click="cancelSumbit">取消</el-button>
-                <el-button type="primary" size="small" @click="balanceSumbit">确定</el-button>
-            </span>
-        </el-dialog>
-        <!-- 记录 明细 -->
-        <el-dialog title="记录" :visible.sync="dialogVisiblerecord" width="30%" :before-close="handleCloserecord">
-            <templateTable ref="templateTable1"   :pagination="pageDatarecord" @getList="getListrecord"
-                :tableConfig="tableConfigDetailrecord" :data="formTableDatarecord" @findPage="findPageDetailrecord">
-                <template slot="imageUrl" slot-scope="scope">
-                    <img v-if="scope.row.imageUrl" :src='scope.row.imageUrl' class="imageclass"  @click.stop="showViewer=true;ProViewImg=scope.row.imageUrl" />
-                </template>
-            </templateTable>
-            <span slot="footer" class="dialog-footer">
-                <el-button size="small" @click="dialogVisiblerecord = false">取消</el-button>
-            </span>
-        </el-dialog>
-        <el-dialog title="明细" :visible.sync="dialogVisiblerecordDetail" width="50%" :before-close="handleCloserecorddetail">
-            <templateTable ref="templateTable1"   :pagination="pageDatarecorddetail" @getList="getListrecorddetail"
-                :tableConfig="tableConfigDetailrecorddetail" :data="recordDetailData" @findPage="findPageDetailrecorddatail">
-            </templateTable>
-
-            <span slot="footer" class="dialog-footer">
-                <el-button size="small" @click="dialogVisiblerecordDetail = false">取消</el-button>
-            </span>
-        </el-dialog>
+          </el-table-column>
+        </el-table>
+        <el-form-item label="进账总金额:">
+          <el-input v-model="total" style="width: 220px"></el-input>
+        </el-form-item>
+        <el-form-item label="进账日期:">
+          <el-date-picker
+            v-model="form.settlementTime"
+            type="date"
+            placeholder="选择日期"
+            value-format="yyyy-MM-dd"
+          >
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="上传凭证:">
+          <el-upload
+            action="#"
+            class="upload-demo"
+            :limit="1"
+            :auto-upload="false"
+            :on-change="drivingupload"
+            ref="upload3"
+            accept=".png, .jpg, .jpeg"
+            :file-list="fileList"
+          >
+            <el-button size="small" type="primary">点击上传</el-button>
+          </el-upload>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="cancelSumbit">取消</el-button>
+        <el-button type="primary" size="small" @click="balanceSumbit"
+          >确定</el-button
+        >
+      </span>
+    </el-dialog>
+    <!-- 记录 明细 -->
+    <el-dialog
+      title="记录"
+      :visible.sync="dialogVisiblerecord"
+      width="30%"
+      :before-close="handleCloserecord"
+    >
+      <templateTable
+        ref="templateTable1"
+        :pagination="pageDatarecord"
+        @getList="getListrecord"
+        :tableConfig="tableConfigDetailrecord"
+        :data="formTableDatarecord"
+        @findPage="findPageDetailrecord"
+      >
+        <template slot="imageUrl" slot-scope="scope">
+          <img
+            v-if="scope.row.imageUrl"
+            :src="scope.row.imageUrl"
+            class="imageclass"
+            @click.stop="
+              showViewer = true;
+              ProViewImg = scope.row.imageUrl;
+            "
+          />
+        </template>
+      </templateTable>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisiblerecord = false"
+          >取消</el-button
+        >
+      </span>
+    </el-dialog>
+    <el-dialog
+      title="明细"
+      :visible.sync="dialogVisiblerecordDetail"
+      width="50%"
+      :before-close="handleCloserecorddetail"
+    >
+      <templateTable
+        ref="templateTable1"
+        :pagination="pageDatarecorddetail"
+        @getList="getListrecorddetail"
+        :tableConfig="tableConfigDetailrecorddetail"
+        :data="recordDetailData"
+        @findPage="findPageDetailrecorddatail"
+      >
+      </templateTable>
 
-    </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisiblerecordDetail = false"
+          >取消</el-button
+        >
+      </span>
+    </el-dialog>
+  </div>
 </template>
 <script>
-import templateTable from '@/components/TemplateTable/index.vue'
-import { mapState } from 'vuex'
-import yearMonthYay from '../../PlatformSettlement/yearMonthYay.vue'
-import { Decimal } from 'decimal.js'
+import templateTable from "@/components/TemplateTable/index.vue";
+import { mapState } from "vuex";
+import yearMonthYay from "../../PlatformSettlement/yearMonthYay.vue";
+import { Decimal } from "decimal.js";
 export default {
-    name: "baosi",
-    components: { templateTable, yearMonthYay },
-    created() {
-    },
-    computed: {
-        ...mapState({
-            perms: state => state.user.perms
-        })
-    },
-    data() {
-        return {
-            // 记录 明细
-          dialogVisiblerecord: false,
-          dialogVisiblerecordDetail: false,
-          formTableDatarecord:[],
-          recordDetailData:[],
-          pageDatarecord: {
-                pageNum: 1,
-                pageSize: 20,
-                totalSize:0
+  name: "baosi",
+  components: { templateTable, yearMonthYay },
+  created() {},
+  computed: {
+    ...mapState({
+      perms: (state) => state.user.perms,
+    }),
+  },
+  data() {
+    return {
+      // 记录 明细
+      dialogVisiblerecord: false,
+      dialogVisiblerecordDetail: false,
+      formTableDatarecord: [],
+      recordDetailData: [],
+      pageDatarecord: {
+        pageNum: 1,
+        pageSize: 20,
+        totalSize: 0,
+      },
+      pageDatarecorddetail: {
+        pageNum: 1,
+        pageSize: 20,
+        totalSize: 0,
+      },
+      tableConfigDetailrecord: {
+        columns: [
+          {
+            prop: "settlementTime",
+            label: "进账日期",
+            type: "text",
+          },
+          {
+            prop: "settlementAmount",
+            label: "进帐金额",
+            type: "text",
+          },
+          {
+            name: "imageUrl",
+            label: "凭证",
+            type: "slot",
+          },
+        ],
+        loading: true,
+        isPaginationShow: true,
+      },
+      tableConfigDetailrecorddetail: {
+        columns: [
+          {
+            prop: "noPolicyno",
+            label: "非车保单号",
+            type: "text",
+          },
+          {
+            prop: "licenseno",
+            label: "车牌号",
+            type: "text",
+          },
+          {
+            prop: "insuredName",
+            label: "被保人",
+            type: "text",
+          },
+          {
+            prop: "noPremium",
+            label: "非车保费",
+            type: "text",
+          },
+          {
+            prop: "noSuperviseCostsPremiums",
+            label: "非车手续费",
+            type: "text",
+          },
+          {
+            prop: "noSuperviseCostsProportion",
+            label: "非车手续费比例",
+            type: "text",
+          },
+        ],
+        loading: true,
+        isPaginationShow: true,
+      },
+      ztreeNodes: [],
+      fileList: [],
+      dialogVisiblebalance: false,
+      form: {
+        insuranceHandlingList: [],
+        settlementAmount: "",
+        settlementTime: null,
+      },
+      formTableData: [],
+      dialogVisible: false,
+      tableConfigDetail: {
+        columns: [
+          {
+            prop: "invoicId",
+            label: "开票号",
+            type: "text",
+          },
+          {
+            prop: "invoicingMethod",
+            label: "开票方式",
+            // type: "text"
+            name: "开票方式",
+            type: "slot",
+          },
+          {
+            prop: "invoicCommissionFeevalue",
+            label: "开票金额",
+            type: "text",
+          },
+          {
+            prop: "invoicedSettledAmount",
+            label: "已开票已结算金额",
+            type: "text",
+          },
+          {
+            prop: "invoicedNotSettledAmount",
+            label: "已开票未结算金额",
+            type: "text",
+          },
+          {
+            prop: "completionStatus",
+            label: "结算状态",
+            name: "结算状态",
+            type: "slot",
+          },
+        ],
+        loading: true,
+        isShowIndex: true,
+        operationWidth: 150,
+        tableHeight: "auto",
+        optBtns: [
+          {
+            type: "primary",
+            label: "结算",
+            hide: (row) => {
+              return row.completionStatus != "2";
             },
-            pageDatarecorddetail: {
-                pageNum: 1,
-                pageSize: 20,
-                totalSize:0
+            click: (row, index) => {
+              return this.balanceFun(row);
             },
-            tableConfigDetailrecord: {
-                columns: [
-                    {
-                        prop: "settlementTime",
-                        label: "进账日期",
-                        type: "text"
-                    },
-                    {
-                        prop: "settlementAmount",
-                        label: "进帐金额",
-                        type: "text"
-                    },
-                    {
-                        name: "imageUrl",
-                        label: "凭证",
-                        type: "slot"
-                    },
-                ],
-                loading: true,
-                isPaginationShow:true
+          },
+          {
+            type: "primary",
+            label: "作废",
+            hide: (row) => {
+              return row.completionStatus == "0";
             },
-            tableConfigDetailrecorddetail: {
-                columns: [
-                    {
-                        prop: "noPolicyno",
-                        label: "非车保单号",
-                        type: "text"
-                    },
-                    {
-                        prop: "licenseno",
-                        label: "车牌号",
-                        type: "text"
-                    },
-                    {
-                        prop: "insuredName",
-                        label: "被保人",
-                        type: "text"
-                    },
-                    {
-                        prop: "noPremium",
-                        label: "非车保费",
-                        type: "text"
-                    },
-                    {
-                        prop: "noSuperviseCostsPremiums",
-                        label: "非车手续费",
-                        type: "text"
-                    },
-                    {
-                        prop: "noSuperviseCostsProportion",
-                        label: "非车手续费比例",
-                        type: "text"
-                    },
-                ],
-                loading: true,
-                isPaginationShow:true
+            click: (row, index) => {
+              return this.handVoid(row);
             },
-            ztreeNodes: [],
-            fileList: [],
-            dialogVisiblebalance: false,
-            form: {
-                insuranceHandlingList:[],
-                settlementAmount:"",
-                settlementTime:null, 
+          },
+          {
+            type: "primary",
+            label: "记录",
+            hide: (row) => {
+              return row.completionStatus != "0";
             },
-            formTableData: [],
-            dialogVisible: false,
-            tableConfigDetail: {
-                columns: [
-                    {
-                        prop: "invoicId",
-                        label: "开票号",
-                        type: "text"
-                    },
-                    {
-                        prop: "invoicingMethod",
-                        label: "开票方式",
-                        // type: "text"
-                        name: '开票方式',
-                        type: 'slot'
-                    },
-                    {
-                        prop: "invoicCommissionFeevalue",
-                        label: "开票金额",
-                        type: "text"
-                    },
-                    {
-                        prop: "invoicedSettledAmount",
-                        label: "已开票已结算金额",
-                        type: "text"
-                    },
-                    {
-                        prop: "invoicedNotSettledAmount",
-                        label: "已开票未结算金额",
-                        type: "text"
-                    },
-                    {
-                        prop: "completionStatus",
-                        label: "结算状态",
-                        name: "结算状态",
-                        type: "slot"
-                    }
-
-                ],
-                loading: true,
-                isShowIndex: true,
-                operationWidth: 150,
-                tableHeight:'auto',
-                optBtns: [
-                    {
-                        type: 'primary',
-                        label: '结算',
-                        hide: (row) => {
-                            return row.completionStatus != '2'
-                        },
-                        click: (row, index) => { return this.balanceFun(row) },
-                    },
-                    {
-                        type: 'primary',
-                        label: '作废',
-                        hide: (row) => {
-                            return row.completionStatus == '0'
-                        },
-                        click: (row, index) => { return this.handVoid(row) },
-                    },
-                    {
-                    type:'primary',
-                    label:'记录',
-                    hide: (row) => {
-                    return row.completionStatus != '0'
-                    },
-                    click:(row, index) => {return this.haldRecord(row)},
-                },
-                {
-                    type:'primary',
-                    label:'明细',
-                    hide: (row) => {
-                    return row.completionStatus != '0'
-                    },
-                    click:(row, index) => {return this.haldRecordDetail(row)},
-                },
-                ]
+            click: (row, index) => {
+              return this.haldRecord(row);
             },
-            searchData: {},
-            formList: [
-                {
-                    label: "保险公司",
-                    prop: "companyName",
-                    type: "company",
-                },
-                {
-                    label: "合作公司名称",
-                    name: "保司机构",
-                    type: "slot",
-                },
-                {
-                    label: "年月日",
-                    name: "data",
-                    type: "slot",
-                },
-            ],
-            formList1: [
-                {
-                    label: "结算状态",
-                    prop: "settlementStatus",
-                    type: "select",
-                    options: [
-                      {
-                        label: '开票未结算',
-                        value: '0'
-                      },
-                      {
-                        label: '开票已结算',
-                        value: '1'
-                      }, 
-                      {
-                        label: '开票结算清',
-                        value: '2'
-                      },
-                    ]
-                },
-
-            ],
-            tableConfig: {
-                columns: [
-                    {
-                        prop: "companyName",
-                        label: "保险公司名称",
-                        type: "text"
-                    },
-                    {
-                        prop: "partnerCompaniesName",
-                        label: "保司机构",
-                        type: "text"
-                    },
-                    {
-                        prop: "allInvoicCommissionFeevalue",
-                        label: "已开票手续费",
-                        type: "text"
-                    },
-                    {
-                        prop: "readyCommissionFeevalue",
-                        label: "已开票已结算手续费",
-                        type: "text"
-                    },
-                    {
-                        prop: "invoicCommissionFeevalue",
-                        label: "已开票未结算手续费",
-                        type: "text"
-                    },
-                ],
-                loading: true,
-                isPaginationShow: true,
-                showSummary: true,
-                isShowIndex: true,
-                tableHeight: 'auto',
-                optBtns: [
-                    {
-                        type: 'primary',
-                        label: '详情',
-                        click: (row, index) => { return this.haldDetail(row) },
-                    }
-                ]
+          },
+          {
+            type: "primary",
+            label: "明细",
+            hide: (row) => {
+              return row.completionStatus != "0";
             },
-            tableData: [],
-            pageData: {
-                pageNum: 1,
-                pageSize: 20,
-                agreementType: '2',
-                isNotCar: '1',
-                isNotDocumentary: '0',
-                handlingFeesStatus: '0'
+            click: (row, index) => {
+              return this.haldRecordDetail(row);
             },
-            formData: {},
-            formDetail: {},
-            batchData: {}
-        };
-    },
-    created() {
-        this.$api.insCompany.findLeftInsTree({
-            classname: "",
-            type: '1',
-        }).then((res) => {
-            this.ztreeNodes = res.data;
-        });
-        this.findPage();
-    },
-    computed: {
-        total() {
-            var sum =0;
-            if(this.form.insuranceHandlingList.length>0){
-                this.form.insuranceHandlingList.forEach(item => {
-                     sum = new Decimal(sum).plus((item.settlementAmount==''||item.settlementAmount==null)?new Decimal(0): new Decimal(item.settlementAmount)).toString();
-                });
-                return  Object.is(Number(sum), NaN)?0:sum;
-            }
-            return sum;
-       }
-    },
-    methods: {
-          //改变事件
-     amountChange(row){
-      if(row.settlementAmount>0 && row.settlementAmount>row.remainingAmount){
-         this.$message.error("进账金额不能大于未结算金额");
-      }
-     },
-        // 明细
-      findPageDetailrecord(data) {
-            this.tableConfigDetailrecord.loading = true
-            this.$api.task
-            .settlementFeesGetRecord(this.recorddetailid)
-            .then(res => {
-                if (res.code == 200) {
-                    res.data.forEach(ele => {
-                        if (ele.imageUrl) {
-                        ele.imageUrl= process.env.BASE_URL+ele.imageUrl
-                        }
-                    });
-                    this.formTableDatarecord = res.data
-                    this.tableConfigDetailrecord.loading = false;
-                }
-                else {
-                    this.tableConfigDetail.loading = false;
-                    this.$message.error(res.msg)
-                }
-            });
-        },
-        getListrecord(data) {
-            this.findPageDetailrecord(data)
-        },
-        haldRecord(row) {
-            this.dialogVisiblerecord = true
-            this.recorddetailid = row.id
-            this.findPageDetailrecord()
-        },
-        
-        haldRecordDetail(row) {
-            this.dialogVisiblerecordDetail = true
-            this.recorddetailid = row.id
-            this.getListrecorddetail()
+          },
+        ],
+      },
+      searchData: {},
+      formList: [
+        {
+          label: "保险公司",
+          prop: "companyName",
+          type: "company",
         },
-        getListrecorddetail(data) {
-            this.findPageDetailrecorddatail(data)
+        {
+          label: "合作公司名称",
+          name: "保司机构",
+          type: "slot",
         },
-        findPageDetailrecorddatail(data) {
-            this.tableConfigDetailrecorddetail.loading = true;
-            this.$api.task
-            .fncplyFeeQuery({
-                    partnerCompaniesId: this.formDetail.partnerCompaniesId,
-                    agreementType: '2',
-                    isNotCar: '1',
-                    handlingFeesStatus: '0',
-                    id:this.recorddetailid,
-                    ...this.pageDatarecorddetail,
-                    ...data})
-                .then(res => {
-                    if (res.code == 200) {
-                        this.tableConfigDetailrecorddetail.loading = false;
-                        this.recordDetailData = res.data.content ? res.data.content : []
-                    }
-                    else {
-                        this.tableConfigDetailrecorddetail.loading = false;
-                        this.$message.error(res.msg)
-                    }
-                });
+        {
+          label: "年月日",
+          name: "data",
+          type: "slot",
         },
-      handleCloserecord() {
-            this.dialogVisiblerecord = false
-        },
-        handleCloserecorddetail() {
-            this.dialogVisiblerecordDetail = false
+      ],
+      formList1: [
+        {
+          label: "结算状态",
+          prop: "settlementStatus",
+          type: "select",
+          options: [
+            {
+              label: "开票未结算",
+              value: "0",
+            },
+            {
+              label: "开票已结算",
+              value: "1",
+            },
+            {
+              label: "开票结算清",
+              value: "2",
+            },
+          ],
         },
-        drivingupload(file, fileList) {
-            this.fileList = []
-            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.batchData = res.data
-                    this.fileList = fileList
-                }
-                else {
-                    this.fileList = []
-                    this.$message.error(res.msg)
-                }
+      ],
+      tableConfig: {
+        columns: [
+          {
+            prop: "companyName",
+            label: "保险公司名称",
+            type: "text",
+          },
+          {
+            prop: "partnerCompaniesName",
+            label: "保司机构",
+            type: "text",
+          },
+          {
+            prop: "allInvoicCommissionFeevalue",
+            label: "已开票手续费",
+            type: "text",
+          },
+          {
+            prop: "readyCommissionFeevalue",
+            label: "已开票已结算手续费",
+            type: "text",
+          },
+          {
+            prop: "invoicCommissionFeevalue",
+            label: "已开票未结算手续费",
+            type: "text",
+          },
+        ],
+        loading: true,
+        isPaginationShow: true,
+        showSummary: true,
+        isShowIndex: true,
+        tableHeight: "auto",
+        optBtns: [
+          {
+            type: "primary",
+            label: "详情",
+            click: (row, index) => {
+              return this.haldDetail(row);
+            },
+          },
+        ],
+      },
+      tableData: [],
+      pageData: {
+        pageNum: 1,
+        pageSize: 20,
+        agreementType: "2",
+        isNotCar: "1",
+        isNotDocumentary: "0",
+        handlingFeesStatus: "0",
+      },
+      formData: {},
+      formDetail: {},
+      batchData: {},
+    };
+  },
+  created() {
+    this.$api.insCompany
+      .findLeftInsTree({
+        classname: "",
+        type: "1",
+      })
+      .then((res) => {
+        this.ztreeNodes = res.data;
+      });
+    this.findPage();
+  },
+  computed: {
+    total() {
+      var sum = 0;
+      if (this.form.insuranceHandlingList.length > 0) {
+        this.form.insuranceHandlingList.forEach((item) => {
+          sum = new Decimal(sum)
+            .plus(
+              item.settlementAmount == "" || item.settlementAmount == null
+                ? new Decimal(0)
+                : new Decimal(item.settlementAmount)
+            )
+            .toString();
+        });
+        return Object.is(Number(sum), NaN) ? 0 : sum;
+      }
+      return sum;
+    },
+  },
+  methods: {
+    //改变事件
+    amountChange(row) {
+      if (
+        row.settlementAmount > 0 &&
+        row.settlementAmount > row.remainingAmount
+      ) {
+        this.$message.error("进账金额不能大于未结算金额");
+      }
+    },
+    // 明细
+    findPageDetailrecord(data) {
+      this.tableConfigDetailrecord.loading = true;
+      this.$api.task
+        .settlementFeesGetRecord(this.recorddetailid)
+        .then((res) => {
+          if (res.code == 200) {
+            res.data.forEach((ele) => {
+              if (ele.imageUrl) {
+                ele.imageUrl = process.env.BASE_URL + ele.imageUrl;
+              }
             });
-        },
-        getYearData(val) {
-            this.formData.year = val
-        },
-        getMonthData(val) {
-            this.formData.month = val
-        },
-        getDayData(val) {
-            this.formData.day = val
-        },
-        haldDetail(row) {
-            this.dialogVisible = true
-            this.formDetail = row
-            this.findPageDetail(row)
-        },
-        handleSearchList1(data) {
-            this.findPageDetail({ ...this.formDetail, ...data })
-        },
-        handVoid(row) {
-            this.$api.task
-                .yaidlnvoicing({ id: row.id })
-                .then(res => {
-                    if (res.code == 200) {
-                        this.dialogVisible = false
-                        this.$message({
-                            message: res.msg || '操作成功',
-                            type: 'success'
-                        })
-                    }
-                    else {
-                        this.$message.error(res.msg)
-                    }
-                });
-        },
-        findPageDetail(data) {
-            this.tableConfigDetail.loading = true
-            this.$api.task
-                .invicdetai({
-                    partnerCompaniesId: data.partnerCompaniesId,
-                    agreementType: '2',
-                    isNotCar: '1',
-                    isNotDocumentary: '0',
-                    handlingFeesStatus: '0',
-                    // settlementStatus: data.settlementStatus,
-                    completionStatus:data.settlementStatus || '0',
-                    settlementStatus: '1'
-                })
-                .then(res => {
-                    if (res.code == 200) {
-                        this.formTableData = res.data;
-                        this.tableConfigDetail.loading = false;
-                    }
-                    else {
-                        this.tableConfigDetail.loading = false;
-                        this.$message.error(res.msg)
-                    }
-                });
-        },
-        handleClose() {
-            this.dialogVisible = false
-        },
-        // 查询
-        handleSearchList(data) {
-            this.findPage(data);
-        },
-        resetForm() {
-            this.formData = {}
-            this.$refs.yearMonthYay.clear()
-        },
-        //列表数据
-        findPage(data) {
-            // if (data) {
-            //     this.pageData.pageNum = data.pageNum;
-            //     this.pageData.pageSize = data.pageSize;
-            // }
-            this.tableConfig.loading = true;
-            this.$api.task
-                .totalBxAmount({ ...this.pageData, ...this.formData, ...data })
-                .then(res => {
-                    if (res.code == 200) {
-                        this.tableData = res.data ? res.data : []
-                        // this.pageData.pageNum = res.data.pageNum;
-                        // this.pageData.pageSize = res.data.pageSize;
-                        // this.pageData.totalSize = res.data.totalSize;
-                        this.tableConfig.loading = false;
-                    }
-                    else {
-                        this.tableConfig.loading = false;
-                        this.$message.error(res.msg)
-                    }
-                });
-        },
-        getList(data) {
-            this.findPage(data)
-        },
-        //取消结算
-        cancelSumbit(){
-        this.dialogVisiblebalance = false
-        //清空数据
-        this.form= {
-            insuranceHandlingList:[],
-            settlementAmount:"",
-            settlementTime:"",
-        }
-        this.batchData.id=null;
-        },
-        balanceSumbit() {
-        var flag=0;
-        var count=0;
-        if(this.form.insuranceHandlingList){
-            this.form.insuranceHandlingList.forEach(e => {  
-            if(e.settlementAmount>0 && e.settlementAmount>e.remainingAmount){
-                this.$message.error("进账金额不能大于未结算金额");
-                flag+=1;
-            }
-            if(e.settlementAmount>0){
-                count+=1;
-            }
-            })
-        }
-        if (count==0) {
-            this.$message.error("未填写金额!!");
-            return;
-        }
-        if (flag>0) {
-            this.$message.error("金额输入错误!!");
-            return;
+            this.formTableDatarecord = res.data;
+            this.tableConfigDetailrecord.loading = false;
+          } else {
+            this.tableConfigDetail.loading = false;
+            this.$message.error(res.msg);
+          }
+        });
+    },
+    getListrecord(data) {
+      this.findPageDetailrecord(data);
+    },
+    haldRecord(row) {
+      this.dialogVisiblerecord = true;
+      this.recorddetailid = row.id;
+      this.findPageDetailrecord();
+    },
+
+    haldRecordDetail(row) {
+      this.dialogVisiblerecordDetail = true;
+      this.recorddetailid = row.id;
+      this.getListrecorddetail();
+    },
+    getListrecorddetail(data) {
+      this.findPageDetailrecorddatail(data);
+    },
+    findPageDetailrecorddatail(data) {
+      this.tableConfigDetailrecorddetail.loading = true;
+      this.$api.task
+        .fncplyFeeQuery({
+          partnerCompaniesId: this.formDetail.partnerCompaniesId,
+          agreementType: "2",
+          isNotCar: "1",
+          handlingFeesStatus: "0",
+          id: this.recorddetailid,
+          ...this.pageDatarecorddetail,
+          ...data,
+        })
+        .then((res) => {
+          if (res.code == 200) {
+            this.tableConfigDetailrecorddetail.loading = false;
+            this.recordDetailData = res.data.content ? res.data.content : [];
+          } else {
+            this.tableConfigDetailrecorddetail.loading = false;
+            this.$message.error(res.msg);
+          }
+        });
+    },
+    handleCloserecord() {
+      this.dialogVisiblerecord = false;
+    },
+    handleCloserecorddetail() {
+      this.dialogVisiblerecordDetail = false;
+    },
+    drivingupload(file, fileList) {
+      this.fileList = [];
+      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.batchData = res.data;
+          this.fileList = fileList;
+        } else {
+          this.fileList = [];
+          this.$message.error(res.msg);
         }
-      
-      this.form.settlementAmount=this.total;
-            this.$api.task
-                // .batchBxBalance({
-                .noBatchBxBalance({
-                    ...this.openBalanceDetail,
-                    otherFeevalue: this.formDetail.otherFeevalue,
-                    // partnerCompaniesId: this.formDetail.partnerCompaniesId,
-                    companyId: this.formDetail.companyId,
-                    // isNotCar: '1',
-                    handlingFeesStatus: '1',
-                    settlementImageId: this.batchData.id,
-                    ...this.form
-                })
-                .then(res => {
-                    if (res.code == 200) {
-                        this.haldDetail(this.formDetail)
-                        this.dialogVisiblebalance = false
-                        this.$message({
-                            message: res.msg || '操作成功',
-                            type: 'success'
-                        })
-                    }
-                    else {
-                        this.$message.error(res.msg)
-                    }
-                });
-        },
-        handleClosebalance() {
-            this.dialogVisiblebalance = false;
-        },
-        // 结算
-        balanceFun(row) {
-            this.openBalanceDetail = row
-            this.getSettlementList(row);
-            this.dialogVisiblebalance = true
-            // this.$api.task
-            //     .batchBxBalance({
-            //         ...row,
-            //         otherFeevalue:this.formDetail.otherFeevalue,
-            //         partnerCompaniesId:this.formDetail.partnerCompaniesId,
-            //         companyId:this.formDetail.companyId,
-            //         isNotCar:'0',
-            //         handlingFeesStatus:'1',
-            //         })
-            //     .then(res => {
-            //         if (res.code==200) {
-            //             this.haldDetail(this.formDetail)
-            //             this.dialogVisible=false
-            //             this.$message({
-            //                 message: res.msg ||'操作成功',
-            //                 type: 'success'
-            //             })
-            //         }
-            //         else{
-            //             this.$message.error(res.msg)
-            //         }
-            //     });
-        },
-         //通过结算数据id查询需要结算的数据
-        getSettlementList(row){
-        this.$api.settlement.queryListByTaskIdAndCompanyId(
-            { 
-            taskId: row.taskId,
-            partnerCompaniesId:row.partnerCompaniesId,
-            isNotCar:"1",
-            isNotDocumentary:"0"
-            }).then((res) => {
+      });
+    },
+    getYearData(val) {
+      this.formData.year = val;
+    },
+    getMonthData(val) {
+      this.formData.month = val;
+    },
+    getDayData(val) {
+      this.formData.day = val;
+    },
+    haldDetail(row) {
+      this.dialogVisible = true;
+      this.formDetail = row;
+      this.findPageDetail(row);
+    },
+    handleSearchList1(data) {
+      this.findPageDetail({ ...this.formDetail, ...data });
+    },
+    handVoid(row) {
+      this.$confirm("是否确认作废?", "提示", {
+        confirmButtonText: "提交",
+        cancelButtonText: "取消",
+        type: "warning",
+      })
+        .then(() => {
+          this.$api.task.yaidlnvoicing({ id: row.id }).then((res) => {
             if (res.code == 200) {
-            this.form.insuranceHandlingList =res.data; 
-            } 
-        }); 
-        },
-        tablePageChange(val) {
-            this.pageData.pageSize = val;
-            this.findPage();
-        },
-        tableCurrentChange(val) {
-            this.pageData.pageNum = val;
-            this.findPage();
-        },
+              this.dialogVisible = false;
+              this.$message({
+                message: res.msg || "操作成功",
+                type: "success",
+              });
+            } else {
+              this.$message.error(res.msg);
+            }
+          });
+        })
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "已取消作废",
+          });
+        });
+    },
 
-    }
+    findPageDetail(data) {
+      this.tableConfigDetail.loading = true;
+      this.$api.task
+        .invicdetai({
+          partnerCompaniesId: data.partnerCompaniesId,
+          agreementType: "2",
+          isNotCar: "1",
+          isNotDocumentary: "0",
+          handlingFeesStatus: "0",
+          // settlementStatus: data.settlementStatus,
+          completionStatus: data.settlementStatus || "0",
+          settlementStatus: "1",
+        })
+        .then((res) => {
+          if (res.code == 200) {
+            this.formTableData = res.data;
+            this.tableConfigDetail.loading = false;
+          } else {
+            this.tableConfigDetail.loading = false;
+            this.$message.error(res.msg);
+          }
+        });
+    },
+    handleClose() {
+      this.dialogVisible = false;
+    },
+    // 查询
+    handleSearchList(data) {
+      this.findPage(data);
+    },
+    resetForm() {
+      this.formData = {};
+      this.$refs.yearMonthYay.clear();
+    },
+    //列表数据
+    findPage(data) {
+      // if (data) {
+      //     this.pageData.pageNum = data.pageNum;
+      //     this.pageData.pageSize = data.pageSize;
+      // }
+      this.tableConfig.loading = true;
+      this.$api.task
+        .totalBxAmount({ ...this.pageData, ...this.formData, ...data })
+        .then((res) => {
+          if (res.code == 200) {
+            this.tableData = res.data ? res.data : [];
+            // this.pageData.pageNum = res.data.pageNum;
+            // this.pageData.pageSize = res.data.pageSize;
+            // this.pageData.totalSize = res.data.totalSize;
+            this.tableConfig.loading = false;
+          } else {
+            this.tableConfig.loading = false;
+            this.$message.error(res.msg);
+          }
+        });
+    },
+    getList(data) {
+      this.findPage(data);
+    },
+    //取消结算
+    cancelSumbit() {
+      this.dialogVisiblebalance = false;
+      //清空数据
+      this.form = {
+        insuranceHandlingList: [],
+        settlementAmount: "",
+        settlementTime: "",
+      };
+      this.batchData.id = null;
+    },
+    balanceSumbit() {
+      var flag = 0;
+      var count = 0;
+      if (this.form.insuranceHandlingList) {
+        this.form.insuranceHandlingList.forEach((e) => {
+          if (
+            e.settlementAmount > 0 &&
+            e.settlementAmount > e.remainingAmount
+          ) {
+            this.$message.error("进账金额不能大于未结算金额");
+            flag += 1;
+          }
+          if (e.settlementAmount > 0) {
+            count += 1;
+          }
+        });
+      }
+      if (count == 0) {
+        this.$message.error("未填写金额!!");
+        return;
+      }
+      if (flag > 0) {
+        this.$message.error("金额输入错误!!");
+        return;
+      }
+
+      this.form.settlementAmount = this.total;
+      this.$api.task
+        // .batchBxBalance({
+        .noBatchBxBalance({
+          ...this.openBalanceDetail,
+          otherFeevalue: this.formDetail.otherFeevalue,
+          // partnerCompaniesId: this.formDetail.partnerCompaniesId,
+          companyId: this.formDetail.companyId,
+          // isNotCar: '1',
+          handlingFeesStatus: "1",
+          settlementImageId: this.batchData.id,
+          ...this.form,
+        })
+        .then((res) => {
+          if (res.code == 200) {
+            this.haldDetail(this.formDetail);
+            this.dialogVisiblebalance = false;
+            this.$message({
+              message: res.msg || "操作成功",
+              type: "success",
+            });
+          } else {
+            this.$message.error(res.msg);
+          }
+        });
+    },
+    handleClosebalance() {
+      this.dialogVisiblebalance = false;
+    },
+    // 结算
+    balanceFun(row) {
+      this.openBalanceDetail = row;
+      this.getSettlementList(row);
+      this.dialogVisiblebalance = true;
+      // this.$api.task
+      //     .batchBxBalance({
+      //         ...row,
+      //         otherFeevalue:this.formDetail.otherFeevalue,
+      //         partnerCompaniesId:this.formDetail.partnerCompaniesId,
+      //         companyId:this.formDetail.companyId,
+      //         isNotCar:'0',
+      //         handlingFeesStatus:'1',
+      //         })
+      //     .then(res => {
+      //         if (res.code==200) {
+      //             this.haldDetail(this.formDetail)
+      //             this.dialogVisible=false
+      //             this.$message({
+      //                 message: res.msg ||'操作成功',
+      //                 type: 'success'
+      //             })
+      //         }
+      //         else{
+      //             this.$message.error(res.msg)
+      //         }
+      //     });
+    },
+    //通过结算数据id查询需要结算的数据
+    getSettlementList(row) {
+      this.$api.settlement
+        .queryListByTaskIdAndCompanyId({
+          taskId: row.taskId,
+          partnerCompaniesId: row.partnerCompaniesId,
+          isNotCar: "1",
+          isNotDocumentary: "0",
+        })
+        .then((res) => {
+          if (res.code == 200) {
+            this.form.insuranceHandlingList = res.data;
+          }
+        });
+    },
+    tablePageChange(val) {
+      this.pageData.pageSize = val;
+      this.findPage();
+    },
+    tableCurrentChange(val) {
+      this.pageData.pageNum = val;
+      this.findPage();
+    },
+  },
 };
 </script>
   
 <style scoped>
-.InvoicedAndSettled>>>.el-table__body-wrapper {
-    overflow-y: auto !important;
-    height: auto !important;
+.InvoicedAndSettled >>> .el-table__body-wrapper {
+  overflow-y: auto !important;
+  height: auto !important;
 }
 .imageclass {
   width: 200px;

+ 6 - 5
src/views/FinancialManagement/CarInsurance/Verifytasks/Verifyintasks.vue

@@ -48,11 +48,11 @@
           >
         </template>
       </el-table-column>
-      <el-table-column
-        prop="agreementName"
-        label="协议名称"
-        align="center"
-      ></el-table-column>
+      <el-table-column prop="agreementName" label="协议" align="center" width="300">
+        <template slot-scope="scope">
+          <span>{{ scope.row.agreementName }} - {{ scope.row.businessDescription }} - {{ scope.row.jobDescription }}</span>
+        </template>
+      </el-table-column>
       <el-table-column
         prop="insCompany"
         label="承保公司"
@@ -63,6 +63,7 @@
           <span>{{ scope.row.insCompany ? scope.row.insCompany : "--" }}</span>
         </template>
       </el-table-column>
+      <el-table-column prop="dockingPerson" label="对接人" align="center"></el-table-column>
       <el-table-column prop="entryStatus" label="录入来源" align="center" width="100">
         <template slot-scope="scope">
           <el-tag size="mini" v-if="scope.row.entryStatus == '1'" effect="dark">车险录入</el-tag>

+ 6 - 1
src/views/FinancialManagement/CarInsurance/Verifytasks/Verifyuntasks.vue

@@ -23,12 +23,17 @@
           <el-tag v-if="scope.row.managementSource == '电销'" type="warning">电销</el-tag>
         </template>
       </el-table-column>
-      <el-table-column prop="agreementName" label="协议名称" align="center"></el-table-column>
+      <el-table-column prop="agreementName" label="协议" align="center" width="300">
+        <template slot-scope="scope">
+          <span>{{ scope.row.agreementName }} - {{ scope.row.businessDescription }} - {{ scope.row.jobDescription }}</span>
+        </template>
+      </el-table-column>
       <el-table-column prop="insCompany" label="承保公司" align="center">
         <template slot-scope="scope">
           <span>{{ scope.row.insCompany ? scope.row.insCompany : '--' }}</span>
         </template>
       </el-table-column>
+      <el-table-column prop="dockingPerson" label="对接人" align="center"></el-table-column>
       <el-table-column prop="entryStatus" label="录入来源" align="center" width="100">
         <template slot-scope="scope">
           <el-tag size="mini" v-if="scope.row.entryStatus == '1'" effect="dark">车险录入</el-tag>

+ 77 - 2
src/views/FinancialManagement/ExpenseManagement/ExpenseApplyFor.vue

@@ -63,7 +63,7 @@
         </el-form-item>
         <el-form-item label="金额" prop="applyTime">
           <el-input
-            v-model.number="queryFrom.applyAmount"
+            v-model="queryFrom.applyAmount"
             placeholder="请输入金额"
             clearable
           ></el-input>
@@ -102,6 +102,8 @@
       @handleButton1="expendDelete"
       @handleButton2="expendEdit($event, 2)"
       @selectionChange="selectionChange"
+      button3Name="支出"
+      @handleButton3="expendExpenditure($event)"
     ></kt-common-table>
     <!-- 申请资金弹框 -->
     <el-dialog
@@ -376,6 +378,31 @@
       @outChange="outChange"
       class="expense-component"
     ></expense-component> -->
+    <el-dialog
+      title="支出"
+      :close-on-click-modal="false"
+      :before-close="closeExpenditure"
+      :visible.sync="expenditureVisible"
+      width="30%"
+    >
+      <div>
+        <el-radio-group v-model="expendRadio">
+          <el-radio :label="0">全部</el-radio>
+          <el-radio :label="1">部分支出</el-radio>
+        </el-radio-group>
+        <el-input v-show="expendRadio" v-model="payOutAmount" placeholder="请输入支出金额" style="width: 200px;margin-left: 20px;" size="small"></el-input>
+      </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="closeExpenditure" size="small">取 消</el-button>
+        <el-button
+          v-if="!formDisable"
+          type="primary"
+          @click="submitFormExpend"
+          size="small"
+          >确定支出</el-button
+        >
+      </div>
+    </el-dialog>
   </div>
 </template>
 <script>
@@ -398,11 +425,15 @@ export default {
       }
     };
     return {
+      expenditureRow: {},
+      payOutAmount: 0,    // 已转金额
+      expendRadio: 0,
+      expenditureVisible: false,
       formDisable: false, //资金申请form表单是否可选状态
       expentList: [], //批量导出数据
       expenseaaa: true,
       expendTitle: "新增资金使用申请单", //弹框标题
-      operationWidth: 250, //操作单元格宽度
+      operationWidth: 300, //操作单元格宽度
       queryFrom: {}, //查询form表单
       pageRequest: {
         // 列表查询条件
@@ -482,6 +513,12 @@ export default {
           minWidth: 150,
           sortable: false,
         },
+        {
+          prop: "payoutAmount",
+          label: "已转金额(元)",
+          minWidth: 120,
+          sortable: false,
+        },
         {
           prop: "company",
           label: "单位",
@@ -647,6 +684,44 @@ export default {
   },
   mounted() {},
   methods: {
+    // 确定支出
+    submitFormExpend() {
+      const num = this.expenditureRow.applyAmount - this.expenditureRow.payoutAmount
+      if (num == 0) {
+        this.$message.error('支出金额不足')
+        return
+      }
+      if (this.payOutAmount > num) {
+        this.$message.error('支出金额不足')
+        return
+      }
+      if (!this.expendRadio) {
+        this.payOutAmount = num
+      }
+      this.$api.expense.updateExpenditure({
+        excelAccountOperateId: this.expenditureRow.excelAccountOperateId,
+        payOutAmount: this.payOutAmount
+      }).then((res) => {
+        if (res.code == 200) {
+          this.$message.success('支出成功')
+          this.queryStaffInfo()
+          this.closeExpenditure()
+        } else {
+          this.$message.error(res.msg)
+        }
+      })
+    },
+    closeExpenditure() {
+      this.expenditureRow = {}
+      this.payOutAmount = 0
+      this.expendRadio = 0
+      this.expenditureVisible = false
+    },
+    // 支出
+    expendExpenditure(e) {
+      this.expenditureRow = e.row
+      this.expenditureVisible = true
+    },
     //表格多选事件
     selectionChange(e) {
       this.expentList = e.selections.map((item) => item.excelAccountOperateId);

+ 83 - 19
src/views/FinancialManagement/ExpenseManagement/ExpenseManagement.vue

@@ -96,7 +96,7 @@
       <kt-common-table :operationWidth="130" class="ktTable expendTable" ref="expendTable" :data="expendPageResult"
         :columns="expendColumns" :showBatchDelete="false" :showOperation="true" :button1Name="expendButton1Name"
         permsButton1="expenseManagement:accountInformation:changeStatus" button2Background="#92D050"
-        button3Background="#f56c6c" button1Icon="el-icon-s-finance" @handleButton1="handleTableConfirm"
+        button3Background="#f56c6c" button1Icon="el-icon-s-finance" @handleButton1="handleTableConfirm($event)"
         @findPage="getExpendData" :isshowpagination="true"></kt-common-table>
     </el-dialog>
     <!-- 收入弹框 -->
@@ -194,6 +194,31 @@
         <el-button type="primary" @click="submitIncomeForm()" size="small">确 定</el-button>
       </div>
     </el-dialog>
+    <el-dialog
+      title="支出"
+      :close-on-click-modal="false"
+      :before-close="closeExpenditure"
+      :visible.sync="expenditureVisible"
+      width="30%"
+    >
+      <div>
+        <el-radio-group v-model="expendRadio">
+          <el-radio :label="0">全部</el-radio>
+          <el-radio :label="1">部分支出</el-radio>
+        </el-radio-group>
+        <el-input v-show="expendRadio" v-model="payOutAmount" placeholder="请输入支出金额" style="width: 200px;margin-left: 20px;" size="small"></el-input>
+      </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="closeExpenditure" size="small">取 消</el-button>
+        <el-button
+          v-if="!formDisable"
+          type="primary"
+          @click="submitFormExpend"
+          size="small"
+          >确定支出</el-button
+        >
+      </div>
+    </el-dialog>
   </div>
 </template>
 <script>
@@ -214,6 +239,10 @@ export default {
   mounted() { },
   data() {
     return {
+      expenditureRow: {},
+      payOutAmount: 0,    // 已转金额
+      expendRadio: 0,
+      expenditureVisible: false,
       type: 1, //1为账户信息,2为卡信息 账户和卡判断条件
       /**
        * 账户收入模块
@@ -811,25 +840,60 @@ export default {
         })
         .then(data != null ? data.callback : "");
     },
-    //弹框确认支出按钮事件
-    handleTableConfirm(index) {
-      this.$confirm("确认把该条数据设为已转账状态吗?", "提示", {
-        type: "warning",
+    // 确定支出
+    submitFormExpend() {
+      const num = this.expenditureRow.applyAmount - this.expenditureRow.payoutAmount
+      if (num == 0) {
+        this.$message.error('支出金额不足')
+        return
+      }
+      if (this.payOutAmount > num) {
+        this.$message.error('支出金额不足')
+        return
+      }
+      if (!this.expendRadio) {
+        this.payOutAmount = num
+      }
+      this.$api.expense.updateExpenditure({
+        excelAccountOperateId: this.expenditureRow.excelAccountOperateId,
+        payOutAmount: this.payOutAmount
+      }).then((res) => {
+        if (res.code == 200) {
+          this.$message.success('支出成功')
+          this.queryStaffInfo()
+          this.closeExpenditure()
+        } else {
+          this.$message.error(res.msg)
+        }
       })
-        .then(() => {
-          this.$api.expense
-            .updateTransferFlag(index.row.excelAccountOperateId)
-            .then((res) => {
-              if (res.code == 200) {
-                this.$message.success("确认转账成功");
-                this.getExpendData();
-                this.findPage();
-              } else {
-                this.$message.error(res.msg);
-              }
-            });
-        })
-        .catch(() => { });
+    },
+    closeExpenditure() {
+      this.expenditureRow = {}
+      this.payOutAmount = 0
+      this.expendRadio = 0
+      this.expenditureVisible = false
+    },
+    //弹框确认支出按钮事件
+    handleTableConfirm(e) {
+      this.expenditureRow = e.row
+      this.expenditureVisible = true
+      // this.$confirm("确认把该条数据设为已转账状态吗?", "提示", {
+      //   type: "warning",
+      // })
+      //   .then(() => {
+      //     this.$api.expense
+      //       .updateTransferFlag(index.row.excelAccountOperateId)
+      //       .then((res) => {
+      //         if (res.code == 200) {
+      //           this.$message.success("确认转账成功");
+      //           this.getExpendData();
+      //           this.findPage();
+      //         } else {
+      //           this.$message.error(res.msg);
+      //         }
+      //       });
+      //   })
+      //   .catch(() => { });
     },
     //选择证书有效日期区间
     setDateInterval(e) {

+ 9 - 2
src/views/FinancialManagement/ExpenseManagement/TransferRecord.vue

@@ -45,9 +45,10 @@
         </el-form-item>
         <el-form-item label="金额" label-width="95px" prop="applyAmount">
           <el-input
-            v-model.number="pageRequest.applyAmount"
+            v-model="pageRequest.applyAmount"
             placeholder="请输入金额"
             clearable
+            type="number"
           ></el-input>
         </el-form-item>
       </el-form>
@@ -105,9 +106,15 @@ export default {
           minWidth: 80,
           sortable: false,
         },
+        {
+          prop: "applyTime",
+          label: "申请时间",
+          minWidth: 100,
+          sortable: false,
+        },
         {
           prop: "createTime",
-          label: "创建时间",
+          label: "交易时间",
           minWidth: 100,
           sortable: false,
         },

+ 8 - 0
src/views/FinancialManagement/ExpenseManagement/ViewExpenseReport.vue

@@ -46,6 +46,9 @@
         <el-form-item label="支出金额" prop="applyAmount">
           <el-input v-model="queryFrom.applyAmount" placeholder="请输入支出金额" class="widths" clearable></el-input>
         </el-form-item>
+        <el-form-item label="成本分类" prop="label">
+          <el-input v-model="queryFrom.label" placeholder="请输入成本分类" class="widths" clearable></el-input>
+        </el-form-item>
         <el-form-item>
           <kt-button label="查询" type="primary" @click="queryStaffInfo" />
           <kt-button label="批量导出" type="primary" :disabled="!this.expentList.length" @click="expendDataup" />
@@ -108,6 +111,11 @@ export default {
           label: "转账日期",
           sortable: false,
         },
+        {
+          prop: "label",
+          label: "成本分类",
+          sortable: false,
+        },
         {
           prop: "fundUse",
           label: "费用类型",

+ 31 - 0
src/views/FinancialManagement/WithdrawalManagement/WithdrawalProceduresPending.vue

@@ -31,6 +31,13 @@
               start-placeholder="开始日期" end-placeholder="结束日期">
             </el-date-picker>
           </el-form-item>
+          <el-form-item label="业务来源" prop="source">
+              <el-select v-model="queryForm.source" style="width: 200px;" clearable placeholder="请选择业务来源">
+                <el-option v-for="val in organizationSourceoptions" :key="val.dictValue" :label="val.dictTag"
+                  :value="val.dictValue">
+                </el-option>
+              </el-select>
+            </el-form-item>
           <el-form-item>
             <el-button type="primary" size="small" @click="findPage">查询</el-button>
           </el-form-item>
@@ -104,6 +111,7 @@ export default {
   },
   data() {
     return {
+      organizationSourceoptions: [],
       bankForm:{},
       formList: [
         {
@@ -172,6 +180,7 @@ export default {
         { prop: "id", label: "提现单号" },
         { prop: "userId", label: "业务员工号" },
         { prop: "userName", label: "业务员姓名" },
+        { prop: "source", label: "业务来源",formatter: this.managementSourceFormatter },
         { prop: "leaderId", label: "维护人工号" },
         { prop: "leaderName", label: "维护人" },
         { prop: "mobile", label: "电话" },
@@ -188,9 +197,31 @@ export default {
     };
   },
   created() {
+    this.$api.insCompany.dicType('organizationSource').then((res) => {
+      if (res.code == 200) {
+        this.tableConfig.columns.forEach(e => {
+          if (e.prop == 'source') {
+            e.options = res.data.ddList
+          }
+        })
+        this.organizationSourceoptions = res.data.ddList;
+      }
+    });
   },
   mounted() { },
   methods: {
+    managementSourceFormatter(row, column) {
+      let managementSource = row.source;
+      switch (managementSource) {
+        case '1':
+          return <el-tag>渠道</el-tag>
+        case '2':
+          return <el-tag type="success">个代</el-tag>
+        case '3':
+          return <el-tag type="warning">电销</el-tag>
+        default:
+      }
+    },
     handleSearchList(val){
       this.bankfindPage(val);
     },

+ 1 - 0
src/views/Letter/Wallet/AutoInsuranceDetails.vue

@@ -161,6 +161,7 @@ export default {
 
         { prop: "userId", label: "工号", minWidth: 160 },
         { prop: "userName", label: "姓名", minWidth: 160 },
+        { prop: "signingTime", label: "签单时间", minWidth: 160 },
         { prop: "licenseNo", label: "车牌号", minWidth: 160 },
         { prop: "insuredName", label: "被保险人", minWidth: 160 },
         { prop: "jqapplyno", label: "交强保单号", minWidth: 160 },

+ 0 - 7
src/views/PeopleManage/Staff/AreaOrganization.vue

@@ -266,13 +266,6 @@ export default {
             trigger: "blur",
           },
         ],
-        bindDeptId: [
-          {
-            required: true,
-            message: "请选择机构类型",
-            trigger: "change",
-          },
-        ]
       },
       isshow: false,
       expanded: false, // 在这里定义了展开与否的标志

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

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
+    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse" :dateType="3"
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns1" element-loading-text="加载中..." v-loading="loading"
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"

+ 1 - 1
src/views/Task/CompanyPoolChannel/CompanyPoolChannel3.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
+    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse" :dateType="3"
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" :columns="columns1" element-loading-text="加载中..." v-loading="loading"
       :showBatchDelete="false" @findPage="findPage" ref="commonTable" :stripe="false"

+ 2 - 2
src/views/Task/ElectricSales/AgentPoolChannel3.vue

@@ -1,8 +1,8 @@
 <template>
   <div>
-    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
+    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse" :dateType="3"
       @areaSelectChange="areaSelectChange"></retrievalForm>
-    <kt-common-table :data="pageResult" :columns="columns1" element-loading-text="加载中..." v-loading="loading"
+    <kt-common-table :data="pageResult" :columns="columns1" element-loading-text="加载中..." v-loading="loading" 
       :showBatchDelete="false" @findPage="findPage" button3Name="转发" button3Type="text"
       @handleButton3="transmit" button2Name="报价轨迹" button2Type="text"  ref="commonTable" :stripe="false"
       button6Name="批单" button6Type="text" @handleButton6="batchOrder"

+ 1 - 1
src/views/Task/TaskPoolChannel/TaskPoolChannel3.vue

@@ -1,6 +1,6 @@
 <template>
   <div>
-    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse"
+    <retrievalForm :fields="retrievalFields" @submit="handleFormSubmit" @toggleCollapse="toggleCollapse" :dateType="3"
       @areaSelectChange="areaSelectChange"></retrievalForm>
     <kt-common-table :data="pageResult" ref="commonTable" :columns="columns1" element-loading-text="加载中..." v-loading="loading"
       :showBatchDelete="false" @findPage="findPage"

+ 4 - 0
src/views/Task/daikeComponents/KtLetter.vue

@@ -3171,6 +3171,7 @@
         <el-button size="small" type="primary" @click="uploadinformation">上传资料</el-button>
       </span>
     </el-dialog>
+    <floatingBar/>
   </div>
 </template>
 <script>
@@ -3192,6 +3193,8 @@ import quotationDialog from "@/views/Core/components/quotationDialog.vue";
 import quotationDialogPro from "@/views/Core/components/quotationDialogPro.vue";
 import detailsDialog from "@/views/Core/components/detailsDialog.vue";
 import imageDialog from "@/views/Core/components/imageDialog.vue";
+import floatingBar from '@/components/customerService/floatingBar.vue';//表单组件
+
 import { mapState } from "vuex";
 export default {
   inject: ["reload"],
@@ -4769,6 +4772,7 @@ export default {
     quotationDialog,
     quotationDialogPro,
     imageDialog,
+    floatingBar,
     "el-image-viewer": () =>
       import("element-ui/packages/image/src/image-viewer"),
   },

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

@@ -118,6 +118,12 @@ export const mixin = { // 导出混入对象
           type: 'date',
           list: 'attachList'
         },
+        {
+          name: ["signStartDateStr", "signEndDateStr"],
+          label: '签单时间',
+          type: 'date',
+          list: 'signList'
+        },
       ],
       loading: false,
       queryFrom: {},