Parcourir la source

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

baijunde il y a 2 ans
Parent
commit
0fd24b20f8

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

@@ -1069,3 +1069,12 @@ export const sysChannelGroup = (id) => {
     method: "get",
   })
 }
+
+// 协议轨迹
+export const agreementTrajectory = (data) => {
+  return axios({
+    url: "/plt/agreement/agreementTrajectory",
+    method: 'post',
+    data
+  })
+}

+ 36 - 0
src/views/AgreementManage/CarInsurance/AgreementEntry.vue

@@ -191,6 +191,8 @@
               @click="uplatequery(scope.$index, scope.row)" style="color: #2D4D89 !important " />
             <kt-button label="删除" :size="overSize" type="text" perms="agreement:input:delete"
               @click="deletequery(scope.$index, scope.row)" style="color: #D42426 !important " />
+              <kt-button label="协议轨迹" :size="overSize" type="text" perms="agreement:input:update"
+              @click="handleTrajectory(scope.$index, scope.row)" style="color: #2D4D89 !important " />
 
             <!-- <el-button type="text" size="mini">
               <el-dropdown trigger="click">
@@ -1346,6 +1348,24 @@
           @click="agreementSelectionSubmit">确 定</el-button>
       </span>
     </el-dialog>
+    <!-- 协议轨迹 -->
+    <el-dialog :visible.sync="ddgjdialogVisible1" width="430px">
+      <div slot="title">
+        <span>协议轨迹</span>
+      </div>
+      <div style="max-height: 500px; overflow-y: auto; padding: 20px;">
+        <el-steps direction="vertical" :active="trajectoryTable1.length - 1">
+          <el-step :title="item.readme" :key="item.id" v-for="item in trajectoryTable1">
+            <template slot="description">
+              <span>提交人:{{ item.createBy }}</span>
+              <div style="margin-bottom: 20px;">创建时间:{{ item.createTime }}</div>
+            </template>
+          </el-step>
+        </el-steps>
+        <div v-show="!trajectoryTable1.length">暂无轨迹</div>
+      </div>
+    </el-dialog>
+
   </div>
 </template>
 <script>
@@ -2337,6 +2357,9 @@ export default {
       auditType: "",
       agreementSelectionVisible: false,
 
+      showTrajectoryDialog: false,    // 协议轨迹
+      ddgjdialogVisible1: false,
+      trajectoryTable1: [],
     };
   },
   computed: {
@@ -2441,6 +2464,19 @@ export default {
     this.findLeftTreeData();
   },
   methods: {
+    // 协议轨迹
+    handleTrajectory(index, row) {
+      this.showTrajectoryDialog = true
+      console.log(index, row)
+      this.$api.insCompany.agreementTrajectory({
+        id: row.id
+      }).then((res) => {
+        if (res.code == 200) {
+          this.trajectoryTable1 = res.data
+          this.ddgjdialogVisible1 = true
+        }
+      })
+    },
     internalOrgTree(data, currentLevel = 1, maxLevel = 4) {
       return data.map(item => {
         const newItem = item; // 复制当前节点,使用对象扩展运算符

+ 163 - 7
src/views/PeopleManage/Agent/AgentManage.vue

@@ -375,9 +375,10 @@
       width="40%"
       :visible.sync="showOut"
       @close="closeDialogOut"
+      class="dialogOut people-style"
     >
       <div>
-        <el-form>
+        <el-form class="personnelInformation">
           <el-form-item label="离职时间" prop="logoutTime">
             <el-date-picker
               value-format="yyyy-MM-dd"
@@ -396,18 +397,32 @@
               :http-request="httpRequest"
               :before-upload="beforeAvatarUpload"
             >
+              <!-- <img v-if="logoutImg" :src="logoutImg" class="avatar" />
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i> -->
               <img v-if="logoutImg" :src="logoutImg" class="avatar" />
-              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+              <div v-else class="upload-icon">
+                <img src="@/assets/image/people/camera.svg" alt="">
+                <div class="el-upload__text">上传资料</div>
+              </div>
+              <span class="slot" v-show="logoutImg">
+                <i class="preview" @click.stop="handlePictureCardPreview(logoutImg)"></i>
+                <img class="close"  src="@/assets/image/people/close.png" alt="" @click.stop="handlePictureCardDelete('LZ_01')">
+                <div  class="bottomHandle">
+                  <img class="reset" src="@/assets/image/people/reset.png" alt="">
+                  <span class="title">点击重新上传</span>
+                </div>
+              </span>
             </el-upload>
           </el-form-item>
         </el-form>
       </div>
-      <span slot="footer">
+      <div class="footerHandle" style="text-align: right">
         <el-button type="primary" @click="handleSubOut">确定</el-button>
         <el-button @click="closeDialogOut">取消</el-button>
-      </span>
+      </div>
     </el-dialog>
     <personnelHistory ref="personnelHistory" ></personnelHistory>
+    <el-image-viewer v-if="showViewer" :on-close="closeViewer" :z-index="9999" :url-list="[ProViewImg]" />
   </div>
 </template>
 
@@ -430,7 +445,8 @@ export default {
     templateTable,
     peopleImage,
     userDetail,
-    personnelHistory
+    personnelHistory,
+    "el-image-viewer": () => import("element-ui/packages/image/src/image-viewer")
   },
   mixins: [mixin],
   data() {
@@ -638,7 +654,9 @@ export default {
       option: [], //机构列表
       dialogPassword: true, //密码是否显示明文
       user_statusoptions: [],
-      pdeptId: null
+      pdeptId: null,
+      showViewer: false,
+      ProViewImg: null
     };
   },
   created() {
@@ -1126,7 +1144,23 @@ export default {
     async checkHistory(row){
       let userId = row.userId;
       this.$refs.personnelHistory.getHistory(userId);
-    }
+    },
+    handlePictureCardDelete(){
+      this.logoutImg = null;
+    },
+    //预览图片
+    handlePictureCardPreview(img) {
+      if(!img){
+        this.$message.error('暂无照片')
+        return 
+      }
+      this.ProViewImg = img;
+      this.showViewer = true;
+    },
+    // 关闭查看器
+    closeViewer() {
+      this.showViewer = false;
+    },
   },
 };
 </script>
@@ -1428,4 +1462,126 @@ export default {
     }
   }
 }
+.dialogOut{
+  .el-form{
+    padding-top: 10px !important;
+  }
+  .el-form-item{
+    display: flex;
+    align-items: center;
+    >>>.el-form-item__label{
+      padding-bottom: 0 !important;
+    }
+    >>>.el-date-editor{
+      .el-input__prefix{
+        top: 12px !important;
+      }
+    }
+  }
+  .footerHandle{
+    padding: 8px 20px;
+  }
+  .upload-icon {
+    width: 208px;
+    height: 130px;
+    background: #f9f9f9;
+    border: 1px solid #eee;
+    border-radius: 4px;
+    box-sizing: border-box;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+  }
+  .el-upload__text {
+    line-height: 20px;
+    margin-top: 7px;
+    color: #999;
+  }
+  .el-upload--picture-card:hover, .el-upload:focus{
+    color: #333;
+  }
+  .upload-icon:hover {
+    /* border: 1px dashed #2D4D89; */
+    border-color: #D42426;
+    /* color: #D42426; */
+    transition: all ease 1s;
+  }
+  .avatar {
+    border: 1px solid #eee;
+    padding: 0px;
+    border-radius: 6px;
+    width: 207px;
+    height: 130px;
+    display: block;
+    object-fit: cover;
+    border-radius: 4px;
+  }
+  /* 上传图片样式End */
+  .slot {
+    position: absolute;
+    width: 208px;
+    height: 130px;
+    left: 2px;
+    top: 2px;
+    border-radius: 4px;
+    cursor: default;
+    text-align: center;
+    color: #fff;
+    opacity: 1;
+    font-size: 20px;
+    /* background-color: rgba(0, 0, 0, 0.5); */
+    transition: opacity 0.3s;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+  }
+
+  .close{
+    width: 12px;
+    height: 12px;
+    position: absolute;
+    top: -1px;
+    right: 0;
+    cursor: pointer;
+  }
+  .preview{
+    width: 208px;
+    height: calc(130px - 24px);
+  }
+  .bottomHandle{
+    width: 208px;
+    height: 24px;
+    line-height: 20px;
+    background: url('~@/assets/image/people/bottomFrame.png') no-repeat;
+    position: absolute;
+    bottom: 0;
+    left: -1px;
+    cursor: pointer;
+  }
+  .reset{
+    width: 10px;
+    height: 10px
+  }
+  .bottomHandle>.title{
+    font-size: 12px;
+    color: #fff;
+    padding: 0;
+  }
+  .slot>i {
+    /* margin: 10px; */
+    /* color: #fff; */
+    /* font-size: 25px; */
+    /* font-weight: bold; */
+  }
+
+  .slot:hover {
+    opacity: 1;
+  }
+  .title{
+    font-size: 16px;
+    color: #333;
+    padding-bottom: 10px;
+  }
+}
 </style>

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

@@ -392,9 +392,10 @@
       width="40%"
       :visible.sync="showOut"
       @close="closeDialogOut"
+      class="dialogOut people-style"
     >
       <div>
-        <el-form>
+        <el-form class="personnelInformation">
           <el-form-item label="离职时间" prop="logoutTime">
             <el-date-picker
               value-format="yyyy-MM-dd"
@@ -413,18 +414,32 @@
               :http-request="httpRequest"
               :before-upload="beforeAvatarUpload"
             >
+              <!-- <img v-if="logoutImg" :src="logoutImg" class="avatar" />
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i> -->
               <img v-if="logoutImg" :src="logoutImg" class="avatar" />
-              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+              <div v-else class="upload-icon">
+                <img src="@/assets/image/people/camera.svg" alt="">
+                <div class="el-upload__text">上传资料</div>
+              </div>
+              <span class="slot" v-show="logoutImg">
+                <i class="preview" @click.stop="handlePictureCardPreview(logoutImg)"></i>
+                <img class="close"  src="@/assets/image/people/close.png" alt="" @click.stop="handlePictureCardDelete('LZ_01')">
+                <div  class="bottomHandle">
+                  <img class="reset" src="@/assets/image/people/reset.png" alt="">
+                  <span class="title">点击重新上传</span>
+                </div>
+              </span>
             </el-upload>
           </el-form-item>
         </el-form>
       </div>
-      <span slot="footer">
+      <div class="footerHandle" style="text-align: right">
         <el-button type="primary" @click="handleSubOut">确定</el-button>
         <el-button @click="closeDialogOut">取消</el-button>
-      </span>
+      </div>
     </el-dialog>
     <personnelHistory ref="personnelHistory" :isBusiness="true" ></personnelHistory>
+    <el-image-viewer v-if="showViewer" :on-close="closeViewer" :z-index="9999" :url-list="[ProViewImg]" />
   </div>
 </template>
 
@@ -445,7 +460,8 @@ export default {
     tree,
     templateTable,
     peopleImage,
-    personnelHistory
+    personnelHistory,
+    "el-image-viewer": () => import("element-ui/packages/image/src/image-viewer")
   },
   mixins: [mixin],
   data() {
@@ -652,7 +668,9 @@ export default {
       imagesIdList: [],
       formDataDetail: {},
       showPassWord: false,
-      pdeptId: null
+      pdeptId: null,
+      showViewer: false,
+      ProViewImg: null
     };
   },
   created() {
@@ -1047,7 +1065,23 @@ export default {
     async checkHistory(row){
       let userId = row.userId;
       this.$refs.personnelHistory.getHistory(userId);
-    }
+    },
+    handlePictureCardDelete(){
+      this.logoutImg = null;
+    },
+    //预览图片
+    handlePictureCardPreview(img) {
+      if(!img){
+        this.$message.error('暂无照片')
+        return 
+      }
+      this.ProViewImg = img;
+      this.showViewer = true;
+    },
+    // 关闭查看器
+    closeViewer() {
+      this.showViewer = false;
+    },
   },
 };
 </script>
@@ -1374,4 +1408,126 @@ export default {
   }
 }
 }
+.dialogOut{
+  .el-form{
+    padding-top: 10px !important;
+  }
+  .el-form-item{
+    display: flex;
+    align-items: center;
+    >>>.el-form-item__label{
+      padding-bottom: 0 !important;
+    }
+    >>>.el-date-editor{
+      .el-input__prefix{
+        top: 12px !important;
+      }
+    }
+  }
+  .footerHandle{
+    padding: 8px 20px;
+  }
+  .upload-icon {
+    width: 208px;
+    height: 130px;
+    background: #f9f9f9;
+    border: 1px solid #eee;
+    border-radius: 4px;
+    box-sizing: border-box;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+  }
+  .el-upload__text {
+    line-height: 20px;
+    margin-top: 7px;
+    color: #999;
+  }
+  .el-upload--picture-card:hover, .el-upload:focus{
+    color: #333;
+  }
+  .upload-icon:hover {
+    /* border: 1px dashed #2D4D89; */
+    border-color: #D42426;
+    /* color: #D42426; */
+    transition: all ease 1s;
+  }
+  .avatar {
+    border: 1px solid #eee;
+    padding: 0px;
+    border-radius: 6px;
+    width: 207px;
+    height: 130px;
+    display: block;
+    object-fit: cover;
+    border-radius: 4px;
+  }
+  /* 上传图片样式End */
+  .slot {
+    position: absolute;
+    width: 208px;
+    height: 130px;
+    left: 2px;
+    top: 2px;
+    border-radius: 4px;
+    cursor: default;
+    text-align: center;
+    color: #fff;
+    opacity: 1;
+    font-size: 20px;
+    /* background-color: rgba(0, 0, 0, 0.5); */
+    transition: opacity 0.3s;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+  }
+
+  .close{
+    width: 12px;
+    height: 12px;
+    position: absolute;
+    top: -1px;
+    right: 0;
+    cursor: pointer;
+  }
+  .preview{
+    width: 208px;
+    height: calc(130px - 24px);
+  }
+  .bottomHandle{
+    width: 208px;
+    height: 24px;
+    line-height: 20px;
+    background: url('~@/assets/image/people/bottomFrame.png') no-repeat;
+    position: absolute;
+    bottom: 0;
+    left: -1px;
+    cursor: pointer;
+  }
+  .reset{
+    width: 10px;
+    height: 10px
+  }
+  .bottomHandle>.title{
+    font-size: 12px;
+    color: #fff;
+    padding: 0;
+  }
+  .slot>i {
+    /* margin: 10px; */
+    /* color: #fff; */
+    /* font-size: 25px; */
+    /* font-weight: bold; */
+  }
+
+  .slot:hover {
+    opacity: 1;
+  }
+  .title{
+    font-size: 16px;
+    color: #333;
+    padding-bottom: 10px;
+  }
+}
 </style>

+ 164 - 7
src/views/PeopleManage/Player/PlayerManageteam.vue

@@ -345,9 +345,10 @@
       width="40%"
       :visible.sync="showOut"
       @close="closeDialogOut"
+      class="dialogOut people-style"
     >
       <div>
-        <el-form>
+        <el-form class="personnelInformation">
           <el-form-item label="离职时间" prop="logoutTime">
             <el-date-picker
               value-format="yyyy-MM-dd"
@@ -355,6 +356,7 @@
               v-model="logoutTime"
               type="date"
               placeholder="选择日期"
+              size="small"
             ></el-date-picker>
           </el-form-item>
           <el-form-item label="离职表:" style="width: 50%">
@@ -366,18 +368,32 @@
               :http-request="httpRequest"
               :before-upload="beforeAvatarUpload"
             >
+              <!-- <img v-if="logoutImg" :src="logoutImg" class="avatar" />
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i> -->
               <img v-if="logoutImg" :src="logoutImg" class="avatar" />
-              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+              <div v-else class="upload-icon">
+                <img src="@/assets/image/people/camera.svg" alt="">
+                <div class="el-upload__text">上传资料</div>
+              </div>
+              <span class="slot" v-show="logoutImg">
+                <i class="preview" @click.stop="handlePictureCardPreview(logoutImg)"></i>
+                <img class="close"  src="@/assets/image/people/close.png" alt="" @click.stop="handlePictureCardDelete('LZ_01')">
+                <div  class="bottomHandle">
+                  <img class="reset" src="@/assets/image/people/reset.png" alt="">
+                  <span class="title">点击重新上传</span>
+                </div>
+              </span>
             </el-upload>
           </el-form-item>
         </el-form>
       </div>
-      <span slot="footer">
+      <div class="footerHandle" style="text-align: right">
         <el-button type="primary" @click="handleSubOut">确定</el-button>
         <el-button @click="closeDialogOut">取消</el-button>
-      </span>
+      </div>
     </el-dialog>
     <personnelHistory ref="personnelHistory" ></personnelHistory>
+    <el-image-viewer v-if="showViewer" :on-close="closeViewer" :z-index="9999" :url-list="[ProViewImg]" />
   </div>
 </template>
 
@@ -400,7 +416,8 @@ export default {
     templateTable,
     peopleImage,
     userDetail,
-    personnelHistory
+    personnelHistory,
+    "el-image-viewer": () => import("element-ui/packages/image/src/image-viewer")
   },
   mixins: [mixin],
   data() {
@@ -602,7 +619,9 @@ export default {
         birthday: "",
       },
       formDataRulesDetail: {},
-      pdeptId: null
+      pdeptId: null,
+      showViewer: false,
+      ProViewImg: null
     };
   },
   created() {
@@ -1057,7 +1076,23 @@ export default {
     async checkHistory(row){
       let userId = row.userId;
       this.$refs.personnelHistory.getHistory(userId);
-    }
+    },
+    handlePictureCardDelete(){
+      this.logoutImg = null;
+    },
+    //预览图片
+    handlePictureCardPreview(img) {
+      if(!img){
+        this.$message.error('暂无照片')
+        return 
+      }
+      this.ProViewImg = img;
+      this.showViewer = true;
+    },
+    // 关闭查看器
+    closeViewer() {
+      this.showViewer = false;
+    },
   },
 };
 </script>
@@ -1360,4 +1395,126 @@ export default {
     }
   }
 }
+.dialogOut{
+  .el-form{
+    padding-top: 10px !important;
+  }
+  .el-form-item{
+    display: flex;
+    align-items: center;
+    >>>.el-form-item__label{
+      padding-bottom: 0 !important;
+    }
+    >>>.el-date-editor{
+      .el-input__prefix{
+        top: 12px !important;
+      }
+    }
+  }
+  .footerHandle{
+    padding: 8px 20px;
+  }
+  .upload-icon {
+    width: 208px;
+    height: 130px;
+    background: #f9f9f9;
+    border: 1px solid #eee;
+    border-radius: 4px;
+    box-sizing: border-box;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+  }
+  .el-upload__text {
+    line-height: 20px;
+    margin-top: 7px;
+    color: #999;
+  }
+  .el-upload--picture-card:hover, .el-upload:focus{
+    color: #333;
+  }
+  .upload-icon:hover {
+    /* border: 1px dashed #2D4D89; */
+    border-color: #D42426;
+    /* color: #D42426; */
+    transition: all ease 1s;
+  }
+  .avatar {
+    border: 1px solid #eee;
+    padding: 0px;
+    border-radius: 6px;
+    width: 207px;
+    height: 130px;
+    display: block;
+    object-fit: cover;
+    border-radius: 4px;
+  }
+  /* 上传图片样式End */
+  .slot {
+    position: absolute;
+    width: 208px;
+    height: 130px;
+    left: 2px;
+    top: 2px;
+    border-radius: 4px;
+    cursor: default;
+    text-align: center;
+    color: #fff;
+    opacity: 1;
+    font-size: 20px;
+    /* background-color: rgba(0, 0, 0, 0.5); */
+    transition: opacity 0.3s;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+  }
+
+  .close{
+    width: 12px;
+    height: 12px;
+    position: absolute;
+    top: -1px;
+    right: 0;
+    cursor: pointer;
+  }
+  .preview{
+    width: 208px;
+    height: calc(130px - 24px);
+  }
+  .bottomHandle{
+    width: 208px;
+    height: 24px;
+    line-height: 20px;
+    background: url('~@/assets/image/people/bottomFrame.png') no-repeat;
+    position: absolute;
+    bottom: 0;
+    left: -1px;
+    cursor: pointer;
+  }
+  .reset{
+    width: 10px;
+    height: 10px
+  }
+  .bottomHandle>.title{
+    font-size: 12px;
+    color: #fff;
+    padding: 0;
+  }
+  .slot>i {
+    /* margin: 10px; */
+    /* color: #fff; */
+    /* font-size: 25px; */
+    /* font-weight: bold; */
+  }
+
+  .slot:hover {
+    opacity: 1;
+  }
+  .title{
+    font-size: 16px;
+    color: #333;
+    padding-bottom: 10px;
+  }
+}
 </style>

+ 163 - 7
src/views/PeopleManage/Sales/SalesManage.vue

@@ -475,9 +475,10 @@
       width="40%"
       :visible.sync="showOut"
       @close="closeDialogOut"
+      class="dialogOut people-style"
     >
       <div>
-        <el-form>
+        <el-form  class="personnelInformation">
           <el-form-item label="离职时间" prop="logoutTime">
             <el-date-picker
               value-format="yyyy-MM-dd"
@@ -496,18 +497,32 @@
               :http-request="httpRequest"
               :before-upload="beforeAvatarUpload"
             >
-              <img v-if="logoutImg" :src="logoutImg" class="avatar"/>
-              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+              <!-- <img v-if="logoutImg" :src="logoutImg" class="avatar"/>
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i> -->
+              <img v-if="logoutImg" :src="logoutImg" class="avatar" />
+              <div v-else class="upload-icon">
+                <img src="@/assets/image/people/camera.svg" alt="">
+                <div class="el-upload__text">上传资料</div>
+              </div>
+              <span class="slot" v-show="logoutImg">
+                <i class="preview" @click.stop="handlePictureCardPreview(logoutImg)"></i>
+                <img class="close"  src="@/assets/image/people/close.png" alt="" @click.stop="handlePictureCardDelete('LZ_01')">
+                <div  class="bottomHandle">
+                  <img class="reset" src="@/assets/image/people/reset.png" alt="">
+                  <span class="title">点击重新上传</span>
+                </div>
+              </span>
             </el-upload>
           </el-form-item>
         </el-form>
       </div>
-      <span slot="footer">
+      <div class="footerHandle" style="text-align: right">
         <el-button type="primary" @click="handleSubOut">确定</el-button>
         <el-button @click="closeDialogOut">取消</el-button>
-      </span>
+      </div>
     </el-dialog>
     <personnelHistory ref="personnelHistory" ></personnelHistory>
+    <el-image-viewer v-if="showViewer" :on-close="closeViewer" :z-index="9999" :url-list="[ProViewImg]" />
   </div>
 </template>
 
@@ -531,7 +546,8 @@ export default {
     KtCommonTable,
     userDetail,
     peopleImage,
-    personnelHistory
+    personnelHistory,
+    "el-image-viewer": () => import("element-ui/packages/image/src/image-viewer")
   },
   mixins: [mixin],
   data() {
@@ -675,6 +691,8 @@ export default {
           click:(row)=>this.checkHistory(row)
         }
       ],
+      showViewer: false,
+      ProViewImg: null
     };
   },
   created() {
@@ -1195,7 +1213,23 @@ export default {
     async checkHistory(row){
       let userId = row.userId;
       this.$refs.personnelHistory.getHistory(userId);
-    }
+    },
+    handlePictureCardDelete(){
+      this.logoutImg = null;
+    },
+    //预览图片
+    handlePictureCardPreview(img) {
+      if(!img){
+        this.$message.error('暂无照片')
+        return 
+      }
+      this.ProViewImg = img;
+      this.showViewer = true;
+    },
+    // 关闭查看器
+    closeViewer() {
+      this.showViewer = false;
+    },
   },
 };
 </script>
@@ -1479,4 +1513,126 @@ export default {
     }
   }
 }
+.dialogOut{
+  .el-form{
+    padding-top: 10px !important;
+  }
+  .el-form-item{
+    display: flex;
+    align-items: center;
+    >>>.el-form-item__label{
+      padding-bottom: 0 !important;
+    }
+    >>>.el-date-editor{
+      .el-input__prefix{
+        top: 12px !important;
+      }
+    }
+  }
+  .footerHandle{
+    padding: 8px 20px;
+  }
+  .upload-icon {
+    width: 208px;
+    height: 130px;
+    background: #f9f9f9;
+    border: 1px solid #eee;
+    border-radius: 4px;
+    box-sizing: border-box;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+  }
+  .el-upload__text {
+    line-height: 20px;
+    margin-top: 7px;
+    color: #999;
+  }
+  .el-upload--picture-card:hover, .el-upload:focus{
+    color: #333;
+  }
+  .upload-icon:hover {
+    /* border: 1px dashed #2D4D89; */
+    border-color: #D42426;
+    /* color: #D42426; */
+    transition: all ease 1s;
+  }
+  .avatar {
+    border: 1px solid #eee;
+    padding: 0px;
+    border-radius: 6px;
+    width: 207px;
+    height: 130px;
+    display: block;
+    object-fit: cover;
+    border-radius: 4px;
+  }
+  /* 上传图片样式End */
+  .slot {
+    position: absolute;
+    width: 208px;
+    height: 130px;
+    left: 2px;
+    top: 2px;
+    border-radius: 4px;
+    cursor: default;
+    text-align: center;
+    color: #fff;
+    opacity: 1;
+    font-size: 20px;
+    /* background-color: rgba(0, 0, 0, 0.5); */
+    transition: opacity 0.3s;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+  }
+
+  .close{
+    width: 12px;
+    height: 12px;
+    position: absolute;
+    top: -1px;
+    right: 0;
+    cursor: pointer;
+  }
+  .preview{
+    width: 208px;
+    height: calc(130px - 24px);
+  }
+  .bottomHandle{
+    width: 208px;
+    height: 24px;
+    line-height: 20px;
+    background: url('~@/assets/image/people/bottomFrame.png') no-repeat;
+    position: absolute;
+    bottom: 0;
+    left: -1px;
+    cursor: pointer;
+  }
+  .reset{
+    width: 10px;
+    height: 10px
+  }
+  .bottomHandle>.title{
+    font-size: 12px;
+    color: #fff;
+    padding: 0;
+  }
+  .slot>i {
+    /* margin: 10px; */
+    /* color: #fff; */
+    /* font-size: 25px; */
+    /* font-weight: bold; */
+  }
+
+  .slot:hover {
+    opacity: 1;
+  }
+  .title{
+    font-size: 16px;
+    color: #333;
+    padding-bottom: 10px;
+  }
+}
 </style>

+ 163 - 7
src/views/PeopleManage/Sales/SalesManageGroup.vue

@@ -475,9 +475,10 @@
       width="40%"
       :visible.sync="showOut"
       @close="closeDialogOut"
+      class="dialogOut people-style"
     >
       <div>
-        <el-form>
+        <el-form class="personnelInformation">
           <el-form-item label="离职时间" prop="logoutTime">
             <el-date-picker
               value-format="yyyy-MM-dd"
@@ -496,18 +497,32 @@
               :http-request="httpRequest"
               :before-upload="beforeAvatarUpload"
             >
-              <img v-if="logoutImg" :src="logoutImg" class="avatar"/>
-              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+              <!-- <img v-if="logoutImg" :src="logoutImg" class="avatar"/>
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i> -->
+              <img v-if="logoutImg" :src="logoutImg" class="avatar" />
+              <div v-else class="upload-icon">
+                <img src="@/assets/image/people/camera.svg" alt="">
+                <div class="el-upload__text">上传资料</div>
+              </div>
+              <span class="slot" v-show="logoutImg">
+                <i class="preview" @click.stop="handlePictureCardPreview(logoutImg)"></i>
+                <img class="close"  src="@/assets/image/people/close.png" alt="" @click.stop="handlePictureCardDelete('LZ_01')">
+                <div  class="bottomHandle">
+                  <img class="reset" src="@/assets/image/people/reset.png" alt="">
+                  <span class="title">点击重新上传</span>
+                </div>
+              </span>
             </el-upload>
           </el-form-item>
         </el-form>
       </div>
-      <span slot="footer">
+      <div class="footerHandle" style="text-align: right">
         <el-button type="primary" @click="handleSubOut">确定</el-button>
         <el-button @click="closeDialogOut">取消</el-button>
-      </span>
+      </div>
     </el-dialog>
     <personnelHistory ref="personnelHistory" ></personnelHistory>
+    <el-image-viewer v-if="showViewer" :on-close="closeViewer" :z-index="9999" :url-list="[ProViewImg]" />
   </div>
 </template>
 
@@ -531,7 +546,8 @@ export default {
     KtCommonTable,
     userDetail,
     peopleImage,
-    personnelHistory
+    personnelHistory,
+    "el-image-viewer": () => import("element-ui/packages/image/src/image-viewer")
   },
   mixins: [mixin],
   data() {
@@ -675,6 +691,8 @@ export default {
           click:(row)=>this.checkHistory(row)
         }
       ],
+      showViewer: false,
+      ProViewImg: null
     };
   },
   created() {
@@ -1195,7 +1213,23 @@ export default {
     async checkHistory(row){
       let userId = row.userId;
       this.$refs.personnelHistory.getHistory(userId);
-    }
+    },
+    handlePictureCardDelete(){
+      this.logoutImg = null;
+    },
+    //预览图片
+    handlePictureCardPreview(img) {
+      if(!img){
+        this.$message.error('暂无照片')
+        return 
+      }
+      this.ProViewImg = img;
+      this.showViewer = true;
+    },
+    // 关闭查看器
+    closeViewer() {
+      this.showViewer = false;
+    },
   },
 };
 </script>
@@ -1479,4 +1513,126 @@ export default {
     }
   }
 }
+.dialogOut{
+  .el-form{
+    padding-top: 10px !important;
+  }
+  .el-form-item{
+    display: flex;
+    align-items: center;
+    >>>.el-form-item__label{
+      padding-bottom: 0 !important;
+    }
+    >>>.el-date-editor{
+      .el-input__prefix{
+        top: 12px !important;
+      }
+    }
+  }
+  .footerHandle{
+    padding: 8px 20px;
+  }
+  .upload-icon {
+    width: 208px;
+    height: 130px;
+    background: #f9f9f9;
+    border: 1px solid #eee;
+    border-radius: 4px;
+    box-sizing: border-box;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+  }
+  .el-upload__text {
+    line-height: 20px;
+    margin-top: 7px;
+    color: #999;
+  }
+  .el-upload--picture-card:hover, .el-upload:focus{
+    color: #333;
+  }
+  .upload-icon:hover {
+    /* border: 1px dashed #2D4D89; */
+    border-color: #D42426;
+    /* color: #D42426; */
+    transition: all ease 1s;
+  }
+  .avatar {
+    border: 1px solid #eee;
+    padding: 0px;
+    border-radius: 6px;
+    width: 207px;
+    height: 130px;
+    display: block;
+    object-fit: cover;
+    border-radius: 4px;
+  }
+  /* 上传图片样式End */
+  .slot {
+    position: absolute;
+    width: 208px;
+    height: 130px;
+    left: 2px;
+    top: 2px;
+    border-radius: 4px;
+    cursor: default;
+    text-align: center;
+    color: #fff;
+    opacity: 1;
+    font-size: 20px;
+    /* background-color: rgba(0, 0, 0, 0.5); */
+    transition: opacity 0.3s;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+  }
+
+  .close{
+    width: 12px;
+    height: 12px;
+    position: absolute;
+    top: -1px;
+    right: 0;
+    cursor: pointer;
+  }
+  .preview{
+    width: 208px;
+    height: calc(130px - 24px);
+  }
+  .bottomHandle{
+    width: 208px;
+    height: 24px;
+    line-height: 20px;
+    background: url('~@/assets/image/people/bottomFrame.png') no-repeat;
+    position: absolute;
+    bottom: 0;
+    left: -1px;
+    cursor: pointer;
+  }
+  .reset{
+    width: 10px;
+    height: 10px
+  }
+  .bottomHandle>.title{
+    font-size: 12px;
+    color: #fff;
+    padding: 0;
+  }
+  .slot>i {
+    /* margin: 10px; */
+    /* color: #fff; */
+    /* font-size: 25px; */
+    /* font-weight: bold; */
+  }
+
+  .slot:hover {
+    opacity: 1;
+  }
+  .title{
+    font-size: 16px;
+    color: #333;
+    padding-bottom: 10px;
+  }
+}
 </style>

+ 163 - 7
src/views/PeopleManage/Staff/StaffManage.vue

@@ -439,9 +439,10 @@
       width="40%"
       :visible.sync="showOut"
       @close="closeDialogOut"
+      class="dialogOut people-style"
     >
       <div>
-        <el-form>
+        <el-form class="personnelInformation">
           <el-form-item label="离职时间" prop="logoutTime">
             <el-date-picker
               value-format="yyyy-MM-dd"
@@ -449,6 +450,7 @@
               v-model="logoutTime"
               type="date"
               placeholder="选择日期"
+              size="small"
             ></el-date-picker>
           </el-form-item>
           <el-form-item label="离职表:" style="width: 50%">
@@ -460,20 +462,33 @@
               :http-request="httpRequest"
               :before-upload="beforeAvatarUpload"
             >
+              <!-- <img v-if="logoutImg" :src="logoutImg" class="avatar" />
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i> -->
               <img v-if="logoutImg" :src="logoutImg" class="avatar" />
-              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+              <div v-else class="upload-icon">
+                <img src="@/assets/image/people/camera.svg" alt="">
+                <div class="el-upload__text">上传资料</div>
+              </div>
+              <span class="slot" v-show="logoutImg">
+                <i class="preview" @click.stop="handlePictureCardPreview(logoutImg)"></i>
+                <img class="close"  src="@/assets/image/people/close.png" alt="" @click.stop="handlePictureCardDelete('LZ_01')">
+                <div  class="bottomHandle">
+                  <img class="reset" src="@/assets/image/people/reset.png" alt="">
+                  <span class="title">点击重新上传</span>
+                </div>
+              </span>
             </el-upload>
           </el-form-item>
         </el-form>
       </div>
-      <span slot="footer">
+      <div class="footerHandle" style="text-align: right">
         <el-button type="primary" @click="handleSubOut">确定</el-button>
         <el-button @click="closeDialogOut">取消</el-button>
-      </span>
+      </div>
     </el-dialog>
     
     <personnelHistory ref="personnelHistory" ></personnelHistory>
-    
+    <el-image-viewer v-if="showViewer" :on-close="closeViewer" :z-index="9999" :url-list="[ProViewImg]" />
   </div>
 </template>
 
@@ -496,7 +511,8 @@ export default {
     KtCommonTable,
     peopleImage,
     userDetail,
-    personnelHistory
+    personnelHistory,
+    "el-image-viewer": () => import("element-ui/packages/image/src/image-viewer")
   },
   mixins: [mixin],
   data() {
@@ -650,6 +666,8 @@ export default {
           click:(row)=>this.checkHistory(row)
         }
       ],
+      showViewer: false,
+      ProViewImg: null
     };
   },
   created() {
@@ -1141,7 +1159,23 @@ export default {
     async checkHistory(row){
       let userId = row.userId;
       this.$refs.personnelHistory.getHistory(userId);
-    }
+    },
+    handlePictureCardDelete(){
+      this.logoutImg = null;
+    },
+    //预览图片
+    handlePictureCardPreview(img) {
+      if(!img){
+        this.$message.error('暂无照片')
+        return 
+      }
+      this.ProViewImg = img;
+      this.showViewer = true;
+    },
+    // 关闭查看器
+    closeViewer() {
+      this.showViewer = false;
+    },
   },
 };
 </script>
@@ -1416,4 +1450,126 @@ export default {
     }
   }
 }
+.dialogOut{
+  .el-form{
+    padding-top: 10px !important;
+  }
+  .el-form-item{
+    display: flex;
+    align-items: center;
+    >>>.el-form-item__label{
+      padding-bottom: 0 !important;
+    }
+    >>>.el-date-editor{
+      .el-input__prefix{
+        top: 12px !important;
+      }
+    }
+  }
+  .footerHandle{
+    padding: 8px 20px;
+  }
+  .upload-icon {
+    width: 208px;
+    height: 130px;
+    background: #f9f9f9;
+    border: 1px solid #eee;
+    border-radius: 4px;
+    box-sizing: border-box;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+  }
+  .el-upload__text {
+    line-height: 20px;
+    margin-top: 7px;
+    color: #999;
+  }
+  .el-upload--picture-card:hover, .el-upload:focus{
+    color: #333;
+  }
+  .upload-icon:hover {
+    /* border: 1px dashed #2D4D89; */
+    border-color: #D42426;
+    /* color: #D42426; */
+    transition: all ease 1s;
+  }
+  .avatar {
+    border: 1px solid #eee;
+    padding: 0px;
+    border-radius: 6px;
+    width: 207px;
+    height: 130px;
+    display: block;
+    object-fit: cover;
+    border-radius: 4px;
+  }
+  /* 上传图片样式End */
+  .slot {
+    position: absolute;
+    width: 208px;
+    height: 130px;
+    left: 2px;
+    top: 2px;
+    border-radius: 4px;
+    cursor: default;
+    text-align: center;
+    color: #fff;
+    opacity: 1;
+    font-size: 20px;
+    /* background-color: rgba(0, 0, 0, 0.5); */
+    transition: opacity 0.3s;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+  }
+
+  .close{
+    width: 12px;
+    height: 12px;
+    position: absolute;
+    top: -1px;
+    right: 0;
+    cursor: pointer;
+  }
+  .preview{
+    width: 208px;
+    height: calc(130px - 24px);
+  }
+  .bottomHandle{
+    width: 208px;
+    height: 24px;
+    line-height: 20px;
+    background: url('~@/assets/image/people/bottomFrame.png') no-repeat;
+    position: absolute;
+    bottom: 0;
+    left: -1px;
+    cursor: pointer;
+  }
+  .reset{
+    width: 10px;
+    height: 10px
+  }
+  .bottomHandle>.title{
+    font-size: 12px;
+    color: #fff;
+    padding: 0;
+  }
+  .slot>i {
+    /* margin: 10px; */
+    /* color: #fff; */
+    /* font-size: 25px; */
+    /* font-weight: bold; */
+  }
+
+  .slot:hover {
+    opacity: 1;
+  }
+  .title{
+    font-size: 16px;
+    color: #333;
+    padding-bottom: 10px;
+  }
+}
 </style>

+ 162 - 6
src/views/PeopleManage/TeamLeader/TeamLeaderManage.vue

@@ -439,9 +439,10 @@
       width="40%"
       :visible.sync="showOut"
       @close="closeDialogOut"
+      class="dialogOut people-style"
     >
       <div>
-        <el-form>
+        <el-form class="personnelInformation">
           <el-form-item label="离职时间" prop="logoutTime">
             <el-date-picker
               value-format="yyyy-MM-dd"
@@ -460,19 +461,33 @@
               :http-request="httpRequest"
               :before-upload="beforeAvatarUpload"
             >
+              <!-- <img v-if="logoutImg" :src="logoutImg" class="avatar" />
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i> -->
               <img v-if="logoutImg" :src="logoutImg" class="avatar" />
-              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+              <div v-else class="upload-icon">
+                <img src="@/assets/image/people/camera.svg" alt="">
+                <div class="el-upload__text">上传资料</div>
+              </div>
+              <span class="slot" v-show="logoutImg">
+                <i class="preview" @click.stop="handlePictureCardPreview(logoutImg)"></i>
+                <img class="close"  src="@/assets/image/people/close.png" alt="" @click.stop="handlePictureCardDelete('LZ_01')">
+                <div  class="bottomHandle">
+                  <img class="reset" src="@/assets/image/people/reset.png" alt="">
+                  <span class="title">点击重新上传</span>
+                </div>
+              </span>
             </el-upload>
           </el-form-item>
         </el-form>
       </div>
-      <span slot="footer">
+      <div class="footerHandle" style="text-align: right">
         <el-button type="primary" @click="handleSubOut">确定</el-button>
         <el-button @click="closeDialogOut">取消</el-button>
-      </span>
+      </div>
     </el-dialog>
 
     <personnelHistory ref="personnelHistory" ></personnelHistory>
+    <el-image-viewer v-if="showViewer" :on-close="closeViewer" :z-index="9999" :url-list="[ProViewImg]" />
   </div>
 </template>
 
@@ -495,7 +510,8 @@ export default {
     KtCommonTable,
     userDetail,
     peopleImage,
-    personnelHistory
+    personnelHistory,
+    "el-image-viewer": () => import("element-ui/packages/image/src/image-viewer")
   },
   mixins: [mixin],
   data() {
@@ -637,6 +653,8 @@ export default {
           click:(row)=>this.checkHistory(row)
         }
       ],
+      showViewer: false,
+      ProViewImg: null
     };
   },
   created() {
@@ -1140,7 +1158,23 @@ export default {
     async checkHistory(row){
       let userId = row.userId;
       this.$refs.personnelHistory.getHistory(userId);
-    }
+    },
+    handlePictureCardDelete(){
+      this.logoutImg = null;
+    },
+    //预览图片
+    handlePictureCardPreview(img) {
+      if(!img){
+        this.$message.error('暂无照片')
+        return 
+      }
+      this.ProViewImg = img;
+      this.showViewer = true;
+    },
+    // 关闭查看器
+    closeViewer() {
+      this.showViewer = false;
+    },
   },
 };
 </script>
@@ -1412,4 +1446,126 @@ export default {
     }
   }
 }
+.dialogOut{
+  .el-form{
+    padding-top: 10px !important;
+  }
+  .el-form-item{
+    display: flex;
+    align-items: center;
+    >>>.el-form-item__label{
+      padding-bottom: 0 !important;
+    }
+    >>>.el-date-editor{
+      .el-input__prefix{
+        top: 12px !important;
+      }
+    }
+  }
+  .footerHandle{
+    padding: 8px 20px;
+  }
+  .upload-icon {
+    width: 208px;
+    height: 130px;
+    background: #f9f9f9;
+    border: 1px solid #eee;
+    border-radius: 4px;
+    box-sizing: border-box;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+  }
+  .el-upload__text {
+    line-height: 20px;
+    margin-top: 7px;
+    color: #999;
+  }
+  .el-upload--picture-card:hover, .el-upload:focus{
+    color: #333;
+  }
+  .upload-icon:hover {
+    /* border: 1px dashed #2D4D89; */
+    border-color: #D42426;
+    /* color: #D42426; */
+    transition: all ease 1s;
+  }
+  .avatar {
+    border: 1px solid #eee;
+    padding: 0px;
+    border-radius: 6px;
+    width: 207px;
+    height: 130px;
+    display: block;
+    object-fit: cover;
+    border-radius: 4px;
+  }
+  /* 上传图片样式End */
+  .slot {
+    position: absolute;
+    width: 208px;
+    height: 130px;
+    left: 2px;
+    top: 2px;
+    border-radius: 4px;
+    cursor: default;
+    text-align: center;
+    color: #fff;
+    opacity: 1;
+    font-size: 20px;
+    /* background-color: rgba(0, 0, 0, 0.5); */
+    transition: opacity 0.3s;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+  }
+
+  .close{
+    width: 12px;
+    height: 12px;
+    position: absolute;
+    top: -1px;
+    right: 0;
+    cursor: pointer;
+  }
+  .preview{
+    width: 208px;
+    height: calc(130px - 24px);
+  }
+  .bottomHandle{
+    width: 208px;
+    height: 24px;
+    line-height: 20px;
+    background: url('~@/assets/image/people/bottomFrame.png') no-repeat;
+    position: absolute;
+    bottom: 0;
+    left: -1px;
+    cursor: pointer;
+  }
+  .reset{
+    width: 10px;
+    height: 10px
+  }
+  .bottomHandle>.title{
+    font-size: 12px;
+    color: #fff;
+    padding: 0;
+  }
+  .slot>i {
+    /* margin: 10px; */
+    /* color: #fff; */
+    /* font-size: 25px; */
+    /* font-weight: bold; */
+  }
+
+  .slot:hover {
+    opacity: 1;
+  }
+  .title{
+    font-size: 16px;
+    color: #333;
+    padding-bottom: 10px;
+  }
+}
 </style>

+ 425 - 0
src/views/ProductManage/OtherInsurance/DrivingConfig.vue

@@ -0,0 +1,425 @@
+<template>
+  <div>
+    <!-- 查询条件 -->
+    <el-form ref="queryPage" :model="queryPage" label-width="80px" inline>
+      <el-form-item label="保险公司">
+        <el-select v-model="queryPage.companyId" filterable clearable placeholder="请选择保险公司" size="small">
+          <el-option :label="item.name" :value="item.id" v-for="(item, index) in companyList" :key="index" />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="产品名称">
+        <el-input size="small" clearable v-model="queryPage.projectName"></el-input>
+      </el-form-item>
+      <el-form-item label="座位数">
+        <el-input size="small" clearable type="number" v-model="queryPage.seatNum"></el-input>
+      </el-form-item>
+      <el-form-item>
+        <el-button @click="reset" size="small">重置</el-button>
+        <el-button type="primary" @click="getList('search')" size="small">查询</el-button>
+        <el-button type="primary" @click="handleClickAdd('add')" size="small">新增</el-button>
+      </el-form-item>
+    </el-form>
+    <!-- 列表 -->
+    <el-table :data="tableData" style="width: 100%;margin-bottom: 20px;" row-key="id" border :default-expand-all="false"
+      :tree-props="{children: 'insDrivingIntentionInsurances'}">
+      <el-table-column prop="companyName" label="保险公司" align="center" width="250px"></el-table-column>
+      <el-table-column prop="companyId" label="保险公司ID" align="center"></el-table-column>
+      <el-table-column prop="projectName" label="产品名称" align="center" width="250px"></el-table-column>
+      <el-table-column prop="projectCode" label="产品Code" align="center" width="150px"></el-table-column>
+      <el-table-column prop="riskCode" label="附加Code" align="center" width="150px"></el-table-column>
+      <el-table-column prop="seatNum" label="座位数" align="center"></el-table-column>
+      <el-table-column prop="sumAmount" label="总保额" align="center"></el-table-column>
+      <el-table-column prop="sumPremium" label="总保费" align="center"></el-table-column>
+      <el-table-column prop="apiType" label="对接类型" align="center">
+        <template slot-scope="scope">
+          <span>{{ scope.row.apiType == 1 ? 'API对接' : scope.row.apiType == 2 ? 'Python对接' : scope.row.apiType }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" width="250px">
+        <template slot-scope="scope">
+          <el-button @click="handleClickEdit(scope.row)" type="primary" size="small">编辑</el-button>
+          <el-button v-if="!scope.row.insDrivingIntentionInsuranceSon.length" @click="handleClickAdd(scope.row)" type="primary" size="small">添加子项</el-button>
+          <el-button v-if="scope.row.insDrivingIntentionInsuranceSon.length" @click="handleClickDetail(scope.row)" type="primary" size="small">详情</el-button>
+          <el-button @click="handleClickDelete(scope.row)" type="primary" size="small">删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <!-- 分页 -->
+    <el-pagination @size-change="getList" @current-change="getList"
+      :current-page.sync="queryPage.pageNum" :page-sizes="[10, 20, 50, 100]" :page-size.sync="queryPage.pageSize"
+      layout="total, sizes, prev, pager, next, jumper" :total="total">
+    </el-pagination>
+
+    <!-- 新增 -->
+    <el-dialog :title="dialogType == 'edit' ? '编辑' : '新增'" :visible.sync="dialogVisibleAdd" width="50%" :before-close="handleCloseAdd">
+      <div>
+        <el-form ref="formAdd" :model="formDataAdd" label-width="80px" inline>
+          <el-form-item label="保险公司">
+            <el-select v-model="formDataAdd.companyId" filterable :disabled="companyDisabled" placeholder="请选择保险公司" size="small" style="width: 200px;">
+              <el-option :label="item.name" :value="item.id"  v-for="(item, index) in companyList" :key="index" />
+            </el-select>
+          </el-form-item>
+          <el-form-item label="父级产品">
+            <el-input size="small" v-model="parentName" disabled></el-input>
+          </el-form-item>
+          <el-form-item label="产品名称">
+            <el-input size="small" v-model="formDataAdd.projectName"></el-input>
+          </el-form-item>
+          <el-form-item label="产品Code">
+            <el-input size="small" v-model="formDataAdd.projectCode"></el-input>
+          </el-form-item>
+          <el-form-item label="附加Code">
+            <el-input size="small" v-model="formDataAdd.riskCode"></el-input>
+          </el-form-item>
+          <el-form-item label="座位数">
+            <el-input size="small" type="number" v-model="formDataAdd.seatNum"></el-input>
+          </el-form-item>
+          <el-form-item label="总保额">
+            <el-input size="small" v-model="formDataAdd.sumAmount"></el-input>
+          </el-form-item>
+          <el-form-item label="总保费">
+            <el-input size="small" v-model="formDataAdd.sumPremium"></el-input>
+          </el-form-item>
+          <el-form-item label="对接类型">
+            <!-- <el-input size="small" v-model="formDataAdd.apiType"></el-input> -->
+            <el-select v-model="formDataAdd.apiType" placeholder="请选择对接类型" size="small" style="width: 200px;">
+              <el-option label="API对接" :value="1" />
+              <el-option label="Python对接" :value="2" />
+            </el-select>
+          </el-form-item>
+        </el-form>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="handleCloseAdd">取 消</el-button>
+        <el-button size="small" type="primary" @click="subAddDialog('formAdd')">确 定</el-button>
+      </span>
+    </el-dialog>
+
+    <!-- 二级详情 -->
+    <el-dialog title="详情" :visible.sync="dialogDetail" width="50%" :before-close="handleCloseDetail">
+      <div>
+        <el-table :data="tableDataSon" style="width: 100%;margin-bottom: 20px;" row-key="id" border :default-expand-all="false">
+          <el-table-column prop="name" label="保险责任名称" align="center" width="200"></el-table-column>
+          <el-table-column prop="code" label="保险责任code" align="center"></el-table-column>
+          <el-table-column prop="amount" label="保险责任保费额度" align="center"></el-table-column>
+          <el-table-column prop="premium" label="保险责任金额" align="center"></el-table-column>
+          <el-table-column label="操作" align="center">
+            <template slot-scope="scope">
+              <el-button @click="handleClickDetailEdit(scope.row)" type="primary" size="small">编辑</el-button>
+              <el-button @click="handleClickDeleteDetail(scope.row)" type="primary" size="small">删除</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" type="primary" @click="handleClickDetailEdit('add')">添 加</el-button>
+        <el-button size="small" @click="handleCloseDetail">关 闭</el-button>
+      </span>
+    </el-dialog>
+
+    <!-- 二级新增 -->
+    <el-dialog :title="dialogType == 'edit' ? '编辑' : '新增'" :visible.sync="dialogDetailAdd" width="50%" :before-close="handleCloseDetailAdd">
+      <div>
+        <el-form ref="detailData" :model="detailData" label-width="180px" inline>
+          <el-form-item label="保险公司">
+            <el-select v-model="detailData.companyId" filterable disabled placeholder="请选择保险公司" size="small" style="width: 200px;">
+              <el-option :label="item.name" :value="item.id"  v-for="(item, index) in companyList" :key="index" />
+            </el-select>
+          </el-form-item>
+          <el-form-item label="保险责任名称">
+            <el-input size="small" v-model="detailData.name"></el-input>
+          </el-form-item>
+          <el-form-item label="保险责任code">
+            <el-input size="small" v-model="detailData.code"></el-input>
+          </el-form-item>
+          <el-form-item label="保险责任保费额度">
+            <el-input size="small" v-model="detailData.amount"></el-input>
+          </el-form-item>
+          <el-form-item label="保险责任金额">
+            <el-input size="small" v-model="detailData.premium"></el-input>
+          </el-form-item>
+        </el-form>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="handleCloseDetailAdd">取 消</el-button>
+        <el-button size="small" type="primary" @click="subAddDetailDialog('detailData')">确 定</el-button>
+      </span>
+    </el-dialog>
+
+  </div>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      tableData: [],
+      // 查询参数
+      queryPage: {
+        pageNum: 1,
+        pageSize: 10,
+        companyId: undefined,
+        projectName: undefined,
+        seatNum: undefined,
+      },
+      total: 0,
+      editInfo: {},   // 编辑详情
+      showEditDialog: false,
+      dialogVisibleAdd: false,  // 新增弹窗
+      // 新增数据
+      formDataAdd: {
+        parentId: '0',
+        type: 2,    // 默认每次传2
+        companyId: '',
+        projectName: '',
+        projectCode: '',
+        riskCode: '',
+        seatNum: '',
+        sumAmount: '',
+        sumPremium: '',
+        requestData: '',
+        apiType: ''   // 1api对接 2python对接
+      },
+      // 保险公司列表
+      companyList: [],
+      companyDisabled: false,
+      parentName: '无父级',
+      dialogType: 'edit',
+      dialogDetail: false,    // 二级详情弹窗
+      tableDataSon: [],     // 二级详情列表
+      detailData: {
+        companyId: '',
+        drivingCodeId: '',
+        code: '',
+        name: '',
+        amount: '',
+        premium: ''
+      },       // 二级编辑详情
+      dialogDetailAdd: false,   // 二级详情编辑弹窗
+    }
+  },
+  created() {
+    this.getCompanyList()   // 保险公司列表
+    this.getList()
+  },
+  methods: {
+    handleClickDeleteDetail(row) {
+      this.$confirm('确定删除?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        this.$api.product.deleteDrivingSon({
+          sonId: row.sonId
+        }).then((res) => {
+          if (res.code == 200) {
+            this.$message.success(res.msg)
+            this.getList()
+            this.handleCloseDetail()
+          } else {
+            this.$message.error(res.msg)
+          }
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消删除'
+        });          
+      });
+    },
+    // 删除
+    handleClickDelete(row) {
+      this.$confirm('确定删除?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        this.$api.product.deleteDriving({
+          id: row.id,
+          projectCode: row.projectCode
+        }).then((res) => {
+          if (res.code == 200) {
+            this.getList()
+            this.$message.success(res.msg)
+          } else {
+            this.$message.error(res.msg)
+          }
+        })
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消删除'
+        });          
+      });
+    },
+    // 确定编辑详情
+    subAddDetailDialog() {
+      if (this.dialogType == 'add') {
+        // 新增
+        this.$api.product.addDrivingSon(this.detailData).then((res) => {
+          if (res.code == 200) {
+            this.$message.success(res.msg)
+            this.getList()
+            this.handleCloseDetailAdd()
+            this.handleCloseDetail()
+          }
+        })
+      } else {
+        // 编辑
+        this.$api.product.updateDrivingSon(this.detailData).then((res) => {
+          if (res.code == 200) {
+            this.$message.success(res.msg)
+            this.getList()
+            this.handleCloseDetailAdd()
+            this.handleCloseDetail()
+          }
+        })
+      }
+    },
+    // 编辑详情
+    handleClickDetailEdit(row) {
+      if (row != 'add') {
+        this.dialogType = 'edit'
+        this.detailData.sonId = row.sonId
+        this.detailData.name = row.name
+        this.detailData.code = row.code
+        this.detailData.amount = row.amount
+        this.detailData.premium = row.premium
+      } else {
+        this.dialogType = 'add'
+      }
+      this.dialogDetailAdd = true
+    },
+    // 关闭编辑详情
+    handleCloseDetailAdd() {
+      this.dialogDetailAdd = false
+      this.detailData.sonId = undefined
+      this.detailData.name = undefined
+      this.detailData.code = undefined
+      this.detailData.amount = undefined
+      this.detailData.premium = undefined
+    },
+    // 点击详情
+    handleClickDetail(row) {
+      this.tableDataSon = row.insDrivingIntentionInsuranceSon
+      this.detailData.companyId = row.companyId
+      this.detailData.drivingCodeId = row.projectCode
+      this.dialogDetail = true
+    },
+    handleCloseDetail() {
+      this.dialogDetail = false
+      this.tableDataSon = []
+    },
+    // 获取公司列表
+    getCompanyList() {
+      this.$api.product.getCompany({
+        name: '',
+        type: '',
+      }).then((res) => {
+        this.companyList = res.data
+      })
+    },
+    // 获取列表信息
+    getList(type) {
+      if (type == 'search') {
+        this.queryPage.pageNum = 1
+        this.queryPage.pageSize = 10
+      }
+      this.$api.product.getDrivingInfo(this.queryPage).then((res) => {
+        if (res.code == 200) {
+          this.tableData = res.data.records
+          this.total = res.data.total
+        }
+      })
+    },
+    // 重置
+    reset() {
+      this.queryPage = {
+        companyId: undefined,
+        projectName: undefined,
+        seatNum: undefined,
+      }
+      this.getList('search')
+    },
+    // 编辑
+    handleClickEdit(row) {
+      this.parentName = row.projectName
+      this.dialogType = 'edit'
+      this.formDataAdd = {
+        id: row.id,
+        parentId: row.parentId,
+        type: 2,    // 默认每次传2
+        companyId: row.companyId,
+        projectName: row.projectName,
+        projectCode: row.projectCode,
+        riskCode: row.riskCode,
+        seatNum: row.seatNum,
+        sumAmount: row.sumAmount,
+        sumPremium: row.sumPremium,
+        requestData: row.requestData || '',
+        apiType: row.apiType   // 1api对接 2python对接
+      }
+      this.dialogVisibleAdd = true
+    },
+    // 新增
+    handleClickAdd(row) {
+      this.dialogType = 'add'
+      if (row != 'add') {
+        this.formDataAdd.companyId = row.companyId
+        this.formDataAdd.parentId = row.id
+
+        this.companyDisabled = true
+        this.parentName = row.projectName
+      } else {
+        this.companyDisabled = false
+        this.parentName = '无父级'
+      }
+      this.dialogVisibleAdd = true
+    },
+    // 提交新增
+    subAddDialog(formName) {
+      if (this.dialogType == 'add') {
+        // 新增
+        this.$api.product.addDriving(this.formDataAdd).then((res) => {
+          if (res.code == 200) {
+            this.$message.success(res.msg)
+            this.getList()
+            this.handleCloseAdd()
+          }
+        })
+      } else {
+        // 编辑
+        this.$api.product.updateDriving(this.formDataAdd).then((res) => {
+          if (res.code == 200) {
+            this.$message.success(res.msg)
+            this.getList()
+            this.handleCloseAdd()
+          }
+        })
+      }
+      
+    },
+    // 关闭新增
+    handleCloseAdd() {
+      this.dialogVisibleAdd = false
+      this.formDataAdd = {
+        parentId: '0',
+        type: 2,    // 默认每次传2
+        companyId: '',
+        projectName: '',
+        projectCode: '',
+        riskCode: '',
+        seatNum: '',
+        sumAmount: '',
+        sumPremium: '',
+        requestData: '',
+        apiType: ''   // 1api对接 2python对接
+      }
+    },
+  },
+}
+</script>
+
+<style>
+
+</style>

+ 171 - 145
src/views/Task/daikeComponents/KtLetter1.vue

@@ -986,6 +986,7 @@
                   <div class="card-xianzhong">
                     <div>已选险种</div>
                   <div class="card-btn" v-show="reslistitem.programme.description">{{ reslistitem.programme.description }}</div>
+                  <!-- <div v-if="reslistitem.quoteCode == '200' && reslistitem.result.orderstatus">{{ reslistitem.result.orderstatus | cap }}</div> -->
                   </div>
                 </el-col>
 
@@ -1374,6 +1375,7 @@
                       <el-button :disabled="reslistitem.namesimple == '众安财险' &&
                         reslistitem.result.tips == '需要验车'
                         " v-show="reslistitem.quoteCode == '200' &&
+                          !hbcg &&
                         !('editStatus' in reslistitem.result)
                         " type="text" size="small" style="color: #2d4d89; font-size: 14px"
                         @click="hbsubmitdialog(reslistitem, reslistindex)">下单</el-button>
@@ -5556,6 +5558,7 @@ export default {
       showLoading: false,
       detailJiaYiTitle: '查看详情',
       oldData: {},    // 旧获取公司参数
+      hbcg: false,
     };
   },
   watch: {
@@ -5777,6 +5780,7 @@ export default {
     },
     // 获取新公司列表
     getCompanyList(data) {
+      var _this = this;
       if (!this.productId) {
         this.$message.warning('请选择险种')
         return
@@ -5788,149 +5792,160 @@ export default {
         return;
       }
       console.log(this.policyHolderInfo, 'policyHolderInfo')
-      this.policyHolderInfovalidate();
-      this.$refs["carInfo"].validate((valid) => {
-        if (valid) {
-          var _this = this;
-          // this.policyHolderInfovalidate()
-          _this.$refs["ownerInfo"].validate(async (valid1) => {
-            if (valid1) {
-              if (!_this.productId) {
-                _this.$message.warning('请选择险别')
-                return
-              }
-              // tbczcarShow: true, //投保人同车主
-              // bbczcarShow: false, //被保人同车主
-              // bbtbcarShow: true, //被保人同投保人
-              // ownerInfo    车主
-              // policyHolderInfo   投保人
-              // insuredPersonInfo  被保人
-
-              if (_this.bbtbcarShow == true) {
-                _this.insuredPersonInfo = JSON.parse(
-                  JSON.stringify(_this.policyHolderInfo)
-                );
-              } else if (_this.bbczcarShow == true) {
-                _this.insuredPersonInfo = JSON.parse(
-                  JSON.stringify(_this.ownerInfo)
-                );
-              } else {
-                // _this.insuredPersonInfo = {}
-              }
-
-              if (this.tbczcarShow == true) {
-                this.policyHolderInfo = JSON.parse(
-                  JSON.stringify(_this.ownerInfo)
-                );
-              } else {
-                // this.policyHolderInfo = {}
-              }
+      // this.policyHolderInfovalidate();
+
+      this.$refs["insuredPersonInfo"].validate((valid11) => {
+          if (valid11) {
+            this.$refs["carInfo"].validate((valid) => {
+              if (valid) {
+                // this.policyHolderInfovalidate()
+                _this.$refs["ownerInfo"].validate(async (valid1) => {
+                  if (valid1) {
+                    if (!_this.productId) {
+                      _this.$message.warning('请选择险别')
+                      return
+                    }
+                    // tbczcarShow: true, //投保人同车主
+                    // bbczcarShow: false, //被保人同车主
+                    // bbtbcarShow: true, //被保人同投保人
+                    // ownerInfo    车主
+                    // policyHolderInfo   投保人
+                    // insuredPersonInfo  被保人
+
+                    if (_this.bbtbcarShow == true) {
+                      _this.insuredPersonInfo = JSON.parse(
+                        JSON.stringify(_this.policyHolderInfo)
+                      );
+                    } else if (_this.bbczcarShow == true) {
+                      _this.insuredPersonInfo = JSON.parse(
+                        JSON.stringify(_this.ownerInfo)
+                      );
+                    } else {
+                      // _this.insuredPersonInfo = {}
+                    }
 
-              let res = {};
-              // res = await this.$api.letter.getAllAgreement();
-              // this.$api.letter.getAllAgreement().then((res) => {
-              // oldData
-              let param = {
-                productId: this.productId,
-                carInfo: this.carInfo,
-                ownerInfo: this.ownerInfo,
-                applyInfo: this.policyHolderInfo,
-                insureInfo: this.insuredPersonInfo,
-                userId:this.isLetter==2? this.userId:""
-              }
-              if (JSON.stringify(param) === this.oldData) {
-                return
-              } else {
-                this.oldData = JSON.stringify(param) 
-              }
-              console.log('校验成功,获取列表')
-              this.showLoading = true
-              this.$api.letter.ruleFilterCompany(param).then((res) => {
-                if (res.code == 200) {
-                  res.data.map((ele) => {
-                    ele["result"] = {};
-                    ele["quoteCode"] = 0;
-                    ele["checked"] = false;
-                    ele["msg"] = "";
-                    ele["lastYearMsg"] = "";
-                    ele["agreementId"] = "";
-                    ele["apiType"] = "";
-                    ele["orderstatus"] = 0;
-                    ele.coefficient = "";
-                    ele.underwritingDescription =
-                      ele.agreement[0].underwritingDescription;
-                    if (ele.isTaxSource && ele.isTaxSource == "1" && ele.agreement) {
-                      ele.agreement.forEach((val) => {
-                        if (val.isTaxSource && val.isTaxSource == "1") {
-                          ele.agreementId = val.id;
-                          ele.apiType = val.apiType;
-                        }
-                      });
+                    if (this.tbczcarShow == true) {
+                      this.policyHolderInfo = JSON.parse(
+                        JSON.stringify(_this.ownerInfo)
+                      );
+                    } else {
+                      // this.policyHolderInfo = {}
                     }
-                  });
 
-                  if (data) {
-                    this.productId = this.productId || data.productid
-                    res.data.forEach((val, index) => {
-                      if(!data.insAreaCompanyEditingDtos) {
-                        return
-                      }
-                      data.insAreaCompanyEditingDtos.forEach((ele) => {
-                        if (val.namesimple == ele.inscompany) {
-                          if (ele.inscompany == "中国人寿" && ele.companyId) {
-                            this.lastCompanyId = ele.companyId;
+                    let res = {};
+                    // res = await this.$api.letter.getAllAgreement();
+                    // this.$api.letter.getAllAgreement().then((res) => {
+                    // oldData
+                    let param = {
+                      productId: this.productId,
+                      carInfo: this.carInfo,
+                      ownerInfo: this.ownerInfo,
+                      applyInfo: this.policyHolderInfo,
+                      insureInfo: this.insuredPersonInfo,
+                      userId:this.isLetter==2? this.userId:""
+                    }
+                    if (JSON.stringify(param) === this.oldData) {
+                      return
+                    } else {
+                      this.oldData = JSON.stringify(param) 
+                    }
+                    console.log('校验成功,获取列表')
+                    this.showLoading = true
+                    this.$api.letter.ruleFilterCompany(param).then((res) => {
+                      if (res.code == 200) {
+                        res.data.map((ele) => {
+                          ele["result"] = {};
+                          ele["quoteCode"] = 0;
+                          ele["checked"] = false;
+                          ele["msg"] = "";
+                          ele["lastYearMsg"] = "";
+                          ele["agreementId"] = "";
+                          ele["apiType"] = "";
+                          ele["orderstatus"] = 0;
+                          ele.coefficient = "";
+                          ele.underwritingDescription =
+                            ele.agreement[0].underwritingDescription;
+                          if (ele.isTaxSource && ele.isTaxSource == "1" && ele.agreement) {
+                            ele.agreement.forEach((val) => {
+                              if (val.isTaxSource && val.isTaxSource == "1") {
+                                ele.agreementId = val.id;
+                                ele.apiType = val.apiType;
+                              }
+                            });
                           }
-                          res.data[index].quoteCode = 200;
-                          res.data[index].result = ele;
+                        });
+                        if (this.$route.query.data) {
+                          data = data || this.$route.query.data
+                        }
+                        if (data) {
+                          this.productId = this.productId || data.productid
+                          res.data.forEach((val, index) => {
+                            if(!data.insAreaCompanyEditingDtos) {
+                              return
+                            }
+                            data.insAreaCompanyEditingDtos.forEach((ele) => {
+                              if (val.namesimple == ele.inscompany) {
+                                if (ele.inscompany == "中国人寿" && ele.companyId) {
+                                  this.lastCompanyId = ele.companyId;
+                                }
+                                res.data[index].quoteCode = 200;
+                                res.data[index].result = ele;
+                              }
+                            });
+                          });
                         }
+                        // //险种合并集合
+                      } else {
+                        this.$message.error(res.msg)
+                      }
+                      const combinedArray = [
+                        ...this.riskList.map(item => item.riskCode),
+                        ...this.kindList.map(item => item.kindCode),
+                      ];
+                      if (res.data) {
+                        res.data = res.data.filter(obj => {
+                        obj.agreement = obj.agreement.filter(agreementObj => {
+                          // 险种配置为空,则过滤掉该协议
+                          if (agreementObj.productsCodes == null) {
+                            return true;
+                          } else {
+                            // 检查是否包含 A 的特殊处理
+                            if (combinedArray.includes('A') && !agreementObj.productsCodes.includes(
+                                'A')) {
+                              return false;
+                            }
+                            return agreementObj.productsCodes.some(item => combinedArray.includes(
+                              item));
+                          }
+                        });
+                        return obj.agreement.length > 0; // 返回true保留,返回false移除该保险公司
+                      });
+                        res.data.forEach((e) => {
+                        e.agreement.forEach((el) => (el.disabled = false));
                       });
-                    });
-                  }
-                  // //险种合并集合
-                } else {
-                  this.$message.error(res.msg)
-                }
-                const combinedArray = [
-                  ...this.riskList.map(item => item.riskCode),
-                  ...this.kindList.map(item => item.kindCode),
-                ];
-                if (res.data) {
-                  res.data = res.data.filter(obj => {
-                  obj.agreement = obj.agreement.filter(agreementObj => {
-                    // 险种配置为空,则过滤掉该协议
-                    if (agreementObj.productsCodes == null) {
-                      return true;
-                    } else {
-                      // 检查是否包含 A 的特殊处理
-                      if (combinedArray.includes('A') && !agreementObj.productsCodes.includes(
-                          'A')) {
-                        return false;
                       }
-                      return agreementObj.productsCodes.some(item => combinedArray.includes(
-                        item));
-                    }
-                  });
-                  return obj.agreement.length > 0; // 返回true保留,返回false移除该保险公司
-                });
-                  res.data.forEach((e) => {
-                  e.agreement.forEach((el) => (el.disabled = false));
+                      this.totalCompanyList = res.data;
+                      this.showLoading = false
+                    })
+                  } else {
+                    document.getElementById("CheZhu").scrollIntoView();
+                    _this.$message({ message: "请检查人员信息", type: "warning" });
+                  }
                 });
-                }
-                this.totalCompanyList = res.data;
-                this.showLoading = false
-              })
-            } else {
-              document.getElementById("CheZhu").scrollIntoView();
-              _this.$message({ message: "请检查人员信息", type: "warning" });
-            }
-          });
-        } else {
-          document.getElementById("Car").scrollIntoView();
-          this.$message({ message: "请检查车辆信息", type: "warning" });
-          return false;
-        }
-      });
-    },
+              } else {
+                document.getElementById("Car").scrollIntoView();
+                this.$message({ message: "请检查车辆信息", type: "warning" });
+                return false;
+              }
+            });
+          } else {
+            console.log(3333333333333)
+            document.getElementById("toubaor").scrollIntoView();
+            _this.$message({ message: "请检查投保人信息", type: "warning" });
+          }
+        });
+
+      },
     // 保费计算(报价)按钮
     handleListJisuan(item, index) {
       this.quote(index)
@@ -9937,6 +9952,7 @@ export default {
               if (namesimple == "中国人寿" && res.data.companyId) {
                 this.lastCompanyId = res.data.companyId;
               }
+              console.log(res.data, 'res.data111111111111111111111111111')
               this.QuotationHistory();
             } else {
               this.totalCompanyList[num].quoteCode = "3";
@@ -10509,6 +10525,7 @@ export default {
                           message: "核保成功",
                           type: "success",
                         });
+                        this.hbcg = true
                         this.QuotationHistory();
                         _this.$api.letter
                           .getByCompanyId({ companyId: this.companyId })
@@ -10565,7 +10582,8 @@ export default {
                               message: "核保成功",
                               type: "success",
                             });
-                            this.QuotationHistory();
+                        this.hbcg = true
+                        this.QuotationHistory();
                             _this.$api.letter
                               .getByCompanyId({ companyId: this.companyId })
                               .then((res) => {
@@ -10643,6 +10661,7 @@ export default {
                           message: "核保成功",
                           type: "success",
                         });
+                        this.hbcg = true
                         this.QuotationHistory();
                         _this.$api.letter
                           .getByCompanyId({ companyId: this.companyId })
@@ -10704,7 +10723,8 @@ export default {
                               message: "核保成功",
                               type: "success",
                             });
-                            this.QuotationHistory();
+                        this.hbcg = true
+                        this.QuotationHistory();
                             _this.$api.letter
                               .getByCompanyId({ companyId: this.companyId })
                               .then((res) => {
@@ -10771,7 +10791,8 @@ export default {
                               message: "核保成功",
                               type: "success",
                             });
-                            this.QuotationHistory();
+                        this.hbcg = true
+                        this.QuotationHistory();
                             _this.$api.letter
                               .getByCompanyId({ companyId: this.companyId })
                               .then((res) => {
@@ -10828,7 +10849,8 @@ export default {
                               message: "核保成功",
                               type: "success",
                             });
-                            this.QuotationHistory();
+                        this.hbcg = true
+                        this.QuotationHistory();
                             _this.$api.letter
                               .getByCompanyId({ companyId: this.companyId })
                               .then((res) => {
@@ -10894,6 +10916,7 @@ export default {
                           message: "核保成功",
                           type: "success",
                         });
+                        this.hbcg = true
                         this.QuotationHistory();
                         _this.$api.letter
                           .getByCompanyId({ companyId: this.companyId })
@@ -10955,7 +10978,8 @@ export default {
                               message: "核保成功",
                               type: "success",
                             });
-                            this.QuotationHistory();
+                        this.hbcg = true
+                        this.QuotationHistory();
                             _this.$api.letter
                               .getByCompanyId({ companyId: this.companyId })
                               .then((res) => {
@@ -11022,6 +11046,7 @@ export default {
                           message: "核保成功",
                           type: "success",
                         });
+                        this.hbcg = true
                         this.QuotationHistory();
                         _this.$api.letter
                           .getByCompanyId({ companyId: this.companyId })
@@ -11079,7 +11104,8 @@ export default {
                               message: "核保成功",
                               type: "success",
                             });
-                            this.QuotationHistory();
+                        this.hbcg = true
+                        this.QuotationHistory();
                             _this.$api.letter
                               .getByCompanyId({ companyId: this.companyId })
                               .then((res) => {
@@ -11834,10 +11860,10 @@ export default {
       });
     },
     CarOCRdiscern() {
-      if (!this.CarFrontFile || !this.CarBackFile) {
-        this.$message.warning('请上传行驶证主页和副页')
-        return
-      }
+      // if (!this.CarFrontFile || !this.CarBackFile) {
+      //   this.$message.warning('请上传行驶证主页和副页')
+      //   return
+      // }
       //car识别
       const loading = this.$loading({
         lock: true,