diff --git a/src/components/ResourceActivity/index.vue b/src/components/ResourceActivity/index.vue new file mode 100644 index 000000000..5c09fb9d0 --- /dev/null +++ b/src/components/ResourceActivity/index.vue @@ -0,0 +1,69 @@ + + + + + + + {{ activity.content }} + + + + {{ this.$t('common.NoContent') }} + + + + + + + + + diff --git a/src/components/TimelineCard/index.vue b/src/components/TimelineCard/index.vue deleted file mode 100644 index e8c105c56..000000000 --- a/src/components/TimelineCard/index.vue +++ /dev/null @@ -1,57 +0,0 @@ - - - - - {{ activity.content }} - - - - {{ this.$t('common.NoContent') }} - - - - - - - diff --git a/src/components/index.js b/src/components/index.js index df219b2d4..0b182f649 100644 --- a/src/components/index.js +++ b/src/components/index.js @@ -28,3 +28,4 @@ export { default as AssetRelationCard } from './AssetRelationCard' export { default as UserConfirmDialog } from './UserConfirmDialog' export { default as Announcement } from './Announcement' export { default as CronTab } from './CronTab' +export { default as ResourceActivity } from './ResourceActivity' diff --git a/src/i18n/langs/en.json b/src/i18n/langs/en.json index 364ed1ec0..1db3512fa 100644 --- a/src/i18n/langs/en.json +++ b/src/i18n/langs/en.json @@ -322,6 +322,7 @@ "ReLoginErr": "Login time has exceeded 5 minutes, please login again" }, "common": { + "Now": "Now", "Activity": "Activity", "Last30": "Last 30 times", "SpecificInfo": "Specific", diff --git a/src/i18n/langs/ja.json b/src/i18n/langs/ja.json index b237622e7..6534a8512 100644 --- a/src/i18n/langs/ja.json +++ b/src/i18n/langs/ja.json @@ -325,6 +325,7 @@ "ReLoginErr": "ログイン時間が 5 分を超えました。もう一度ログインしてください" }, "common": { + "Now": "今", "Activity": "イベント", "Last30": "最近 30 回です", "SpecificInfo": "特別情報", diff --git a/src/i18n/langs/zh.json b/src/i18n/langs/zh.json index 68a7d10e0..ac05eff0c 100644 --- a/src/i18n/langs/zh.json +++ b/src/i18n/langs/zh.json @@ -424,10 +424,11 @@ "ReLoginErr": "登录时长已超过 5 分钟,请重新登录" }, "common": { + "Now": "现在", "SpecificInfo": "特殊信息", "CollectionSucceed": "收藏成功", "CancelCollection": "取消收藏", - "Activity": "活动", + "Activity": "活动记录", "Last30": "最近 30 次", "Version": "版本", "Publish": "发布", diff --git a/src/layout/components/GenericDetailPage/index.vue b/src/layout/components/GenericDetailPage/index.vue index 490577f91..13da9e846 100644 --- a/src/layout/components/GenericDetailPage/index.vue +++ b/src/layout/components/GenericDetailPage/index.vue @@ -1,5 +1,5 @@ - + {{ iTitle }} @@ -19,7 +19,11 @@ import TabPage from '../TabPage' import { flashErrorMsg } from '@/utils/request' import { getApiPath } from '@/utils/common' import ActionsGroup from '@/components/ActionsGroup' +import ResourceActivity from '@/components/ResourceActivity/index.vue' import { mapGetters } from 'vuex' +import Vue from 'vue' + +Vue.component('ResourceActivity', ResourceActivity) export default { name: 'GenericDetailPage', @@ -54,6 +58,10 @@ export default { type: String, default: () => '' }, + hasActivity: { + type: Boolean, + default: () => true + }, hasRightSide: { type: Boolean, default: true @@ -101,14 +109,18 @@ export default { const defaultActions = { // Delete button canDelete: vm.$hasCurrentResAction('delete'), - deleteCallback: function(item) { vm.defaultDelete(item) }, + deleteCallback: function(item) { + vm.defaultDelete(item) + }, deleteApiUrl: detailApiUrl, deleteSuccessRoute: this.$route.name.replace('Detail', 'List'), // Update button canUpdate: () => { return !vm.currentOrgIsRoot && vm.$hasCurrentResAction('change') }, - updateCallback: function(item) { this.defaultUpdate(item) }, + updateCallback: function(item) { + this.defaultUpdate(item) + }, updateRoute: this.$route.name.replace('Detail', 'Update') } return { @@ -150,6 +162,17 @@ export default { set(item) { this.$emit('update:activeMenu', item) } + }, + iSubmenu() { + if (!this.hasActivity) { + return this.submenu + } + const activity = { + title: this.$t('common.Activity'), + name: 'ResourceActivity', + hidden: () => !this.$hasPerm('audits.view_operatelog') + } + return [...this.submenu, activity] } }, async mounted() { diff --git a/src/main.js b/src/main.js index 653522706..9f915da55 100644 --- a/src/main.js +++ b/src/main.js @@ -1,11 +1,9 @@ import Vue from 'vue' import 'normalize.css/normalize.css' // A modern alternative to CSS resets - import ElementUI from 'element-ui' import locale from 'elementLocale' import '@/styles/index.scss' // global css - import App from './App' import store from './store' import router from './router' @@ -15,6 +13,14 @@ import '@/icons' // icon import '@/guards' // permission control import '@/directive' import '@/filters' +// cookie +import VueCookie from 'vue-cookie' +import VueLogger from 'vuejs-logger' +import loggerOptions from './utils/logger' +import ECharts from 'vue-echarts' +import service from '@/utils/request' +import { Message } from '@/utils/Message' +import xss from '@/utils/xss' /** * If you don't want to use mock-server @@ -36,8 +42,6 @@ Vue.use(ElementUI, { locale }) Vue.config.productionTip = false -// cookie -import VueCookie from 'vue-cookie' Vue.use(VueCookie) window.$cookie = VueCookie @@ -47,23 +51,17 @@ Vue.use(require('vue-moment'), { moment }) -import VueLogger from 'vuejs-logger' -import loggerOptions from './utils/logger' Vue.use(VueLogger, loggerOptions) -import ECharts from 'vue-echarts' Vue.component('echarts', ECharts) -import service from '@/utils/request' Vue.prototype.$axios = service window._ = require('lodash') // Vue.set(Vue.prototype, '_', _) -import { Message } from '@/utils/Message' Vue.prototype.$message = Message -import xss from '@/utils/xss' Vue.prototype.$xss = xss // 注册全局事件总线 diff --git a/src/views/accounts/AssetAccount/AssetAccountDetail/index.vue b/src/views/accounts/AssetAccount/AssetAccountDetail/index.vue index b1a95fe54..03d12520f 100644 --- a/src/views/accounts/AssetAccount/AssetAccountDetail/index.vue +++ b/src/views/accounts/AssetAccount/AssetAccountDetail/index.vue @@ -1,7 +1,7 @@ @@ -14,14 +14,12 @@ - - diff --git a/src/views/assets/Asset/AssetDetail/index.vue b/src/views/assets/Asset/AssetDetail/index.vue index ae6682ad5..cafa931f2 100644 --- a/src/views/assets/Asset/AssetDetail/index.vue +++ b/src/views/assets/Asset/AssetDetail/index.vue @@ -1,7 +1,7 @@ @@ -16,7 +16,6 @@ import { GenericDetailPage, TabPage } from '@/layout/components' import Detail from './Detail.vue' import Account from './Account.vue' import PermUserList from './PermUser.vue' -import AccountActivity from './components/Activity.vue' export default { name: 'AssetListDetail', @@ -25,8 +24,7 @@ export default { TabPage, Detail, Account, - PermUserList, - AccountActivity + PermUserList }, data() { return { @@ -47,11 +45,6 @@ export default { title: this.$t('assets.PermUserList'), name: 'PermUserList', hidden: () => !this.$hasPerm('perms.view_assetpermission') - }, - { - title: this.$t('common.Activity'), - name: 'AccountActivity', - hidden: () => !this.$hasPerm('audits.view_operatelog') || !this.$hasPerm('terminal.view_session') } ], hasRightSide: true, diff --git a/src/views/assets/Domain/DomainDetail/index.vue b/src/views/assets/Domain/DomainDetail/index.vue index 2a1d0ba78..cc4164869 100644 --- a/src/views/assets/Domain/DomainDetail/index.vue +++ b/src/views/assets/Domain/DomainDetail/index.vue @@ -1,5 +1,5 @@ - + @@ -10,6 +10,7 @@ import { GenericDetailPage, TabPage } from '@/layout/components' import Detail from './Detail.vue' import GatewayList from './GatewayList.vue' + export default { components: { GenericDetailPage, diff --git a/src/views/assets/Platform/PlatformDetail/index.vue b/src/views/assets/Platform/PlatformDetail/index.vue index 5499f583f..f1a003f92 100644 --- a/src/views/assets/Platform/PlatformDetail/index.vue +++ b/src/views/assets/Platform/PlatformDetail/index.vue @@ -1,5 +1,5 @@ - + diff --git a/src/views/users/Group/UserGroupDetail/index.vue b/src/views/users/Group/UserGroupDetail/index.vue index 728edc54e..0de61f6f9 100644 --- a/src/views/users/Group/UserGroupDetail/index.vue +++ b/src/views/users/Group/UserGroupDetail/index.vue @@ -1,5 +1,5 @@ - + @@ -39,7 +39,7 @@ export default { diff --git a/src/views/users/Role/RoleDetail/index.vue b/src/views/users/Role/RoleDetail/index.vue index f6829c3a7..38292dc08 100644 --- a/src/views/users/Role/RoleDetail/index.vue +++ b/src/views/users/Role/RoleDetail/index.vue @@ -1,7 +1,7 @@ diff --git a/src/views/users/User/UserDetail/Activity.vue b/src/views/users/User/UserDetail/Activity.vue deleted file mode 100644 index e381c4378..000000000 --- a/src/views/users/User/UserDetail/Activity.vue +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - diff --git a/src/views/users/User/UserDetail/index.vue b/src/views/users/User/UserDetail/index.vue index f7786afba..86111d6c3 100644 --- a/src/views/users/User/UserDetail/index.vue +++ b/src/views/users/User/UserDetail/index.vue @@ -1,5 +1,5 @@ - + @@ -12,7 +12,6 @@ import UserAssetPermissionRules from './UserAssetPermissionRules' import UserGrantedAssets from './UserGrantedAssets' import UserLoginACLList from '@/views/acl/UserLoginACL/UserLoginACLList' import UserInfo from './UserInfo' -import UserActivity from './Activity.vue' export default { components: { @@ -20,8 +19,7 @@ export default { UserLoginACLList, GenericDetailPage, UserGrantedAssets, - UserAssetPermissionRules, - UserActivity + UserAssetPermissionRules }, data() { const vm = this @@ -51,11 +49,6 @@ export default { title: this.$t('route.UserAclLists'), name: 'UserLoginACLList', hidden: () => !vm.$hasPerm('acls.view_loginacl') - }, - { - title: this.$t('common.Activity'), - name: 'UserActivity', - hidden: () => !this.$hasPerm('audits.view_operatelog') || !this.$hasPerm('audits.view_userloginlog') } ] }