mirror of
http://112.124.100.131/ebiz-ai/ebiz-ai-knowledge-manage.git
synced 2025-12-25 02:32:58 +08:00
Merge remote-tracking branch 'origin/bpic/feature-ai-uw' into bpic/feature-ai-uw
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
module.exports = {
|
||||
presets: ['@vue/app'],
|
||||
plugins: [
|
||||
[
|
||||
'transform-remove-console',
|
||||
{
|
||||
exclude: ['warn', 'error'] // 可选:保留 warn 和 error
|
||||
}
|
||||
]
|
||||
// [
|
||||
// 'transform-remove-console',
|
||||
// {
|
||||
// exclude: ['warn', 'error'] // 可选:保留 warn 和 error
|
||||
// }
|
||||
// ]
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
import request from '@/assets/js/utils/request'
|
||||
import getUrl from '@/assets/js/utils/get-url'
|
||||
// 导出规则相关API
|
||||
export * from './rule'
|
||||
|
||||
// 导出记录相关API
|
||||
export * from './record'
|
||||
// 查询审批单风险筛查结果
|
||||
export function queryResult(data) {
|
||||
return request({
|
||||
|
||||
38
src/api/riskCheck/record.js
Normal file
38
src/api/riskCheck/record.js
Normal file
@@ -0,0 +1,38 @@
|
||||
import request from '@/assets/js/utils/request'
|
||||
import getUrl from '@/assets/js/utils/get-url'
|
||||
|
||||
// 记录page页
|
||||
export function getRecordPage(data) {
|
||||
return request({
|
||||
url: getUrl('/risk/check/record/page'),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 查询历史筛查结果
|
||||
export function queryResult(params) {
|
||||
return request({
|
||||
url: getUrl('/riskCheckRecordEx/queryResult'),
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 根据筛查结果查看明细
|
||||
export function queryResultDetail(params) {
|
||||
return request({
|
||||
url: getUrl('/iskCheckRecordEx/queryDetail'),
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 返回result.html内容
|
||||
export function getResultHtml(params) {
|
||||
return request({
|
||||
url: getUrl('/result.html'),
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
123
src/api/riskCheck/rule.js
Normal file
123
src/api/riskCheck/rule.js
Normal file
@@ -0,0 +1,123 @@
|
||||
import request from '@/assets/js/utils/request'
|
||||
import getUrl from '@/assets/js/utils/get-url'
|
||||
|
||||
// 分页查询
|
||||
export function getRulePage(data) {
|
||||
return request({
|
||||
url: getUrl('/risk/check/rule/page'),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 查看详情
|
||||
export function queryRuleDetail(params) {
|
||||
return request({
|
||||
url: getUrl('/risk/check/rule/query'),
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 新增
|
||||
export function createRule(data) {
|
||||
return request({
|
||||
url: getUrl('/risk/check/rule/create'),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 编辑
|
||||
export function updateRule(data) {
|
||||
return request({
|
||||
url: getUrl('/risk/check/rule/update'),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除
|
||||
export function deleteRule(data) {
|
||||
return request({
|
||||
url: getUrl('/risk/check/rule/delete'),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 批量启用/停用
|
||||
export function batchSwitchStatus(status, data) {
|
||||
return request({
|
||||
url: getUrl(`/riskCheckRuleEx/batch/${status}`),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 全部启用/停用
|
||||
export function allSwitchStatus(status, data) {
|
||||
return request({
|
||||
url: getUrl(`/riskCheckRuleEx/all/${status}`),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 导入Excel
|
||||
export function importFromExcel(data) {
|
||||
return request({
|
||||
url: getUrl('/riskCheckRuleEx/importFromExcel'),
|
||||
method: 'post',
|
||||
data,
|
||||
headers: {
|
||||
'Content-Type': 'multipart/form-data'
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 导出Excel
|
||||
export function exportToExcel(params) {
|
||||
return request({
|
||||
url: getUrl('/riskCheckRuleEx/export'),
|
||||
method: 'get',
|
||||
params,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
||||
|
||||
// 列表查询
|
||||
export function getRuleList(data) {
|
||||
return request({
|
||||
url: getUrl('/risk/check/rule/list'),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 规则类型的批量插入
|
||||
export function batchAddRuleType(data) {
|
||||
return request({
|
||||
url: getUrl('/dictionary/batchAddRuleType'),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 字段的批量插入
|
||||
export function batchAddField(data) {
|
||||
return request({
|
||||
url: getUrl('/dictionary/batchAddField'),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 风险类型的批量插入
|
||||
export function batchAddRiskType(data) {
|
||||
return request({
|
||||
url: getUrl('/dictionary/batchAddRiskType'),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
BIN
src/icons/svg/logo.png
Normal file
BIN
src/icons/svg/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.0 KiB |
29
src/router/generatedRouter/applicationManagement.js
Normal file
29
src/router/generatedRouter/applicationManagement.js
Normal file
@@ -0,0 +1,29 @@
|
||||
import layout from '@/views/app/layout/index.vue'
|
||||
|
||||
const applicationManagementRouter = [
|
||||
{
|
||||
path: '/applicationManagement',
|
||||
component: layout,
|
||||
redirect: '/applicationManagement/employRule',
|
||||
name: 'ApplicationManagement',
|
||||
meta: { title: '应用管理', icon: 'el-icon-s-management' },
|
||||
children: [
|
||||
{
|
||||
path: 'employRule',
|
||||
name: 'EmployRule',
|
||||
component: () =>
|
||||
import('@/views/applicationManagement/employRule/index.vue'),
|
||||
meta: { title: '雇则风筛规则', icon: 'el-icon-setting' }
|
||||
},
|
||||
{
|
||||
path: 'employRecord',
|
||||
name: 'EmployRecord',
|
||||
component: () =>
|
||||
import('@/views/applicationManagement/employRecord/index.vue'),
|
||||
meta: { title: '雇则风筛记录', icon: 'el-icon-document' }
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
export default applicationManagementRouter
|
||||
@@ -2,10 +2,15 @@ import Vue from 'vue'
|
||||
import Router from 'vue-router'
|
||||
import App from './app/index'
|
||||
import generatedRouter from './generatedRouter'
|
||||
import applicationManagementRouter from './generatedRouter/applicationManagement'
|
||||
|
||||
Vue.use(Router)
|
||||
|
||||
export const constantRouterMap = [...App, ...generatedRouter] // 静态路由
|
||||
export const constantRouterMap = [
|
||||
...App,
|
||||
...generatedRouter,
|
||||
...applicationManagementRouter
|
||||
] // 静态路由
|
||||
export default new Router({
|
||||
mode: 'hash', //路由模式
|
||||
base: process.env.BASE_URL,
|
||||
|
||||
228
src/views/applicationManagement/employRecord/index.vue
Normal file
228
src/views/applicationManagement/employRecord/index.vue
Normal file
@@ -0,0 +1,228 @@
|
||||
<!--
|
||||
雇则风筛记录页面
|
||||
功能包括:
|
||||
1. 记录列表展示(支持分页)
|
||||
2. 多条件查询(审批单号、被保人名称、归属机构、提交时间)
|
||||
3. 记录操作(查看详情)
|
||||
-->
|
||||
<template>
|
||||
<div class="render-container employ-record">
|
||||
<!-- 查询条件区域 -->
|
||||
<div class="filter-container">
|
||||
<div class="flex align-items-c justify-content-b">
|
||||
<el-form
|
||||
:model="queryParams"
|
||||
label-width="100px"
|
||||
label-position="top"
|
||||
ref="queryParams"
|
||||
inline
|
||||
>
|
||||
<!-- 审批单号输入框 -->
|
||||
<el-form-item label="审批单号" prop="approvalNo">
|
||||
<el-input
|
||||
v-model="queryParams.approvalNo"
|
||||
size="medium"
|
||||
placeholder="请输入审批单号"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 被保人名称输入框 -->
|
||||
<el-form-item label="被保人名称" prop="insuredName">
|
||||
<el-input
|
||||
v-model="queryParams.insuredName"
|
||||
size="medium"
|
||||
placeholder="请输入被保人名称"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 归属机构下拉选择 -->
|
||||
<el-form-item label="归属机构" prop="institution">
|
||||
<el-select v-model="queryParams.institution" size="medium" clearable placeholder="请选择归属机构">
|
||||
<el-option
|
||||
v-for="item in institutionList"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
:key="item.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 提交时间范围选择 -->
|
||||
<el-form-item label="提交时间" prop="submitTime">
|
||||
<el-date-picker
|
||||
v-model="queryParams.submitTime"
|
||||
size="medium"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
value-format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<!-- 查询操作按钮 -->
|
||||
<div class="mt15 flex align-items-c justify-content-b">
|
||||
<el-button size="medium" type="primary" @click="handleQuery"
|
||||
>查询</el-button
|
||||
>
|
||||
<el-button size="medium" @click="resetQuery">重置</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 记录列表表格 -->
|
||||
<r-table
|
||||
:columns="tableConfig.columns"
|
||||
:data="tableData"
|
||||
:deletion="false"
|
||||
:total="tableConfig.total"
|
||||
@currentChange="handleCurrentChange"
|
||||
@sizeChange="handleSizeChange"
|
||||
:currentPage="tableConfig.currentPage"
|
||||
:pageSize="tableConfig.pageSize"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getRecordPage } from '@/api/riskCheck/record'
|
||||
|
||||
export default {
|
||||
name: 'EmployRecord',
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
page: 1,
|
||||
pageSize: 10,
|
||||
approvalNo: '',
|
||||
insuredName: '',
|
||||
institution: '',
|
||||
submitTimeStart: '',
|
||||
submitTimeEnd: ''
|
||||
},
|
||||
// 归属机构选项列表
|
||||
institutionList: [
|
||||
{ label: '机构1', value: 'ORG001' },
|
||||
{ label: '机构2', value: 'ORG002' },
|
||||
{ label: '机构3', value: 'ORG003' }
|
||||
],
|
||||
// 表格配置项
|
||||
tableConfig: {
|
||||
total: 0,
|
||||
currentPage: 1,
|
||||
pageSize: 10,
|
||||
columns: [
|
||||
{ prop: 'index', key: '序号', width: 60 },
|
||||
{ prop: 'approvalNo', key: '审批单号' },
|
||||
{ prop: 'insuredName', key: '被保险人名称' },
|
||||
{ prop: 'institution', key: '归属机构' },
|
||||
{ prop: 'insurancePeriod', key: '保险期限' },
|
||||
{ prop: 'submitTime', key: '提交时间' },
|
||||
{
|
||||
key: '操作',
|
||||
isRedraw: true,
|
||||
render: (h, params) => {
|
||||
return h('div', [
|
||||
// 查看详情按钮
|
||||
h(
|
||||
'el-button',
|
||||
{
|
||||
props: {
|
||||
type: 'text',
|
||||
size: 'mini',
|
||||
icon: 'el-icon-view',
|
||||
title: '查看详情'
|
||||
},
|
||||
class: 'normal-button',
|
||||
on: { click: () => this.handleView(params.row) }
|
||||
},
|
||||
''
|
||||
)
|
||||
])
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
// 表格数据
|
||||
tableData: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
// 获取记录列表数据
|
||||
getList() {
|
||||
this.loading = true
|
||||
const params = Object.assign({}, this.queryParams)
|
||||
|
||||
// 处理时间范围参数
|
||||
if (params.submitTime && params.submitTime.length === 2) {
|
||||
params.submitTimeStart = params.submitTime[0]
|
||||
params.submitTimeEnd = params.submitTime[1]
|
||||
}
|
||||
delete params.submitTime
|
||||
|
||||
getRecordPage(params)
|
||||
.then(response => {
|
||||
// 根据实际API返回结构调整,兼容Vue2语法
|
||||
var content = response.content || {}
|
||||
this.tableData = content.list || []
|
||||
this.tableConfig.total = content.total || 0
|
||||
})
|
||||
.catch(error => {
|
||||
this.$message.error('获取记录列表失败: ' + (error.message || '未知错误'))
|
||||
})
|
||||
.finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 查询按钮点击事件
|
||||
handleQuery() {
|
||||
this.queryParams.page = 1
|
||||
this.getList()
|
||||
},
|
||||
// 重置按钮点击事件
|
||||
resetQuery() {
|
||||
this.$refs.queryParams.resetFields()
|
||||
this.handleQuery()
|
||||
},
|
||||
// 查看详情按钮点击事件
|
||||
handleView(row) {
|
||||
this.$message.info('查看详情功能待实现')
|
||||
},
|
||||
// 分页大小改变事件
|
||||
handleSizeChange(val) {
|
||||
this.queryParams.pageSize = val
|
||||
this.getList()
|
||||
},
|
||||
// 当前页码改变事件
|
||||
handleCurrentChange(val) {
|
||||
this.queryParams.page = val
|
||||
this.getList()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.employ-record {
|
||||
padding: 20px;
|
||||
|
||||
.filter-container {
|
||||
margin-bottom: 20px;
|
||||
|
||||
.el-form-item {
|
||||
margin-bottom: 10px;
|
||||
margin-right: 10px;
|
||||
|
||||
.el-form-item__label {
|
||||
padding-right: 8px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,308 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
:title="dialogTitle"
|
||||
:visible.sync="dialogVisible"
|
||||
width="600px"
|
||||
@close="handleClose"
|
||||
>
|
||||
<el-form
|
||||
ref="ruleForm"
|
||||
:model="ruleForm"
|
||||
:rules="rules"
|
||||
label-width="120px"
|
||||
v-loading="loading"
|
||||
>
|
||||
<!-- 规则类型下拉选择 -->
|
||||
<el-form-item label="规则类型" prop="ruleType">
|
||||
<el-select
|
||||
v-model="ruleForm.ruleType"
|
||||
placeholder="请选择规则类型"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in ruleTypeList"
|
||||
:key="item.typeCode"
|
||||
:label="item.typeName"
|
||||
:value="item.typeCode"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 字段类型下拉选择 -->
|
||||
<el-form-item label="字段类型" prop="ruleField">
|
||||
<el-select
|
||||
v-model="ruleForm.ruleField"
|
||||
placeholder="请选择字段类型"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in fieldTypeList"
|
||||
:key="item.fieldName"
|
||||
:label="item.fieldComment"
|
||||
:value="item.fieldName"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 规则描述文本域 -->
|
||||
<el-form-item label="规则描述" prop="ruleDesc">
|
||||
<el-input
|
||||
type="textarea"
|
||||
v-model="ruleForm.ruleDesc"
|
||||
placeholder="请输入规则描述"
|
||||
:rows="3"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 风险提示话术输入框 -->
|
||||
<el-form-item label="风险提示话术" prop="riskScript">
|
||||
<el-input
|
||||
v-model="ruleForm.riskScript"
|
||||
placeholder="请输入风险提示话术"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 校验内容类型 -->
|
||||
<!-- <el-form-item label="校验内容类型" prop="checkType">-->
|
||||
<!-- <el-select -->
|
||||
<!-- v-model="ruleForm.checkType" -->
|
||||
<!-- placeholder="请选择校验内容类型" -->
|
||||
<!-- style="width: 100%"-->
|
||||
<!-- >-->
|
||||
<!-- <el-option label="表单信息" :value="1"></el-option>-->
|
||||
<!-- <el-option label="文本文件" :value="2"></el-option>-->
|
||||
<!-- <el-option label="图片" :value="3"></el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
|
||||
<!-- <!– 风险类型 –>-->
|
||||
<!-- <el-form-item label="风险类型" prop="riskType">-->
|
||||
<!-- <el-select -->
|
||||
<!-- v-model="ruleForm.riskType" -->
|
||||
<!-- placeholder="请选择风险类型" -->
|
||||
<!-- style="width: 100%"-->
|
||||
<!-- >-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in riskTypeList"-->
|
||||
<!-- :key="item.riskTypeCode"-->
|
||||
<!-- :label="item.riskType"-->
|
||||
<!-- :value="item.riskTypeCode">-->
|
||||
<!-- </el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
|
||||
<!-- <!– 运行类型 –>-->
|
||||
<!-- <el-form-item label="运行类型" prop="runType">-->
|
||||
<!-- <el-radio-group v-model="ruleForm.runType">-->
|
||||
<!-- <el-radio label="ai">AI</el-radio>-->
|
||||
<!-- <el-radio label="func">函数</el-radio>-->
|
||||
<!-- </el-radio-group>-->
|
||||
<!-- </el-form-item>-->
|
||||
</el-form>
|
||||
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button
|
||||
type="primary"
|
||||
@click="handleSubmit"
|
||||
:loading="submitLoading"
|
||||
size="medium"
|
||||
>确 定</el-button
|
||||
>
|
||||
<el-button @click="handleClose" size="medium">取 消</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { createRule, updateRule, queryRuleDetail } from '@/api/riskCheck/rule'
|
||||
|
||||
export default {
|
||||
name: 'RuleEditDialog',
|
||||
props: {
|
||||
// 对话框是否可见
|
||||
visible: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 是否为编辑模式
|
||||
isEdit: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 当前规则数据
|
||||
ruleData: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
},
|
||||
// 规则类型选项列表
|
||||
ruleTypeOptions: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
},
|
||||
// 字段类型选项列表
|
||||
fieldTypeOptions: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
},
|
||||
// 风险类型选项列表
|
||||
riskTypeOptions: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
submitLoading: false,
|
||||
// 表单数据
|
||||
ruleForm: {
|
||||
id: '',
|
||||
ruleType: '',
|
||||
ruleField: '',
|
||||
ruleDesc: '',
|
||||
riskScript: '',
|
||||
checkType: 1,
|
||||
riskType: '',
|
||||
ruleStatus: 0,
|
||||
runType: 'ai'
|
||||
},
|
||||
// 表单验证规则
|
||||
rules: {
|
||||
ruleType: [
|
||||
{ required: true, message: '请选择规则类型', trigger: 'change' }
|
||||
],
|
||||
ruleField: [
|
||||
{ required: true, message: '请选择字段类型', trigger: 'change' }
|
||||
],
|
||||
ruleDesc: [
|
||||
{ required: true, message: '请输入规则描述', trigger: 'blur' }
|
||||
],
|
||||
riskScript: [
|
||||
{ required: true, message: '请输入风险提示话术', trigger: 'blur' }
|
||||
],
|
||||
checkType: [
|
||||
{ required: true, message: '请选择校验内容类型', trigger: 'change' }
|
||||
],
|
||||
riskType: [
|
||||
{ required: true, message: '请选择风险类型', trigger: 'change' }
|
||||
],
|
||||
runType: [
|
||||
{ required: true, message: '请选择运行类型', trigger: 'change' }
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
// 对话框标题
|
||||
dialogTitle() {
|
||||
return this.isEdit ? '编辑规则' : '新增规则'
|
||||
},
|
||||
// 对话框可见性
|
||||
dialogVisible: {
|
||||
get() {
|
||||
return this.visible
|
||||
},
|
||||
set(val) {
|
||||
this.$emit('update:visible', val)
|
||||
}
|
||||
},
|
||||
// 规则类型选项列表
|
||||
ruleTypeList() {
|
||||
return this.ruleTypeOptions.length > 0
|
||||
? this.ruleTypeOptions
|
||||
: [
|
||||
{ typeName: '基本信息', typeCode: 'basic_rule' },
|
||||
{ typeName: '投保信息', typeCode: 'insurance_rule' }
|
||||
]
|
||||
},
|
||||
// 字段类型选项列表
|
||||
fieldTypeList() {
|
||||
return this.fieldTypeOptions.length > 0
|
||||
? this.fieldTypeOptions
|
||||
: [
|
||||
{ fieldComment: '保险期限(天)', fieldName: 'insurance_period' },
|
||||
{ fieldComment: '投保金额', fieldName: 'insurance_amount' }
|
||||
]
|
||||
},
|
||||
// 风险类型选项列表
|
||||
riskTypeList() {
|
||||
return this.riskTypeOptions.length > 0
|
||||
? this.riskTypeOptions
|
||||
: [
|
||||
{
|
||||
riskType: '费率与投保方案不合理风险',
|
||||
riskTypeCode: 'rate_plan_risk'
|
||||
},
|
||||
{
|
||||
riskType: '保险责任不明确风险',
|
||||
riskTypeCode: 'insurance_liability_risk'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
// 监听规则数据变化
|
||||
ruleData: {
|
||||
handler(val) {
|
||||
if (val && Object.keys(val).length > 0) {
|
||||
this.ruleForm = Object.assign({}, val)
|
||||
} else {
|
||||
this.ruleForm = {
|
||||
id: '',
|
||||
ruleType: '',
|
||||
ruleField: '',
|
||||
ruleDesc: '',
|
||||
riskScript: '',
|
||||
checkType: 1,
|
||||
riskType: '',
|
||||
ruleStatus: 0,
|
||||
runType: 'ai'
|
||||
}
|
||||
}
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 关闭对话框
|
||||
handleClose() {
|
||||
this.$refs.ruleForm.resetFields()
|
||||
this.$emit('update:visible', false)
|
||||
},
|
||||
// 提交表单
|
||||
handleSubmit() {
|
||||
this.$refs.ruleForm.validate(valid => {
|
||||
if (valid) {
|
||||
this.submitLoading = true
|
||||
// 根据是否为编辑模式调用不同接口
|
||||
const request = this.isEdit ? updateRule : createRule
|
||||
const params = Object.assign({}, this.ruleForm)
|
||||
|
||||
request(params)
|
||||
.then(response => {
|
||||
this.$message.success(`${this.dialogTitle}成功`)
|
||||
this.$emit('success', response)
|
||||
this.handleClose()
|
||||
})
|
||||
.catch(error => {
|
||||
this.$message.error(
|
||||
`${this.dialogTitle}失败: ` + (error.message || '未知错误')
|
||||
)
|
||||
})
|
||||
.finally(() => {
|
||||
this.submitLoading = false
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.dialog-footer {
|
||||
text-align: right;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,246 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
title="查看规则"
|
||||
:visible.sync="dialogVisible"
|
||||
width="600px"
|
||||
@close="handleClose"
|
||||
>
|
||||
<el-form
|
||||
ref="ruleForm"
|
||||
:model="ruleForm"
|
||||
label-width="120px"
|
||||
v-loading="loading"
|
||||
>
|
||||
<!-- 规则类型 -->
|
||||
<el-form-item label="规则类型">
|
||||
<el-select
|
||||
v-model="ruleForm.ruleType"
|
||||
placeholder="请选择规则类型"
|
||||
style="width: 100%"
|
||||
disabled
|
||||
>
|
||||
<el-option
|
||||
v-for="item in ruleTypeList"
|
||||
:key="item.typeCode"
|
||||
:label="item.typeName"
|
||||
:value="item.typeCode"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 字段类型 -->
|
||||
<el-form-item label="字段类型">
|
||||
<el-select
|
||||
v-model="ruleForm.ruleField"
|
||||
placeholder="请选择字段类型"
|
||||
style="width: 100%"
|
||||
disabled
|
||||
>
|
||||
<el-option
|
||||
v-for="item in fieldTypeList"
|
||||
:key="item.fieldName"
|
||||
:label="item.fieldComment"
|
||||
:value="item.fieldName"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 规则描述 -->
|
||||
<el-form-item label="规则描述">
|
||||
<el-input
|
||||
type="textarea"
|
||||
v-model="ruleForm.ruleDesc"
|
||||
placeholder="请输入规则描述"
|
||||
:rows="3"
|
||||
disabled
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 风险提示话术 -->
|
||||
<el-form-item label="风险提示话术">
|
||||
<el-input
|
||||
v-model="ruleForm.riskScript"
|
||||
placeholder="请输入风险提示话术"
|
||||
disabled
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<!-- <!– 校验内容类型 –>-->
|
||||
<!-- <el-form-item label="校验内容类型">-->
|
||||
<!-- <el-select -->
|
||||
<!-- v-model="ruleForm.checkType" -->
|
||||
<!-- placeholder="请选择校验内容类型" -->
|
||||
<!-- style="width: 100%"-->
|
||||
<!-- disabled-->
|
||||
<!-- >-->
|
||||
<!-- <el-option label="表单信息" :value="1"></el-option>-->
|
||||
<!-- <el-option label="文本文件" :value="2"></el-option>-->
|
||||
<!-- <el-option label="图片" :value="3"></el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
|
||||
<!-- <!– 风险类型 –>-->
|
||||
<!-- <el-form-item label="风险类型">-->
|
||||
<!-- <el-select -->
|
||||
<!-- v-model="ruleForm.riskType" -->
|
||||
<!-- placeholder="请选择风险类型" -->
|
||||
<!-- style="width: 100%"-->
|
||||
<!-- disabled-->
|
||||
<!-- >-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in riskTypeList"-->
|
||||
<!-- :key="item.riskTypeCode"-->
|
||||
<!-- :label="item.riskType"-->
|
||||
<!-- :value="item.riskTypeCode">-->
|
||||
<!-- </el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </el-form-item>-->
|
||||
|
||||
<!-- <!– 运行类型 –>-->
|
||||
<!-- <el-form-item label="运行类型">-->
|
||||
<!-- <el-radio-group v-model="ruleForm.runType" disabled>-->
|
||||
<!-- <el-radio label="ai">AI</el-radio>-->
|
||||
<!-- <el-radio label="func">函数</el-radio>-->
|
||||
<!-- </el-radio-group>-->
|
||||
<!-- </el-form-item>-->
|
||||
|
||||
<!-- 规则状态 -->
|
||||
<!-- <el-form-item label="规则状态">-->
|
||||
<!-- <el-switch-->
|
||||
<!-- v-model="ruleForm.ruleStatus"-->
|
||||
<!-- :active-value="1"-->
|
||||
<!-- :inactive-value="0"-->
|
||||
<!-- active-text="启用"-->
|
||||
<!-- inactive-text="未启用"-->
|
||||
<!-- disabled-->
|
||||
<!-- >-->
|
||||
<!-- </el-switch>-->
|
||||
<!-- </el-form-item>-->
|
||||
</el-form>
|
||||
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="handleClose" size="medium">关 闭</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { queryRuleDetail } from '@/api/riskCheck/rule'
|
||||
|
||||
export default {
|
||||
name: 'RuleViewDialog',
|
||||
props: {
|
||||
// 对话框是否可见
|
||||
visible: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
// 当前规则数据
|
||||
ruleData: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
},
|
||||
// 规则类型选项列表
|
||||
ruleTypeOptions: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
},
|
||||
// 字段类型选项列表
|
||||
fieldTypeOptions: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
},
|
||||
// 风险类型选项列表
|
||||
riskTypeOptions: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
// 表单数据
|
||||
ruleForm: {
|
||||
id: '',
|
||||
ruleType: '',
|
||||
ruleField: '',
|
||||
ruleDesc: '',
|
||||
riskScript: '',
|
||||
checkType: 1,
|
||||
riskType: '',
|
||||
ruleStatus: 0,
|
||||
runType: 'ai'
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
// 对话框可见性
|
||||
dialogVisible: {
|
||||
get() {
|
||||
return this.visible
|
||||
},
|
||||
set(val) {
|
||||
this.$emit('update:visible', val)
|
||||
}
|
||||
},
|
||||
// 规则类型选项列表
|
||||
ruleTypeList() {
|
||||
return this.ruleTypeOptions.length > 0
|
||||
? this.ruleTypeOptions
|
||||
: [
|
||||
{ typeName: '基本信息', typeCode: 'basic_rule' },
|
||||
{ typeName: '投保信息', typeCode: 'insurance_rule' }
|
||||
]
|
||||
},
|
||||
// 字段类型选项列表
|
||||
fieldTypeList() {
|
||||
return this.fieldTypeOptions.length > 0
|
||||
? this.fieldTypeOptions
|
||||
: [
|
||||
{ fieldComment: '保险期限(天)', fieldName: 'insurance_period' },
|
||||
{ fieldComment: '投保金额', fieldName: 'insurance_amount' }
|
||||
]
|
||||
},
|
||||
// 风险类型选项列表
|
||||
riskTypeList() {
|
||||
return this.riskTypeOptions.length > 0
|
||||
? this.riskTypeOptions
|
||||
: [
|
||||
{
|
||||
riskType: '费率与投保方案不合理风险',
|
||||
riskTypeCode: 'rate_plan_risk'
|
||||
},
|
||||
{
|
||||
riskType: '保险责任不明确风险',
|
||||
riskTypeCode: 'insurance_liability_risk'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
// 监听规则数据变化
|
||||
ruleData: {
|
||||
handler(val) {
|
||||
if (val && Object.keys(val).length > 0) {
|
||||
this.ruleForm = Object.assign({}, val)
|
||||
}
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 关闭对话框
|
||||
handleClose() {
|
||||
this.$emit('update:visible', false)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.dialog-footer {
|
||||
text-align: right;
|
||||
}
|
||||
</style>
|
||||
456
src/views/applicationManagement/employRule/index.vue
Normal file
456
src/views/applicationManagement/employRule/index.vue
Normal file
@@ -0,0 +1,456 @@
|
||||
<!--
|
||||
雇则风筛规则管理页面
|
||||
功能包括:
|
||||
1. 规则列表展示(支持分页)
|
||||
2. 多条件查询(规则类型、字段类型、规则描述、规则状态)
|
||||
3. 规则操作(查看详情、编辑、删除、启用/停用)
|
||||
-->
|
||||
<template>
|
||||
<div class="render-container employ-rule">
|
||||
<!-- 查询条件区域 -->
|
||||
<div class="filter-container">
|
||||
<div class="flex align-items-c justify-content-b">
|
||||
<el-form
|
||||
:model="queryParams"
|
||||
label-width="100px"
|
||||
label-position="top"
|
||||
ref="queryParams"
|
||||
inline
|
||||
>
|
||||
<!-- 规则类型下拉选择 -->
|
||||
<el-form-item label="规则类型" prop="ruleType">
|
||||
<el-select
|
||||
v-model="queryParams.ruleType"
|
||||
size="medium"
|
||||
clearable
|
||||
placeholder="请选择规则类型"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in ruleTypeList"
|
||||
:label="item.typeName"
|
||||
:value="item.typeCode"
|
||||
:key="item.typeCode"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 字段类型下拉选择 -->
|
||||
<el-form-item label="字段类型" prop="ruleField">
|
||||
<el-select
|
||||
v-model="queryParams.ruleField"
|
||||
size="medium"
|
||||
clearable
|
||||
placeholder="请选择字段类型"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in fieldTypeList"
|
||||
:label="item.fieldComment"
|
||||
:value="item.fieldName"
|
||||
:key="item.fieldName"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 规则描述输入框 -->
|
||||
<el-form-item label="规则描述" prop="ruleDesc">
|
||||
<el-input
|
||||
v-model="queryParams.ruleDesc"
|
||||
size="medium"
|
||||
placeholder="请输入规则描述"
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<!-- 规则状态下拉选择 -->
|
||||
<el-form-item label="规则状态" prop="ruleStatus">
|
||||
<el-select
|
||||
v-model="queryParams.ruleStatus"
|
||||
size="medium"
|
||||
clearable
|
||||
placeholder="请选择规则状态"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in statusList"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
:key="item.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<!-- 查询操作按钮 -->
|
||||
<div class="mt15 flex align-items-c justify-content-b">
|
||||
<el-button size="medium" type="primary" @click="handleQuery"
|
||||
>查询</el-button
|
||||
>
|
||||
<el-button size="medium" @click="resetQuery">重置</el-button>
|
||||
<el-button size="medium" type="primary" @click="handleAdd"
|
||||
>新增</el-button
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 规则列表表格 -->
|
||||
<r-table
|
||||
:columns="tableConfig.columns"
|
||||
:data="tableData"
|
||||
:deletion="false"
|
||||
:total="tableConfig.total"
|
||||
@currentChange="handleCurrentChange"
|
||||
@sizeChange="handleSizeChange"
|
||||
:currentPage="tableConfig.currentPage"
|
||||
:pageSize="tableConfig.pageSize"
|
||||
/>
|
||||
|
||||
<!-- 规则编辑对话框 -->
|
||||
<rule-edit-dialog
|
||||
:visible.sync="editDialogVisible"
|
||||
:is-edit="isEdit"
|
||||
:rule-data="currentRuleData"
|
||||
:rule-type-options="ruleTypeList"
|
||||
:field-type-options="fieldTypeList"
|
||||
:risk-type-options="riskTypeList"
|
||||
@success="handleEditSuccess"
|
||||
/>
|
||||
|
||||
<!-- 规则查看对话框 -->
|
||||
<rule-view-dialog
|
||||
:visible.sync="viewDialogVisible"
|
||||
:rule-data="currentRuleData"
|
||||
:rule-type-options="ruleTypeList"
|
||||
:field-type-options="fieldTypeList"
|
||||
:risk-type-options="riskTypeList"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {
|
||||
getRulePage,
|
||||
deleteRule,
|
||||
batchSwitchStatus,
|
||||
queryRuleDetail,
|
||||
getRuleList,
|
||||
batchAddRuleType,
|
||||
batchAddField,
|
||||
batchAddRiskType
|
||||
} from '@/api/riskCheck/rule'
|
||||
import RuleEditDialog from './components/RuleEditDialog.vue'
|
||||
import RuleViewDialog from './components/RuleViewDialog.vue'
|
||||
|
||||
export default {
|
||||
name: 'EmployRule',
|
||||
components: {
|
||||
RuleEditDialog,
|
||||
RuleViewDialog
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
// 编辑对话框是否可见
|
||||
editDialogVisible: false,
|
||||
// 查看对话框是否可见
|
||||
viewDialogVisible: false,
|
||||
// 是否为编辑模式
|
||||
isEdit: false,
|
||||
// 当前规则数据
|
||||
currentRuleData: {},
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
page: 1,
|
||||
pageSize: 10,
|
||||
ruleType: '',
|
||||
ruleField: '',
|
||||
ruleDesc: '',
|
||||
ruleStatus: ''
|
||||
},
|
||||
// 规则类型选项列表
|
||||
ruleTypeList: [
|
||||
{ typeName: '基本信息', typeCode: 'basic_rule' },
|
||||
{ typeName: '投保信息', typeCode: 'insurance_rule' }
|
||||
],
|
||||
// 字段类型选项列表
|
||||
fieldTypeList: [
|
||||
{ fieldComment: '保险期限(天)', fieldName: 'insurance_period' },
|
||||
{ fieldComment: '投保金额', fieldName: 'insurance_amount' }
|
||||
],
|
||||
// 风险类型选项列表
|
||||
riskTypeList: [
|
||||
{
|
||||
riskType: '费率与投保方案不合理风险',
|
||||
riskTypeCode: 'rate_plan_risk'
|
||||
},
|
||||
{
|
||||
riskType: '保险责任不明确风险',
|
||||
riskTypeCode: 'insurance_liability_risk'
|
||||
}
|
||||
],
|
||||
// 规则状态选项列表
|
||||
statusList: [{ label: '启用', value: 0 }, { label: '未启用', value: 1 }],
|
||||
// 表格配置项
|
||||
tableConfig: {
|
||||
total: 0,
|
||||
currentPage: 1,
|
||||
pageSize: 10,
|
||||
columns: [
|
||||
{ type: 'index', key: '序号', width: 60 },
|
||||
{ prop: 'ruleType', key: '规则类型' },
|
||||
{ prop: 'ruleField', key: '字段类型' },
|
||||
{ prop: 'ruleDesc', key: '规则描述' },
|
||||
{ prop: 'riskScript', key: '风险展示话术' },
|
||||
{
|
||||
prop: 'ruleStatus',
|
||||
key: '规则状态',
|
||||
render: (h, params) => {
|
||||
return h(
|
||||
'el-tag',
|
||||
{
|
||||
props: {
|
||||
type: params.row.ruleStatus === 0 ? 'success' : 'info',
|
||||
size: 'small'
|
||||
}
|
||||
},
|
||||
params.row.ruleStatus === 0 ? '启用' : '未启用'
|
||||
)
|
||||
}
|
||||
},
|
||||
{
|
||||
key: '操作',
|
||||
isRedraw: true,
|
||||
render: (h, params) => {
|
||||
return h('div', [
|
||||
// 查看详情按钮
|
||||
h(
|
||||
'el-button',
|
||||
{
|
||||
props: {
|
||||
type: 'text',
|
||||
size: 'mini',
|
||||
icon: 'el-icon-view',
|
||||
title: '查看详情'
|
||||
},
|
||||
class: 'normal-button',
|
||||
on: { click: () => this.handleView(params.row) }
|
||||
},
|
||||
''
|
||||
),
|
||||
// 编辑按钮
|
||||
h(
|
||||
'el-button',
|
||||
{
|
||||
props: {
|
||||
type: 'text',
|
||||
size: 'mini',
|
||||
icon: 'el-icon-edit-outline',
|
||||
title: '编辑'
|
||||
},
|
||||
class: 'normal-button',
|
||||
on: { click: () => this.handleEdit(params.row) }
|
||||
},
|
||||
''
|
||||
),
|
||||
// 删除按钮
|
||||
h(
|
||||
'el-button',
|
||||
{
|
||||
props: {
|
||||
type: 'text',
|
||||
size: 'mini',
|
||||
style: 'color: #F56C6C',
|
||||
icon: 'el-icon-delete',
|
||||
title: '删除'
|
||||
},
|
||||
on: { click: () => this.handleDelete(params.row) }
|
||||
},
|
||||
''
|
||||
),
|
||||
// 启用/停用按钮(根据当前状态显示不同图标)
|
||||
h(
|
||||
'el-button',
|
||||
{
|
||||
props: {
|
||||
type: 'text',
|
||||
size: 'mini',
|
||||
icon:
|
||||
params.row.ruleStatus === 1
|
||||
? 'el-icon-remove-outline'
|
||||
: 'el-icon-circle-check',
|
||||
title: params.row.ruleStatus === 1 ? '启用' : '停用'
|
||||
},
|
||||
on: { click: () => this.handleToggleStatus(params.row) }
|
||||
},
|
||||
''
|
||||
)
|
||||
])
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
// 表格数据
|
||||
tableData: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
// 获取规则列表数据
|
||||
getList() {
|
||||
this.loading = true
|
||||
const params = Object.assign({}, this.queryParams)
|
||||
|
||||
getRulePage(params)
|
||||
.then(response => {
|
||||
// 根据实际API返回结构调整,兼容Vue2语法
|
||||
var content = response.content.content || {}
|
||||
this.tableData = content.list || []
|
||||
this.tableConfig.total = content.total || 0
|
||||
})
|
||||
.catch(error => {
|
||||
this.$message.error(
|
||||
'获取规则列表失败: ' + (error.message || '未知错误')
|
||||
)
|
||||
})
|
||||
.finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 查询按钮点击事件
|
||||
handleQuery() {
|
||||
this.queryParams.page = 1
|
||||
this.getList()
|
||||
},
|
||||
// 重置按钮点击事件
|
||||
resetQuery() {
|
||||
this.$refs.queryParams.resetFields()
|
||||
this.handleQuery()
|
||||
},
|
||||
// 新增按钮点击事件
|
||||
handleAdd() {
|
||||
this.isEdit = false
|
||||
this.currentRuleData = {}
|
||||
this.editDialogVisible = true
|
||||
},
|
||||
// 查看详情按钮点击事件
|
||||
handleView(row) {
|
||||
this.loading = true
|
||||
this.viewDialogVisible = true
|
||||
|
||||
// 获取规则详情
|
||||
queryRuleDetail({ id: row.id })
|
||||
.then(response => {
|
||||
this.currentRuleData = response.content.content || {}
|
||||
})
|
||||
.catch(error => {
|
||||
this.$message.error(
|
||||
'获取规则详情失败: ' + (error.message || '未知错误')
|
||||
)
|
||||
this.viewDialogVisible = false
|
||||
})
|
||||
.finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 编辑按钮点击事件
|
||||
handleEdit(row) {
|
||||
this.isEdit = true
|
||||
this.loading = true
|
||||
|
||||
// 获取规则详情
|
||||
queryRuleDetail({ id: row.id })
|
||||
.then(response => {
|
||||
this.currentRuleData = response.content.content || {}
|
||||
this.editDialogVisible = true
|
||||
})
|
||||
.catch(error => {
|
||||
this.$message.error(
|
||||
'获取规则详情失败: ' + (error.message || '未知错误')
|
||||
)
|
||||
})
|
||||
.finally(() => {
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
// 编辑成功回调
|
||||
handleEditSuccess() {
|
||||
this.getList() // 刷新列表
|
||||
},
|
||||
// 启用/停用按钮点击事件
|
||||
handleToggleStatus(row) {
|
||||
// 1 停用 0 启用
|
||||
// 启用的数据能停用,停用的数据反之
|
||||
const newStatus = row.ruleStatus === 0 ? 'enable' : 'disabled'
|
||||
const statusText = row.ruleStatus === 0 ? '停用' : '启用'
|
||||
|
||||
this.$messageBox(
|
||||
() => {
|
||||
// 调用批量启用/停用接口,传入当前行的ID
|
||||
batchSwitchStatus(newStatus, [row.id])
|
||||
.then(() => {
|
||||
this.$message.success(`${statusText}成功`)
|
||||
// 更新当前行的状态
|
||||
row.ruleStatus = row.ruleStatus === 1 ? 0 : 1
|
||||
})
|
||||
.catch(error => {
|
||||
this.$message.error(
|
||||
`${statusText}失败: ` + (error.message || '未知错误')
|
||||
)
|
||||
})
|
||||
},
|
||||
`确认${statusText}该规则吗?`,
|
||||
'warning',
|
||||
'提示'
|
||||
)
|
||||
},
|
||||
// 分页大小改变事件
|
||||
handleSizeChange(val) {
|
||||
this.queryParams.pageSize = val
|
||||
this.getList()
|
||||
},
|
||||
// 当前页码改变事件
|
||||
handleCurrentChange(val) {
|
||||
this.queryParams.page = val
|
||||
this.getList()
|
||||
},
|
||||
// 删除按钮点击事件
|
||||
handleDelete(row) {
|
||||
this.$messageBox(
|
||||
() => {
|
||||
// 调用删除接口
|
||||
deleteRule([row.id])
|
||||
.then(() => {
|
||||
this.$message.success('删除成功')
|
||||
this.getList()
|
||||
})
|
||||
.catch(error => {
|
||||
this.$message.error('删除失败: ' + (error.message || '未知错误'))
|
||||
})
|
||||
},
|
||||
'确认删除该规则吗?',
|
||||
'warning',
|
||||
'警告'
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.employ-rule {
|
||||
padding: 20px;
|
||||
|
||||
.filter-container {
|
||||
margin-bottom: 20px;
|
||||
|
||||
.el-form-item {
|
||||
margin-bottom: 10px;
|
||||
margin-right: 10px;
|
||||
|
||||
.el-form-item__label {
|
||||
padding-right: 8px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user