Commit 0a79756d by wanglizhen

知识库模块

parent 709d2046
import request from '@/utils/request'
/**
* 知识库 - 查询字典类型
* @param {*} query
* @returns
*/
export function dictinaryTypes(query) {
return request({
url: '/core/dictionary/getDictinaryTypes',
method: 'get',
params: query
})
}
/**
* 知识库 - 查询table数据
* @param {*} data
* @returns
*/
export function query(data) {
return request({
url: '/core/dictionary/query',
method: 'post',
data: data
})
}
/**
* 知识库 - 检测分类名称是否存在
* @param {*} query
* @returns
*/
export function checkNameExitType(query) {
return request({
url: '/core/dictionary/checkNameExitType',
method: 'get',
params: query
})
}
/**
* 知识库 - 添加修改分类
* @param {*} data
* @returns
*/
export function addDictionaryType(data) {
return request({
url: '/core/dictionary/addDictionaryType',
method: 'post',
data: data
})
}
/**
* 知识库 - 查询分类详情
* @param {*} data
* @returns
*/
export function initEditType(data) {
return request({
url: '/core/dictionary/initEditType',
method: 'post',
data: data
})
}
/**
* 知识库 - 删除分类
* @param {*} data
* @returns
*/
export function delDictionaryType(data) {
return request({
url: '/core/dictionary/delDictionaryType',
method: 'post',
data: data
})
}
/**
* 知识库 - 添加修改值
* @param {*} data
* @returns
*/
export function add(data) {
return request({
url: '/core/dictionary/add',
method: 'post',
data: data
})
}
/**
* 知识库 - 删除值
* @param {*} data
* @returns
*/
export function delValue(data) {
return request({
url: '/core/dictionary/del',
method: 'post',
data: data
})
}
......@@ -89,16 +89,18 @@ const collapseAdd = (item) => {
// 删除事件
const collapseDelete = (item) => {
console.log('删除事件', item)
const { name } = item
delData.value = item
modalData.show = true
modalData.icon = 'error'
modalData.text = '确认删除[' + item.name + ']?'
modalData.text = '确认删除[' + name + ']?'
}
// 删除回调
const modalConfirm = () => {
const { id } = delData.value
const data = {
relationid: delData.value.id
relationid: id
}
del(data).then(res => {
const { flag } = res
......@@ -133,9 +135,10 @@ const getQueryenc = () => {
queryenc({}).then((res) => {
const { data } = res;
encryptionList.value = data.map((item) => {
const { encryption_name, id } = item;
return {
value: item.id,
label: item.encryption_name,
value: id,
label: encryption_name,
};
});
});
......
......@@ -108,9 +108,10 @@ const getQuerysec = () => {
querysec({ encryption_id: form.value.encryption_id }).then((res) => {
const { data } = res;
secretkeyList.value = data.map((item) => {
const { id, secret_key_name } = item;
return {
value: item.id,
label: item.secret_key_name,
value: id,
label: secret_key_name,
};
});
});
......
<script setup lang="ts" name="AddClass">
import { onMounted, reactive, ref, toRefs, watch } from "vue";
import type { FormInstance } from "element-plus";
import { ElMessage } from "element-plus";
import { checkNameExitType, addDictionaryType, initEditType } from '@/api/ruleConfig/dictionary'
const props = defineProps<{
modelValue: boolean;
itemData: boolean;
type: string;
}>();
const emit = defineEmits(["update:modelValue", 'cancel','confirm']);
const emit = defineEmits(["cancel", "confirm"]);
const data = reactive({
rules: {},
form: <any>{
id: "",
remark: "",
typename: "",
},
rules: {
typename: [
{
required: true,
message: "请输入字典分类名称",
trigger: ["blur"],
},
],
},
});
const { rules } = toRefs(data);
const { form, rules } = toRefs(data);
const formRef = ref<FormInstance>();
// 重置
const reset = () => {
form.value = {
id: "",
remark: "",
typename: "",
};
};
// 取消
const cancel = () => {
if (props.type === 'edit') {
}else if (props.type === 'add') {
}
emit('cancel')
}
const cancel = () => {
emit("cancel");
};
const confirm = () => {
if (props.type === 'edit') {
formRef.value?.validate((valid) => {
if (valid) {
getcheckNameExitType()
} else {
}
});
};
// 检验数据域名称
const getcheckNameExitType = () => {
const data = {
typename: form.value.typename
}
emit('confirm')
checkNameExitType(data).then(res => {
const { flag, data } = res
if (flag) {
addDictionaryTypeFun()
}
})
}
// 添加数据域
const addDictionaryTypeFun = () => {
addDictionaryType({dictionaryType: form.value}).then(res => {
const { flag } = res
if (flag) {
ElMessage.success(props.type === "add" ? "新增成功" : "修改成功");
emit("confirm");
reset()
}
})
}
const getInitEditType = (id) => {
initEditType({ typeId: id }).then(res => {
const { flag, data } = res
const { tConsoleDictionarytype } = data
const { id, remark, typename } = tConsoleDictionarytype
if (flag) {
form.value.id = id
form.value.remark = remark
form.value.typename = typename
}
})
}
watch(
() => props.itemData,
(newVal) => {
if (props.type === "edit" && props.itemData) {
const { id } = JSON.parse(JSON.stringify(props.itemData));
getInitEditType(id)
}
},
{ deep: true, immediate: true }
);
</script>
<template>
<div>
<el-form ref="formRef" :model="modelValue" label-width="100px">
<el-form-item label="字典分类" required>
<el-input v-model="modelValue.name" placeholder="请输入字典分类"></el-input>
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-form-item label="字典分类" prop="typename" required>
<el-input v-model="form.typename" placeholder="请输入字典分类"></el-input>
</el-form-item>
<el-form-item label="备注">
<el-input type="textarea" v-model="modelValue.name" placeholder="请输入备注" rows="2" maxlength="200" show-word-limit></el-input>
<el-input type="textarea" v-model="form.remark" placeholder="请输入备注" rows="2" maxlength="200"
show-word-limit></el-input>
</el-form-item>
</el-form>
<div class="btn">
......@@ -57,4 +129,9 @@ const confirm = () => {
display: flex;
justify-content: center;
}
:deep(.el-form-item__error) {
left: auto;
right: 30px;
top: 24%;
}
</style>
\ No newline at end of file
<script setup lang="ts" name="AddValue">
import { onMounted, reactive, ref, toRefs, watch } from "vue";
import type { FormInstance } from "element-plus";
import { ElMessage } from "element-plus";
import { add } from "@/api/ruleConfig/dictionary";
const props = defineProps<{
modelValue: boolean;
itemData: boolean;
type: string;
classDict: any;
}>();
const emit = defineEmits(["update:modelValue", 'cancel', 'confirm']);
const emit = defineEmits(["cancel", "confirm"]);
const data = reactive({
rules: {},
form: <any>{
id: null,
name: "",
parentid: "",
parentvalue: "",
typecode: "",
typename: "",
value: "",
},
rules: {
value: [
{
required: true,
message: "请输入值",
trigger: ["blur"],
},
],
},
});
const { rules } = toRefs(data);
const { form, rules } = toRefs(data);
const formRef = ref<FormInstance>();
const classDictList = ref<any[]>([]);
// 重置
const reset = () => {
form.value = {
id: null,
name: "",
parentid: "",
parentvalue: "",
typecode: "",
typename: "",
value: "",
};
};
// 取消
const cancel = () => {
if (props.type === 'edit') {
} else if (props.type === 'add') {
}
emit('cancel')
}
emit("cancel");
};
const confirm = () => {
if (props.type === 'edit') {
} else if (props.type === 'add') {
formRef.value?.validate((valid) => {
if (valid) {
addFunc();
} else {
}
});
};
}
emit('confirm')
}
// 添加数据域
const addFunc = () => {
add({ dictionary: form.value }).then((res) => {
const { flag } = res;
if (flag) {
ElMessage.success(props.type === "add" ? "新增成功" : "修改成功");
emit("confirm");
reset();
}
});
};
watch(
() => props.itemData,
(newVal) => {
if (props.itemData) {
const data = JSON.parse(JSON.stringify(props.itemData))
form.value = {...form.value, ...data}
}
},
{ deep: true, immediate: true }
);
watch(
() => props.classDict,
(newVal) => {
classDictList.value = props.classDict;
},
{ deep: true, immediate: true }
);
</script>
<template>
<div>
<el-form ref="formRef" :model="modelValue" label-width="70px" :disabled="readOnly">
<el-form ref="formRef" :model="form" :rules="rules" label-width="70px">
<el-form-item label="字典分类">
<el-select v-model="modelValue.name" v-if="!readOnly" placeholder="请选择字典分类">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
<el-select v-model="form.typecode" placeholder="请选择字典分类">
<el-option v-for="item in classDictList" :key="item.value" :label="item.text" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="值" required>
<el-input v-model="modelValue.name" placeholder="请输入值"></el-input>
<el-form-item label="值" prop="value" required>
<el-input v-model="form.value" placeholder="请输入值"></el-input>
</el-form-item>
<el-form-item label="名称" required>
<el-input v-model="modelValue.name" placeholder="请输入名称"></el-input>
<el-form-item label="名称">
<el-input v-model="form.name" placeholder="请输入名称"></el-input>
</el-form-item>
<el-form-item label="父值" required>
<el-input v-model="modelValue.name" placeholder="请输入父值"></el-input>
<el-form-item label="父值">
<el-input v-model="form.parentvalue" placeholder="请输入父值"></el-input>
</el-form-item>
</el-form>
<div class="btn">
......@@ -68,4 +129,9 @@ const confirm = () => {
display: flex;
justify-content: center;
}
:deep(.el-form-item__error) {
left: auto;
right: 30px;
top: 24%;
}
</style>
\ No newline at end of file
......@@ -99,33 +99,33 @@ const collapseAdd = (item) => {
// 删除发现规则
const collapseDelete = (item) => {
console.log('删除发现规则', item)
const { name } = item
delData.value = item
modalData.type = 'rules'
modalData.cancel = true
modalData.icon = 'error'
modalData.text = '删除后无法恢复,是否确认删除[' + item.name + ']?'
modalData.text = '删除后无法恢复,是否确认删除[' + name + ']?'
modalData.show = true
}
// 删除数据域
const collapseMainDeletion = (item) => {
console.log('删除数据域事件', item)
const { dataarea } = item
delData.value = item
modalData.type = 'domain'
modalData.cancel = false
modalData.icon = 'error'
modalData.text = '删除后无法恢复,是否确认删除[' + item.dataarea + ']?'
modalData.text = '删除后无法恢复,是否确认删除[' + dataarea + ']?'
modalData.show = true
}
// 提示回调
const modalConfirm = () => {
if (modalData.type === 'domain') {
console.log('删除数据域确认')
const { id, dataarea } = delData.value
const data = {
areaid: delData.value.id,
areaname: delData.value.dataarea
areaid: id,
areaname: dataarea
}
delDataArea(data).then(res => {
const { flag } = res
......@@ -137,11 +137,11 @@ const modalConfirm = () => {
}
})
} else if (modalData.type === 'rules') {
console.log('删除发现规则确认')
const { ruleid, name, tid } = delData.value
const data = {
ruleid: delData.value.ruleid,
rulename: delData.value.name,
tid: delData.value.tid
ruleid: ruleid,
rulename: name,
tid: tid
}
delRule(data).then(res => {
const { flag } = res
......@@ -153,10 +153,10 @@ const modalConfirm = () => {
}
})
} else if (modalData.type === 'default') {
console.log('设置默认项')
const { ruleid, name } = delData.value
const data = {
ruleid: delData.value.ruleid,
rulename: delData.value.name,
ruleid: ruleid,
rulename: name,
}
setdefault(data).then(res => {
const { flag } = res
......@@ -192,21 +192,20 @@ const collapseChange = (item) => {
// 发现规则设置默认项
const collapseDefault = (item) => {
const { name } = item
delData.value = item
modalData.type = 'default'
modalData.cancel = false
modalData.icon = 'error'
modalData.text = '确定设置[' + item.name + ']为默认规则?'
modalData.text = '确定设置[' + name + ']为默认规则?'
modalData.show = true
}
// 新增确认
const AddFormConfirm = (item) => {
if (modalPopData.type === 'domain') {
console.log('新增数据域确认', item)
getCollapse()
} else if (modalPopData.type === 'rules') {
console.log('新增发现规则确认', item)
getCollapse()
}
modalPopData.show = false
......
......@@ -31,9 +31,16 @@ const readOnly = ref(true);
const formRef = ref<FormInstance>();
watch(
() => [props.type, props.itemData],
() => props.type,
(newVal) => {
readOnly.value = props.type === 'edit' ? true : false;
},
{ deep: true, immediate: true }
);
watch(
() => props.itemData,
(newVal) => {
if (props.type === 'edit' && props.itemData) {
form.value = JSON.parse(JSON.stringify(props.itemData))
}
......@@ -127,4 +134,9 @@ const addDataAreaFun = () => {
display: flex;
justify-content: center;
}
:deep(.el-form-item__error) {
left: auto;
right: 30px;
top: 24%;
}
</style>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论