diff --git a/frontend/src/assets/images/ms_configplugin.jpg b/frontend/src/assets/images/ms_configplugin.jpg new file mode 100644 index 0000000000..15c8f399cd Binary files /dev/null and b/frontend/src/assets/images/ms_configplugin.jpg differ diff --git a/frontend/src/assets/images/ms_plugindownload.jpg b/frontend/src/assets/images/ms_plugindownload.jpg new file mode 100644 index 0000000000..f39c27e566 Binary files /dev/null and b/frontend/src/assets/images/ms_plugindownload.jpg differ diff --git a/frontend/src/assets/style/arco-reset.less b/frontend/src/assets/style/arco-reset.less index 53830a40e5..6ae06ec160 100644 --- a/frontend/src/assets/style/arco-reset.less +++ b/frontend/src/assets/style/arco-reset.less @@ -574,3 +574,25 @@ } } } + +/** 折叠面板样式 **/ +.arco-collapse { + padding: 0; +} +.arco-collapse-item-header { + padding: 0; + border-bottom: none; +} +.arco-collapse-item-content-box { + padding: 0; +} +.arco-collapse-item-content { + padding: 0; + background: none; +} +.arco-collapse-item { + margin-bottom: 0 !important; +} +.arco-collapse-item-header-title { + font-weight: 500; +} diff --git a/frontend/src/assets/svg/configplugin.svg b/frontend/src/assets/svg/configplugin.svg new file mode 100644 index 0000000000..50f248f207 --- /dev/null +++ b/frontend/src/assets/svg/configplugin.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/assets/svg/downloadplugin.svg b/frontend/src/assets/svg/downloadplugin.svg new file mode 100644 index 0000000000..ab9e93a7bc --- /dev/null +++ b/frontend/src/assets/svg/downloadplugin.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/components/pure/ms-form-create/formCreate.vue b/frontend/src/components/pure/ms-form-create/formCreate.vue new file mode 100644 index 0000000000..9562709508 --- /dev/null +++ b/frontend/src/components/pure/ms-form-create/formCreate.vue @@ -0,0 +1,20 @@ + + + + + + + diff --git a/frontend/src/components/pure/ms-form-create/formcreate-password.vue b/frontend/src/components/pure/ms-form-create/formcreate-password.vue new file mode 100644 index 0000000000..852ee482a8 --- /dev/null +++ b/frontend/src/components/pure/ms-form-create/formcreate-password.vue @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + diff --git a/frontend/src/locale/en-US/index.ts b/frontend/src/locale/en-US/index.ts index fce8ee5d37..07560eed48 100644 --- a/frontend/src/locale/en-US/index.ts +++ b/frontend/src/locale/en-US/index.ts @@ -29,6 +29,7 @@ export default { 'menu.settings.system': 'System', 'menu.settings.organization': 'Organization', 'menu.settings.organization.member': 'Member', + 'menu.settings.organization.serviceIntegration': 'Service Integration', 'menu.settings.system.usergroup': 'User Group', 'menu.settings.system.pluginmanger': 'Plugin Manger', 'menu.settings.system.user': 'User', diff --git a/frontend/src/locale/zh-CN/index.ts b/frontend/src/locale/zh-CN/index.ts index 280db4668d..cef6899f98 100644 --- a/frontend/src/locale/zh-CN/index.ts +++ b/frontend/src/locale/zh-CN/index.ts @@ -29,6 +29,7 @@ export default { 'menu.settings.system': '系统', 'menu.settings.organization': '组织', 'menu.settings.organization.member': '成员', + 'menu.settings.organization.serviceIntegration': '服务集成', 'menu.settings.system.user': '用户', 'menu.settings.system.usergroup': '用户组', 'menu.settings.system.pluginmanger': '插件管理', diff --git a/frontend/src/main.ts b/frontend/src/main.ts index c26fb23e8a..e39aad5854 100644 --- a/frontend/src/main.ts +++ b/frontend/src/main.ts @@ -1,7 +1,6 @@ import { createApp } from 'vue'; import ArcoVue from '@arco-design/web-vue'; import '@arco-themes/vue-ms-theme-default/index.less'; -import FormCreate from '@form-create/arco-design'; import ArcoVueIcon from '@arco-design/web-vue/es/icon'; import SvgIcon from '@/components/pure/svg-icon/index.vue'; import MSIcon from '@/components/pure/ms-icon-font/index.vue'; @@ -28,7 +27,6 @@ async function bootstrap() { app.use(router); app.use(directive); - app.use(FormCreate); app.mount('#app'); } diff --git a/frontend/src/router/routes/modules/setting.ts b/frontend/src/router/routes/modules/setting.ts index 3c295e7949..5d898e921b 100644 --- a/frontend/src/router/routes/modules/setting.ts +++ b/frontend/src/router/routes/modules/setting.ts @@ -122,6 +122,16 @@ const Setting: AppRouteRecordRaw = { isTopMenu: true, }, }, + { + path: 'serviceIntegration', + name: 'settingOrganizationService', + component: () => import('@/views/setting/organization/serviceIntegration/index.vue'), + meta: { + locale: 'menu.settings.organization.serviceIntegration', + roles: ['*'], + isTopMenu: true, + }, + }, ], }, ], diff --git a/frontend/src/views/setting/organization/serviceIntegration/components/serviceList.vue b/frontend/src/views/setting/organization/serviceIntegration/components/serviceList.vue new file mode 100644 index 0000000000..c3e660a892 --- /dev/null +++ b/frontend/src/views/setting/organization/serviceIntegration/components/serviceList.vue @@ -0,0 +1,290 @@ + + + + + {{ t('organization.service.serviceIntegration') }} + + + + + + + + + + {{ item.name }} + + + TAPD + {{ t('organization.service.unconfigured') }} + {{ t('organization.service.configured') }} + + 一站式敏捷研发协作云平台 + + + + + + + {{ t('organization.service.testLink') }} + + {{ + t('organization.service.testLink') + }} + {{ + t('organization.service.edit') + }} + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/src/views/setting/organization/serviceIntegration/components/showModal.vue b/frontend/src/views/setting/organization/serviceIntegration/components/showModal.vue new file mode 100644 index 0000000000..933ebee6a0 --- /dev/null +++ b/frontend/src/views/setting/organization/serviceIntegration/components/showModal.vue @@ -0,0 +1,101 @@ + + + 标题 + + + + + + + + + + {{ t('organization.service.statusEnableTip') }} + {{ t('organization.service.statusDisableTip') }} + + + + + + 取消 + 测试链接 + 确定 + + + + + + + + + diff --git a/frontend/src/views/setting/organization/serviceIntegration/index.vue b/frontend/src/views/setting/organization/serviceIntegration/index.vue new file mode 100644 index 0000000000..5cbee87688 --- /dev/null +++ b/frontend/src/views/setting/organization/serviceIntegration/index.vue @@ -0,0 +1,110 @@ + + + + + + + {{ t('organization.service.packUp') }} + {{ t('organization.service.expand') }} + + + + + + + + + {{ t(item.title) }} + + + {{ t(links.name) }} + + + + + {{ t(item.description) }} + + + + + + + + + + + + + + diff --git a/frontend/src/views/setting/organization/serviceIntegration/locale/en-US.ts b/frontend/src/views/setting/organization/serviceIntegration/locale/en-US.ts new file mode 100644 index 0000000000..7e4ce56cf6 --- /dev/null +++ b/frontend/src/views/setting/organization/serviceIntegration/locale/en-US.ts @@ -0,0 +1,53 @@ +export default { + 'organization.service.searchPlugin': 'Search by plug-in name', + 'system.service.statusEnableTip': + 'Open: projects can integrate with the platform and generate default templates for the platform', + 'system.service.statusDisableTip': + 'Shutdown: the project can not integrate with the platform and the default template for the platform is not available', + 'organization.service.headerTip': 'Service integration usage guidelines', + 'organization.service.serviceIntegration': 'Service Integration', + 'organization.service.packUp': 'Pack Up', + 'organization.service.expand': 'Expand', + 'organization.service.downloadPluginOrDev': 'Download plug-ins or develop plug-ins', + 'organization.service.configPlugin': 'Configuring the plugin', + 'organization.service.downPlugin': 'Download the plugin', + 'organization.service.developmentDoc': 'Plug-in development documentation', + 'organization.service.description': + 'Download third-party project management platform plug-ins that need to be integrated; you can also develop your own relevant project management platform plug-ins', + 'organization.service.configDescription': + 'Downloaded or developed plug-ins need to be uploaded to plug-in management, upload, you can configure the current page', + 'organization.service.jumpPlugin': 'JUMP to plug-in management', + 'organization.service.testLink': 'Test link', + 'organization.service.unconfigured': 'Unconfigured', + 'organization.service.configured': 'Configured', + 'organization.service.methodOfAuthentication': 'Method of authentication', + 'organization.service.edit': 'Edit', + 'organization.service.unconfiguredTip': 'Not configured yet. Configure and open on the edit page', + 'organization.service.batchActionAddUsergroup': 'Add to usergroup', + 'organization.service.tableEnable': 'Enabled', + 'organization.service.tableDisable': 'Disabled', + 'organization.service.tableColunmEmail': 'Email', + 'organization.service.tableColunmName': 'Name', + 'organization.service.tableColunmPhone': 'Phone', + 'organization.service.tableColunmPro': 'Project', + 'organization.service.tableColunmUsergroup': 'UserGroup', + 'organization.service.tableColunmStatus': 'Status', + 'organization.service.tableColunmActions': 'Actions', + 'organization.service.service': 'Member', + 'organization.service.selectMemberScope': 'Select the service you want to add. Multiple selection is supported', + 'organization.service.selectProjectScope': 'Select the project you want to add. Multiple selection is supported', + 'organization.service.selectMemberEmptyTip': 'The service can not be empty', + 'organization.service.selectProjectEmptyTip': 'The project can not be empty', + 'organization.service.selectUserEmptyTip': 'The user group can not be empty', + 'organization.service.Confirm': 'Confirm', + 'organization.service.Cancel': 'Cancel', + 'organization.service.deleteMemberTip': 'Are you sure to remove the user `{name}` ?', + 'system.user.deleteUserTip': 'Are you sure to delete the user `{name}` ?', + 'organization.service.deleteMemberConfirm': 'Delete', + 'organization.service.deleteMemberCancel': 'Cancel', + 'organization.service.deleteMemberSuccess': 'Delete successful', + 'organization.service.batchModalSuccess': 'Successfully added', + 'organization.service.batchUpdateSuccess': 'Successfully updated', + 'organization.service.proejct': 'Project', + 'organization.service.selectUserScope': 'Please select a user group for the above members', +}; diff --git a/frontend/src/views/setting/organization/serviceIntegration/locale/zh-CN.ts b/frontend/src/views/setting/organization/serviceIntegration/locale/zh-CN.ts new file mode 100644 index 0000000000..004bd32ba6 --- /dev/null +++ b/frontend/src/views/setting/organization/serviceIntegration/locale/zh-CN.ts @@ -0,0 +1,48 @@ +export default { + 'organization.service.searchPlugin': '通过插件名称搜索', + 'organization.service.statusEnableTip': '开启:项目可以与该平台集成并生成该平台的默认模版', + 'organization.service.statusDisableTip': '关闭:项目无法与该平台集成且该平台默认模版不可用', + 'organization.service.headerTip': '服务集成 使用指引', + 'organization.service.serviceIntegration': '服务集成', + 'organization.service.packUp': '收起', + 'organization.service.expand': '展开', + 'organization.service.downloadPluginOrDev': '下载插件或开发插件', + 'organization.service.configPlugin': '配置插件', + 'organization.service.downPlugin': '下载插件', + 'organization.service.developmentDoc': '插件开发文档', + 'organization.service.description': '下载需要集成的第三方项目管理平台插件;也可以自行开发相关项目管理平台插件', + 'organization.service.configDescription': '已下载或已开发的插件需上传至插件管理,上传后,可在当前页进行配置', + 'organization.service.jumpPlugin': '跳转至插件管理', + 'organization.service.testLink': '测试链接', + 'organization.service.unconfigured': '未配置', + 'organization.service.configured': '已配置', + 'organization.service.methodOfAuthentication': '认证方式', + 'organization.service.edit': '编辑', + 'organization.service.unconfiguredTip': '暂未配置,可在编辑页配置并开启', + 'organization.service.batchActionAddUsergroup': '添加至用户组', + 'organization.service.tableEnable': '正常', + 'organization.service.tableDisable': '禁用', + 'organization.service.tableColunmEmail': '邮箱', + 'organization.service.tableColunmName': '姓名', + 'organization.service.tableColunmPhone': '手机', + 'organization.service.tableColunmPro': '项目', + 'organization.service.tableColunmUsergroup': '用户组', + 'organization.service.tableColunmStatus': '状态', + 'organization.service.tableColunmActions': '操作', + 'organization.service.service': '成员', + 'organization.service.selectMemberScope': '请选择需要添加的成员支持多选', + 'organization.service.selectProjectScope': '请选择需要添加的项目支持多选', + 'organization.service.selectMemberEmptyTip': '成员不能为空', + 'organization.service.selectProjectEmptyTip': '项目不能为空', + 'organization.service.selectUserEmptyTip': '用户组不能为空', + 'organization.service.Confirm': '确定', + 'organization.service.Cancel': '取消', + 'organization.service.deleteMemberTip': '确认移除 `{name}` 这个成员吗?', + 'organization.service.deleteMemberConfirm': '确认删除', + 'organization.service.deleteMemberCancel': '取消', + 'organization.service.deleteMemberSuccess': '删除成功', + 'organization.service.batchModalSuccess': '添加成功', + 'organization.service.batchUpdateSuccess': '更新成功', + 'organization.service.proejct': '项目', + 'organization.service.selectUserScope': '请为以上成员选择用户组', +};
+ TAPD + {{ t('organization.service.unconfigured') }} + {{ t('organization.service.configured') }} +
一站式敏捷研发协作云平台