dusenyao 3 years ago
parent
commit
c72c814880

+ 19 - 0
.vscode/javascript.code-snippets

@@ -0,0 +1,19 @@
+{
+  "api request": {
+    "scope": "javascript,typescript",
+    "prefix": "api",
+    "body": [
+      "export function ${0:n}(data) {",
+      "  let params = getRequestParameter('$1');",
+      "",
+      "  return request({",
+      "    method: 'post',",
+      "    url: process.env$2,",
+      "    params,",
+      "    data",
+      "  });",
+      "}"
+    ],
+    "description": "api 请求基本格式"
+  }
+}

+ 31 - 0
src/api/settings.js

@@ -0,0 +1,31 @@
+import { request, getRequestParameter } from '@/utils/request';
+
+/**
+ * 得到场景视频对接配置
+ * @param {Object} data
+ */
+export function GetLiveRoomConfig(data) {
+  let params = getRequestParameter('sys_config_manager-GetLiveRoomConfig');
+
+  return request({
+    method: 'post',
+    url: process.env.VUE_APP_FileServer,
+    params,
+    data
+  });
+}
+
+/**
+ * 设置场景视频对接配置
+ * @param {Object} data
+ */
+export function SetLiveRoomConfig(data) {
+  let params = getRequestParameter('sys_config_manager-SetLiveRoomConfig');
+
+  return request({
+    method: 'post',
+    url: process.env.VUE_APP_FileServer,
+    params,
+    data
+  });
+}

+ 5 - 0
src/layouts/components/LayoutHeader.vue

@@ -81,6 +81,11 @@ export default {
           path: '/upload/uploadList',
           name: '文件静态资源',
           isShow: is_inner
+        },
+        {
+          path: '/settings/LiveRoomConfig',
+          name: '系统配置',
+          isShow: is_inner
         }
       ];
 

+ 20 - 0
src/router/index.js

@@ -142,6 +142,26 @@ const routes = [
     ]
   },
   {
+    path: '/settings',
+    component: Layout,
+    meta: { title: '系统配置' },
+    redirect: '/settings/index',
+    children: [
+      {
+        path: '/settings/index',
+        component: () => import('@/views/settings'),
+        children: [
+          {
+            path: '/settings/LiveRoomConfig',
+            components: {
+              configure: () => import('@/views/settings/configure/LiveRoomConfig.vue')
+            }
+          }
+        ]
+      }
+    ]
+  },
+  {
     path: '*',
     redirect: '/404'
   }

+ 55 - 0
src/views/settings/configure/LiveRoomConfig.vue

@@ -0,0 +1,55 @@
+<template>
+  <!-- 场景视频对接配置 -->
+  <div class="live-config">
+    <el-form ref="form" :model="form" label-width="120px">
+      <el-form-item label="授权用户 ID">
+        <el-input v-model="form.user_id" />
+      </el-form-item>
+      <el-form-item label="接口对接键值">
+        <el-input v-model="form.api_key" />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" @click="setLiveRoomConfig">应用</el-button>
+      </el-form-item>
+    </el-form>
+  </div>
+</template>
+
+<script>
+import { GetLiveRoomConfig, SetLiveRoomConfig } from '@/api/settings';
+
+export default {
+  data() {
+    return {
+      form: {
+        user_id: '',
+        api_key: ''
+      }
+    };
+  },
+  created() {
+    this.getLiveRoomConfig();
+  },
+  methods: {
+    getLiveRoomConfig() {
+      GetLiveRoomConfig().then(({ user_id, api_key }) => {
+        this.form = { user_id, api_key };
+      });
+    },
+
+    setLiveRoomConfig() {
+      SetLiveRoomConfig({ user_id: this.form.user_id, api_key: this.form.api_key }).then(() => {
+        this.$message.success('设置场景视频对接配置成功');
+      });
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.live-config {
+  .el-input {
+    width: 80%;
+  }
+}
+</style>

+ 48 - 0
src/views/settings/index.vue

@@ -0,0 +1,48 @@
+<template>
+  <el-container class="settings">
+    <el-aside width="200px">
+      <el-menu default-active="1" @select="handleSelect">
+        <el-menu-item index="1">
+          <span slot="title">设置场景视频对接配置</span>
+        </el-menu-item>
+      </el-menu>
+    </el-aside>
+
+    <el-container>
+      <el-main>
+        <router-view name="configure" />
+      </el-main>
+    </el-container>
+  </el-container>
+</template>
+
+<script>
+export default {
+  data() {
+    return {};
+  },
+  methods: {
+    handleSelect() {
+      // this.$router.push('/settings/LiveRoomConfig');
+    }
+  }
+};
+</script>
+
+<style lang="scss">
+@import '~@/styles/mixin.scss';
+
+.settings {
+  @include container;
+
+  padding: 32px 0;
+
+  > .el-aside {
+    background-color: #ddd;
+  }
+
+  .el-main {
+    background-color: #fff;
+  }
+}
+</style>