MrShi
2024-03-05 6f1ad9bcb73a415f1d45f1adc6bdeb3e80ddf95f
mrshi
已添加2个文件
已修改19个文件
611 ■■■■ 文件已修改
company/.env 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/.env.development 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/.env.production 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/assets/style/style.scss 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaInsuranceApplyWindow.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/OperaSolutionsDescWindow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/business/detailsPolicyholder.vue 229 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/OperaDispatchUnitWindow.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/OperaInsuranceApplyWindow.vue 150 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/confirmJobType.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/dispatchUnitDetails.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/importEmployees.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/components/enterprise/renewalInsurance.vue 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/layouts/AppLayout.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/utils/waterMark.js 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/insuranceApply.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/business/solutions.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/enterprise/insuranceApply.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/src/views/enterprise/myPolicy.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/vue.config.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
platform/src/layouts/AppLayout.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
company/.env
@@ -4,7 +4,7 @@
VUE_APP_ROUTER_MODE = 'hash'
# é¡¹ç›®ä¸Šä¸‹æ–‡è·¯å¾„
VUE_APP_CONTEXT_PATH = '/yyb_admin'
VUE_APP_CONTEXT_PATH = '/yyb_web'
# æŽ¥å£å‰ç¼€
VUE_APP_API_PREFIX = '/api'
@@ -12,5 +12,8 @@
# å·¥ç§å¯¼å…¥æ¨¡æ¿
VUE_APP_TYPEWORK_URL = 'https://doumeetest.oss-cn-beijing.aliyuncs.com/yunyibao_file/typeWork.xlsx'
# äººå‘˜å¯¼å…¥æ¨¡æ¿
# äººå‘˜å¯¼å…¥æ¨¡æ¿(加减保换场)
VUE_APP_MEMBER_URL = 'https://doumeetest.oss-cn-beijing.aliyuncs.com/yunyibao_file/member.xlsx'
# äººå‘˜å¯¼å…¥æ¨¡æ¿(投保申请)
VUE_APP_MEMBER1_URL = 'https://doumeetest.oss-cn-beijing.aliyuncs.com/yunyibao_file/personnel.xlsx'
company/.env.development
@@ -5,10 +5,10 @@
# VUE_APP_API_PREFIX = '/yyb_web_api'
# ä¼ä¸šç«¯-仁康
VUE_APP_API = 'http://192.168.0.129:10031/'
VUE_APP_API = 'http://192.168.0.186:10031/'
# å¹³å°ç«¯-仁康
# VUE_APP_API = 'http://192.168.0.129:10030/'
# VUE_APP_API = 'http://192.168.0.186:10030/'
# å¹³å°ç«¯-萍姐
# VUE_APP_API = 'http://192.168.0.105:10023/'
company/.env.production
@@ -1,10 +1,10 @@
# ç”Ÿäº§çŽ¯å¢ƒé…ç½®
NODE_ENV = 'production'
VUE_APP_API_PREFIX = '/yyb_admin_api'
VUE_APP_API_PREFIX = '/yyb_web_api'
# å¹³å°ç«¯
VUE_APP_API = 'https://dmtest.ahapp.net/yyb_admin_api/'
# VUE_APP_API = 'https://dmtest.ahapp.net/yyb_admin_api/'
# ä¼ä¸šç«¯
# VUE_APP_API = 'https://dmtest.ahapp.net/yyb_web_api/'
VUE_APP_API = 'https://dmtest.ahapp.net/yyb_web_api/'
company/src/assets/style/style.scss
@@ -84,7 +84,7 @@
.du-status0 {
  color: #216EEE  !important;
}
  .apply-status1 , .apply-status4, .apply-status6, .apply-status7, .apply-status8,
  .apply-status1 , .apply-status4, .apply-status6, .apply-status7, .apply-status8, .apply-status11,
.change-status3,.change-status4,.change-status5,.change-status8,
.settle-status1,
.tax-status2,
company/src/components/business/OperaInsuranceApplyWindow.vue
@@ -41,7 +41,7 @@
                      <el-button v-if="model.status == 5" type="primary" @click="viewBaoxiandan">查看保险单</el-button>
                      <el-button v-if="model.status == 10" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('上传投保单',model,2)">上传投保单</el-button>
                      <el-button v-if="model.status == 3" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('上传保险单',model,3)">上传保险单</el-button>
                      <el-button  v-if="model.status == 6 || model.status == 7|| model.status == 8" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('驳回退回申请',model,5)">驳回退回申请</el-button>
                      <el-button  v-if="model.status == 6 || model.status == 7|| model.status == 8 || model.status == 11" type="primary" @click="$refs.OperaInsuranceApplyCheckWindow.open('驳回退回申请',model,5)">驳回退回申请</el-button>
                      <el-button v-if="model.status == 0" type="primary" @click="$refs.InsuranceDetails.open('投保审核',model,1)">投保审核</el-button>
                      <el-button v-if="model.status != 5 && model.status != 4 && model.status != 1" type="danger" @click="$refs.OperaInsuranceApplyCheckWindow.open('退回投保',model,1)">退回投保</el-button>
                      <el-button v-if="model.status == 5" type="danger" @click="$refs.OperaInsuranceApplyCheckWindow.open('修改保险单',model,4)">修改保险单</el-button>
@@ -255,7 +255,7 @@
                            :key="Math.random()"
                            align="center"
                            prop="fee"
                            label="已产生费用(元)">
                            label="产生费用">
                        </el-table-column>
                    </el-table>
                    <el-table
@@ -264,14 +264,15 @@
                        ref="table"
                        v-if="activeName === '1'"
                        style="width: 100%">
                        <el-table-column label="序号"
                                         align="center">
                        <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">
                             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>
@@ -576,6 +577,9 @@
         } else {
             this.formInline.applyStatus = ''
         }
         this.formInline.start = ''
          this.formInline.startTimeE = ''
          this.formInline.endTimeE = ''
         this.list = []
          this.list1 = []
          this.list2 = []
@@ -597,19 +601,19 @@
      changeStart(e) {
            if (e.length > 0) {
                this.formInline.startTimeS = e[0]
                this.formInline.endTimeS = e[1]
                this.formInline.startTimeE = e[1]
            } else {
                this.formInline.startTimeS = ''
                this.formInline.endTimeS = ''
                this.formInline.startTimeE = ''
            }
            this.search()
      },
      changeEnd(e) {
         if (e.length > 0) {
             this.formInline.startTimeE = e[0]
             this.formInline.endTimeS = e[0]
             this.formInline.endTimeE = e[1]
         } else {
             this.formInline.startTimeE = ''
             this.formInline.endTimeS = ''
             this.formInline.endTimeE = ''
         }
          this.search()
company/src/components/business/OperaSolutionsDescWindow.vue
@@ -3,7 +3,7 @@
        :title="title"
        width="50%"
        text="修改"
        :visible="userInfo.type !== 1"
        :withFooter="userInfo.type !== 1"
        :visible.sync="visible"
        :confirm-working="isWorking"
        @confirm="$refs.operaSolutionsWindow.open('编辑方案', form)"
company/src/components/business/detailsPolicyholder.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,229 @@
<template>
    <GlobalWindow
        :title="title"
        width="100%"
        :visible.sync="visible"
        :confirm-working="isWorking"
        @confirm="confirm"
    >
        <div class="box">
            <div class="top">
                {{title}}
            </div>
            <div class="box_table">
                <div class="box_table_head">
                    <div class="box_table_head_item">投保企业</div>
                    <div class="box_table_head_item">保险方案</div>
                    <div class="box_table_head_item">保险生效起期</div>
                    <div class="box_table_head_item">保险生效止期</div>
                    <div class="box_table_head_item">投保人数</div>
                    <div class="box_table_head_item">总费用(元)</div>
                </div>
                <div class="box_table_content "  >
                    <div class="box_table_content_item box_table_content_header">{{ model.companyName }}</div>
                    <div class="box_table_content_item box_table_content_header">{{ model.solutionName }}</div>
                    <div class="box_table_content_item box_table_content_header">{{ model.applyStartTime }}</div>
                    <div class="box_table_content_item box_table_content_header">{{ model.applyEndTime }}</div>
                    <div class="box_table_content_item box_table_content_header">{{ model.insureNum }}</div>
                    <div class="box_table_content_item box_table_content_header">{{model.totalPrice}}</div>
                </div>
            </div>
            <div class="box_table" v-if="model">
                <div class="box_table_head">
                    <div class="box_table_head_item">序号</div>
                    <div class="box_table_head_item">员工姓名</div>
                    <div class="box_table_head_item">身份证号</div>
                    <div class="box_table_head_item">性别</div>
                    <div class="box_table_head_item">派遣单位</div>
                    <div class="box_table_head_item">所属工种</div>
                </div>
                <div class="box_table_content" v-for="(item, index) in model.detailList" :key="index">
                    <div class="box_table_content_item">{{index + 1}}</div>
                    <div class="box_table_content_item">{{ item.memberName }}</div>
                    <div class="box_table_content_item">{{ item.idCard }}</div>
                    <div class="box_table_content_item">{{ getGender(item.idCard) }}</div>
                    <div class="box_table_content_item">{{ item.duName }}</div>
                    <div class="box_table_content_item">{{ item.workTypeName}}</div>
                </div>
            </div>
        </div>
        <template v-slot:footer>
            <el-button type="primary" @click="submit">确定</el-button>
            <el-button @click="visible=false">取消</el-button>
        </template>
    </GlobalWindow>
</template>
<script>
    import BaseOpera from '@/components/base/BaseOpera'
    import GlobalWindow from '@/components/common/GlobalWindow'
    export default {
        name: 'InsuranceDetails',
        extends: BaseOpera,
        components: { GlobalWindow },
        data () {
            return {
                model:{}
            }
        },
        methods: {
            open(title, target){
                this.title = title
                this.visible = true
                this.model = target
            },
            submit() {
                this.$emit('success')
                this.visible = false
            },
            getGender(idCardNumber) {
                // ä½¿ç”¨æ­£åˆ™è¡¨è¾¾å¼æå–身份证号码的第17位数字
                const genderCode = idCardNumber.substr(-2);
                if (genderCode % 2 === 0) {
                    return '女';
                } else {
                    return '男';
                }
            },
        }
    }
</script>
<style lang="scss" scoped>
    .box {
        width: 100%;
        .top{
            width: 100%;
            align-items: center;
            flex-wrap: wrap;
            border-top: 1px solid #b4bbc5;
            border-left: 1px solid #b4bbc5;
            font-size: 14px;
            font-weight: bold;
            text-align: center;
            padding: 15px;
            box-sizing: border-box;
        }
        .box_header {
            width: 100%;
            display: flex;
            align-items: center;
            flex-wrap: wrap;
            border-top: 1px solid #b4bbc5;
            border-left: 1px solid #b4bbc5;
            .box_header_item {
                width: 50%;
                height: 50px;
                display: flex;
                align-items: center;
                border-right: 1px solid #b4bbc5;
                border-bottom: 1px solid #b4bbc5;
                box-sizing: border-box;
                .box_header_item_label {
                    flex: 1;
                    height: 100%;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    font-size: 14px;
                    color: black;
                    background: #f2f2f2;
                    border-right: 1px solid #b4bbc5;
                }
                .box_header_item_val {
                    flex: 1;
                    height: 100%;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    font-size: 14px;
                    color: black;
                }
            }
        }
        .box_table {
            width: 100%;
            border-top: 1px solid #b4bbc5;
            border-left: 1px solid #b4bbc5;
            box-sizing: border-box;
            .box_table_head {
                width: 100%;
                display: flex;
                align-items: center;
                .box_table_head_item {
                    flex: 1;
                    height: 50px;
                    background: #f2f2f2;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    font-size: 14px;
                    color: black;
                    border-right: 1px solid #b4bbc5;
                    border-bottom: 1px solid #b4bbc5;
                    box-sizing: border-box;
                    &:nth-child(1) {
                        //flex: 0.5;
                    }
                }
                .box_table_head_item5 {
                    flex: 1;
                    height: 50px;
                    background: #f2f2f2;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    font-size: 14px;
                    color: black;
                    border-right: 1px solid #b4bbc5;
                    border-bottom: 1px solid #b4bbc5;
                    box-sizing: border-box;
                    &:nth-child(2) {
                        flex: 5;
                    }
                }
                .box_form_item {
                    flex: 1;
                    height: 50px;
                    background: #ffffff;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    font-size: 14px;
                    color: black;
                    border-right: 1px solid #b4bbc5;
                    border-bottom: 1px solid #b4bbc5;
                    box-sizing: border-box;
                    &:nth-child(1) {
                        //flex: 0.5;
                    }
                }
            }
            .box_table_content {
                width: 100%;
                display: flex;
                align-items: center;
                .box_table_content_header{
                    border-bottom: 0px solid #b4bbc5 !important;
                }
                .box_table_content_item {
                    flex: 1;
                    height: 50px;
                    background: #ffffff;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    font-size: 14px;
                    color: black;
                    border-right: 1px solid #b4bbc5;
                    border-bottom: 1px solid #b4bbc5;
                    box-sizing: border-box;
                    &:nth-child(1) {
                        // flex: 0.5;
                    }
                }
            }
        }
    }
</style>
company/src/components/enterprise/OperaDispatchUnitWindow.vue
@@ -10,9 +10,9 @@
            <el-form-item label="派遣单位名称" prop="name">
                <el-input v-model="form.name" placeholder="请输入" v-trim/>
            </el-form-item>
            <el-form-item label="派遣单位信用代码" prop="code">
                <el-input v-model="form.code" placeholder="请输入" v-trim/>
            </el-form-item>
<!--            <el-form-item label="派遣单位信用代码" prop="code">-->
<!--                <el-input v-model="form.code" placeholder="请输入" v-trim/>-->
<!--            </el-form-item>-->
            <el-form-item label="派遣单位描述" prop="content">
                <el-input v-model="form.content" placeholder="请输入" v-trim/>
            </el-form-item>
@@ -130,12 +130,12 @@
        name: [
          { required: true, message: '请输入派遣单位名称' }
        ],
        code: [
          { required: true, message: '请输入派遣单位信用代码' }
        ],
        content: [
          { required: true, message: '请输入派遣单位描述' }
        ]
        // code: [
        //   { required: true, message: '请输入派遣单位信用代码' }
        // ],
        // content: [
        //   { required: true, message: '请输入派遣单位描述' }
        // ]
      },
      insuranceScheme: []
    }
company/src/components/enterprise/OperaInsuranceApplyWindow.vue
@@ -138,6 +138,8 @@
        <importEmployees ref="importEmployees" @result="getValue" />
        <!--    ç¡®è®¤å·¥ç§    -->
        <confirmJobType ref="confirmJobType" @result="getUser" />
        <!--    æŸ¥çœ‹è¯¦å•    -->
        <detailsPolicyholder ref="detailsPolicyholder" @success="successEvent" />
    </GlobalWindow>
</template>
@@ -148,12 +150,14 @@
import addEmployee from '@/components/enterprise/addEmployee'
import importEmployees from '@/components/enterprise/importEmployees'
import confirmJobType from '@/components/enterprise/confirmJobType'
import detailsPolicyholder from '@/components/business/detailsPolicyholder'
import { all, getNewVersion } from '@/api/business/solutions'
import { mapState } from 'vuex'
import { create, getCountCyclePriceVO, getDetail, findList, updateData } from '@/api/business/insuranceApply'
export default {
  name: 'OperaInsuranceApplyWindow2',
  extends: BaseOpera,
  components: { GlobalWindow, selectEmployees, addEmployee, importEmployees, confirmJobType },
  components: { GlobalWindow, selectEmployees, addEmployee, importEmployees, confirmJobType, detailsPolicyholder },
  data () {
    return {
      form: {
@@ -163,6 +167,7 @@
          applyStartTime: '',
          applyEndTime: ''
      },
      solutionName: '',
      type: '',
      pickerOptions: {}, // å­˜æ”¾picker options的变量
      price: '',
@@ -187,7 +192,52 @@
          'field.id': 'id'
      })
  },
    computed: {
      ...mapState(['userInfo'])
    },
    methods: {
      successEvent() {
          let arr = JSON.parse(JSON.stringify(this.tableData))
          arr.forEach(item => {
              item.idcardNo = item.idCard
          })
          this.isWorking = true
          // if (!this.form.id) {
              create({
                  applyDetailList: arr,
                  applyStartTime: this.form.applyStartTime,
                  applyEndTime: this.form.applyEndTime,
                  solutionId: this.form.solutionId
              }).then(() => {
                  this.visible = false
                  this.$tip.apiSuccess('操作成功')
                  this.$emit('success')
              })
                  .catch(e => {
                      this.$tip.apiFailed(e)
                  })
                  .finally(() => {
                      this.isWorking = false
                  })
          // } else {
          //     updateData({
          //         id: this.form.id,
          //         applyDetailList: arr,
          //         applyStartTime: this.form.applyStartTime,
          //         applyEndTime: this.form.applyEndTime,
          //         solutionId: this.form.solutionId
          //     }).then(() => {
          //         this.visible = false
          //         this.$tip.apiSuccess('操作成功')
          //         this.$emit('success')
          //     }).catch(e => {
          //         this.$tip.apiFailed(e)
          //     })
          //         .finally(() => {
          //             this.isWorking = false
          //         })
          // }
      },
      open (title, target) {
          this.title = title
          this.tableData = []
@@ -277,52 +327,68 @@
                        return
                    }
                    for (let i = 0; i < this.tableData.length; i++) {
                        console.log(this.tableData[i].worktypeId, this.tableData[i].duId)
                        console.log(this.tableData[i].worktypeId)
                        console.log(this.tableData[i].duId)
                        if (!this.tableData[i].worktypeId || !this.tableData[i].duId) {
                            this.$message.warning('请完善派遣单位和工种信息')
                            return
                        }
                    }
                    let arr = JSON.parse(JSON.stringify(this.tableData))
                    arr.forEach(item => {
                        item.idcardNo = item.idCard
                    let price = 0
                    this.tableData.forEach(item => {
                        price = price + item.fee
                    })
                    this.isWorking = true
                    if (!this.form.id) {
                        create({
                            applyDetailList: arr,
                            applyStartTime: this.form.applyStartTime,
                            applyEndTime: this.form.applyEndTime,
                            solutionId: this.form.solutionId
                        }).then(() => {
                            this.visible = false
                            this.$tip.apiSuccess('操作成功')
                            this.$emit('success')
                        })
                            .catch(e => {
                                this.$tip.apiFailed(e)
                            })
                            .finally(() => {
                                this.isWorking = false
                            })
                    } else {
                        updateData({
                            id: this.form.id,
                            applyDetailList: arr,
                            applyStartTime: this.form.applyStartTime,
                            applyEndTime: this.form.applyEndTime,
                            solutionId: this.form.solutionId
                        }).then(() => {
                            this.visible = false
                            this.$tip.apiSuccess('操作成功')
                            this.$emit('success')
                        }).catch(e => {
                            this.$tip.apiFailed(e)
                        })
                        .finally(() => {
                            this.isWorking = false
                        })
                    }
                    this.$refs.detailsPolicyholder.open('投保详情单', {
                        companyName: this.userInfo.company.name,
                        solutionName: this.item.name,
                        applyStartTime: this.form.applyStartTime,
                        applyEndTime: this.form.applyEndTime,
                        insureNum: this.tableData.length,
                        totalPrice: price,
                        detailList: this.tableData
                    })
                    // let arr = JSON.parse(JSON.stringify(this.tableData))
                    // arr.forEach(item => {
                    //     item.idcardNo = item.idCard
                    // })
                    // this.isWorking = true
                    // if (!this.form.id) {
                    //     create({
                    //         applyDetailList: arr,
                    //         applyStartTime: this.form.applyStartTime,
                    //         applyEndTime: this.form.applyEndTime,
                    //         solutionId: this.form.solutionId
                    //     }).then(() => {
                    //         this.visible = false
                    //         this.$tip.apiSuccess('操作成功')
                    //         this.$emit('success')
                    //     })
                    //         .catch(e => {
                    //             this.$tip.apiFailed(e)
                    //         })
                    //         .finally(() => {
                    //             this.isWorking = false
                    //         })
                    // } else {
                    //     updateData({
                    //         id: this.form.id,
                    //         applyDetailList: arr,
                    //         applyStartTime: this.form.applyStartTime,
                    //         applyEndTime: this.form.applyEndTime,
                    //         solutionId: this.form.solutionId
                    //     }).then(() => {
                    //         this.visible = false
                    //         this.$tip.apiSuccess('操作成功')
                    //         this.$emit('success')
                    //     }).catch(e => {
                    //         this.$tip.apiFailed(e)
                    //     })
                    //     .finally(() => {
                    //         this.isWorking = false
                    //     })
                    // }
                }
            })
@@ -386,7 +452,7 @@
              this.$message.warning('请先选择保险方案')
              return
          }
          this.$refs.importEmployees.open('上传名单', { arr: this.tableData, price: this.price })
          this.$refs.importEmployees.open('上传名单', { arr: this.tableData, solutionId: this.form.solutionId, type: 1, price: this.price })
      },
      // åˆ‡æ¢æ–¹æ¡ˆ
      changeSolution(e) {
company/src/components/enterprise/confirmJobType.vue
@@ -65,7 +65,7 @@
            getFindListByDTO () {
                findListByDTO({
                    solutionId: this.form.solutionId,
                    dataType: 0
                    // dataType: 0
                }).then(res => {
                    this.dispatching = res
                })
company/src/components/enterprise/dispatchUnitDetails.vue
@@ -12,10 +12,10 @@
                    <div class="info_list_item_label">派遣单位:</div>
                    <div class="info_list_item_val">{{form.name}}</div>
                </div>
                <div class="info_list_item">
                    <div class="info_list_item_label">派遣单位信用代码:</div>
                    <div class="info_list_item_val">{{form.code}}</div>
                </div>
<!--                <div class="info_list_item">-->
<!--                    <div class="info_list_item_label">派遣单位信用代码:</div>-->
<!--                    <div class="info_list_item_val">{{form.code}}</div>-->
<!--                </div>-->
                <div class="info_list_item">
                    <div class="info_list_item_label">派遣单位状态:</div>
                    <div class="info_list_item_val" style="color:#2E68EC;" v-if="form.unitStatus === 0">待审核</div>
@@ -236,7 +236,7 @@
                margin-bottom: 15px;
                .info_list_item_label {
                    flex-shrink: 0;
                    width: 150px;
                    /*width: 150px;*/
                    font-size: 14px;
                    color: black;
                }
company/src/components/enterprise/importEmployees.vue
@@ -31,6 +31,8 @@
            return {
                list: [],
                price: 0,
                type: null,
                solutionId: null,
                addList: [],
                fileName: ''
            }
@@ -40,13 +42,20 @@
                this.title = title
                this.addList = []
                this.fileName = ''
                this.type = obj.type
                this.visible = true
                this.solutionId = obj.solutionId
                this.list = obj.arr
                this.price = obj.price
            },
            // å¯¼å‡ºæ¨¡æ¿
            exportTemplate () {
                window.open(process.env.VUE_APP_MEMBER_URL)
                // æŠ•保申请
                if (this.type === 1) {
                    window.open(process.env.VUE_APP_MEMBER1_URL)
                } else {
                    window.open(process.env.VUE_APP_MEMBER_URL)
                }
            },
            clickRef () {
                this.$refs.fileExcel.click()
@@ -54,6 +63,7 @@
            result (e) {
                const data = new FormData()
                data.append('file', e.target.files[0])
                data.append('solutionId', this.solutionId)
                importExcel(data)
                    .then(res => {
                        res.forEach(item => {
company/src/components/enterprise/renewalInsurance.vue
@@ -27,18 +27,25 @@
                </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 label="投保时长(天)">
                <template slot-scope="{row}">
                    <span>{{row.serviceDays < 0 ? `-` : row.serviceDays}}</span>
                </template>
            </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="endTime" label="保险生效止期"></el-table-column>
            <el-table-column label="失效剩余(天)">
                <template slot-scope="{row}">
                    <span style="color: #F95601;">{{row.loseEfficacyDays}}</span>
                </template>
            </el-table-column>
            <el-table-column
                min-width="150"
                min-width="100"
                label="操作">
                <template slot-scope="{row}">
                    <el-button type="text" @click="$refs.OperaInsuranceApply.open('续保', { id: row.id, type: 1 })">一件续保</el-button>
                    <el-button type="text" @click="dele(row)">删除提醒</el-button>
<!--                    <el-button type="text" @click="dele(row)">删除提醒</el-button>-->
                </template>
            </el-table-column>
        </el-table>
@@ -94,24 +101,13 @@
                    capacity: 10,
                    page: this.currentPage,
                    model: {
                        loseEfficacy: 1
                        loseEfficacy: 1,
                        status: 5
                    }
                }).then(res => {
                    this.tableData = res.records
                    this.total = res.total
                })
            },
            dele(row) {
                this.$confirm('确定关闭此提示吗?', '提示', {
                    confirmButtonText: '确定',
                    cancelButtonText: '取消',
                    type: 'warning'
                }).then(() => {
                }).catch(() => {
                });
                console.log(row)
            },
            successEvent(){
                this.$emit('success')
company/src/layouts/AppLayout.vue
@@ -11,7 +11,7 @@
          <AppHeader/>
        </header>
        <div style="height:10px;"></div>
        <main>
        <main ref="containerS">
          <transition name="fade">
<!--            <keep-alive>-->
              <router-view></router-view>
@@ -29,19 +29,28 @@
import Header from '@/components/common/Header'
import CommonHeader from '@/components/common/CommonHeader'
import Menu from '@/components/common/Menu'
import Watermark from "@/utils/waterMark";
export default {
  name: 'DefaultLayout',
  components: { AppHeader: Header, Menu, CommonHeader },
  data() {
    return {
      isFinishData: false
      isFinishData: false,
        orgBackground: ''
    }
  },
  computed: {
    ...mapState(['menuData', 'userInfo'])
  },
  methods: {
    mounted() {
      // ä¼ä¸šç«¯ç”¨æˆ·è®¾ç½®æ°´å°
      if (this.userInfo.type === 1) {
          Watermark.set(this.userInfo.company.name, this.$refs.containerS);
      }
    },
    methods: {
  },
}
@@ -99,6 +108,7 @@
    }
    & > main {
      height: 100%;
        box-sizing: border-box;
      overflow-y: auto;
    }
  }
company/src/utils/waterMark.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,56 @@
'use strict'
const watermark = {}
const setWatermark = (str, container) => {
    const id = '1.23452384164.123412415'
    if (container === undefined) {
        return
    }
    // æŸ¥çœ‹é¡µé¢ä¸Šæœ‰æ²¡æœ‰ï¼Œå¦‚果有则删除
    if (document.getElementById(id) !== null) {
        const childelement = document.getElementById(id)
        childelement.parentNode.removeChild(childelement)
    }
    var containerWidth = container.offsetWidth // èŽ·å–çˆ¶å®¹å™¨å®½
    var containerHeight = container.offsetHeight // èŽ·å–çˆ¶å®¹å™¨é«˜
    container.style.position = 'relative' // è®¾ç½®å¸ƒå±€ä¸ºç›¸å¯¹å¸ƒå±€
    // åˆ›å»ºcanvas元素(先制作一块背景图)
    const can = document.createElement('canvas')
    can.width = 300 // è®¾ç½®æ¯ä¸€å—的宽度
    can.height = 260 // é«˜åº¦
    const cans = can.getContext('2d') // èŽ·å–canvas画布
    cans.rotate(-20 * Math.PI / 180) // é€†æ—¶é’ˆæ—‹è½¬Ï€/9
    cans.font = '24px Vedana' // è®¾ç½®å­—体
    cans.fillStyle = 'rgba(0, 0, 0, 0.1)' // è®¾ç½®å­—体的颜色
    cans.textAlign = 'left' // æ–‡æœ¬å¯¹é½æ–¹å¼
    cans.textBaseline = 'Middle' // æ–‡æœ¬åŸºçº¿
    cans.fillText(str, 0, 4 * can.height / 5) // ç»˜åˆ¶æ–‡å­—
    // åˆ›å»ºä¸€ä¸ªdiv元素
    const div = document.createElement('div')
    div.id = id // è®¾ç½®id
    div.style.pointerEvents = 'none' // å–消所有事件
    div.style.top = '0px'
    div.style.left = '0px'
    div.style.position = 'absolute'
    div.style.zIndex = '100000'
    div.style.width = '100%'
    // div.style.width = containerWidth + 'px'
    div.style.height = containerHeight + 'px'
    div.style.background = 'url(' + can.toDataURL('image/png') + ') left top repeat'
    container.appendChild(div) // è¿½åŠ åˆ°é¡µé¢
    return id
}
// è¯¥æ–¹æ³•只允许调用一次
watermark.set = (str, container) => {
    let id = setWatermark(str, container)
    setInterval(() => {
        if (document.getElementById(id) === null) {
            id = setWatermark(str, container)
        }
    }, 500)
    // ç›‘听页面大小的变化
    window.onresize = () => {
        setWatermark(str, container)
    }
}
export default watermark
company/src/views/business/insuranceApply.vue
@@ -18,9 +18,9 @@
                <el-select v-model="searchForm.companyId" placeholder="请选择" @change="search">
                    <el-option
                        v-for="item in companyList"
                        :key="item.baseId"
                        :key="item.id"
                        :label="item.name"
                        :value="item.baseId">
                        :value="item.id">
                    </el-option>
                </el-select>
            </el-form-item>
company/src/views/business/solutions.vue
@@ -67,6 +67,7 @@
                        </el-switch>
                    </template>
                </el-table-column>
                <el-table-column prop="createDate" label="方案日期" min-width="100px"></el-table-column>
                <el-table-column
                    v-if="containPermissions(['business:solutions:update', 'business:solutions:delete'])"
                    label="操作"
company/src/views/enterprise/insuranceApply.vue
@@ -62,7 +62,11 @@
                </el-table-column>
                <el-table-column prop="solutionsName" label="保险方案"></el-table-column>
                <el-table-column prop="insureNum" label="投保人数"></el-table-column>
                <el-table-column prop="serviceDays" label="投保时长(天)"></el-table-column>
                <el-table-column label="投保时长(天)">
                    <template slot-scope="{row}">
                        <span>{{(row.serviceDays - row.loseEfficacyDays) < 0 ? `-` : row.serviceDays - row.loseEfficacyDays}}</span>
                    </template>
                </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>
company/src/views/enterprise/myPolicy.vue
@@ -93,7 +93,11 @@
                    </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 label="投保时长(天)">
                    <template slot-scope="{row}">
                        <span>{{(row.serviceDays - row.loseEfficacyDays) < 0 ? `-` : row.serviceDays - row.loseEfficacyDays}}</span>
                    </template>
                </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>
@@ -107,9 +111,9 @@
                >
                    <template slot-scope="{row}">
                        <el-button type="text" @click="$refs.OperaInsuranceApplyDetails.open('投保详情', { id: row.id })" v-permissions="['business:insuranceapply:update']">查看详情</el-button>
                        <template v-if="row.statusCollect === 2">
                            <el-button type="text" @click="$refs.additionSubtractionApplication.open('加减保申请', { id: row.id })">加减保申请</el-button>
                        </template>
<!--                        <template v-if="row.statusCollect === 2">-->
<!--                            <el-button type="text" @click="$refs.additionSubtractionApplication.open('加减保申请', { id: row.id })">加减保申请</el-button>-->
<!--                        </template>-->
                    </template>
                </el-table-column>
            </el-table>
company/vue.config.js
@@ -3,7 +3,7 @@
// const outputDir = process.env.VUE_APP_CONTEXT_PATH.substring(1, process.env.VUE_APP_CONTEXT_PATH.length)
module.exports = {
  publicPath: './',
  outputDir: 'yyb_admin',
  outputDir: 'yyb_web',
  assetsDir: 'static',
  lintOnSave: false,
  devServer: {
platform/src/layouts/AppLayout.vue
@@ -11,7 +11,7 @@
          <AppHeader/>
        </header>
        <div style="height:10px;"></div>
        <main>
        <main ref="containerS">
          <transition name="fade">
<!--            <keep-alive>-->
              <router-view></router-view>
@@ -29,19 +29,28 @@
import Header from '@/components/common/Header'
import CommonHeader from '@/components/common/CommonHeader'
import Menu from '@/components/common/Menu'
import Watermark from "@/utils/waterMark";
export default {
  name: 'DefaultLayout',
  components: { AppHeader: Header, Menu, CommonHeader },
  data() {
    return {
      isFinishData: false
      isFinishData: false,
        orgBackground: ''
    }
  },
  computed: {
    ...mapState(['menuData', 'userInfo'])
  },
  methods: {
    mounted() {
      // ä¼ä¸šç«¯ç”¨æˆ·è®¾ç½®æ°´å°
      if (this.userInfo.type === 1) {
          Watermark.set(this.userInfo.company.name, this.$refs.containerS);
      }
    },
    methods: {
  },
}
@@ -99,6 +108,7 @@
    }
    & > main {
      height: 100%;
        box-sizing: border-box;
      overflow-y: auto;
    }
  }