diff --git a/.beagle.yml b/.beagle.yml index a357db629bb4bd224d14bd2df8387f882668c10a..d54834be26a8b5c02233da8b778d01db8eeb9581 100644 --- a/.beagle.yml +++ b/.beagle.yml @@ -62,7 +62,7 @@ steps: # 定义流水线执行步骤,这些步骤将顺序执行 base: registry.cn-qingdao.aliyuncs.com/wod/nginx:1.19.5 # 基础镜像,根据项目需求进行使用,如果第三方登录改成ui-base dockerfile: .beagle/dockerfile repo: wod/apaas-system-ui # 生成镜像的 分组/名称 - version: "5.3.0" # 版本号 + version: "5.0.7" # 版本号 channel: alpha # 后缀 example: alpha test fix-alpha fix等 args: "TARGETOS=linux,TARGETARCH=amd64" # 不同架构的构建参数 registry: registry.cn-qingdao.aliyuncs.com # 私有仓库地址 @@ -77,7 +77,7 @@ steps: # 定义流水线执行步骤,这些步骤将顺序执行 namespace: apaas-v5 deployment: apaas-manage-ui container: apaas-manage-ui - image: registry.cn-qingdao.aliyuncs.com/wod/apaas-system-ui:5.3.0-alpha + image: registry.cn-qingdao.aliyuncs.com/wod/apaas-system-ui:5.0.7-alpha environment: KUBERNETES_SERVER: from_secret: KUBERNETES_SERVER @@ -93,7 +93,7 @@ steps: # 定义流水线执行步骤,这些步骤将顺序执行 base: registry.cn-qingdao.aliyuncs.com/wod/nginx:1.19.5-arm64 dockerfile: .beagle/dockerfile repo: wod/apaas-system-ui - version: "5.3.0" + version: "5.0.7" channel: alpha-arm64 args: "TARGETOS=linux,TARGETARCH=arm64" registry: registry.cn-qingdao.aliyuncs.com diff --git a/src/assets/css/index.css b/src/assets/css/index.css index cbc2e1c0eed1220c9b8612f7af5aee22eeac2adf..def943dcb8ef1054064ffdf506ab879b7b76677b 100644 --- a/src/assets/css/index.css +++ b/src/assets/css/index.css @@ -9,7 +9,7 @@ } /* 返回按钮颜色 */ -.from_return>.el-button--primary { +.from_return > .el-button--primary { background-color: #edf0ff !important; border-color: #edf0ff !important; color: #264dd9 !important; @@ -71,12 +71,15 @@ cursor: pointer; } -.space_bet {} +.space_bet { +} /* reset */ -html {} +html { +} -html,body { +html, +body { margin: 0; font-family: Microsoft YaHei, sans-serif; /* font-size: 17px; */ @@ -101,16 +104,16 @@ h5 { font-weight: normal; } -h1{ +h1 { font-size: 32px; } -h2{ +h2 { font-size: 24px; } -h3{ +h3 { font-size: 18.7px; } -h4{ +h4 { font-size: 16px; } @@ -154,7 +157,7 @@ div { align-items: flex-start; } -.ss_card>.sc_left_container { +.ss_card > .sc_left_container { width: 6rem; height: 6rem; flex-shrink: 0; @@ -163,19 +166,19 @@ div { font-size: 0; } -.ss_card>.sc_right_container { +.ss_card > .sc_right_container { width: calc(100% - 7rem); flex-grow: 1; margin-left: 1.2rem; } -.ss_card>.sc_right_container>.sc_title { +.ss_card > .sc_right_container > .sc_title { font-size: 1.6rem; font-weight: bold; line-height: 2.6rem; } -.ss_card>.sc_right_container>.sc_info { +.ss_card > .sc_right_container > .sc_info { display: flex; justify-content: space-between; } @@ -202,13 +205,13 @@ div { position: relative; } -.from_return>.el-button--primary { +.from_return > .el-button--primary { position: absolute; top: 15px; left: 20px; } -.from_return>span { +.from_return > span { color: #1a2236; font-size: 16px; } @@ -621,7 +624,7 @@ border-radius:8px; background-color: #fff; } -.el-radio__input.is-checked+.el-radio__label { +.el-radio__input.is-checked + .el-radio__label { color: #1a2236; font-weight: 700; } @@ -674,18 +677,18 @@ border-radius:8px; } /* common */ -.apass_breadcrumb>.el-breadcrumb { +.apass_breadcrumb > .el-breadcrumb { padding: 10px 0; } -.apass_breadcrumb>.el-breadcrumb .el-breadcrumb__inner { +.apass_breadcrumb > .el-breadcrumb .el-breadcrumb__inner { font-size: 14px; font-weight: 400; color: #898d9e; line-height: 23px; } -.apass_breadcrumb>.el-breadcrumb .el-breadcrumb__item:last-child .el-breadcrumb__inner { +.apass_breadcrumb > .el-breadcrumb .el-breadcrumb__item:last-child .el-breadcrumb__inner { color: #242c43; font-weight: normal; } @@ -758,8 +761,7 @@ border-radius:8px; border-color: #ebeef5; } - -.apass_table .el-table th>.cell { +.apass_table .el-table th > .cell { color: #1a2236; } @@ -838,7 +840,7 @@ border-radius:8px; border-color: #515fe7; } -.apass_checkbox .el-checkbox__input.is-checked+.el-checkbox__label { +.apass_checkbox .el-checkbox__input.is-checked + .el-checkbox__label { color: #58617a; } @@ -921,7 +923,7 @@ border-radius:8px; margin-top: 50px; } -.apaas_detail_container .detail_action .el-button+.el-button { +.apaas_detail_container .detail_action .el-button + .el-button { margin-left: 30px; } @@ -992,7 +994,7 @@ border-radius:8px; width: 124px; } -.apaas_steps .apaas_step .apaas_step_action .el-button+.el-button { +.apaas_steps .apaas_step .apaas_step_action .el-button + .el-button { margin-left: 20px; } @@ -1004,7 +1006,7 @@ border-radius:8px; flex-grow: 1; font-size: 0; } -.filter_list>.filter_item { +.filter_list > .filter_item { display: flex; align-items: center; margin: 0 34px 16px 0; @@ -1015,7 +1017,7 @@ border-radius:8px; vertical-align: middle; } */ -.filter_list>.filter_item>.filter_title { +.filter_list > .filter_item > .filter_title { text-align: right; font-size: 14px; color: #242c43; @@ -1045,14 +1047,14 @@ border-radius:8px; text-align: right; } -.filter_action>.el-button { +.filter_action > .el-button { /* min-width: 90px; */ height: 36px; margin-top: 16px; padding: 12px 17px; } -.filter_action>.el-button+.el-button { +.filter_action > .el-button + .el-button { margin-left: 10px; } @@ -1091,7 +1093,7 @@ border-radius:8px; margin-top: 5px; } -.meassage_detail_dialog .detail_item .full_content>.apaas_scroll { +.meassage_detail_dialog .detail_item .full_content > .apaas_scroll { height: 176px; overflow: auto; } @@ -1266,11 +1268,11 @@ border-radius:8px; .el-date-table td.in-range div:hover, .el-date-table.is-week-mode .el-date-table__row.current div, .el-date-table.is-week-mode .el-date-table__row:hover div { - background-color: #eff2fa!important; + background-color: #eff2fa !important; } -.el-date-table td.end-date .el-date-table-cell__text, +.el-date-table td.end-date .el-date-table-cell__text, .el-date-table td.start-date .el-date-table-cell__text { - background-color: #3759be!important; + background-color: #3759be !important; } .el-date-table td.end-date span, .el-date-table td.start-date span { @@ -1450,8 +1452,6 @@ border-radius:8px; padding-right: 10px; } - - .page_container { width: 100%; padding: 0 24px; @@ -1463,11 +1463,10 @@ border-radius:8px; align-items: stretch; } .page_content { - background-color: #fff; - height: calc(100% - 46px - 20px); - box-shadow: 0px 1px 4px 0px - rgba(0, 7, 101, 0.15); - border-radius: 6px; + background-color: #fff; + height: calc(100% - 46px - 20px); + box-shadow: 0px 1px 4px 0px rgba(0, 7, 101, 0.15); + border-radius: 6px; } .flex_row { @@ -1483,19 +1482,16 @@ border-radius:8px; overflow: hidden; } .flex_right { - height: calc(100% - 16px); flex: 1; - + overflow: hidden; } .bgc_white { - box-shadow: 0px 1px 4px 0px - rgba(0, 7, 101, 0.15); - border-radius: 6px; + box-shadow: 0px 1px 4px 0px rgba(0, 7, 101, 0.15); + border-radius: 6px; background-color: #fff; - } .tree::-webkit-scrollbar { @@ -1519,7 +1515,7 @@ border-radius:8px; } .header_info { font-size: 14px; - color: #404a62; + color: #404a62; padding-left: 20px; } .fr { @@ -1533,8 +1529,8 @@ border-radius:8px; color: #404a62; } .icon_eye { - font-size: 12px; - color: #a9b1c7; + font-size: 12px; + color: #a9b1c7; margin-right: 8px; vertical-align: baseline; cursor: pointer; @@ -1554,7 +1550,7 @@ border-radius:8px; .warning_info { background-color: #f7f7f9; font-size: 14px; - color: #404a62; + color: #404a62; padding: 5px; text-align: left; margin: 20px 0; @@ -1563,6 +1559,7 @@ border-radius:8px; color: #d75138; } +<<<<<<< HEAD .register_btn { background-color: #eff2fa; border-radius: 4px; @@ -1581,3 +1578,15 @@ border-radius:8px; padding: 20px; } +======= +.tip-image { + position: absolute; + right: -24px; + bottom: 9px; + width: 16px; + height: 16px; + margin-left: 8px; + background-image: url("../imgs/ic_tips.png"); + background-size: contain; +} +>>>>>>> a152210490b057d5d9be08d415be67274b954aaf diff --git a/src/bg-ui/bg-form-gap.vue b/src/bg-ui/bg-form-gap.vue new file mode 100644 index 0000000000000000000000000000000000000000..1379940732a191c58dffc9a052d6cdc6a54c93ab --- /dev/null +++ b/src/bg-ui/bg-form-gap.vue @@ -0,0 +1,43 @@ + + + {{ title }} + + + + + + diff --git a/src/bg-ui/index.js b/src/bg-ui/index.js index cdd71637986a1a20aeca3318c09acc9ed4de3dc9..1374c3573eacf8a4e885219b22011ca3ee9c8723 100644 --- a/src/bg-ui/index.js +++ b/src/bg-ui/index.js @@ -1,43 +1,44 @@ /** * 全局组件 */ - import BgIcon from './bg-icon.vue' - import BgNav from './bg-nav.vue' - import BgList from './bg-list.vue' - import BgDetail from './bg-detail.vue' - import BgFiltrate from './bg-filtrate.vue' - import BgTable from './bg-table.vue' - import BgTablePro from './bg-table-pro.vue' - import BgTableBtn from './bg-table-btn.vue' - import BgTabs from './bg-tabs.vue' - import BgTab from './bg-tab.vue' - import BgLayoutCard from './bg-layout-card.vue' - import BgCard from './bg-card.vue' - import BgInfo from './bg-info.vue' - import BgBtns from './bg-btns.vue' - import BgUpload from './bg-upload.vue' - import BgUploadImage from './bg-upload-image.vue' - import BgTags from './bg-tags.vue' - import BgSwitch from './bg-switch.vue' - import BgRichText from './bg-rich-text.vue' - import BgCodeEditor from './bg-code-editor.vue' - import BgFilter from './bg-filter.vue' - import BgSort from './bg-sort.vue' - import BgFilterDate from './bg-filter-date.vue' - import bgUserUploadImage from './bg-user-upload-image.vue' - import bgDetailTable from './bg-detail-table.vue' - import bgDetailTable2 from './bg-detail-table2.vue' - import debounce from './debounce' - import BgPagination from './bg-pagination.vue' - import BgInnerTabs from './bg-inner-tabs.vue' - import BgFilterGroup from './bg-filter-group.vue' - import BgSwitchEle from './bg-switch-ele.vue' - import BgTableBtns from './bg-table-btns.vue' - import BgTableBtns2 from './bg-table-btns2.vue' - import BgPermission from './bg-permission.vue' - +import BgIcon from "./bg-icon.vue"; +import BgNav from "./bg-nav.vue"; +import BgList from "./bg-list.vue"; +import BgDetail from "./bg-detail.vue"; +import BgFiltrate from "./bg-filtrate.vue"; +import BgTable from "./bg-table.vue"; +import BgTablePro from "./bg-table-pro.vue"; +import BgTableBtn from "./bg-table-btn.vue"; +import BgTabs from "./bg-tabs.vue"; +import BgTab from "./bg-tab.vue"; +import BgLayoutCard from "./bg-layout-card.vue"; +import BgCard from "./bg-card.vue"; +import BgInfo from "./bg-info.vue"; +import BgBtns from "./bg-btns.vue"; +import BgUpload from "./bg-upload.vue"; +import BgUploadImage from "./bg-upload-image.vue"; +import BgTags from "./bg-tags.vue"; +import BgSwitch from "./bg-switch.vue"; +import BgRichText from "./bg-rich-text.vue"; +import BgCodeEditor from "./bg-code-editor.vue"; +import BgFilter from "./bg-filter.vue"; +import BgSort from "./bg-sort.vue"; +import BgFilterDate from "./bg-filter-date.vue"; +import bgUserUploadImage from "./bg-user-upload-image.vue"; +import bgDetailTable from "./bg-detail-table.vue"; +import bgDetailTable2 from "./bg-detail-table2.vue"; +import debounce from "./debounce"; +import BgPagination from "./bg-pagination.vue"; +import BgInnerTabs from "./bg-inner-tabs.vue"; +import BgFilterGroup from "./bg-filter-group.vue"; +import BgSwitchEle from "./bg-switch-ele.vue"; +import BgTableBtns from "./bg-table-btns.vue"; +import BgTableBtns2 from "./bg-table-btns2.vue"; +import BgPermission from "./bg-permission.vue"; +import BgFormGap from "./bg-form-gap.vue"; + const components = { - BgIcon,//字体图标 + BgIcon, //字体图标 BgNav, // 左侧导航 BgList, // 列表页布局 BgDetail, // 详情页布局 @@ -56,21 +57,22 @@ const components = { BgTags, // 标签 BgSwitch, // 开关 BgRichText, // 富文本 - BgCodeEditor,//代码输入 + BgCodeEditor, //代码输入 BgFilter, // 首页筛选 BgSort, // 首页排序 BgFilterDate, bgUserUploadImage, - bgDetailTable,//详情展示组件1 - bgDetailTable2,//详情展示组件2 - debounce,//防抖组件 - BgPagination,// 分页组件 - BgInnerTabs,//内部tab - BgFilterGroup,//高级搜索 - BgSwitchEle,// 基于element-plus封装的switch - BgTableBtns,// 表格按钮组 - BgPermission,// 菜单选择 + bgDetailTable, //详情展示组件1 + bgDetailTable2, //详情展示组件2 + debounce, //防抖组件 + BgPagination, // 分页组件 + BgInnerTabs, //内部tab + BgFilterGroup, //高级搜索 + BgSwitchEle, // 基于element-plus封装的switch + BgTableBtns, // 表格按钮组 + BgPermission, // 菜单选择 BgTableBtns2, // 表格按钮组-新 + BgFormGap, }; const install = (Vue) => { diff --git a/src/main.js b/src/main.js index 51d01fe6f4fe0d31af36276f5507e3dbaf982a56..3356de67b91b6b5dee8d90952e936c25f06c07ef 100644 --- a/src/main.js +++ b/src/main.js @@ -1,115 +1,109 @@ -import { createApp } from 'vue' +import { createApp } from "vue"; -import ElementPlus from 'element-plus' -import 'element-plus/dist/index.css' -import locale from 'element-plus/lib/locale/lang/zh-cn' +import ElementPlus from "element-plus"; +import "element-plus/dist/index.css"; +import locale from "element-plus/lib/locale/lang/zh-cn"; -import * as ElementPlusIconsVue from '@element-plus/icons-vue' +import * as ElementPlusIconsVue from "@element-plus/icons-vue"; import bgui from "@/bg-ui"; import "@/bg-ui/index.scss"; -import msgSdk from './msg-sdk/index.js'; +import msgSdk from "./msg-sdk/index.js"; -import App from './App.vue' +import App from "./App.vue"; -import router from './router' -import {generateRoutes} from './router/index.js' +import router from "./router"; +import { generateRoutes } from "./router/index.js"; +import "../src/assets/css/font.css"; +import "../src/assets/css/index.css"; +import "../src/assets/item.css"; -import '../src/assets/css/font.css' -import '../src/assets/css/index.css' -import '../src/assets/item.css' +import store from "@/store"; -import store from '@/store'; +import i18n from "./i18n/i18n.js"; -import i18n from './i18n/i18n.js' +import axios from "./request/http.js"; -import axios from './request/http.js' - -const createVue = createApp(App) +const createVue = createApp(App); createVue.use(ElementPlus, { locale }); function getMsgAppid() { - axios.get(`/apaas/system/v5/message/account`).then(res => { + axios.get(`/apaas/system/v5/message/account`).then((res) => { if (res.data.code == 200) { createVue.use(msgSdk, { - requestUrl: 'https://msg.wodcloud.com', // 请求地址 + requestUrl: "https://msg.wodcloud.com", // 请求地址 appID: decodeURIComponent(escape(window.atob(res.data.data.app_id))), // 应用id secretKey: decodeURIComponent(escape(window.atob(res.data.data.secret_key))), // 应用密钥 - userId: '', - userType: '', - roleId: '', - organization: '', - }) + userId: "", + userType: "", + roleId: "", + organization: "", + }); } - }) + }); } // getMsgAppid() for (const [key, component] of Object.entries(ElementPlusIconsVue)) { - createVue.component(key, component) + createVue.component(key, component); } -createVue.config.globalProperties.$axios = axios +createVue.config.globalProperties.$axios = axios; -import menu from './router/function.js' +import menu from "./router/function.js"; //获取用户信息 function getUser() { - return axios.get(`/apaas/system/v5/user/getUserInfo`) + return axios.get(`/apaas/system/v5/user/getUserInfo`); } //获取用户菜单信息 function getMenu(search) { - return axios.get(`/apaas/system/v5/menu/user/tree?search=${search}`) + return axios.get(`/apaas/system/v5/menu/user/tree?search=${search}`); } //处理菜单成为对象 -function getMenuObj(menu,parentRowPath,menuObj){ - menu.forEach((e,idx) => { - e.rowPath = parentRowPath + '.' + idx - menuObj[e.path] = e - if(e.children&&e.children.length){ - getMenuObj(e.children,e.rowPath,menuObj) +function getMenuObj(menu, parentRowPath, menuObj) { + menu.forEach((e, idx) => { + e.rowPath = parentRowPath + "." + idx; + menuObj[e.path] = e; + if (e.children && e.children.length) { + getMenuObj(e.children, e.rowPath, menuObj); } }); } - -Promise.all([getUser(),getMenu('dadb2d3f-e263-48d1-9389-42acb9ea49f8')]).then(res => { - console.log(res); - if (res[0].data.code == 200&&res[1].data.code == 200) { +Promise.all([getUser(), getMenu("dadb2d3f-e263-48d1-9389-42acb9ea49f8")]) + .then((res) => { + if (res[0].data.code == 200 && res[1].data.code == 200) { //已登录则记录菜单和用户信息 - let data = res[1].data.data&&res[1].data.data[0].children||[] - store.commit('setUserInfo', res[0].data.data) - + let data = (res[1].data.data && res[1].data.data[0].children) || []; + store.commit("setUserInfo", res[0].data.data); + // if (res[0].data.data.userType == 1) {//超管 - store.commit('setMenu', data) - menu.menuToRouter(data) - console.log(menu); - store.commit('setRoute',data) - - //存储菜单对象信息 - let menuObj = {} - getMenuObj(data,'',menuObj) - store.commit('setMenuObj',menuObj) - console.log(menuObj); - + store.commit("setMenu", data); + console.log("data", data); + menu.menuToRouter(data); + store.commit("setRoute", data); + + //存储菜单对象信息 + let menuObj = {}; + getMenuObj(data, "", menuObj); + store.commit("setMenuObj", menuObj); + // } } - generateRoutes() - - createVue.use(ElementPlus).use(store).use(router).use(i18n).use(bgui) - createVue.mount('#app') - }).catch(() => { - createVue.use(ElementPlus).use(store).use(router).use(i18n).use(bgui) - createVue.mount('#app') + generateRoutes(); + + createVue.use(ElementPlus).use(store).use(router).use(i18n).use(bgui); + createVue.mount("#app"); }) + .catch(() => { + createVue.use(ElementPlus).use(store).use(router).use(i18n).use(bgui); + createVue.mount("#app"); + }); //后期加入权限处理,参考msg/ui - - - - diff --git a/src/page/main/config/accessRule/index.vue b/src/page/main/config/accessRule/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..921a85a8d6813d499a518334df2307f55eb3f6bb --- /dev/null +++ b/src/page/main/config/accessRule/index.vue @@ -0,0 +1,490 @@ + + + + + + + + + + 新增 + + 批量删除 + 已选3项 + 清空 + + + + + + + 修改时间 + + + + + 查询 + 重置 + + + + + + + + {{ row.ability_name }} + mock + + + + + {{ ["待上架", "已上架", "已下架", "上架中", "下架中"][row.ability_state] }} + + + + + + + 编辑 + 删除 + + + + + + + + + + + + + + + + + + + + + + + + 查询 + 重置 + + + + + + + + {{ row.ability_name }} + mock + + + + + {{ ["待上架", "已上架", "已下架", "上架中", "下架中"][row.ability_state] }} + + + + 审批 + 审批详情 + + + + + + + + + + + 你有未提交的服务,是否继续编辑该服务? + + + 取 消 + 确 定 + + + + + + + + + diff --git a/src/page/main/config/loginPage/index.vue b/src/page/main/config/loginPage/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..425ce1576bab48a4d86df9f0fa4b7d0ed86e0198 --- /dev/null +++ b/src/page/main/config/loginPage/index.vue @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 保存 + + + + + + + + diff --git a/src/page/main/config/preference/index.vue b/src/page/main/config/preference/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..a3f52a542faae32c50ca6dd98b560ef76c803b1d --- /dev/null +++ b/src/page/main/config/preference/index.vue @@ -0,0 +1,331 @@ + + + + + + + + 授权信息 + + + 安全相关 + + + 登录注册配置 + + + + + + + + + + + + + + + + 支持中文、英文(区分大小写)、数字、_、/、-、.,最多不超过64个字 + + + + + + + + + 天 + + + + 范围(0~90),单位:天, 当剩余有效期在配置区间内时,系统会在用户登录系统时发出提醒,0表示不提醒 + + + + + + + + + + + + + + + 支持中文、英文(区分大小写)、数字、_、/、-、.,最多不超过64个字 + + + + + + + + + + 天 + + + 支持中文、英文(区分大小写)、数字、_、/、-、.,最多不超过64个字 + + + + + + 分钟 + + + 支持中文、英文(区分大小写)、数字、_、/、-、.,最多不超过64个字 + + + + + + + + + + 支持中文、英文(区分大小写)、数字、_、/、-、.,最多不超过64个字 + + + + + + + + + + + + 在 + + + + 小时内 + + + + 次输错密码,自动锁定 + + + + 分钟 + 一键还原受限 + + 支持中文、英文(区分大小写)、数字、_、/、-、.,最多不超过64个字 + + + + + + + + 是 + 否 + + + + + 保存 + + + + + + + + + diff --git a/src/page/main/develop/systemApproval/approval/index.vue b/src/page/main/develop/systemApproval/approval/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..1db8a42284c1bad08f70a3c4d14d0edd67a6dbb0 --- /dev/null +++ b/src/page/main/develop/systemApproval/approval/index.vue @@ -0,0 +1,278 @@ + + + + + + + + + + + + + 平台运营者审批 + 待审批 + + + 申请时间: + {{ instanceData.approveBasicInfo[5].value }} + + + + + + + + + + + + 通过 + 驳回 + + + + + + + + + 取消 + 保存 + + + + + + + + diff --git a/src/page/main/develop/systemApproval/detail/index.vue b/src/page/main/develop/systemApproval/detail/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..f126878e8b2ee99035ae2ec2c5f554b637413e84 --- /dev/null +++ b/src/page/main/develop/systemApproval/detail/index.vue @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + diff --git a/src/page/main/develop/systemApproval/index.vue b/src/page/main/develop/systemApproval/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..e0e445cf9fa54ef8e8a4788996b18cdd16540050 --- /dev/null +++ b/src/page/main/develop/systemApproval/index.vue @@ -0,0 +1,358 @@ + + + + + + + + + 审批状态 + + + + + + + 提交时间 + + + + + 查询 + 重置 + + + + + + + + {{ row.ability_name }} + mock + + + + + {{ ["待上架", "已上架", "已下架", "上架中", "下架中"][row.ability_state] }} + + + + 审批 + 审批详情 + + + + + + + + + + + 确定要删除数据吗?数据删除后不能恢复,请谨慎操作 + + + + 取 消 + 确 定 + + + + + + 你有未提交的服务,是否继续编辑该服务? + + + 取 消 + 确 定 + + + + + + + + + diff --git a/src/page/main/log/system/index.vue b/src/page/main/log/system/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..18edfbc65a6946554bafce8c71e3dcae68cdc328 --- /dev/null +++ b/src/page/main/log/system/index.vue @@ -0,0 +1,469 @@ + + + + + + + + + + + {{ item.classify_name }} + + + + + + + + + + + + + + + + + + + 查询 + 重置 + + + + + + + + + + + diff --git a/src/page/main/log/userAccount/index.vue b/src/page/main/log/userAccount/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..f99ed732590967d3fe1c7ab340b111a2441cbae8 --- /dev/null +++ b/src/page/main/log/userAccount/index.vue @@ -0,0 +1,527 @@ + + + + + + + + + + 导出 + + 强制修改密码 + 已选3项 + 清空 + + + + + + + 用户类型 + + + + + + + 上次访问时间 + + + + 活跃度 + + + + + + + 密码强度 + + + + + + + + 查询 + 重置 + + + + + + + + {{ row.ability_name }} + mock + + + + + {{ ["待上架", "已上架", "已下架", "上架中", "下架中"][row.ability_state] }} + + + + + + + 编辑 + 删除 + + + + + + + + + + + + + + + + + + + + + + + + 查询 + 重置 + + + + + + + + {{ row.ability_name }} + mock + + + + + {{ ["待上架", "已上架", "已下架", "上架中", "下架中"][row.ability_state] }} + + + + 审批 + 审批详情 + + + + + + + + + + + 你有未提交的服务,是否继续编辑该服务? + + + 取 消 + 确 定 + + + + + + + + + diff --git a/src/page/main/log/userBehavior/index.vue b/src/page/main/log/userBehavior/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..f99ed732590967d3fe1c7ab340b111a2441cbae8 --- /dev/null +++ b/src/page/main/log/userBehavior/index.vue @@ -0,0 +1,527 @@ + + + + + + + + + + 导出 + + 强制修改密码 + 已选3项 + 清空 + + + + + + + 用户类型 + + + + + + + 上次访问时间 + + + + 活跃度 + + + + + + + 密码强度 + + + + + + + + 查询 + 重置 + + + + + + + + {{ row.ability_name }} + mock + + + + + {{ ["待上架", "已上架", "已下架", "上架中", "下架中"][row.ability_state] }} + + + + + + + 编辑 + 删除 + + + + + + + + + + + + + + + + + + + + + + + + 查询 + 重置 + + + + + + + + {{ row.ability_name }} + mock + + + + + {{ ["待上架", "已上架", "已下架", "上架中", "下架中"][row.ability_state] }} + + + + 审批 + 审批详情 + + + + + + + + + + + 你有未提交的服务,是否继续编辑该服务? + + + 取 消 + 确 定 + + + + + + + + + diff --git a/src/router/function.js b/src/router/function.js index 4328978e96120857dda52e1c98d0ca95f32f8a19..84308b3a2fb3cd05c6724557d1ad7769945dfb9b 100644 --- a/src/router/function.js +++ b/src/router/function.js @@ -100,7 +100,7 @@ var adminMenu = [ dict_group_id: "64c156e0-bfff-4bfc-a63a-56effe130a25", menuType: 2, }, - ] + ], }, ], dict_group_id: "64c156e0-bfff-4bfc-a63a-56effe130a25", @@ -169,7 +169,7 @@ var adminMenu = [ dict_group_id: "09938937-3db9-47de-b967-7777ea4ebb2d", menuType: 1, //system:64c156e0-bfff-4bfc-a63a-56effe130a25:apaas后管,能力注册页等 font:2cb4f767-fad7-44f2-afa3-f055e15dd2b6:apaas前台页 manager:09938937-3db9-47de-b967-7777ea4ebb2d:apaas管理中心 知识中心:26d3903a-863e-4efc-b53e-0fb8772ddaa4 path: "/system/organization", - children:[ + children: [ { menuName: "新增平台用户", dict_group_id: "09938937-3db9-47de-b967-7777ea4ebb2d", @@ -198,27 +198,27 @@ var adminMenu = [ show: false, path: "/system/organization/org-detail", }, - ] + ], }, { menuName: "角色管理", dict_group_id: "09938937-3db9-47de-b967-7777ea4ebb2d", menuType: 1, //system:64c156e0-bfff-4bfc-a63a-56effe130a25:apaas后管,能力注册页等 font:2cb4f767-fad7-44f2-afa3-f055e15dd2b6:apaas前台页 manager:09938937-3db9-47de-b967-7777ea4ebb2d:apaas管理中心 知识中心:26d3903a-863e-4efc-b53e-0fb8772ddaa4 path: "/system/role", - children:[ + children: [ { - menuName:'新增角色', - menuType:2, + menuName: "新增角色", + menuType: 2, dict_group_id: "09938937-3db9-47de-b967-7777ea4ebb2d", path: "/system/role/add", }, { - menuName:'编辑角色', - menuType:2, + menuName: "编辑角色", + menuType: 2, dict_group_id: "09938937-3db9-47de-b967-7777ea4ebb2d", path: "/system/role/edit", }, - ] + ], }, ], }, @@ -241,13 +241,13 @@ var adminMenu = [ }, ]; -function getName(str){ - if(str=='/'){ - return 'index' +function getName(str) { + if (str == "/") { + return "index"; } - let temp = str.slice(1) - temp = temp.replaceAll('/','-') - return temp + let temp = str.slice(1); + temp = temp.replaceAll("/", "-"); + return temp; } function getViews(path) { @@ -271,14 +271,13 @@ function getViews(path) { break; } // 然后动态路由的时候这样来取 - console.log(modules["../page/main" + path + "/index.vue"]); return modules["../page/main" + path + "/index.vue"]; } //处理路由方法 var menuToRouter = (menu) => { menu.forEach((e) => { - e.name = getName(e.path) + e.name = getName(e.path); if (e.children && e.menuType == 0) { // 其他层级作为文件夹,只提供父级 e.component = () => import("../page/parent/parent.vue"); @@ -286,28 +285,25 @@ var menuToRouter = (menu) => { } else if (e.children && e.menuType !== 0) { //叶子层级需要加载到对应文件 //对首页做兼容 - if(e.source){ - console.log(`@/page/main${e.source}/index.vue`); + if (e.source) { e.component = getViews(e.source); - }else{ - console.log(`@/page/main${e.path}/index.vue`); + } else { e.component = getViews(e.path); } menuToRouter(e.children); } else { - console.log(`@/page/main${e.path}/index.vue`); //叶子层级需要加载到对应文件 //对首页做兼容 if (e.path == "/") { - if(e.source){ + if (e.source) { e.component = () => import(`../page/main/${e.source}/index.vue`); - }else{ + } else { e.component = () => import("../page/main/index/index.vue"); } } else { - if(e.source){ + if (e.source) { e.component = getViews(e.source); - }else{ + } else { e.component = getViews(e.path); } } diff --git a/src/router/index.js b/src/router/index.js index f55b5f5576866e4f45e2501e693bba1dde447cbd..a73fc52d2840d6ca6bdbbdd97ee4fb77648cc385 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -37,32 +37,31 @@ const routes = [{ show: true, component: () => import('../page/404.vue') }, -] +]; //重新创建router function newRouterFunc() { return createRouter({ history: createWebHashHistory(), - routes + routes, }); } -const router = newRouterFunc() +const router = newRouterFunc(); function inWhiteList(toPath) { //配置白名单 const whiteList = ['/login', '/registe', '/password'] const path = whiteList.find((value) => { // 使用正则匹配 - const reg = new RegExp('^' + value) - return reg.test(toPath) - }) - return !!path + const reg = new RegExp("^" + value); + return reg.test(toPath); + }); + return !!path; } router.beforeEach((to, from, next) => { - - const userInfo = store.state.userInfo + const userInfo = store.state.userInfo; console.log(store.state.route); //已登录不可跳转登陆页 @@ -75,30 +74,27 @@ router.beforeEach((to, from, next) => { // 检查to.path是否存在于免登陆白名单 if (inWhiteList(to.path)) { - next() + next(); } else { // 判断是否已经登录,未登录则重定向到首页或其他页面(通过query传参记录原来的路径) // 根据配置判断是否跳转第三方登录,跳转第三方登录则不跳login // axios封装中也需要对是否登录过期进行判断,如果登录过期,则跳转登录页,具体跳转地址根据配置来· if (!userInfo) { next({ - path: '/login', - }) - } else { - - } + path: "/login", + }); + } else {} } //判读是否匹配,否则跳转404 if (to.matched.length !== 0) { - next() + next(); } else { return next({ path: '/404' }) } -}) - +}); // 在路由完成初始导航时调用,如果有异步操作放置到这里 // 请求相应的角色和菜单 @@ -117,7 +113,7 @@ function addRoute(router, routers) { } export function generateRoutes() { - const _asyncRoutes = store.state.route + const _asyncRoutes = store.state.route; if (_asyncRoutes) { //动态添加路由 @@ -131,13 +127,12 @@ export function generateRoutes() { }) console.log(router.getRoutes()); - } //新创建一个router替代之前的router,并把matcher方法替换成新的router的matcher export function resetRouter() { - const newRouter = newRouterFunc() - router.matcher = newRouter.matcher + const newRouter = newRouterFunc(); + router.matcher = newRouter.matcher; } export default router