From 9d4ed41193a1039e8558c7914e0a39b13e62d3b5 Mon Sep 17 00:00:00 2001 From: jackhoo_98 Date: Mon, 30 Jan 2023 14:49:55 +0800 Subject: [PATCH 01/12] =?UTF-8?q?feat:=20=E8=AF=81=E4=B9=A6=E7=AE=A1?= =?UTF-8?q?=E7=90=86=20=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/link/certificate.ts | 9 + src/router/menu.ts | 2 +- src/views/link/Certificate/Detail/index.vue | 34 +++- src/views/link/Certificate/index.vue | 190 +++++++++++++++++++- src/views/link/Certificate/type.d.ts | 19 ++ 5 files changed, 244 insertions(+), 10 deletions(-) create mode 100644 src/views/link/Certificate/type.d.ts diff --git a/src/api/link/certificate.ts b/src/api/link/certificate.ts index 9ed5f5e1..3f6b0a31 100644 --- a/src/api/link/certificate.ts +++ b/src/api/link/certificate.ts @@ -5,3 +5,12 @@ export const NETWORK_CERTIFICATE_UPLOAD = `${BASE_API_PATH}/network/certificate/ export const save = (data: object) => server.post(`/network/certificate`, data); + +export const update = (data: object) => server.patch(`/network/certificate`, data); + +export const query = (data: object) => server.post(`/network/certificate/_query`, data); + +export const queryDetail = (id: string) => server.get(`/network/certificate/${id}`); + +export const remove = (id: string) => server.remove(`/network/certificate/${id}`); + diff --git a/src/router/menu.ts b/src/router/menu.ts index 2e92daff..48eb4149 100644 --- a/src/router/menu.ts +++ b/src/router/menu.ts @@ -81,7 +81,7 @@ export default [ component: () => import('@/views/link/Certificate/index.vue') }, { - path: '/link/certificate/detail/add', + path: '/link/certificate/detail/:type/:id', component: () => import('@/views/link/Certificate/Detail/index.vue') }, { diff --git a/src/views/link/Certificate/Detail/index.vue b/src/views/link/Certificate/Detail/index.vue index 410bd10c..e8857baf 100644 --- a/src/views/link/Certificate/Detail/index.vue +++ b/src/views/link/Certificate/Detail/index.vue @@ -60,6 +60,7 @@ ({ type: 'common', name: '', configs: { @@ -137,9 +142,10 @@ const { resetFields, validate, validateInfos } = useForm( const onSubmit = () => { validate() .then(async (res) => { - const params = toRaw(formData); + const params = toRaw(formData.value); loading.value = true; - const response = await save(params); + const response = + type === 'edit' ? await update(params) : await save(params); if (response.status === 200) { message.success('操作成功'); router.push('/link/certificate'); @@ -156,10 +162,28 @@ const handleChange = (info: UploadChangeParam) => { if (info.file.status === 'done') { message.success('上传成功!'); const result = info.file.response?.result; - formData.configs.cert = result; + formData.value.configs.cert = result; fileLoading.value = false; } }; + +const detail = async (id: string) => { + if (type !== 'add') { + loading.value = true; + const res = await queryDetail(id); + if (res.success) { + const result = res.result as FormDataType; + const type = result.type.value as TypeObjType; + formData.value = { + ...result, + type, + }; + } + loading.value = false; + } +}; + +detail(id); diff --git a/src/views/link/Certificate/type.d.ts b/src/views/link/Certificate/type.d.ts new file mode 100644 index 00000000..eb38e3e6 --- /dev/null +++ b/src/views/link/Certificate/type.d.ts @@ -0,0 +1,19 @@ + +export interface TypeObjType = { + text: string; + value: string; +}; +export type FormDataType = { + description: string; + name: string; + type: string | TypeObjType; + configs: { + cert: string; + key: string; + }; + id?: string; + format?: string; + mode?: object; + creatorId?: string; + createTime?: number; +}; From b0148bcac690556507ef4f03eba7740b6b2d6b4a Mon Sep 17 00:00:00 2001 From: easy <1358086367@qq.com> Date: Mon, 30 Jan 2023 17:05:27 +0800 Subject: [PATCH 02/12] =?UTF-8?q?update:=20=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/system/menu.ts | 4 + src/router/menu.ts | 8 + src/utils/comm.ts | 27 -- .../components/dialogs/DeviceChooseDialog.vue | 6 +- src/views/system/Menu/Detail/BasicInfo.vue | 283 ++++++++++++++++++ src/views/system/Menu/Detail/ButtonMange.vue | 18 ++ src/views/system/Menu/Detail/index.vue | 25 ++ src/views/system/Menu/index.d.ts | 0 src/views/system/Menu/index.vue | 247 +++++++++++++++ 9 files changed, 589 insertions(+), 29 deletions(-) create mode 100644 src/api/system/menu.ts create mode 100644 src/views/system/Menu/Detail/BasicInfo.vue create mode 100644 src/views/system/Menu/Detail/ButtonMange.vue create mode 100644 src/views/system/Menu/Detail/index.vue create mode 100644 src/views/system/Menu/index.d.ts create mode 100644 src/views/system/Menu/index.vue diff --git a/src/api/system/menu.ts b/src/api/system/menu.ts new file mode 100644 index 00000000..6b584c4b --- /dev/null +++ b/src/api/system/menu.ts @@ -0,0 +1,4 @@ +import server from '@/utils/request'; + +// 获取当前用户可访问菜单 +export const getMenuTree_api = (data: object) => server.post(`/menu/_all/tree`, data); \ No newline at end of file diff --git a/src/router/menu.ts b/src/router/menu.ts index 2e92daff..20a8ca67 100644 --- a/src/router/menu.ts +++ b/src/router/menu.ts @@ -113,6 +113,14 @@ export default [ path:'/system/Permission', component: ()=>import('@/views/system/Permission/index.vue') }, + { + path:'/system/Menu', + component: ()=>import('@/views/system/Menu/index.vue') + }, + { + path:'/system/Menu/detail/:id', + component: ()=>import('@/views/system/Menu/Detail/index.vue') + }, // 初始化 { path: '/init-home', diff --git a/src/utils/comm.ts b/src/utils/comm.ts index 3c032a79..b5a12816 100644 --- a/src/utils/comm.ts +++ b/src/utils/comm.ts @@ -57,30 +57,3 @@ export const filterTreeSelectNode = (value: string, treeNode: any, key: string = export const filterSelectNode = (value: string, option: any, key: string = 'label'): boolean => { return option[key]?.includes(value) } - -/** - * 时间转换为'2022-01-02 14:03:05' - * @param date 时间对象 - * @returns - */ -export const dateFormat = (dateSouce:any):string|Error => { - let date = null - try { - date = new Date(dateSouce) - } catch (error) { - return new Error('请传入日期格式数据') - } - let year = date.getFullYear(); - let month: number | string = date.getMonth() + 1; - let day: number | string = date.getDate(); - let hour: number | string = date.getHours(); - let minutes: number | string = date.getMinutes(); - let seconds: number | string = date.getSeconds(); - month = (month < 10) ? '0' + month : month; - day = (day < 10) ? '0' + day : day; - hour = (hour < 10) ? '0' + hour : hour; - minutes = (minutes < 10) ? '0' + minutes : minutes; - seconds = (seconds < 10) ? '0' + seconds : seconds; - return year + "-" + month + "-" + day - + " " + hour + ":" + minutes + ":" + seconds; -} diff --git a/src/views/home/components/dialogs/DeviceChooseDialog.vue b/src/views/home/components/dialogs/DeviceChooseDialog.vue index 18a03947..ecb16650 100644 --- a/src/views/home/components/dialogs/DeviceChooseDialog.vue +++ b/src/views/home/components/dialogs/DeviceChooseDialog.vue @@ -22,7 +22,9 @@ }" > + + + + diff --git a/src/views/system/Menu/Detail/ButtonMange.vue b/src/views/system/Menu/Detail/ButtonMange.vue new file mode 100644 index 00000000..6c55ec8d --- /dev/null +++ b/src/views/system/Menu/Detail/ButtonMange.vue @@ -0,0 +1,18 @@ + + + + + \ No newline at end of file diff --git a/src/views/system/Menu/Detail/index.vue b/src/views/system/Menu/Detail/index.vue new file mode 100644 index 00000000..08de6fd6 --- /dev/null +++ b/src/views/system/Menu/Detail/index.vue @@ -0,0 +1,25 @@ + + + + + diff --git a/src/views/system/Menu/index.d.ts b/src/views/system/Menu/index.d.ts new file mode 100644 index 00000000..e69de29b diff --git a/src/views/system/Menu/index.vue b/src/views/system/Menu/index.vue new file mode 100644 index 00000000..7ff407f3 --- /dev/null +++ b/src/views/system/Menu/index.vue @@ -0,0 +1,247 @@ + + + + + From 96787070ea5bca0407dd8d377373b3e66b2597fe Mon Sep 17 00:00:00 2001 From: xieyonghong <18010623010@163.com> Date: Mon, 30 Jan 2023 17:06:15 +0800 Subject: [PATCH 03/12] =?UTF-8?q?update:=20=E5=88=A0=E9=99=A4=E6=9C=AA?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Layout/BasicLayout.tsx | 9 ++------- src/components/Layout/components/Header/Header.tsx | 1 - src/components/Layout/components/Header/index.tsx | 7 +------ src/components/Layout/components/SiderMenu/SiderMenu.tsx | 6 ------ src/utils/comm.ts | 2 -- 5 files changed, 3 insertions(+), 22 deletions(-) diff --git a/src/components/Layout/BasicLayout.tsx b/src/components/Layout/BasicLayout.tsx index d091510a..18cfcdf2 100644 --- a/src/components/Layout/BasicLayout.tsx +++ b/src/components/Layout/BasicLayout.tsx @@ -7,21 +7,16 @@ import { provide } from 'vue' -import type { DefineComponent, ExtractPropTypes, PropType, CSSProperties, Plugin, App } from 'vue' +import type { ExtractPropTypes, PropType, CSSProperties} from 'vue' import { Layout } from 'ant-design-vue' -import useConfigInject from 'ant-design-vue/es/_util/hooks/useConfigInject' -import { defaultSettingProps, defaultSettings } from './defaultSetting' -import type { PureSettings } from './defaultSetting' +import { defaultSettingProps } from './defaultSetting' import type { BreadcrumbProps, RouteContextProps } from './RouteContext' import type { BreadcrumbRender, CollapsedButtonRender, CustomRender, - FooterRender, - HeaderContentRender, HeaderRender, MenuContentRender, MenuExtraRender, - MenuFooterRender, MenuHeaderRender, MenuItemRender, RightContentRender, diff --git a/src/components/Layout/components/Header/Header.tsx b/src/components/Layout/components/Header/Header.tsx index f3ff3654..8d7de6d7 100644 --- a/src/components/Layout/components/Header/Header.tsx +++ b/src/components/Layout/components/Header/Header.tsx @@ -8,7 +8,6 @@ import { defaultSettingProps } from 'components/Layout/defaultSetting' import PropTypes from 'ant-design-vue/es/_util/vue-types' import { CustomRender, MenuDataItem, ProProps, RightContentRender, WithFalse } from 'components/Layout/typings' import './index.less' -import { omit } from 'lodash-es' import { RouteRecordRaw } from 'vue-router' import { clearMenuItem } from 'components/Layout/utils' diff --git a/src/components/Layout/components/Header/index.tsx b/src/components/Layout/components/Header/index.tsx index ad2a8461..c4bfc014 100644 --- a/src/components/Layout/components/Header/index.tsx +++ b/src/components/Layout/components/Header/index.tsx @@ -1,13 +1,8 @@ -import type { ExtractPropTypes, PropType } from 'vue' -import PropTypes from 'ant-design-vue/es/_util/vue-types'; -import type { MenuDataItem, WithFalse, ProProps, CustomRender, RightContentRender } from '../../typings' -import { siderMenuProps } from '../SiderMenu/SiderMenu' -import { defaultSettingProps } from 'components/Layout/defaultSetting' +import type { ExtractPropTypes } from 'vue' import Header, { headerProps } from './Header' import { useRouteContext } from 'components/Layout/RouteContext' import type { RouteRecordRaw } from 'vue-router' import { clearMenuItem } from 'components/Layout/utils' -import DefaultSetting from '../../../../../config/config' import { Layout } from 'ant-design-vue' export const headerViewProps = { diff --git a/src/components/Layout/components/SiderMenu/SiderMenu.tsx b/src/components/Layout/components/SiderMenu/SiderMenu.tsx index 29587b4a..89496a93 100644 --- a/src/components/Layout/components/SiderMenu/SiderMenu.tsx +++ b/src/components/Layout/components/SiderMenu/SiderMenu.tsx @@ -18,10 +18,6 @@ import './SiderMenu.less' import { computed } from 'vue' import { omit } from 'lodash-es' -export type PrivateSiderMenuProps = { - matchMenuKeys?: string[]; -} - const { Sider } = Layout export const defaultRenderLogo = (logo?: CustomRender, logoStyle?: CSSProperties): CustomRender => { @@ -89,7 +85,6 @@ const SiderMenu: FunctionalComponent = (props, { slots, emit}) = const { collapsed, collapsedWidth = 48, - menuExtraRender = false, menuContentRender = false, collapsedButtonRender = defaultRenderCollapsedButton, } = props; @@ -97,7 +92,6 @@ const SiderMenu: FunctionalComponent = (props, { slots, emit}) = const context = useRouteContext(); const sSideWidth = computed(() => (props.collapsed ? props.collapsedWidth : props.siderWidth)); - const extraDom = menuExtraRender && menuExtraRender(props); const handleSelect = ($event: string[]) => { if (props.onSelect) { diff --git a/src/utils/comm.ts b/src/utils/comm.ts index addc6a11..be44886c 100644 --- a/src/utils/comm.ts +++ b/src/utils/comm.ts @@ -1,7 +1,5 @@ import type { Slots } from 'vue' import { TOKEN_KEY } from '@/utils/variable' -import { Terms } from 'components/Search/types' -import { urlReg } from '@/utils/regular' /** * 静态图片资源处理 From 9a82577e9c9749cc0eeac4dc1f63e704a2b73851 Mon Sep 17 00:00:00 2001 From: JiangQiming <291854119@qq.com> Date: Mon, 30 Jan 2023 17:30:12 +0800 Subject: [PATCH 04/12] =?UTF-8?q?feat:=20=E7=BB=91=E5=AE=9A=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/notice/Config/SyncUser/index.vue | 285 +++++++++++++-------- 1 file changed, 176 insertions(+), 109 deletions(-) diff --git a/src/views/notice/Config/SyncUser/index.vue b/src/views/notice/Config/SyncUser/index.vue index f6f76166..1fc23686 100644 --- a/src/views/notice/Config/SyncUser/index.vue +++ b/src/views/notice/Config/SyncUser/index.vue @@ -1,103 +1,125 @@