MrShi
2025-04-11 3a45da15c947c2d478a44a51bd0f926647b1b841
company/src/views/enterprise/myPolicy.vue
@@ -77,55 +77,66 @@
                :data="tableData.list"
                stripe
            >
                <el-table-column label="序号" width="80px">
                <el-table-column label="序号" width="80px" align="center" fixed>
                    <template slot-scope="scope">
                        <span>{{scope.$index + 1}}</span>
                    </template>
                </el-table-column>
                <el-table-column prop="statusInfo" label="状态">
                <el-table-column prop="statusInfo" align="center" fixed 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="类型">
                <el-table-column prop="solutionsName" align="center" fixed label="保险方案" min-width="150"></el-table-column>
              <el-table-column label="类型" fixed  align="center">
                <template slot-scope="{row}">
                  <span style="color: #00BA92" v-if="row.solutionType == 1">委托投保</span>
                  <span style="color: #F95601;"  v-else>直接投保</span>
                </template>
              </el-table-column>
              <el-table-column label="保单号">
              <el-table-column label="保单号" align="center" fixed>
                    <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 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="已产生费用">
                    <template slot-scope="{row}">
                      <span>{{row.currentFee!=null?row.currentFee: '-'}}</span>
                    </template>
                  </el-table-column>
                <el-table-column prop="fee" label="总费用(元)">
                <el-table-column prop="insureNum" align="center" label="投保人数"  >
                  <template slot-scope="{row}">
                    <span>{{row.fee!=null?row.fee: '-'}}</span>
                    <span>{{(row.insureNum||0) + '人'}}</span>
                  </template>
                </el-table-column>
                <el-table-column prop="createDate" 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="guaranteeNum"  align="center" label="在保人数"  >
                  <template slot-scope="{row}">
                    <span>{{(row.guaranteeNum||0)}} 人</span>
                  </template>
                </el-table-column>
                <el-table-column label="投保时长" align="center">
                    <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="已产生费用"  align="center">
                    <template slot-scope="{row}">
                      <span>{{row.currentFee!=null?row.currentFee+' 元': '-'}}</span>
                    </template>
                  </el-table-column>
                <el-table-column prop="fee" label="总费用"  align="center">
                  <template slot-scope="{row}">
                    <span>{{row.fee!=null?row.fee+' 元': '-'}}</span>
                  </template>
                </el-table-column>
                <el-table-column prop="createDate" label="提交日期"  align="center" min-width="150"></el-table-column>
                <el-table-column prop="startTime" label="投保生效日期"  align="center" min-width="150"></el-table-column>
                <el-table-column prop="endTime" label="投保失效日期"  align="center" min-width="150"></el-table-column>
                <el-table-column
                    v-if="containPermissions(['business:insuranceapply:update', 'business:insuranceapply:delete'])"
                    label="操作"
                    min-width="150"
                    fixed="right"
                    align="center"
                >
                    <template slot-scope="{row}">
                        <el-button type="text" @click="godetail(row)" v-permissions="['business:insuranceapply:update']">查看详情</el-button>
                        <el-button type="text" @click="$refs.OperaApplyChangeMonthWindow.open('加减保月度费用统计',row)" v-permissions="['business:applychange:query']">加减保费用</el-button>
<!--                        <template v-if="row.statusCollect === 2">-->
<!--                            <el-button type="text" @click="$refs.additionSubtractionApplication.open('加减保申请', { id: row.id })">加减保申请</el-button>-->
<!--                        </template>-->
@@ -140,141 +151,154 @@
            </pagination>
        </template>
        <!--    新增投保    -->
        <OperaInsuranceApplyWindow ref="OperaInsuranceApplyWindow" @success="handlePageChange" />
        <OperaInsuranceApplyWindow ref="OperaInsuranceApplyWindow" @success="result" />
        <!--    投保详情    -->
        <OperaInsuranceApplyDetails ref="OperaInsuranceApplyDetails" @success="handlePageChange" />
      <OperaWtbApplyShopWindow ref="OperaWtbApplyShopWindow" @success="handlePageChange" />
        <!--    加减保申请    -->
        <additionSubtractionApplication ref="additionSubtractionApplication" @success="handlePageChange" />
        <!--    续保弹窗    -->
        <OperaApplyChangeMonthWindow ref="OperaApplyChangeMonthWindow" @success="handlePageChange" />
        <renewalInsurance ref="renewalInsurance" @success="handlePageChange" />
    </TableLayout>
</template>
<script>
    import BaseTable from '@/components/base/BaseTable'
    import TableLayout from '@/layouts/TableLayout'
    import Pagination from '@/components/common/Pagination'
    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 OperaWtbApplyShopWindow from '@/components/business/OperaWtbApplyShopWindow'
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaInsuranceApplyWindow from '@/components/enterprise/OperaInsuranceApplyAddWindow'
import OperaInsuranceApplyDetails from '@/components/business/OperaInsuranceApplyWindow'
import additionSubtractionApplication from '@/components/enterprise/additionSubtractionApplication'
import renewalInsurance from '@/components/enterprise/renewalInsurance'
import OperaWtbApplyShopWindow from '@/components/business/OperaWtbApplyShopWindow'
import OperaApplyChangeMonthWindow from '@/components/business/OperaApplyChangeMonthWindow'
    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,
            renewalInsurance,
            additionSubtractionApplication,
          OperaWtbApplyShopWindow
        },
        data () {
            return {
                // 搜索
                searchForm: {
                    code: '',
                    endTimeE: '',
                    endTimeS: '',
                    startTimeE: '',
                    startTimeS: '',
                    baseSolutionId: '',
                    statusCollect: '2'
                },
                obj: {
                    renewalNum: 0,
                    waitSignNum: 0
                },
                time1: [],
                time2: [],
                solutionList:[]
            }
        },
        created () {
            this.config({
                module: '投保申请信息表',
                api: '/business/insuranceApply',
                'field.id': 'id',
                'field.main': 'id'
            })
            this.search()
            this.loadSelectList()
            this.getNum()
        },
        methods:{
          godetail (row) {
            if (row.solutionType == 1) {
              this.$refs.OperaWtbApplyShopWindow.open('委托投保详情', { id: row.id })
            } else {
              this.$refs.OperaInsuranceApplyDetails.open('投保详情', { id: row.id })
            }
          },
            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 = []
                this.searchForm.endTimeE = ''
                this.searchForm.endTimeS = ''
                this.searchForm.startTimeE = ''
                this.searchForm.startTimeS = ''
                this.$refs.searchForm.resetFields()
                this.search()
            },
            changeE(e) {
                if (e.length > 0) {
                    this.searchForm.endTimeS = e[0]
                    this.searchForm.endTimeE = e[1]
                } else {
                    this.searchForm.endTimeS = ''
                    this.searchForm.endTimeE = ''
                }
                this.search()
            },
            changeS(e) {
                if (e.length > 0) {
                    this.searchForm.startTimeS = e[0]
                    this.searchForm.startTimeE = e[1]
                } else {
                    this.searchForm.startTimeS = ''
                    this.searchForm.startTimeE = ''
                }
                this.search()
            },
            loadSelectList() {
                solutionAll({ dataType: 0 }).then(res => {
                    this.solutionList = res
                })
            }
        }
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,
    renewalInsurance,
    OperaApplyChangeMonthWindow,
    additionSubtractionApplication,
    OperaWtbApplyShopWindow
  },
  data () {
    return {
      // 搜索
      searchForm: {
        code: '',
        endTimeE: '',
        endTimeS: '',
        startTimeE: '',
        startTimeS: '',
        baseSolutionId: '',
        statusCollect: '2'
      },
      obj: {
        renewalNum: 0,
        waitSignNum: 0
      },
      time1: [],
      time2: [],
      solutionList: []
    }
  },
  created () {
    this.config({
      module: '投保申请信息表',
      api: '/business/insuranceApply',
      'field.id': 'id',
      'field.main': 'id'
    })
    this.search()
    this.loadSelectList()
    this.getNum()
  },
  methods: {
    godetail (row) {
      if (row.solutionType == 1) {
        this.$refs.OperaWtbApplyShopWindow.open('委托投保详情', { id: row.id })
      } else {
        this.$refs.OperaInsuranceApplyDetails.open('投保详情', { id: row.id })
      }
    },
    result(flag,param){
      console.log(flag,param)
      if(param && param.godetail && param.id){
        if (param.type == 1) {
          this.$refs.OperaWtbApplyShopWindow.open('委托投保详情', { id: param.id })
        } else {
          this.$refs.OperaInsuranceApplyDetails.open('投保详情', { id: param.id })
        }
      }
      this.handlePageChange()
    },
    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 = []
      this.searchForm.endTimeE = ''
      this.searchForm.endTimeS = ''
      this.searchForm.startTimeE = ''
      this.searchForm.startTimeS = ''
      this.$refs.searchForm.resetFields()
      this.search()
    },
    changeE (e) {
      if (e.length > 0) {
        this.searchForm.endTimeS = e[0]
        this.searchForm.endTimeE = e[1]
      } else {
        this.searchForm.endTimeS = ''
        this.searchForm.endTimeE = ''
      }
      this.search()
    },
    changeS (e) {
      if (e.length > 0) {
        this.searchForm.startTimeS = e[0]
        this.searchForm.startTimeE = e[1]
      } else {
        this.searchForm.startTimeS = ''
        this.searchForm.startTimeE = ''
      }
      this.search()
    },
    loadSelectList () {
      solutionAll({ dataType: 0 }).then(res => {
        this.solutionList = res
      })
    }
  }
}
</script>