jiangping
2025-06-17 78a173f85f8a4666d83cf8d900f04dd9f8e3e127
company/src/views/business/member.vue
@@ -9,7 +9,7 @@
                <el-input v-model="searchForm.idcardNo" placeholder="请输入" maxlength="18" @keypress.enter.native="search"></el-input>
            </el-form-item>
            <el-form-item label="保险方案" prop="solutionsId">
                <el-select v-model="searchForm.solutionsId" placeholder="请选择" @change="search">
                <el-select v-model="searchForm.solutionsId" filterable placeholder="请选择" @change="search">
                    <el-option
                        v-for="item in solutions"
                        :key="item.baseId"
@@ -25,7 +25,7 @@
                </el-select>
            </el-form-item>
            <el-form-item  v-if="userInfo.type === 0" label="所属企业" prop="companyId">
                <el-select v-model="searchForm.companyId" placeholder="请选择" @change="search">
                <el-select v-model="searchForm.companyId" filterable placeholder="请选择" @change="search">
                    <el-option
                        v-for="(item, index) in companyList"
                        :key="index"
@@ -62,40 +62,41 @@
                :data="tableData.list"
                stripe
            >
                <el-table-column label="序号" width="80px">
               <el-table-column align="center"  label="序号" width="50px" fixed>
                    <template slot-scope="scope">
                        <span>{{scope.$index + 1}}</span>
                    </template>
                </el-table-column>
                <el-table-column label="保险状态" min-width="100px">
               <el-table-column align="center"  label="保险状态" min-width="80px" fixed>
                    <template slot-scope="{row}">
                        <span style="color: green;" v-if="row.solutionsStatus === 1">保障中</span>
                        <span v-else-if="row.solutionsStatus === 2">不在保</span>
                    </template>
                </el-table-column>
                <el-table-column prop="companyName"  label="所属企业" min-width="100px" v-if="userInfo.type === 0"></el-table-column>
                <el-table-column prop="name" label="员工姓名" min-width="100px"></el-table-column>
                <el-table-column label="性别" min-width="100px">
                    <template slot-scope="{row}">
                        <span v-if="row.sex === 0">男</span>
               <el-table-column align="center"  prop="companyName" fixed label="所属企业" min-width="150px" v-if="userInfo.type === 0"></el-table-column>
               <el-table-column align="center"  prop="name" label="员工姓名" fixed min-width="100px"></el-table-column>
              <el-table-column align="center"  prop="solutionName" label="保险方案" fixed min-width="150px"></el-table-column>
              <el-table-column align="center"  prop="idcardNo" label="身份证号码" fixed min-width="150px"></el-table-column>
              <el-table-column align="center"  label="性别" min-width="50px" fixed>
                 <template slot-scope="{row}">
                      <span v-if="row.sex === 0">男</span>
                      <span  v-if="row.sex === 1">女</span>
                    </template>
                </el-table-column>
                <el-table-column prop="idcardNo" label="身份证号码" min-width="100px"></el-table-column>
                <el-table-column label="年龄" min-width="100px">
               </el-table-column>
               <el-table-column align="center"  label="年龄" min-width="50px" fixed>
                    <template slot-scope="{row}">
                        {{ calculateAge(row.idcardNo) }}
                    </template>
                </el-table-column>
                <el-table-column prop="solutionName" label="保险方案" min-width="100px"></el-table-column>
                <el-table-column prop="duName" label="派遣单位" min-width="100px"></el-table-column>
                <el-table-column prop="workTypeName" label="所属工种" min-width="100px"></el-table-column>
                <el-table-column prop="startTime" label="实际保险生效起期" min-width="100px"></el-table-column>
                <el-table-column prop="endTime" label="实际保险生效止期" min-width="100px"></el-table-column>
                <el-table-column label="操作"
               <el-table-column align="center"  prop="duName" label="派遣单位" min-width="150px"></el-table-column>
               <el-table-column align="center"  prop="workTypeName" label="所属工种" min-width="150px"></el-table-column>
               <el-table-column align="center"  prop="startTime" label="实际保险生效起期" min-width="150px"></el-table-column>
               <el-table-column align="center"  prop="endTime" label="实际保险生效止期" min-width="150px"></el-table-column>
               <el-table-column align="center"  label="操作"
                     fixed="right"
                     min-width="120px">
                    <template slot-scope="{row}">
                        <el-button type="text" @click="$refs.editMemberWindow.open('编辑', row)" v-if="userInfo.type === 0">编辑</el-button>
                        <el-button type="text" @click="$refs.insuranceRecords.open('投保记录', row)">投保记录</el-button>
                    </template>
                </el-table-column>
@@ -109,6 +110,8 @@
        </template>
        <!-- 新建/修改 -->
        <OperaMemberWindow ref="operaMemberWindow" @success="handlePageChange" />
        <!--    编辑    -->
        <EditMemberWindow ref="editMemberWindow" @success="handlePageChange" />
        <!--    投保记录    -->
        <insuranceRecords ref="insuranceRecords" @success="handlePageChange" />
    </TableLayout>
@@ -119,6 +122,7 @@
    import TableLayout from '@/layouts/TableLayout'
    import Pagination from '@/components/common/Pagination'
    import OperaMemberWindow from '@/components/business/OperaMemberWindow'
    import EditMemberWindow from '@/components/business/EditMemberWindow'
    import insuranceRecords from '@/components/enterprise/insuranceRecords'
    import { all } from '@/api/business/solutions'
    import { findListByDTO } from '@/api/business/dispatchUnit'
@@ -128,7 +132,7 @@
    export default {
        name: 'Member',
        extends: BaseTable,
        components: { TableLayout, Pagination, OperaMemberWindow, insuranceRecords },
        components: { TableLayout, Pagination, OperaMemberWindow, EditMemberWindow, insuranceRecords },
        data () {
            return {
                // 搜索
@@ -160,7 +164,7 @@
        methods: {
            expr() {
                memberExportExcel({
                    capacity: 1000,
                    capacity: 60000,
                    page: 1,
                    model: this.searchForm
                }).then(res => {
@@ -172,16 +176,11 @@
                    .then(res => {
                        this.solutions = res
                    })
             /* if(this.userInfo.type ==1){
                findListByDTO({ dataType: 2 })
                    .then(res => {
                      this.options = res
                if (this.userInfo.type === 0) {
                    companyAll({}).then(res => {
                        this.companyList = res
                    })
              }*/
              companyAll({}).then(res => {
                this.companyList = res
              })
                }
            },
            calculateAge(idNumber) {
                if (!idNumber) return