mirror of
http://112.124.100.131/ebiz-ai/ebiz-ai-knowledge-manage.git
synced 2025-12-11 03:46:50 +08:00
feat: 调整接口,增加功能
- 增加筛选功能 - 增加相应的api - 增加一些模板 -
This commit is contained in:
84
src/api/rules/index.js
Normal file
84
src/api/rules/index.js
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
|
||||||
|
import request from '@/assets/js/utils/request'
|
||||||
|
import getUrl from '@/assets/js/utils/get-url'
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取所有的规则列表
|
||||||
|
*/
|
||||||
|
export function getRuleList() {
|
||||||
|
return request({
|
||||||
|
url: getUrl('/rules/page'),
|
||||||
|
method: 'post',
|
||||||
|
data: {}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 查看规则明细
|
||||||
|
* @param {string} id - 规则id
|
||||||
|
*/
|
||||||
|
export function getRuleDetail(id) {
|
||||||
|
return request({
|
||||||
|
url: getUrl('/rulesEx/query'),
|
||||||
|
method: 'get',
|
||||||
|
params: { id }
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除规则
|
||||||
|
* @param {string[]} id - 规则id
|
||||||
|
*/
|
||||||
|
export function deleteRule(id) {
|
||||||
|
return request({
|
||||||
|
url: getUrl('/rules/delete'),
|
||||||
|
method: 'post',
|
||||||
|
data: id
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 拆分规则新增
|
||||||
|
*/
|
||||||
|
export function addSplitRule(data) {
|
||||||
|
return request({
|
||||||
|
url: getUrl('/ruleDocSplitEx/create'),
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 拆分规则更新
|
||||||
|
*/
|
||||||
|
export function updateSplitRule(data) {
|
||||||
|
return request({
|
||||||
|
url: getUrl('/ruleDocSplitEx/update'),
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 提示词规则新增
|
||||||
|
*/
|
||||||
|
export function addPromptRule(data) {
|
||||||
|
return request({
|
||||||
|
url: getUrl('/rulesEx/add'),
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 提示词规则更新
|
||||||
|
* @param {Object} data - 更新数据
|
||||||
|
*/
|
||||||
|
export function updatePromptRule(data) {
|
||||||
|
return request({
|
||||||
|
url: getUrl('/ruleAttributeExtractEx/update'),
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
20
src/api/rules/template/prompt-rule.json5
Normal file
20
src/api/rules/template/prompt-rule.json5
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"ruleName": "修改题词规则",
|
||||||
|
"ruleType": 2,
|
||||||
|
"ruleList": [
|
||||||
|
{
|
||||||
|
"attribute": "属性1-1",
|
||||||
|
"attributeDesc": "秒送",
|
||||||
|
"keyword": "keyword",
|
||||||
|
"example": "example",
|
||||||
|
"prompt": "prompt"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"attribute": "属性22",
|
||||||
|
"attributeDesc": "秒送",
|
||||||
|
"keyword": "keyword",
|
||||||
|
"example": "example",
|
||||||
|
"prompt": "prompt"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
16
src/api/rules/template/splite.json5
Normal file
16
src/api/rules/template/splite.json5
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"ruleName": "规则-修改",
|
||||||
|
"ruleType": 1,
|
||||||
|
"ruleList": [
|
||||||
|
{
|
||||||
|
"titleLevel": 1,
|
||||||
|
"ruleRegex": "规则1",
|
||||||
|
"description": "描述22"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"titleLevel": 3,
|
||||||
|
"ruleRegex": "规则2",
|
||||||
|
"description": "新增"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,83 +1,173 @@
|
|||||||
<script>
|
<script>
|
||||||
import { getRuleList } from "@/api/knowledge/task-page";
|
import { deleteRule, getRuleList } from "@/api/rules/index";
|
||||||
import EditPromptRule from "./components/edit-prompt-rule/Index.vue";
|
import EditPromptRule from "./components/edit-prompt-rule/Index.vue";
|
||||||
import EditSplitRule from "./components/edit-split-rule/Index.vue";
|
import EditSplitRule from "./components/edit-split-rule/Index.vue";
|
||||||
import Info from "./components/info/index.vue";
|
import Info from "./components/info/index.vue";
|
||||||
|
import { h } from "vue";
|
||||||
|
import { watch } from "vue";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'rules',
|
name: "rules",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
// visibleDialog: {
|
columns: [],
|
||||||
// info: false,
|
// 弹窗配置
|
||||||
// edit: false,
|
diglogOptions: {
|
||||||
// add: false
|
title: "",
|
||||||
// },
|
visible: false,
|
||||||
diglogOptions: {
|
width: "50%",
|
||||||
title: '',
|
currentComponent: void 0,
|
||||||
visible: false,
|
currentRow: void 0
|
||||||
width: '50%',
|
},
|
||||||
currentComponent: void 0,
|
// 分页配置
|
||||||
},
|
|
||||||
currentPage: 1,
|
currentPage: 1,
|
||||||
tableData: [],
|
tableData: [],
|
||||||
|
// 查询表单
|
||||||
form: {
|
form: {
|
||||||
|
query: true,
|
||||||
pickerOptions: void 0,
|
pickerOptions: void 0,
|
||||||
ruleType: '',
|
ruleType: "",
|
||||||
ruleName: '',
|
ruleName: "",
|
||||||
value2: []
|
createdDate: []
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
},
|
||||||
|
provide() {
|
||||||
|
return {
|
||||||
|
diglogOptions: this.diglogOptions
|
||||||
|
};
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
EditPromptRule,
|
||||||
|
EditSplitRule,
|
||||||
|
Info
|
||||||
},
|
},
|
||||||
components: {
|
|
||||||
EditPromptRule,
|
|
||||||
EditSplitRule,
|
|
||||||
Info
|
|
||||||
},
|
|
||||||
computed: {
|
computed: {
|
||||||
// 当前的分页数据
|
// 当前的分页数据
|
||||||
currentTableDate() {
|
currentTableDate() {
|
||||||
const start = (this.currentPage - 1) * 10
|
let filteredData;
|
||||||
const end = this.currentPage * 10
|
// 过滤 table 列表,如果 form 相关项是空的,就不过滤
|
||||||
return this.tableData.slice(start, end)
|
if (this.form.query) {
|
||||||
|
// 过滤 ruleType
|
||||||
|
const map = {
|
||||||
|
1: "提示词规则",
|
||||||
|
2: "知识拆分规则"
|
||||||
|
};
|
||||||
|
filteredData = this.tableData.filter(item => {
|
||||||
|
if (!this.form.ruleType) return true;
|
||||||
|
return map[item.ruleType] === this.form.ruleType;
|
||||||
|
});
|
||||||
|
|
||||||
|
// 过滤 ruleName
|
||||||
|
filteredData = filteredData.filter(item => {
|
||||||
|
if (!this.form.ruleName) return true;
|
||||||
|
return item.ruleName === this.form.ruleName;
|
||||||
|
});
|
||||||
|
|
||||||
|
// 过滤 createdDate
|
||||||
|
filteredData = filteredData.filter(item => {
|
||||||
|
if (!this.form.createdDate.length) return true;
|
||||||
|
return item.createdDate >= this.form.createdDate[0] && item.createdDate <= this.form.createdDate[1];
|
||||||
|
});
|
||||||
|
|
||||||
|
} else {
|
||||||
|
filteredData = this.tableData;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// TODO: 分页数据
|
||||||
|
const start = (this.currentPage - 1) * 10;
|
||||||
|
const end = this.currentPage * 10;
|
||||||
|
return filteredData.slice(start, end);
|
||||||
|
},
|
||||||
|
// 查询表单的 ruleTypeOptions
|
||||||
|
ruleTypeOptions() {
|
||||||
|
const map = {
|
||||||
|
1: "提示词规则",
|
||||||
|
2: "知识拆分规则"
|
||||||
|
};
|
||||||
|
// 去重所有 ruleType, 然后映射成 option
|
||||||
|
const res = [...new Set(this.tableData.map(item => item.ruleType))].map(type => (map[type]));
|
||||||
|
console.log(res);
|
||||||
|
|
||||||
|
return res;
|
||||||
|
},
|
||||||
|
// 查询表单的 ruleNameOptions
|
||||||
|
ruleNameOptions() {
|
||||||
|
const res = [...new Set(this.tableData.map(item => item.ruleName))];
|
||||||
|
console.log(res);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
form: {
|
||||||
|
handler() {
|
||||||
|
},
|
||||||
|
deep: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
beforeMount() {
|
beforeMount() {
|
||||||
getRuleList().then(res => {
|
getRuleList().then(res => {
|
||||||
const { content } = res.content
|
console.log(res);
|
||||||
console.log(content)
|
|
||||||
|
|
||||||
this.tableData = content
|
const { content } = res.content;
|
||||||
})
|
console.log(content);
|
||||||
|
|
||||||
|
this.tableData = content.list;
|
||||||
|
});
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
handleCurrentChange(val) {
|
handleCurrentChange(val) {
|
||||||
console.log(`current page: ${val}`)
|
console.log(`current page: ${val}`);
|
||||||
|
this.currentPage = val;
|
||||||
this.currentPage = val;
|
},
|
||||||
},
|
// 处理查看规则详情
|
||||||
// 处理查看规则详情
|
handleInfoVisiable(row) {
|
||||||
handleInfoVisiable(row) {
|
this.diglogOptions.title = "查看规则详情";
|
||||||
this.diglogOptions.title = '查看规则详情';
|
this.diglogOptions.currentComponent = "Info";
|
||||||
this.diglogOptions.currentComponent = 'Info';
|
this.diglogOptions.visible = true;
|
||||||
this.diglogOptions.visible = true;
|
this.diglogOptions.currentRow = row;
|
||||||
console.log(row);
|
},
|
||||||
this.form = row;
|
// 处理修改规则
|
||||||
},
|
handleEdit(row, index) {
|
||||||
// 处理修改规则
|
this.diglogOptions.title = "修改规则";
|
||||||
handleEdit(row, index) {
|
this.diglogOptions.currentComponent = row.ruleType === 1 ? "EditSplitRule" : "EditPromptRule";
|
||||||
this.diglogOptions.title = '修改规则';
|
this.diglogOptions.visible = true;
|
||||||
this.diglogOptions.currentComponent = 'EditPromptRule';
|
this.diglogOptions.currentRow = row;
|
||||||
this.diglogOptions.visible = true;
|
},
|
||||||
console.log(row, index);
|
// 处理删除规则
|
||||||
},
|
handleDelete(row, index) {
|
||||||
// 处理删除规则
|
console.log(row, index);
|
||||||
handleDelete(row, index) {
|
deleteRule([row.id]).then(() => {
|
||||||
console.log(row, index);
|
this.tableData.splice(index, 1);
|
||||||
}
|
}).catch(err => {
|
||||||
|
this.$notify.error({
|
||||||
|
title: "删除失败",
|
||||||
|
message: h("i", { style: "color: teal" }, "删除时出现错误,稍后再试" + err)
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 处理查询
|
||||||
|
handleQuery() {
|
||||||
|
this.form.query = true;
|
||||||
|
},
|
||||||
|
// 处理重置
|
||||||
|
handleReset() {
|
||||||
|
this.form = {
|
||||||
|
query: true,
|
||||||
|
pickerOptions: void 0,
|
||||||
|
ruleType: "",
|
||||||
|
ruleName: "",
|
||||||
|
createdDate: []
|
||||||
|
};
|
||||||
|
},
|
||||||
|
// 处理新增
|
||||||
|
handleAdd() {
|
||||||
|
console.log("handleAdd");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@@ -96,9 +186,8 @@ export default {
|
|||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="规则类型">
|
<el-form-item label="规则类型">
|
||||||
<el-select v-model="form.ruleType" placeholder="请选择规则类型">
|
<el-select v-model="form.ruleType" placeholder="请选择规则类型">
|
||||||
<!-- <el-option v-for="item in ruleTypeOptions" :key="item.value" :label="item.label"
|
<el-option v-for="item in ruleTypeOptions" :key="item" :label="item" :value="item">
|
||||||
:value="item.value">
|
</el-option>
|
||||||
</el-option> -->
|
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@@ -106,24 +195,16 @@ export default {
|
|||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="规则名称">
|
<el-form-item label="规则名称">
|
||||||
<el-select v-model="form.ruleName" placeholder="请选择规则名称">
|
<el-select v-model="form.ruleName" placeholder="请选择规则名称">
|
||||||
<!-- <el-option v-for="item in ruleNameOptions" :key="item.value" :label="item.label" -->
|
<el-option v-for="item in ruleNameOptions" :key="item" :label="item" :value="item">
|
||||||
<!-- :value="item.value"> -->
|
</el-option>
|
||||||
<!-- </el-option> -->
|
|
||||||
</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-date-picker
|
<el-date-picker v-model="form.createdDate" type="daterange" unlink-panels range-separator="至"
|
||||||
v-model="form.value2"
|
start-placeholder="开始日期" end-placeholder="结束日期" :picker-options="form.pickerOptions">
|
||||||
type="daterange"
|
|
||||||
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>
|
||||||
@@ -131,9 +212,9 @@ export default {
|
|||||||
<!-- 功能按钮组: 查询、重置、新增规则 -->
|
<!-- 功能按钮组: 查询、重置、新增规则 -->
|
||||||
<el-row class="p25">
|
<el-row class="p25">
|
||||||
<el-col :span="16">
|
<el-col :span="16">
|
||||||
<el-button type="primary">查询</el-button>
|
<el-button type="primary" @click="handleQuery">查询</el-button>
|
||||||
<el-button type="info">重置</el-button>
|
<el-button type="info" @click="handleReset">重置</el-button>
|
||||||
<el-button type="primary">新增规则</el-button>
|
<el-button type="primary" @click="handleAdd">新增规则</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
@@ -143,14 +224,18 @@ export default {
|
|||||||
<!-- <r-table :data="tableData"></r-table> -->
|
<!-- <r-table :data="tableData"></r-table> -->
|
||||||
<div class="p20">
|
<div class="p20">
|
||||||
<el-table :data="currentTableDate">
|
<el-table :data="currentTableDate">
|
||||||
<el-table-column prop="attribute" label="规则名称"></el-table-column>
|
<el-table-column prop="ruleName" label="规则名称"></el-table-column>
|
||||||
<el-table-column prop="category" label="规则类型"></el-table-column>
|
<el-table-column prop="ruleType" label="规则类型">
|
||||||
|
<template #default="scope">
|
||||||
|
{{ scope.row.ruleType && scope.row.ruleType === 1 ? "提示词规则" : "知识拆分规则" }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column prop="createdDate" label="创建时间"></el-table-column>
|
<el-table-column prop="createdDate" label="创建时间"></el-table-column>
|
||||||
<el-table-column label="操作">
|
<el-table-column label="操作">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button type="primary" size="mini" plain @click="handleInfoVisiable(scope.row)">查看规则详情</el-button>
|
<el-button type="primary" size="mini" plain @click="handleInfoVisiable(scope.row)">查看规则详情
|
||||||
<el-button type="primary" size="mini" plain
|
</el-button>
|
||||||
@click="handleEdit(scope.row, scope.$index)">修改</el-button>
|
<el-button type="primary" size="mini" plain @click="handleEdit(scope.row, scope.$index)">修改</el-button>
|
||||||
<el-button type="danger" size="mini" plain @click="handleDelete(scope.row, scope.$index)">删除</el-button>
|
<el-button type="danger" size="mini" plain @click="handleDelete(scope.row, scope.$index)">删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@@ -159,30 +244,17 @@ export default {
|
|||||||
<!-- 分页 -->
|
<!-- 分页 -->
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="24" class="flex" style="justify-content: right;">
|
<el-col :span="24" class="flex" style="justify-content: right;">
|
||||||
<el-pagination
|
<el-pagination background layout="prev, pager, next" @current-change="handleCurrentChange"
|
||||||
background
|
:current-page="currentPage" :hide-on-single-page="true" :total="tableData.length">
|
||||||
layout="prev, pager, next"
|
|
||||||
@current-change="handleCurrentChange"
|
|
||||||
:current-page="currentPage"
|
|
||||||
:hide-on-single-page="true"
|
|
||||||
:total="tableData.length"
|
|
||||||
>
|
|
||||||
</el-pagination>
|
</el-pagination>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-card>
|
</el-card>
|
||||||
<!-- 规则详情弹窗 -->
|
<!-- 规则详情弹窗 -->
|
||||||
<el-dialog :visible.sync="diglogOptions.visible" width="50%" :title="diglogOptions.title">
|
<el-drawer :visible.sync="diglogOptions.visible" size="50%" :title="diglogOptions.title">
|
||||||
<!-- diglog 弹窗内容组件 -->
|
<!-- diglog 弹窗内容组件 -->
|
||||||
<component :is="diglogOptions.currentComponent" :data="tableData" :columns="columns"/>
|
<component v-if="diglogOptions.visible" :is="diglogOptions.currentComponent" :data="tableData" :columns="columns"
|
||||||
<div slot="footer" class="dialog-footer">
|
:currentRow="diglogOptions.currentRow" />
|
||||||
<el-button @click="diglogOptions.visible = false">取 消</el-button>
|
</el-drawer>
|
||||||
<el-button type="primary" @click="diglogOptions.visible = false">确 定</el-button>
|
|
||||||
</div>
|
|
||||||
</el-dialog>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<style lang="scss" scoped></style>
|
|
||||||
|
|||||||
@@ -1,59 +1,116 @@
|
|||||||
<script>
|
<script>
|
||||||
export default {
|
import { getRuleDetail } from "@/api/rules/index";
|
||||||
name: 'EditPromptRule',
|
import { updatePromptRule } from "@/api/rules/index";
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
// 规则名称、属性、属性描述、关键词、题词示例、提示词
|
|
||||||
form: {
|
|
||||||
ruleName: '',
|
|
||||||
ruleAttribute: '',
|
|
||||||
ruleAttributeDesc: '',
|
|
||||||
ruleKeyword: '',
|
|
||||||
ruleExample: '',
|
|
||||||
rulePrompt: '',
|
|
||||||
ruleRemark: ''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
save() {
|
|
||||||
|
|
||||||
}
|
export default {
|
||||||
|
name: 'EditPromptRule',
|
||||||
|
inject: ['diglogOptions'],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// 规则名称、属性、属性描述、关键词、题词示例、提示词
|
||||||
|
form: {
|
||||||
|
id: '',
|
||||||
|
ruleName: '',
|
||||||
|
createdDate: '',
|
||||||
|
ruleType: '',
|
||||||
|
ruleList: []
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
handleAdd() {
|
||||||
|
const payload = {
|
||||||
|
attribute: '',
|
||||||
|
attributeDesc: '',
|
||||||
|
keyword: '',
|
||||||
|
example: '',
|
||||||
|
prompt: ''
|
||||||
|
};
|
||||||
|
|
||||||
|
this.form.ruleList.push(payload);
|
||||||
|
},
|
||||||
|
handleDelete() {
|
||||||
|
if (this.form.ruleList.length > 0) {
|
||||||
|
this.form.ruleList.pop();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
save() {
|
||||||
|
console.log('save this form ',this.form);
|
||||||
|
|
||||||
|
updatePromptRule(this.form).then(() => {
|
||||||
|
console.log('update prompt rule success');
|
||||||
|
this.diglogOptions.visible = false;
|
||||||
|
// 可以添加成功提示
|
||||||
|
this.$message && this.$message.success('保存成功');
|
||||||
|
}).catch(err => {
|
||||||
|
console.error(`update prompt rule failed: ${err}`);
|
||||||
|
// 可以添加错误提示
|
||||||
|
this.$message && this.$message.error('保存失败');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
beforeMount() {
|
||||||
|
// 获取当前行数据
|
||||||
|
const { currentRow } = this.diglogOptions;
|
||||||
|
|
||||||
|
// 获取规则详情
|
||||||
|
getRuleDetail(currentRow.id).then(res => {
|
||||||
|
const { content } = res.content;
|
||||||
|
console.log('origin query request', content);
|
||||||
|
|
||||||
|
// 一次性设置表单数据,确保响应式更新
|
||||||
|
this.form = {
|
||||||
|
id: content.id || currentRow.id,
|
||||||
|
ruleType: content.ruleType,
|
||||||
|
ruleName: content.ruleName,
|
||||||
|
createdDate: content.createdDate,
|
||||||
|
ruleList: Array.isArray(content.ruleList) ? content.ruleList : []
|
||||||
|
};
|
||||||
|
}).catch(err => {
|
||||||
|
console.error('获取规则详情失败:', err);
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-form :model="form" label-width="100px">
|
<el-form :model="form" label-width="100px">
|
||||||
<el-form-item label="规则名称">
|
<el-form-item label="规则名称">
|
||||||
<el-input v-model="form.ruleName"></el-input>
|
<el-input v-model="form.ruleName"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="属性">
|
<el-card v-for="(item, index) in form.ruleList" :key="index">
|
||||||
<el-input v-model="form.ruleAttribute"></el-input>
|
<el-form-item label="属性">
|
||||||
</el-form-item>
|
<el-input v-model="item.attribute"></el-input>
|
||||||
<el-form-item label="属性描述">
|
</el-form-item>
|
||||||
<el-input v-model="form.ruleAttributeDesc"></el-input>
|
<el-form-item label="属性描述">
|
||||||
</el-form-item>
|
<el-input v-model="item.attributeDesc"></el-input>
|
||||||
<el-form-item label="关键词">
|
</el-form-item>
|
||||||
<el-input v-model="form.ruleKeyword"></el-input>
|
<el-form-item label="关键词">
|
||||||
</el-form-item>
|
<el-input v-model="item.keyword"></el-input>
|
||||||
<el-form-item label="题词示例">
|
</el-form-item>
|
||||||
<el-input v-model="form.ruleExample"></el-input>
|
<el-form-item label="题词示例">
|
||||||
</el-form-item>
|
<el-input v-model="item.example"></el-input>
|
||||||
<el-form-item label="提示词">
|
</el-form-item>
|
||||||
<el-input v-model="form.rulePrompt"></el-input>
|
<el-form-item label="提示词">
|
||||||
</el-form-item>
|
<el-input v-model="item.prompt"></el-input>
|
||||||
<el-form-item label="备注">
|
</el-form-item>
|
||||||
<el-input type="textarea" v-model="form.ruleRemark"></el-input>
|
<el-form-item label="备注">
|
||||||
</el-form-item>
|
<el-input type="textarea" v-model="item.attributeDesc"></el-input>
|
||||||
</el-form>
|
</el-form-item>
|
||||||
|
</el-card>
|
||||||
<el-row class="flex" style="justify-content: right;">
|
</el-form>
|
||||||
<el-button type="primary" @click="save">+ 新增拆分规则</el-button>
|
<div slot="footer" class="dialog-footer flex" style="justify-content: space-between;">
|
||||||
<el-button type="primary" @click="save">- 删除拆分规则</el-button>
|
<div>
|
||||||
</el-row>
|
<el-button type="primary" @click="handleAdd">+ 新增题词</el-button>
|
||||||
|
<el-button type="info" @click="handleDelete">- 删除题词</el-button>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<el-button @click="diglogOptions.visible = false">取 消</el-button>
|
||||||
|
<el-button type="primary" @click="save">确 定</el-button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style lang="css" scoped></style>
|
<style lang="css" scoped></style>
|
||||||
@@ -1,42 +1,108 @@
|
|||||||
<script>
|
<script>
|
||||||
import { Form } from 'element-ui';
|
import { getRuleDetail } from "@/api/rules/index";
|
||||||
|
import { updateSplitRule } from "@/api/rules/index";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'sEditSplitRule',
|
name: 'sEditSplitRule',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
// 表单数据有:规则名称、样式、提示词、备注
|
// 表单数据有:规则名称、样式、提示词、备注
|
||||||
form:{
|
form: {
|
||||||
ruleName: '',
|
id: '',
|
||||||
ruleStyle: '',
|
ruleName: '',
|
||||||
rulePrompt: '',
|
ruleType: '',
|
||||||
ruleRemark: ''
|
ruleList: []
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
inject: ['diglogOptions'],
|
||||||
|
beforeMount() {
|
||||||
|
// 获取当前行数据
|
||||||
|
const { currentRow } = this.diglogOptions;
|
||||||
|
|
||||||
|
// 获取规则详情
|
||||||
|
getRuleDetail(currentRow.id).then(res => {
|
||||||
|
const { content } = res.content;
|
||||||
|
console.log('origin query request', content);
|
||||||
|
// 一次性设置表单数据,确保响应式更新
|
||||||
|
this.form = {
|
||||||
|
id: content.id,
|
||||||
|
ruleName: content.ruleName,
|
||||||
|
ruleType: content.ruleType,
|
||||||
|
ruleList: Array.isArray(content.ruleList) ? content.ruleList : []
|
||||||
|
};
|
||||||
|
}).catch(err => {
|
||||||
|
console.error('获取规则详情失败:', err);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
methods: {
|
||||||
|
handleAdd() {
|
||||||
|
// TODO: 新增数据到后端
|
||||||
|
const payload = {
|
||||||
|
titleLevel: '',
|
||||||
|
ruleRegex: '',
|
||||||
|
description: ''
|
||||||
|
};
|
||||||
|
|
||||||
|
// 使用数组方法添加元素,确保响应式更新
|
||||||
|
this.form.ruleList.push(payload);
|
||||||
|
},
|
||||||
|
handleDelete() {
|
||||||
|
// TODO: 删除数据到后端
|
||||||
|
if (this.form.ruleList.length > 0) {
|
||||||
|
this.form.ruleList.pop();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleSave() {
|
||||||
|
// 使用正确的API保存数据到后端
|
||||||
|
console.log(`this.form`,this.form);
|
||||||
|
|
||||||
|
updateSplitRule(this.form).then(() => {
|
||||||
|
console.log('update split rule success');
|
||||||
|
this.diglogOptions.visible = false;
|
||||||
|
// 可以添加成功提示
|
||||||
|
this.$message && this.$message.success('保存成功');
|
||||||
|
}).catch(err => {
|
||||||
|
console.error(`update split rule failed: ${err}`);
|
||||||
|
// 可以添加错误提示
|
||||||
|
this.$message && this.$message.error('保存失败');
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<el-form :model="form" label-width="100px">
|
<el-form :model="form" label-width="100px">
|
||||||
<el-form-item label="规则名称">
|
<el-form-item label="规则名称">
|
||||||
<el-input v-model="form.ruleName"></el-input>
|
<el-input v-model="form.ruleName"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="样式">
|
<el-card v-for="(item, index) in form.ruleList" :key="index">
|
||||||
<el-input v-model="form.ruleStyle"></el-input>
|
<el-form-item label="样式">
|
||||||
</el-form-item>
|
<el-input v-model="item.titleLevel"></el-input>
|
||||||
<el-form-item label="提示词">
|
</el-form-item>
|
||||||
<el-input v-model="form.rulePrompt"></el-input>
|
<el-form-item label="规则">
|
||||||
</el-form-item>
|
<el-input v-model="item.ruleRegex"></el-input>
|
||||||
<el-form-item label="备注">
|
</el-form-item>
|
||||||
<el-input type="textarea" v-model="form.ruleRemark"></el-input>
|
<el-form-item label="备注">
|
||||||
</el-form-item>
|
<el-input type="textarea" v-model="item.description"></el-input>
|
||||||
</el-form>
|
</el-form-item>
|
||||||
|
</el-card>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer flex" style="justify-content: space-between;">
|
||||||
|
<!-- 只有当点击保存的时候才能和服务端通信新增和删除 -->
|
||||||
|
<div>
|
||||||
|
<el-button type="primary" @click="handleAdd">+ 新增拆分</el-button>
|
||||||
|
<el-button type="info" @click="handleDelete">- 删除拆分</el-button>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<el-button @click="diglogOptions.visible = false">取 消</el-button>
|
||||||
|
<el-button type="primary" @click="handleSave">确 定</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style lang="css" scoped></style>
|
<style lang="css" scoped></style>
|
||||||
@@ -1,51 +1,90 @@
|
|||||||
<script>
|
<script>
|
||||||
|
import { getRuleDetail } from "@/api/rules/index";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Info',
|
name: 'Info',
|
||||||
props:{
|
props: {
|
||||||
data: {
|
// data: {
|
||||||
type: Object,
|
// type: Object,
|
||||||
default: () => {}
|
// default: () => { }
|
||||||
},
|
// },
|
||||||
columns: {
|
// columns: {
|
||||||
type: Array,
|
// type: Array,
|
||||||
default: () => []
|
// default: () => []
|
||||||
}
|
// }
|
||||||
},
|
},
|
||||||
data() {
|
inject: ['diglogOptions'],
|
||||||
return {
|
data() {
|
||||||
// 规则名称、创建时间
|
return {
|
||||||
form: {
|
tableDate: {
|
||||||
ruleName: '',
|
data: [],
|
||||||
}
|
columns: []
|
||||||
}
|
},
|
||||||
},
|
// 规则名称、创建时间
|
||||||
methods: {
|
form: {
|
||||||
save() {
|
ruleName: '',
|
||||||
|
createdDate: ''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
save() {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
beforeMount() {
|
||||||
|
// 获取规则详情
|
||||||
|
getRuleDetail(this.diglogOptions.currentRow.id).then(res => {
|
||||||
|
const { content } = res.content;
|
||||||
|
console.log('origin query request', content);
|
||||||
|
// 设置表单数据
|
||||||
|
this.form.ruleName = content.ruleName;
|
||||||
|
this.form.createdDate = content.createdDate;
|
||||||
|
// 设置表格数据
|
||||||
|
this.tableDate.data = content.ruleList;
|
||||||
|
// 设置表格列, 有两种方式
|
||||||
|
|
||||||
|
// 1. 是 提示词规则
|
||||||
|
if (content.ruleType.toString() === '1') {
|
||||||
|
this.tableDate.columns = [
|
||||||
|
{ prop: 'titleLevel', key: '样式' },
|
||||||
|
{ prop: 'ruleRegex', key: '提示词' },
|
||||||
|
{ prop: 'description', key: '备注' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
// 2. 是 拆分规则
|
||||||
|
else if (content.ruleType.toString() === '2') {
|
||||||
|
this.tableDate.columns = [
|
||||||
|
{ prop: 'attribute', key: '属性' },
|
||||||
|
{ prop: 'attributeDesc', key: '属性描述' },
|
||||||
|
{ prop: 'keyword', key: '关键词' },
|
||||||
|
{ prop: 'example', key: '题词示例' },
|
||||||
|
{ prop: 'prompt', key: '提示词' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<!-- 开头的 form 表格 -->
|
<!-- 开头的 form 表格 -->
|
||||||
<el-form :model="form" label-width="100px">
|
<el-form :model="form" label-width="100px">
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="规则名称">
|
<el-form-item label="规则名称">
|
||||||
<el-input v-model="form.ruleName"></el-input>
|
<el-input v-model="form.ruleName"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12">
|
<el-col :span="12">
|
||||||
<el-form-item label="创建时间">
|
<el-form-item label="创建时间">
|
||||||
<el-input v-model="form.ruleName"></el-input>
|
<el-input v-model="form.createdDate"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-form>
|
</el-form>
|
||||||
<!-- 规则详情列表 -->
|
<!-- 规则详情列表 -->
|
||||||
<r-table :deletion="false"></r-table>
|
<r-table :deletion="false" :data="tableDate.data" :columns="tableDate.columns"></r-table>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style lang="css" scoped></style>
|
<style lang="css" scoped></style>
|
||||||
@@ -53,46 +53,44 @@ export default {
|
|||||||
<div class="track-container">
|
<div class="track-container">
|
||||||
<el-card>
|
<el-card>
|
||||||
<!-- 知识库信息 -->
|
<!-- 知识库信息 -->
|
||||||
<div>
|
<el-form :model="form" label-width="100px">
|
||||||
<el-form>
|
<el-row>
|
||||||
<el-row>
|
<el-col :span="8">
|
||||||
<el-col :span="8">
|
<el-form-item label="知识库">
|
||||||
<el-form-item label="知识库">
|
<el-select v-model="form.knowledge">
|
||||||
<el-select v-model="form.knowledge">
|
</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-select v-model="form.knowledgeName">
|
<el-select v-model="form.knowledgeName">
|
||||||
</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-select v-model="form.uploadUser">
|
<el-select v-model="form.uploadUser">
|
||||||
</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-select v-model="form.taskStatus">
|
<el-select v-model="form.taskStatus">
|
||||||
</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-date-picker v-model="form.taskTime" type="daterange" unlink-panels
|
<el-date-picker v-model="form.taskTime" type="daterange" unlink-panels range-separator="至"
|
||||||
range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
|
start-placeholder="开始日期" end-placeholder="结束日期">
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- 任务列表 -->
|
<!-- 任务列表 -->
|
||||||
<div>
|
<div>
|
||||||
@@ -117,7 +115,7 @@ export default {
|
|||||||
</el-table>
|
</el-table>
|
||||||
<!-- 弹出提示框, 里面是各种详情内容 -->
|
<!-- 弹出提示框, 里面是各种详情内容 -->
|
||||||
<el-dialog title="上传任务详情" :visible.sync="infoDialogVisible" width="50%"
|
<el-dialog title="上传任务详情" :visible.sync="infoDialogVisible" width="50%"
|
||||||
:before-close="() => infoDialogVisible = false">
|
:before-close="() => infoDialogVisible = false">
|
||||||
<knowledge-info :form="activeForm"></knowledge-info>
|
<knowledge-info :form="activeForm"></knowledge-info>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
@@ -126,8 +124,7 @@ export default {
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
|
||||||
.track-container {
|
.track-container {
|
||||||
padding: 20px 20px;
|
padding: 20px 20px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user