MrShi
2024-02-23 4c236ba83da7c69ac838b004d0a4b83c25fc9bea
mrshi
已添加1个文件
已修改8个文件
294 ■■■■ 文件已修改
company/src/api/business/notices.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaApplyChangeDetailWindow.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaInsuranceApplyWindow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/additionSubtractionApplication.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/directInsuranceDetails.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/factoryChange.vue 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/reinsurance.vue 127 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/renewalInsurance.vue 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/enterprise/myPolicy.vue 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/api/business/notices.js
@@ -6,3 +6,13 @@
        trim: true
    })
}
// æŸ¥è¯¢æŠ•保单提醒数量
export function getCaptcha () {
    return request.get('/business/notices/getApplyNotice')
}
// æŠ•保单关闭提醒
export function closeApplyNotice (type) {
    return request.get(`/business/notices/closeApplyNotice?type=${type}`)
}
company/src/components/business/OperaApplyChangeDetailWindow.vue
@@ -11,8 +11,8 @@
                <div class="desc_item_label">
                    <div class="desc_item_label_left">
                        <span>投保企业:{{ apply.companyName }}</span>
                        <span v-if="model.status === 0">保单状态:<span  :class="'change-status'+model.status" >待签署</span></span>
                        <span v-if="model.status === 1">保单状态:<span  :class="'change-status'+model.status" >待审核</span></span>
                        <span v-if="model.status === 1">保单状态:<span  :class="'change-status'+model.status" >待签署</span></span>
                        <span v-if="model.status === 0">保单状态:<span  :class="'change-status'+model.status" >待审核</span></span>
                        <span v-if="model.status === 2">保单状态:<span  :class="'change-status'+model.status" >已生效</span></span>
                        <span v-if="model.status === 3 || model.status === 4">保单状态:<span  :class="'change-status'+model.status" >退回申请</span></span>
                        <span v-if="model.status === 5 || model.status === 8">保单状态:<span  :class="'change-status'+model.status" >已退回</span></span>
company/src/components/business/OperaInsuranceApplyWindow.vue
@@ -371,7 +371,7 @@
                      <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].includes(activity.objType)">
                            <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>
company/src/components/enterprise/additionSubtractionApplication.vue
@@ -496,7 +496,7 @@
                    this.$message.warning('请选择员工')
                    return
                }
                this.$refs.confirmJobType.open('确认工种', { solutionId: this.form.solutionId })
                this.$refs.confirmJobType.open('确认工种', { solutionId: this.item.newVersionSolutionId })
            },
            // æŸ¥è¯¢å…¨éƒ¨æ–¹æ¡ˆ
            getCompany() {
company/src/components/enterprise/directInsuranceDetails.vue
@@ -103,17 +103,17 @@
                </el-table-column>
                <el-table-column
                    align="center"
                    prop="solutionsName"
                    prop="solutionName"
                    label="保险方案">
                </el-table-column>
                <el-table-column
                    align="center"
                    prop="downCode"
                    prop="taxDoneCode"
                    label="发票号">
                </el-table-column>
                <el-table-column
                    align="center"
                    prop="createTime"
                    prop="createDate"
                    label="申请开票时间">
                </el-table-column>
                <el-table-column
@@ -202,7 +202,7 @@
                columns.forEach((column, index) => {
                    if (index === 0) {
                        sums[index] = '合计'
                    } else if (index == 4) {
                    } else if (index == 3) {
                        let price = 0
                        data.forEach(item => {
                            price += item.totalFee
@@ -218,7 +218,7 @@
                columns.forEach((column, index) => {
                    if (index === 0) {
                        sums[index] = '合计'
                    } else if (index == 5) {
                    } else if (index == 4) {
                        let price = 0
                        data.forEach(item => {
                            price += item.totalFee
@@ -237,6 +237,9 @@
        cursor: pointer;
        text-align: center;
        &:nth-child(5) {
            color:rgba(249, 86, 1, 0.996078431372549);
        }
        &:nth-child(4) {
            color:rgba(249, 86, 1, 0.996078431372549);
        }
    }
@@ -260,7 +263,8 @@
        .info_list {
            width: 100%;
            display: flex;
            align-items: left;
            /*align-items: left;*/
            align-items: flex-start;
            flex-wrap: wrap;
            .list::v-deep {
                width: 100%;
company/src/components/enterprise/factoryChange.vue
@@ -181,6 +181,7 @@
                    applyEndTime: '',
                    factory: []
                },
                newVersionSolutionId: '',
                pickerOptions: {},
                price: '',
                endTime: '',    //     å®žé™…保险生效止期
@@ -253,9 +254,11 @@
                    })
                getDetail(this.form.id)
                    .then(res => {
                        console.log(res)
                        this.list.push(res)
                        this.endTime = res.endTime
                        this.form.solutionId = res.solutionId
                        this.newVersionSolutionId = res.newVersionSolutionId
                        this.form.solutionsName = res.solutionsName
                        this.pickerOptions = {
                            disabledDate(time) {
@@ -381,7 +384,7 @@
                    this.$message.warning('请选择员工')
                    return
                }
                this.$refs.confirmJobType.open('确认工种', { solutionId: this.form.solutionId })
                this.$refs.confirmJobType.open('确认工种', { solutionId: this.newVersionSolutionId })
            },
            // æŸ¥è¯¢å…¨éƒ¨æ–¹æ¡ˆ
            getCompany() {
company/src/components/enterprise/reinsurance.vue
@@ -19,8 +19,8 @@
                                v-model="form.applyStartTime"
                                type="date"
                                :picker-options="pickerOptions"
                                value-format="yyyy-MM-dd"
                                format="yyyy å¹´ MM æœˆ dd æ—¥"
                            value-format="yyyy-MM-dd HH:mm:ss"
                            format="yyyy-MM-dd HH:mm:ss"
                                placeholder="选择日期">
                        </el-date-picker>
                        <span style="color: #F95601; font-size: 14px;">(次日生效投保请于17:30前提交,超时提交以保险单为准)</span>
@@ -105,7 +105,8 @@
            </div>
        </div>
        <el-table
                :data="activeName === '0' ? form.addDetailList : form.delDetailList"
            v-if="activeName === '0'"
            :data="form.addDetailList"
                border
                show-summary
                :summary-method="getSummaries"
@@ -122,14 +123,17 @@
                </template>
            </el-table-column>
            <el-table-column
                :key="Math.random()"
                prop="memberName"
                label="姓名">
            </el-table-column>
            <el-table-column
                :key="Math.random()"
                prop="idCard"
                label="身份证号">
            </el-table-column>
            <el-table-column
                :key="Math.random()"
                label="年龄">
                <template slot-scope="{row}">
                    <template v-if="item">
@@ -139,21 +143,83 @@
                </template>
            </el-table-column>
            <el-table-column
                :key="Math.random()"
                prop="duName"
                label="派遣单位">
            </el-table-column>
            <el-table-column
                :key="Math.random()"
                prop="workTypeName"
                label="所属工种">
            </el-table-column>
            <el-table-column
                :key="Math.random()"
                prop="fee"
                label="费用">
                <template slot-scope="{row}">
                    <span v-if="activeName === '0'">{{row.fee}}</span>
                    <span v-else>-{{row.fee}}</span>
            </el-table-column>
            <el-table-column
                :key="Math.random()"
                label="操作">
                <template slot-scope="scope">
                    <el-button type="text" style="color: red;" @click="dele(scope.$index)">删除</el-button>
                </template>
            </el-table-column>
        </el-table>
        <el-table
            v-if="activeName === '1'"
            :data="form.delDetailList"
            border
            show-summary
            :summary-method="getSummaries"
            ref="multipleTable"
            @selection-change="handleSelectionChange"
            style="width: 100%;margin-bottom: 15px;">
            <el-table-column
                type="selection"
                width="55">
            </el-table-column>
            <el-table-column label="序号" width="80px">
                <template slot-scope="scope">
                    <span>{{scope.$index + 1}}</span>
                </template>
            </el-table-column>
            <el-table-column
                    :key="Math.random()"
                    prop="memberName"
                    label="姓名">
            </el-table-column>
            <el-table-column
                    :key="Math.random()"
                    prop="idCard"
                    label="身份证号">
            </el-table-column>
            <el-table-column
                    :key="Math.random()"
                    label="年龄">
                <template slot-scope="{row}">
                    <template v-if="item">
                        <span style="color: red;" v-if="(getAgeByIdCard(row.idCard) < item.minAge) || (getAgeByIdCard(row.idCard) > item.maxAge)">{{getAgeByIdCard(row.idCard)}}</span>
                        <span v-else>{{ getAgeByIdCard(row.idCard) }}</span>
                    </template>
                </template>
            </el-table-column>
            <el-table-column
                    :key="Math.random()"
                    prop="duName"
                    label="派遣单位">
            </el-table-column>
            <el-table-column
                    :key="Math.random()"
                    prop="workTypeName"
                    label="所属工种">
            </el-table-column>
            <el-table-column
                :key="Math.random()"
                prop="fee"
                label="费用">
            </el-table-column>
            <el-table-column
                    :key="Math.random()"
                    label="操作">
                <template slot-scope="scope">
                    <el-button type="text" style="color: red;" @click="dele(scope.$index)">删除</el-button>
@@ -185,6 +251,7 @@
    import confirmJobType from '@/components/enterprise/confirmJobType'
    import { all } from '@/api/business/solutions'
    import { getDetail } from '@/api/business/insuranceApply'
    import { getDate, compareDates, getTomorrow } from '@/utils/util'
    import { update, getChangeCountCyclePriceVO, applyChagneDetailList } from '@/api/business/applyChange'
    export default {
        name: 'reinsurance',
@@ -202,6 +269,7 @@
                    addDetailList: [],
                    delDetailList: [],
                },
                newVersionSolutionId: '',
                activeName: '0',
                pickerOptions: {},
                price: '',
@@ -263,7 +331,7 @@
                        item.fee = res.cyclePrice
                    })
                    this.form.delDetailList.forEach(item => {
                        item.fee = res.cyclePrice
                        item.fee = -res.cyclePrice
                    })
                })
            },
@@ -273,7 +341,7 @@
            // èŽ·å–æŠ•ä¿è¯¦æƒ…
            getDetails() {
                applyChagneDetailList({
                    applyChangId: this.form.applyChangId,
                    applyChangeId: this.form.applyChangId,
                    types: [0]
                }).then(res => {
                    res.forEach(item => {
@@ -287,32 +355,51 @@
                    this.form.addDetailList = res
                })
                applyChagneDetailList({
                    applyChangId: this.form.applyChangId,
                    applyChangeId: this.form.applyChangId,
                    types: [1]
                }).then(res => {
                    res.forEach(item => {
                        item.fee = ''
                        // item.fee = ''
                        item.idCard = item.memberIdcardNo
                        item.workTypeName = ''
                        item.worktypeId = ''
                        item.duName = ''
                        item.duId = ''
                        // item.workTypeName = ''
                        // item.worktypeId = ''
                        // item.duName = ''
                        // item.duId = ''
                    })
                    this.form.delDetailList = res
                })
                getDetail(this.form.id)
                    .then(res => {
                        console.log(res)
                        this.list.push(res)
                        this.item = res
                        this.endTime = res.endTime
                        this.form.solutionId = res.solutionId
                        this.newVersionSolutionId = res.newVersionSolutionId
                        this.form.solutionsName = res.solutionsName
                        this.pickerOptions = {
                            disabledDate(time) {
                                // å½“前日期大于等于生效日期并且最后一次操作时间等于空
                                if ([1,3].includes(compareDates(getDate(), res.startTime)) && !res.lastChangeDate) {
                                    return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date(getTomorrow()).getTime()
                                    // å½“前日期小于生效日期并且最后一次操作时间等于空
                                } else if (compareDates(getDate(), res.startTime) === 2 && !res.lastChangeDate) {
                                    return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date(res.startTime).getTime()
                                    // æœ€åŽä¸€æ¬¡æ“ä½œæ—¶é—´æœ‰å€¼
                                } else if (res.lastChangeDate) {
                                    // å½“前日期大于最后一次操作时间
                                    if ([1,3].includes(compareDates(getDate(), res.lastChangeDate))) {
                                        return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date(getTomorrow()).getTime()
                                        // å½“前时间小于最后一次操作时间
                                    } else if (compareDates(getDate(), res.lastChangeDate) === 2) {
                                        return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date(res.lastChangeDate).getTime()
                                    }
                                }
                                // - 8.64e7
                                return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date().getTime()
                                // return time.getTime() > new Date(res.endTime).getTime() || time.getTime() < new Date().getTime()
                            }
                        };
                        this.changeSolution1(res.solutionId)
                        // this.changeSolution1(res.solutionId)
                    })
            },
            getSummaries(param) {
@@ -334,7 +421,11 @@
                            this.form.delDetailList.forEach(item => {
                                total += item.fee
                            })
                            sums[index] = '-' + total
                            // if (total < 0) {
                            sums[index] = total
                            // } else {
                            //     sums[index] = '-' + total
                            // }
                            return
                        }
                        sums[index] = ''
@@ -500,7 +591,7 @@
                    this.$message.warning('请选择员工')
                    return
                }
                this.$refs.confirmJobType.open('确认工种', { solutionId: this.form.solutionId })
                this.$refs.confirmJobType.open('确认工种', { solutionId: this.newVersionSolutionId })
            },
            // æŸ¥è¯¢å…¨éƒ¨æ–¹æ¡ˆ
            getCompany() {
company/src/components/enterprise/renewalInsurance.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,73 @@
<template>
    <GlobalWindow
        :title="title"
        width="100%"
        :visible.sync="visible"
        :confirm-working="isWorking"
        @confirm="confirm"
    >
        <el-table
            :data="tableData"
            border
            style="width: 100%">
            <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="状态">
                <template slot-scope="{row}">
                    <span :class="'apply-status'+row.status" >{{row.statusInfo}}</span>
                </template>
            </el-table-column>
            <el-table-column prop="solutionsName" label="保险方案"></el-table-column>
            <el-table-column label="保单号">
                <template slot-scope="{row}">
                    <span>{{row.code ? row.code : '-'}}</span>
                </template>
            </el-table-column>
            <el-table-column prop="insureNum" label="投保人数"></el-table-column>
            <el-table-column prop="serviceDays" label="投保时长(天)"></el-table-column>
            <el-table-column prop="currentFee" label="产生费用"></el-table-column>
            <el-table-column prop="fee" label="总费用(元)"></el-table-column>
            <el-table-column prop="checkDate" label="提交日期"></el-table-column>
            <el-table-column prop="startTime" label="投保生效日期"></el-table-column>
            <el-table-column prop="endTime" label="投保失效日期"></el-table-column>
            <el-table-column
                prop="address"
                label="操作">
            </el-table-column>
        </el-table>
    </GlobalWindow>
</template>
<script>
    import BaseOpera from '@/components/base/BaseOpera'
    import GlobalWindow from '@/components/common/GlobalWindow'
    export default {
        name: 'renewalInsurance',
        extends: BaseOpera,
        components: { GlobalWindow },
        data () {
            return {
                form: {
                    id: null
                },
                tableData: []
            }
        },
        created () {
            this.config({
                api: '/business/insuranceApply',
                'field.id': 'id'
            })
        },
        methods: {
        }
    }
</script>
<style lang="scss" scoped>
</style>
company/src/views/enterprise/myPolicy.vue
@@ -56,6 +56,18 @@
        </el-form>
        <!-- è¡¨æ ¼å’Œåˆ†é¡µ -->
        <template v-slot:table-wrap>
            <div style="margin-bottom: 30px;" v-if="obj.waitSignNum > 0 && obj.renewalNum > 0">
                <el-alert type="warning" show-icon :closable="false" style="margin-bottom: 15px;" v-if="obj.renewalNum > 0">
                    <span style="margin-right: 15px;">续保提醒: æ‚¨æœ‰å³å°†åˆ°æœŸä¿é™©</span>
                    <el-button type="text" @click="$refs.renewalInsurance.open('续保提醒')">查看详情</el-button>
                    <el-button type="text" @click="closeRemind(1)">关闭提醒</el-button>
                </el-alert>
                <el-alert type="warning" :closable="false" show-icon v-if="obj.waitSignNum > 0">
                    <span style="margin-right: 15px;">投保提醒: æ‚¨æœ‰æŠ•保申请待签署</span>
                    <el-button type="text" @click="see">查看详情</el-button>
                    <el-button type="text" @click="closeRemind(2)">关闭提醒</el-button>
                </el-alert>
            </div>
            <ul class="toolbar" v-permissions="['business:dispatchunit:create']">
                <li><el-button type="primary" @click="$refs.OperaInsuranceApplyWindow.open('投保申请')">投保申请</el-button></li>
            </ul>
@@ -114,6 +126,8 @@
        <OperaInsuranceApplyDetails ref="OperaInsuranceApplyDetails" @success="handlePageChange" />
        <!--    åŠ å‡ä¿ç”³è¯·    -->
        <additionSubtractionApplication ref="additionSubtractionApplication" @success="handlePageChange" />
        <!--    ç»­ä¿å¼¹çª—    -->
        <renewalInsurance ref="renewalInsurance" @success="handlePageChange" />
    </TableLayout>
</template>
@@ -124,12 +138,21 @@
    import OperaInsuranceApplyWindow from '@/components/enterprise/OperaInsuranceApplyWindow'
    import OperaInsuranceApplyDetails from '@/components/business/OperaInsuranceApplyWindow'
    import additionSubtractionApplication from '@/components/enterprise/additionSubtractionApplication'
    import renewalInsurance from '@/components/enterprise/renewalInsurance'
    import { all as solutionAll} from '@/api/business/solutions'
    import { getCaptcha, closeApplyNotice } from '@/api/business/notices'
    export default {
        name: 'myPolicy',
        extends: BaseTable,
        components: { TableLayout, Pagination, OperaInsuranceApplyWindow, OperaInsuranceApplyDetails, additionSubtractionApplication },
        components: {
            TableLayout,
            Pagination,
            OperaInsuranceApplyWindow,
            OperaInsuranceApplyDetails,
            renewalInsurance,
            additionSubtractionApplication
        },
        data () {
            return {
                // æœç´¢
@@ -141,6 +164,10 @@
                    startTimeS: '',
                    baseSolutionId: '',
                    statusCollect: '2'
                },
                obj: {
                    renewalNum: 0,
                    waitSignNum: 0
                },
                time1: [],
                time2: [],
@@ -156,8 +183,34 @@
            })
            this.search()
            this.loadSelectList()
            this.getNum()
        },
        methods:{
            see() {
                this.searchForm.statusCollect = '7'
                this.search()
            },
            closeRemind(type) {
                this.$confirm('确定关闭此提示吗?', '提示', {
                    confirmButtonText: '确定',
                    cancelButtonText: '取消',
                    type: 'warning'
                }).then(() => {
                    closeApplyNotice(type)
                        .then(res => {
                            this.getNum()
                        })
                }).catch(() => {
                });
            },
            getNum() {
                getCaptcha()
                    .then(res => {
                        this.obj.renewalNum = res.renewalNum
                        this.obj.waitSignNum = res.waitSignNum
                    })
            },
            reset() {
                this.time1 = []
                this.time2 = []