lejianwen 1 год назад
Родитель
Сommit
ce7ee9cce3
2 измененных файлов с 61 добавлено и 7 удалено
  1. 8 7
      src/views/rustdesk/control.vue
  2. 53 0
      src/views/rustdesk/usage.vue

+ 8 - 7
src/views/rustdesk/control.vue

@@ -19,11 +19,12 @@
19 19
     >
20 20
       <el-tab-pane :label="T('Simple')" name="Simple">
21 21
         <el-space>
22
-          <RelayServers ref="rs" :can-send="canSendCmd(ID_TARGET)"></RelayServers>
23
-          <alwaysUseRelay :can-send="canSendCmd(ID_TARGET)" @success="handleAlwaysUseRelaySuccess"></alwaysUseRelay>
24
-          <mustLogin v-if="canControlMustLogin" :can-send="canSendCmd(ID_TARGET)"></mustLogin>
25
-          <blocklist :can-send="canSendCmd(RELAY_TARGET)"></blocklist>
26
-          <blacklist :can-send="canSendCmd(RELAY_TARGET)"></blacklist>
22
+          <RelayServers ref="rs" :can-send="canSendIdServerCmd"/>
23
+          <alwaysUseRelay :can-send="canSendIdServerCmd" @success="handleAlwaysUseRelaySuccess"/>
24
+          <mustLogin v-if="canControlMustLogin" :can-send="canSendIdServerCmd"/>
25
+          <blocklist :can-send="canSendRelayServerCmd"/>
26
+          <blacklist :can-send="canSendRelayServerCmd"/>
27
+          <usage :can-send="canSendRelayServerCmd"/>
27 28
         </el-space>
28 29
 
29 30
 
@@ -119,16 +120,16 @@
119 120
   import { onMounted, reactive, ref } from 'vue'
120 121
   import { T } from '@/utils/i18n'
121 122
   import { ElMessage, ElMessageBox } from 'element-plus'
123
+  import { ID_TARGET, RELAY_TARGET } from '@/views/rustdesk/options'
122 124
   import blocklist from '@/views/rustdesk/blocklist.vue'
123 125
   import blacklist from '@/views/rustdesk/blacklist.vue'
124 126
   import alwaysUseRelay from '@/views/rustdesk/always_use_relay.vue'
125 127
   import RelayServers from '@/views/rustdesk/relay_servers.vue'
126 128
   import mustLogin from '@/views/rustdesk/must_login.vue'
127
-  import { ID_TARGET, RELAY_TARGET } from '@/views/rustdesk/options'
129
+  import usage from '@/views/rustdesk/usage.vue'
128 130
 
129 131
   const activeName = ref('Simple')
130 132
 
131
-
132 133
   const canSendIdServerCmd = ref(false)
133 134
   const checkCanSendIdServerCmd = async () => {
134 135
     const res = await sendCmd({ cmd: 'h', target: ID_TARGET }).catch(_ => false)

+ 53 - 0
src/views/rustdesk/usage.vue

@@ -0,0 +1,53 @@
1
+<template>
2
+  <el-card class="simple-card" shadow="hover" v-loading="form.loading">
3
+    <template #header>
4
+      <div class="card-header">
5
+        <span>USAGE</span>
6
+      </div>
7
+    </template>
8
+    <el-form :disabled="!canSend">
9
+      <el-form-item>
10
+        <el-input type="textarea" :model-value="form.list.join('|')" :rows="5" readonly></el-input>
11
+      </el-form-item>
12
+      <el-form-item>
13
+        <el-button @click="getList">{{ T('Refresh') }}</el-button>
14
+      </el-form-item>
15
+    </el-form>
16
+  </el-card>
17
+</template>
18
+<script setup>
19
+
20
+  import { T } from '@/utils/i18n'
21
+  import { reactive, watch } from 'vue'
22
+  import { sendCmd } from '@/api/rustdesk'
23
+  import { RELAY_TARGET } from '@/views/rustdesk/options'
24
+
25
+  const props = defineProps({
26
+    canSend: Boolean,
27
+  })
28
+
29
+  const form = reactive({
30
+    get_cmd: 'u',
31
+    list: [],
32
+    target: RELAY_TARGET,
33
+    loading: false,
34
+  })
35
+  const getList = async () => {
36
+    form.loading = true
37
+    const res = await sendCmd({ cmd: form.get_cmd, target: RELAY_TARGET }).catch(_ => false)
38
+    form.loading = false
39
+    if (res) {
40
+      form.list = res.data.split('\n').filter(i => i)
41
+    }
42
+  }
43
+  watch(() => props.canSend, (v) => {
44
+    if (v) {
45
+      getList()
46
+    }
47
+  })
48
+
49
+
50
+</script>
51
+<style scoped lang="scss">
52
+
53
+</style>