|
|
@@ -107,59 +107,10 @@
|
|
107
|
107
|
</el-form>
|
|
108
|
108
|
</el-dialog>
|
|
109
|
109
|
|
|
110
|
|
- <el-dialog v-model="ABFormVisible" width="800" :title="T('Create')">
|
|
111
|
|
- <el-form class="dialog-form" ref="form" :model="ABFormData" label-width="120px">
|
|
112
|
|
- <el-form-item :label="T('Owner')" prop="user_ids" required>
|
|
113
|
|
- <el-select v-model="ABFormData.user_ids" multiple>
|
|
114
|
|
- <el-option
|
|
115
|
|
- v-for="item in allUsers"
|
|
116
|
|
- :key="item.id"
|
|
117
|
|
- :label="item.username"
|
|
118
|
|
- :value="item.id"
|
|
119
|
|
- ></el-option>
|
|
120
|
|
- </el-select>
|
|
121
|
|
- </el-form-item>
|
|
122
|
|
- <el-form-item label="ID" prop="id" required>
|
|
123
|
|
- <el-input v-model="ABFormData.id"></el-input>
|
|
124
|
|
- </el-form-item>
|
|
125
|
|
- <el-form-item :label="T('Username')" prop="username">
|
|
126
|
|
- <el-input v-model="ABFormData.username"></el-input>
|
|
127
|
|
- </el-form-item>
|
|
128
|
|
- <el-form-item :label="T('Alias')" prop="alias">
|
|
129
|
|
- <el-input v-model="ABFormData.alias"></el-input>
|
|
130
|
|
- </el-form-item>
|
|
131
|
|
- <el-form-item :label="T('Hostname')" prop="hostname">
|
|
132
|
|
- <el-input v-model="ABFormData.hostname"></el-input>
|
|
133
|
|
- </el-form-item>
|
|
134
|
|
- <el-form-item :label="T('Platform')" prop="platform">
|
|
135
|
|
- <el-select v-model="ABFormData.platform">
|
|
136
|
|
- <el-option
|
|
137
|
|
- v-for="item in ABPlatformList"
|
|
138
|
|
- :key="item.value"
|
|
139
|
|
- :label="item.label"
|
|
140
|
|
- :value="item.value"
|
|
141
|
|
- ></el-option>
|
|
142
|
|
- </el-select>
|
|
143
|
|
- </el-form-item>
|
|
144
|
|
-
|
|
145
|
|
- <el-form-item :label="T('Tags')" prop="tags">
|
|
146
|
|
- <el-select v-model="ABFormData.tags" multiple>
|
|
147
|
|
- <el-option
|
|
148
|
|
- v-for="item in tagList"
|
|
149
|
|
- :key="item.name"
|
|
150
|
|
- :label="item.name"
|
|
151
|
|
- :value="item.name"
|
|
152
|
|
- ></el-option>
|
|
153
|
|
- </el-select>
|
|
154
|
|
- </el-form-item>
|
|
155
|
|
- <el-form-item>
|
|
156
|
|
- <el-button @click="ABFormVisible = false">{{ T('Cancel') }}</el-button>
|
|
157
|
|
- <el-button @click="ABSubmit" type="primary">{{ T('Submit') }}</el-button>
|
|
158
|
|
- </el-form-item>
|
|
159
|
|
- </el-form>
|
|
|
110
|
+ <el-dialog v-model="ABFormVisible" width="800" :title="T('Create')" destroy-on-close>
|
|
|
111
|
+ <createABForm :peer="clickRow" @success="ABFormVisible=false" @cancel="ABFormVisible=false"></createABForm>
|
|
160
|
112
|
</el-dialog>
|
|
161
|
113
|
|
|
162
|
|
-
|
|
163
|
114
|
<el-dialog v-model="batchABFormVisible" width="800" :title="T('Create')">
|
|
164
|
115
|
<el-form class="dialog-form" ref="form" :model="batchABFormData" label-width="120px">
|
|
165
|
116
|
<el-form-item :label="T('Owner')" prop="user_id" required>
|
|
|
@@ -205,16 +156,14 @@
|
|
205
|
156
|
import { T } from '@/utils/i18n'
|
|
206
|
157
|
import { timeAgo } from '@/utils/time'
|
|
207
|
158
|
import { jsonToCsv, downBlob } from '@/utils/file'
|
|
208
|
|
- import { useRepositories as useABRepositories } from '@/views/address_book/index'
|
|
209
|
159
|
import { loadAllUsers } from '@/global'
|
|
210
|
|
- import { list as fetchTagList } from '@/api/tag'
|
|
211
|
|
- import { batchCreate } from '@/api/address_book'
|
|
212
|
160
|
import { useAppStore } from '@/store/app'
|
|
213
|
161
|
import { connectByClient } from '@/utils/peer'
|
|
214
|
162
|
import { CopyDocument } from '@element-plus/icons'
|
|
215
|
163
|
import { handleClipboard } from '@/utils/clipboard'
|
|
216
|
164
|
import { batchCreateFromPeers } from '@/api/address_book'
|
|
217
|
165
|
import { useRepositories as useCollectionRepositories } from '@/views/address_book/collection'
|
|
|
166
|
+ import createABForm from '@/views/peer/createABForm.vue'
|
|
218
|
167
|
|
|
219
|
168
|
const appStore = useAppStore()
|
|
220
|
169
|
const listRes = reactive({
|
|
|
@@ -346,41 +295,12 @@
|
|
346
|
295
|
}
|
|
347
|
296
|
}
|
|
348
|
297
|
|
|
349
|
|
- //添加到地址簿 start
|
|
350
|
|
- const { allUsers, getAllUsers } = loadAllUsers()
|
|
351
|
|
- onMounted(getAllUsers)
|
|
352
|
|
- const {
|
|
353
|
|
- platformList: ABPlatformList,
|
|
354
|
|
- formVisible: ABFormVisible,
|
|
355
|
|
- formData: ABFormData,
|
|
356
|
|
- fromPeer,
|
|
357
|
|
- } = useABRepositories('admin')
|
|
358
|
|
- const toAddressBook = (peer) => {
|
|
359
|
|
- fromPeer(peer)
|
|
|
298
|
+ const ABFormVisible = ref(false)
|
|
|
299
|
+ const clickRow = ref({})
|
|
|
300
|
+ const toAddressBook = (row) => {
|
|
|
301
|
+ clickRow.value = row
|
|
360
|
302
|
ABFormVisible.value = true
|
|
361
|
303
|
}
|
|
362
|
|
- const ABSubmit = async () => {
|
|
363
|
|
- const res = await batchCreate(ABFormData).catch(_ => false)
|
|
364
|
|
- if (res) {
|
|
365
|
|
- ElMessage.success(T('OperationSuccess'))
|
|
366
|
|
- ABFormVisible.value = false
|
|
367
|
|
- }
|
|
368
|
|
- }
|
|
369
|
|
- const tagList = ref([])
|
|
370
|
|
- const fetchTagListData = async (user_id) => {
|
|
371
|
|
- const res = await fetchTagList({ user_id }).catch(_ => false)
|
|
372
|
|
- if (res) {
|
|
373
|
|
- const ls = []
|
|
374
|
|
- res.data.list.map(item => {
|
|
375
|
|
- if (!ls.includes(item.name)) {
|
|
376
|
|
- ls.push(item.name)
|
|
377
|
|
- }
|
|
378
|
|
- })
|
|
379
|
|
- tagList.value = ls.map(item => ({ name: item }))
|
|
380
|
|
- }
|
|
381
|
|
- }
|
|
382
|
|
- onMounted(fetchTagListData)
|
|
383
|
|
- // 添加到地址簿 end
|
|
384
|
304
|
|
|
385
|
305
|
const multipleSelection = ref([])
|
|
386
|
306
|
const handleSelectionChange = (val) => {
|
|
|
@@ -408,6 +328,8 @@
|
|
408
|
328
|
}
|
|
409
|
329
|
|
|
410
|
330
|
// 批量添加到地址簿 start
|
|
|
331
|
+ const { allUsers, getAllUsers } = loadAllUsers()
|
|
|
332
|
+ onMounted(getAllUsers)
|
|
411
|
333
|
const {
|
|
412
|
334
|
listRes: collectionListResForBatchCreateAB,
|
|
413
|
335
|
listQuery: collectionListQueryForBatchCreateAB,
|