lejianwen 1 год назад
Родитель
Сommit
c571aaa3ab
3 измененных файлов с 38 добавлено и 53 удалено
  1. 19 0
      src/views/address_book/index.js
  2. 17 39
      src/views/my/peer/index.vue
  3. 2 14
      src/views/peer/index.vue

+ 19 - 0
src/views/address_book/index.js

@@ -195,6 +195,23 @@ export function useRepositories (is_my = 0) {
195
     getTagList()
195
     getTagList()
196
   }
196
   }
197
 
197
 
198
+  const fromPeer = (peer) => {
199
+    formData.id = peer.id
200
+    formData.username = peer.username
201
+    formData.hostname = peer.hostname
202
+    //匹配os
203
+    if (peer.os.indexOf('windows') !== -1) {
204
+      formData.platform = platformList.find(item => item.label === 'Windows').value
205
+    } else if (peer.os.indexOf('linux') !== -1) {
206
+      formData.platform = platformList.find(item => item.label === 'Linux').value
207
+    } else if (peer.os.indexOf('android') !== -1) {
208
+      formData.platform = platformList.find(item => item.label === 'Android').value
209
+    } else if (peer.os.indexOf('mac') !== -1) {
210
+      formData.platform = platformList.find(item => item.label === 'Mac OS').value
211
+    }
212
+    formData.uuid = peer.uuid
213
+  }
214
+
198
   return {
215
   return {
199
     listRes,
216
     listRes,
200
     listQuery,
217
     listQuery,
@@ -225,5 +242,7 @@ export function useRepositories (is_my = 0) {
225
     changeQueryUser,
242
     changeQueryUser,
226
     changeUser,
243
     changeUser,
227
     changeCollection,
244
     changeCollection,
245
+
246
+    fromPeer,
228
   }
247
   }
229
 }
248
 }

+ 17 - 39
src/views/my/peer/index.vue

@@ -19,7 +19,7 @@
19
             ></el-option>
19
             ></el-option>
20
           </el-select>
20
           </el-select>
21
         </el-form-item>
21
         </el-form-item>
22
-        <el-form-item >
22
+        <el-form-item>
23
           <el-button type="primary" @click="handlerQuery">{{ T('Filter') }}</el-button>
23
           <el-button type="primary" @click="handlerQuery">{{ T('Filter') }}</el-button>
24
           <el-button type="success" @click="toExport">{{ T('Export') }}</el-button>
24
           <el-button type="success" @click="toExport">{{ T('Export') }}</el-button>
25
           <el-button type="danger" @click="toBatchDelete">{{ T('BatchDelete') }}</el-button>
25
           <el-button type="danger" @click="toBatchDelete">{{ T('BatchDelete') }}</el-button>
@@ -71,9 +71,9 @@
71
                      :total="listRes.total">
71
                      :total="listRes.total">
72
       </el-pagination>
72
       </el-pagination>
73
     </el-card>
73
     </el-card>
74
-    <el-dialog v-model="formVisible" :title="T('Information')" width="800" :style="{ textAlign: 'center' }" >
74
+    <el-dialog v-model="formVisible" :title="T('Information')" width="800" :style="{ textAlign: 'center' }">
75
       <el-form class="dialog-form" ref="form" :model="formData" label-width="120px">
75
       <el-form class="dialog-form" ref="form" :model="formData" label-width="120px">
76
-        <el-form-item label="ID" prop="id" >
76
+        <el-form-item label="ID" prop="id">
77
           <el-input v-model="formData.id" disabled></el-input>
77
           <el-input v-model="formData.id" disabled></el-input>
78
         </el-form-item>
78
         </el-form-item>
79
         <el-form-item :label="T('Username')" prop="username">
79
         <el-form-item :label="T('Username')" prop="username">
@@ -102,14 +102,10 @@
102
 
102
 
103
     <el-dialog v-model="ABFormVisible" width="800" :title="T('Create')">
103
     <el-dialog v-model="ABFormVisible" width="800" :title="T('Create')">
104
       <el-form class="dialog-form" ref="form" :model="ABFormData" label-width="120px">
104
       <el-form class="dialog-form" ref="form" :model="ABFormData" label-width="120px">
105
-        <el-form-item :label="T('Owner')" prop="user_ids" required>
106
-          <el-select v-model="ABFormData.user_ids" multiple>
107
-            <el-option
108
-                v-for="item in allUsers"
109
-                :key="item.id"
110
-                :label="item.username"
111
-                :value="item.id"
112
-            ></el-option>
105
+        <el-form-item :label="T('AddressBookName')" required prop="collection_id">
106
+          <el-select v-model="ABFormData.collection_id" clearable @change="changeCollection">
107
+            <el-option :value="0" :label="T('MyAddressBook')"></el-option>
108
+            <el-option v-for="c in collectionListRes.list" :key="c.id" :label="c.name" :value="c.id"></el-option>
113
           </el-select>
109
           </el-select>
114
         </el-form-item>
110
         </el-form-item>
115
         <el-form-item label="ID" prop="id" required>
111
         <el-form-item label="ID" prop="id" required>
@@ -138,7 +134,7 @@
138
         <el-form-item :label="T('Tags')" prop="tags">
134
         <el-form-item :label="T('Tags')" prop="tags">
139
           <el-select v-model="ABFormData.tags" multiple>
135
           <el-select v-model="ABFormData.tags" multiple>
140
             <el-option
136
             <el-option
141
-                v-for="item in tagList"
137
+                v-for="item in tagListRes.list"
142
                 :key="item.name"
138
                 :key="item.name"
143
                 :label="item.name"
139
                 :label="item.name"
144
                 :value="item.name"
140
                 :value="item.name"
@@ -164,9 +160,6 @@
164
   import { timeAgo } from '@/utils/time'
160
   import { timeAgo } from '@/utils/time'
165
   import { jsonToCsv, downBlob } from '@/utils/file'
161
   import { jsonToCsv, downBlob } from '@/utils/file'
166
   import { useRepositories as useABRepositories } from '@/views/address_book/index'
162
   import { useRepositories as useABRepositories } from '@/views/address_book/index'
167
-  import { loadAllUsers } from '@/global'
168
-  import { list as fetchTagList } from '@/api/tag'
169
-  import { batchCreate } from '@/api/address_book'
170
   import { useAppStore } from '@/store/app'
163
   import { useAppStore } from '@/store/app'
171
   import { connectByClient } from '@/utils/peer'
164
   import { connectByClient } from '@/utils/peer'
172
   import { CopyDocument } from '@element-plus/icons'
165
   import { CopyDocument } from '@element-plus/icons'
@@ -244,7 +237,7 @@
244
       formData[key] = row[key]
237
       formData[key] = row[key]
245
     })
238
     })
246
   }
239
   }
247
-  
240
+
248
   const timeDis = (time) => {
241
   const timeDis = (time) => {
249
     let now = new Date().getTime()
242
     let now = new Date().getTime()
250
     let after = new Date(time * 1000).getTime()
243
     let after = new Date(time * 1000).getTime()
@@ -284,33 +277,18 @@
284
     platformList: ABPlatformList,
277
     platformList: ABPlatformList,
285
     formVisible: ABFormVisible,
278
     formVisible: ABFormVisible,
286
     formData: ABFormData,
279
     formData: ABFormData,
280
+    collectionListRes,
281
+    getCollectionList,
282
+    tagListRes,
283
+    changeCollection,
284
+    submit: ABSubmit,
285
+    fromPeer
287
   } = useABRepositories()
286
   } = useABRepositories()
287
+  onMounted(getCollectionList)
288
   const toAddressBook = (peer) => {
288
   const toAddressBook = (peer) => {
289
-    ABFormData.id = peer.id
290
-    ABFormData.username = peer.username
291
-    ABFormData.hostname = peer.hostname
292
-    //匹配os
293
-    if (peer.os.indexOf('windows') !== -1) {
294
-      ABFormData.platform = ABPlatformList.find(item => item.label === 'Windows').value
295
-    } else if (peer.os.indexOf('linux') !== -1) {
296
-      ABFormData.platform = ABPlatformList.find(item => item.label === 'Linux').value
297
-    } else if (peer.os.indexOf('android') !== -1) {
298
-      ABFormData.platform = ABPlatformList.find(item => item.label === 'Android').value
299
-    } else if (peer.os.indexOf('mac') !== -1) {
300
-      ABFormData.platform = ABPlatformList.find(item => item.label === 'Mac OS').value
301
-    }
302
-    ABFormData.uuid = peer.uuid
289
+    fromPeer(peer)
303
     ABFormVisible.value = true
290
     ABFormVisible.value = true
304
-
305
   }
291
   }
306
-  const ABSubmit = async () => {
307
-    const res = await batchCreate(ABFormData).catch(_ => false)
308
-    if (res) {
309
-      ElMessage.success(T('OperationSuccess'))
310
-      ABFormVisible.value = false
311
-    }
312
-  }
313
-
314
 
292
 
315
   const multipleSelection = ref([])
293
   const multipleSelection = ref([])
316
   const handleSelectionChange = (val) => {
294
   const handleSelectionChange = (val) => {

+ 2 - 14
src/views/peer/index.vue

@@ -311,22 +311,10 @@
311
     platformList: ABPlatformList,
311
     platformList: ABPlatformList,
312
     formVisible: ABFormVisible,
312
     formVisible: ABFormVisible,
313
     formData: ABFormData,
313
     formData: ABFormData,
314
+    fromPeer,
314
   } = useABRepositories()
315
   } = useABRepositories()
315
   const toAddressBook = (peer) => {
316
   const toAddressBook = (peer) => {
316
-    ABFormData.id = peer.id
317
-    ABFormData.username = peer.username
318
-    ABFormData.hostname = peer.hostname
319
-    //匹配os
320
-    if (peer.os.indexOf('windows') !== -1) {
321
-      ABFormData.platform = ABPlatformList.find(item => item.label === 'Windows').value
322
-    } else if (peer.os.indexOf('linux') !== -1) {
323
-      ABFormData.platform = ABPlatformList.find(item => item.label === 'Linux').value
324
-    } else if (peer.os.indexOf('android') !== -1) {
325
-      ABFormData.platform = ABPlatformList.find(item => item.label === 'Android').value
326
-    } else if (peer.os.indexOf('mac') !== -1) {
327
-      ABFormData.platform = ABPlatformList.find(item => item.label === 'Mac OS').value
328
-    }
329
-    ABFormData.uuid = peer.uuid
317
+    fromPeer(peer)
330
     ABFormVisible.value = true
318
     ABFormVisible.value = true
331
 
319
 
332
   }
320
   }