k94314517
2024-03-29 b01e956a0dab1290cd7f892d9cbc481189fbefaf
Merge remote-tracking branch 'origin/1.0.1' into 1.0.1
已添加3个文件
已修改11个文件
1144 ■■■■■ 文件已修改
company/.env.developmentCom 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/.env.developmentShop 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/package.json 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaInsuranceApplyShopWindow.vue 899 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/company.vue 160 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/insuranceApplyShop.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/shop.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/system/menuShop.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/company/src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/config/shiro/ShiroRealm.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/.env.developmentCom
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
# å¼€å‘环境配置
NODE_ENV = 'development'
# æŽ¥å£å‰ç¼€
# VUE_APP_API_PREFIX = '/yyb_web_api'
# ä¼ä¸šç«¯-仁康
# VUE_APP_API = 'http://192.168.0.186:10031/'
# VUE_APP_API = 'https://dmtest.ahapp.net/yyb_web_api/'
# å¹³å°ç«¯-仁康
# VUE_APP_API = 'http://192.168.0.186:10030/'
VUE_APP_API = 'https://dmtest.ahapp.net/yyb_admin_api/'
# å¹³å°ç«¯-萍姐
# VUE_APP_API = 'http://192.168.0.105:10023/'
VUE_APP_API = 'http://localhost:10032/'
company/.env.developmentShop
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
# å¼€å‘环境配置
NODE_ENV = 'development'
# æŽ¥å£å‰ç¼€
# VUE_APP_API_PREFIX = '/yyb_web_api'
# ä¼ä¸šç«¯-仁康
# VUE_APP_API = 'http://192.168.0.186:10031/'
# VUE_APP_API = 'https://dmtest.ahapp.net/yyb_web_api/'
# å¹³å°ç«¯-仁康
# VUE_APP_API = 'http://192.168.0.186:10030/'
VUE_APP_API = 'https://dmtest.ahapp.net/yyb_admin_api/'
# å¹³å°ç«¯-萍姐
# VUE_APP_API = 'http://192.168.0.105:10023/'
VUE_APP_API = 'http://localhost:10031/'
company/package.json
@@ -4,6 +4,8 @@
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
    "serveshop": "vue-cli-service serve --mode developmentShop",
    "servecom": "vue-cli-service serve --mode developmentCom",
    "build:pro": "vue-cli-service build",
    "build:pro_v2": "vue-cli-service build --mode production_v2",
    "build:dev": "vue-cli-service build --mode staging",
company/src/components/business/OperaInsuranceApplyShopWindow.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,899 @@
<template>
    <GlobalWindow
        :title="title"
        width="100%"
        :visible.sync="visible"
        :confirm-working="isWorking"
        @confirm="confirm"
    >
        <div class="desc">
            <div class="desc_item">
                <div class="desc_item_label" v-if="userInfo.type === 1 &&(model.statusCollect === 2 || model.statusCollect === 3)">
                    <div class="desc_item_label_left">
                        <span>保险到期还有 <b style="color: #F95601;">{{model.loseEfficacyDays ? model.loseEfficacyDays : '-'}}</b> å¤©</span>
                        <el-button type="primary" v-if="model.statusCollect === 2 || model.statusCollect === 3" @click="$refs.OperaInsuranceApply.open('续保', { id: dataId, type: 1 })">一键续保</el-button>
                        <el-button type="primary" v-if="model.statusCollect === 2" @click="$refs.additionSubtractionApplication.open('加减保申请', { id: dataId })">加减保申请</el-button>
                        <el-button type="primary" v-if="model.statusCollect === 2" @click="$refs.factoryChange.open('更换派遣单位申请', { id: dataId })">更换派遣单位申请</el-button>
                    </div>
                </div>
                <div class="desc_item_label">
                    <div class="desc_item_label_left">
                        <span>投保企业:{{ model.companyName }}</span>
                      <span>保单状态:<span  :class="'apply-status'+model.status" >{{ model.statusInfo }}</span></span>
                        <span>提交时间:{{ model.createDate }}</span>
                    </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 v-if="model.status == 4" type="primary" @click="closeOrder">关闭订单</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>
<!--                          goSign-->
                          <el-button v-if="model.status == 2" type="primary" @click="$refs.operaverifyPhoneNumberWindew.open('验证手机号')">签署投保单</el-button>
                      </template>
                    <template v-else>
                      <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="[2,10].includes(model.status) && model.solutionType ==0" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('上传投保单',model,2)">上传投保单</el-button>
                      <el-button v-if="model.status == 3 && model.solutionType ==0" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('上传保险单',model,3)">上传保险单</el-button>
                      <el-button  v-if="[6,7,8,11].includes(model.status) && model.solutionType ==0" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('驳回退回申请',model,5)">驳回退回申请</el-button>
                      <el-button v-if="model.status == 0 && model.solutionType ==0" type="primary" @click="$refs.InsuranceDetails.open('投保审核',model,1)">投保审核</el-button>
                      <el-button v-if="![1,4,,5].includes(model.status) && model.solutionType ==0" type="danger" @click="$refs.OperaInsuranceApplyCheckWindow.open('退回投保',model,1)">退回投保</el-button>
                      <el-button v-if="model.status == 5  && model.solutionType ==0" type="danger" @click="$refs.OperaInsuranceApplyCheckWindow.open('修改保险单',model,4)">修改保险单</el-button>
                    </template>
                  </div>
                </div>
                <div class="desc_item_from">
                    <el-table
                        :data="tableData"
                        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-tab-pane label="更换派遣单位记录" name="2"></el-tab-pane>
                    </el-tabs>
                </div>
                <div class="desc_item_search">
                    <el-form :inline="true" :model="formInline" ref="sou" class="demo-form-inline">
                        <template v-if="activeName === '0'">
                            <el-form-item label="在保状态" prop="applyStatus">
                                <el-select v-model="formInline.applyStatus" @change="search" placeholder="请选择">
                                    <el-option label="全部" value="0"></el-option>
                                    <el-option label="保障中" value="1"></el-option>
                                    <el-option label="不在保" value="2"></el-option>
                                </el-select>
                            </el-form-item>
                            <el-form-item label="派遣单位" prop="duId">
                                <el-select v-model="formInline.duId" placeholder="请选择" @change="search">
                                    <el-option
                                        v-for="item in dwList"
                                        :key="item.id"
                                        :label="item.name"
                                        :value="item.id">
                                    </el-option>
                                </el-select>
                            </el-form-item>
                            <el-form-item label="所属工种" prop="workTypeId">
                                <el-select v-model="formInline.workTypeId" placeholder="请选择" @change="search">
                                    <el-option
                                        v-for="item in gzList"
                                        :key="item.id"
                                        :label="item.name"
                                        :value="item.id">
                                    </el-option>
                                </el-select>
                            </el-form-item>
                            <el-form-item label="员工姓名" prop="memberName">
                                <el-input v-model="formInline.memberName" placeholder="请输入" @keypress.enter.native="search"></el-input>
                            </el-form-item>
                            <el-form-item label="保险生效起期" prop="end">
                                <el-date-picker
                                    @change="changeStart"
                                    v-model="formInline.end"
                                    type="daterange"
                                    format="yyyy å¹´ MM æœˆ dd æ—¥"
                                    value-format="yyyy-MM-dd"
                                    range-separator="至"
                                    start-placeholder="开始日期"
                                    end-placeholder="结束日期">
                                </el-date-picker>
                            </el-form-item>
                            <el-form-item label="保险生效止期" prop="start">
                                <el-date-picker
                                    @change="changeEnd"
                                    v-model="formInline.start"
                                    type="daterange"
                                    format="yyyy å¹´ MM æœˆ dd æ—¥"
                                    value-format="yyyy-MM-dd"
                                    range-separator="至"
                                    start-placeholder="开始日期"
                                    end-placeholder="结束日期">
                                </el-date-picker>
                            </el-form-item>
                        </template>
                        <template v-else>
                            <el-form-item label="状态" prop="applyStatus">
                                <el-select v-model="formInline.applyStatus" @change="search" placeholder="请选择">
                                    <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="5"></el-option>
                                    <el-option label="已关闭" value="6"></el-option>
                                </el-select>
                            </el-form-item>
                            <el-form-item label="批单生效起期" prop="end">
                                <el-date-picker
                                    @change="changeStart"
                                    v-model="formInline.end"
                                    type="daterange"
                                    format="yyyy å¹´ MM æœˆ dd æ—¥"
                                    value-format="yyyy-MM-dd"
                                    range-separator="至"
                                    start-placeholder="开始日期"
                                    end-placeholder="结束日期">
                                </el-date-picker>
                            </el-form-item>
                        </template>
                        <el-form-item>
                            <el-button type="primary" style="width: 80px;" @click="search">查询</el-button>
                            <el-button @click="resetting" style="width: 80px;">重置</el-button>
                            <el-button type="primary" style="width: 80px;" @click="exportExcel" v-if="activeName === '0'">导出名单</el-button>
                        </el-form-item>
                    </el-form>
                </div>
                <div class="desc_item_from">
                    <el-table
                        :data="list"
                        border
                        ref="table"
                        v-if="activeName === '0'"
                        style="width: 100%">
                        <el-table-column label="序号"
                                         align="center">
                            <template slot-scope="scope">
                                <span>{{scope.$index + 1}}</span>
                            </template>
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="memberName"
                            align="center"
                            label="员工姓名">
                        </el-table-column>
                        <el-table-column
                            align="center"
                            :key="Math.random()"
                            label="性别">
                            <template slot-scope="{row}">
                                <span v-if="row.sex === 0">男</span>
                                <span v-else>女</span>
                            </template>
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="idcardNo"
                            align="center"
                            label="身份证号">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="duName"
                            align="center"
                            label="派遣单位">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="workTypeName"
                            align="center"
                            label="所属工种">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="startTime"
                            align="center"
                            label="保险生效起期">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="endTime"
                            align="center"
                            label="保险生效止期">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            align="center"
                            prop="fee"
                            label="产生费用">
                        </el-table-column>
                    </el-table>
                    <el-table
                        :data="list1"
                        border
                        ref="table"
                        v-if="activeName === '1'"
                        style="width: 100%">
                        <el-table-column
                            label="序号"
                            align="center">
                            <template slot-scope="scope">
                                <span>{{scope.$index + 1}}</span>
                            </template>
                        </el-table-column>
                        <el-table-column label="保单状态" :key="Math.random()"
                             align="center">
                            <template slot-scope="{row}">
                                <span :class="'change-status'+row.status" v-if="row.status === 0">待签署</span>
                                <span :class="'change-status'+row.status" v-if="row.status === 1">待审核</span>
                                <span :class="'change-status'+row.status" v-if="row.status === 2">已生效</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>
                                <span :class="'change-status'+row.status" v-if="row.status === 6">已关闭</span>
                            </template>
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="applyCode"
                            align="center"
                            label="批单号">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="addNum"
                            align="center"
                            label="增加人数(人)">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="delNum"
                            align="center"
                            label="减少人数(人)">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="createDate"
                            align="center"
                            label="提交时间">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="applyStartTime"
                            align="center"
                            label="批单生效起期">
                        </el-table-column>
                        <el-table-column
                            align="center"
                            :key="Math.random()"
                            label="操作">
                            <template slot-scope="{row}">
                                <el-button type="text" @click="$refs.OperaApplyChangeDetailWindow.open('加减保详情', row)">查看详情</el-button>
                            </template>
                        </el-table-column>
                    </el-table>
                    <el-table
                        :data="list2"
                        border
                        ref="table"
                        v-if="activeName === '2'"
                        style="width: 100%">
                        <el-table-column label="序号"
                                         align="center">
                            <template slot-scope="scope">
                                <span>{{scope.$index + 1}}</span>
                            </template>
                        </el-table-column>
                        <el-table-column
                            align="center" label="保单状态" :key="Math.random()">
                            <template slot-scope="{row}">
                                <span :class="'change-status'+row.status" v-if="row.status === 0">待签署</span>
                                <span :class="'change-status'+row.status" v-if="row.status === 1">待审核</span>
                                <span :class="'change-status'+row.status" v-if="row.status === 2">已生效</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>
                                <span :class="'change-status'+row.status" v-if="row.status === 6">已关闭</span>
                            </template>
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            align="center"
                            prop="applyCode"
                            label="批单号">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="changeNum"
                            align="center"
                            label="更换派遣单位人数">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="createDate"
                            align="center"
                            label="提交时间">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            prop="applyStartTime"
                            align="center"
                            label="批单生效起期">
                        </el-table-column>
                        <el-table-column
                            :key="Math.random()"
                            align="center"
                            label="操作">
                            <template slot-scope="{row}">
                                <el-button type="text" @click="$refs.OperaApplyChangeUnitDetailWindow.open('更换派遣单位详情', row)">查看详情</el-button>
                            </template>
                        </el-table-column>
                    </el-table>
                    <div class="desc_item_from_page">
                        <el-pagination
                            @current-change="handleCurrentChange"
                            :current-page="currentPage"
                            :page-size="10"
                            layout="total, prev, pager, next, jumper"
                            :total="total">
                        </el-pagination>
                    </div>
                </div>
                <div class="desc_item_review">
                    <div class="desc_item_review_label">审核流程</div>
                  <el-timeline :reverse="reverse">
                    <el-timeline-item
                        v-for="(activity, index) in activities"
                        :key="index">
                      <div style="display: flex; flex-direction: column;">
                        <span style="font-size: 16px; font-weight: 400; color: black;">
                            {{activity.title}}
                            <span style="font-size: 16px; font-weight: 400; color: black; margin-left: 10px;" v-if="[1, 2, 5, 6, 9, 11, 22].includes(activity.objType)">
                              {{activity.content}}
                            </span>
                        </span>
                        <span style="margin-top: 5px; font-size: 12px; font-weight: 400; color: #999999;">
                            æ“ä½œå‘˜-{{activity.creatorName}}({{activity.creatorType == 1 ? activity.companyName: "平台端"}}){{activity.createDate}}
                        </span>
                      </div>
                    </el-timeline-item>
                  </el-timeline>
                </div>
            </div>
        </div>
        <InsuranceDetails ref="InsuranceDetails" @success="successEvent" />
        <OperaInsuranceApplyCheckWindow ref="OperaInsuranceApplyCheckWindow" @success="successEvent" />
        <!--    ä¼ä¸šç”³è¯·é€€å›ž    -->
        <applyReturn ref="applyReturn" @success="successEvent" />
        <!--    æ–°å¢žæŠ•保    -->
        <OperaInsuranceApply ref="OperaInsuranceApply" @success="successEvent" />
        <!--    åŠ å‡ä¿ç”³è¯·    -->
        <additionSubtractionApplication ref="additionSubtractionApplication" @success="successEvent" />
        <!--    æ›´æ¢æ´¾é£å•位申请    -->
        <factoryChange ref="factoryChange" @success="successEvent" />
        <!-- åŠ å‡ä¿è¯¦æƒ… -->
        <OperaApplyChangeDetailWindow ref="OperaApplyChangeDetailWindow" @success="successEvent"/>
        <!-- æ›´æ¢æ´¾é£å•位详情 -->
        <OperaApplyChangeUnitDetailWindow ref="OperaApplyChangeUnitDetailWindow" @success="successEvent"/>
        <!--    éªŒè¯æ‰‹æœºå·    -->
        <operaverifyPhoneNumberWindew ref="operaverifyPhoneNumberWindew" @success="goSign" />
        <template v-slot:footer>
            <el-button @click="visible=false">返回</el-button>
        </template>
    </GlobalWindow>
</template>
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import InsuranceDetails from '@/components/business/InsuranceDetails'
import OperaInsuranceApplyCheckWindow from '@/components/business/OperaInsuranceApplyCheckWindow'
import additionSubtractionApplication from '@/components/enterprise/additionSubtractionApplication'
import factoryChange from '@/components/enterprise/factoryChange'
import operaverifyPhoneNumberWindew from '@/components/business/operaverifyPhoneNumberWindew'
import OperaApplyChangeDetailWindow from '@/components/business/OperaApplyChangeDetailWindow'
import OperaApplyChangeUnitDetailWindow from '@/components/business/OperaApplyChangeUnitDetailWindow'
import applyReturn from '@/components/enterprise/applyReturn'
import { getDetail, getSignLink, applyDetailPage, applyChagneDetailPage, exportExcel, applyChagneDetailExcel, applyOpt } from "@/api/business/insuranceApply";
import { findListByDTO } from "@/api/business/dispatchUnit";
import { fetchList } from "@/api/business/applyChange";
import { findListByDTO as worktypeFindListByDTO } from "@/api/business/worktype";
import OperaInsuranceApply from '@/components/enterprise/OperaInsuranceApplyWindow'
import { mapState } from 'vuex'
export default {
  name: 'OperaInsuranceApplyWindow1',
  extends: BaseOpera,
  components: {
      GlobalWindow,
      InsuranceDetails,
      OperaInsuranceApplyCheckWindow,
      applyReturn,
      OperaInsuranceApply,
      additionSubtractionApplication,
      factoryChange,
      OperaApplyChangeDetailWindow,
      OperaApplyChangeUnitDetailWindow,
      operaverifyPhoneNumberWindew
  },
  data () {
    return {
      // è¡¨å•数据
      dataId:null,
      model: {},
      form: {
          id: null,
          editDate: ''
      },
      // éªŒè¯è§„则
      rules: {
      },
      formInline: {
          applyStatus: '',
          duId: '',
          workTypeId: '',
          memberName: '',
          end: [],
          start: [],
          endTimeE: '',
          endTimeS: '',
          startTimeE: '',
          startTimeS: '',
          type: ''
      },
      visible1: false,
      visible2: false,
      visible3: false,
      visible4: false,
      visible5: false,
      reverse: false,
      radio: 0,
      activities: [],
      tableData: [],
        list: [],
        list1: [],
        list2: [],
        dwList: [],
        gzList: [],
      activeName: '0',
        total: 0,
      currentPage: 1
    }
  },
  created () {
      this.config({
          api: '/business/insuranceApply',
          'field.id': 'id'
      })
  },
    computed: {
      ...mapState(['userInfo'])
    },
  methods: {
     open(title,target){
        this.visible = true;
        this.title = title
        this.model = {}
        this.dataId = null
        this.dataId = target.id
        this.formInline.applyStatus = ''
        this.formInline.duId = ''
        this.formInline.workTypeId = ''
        this.formInline.memberName = ''
        this.formInline.end = ''
        this.formInline.start = ''
        this.formInline.endTimeE = ''
        this.formInline.endTimeS = ''
        this.formInline.startTimeE = ''
        this.formInline.startTimeS = ''
        this.formInline.type = ''
        this.activeName = '0'
        this.getDetail()
        this.getList()
        this.getDW()
        this.getGZ()
     },
      // å…³é—­è®¢å•
      closeOrder () {
          this.$confirm('确认关闭此订单吗?', '提示', {
              confirmButtonText: '确定',
              cancelButtonText: '取消',
              type: 'warning'
          }).then(() => {
              applyOpt({
                  applyId: this.dataId,
                  optType: 2
              }).then(res => {
                  this.getDetail()
              })
          }).catch(() => {
          });
      },
      // æ´¾é£å•位
      getDW() {
          findListByDTO({ applyId: this.dataId })
            .then(res => {
                this.dwList = res
            })
      },
      // å·¥ç§
      getGZ() {
          worktypeFindListByDTO({
              id: this.dataId,
              queryType: 2
          }).then(res => {
              this.gzList = res
          })
      },
      resetting() {
         if (this.activeName === '0') {
             this.formInline.applyStatus = '0'
         } else {
             this.formInline.applyStatus = ''
         }
         this.formInline.start = ''
          this.formInline.startTimeE = ''
          this.formInline.endTimeE = ''
         this.list = []
          this.list1 = []
          this.list2 = []
          this.formInline.duId = ''
          this.formInline.workTypeId = ''
          this.formInline.memberName = ''
            this.formInline.end = []
            this.formInline.end = []
            this.formInline.endTimeE = ''
            this.formInline.endTimeS = ''
            this.formInline.startTimeE = ''
            this.formInline.startTimeS = ''
            this.search()
      },
      search() {
          this.currentPage = 1
          this.getList()
      },
      changeStart(e) {
            if (e.length > 0) {
                this.formInline.startTimeS = e[0]
                this.formInline.startTimeE = e[1]
            } else {
                this.formInline.startTimeS = ''
                this.formInline.startTimeE = ''
            }
            this.search()
      },
      changeEnd(e) {
         if (e.length > 0) {
             this.formInline.endTimeS = e[0]
             this.formInline.endTimeE = e[1]
         } else {
             this.formInline.endTimeS = ''
             this.formInline.endTimeE = ''
         }
          this.search()
      },
      exportExcel() {
          if (this.activeName === '0') {
              exportExcel({
                  capacity: 10,
                  page: this.currentPage,
                  model: {
                      solutionName: this.tableData[0].solutionsName,
                      applyId: this.dataId,
                      applyStatus: this.formInline.applyStatus,
                      duId: this.formInline.duId,
                      workTypeId: this.formInline.workTypeId,
                      memberName: this.formInline.memberName,
                      endTimeE: this.formInline.endTimeE,
                      endTimeS: this.formInline.endTimeS,
                      startTimeE: this.formInline.startTimeE,
                      startTimeS: this.formInline.startTimeS
                  }
              }).then(response => {
                  this.download(response)
              })
          } else {
              applyChagneDetailExcel({
                  capacity: 10,
                  page: this.currentPage,
                  model: {
                      applyId: this.dataId,
                      applyStatus: this.formInline.applyStatus,
                      duId: this.formInline.duId,
                      workTypeId: this.formInline.workTypeId,
                      memberName: this.formInline.memberName,
                      endTimeE: this.formInline.endTimeE,
                      endTimeS: this.formInline.endTimeS,
                      startTimeE: this.formInline.startTimeE,
                      startTimeS: this.formInline.startTimeS,
                      type: this.formInline.type
                  }
              }).then(response => {
                  this.download(response)
              })
          }
      },
      getList() {
         if (this.activeName === '0') {
             applyDetailPage({
                 capacity: 10,
                 page: this.currentPage,
                 model: {
                     applyId: this.dataId,
                     applyStatus: this.formInline.applyStatus,
                     duId: this.formInline.duId,
                     workTypeId: this.formInline.workTypeId,
                     memberName: this.formInline.memberName,
                     endTimeE: this.formInline.endTimeE,
                     endTimeS: this.formInline.endTimeS,
                     startTimeE: this.formInline.startTimeE,
                     startTimeS: this.formInline.startTimeS
                 }
             }).then(res => {
                 this.list = res.records
                 this.total = res.total
                 this.$nextTick(() => {
                     console.log(this.$refs.table)
                     if (this.$refs.table && this.$refs.table.doLayout) {
                         this.$refs.table.doLayout();
                     }
                 });
             })
         } else {
             fetchList({
                 capacity: 10,
                 page: this.currentPage,
                 model: {
                     applyId: this.dataId,
                     status: this.formInline.applyStatus,
                     endTimeE: this.formInline.endTimeS,
                     endTimeS: this.formInline.startTimeS,
                     type: this.formInline.type
                 }
             }).then(res => {
                 if (this.activeName === '1') {
                     this.list1 = res.records
                 } else if (this.activeName === '2') {
                     this.list2 = res.records
                 }
                 this.total = res.total
                 this.$nextTick(() => {
                     console.log(this.$refs.table)
                     if (this.$refs.table && this.$refs.table.doLayout) {
                         this.$refs.table.doLayout();
                     }
                 });
             })
         }
      },
      handleClick(e) {
            this.activeName = e.index
            if (e.index === '1') {
                this.formInline.type = 0
            } else if (e.index === '2') {
                this.formInline.type = 1
            }
            this.resetting()
      },
    goSign(){
      getSignLink(this.dataId).then(res => {
        setTimeout(() => {
          window.open(res)
        }, 500);
      }).catch(err => {
       this.$tip.apiFailed(err)
      })
    },
    viewToubaodan(){
       if(this.model.toubaodanSignedFile && this.model.toubaodanSignedFile.fileurlFull){
         setTimeout(() => {
           window.open(this.model.toubaodanSignedFile.fileurlFull)
         }, 500);
       } else if(this.model.toubaodanFile && this.model.toubaodanFile.fileurlFull){
         setTimeout(() => {
           window.open(this.model.toubaodanFile.fileurlFull)
             },500)
       }
    },
    viewBaoxiandan(){
      if(this.model.baoxiandanFile && this.model.baoxiandanFile.fileurlFull){
        window.open(this.model.baoxiandanFile.fileurlFull)
      }
    },
    handleSizeChange(val){
        console.log(val)
    },
    handleCurrentChange(val){
        console.log(val)
        this.currentPage = val
        this.getList()
    },
    onSubmit(){
    },
     getDetail(){
      getDetail(this.dataId).then(res => {
        this.model = res
        this.tableData = new Array()
        this.tableData.push(res)
        console.log(this.tableData)
        this.activities = res.applyLogList
      }).catch(err => {
      })
    },
    successEvent(){
       // this.visible=false
      this.getDetail()
      this.$emit('success')
    }
  }
}
</script>
<style scoped>
 ::v-deep .el-tabs__item{
    font-weight: 600;
 }
</style>
<style lang="scss" scoped>
    .form {
        width: 100%;
        display: flex;
        align-items: center;
        flex-direction: column;
        .form_span {
            width: 100%;
            display: flex;
            align-items: start;
            flex-direction: column;
            margin-bottom: 20px;
            span {
                font-size: 14px;
                &:nth-child(1) {
                    color: black;
                    margin-bottom: 5px;
                }
                &:nth-child(2) {
                    color: #8c939d;
                }
            }
        }
        .form_item {
            width: 100%;
            display: flex;
            align-items: center;
            margin-bottom: 20px;
            &:last-child {
                margin: 0 !important;
            }
            .form_item_label {
                flex-shrink: 0;
                width: 170px;
                color: black;
                font-size: 14px;
                span {
                    color: red;
                    font-size: 14px;
                }
            }
            .form_item_val {
                flex: 1;
                /*height: 40px;*/
                margin-left: 20px;
                textarea {
                    width: 100%;
                    height: 70px;
                    border: 1px solid #cbcbcb;
                    padding: 10px;
                    outline: none;
                    box-sizing: border-box;
                }
                input {
                    width: 100%;
                    height: 40px;
                    outline: none;
                    border-radius: 5px;
                    border: 1px solid #cbcbcb;
                    padding: 0 20px;
                    box-sizing: border-box;
                }
            }
        }
    }
    .desc {
        width: 100%;
        .desc_item {
            width: 100%;
            display: flex;
            flex-direction: column;
            .desc_item_label {
                width: 100%;
                display: flex;
                align-items: center;
                justify-content: space-between;
                margin-bottom: 10px;
                span {
                    font-size: 14px;
                    color: black;
                    margin-right: 30px;
                }
            }
            .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;
            }
            .desc_item_search {
                width: 100%;
                margin-bottom: 20px;
            }
            .desc_item_review {
                width: 100%;
                .desc_item_review_label {
                    font-size: 20px;
                    color: black;
                    font-weight: bold;
                    margin-bottom: 15px;
                }
            }
        }
    }
</style>
company/src/views/business/company.vue
@@ -77,85 +77,85 @@
</template>
<script>
    import BaseTable from '@/components/base/BaseTable'
    import TableLayout from '@/layouts/TableLayout'
    import Pagination from '@/components/common/Pagination'
    import OperaCompanyWindow from '@/components/business/OperaCompanyWindow'
    import OperaCompanyDescWindow from '@/components/business/OperaCompanyDescWindow'
    import { updateStatus, getById } from '@/api/business/company'
    export default {
        name: 'Company',
        extends: BaseTable,
        components: { TableLayout, Pagination, OperaCompanyWindow, OperaCompanyDescWindow },
        data () {
            return {
                // æœç´¢
                searchForm: {
                    name: '',
                    username: '',
                    type:0
                }
            }
        },
        created () {
            this.config({
                module: '企业信息表',
                api: '/business/company',
                'field.id': 'id',
                'field.main': 'id'
            })
            this.search()
        },
        methods: {
            edit(row) {
                getById(row.id)
                    .then(res => {
                        let form = res;
                        form.type = 1
                        form.file = {
                            imgurl: '',
                            imgurlfull: ''
                        }
                        form.file1 = {
                            imgurl: '',
                            imgurlfull: ''
                        }
                        form.file2 = {
                            imgurl: '',
                            imgurlfull: ''
                        }
                        form.file3 = {
                            imgurl: '',
                            imgurlfull: ''
                        }
                        form.file.imgurl = res.businessImg.fileurl
                        form.file.imgurlfull = res.businessImg.fileurlFull
                      if( res.idcardImgList ==null){
                        res.idcardImgList = new Array();
                      }
                      if( res.idcardImgList && res.idcardImgList.length>0){
                        form.file1.imgurl = res.idcardImgList[0].fileurl
                        form.file1.imgurlfull = res.idcardImgList[0].fileurlFull
                      }
                      if( res.idcardImgList && res.idcardImgList.length>1){
                        form.file2.imgurl =  res.idcardImgList[1].fileurl
                        form.file2.imgurlfull = res.idcardImgList[1].fileurlFull
                      }
                        form.file3.imgurl = res.signImg.fileurl
                        form.file3.imgurlfull = res.signImg.fileurlFull
                        this.$refs.operaCompanyWindow.open('编辑企业', form)
                    })
            },
            // ä¿®æ”¹çŠ¶æ€
            changeStatus(status, row) {
                updateStatus({ id: row.id, status })
                    .then(res => {
                        this.search()
                    })
                    .catch(err => {
                        row.status = row.status === 0 ? 1 : 0
                    })
            }
        }
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaCompanyWindow from '@/components/business/OperaCompanyWindow'
import OperaCompanyDescWindow from '@/components/business/OperaCompanyDescWindow'
import { updateStatus, getById } from '@/api/business/company'
export default {
  name: 'Company',
  extends: BaseTable,
  components: { TableLayout, Pagination, OperaCompanyWindow, OperaCompanyDescWindow },
  data () {
    return {
      // æœç´¢
      searchForm: {
        name: '',
        username: '',
        type: 0
      }
    }
  },
  created () {
    this.config({
      module: '企业信息表',
      api: '/business/company',
      'field.id': 'id',
      'field.main': 'id'
    })
    this.search()
  },
  methods: {
    edit (row) {
      getById(row.id)
        .then(res => {
          const form = res
          form.type = 1
          form.file = {
            imgurl: '',
            imgurlfull: ''
          }
          form.file1 = {
            imgurl: '',
            imgurlfull: ''
          }
          form.file2 = {
            imgurl: '',
            imgurlfull: ''
          }
          form.file3 = {
            imgurl: '',
            imgurlfull: ''
          }
          form.file.imgurl = res.businessImg ? res.businessImg.fileurl : null
          form.file.imgurlfull = res.businessImg ? res.businessImg.fileurlFull : null
          if (res.idcardImgList == null) {
            res.idcardImgList = new Array()
          }
          if (res.idcardImgList && res.idcardImgList.length > 0) {
            form.file1.imgurl = res.idcardImgList[0].fileurl
            form.file1.imgurlfull = res.idcardImgList[0].fileurlFull
          }
          if (res.idcardImgList && res.idcardImgList.length > 1) {
            form.file2.imgurl = res.idcardImgList[1].fileurl
            form.file2.imgurlfull = res.idcardImgList[1].fileurlFull
          }
          form.file3.imgurl = res.signImg ? res.signImg.fileurl : null
          form.file3.imgurlfull = res.signImg ? res.signImg.fileurlFull : null
          this.$refs.operaCompanyWindow.open('编辑企业', form)
        })
    },
    // ä¿®æ”¹çŠ¶æ€
    changeStatus (status, row) {
      updateStatus({ id: row.id, status })
        .then(res => {
          this.search()
        })
        .catch(err => {
          row.status = row.status === 0 ? 1 : 0
        })
    }
  }
}
</script>
company/src/views/business/insuranceApplyShop.vue
@@ -79,7 +79,7 @@
                    fixed="right"
                >
                    <template slot-scope="{row}">
                        <el-button type="text" @click="$refs.operaInsuranceApplyWindow.open('投保详情', row)" icon="el-icon-edit" v-permissions="['business:insuranceapply:update']">查看详情</el-button>
                        <el-button type="text" @click="$refs.operaInsuranceApplyShopWindow.open('委托投保详情', row)" icon="el-icon-edit" v-permissions="['business:insuranceapply:update']">查看详情</el-button>
                    </template>
                </el-table-column>
            </el-table>
@@ -91,7 +91,7 @@
            </pagination>
        </template>
        <!-- æ–°å»º/修改 -->
        <OperaInsuranceApplyWindow ref="operaInsuranceApplyWindow" @success="handlePageChange"/>
        <OperaInsuranceApplyShopWindow ref="operaInsuranceApplyShopWindow" @success="handlePageChange"/>
    </TableLayout>
</template>
@@ -101,11 +101,11 @@
import Pagination from '@/components/common/Pagination'
import { all as solutionAll } from '@/api/business/solutions'
import { pageAll as companyAll } from '@/api/business/company'
import OperaInsuranceApplyWindow from '@/components/business/OperaInsuranceApplyWindow'
import OperaInsuranceApplyShopWindow from '@/components/business/OperaInsuranceApplyShopWindow'
export default {
  name: 'InsuranceApply',
  extends: BaseTable,
  components: { TableLayout, Pagination, OperaInsuranceApplyWindow },
  components: { TableLayout, Pagination, OperaInsuranceApplyShopWindow },
  data () {
    return {
      // æœç´¢
@@ -114,7 +114,7 @@
        createTimeE: '',
        time: [],
        baseSolutionId: '',
        solutionType: null,
        solutionType: 1,
        companyId: '',
        statusCollect: ''
      },
company/src/views/business/shop.vue
@@ -122,8 +122,9 @@
            imgurl: '',
            imgurlfull: ''
          }
          form.file.imgurl = res.businessImg.fileurl
          form.file.imgurlfull = res.businessImg.fileurlFull
          form.file.imgurl = res.businessImg? res.businessImg.fileurl:null
          form.file.imgurlfull = res.businessImg?res.businessImg.fileurlFull:null
          if (res.idcardImgList == null) {
            res.idcardImgList = new Array()
          }
@@ -135,8 +136,8 @@
            form.file2.imgurl = res.idcardImgList[1].fileurl
            form.file2.imgurlfull = res.idcardImgList[1].fileurlFull
          }
          form.file3.imgurl = res.signImg.fileurl
          form.file3.imgurlfull = res.signImg.fileurlFull
          form.file3.imgurl = res.signImg?res.signImg.fileurl:null
          form.file3.imgurlfull = res.signImg?res.signImg.fileurlFull:null
          this.$refs.operaShopWindow.open('编辑商户', form)
        })
    },
company/src/views/system/menuShop.vue
@@ -19,7 +19,7 @@
                @selection-change="handleSelectionChange"
            >
                <el-table-column type="selection" width="55" fixed="left"></el-table-column>
                <el-table-column prop="name" label="菜单名称"  fixed="left" min-width="160px"></el-table-column>
                <el-table-column prop="name" label="菜单名称"  fixed="left" min-width="180px"></el-table-column>
                <el-table-column prop="icon" label="图标" min-width="80px" class-name="table-column-icon">
                    <template slot-scope="{row}">
                        <i v-if="row.icon != null && row.icon !== ''" :class="{[row.icon]: true}"></i>
server/company/src/main/resources/application.yml
@@ -6,7 +6,7 @@
#  env: production
server:
#  port: 10022
  port: 10031
  port: 10032
spring:
#  application:git
server/service/src/main/java/com/doumee/config/shiro/ShiroRealm.java
@@ -107,8 +107,7 @@
        List<SystemPermission> permissions =null;
        // èŽ·å–ç™»å½•ç”¨æˆ·ä¿¡æ¯
         if(authenticationToken.getUserType() == 0){
             roles =   systemRoleService.findByUserId(user.getId());
            roles =   systemRoleService.findByUserId(user.getId());
            CompanyPermission c = new CompanyPermission();
            c.setUserId(user.getId());
            c.setIsdeleted(Constants.ZERO);
@@ -121,7 +120,7 @@
                    user.getCompanyIdList().add(cc.getCompanyId());
                }
            }
             permissions =  systemPermissionService.findByUserId(user.getId());
            permissions =  systemPermissionService.findByUserId(user.getId());
        }else{
            Company company = companyService.findById(user.getCompanyId());
            if(company == null){
server/service/src/main/java/com/doumee/service/business/InsuranceApplyService.java
@@ -124,7 +124,6 @@
    void updateApplyCurrentFee(Integer id);
    String getSignLink(Integer id);
    void dealSignResult(NotifyDataReq data);
server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
@@ -1455,7 +1455,7 @@
                .selectAs(Company::getName,ApplyChange::getCompanyName)
                .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 0  )",ApplyChange::getAddNum)
                .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 1  )",ApplyChange::getDelNum)
                .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 2  )",ApplyChange::getChangeNum)
                 .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 2  )",ApplyChange::getChangeNum)
                .select("( select ifnull(sum(ad.FEE),0) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID  )",ApplyChange::getChangeMoney)
                .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId)
                .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
@@ -1478,6 +1478,16 @@
        //企业人员查看本企业数据
        if(loginUserInfo.getType().equals(Constants.ONE)){
            queryWrapper.eq(InsuranceApply::getCompanyId, loginUserInfo.getCompanyId());
        }else if(loginUserInfo.getType().equals(Constants.TWO)){
            //如果是商户查看
            if(pageWrap.getModel().getSolutionType()!=null && pageWrap.getModel().getSolutionType() ==0){
                queryWrapper.exists("select cs.id from company_solution cs where cs.isdeleted=0 and cs.company_id=t1.company_id and cs.shop_id="+loginUserInfo.getCompanyId());
            }else if(pageWrap.getModel().getSolutionType()!=null && pageWrap.getModel().getSolutionType() ==1){
                queryWrapper.eq(Solutions::getShopId,loginUserInfo.getCompanyId());
            }else{
                queryWrapper.apply("((t1.type=0 and exists(select cs.id from company_solution cs where cs.isdeleted=0 and cs.company_id=t1.company_id and cs.shop_id="+loginUserInfo.getCompanyId()+")) or (" +
                        "t2.type=1 and t2.shop_id="+loginUserInfo.getCompanyId()+"))") ;
            }
        }else{
            if(loginUserInfo.getCompanyIdList()!=null && loginUserInfo.getCompanyIdList().size()>0){
                queryWrapper.in(InsuranceApply::getCompanyId, loginUserInfo.getCompanyIdList());
server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
@@ -102,10 +102,9 @@
        dispatchUnitMapper.updateById(update);
        if(Constants.equalsInteger(param.getWorktypeStatus(),Constants.ONE)){
            //审核通过,修改状态,产生历史版本
            newVersionData(dispatchUnitMapper.selectById(param.getId()),update,false);
            newVersionData(model,update,false);
            //存储操作历史
            this.saveDuLog(update,Constants.DispatchUnitLogType.WORK_TYPE_AUDIT_PASS,update.getCheckInfo());
        }else{
            //更新明细数据为审核失败
            duSolutionMapper.update(null,new UpdateWrapper<DuSolution>().lambda()
@@ -377,7 +376,6 @@
                duWorktypeMapper.insert(duWorktype);
            }
        }
        //存储待办信息
        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.DISPATCH_UNIT;
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
@@ -721,8 +721,8 @@
                .selectAll(InsuranceApply.class)
                .selectAs(Solutions::getName,InsuranceApply::getSolutionsName)
                .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail)
                        .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
                .selectAs(Company::getName,InsuranceApply::getCompanyName)
                .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
                .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
                .eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey())
                .eq(Solutions::getType,Constants.ZERO)