jiangping
2024-06-07 8a266df75e912cc4ff49bc504db5b6b26f152892
提交一把
已添加1个文件
已修改31个文件
1255 ■■■■ 文件已修改
company/.env.developmentCom 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/.env.developmentShop 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/package-lock.json 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/package.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/api/business/dispatchUnit.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/InsuranceDetails.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaApplyChangeDetailWindow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaApplyChangeUnitDetailWindow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaInsuranceApplyShopWindow.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaInsuranceApplyWindow.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaPolicyListWindow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaUnionChangeDetailWindow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaUnionChangeUnitDetailWindow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaWtbApplyShopWindow.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/detailsEntrustedInsurance.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/detailsPolicyholder.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/common/CommonHeader.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/OperaInsuranceApplyAddWindow.vue 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/OperaInsuranceApplyAddWindow2.vue 606 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/additionSubtractionApplication.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/editFactoryChange.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/factoryChange.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/importEmployees.vue 183 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/reinsurance.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/selectEmployees.vue 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/applyChangeShop.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/dispatchUnitReview.vue 102 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/policyList.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/switchCourtShop.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/enterprise/add_subtract.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/enterprise/switchCourt.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/platform/src/main/java/com/doumee/api/common/PublicController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/.env.developmentCom
@@ -9,5 +9,4 @@
# VUE_APP_API = 'https://dmtest.ahapp.net/yyb_admin_api/'
#VUE_APP_API = 'http://localhost:10031/'
VUE_APP_API = 'https://www.yyb.red/yyb_web_api/'
VUE_APP_API = 'http://192.168.0.143:10031/'
company/.env.developmentShop
@@ -7,8 +7,8 @@
VUE_APP_SYSTEM_TITLE = '云易保客户服务系统-商户端'
#VUE_APP_API = 'https://www.yyb.red/yyb_shop_api/'
 VUE_APP_API = 'http://192.168.0.143:10032/'
# VUE_APP_API = 'http://192.168.0.143:10032/'
#VUE_APP_API = 'http://localhost:10032/'
#VUE_APP_API = 'https://www.yyb.red/yyb_shop_api/'
VUE_APP_API = 'https://www.yyb.red/yyb_shop_api/'
company/package-lock.json
@@ -12358,6 +12358,11 @@
        }
      }
    },
    "sortablejs": {
      "version": "1.10.2",
      "resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.10.2.tgz",
      "integrity": "sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A=="
    },
    "source-list-map": {
      "version": "2.0.1",
      "resolved": "https://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz",
@@ -13293,6 +13298,35 @@
        }
      }
    },
    "umy-table": {
      "version": "1.1.8",
      "resolved": "https://registry.npmmirror.com/umy-table/-/umy-table-1.1.8.tgz",
      "integrity": "sha512-yqPMFwZ6MUNqI73KamsNKBTbHRA7VuVZDEWobaySghtf4n/s7INuTNQoADB/ROVK57WOXr99Xpnol0aMqGlASA==",
      "requires": {
        "async-validator": "~1.8.1",
        "deepmerge": "^1.2.0",
        "normalize-wheel": "^1.0.1",
        "resize-observer-polyfill": "^1.5.0",
        "throttle-debounce": "^1.0.1",
        "vuedraggable": "^2.23.2",
        "xe-utils": "^3.0.0-beta.12"
      }
    },
    "umy-ui": {
      "version": "1.1.6",
      "resolved": "https://registry.npmmirror.com/umy-ui/-/umy-ui-1.1.6.tgz",
      "integrity": "sha512-wX0S29B5sFn8q0MvU9PEl8DGZeQmZXOJlLrwaCJ2UHiIQZCANWgXMBjjQgpaequ1gRZ8BekEu7Sn7hJccm9YMQ==",
      "requires": {
        "async-validator": "~1.8.1",
        "deepmerge": "^1.2.0",
        "normalize-wheel": "^1.0.1",
        "resize-observer-polyfill": "^1.5.0",
        "throttle-debounce": "^1.0.1",
        "umy-table": "1.1.8",
        "vuedraggable": "^2.23.2",
        "xe-utils": "^3.0.0-beta.12"
      }
    },
    "unbox-primitive": {
      "version": "1.0.1",
      "resolved": "https://registry.npm.taobao.org/unbox-primitive/download/unbox-primitive-1.0.1.tgz?cache=0&sync_timestamp=1616706302651&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funbox-primitive%2Fdownload%2Funbox-primitive-1.0.1.tgz",
@@ -13713,6 +13747,14 @@
      "resolved": "https://registry.npm.taobao.org/vue-template-es2015-compiler/download/vue-template-es2015-compiler-1.9.1.tgz",
      "integrity": "sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU=",
      "dev": true
    },
    "vuedraggable": {
      "version": "2.24.3",
      "resolved": "https://registry.npmmirror.com/vuedraggable/-/vuedraggable-2.24.3.tgz",
      "integrity": "sha512-6/HDXi92GzB+Hcs9fC6PAAozK1RLt1ewPTLjK0anTYguXLAeySDmcnqE8IC0xa7shvSzRjQXq3/+dsZ7ETGF3g==",
      "requires": {
        "sortablejs": "1.10.2"
      }
    },
    "vuescroll": {
      "version": "4.17.3",
@@ -14538,6 +14580,11 @@
        "async-limiter": "~1.0.0"
      }
    },
    "xe-utils": {
      "version": "3.5.26",
      "resolved": "https://registry.npmmirror.com/xe-utils/-/xe-utils-3.5.26.tgz",
      "integrity": "sha512-u9R7RqWDumamToEelrCv2nVA2PBJSPPUubvmiMcuHeFxwbYeBsouoi/opejmr7AdPlSj92FifF7IKFzFrczU7w=="
    },
    "xtend": {
      "version": "4.0.2",
      "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz",
company/package.json
@@ -23,6 +23,7 @@
    "element-ui": "^2.3.6",
    "js-cookie": "^2.2.1",
    "js-file-download": "^0.4.12",
    "umy-ui": "^1.1.6",
    "vue": "^2.6.11",
    "vue-clipboard2": "^0.3.1",
    "vue-router": "^3.5.1",
company/src/api/business/dispatchUnit.js
@@ -18,6 +18,9 @@
}
// æ ¹æ®ID查询
export function deleteById (id) {
    return request.get(`/business/dispatchUnit/delete/${id}`)
}
export function getById (id) {
    return request.get(`/business/dispatchUnit/${id}`)
}
company/src/components/business/InsuranceDetails.vue
@@ -12,7 +12,7 @@
          </div>
          <div class="box_table">
            <div class="box_table_head">
              <div class="box_table_head_item">投保企业</div>
              <div class="box_table_head_item">{{model.solutionType == 1?'被保险人':'投保企业'}}</div>
              <div class="box_table_head_item">保险方案</div>
              <div class="box_table_head_item">保险生效起期</div>
              <div class="box_table_head_item">保险生效止期</div>
company/src/components/business/OperaApplyChangeDetailWindow.vue
@@ -15,7 +15,7 @@
                        <span v-if="model.status === 1">保单状态:<span  :class="'change-status'+model.status" >待审核</span></span>
                        <span v-if="model.status === 2">保单状态:<span  :class="'change-status'+model.status" >已生效</span></span>
                        <span v-if="model.status === 7">保单状态:<span  :class="'change-status'+model.status" >待出单</span></span>
                        <span v-if="model.status === 9">保单状态:<span  :class="'change-status'+model.status" >投保中</span></span>
                        <span v-if="model.status === 9">保单状态:<span  :class="'change-status'+model.status" >批改申请中</span></span>
                        <span v-if="model.status === 3 || model.status === 4">保单状态:<span  :class="'change-status'+model.status" >退回申请</span></span>
                        <span v-if="model.status === 5 || model.status === 8">保单状态:<span  :class="'change-status'+model.status" >已退回</span></span>
                        <span v-if=" model.status === 6">保单状态:<span  :class="'change-status'+model.status" >已关闭</span></span>
company/src/components/business/OperaApplyChangeUnitDetailWindow.vue
@@ -15,7 +15,7 @@
                    <span v-if="model.status === 1">保单状态:<span  :class="'change-status'+model.status" >待审核</span></span>
                    <span v-if="model.status === 2">保单状态:<span  :class="'change-status'+model.status" >已生效</span></span>
                    <span v-if="model.status === 7">保单状态:<span  :class="'change-status'+model.status" >待出单</span></span>
                    <span v-if="model.status === 9">保单状态:<span  :class="'change-status'+model.status" >投保中</span></span>
                    <span v-if="model.status === 9">保单状态:<span  :class="'change-status'+model.status" >批改申请中</span></span>
                    <span v-if="model.status === 3 || model.status === 4">保单状态:<span  :class="'change-status'+model.status" >退回申请</span></span>
                    <span v-if="model.status === 5 || model.status === 8">保单状态:<span  :class="'change-status'+model.status" >已退回</span></span>
                    <span v-if=" model.status === 6">保单状态:<span  :class="'change-status'+model.status" >已关闭</span></span>
company/src/components/business/OperaInsuranceApplyShopWindow.vue
@@ -80,7 +80,7 @@
                        <el-table-column
                            prop="serviceDays"
                            align="center"
                            label="在保时长(天)">
                            label="保单时长(天)">
                        </el-table-column>
                        <el-table-column
                            prop="currentFee"
@@ -310,6 +310,12 @@
                            align="center"
                            label="批单生效起期">
                        </el-table-column>
                      <el-table-column
                        :key="Math.random()"
                        prop="fee"
                        align="center"
                        label="费用变更(元)">
                    </el-table-column>
                        <el-table-column
                            align="center"
                            :key="Math.random()"
company/src/components/business/OperaInsuranceApplyWindow.vue
@@ -80,7 +80,7 @@
                        <el-table-column
                            prop="serviceDays"
                            align="center"
                            label="在保时长(天)">
                            label="保单时长(天)">
                        </el-table-column>
                        <el-table-column
                            prop="currentFee"
@@ -294,7 +294,7 @@
                                <span :class="'change-status'+row.status" v-if="row.status === 5 || row.status === 8">已退回</span>
                                <span :class="'change-status'+row.status" v-if="row.status === 6">已关闭</span>
                                <span :class="'change-status'+row.status" v-if="row.status === 7">待出单</span>
                                <span :class="'change-status'+row.status" v-if="row.status === 9">投保中</span>
                                <span :class="'change-status'+row.status" v-if="row.status === 9">批改申请中</span>
                            </template>
                        </el-table-column>
                        <el-table-column
@@ -333,6 +333,12 @@
                            align="center"
                            label="批减生效日期">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="fee"
                            align="center"
                            label="费用变更(元)">
                        </el-table-column>
                      <el-table-column
                          :key="Math.random()"
                          prop="remark"
@@ -370,7 +376,7 @@
                                <span :class="'change-status'+row.status" v-if="row.status === 5 || row.status === 8">已退回</span>
                                <span :class="'change-status'+row.status" v-if="row.status === 6">已关闭</span>
                              <span :class="'change-status'+row.status" v-if="row.status === 7">待出单</span>
                              <span :class="'change-status'+row.status" v-if="row.status === 9">投保中</span>
                              <span :class="'change-status'+row.status" v-if="row.status === 9">批改申请中</span>
                            </template>
                        </el-table-column>
                        <el-table-column
company/src/components/business/OperaPolicyListWindow.vue
@@ -49,7 +49,7 @@
                        </el-table-column>
                        <el-table-column
                                prop="address"
                                label="在保时长(天)">
                                label="保单时长(天)">
                        </el-table-column>
                        <el-table-column
                                prop="address"
company/src/components/business/OperaUnionChangeDetailWindow.vue
@@ -15,7 +15,7 @@
                      <span v-if="model.status === 1">保单状态:<span  :class="'change-status'+model.status" >待审核</span></span>
                      <span v-if="model.status === 2">保单状态:<span  :class="'change-status'+model.status" >已生效</span></span>
                      <span v-if="model.status === 7">保单状态:<span  :class="'change-status'+model.status" >待出单</span></span>
                      <span v-if="model.status === 9">保单状态:<span  :class="'change-status'+model.status" >投保中</span></span>
                      <span v-if="model.status === 9">保单状态:<span  :class="'change-status'+model.status" >批改申请中</span></span>
                      <span v-if="model.status === 3 || model.status === 4">保单状态:<span  :class="'change-status'+model.status" >退回申请</span></span>
                      <span v-if="model.status === 5 || model.status === 8">保单状态:<span  :class="'change-status'+model.status" >已退回</span></span>
                      <span v-if=" model.status === 6">保单状态:<span  :class="'change-status'+model.status" >已关闭</span></span>
company/src/components/business/OperaUnionChangeUnitDetailWindow.vue
@@ -15,7 +15,7 @@
                      <span v-if="model.status === 1">保单状态:<span  :class="'change-status'+model.status" >待审核</span></span>
                      <span v-if="model.status === 2">保单状态:<span  :class="'change-status'+model.status" >已生效</span></span>
                      <span v-if="model.status === 7">保单状态:<span  :class="'change-status'+model.status" >待出单</span></span>
                      <span v-if="model.status === 9">保单状态:<span  :class="'change-status'+model.status" >投保中</span></span>
                      <span v-if="model.status === 9">保单状态:<span  :class="'change-status'+model.status" >批改申请中</span></span>
                      <span v-if="model.status === 3 || model.status === 4">保单状态:<span  :class="'change-status'+model.status" >退回申请</span></span>
                      <span v-if="model.status === 5 || model.status === 8">保单状态:<span  :class="'change-status'+model.status" >已退回</span></span>
                      <span v-if=" model.status === 6">保单状态:<span  :class="'change-status'+model.status" >已关闭</span></span>
company/src/components/business/OperaWtbApplyShopWindow.vue
@@ -88,7 +88,7 @@
                        <el-table-column
                            prop="serviceDays"
                            align="center"
                            label="在保时长(天)">
                            label="保单时长(天)">
                        </el-table-column>
                        <el-table-column
                            prop="currentFee"
@@ -181,7 +181,7 @@
                                    <el-option label="已退回" value="5"></el-option>
                                    <el-option label="已关闭" value="6"></el-option>
                                    <el-option label="待出单" value="7"></el-option>
                                    <el-option label="投保中" value="9"></el-option>
                                    <el-option label="批改申请中" value="9"></el-option>
                                </el-select>
                            </el-form-item>
                            <el-form-item label="批单生效起期" prop="end">
@@ -300,7 +300,7 @@
                                <span :class="'change-status'+row.status" v-if="row.status === 5 || row.status === 8">已退回</span>
                                <span :class="'change-status'+row.status" v-if="row.status === 6">已关闭</span>
                              <span :class="'change-status'+row.status" v-if="row.status === 7">待出单</span>
                              <span :class="'change-status'+row.status" v-if="row.status === 9">投保中</span>
                              <span :class="'change-status'+row.status" v-if="row.status === 9">批改申请中</span>
                            </template>
                        </el-table-column>
                        <el-table-column
@@ -341,6 +341,12 @@
                        </el-table-column>
                      <el-table-column
                          :key="Math.random()"
                          prop="fee"
                          align="center"
                          label="费用变更(元)">
                      </el-table-column>
                      <el-table-column
                          :key="Math.random()"
                          prop="remark"
                          align="center"
                          label="备注">
@@ -376,7 +382,7 @@
                                <span :class="'change-status'+row.status" v-if="row.status === 5 || row.status === 8">已退回</span>
                                <span :class="'change-status'+row.status" v-if="row.status === 6">已关闭</span>
                              <span :class="'change-status'+row.status" v-if="row.status === 7">待出单</span>
                              <span :class="'change-status'+row.status" v-if="row.status === 9">投保中</span>
                              <span :class="'change-status'+row.status" v-if="row.status === 9">批改申请中</span>
                            </template>
                        </el-table-column>
                        <el-table-column
company/src/components/business/detailsEntrustedInsurance.vue
@@ -65,7 +65,7 @@
            <el-table-column
                prop="serviceDays"
                align="center"
                label="在保时长(天)">
                label="保单时长(天)">
            </el-table-column>
            <el-table-column
                prop="currentFee"
@@ -226,7 +226,7 @@
                <span :class="'change-status'+row.status" v-if="row.status === 5 || row.status === 8">已退回</span>
                <span :class="'change-status'+row.status" v-if="row.status === 6">已关闭</span>
                <span :class="'change-status'+row.status" v-if="row.status === 7">待出单</span>
                <span :class="'change-status'+row.status" v-if="row.status === 9">投保中</span>
                <span :class="'change-status'+row.status" v-if="row.status === 9">批改申请中</span>
              </template>
            </el-table-column>
            <el-table-column
@@ -292,7 +292,7 @@
                <span :class="'change-status'+row.status" v-if="row.status === 5 || row.status === 8">已退回</span>
                <span :class="'change-status'+row.status" v-if="row.status === 6">已关闭</span>
                <span :class="'change-status'+row.status" v-if="row.status === 7">待出单</span>
                <span :class="'change-status'+row.status" v-if="row.status === 9">投保中</span>
                <span :class="'change-status'+row.status" v-if="row.status === 9">批改申请中</span>
              </template>
            </el-table-column>
            <el-table-column
company/src/components/business/detailsPolicyholder.vue
@@ -25,7 +25,7 @@
                    <div class="box_table_content_item box_table_content_header" style="flex:2">{{ model.applyStartTime }}</div>
                    <div class="box_table_content_item box_table_content_header" style="flex:2">{{ model.applyEndTime }}</div>
                    <div class="box_table_content_item box_table_content_header">{{ model.insureNum }}</div>
                    <div class="box_table_content_item box_table_content_header"  >{{model.solutionType==0?model.totalPrice:'-'}}</div>
                    <div class="box_table_content_item box_table_content_header"  >{{model.solutionType==0?model.totalPrice:model.totalPrice}}</div>
                </div>
            </div>
            <div class="box_table" v-if="model">
company/src/components/common/CommonHeader.vue
@@ -101,8 +101,14 @@
      if (userInfo == null) {
        return ''
      }
      if (userInfo.realname != null && userInfo.realname.trim().length > 0) {
        return userInfo.realname
      if(userInfo.type === 1){
        if (userInfo.company != null && userInfo.company.name.trim().length > 0) {
          return userInfo.company.name
        }
      }else{
        if (userInfo.realname != null && userInfo.realname.trim().length > 0) {
          return userInfo.realname
        }
      }
      return userInfo.username
    }
company/src/components/enterprise/OperaInsuranceApplyAddWindow.vue
@@ -48,17 +48,17 @@
              placeholder="选择日期">
          </el-date-picker>
        </el-form-item>
        <el-form-item label="投保年龄" v-if="item">
<!--        <el-form-item label="投保年龄" v-if="item && item.id !=null">
          <span>{{item.minAge}} è‡³ {{item.maxAge}}</span>
        </el-form-item>
        <el-form-item label="费用" v-if="item && item.type ==0">
        <el-form-item label="费用" v-if="item && item.id !=null">
          <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-item>-->
      </el-form>
    </div>
    <div class="btns">
@@ -69,35 +69,52 @@
        <el-button type="danger" @click="deleItem">删除</el-button>
      </div>
      <div class="btns_item">
        <div style="display: inline-block;margin-right: 30px;font-size: 14px" v-if="item && item.id !=null">
          <span>投保年龄:</span>
          <span>{{item.minAge}} è‡³ {{item.maxAge}}周岁</span>
          <span style="margin-left: 20px">费用:</span>
          <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>
        </div>
        <div style="display: inline-block;margin-right: 30px;font-size: 14px"><span>合计费用:</span>
        <span style="font-weight: bold;color: red">{{sumFee}}</span>元
        </div>
        <el-button type="primary" @click="sele">选取派遣单位</el-button>
      </div>
    </div>
    <el-table
<!--    show-summary
    :summary-method="getSummaries"-->
    <u-table
        :data="tableData"
        border
        show-summary
        :summary-method="getSummaries"
        use-virtual
        :row-height="30"
        :height="680"
        ref="multipleTable"
        @selection-change="handleSelectionChange"
        style="width: 100%;margin-bottom: 15px;">
      <el-table-column
      <u-table-column
          type="selection"
          width="55">
      </el-table-column>
      <el-table-column label="序号" width="80px">
      </u-table-column>
      <u-table-column label="序号" width="80px">
        <template slot-scope="scope">
          <span>{{scope.$index + 1}}</span>
        </template>
      </el-table-column>
      <el-table-column
      </u-table-column>
      <u-table-column
          prop="memberName"
          label="姓名">
      </el-table-column>
      <el-table-column
      </u-table-column>
      <u-table-column
          prop="idCard"
          label="身份证号">
      </el-table-column>
      <el-table-column
      </u-table-column>
      <u-table-column
          label="年龄">
        <template slot-scope="{row}">
          <template v-if="item">
@@ -105,37 +122,37 @@
            <span v-else>{{ getAgeByIdCard(row.idCard) }}</span>
          </template>
        </template>
      </el-table-column>
      <el-table-column
      </u-table-column>
      <u-table-column
          prop="duName"
          label="派遣单位">
      </el-table-column>
      <el-table-column
      </u-table-column>
      <u-table-column
          prop="workTypeName"
          label="所属工种">
      </el-table-column>
      <el-table-column
      </u-table-column>
      <u-table-column
          prop="fee"
          label="费用">
        <template slot-scope="{row}">
          {{item.type==1?'-':row.fee}}
          {{row.fee}}
        </template>
      </el-table-column>
      <el-table-column
      </u-table-column>
      <u-table-column
          prop="remark"
          align="center"
          label="备注">
        <template slot-scope="{row}">
          <el-input v-model="row.remark" placeholder="请输入"></el-input>
        </template>
      </el-table-column>
      <el-table-column
      </u-table-column>
      <u-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>
      </u-table-column>
    </u-table>
    <div class="info" v-if="item">
      <span v-if="item.specialAgreement"  v-html="item.specialAgreement"></span>
      <span v-if="item.specialInfo" v-html="item.specialInfo"> </span>
@@ -171,15 +188,19 @@
import { all, getNewVersion } from '@/api/business/solutions'
import { mapState } from 'vuex'
import { create, getCountCyclePriceVO, getDetail, findList, updateData } from '@/api/business/insuranceApply'
import { UTable, UTableColumn } from 'umy-ui'
// Vue.component(UTable.name, UTable);
// Vue.component(UTableColumn.name, UTableColumn);
export default {
  name: 'OperaInsuranceApplyAddWindow',
  extends: BaseOpera,
  components: {
    GlobalWindow, selectEmployees, addEmployee, importEmployees, confirmJobType, detailsPolicyholder
    GlobalWindow, selectEmployees, addEmployee, importEmployees, confirmJobType, detailsPolicyholder, UTable, UTableColumn
    // ,  OperaWtbApplyShopWindow, OperaInsuranceApplyDetails
  },
  data () {
    return {
      sumFee:0,
      form: {
        id: null,
        ID: null,
@@ -214,6 +235,17 @@
  },
  computed: {
    ...mapState(['userInfo'])
  },
  watch: {
    // ç›‘听tableData的变化
    tableData: {
      deep: true,
      handler(newVal, oldVal) {
        // æ•°æ®å˜åŒ–时的处理逻辑
        this.getSummaries2()
        console.log(this.tableData.length)
      }
    }
  },
  methods: {
    successEvent () {
@@ -316,25 +348,37 @@
          this.changeSolution1(res.solutionId)
        })
    },
    getSummaries (param) {
      const { columns, data } = param
    getSummaries ({ columns, data }) {
      const sums = []
      // this.currentData = data; //记录当前页数据;
      columns.forEach((column, index) => {
        if (index === 0) {
        if (index == 0) {
          sums[index] = '总价'
        } else if (index === 7) {
          if (this.item || this.item.type == 1) {
            sums[index] = '-'
          } else {
            let total = 0
            this.tableData.forEach(item => {
              total += item.fee
            })
            sums[index] = total.toFixed(2)
          }
        } else if (index == 7) {
          // if (this.item || this.item.type == 1) {
          //   sums[index] = '-'
          // } else {
          let total = 0
          this.tableData.forEach(item => {
            total += item.fee
          })
          sums[index] = total.toFixed(2)
          // }
        }else {
          sums[index] = ''
        }
      })
      console.log(sums)
      return sums
    },
    getSummaries2 () {
      this.sumFee = 0;
      if(this.tableData&&this.tableData.length){
        this.tableData.forEach((column, index) => {
          this.sumFee = parseFloat(this.sumFee) + parseFloat(column.fee)
        })
        this.sumFee = (this.sumFee || 0).toFixed(2)
      }
    },
    deleItem () {
      if (this.seleData.length === 0) {
@@ -348,6 +392,7 @@
          }
        })
      })
      // this.getSummaries2()
    },
    confirm () {
      this.$refs.form.validate((valid) => {
@@ -366,11 +411,11 @@
          }
          let price = 0
          if (this.item && this.item.type != 1) {
          // if (this.item && this.item.type != 1) {
            this.tableData.forEach(item => {
              price = price + item.fee
            })
          }
          // }
          this.$refs.detailsPolicyholder.open('投保详情单', {
            companyName: this.userInfo.company.name,
            solutionName: this.item.name,
@@ -447,14 +492,15 @@
    },
    // åˆ‡æ¢æ–¹æ¡ˆ
    changeSolution (e) {
      this.sumFee =0;
      this.form.applyEndTime = ''
      this.form.applyStartTime = ''
      if (!this.form.id) {
        this.tableData = []
      } else {
        this.price = ''
        this.price = 0
        this.tableData.forEach(item => {
          item.fee = ''
          item.fee = 0
          item.duName = ''
          item.duId = ''
          item.workTypeName = ''
@@ -463,11 +509,11 @@
      }
      this.company.forEach(item => {
        if (item.id === e) {
          // this.price = item.price
          this.price = item.price
          this.item = item
          if (this.item && this.item.type == 1) {
            this.item.fee = 0
          }
          // if (this.item && this.item.type == 1) {
          //   this.item.fee = 0
          // }
          this.updatePickerOptions()
        }
      })
@@ -482,23 +528,21 @@
          this.form.solutionId = res.id
          this.company.forEach(item => {
            if (item.id === res.id) {
              // this.price = item.price
              this.price = item.price
              this.item = item
              if (this.item && this.item.type == 1) {
                this.item.fee = 0
              }
              this.updatePickerOptions()
            }
          })
        })
      this.tableData.forEach(item => {
        if(this.item.type != 0){
        // if (this.item.type != 0) {
          item.fee = this.price
        }
        // }
      })
    },
    dele (index) {
      this.tableData.splice(index, 1)
      // this.getSummaries2()
    },
    getUser (obj) {
      this.seleData.forEach(id => {
@@ -562,6 +606,7 @@
    },
    getValue (list) {
      this.tableData.push(...list)
      this.getSummaries2()
    }
  }
}
company/src/components/enterprise/OperaInsuranceApplyAddWindow2.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,606 @@
<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="保险方案" prop="solutionId">
          <el-select v-model="form.solutionId" @change="changeSolution" placeholder="请选择">
            <el-option
                v-for="item in company"
                :key="item.id"
                :label="item.name"
                :value="item.id">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="期望保险生效起期" prop="applyStartTime">
          <div style="display: flex; flex-direction: column;">
            <el-date-picker
                @change="getTimeVal"
                v-model="form.applyStartTime"
                type="date"
                class="date_picker"
                :clearable="false"
                :disabled="!form.solutionId"
                :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="保险生效止期" prop="applyEndTime">
          <el-date-picker
              disabled
              v-model="form.applyEndTime"
              type="date"
              class="date_picker"
              :picker-options="pickerOptions"
              value-format="yyyy-MM-dd HH:mm:ss"
              format="yyyy-MM-dd HH:mm:ss"
              placeholder="选择日期">
          </el-date-picker>
        </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 && item.type ==0">
          <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="btns">
      <div class="btns_item">
        <el-button type="primary" @click="seleUser">选取员工</el-button>
        <el-button type="primary" @click="uploadUser">导入员工</el-button>
        <el-button type="primary" @click="addUser">添加员工</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="tableData"
        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="row.idCard && (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
          prop="fee"
          label="费用">
        <template slot-scope="{row}">
          {{item.type==1?row.fee:row.fee}}
        </template>
      </el-table-column>
      <el-table-column
          prop="remark"
          align="center"
          label="备注">
        <template slot-scope="{row}">
          <el-input v-model="row.remark" placeholder="请输入"></el-input>
        </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"  v-html="item.specialAgreement"></span>
      <span v-if="item.specialInfo" v-html="item.specialInfo"> </span>
      <span v-if="item.ortherInfo" v-html="item.ortherInfo"></span>
    </div>
    <!--    é€‰æ‹©å‘˜å·¥    -->
    <selectEmployees ref="selectEmployees" @result="getValue" />
    <!--    æ·»åŠ å‘˜å·¥    -->
    <addEmployee ref="addEmployee" @result="getValue" />
    <!--    å¯¼å…¥åå•    -->
    <importEmployees ref="importEmployees" @result="getValue" />
    <!--    ç¡®è®¤å·¥ç§    -->
    <confirmJobType ref="confirmJobType" @result="getUser" />
    <!--    æŸ¥çœ‹è¯¦å•    -->
    <detailsPolicyholder ref="detailsPolicyholder" @success="successEvent" />
<!--    &lt;!&ndash;    ç›´ä¿æŠ•保详情    &ndash;&gt;
    <OperaInsuranceApplyDetails ref="OperaInsuranceApplyDetails" />
    &lt;!&ndash;    å§”托投保详情    &ndash;&gt;
    <OperaWtbApplyShopWindow ref="OperaWtbApplyShopWindow" />-->
  </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 detailsPolicyholder from '@/components/business/detailsPolicyholder'
// import OperaInsuranceApplyDetails from '@/components/business/OperaInsuranceApplyWindow'
// import OperaWtbApplyShopWindow from '@/components/business/OperaWtbApplyShopWindow'
import { all, getNewVersion } from '@/api/business/solutions'
import { mapState } from 'vuex'
import { create, getCountCyclePriceVO, getDetail, findList, updateData } from '@/api/business/insuranceApply'
export default {
  name: 'OperaInsuranceApplyAddWindow',
  extends: BaseOpera,
  components: {
    GlobalWindow, selectEmployees, addEmployee, importEmployees, confirmJobType, detailsPolicyholder
    // ,  OperaWtbApplyShopWindow, OperaInsuranceApplyDetails
  },
  data () {
    return {
      form: {
        id: null,
        ID: null,
        solutionId: '',
        applyStartTime: '',
        applyEndTime: ''
      },
      solutionName: '',
      type: '',
      pickerOptions: {}, // å­˜æ”¾picker options的变量
      price: '',
      company: [],
      seleData: [],
      item: null,
      // éªŒè¯è§„则
      rules: {
        solutionId: [
          { required: true, message: '请选择保险方案' }
        ],
        applyStartTime: [
          { required: true, message: '请选择期望保险生效起期' }
        ]
      },
      tableData: []
    }
  },
  created () {
    this.config({
      api: '/business/insuranceApply',
      'field.id': 'id'
    })
  },
  computed: {
    ...mapState(['userInfo'])
  },
  methods: {
    successEvent () {
      const arr = JSON.parse(JSON.stringify(this.tableData))
      arr.forEach(item => {
        item.idcardNo = item.idCard
      })
      this.isWorking = true
      // if (!this.form.id) {
      create({
        applyDetailList: arr,
        applyStartTime: this.form.applyStartTime,
        applyEndTime: this.form.applyEndTime,
        solutionId: this.form.solutionId
      }).then(res => {
        console.log(res)
        this.visible = false
        if (this.item.type == 1) {
          // this.$refs.OperaWtbApplyShopWindow.open('委托投保详情', { id: res })
          this.$emit('success', 1, { id: res })
        } else {
          // this.$refs.OperaInsuranceApplyDetails.open('投保详情', { id: res })
          this.$emit('success', 1, { id: res })
        }
        this.$tip.apiSuccess('操作成功')
        // this.$emit('success','委托投保详情', { id: res })
      })
        .catch(e => {
          this.$tip.apiFailed(e)
        })
        .finally(() => {
          this.isWorking = false
        })
      // } else {
      //     updateData({
      //         id: this.form.id,
      //         applyDetailList: arr,
      //         applyStartTime: this.form.applyStartTime,
      //         applyEndTime: this.form.applyEndTime,
      //         solutionId: this.form.solutionId
      //     }).then(() => {
      //         this.visible = false
      //         this.$tip.apiSuccess('操作成功')
      //         this.$emit('success')
      //     }).catch(e => {
      //         this.$tip.apiFailed(e)
      //     })
      //         .finally(() => {
      //             this.isWorking = false
      //         })
      // }
    },
    open (title, target) {
      this.title = title
      this.tableData = []
      this.form.id = null
      this.item = {}
      if (target.type) {
        this.type = target.type
      }
      this.form.solutionId = ''
      this.form.applyStartTime = ''
      this.form.applyEndTime = ''
      if (target && target.id) {
        this.$nextTick(() => {
          this.$refs.form.resetFields()
          this.form.id = target.id
          this.getDetails()
        })
      } else {
        this.$nextTick(() => {
          this.$refs.form.resetFields()
          this.form[this.configData['field.id']] = null
        })
      }
      this.getCompany()
      this.visible = true
      this.updatePickerOptions()
    },
    // èŽ·å–æŠ•ä¿è¯¦æƒ…
    getDetails () {
      findList({ applyId: this.form.id })
        .then(res => {
          res.forEach(item => {
            console.log(item)
            item.idCard = item.idcardNo
            item.fee = ''
            if (this.type === 1) {
              // item.duName = ''
              // item.duId = ''
              // item.worktypeId = ''
              // item.workTypeName = ''
            }
          })
          this.tableData = res
        })
      getDetail(this.form.id)
        .then(res => {
          // this.form.solutionId = res.solutionId
          this.changeSolution1(res.solutionId)
        })
    },
    getSummaries (param) {
      const { columns, data } = param
      const sums = []
      columns.forEach((column, index) => {
        if (index === 0) {
          sums[index] = '总价'
        } else if (index === 7) {
          if (this.item || this.item.type == 1) {
            sums[index] = '-'
          } else {
            let total = 0
            this.tableData.forEach(item => {
              total += item.fee
            })
            sums[index] = total.toFixed(2)
          }
        }
      })
      return sums
    },
    deleItem () {
      if (this.seleData.length === 0) {
        this.$message.warning('至少选择一项内容')
        return
      }
      this.seleData.forEach(item => {
        this.tableData.forEach((row, index) => {
          if (item === row.idCard) {
            this.tableData.splice(index, 1)
          }
        })
      })
    },
    confirm () {
      this.$refs.form.validate((valid) => {
        if (valid) {
          if (this.tableData.length === 0) {
            this.$message.warning('至少添加一项员工')
            return
          }
          for (let i = 0; i < this.tableData.length; i++) {
            console.log(this.tableData[i].worktypeId)
            console.log(this.tableData[i].duId)
            if (!this.tableData[i].worktypeId || !this.tableData[i].duId) {
              this.$message.warning('请完善派遣单位和工种信息')
              return
            }
          }
          let price = 0
          // if (this.item && this.item.type != 1) {
            this.tableData.forEach(item => {
              price = price + item.fee
            })
          // }
          this.$refs.detailsPolicyholder.open('投保详情单', {
            companyName: this.userInfo.company.name,
            solutionName: this.item.name,
            solutionType: this.item.type,
            applyStartTime: this.form.applyStartTime,
            applyEndTime: this.form.applyEndTime,
            insureNum: this.tableData.length,
            totalPrice: price,
            detailList: this.tableData
          })
        }
      })
    },
    // èŽ·å–ç»“æŸæ—¶é—´å’Œä»·æ ¼
    getTimeVal (time) {
      getCountCyclePriceVO({
        solutionsId: this.form.solutionId,
        startDate: time
      }).then(res => {
        this.price = res.cyclePrice
        this.form.applyEndTime = res.endDate
        this.tableData.forEach(item => {
          item.fee = res.cyclePrice
        })
        this.$forceUpdate()
      })
    },
    getDate (n) { // n为多少天,-代表往前,+代表往后
      const date1 = new Date()
      const time1 = date1.getFullYear() + '-' + (date1.getMonth() + 1) + '-' + date1.getDate()// time1表示当前时间
      const date2 = new Date(date1)
      date2.setDate(date1.getDate() + n)
      const time2 = date2.getFullYear() + '-' + ('0' + (date2.getMonth() + 1)).slice(-2) + '-' + ('0' + date2.getDate()).slice(-2)
      return time2
    },
    updatePickerOptions () {
      var that = this
      this.pickerOptions = {
        disabledDate (time) {
          if (!that.item) return
          if (that.item.validType === 1) {
            // æ¬¡æœˆ
            const currentDate = new Date()
            currentDate.setMonth(currentDate.getMonth() + 1)
            currentDate.setDate(1)
            return time.getTime() <= new Date(currentDate.toLocaleString()).getTime() - 8.64e7
          } else if (that.item.validType === 0) {
            // å¤šå°‘日后生效
            return time.getTime() <= new Date(that.getDate(that.item.validTypeNum - 1)).getTime()
          }
        }
      }
    },
    seleUser () {
      if (!this.form.solutionId) {
        this.$message.warning('请先选择保险方案')
        return
      }
      this.$refs.selectEmployees.open('选取员工', { arr: this.tableData, price: this.price, type: 1 })
    },
    addUser () {
      if (!this.form.solutionId) {
        this.$message.warning('请先选择保险方案')
        return
      }
      this.$refs.addEmployee.open('添加员工', { arr: this.tableData, price: this.price })
    },
    uploadUser () {
      if (!this.form.solutionId) {
        this.$message.warning('请先选择保险方案')
        return
      }
      this.$refs.importEmployees.open('上传名单', { arr: this.tableData, solutionId: this.form.solutionId, type: 1, price: this.price })
    },
    // åˆ‡æ¢æ–¹æ¡ˆ
    changeSolution (e) {
      this.form.applyEndTime = ''
      this.form.applyStartTime = ''
      if (!this.form.id) {
        this.tableData = []
      } else {
        this.price = ''
        this.tableData.forEach(item => {
          item.fee = ''
          item.duName = ''
          item.duId = ''
          item.workTypeName = ''
          item.workTypeId = ''
        })
      }
      this.company.forEach(item => {
        if (item.id === e) {
          // this.price = item.price
          this.item = item
         /* if (this.item && this.item.type == 1) {
            this.item.fee = 0
          }*/
          this.updatePickerOptions()
        }
      })
      this.tableData.forEach(item => {
        item.fee = this.price
      })
    },
    // åˆ‡æ¢æ–¹æ¡ˆ
    changeSolution1 (e) {
      getNewVersion(e)
        .then(res => {
          this.form.solutionId = res.id
          this.company.forEach(item => {
            if (item.id === res.id) {
              // this.price = item.price
              this.item = item
              if (this.item && this.item.type == 1) {
                this.item.fee = 0
              }
              this.updatePickerOptions()
            }
          })
        })
      this.tableData.forEach(item => {
        if(this.item.type != 0){
          item.fee = this.price
        }
      })
    },
    dele (index) {
      this.tableData.splice(index, 1)
    },
    getUser (obj) {
      this.seleData.forEach(id => {
        this.tableData.forEach(row => {
          if (id === row.idCard) {
            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.idCard)
    },
    getValue (list) {
      this.tableData.push(...list)
    }
  }
}
</script>
<style>
.el-picker-panel__footer .el-button--text.el-picker-panel__link-btn {
  display: none;
}
</style>
<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;
}
.info {
  width: 100%;
  font-size: 14px;
  color: black;
  span{
    display: block;
  }
}
</style>
company/src/components/enterprise/additionSubtractionApplication.vue
@@ -73,7 +73,7 @@
                <el-table-column
                    prop="serviceDays"
                    align="center"
                    label="在保时长(天)">
                    label="保单时长(天)">
                </el-table-column>
                <el-table-column
                    prop="currentFee"
company/src/components/enterprise/editFactoryChange.vue
@@ -72,7 +72,7 @@
                <el-table-column
                        prop="serviceDays"
                        align="center"
                        label="在保时长(天)">
                        label="保单时长(天)">
                </el-table-column>
                <el-table-column
                        prop="currentFee"
company/src/components/enterprise/factoryChange.vue
@@ -72,7 +72,7 @@
                <el-table-column
                    prop="serviceDays"
                    align="center"
                    label="在保时长(天)">
                    label="保单时长(天)">
                </el-table-column>
                <el-table-column
                    prop="currentFee"
company/src/components/enterprise/importEmployees.vue
@@ -9,95 +9,120 @@
        <el-form class="demo-form-inline">
            <el-form-item label="上传名单" required>
                <div style="width: 100%;display: flex;align-items: center;">
                    <el-button type="primary" @click="clickRef">点击上传</el-button>
                    <el-button type="primary" @click="clickRef" :loading="importing">点击上传</el-button>
                    <el-button type="text" @click="exportTemplate">名单模板.EXCEL</el-button>
                </div>
                <div style="font-size: 14px; color: black;" v-if="fileName">{{fileName}}</div>
            </el-form-item>
        </el-form>
        <input type="file" style="position: fixed; left: 0; top: -50px;" accept=".xlsx" ref="fileExcel" @change="result" />
        <input type="file"   @cancel="importing=false"  style="position: fixed; left: 0; top: -50px;" accept=".xlsx" ref="fileExcel" @change="result" />
      <template  v-slot:footer>
        <el-button type="primary"   :loading="confirming" @click="confirm">确定</el-button>
        <el-button @click="visible=false">返回</el-button>
      </template>
    </GlobalWindow>
</template>
<script>
    import BaseOpera from '@/components/base/BaseOpera'
    import GlobalWindow from '@/components/common/GlobalWindow'
    import { importExcel } from '@/api/business/member'
    export default {
        name: 'importEmployees',
        extends: BaseOpera,
        components: { GlobalWindow },
        data () {
            return {
                list: [],
                price: 0,
                type: null,
                solutionId: null,
                addList: [],
                fileName: ''
            }
        },
        methods: {
            open (title, obj) {
                this.title = title
                this.addList = []
                this.fileName = ''
                this.type = obj.type
                this.visible = true
                this.solutionId = obj.solutionId
                this.list = obj.arr
                this.price = obj.price
            },
            // å¯¼å‡ºæ¨¡æ¿
            exportTemplate () {
                // æŠ•保申请
                if (this.type === 1) {
                    window.open(process.env.VUE_APP_MEMBER1_URL)
                } else {
                    window.open(process.env.VUE_APP_MEMBER_URL)
                }
            },
            clickRef () {
                this.$refs.fileExcel.click()
            },
            result (e) {
                const data = new FormData()
                data.append('file', e.target.files[0])
                data.append('solutionId', this.solutionId)
                importExcel(data)
                    .then(res => {
                        res.forEach(item => {
                            item.memberName = item.name
                            item.fee = ''
                        })
                        this.addList = res
                        this.fileName = e.target.files[0].name
                    })
                    .catch(err => {
                        this.$message.error(err)
                        this.fileName = ''
                    })
                    .finally(() => {
                        this.$refs.fileExcel.value = null
                    })
            },
            confirm () {
                for (let i = 0; i < this.addList.length; i++) {
                    for (let a = 0; a < this.list.length; a++) {
                        if (this.addList[i].idCard === this.list[a].idcardNo) {
                            this.$message.warning(`[${this.addList[i].name}]员工重复`)
                            return
                        }
                    }
                }
                this.addList.forEach(item => {
                    item.fee = this.price || ''
                })
                this.$emit('result', this.addList)
                this.visible = false
            }
        }
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import { importExcel } from '@/api/business/member'
export default {
  name: 'importEmployees',
  extends: BaseOpera,
  components: { GlobalWindow },
  data () {
    return {
      importing:false,
      confirming:false,
      list: [],
      price: 0,
      type: null,
      solutionId: null,
      addList: [],
      fileName: ''
    }
  },
  methods: {
    open (title, obj) {
      this.title = title
      this.addList = []
      this.fileName = ''
      this.type = obj.type
      this.visible = true
      this.solutionId = obj.solutionId
      this.list = obj.arr
      this.price = obj.price
      this.importing=false
      this.confirming=false
    },
    // å¯¼å‡ºæ¨¡æ¿
    exportTemplate () {
      // æŠ•保申请
      if (this.type === 1) {
        window.open(process.env.VUE_APP_MEMBER1_URL)
      } else {
        window.open(process.env.VUE_APP_MEMBER_URL)
      }
    },
    clickRef () {
      if(this.importing){
        return
      }
      this.importing=true
      this.$refs.fileExcel.click()
    },
    result (e) {
      const data = new FormData()
      data.append('file', e.target.files[0])
      data.append('solutionId', this.solutionId)
      importExcel(data)
        .then(res => {
          res.forEach(item => {
            item.memberName = item.name
            item.fee = ''
          })
          this.addList = res
          this.fileName = e.target.files[0].name
          this.importing =false
        })
        .catch(err => {
          this.importing =false
          this.$message.error(err)
          this.fileName = ''
        })
        .finally(() => {
          this.importing =false
          this.$refs.fileExcel.value = null
        })
    },
    confirm () {
      if(this.addList==null || this.addList.length ==0){
        this.$message.error('导入人员名单为空,请先上传人员名单')
        return;
      }
      if(this.confirming){
        return
      }
      this.confirming = true
      for (let i = 0; i < this.addList.length; i++) {
        for (let a = 0; a < this.list.length; a++) {
          if (this.addList[i].idCard === this.list[a].idcardNo) {
            this.$message.warning(`[${this.addList[i].name}]员工重复`)
            return
          }
        }
      }
      this.addList.forEach(item => {
        item.fee = this.price
      })
      // this.confirming = false
      this.visible = false
      this.$emit('result', this.addList)
    }
  }
}
</script>
<style lang="scss" scoped>
company/src/components/enterprise/reinsurance.vue
@@ -73,7 +73,7 @@
                <el-table-column
                        prop="serviceDays"
                        align="center"
                        label="在保时长(天)">
                        label="保单时长(天)">
                </el-table-column>
                <el-table-column
                        prop="currentFee"
company/src/components/enterprise/selectEmployees.vue
@@ -6,7 +6,26 @@
        :confirm-working="isWorking"
        @confirm="confirm"
    >
        <el-input v-model="val" placeholder="查询员工姓名" @keypress.enter.native="getList" style="margin-bottom: 15px;"></el-input>
      <el-select
          v-model="memberIds"
          filterable
          multiple
          remote
          style="margin-bottom: 15px;width: 50%;margin-right: 10px"
          placeholder="请输入员工姓名或身份证号"
          :remote-method="searchSelData"
          :loading="loading">
        <el-option
            v-for="item in memberList"
            :key="item.id"
            :label="item.name+' ' +(item.idcardNo||'')"
            :value="item.id">
        </el-option>
      </el-select>
<!--
        <el-input v-model="val" placeholder="请输入员工姓名后,点击搜索按钮或者按下enter键进行查询" @keypress.enter.native="getList" style="margin-bottom: 15px;width: 50%;margin-right: 10px"></el-input>
-->
        <el-button type="primary" @click="getList" style="width: 100px;">搜索</el-button>
        <el-table
            :data="list"
            border
@@ -38,6 +57,10 @@
                label="所属工种">
            </el-table-column>
        </el-table>
      <template  v-slot:footer>
        <el-button type="primary"  :loading="confirming" @click="confirm">确定</el-button>
        <el-button @click="visible=false">返回</el-button>
      </template>
    </GlobalWindow>
</template>
@@ -51,8 +74,12 @@
  components: { GlobalWindow },
  data () {
    return {
      confirming:false,
      type: '',
      val: '',
      memberIds:[],
      loading:false,
      memberList:[],
      list: [],
      price: '',
      insuranceApplyId: '',
@@ -74,6 +101,7 @@
      this.notInInsuranceApplyId = ''
      this.val = ''
      this.price = obj.price
      this.confirming=false
      this.oldList = obj.arr
      if (obj.type) {
        this.type = obj.type
@@ -90,9 +118,13 @@
      }
      this.title = title
      this.visible = true
      this.getList()
      // this.getList()
    },
    confirm () {
      if(this.confirming){
        return
      }
      this.confirming=true
      if (this.seleData.length === 0) {
        this.$message.warning('至少选择一项内容')
        return
@@ -119,14 +151,20 @@
        item.fee = this.price
      })
      this.$emit('result', this.seleData)
      this.confirming=false
      this.visible = false
    },
    handleSelectionChange (e) {
      this.seleData = e
    },
    getList () {
      if(this.memberIds ==null || !this.memberIds.length){
        this.$message.error('请搜索框检查人员信息后进行搜索!')
        return;
      }
      findListByDTO({
        name: this.val,
        subtractMemberIds:this.memberIds,
        insuranceApplyId: this.insuranceApplyId,
        notInInsuranceApplyId: this.notInInsuranceApplyId,
        validTime: this.validTime
@@ -137,6 +175,22 @@
        })
        this.list = res
      })
    },
    searchSelData (query) {
      if (query !== '') {
        this.loading = true;
        findListByDTO({
          name: query,
          insuranceApplyId: this.insuranceApplyId,
          notInInsuranceApplyId: this.notInInsuranceApplyId,
          validTime: this.validTime
        }).then(res => {
          this.loading = false
          this.memberList = res
        }).finally(() => {
          this.loading = false
        })
      }
    }
  }
}
company/src/views/business/applyChangeShop.vue
@@ -12,7 +12,7 @@
          <el-option label="已退回" value="5"></el-option>
          <el-option label="已关闭" value="6"></el-option>
          <el-option label="待出单" value="7"></el-option>
          <el-option label="投保中" value="9"></el-option>
          <el-option label="批改申请中" value="9"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="投保企业" prop="companyId">
@@ -72,7 +72,7 @@
            <span  :class="'change-status'+row.status" v-if="row.status ===5 || row.status === 8">已退回</span>
            <span  :class="'change-status'+row.status" v-if="row.status ===6">已关闭</span>
            <span  :class="'change-status'+row.status" v-if="row.status ===7">待出单</span>
            <span  :class="'change-status'+row.status" v-if="row.status ===9">投保中</span>
            <span  :class="'change-status'+row.status" v-if="row.status ===9">批改申请中</span>
          </template>
        </el-table-column>
        <el-table-column prop="companyName" label="投保企业" min-width="100px"></el-table-column>
company/src/views/business/dispatchUnitReview.vue
@@ -68,6 +68,8 @@
                >
                    <template slot-scope="{row}">
                        <el-button type="text" @click="$refs.dispatchUnitDetailsPlat.open('派遣单位详情', row)" icon="el-icon-edit" v-permissions="['business:dispatchunit:update']">查看详情</el-button>
                      <el-button   v-if="row.unitStatus === 2 &&userInfo.type === 0"  type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:dispatchunit:delete']">删除</el-button>
                    </template>
                </el-table-column>
            </el-table>
@@ -84,53 +86,57 @@
</template>
<script>
    import BaseTable from '@/components/base/BaseTable'
    import TableLayout from '@/layouts/TableLayout'
    import Pagination from '@/components/common/Pagination'
    import dispatchUnitDetailsPlat from '@/components/business/dispatchUnitDetailsPlat'
    import {pageAll as companyAll} from '@/api/business/company'
    export default {
        name: 'dispatchUnitReview',
        extends: BaseTable,
        components: { TableLayout, Pagination, dispatchUnitDetailsPlat },
        data () {
            return {
                // æœç´¢
                searchForm: {
                    name: '',
                    companyId: '',
                    unitStatus:null,
                    worktypeStatus:null,
                },
              companyList:[]
            }
        },
        created () {
            this.config({
                module: '派遣单位信息表',
                api: '/business/dispatchUnit',
                'field.id': 'id',
                'field.main': 'id'
            })
            this.search()
          this.loadSelectList()
        },
      methods:{
        // handlePageChange() {
        //   this.search()
        // },
        // æœç´¢
        search1 () {
          this.searchForm.worktypeStatus=null
          this.search()
        },
        loadSelectList() {
          companyAll({}).then(res => {
            this.companyList = res
          }).catch(err => {
          })
        }
      }
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import dispatchUnitDetailsPlat from '@/components/business/dispatchUnitDetailsPlat'
import { pageAll as companyAll } from '@/api/business/company'
import { mapState } from 'vuex'
export default {
  name: 'dispatchUnitReview',
  extends: BaseTable,
  components: { TableLayout, Pagination, dispatchUnitDetailsPlat },
  data () {
    return {
      // æœç´¢
      searchForm: {
        name: '',
        companyId: '',
        unitStatus: null,
        worktypeStatus: null
      },
      companyList: []
    }
  },
  computed: {
    ...mapState(['userInfo'])
  },
  created () {
    this.config({
      module: '派遣单位信息表',
      api: '/business/dispatchUnit',
      'field.id': 'id',
      'field.main': 'id'
    })
    this.search()
    this.loadSelectList()
  },
  methods: {
    // handlePageChange() {
    //   this.search()
    // },
    // æœç´¢
    search1 () {
      this.searchForm.worktypeStatus = null
      this.search()
    },
    loadSelectList () {
      companyAll({}).then(res => {
        this.companyList = res
      }).catch(err => {
      })
    }
  }
}
</script>
company/src/views/business/policyList.vue
@@ -74,7 +74,7 @@
        <el-table-column prop="solutionsName" label="保险方案"  align="center" min-width="100px"></el-table-column>
        <el-table-column prop="code" label="保单号" align="center" min-width="100px"></el-table-column>
        <el-table-column prop="insureNum" label="投保人数" align="center" min-width="100px"></el-table-column>
        <el-table-column prop="serviceDays" 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" label="总费用(元)" align="center" min-width="100px"></el-table-column>
        <el-table-column prop="startTime" label="保险生效起期"  align="center" min-width="100px"></el-table-column>
company/src/views/business/switchCourtShop.vue
@@ -10,7 +10,7 @@
          <el-option label="已生效" value="2"></el-option>
<!--          <el-option label="申请退回" value="3"></el-option>-->
          <el-option label="待出单" value="7"></el-option>
          <el-option label="投保中" value="9"></el-option>
          <el-option label="批改申请中" value="9"></el-option>
          <!--                    3 4 éƒ½æ˜¯é€€å›žç”³è¯·ä¸­-->
          <el-option label="已退回" value="5"></el-option>
          <el-option label="已关闭" value="6"></el-option>
@@ -73,7 +73,7 @@
            <span :class="'change-status'+ row.status" v-if="row.status ===5 || row.status === 8">已退回</span>
            <span :class="'change-status'+ row.status" v-if="row.status ===6">已关闭</span>
            <span :class="'change-status'+ row.status" v-if="row.status ===7">待出单</span>
            <span :class="'change-status'+ row.status" v-if="row.status ===9">投保中</span>
            <span :class="'change-status'+ row.status" v-if="row.status ===9">批改申请中</span>
          </template>
        </el-table-column>
        <el-table-column prop="companyName" label="投保企业" min-width="100px"></el-table-column>
company/src/views/enterprise/add_subtract.vue
@@ -13,7 +13,7 @@
                    <el-option label="已退回" value="5"></el-option>
                    <el-option label="已关闭" value="6"></el-option>
                    <el-option label="待出单" value="7"></el-option>
                    <el-option label="投保中" value="9"></el-option>
                    <el-option label="批改申请中" value="9"></el-option>
                </el-select>
            </el-form-item>
          <el-form-item label="保险方案" prop="baseSolutionsId">
@@ -61,7 +61,7 @@
                        <span :class="'change-status'+row.status" v-if="row.status === 2">已生效</span>
                        <span :class="'change-status'+row.status" v-if="row.status === 6">已关闭</span>
                        <span :class="'change-status'+row.status" v-if="row.status === 7">待出单</span>
                        <span :class="'change-status'+row.status" v-if="row.status === 9">投保中</span>
                        <span :class="'change-status'+row.status" v-if="row.status === 9">批改申请中</span>
                        <span :class="'change-status'+row.status" v-if="row.status === 3 || row.status === 4">申请退回</span>
                        <span :class="'change-status'+row.status" v-if="row.status === 5 || row.status === 8">已退回</span>
                    </template>
company/src/views/enterprise/switchCourt.vue
@@ -10,7 +10,7 @@
                    <el-option label="已生效" value="2"></el-option>
                    <el-option label="申请退回" value="3"></el-option>
                  <el-option label="待出单" value="7"></el-option>
                  <el-option label="投保中" value="9"></el-option>
                  <el-option label="批改申请中" value="9"></el-option>
                    <!--                    3 4 éƒ½æ˜¯é€€å›žç”³è¯·ä¸­-->
                    <el-option label="已退回" value="5"></el-option>
                    <el-option label="已关闭" value="6"></el-option>
@@ -63,7 +63,7 @@
                    <span  :class="'change-status'+row.status" v-if="row.status ===5 || row.status === 8">已退回</span>
                    <span  :class="'change-status'+row.status" v-if="row.status ===6">已关闭</span>
                    <span :class="'change-status'+ row.status" v-if="row.status ===7">待出单</span>
                    <span :class="'change-status'+ row.status" v-if="row.status ===9">投保中</span>
                    <span :class="'change-status'+ row.status" v-if="row.status ===9">批改申请中</span>
                  </template>
                </el-table-column>
                <el-table-column prop="validCode" label="批单号" min-width="100px"></el-table-column>
server/platform/src/main/java/com/doumee/api/common/PublicController.java
@@ -83,6 +83,7 @@
            }
            NotifyDataReq data   = JSONObject.parseObject(req.get("data"), NotifyDataReq.class);
            insuranceApplyService.dealSignResult(data);
        }catch (Exception e){
            log.setRepose("处理异常;"+e.getMessage());
            context.put("success",false);