From 8a06a8bc75720329a97528e2815ec4a2a8ae25e5 Mon Sep 17 00:00:00 2001
From: liulingling.177216 <liulingling@halosee.com>
Date: 星期六, 18 一月 2025 21:43:44 +0800
Subject: [PATCH] 添加了知识库页面,联调增删改查
---
zhitan-vue/vite.config.js | 6
zhitan-vue/src/api/policy/knowledgeBase.js | 48 +++++++++
zhitan-vue/src/views/policy/knowledgebase/components/EditModal.vue | 100 ++++++++++++++++++++
zhitan-vue/src/views/policy/knowledgebase/knowledgeBase.vue | 130 ++++++++++++++++++++++++++
4 files changed, 281 insertions(+), 3 deletions(-)
diff --git a/zhitan-vue/src/api/policy/knowledgeBase.js b/zhitan-vue/src/api/policy/knowledgeBase.js
new file mode 100644
index 0000000..0b7bbd2
--- /dev/null
+++ b/zhitan-vue/src/api/policy/knowledgeBase.js
@@ -0,0 +1,48 @@
+import request from '@/utils/request'
+
+
+
+
+// 鑾峰彇鍒楄〃
+export function knowledgeBaseList(params) {
+ return request({
+ url: '/knowledgeBase/page',
+ method: 'get',
+ params
+ })
+}
+
+// 鏂板
+export function knowledgeBaseAdd(data) {
+ return request({
+ url: '/knowledgeBase/add',
+ method: 'post',
+ data
+ })
+}
+
+// 鏌ヨ鎯�
+export function knowledgeBaseInfo(params) {
+ return request({
+ url: `/knowledgeBase/detail/${params.id}`,
+ method: 'get',
+ params
+ })
+}
+
+// 缂栬緫
+export function knowledgeBaseEdit(data) {
+ return request({
+ url: '/knowledgeBase/edit',
+ method: 'put',
+ data
+ })
+}
+
+//鍒犻櫎
+export function knowledgeBaseDel(id) {
+ return request({
+ url: '/knowledgeBase/delete/' + id,
+ method: 'delete',
+ })
+}
\ No newline at end of file
diff --git a/zhitan-vue/src/views/policy/knowledgebase/components/EditModal.vue b/zhitan-vue/src/views/policy/knowledgebase/components/EditModal.vue
new file mode 100644
index 0000000..99ef2df
--- /dev/null
+++ b/zhitan-vue/src/views/policy/knowledgebase/components/EditModal.vue
@@ -0,0 +1,100 @@
+<template>
+ <el-dialog v-model="visible" :title="title" width="600" @close="handleClose">
+ <el-form :model="form" ref="queryRef" :rules="formRules" label-width="120px" v-loading="loading">
+ <el-form-item label="鏍囬" prop="title">
+ <el-input v-model="form.title" placeholder="璇疯緭鍏ユ爣棰�" />
+ </el-form-item>
+ <el-form-item label="鑳芥簮绫诲瀷" prop="type">
+ <el-select v-model="form.type" placeholder="璇烽�夋嫨">
+ <el-option v-for="(item, index) in props.types" :key="index" :label="item.label"
+ :value="item.value">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鍐呭" prop="content">
+ <el-input v-model="form.content" placeholder="璇疯緭鍏ュ唴瀹�" />
+ </el-form-item>
+ </el-form>
+ <div slot="footer" class="text-right">
+ <el-button type="primary" @click="submitForm" :loading="loading">纭� 瀹�</el-button>
+ <el-button @click="handleClose">鍙� 娑�</el-button>
+ </div>
+ </el-dialog>
+</template>
+
+<script setup>
+import { knowledgeBaseAdd, knowledgeBaseEdit } from '@/api/policy/knowledgeBase'
+const { proxy } = getCurrentInstance();
+let props = defineProps(['types'])
+
+
+let visible = ref(false)
+let title = ref('')
+let loading = ref(false)
+let form = ref({
+ title: '',
+ content: '',
+ type: 0,
+ url:[]
+})
+let emit = defineEmits(['getList'])
+const formRules = {
+ title: [{ required: true, trigger: "blur", message: "璇疯緭鍏ユ爣棰�" }],
+ content: [{ required: true, trigger: "blur", message: "璇疯緭鍏ュ唴瀹�" }],
+}
+
+function submitForm() {
+ proxy.$refs.queryRef.validate(valid => {
+ if (valid) {
+ loading.value = true;
+ let obj = form.value.id ? knowledgeBaseEdit(form.value) : knowledgeBaseAdd(form.value)
+ obj.then((res) => {
+ if (res.code == 200) {
+ proxy.$modal.msgSuccess(res.msg);
+ emit('getList')
+ } else {
+ proxy.$modal.msgError(res.msg);
+ }
+
+ }).catch((err) => {
+
+ }).finally(() => {
+ handleClose()
+ });
+ }
+ })
+}
+
+
+
+
+
+function handleOpen(row) {
+ if (row && row.id) {
+ title.value = "缂栬緫鐭ヨ瘑搴�"
+ form.value = JSON.parse(JSON.stringify(row))
+ } else {
+ title.value = "娣诲姞鐭ヨ瘑搴�"
+ }
+ visible.value = true
+}
+
+function handleClose(value) {
+ visible.value = false
+ loading.value = false
+ proxy.$refs.queryRef.resetFields()
+ form.value = {
+ title: '',
+ content: '',
+ type: 0,
+ url:[]
+ }
+}
+
+defineExpose({ handleOpen })
+
+</script>
+
+
+
+<style lang="scss" scoped></style>
diff --git a/zhitan-vue/src/views/policy/knowledgebase/knowledgeBase.vue b/zhitan-vue/src/views/policy/knowledgebase/knowledgeBase.vue
new file mode 100644
index 0000000..508ca50
--- /dev/null
+++ b/zhitan-vue/src/views/policy/knowledgebase/knowledgeBase.vue
@@ -0,0 +1,130 @@
+<template>
+ <div class="page">
+ <div class="form-card">
+ <el-form :model="queryParams" ref="queryRef" :inline="true" label-width="120px">
+ <el-form-item label="鏍囬">
+ <el-input v-model="queryParams.title" placeholder="璇疯緭鍏ユ爣棰�" />
+ </el-form-item>
+ <el-form-item label="鑳芥簮绫诲瀷">
+ <el-select v-model="queryParams.type" placeholder="璇烽�夋嫨鑳芥簮绫诲瀷" style="width: 100%">
+ <el-option v-for="dict in types" :key="dict.value"
+ :label="dict.label" :value="dict.value" />
+ </el-select>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button>
+ <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
+ </el-form-item>
+ </el-form>
+ </div>
+
+ <div class="table-bg-style">
+ <div class="theme-dark-mt20 mb20 ml20">
+ <el-button type="primary" icon="plus" @click="handleAdd">鏂板</el-button>
+ <!-- <el-button type="primary" icon="Delete">鍒犻櫎</el-button> -->
+ </div>
+ <div class="table-box">
+ <el-table :data="tableData" v-loading="loading">
+ <el-table-column prop="title" label="鏍囬" show-overflow-tooltip align="center" />
+ <el-table-column prop="typeDesc" label="鑳芥簮绫诲瀷" show-overflow-tooltip align="center" />
+ <el-table-column prop="content" label="鍐呭" show-overflow-tooltip align="center" />
+ <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" show-overflow-tooltip align="center" />
+ <el-table-column label="鎿嶄綔" width="300" align="center">
+ <template #default="scope">
+ <el-button link type="primary" icon="Edit" @click="handleAdd(scope.row)"> 淇敼 </el-button>
+ <el-button link type="primary" icon="Delete" @click="handleDel(scope.row)"> 鍒犻櫎 </el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <pagination
+ v-show="total > 0"
+ :total="total"
+ v-model:page="queryParams.pageNum"
+ v-model:limit="queryParams.pageSize"
+ @pagination="getList"
+ />
+ </div>
+ </div>
+ <edit-modal ref="EditModalRef" @getList="getList" :types="types" />
+ </div>
+</template>
+
+<script setup>
+ import EditModal from "./components/EditModal.vue"
+import { knowledgeBaseList, knowledgeBaseDel } from "@/api/policy/knowledgeBase"
+let { proxy } = getCurrentInstance()
+const types = ref([
+ { label: "鐢�", value: 0 },
+ { label: "姘�", value: 1 },
+ { label: "澶╃劧姘�", value: 2 },
+ { label: "钂告苯", value: 3 },
+]);
+let loading = ref(false)
+let total = ref(0)
+let tableData = ref([])
+let queryParams = ref({
+ title: "",
+ type:0,
+ pageNum: 1,
+ pageSize: 10,
+})
+
+function getList() {
+ loading.value = true
+ knowledgeBaseList(queryParams.value).then((res) => {
+ console.log(res.rows)
+ tableData.value = res.rows
+ total.value = res.total
+ loading.value = false
+ })
+}
+
+getList()
+
+let EditModalRef = ref("")
+function handleAdd(row) {
+ if (EditModalRef.value) {
+ EditModalRef.value.handleOpen(row)
+ }
+}
+
+function handleDel(row) {
+ proxy.$modal
+ .confirm("鏄惁纭鍒犻櫎鏁版嵁椤�?")
+ .then(function () {
+ return knowledgeBaseDel(row.id)
+ })
+ .then(() => {
+ getList()
+ proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛")
+ })
+ .catch(() => {})
+}
+
+function handleQuery() {
+ queryParams.value.pageNum = 1
+ getList()
+}
+
+function resetQuery() {
+ queryParams.value = {
+ title: "",
+ type:0 ,
+ pageNum: 1,
+ pageSize: 10,
+ }
+ getList()
+}
+</script>
+
+<style lang="scss" scoped>
+@import "@/assets/styles/page.scss";
+
+.header-box {
+ :deep .el-form-item__content {
+ color: #fff;
+ font-size: 16px;
+ }
+}
+</style>
diff --git a/zhitan-vue/vite.config.js b/zhitan-vue/vite.config.js
index dcba260..7d7f8c7 100644
--- a/zhitan-vue/vite.config.js
+++ b/zhitan-vue/vite.config.js
@@ -30,10 +30,10 @@
open: true,
proxy: {
// https://cn.vitejs.dev/config/#server-proxy
- '/dev-api': {
- target: 'http://127.0.0.1:8080',
+ '/prod-api': {
+ target: 'https://demo-ems.zhitancloud.com/prod-api',
changeOrigin: true,
- rewrite: (p) => p.replace(/^\/dev-api/, '')
+ rewrite: (p) => p.replace(/^\/prod-api/, '')
}
}
},
--
Gitblit v1.9.3