|
|
@@ -0,0 +1,425 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <!-- 查询条件 -->
|
|
|
+ <el-form ref="queryPage" :model="queryPage" label-width="80px" inline>
|
|
|
+ <el-form-item label="保险公司">
|
|
|
+ <el-select v-model="queryPage.companyId" filterable clearable placeholder="请选择保险公司" size="small">
|
|
|
+ <el-option :label="item.name" :value="item.id" v-for="(item, index) in companyList" :key="index" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="产品名称">
|
|
|
+ <el-input size="small" clearable v-model="queryPage.projectName"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="座位数">
|
|
|
+ <el-input size="small" clearable type="number" v-model="queryPage.seatNum"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button @click="reset" size="small">重置</el-button>
|
|
|
+ <el-button type="primary" @click="getList('search')" size="small">查询</el-button>
|
|
|
+ <el-button type="primary" @click="handleClickAdd('add')" size="small">新增</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <!-- 列表 -->
|
|
|
+ <el-table :data="tableData" style="width: 100%;margin-bottom: 20px;" row-key="id" border :default-expand-all="false"
|
|
|
+ :tree-props="{children: 'insDrivingIntentionInsurances'}">
|
|
|
+ <el-table-column prop="companyName" label="保险公司" align="center" width="250px"></el-table-column>
|
|
|
+ <el-table-column prop="companyId" label="保险公司ID" align="center"></el-table-column>
|
|
|
+ <el-table-column prop="projectName" label="产品名称" align="center" width="250px"></el-table-column>
|
|
|
+ <el-table-column prop="projectCode" label="产品Code" align="center" width="150px"></el-table-column>
|
|
|
+ <el-table-column prop="riskCode" label="附加Code" align="center" width="150px"></el-table-column>
|
|
|
+ <el-table-column prop="seatNum" label="座位数" align="center"></el-table-column>
|
|
|
+ <el-table-column prop="sumAmount" label="总保额" align="center"></el-table-column>
|
|
|
+ <el-table-column prop="sumPremium" label="总保费" align="center"></el-table-column>
|
|
|
+ <el-table-column prop="apiType" label="对接类型" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>{{ scope.row.apiType == 1 ? 'API对接' : scope.row.apiType == 2 ? 'Python对接' : scope.row.apiType }}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="操作" align="center" width="250px">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button @click="handleClickEdit(scope.row)" type="primary" size="small">编辑</el-button>
|
|
|
+ <el-button v-if="!scope.row.insDrivingIntentionInsuranceSon.length" @click="handleClickAdd(scope.row)" type="primary" size="small">添加子项</el-button>
|
|
|
+ <el-button v-if="scope.row.insDrivingIntentionInsuranceSon.length" @click="handleClickDetail(scope.row)" type="primary" size="small">详情</el-button>
|
|
|
+ <el-button @click="handleClickDelete(scope.row)" type="primary" size="small">删除</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <!-- 分页 -->
|
|
|
+ <el-pagination @size-change="getList" @current-change="getList"
|
|
|
+ :current-page.sync="queryPage.pageNum" :page-sizes="[10, 20, 50, 100]" :page-size.sync="queryPage.pageSize"
|
|
|
+ layout="total, sizes, prev, pager, next, jumper" :total="total">
|
|
|
+ </el-pagination>
|
|
|
+
|
|
|
+ <!-- 新增 -->
|
|
|
+ <el-dialog :title="dialogType == 'edit' ? '编辑' : '新增'" :visible.sync="dialogVisibleAdd" width="50%" :before-close="handleCloseAdd">
|
|
|
+ <div>
|
|
|
+ <el-form ref="formAdd" :model="formDataAdd" label-width="80px" inline>
|
|
|
+ <el-form-item label="保险公司">
|
|
|
+ <el-select v-model="formDataAdd.companyId" filterable :disabled="companyDisabled" placeholder="请选择保险公司" size="small" style="width: 200px;">
|
|
|
+ <el-option :label="item.name" :value="item.id" v-for="(item, index) in companyList" :key="index" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="父级产品">
|
|
|
+ <el-input size="small" v-model="parentName" disabled></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="产品名称">
|
|
|
+ <el-input size="small" v-model="formDataAdd.projectName"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="产品Code">
|
|
|
+ <el-input size="small" v-model="formDataAdd.projectCode"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="附加Code">
|
|
|
+ <el-input size="small" v-model="formDataAdd.riskCode"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="座位数">
|
|
|
+ <el-input size="small" type="number" v-model="formDataAdd.seatNum"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="总保额">
|
|
|
+ <el-input size="small" v-model="formDataAdd.sumAmount"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="总保费">
|
|
|
+ <el-input size="small" v-model="formDataAdd.sumPremium"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="对接类型">
|
|
|
+ <!-- <el-input size="small" v-model="formDataAdd.apiType"></el-input> -->
|
|
|
+ <el-select v-model="formDataAdd.apiType" placeholder="请选择对接类型" size="small" style="width: 200px;">
|
|
|
+ <el-option label="API对接" :value="1" />
|
|
|
+ <el-option label="Python对接" :value="2" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button size="small" @click="handleCloseAdd">取 消</el-button>
|
|
|
+ <el-button size="small" type="primary" @click="subAddDialog('formAdd')">确 定</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+ <!-- 二级详情 -->
|
|
|
+ <el-dialog title="详情" :visible.sync="dialogDetail" width="50%" :before-close="handleCloseDetail">
|
|
|
+ <div>
|
|
|
+ <el-table :data="tableDataSon" style="width: 100%;margin-bottom: 20px;" row-key="id" border :default-expand-all="false">
|
|
|
+ <el-table-column prop="name" label="保险责任名称" align="center" width="200"></el-table-column>
|
|
|
+ <el-table-column prop="code" label="保险责任code" align="center"></el-table-column>
|
|
|
+ <el-table-column prop="amount" label="保险责任保费额度" align="center"></el-table-column>
|
|
|
+ <el-table-column prop="premium" label="保险责任金额" align="center"></el-table-column>
|
|
|
+ <el-table-column label="操作" align="center">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button @click="handleClickDetailEdit(scope.row)" type="primary" size="small">编辑</el-button>
|
|
|
+ <el-button @click="handleClickDeleteDetail(scope.row)" type="primary" size="small">删除</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button size="small" type="primary" @click="handleClickDetailEdit('add')">添 加</el-button>
|
|
|
+ <el-button size="small" @click="handleCloseDetail">关 闭</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+ <!-- 二级新增 -->
|
|
|
+ <el-dialog :title="dialogType == 'edit' ? '编辑' : '新增'" :visible.sync="dialogDetailAdd" width="50%" :before-close="handleCloseDetailAdd">
|
|
|
+ <div>
|
|
|
+ <el-form ref="detailData" :model="detailData" label-width="180px" inline>
|
|
|
+ <el-form-item label="保险公司">
|
|
|
+ <el-select v-model="detailData.companyId" filterable disabled placeholder="请选择保险公司" size="small" style="width: 200px;">
|
|
|
+ <el-option :label="item.name" :value="item.id" v-for="(item, index) in companyList" :key="index" />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="保险责任名称">
|
|
|
+ <el-input size="small" v-model="detailData.name"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="保险责任code">
|
|
|
+ <el-input size="small" v-model="detailData.code"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="保险责任保费额度">
|
|
|
+ <el-input size="small" v-model="detailData.amount"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="保险责任金额">
|
|
|
+ <el-input size="small" v-model="detailData.premium"></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button size="small" @click="handleCloseDetailAdd">取 消</el-button>
|
|
|
+ <el-button size="small" type="primary" @click="subAddDetailDialog('detailData')">确 定</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+export default {
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ tableData: [],
|
|
|
+ // 查询参数
|
|
|
+ queryPage: {
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ companyId: undefined,
|
|
|
+ projectName: undefined,
|
|
|
+ seatNum: undefined,
|
|
|
+ },
|
|
|
+ total: 0,
|
|
|
+ editInfo: {}, // 编辑详情
|
|
|
+ showEditDialog: false,
|
|
|
+ dialogVisibleAdd: false, // 新增弹窗
|
|
|
+ // 新增数据
|
|
|
+ formDataAdd: {
|
|
|
+ parentId: '0',
|
|
|
+ type: 2, // 默认每次传2
|
|
|
+ companyId: '',
|
|
|
+ projectName: '',
|
|
|
+ projectCode: '',
|
|
|
+ riskCode: '',
|
|
|
+ seatNum: '',
|
|
|
+ sumAmount: '',
|
|
|
+ sumPremium: '',
|
|
|
+ requestData: '',
|
|
|
+ apiType: '' // 1api对接 2python对接
|
|
|
+ },
|
|
|
+ // 保险公司列表
|
|
|
+ companyList: [],
|
|
|
+ companyDisabled: false,
|
|
|
+ parentName: '无父级',
|
|
|
+ dialogType: 'edit',
|
|
|
+ dialogDetail: false, // 二级详情弹窗
|
|
|
+ tableDataSon: [], // 二级详情列表
|
|
|
+ detailData: {
|
|
|
+ companyId: '',
|
|
|
+ drivingCodeId: '',
|
|
|
+ code: '',
|
|
|
+ name: '',
|
|
|
+ amount: '',
|
|
|
+ premium: ''
|
|
|
+ }, // 二级编辑详情
|
|
|
+ dialogDetailAdd: false, // 二级详情编辑弹窗
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.getCompanyList() // 保险公司列表
|
|
|
+ this.getList()
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ handleClickDeleteDetail(row) {
|
|
|
+ this.$confirm('确定删除?', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ this.$api.product.deleteDrivingSon({
|
|
|
+ sonId: row.sonId
|
|
|
+ }).then((res) => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.$message.success(res.msg)
|
|
|
+ this.getList()
|
|
|
+ this.handleCloseDetail()
|
|
|
+ } else {
|
|
|
+ this.$message.error(res.msg)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }).catch(() => {
|
|
|
+ this.$message({
|
|
|
+ type: 'info',
|
|
|
+ message: '已取消删除'
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 删除
|
|
|
+ handleClickDelete(row) {
|
|
|
+ this.$confirm('确定删除?', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ this.$api.product.deleteDriving({
|
|
|
+ id: row.id,
|
|
|
+ projectCode: row.projectCode
|
|
|
+ }).then((res) => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.getList()
|
|
|
+ this.$message.success(res.msg)
|
|
|
+ } else {
|
|
|
+ this.$message.error(res.msg)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }).catch(() => {
|
|
|
+ this.$message({
|
|
|
+ type: 'info',
|
|
|
+ message: '已取消删除'
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 确定编辑详情
|
|
|
+ subAddDetailDialog() {
|
|
|
+ if (this.dialogType == 'add') {
|
|
|
+ // 新增
|
|
|
+ this.$api.product.addDrivingSon(this.detailData).then((res) => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.$message.success(res.msg)
|
|
|
+ this.getList()
|
|
|
+ this.handleCloseDetailAdd()
|
|
|
+ this.handleCloseDetail()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ // 编辑
|
|
|
+ this.$api.product.updateDrivingSon(this.detailData).then((res) => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.$message.success(res.msg)
|
|
|
+ this.getList()
|
|
|
+ this.handleCloseDetailAdd()
|
|
|
+ this.handleCloseDetail()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 编辑详情
|
|
|
+ handleClickDetailEdit(row) {
|
|
|
+ if (row != 'add') {
|
|
|
+ this.dialogType = 'edit'
|
|
|
+ this.detailData.sonId = row.sonId
|
|
|
+ this.detailData.name = row.name
|
|
|
+ this.detailData.code = row.code
|
|
|
+ this.detailData.amount = row.amount
|
|
|
+ this.detailData.premium = row.premium
|
|
|
+ } else {
|
|
|
+ this.dialogType = 'add'
|
|
|
+ }
|
|
|
+ this.dialogDetailAdd = true
|
|
|
+ },
|
|
|
+ // 关闭编辑详情
|
|
|
+ handleCloseDetailAdd() {
|
|
|
+ this.dialogDetailAdd = false
|
|
|
+ this.detailData.sonId = undefined
|
|
|
+ this.detailData.name = undefined
|
|
|
+ this.detailData.code = undefined
|
|
|
+ this.detailData.amount = undefined
|
|
|
+ this.detailData.premium = undefined
|
|
|
+ },
|
|
|
+ // 点击详情
|
|
|
+ handleClickDetail(row) {
|
|
|
+ this.tableDataSon = row.insDrivingIntentionInsuranceSon
|
|
|
+ this.detailData.companyId = row.companyId
|
|
|
+ this.detailData.drivingCodeId = row.projectCode
|
|
|
+ this.dialogDetail = true
|
|
|
+ },
|
|
|
+ handleCloseDetail() {
|
|
|
+ this.dialogDetail = false
|
|
|
+ this.tableDataSon = []
|
|
|
+ },
|
|
|
+ // 获取公司列表
|
|
|
+ getCompanyList() {
|
|
|
+ this.$api.product.getCompany({
|
|
|
+ name: '',
|
|
|
+ type: '',
|
|
|
+ }).then((res) => {
|
|
|
+ this.companyList = res.data
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 获取列表信息
|
|
|
+ getList(type) {
|
|
|
+ if (type == 'search') {
|
|
|
+ this.queryPage.pageNum = 1
|
|
|
+ this.queryPage.pageSize = 10
|
|
|
+ }
|
|
|
+ this.$api.product.getDrivingInfo(this.queryPage).then((res) => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.tableData = res.data.records
|
|
|
+ this.total = res.data.total
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 重置
|
|
|
+ reset() {
|
|
|
+ this.queryPage = {
|
|
|
+ companyId: undefined,
|
|
|
+ projectName: undefined,
|
|
|
+ seatNum: undefined,
|
|
|
+ }
|
|
|
+ this.getList('search')
|
|
|
+ },
|
|
|
+ // 编辑
|
|
|
+ handleClickEdit(row) {
|
|
|
+ this.parentName = row.projectName
|
|
|
+ this.dialogType = 'edit'
|
|
|
+ this.formDataAdd = {
|
|
|
+ id: row.id,
|
|
|
+ parentId: row.parentId,
|
|
|
+ type: 2, // 默认每次传2
|
|
|
+ companyId: row.companyId,
|
|
|
+ projectName: row.projectName,
|
|
|
+ projectCode: row.projectCode,
|
|
|
+ riskCode: row.riskCode,
|
|
|
+ seatNum: row.seatNum,
|
|
|
+ sumAmount: row.sumAmount,
|
|
|
+ sumPremium: row.sumPremium,
|
|
|
+ requestData: row.requestData || '',
|
|
|
+ apiType: row.apiType // 1api对接 2python对接
|
|
|
+ }
|
|
|
+ this.dialogVisibleAdd = true
|
|
|
+ },
|
|
|
+ // 新增
|
|
|
+ handleClickAdd(row) {
|
|
|
+ this.dialogType = 'add'
|
|
|
+ if (row != 'add') {
|
|
|
+ this.formDataAdd.companyId = row.companyId
|
|
|
+ this.formDataAdd.parentId = row.id
|
|
|
+
|
|
|
+ this.companyDisabled = true
|
|
|
+ this.parentName = row.projectName
|
|
|
+ } else {
|
|
|
+ this.companyDisabled = false
|
|
|
+ this.parentName = '无父级'
|
|
|
+ }
|
|
|
+ this.dialogVisibleAdd = true
|
|
|
+ },
|
|
|
+ // 提交新增
|
|
|
+ subAddDialog(formName) {
|
|
|
+ if (this.dialogType == 'add') {
|
|
|
+ // 新增
|
|
|
+ this.$api.product.addDriving(this.formDataAdd).then((res) => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.$message.success(res.msg)
|
|
|
+ this.getList()
|
|
|
+ this.handleCloseAdd()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ // 编辑
|
|
|
+ this.$api.product.updateDriving(this.formDataAdd).then((res) => {
|
|
|
+ if (res.code == 200) {
|
|
|
+ this.$message.success(res.msg)
|
|
|
+ this.getList()
|
|
|
+ this.handleCloseAdd()
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ // 关闭新增
|
|
|
+ handleCloseAdd() {
|
|
|
+ this.dialogVisibleAdd = false
|
|
|
+ this.formDataAdd = {
|
|
|
+ parentId: '0',
|
|
|
+ type: 2, // 默认每次传2
|
|
|
+ companyId: '',
|
|
|
+ projectName: '',
|
|
|
+ projectCode: '',
|
|
|
+ riskCode: '',
|
|
|
+ seatNum: '',
|
|
|
+ sumAmount: '',
|
|
|
+ sumPremium: '',
|
|
|
+ requestData: '',
|
|
|
+ apiType: '' // 1api对接 2python对接
|
|
|
+ }
|
|
|
+ },
|
|
|
+ },
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style>
|
|
|
+
|
|
|
+</style>
|