nidapeng
2024-04-01 137086c208fb62afee57ff9400176135c2963425
Merge remote-tracking branch 'origin/1.0.1' into 1.0.1

# Conflicts:
# company/.env.developmentShop
已添加9个文件
已修改1个文件
1820 ■■■■■ 文件已修改
company/src/api/business/unionApply.js 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/api/business/unionChange.js 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OpearaUnionApply.vue 249 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/add_subtract_entrust.vue 178 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/detailsEntrustedInsurance.vue 899 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/employeeList.vue 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/selectApplicationForm.vue 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/insuranceApplyShop.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/unionApply.vue 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/unionChange.vue 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/api/business/unionApply.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
import request from '../../utils/request'
// æŸ¥è¯¢
export function fetchList (data) {
    return request.post('/business/unionApply/page', data, {
        trim: true
    })
}
// åˆ›å»º
export function create (data) {
    return request.post('/business/unionApply/create', data)
}
// ä¿®æ”¹
export function updateById (data) {
    return request.post('/business/unionApply/updateById', data)
}
// æ ¹æ®ID查询
export function getById (id) {
    return request.get(`/business/unionApply/${id}`)
}
company/src/api/business/unionChange.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
import request from '../../utils/request'
// æŸ¥è¯¢
export function fetchList (data) {
    return request.post('/business/unionChange/page', data, {
        trim: true
    })
}
// åˆ›å»º
export function create (data) {
    return request.post('/business/unionChange/create', data)
}
// ä¿®æ”¹
export function updateById (data) {
    return request.post('/business/unionChange/updateById', data)
}
// æ ¹æ®ID查询
export function getById (id) {
    return request.get(`/business/unionChange/${id}`)
}
company/src/components/business/OpearaUnionApply.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,249 @@
<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="solutionsId">
                    <el-select v-model="form.solutionsId" @change="selectSolutions" placeholder="请选择">
                        <el-option
                            v-for="item in solutions"
                            :key="item.baseId"
                            :label="item.name"
                            :value="item.baseId">
                        </el-option>
                    </el-select>
                </el-form-item>
                <el-form-item label="保险生效起止期" prop="applyStartTime">
                    <div style="display: flex; flex-direction: column;">
                        <el-date-picker
                            @change="changeTime"
                            v-model="time"
                            type="daterange"
                            value-format="yyyy-MM-dd HH:mm:ss"
                            format="yyyy-MM-dd HH:mm:ss"
                            range-separator="至"
                            start-placeholder="开始日期"
                            end-placeholder="结束日期" />
                        <span style="color: #F95601; font-size: 14px;">(次日生效投保请于17:30前提交,超时提交以保险单为准)</span>
                    </div>
                </el-form-item>
                <el-form-item label="费用" v-if="item">
                    <span>{{item.price}}元</span>
                    <span v-if="item.timeUnit === 0">/天</span>
                    <span v-if="item.timeUnit === 1">/半月</span>
                    <span v-if="item.timeUnit === 2">/月</span>
                    <span v-if="item.timeUnit === 3">/å¹´</span>
                    <span>/人</span>
                </el-form-item>
                <el-form-item label="投保年龄" v-if="item">
                    <span>{{item.minAge}} è‡³ {{item.maxAge}}</span>
                </el-form-item>
            </el-form>
        </div>
        <div class="btns">
            <div class="btns_item">
                <el-button type="primary" @click="selectApplicationForm">选择申请单</el-button>
                <el-button type="primary" @click="$refs.employeeList.open('投保员工名单')">查看名单</el-button>
            </div>
        </div>
        <el-table
            :data="list"
            border
            ref="multipleTable"
            style="width: 100%;margin-bottom: 15px;">
            <el-table-column
                type="selection"
                width="55">
            </el-table-column>
            <el-table-column label="序号" width="80px">
                <template slot-scope="scope">
                    <span>{{scope.$index + 1}}</span>
                </template>
            </el-table-column>
            <el-table-column
                prop="memberName"
                label="被保险人">
            </el-table-column>
            <el-table-column
                prop="idCard"
                label="期望保险生效起期">
            </el-table-column>
            <el-table-column
                prop="oldDuName"
                label="期望保险生效止期">
            </el-table-column>
            <el-table-column
                prop="oldWorkTypeName"
                label="投保人数">
            </el-table-column>
            <el-table-column
                prop="duName"
                label="总费用">
            </el-table-column>
            <el-table-column
                label="操作">
                <template slot-scope="scope">
                    <el-button type="text" @click="$refs.employeeList.open('投保员工名单')">查看名单</el-button>
                    <el-button type="text" style="color: #ff0000;">删除</el-button>
                </template>
            </el-table-column>
        </el-table>
        <div class="info" v-if="item">
            <span v-if="item.specialAgreement">{{item.specialAgreement}}</span>
            <span v-if="item.specialInfo">{{item.specialInfo}}</span>
            <span v-if="item.ortherInfo">{{item.ortherInfo}}</span>
        </div>
        <!--    é€‰æ‹©ç”³è¯·å•    -->
        <selectApplicationForm ref="selectApplicationForm" @success="getValue" />
        <!--    æŠ•保员工名单    -->
        <employeeList ref="employeeList" />
    </GlobalWindow>
</template>
<script>
    import BaseOpera from '@/components/base/BaseOpera'
    import GlobalWindow from '@/components/common/GlobalWindow'
    import selectApplicationForm from '@/components/business/selectApplicationForm'
    import employeeList from '@/components/business/employeeList'
    import { all } from '@/api/business/solutions'
    export default {
        name: 'factoryChange',
        extends: BaseOpera,
        components: { GlobalWindow, selectApplicationForm, employeeList },
        data () {
            return {
                form: {
                    id: null,
                    solutionsId: '',
                    applyStartTime: '',
                    applyEndTime: ''
                },
                solutions: [],
                list: [],
                endTime: '',
                item: null,
                time: [],
                // éªŒè¯è§„则
                rules: {
                    applyStartTime: [
                        { required: true, message: '请选择保险生效起期' }
                    ],
                    solutionsName: [
                        { required: true, message: '请选择保险方案' }
                    ]
                }
            }
        },
        created () {
            this.config({
                api: '/business/insuranceApply',
                'field.id': 'id'
            })
        },
        methods: {
            confirm() {
                this.$confirm('确认提交,请仔细核对信息。', '提示', {
                    confirmButtonText: '确定',
                    cancelButtonText: '取消',
                    type: 'warning',
                    center: true
                }).then(() => {
                    this.$message({
                        type: 'success',
                        message: '确定!'
                    });
                }).catch(() => {
                    this.$message({
                        type: 'info',
                        message: '取消'
                    });
                });
            },
            getValue(e) {
                console.log(e)
            },
            selectApplicationForm() {
                if (!this.form.solutionsId) return this.$message.warning('请先选择保险方案')
                this.$refs.selectApplicationForm.open('选择申请单', this.form.solutionsId)
            },
            changeTime(e) {
                if (e.length > 0) {
                    this.form.applyStartTime = e[0]
                    this.form.applyEndTime = e[1]
                } else {
                    this.form.applyStartTime = ''
                    this.form.applyEndTime = ''
                }
            },
            open (title, target) {
                this.getSolutions()
                this.title = title
                if (target) {
                    this.$nextTick(() => {
                        this.$refs.form.resetFields()
                    })
                } else {
                    this.$nextTick(() => {
                        this.$refs.form.resetFields()
                        this.form[this.configData['field.id']] = null
                    })
                }
                this.visible = true
            },
            // æŸ¥è¯¢å…¨éƒ¨æ–¹æ¡ˆ
            getSolutions() {
                all({})
                    .then(res => {
                        this.solutions = res
                    })
            },
            // é€‰æ‹©ä¿é™©å•
            selectSolutions(id) {
                this.solutions.forEach(item => {
                    if (item.id === id) {
                        this.item = item
                    }
                })
            }
        }
    }
</script>
<style lang="scss" scoped>
    .list {
        width: 100%;
    }
    .btns {
        width: 100%;
        margin-bottom: 15px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        .btns_item {
            display: flex;
            align-items: center;
        }
    }
    .submit {
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        margin-bottom: 15px;
    }
    .desc_item_cate {
        width: 100%;
        margin-bottom: 10px;
    }
    .info {
        width: 100%;
        font-size: 14px;
        color: black;
    }
</style>
company/src/components/business/add_subtract_entrust.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,178 @@
<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="保险方案">
                </el-form-item>
                <el-form-item label="批单生效起期" prop="applyStartTime">
                    <div style="display: flex; flex-direction: column;">
                        <el-date-picker
                            v-model="form.applyStartTime"
                            type="date"
                            value-format="yyyy-MM-dd HH:mm:ss"
                            format="yyyy-MM-dd HH:mm:ss"
                            placeholder="选择日期" />
                        <span style="color: #F95601; font-size: 14px;">(次日生效投保请于17:30前提交,超时提交以保险单为准)</span>
                    </div>
                </el-form-item>
                <el-form-item label="费用" v-if="item">
                    <span>{{item.price}}元</span>
                    <span v-if="item.timeUnit === 0">/天</span>
                    <span v-if="item.timeUnit === 1">/半月</span>
                    <span v-if="item.timeUnit === 2">/月</span>
                    <span v-if="item.timeUnit === 3">/å¹´</span>
                    <span>/人</span>
                </el-form-item>
                <el-form-item label="投保年龄" v-if="item">
                    <span>{{item.minAge}} è‡³ {{item.maxAge}}</span>
                </el-form-item>
            </el-form>
        </div>
        <div class="btns">
            <div class="btns_item">
                <el-button type="primary" @click="selectApplicationForm">选择申请单</el-button>
                <el-button type="primary" @click="$refs.employeeList.open('投保员工名单')">查看名单</el-button>
            </div>
        </div>
        <el-table
            :data="list"
            border
            ref="multipleTable"
            style="width: 100%;margin-bottom: 15px;">
            <el-table-column
                type="selection"
                width="55">
            </el-table-column>
            <el-table-column label="序号" width="80px">
                <template slot-scope="scope">
                    <span>{{scope.$index + 1}}</span>
                </template>
            </el-table-column>
            <el-table-column
                prop="memberName"
                label="被保险人">
            </el-table-column>
            <el-table-column
                prop="idCard"
                label="期望保险生效起期">
            </el-table-column>
            <el-table-column
                prop="oldDuName"
                label="期望保险生效止期">
            </el-table-column>
            <el-table-column
                prop="oldWorkTypeName"
                label="投保人数">
            </el-table-column>
            <el-table-column
                prop="duName"
                label="总费用">
            </el-table-column>
            <el-table-column
                label="操作">
                <template slot-scope="scope">
                    <el-button type="text" @click="$refs.employeeList.open('投保员工名单')">查看名单</el-button>
                    <el-button type="text" style="color: #ff0000;">删除</el-button>
                </template>
            </el-table-column>
        </el-table>
        <div class="info" v-if="item">
            <span v-if="item.specialAgreement">{{item.specialAgreement}}</span>
            <span v-if="item.specialInfo">{{item.specialInfo}}</span>
            <span v-if="item.ortherInfo">{{item.ortherInfo}}</span>
        </div>
    </GlobalWindow>
</template>
<script>
    import BaseOpera from '@/components/base/BaseOpera'
    import GlobalWindow from '@/components/common/GlobalWindow'
    export default {
        name: 'add_subtract_entrust',
        extends: BaseOpera,
        components: { GlobalWindow },
        data () {
            return {
                form: {
                    id: null,
                    solutionsId: '',
                    applyStartTime: ''
                },
                list: [],
                item: null,
                // éªŒè¯è§„则
                rules: {
                    applyStartTime: [
                        { required: true, message: '请选择保险生效起期' }
                    ],
                    solutionsName: [
                        { required: true, message: '请选择保险方案' }
                    ]
                }
            }
        },
        created () {
            this.config({
                api: '/business/insuranceApply',
                'field.id': 'id'
            })
        },
        methods: {
            open (title, target) {
                this.title = title
                if (target) {
                    this.$nextTick(() => {
                        this.$refs.form.resetFields()
                    })
                } else {
                    this.$nextTick(() => {
                        this.$refs.form.resetFields()
                        this.form[this.configData['field.id']] = null
                    })
                }
                this.visible = true
            }
        }
    }
</script>
<style lang="scss" scoped>
    .list {
        width: 100%;
    }
    .btns {
        width: 100%;
        margin-bottom: 15px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        .btns_item {
            display: flex;
            align-items: center;
        }
    }
    .submit {
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        margin-bottom: 15px;
    }
    .desc_item_cate {
        width: 100%;
        margin-bottom: 10px;
    }
    .info {
        width: 100%;
        font-size: 14px;
        color: black;
    }
</style>
company/src/components/business/detailsEntrustedInsurance.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: 'detailsEntrustedInsurance',
        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/components/business/employeeList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
<template>
    <GlobalWindow
        :title="title"
        width="100%"
        :visible.sync="visible"
        :confirm-working="isWorking"
        @confirm="confirm"
    >
    </GlobalWindow>
</template>
<script>
    import BaseOpera from '@/components/base/BaseOpera'
    import GlobalWindow from '@/components/common/GlobalWindow'
    export default {
        name: 'employeeList',
        extends: BaseOpera,
        components: { GlobalWindow },
        data () {
            return {
                solution: [],
                list: []
            }
        },
        created () {
            this.config({
                api: '/business/dispatchUnit',
                'field.id': 'id'
            })
        },
        methods: {
            open (title) {
                this.list = []
                this.title = title
                this.visible = true
            }
        }
    }
</script>
<style lang="scss" scoped>
    .el-checkbox::v-deep {
        display: none;
    }
</style>
company/src/components/business/selectApplicationForm.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,109 @@
<template>
    <GlobalWindow
        :title="title"
        width="100%"
        :visible.sync="visible"
        :confirm-working="isWorking"
        @confirm="confirm"
    >
        <el-table
            :data="list"
            border
            ref="table"
            @selection-change="handleSelectionChange"
            style="width: 100%">
            <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="solutionName"
                label="保险方案">
            </el-table-column>
            <el-table-column
                prop="bdCode"
                label="保单号">
            </el-table-column>
            <el-table-column
                prop="pdCode"
                label="批单号">
            </el-table-column>
            <el-table-column
                prop="duName"
                label="派遣单位">
            </el-table-column>
            <el-table-column
                prop="worktypeName"
                label="所属工种">
            </el-table-column>
        </el-table>
    </GlobalWindow>
</template>
<script>
    import BaseOpera from '@/components/base/BaseOpera'
    import GlobalWindow from '@/components/common/GlobalWindow'
    import { fetchList } from '@/api/business/insuranceApply'
    export default {
        name: 'selectSolutions',
        extends: BaseOpera,
        components: { GlobalWindow },
        data () {
            return {
                baseSolutionId: null,
                list: [],
                seleData: []
            }
        },
        created () {
            this.config({
                api: '/business/dispatchUnit',
                'field.id': 'id'
            })
        },
        methods: {
            open (title, id) {
                this.list = []
                this.baseSolutionId = id
                this.title = title
                this.visible = true
                this.getList()
            },
            confirm() {
                this.$emit('success', this.seleData[0])
                this.visible = false
            },
            handleSelectionChange (rows) {
                if (rows.length > 1) {
                    this.$refs.table.clearSelection()
                    this.$refs.table.toggleRowSelection(rows.pop())
                }
                this.seleData = rows
                console.log(this.seleData)
            },
            getList() {
                fetchList({
                    capacity: 10,
                    page: 1,
                    model: {
                        baseSolutionId: this.baseSolutionId,
                        status: 23
                    }
                }).then(res => {
                    this.list = res
                })
            }
        }
    }
</script>
<style lang="scss" scoped>
    .el-checkbox::v-deep {
        display: none;
    }
</style>
company/src/views/business/insuranceApplyShop.vue
@@ -4,6 +4,16 @@
        <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
            <el-form-item label="保单状态" prop="statusCollect">
                <el-select v-model="searchForm.statusCollect" placeholder="请选择" @keypress.enter.native="search">
<<<<<<< HEAD
                    <el-option label="待审核" value="0"></el-option>
                    <el-option label="待出单" value="1"></el-option>
                    <el-option label="待签署" value="7"></el-option>
                    <el-option label="保障中" value="2"></el-option>
                    <el-option label="已过期" value="3"></el-option>
                    <el-option label="已退回" value="4"></el-option>
                    <el-option label="退回申请中" value="5"></el-option>
                    <el-option label="已关闭" value="6"></el-option>
=======
                    <el-option label="待签署" value="28"></el-option>
                    <el-option label="待审核" value="22"></el-option>
                  <el-option label="待出单" value="23"></el-option>
@@ -11,6 +21,7 @@
                  <el-option label="已关闭" value="25"></el-option>
                  <el-option label="投保中" value="26"></el-option>
                  <el-option label="保障中" value="27"></el-option>
>>>>>>> 2ce7d1d9934f97604ff00b1789dd3628d814dd60
                </el-select>
            </el-form-item>
            <el-form-item label="投保企业" prop="companyId">
company/src/views/business/unionApply.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,148 @@
<template>
    <TableLayout :permissions="['business:insuranceapply:query']">
        <!-- æœç´¢è¡¨å• -->
        <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
            <el-form-item label="保单状态" prop="status">
                <el-select v-model="searchForm.status" placeholder="请选择" @keypress.enter.native="search">
                    <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="4"></el-option>
                    <el-option label="已退回" value="5"></el-option>
                </el-select>
            </el-form-item>
            <el-form-item label="保险方案" prop="solutionId">
                <el-select v-model="searchForm.solutionId" placeholder="请选择" @change="search">
                    <el-option
                        v-for="item in solutionList"
                        :key="item.baseId"
                        :label="item.name"
                        :value="item.baseId">
                    </el-option>
                </el-select>
            </el-form-item>
            <el-form-item label="提交日期" prop="time">
                <el-date-picker
                    v-model="searchForm.time"
                    @change="changeTime"
                    type="daterange"
                    range-separator="至"
                    value-format="yyyy-MM-dd"
                    start-placeholder="开始日期"
                    end-placeholder="结束日期">
                </el-date-picker>
            </el-form-item>
            <section>
                <el-button type="primary" @click="search">搜索</el-button>
                <el-button @click="reset">重置</el-button>
            </section>
        </el-form>
        <!-- è¡¨æ ¼å’Œåˆ†é¡µ -->
        <template v-slot:table-wrap>
            <ul class="toolbar" v-permissions="['business:insurance:create']">
                <li><el-button type="primary" @click="$refs.OpearaUnionApply.open('投保详情', row)" v-permissions="['business:insurance:create']">提交申请</el-button></li>
            </ul>
            <el-table
                v-loading="isWorking.search"
                :data="tableData.list"
                stripe
            >
                <el-table-column label="序号" width="80px">
                    <template slot-scope="scope">
                        <span>{{scope.$index + 1}}</span>
                    </template>
                </el-table-column>
                <el-table-column prop="statusInfo" label="状态" min-width="100px">
                    <template slot-scope="{row}">
                        <span :class="'apply-status'+row.status" >{{row.statusInfo}}</span>
                    </template>
                </el-table-column>
                <el-table-column prop="solutionsName" label="保险方案" min-width="100px"></el-table-column>
                <el-table-column prop="insureNum" label="投保人数" min-width="100px"></el-table-column>
                <el-table-column prop="fee" label="总费用(元)" min-width="100px"></el-table-column>
                <el-table-column prop="createDate" label="提交时间" min-width="100px"></el-table-column>
                <el-table-column
                    v-if="containPermissions(['business:insuranceapply:update', 'business:insuranceapply:delete'])"
                    label="操作"
                    min-width="120"
                    fixed="right"
                >
                    <template slot-scope="{row}">
                        <el-button type="text" icon="el-icon-edit" @click="$refs.detailsEntrustedInsurance.open('委托投保详情', row)" v-permissions="['business:insuranceapply:update']">查看详情</el-button>
                    </template>
                </el-table-column>
            </el-table>
            <pagination
                @size-change="handleSizeChange"
                @current-change="handlePageChange"
                :pagination="tableData.pagination"
            >
            </pagination>
        </template>
        <!-- æ–°å»º/修改 -->
        <OpearaUnionApply ref="OpearaUnionApply" @success="handlePageChange"/>
        <!-- è¯¦æƒ… -->
        <detailsEntrustedInsurance ref="detailsEntrustedInsurance" />
    </TableLayout>
</template>
<script>
    import BaseTable from '@/components/base/BaseTable'
    import TableLayout from '@/layouts/TableLayout'
    import Pagination from '@/components/common/Pagination'
    import { all as solutionAll } from '@/api/business/solutions'
    import OpearaUnionApply from '@/components/business/OpearaUnionApply'
    import detailsEntrustedInsurance from '@/components/business/detailsEntrustedInsurance'
    export default {
        name: 'unionApply',
        extends: BaseTable,
        components: { TableLayout, Pagination, OpearaUnionApply, detailsEntrustedInsurance },
        data () {
            return {
                // æœç´¢
                searchForm: {
                    queryStartTime: '',
                    queryEndTime: '',
                    solutionId: '',
                    status: '',
                    time: []
                },
                solutionList: []
            }
        },
        created () {
            this.config({
                module: '委托投保审核信息表',
                api: '/business/unionApply',
                'field.id': 'id',
                'field.main': 'id'
            })
            this.search()
        },
        methods:{
            // æœç´¢æ¡†é‡ç½®
            reset () {
                this.$refs.searchForm.resetFields()
                this.searchForm.queryStartTime = ''
                this.searchForm.queryEndTime = ''
                this.search()
            },
            changeTime(e) {
                if (e.length > 0) {
                    this.searchForm.queryStartTime = e[0]
                    this.searchForm.queryEndTime = e[1]
                } else {
                    this.searchForm.queryStartTime = ''
                    this.searchForm.queryEndTime = ''
                }
                this.search()
            },
            loadSelectList() {
                solutionAll({dataType:2}).then(res => {
                    this.solutionList = res
                }).catch(err => {
                })
            }
        }
    }
</script>
company/src/views/business/unionChange.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,134 @@
<template>
    <TableLayout :permissions="['business:applychange:query']">
        <!-- æœç´¢è¡¨å• -->
        <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
            <el-form-item label="保单状态" prop="status">
                <el-select v-model="searchForm.status" placeholder="请选择" @change="search">
                    <el-option label="全部" value=""></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="4"></el-option>
                </el-select>
            </el-form-item>
            <el-form-item label="保险方案" prop="solutionName">
                <el-input v-model="searchForm.solutionName" placeholder="请输入" @keypress.enter.native="search"></el-input>
            </el-form-item>
            <el-form-item label="提交日期" prop="status">
                <el-date-picker
                    @change="changeTime"
                    v-model="searchForm.time"
                    type="daterange"
                    value-format="yyyy-MM-dd"
                    range-separator="至"
                    start-placeholder="开始日期"
                    end-placeholder="结束日期">
                </el-date-picker>
            </el-form-item>
            <section>
                <el-button type="primary" @click="search">搜索</el-button>
                <el-button @click="reset">重置</el-button>
            </section>
        </el-form>
        <!-- è¡¨æ ¼å’Œåˆ†é¡µ -->
        <template v-slot:table-wrap>
            <ul class="toolbar" v-permissions="['business:insurance:create']">
                <li><el-button type="primary" @click="$refs.add_subtract_entrust.open('加减保申请')" v-permissions="['business:insurance:create']">提交申请</el-button></li>
            </ul>
            <el-table
                v-loading="isWorking.search"
                :data="tableData.list"
                stripe
            >
                <el-table-column label="序号" width="80px">
                    <template slot-scope="scope">
                        <span>{{scope.$index + 1}}</span>
                    </template>
                </el-table-column>
                <el-table-column prop="status" label="保单状态" min-width="100px">
                    <template slot-scope="{row}">
                        <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">已生效</span>
                        <span :class="'change-status'+row.status" v-if="row.status === 4">已退回</span>
                    </template>
                </el-table-column>
                <el-table-column prop="applyCode" label="关联保单号" min-width="100px"></el-table-column>
                <el-table-column prop="solutionsName" label="保险方案" min-width="100px"></el-table-column>
                <el-table-column prop="addNum" label="加保人数(人)" min-width="100px"></el-table-column>
                <el-table-column prop="delNum" label="减保人数(人)" min-width="100px"></el-table-column>
                <el-table-column prop="createDate" label="提交时间" min-width="100px"></el-table-column>
                <el-table-column
                    label="操作"
                    min-width="120"
                    fixed="right"
                >
                    <template slot-scope="{row}">
                        <el-button type="text" @click="$refs.OperaApplyChangeDetailWindow.open('加减保详情', row)">查看详情</el-button>
                    </template>
                </el-table-column>
            </el-table>
            <pagination
                @size-change="handleSizeChange"
                @current-change="handlePageChange"
                :pagination="tableData.pagination"
            >
            </pagination>
        </template>
        <!--    æäº¤ç”³è¯·    -->
        <add_subtract_entrust ref="add_subtract_entrust" />
    </TableLayout>
</template>
<script>
    import BaseTable from '@/components/base/BaseTable'
    import TableLayout from '@/layouts/TableLayout'
    import Pagination from '@/components/common/Pagination'
    import add_subtract_entrust from '@/components/business/add_subtract_entrust'
    export default {
        name: 'unionChange',
        extends: BaseTable,
        components: { TableLayout, Pagination, add_subtract_entrust },
        data () {
            return {
                // æœç´¢
                searchForm: {
                    status: '',
                    type: '0',
                    solutionName: '',
                    queryStartTime: '',
                    queryEndTime: '',
                    time: []
                }
            }
        },
        created () {
            this.config({
                module: '加减保换厂合并单信息表',
                api: '/business/unionChange',
                'field.id': 'id',
                'field.main': 'id'
            })
            this.search()
        },
        methods: {
            changeTime(e) {
                if (e.length > 0) {
                    this.searchForm.queryStartTime = e[0]
                    this.searchForm.queryEndTime = e[1]
                } else {
                    this.searchForm.queryStartTime = ''
                    this.searchForm.queryEndTime = ''
                }
                this.search()
            },
            reset() {
                this.searchForm.queryStartTime = ''
                this.searchForm.queryEndTime = ''
                this.searchForm.time = []
                this.$refs.searchForm.resetFields();
                this.search()
            }
        }
    }
</script>