Jelajahi Sumber

更新 admin.js 中的路由和 LeftAside.vue 侧边栏中的 menu

reghao 7 bulan lalu
induk
melakukan
611e2f3a21
3 mengubah file dengan 333 tambahan dan 0 penghapusan
  1. 65 0
      src/router/admin.js
  2. 48 0
      src/views/admin/LeftAside.vue
  3. 220 0
      src/views/user/AdminUserList.vue

+ 65 - 0
src/router/admin.js

@@ -17,6 +17,7 @@ const PostAnalysis = () => import('views/post/PostAnalysis')
 const History = () => import('views/post/History')
 const PostAlbum = () => import('views/post/PostAlbum')
 // 稿件后台管理
+const AdminUserList = () => import('views/user/AdminUserList')
 const VideoPost = () => import('views/post/VideoPost')
 const VideoPostEdit = () => import('views/post/VideoPostEdit')
 const ImagePost = () => import('views/post/ImagePost')
@@ -155,6 +156,70 @@ export default {
           meta: { needAuth: true }
         }
       ]
+    },
+    {
+      path: '/background/admin',
+      name: 'Post',
+      component: PostIndex,
+      meta: { needAuth: true },
+      children: [
+        {
+          path: '/background/admin/user',
+          name: 'AdminUserList',
+          component: AdminUserList,
+          meta: { needAuth: true }
+        },
+        {
+          path: '/background/admin/video',
+          name: 'VideoPost',
+          component: VideoPost,
+          meta: { needAuth: true }
+        },
+        {
+          path: '/background/admin/image',
+          name: 'ImagePost',
+          component: ImagePost,
+          meta: { needAuth: true }
+        },
+        {
+          path: '/background/admin/article',
+          name: 'ArticlePost',
+          component: ArticlePost,
+          meta: { needAuth: true }
+        }
+      ]
+    },
+    {
+      path: '/background/backend',
+      name: 'Backend',
+      component: PostIndex,
+      meta: { needAuth: true },
+      children: [
+        {
+          path: '/background/backend/gateway',
+          name: 'Gateway',
+          component: AdminUserList,
+          meta: { needAuth: true }
+        },
+        {
+          path: '/background/backend/service',
+          name: 'Service',
+          component: AdminUserList,
+          meta: { needAuth: true }
+        },
+        {
+          path: '/background/backend/access_log',
+          name: 'AccessLog',
+          component: AdminUserList,
+          meta: { needAuth: true }
+        },
+        {
+          path: '/background/backend/runtime_log',
+          name: 'RuntimeLog',
+          component: AdminUserList,
+          meta: { needAuth: true }
+        }
+      ]
     }
   ]
 }

+ 48 - 0
src/views/admin/LeftAside.vue

@@ -91,6 +91,54 @@
       <i class="el-icon-setting" />
       <span slot="title">导航四</span>
     </el-menu-item>
+    <el-submenu index="/background/admin">
+      <template slot="title">
+        <i class="el-icon-files" />
+        <span>后台管理</span>
+      </template>
+      <el-menu-item-group>
+        <el-menu-item index="/background/admin/user">
+          <i class="el-icon-user" />
+          <span slot="title">管理用户</span>
+        </el-menu-item>
+        <el-menu-item index="/background/admin/video">
+          <i class="el-icon-film" />
+          <span slot="title">管理视频</span>
+        </el-menu-item>
+        <el-menu-item index="/background/admin/image">
+          <i class="el-icon-picture" />
+          <span slot="title">管理相册</span>
+        </el-menu-item>
+        <el-menu-item index="/background/admin/article">
+          <i class="el-icon-document" />
+          <span slot="title">管理文章</span>
+        </el-menu-item>
+      </el-menu-item-group>
+    </el-submenu>
+    <el-submenu index="/background/backend">
+      <template slot="title">
+        <i class="el-icon-loading" />
+        <span>后端系统</span>
+      </template>
+      <el-menu-item-group>
+        <el-menu-item index="/background/backend/gateway">
+          <i class="el-icon-user" />
+          <span slot="title">网关</span>
+        </el-menu-item>
+        <el-menu-item index="/background/backend/service">
+          <i class="el-icon-user" />
+          <span slot="title">服务</span>
+        </el-menu-item>
+        <el-menu-item index="/background/backend/access_log">
+          <i class="el-icon-film" />
+          <span slot="title">访问日志</span>
+        </el-menu-item>
+        <el-menu-item index="/background/backend/runtime_log">
+          <i class="el-icon-film" />
+          <span slot="title">运行日志</span>
+        </el-menu-item>
+      </el-menu-item-group>
+    </el-submenu>
   </el-menu>
 </template>
 

+ 220 - 0
src/views/user/AdminUserList.vue

@@ -0,0 +1,220 @@
+<template>
+  <el-container>
+    <el-header height="220">
+      <el-row style="margin-top: 10px">
+        <el-select
+          v-model="queryInfo.scope"
+          clearable
+          placeholder="查询条件"
+          style="margin-left: 5px"
+          @change="onSelectChange"
+        />
+      </el-row>
+    </el-header>
+    <el-main>
+      <el-table
+        :data="dataList"
+        border
+        style="width: 100%"
+      >
+        <el-table-column
+          fixed="left"
+          label="No"
+          type="index"
+        />
+        <el-table-column
+          prop="avatarUrl"
+          label="头像"
+          width="90"
+        >
+          <template slot-scope="scope">
+            <el-image :src="scope.row.avatarUrl" min-width="30" height="20" />
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="userId"
+          label="用户 ID"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="username"
+          label="用户名"
+        />
+        <el-table-column
+          prop="screenName"
+          label="显示名"
+        >
+          <template slot-scope="scope">
+            <router-link target="_blank" :to="`/user/${scope.row.userIdStr}`">
+              <span>{{ scope.row.userId }}</span>
+            </router-link>
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="description"
+          label="签名"
+          :show-overflow-tooltip="true"
+        >
+          <template slot-scope="scope">
+            <el-tooltip
+              v-if="scope.row.description"
+              :content="scope.row.description"
+              raw-content
+              placement="top-start"
+            >
+              <span v-if="scope.row.description && scope.row.description.length <= 15">
+                {{ scope.row.description }}
+              </span>
+              <span v-if="scope.row.description && scope.row.description.length > 15">
+                {{ scope.row.description.substr(0, 15) + "..." }}
+              </span>
+            </el-tooltip>
+            <span v-else-if="scope.row.description === null">-</span>
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="pubDate"
+          label="注册时间"
+          width="150"
+        />
+        <el-table-column
+          prop="scope"
+          label="帐号状态"
+          width="120"
+        >
+          <template slot-scope="scope">
+            <el-tag v-if="scope.row.status === 1" :type="'warning'" disable-transitions>
+              正常
+            </el-tag>
+            <el-tag v-else-if="scope.row.status === 2" :type="'success'" disable-transitions>
+              封禁中
+            </el-tag>
+            <el-tag v-else :type="'danger'" disable-transitions>
+              已注销
+            </el-tag>
+          </template>
+        </el-table-column>
+        <el-table-column
+          fixed="right"
+          label="操作"
+          width="280"
+        >
+          <template slot-scope="scope">
+            <el-button
+              size="mini"
+              @click="handleEdit(scope.$index, scope.row)"
+            >编辑</el-button>
+            <el-button
+              size="mini"
+              type="danger"
+              @click="handleDelete(scope.$index, scope.row)"
+            >删除</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-pagination
+        background
+        :small="screenWidth <= 768"
+        layout="prev, pager, next"
+        :page-size="pageSize"
+        :current-page="currentPage"
+        :total="totalSize"
+        @current-change="handleCurrentChange"
+        @prev-click="handleCurrentChange"
+        @next-click="handleCurrentChange"
+      />
+    </el-main>
+
+    <!-- 修改视频可见范围对话框 -->
+    <el-dialog
+      append-to-body
+      :visible.sync="showEditScopeDialog"
+      width="30%"
+      center
+    >
+      <el-card class="box-card">
+        <div slot="header" class="clearfix">
+          <span>修改视频可见范围</span>
+          <el-button style="float: right; padding: 3px 0" type="text" @click="onUpdateScope">更新</el-button>
+        </div>
+        <div class="text item">
+          <el-select v-model="form.scope" placeholder="选择可见范围">
+            <el-option label="本人可见" value="1" />
+            <el-option label="所有人可见" value="2" />
+            <el-option label="VIP 可见" value="3" />
+            <el-option label="验证码可见" value="4" />
+          </el-select>
+        </div>
+      </el-card>
+    </el-dialog>
+  </el-container>
+</template>
+
+<script>
+export default {
+  name: 'AdminUserList',
+  data() {
+    return {
+      queryInfo: {
+        scope: null,
+        pn: 1
+      },
+      // 屏幕宽度, 为了控制分页条的大小
+      screenWidth: document.body.clientWidth,
+      currentPage: 1,
+      pageSize: 12,
+      totalSize: 0,
+      dataList: [],
+      // **********************************************************************
+      showEditScopeDialog: false,
+      form: {
+        videoId: null,
+        scope: 1
+      }
+    }
+  },
+  created() {
+    document.title = '用户管理'
+    this.getData()
+  },
+  methods: {
+    handleCurrentChange(pageNumber) {
+      this.currentPage = pageNumber
+      this.getData()
+      // 回到顶部
+      scrollTo(0, 0)
+    },
+    getData() {
+      this.dataList = []
+    },
+    handleEdit(index, row) {
+      this.$message.info('handleEdit')
+    },
+    handleDelete(index, row) {
+      this.$confirm('确定要删除 ' + row.title + '?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        this.$message.info('handleDelete')
+      }).catch(() => {
+        this.$message({
+          type: 'info',
+          message: '已取消'
+        })
+      })
+    },
+    onUpdateScope() {
+      this.showEditScopeDialog = false
+    },
+    onSelectChange() {
+      this.$message.info(this.queryInfo)
+    },
+    handleClose() {
+    }
+  }
+}
+</script>
+
+<style>
+</style>