!25 知识库
Merge pull request !25 from liulingling1993/lll0118
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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: 'post', |
| | | data |
| | | }) |
| | | } |
| | | |
| | | //å é¤ |
| | | export function knowledgeBaseDel(id) { |
| | | return request({ |
| | | url: '/knowledgeBase/delete/' + id, |
| | | method: 'delete', |
| | | }) |
| | | } |
| | |
| | | |
| | | <script setup> |
| | | import { getToken } from "@/utils/auth"; |
| | | |
| | | const props = defineProps({ |
| | | modelValue: [String, Object, Array], |
| | | // æ°ééå¶ |
| | |
| | | size="large" |
| | | auto-complete="off" |
| | | placeholder="å¯ç " |
| | | show-password |
| | | @keyup.enter="handleLogin" |
| | | > |
| | | <template #prefix><svg-icon icon-class="password" class="el-input__icon input-icon" /></template> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-dialog v-model="visible" :title="title" width="600" @close="handleClose"> |
| | | <el-form :model="form" ref="queryRef" :rules="formRules" label-width="100px" 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="è¯·éæ©" style="width: 100%;"> |
| | | <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-item label="éä»¶" prop="url"> |
| | | <FileUpload></FileUpload> |
| | | </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: null, |
| | | url:[] |
| | | }) |
| | | let emit = defineEmits(['getList']) |
| | | const formRules = { |
| | | title: [{ required: true, trigger: "blur", message: "请è¾å
¥æ é¢" }], |
| | | type: [{ required: true, trigger: "change", 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: null, |
| | | url:[] |
| | | } |
| | | } |
| | | |
| | | defineExpose({ handleOpen }) |
| | | |
| | | </script> |
| | | |
| | | |
| | | |
| | | <style lang="scss" scoped></style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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="请è¾å
¥æ é¢" clearable/> |
| | | </el-form-item> |
| | | <el-form-item label="è½æºç±»å"> |
| | | <el-select v-model="queryParams.type" placeholder="è¯·éæ©è½æºç±»å" style="width: 100%" clearable> |
| | | <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:null, |
| | | 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:null, |
| | | 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> |
| | |
| | | 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/, '') |
| | | } |
| | | } |
| | | }, |