From 08603217557de17520ae5c81a30a6ba0a362f30f Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期四, 01 二月 2024 19:21:05 +0800
Subject: [PATCH] Mr.Shi

---
 company/src/views/business/switchCourt.vue                           |    2 
 company/src/components/enterprise/additionSubtractionApplication.vue |    7 
 company/src/components/enterprise/factoryChange.vue                  |    6 
 company/src/api/business/applyChange.js                              |    5 
 company/src/components/business/OperaApplyChangeDetailWindow.vue     |   25 
 company/src/components/enterprise/reinsurance.vue                    |  594 +++++++++++++++++++++++++
 company/src/components/enterprise/confirmJobType.vue                 |    2 
 company/src/components/enterprise/add_subtract_return.vue            |   72 +++
 company/src/views/enterprise/add_subtract.vue                        |    7 
 company/src/components/business/OperaApplyChangeUnitDetailWindow.vue |   45 +
 company/src/components/enterprise/editFactoryChange.vue              |  501 +++++++++++++++++++++
 company/src/views/enterprise/switchCourt.vue                         |  111 ++--
 12 files changed, 1,295 insertions(+), 82 deletions(-)

diff --git a/company/src/api/business/applyChange.js b/company/src/api/business/applyChange.js
index 7f34754..de60e43 100644
--- a/company/src/api/business/applyChange.js
+++ b/company/src/api/business/applyChange.js
@@ -36,3 +36,8 @@
 export function applyChagneDetailList (data) {
     return request.post('/business/applyChagneDetail/list', data)
 }
+
+// 淇敼
+export function update (data) {
+    return request.post('/business/applyChange/update', data)
+}
diff --git a/company/src/components/business/OperaApplyChangeDetailWindow.vue b/company/src/components/business/OperaApplyChangeDetailWindow.vue
index a1b5c61..78a0233 100644
--- a/company/src/components/business/OperaApplyChangeDetailWindow.vue
+++ b/company/src/components/business/OperaApplyChangeDetailWindow.vue
@@ -12,21 +12,21 @@
                     <div class="desc_item_label_left">
                         <span>鎶曚繚浼佷笟锛歿{ apply.companyName }}</span>
                       <span v-if="model.status === 0">淇濆崟鐘舵�侊細寰呯缃�</span>
-                      <span v-if="model.status === 1">淇濆崟鐘舵�侊細宸茬绔�</span>
+                      <span v-if="model.status === 1">淇濆崟鐘舵�侊細寰呭鏍�</span>
                       <span v-if="model.status === 2">淇濆崟鐘舵�侊細宸蹭笂浼犳壒鍗�</span>
                       <span v-if="model.status === 3 || model.status === 4">淇濆崟鐘舵�侊細閫�鍥炵敵璇�</span>
                       <span v-if="model.status === 5 || model.status === 8">淇濆崟鐘舵�侊細宸查��鍥�</span>
-                      <span v-if="model.status ===7">淇濆崟鐘舵�侊細宸插叧闂�</span>
+                      <span v-if="model.status === 7 || model.status === 6">淇濆崟鐘舵�侊細宸插叧闂�</span>
                         <span>鎻愪氦鏃堕棿锛歿{ model.createDate }}</span>
                     </div>
                   <div class="desc_item_label_right">
                       <template v-if="userInfo.type === 1">
                           <el-button type="primary" @click="$refs.ApplyChangeDetails.open('鍔犲噺淇濊鍗�',apply,model)">瀵煎嚭璇﹀崟</el-button>
-                          <el-button v-if="[5, 8].includes(model.status)" type="primary" @click="$refs.additionSubtractionApplication.open('鍔犲噺淇濈敵璇�', {id: dataId})">鍐嶆鎶曚繚</el-button>
+                          <el-button v-if="[5, 8].includes(model.status)" type="primary" @click="$refs.reinsurance.open('鍔犲噺淇濈敵璇�', {id: dataId, applyChangId: modelId})">鍐嶆鎶曚繚</el-button>
                           <el-button type="primary" v-if="model.status == 0" @click="goSign">绛剧讲鐢宠鍗�</el-button>
-                          <el-button v-if="[2, 3, 7].includes(model.status)" type="primary">鐢宠閫�鍥�</el-button>
+                          <el-button v-if="[0, 1, 2, 3, 7].includes(model.status)" type="primary" @click="$refs.add_subtract_return.open('鐢宠閫�鍥�', { id: modelId })">鐢宠閫�鍥�</el-button>
                           <el-button v-if="model.status == 5" type="primary" @click="viewApplyFile">鏌ョ湅鐢宠鍗�</el-button>
-                          <el-button v-if="model.status == 5" type="primary" @click="viewPidan">鏌ョ湅鎵瑰崟</el-button>
+                          <el-button v-if="model.status == 2" type="primary" @click="viewPidan">鏌ョ湅鎵瑰崟</el-button>
                           <el-button v-if="[5, 8].includes(model.status)" type="primary" @click="closeOrder">鍏抽棴璁㈠崟</el-button>
                       </template>
                         <template v-else>
@@ -180,11 +180,12 @@
         <ApplyChangeDetails ref="ApplyChangeDetails" @success="successEvent" />
         <OperaApplyChangeCheckWindow ref="OperaApplyChangeCheckWindow" @success="successEvent" />
         <!--    浼佷笟鐢宠閫�鍥�    -->
-        <applyReturn ref="applyReturn" @success="successEvent" />
+<!--        <applyReturn ref="applyReturn" @success="successEvent" />-->
+        <add_subtract_return ref="add_subtract_return" @success="successEvent" />
         <!--    鏂板鎶曚繚    -->
         <OperaInsuranceApply ref="OperaInsuranceApply" @success="successEvent" />
         <!--    鍔犲噺淇濈敵璇�    -->
-        <additionSubtractionApplication ref="additionSubtractionApplication" @success="successEvent" />
+        <reinsurance ref="reinsurance" @success="successEvent" />
         <!--    鎹㈠巶鐢宠    -->
         <factoryChange ref="factoryChange" @success="successEvent" />
     </GlobalWindow>
@@ -195,9 +196,9 @@
 import GlobalWindow from '@/components/common/GlobalWindow'
 import ApplyChangeDetails from '@/components/business/ApplyChangeDetails'
 import OperaApplyChangeCheckWindow from '@/components/business/OperaApplyChangeCheckWindow'
-import additionSubtractionApplication from '@/components/enterprise/additionSubtractionApplication'
+import reinsurance from '@/components/enterprise/reinsurance'
 import factoryChange from '@/components/enterprise/factoryChange'
-import applyReturn from '@/components/enterprise/applyReturn'
+import add_subtract_return from '@/components/enterprise/add_subtract_return'
 import {
   getDetail,
   getChangeDetail,
@@ -215,9 +216,9 @@
       GlobalWindow,
       ApplyChangeDetails,
       OperaApplyChangeCheckWindow,
-      applyReturn,
+      add_subtract_return,
       OperaInsuranceApply,
-      additionSubtractionApplication,
+      reinsurance,
       factoryChange
   },
   data () {
@@ -273,7 +274,7 @@
             this.search()
       },
       closeOrder() {
-          this.$confirm('纭鍏抽棴娆′繚鍗曞悧?', '鎻愮ず', {
+          this.$confirm('纭鍏抽棴姝よ鍗曞悧?', '鎻愮ず', {
               confirmButtonText: '纭畾',
               cancelButtonText: '鍙栨秷',
               type: 'warning'
diff --git a/company/src/components/business/OperaApplyChangeUnitDetailWindow.vue b/company/src/components/business/OperaApplyChangeUnitDetailWindow.vue
index dffd29c..58d893e 100644
--- a/company/src/components/business/OperaApplyChangeUnitDetailWindow.vue
+++ b/company/src/components/business/OperaApplyChangeUnitDetailWindow.vue
@@ -12,7 +12,7 @@
                     <div class="desc_item_label_left">
                         <span>鎶曚繚浼佷笟锛歿{ apply.companyName }}</span>
                       <span v-if="model.status === 0">淇濆崟鐘舵�侊細寰呯缃�</span>
-                      <span v-if="model.status === 1">淇濆崟鐘舵�侊細宸茬绔�</span>
+                      <span v-if="model.status === 1">淇濆崟鐘舵�侊細寰呭鏍�</span>
                       <span v-if="model.status === 2">淇濆崟鐘舵�侊細宸蹭笂浼犳壒鍗�</span>
                       <span v-if="model.status === 3 || model.status === 4">淇濆崟鐘舵�侊細閫�鍥炵敵璇�</span>
                       <span v-if="model.status ===5 || model.status === 8">淇濆崟鐘舵�侊細宸查��鍥�</span>
@@ -21,13 +21,14 @@
                     </div>
                   <div class="desc_item_label_right">
                       <template v-if="userInfo.type === 1">
-                          <el-button v-if="[0, 2, 3, 10].includes(model.status)" type="danger" @click="$refs.applyReturn.open('鐢宠閫�鍥�', {id: dataId})">鐢宠閫�鍥�</el-button>
-                          <el-button v-if="model.status == 4" type="primary" @click="$refs.OperaInsuranceApply.open('鎶曚繚鐢宠', {id: dataId})">鍐嶆鎶曚繚</el-button>
-                          <el-button type="primary" @click="$refs.InsuranceDetails.open('鎶曚繚璇︽儏鍗�',model,0)">绛剧讲鐢宠鍗�</el-button>
-                          <el-button v-if="[2, 3, 5, 7, 8].includes(model.status)" type="primary" @click="viewToubaodan">鐢宠閫�鍥�</el-button>
-                          <el-button v-if="model.status == 5" type="primary" @click="viewBaoxiandan">鏌ョ湅鐢宠鍗�</el-button>
-                          <el-button v-if="model.status == 5" type="primary" @click="viewBaoxiandan">鏌ョ湅鎵瑰崟</el-button>
-                          <el-button v-if="model.status == 2" type="primary" @click="goSign">鍏抽棴璁㈠崟</el-button>
+                          <el-button type="primary" @click="$refs.ApplyChangeDetails.open('鎹㈠巶鐢宠璇﹀崟',apply,model)">瀵煎嚭璇﹀崟</el-button>
+<!--                          <el-button v-if="[0, 2, 3, 10].includes(model.status)" type="danger" @click="$refs.applyReturn.open('鐢宠閫�鍥�', {id: dataId})">鐢宠閫�鍥�</el-button>-->
+                          <el-button v-if="[5, 8].includes(model.status)" type="primary" @click="$refs.editFactoryChange.open('鎹㈠巶鐢宠', {id: dataId, applyChangId: modelId})">鍐嶆鎶曚繚</el-button>
+                          <el-button type="primary" v-if="model.status == 0"   @click="goSign">绛剧讲鐢宠鍗�</el-button>
+                          <el-button v-if="[0, 1, 2, 3, 7].includes(model.status)" type="primary" @click="$refs.add_subtract_return.open('鐢宠閫�鍥�', { id: modelId })">鐢宠閫�鍥�</el-button>
+                          <el-button v-if="model.status == 5" type="primary" @click="viewApplyFile">鏌ョ湅鐢宠鍗�</el-button>
+                          <el-button v-if="model.status == 5" type="primary" @click="viewPidan">鏌ョ湅鎵瑰崟</el-button>
+                          <el-button v-if="[5, 8].includes(model.status)" type="primary" @click="closeOrder">鍏抽棴璁㈠崟</el-button>
                       </template>
                         <template v-else>
                             <el-button type="primary" @click="$refs.ApplyChangeDetails.open('鎹㈠巶鐢宠璇﹀崟',apply,model)">瀵煎嚭璇﹀崟</el-button>
@@ -170,12 +171,15 @@
         <OperaApplyChangeUnitCheckWindow ref="OperaApplyChangeCheckWindow" @success="successEvent" />
         <!--    浼佷笟鐢宠閫�鍥�    -->
         <applyReturn ref="applyReturn" @success="successEvent" />
+        <add_subtract_return ref="add_subtract_return" @success="successEvent" />
         <!--    鏂板鎶曚繚    -->
         <OperaInsuranceApply ref="OperaInsuranceApply" @success="successEvent" />
         <!--    鍔犲噺淇濈敵璇�    -->
         <additionSubtractionApplication ref="additionSubtractionApplication" @success="successEvent" />
         <!--    鎹㈠巶鐢宠    -->
         <factoryChange ref="factoryChange" @success="successEvent" />
+
+        <editFactoryChange ref="editFactoryChange" @success="successEvent" />
     </GlobalWindow>
 </template>
 
@@ -186,13 +190,16 @@
 import OperaApplyChangeUnitCheckWindow from '@/components/business/OperaApplyChangeUnitCheckWindow'
 import additionSubtractionApplication from '@/components/enterprise/additionSubtractionApplication'
 import factoryChange from '@/components/enterprise/factoryChange'
+import editFactoryChange from '@/components/enterprise/editFactoryChange'
 import applyReturn from '@/components/enterprise/applyReturn'
+import add_subtract_return from '@/components/enterprise/add_subtract_return'
 import {
   getDetail,
   getChangeDetail,
   applyChagneDetailPage,
   getChangeUnitSignLink
 } from '@/api/business/insuranceApply'
+import { applyChangeOpt } from '@/api/business/applyChange'
 import OperaInsuranceApply from '@/components/enterprise/OperaInsuranceApplyWindow'
 import { mapState } from 'vuex'
 
@@ -206,7 +213,9 @@
       applyReturn,
       OperaInsuranceApply,
       additionSubtractionApplication,
-      factoryChange
+      factoryChange,
+      add_subtract_return,
+      editFactoryChange
   },
   data () {
     return {
@@ -257,6 +266,24 @@
         this.getDetail()
         this.getList()
      },
+      closeOrder() {
+          this.$confirm('纭鍏抽棴姝よ鍗曞悧?', '鎻愮ず', {
+              confirmButtonText: '纭畾',
+              cancelButtonText: '鍙栨秷',
+              type: 'warning'
+          }).then(() => {
+              applyChangeOpt({
+                  optType: 6,
+                  applyId: this.model.id
+              }).then(res => {
+                  this.getDetail()
+              }).catch(e => {
+                  this.$message.error(e)
+              })
+          }).catch(() => {
+
+          });
+      },
       resetting() {
             this.search()
       },
diff --git a/company/src/components/enterprise/add_subtract_return.vue b/company/src/components/enterprise/add_subtract_return.vue
new file mode 100644
index 0000000..402f62a
--- /dev/null
+++ b/company/src/components/enterprise/add_subtract_return.vue
@@ -0,0 +1,72 @@
+<template>
+    <GlobalWindow
+            :title="title"
+            width="40%"
+            :visible.sync="visible"
+            :confirm-working="isWorking"
+            @confirm="confirm"
+    >
+        <el-form ref="form" :model="form" label-width="130px">
+            <el-form-item label="濉啓鐢宠璇存槑">
+                <el-input type="textarea" v-model="form.remark"></el-input>
+            </el-form-item>
+        </el-form>
+    </GlobalWindow>
+</template>
+
+<script>
+    import BaseOpera from '@/components/base/BaseOpera'
+    import GlobalWindow from '@/components/common/GlobalWindow'
+    import { applyChangeOpt } from '@/api/business/applyChange'
+
+    export default {
+        name: 'add_subtract_return',
+        extends: BaseOpera,
+        components: { GlobalWindow },
+        data () {
+            return {
+                // 琛ㄥ崟鏁版嵁
+                form: {
+                    id: null,
+                    remark: ''
+                }
+            }
+        },
+        created () {
+            this.config({
+                api: '/business/insurance',
+                'field.id': 'id'
+            })
+        },
+        methods: {
+            open (title, target) {
+                this.title = title
+                this.visible = true
+                this.$nextTick(() => {
+                    this.$refs.form.resetFields()
+                    this.form[this.configData['field.id']] = null
+                })
+                this.$nextTick(() => {
+                    for (const key in this.form) {
+                        this.form[key] = target[key]
+                    }
+                })
+            },
+            confirm() {
+                this.isWorking = true
+                applyChangeOpt({ applyId: this.form.id, optIllustration: this.form.remark, optType: 3 })
+                    .then(res => {
+                        this.visible = false
+                        this.$tip.apiSuccess('鎿嶄綔鎴愬姛')
+                        this.$emit('success')
+                    })
+                    .catch(e => {
+                        this.$tip.apiFailed(e)
+                    })
+                    .finally(() => {
+                        this.isWorking = false
+                    })
+            }
+        }
+    }
+</script>
diff --git a/company/src/components/enterprise/additionSubtractionApplication.vue b/company/src/components/enterprise/additionSubtractionApplication.vue
index 2d369a8..6db50bd 100644
--- a/company/src/components/enterprise/additionSubtractionApplication.vue
+++ b/company/src/components/enterprise/additionSubtractionApplication.vue
@@ -183,7 +183,7 @@
     import confirmJobType from '@/components/enterprise/confirmJobType'
     import { all } from '@/api/business/solutions'
     import { getDetail } from '@/api/business/insuranceApply'
-    import { create, getChangeCountCyclePriceVO, applyChagneDetailList } from '@/api/business/applyChange'
+    import { create, getChangeCountCyclePriceVO } from '@/api/business/applyChange'
     export default {
         name: 'additionSubtractionApplication',
         extends: BaseOpera,
@@ -265,11 +265,6 @@
             },
             handleClick(e) {
                 this.activeName = e.index
-            },
-            getApplyChagneDetailList() {
-                applyChagneDetailList({
-
-                })
             },
             // 鑾峰彇鎶曚繚璇︽儏
             getDetails() {
diff --git a/company/src/components/enterprise/confirmJobType.vue b/company/src/components/enterprise/confirmJobType.vue
index b371ad2..07917d1 100644
--- a/company/src/components/enterprise/confirmJobType.vue
+++ b/company/src/components/enterprise/confirmJobType.vue
@@ -55,6 +55,8 @@
         methods: {
             open (title, arr) {
                 this.title = title
+                this.dw = ''
+                this.gz = ''
                 this.form.solutionId = arr.solutionId
                 this.data = arr.seleData
                 this.visible = true
diff --git a/company/src/components/enterprise/editFactoryChange.vue b/company/src/components/enterprise/editFactoryChange.vue
new file mode 100644
index 0000000..16619aa
--- /dev/null
+++ b/company/src/components/enterprise/editFactoryChange.vue
@@ -0,0 +1,501 @@
+<template>
+    <GlobalWindow
+            :title="title"
+            width="100%"
+            text="鎶曚繚鐢宠"
+            :visible.sync="visible"
+            :confirm-working="isWorking"
+            @confirm="confirm"
+    >
+        <div class="list">
+            <el-form :inline="true" ref="form" :model="form" :rules="rules" class="demo-form-inline">
+                <el-form-item label="淇濋櫓鏂规">
+                    <span>{{form.solutionsName}}</span>
+                </el-form-item>
+                <el-form-item label="鎵瑰崟鐢熸晥璧锋湡" prop="applyStartTime">
+                    <div style="display: flex; flex-direction: column;">
+                        <el-date-picker
+                            v-model="form.applyStartTime"
+                            type="datetime"
+                            :picker-options="pickerOptions"
+                            value-format="yyyy-MM-dd hh:mm:ss"
+                            format="yyyy-MM-dd hh:mm:ss"
+                            placeholder="閫夋嫨鏃ユ湡">
+                        </el-date-picker>
+                        <span style="color: #F95601; font-size: 14px;">锛堟鏃ョ敓鏁堟姇淇濊浜�17:30鍓嶆彁浜わ紝瓒呮椂鎻愪氦浠ヤ繚闄╁崟涓哄噯锛�</span>
+                    </div>
+                </el-form-item>
+                <el-form-item label="鎶曚繚骞撮緞" v-if="item">
+                    <span>{{item.minAge}} 鑷� {{item.maxAge}}</span>
+                </el-form-item>
+                <el-form-item label="璐圭敤" v-if="item">
+                    <span>{{item.price}}鍏�</span>
+                    <span v-if="item.timeUnit === 0">/澶�</span>
+                    <span v-if="item.timeUnit === 1">/鍗婃湀</span>
+                    <span v-if="item.timeUnit === 2">/鏈�</span>
+                    <span v-if="item.timeUnit === 3">/骞�</span>
+                    <span>/浜�</span>
+                </el-form-item>
+            </el-form>
+        </div>
+        <div class="desc_item_from">
+            <el-table
+                    :data="list"
+                    border
+                    style="width: 100%">
+                <el-table-column
+                        prop="code"
+                        align="center"
+                        label="鍏宠仈淇濆崟鍙�">
+                </el-table-column>
+                <el-table-column
+                        prop="solutionsName"
+                        label="淇濋櫓鏂规"
+                        align="center"
+                        width="180">
+                </el-table-column>
+                <el-table-column
+                        prop="startTime"
+                        align="center"
+                        label="淇濋櫓鐢熸晥璧锋湡">
+                </el-table-column>
+                <el-table-column
+                        prop="endTime"
+                        align="center"
+                        label="淇濋櫓鐢熸晥姝㈡湡">
+                </el-table-column>
+                <el-table-column
+                        prop="insureNum"
+                        align="center"
+                        label="鎶曚繚浜烘暟">
+                </el-table-column>
+                <el-table-column
+                        prop="serviceDays"
+                        align="center"
+                        label="鍦ㄤ繚鏃堕暱锛堝ぉ锛�">
+                </el-table-column>
+                <el-table-column
+                        prop="currentFee"
+                        align="center"
+                        label="褰撳墠璐圭敤(鍏�)">
+                </el-table-column>
+                <el-table-column
+                        prop="fee"
+                        align="center"
+                        label="鎬昏垂鐢�(鍏�)">
+                </el-table-column>
+            </el-table>
+        </div>
+        <div class="btns">
+            <div class="btns_item">
+                <el-button type="primary" @click="seleUser">閫夊彇鍛樺伐</el-button>
+                <el-button type="danger" @click="deleItem">鍒犻櫎</el-button>
+            </div>
+            <div class="btns_item">
+                <el-button type="primary" @click="sele">閫夊彇娲鹃仯鍗曚綅</el-button>
+            </div>
+        </div>
+        <el-table
+                :data="form.factory"
+                border
+                ref="multipleTable"
+                @selection-change="handleSelectionChange"
+                style="width: 100%;margin-bottom: 15px;">
+            <el-table-column
+                    type="selection"
+                    width="55">
+            </el-table-column>
+            <el-table-column label="搴忓彿" width="80px">
+                <template slot-scope="scope">
+                    <span>{{scope.$index + 1}}</span>
+                </template>
+            </el-table-column>
+            <el-table-column
+                    prop="memberName"
+                    label="濮撳悕">
+            </el-table-column>
+            <el-table-column
+                    prop="idCard"
+                    label="韬唤璇佸彿">
+            </el-table-column>
+            <el-table-column
+                    prop="oldDuName"
+                    label="鍘熸淳閬e崟浣�">
+            </el-table-column>
+            <el-table-column
+                    prop="oldWorkTypeName"
+                    label="鍘熸墍灞炲伐绉�">
+            </el-table-column>
+            <el-table-column
+                    prop="duName"
+                    label="鍙樻洿鍚庢淳閬e崟浣�">
+            </el-table-column>
+            <el-table-column
+                    prop="workTypeName"
+                    label="鍙樻洿鍚庢墍灞炲伐绉�">
+            </el-table-column>
+            <el-table-column
+                    label="鎿嶄綔">
+                <template slot-scope="scope">
+                    <el-button type="text" style="color: red;" @click="dele(scope.$index)">鍒犻櫎</el-button>
+                </template>
+            </el-table-column>
+        </el-table>
+        <div class="info" v-if="item">
+            <span v-if="item.specialAgreement">{{item.specialAgreement}}</span>
+            <span v-if="item.specialInfo">{{item.specialInfo}}</span>
+            <span v-if="item.ortherInfo">{{item.ortherInfo}}</span>
+        </div>
+        <!--    閫夋嫨鍛樺伐    -->
+        <selectEmployees ref="selectEmployees" @result="getValue" />
+        <!--    娣诲姞鍛樺伐    -->
+        <addEmployee ref="addEmployee" @result="getValue" />
+        <!--    瀵煎叆鍚嶅崟    -->
+        <importEmployees ref="importEmployees" @result="getValue" />
+        <!--    纭宸ョ    -->
+        <confirmJobType ref="confirmJobType" @result="getUser" />
+    </GlobalWindow>
+</template>
+
+<script>
+    import BaseOpera from '@/components/base/BaseOpera'
+    import GlobalWindow from '@/components/common/GlobalWindow'
+    import selectEmployees from '@/components/enterprise/selectEmployees'
+    import addEmployee from '@/components/enterprise/addEmployee'
+    import importEmployees from '@/components/enterprise/importEmployees'
+    import confirmJobType from '@/components/enterprise/confirmJobType'
+    import { all } from '@/api/business/solutions'
+    import { getDetail, findList } from '@/api/business/insuranceApply'
+    import { create, update, applyChagneDetailList } from '@/api/business/applyChange'
+    export default {
+        name: 'editFactoryChange',
+        extends: BaseOpera,
+        components: { GlobalWindow, selectEmployees, addEmployee, importEmployees, confirmJobType },
+        data () {
+            return {
+                form: {
+                    id: null,
+                    applyChangId: '',
+                    solutionId: '',
+                    solutionsName: '',
+                    applyStartTime: '',
+                    applyEndTime: '',
+                    factory: []
+                },
+                pickerOptions: {},
+                price: '',
+                endTime: '',    // 	瀹為檯淇濋櫓鐢熸晥姝㈡湡
+                company: [],
+                seleData: [],
+                item: null,
+                // 楠岃瘉瑙勫垯
+                rules: {
+                    applyStartTime: [
+                        { required: true, message: '璇烽�夋嫨鎵瑰崟鐢熸晥璧锋湡' }
+                    ]
+                },
+                list: []
+            }
+        },
+        created () {
+            this.config({
+                api: '/business/insuranceApply',
+                'field.id': 'id'
+            })
+        },
+        methods: {
+            open (title, target) {
+                this.title = title
+                this.form.addDetailList = []
+                this.form.delDetailList = []
+                this.list = []
+                this.form.id = null
+                this.item = null
+                this.form.solutionId = ''
+                this.form.solutionsName = ''
+                this.form.applyStartTime = ''
+                this.form.applyEndTime = ''
+                if (target && target.id) {
+                    this.$nextTick(() => {
+                        this.$refs.form.resetFields()
+                        this.form.id = target.id
+                        this.form.applyChangId = target.applyChangId
+                        this.getDetails()
+                        this.getapplyChagneDetailList()
+                    })
+                } else {
+                    this.$nextTick(() => {
+                        this.$refs.form.resetFields()
+                        this.form[this.configData['field.id']] = null
+                    })
+                }
+                this.getCompany()
+                this.visible = true
+                // this.updatePickerOptions()
+            },
+            // 鑾峰彇鎹㈠巶浜哄憳
+            getapplyChagneDetailList() {
+                applyChagneDetailList({
+                    applyChangId: this.form.applyChangId,
+                    types: [2]
+                }).then(res => {
+                    res.forEach(item => {
+                        item.idCard = item.memberIdcardNo
+                        item.oldDuId = item.duId
+                        item.oldDuName = item.duName
+                        item.oldWorkTypeName = item.workTypeName
+                        item.oldWorktypeId = item.worktypeId
+                        item.workTypeName = ''
+                        item.worktypeId = ''
+                        item.duId = ''
+                        item.duName = ''
+                    })
+                    this.form.factory = res
+                })
+            },
+            // 鑾峰彇鎶曚繚璇︽儏
+            getDetails() {
+                findList({ applyId: this.form.id })
+                    .then(res => {
+                        res.forEach(item => {
+                            item.idCard = item.idcardNo
+                            item.fee = ''
+                        })
+                        res.forEach(item => {
+                            item.oldDuId = item.duId
+                            item.oldDuName = item.duName
+                            item.oldWorkTypeName = item.workTypeName
+                            item.oldWorktypeId = item.worktypeId
+                            item.workTypeName = ''
+                            item.worktypeId = ''
+                            item.duId = ''
+                            item.duName = ''
+                        })
+                        // this.form.factory = res
+                    })
+                getDetail(this.form.id)
+                    .then(res => {
+                        this.list.push(res)
+                        this.endTime = res.endTime
+                        this.form.solutionId = res.solutionId
+                        this.form.solutionsName = res.solutionsName
+                        this.pickerOptions = {
+                            disabledDate(time) {
+                                // - 8.64e7
+                                return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date().getTime()
+                            }
+                        };
+                        this.changeSolution1(res.solutionId)
+                    })
+            },
+            deleItem() {
+                if (this.seleData.length === 0) {
+                    this.$message.warning('鑷冲皯閫夋嫨涓�椤瑰唴瀹�')
+                    return
+                }
+                this.seleData.forEach(item => {
+                    this.form.factory.forEach((row, index) => {
+                        if (item === row.memberName) {
+                            this.form.factory.splice(index, 1)
+                        }
+                    })
+                })
+            },
+            confirm() {
+                this.$refs.form.validate((valid) => {
+                    if (valid) {
+                        // if (this.form.addDetailList.length === 0) {
+                        //     this.$message.warning('鑷冲皯娣诲姞涓�椤瑰憳宸�')
+                        //     return
+                        // }
+                        for (let i = 0; i < this.form.factory.length; i++) {
+                            if (!this.form.factory[i].worktypeId || !this.form.factory[i].duId) {
+                                this.$message.warning('璇峰畬鍠勬淳閬e崟浣嶅拰宸ョ淇℃伅')
+                                return
+                            }
+                        }
+                        this.form.factory.forEach(item => {
+                            item.idcardNo = item.idCard
+                        })
+                        // let arr = JSON.parse(JSON.stringify(this.form.factory))
+                        // arr.forEach(item => {
+                        //     item.idcardNo = item.idCard
+                        // })
+                        this.isWorking = true
+                        update({
+                            id: this.form.applyChangId,
+                            applyId: this.form.id,
+                            changeDetailList: this.form.factory,
+                            validTime: this.form.applyStartTime,
+                            type: 1
+                        }).then(() => {
+                            this.visible = false
+                            this.$tip.apiSuccess('鎿嶄綔鎴愬姛')
+                            this.$emit('success')
+                        }).catch(e => {
+                            this.$tip.apiFailed(e)
+                        }).finally(() => {
+                            this.isWorking = false
+                        })
+                    }
+                })
+            },
+            seleUser() {
+                if (!this.form.solutionId) {
+                    this.$message.warning('璇峰厛閫夋嫨淇濋櫓鏂规')
+                    return
+                }
+                this.$refs.selectEmployees.open('閫夊彇鍛樺伐', { arr: this.form.delDetailList, price: this.price, insuranceApplyId: this.form.id })
+            },
+            addUser() {
+                if (!this.form.solutionId) {
+                    this.$message.warning('璇峰厛閫夋嫨淇濋櫓鏂规')
+                    return
+                }
+                this.$refs.addEmployee.open('娣诲姞鍛樺伐', { arr: this.form.factory, price: this.price })
+            },
+            uploadUser() {
+                if (!this.form.solutionId) {
+                    this.$message.warning('璇峰厛閫夋嫨淇濋櫓鏂规')
+                    return
+                }
+                this.$refs.importEmployees.open('涓婁紶鍚嶅崟', { arr: this.form.factory, price: this.price })
+            },
+            // 鍒囨崲鏂规
+            changeSolution1(e) {
+                this.company.forEach(item => {
+                    if (item.id === e) {
+                        this.item = item
+                    }
+                })
+                // this.tableData.forEach(item => {
+                //     item.fee = this.price
+                // })
+            },
+            dele(index) {
+                this.form.factory.splice(index, 1)
+            },
+            getUser(obj) {
+                console.log(obj)
+                this.seleData.forEach(item => {
+                    this.form.factory.forEach(row => {
+                        if (item === row.memberName) {
+                            row.workTypeName = obj.workTypeName
+                            row.worktypeId = obj.worktypeId
+                            row.duName = obj.duName
+                            row.duId = obj.duId
+                        }
+                    })
+                })
+                this.seleData = []
+                this.$refs.multipleTable.clearSelection();
+            },
+            // 閫夋嫨鍛樺伐
+            sele() {
+                if (!this.form.solutionId) {
+                    this.$message.warning('璇烽�夋嫨淇濋櫓鏂规')
+                    return
+                }
+                if (this.seleData.length === 0) {
+                    this.$message.warning('璇烽�夋嫨鍛樺伐')
+                    return
+                }
+                this.$refs.confirmJobType.open('纭宸ョ', { solutionId: this.form.solutionId })
+            },
+            // 鏌ヨ鍏ㄩ儴鏂规
+            getCompany() {
+                all({})
+                    .then(res => {
+                        this.company = res
+                    })
+            },
+            getAgeByIdCard(idCard){
+                const sexAndAge = {}
+                //鑾峰彇鐢ㄦ埛韬唤璇佸彿鐮�
+                const userCard = idCard
+                //濡傛灉鐢ㄦ埛韬唤璇佸彿鐮佷负undefined鍒欒繑鍥炵┖
+                if (!userCard) {
+                    return sexAndAge
+                }
+                // 鑾峰彇鍑虹敓鏃ユ湡
+                const yearBirth = userCard.substring(6, 10)
+                const monthBirth = userCard.substring(10, 12)
+                const dayBirth = userCard.substring(12, 14)
+                // 鑾峰彇褰撳墠骞存湀鏃ュ苟璁$畻骞撮緞
+                const myDate = new Date()
+                const monthNow = myDate.getMonth() + 1
+                const dayNow = myDate.getDate()
+                let age = myDate.getFullYear() - yearBirth
+                if (monthNow < monthBirth || (monthNow == monthBirth && dayNow < dayBirth)) {
+                    age--
+                }
+                // 寰楀埌骞撮緞
+                sexAndAge.age = age
+                return sexAndAge.age
+            },
+            handleSelectionChange (e) {
+                this.seleData = e.map(item => item.memberName)
+            },
+            getValue(list) {
+                let arr = JSON.parse(JSON.stringify(list))
+
+                arr.forEach(item => {
+                    item.oldDuId = item.duId
+                    item.oldDuName = item.duName
+                    item.oldWorkTypeName = item.workTypeName
+                    item.oldWorktypeId = item.worktypeId
+
+                    item.duId = ''
+                    item.duName = ''
+                    item.workTypeName = ''
+                    item.worktypeId = ''
+                })
+                this.form.factory.push(...arr)
+            }
+        }
+    }
+</script>
+
+<style lang="scss" scoped>
+    .list {
+        width: 100%;
+    }
+    .btns {
+        width: 100%;
+        margin-bottom: 15px;
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+        .btns_item {
+            display: flex;
+            align-items: center;
+        }
+    }
+    .submit {
+        width: 100%;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        margin-bottom: 15px;
+    }
+    .desc_item_from {
+        width: 100%;
+        margin-bottom: 10px;
+        .desc_item_from_page {
+            width: 100%;
+            display: flex;
+            align-items: center;
+            justify-content: end;
+            margin-top: 10px;
+        }
+    }
+    .desc_item_cate {
+        width: 100%;
+        margin-bottom: 10px;
+    }
+    .info {
+        width: 100%;
+        font-size: 14px;
+        color: black;
+    }
+</style>
diff --git a/company/src/components/enterprise/factoryChange.vue b/company/src/components/enterprise/factoryChange.vue
index b2fe3b0..cf2bfb7 100644
--- a/company/src/components/enterprise/factoryChange.vue
+++ b/company/src/components/enterprise/factoryChange.vue
@@ -16,10 +16,10 @@
                     <div style="display: flex; flex-direction: column;">
                         <el-date-picker
                             v-model="form.applyStartTime"
-                            type="date"
+                            type="datetime"
                             :picker-options="pickerOptions"
-                            value-format="yyyy-MM-dd"
-                            format="yyyy 骞� MM 鏈� dd 鏃�"
+                            value-format="yyyy-MM-dd hh:mm:ss"
+                            format="yyyy-MM-dd hh:mm:ss"
                             placeholder="閫夋嫨鏃ユ湡">
                         </el-date-picker>
                         <span style="color: #F95601; font-size: 14px;">锛堟鏃ョ敓鏁堟姇淇濊浜�17:30鍓嶆彁浜わ紝瓒呮椂鎻愪氦浠ヤ繚闄╁崟涓哄噯锛�</span>
diff --git a/company/src/components/enterprise/reinsurance.vue b/company/src/components/enterprise/reinsurance.vue
new file mode 100644
index 0000000..cd566c5
--- /dev/null
+++ b/company/src/components/enterprise/reinsurance.vue
@@ -0,0 +1,594 @@
+<template>
+    <GlobalWindow
+        :title="title"
+        width="100%"
+        text="鎶曚繚鐢宠"
+        :visible.sync="visible"
+        :confirm-working="isWorking"
+        @confirm="confirm"
+    >
+        <div class="list">
+            <el-form :inline="true" ref="form" :model="form" :rules="rules" class="demo-form-inline">
+                <el-form-item label="淇濋櫓鏂规">
+                    <span>{{form.solutionsName}}</span>
+                </el-form-item>
+                <el-form-item label="鎵瑰崟鐢熸晥璧锋湡" prop="applyStartTime">
+                    <div style="display: flex; flex-direction: column;">
+                        <el-date-picker
+                                @change="changeApplyStartTime"
+                                v-model="form.applyStartTime"
+                                type="date"
+                                :picker-options="pickerOptions"
+                                value-format="yyyy-MM-dd"
+                                format="yyyy 骞� MM 鏈� dd 鏃�"
+                                placeholder="閫夋嫨鏃ユ湡">
+                        </el-date-picker>
+                        <span style="color: #F95601; font-size: 14px;">锛堟鏃ョ敓鏁堟姇淇濊浜�17:30鍓嶆彁浜わ紝瓒呮椂鎻愪氦浠ヤ繚闄╁崟涓哄噯锛�</span>
+                    </div>
+                </el-form-item>
+                <el-form-item label="鎶曚繚骞撮緞" v-if="item">
+                    <span>{{item.minAge}} 鑷� {{item.maxAge}}</span>
+                </el-form-item>
+                <el-form-item label="璐圭敤" v-if="item">
+                    <span>{{item.price}}鍏�</span>
+                    <span v-if="item.timeUnit === 0">/澶�</span>
+                    <span v-if="item.timeUnit === 1">/鍗婃湀</span>
+                    <span v-if="item.timeUnit === 2">/鏈�</span>
+                    <span v-if="item.timeUnit === 3">/骞�</span>
+                    <span>/浜�</span>
+                </el-form-item>
+            </el-form>
+        </div>
+        <div class="desc_item_from">
+            <el-table
+                    :data="list"
+                    border
+                    style="width: 100%">
+                <el-table-column
+                        prop="code"
+                        align="center"
+                        label="鍏宠仈淇濆崟鍙�">
+                </el-table-column>
+                <el-table-column
+                        prop="solutionsName"
+                        label="淇濋櫓鏂规"
+                        align="center"
+                        width="180">
+                </el-table-column>
+                <el-table-column
+                        prop="startTime"
+                        align="center"
+                        label="淇濋櫓鐢熸晥璧锋湡">
+                </el-table-column>
+                <el-table-column
+                        prop="endTime"
+                        align="center"
+                        label="淇濋櫓鐢熸晥姝㈡湡">
+                </el-table-column>
+                <el-table-column
+                        prop="insureNum"
+                        align="center"
+                        label="鎶曚繚浜烘暟">
+                </el-table-column>
+                <el-table-column
+                        prop="serviceDays"
+                        align="center"
+                        label="鍦ㄤ繚鏃堕暱锛堝ぉ锛�">
+                </el-table-column>
+                <el-table-column
+                        prop="currentFee"
+                        align="center"
+                        label="褰撳墠璐圭敤(鍏�)">
+                </el-table-column>
+                <el-table-column
+                        prop="fee"
+                        align="center"
+                        label="鎬昏垂鐢�(鍏�)">
+                </el-table-column>
+            </el-table>
+        </div>
+        <div class="desc_item_cate">
+            <el-tabs v-model="activeName" @tab-click="handleClick">
+                <el-tab-pane label="鍔犱繚鍛樺伐" name="0"></el-tab-pane>
+                <el-tab-pane label="鍑忎繚鍛樺伐" name="1"></el-tab-pane>
+            </el-tabs>
+        </div>
+        <div class="btns">
+            <div class="btns_item">
+                <el-button type="primary" @click="seleUser">閫夊彇鍛樺伐</el-button>
+                <el-button type="primary" @click="uploadUser" v-if="activeName !== '1'">瀵煎叆鍛樺伐</el-button>
+                <el-button type="primary" @click="addUser" v-if="activeName !== '1'">娣诲姞鍛樺伐</el-button>
+                <el-button type="danger" @click="deleItem">鍒犻櫎</el-button>
+            </div>
+            <div class="btns_item" v-if="activeName !== '1'">
+                <el-button type="primary" @click="sele">閫夊彇娲鹃仯鍗曚綅</el-button>
+            </div>
+        </div>
+        <el-table
+                :data="activeName === '0' ? form.addDetailList : form.delDetailList"
+                border
+                show-summary
+                :summary-method="getSummaries"
+                ref="multipleTable"
+                @selection-change="handleSelectionChange"
+                style="width: 100%;margin-bottom: 15px;">
+            <el-table-column
+                type="selection"
+                width="55">
+            </el-table-column>
+            <el-table-column label="搴忓彿" width="80px">
+                <template slot-scope="scope">
+                    <span>{{scope.$index + 1}}</span>
+                </template>
+            </el-table-column>
+            <el-table-column
+                prop="memberName"
+                label="濮撳悕">
+            </el-table-column>
+            <el-table-column
+                prop="idCard"
+                label="韬唤璇佸彿">
+            </el-table-column>
+            <el-table-column
+                label="骞撮緞">
+                <template slot-scope="{row}">
+                    <template v-if="item">
+                        <span style="color: red;" v-if="(getAgeByIdCard(row.idCard) < item.minAge) || (getAgeByIdCard(row.idCard) > item.maxAge)">{{getAgeByIdCard(row.idCard)}}</span>
+                        <span v-else>{{ getAgeByIdCard(row.idCard) }}</span>
+                    </template>
+                </template>
+            </el-table-column>
+            <el-table-column
+                prop="duName"
+                label="娲鹃仯鍗曚綅">
+            </el-table-column>
+            <el-table-column
+                prop="workTypeName"
+                label="鎵�灞炲伐绉�">
+            </el-table-column>
+            <el-table-column
+                label="璐圭敤">
+                <template slot-scope="{row}">
+                    <span v-if="activeName === '0'">{{row.fee}}</span>
+                    <span v-else>-{{row.fee}}</span>
+                </template>
+            </el-table-column>
+            <el-table-column
+                    label="鎿嶄綔">
+                <template slot-scope="scope">
+                    <el-button type="text" style="color: red;" @click="dele(scope.$index)">鍒犻櫎</el-button>
+                </template>
+            </el-table-column>
+        </el-table>
+        <div class="info" v-if="item">
+            <span v-if="item.specialAgreement">{{item.specialAgreement}}</span>
+            <span v-if="item.specialInfo">{{item.specialInfo}}</span>
+            <span v-if="item.ortherInfo">{{item.ortherInfo}}</span>
+        </div>
+        <!--    閫夋嫨鍛樺伐    -->
+        <selectEmployees ref="selectEmployees" @result="getValue" />
+        <!--    娣诲姞鍛樺伐    -->
+        <addEmployee ref="addEmployee" @result="getValue" />
+        <!--    瀵煎叆鍚嶅崟    -->
+        <importEmployees ref="importEmployees" @result="getValue" />
+        <!--    纭宸ョ    -->
+        <confirmJobType ref="confirmJobType" @result="getUser" />
+    </GlobalWindow>
+</template>
+
+<script>
+    import BaseOpera from '@/components/base/BaseOpera'
+    import GlobalWindow from '@/components/common/GlobalWindow'
+    import selectEmployees from '@/components/enterprise/selectEmployees'
+    import addEmployee from '@/components/enterprise/addEmployee'
+    import importEmployees from '@/components/enterprise/importEmployees'
+    import confirmJobType from '@/components/enterprise/confirmJobType'
+    import { all } from '@/api/business/solutions'
+    import { getDetail } from '@/api/business/insuranceApply'
+    import { update, getChangeCountCyclePriceVO, applyChagneDetailList } from '@/api/business/applyChange'
+    export default {
+        name: 'reinsurance',
+        extends: BaseOpera,
+        components: { GlobalWindow, selectEmployees, addEmployee, importEmployees, confirmJobType },
+        data () {
+            return {
+                form: {
+                    id: null,
+                    applyChangId: '',
+                    solutionId: '',
+                    solutionsName: '',
+                    applyStartTime: '',
+                    applyEndTime: '',
+                    addDetailList: [],
+                    delDetailList: [],
+                },
+                activeName: '0',
+                pickerOptions: {},
+                price: '',
+                endTime: '',    // 	瀹為檯淇濋櫓鐢熸晥姝㈡湡
+                company: [],
+                seleData: [],
+                item: null,
+                // 楠岃瘉瑙勫垯
+                rules: {
+                    applyStartTime: [
+                        { required: true, message: '璇烽�夋嫨鎵瑰崟鐢熸晥璧锋湡' }
+                    ]
+                },
+                list: []
+            }
+        },
+        created () {
+            this.config({
+                api: '/business/insuranceApply',
+                'field.id': 'id'
+            })
+        },
+        methods: {
+            open (title, target) {
+                this.title = title
+                this.form.addDetailList = []
+                this.form.delDetailList = []
+                this.list = []
+                this.form.id = null
+                this.item = null
+                this.form.solutionId = ''
+                this.form.solutionsName = ''
+                this.form.applyStartTime = ''
+                this.form.applyEndTime = ''
+                if (target && target.id) {
+                    this.$nextTick(() => {
+                        this.$refs.form.resetFields()
+                        this.form.id = target.id
+                        this.form.applyChangId = target.applyChangId
+                        this.getDetails()
+                    })
+                } else {
+                    this.$nextTick(() => {
+                        this.$refs.form.resetFields()
+                        this.form[this.configData['field.id']] = null
+                    })
+                }
+                this.getCompany()
+                this.visible = true
+                // this.updatePickerOptions()
+            },
+            changeApplyStartTime(e) {
+                getChangeCountCyclePriceVO({
+                    applyId: this.form.id,
+                    validTime: e
+                }).then(res => {
+                    this.price = res.cyclePrice
+                    this.form.addDetailList.forEach(item => {
+                        item.fee = res.cyclePrice
+                    })
+                    this.form.delDetailList.forEach(item => {
+                        item.fee = res.cyclePrice
+                    })
+                })
+            },
+            handleClick(e) {
+                this.activeName = e.index
+            },
+            // 鑾峰彇鎶曚繚璇︽儏
+            getDetails() {
+                applyChagneDetailList({
+                    applyChangId: this.form.applyChangId,
+                    types: [0]
+                }).then(res => {
+                    res.forEach(item => {
+                        item.fee = ''
+                        item.idCard = item.memberIdcardNo
+                        item.workTypeName = ''
+                        item.worktypeId = ''
+                        item.duName = ''
+                        item.duId = ''
+                    })
+                    this.form.addDetailList = res
+                })
+                applyChagneDetailList({
+                    applyChangId: this.form.applyChangId,
+                    types: [1]
+                }).then(res => {
+                    res.forEach(item => {
+                        item.fee = ''
+                        item.idCard = item.memberIdcardNo
+                        item.workTypeName = ''
+                        item.worktypeId = ''
+                        item.duName = ''
+                        item.duId = ''
+                    })
+                    this.form.delDetailList = res
+                })
+                getDetail(this.form.id)
+                    .then(res => {
+                        this.list.push(res)
+                        this.endTime = res.endTime
+                        this.form.solutionId = res.solutionId
+                        this.form.solutionsName = res.solutionsName
+                        this.pickerOptions = {
+                            disabledDate(time) {
+                                // - 8.64e7
+                                return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date().getTime()
+                            }
+                        };
+                        this.changeSolution1(res.solutionId)
+                    })
+            },
+            getSummaries(param) {
+                const { columns, data } = param
+                const sums = []
+                columns.forEach((column, index) => {
+                    if (index === 0) {
+                        sums[index] = '鎬讳环'
+                        return
+                    } else if (index === 7) {
+                        let total = 0
+                        if (this.activeName === '0') {
+                            this.form.addDetailList.forEach(item => {
+                                total += item.fee
+                            })
+                            sums[index] = total
+                            return
+                        } else {
+                            this.form.delDetailList.forEach(item => {
+                                total += item.fee
+                            })
+                            sums[index] = '-' + total
+                            return
+                        }
+                        sums[index] = ''
+                    }
+                })
+                return sums
+            },
+            deleItem() {
+                if (this.seleData.length === 0) {
+                    this.$message.warning('鑷冲皯閫夋嫨涓�椤瑰唴瀹�')
+                    return
+                }
+                if (this.activeName === '0') {
+                    this.seleData.forEach(item => {
+                        this.form.addDetailList.forEach((row, index) => {
+                            if (item === row.name) {
+                                this.form.addDetailList.splice(index, 1)
+                            }
+                        })
+                    })
+                } else {
+                    this.seleData.forEach(item => {
+                        this.form.delDetailList.forEach((row, index) => {
+                            if (item === row.name) {
+                                this.form.delDetailList.splice(index, 1)
+                            }
+                        })
+                    })
+                }
+            },
+            confirm() {
+                this.$refs.form.validate((valid) => {
+                    if (valid) {
+                        // if (this.form.addDetailList.length === 0) {
+                        //     this.$message.warning('鑷冲皯娣诲姞涓�椤瑰憳宸�')
+                        //     return
+                        // }
+                        for (let i = 0; i < this.form.addDetailList.length; i++) {
+                            if (!this.form.addDetailList[i].worktypeId || !this.form.addDetailList[i].duId) {
+                                this.$message.warning('璇峰畬鍠勫姞淇濇淳閬e崟浣嶅拰宸ョ淇℃伅')
+                                return
+                            }
+                        }
+                        for (let i = 0; i < this.form.delDetailList.length; i++) {
+                            if (!this.form.delDetailList[i].worktypeId || !this.form.delDetailList[i].duId) {
+                                this.$message.warning('璇峰畬鍠勫噺淇濇淳閬e崟浣嶅拰宸ョ淇℃伅')
+                                return
+                            }
+                        }
+                        this.form.addDetailList.forEach(item => {
+                            item.idcardNo = item.idCard
+                        })
+                        this.form.delDetailList.forEach(item => {
+                            item.idcardNo = item.idCard
+                        })
+                        // let arr = JSON.parse(JSON.stringify(this.form.addDetailList))
+                        // arr.forEach(item => {
+                        //     item.idcardNo = item.idCard
+                        // })
+                        this.isWorking = true
+                        update({
+                            id: this.form.applyChangId,
+                            applyId: this.form.id,
+                            addDetailList: this.form.addDetailList,
+                            delDetailList: this.form.delDetailList,
+                            validTime: this.form.applyStartTime,
+                            type: 0
+                        }).then(() => {
+                            this.visible = false
+                            this.$tip.apiSuccess('鎿嶄綔鎴愬姛')
+                            this.$emit('success')
+                        }).catch(e => {
+                            this.$tip.apiFailed(e)
+                        }).finally(() => {
+                            this.isWorking = false
+                        })
+                    }
+                })
+            },
+            seleUser() {
+                if (!this.form.solutionId) {
+                    this.$message.warning('璇峰厛閫夋嫨淇濋櫓鏂规')
+                    return
+                }
+                if (this.activeName === '0') {
+                    this.$refs.selectEmployees.open('閫夊彇鍛樺伐', { arr: this.form.addDetailList, price: this.price, notInInsuranceApplyId: this.form.id })
+                } else {
+                    this.$refs.selectEmployees.open('閫夊彇鍛樺伐', { arr: this.form.delDetailList, price: this.price, insuranceApplyId: this.form.id })
+                }
+            },
+            addUser() {
+                if (!this.form.solutionId) {
+                    this.$message.warning('璇峰厛閫夋嫨淇濋櫓鏂规')
+                    return
+                }
+                if (this.activeName === '0') {
+                    this.$refs.addEmployee.open('娣诲姞鍛樺伐', { arr: this.form.addDetailList, price: this.price })
+                } else {
+                    this.$refs.addEmployee.open('娣诲姞鍛樺伐', { arr: this.form.delDetailList, price: this.price })
+                }
+            },
+            uploadUser() {
+                if (!this.form.solutionId) {
+                    this.$message.warning('璇峰厛閫夋嫨淇濋櫓鏂规')
+                    return
+                }
+                if (this.activeName === '0') {
+                    this.$refs.importEmployees.open('涓婁紶鍚嶅崟', { arr: this.form.addDetailList, price: this.price })
+                } else {
+                    this.$refs.importEmployees.open('涓婁紶鍚嶅崟', { arr: this.form.delDetailList, price: this.price })
+                }
+            },
+            // 鍒囨崲鏂规
+            changeSolution1(e) {
+                this.company.forEach(item => {
+                    if (item.id === e) {
+                        this.item = item
+                    }
+                })
+                // this.tableData.forEach(item => {
+                //     item.fee = this.price
+                // })
+            },
+            dele(index) {
+                if (this.activeName === '0') {
+                    this.form.addDetailList.splice(index, 1)
+                } else {
+                    this.form.delDetailList.splice(index, 1)
+                }
+            },
+            getUser(obj) {
+                this.seleData.forEach(item => {
+                    if (this.activeName === '0') {
+                        this.form.addDetailList.forEach(row => {
+                            if (item === row.name) {
+                                row.workTypeName = obj.workTypeName
+                                row.worktypeId = obj.worktypeId
+                                row.duName = obj.duName
+                                row.duId = obj.duId
+                            }
+                        })
+                    } else {
+                        this.form.delDetailList.forEach(row => {
+                            if (item === row.name) {
+                                row.workTypeName = obj.workTypeName
+                                row.worktypeId = obj.worktypeId
+                                row.duName = obj.duName
+                                row.duId = obj.duId
+                            }
+                        })
+                    }
+                })
+                this.seleData = []
+                this.$refs.multipleTable.clearSelection();
+            },
+            // 閫夋嫨鍛樺伐
+            sele() {
+                if (!this.form.solutionId) {
+                    this.$message.warning('璇烽�夋嫨淇濋櫓鏂规')
+                    return
+                }
+                if (this.seleData.length === 0) {
+                    this.$message.warning('璇烽�夋嫨鍛樺伐')
+                    return
+                }
+                this.$refs.confirmJobType.open('纭宸ョ', { solutionId: this.form.solutionId })
+            },
+            // 鏌ヨ鍏ㄩ儴鏂规
+            getCompany() {
+                all({})
+                    .then(res => {
+                        this.company = res
+                    })
+            },
+            getAgeByIdCard(idCard){
+                if (!idCard) return ''
+                const sexAndAge = {}
+                //鑾峰彇鐢ㄦ埛韬唤璇佸彿鐮�
+                const userCard = idCard
+                //濡傛灉鐢ㄦ埛韬唤璇佸彿鐮佷负undefined鍒欒繑鍥炵┖
+                if (!userCard) {
+                    return sexAndAge
+                }
+                // 鑾峰彇鍑虹敓鏃ユ湡
+                const yearBirth = userCard.substring(6, 10)
+                const monthBirth = userCard.substring(10, 12)
+                const dayBirth = userCard.substring(12, 14)
+                // 鑾峰彇褰撳墠骞存湀鏃ュ苟璁$畻骞撮緞
+                const myDate = new Date()
+                const monthNow = myDate.getMonth() + 1
+                const dayNow = myDate.getDate()
+                let age = myDate.getFullYear() - yearBirth
+                if (monthNow < monthBirth || (monthNow == monthBirth && dayNow < dayBirth)) {
+                    age--
+                }
+                // 寰楀埌骞撮緞
+                sexAndAge.age = age
+                return sexAndAge.age
+            },
+            handleSelectionChange (e) {
+                this.seleData = e.map(item => item.name)
+            },
+            getValue(list) {
+                console.log(list)
+                if (this.activeName === '0') {
+                    this.form.addDetailList.push(...list)
+                } else {
+                    this.form.delDetailList.push(...list)
+                }
+            }
+        }
+    }
+</script>
+
+<style lang="scss" scoped>
+    .list {
+        width: 100%;
+    }
+    .btns {
+        width: 100%;
+        margin-bottom: 15px;
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+        .btns_item {
+            display: flex;
+            align-items: center;
+        }
+    }
+    .submit {
+        width: 100%;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        margin-bottom: 15px;
+    }
+    .desc_item_from {
+        width: 100%;
+        margin-bottom: 10px;
+        .desc_item_from_page {
+            width: 100%;
+            display: flex;
+            align-items: center;
+            justify-content: end;
+            margin-top: 10px;
+        }
+    }
+    .desc_item_cate {
+        width: 100%;
+        margin-bottom: 10px;
+    }
+    .info {
+        width: 100%;
+        font-size: 14px;
+        color: black;
+    }
+</style>
diff --git a/company/src/views/business/switchCourt.vue b/company/src/views/business/switchCourt.vue
index c660623..3806712 100644
--- a/company/src/views/business/switchCourt.vue
+++ b/company/src/views/business/switchCourt.vue
@@ -109,7 +109,7 @@
 import {all as solutionAll, all} from '@/api/business/solutions'
 import {pageAll as companyAll} from "@/api/business/company";
 export default {
-  name: 'add_subtract',
+  name: 'switchCourt',
   extends: BaseTable,
   components: { TableLayout, Pagination, OperaApplyChangeUnitDetailWindow },
   data () {
diff --git a/company/src/views/enterprise/add_subtract.vue b/company/src/views/enterprise/add_subtract.vue
index 80bf584..6fcd255 100644
--- a/company/src/views/enterprise/add_subtract.vue
+++ b/company/src/views/enterprise/add_subtract.vue
@@ -55,9 +55,10 @@
                 <el-table-column prop="status" label="淇濆崟鐘舵��" min-width="100px">
                     <template slot-scope="{row}">
                         <span v-if="row.status === 0">寰呯缃�</span>
-                        <span v-if="row.status === 1">宸茬绔�</span>
-                        <span v-if="row.status === 2">宸蹭笂浼犳壒鍗�</span>
-                        <span v-if="row.status === 3">閫�鍥炵敵璇�</span>
+                        <span v-if="row.status === 1">寰呭鏍�</span>
+                        <span v-if="row.status === 2">宸茬敓鏁�</span>
+                        <span v-if="row.status === 3 || row.status === 4">鐢宠閫�鍥�</span>
+                        <span v-if="row.status === 5 || row.status === 8">宸查��鍥�</span>
                     </template>
                 </el-table-column>
                 <el-table-column prop="applyCode" label="鍏宠仈淇濆崟鍙�" min-width="100px"></el-table-column>
diff --git a/company/src/views/enterprise/switchCourt.vue b/company/src/views/enterprise/switchCourt.vue
index 6ca0b5a..b967cef 100644
--- a/company/src/views/enterprise/switchCourt.vue
+++ b/company/src/views/enterprise/switchCourt.vue
@@ -2,38 +2,34 @@
     <TableLayout :permissions="['business:applychange:query']">
         <!-- 鎼滅储琛ㄥ崟 -->
         <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
-            <el-form-item label="淇濆崟鐘舵��" prop="status">
+            <el-form-item label="鐘舵��" prop="status">
                 <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨" @change="search">
+                    <el-option label="鍏ㄩ儴" value=""></el-option>
                     <el-option label="寰呯缃�" value="0"></el-option>
-                    <el-option label="宸茬绔� " value="1"></el-option>
-                    <el-option label="宸蹭笂浼犳壒鍗�" value="2"></el-option>
-                    <el-option label="閫�鍥炵敵璇�" value="3"></el-option>
+                    <el-option label="寰呭鏍�" value="1"></el-option>
+                    <el-option label="宸茬敓鏁�" value="2"></el-option>
+                    <el-option label="鐢宠閫�鍥�" value="3"></el-option>
+                    <!--                    3 4 閮芥槸閫�鍥炵敵璇蜂腑-->
+                    <el-option label="宸查��鍥�" value="5"></el-option>
+                    <el-option label="宸插叧闂�" value="6"></el-option>
                 </el-select>
             </el-form-item>
-            <el-form-item label="鎶曚繚浼佷笟" prop="status">
-                <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨">
+            <el-form-item label="淇濋櫓鏂规" prop="baseSolutionsId">
+                <el-select v-model="searchForm.baseSolutionsId" placeholder="璇烽�夋嫨" @change="search">
                     <el-option
-                        v-for="item in options"
-                        :key="item.value"
-                        :label="item.label"
-                        :value="item.value">
-                    </el-option>
-                </el-select>
-            </el-form-item>
-            <el-form-item label="淇濋櫓鏂规" prop="status">
-                <el-select v-model="searchForm.status" placeholder="璇烽�夋嫨">
-                    <el-option
-                        v-for="item in options"
-                        :key="item.value"
-                        :label="item.label"
-                        :value="item.value">
+                        v-for="item in solutionList"
+                        :key="item.baseId"
+                        :label="item.name"
+                        :value="item.baseId">
                     </el-option>
                 </el-select>
             </el-form-item>
             <el-form-item label="鎻愪氦鏃ユ湡" prop="status">
                 <el-date-picker
-                    v-model="searchForm.status"
+                    @change="changeTime"
+                    v-model="searchForm.time"
                     type="daterange"
+                    value-format="yyyy-MM-dd"
                     range-separator="鑷�"
                     start-placeholder="寮�濮嬫棩鏈�"
                     end-placeholder="缁撴潫鏃ユ湡">
@@ -56,21 +52,21 @@
                         <span>{{scope.$index + 1}}</span>
                     </template>
                 </el-table-column>
-                <el-table-column prop="status" label="淇濆崟鐘舵��" min-width="100px">
+                <el-table-column prop="status" label="鐘舵��" min-width="100px">
                     <template slot-scope="{row}">
                         <span v-if="row.status === 0">寰呯缃�</span>
-                        <span v-if="row.status === 1">宸茬绔�</span>
-                        <span v-if="row.status === 2">宸蹭笂浼犳壒鍗�</span>
-                        <span v-if="row.status === 3">閫�鍥炵敵璇�</span>
+                        <span v-if="row.status === 1">寰呭鏍�</span>
+                        <span v-if="row.status === 2">宸茬敓鏁�</span>
+                        <span v-if="row.status === 3 || row.status === 4">鐢宠閫�鍥�</span>
+                        <span v-if="row.status === 5 || row.status === 8">宸查��鍥�</span>
                     </template>
                 </el-table-column>
-                <el-table-column prop="code" label="鎶曚繚浼佷笟" min-width="100px"></el-table-column>
+                <el-table-column prop="validCode" label="鎵瑰崟鍙�" min-width="100px"></el-table-column>
                 <el-table-column prop="code" label="鍏宠仈淇濆崟鍙�" min-width="100px"></el-table-column>
-                <el-table-column prop="code" label="淇濋櫓鏂规" min-width="100px"></el-table-column>
-                <el-table-column prop="code" label="鍔犱繚浜烘暟锛堜汉锛�" min-width="100px"></el-table-column>
-                <el-table-column prop="code" label="鍑忎繚浜烘暟锛堜汉锛�" min-width="100px"></el-table-column>
-                <el-table-column prop="code" label="璐圭敤鍙樻洿" min-width="100px"></el-table-column>
+                <el-table-column prop="solutionsName" label="淇濋櫓鏂规" min-width="100px"></el-table-column>
+                <el-table-column prop="changeNum" label="鎹㈠巶浜烘暟锛堜汉锛�" min-width="100px"></el-table-column>
                 <el-table-column prop="createDate" label="鎻愪氦鏃堕棿" min-width="100px"></el-table-column>
+                <el-table-column prop="startTime" label="鎵瑰崟鐢熸晥璧锋湡" min-width="100px"></el-table-column>
                 <el-table-column
                     label="鎿嶄綔"
                     min-width="120"
@@ -98,7 +94,7 @@
     import TableLayout from '@/layouts/TableLayout'
     import Pagination from '@/components/common/Pagination'
     import OperaApplyChangeUnitDetailWindow from '@/components/business/OperaApplyChangeUnitDetailWindow'
-    import {all as solutionAll} from "@/api/business/solutions";
+    import {all as solutionAll, all} from '@/api/business/solutions'
     import {pageAll as companyAll} from "@/api/business/company";
     export default {
         name: 'switchCourt',
@@ -109,9 +105,14 @@
                 // 鎼滅储
                 searchForm: {
                     status: '',
-                    type: ''
+                    type: '1',
+                    solutionsId: '',
+                    createDateE: '',
+                    createDateS: '',
+                    time: []
                 },
-                options: []
+                solutionList:[],
+                companyList:[]
             }
         },
         created () {
@@ -122,22 +123,36 @@
                 'field.main': 'id'
             })
             this.search()
+            this.loadSelectList()
         },
-      methods:{
-        // handlePageChange() {
-        //   this.search()
-        // },
-        loadSelectList() {
-          solutionAll({dataType:2}).then(res => {
-            this.solutionList = res
-          }).catch(err => {
-          })
-          companyAll({}).then(res => {
-            this.companyList = res
-          }).catch(err => {
-          })
+        methods: {
+            loadSelectList() {
+                solutionAll({dataType:2}).then(res => {
+                    this.solutionList = res
+                }).catch(err => {
+                })
+                companyAll({}).then(res => {
+                    this.companyList = res
+                }).catch(err => {
+                })
+            },
+            changeTime(e) {
+                if (e.length > 0) {
+                    this.searchForm.createDateS = e[0]
+                    this.searchForm.createDateE = e[1]
+                } else {
+                    this.searchForm.createDateS = ''
+                    this.searchForm.createDateE = ''
+                }
+                this.search()
+            },
+            reset() {
+                this.searchForm.createDateS = ''
+                this.searchForm.createDateE = ''
+                this.searchForm.time = []
+                this.$refs.searchForm.resetFields();
+                this.search()
+            }
         }
-
-      }
     }
 </script>

--
Gitblit v1.9.3