feat(rule): 编辑和预览组件和知识库显示同步

1.  显示换成 `@/views/knowledge/detail/components/*/AddRule.vue`
This commit is contained in:
Huangzhe
2025-04-17 09:49:30 +08:00
parent a7cdd92e69
commit de341e21d5

View File

@@ -1,7 +1,8 @@
<script> <script>
import { deleteRule, getRuleList } from '@/api/rules/index' import { deleteRule, getRuleList } from '@/api/rules/index'
import EditPromptRule from './components/edit-prompt-rule/Index.vue' import EditPromptRule from '@/views/knowledge/detail/components/words/AddRule.vue'
import EditSplitRule from './components/edit-split-rule/Index.vue' import EditSplitRule from '@/views/knowledge/detail/components/split/AddRule.vue'
import AddRules from './components/add-rules/index.vue' import AddRules from './components/add-rules/index.vue'
import Info from './components/info/index.vue' import Info from './components/info/index.vue'
@@ -66,8 +67,7 @@ export default {
title: '', title: '',
visible: false, visible: false,
width: '50%', width: '50%',
currentComponent: void 0, currentComponent: void 0
currentRow: void 0
}, },
tableData: [], tableData: [],
// 查询表单 // 查询表单
@@ -104,7 +104,8 @@ export default {
}, },
watch: { watch: {
form: { form: {
handler() {}, handler() {
},
deep: true deep: true
} }
}, },
@@ -151,19 +152,24 @@ export default {
}, },
// 处理查看规则详情 // 处理查看规则详情
handleInfoVisible(row) { handleInfoVisible(row) {
this.dialogOptions.title = '查看规则详情' this.handleEdit(row, true)
this.dialogOptions.currentComponent = 'Info'
this.dialogOptions.visible = true
this.dialogOptions.currentRow = row
}, },
// 处理修改规则 // 处理修改规则
handleEdit(row) { handleEdit(row, isPreview = false) {
this.dialogOptions.title = '修改规则' console.log(`isPreview`, isPreview)
this.dialogOptions.currentComponent = row.ruleType === 1 ? 'EditSplitRule' : 'EditPromptRule' this.dialogOptions.currentComponent = row.ruleType === 1 ? 'EditSplitRule' : 'EditPromptRule'
this.dialogOptions.visible = true
this.dialogOptions.currentRow = row if (this.dialogOptions.currentComponent === 'EditPromptRule') {
this.$nextTick(() => {
this.$refs.editPromptRule.init(row.id, { preview: isPreview })
})
} else if (this.dialogOptions.currentComponent === 'EditSplitRule') {
this.$nextTick(() => {
this.$refs.editSplitRule.init(row.id, { preview: isPreview })
})
}
}, },
// 处理删除规则 // 处理删除规则`
handleDelete(row, index) { handleDelete(row, index) {
this.$confirm('此操作将永久删除该规则, 是否继续?', '提示', { this.$confirm('此操作将永久删除该规则, 是否继续?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
@@ -218,11 +224,6 @@ export default {
<template> <template>
<div class="rules-container container"> <div class="rules-container container">
<el-card shadow="hover"> <el-card shadow="hover">
<!-- <template #header>
<div class="card-header">
<h3>规则管理</h3>
</div>
</template> -->
<div class="card-body"> <div class="card-body">
<el-form :model="form" label-width="100px" size="small"> <el-form :model="form" label-width="100px" size="small">
<!-- 查询条件 --> <!-- 查询条件 -->
@@ -232,28 +233,23 @@ export default {
<el-form-item label="规则类型"> <el-form-item label="规则类型">
<el-select v-model="form.ruleType" placeholder="请选择规则类型"> <el-select v-model="form.ruleType" placeholder="请选择规则类型">
<el-option label="全部规则" value="">全部规则</el-option> <el-option label="全部规则" value="">全部规则</el-option>
<el-option v-for="item in tableConfig.ruleType" :key="item" :label="item" :value="reverseRuleType(item)" /> <el-option v-for="item in tableConfig.ruleType" :key="item" :label="item"
:value="reverseRuleType(item)" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 规则名称 --> <!-- 规则名称 -->
<el-col :span="8"> <el-col :span="8">
<el-form-item label="规则名称"> <el-form-item label="规则名称">
<el-input v-model="form.ruleName" placeholder="请输入规则名称"></el-input> <el-input v-model="form.ruleName" placeholder="请输入规则名称" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- 创建时间 --> <!-- 创建时间 -->
<el-col :span="8"> <el-col :span="8">
<el-form-item label="创建时间"> <el-form-item label="创建时间">
<el-date-picker <el-date-picker v-model="form.createdDate" type="daterange" unlink-panels range-separator="至"
v-model="form.createdDate" start-placeholder="开始日期" end-placeholder="结束日期"
type="daterange" :picker-options="form.pickerOptions">
unlink-panels
range-separator=""
start-placeholder="开始日期"
end-placeholder="结束日期"
:picker-options="form.pickerOptions"
>
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
@@ -271,29 +267,13 @@ export default {
<!-- 下方规则列表 --> <!-- 下方规则列表 -->
<div class="p20"> <div class="p20">
<r-table <r-table :columns="tableConfig.columns" :data="tableData" :deletion="false" :total="tableConfig.total"
:columns="tableConfig.columns" @currentChange="handleCurrentChange" @sizeChange="handleSizeChange"
:data="tableData"
:deletion="false"
:total="tableConfig.total"
@currentChange="handleCurrentChange"
@sizeChange="handleSizeChange"
:currentPage="tableConfig.currentPage" :currentPage="tableConfig.currentPage"
:pageSize="tableConfig.pageSize" :pageSize="tableConfig.pageSize" />
/>
</div> </div>
</el-card> </el-card>
<!-- 规则详情弹窗 --> <edit-prompt-rule ref="editPromptRule" v-if="dialogOptions.currentComponent === 'EditPromptRule'" />
<el-drawer :visible.sync="dialogOptions.visible" size="50%" :title="dialogOptions.title"> <edit-split-rule ref="editSplitRule" v-else-if="dialogOptions.currentComponent === 'EditSplitRule'" />
<!-- diglog 弹窗内容组件 -->
<component
class="container"
v-if="dialogOptions.visible"
:is="dialogOptions.currentComponent"
:data="tableData"
:columns="columns"
:currentRow="dialogOptions.currentRow"
/>
</el-drawer>
</div> </div>
</template> </template>