diff --git a/src/views/server/bigbrother/index.vue b/src/views/server/bigbrother/index.vue
index feee814..c3e74a6 100644
--- a/src/views/server/bigbrother/index.vue
+++ b/src/views/server/bigbrother/index.vue
@@ -108,6 +108,12 @@
v-hasPermi="['server:big-brother:export']">
导出
+
+ 批量复制大哥id
+
+
+ 批量复制主播id
+
{{ t('newHosts.allocation') }}
@@ -223,7 +229,7 @@ const queryParams = reactive({
const queryFormRef = ref() // 搜索的表单
const exportLoading = ref(false) // 导出的加载中
let dialogAllocation = ref(false)//分配弹窗
-let selectHostList = ref([]) //选中的主播列表
+let selectBigList = ref([]) //选中的主播列表
let allocationUser = ref('') //选中的分配用户
let allocationUserList = ref([
{
@@ -321,29 +327,79 @@ const getAllocationList = async () => {
//分配按钮操作
const handleSelectionChange = (val) => {
- selectHostList.value = val
- console.log(selectHostList.value)
+ selectBigList.value = val
+ console.log(selectBigList.value)
}
//分配确认
function AllocationFun() {
console.log('分配用户', allocationUser.value)
- console.log('分配主播', selectHostList.value)
- if (allocationUser.value == undefined || selectHostList.value.length <= 0) {
+ console.log('分配主播', selectBigList.value)
+ if (allocationUser.value == undefined || selectBigList.value.length <= 0) {
message.error('请选择分配用户和主播')
return
}
- selectHostList.value.forEach((item) => {
+ selectBigList.value.forEach((item) => {
item.userId = allocationUser.value;
item.isAssigned = 1;
})
- console.log('数组', selectHostList.value)
- BigBrotherApi.Allocation(selectHostList.value).then((res) => {
- message.success(`分配${selectHostList.value.length}个,成功${res}个`)
+ console.log('数组', selectBigList.value)
+ BigBrotherApi.Allocation(selectBigList.value).then((res) => {
+ message.success(`分配${selectBigList.value.length}个,成功${res}个`)
dialogAllocation.value = false
getList()
})
}
+
+function exportAi(type) {
+ if (selectBigList.value.length === 0) {
+ ElMessage.error('请选择主播')
+ return
+ }
+ let data = ''
+ if (type == 1) {
+ data = selectBigList.value.map(item => item.displayId).join('\n')
+ } else {
+ data = selectBigList.value.map(item => item.hostDisplayId).join('\n')
+ }
+
+
+ const copyToClipboard = async (text) => {
+ // 优先使用 Clipboard API
+ if (navigator.clipboard && window.isSecureContext) {
+ try {
+ await navigator.clipboard.writeText(text)
+ ElMessage.success('✅ 复制成功 ' + selectBigList.value.length + ' 条数据')
+ } catch (err) {
+ ElMessage.error('❌ 复制失败')
+ console.error(err)
+ }
+ } else {
+ // fallback 兼容方案
+ const textarea = document.createElement('textarea')
+ textarea.value = text
+ textarea.style.position = 'fixed' // 避免跳动
+ textarea.style.opacity = '0'
+ document.body.appendChild(textarea)
+ textarea.select()
+ try {
+ const result = document.execCommand('copy')
+ if (result) {
+ ElMessage.success('✅(兼容模式)复制成功 ' + selectBigList.value.length + ' 条数据')
+ } else {
+ ElMessage.error('❌(兼容模式)复制失败')
+ }
+ } catch (err) {
+ ElMessage.error('❌(兼容模式)复制异常')
+ console.error(err)
+ } finally {
+ document.body.removeChild(textarea)
+ }
+ }
+ }
+
+ copyToClipboard(data)
+}
/** 初始化 **/
onMounted(() => {
getList()
diff --git a/src/views/server/employeebigbrother/index.vue b/src/views/server/employeebigbrother/index.vue
index c5a49d2..0b1939d 100644
--- a/src/views/server/employeebigbrother/index.vue
+++ b/src/views/server/employeebigbrother/index.vue
@@ -96,6 +96,12 @@
v-hasPermi="['server:employee-big-brother:export']">
导出
+
+ 批量复制大哥id
+
+
+ 批量复制主播id
+
@@ -191,6 +197,7 @@ const queryParams = reactive({
createTimeEnd: '',
operationStatus: undefined
})
+
const queryFormRef = ref() // 搜索的表单
const exportLoading = ref(false) // 导出的加载中
let selectBigList = ref([])
@@ -309,6 +316,57 @@ function openHtml(item, id) {
window.open(`https://www.tiktok.com/@${id}`)
}
+
+
+function exportAi(type) {
+ if (selectBigList.value.length === 0) {
+ ElMessage.error('请选择主播')
+ return
+ }
+ let data = ''
+ if (type == 1) {
+ data = selectBigList.value.map(item => item.displayId).join('\n')
+ } else {
+ data = selectBigList.value.map(item => item.hostDisplayId).join('\n')
+ }
+
+
+ const copyToClipboard = async (text) => {
+ // 优先使用 Clipboard API
+ if (navigator.clipboard && window.isSecureContext) {
+ try {
+ await navigator.clipboard.writeText(text)
+ ElMessage.success('✅ 复制成功 ' + selectBigList.value.length + ' 条数据')
+ } catch (err) {
+ ElMessage.error('❌ 复制失败')
+ console.error(err)
+ }
+ } else {
+ // fallback 兼容方案
+ const textarea = document.createElement('textarea')
+ textarea.value = text
+ textarea.style.position = 'fixed' // 避免跳动
+ textarea.style.opacity = '0'
+ document.body.appendChild(textarea)
+ textarea.select()
+ try {
+ const result = document.execCommand('copy')
+ if (result) {
+ ElMessage.success('✅(兼容模式)复制成功 ' + selectBigList.value.length + ' 条数据')
+ } else {
+ ElMessage.error('❌(兼容模式)复制失败')
+ }
+ } catch (err) {
+ ElMessage.error('❌(兼容模式)复制异常')
+ console.error(err)
+ } finally {
+ document.body.removeChild(textarea)
+ }
+ }
+ }
+
+ copyToClipboard(data)
+}
/** 初始化 **/
onMounted(() => {
getList()
diff --git a/src/views/server/manageemployeebigbrother/index.vue b/src/views/server/manageemployeebigbrother/index.vue
index 6a383b8..9da422a 100644
--- a/src/views/server/manageemployeebigbrother/index.vue
+++ b/src/views/server/manageemployeebigbrother/index.vue
@@ -99,6 +99,12 @@
{{ t('newHosts.allocation') }}
+
+ 批量复制大哥id
+
+
+ 批量复制主播id
+
@@ -347,6 +353,56 @@ function openHtml(item, id) {
window.open(`https://www.tiktok.com/@${id}`)
}
+
+function exportAi(type) {
+ if (selectBigList.value.length === 0) {
+ ElMessage.error('请选择主播')
+ return
+ }
+ let data = ''
+ if (type == 1) {
+ data = selectBigList.value.map(item => item.displayId).join('\n')
+ } else {
+ data = selectBigList.value.map(item => item.hostDisplayId).join('\n')
+ }
+
+
+ const copyToClipboard = async (text) => {
+ // 优先使用 Clipboard API
+ if (navigator.clipboard && window.isSecureContext) {
+ try {
+ await navigator.clipboard.writeText(text)
+ ElMessage.success('✅ 复制成功 ' + selectBigList.value.length + ' 条数据')
+ } catch (err) {
+ ElMessage.error('❌ 复制失败')
+ console.error(err)
+ }
+ } else {
+ // fallback 兼容方案
+ const textarea = document.createElement('textarea')
+ textarea.value = text
+ textarea.style.position = 'fixed' // 避免跳动
+ textarea.style.opacity = '0'
+ document.body.appendChild(textarea)
+ textarea.select()
+ try {
+ const result = document.execCommand('copy')
+ if (result) {
+ ElMessage.success('✅(兼容模式)复制成功 ' + selectBigList.value.length + ' 条数据')
+ } else {
+ ElMessage.error('❌(兼容模式)复制失败')
+ }
+ } catch (err) {
+ ElMessage.error('❌(兼容模式)复制异常')
+ console.error(err)
+ } finally {
+ document.body.removeChild(textarea)
+ }
+ }
+ }
+
+ copyToClipboard(data)
+}
/** 初始化 **/
onMounted(() => {
getList()
diff --git a/src/views/server/manageemployeehosts/index.vue b/src/views/server/manageemployeehosts/index.vue
index b1c2b5c..64d6331 100644
--- a/src/views/server/manageemployeehosts/index.vue
+++ b/src/views/server/manageemployeehosts/index.vue
@@ -115,6 +115,9 @@
{{ t('newHosts.allocation') }}
+
+ {{ $t('employee.exportAi') }}
+
@@ -540,6 +543,51 @@ function changeCountry(region) {
})
}
+
+function exportAi() {
+ if (selectHostList.value.length === 0) {
+ ElMessage.error('请选择主播')
+ return
+ }
+
+ const data = selectHostList.value.map(item => item.hostsId).join('\n')
+
+ const copyToClipboard = async (text) => {
+ // 优先使用 Clipboard API
+ if (navigator.clipboard && window.isSecureContext) {
+ try {
+ await navigator.clipboard.writeText(text)
+ ElMessage.success('✅ 复制成功 ' + selectHostList.value.length + ' 条数据')
+ } catch (err) {
+ ElMessage.error('❌ 复制失败')
+ console.error(err)
+ }
+ } else {
+ // fallback 兼容方案
+ const textarea = document.createElement('textarea')
+ textarea.value = text
+ textarea.style.position = 'fixed' // 避免跳动
+ textarea.style.opacity = '0'
+ document.body.appendChild(textarea)
+ textarea.select()
+ try {
+ const result = document.execCommand('copy')
+ if (result) {
+ ElMessage.success('✅(兼容模式)复制成功 ' + selectHostList.value.length + ' 条数据')
+ } else {
+ ElMessage.error('❌(兼容模式)复制失败')
+ }
+ } catch (err) {
+ ElMessage.error('❌(兼容模式)复制异常')
+ console.error(err)
+ } finally {
+ document.body.removeChild(textarea)
+ }
+ }
+ }
+
+ copyToClipboard(data)
+}
// /** 初始化 **/
// onMounted(() => {
// getList()
diff --git a/src/views/server/newhosts/index.vue b/src/views/server/newhosts/index.vue
index f94ff68..5eadb2c 100644
--- a/src/views/server/newhosts/index.vue
+++ b/src/views/server/newhosts/index.vue
@@ -155,6 +155,9 @@
{{ t('newHosts.allocation') }}
+
+ {{ $t('employee.exportAi') }}
+
批量删除
@@ -526,6 +529,51 @@ function changeCountry(region) {
})
}
+
+function exportAi() {
+ if (selectHostList.value.length === 0) {
+ ElMessage.error('请选择主播')
+ return
+ }
+
+ const data = selectHostList.value.map(item => item.hostsId).join('\n')
+
+ const copyToClipboard = async (text) => {
+ // 优先使用 Clipboard API
+ if (navigator.clipboard && window.isSecureContext) {
+ try {
+ await navigator.clipboard.writeText(text)
+ ElMessage.success('✅ 复制成功 ' + selectHostList.value.length + ' 条数据')
+ } catch (err) {
+ ElMessage.error('❌ 复制失败')
+ console.error(err)
+ }
+ } else {
+ // fallback 兼容方案
+ const textarea = document.createElement('textarea')
+ textarea.value = text
+ textarea.style.position = 'fixed' // 避免跳动
+ textarea.style.opacity = '0'
+ document.body.appendChild(textarea)
+ textarea.select()
+ try {
+ const result = document.execCommand('copy')
+ if (result) {
+ ElMessage.success('✅(兼容模式)复制成功 ' + selectHostList.value.length + ' 条数据')
+ } else {
+ ElMessage.error('❌(兼容模式)复制失败')
+ }
+ } catch (err) {
+ ElMessage.error('❌(兼容模式)复制异常')
+ console.error(err)
+ } finally {
+ document.body.removeChild(textarea)
+ }
+ }
+ }
+
+ copyToClipboard(data)
+}
/** 初始化 **/
onMounted(() => {
getList()