|
|
@@ -0,0 +1,633 @@
|
|
|
+<template>
|
|
|
+ <div class="system-page config-page">
|
|
|
+ <el-card class="page-card">
|
|
|
+ <template #header>
|
|
|
+ <div class="card-header">
|
|
|
+ <div class="header-left">
|
|
|
+ <el-icon :size="20" color="#409EFF"><Umbrella /></el-icon>
|
|
|
+ <span class="page-title">项目保险信息</span>
|
|
|
+ </div>
|
|
|
+ <div class="search-right">
|
|
|
+ <el-button type="primary" plain icon="Plus" @click="handleAdd" v-hasPermi="['insure:insureinfo:add']">新增</el-button>
|
|
|
+ <el-button type="success" plain icon="Edit" :disabled="single" @click="handleUpdate" v-hasPermi="['insure:insureinfo:edit']">修改</el-button>
|
|
|
+ <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete" v-hasPermi="['insure:insureinfo:remove']">删除</el-button>
|
|
|
+ <el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['insure:insureinfo:export']">导出</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <div class="search-bar">
|
|
|
+ <el-form ref="queryFormRef" :model="queryParams" :inline="true">
|
|
|
+ <el-form-item label="保单编号" prop="policyNo">
|
|
|
+ <el-input v-model="queryParams.policyNo" placeholder="请输入保单编号" clearable style="width: 180px" @keyup.enter="handleQuery" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="投保单位" prop="insuranceUnit">
|
|
|
+ <el-input v-model="queryParams.insuranceUnit" placeholder="请输入投保单位" clearable style="width: 180px" @keyup.enter="handleQuery" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="保险公司" prop="insureCompanyName">
|
|
|
+ <el-input v-model="queryParams.insureCompanyName" placeholder="请输入保险公司名称" clearable style="width: 180px" @keyup.enter="handleQuery" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <el-table v-loading="loading" :data="insureInfoList" @selection-change="handleSelectionChange">
|
|
|
+ <el-table-column type="selection" width="55" align="center" />
|
|
|
+ <el-table-column label="保单编号" align="center" prop="policyNo" v-if="columns.policyNo.visible" :show-overflow-tooltip="true" />
|
|
|
+ <el-table-column label="投保单位" align="center" prop="insuranceUnit" v-if="columns.insuranceUnit.visible" :show-overflow-tooltip="true" />
|
|
|
+ <el-table-column label="投保工程" align="center" prop="engName" v-if="columns.engName.visible" :show-overflow-tooltip="true" />
|
|
|
+ <el-table-column label="投保标段" align="center" prop="tendName" v-if="columns.tendName.visible" :show-overflow-tooltip="true" />
|
|
|
+ <el-table-column label="保险公司" align="center" prop="insureCompanyName" v-if="columns.insureCompanyName.visible" :show-overflow-tooltip="true" />
|
|
|
+ <el-table-column label="保险开始时间" align="center" prop="insureStartTime" v-if="columns.insureStartTime.visible" width="120" />
|
|
|
+ <el-table-column label="保险结束时间" align="center" prop="insureEndTime" v-if="columns.insureEndTime.visible" width="120" />
|
|
|
+ <el-table-column label="被保险人数" align="center" prop="insurePerno" v-if="columns.insurePerno.visible" />
|
|
|
+ <el-table-column label="保费(元)" align="center" prop="projectPerNum" v-if="columns.projectPerNum.visible" />
|
|
|
+ <el-table-column label="事故赔偿限额(万元)" align="center" prop="accidentLimit" v-if="columns.accidentLimit.visible" width="160" />
|
|
|
+ <el-table-column label="第三方服务" align="center" prop="asThreeServer" v-if="columns.asThreeServer.visible">
|
|
|
+ <template #default="scope">
|
|
|
+ {{ scope.row.asThreeServer === '1' ? '是' : '否' }}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="服务机构" align="center" prop="serName" v-if="columns.serName.visible" :show-overflow-tooltip="true" />
|
|
|
+ <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180">
|
|
|
+ <template #default="scope">
|
|
|
+ <el-tooltip content="修改" placement="top">
|
|
|
+ <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['insure:insureinfo:edit']" />
|
|
|
+ </el-tooltip>
|
|
|
+ <el-tooltip content="删除" placement="top">
|
|
|
+ <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['insure:insureinfo:remove']" />
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+
|
|
|
+ <div class="pagination">
|
|
|
+ <el-pagination v-model:current-page="queryParams.pageNum" v-model:page-size="queryParams.pageSize" :total="total" :page-sizes="[10, 20, 50, 100]" layout="total, sizes, prev, pager, next, jumper" @size-change="getList" @current-change="getList" />
|
|
|
+ </div>
|
|
|
+ </el-card>
|
|
|
+
|
|
|
+ <el-dialog :title="title" v-model="open" width="1100px" append-to-body class="insure-dialog">
|
|
|
+ <el-form :model="form" :rules="rules" ref="insureInfoRef" label-width="220px">
|
|
|
+ <el-divider content-position="left">投保信息</el-divider>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="12">
|
|
|
+ <OrgSelect v-model="form.orgGuid" label="填报单位" prop="orgGuid" :disabled="true" style="width: 100%" />
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="投保单位" prop="insuranceUnit">
|
|
|
+ <el-input v-model="form.insuranceUnit" placeholder="请输入投保单位" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="投保工程" prop="engGuid">
|
|
|
+ <el-select v-model="form.engGuid" filterable remote reserve-keyword placeholder="请输入工程名称搜索" :remote-method="searchEng" :loading="engLoading" clearable style="width: 100%" @change="handleEngChange">
|
|
|
+ <el-option v-for="item in engOptions" :key="item.guid" :label="item.engName" :value="item.guid" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="投保标段" prop="tendGuid">
|
|
|
+ <el-select v-model="form.tendGuid" filterable remote reserve-keyword placeholder="请先选择工程再搜索标段" :remote-method="searchTend" :loading="tendLoading" :disabled="!form.engGuid" clearable style="width: 100%">
|
|
|
+ <el-option v-for="item in tendOptions" :key="item.guid" :label="item.tendName" :value="item.guid" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="被保险人数" prop="insurePerno">
|
|
|
+ <el-input v-model="form.insurePerno" placeholder="请输入被保险人数" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="保单编号" prop="policyNo">
|
|
|
+ <el-input v-model="form.policyNo" placeholder="请输入保单编号" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="保险公司名称" prop="insureCompanyName">
|
|
|
+ <el-input v-model="form.insureCompanyName" placeholder="请输入保险公司名称" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="保险开始时间" prop="insureStartTime">
|
|
|
+ <el-date-picker v-model="form.insureStartTime" type="date" value-format="YYYY-MM-DD" placeholder="请选择保险开始时间" style="width: 100%" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="保险结束时间" prop="insureEndTime">
|
|
|
+ <el-date-picker v-model="form.insureEndTime" type="date" value-format="YYYY-MM-DD" placeholder="请选择保险结束时间" style="width: 100%" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="保费(元)" prop="projectPerNum">
|
|
|
+ <el-input-number v-model="form.projectPerNum" :precision="2" :min="0" controls-position="right" style="width: 100%" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="保险基数(万元)" prop="insuranceBase">
|
|
|
+ <el-input-number v-model="form.insuranceBase" :precision="6" :min="0" controls-position="right" style="width: 100%" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="保单上传" prop="policyFile">
|
|
|
+ <file-upload v-model="policyFileList" :limit="1" :multiple="false" button-text="上传保单" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <div class="upload-tip">本平台为互联网非涉密平台,严禁处理、传输国家秘密。严禁在本互联网非涉密平台处理、传输国家秘密,请确认扫描、传输的文件资料不涉及国家秘密。只能上传1个文件。</div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <el-divider content-position="left">安全责任险信息</el-divider>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="每次事故赔偿限额(万元)" prop="accidentLimit">
|
|
|
+ <el-input-number v-model="form.accidentLimit" :precision="6" :min="0" controls-position="right" style="width: 300px" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="第三者每人人身伤亡赔偿限额(元)" prop="accidentThreeLimit">
|
|
|
+ <el-input-number v-model="form.accidentThreeLimit" :precision="6" :min="0" controls-position="right" style="width: 300px" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="雇员每人人身伤亡赔偿限额(万元)" prop="employeeCasualtyLimit">
|
|
|
+ <el-input-number v-model="form.employeeCasualtyLimit" :precision="6" :min="0" controls-position="right" style="width: 300px" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="每次事故调查勘验费用赔偿限额(万元)" prop="accidentInspectFees">
|
|
|
+ <el-input-number v-model="form.accidentInspectFees" :precision="6" :min="0" controls-position="right" style="width: 300px" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="每次事故抢险救援费用赔偿限额(万元)" prop="accidentRescueFees">
|
|
|
+ <el-input-number v-model="form.accidentRescueFees" :precision="6" :min="0" controls-position="right" style="width: 300px" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="保险期间内总累计赔偿限额(万元)" prop="aggregateIndemnityLimit">
|
|
|
+ <el-input-number v-model="form.aggregateIndemnityLimit" :precision="6" :min="0" controls-position="right" style="width: 300px" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <el-divider content-position="left">附加险信息</el-divider>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="每次法律诉讼赔偿限额(万元)" prop="lawProceedLimit">
|
|
|
+ <el-input-number v-model="form.lawProceedLimit" :precision="6" :min="0" controls-position="right" style="width: 300px" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="累计法律诉讼总赔偿限额(万元)" prop="lawProceedTotalLimit">
|
|
|
+ <el-input-number v-model="form.lawProceedTotalLimit" :precision="6" :min="0" controls-position="right" style="width: 300px" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="每人医疗费用赔偿限额(万元)" prop="medicalExpenseLimit">
|
|
|
+ <el-input-number v-model="form.medicalExpenseLimit" :precision="6" :min="0" controls-position="right" style="width: 300px" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="累计医疗费用赔偿限额(万元)" prop="medicalExpenseAccumuLimit">
|
|
|
+ <el-input-number v-model="form.medicalExpenseAccumuLimit" :precision="6" :min="0" controls-position="right" style="width: 300px" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <el-divider content-position="left">事故预防服务</el-divider>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="服务机构是否为第三方" prop="asThreeServer">
|
|
|
+ <el-select v-model="form.asThreeServer" placeholder="请选择" style="width: 300px">
|
|
|
+ <el-option label="否" value="0" />
|
|
|
+ <el-option label="是" value="1" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="服务机构名称" prop="serName">
|
|
|
+ <el-input v-model="form.serName" placeholder="请输入服务机构名称" style="width: 300px" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="安全生产教育培训(次/年)" prop="safetyEducationTraining">
|
|
|
+ <el-input-number v-model="form.safetyEducationTraining" :min="0" controls-position="right" style="width: 300px" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="事故隐患排查(次/年)" prop="accidentHazardInve">
|
|
|
+ <el-input-number v-model="form.accidentHazardInve" :min="0" controls-position="right" style="width: 300px" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="风险分级管控(次/年)" prop="riskGradControl">
|
|
|
+ <el-input-number v-model="form.riskGradControl" :min="0" controls-position="right" style="width: 300px" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="安全生产标准化建设(次/年)" prop="consSafetyProd">
|
|
|
+ <el-input-number v-model="form.consSafetyProd" :min="0" controls-position="right" style="width: 300px" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="应急预案管理(次/年)" prop="emerManage">
|
|
|
+ <el-input-number v-model="form.emerManage" :min="0" controls-position="right" style="width: 300px" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="安全生产科技推广应用(次/年)" prop="promotTechnology">
|
|
|
+ <el-input-number v-model="form.promotTechnology" :min="0" controls-position="right" style="width: 300px" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ <template #footer>
|
|
|
+ <div class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="submitForm">确 定</el-button>
|
|
|
+ <el-button @click="cancel">取 消</el-button>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script setup name="InsureInfo">
|
|
|
+import { listInsureInfo, getInsureInfo, addInsureInfo, updateInsureInfo, delInsureInfo } from "@/api/slaj/insure"
|
|
|
+import { listAttEngBase } from "@/api/slaj/hidd"
|
|
|
+import { listObjTend } from "@/api/slaj/obj"
|
|
|
+import OrgSelect from '@/components/OrgSelect'
|
|
|
+
|
|
|
+const { proxy } = getCurrentInstance()
|
|
|
+const useUserStore = defineStore('user', {})
|
|
|
+const userStore = useUserStore()
|
|
|
+
|
|
|
+const insureInfoList = ref([])
|
|
|
+const open = ref(false)
|
|
|
+const loading = ref(true)
|
|
|
+const ids = ref([])
|
|
|
+const single = ref(true)
|
|
|
+const multiple = ref(true)
|
|
|
+const total = ref(0)
|
|
|
+const title = ref("")
|
|
|
+const policyFileList = ref([])
|
|
|
+
|
|
|
+const engOptions = ref([])
|
|
|
+const engLoading = ref(false)
|
|
|
+const tendOptions = ref([])
|
|
|
+const tendLoading = ref(false)
|
|
|
+
|
|
|
+const columns = ref({
|
|
|
+ policyNo: { label: '保单编号', visible: true },
|
|
|
+ insuranceUnit: { label: '投保单位', visible: true },
|
|
|
+ engName: { label: '投保工程', visible: true },
|
|
|
+ tendName: { label: '投保标段', visible: true },
|
|
|
+ insureCompanyName: { label: '保险公司', visible: true },
|
|
|
+ insureStartTime: { label: '保险开始时间', visible: true },
|
|
|
+ insureEndTime: { label: '保险结束时间', visible: true },
|
|
|
+ insurePerno: { label: '被保险人数', visible: true },
|
|
|
+ projectPerNum: { label: '保费(元)', visible: true },
|
|
|
+ accidentLimit: { label: '事故赔偿限额', visible: true },
|
|
|
+ asThreeServer: { label: '第三方服务', visible: true },
|
|
|
+ serName: { label: '服务机构', visible: true },
|
|
|
+})
|
|
|
+
|
|
|
+const data = reactive({
|
|
|
+ form: {},
|
|
|
+ queryParams: {
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ policyNo: undefined,
|
|
|
+ insuranceUnit: undefined,
|
|
|
+ insureCompanyName: undefined,
|
|
|
+ orgGuid: undefined,
|
|
|
+ },
|
|
|
+ rules: {
|
|
|
+ orgGuid: [{ required: true, message: "填报单位不能为空", trigger: "change" }],
|
|
|
+ policyNo: [{ required: true, message: "保单编号不能为空", trigger: "blur" }],
|
|
|
+ insuranceUnit: [{ required: true, message: "投保单位不能为空", trigger: "blur" }],
|
|
|
+ insureCompanyName: [{ required: true, message: "保险公司名称不能为空", trigger: "blur" }],
|
|
|
+ }
|
|
|
+})
|
|
|
+
|
|
|
+const { queryParams, form, rules } = toRefs(data)
|
|
|
+
|
|
|
+function getList() {
|
|
|
+ loading.value = true
|
|
|
+ listInsureInfo(queryParams.value).then(res => {
|
|
|
+ loading.value = false
|
|
|
+ insureInfoList.value = res.rows
|
|
|
+ total.value = res.total
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+function handleQuery() {
|
|
|
+ queryParams.value.pageNum = 1
|
|
|
+ getList()
|
|
|
+}
|
|
|
+
|
|
|
+function handleSelectionChange(selection) {
|
|
|
+ ids.value = selection.map(item => item.guid)
|
|
|
+ single.value = selection.length != 1
|
|
|
+ multiple.value = !selection.length
|
|
|
+}
|
|
|
+
|
|
|
+function handleAdd() {
|
|
|
+ reset()
|
|
|
+ form.value.orgGuid = userStore.orgGuid
|
|
|
+ open.value = true
|
|
|
+ title.value = "添加项目保险信息"
|
|
|
+}
|
|
|
+
|
|
|
+function handleUpdate(row) {
|
|
|
+ const guid = row.guid || ids.value
|
|
|
+ reset()
|
|
|
+ getInsureInfo(guid).then(response => {
|
|
|
+ form.value = response.data
|
|
|
+ if (form.value.engGuid) {
|
|
|
+ searchEng('', form.value.engGuid)
|
|
|
+ }
|
|
|
+ if (form.value.tendGuid) {
|
|
|
+ searchTend('', form.value.tendGuid)
|
|
|
+ }
|
|
|
+ open.value = true
|
|
|
+ title.value = "修改项目保险信息"
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+function searchEng(query, initGuid) {
|
|
|
+ engLoading.value = true
|
|
|
+ const params = { engName: query, pageNum: 1, pageSize: 20 }
|
|
|
+ if (initGuid) {
|
|
|
+ params.guid = initGuid
|
|
|
+ delete params.engName
|
|
|
+ }
|
|
|
+ listAttEngBase(params).then(res => {
|
|
|
+ engOptions.value = res.rows || []
|
|
|
+ engLoading.value = false
|
|
|
+ }).catch(() => { engLoading.value = false })
|
|
|
+}
|
|
|
+
|
|
|
+function searchTend(query, initGuid) {
|
|
|
+ if (!form.value.engGuid && !initGuid) return
|
|
|
+ tendLoading.value = true
|
|
|
+ const params = { tendName: query, engGuid: form.value.engGuid, pageNum: 1, pageSize: 20 }
|
|
|
+ if (initGuid) {
|
|
|
+ params.guid = initGuid
|
|
|
+ delete params.tendName
|
|
|
+ }
|
|
|
+ listObjTend(params).then(res => {
|
|
|
+ tendOptions.value = res.rows || []
|
|
|
+ tendLoading.value = false
|
|
|
+ }).catch(() => { tendLoading.value = false })
|
|
|
+}
|
|
|
+
|
|
|
+function handleEngChange(val) {
|
|
|
+ form.value.tendGuid = undefined
|
|
|
+ tendOptions.value = []
|
|
|
+ if (val) {
|
|
|
+ searchTend('')
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+function submitForm() {
|
|
|
+ proxy.$refs["insureInfoRef"].validate(valid => {
|
|
|
+ if (valid) {
|
|
|
+ if (form.value.guid != undefined) {
|
|
|
+ updateInsureInfo(form.value).then(() => {
|
|
|
+ proxy.$modal.msgSuccess("修改成功")
|
|
|
+ open.value = false
|
|
|
+ getList()
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ addInsureInfo(form.value).then(() => {
|
|
|
+ proxy.$modal.msgSuccess("新增成功")
|
|
|
+ open.value = false
|
|
|
+ getList()
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+function handleDelete(row) {
|
|
|
+ const guids = row.guid || ids.value
|
|
|
+ proxy.$modal.confirm('是否确认删除项目保险信息编号为"' + guids + '"的数据项?').then(function () {
|
|
|
+ return delInsureInfo(guids)
|
|
|
+ }).then(() => {
|
|
|
+ getList()
|
|
|
+ proxy.$modal.msgSuccess("删除成功")
|
|
|
+ }).catch(() => {})
|
|
|
+}
|
|
|
+
|
|
|
+function cancel() {
|
|
|
+ open.value = false
|
|
|
+ reset()
|
|
|
+}
|
|
|
+
|
|
|
+function handleExport() {
|
|
|
+ proxy.download("insure/insureinfo/export", {
|
|
|
+ ...queryParams.value
|
|
|
+ }, `insureInfo_${new Date().getTime()}.xlsx`)
|
|
|
+}
|
|
|
+
|
|
|
+function reset() {
|
|
|
+ form.value = {
|
|
|
+ guid: undefined,
|
|
|
+ orgGuid: undefined,
|
|
|
+ engGuid: undefined,
|
|
|
+ tendGuid: undefined,
|
|
|
+ insuranceUnit: undefined,
|
|
|
+ insurePerno: undefined,
|
|
|
+ policyNo: undefined,
|
|
|
+ insureCompanyName: undefined,
|
|
|
+ insureStartTime: undefined,
|
|
|
+ insureEndTime: undefined,
|
|
|
+ projectPerNum: undefined,
|
|
|
+ insuranceBase: undefined,
|
|
|
+ accidentLimit: undefined,
|
|
|
+ accidentThreeLimit: undefined,
|
|
|
+ employeeCasualtyLimit: undefined,
|
|
|
+ accidentInspectFees: undefined,
|
|
|
+ accidentRescueFees: undefined,
|
|
|
+ aggregateIndemnityLimit: undefined,
|
|
|
+ lawProceedLimit: undefined,
|
|
|
+ lawProceedTotalLimit: undefined,
|
|
|
+ medicalExpenseLimit: undefined,
|
|
|
+ medicalExpenseAccumuLimit: undefined,
|
|
|
+ asThreeServer: undefined,
|
|
|
+ serName: undefined,
|
|
|
+ safetyEducationTraining: undefined,
|
|
|
+ accidentHazardInve: undefined,
|
|
|
+ riskGradControl: undefined,
|
|
|
+ consSafetyProd: undefined,
|
|
|
+ emerManage: undefined,
|
|
|
+ promotTechnology: undefined,
|
|
|
+ }
|
|
|
+ policyFileList.value = []
|
|
|
+ engOptions.value = []
|
|
|
+ tendOptions.value = []
|
|
|
+ proxy.resetForm("insureInfoRef")
|
|
|
+}
|
|
|
+
|
|
|
+onMounted(() => {
|
|
|
+ getList()
|
|
|
+})
|
|
|
+</script>
|
|
|
+
|
|
|
+<style scoped lang="scss">
|
|
|
+.system-page {
|
|
|
+ padding: 0px;
|
|
|
+ background-color: #f5f7fa;
|
|
|
+ min-height: calc(100vh - 10px);
|
|
|
+
|
|
|
+ :deep(.el-input__wrapper) { border-radius: 4px; }
|
|
|
+ :deep(.el-textarea__inner) { border-radius: 4px; }
|
|
|
+
|
|
|
+ .page-card {
|
|
|
+ border-radius: 1px;
|
|
|
+ box-shadow: 0 2px 12px rgba(0, 0, 0, 0.05);
|
|
|
+
|
|
|
+ :deep(.el-card__header) {
|
|
|
+ padding: 8px 20px !important;
|
|
|
+ border-bottom: 1px solid #ebeef5;
|
|
|
+ background-color: #fff;
|
|
|
+ border-radius: 8px 8px 0 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ :deep(.el-card__body) {
|
|
|
+ padding: 0px !important;
|
|
|
+ background-color: #fff;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .card-header {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+
|
|
|
+ .header-left {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ gap: 10px;
|
|
|
+ .page-title { font-size: 18px; font-weight: 600; color: #303133; }
|
|
|
+ }
|
|
|
+ .search-right { display: flex; gap: 10px; align-items: center; }
|
|
|
+ }
|
|
|
+
|
|
|
+ .search-bar {
|
|
|
+ margin-bottom: 0px;
|
|
|
+ background-color: #f8faff;
|
|
|
+ padding: 6px 10px;
|
|
|
+ border-radius: 6px;
|
|
|
+ border: 0px solid #e6ebf5;
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ align-items: center;
|
|
|
+
|
|
|
+ :deep(.el-form) {
|
|
|
+ display: flex;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ gap: 10px;
|
|
|
+ .el-form-item { margin-bottom: 0; margin-right: 15px;
|
|
|
+ .el-form-item__label { font-weight: 500; }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .pagination {
|
|
|
+ margin-top: 8px;
|
|
|
+ margin-bottom: 8px;
|
|
|
+ display: flex;
|
|
|
+ justify-content: flex-end;
|
|
|
+ }
|
|
|
+
|
|
|
+ :deep(.el-table) {
|
|
|
+ border-radius: 4px;
|
|
|
+ overflow: auto;
|
|
|
+ height: calc(100vh - 195px);
|
|
|
+
|
|
|
+ th.el-table__cell {
|
|
|
+ background-color: #f5f7fa !important;
|
|
|
+ color: #606266;
|
|
|
+ font-weight: 600;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-button--primary.is-link { color: #409eff; }
|
|
|
+ .el-button--danger.is-link { color: #f56c6c; }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.insure-dialog {
|
|
|
+ :deep(.el-dialog__body) {
|
|
|
+ max-height: 70vh !important;
|
|
|
+ overflow-y: auto !important;
|
|
|
+ padding: 20px 20px 0 20px !important;
|
|
|
+ }
|
|
|
+
|
|
|
+ :deep(.el-divider) {
|
|
|
+ margin: 16px 0 12px 0;
|
|
|
+
|
|
|
+ .el-divider__text {
|
|
|
+ font-size: 15px;
|
|
|
+ font-weight: 600;
|
|
|
+ color: #303133;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .upload-tip {
|
|
|
+ font-size: 12px;
|
|
|
+ color: #e6a23c;
|
|
|
+ line-height: 1.6;
|
|
|
+ margin-top: 4px;
|
|
|
+ padding-left: 10px;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|