From 3a6561c938b159c3da0d26785ef7246760acd83d Mon Sep 17 00:00:00 2001 From: "du.meimei" Date: Tue, 22 Apr 2025 14:47:51 +0800 Subject: [PATCH 01/10] =?UTF-8?q?feat(system):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增用户管理、部门管理和角色管理页面 - 实现用户列表查询、用户新增、编辑和删除功能 - 添加部门列表查询功能 - 实现角色列表查询功能 - 新增用户对话框组件用于用户信息录入 - 添加重置密码对话框组件用于修改用户密码 - 新增系统管理相关API接口 --- src/api/generatedApi/system.js | 298 ++++++++++++++ src/router/generatedRouter/index.js | 40 ++ src/views/system/department/index.vue | 115 ++++++ src/views/system/role/index.vue | 140 +++++++ .../user/components/ResetPasswordDialog.vue | 102 +++++ .../system/user/components/UserDialog.vue | 203 ++++++++++ src/views/system/user/index.vue | 380 ++++++++++++++++++ 7 files changed, 1278 insertions(+) create mode 100644 src/api/generatedApi/system.js create mode 100644 src/views/system/department/index.vue create mode 100644 src/views/system/role/index.vue create mode 100644 src/views/system/user/components/ResetPasswordDialog.vue create mode 100644 src/views/system/user/components/UserDialog.vue create mode 100644 src/views/system/user/index.vue diff --git a/src/api/generatedApi/system.js b/src/api/generatedApi/system.js new file mode 100644 index 0000000..26e516a --- /dev/null +++ b/src/api/generatedApi/system.js @@ -0,0 +1,298 @@ +import request from '@/assets/js/utils/request' +import getUrl from '@/assets/js/utils/get-url' + +// 用户新增 +export function addUser(data) { + return request({ + url: getUrl('/sysUser/create'), + method: 'post', + data + }) +} +//用户编辑 +export function updateUser(data) { + return request({ + url: getUrl('/sysUser/update'), + method: 'post', + data + }) +} +// 用户删除 +export function deleteUser(data) { + return request({ + url: getUrl('/sysUser/delete'), + method: 'post', + data + }) +} +// 查询用户详情 +export function queryUserDetail(params) { + return request({ + url: getUrl('/sysUser/query'), + method: 'get', + params: params + }) +} +// 用户分页查询 +export function getUserPage(data) { + return request({ + url: getUrl('/sysUser/page'), + method: 'post', + data + }) +} +// 修改用户状态 +export function changeUserStatus(params) { + return request({ + url: getUrl('/sysUserEx/changeUserStatus'), + method: 'get', + params: params + }) +} +// 重置密码 +export function updatePassword(data) { + return request({ + url: getUrl(`/sysUser/updatePassword`), + method: 'post', + data + }) +} + +export function datasetsExTaskPages(data) { + return request({ + url: getUrl(`/datasetDocumentEx/taskPage`), + method: 'post', + data + }) +} + +//minerU 获取bbox +export function minerUBbox(params) { + return request({ + url: getUrl('/document/mineru/bbox_json'), + method: 'get', + params: params + }) +} +//minerU 重试 +export function minerURetry(params) { + return request({ + url: getUrl('/document/mineru/retry'), + method: 'get', + params: params, + noLoading: true + }) +} +//minerU 获取文档处理状态 +export function minerUQuery(params) { + return request({ + url: getUrl('/dataset/document/query'), + method: 'get', + params: params, + noLoading: true + }) +} +//minerU 获取markdown +export function minerUMarkDown(params) { + return getUrl(`/document/mineru/md?documentId=${params.documentId}`) +} + +// minerU 获取pdf +export function getPdfUrl(params) { + return getUrl(`/datasetDocumentEx/preview?id=${params.documentId}`) +} + +export function minerUMarkDownUpdate(data) { + return request({ + url: getUrl(`/document/mineru/md/update`), + method: 'post', + data + }) +} +// 规则分页 +export function getRulesPage(data) { + return request({ + url: getUrl(`/rules/page`), + method: 'post', + data + }) +} +export function getRulesList(data) { + return request({ + url: getUrl(`/rules/list`), + method: 'post', + data + }) +} +// 拆分规则-新增 +export function addRuleSplit(data) { + return request({ + url: getUrl(`/ruleDocSplitEx/create`), + method: 'post', + data + }) +} +// 拆分规则-详情 +export function getRuleDetail(id) { + return request({ + url: getUrl(`/rulesEx/query?id=${id}`), + method: 'get' + }) +} +// 拆分规则-编辑 +export function updateRuleSplit(data) { + return request({ + url: getUrl(`/ruleDocSplitEx/update`), + method: 'post', + data + }) +} +// 拆分规则-下一步校验 +export function execSplit(data) { + return request({ + url: getUrl(`/datasetDocumentEx/execSplit`), + method: 'post', + data + }) +} +// 拆分结果预览 +export function splitResultPreview(params) { + return request({ + url: getUrl(`/datasetDocumentEx/split/preview`), + method: 'get', + params: params + }) +} +// 题词-新增 +export function addRuleExtract(data) { + return request({ + url: getUrl(`/ruleAttributeExtractEx/create`), + method: 'post', + data + }) +} +// 题词-编辑 +export function updateRuleExtractSplit(data) { + return request({ + url: getUrl(`/ruleAttributeExtractEx/update`), + method: 'post', + data + }) +} +// 题词-下一步校验 +export function execExtract(data) { + return request({ + url: getUrl(`/datasetDocumentEx/execExtract`), + method: 'post', + data + }) +} + +// 题词-查询题词结果详情 +export function getExtractResultList(data) { + return request({ + url: getUrl(`/document/attribute/extract/result/list`), + method: 'post', + data + }) +} + +// 题词-保存 +export function saveContentToDocument(data) { + return request({ + url: getUrl(`/datasetDocumentEx/saveContentToDocument`), + method: 'post', + data + }) +} +//知识库文件上传-自定义 +export function uploadFileByCustom(data) { + return request({ + url: getUrl(`/datasetDocumentEx/uploadFileByCustom`), + method: 'post', + data, + headers: { + 'Content-Type': 'multipart/form-data' + } + }) +} +//知识库文件上传-通用 +export function uploadFileByTemplate(data) { + return request({ + url: getUrl(`/datasetDocumentEx/uploadFileByTemplate`), + method: 'post', + data, + headers: { + 'Content-Type': 'multipart/form-data' + } + }) +} + +// 知识库文件详情 +export function datasetQuerySegments(data) { + return request({ + url: getUrl(`/datasetDocumentEx/querySegments`), + method: 'get', + params: data + }) +} +// 知识文档详情查询(包含json的题词和拆分规则) +export function datasetDocumentEx(data) { + return request({ + url: getUrl(`/datasetDocumentEx/query`), + method: 'get', + params: data + }) +} +// 任务轨迹查看详情 +export function getTaskDetail(params) { + return request({ + url: getUrl(`/datasetDocumentEx/query`), + method: 'get', + params + }) +} +// 知识库文件删除 +export function datasetQueryDelete(data) { + return request({ + url: getUrl(`/datasetDocumentEx/delete?documentId=${data.id}`), + method: 'delete' + }) +} + +export function queryTask(params) { + return request({ + url: getUrl(`/datasetDocumentEx/queryTask`), + method: 'get', + params + }) +} + +// 识别页面表格 + +export function imageRetry(data) { + return request({ + url: getUrl(`/document/mineru/img/retry`), + method: 'post', + data, + noLoading: true + }) +} + +export function getMd_info(params) { + return request({ + url: getUrl(`/document/mineru/md_info`), + method: 'get', + params, + noLoading: true + }) +} +export function mdIndex(params) { + return request({ + url: getUrl(`/document/mineru/md`), + method: 'get', + params, + noLoading: true, + back: true + }) +} diff --git a/src/router/generatedRouter/index.js b/src/router/generatedRouter/index.js index 9138200..f5b6f89 100644 --- a/src/router/generatedRouter/index.js +++ b/src/router/generatedRouter/index.js @@ -137,5 +137,45 @@ export default [ ] } ] + }, + { + path: '/system', + name: 'system', + component: layout, + redirect: '/system/user', + meta: { + title: '系统管理', + icon: 'el-icon-setting', + affix: true + }, + children: [ + { + path: '/system/user', + name: 'system-user', + component: () => import('@/views/system/user/index.vue'), + meta: { + title: '用户管理', + icon: 'el-icon-user' + } + }, + { + path: '/system/department', + name: 'system-department', + component: () => import('@/views/system/department/index.vue'), + meta: { + title: '部门管理', + icon: 'el-icon-office-building' + } + }, + { + path: '/system/role', + name: 'system-role', + component: () => import('@/views/system/role/index.vue'), + meta: { + title: '角色管理', + icon: 'el-icon-s-custom' + } + } + ] } ] diff --git a/src/views/system/department/index.vue b/src/views/system/department/index.vue new file mode 100644 index 0000000..632fb7d --- /dev/null +++ b/src/views/system/department/index.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue new file mode 100644 index 0000000..a729bbb --- /dev/null +++ b/src/views/system/role/index.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/src/views/system/user/components/ResetPasswordDialog.vue b/src/views/system/user/components/ResetPasswordDialog.vue new file mode 100644 index 0000000..faf7e54 --- /dev/null +++ b/src/views/system/user/components/ResetPasswordDialog.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/src/views/system/user/components/UserDialog.vue b/src/views/system/user/components/UserDialog.vue new file mode 100644 index 0000000..3a9a6de --- /dev/null +++ b/src/views/system/user/components/UserDialog.vue @@ -0,0 +1,203 @@ + + + + + diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue new file mode 100644 index 0000000..f380678 --- /dev/null +++ b/src/views/system/user/index.vue @@ -0,0 +1,380 @@ + + + + + From 2fe9ab3ca18e961bf803cc9bbd14a63e390a2987 Mon Sep 17 00:00:00 2001 From: "du.meimei" Date: Wed, 23 Apr 2025 09:29:10 +0800 Subject: [PATCH 02/10] css --- src/assets/sass/utils.scss | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/src/assets/sass/utils.scss b/src/assets/sass/utils.scss index 85870d2..9bfd3c1 100644 --- a/src/assets/sass/utils.scss +++ b/src/assets/sass/utils.scss @@ -38,13 +38,13 @@ .fs22 { font-size: 22px; } -h1{ +h1 { font-size: 38px; } -h2{ +h2 { font-size: 30px; } -h3{ +h3 { font-size: 24px; } //.bg-title{ @@ -135,24 +135,23 @@ h3{ color: #000000; } - -.app-main{ +.app-main { //background: #eeeeee; } -.button-container{ +.button-container { margin-bottom: 10px; text-align: right; } -.container{ +.container { padding: 25px 15px 50px; //margin: 15px; background: #fff; } -.el-select{ +.el-select { width: 100%; } .c-gray-dark { - color: #4A4A4A; + color: #4a4a4a; } .c-gray-base { @@ -160,23 +159,23 @@ h3{ } .c-gray-light { - color: #9E9E9E; + color: #9e9e9e; } .c-gray-lighter { - color: #B1B1B1; + color: #b1b1b1; } .c-blue-base { - color: #0069B7; + color: #0069b7; } .c-blue-light { - color: #78A6DC; + color: #78a6dc; } .c-gray { - color: #DEDCDC; + color: #dedcdc; } // 文字位置设置 @@ -247,7 +246,6 @@ h3{ background: $white !important; } - // 设置光标样式 .pointer { cursor: pointer !important; @@ -263,7 +261,7 @@ h3{ } // 底部固定 -.fixed-button{ +.fixed-button { position: fixed; bottom: 0; width: 100%; From c15f2961757365480e1551a401d8892c00f7b6e5 Mon Sep 17 00:00:00 2001 From: "wu.jifen" Date: Wed, 23 Apr 2025 15:20:31 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E8=A7=92=E8=89=B2=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/system/role.js | 44 ++++ .../system/role/components/RoleDialog.vue | 135 +++++++++++ src/views/system/role/index.vue | 225 +++++++++++++----- 3 files changed, 345 insertions(+), 59 deletions(-) create mode 100644 src/api/system/role.js create mode 100644 src/views/system/role/components/RoleDialog.vue diff --git a/src/api/system/role.js b/src/api/system/role.js new file mode 100644 index 0000000..8fda311 --- /dev/null +++ b/src/api/system/role.js @@ -0,0 +1,44 @@ +import request from '@/assets/js/utils/request' +import getUrl from '@/assets/js/utils/get-url' + +// 角色新增 +export function addRole(data) { + return request({ + url: getUrl('/sysRole/create'), + method: 'post', + data + }) +} + +//角色编辑 +export function updateRole(data) { + return request({ + url: getUrl('/sysRole/update'), + method: 'post', + data + }) +} +// 角色删除 +export function deleteRole(data) { + return request({ + url: getUrl('/sysRole/delete'), + method: 'post', + data + }) +} +// 查询角色详情 +export function queryRoleDetail(params) { + return request({ + url: getUrl('/sysRole/query'), + method: 'get', + params: params + }) +} +// 角色分页查询 +export function getRolePage(data) { + return request({ + url: getUrl('/sysRole/page'), + method: 'post', + data + }) +} diff --git a/src/views/system/role/components/RoleDialog.vue b/src/views/system/role/components/RoleDialog.vue new file mode 100644 index 0000000..7210772 --- /dev/null +++ b/src/views/system/role/components/RoleDialog.vue @@ -0,0 +1,135 @@ + + + + + diff --git a/src/views/system/role/index.vue b/src/views/system/role/index.vue index a729bbb..7949112 100644 --- a/src/views/system/role/index.vue +++ b/src/views/system/role/index.vue @@ -5,105 +5,183 @@ - - - - - - + + - - - - - - - + + + + 查询 重置 + 新增 - - - - - - - - - - - - - - + + + + + diff --git a/src/views/intelligent-agent/index.vue b/src/views/intelligent-agent/index.vue new file mode 100644 index 0000000..d5ac28a --- /dev/null +++ b/src/views/intelligent-agent/index.vue @@ -0,0 +1,179 @@ + + + + + \ No newline at end of file From 72bce3b71b7b8ef13f498ae69618e2d583f64ccc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=98=B1=E8=BE=BE?= Date: Wed, 23 Apr 2025 16:48:14 +0800 Subject: [PATCH 10/10] =?UTF-8?q?refactor(knowledge):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E7=9F=A5=E8=AF=86=E5=BA=93=E7=9B=B8=E5=85=B3=E7=BB=84=E4=BB=B6?= =?UTF-8?q?=E7=9A=84=E6=A0=B7=E5=BC=8F=E5=92=8C=E5=8A=9F=E8=83=BD-=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8C=89=E9=92=AE=E6=A0=B7=E5=BC=8F=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=9B=BE=E6=A0=87=E5=B9=B6=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E6=96=87=E5=AD=97=20-=20=E4=BC=98=E5=8C=96=E8=A1=A8=E6=A0=BC?= =?UTF-8?q?=E6=B8=B2=E6=9F=93=E9=80=BB=E8=BE=91=EF=BC=8C=E6=8F=90=E9=AB=98?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E7=81=B5=E6=B4=BB=E6=80=A7=20-=E7=BB=9F?= =?UTF-8?q?=E4=B8=80=E4=BD=BF=E7=94=A8=20outline=20=E5=9B=BE=E6=A0=87?= =?UTF-8?q?=E9=A3=8E=E6=A0=BC-=20=E4=BF=AE=E5=A4=8D=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E6=A1=86=E5=9B=9E=E8=BD=A6=E4=BA=8B=E4=BB=B6=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RenderTable/component/bodySlot/index.vue | 18 ++++--- .../components/split/CustomSplitDialog.vue | 49 +++++++++---------- .../detail/components/words/CustomWords.vue | 49 +++++++++---------- src/views/knowledge/detail/index.vue | 2 +- src/views/knowledge/index.vue | 2 +- 5 files changed, 59 insertions(+), 61 deletions(-) diff --git a/src/components/RenderTable/component/bodySlot/index.vue b/src/components/RenderTable/component/bodySlot/index.vue index 0f208af..c5b141d 100644 --- a/src/components/RenderTable/component/bodySlot/index.vue +++ b/src/components/RenderTable/component/bodySlot/index.vue @@ -18,8 +18,8 @@ const RenderSlot = { { props: { placement: 'bottom-end', - content: first[0].data.props.title, - effect: 'light' + content: first[0].data.props.title + // effect: 'light' } }, first @@ -76,12 +76,16 @@ const RenderSlot = { content.children = [renderTooltip(first), renderPopver(other)] return content } else { - const first = contentDiv.splice(0, 1) - first[0].data.class = 'normal-button' - first[0].data.props.type = null - first[0].data.props.size = null - content.children = [renderTooltip(first)] + // const first = contentDiv.splice(0, contentDiv) + contentDiv = contentDiv.map(item => { + console.log(item) + item.data.class = 'normal-button' + item.data.props.type = null + item.data.props.size = null + return renderTooltip([item]) + }) + content.children = contentDiv return content } // let div = diff --git a/src/views/knowledge/detail/components/split/CustomSplitDialog.vue b/src/views/knowledge/detail/components/split/CustomSplitDialog.vue index 3a0f842..20d74b0 100644 --- a/src/views/knowledge/detail/components/split/CustomSplitDialog.vue +++ b/src/views/knowledge/detail/components/split/CustomSplitDialog.vue @@ -112,36 +112,33 @@ export default { prop: 'knowledgeDesc', width: '150px', align: 'center', + isRedraw: true, render: (h, params) => { return h('span', {}, [ - h( - 'el-button', - { - class: 'floatSpan', - props: { - type: 'primary', - size: 'medium' - }, - on: { - click: () => this.handleEdit(params.row) - } + h('el-button', { + class: 'floatSpan', + props: { + type: 'primary', + size: 'medium', + title: '修改', + icon: 'el-icon-edit-outline' }, - '修改' - ), - h( - 'el-button', - { - class: 'floatSpan', - props: { - type: 'primary', - size: 'medium' - }, - on: { - click: () => this.handlePreview(params.row) - } + on: { + click: () => this.handleEdit(params.row) + } + }), + h('el-button', { + class: 'floatSpan', + props: { + type: 'primary', + size: 'medium', + title: '预览', + icon: 'el-icon-view' }, - '预览' - ) + on: { + click: () => this.handlePreview(params.row) + } + }) ]) } } diff --git a/src/views/knowledge/detail/components/words/CustomWords.vue b/src/views/knowledge/detail/components/words/CustomWords.vue index e57e44b..968b029 100644 --- a/src/views/knowledge/detail/components/words/CustomWords.vue +++ b/src/views/knowledge/detail/components/words/CustomWords.vue @@ -118,36 +118,33 @@ export default { prop: 'knowledgeDesc', width: '150px', align: 'center', + isRedraw: true, render: (h, params) => { return h('span', {}, [ - h( - 'el-button', - { - class: 'floatSpan', - props: { - type: 'primary', - size: 'medium' - }, - on: { - click: () => this.handleEdit(params.row) - } + h('el-button', { + class: 'floatSpan', + props: { + type: 'primary', + size: 'medium', + title: '修改', + icon: 'el-icon-edit-outline' }, - '修改' - ), - h( - 'el-button', - { - class: 'floatSpan', - props: { - type: 'primary', - size: 'medium' - }, - on: { - click: () => this.handlePreview(params.row) - } + on: { + click: () => this.handleEdit(params.row) + } + }), + h('el-button', { + class: 'floatSpan', + props: { + type: 'primary', + size: 'medium', + title: '预览', + icon: 'el-icon-view' }, - '预览' - ) + on: { + click: () => this.handlePreview(params.row) + } + }) ]) } } diff --git a/src/views/knowledge/detail/index.vue b/src/views/knowledge/detail/index.vue index fe56db9..1370174 100644 --- a/src/views/knowledge/detail/index.vue +++ b/src/views/knowledge/detail/index.vue @@ -390,7 +390,7 @@ export default { type: 'primary', size: 'mini', disabled: true, - icon: 'el-icon-edit', + icon: 'el-icon-edit-outline', title: '编辑' }, on: {} diff --git a/src/views/knowledge/index.vue b/src/views/knowledge/index.vue index 755023e..31ac158 100644 --- a/src/views/knowledge/index.vue +++ b/src/views/knowledge/index.vue @@ -2,7 +2,7 @@
- +