添加复制id
This commit is contained in:
@@ -108,6 +108,12 @@
|
||||
v-hasPermi="['server:big-brother:export']">
|
||||
<Icon icon="ep:download" class="mr-5px" /> 导出
|
||||
</el-button>
|
||||
<el-button @click="exportAi(1)">
|
||||
<Icon icon="ep:copy-document" class="mr-5px" /> 批量复制大哥id
|
||||
</el-button>
|
||||
<el-button @click="exportAi(2)">
|
||||
<Icon icon="ep:copy-document" class="mr-5px" /> 批量复制主播id
|
||||
</el-button>
|
||||
<el-button @click="dialogAllocation = true">
|
||||
<Icon icon="ep:refresh" class="mr-5px" /> {{ t('newHosts.allocation') }}
|
||||
</el-button>
|
||||
@@ -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()
|
||||
|
||||
@@ -96,6 +96,12 @@
|
||||
v-hasPermi="['server:employee-big-brother:export']">
|
||||
<Icon icon="ep:download" class="mr-5px" /> 导出
|
||||
</el-button>
|
||||
<el-button @click="exportAi(1)">
|
||||
<Icon icon="ep:copy-document" class="mr-5px" /> 批量复制大哥id
|
||||
</el-button>
|
||||
<el-button @click="exportAi(2)">
|
||||
<Icon icon="ep:copy-document" class="mr-5px" /> 批量复制主播id
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</ContentWrap>
|
||||
@@ -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()
|
||||
|
||||
@@ -99,6 +99,12 @@
|
||||
<el-button @click="dialogAllocation = true">
|
||||
<Icon icon="ep:refresh" class="mr-5px" /> {{ t('newHosts.allocation') }}
|
||||
</el-button>
|
||||
<el-button @click="exportAi(1)">
|
||||
<Icon icon="ep:copy-document" class="mr-5px" /> 批量复制大哥id
|
||||
</el-button>
|
||||
<el-button @click="exportAi(2)">
|
||||
<Icon icon="ep:copy-document" class="mr-5px" /> 批量复制主播id
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</ContentWrap>
|
||||
@@ -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()
|
||||
|
||||
@@ -115,6 +115,9 @@
|
||||
<el-button @click="dialogAllocation = true">
|
||||
<Icon icon="ep:refresh" class="mr-5px" /> {{ t('newHosts.allocation') }}
|
||||
</el-button>
|
||||
<el-button @click="exportAi">
|
||||
<Icon icon="ep:copy-document" class="mr-5px" /> {{ $t('employee.exportAi') }}
|
||||
</el-button>
|
||||
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
@@ -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()
|
||||
|
||||
@@ -155,6 +155,9 @@
|
||||
<el-button @click="dialogAllocation = true">
|
||||
<Icon icon="ep:refresh" class="mr-5px" /> {{ t('newHosts.allocation') }}
|
||||
</el-button>
|
||||
<el-button @click="exportAi">
|
||||
<Icon icon="ep:copy-document" class="mr-5px" /> {{ $t('employee.exportAi') }}
|
||||
</el-button>
|
||||
<el-button type="danger" plain :disabled="checkedIds.length === 0" @click="handleDeleteBatch"
|
||||
v-hasPermi="['system:post:delete']">
|
||||
<Icon icon="ep:delete" class="mr-5px" /> 批量删除
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user