zhitan-vue/src/api/policy/knowledgeBase.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zhitan-vue/src/views/policy/knowledgebase/components/EditModal.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zhitan-vue/src/views/policy/knowledgebase/knowledgeBase.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
zhitan-vue/vite.config.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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', }) } 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> 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> 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/, '') } } },