Эх сурвалжийг харах

Merge branch 'wuguojie' into dev

wuguojie 1 жил өмнө
parent
commit
4f0177b722

+ 9 - 2
src/http/api.js

@@ -57,11 +57,15 @@ import * as bindUser from './moudules/bindUser.js'
 //读取pdf设置
 import * as readPdf from './moudules/readPdf.js'
 
-//协议组 
+//协议组
 import * as agreement from "./moudules/agreement.js"
 import * as contract from "./moudules/contract.js"
 //客户车辆相关信息
 import * as custInfo from './moudules/custInfo.js'
+
+//报价
+import * as quote from './moudules/quote'
+
 // 默认全部导出
 export default {
     login,
@@ -107,5 +111,8 @@ export default {
     readPdf,
     agreement,
     contract,
-    custInfo
+    custInfo,
+
+    quote
+
 }

+ 25 - 0
src/http/moudules/quote.js

@@ -0,0 +1,25 @@
+import axios from '../axios'
+
+export const getCompany  = () => {
+  return axios({
+    url: '/esmInsCompany/liveCompanyList',
+    method: 'get'
+  })
+}
+
+export const getAgentUser = (data) => {
+  return axios({
+    url: '/user/queryPage',
+    method: 'post',
+    data
+  })
+}
+
+export const setQuoteInfo = (data) => {
+  return axios({
+    url: '/quoteConfig/setQuoteInfo',
+    method: 'post',
+    data
+  })
+}
+

+ 145 - 0
src/views/PeopleManage/Agent/AddCountDetail.vue

@@ -0,0 +1,145 @@
+<template>
+  <div class="quoteDetail">
+    <el-form ref="QuoteDetailForm" v-model="quoteDetailForm" :inline="true" label-width="130px">
+      <el-form-item style="width: 30%;" label="代理人信息">
+        <el-input size="small" v-model="quoteDetailForm.orderNumber" placeholder="请输入订单号"></el-input>
+      </el-form-item>
+      <el-form-item style="width: 30%;" label="保险公司">
+        <el-select style="width: 100%" size="small" v-model="quoteDetailForm.action">
+          <el-option label="动作1" value="1"></el-option>
+          <el-option label="动作2" value="2"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item style="width: 30%;" label="操作时间">
+        <el-date-picker
+          size="small"
+          v-model="quoteDetailForm.rangeDate"
+          type="daterange"
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item style="width: 30%;" label="操作人信息">
+        <el-input size="small" v-model="quoteDetailForm.agentPeoeple" placeholder="请输入工号、姓名查找"></el-input>
+      </el-form-item>
+      <el-form-item style="width: 30%;">
+        <el-button type="primary" size="small" style="margin-left: 150px;">查询</el-button>
+        <el-button size="small">重置</el-button>
+      </el-form-item>
+    </el-form>
+    <el-table
+      :data="tableData"
+    >
+      <el-table-column prop="code" label="部门编码" width="150"></el-table-column>
+      <el-table-column prop="organization" label="机构名称" width="150"></el-table-column>
+      <el-table-column prop="department" label="部门名称" width="150"></el-table-column>
+      <el-table-column prop="number" label="工号" width="200">
+        <template slot-scope="scope">
+          <a>{{ scope.row.orderNumber }}</a>
+        </template>
+      </el-table-column>
+      <el-table-column prop="name" label="姓名" width="150"></el-table-column>
+      <el-table-column prop="phone" label="联系电话" width="150"></el-table-column>
+      <el-table-column prop="company" label="保险公司" width="150"></el-table-column>
+      <el-table-column prop="count" label="增加次数" width="150"></el-table-column>
+      <el-table-column prop="time" label="操作时间" width="150"></el-table-column>
+      <el-table-column prop="people" label="操作人" width="150"></el-table-column>
+      <el-table-column label="操作" fixed="right" width="200">
+        <template slot-scope="scope">
+          <kt-button label="详情" @click="dialogVisible = true" size="small" type="text" perms="agreement:input:update" style="color: #D42426 !important " />
+        </template>
+      </el-table-column>
+    </el-table>
+    <div class="flex-box">
+      <el-pagination
+        @size-change="handleSizeChange"
+        :current-page="pageNum"
+        :page-sizes="[10, 20, 30, 40]"
+        :page-size="pageSize"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="total">
+      </el-pagination>
+    </div>
+    <el-dialog
+      title="增加次数"
+      :visible.sync="dialogVisible"
+      width="40%">
+      <el-form style="width: 100%" ref="addCountForm" :model="addCountForm" disabled :inline="true" label-width="130px">
+        <el-form-item label="代理人" style="width: 80%">
+          <el-input style="width: 100%" v-model="addCountForm.agent"></el-input>
+        </el-form-item>
+        <el-form-item label="保险公司" style="width: 80%">
+          <el-input v-model="addCountForm.company"></el-input>
+        </el-form-item>
+        <el-form-item label="今日已报价" style="width: 80%">
+          <el-input v-model="addCountForm.hadQuote"></el-input>
+        </el-form-item>
+        <el-form-item label="今日已承保" style="width: 80%">
+          <el-input v-model="addCountForm.had"></el-input>
+        </el-form-item>
+        <el-form-item label="报价出单比" style="width: 80%">
+          <el-input v-model="addCountForm.assign"></el-input>
+          <span style="font-size: 12px; color: #999;">报价出单比=承保单数/报价单数*100%(四舍五入到小数点后两位)</span>
+        </el-form-item>
+        <el-form-item label="增加次数" style="width: 80%">
+          <el-input v-model="addCountForm.count"></el-input>
+        </el-form-item>
+        <el-form-item label="备注" style="width: 80%">
+          <el-input type="textarea" v-model="addCountForm.tips"></el-input>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" @click="dialogVisible = false">确 定</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import KtButton from "../../Core/KtButton.vue";
+
+export default {
+  components: {KtButton},
+  data() {
+    return {
+      quoteDetailForm: {},
+      tableData: [{
+        code: 1,
+        organization: 1,
+        department: 1,
+        number: 1,
+        name: 1,
+        phone: 1,
+        company: 1,
+        count: 1,
+        time: 1,
+        people: 1
+      }],
+      pageNum: 1,
+      pageSize: 10,
+      total: 0,
+      dialogVisible: false,
+      addCountForm: {}
+    }
+  },
+  methods: {
+    handleSizeChange() {
+
+    }
+  }
+}
+</script>
+
+<style>
+.flex-box{
+  display: flex;
+  align-items: center;
+  justify-content: flex-end;
+  margin: 10px 0;
+}
+.el-form-item__content{
+  width: calc(100% - 150px);
+}
+</style>

+ 275 - 65
src/views/PeopleManage/Agent/QuoteCountManagement.vue

@@ -2,52 +2,53 @@
   <div class="QuoteCountManagement">
     <el-row style="height: 100%">
       <el-col :span="4" style="height: 100%; overflow-y: auto; background: rgba(244, 246, 248, 1);">
-        <div class="menu-item" :class="{'active': menuIndex === index}" v-for="(item, index) in leftTree" :key="item.id" @click="handleSelect(item, index)">{{ item.label }}</div>
+        <div class="menu-item" :class="{'active': menuIndex === index}" v-for="(item, index) in leftTree" :key="item.id" @click="handleSelect(item, index)">{{ item.namesimple }}</div>
       </el-col>
       <el-col :span="20">
         <el-row :gutter="20" align="middle" style="display: flex; align-items: center; width: 100%; overflow: hidden; margin: 0">
           <el-col :span="18" style="padding-left: 20px">报价限制</el-col>
           <el-col :span="6">
-            <el-button type="primary" @click="handleSync">同步配置到其他保司</el-button>
-            <el-button type="primary" @click="handleEdit">编辑</el-button>
+            <el-button type="primary" @click="handleSync" :disabled="!quoteForm.isEnabled">同步配置到其他保司</el-button>
+            <el-button type="primary" @click="handleEdit" :disabled="!quoteForm.isEnabled" v-if="!quoteForm.isEnabled">编辑</el-button>
+            <el-button type="primary" @click="handleSave" v-else>保存</el-button>
           </el-col>
         </el-row>
         <el-divider></el-divider>
-        <el-form :model="quoteForm" ref="QuoteForm" :rules="quoteRules" style="padding-left: 30px;" label-width="100px">
+        <el-form :model="quoteForm" ref="QuoteFormRef" :rules="quoteRules" style="padding-left: 30px;" label-width="120px">
           <el-form-item prop="count" label="报价次数限制">
-            <el-switch v-model="quoteForm.count"></el-switch>
-            <p class="tips">开启后,代理人的报价次数将收到限制,超出设置的报价次数后将停止代理人的报价功能</p>
+            <el-switch v-model="quoteForm.isEnabled"></el-switch>
+            <p class="tips">开启后,代理人的报价次数将受到限制,超出设置的报价次数后将停止代理人的报价功能</p>
           </el-form-item>
           <el-form-item prop="agentLimit" label="代理人限制">
             <div>
-              <el-radio-group v-model="quoteForm.agentLimit">
-                <el-radio :label="3">限制全部代理人</el-radio>
-                <el-radio :label="6">限制部分代理人</el-radio>
+              <el-radio-group v-model="quoteForm.authorize" :disabled="!quoteForm.isEnabled">
+                <el-radio :label="0">限制全部代理人</el-radio>
+                <el-radio :label="1">限制部分代理人</el-radio>
               </el-radio-group>
-              <kt-button v-if="quoteForm.agentLimit === 6" type="text" label="选择代理人" icon="el-icon-plus" style="color: #2D4D89; margin-left: 30px" @click="selectAgent" />
+              <kt-button v-if="quoteForm.authorize" type="text" label="选择代理人" icon="el-icon-plus" style="color: #2D4D89; margin-left: 30px" @click="selectAgent" />
             </div>
             <el-table
-              :data="agentData"
+              :data="selectedList"
             >
-              <el-table-column prop="code" label="部门编码"></el-table-column>
+              <el-table-column prop="deptId" label="部门编码"></el-table-column>
               <el-table-column prop="organization" label="机构名称"></el-table-column>
-              <el-table-column prop="department" label="部门名称"></el-table-column>
-              <el-table-column prop="number" label="工号"></el-table-column>
+              <el-table-column prop="deptName" label="部门名称"></el-table-column>
+              <el-table-column prop="id" label="工号"></el-table-column>
               <el-table-column prop="name" label="姓名"></el-table-column>
-              <el-table-column prop="phone" label="联系电话"></el-table-column>
+              <el-table-column prop="mobile" label="联系电话"></el-table-column>
               <el-table-column label="操作">
                 <template slot-scope="scope">
-                  <kt-button type="text" label="删除" style="color: #2D4D89;" />
+                  <kt-button :disabled="!quoteForm.isEnabled" type="text" label="删除" style="color: #2D4D89;" />
                 </template>
               </el-table-column>
             </el-table>
           </el-form-item>
           <el-form-item prop="quoteLimit" label="报价限制">
-            <el-checkbox-group v-model="quoteForm.quoteLimit">
+            <el-checkbox-group v-model="quoteForm.quoteLimit" :disabled="!quoteForm.isEnabled">
               <div>
                 <el-checkbox :label="1">
                   <div style="display: flex; align-items: center">
-                    单日报价,出单比不满<el-input size="small" v-model="quoteForm.limit1" style="width: 100px; margin: 0 20px;">
+                    单日报价,出单比不满<el-input size="small" v-model="quoteForm.orderRatio" :disabled="!quoteForm.isEnabled" style="width: 100px; margin: 0 20px;">
                     <template slot="append">%</template>
                   </el-input>后,锁定代理人报价次数
                   </div>
@@ -57,7 +58,7 @@
                 <el-checkbox :label="2">
                   <div>单日最大报价次数</div>
                   <div style="display: flex; align-items: center">
-                    单日代理人报价满<el-input size="small" v-model="quoteForm.limit2" style="width: 100px; margin: 0 20px;">
+                    单日代理人报价满<el-input size="small" v-model="quoteForm.dayMaxQuoteNum" :disabled="!quoteForm.isEnabled" style="width: 100px; margin: 0 20px;">
                     <template slot="append">次</template>
                   </el-input>后,锁定代理人报价次数
                   </div>
@@ -67,7 +68,7 @@
                 <el-checkbox :label="3">
                   <div>单日单车限制</div>
                   <div style="display: flex; align-items: center">
-                    单日代理人单车最多报价<el-input size="small" v-model="quoteForm.limit3" style="width: 100px; margin: 0 20px;">
+                    单日代理人单车最多报价<el-input size="small" :disabled="!quoteForm.isEnabled" v-model="quoteForm.carMaxQuoteNum" style="width: 100px; margin: 0 20px;">
                     <template slot="append">次</template>
                   </el-input>后,锁定代理人报价次数
                   </div>
@@ -92,26 +93,74 @@
       </template>
     </el-dialog>
     <el-dialog
+      title="选择代理人"
       :visible.sync="agentTableShow"
       width="80%"
     >
+      <el-form ref="CountDetailForm" v-model="countDetailForm" :inline="true" label-width="130px">
+        <el-form-item style="width: 30%;" label="代理人">
+          <el-input size="small" v-model="countDetailForm.orderNumber" placeholder="请输入工号、姓名查找" @change="() => {
+            pageNum = 1
+          }"></el-input>
+        </el-form-item>
+        <el-form-item style="width: 30%;" label="所属机构">
+          <el-cascader size="small" v-model="countDetailForm.organization" :options="areaOptions" style="width: 100%;"
+                       :props="{ label: 'name', value: 'id', children: 'children', checkStrictly: true, expandTrigger: 'hover' }" clearable
+                       ref="area" @change="() => {
+            pageNum = 1
+          }"></el-cascader>
+        </el-form-item>
+        <el-form-item style="width: 30%;">
+          <el-button type="primary" size="small" @click="initAgentUser" style="margin-left: 150px;">查询</el-button>
+          <el-button size="small" @click="reset">重置</el-button>
+        </el-form-item>
+      </el-form>
+      <div>
+        <el-select class="select-box" size="small" v-model="checkType" placeholder="全选" style="width: 130px; border: none;" @change="selectTypeChange">
+          <el-option label="选中所有数据" value="all"></el-option>
+          <el-option label="选中本页数据" value="cur"></el-option>
+        </el-select>
+        <el-divider direction="vertical"></el-divider>
+        <span>已经选择了{{ selectedLength }}条</span>
+      </div>
       <el-table
         :data="agentDataList"
+        ref="multipleTable"
         row-key="id"
-        style="width: 100%">
-        <el-table-column prop="code" label="部门编码"></el-table-column>
+        :reserve-selection="true"
+        style="width: 100%"
+        @selection-change="handleSelectChange"
+      >
+        <el-table-column type="selection"></el-table-column>
+        <el-table-column prop="deptId" label="部门编码"></el-table-column>
         <el-table-column prop="organization" label="机构名称"></el-table-column>
-        <el-table-column prop="department" label="部门名称"></el-table-column>
-        <el-table-column prop="number" label="工号"></el-table-column>
+        <el-table-column prop="deptName" label="部门名称"></el-table-column>
+        <el-table-column prop="id" label="工号"></el-table-column>
         <el-table-column prop="name" label="姓名"></el-table-column>
-        <el-table-column prop="phone" label="联系电话"></el-table-column>
+        <el-table-column prop="mobile" label="联系电话"></el-table-column>
       </el-table>
+      <div class="pagination-box">
+        <el-pagination
+          @current-change="handlePageNumChange"
+          background
+          :page-size="5"
+          :current-page="pageNum"
+          layout="prev, pager, next"
+          :total="total">
+        </el-pagination>
+      </div>
+      <template slot="footer">
+        <kt-button label="取消" size="small" type="text" @click="agentTableShow = false" />
+        <kt-button label="确认" size="small" type="primary" @click="agentTableShow = false" />
+      </template>
     </el-dialog>
   </div>
 </template>
 
 <script>
 import KtButton from "../../Core/KtButton.vue";
+import {getAgentUser, setQuoteInfo} from "../../../http/moudules/quote";
+import {findTree} from "../../../http/moudules/insCompany";
 
 export default {
   components: {
@@ -119,30 +168,21 @@ export default {
   },
   data() {
     return {
-      leftTree: [
-        {
-          id: 0,
-          label: '保险1'
-        },{
-          id: 1,
-          label: '保险2'
-        },{
-          id: 2,
-          label: '保险3'
-        },{
-          id: 3,
-          label: '保险4'
-        },
-      ],
-      menuIndex: 0,
-      syncShow: false,
+      leftTree: [], // 保险公司list
+      menuIndex: 0, // 保险公司item下标
+      syncShow: false, // 同步设置弹框
       quoteForm: {
-        count: false,
-        agentLimit: '',
+        isEnabled: false,
+        authorize: '',
         quoteLimit: []
-      },
+      }, // 报价form
       quoteRules: {
-        agentLimit: [
+        isEnabled: [
+          {
+            required: true, message: '', trigger: 'change'
+          }
+        ],
+        authorize: [
           {
             required: true, message: '请选择代理人限制', trigger: 'change'
           }
@@ -152,48 +192,209 @@ export default {
             type: 'array',required: true, message: '请选择报价限制', triangle: 'change'
           }
         ]
-      },
-      agentData: [{
-        code: '',
-        organization: '',
-        department: '',
-        number: '',
-        name: '',
-        phone: ''
-      }],
+      }, // 报价form规则
+      isCheckedAll: false,
+      checkType: '',
       agentTableShow: false,
-      agentDataList: [{
-        id: '1',
-        code: '',
-        organization: '',
-        department: '',
-        number: '',
-        name: '',
-        phone: ''
-      }]
+      agentDataList: [],
+      selectList: [], // 勾选的数据(格式为每页勾选的为一个数组并作为数组元素保存)
+      selectedList: [], // 勾选的数据(格式为平铺后)
+      pageList: [1], // 记录点击了的页码
+      selectedLength: 0, // 选择(包括全选后)的数据数量
+      total: 0,
+      countDetailForm: {},
+      pageNum: 1,
+      areaOptions: [], // 机构树
     }
   },
   methods: {
+    // 获取保险公司
+    initCompany() {
+      this.$api.quote.getCompany().then(res => {
+        if(res.code == 200) {
+          this.leftTree = res.data
+        } else {
+          this.$message.error(res.msg)
+        }
+      })
+    },
+    // 获取机构
+    initOrganization() {
+      this.$api.dept.findTree().then(res => {
+        this.areaOptions = res.data
+      })
+    },
+    // 获取代理人
+    initAgentUser() {
+      let that = this
+      that.$api.quote.getAgentUser({
+        pageNum: this.pageNum,
+        pageSize: 5,
+        columnFilters: {
+          name: {
+            value: that.countDetailForm.orderNumber?that.countDetailForm.orderNumber: ''
+          },
+          deptId: {
+            value: that.countDetailForm.organization?that.countDetailForm.organization: ''
+          }
+        }
+      }).then(res => {
+        if(res.code == 200) {
+          that.agentDataList = res.data.content
+          that.total = res.data.totalSize
+          that.$nextTick(() => {
+            if(that.checkType === 'all') {
+              that.selectedLength = res.data.totalSize
+              if(that.agentDataList.length>0) {
+                that.agentDataList.forEach(item => {
+                  that.$refs.multipleTable.toggleRowSelection(item)
+                })
+              }
+            } else {
+              let list = [...that.selectedList]
+              if(list&&list.length>0) {
+                list.forEach(item => {
+                  let arrayItem = that.agentDataList.find(sub => sub.id === item.id)
+                  if(arrayItem) {
+                    that.$refs.multipleTable.toggleRowSelection(arrayItem)
+                  }
+                })
+              }
+            }
+          })
+        }
+      })
+    },
+    // 代理人搜索条件重置
+    reset() {
+      this.countDetailForm = {}
+      this.pageNum = 1
+    },
+    // 代理人分页页数变化函数
+    handlePageNumChange(page) {
+      this.pageNum = page
+      this.initAgentUser()
+    },
+    // 代理选择
+    handleSelectChange(rows) {
+      if(this.checkType === 'all') {
+        this.selectedLength = this.total
+        return;
+      }
+      if(rows.length>0) {
+        let list = [...this.selectedList]
+        if(this.selectedList.length>0){
+          list.forEach((item, index) => {
+            this.agentDataList.forEach(sub => {
+              if(sub.id === item.id) {
+                list.splice(index,1)
+              }
+            })
+          })
+          this.selectedList = this.uniqueItems([...list, ...rows])
+          this.selectedLength = this.selectedList.length
+        } else {
+          this.selectedList = [...rows]
+          this.selectedLength = this.selectedList.length
+        }
+      }
+    },
+    // 数组去重
+    uniqueItems(arr) {
+      const unique = [];
+      arr.forEach(item => {
+        const exists = unique.some(el => el.id === item.id);
+        if (!exists) {
+          unique.push(item);
+        }
+      });
+      return unique;
+    },
+    // 保险公司切换
     handleSelect(item, index) {
       this.menuIndex = index
+      this.quoteForm = {}
     },
+    // 同步到其他
     handleSync() {
       this.syncShow = true
     },
+    // 编辑
     handleEdit() {
 
     },
+    // 保存
+    handleSave() {
+      this.$refs["QuoteFormRef"].validate((valid) => {
+        if(valid) {
+          this.$api.quote.setQuoteInfo({
+            companyId: this.leftTree[this.menuIndex].id,
+            isEnabled: this.quoteForm.isEnabled?1:0,
+            id: null,
+            authorize: this.quoteForm.authorize,
+            proxyList: this.selectedList,
+            orderRatio: this.quoteForm.orderRatio,
+            dayMaxQuoteNum: this.quoteForm.dayMaxQuoteNum,
+            carMaxQuoteNum: this.quoteForm.carMaxQuoteNum
+          }).then(res => {
+            console.log('保存', res)
+            if(res.code == 200) {
+              this.$message.success(res.msg)
+              this.quoteForm = {}
+            } else {
+              this.$message.error(res.msg)
+            }
+          })
+        } else {
+          this.$message.error('请填写或选择必要数据!')
+        }
+      })
+    },
+    // 同步到其他确定
     handleSubmit() {
 
     },
+    // 选择代理人
     selectAgent() {
       this.agentTableShow = true
+      this.countDetailForm = {}
+      this.initAgentUser()
+      this.initOrganization()
+    },
+    // 全选类型切换
+    selectTypeChange() {
+      if(this.agentDataList.length>0) {
+        this.agentDataList.forEach(item => {
+          this.$refs.multipleTable.toggleRowSelection(item)
+        })
+      }
+      if(this.checkType === 'all') {
+        this.selectedLength = this.total
+      }
+      if(this.checkType === 'cur') {
+        this.selectedLength = 0
+        let list = [...this.selectedList, ...this.agentDataList]
+        this.selectedList = this.uniqueItems(list)
+        this.selectedLength = this.selectedList.length
+      }
+    },
+    // 监听浏览器刷新
+    handleBeforeUnload(event) {
+      event.preventDefault();
+      event.returnValue = '';
     }
+  },
+  mounted() {
+    this.initCompany();
+    // window.addEventListener('beforeunload', this.handleBeforeUnload);
+  },
+  beforeDestroy() {
+    // window.removeEventListener('beforeunload', this.handleBeforeUnload)
   }
 }
 </script>
 
-<style lang="scss">
+<style scoped>
 .QuoteCountManagement{
   width: 100%;
   height: 100%;
@@ -214,10 +415,19 @@ export default {
   color: #1890FF;
   font-weight: 700;
 }
+.pagination-box{
+  display: flex;
+  align-items: center;
+  justify-content: flex-end;
+  margin-top: 10px;
+}
 /deep/.el-divider--horizontal{
   margin: 12px 0;
 }
 /deep/.el-input__inner{
   padding-left: 34px !important;
 }
+/deep/.select-box .el-input__inner{
+  border: none !important;
+}
 </style>

+ 102 - 0
src/views/PeopleManage/Agent/QuoteDetail.vue

@@ -0,0 +1,102 @@
+<template>
+  <div class="quoteDetail">
+    <el-form ref="QuoteDetailForm" v-model="quoteDetailForm" :inline="true" label-width="130px">
+      <el-form-item style="width: 30%;" label="报价时间">
+        <el-date-picker
+          size="small"
+          v-model="quoteDetailForm.rangeDate"
+          type="daterange"
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item style="width: 30%;" label="订单号">
+        <el-input size="small" v-model="quoteDetailForm.orderNumber" placeholder="请输入订单号"></el-input>
+      </el-form-item>
+      <el-form-item style="width: 30%;" label="动作">
+        <el-select style="width: 100%" size="small" v-model="quoteDetailForm.action">
+          <el-option label="动作1" value="1"></el-option>
+          <el-option label="动作2" value="2"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item style="width: 30%;" label="代理人">
+        <el-input size="small" v-model="quoteDetailForm.agentPeoeple" placeholder="请输入工号、姓名查找"></el-input>
+      </el-form-item>
+      <el-form-item style="width: 30%;" label="车牌号">
+        <el-input size="small" v-model="quoteDetailForm.carNumber" placeholder="请输入车牌号"></el-input>
+      </el-form-item>
+      <el-form-item style="width: 30%;" label="结果">
+        <el-select style="width: 100%" size="small" v-model="quoteDetailForm.action">
+          <el-option label="结果1" value="1"></el-option>
+          <el-option label="结果2" value="2"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item style="width: 30%;" label="操作人">
+        <el-input size="small" v-model="quoteDetailForm.person" placeholder="请输入操作人"></el-input>
+      </el-form-item>
+      <el-form-item style="width: 30%;">
+        <el-button type="primary" size="small" style="margin-left: 150px;">查询</el-button>
+        <el-button size="small">重置</el-button>
+      </el-form-item>
+    </el-form>
+    <el-table
+      :data="tableData"
+    >
+      <el-table-column prop="" label="报价时间"></el-table-column>
+      <el-table-column prop="" label="动作"></el-table-column>
+      <el-table-column prop="" label="保险公司"></el-table-column>
+      <el-table-column prop="" label="订单号">
+        <template slot-scope="scope">
+          <a>{{ scope.row.orderNumber }}</a>
+        </template>
+      </el-table-column>
+      <el-table-column prop="" label="车牌号"></el-table-column>
+      <el-table-column prop="" label="工号"></el-table-column>
+      <el-table-column prop="" label="姓名"></el-table-column>
+      <el-table-column prop="" label="联系电话"></el-table-column>
+      <el-table-column prop="" label="结果"></el-table-column>
+    </el-table>
+    <div class="flex-box">
+      <el-pagination
+        @size-change="handleSizeChange"
+        :current-page="pageNum"
+        :page-sizes="[10, 20, 30, 40]"
+        :page-size="pageSize"
+        layout="total, sizes, prev, pager, next, jumper"
+        :total="total">
+      </el-pagination>
+    </div>
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      quoteDetailForm: {},
+      tableData: [],
+      pageNum: 1,
+      pageSize: 10,
+      total: 0
+    }
+  },
+  methods: {
+    handleSizeChange() {
+
+    }
+  }
+}
+</script>
+
+<style>
+.flex-box{
+  display: flex;
+  align-items: center;
+  justify-content: flex-end;
+  margin: 10px 0;
+}
+.el-form-item__content{
+  width: calc(100% - 150px);
+}
+</style>

+ 87 - 47
src/views/PeopleManage/Agent/QuoteManagement.vue

@@ -1,43 +1,56 @@
 <template>
   <div class="quoteManagement">
-    <el-row :gutter="20">
-      <el-form ref="QuoteForm" :model="quoteForm" :inline="true" label-width="130px">
-        <el-col :span="6">
-          <el-form-item label="代理人信息">
-            <el-input v-model="quoteForm.people" size="small" placeholder="请输入姓名和手机号查找"></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col :span="6">
-          <el-form-item label="工号">
-            <el-input v-model="quoteForm.number" size="small" placeholder="请输入工号查找"></el-input>
-          </el-form-item>
-        </el-col>
-        <el-col :span="6">
-          <el-form-item label="保险公司">
-            <el-select v-model="quoteForm.company" size="small"></el-select>
-          </el-form-item>
-        </el-col>
-        <el-col :span="6">
-          <el-button size="small">重置</el-button>
-          <el-button type="primary" size="small">查询</el-button>
-        </el-col>
-      </el-form>
-    </el-row>
+    <el-form ref="QuoteForm" :model="quoteForm" :inline="true" label-width="130px">
+      <el-form-item style="width: 20%" label="代理人信息" prop="people">
+        <el-input v-model="quoteForm.people" size="small" placeholder="请输入姓名和手机号查找"></el-input>
+      </el-form-item>
+      <el-form-item style="width: 20%" label="工号" prop="number">
+        <el-input v-model="quoteForm.number" size="small" placeholder="请输入工号查找"></el-input>
+      </el-form-item>
+      <el-form-item style="width: 20%" label="保险公司" prop="company">
+        <el-select v-model="quoteForm.company" filterable size="small">
+          <el-option v-for="(item, index) in quoteCompany" :key="item.id" :label="item.namesimple" :value="item.id"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item style="width: 20%">
+        <el-button size="small">重置</el-button>
+        <el-button type="primary" size="small">查询</el-button>
+      </el-form-item>
+    </el-form>
     <el-table
       :data="quoteData"
     >
-      <el-table-column prop="" label="部门编码"></el-table-column>
-      <el-table-column prop="" label="机构名称"></el-table-column>
-      <el-table-column prop="" label="部门名称"></el-table-column>
-      <el-table-column prop="" label="工号"></el-table-column>
-      <el-table-column prop="" label="姓名"></el-table-column>
-      <el-table-column prop="" label="联系电话"></el-table-column>
-      <el-table-column prop="" label="保险公司"></el-table-column>
-      <el-table-column prop="" label="今日报价(次)"></el-table-column>
-      <el-table-column prop="" label="今日报价后承保(单)"></el-table-column>
-      <el-table-column prop="" label="累计报价(次)"></el-table-column>
-      <el-table-column prop="" label="累计承保(单)"></el-table-column>
-      <el-table-column label="操作">
+      <el-table-column prop="" label="部门编码" width="150"></el-table-column>
+      <el-table-column prop="" label="机构名称" width="150"></el-table-column>
+      <el-table-column prop="" label="部门名称" width="150"></el-table-column>
+      <el-table-column prop="" label="工号" width="150"></el-table-column>
+      <el-table-column prop="" label="姓名" width="150"></el-table-column>
+      <el-table-column prop="" label="联系电话" width="150"></el-table-column>
+      <el-table-column prop="" label="保险公司" width="150"></el-table-column>
+      <el-table-column prop="" label="今日报价(次)" width="150"></el-table-column>
+      <el-table-column prop="" label="今日报价(单)" width="150"></el-table-column>
+      <el-table-column prop="" label="今日承保(单)" width="150"></el-table-column>
+      <el-table-column width="150">
+        <template slot="header" slot-scope="scope">
+          <div>
+            <span>报价出单比</span>
+            <el-popover
+              popper-class="popover-box"
+              placement="top-end"
+              title=""
+              width="250"
+              trigger="hover"
+              content="报价出单比=承保单数/报价单数*100%
+(四舍五入到小数点后两位)"
+            >
+              <i slot="reference" class="el-icon-question"></i>
+            </el-popover>
+          </div>
+        </template>
+      </el-table-column>
+      <el-table-column prop="" label="累计报价(次)" width="150"></el-table-column>
+      <el-table-column prop="" label="累计承保(单)" width="150"></el-table-column>
+      <el-table-column label="操作" width="200" fixed="right">
         <template slot-scope="scope">
           <kt-button label="增加次数" size="small" type="text" perms="agreement:input:delete"
                      @click="addCount(scope.$index, scope.row)" style="color: #D42426 !important " />
@@ -57,27 +70,28 @@
     <el-dialog
       title="增加次数"
       :visible.sync="dialogVisible"
-      width="30%">
+      width="40%">
       <el-form style="width: 100%" ref="AddForm" :model="addForm" :inline="true" label-width="130px">
-        <el-form-item label="代理人" style="width: 100%">
+        <el-form-item label="代理人" style="width: 80%">
           <el-input style="width: 100%" v-model="addForm.agent" disabled></el-input>
         </el-form-item>
-        <el-form-item label="保险公司">
+        <el-form-item label="保险公司" style="width: 80%">
           <el-input v-model="addForm.company" disabled></el-input>
         </el-form-item>
-        <el-form-item label="今日已报价">
+        <el-form-item label="今日已报价" style="width: 80%">
           <el-input v-model="addForm.hadQuote" disabled></el-input>
         </el-form-item>
-        <el-form-item label="今日已承保">
+        <el-form-item label="今日已承保" style="width: 80%">
           <el-input v-model="addForm.had" disabled></el-input>
         </el-form-item>
-        <el-form-item label="报价出单比">
+        <el-form-item label="报价出单比" style="width: 80%">
           <el-input v-model="addForm.assign" disabled></el-input>
+          <span style="font-size: 12px; color: #999;">报价出单比=承保单数/报价单数*100%(四舍五入到小数点后两位)</span>
         </el-form-item>
-        <el-form-item label="增加次数">
+        <el-form-item label="增加次数" style="width: 80%">
           <el-input v-model="addForm.count"></el-input>
         </el-form-item>
-        <el-form-item label="备注">
+        <el-form-item label="备注" style="width: 80%">
           <el-input type="textarea" v-model="addForm.tips"></el-input>
         </el-form-item>
       </el-form>
@@ -92,7 +106,6 @@
 <script>
 import KtButton from "@/views/Core/KtButton";
 export default {
-  name: "index.vue",
   components: {
     KtButton
   },
@@ -110,27 +123,54 @@ export default {
       dialogVisible: false,
       addForm: {
 
-      }
+      },
+
+      quoteCompany:[], // 保险公司list
+
     }
   },
+  created() {
+    this.initCompany();
+  },
   methods: {
+    // 获取保险公司
+    initCompany() {
+      this.$api.quote.getCompany().then(res => {
+        if(res.code == 200) {
+          this.quoteCompany = res.data
+        }
+      })
+    },
     addCount(index, row) {
       this.dialogVisible = true
     },
     handleSizeChange() {
 
     }
+  },
+  mounted() {
+
   }
 }
 </script>
 
-<style scoped lang="scss">
+<style>
 .flex-box{
   display: flex;
   align-items: center;
   justify-content: flex-end;
 }
 .el-form-item__content{
-  width: 100%;
+  width: calc(100% - 130px);
+}
+.popover-box{
+  background: rgba(0,0,0,.5) !important;
+  color: #fff !important;
+}
+.popper__arrow{
+  border-top-color: rgba(0,0,0,.4) !important;
+}
+.popper__arrow::after{
+  border-top-color: rgba(0,0,0,0) !important;
 }
 </style>

+ 2 - 2
src/views/Task/daikeComponents/KtLetter.vue

@@ -5352,9 +5352,9 @@ export default {
     //身份证失去焦点
     identifyblur(info) {
       this[info].age =typeof getAgeByIdCard(this[info].identifyNumber)=='number' ?getAgeByIdCard(this[info].identifyNumber):'';
-     
+
       this[info].gender = getGenderByIdCard(this[info].identifyNumber);
-   
+
     },
     //车主信息选择性别
     genderChange(e) {

+ 13 - 0
src/views/Task/daikeComponents/KtLetter1.vue

@@ -4125,6 +4125,15 @@ export default {
         callback(new Error("请输入正确的车牌号"));
       }
     };
+    // var validateRight = (rule, value, callback) => {
+    //   if(!value) {
+    //     callback(new Error("请选择能源种类"))
+    //   } else if(this.carInfo.licenseNo.length === 8 && value === '0'){
+    //     callback(new Error('能源类型错误,请重新选择!'))
+    //   } else {
+    //     callback()
+    //   }
+    // };
     return {
       validateCarCodeShow: false,
       vehicleInspectionUrl: '',
@@ -8710,6 +8719,10 @@ export default {
         this.$message({ message: "发证日期早于初登日期", type: "error" });
         return;
       }
+      if(this.carInfo.licenseNo.length === 8&& this.carInfo.energyType === '0') {
+        this.$message.error('能源类型错误,请重新选择!')
+        return;
+      }
       this.policyHolderInfovalidate();
 
       var _this = this;