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/api/intelligent-agent/list.js b/src/api/intelligent-agent/list.js new file mode 100644 index 0000000..d47da84 --- /dev/null +++ b/src/api/intelligent-agent/list.js @@ -0,0 +1,81 @@ +import request from '@/assets/js/utils/request' +import getUrl from '@/assets/js/utils/get-url' + +/** + * 获取智能体列表 + * @param {Object} data - 请求参数, 默认为空对象 + * @returns {Promise} - 返回 Promise 对象 + */ +const agentList = (data = {}) => { + return request({ + url: getUrl('/ebiz/intelligentAgent/list'), + method: 'post', + data + }) +} + +/** + * 查看智能体详情 + * @param {string} id - 请求 ID + */ +function agentDetail(id) { + return request({ + url: getUrl('/ebiz/intelligentAgent/query'), + method: 'get', + params: { id } + }) +} + +/** + * 增加智能体 + * @param {Object} data - 请求参数, 默认为空对象 + * @returns {Promise} - 返回 Promise 对象 + */ +const agentAdd = (data) => { + if (!data) { + console.warn('need data', data) + return + } + return request({ + url: getUrl('/ebiz/intelligentAgent/create'), + method: 'post', + data + }) +} + +/** + * 删除智能体 + * @param {Array} data - 请求参数, 默认为空对象 + * @returns {Promise} - 返回 Promise 对象 + */ +const agentDelete = (data) => { + if (!data || !data.length) { + console.warn('need data', data) + return + } + return request({ + url: getUrl('/ebiz/intelligentAgent/delete'), + method: 'post', + data + }) +} + +/** + * 编辑智能体 + * @param {Object} data - 请求参数, 默认为空对象 + * @returns {Promise} - 返回 Promise 对象 + */ +const agentEdit = (data) => { + if (!data || !data.id) { + console.warn('need data', data) + return + } + + return request({ + url: getUrl('/ebiz/intelligentAgent/update'), + method: 'post', + data + }) +} + +export { agentList, agentEdit, agentDelete, agentAdd, agentDetail } 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/assets/sass/public.scss b/src/assets/sass/public.scss index 99347e8..e69de29 100644 --- a/src/assets/sass/public.scss +++ b/src/assets/sass/public.scss @@ -1,419 +0,0 @@ -.el-input__suffix { - height: unset; -} -.el-collapse { - border: none; -} - -[class*='el-col-'] { - min-height: 1px; -} -#RenderTable-container { - margin-bottom: 20px; -} -#RenderTable-container, -.el-table { - .el-button--mini { - padding: 5px; - color: #409eff; - border-color: transparent !important; - background: transparent !important; - //padding-left: 0; - //padding-right: 0; - } - .el-button--danger.el-button--mini { - color: #f56c6c; - } - .el-button--primary.el-button--mini:focus, - .el-button--primary.el-button--mini:hover { - color: #b3d8ff; - } - .el-button--danger.el-button--mini:focus, - .el-button--danger.el-button--mini:hover { - color: #fbc4c4; - } - .el-button--primary.el-button--mini.is-disabled, - .el-button--primary.el-button--mini.is-disabled:active, - .el-button--primary.el-button--mini.is-disabled:focus, - .el-button--primary.el-button--mini.is-disabled:hover { - color: #ccc; - } - .el-button--danger.el-button--mini.is-disabled, - .el-button--danger.el-button--mini.is-disabled:active, - .el-button--danger.el-button--mini.is-disabled:focus, - .el-button--danger.el-button--mini.is-disabled:hover { - color: #ccc; - } -} - -.el-button--medium { - padding: 8px 15px; - margin-top: 3px; -} -.el-button--danger { - //color:#F56C6C!important; -} -.el-upload__input { - display: none; -} -.el-dialog { - //.el-input{ - // width: 100%!important; - // max-width: 100%; - //} -} -.footer { - position: fixed; - bottom: 0; - left: 0; - width: 100%; - background: white; - padding: 15px 30px; - z-index: 10; - border-top: 1px solid #f0f0f0; - .flex { - display: flex; - justify-content: flex-end; - button { - margin-left: 20px; - } - } -} -.is-fullscreen { - .el-dialog__header { - //padding: unset; - } - .el-dialog__body { - padding: unset; - width: 95vw; - margin: auto; - max-height: 100%; - overflow: hidden; - } -} -//.el-dialog__body { -// padding: 30px 15px; -// width: 96%; -// margin: auto; -// max-height: 55vh; -// overflow: auto; -//} -//.el-dialog__footer { -// text-align: right; -//} -//.el-dialog__header { -// font-weight: 600; -// .el-dialog__title { -// font-size: 20px; -// color: #0096fd; -// line-height: 28px; -// } -//} - -.el-collapse-item__header.is-active { - border-bottom: 1px solid #ebeef5; -} -// to fixed https://github.com/ElemeFE/element/issues/2461 -.el-dialog { - border-radius: 10px; - transform: none; - left: 0; - position: relative; - margin: 0 auto; -} -.table-container { - padding-top: 15px; -} -.container-title { - height: 30px; - //border-bottom: 2px solid #0096FD; - //margin-bottom: 20px; -} -.container-title .title { - padding: 8px 15px; - font-weight: 500; - color: #fff; - background: #0096fd; - border-radius: 0 15px 0 0; -} -//[class*=" el-icon-"], [class^=el-icon-]{ -// line-height: unset; -//} -.lineH35 { - line-height: 35px; -} -.lineH25 { - line-height: 25px; -} -.lineH40 { - line-height: 40px; -} -.search_btn_s .el-button { - padding: 5px 8px; - margin-top: 6px; -} -.el-date-editor.el-input, -.el-input, -.el-select, -.el-cascader { - width: 100%; - //max-width: 350px; -} -/*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/ -::-webkit-scrollbar { - width: 7px; - height: 7px; -} - -/*定义滚动条轨道 内阴影+圆角*/ -::-webkit-scrollbar-track { - border-radius: 10px; -} - -/*定义滑块 内阴影+圆角*/ -::-webkit-scrollbar-thumb { - border-radius: 10px; - box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.1); - -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.1); - background-color: #c8c8c8; -} -.el-tooltip__popper { - max-width: 500px; -} -body .el-collapse-item__wrap { - padding-top: 30px !important; -} -.AdditionalInsurance .cell { - color: #409eff; -} -.cellClassNo .cell { - color: #f56c6c; -} -.cellClassYes .cell { - color: #409eff; -} -.mainInsurance .cell { - color: #67c23a; -} -.el-form-item__label { - width: 120px; - display: flex !important; - align-items: center; - height: 40px; - justify-content: flex-end; - line-height: 20px; -} -.el-select__tags { - white-space: nowrap !important; - overflow: hidden !important; - // text-overflow: ellipsis!important; - display: inline-block !important; -} -.el-loading-mask { - z-index: 9999; -} - -.toolBox { - display: inline-flex; -} -.ellipsis { - display: inline; - /*margin: auto;*/ - max-width: 215px; - height: 24px; - font-size: 14px; - overflow: hidden; - text-overflow: ellipsis; -} -.el-table th { - background: #ecf5ff; -} -//.el-form-item__content { -// line-height: 1.7692; -//} -.el-table th > .cell { - display: block; -} -.el-table th.el-table__cell { - background: #ecf5ff; -} - -.el-card { - border-radius: 10px; -} - -.danger { - color: #f56c6c !important; - & :disabled { - color: rgba(0, 0, 0, 0.25); - } - & :hover { - color: #dd6161; - } - & :focus { - color: #dd6161; - } - & :active { - color: #dd6161; - } -} -.default { - color: #000 !important; - background: #f1f3f5 !important; - border-color: #f1f3f5 !important; - & :disabled { - color: rgba(0, 0, 0, 0.25); - } - & :hover { - color: #000; - } - & :focus { - color: #000; - } - & :active { - color: #000; - } -} -.cursor-pointer { - cursor: pointer; -} -.view-body { - text-align: left; - font-size: 14px; - padding: 10px; - - div { - outline: unset; - } - - /* 添加一些基本的样式以美化 Markdown 内容 */ - - p { - font-size: 16px; - line-height: 1.6; - margin-bottom: 16px; - } - - h1, - h2, - h3, - h4, - h5, - h6 { - margin-top: 24px; - margin-bottom: 12px; - border-bottom: 1px dashed #cecece; - padding: 5px; - } - - ul, - ol { - margin: 16px 0; - padding-left: 32px; - } - - li { - margin-bottom: 8px; - } - - a { - color: #007bff; - text-decoration: none; - } - - a:hover { - text-decoration: underline; - } - - code { - background-color: #f1f1f1; - padding: 4px 8px; - border-radius: 4px; - font-family: 'Courier New', Courier, monospace; - } - - img { - max-width: 100%; - } - - pre { - background-color: #f1f1f1; - padding: 16px; - border-radius: 4px; - overflow-x: auto; - font-family: 'Courier New', Courier, monospace; - } - - pre code { - background-color: transparent; - padding: 0; - } - - table { - border: 1px solid #f9f9f9; - position: relative; - width: 100%; - margin: 5px; - border-collapse: collapse; - background: linear-gradient(to bottom, #ffffff, #f9f9f9); - } - - th, - td { - border: 1px solid #ccc; - padding: 8px; - text-align: left; - } - - th { - background-color: #f2f2f2; - } - - // 添加斑马条纹效果 - tr:nth-child(even) { - background-color: #f9fafc; - } -} - -.m-view { - position: relative; - padding: 10px; - // 离开后还原 - &:after { - content: ''; - position: absolute; - width: calc(100% + 10px); - height: calc(100% + 10px); - top: -5px; - left: -5px; - background: rgba(201, 203, 255, 0.3); - transition: all 0.3s ease-in-out; - opacity: 0; // 初始状态下透明 - border: 2px solid rgb(201, 203, 255); - border-radius: 5px; - overflow: hidden; - } - - &:hover:after { - opacity: 1; // 悬停时显示 - } -} - -.editor-button { - position: relative; -} - -.public-icon { - font-size: 14px; - cursor: pointer; -} - -.public-icon + .public-icon { - margin-left: 10px; -} - -//去除滚动条 -.view-body::-webkit-scrollbar { - width: 0px; - height: 0px; -} diff --git a/src/assets/sass/renderSass/button.scss b/src/assets/sass/renderSass/button.scss index 529ac50..4641b53 100644 --- a/src/assets/sass/renderSass/button.scss +++ b/src/assets/sass/renderSass/button.scss @@ -23,6 +23,40 @@ background: transparent; color: var(--color-primary); } + &.normal-button { + padding: 5px; + background: unset; + border: unset; + color: $--color-primary-desc-text; + &:hover { + background: $--color-primary-table-button-hover; + border-color: #ebeef2; + } + &:focus { + background: $--color-primary-table-button-hover; + border-color: #ebeef2; + } + &:active { + background: $--color-primary-table-button-hover; + border-color: #ebeef2; + } + &.popver-button { + padding: 13px 5px; + text-align: left; + font-size: 14px; + font-family: PingFangSC, PingFang SC; + &:hover { + background: $--color-primary-table-button-hover; + color: rgba(79, 71, 245, 1); + } + & i { + color: #000; + } + } + &.popver-button + .popver-button { + margin: 0; + } + } } .el-button--text { diff --git a/src/assets/sass/renderSass/table.scss b/src/assets/sass/renderSass/table.scss new file mode 100644 index 0000000..46dec45 --- /dev/null +++ b/src/assets/sass/renderSass/table.scss @@ -0,0 +1,38 @@ +.el-table--small { + td, + th { + padding: 17px 0; + } +} + +.el-table__header-wrapper { + .el-table__header { + th { + padding: 17px 0; + } + } +} +.el-table--enable-row-hover { + .el-table__body { + tr:hover { + td { + background-color: $--color-primary-table-hover; + } + } + } +} + +.el-table { + .el-button + .el-button { + margin-left: 5px; + } +} + +.table-popver { + display: inline-flex; + flex-wrap: wrap; + flex-direction: column; + margin-left: 5px; + border-radius: 5px; + padding: 5px; +} diff --git a/src/assets/sass/renderSass/theme.scss b/src/assets/sass/renderSass/theme.scss index 740b714..741a05f 100644 --- a/src/assets/sass/renderSass/theme.scss +++ b/src/assets/sass/renderSass/theme.scss @@ -7,6 +7,9 @@ $--color-primary-danger-light: lighten($--color-primary-danger, 5%); //高亮颜 $--color-primary-danger-disabled: #ff000024; $--color-primary-desc-text: #51525d; $--color-primary-desc-text-drank: #999; +$--color-primary-table-hover: #eff0f8; +$--color-primary-table-button-hover: #e3e5f1; + :root { --swiper-theme-color: #0a6dff; --color-primary: #0a6dff; diff --git a/src/assets/sass/renderUi.scss b/src/assets/sass/renderUi.scss index 8c385e8..09f48d8 100644 --- a/src/assets/sass/renderUi.scss +++ b/src/assets/sass/renderUi.scss @@ -2,6 +2,7 @@ @import 'renderSass/button'; @import 'renderSass/dialog'; @import 'renderSass/input'; +@import 'renderSass/table'; html, body, @@ -9,8 +10,185 @@ body, .app-main { background: rgba(240, 244, 250, 1); } +.cursor-pointer { + cursor: pointer; +} + +.danger { + color: #f56c6c !important; + & :disabled { + color: rgba(0, 0, 0, 0.25); + } + & :hover { + color: #dd6161; + } + & :focus { + color: #dd6161; + } + & :active { + color: #dd6161; + } +} +.default { + color: #000 !important; + background: #f1f3f5 !important; + border-color: #f1f3f5 !important; + & :disabled { + color: rgba(0, 0, 0, 0.25); + } + & :hover { + color: #000; + } + & :focus { + color: #000; + } + & :active { + color: #000; + } +} .container { padding: 20px 10px; //background-image: url('../images/backimage.png'); } + +.view-body { + text-align: left; + font-size: 14px; + padding: 10px; + + div { + outline: unset; + } + + /* 添加一些基本的样式以美化 Markdown 内容 */ + + p { + font-size: 16px; + line-height: 1.6; + margin-bottom: 16px; + } + + h1, + h2, + h3, + h4, + h5, + h6 { + margin-top: 24px; + margin-bottom: 12px; + border-bottom: 1px dashed #cecece; + padding: 5px; + } + + ul, + ol { + margin: 16px 0; + padding-left: 32px; + } + + li { + margin-bottom: 8px; + } + + a { + color: #007bff; + text-decoration: none; + } + + a:hover { + text-decoration: underline; + } + + code { + background-color: #f1f1f1; + padding: 4px 8px; + border-radius: 4px; + font-family: 'Courier New', Courier, monospace; + } + + img { + max-width: 100%; + } + + pre { + background-color: #f1f1f1; + padding: 16px; + border-radius: 4px; + overflow-x: auto; + font-family: 'Courier New', Courier, monospace; + } + + pre code { + background-color: transparent; + padding: 0; + } + + table { + border: 1px solid #f9f9f9; + position: relative; + width: 100%; + margin: 5px; + border-collapse: collapse; + background: linear-gradient(to bottom, #ffffff, #f9f9f9); + } + + th, + td { + border: 1px solid #ccc; + padding: 8px; + text-align: left; + } + + th { + background-color: #f2f2f2; + } + + // 添加斑马条纹效果 + tr:nth-child(even) { + background-color: #f9fafc; + } +} + +.m-view { + position: relative; + padding: 10px; + // 离开后还原 + &:after { + content: ''; + position: absolute; + width: calc(100% + 10px); + height: calc(100% + 10px); + top: -5px; + left: -5px; + background: rgba(201, 203, 255, 0.3); + transition: all 0.3s ease-in-out; + opacity: 0; // 初始状态下透明 + border: 2px solid rgb(201, 203, 255); + border-radius: 5px; + overflow: hidden; + } + + &:hover:after { + opacity: 1; // 悬停时显示 + } +} + +.editor-button { + position: relative; +} + +.public-icon { + font-size: 14px; + cursor: pointer; +} + +.public-icon + .public-icon { + margin-left: 10px; +} + +//去除滚动条 +.view-body::-webkit-scrollbar { + width: 0px; + height: 0px; +} diff --git a/src/components/RenderMinerU/index.vue b/src/components/RenderMinerU/index.vue index f2678d8..032eda7 100644 --- a/src/components/RenderMinerU/index.vue +++ b/src/components/RenderMinerU/index.vue @@ -64,6 +64,7 @@ export default { name: 'index', data() { return { + endEmit: false, tab: '0', mdPges: 0, tableIdCounter: 0, @@ -171,6 +172,10 @@ export default { } }, props: { + visible: { + type: Boolean, + default: false + }, documentId: { type: String, default: '1361351897324294144' @@ -563,6 +568,7 @@ ${text}` }, // 重试方法 retryMiner() { + this.endEmit = true minerURetry({ documentId: this.documentId }) .then(res => { this.$message({ diff --git a/src/components/RenderTable/component/bodySlot/index.vue b/src/components/RenderTable/component/bodySlot/index.vue index 717f2b6..c5b141d 100644 --- a/src/components/RenderTable/component/bodySlot/index.vue +++ b/src/components/RenderTable/component/bodySlot/index.vue @@ -12,12 +12,88 @@ const RenderSlot = { } }, render: (h, data) => { + const renderTooltip = first => { + return h( + 'el-tooltip', + { + props: { + placement: 'bottom-end', + content: first[0].data.props.title + // effect: 'light' + } + }, + first + ) + } + const renderPopver = other => { + return h( + 'el-popover', + { + props: { + placement: 'bottom-end', + width: '100', + trigger: 'hover', + popperClass: 'table-popver' + }, + class: 'table-popver', + scopedSlots: { + reference: () => + h('el-button', { + props: { + size: 'mini', + type: 'text', + icon: 'el-icon-more' + }, + class: 'normal-button' + }) + } + }, + other + ) + } const params = { row: data.props.row, index: data.props.index } - if (data.props.column) params.column = data.props.column - return data.props.render(h, params) + if (data.props.column) { + params.column = data.props.column + } + if (params.column.isRedraw) { + let content = data.props.render(h, params) + let contentDiv = content.children + if (contentDiv.length > 2) { + console.log(content) + // 切割掉第一个div + const first = contentDiv.splice(0, 1) + const other = contentDiv.splice(0, contentDiv.length) + first[0].data.class = 'normal-button' + first[0].data.props.type = null + first[0].data.props.size = null + other.forEach(item => { + item.data.class = 'normal-button popver-button' + }) + + content.children = [renderTooltip(first), renderPopver(other)] + return content + } else { + // 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 = + } else { + return data.props.render(h, params) + } + + // return data.props.render(h, params) } } export default { diff --git a/src/components/RenderTable/index.vue b/src/components/RenderTable/index.vue index 6cf1770..86ba9a2 100644 --- a/src/components/RenderTable/index.vue +++ b/src/components/RenderTable/index.vue @@ -44,8 +44,8 @@
- 编辑 - 删除 + +
@@ -193,7 +193,7 @@ export default { //表格边框 border border: { type: Boolean, - default: true + default: false }, // 是否剧中 align align: { diff --git a/src/router/generatedRouter/index.js b/src/router/generatedRouter/index.js index a5fc85e..bde1536 100644 --- a/src/router/generatedRouter/index.js +++ b/src/router/generatedRouter/index.js @@ -191,5 +191,66 @@ 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' + } + } + ] + }, { + path: '/intelligentAgent', + name: 'intelligentAgent', + component: layout, + redirect: '/intelligentAgent/list', + meta: { + title: '智能体', + icon: 'el-icon-home', + affix: true + }, + children: [ + { + path: '/intelligentAgent/list', + name: 'intelligentAgent-list', + component: () => import('@/views/intelligent-agent/index.vue'), + meta: { + title: '智能体', + icon: 'el-icon-home' + } + } + ] } ] diff --git a/src/views/intelligent-agent/components/info/index.vue b/src/views/intelligent-agent/components/info/index.vue new file mode 100644 index 0000000..a87d8a4 --- /dev/null +++ b/src/views/intelligent-agent/components/info/index.vue @@ -0,0 +1,51 @@ + + + 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 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/create.vue b/src/views/knowledge/detail/create.vue index 6c771fb..b8176b1 100644 --- a/src/views/knowledge/detail/create.vue +++ b/src/views/knowledge/detail/create.vue @@ -37,9 +37,9 @@ - +
- +
diff --git a/src/views/knowledge/detail/index.vue b/src/views/knowledge/detail/index.vue index e65263f..1370174 100644 --- a/src/views/knowledge/detail/index.vue +++ b/src/views/knowledge/detail/index.vue @@ -381,28 +381,28 @@ export default { key: '操作', prop: 'knowledgeDesc', width: '200px', + isRedraw: true, render: (h, params) => { return h('div', [ - h( - 'el-button', - { - class: 'floatSpan', - props: { - type: 'primary', - size: 'mini', - disabled: true - }, - on: {} + h('el-button', { + class: 'normal-button', + props: { + type: 'primary', + size: 'mini', + disabled: true, + icon: 'el-icon-edit-outline', + title: '编辑' }, - '修改(暂不支持)' - ), + on: {} + }), h( 'el-button', { class: 'floatSpan', props: { type: 'danger', - size: 'mini' + size: 'mini', + icon: 'el-icon-delete' }, on: { click: () => this.deleteKnowledge(params.row) @@ -416,7 +416,8 @@ export default { class: 'floatSpan', props: { type: 'primary', - size: 'mini' + size: 'mini', + icon: 'el-icon-tickets' }, on: { click: () => this.viewDocumentDetail(params.row) 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 @@
- + 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/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 new file mode 100644 index 0000000..7949112 --- /dev/null +++ b/src/views/system/role/index.vue @@ -0,0 +1,247 @@ + + + + + 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..68ba45d --- /dev/null +++ b/src/views/system/user/components/UserDialog.vue @@ -0,0 +1,162 @@ + + + + + diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue new file mode 100644 index 0000000..023025c --- /dev/null +++ b/src/views/system/user/index.vue @@ -0,0 +1,379 @@ + + + + + diff --git a/src/views/track/Index.vue b/src/views/track/Index.vue index cd81095..4f7c08c 100644 --- a/src/views/track/Index.vue +++ b/src/views/track/Index.vue @@ -47,16 +47,14 @@ export default { { prop: 'createdDate', key: '上传时间', width: '200' }, { key: '操作', + isRedraw: true, render: (h, params) => { return h('div', [ - h( - 'el-button', - { - props: { type: 'text', size: 'mini' }, - on: { click: () => this.handleActiveInfo(params) } - }, - '查看详情' - ) + h('el-button', { + props: { icon: 'el-icon-tickets', title: '查看详情' }, + class: 'normal-button', + on: { click: () => this.handleActiveInfo(params) } + }) ]) } }