Files
tk-page-Fan/src/views/hosts/hostsList.vue

770 lines
22 KiB
Vue
Raw Normal View History

2025-04-03 16:41:54 +08:00
<template>
2025-04-14 21:52:19 +08:00
<div class="hostList">
2025-04-03 16:41:54 +08:00
<div>
2025-07-01 21:22:43 +08:00
<!-- -->
<div style="display: flex">
2025-04-03 20:25:25 +08:00
<div></div>
2025-07-01 21:22:43 +08:00
<el-input
v-model="queryFormData.coinMin"
placeholder="最小金币"
size="large"
style="width: 160px;"
type="number"
/>
<el-input
v-model="queryFormData.coinMax"
placeholder="最大金币"
size="large"
style="width: 160px; margin-left: 50px"
type="number"
/>
<el-input
v-model="queryFormData.levelMin"
placeholder="最小等级"
size="large"
style="width: 160px; margin-left: 50px"
type="number"
/>
<el-input
v-model="queryFormData.levelMax"
placeholder="最大等级"
size="large"
style="width: 160px; margin-left: 50px"
type="number"
/>
<div style="width: 250px; margin-left: 50px;height: 50px;line-height: 50px;">当前网络{{ countryData }}</div>
<div style="width: 160px; margin-left: 50px;height: 50px;line-height: 50px;">总数{{ getBrotherInfodata.total }}</div>
<div style="width: 160px; margin-left: 50px;height: 50px;line-height: 50px;">有效数{{ getBrotherInfodata.valid }}</div>
<el-button
class="serch-button"
style="margin-left: 50px ;"
type="primary"
@click="Resetss"
>重置</el-button
>
<el-button
class="serch-button"
style="margin-left: 50px ; width: 150px"
type="primary"
@click="openTikTok"
>打开 TikTok 登录</el-button
>
<el-button
v-show="queryFormData.isRunning"
class="serch-button"
style="margin-left: 50px"
type="primary"
@click="getBigBrother"
>开始</el-button
>
<el-button
v-show="!queryFormData.isRunning"
class="serch-button"
style="margin-left: 50px"
type="primary"
@click="BigBrotherstop"
>结束</el-button
>
</div>
<!-- `````````````````````````````````````````````````````````````````````````````````````````````````` -->
<div style="width: 100%; border-bottom: 1px solid #e9e9e9; margin-top: 30px"></div>
<!-- ···································································································· -->
<div style="display: flex; margin-top: 30px;flex-wrap: wrap;">
<el-select
v-model="searchForm.region"
filterable
placeholder="选择国家"
size="large"
style="width: 160px;"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
2025-07-01 21:22:43 +08:00
<el-input
v-model="searchForm.displayId"
placeholder="大哥id"
size="large"
style="width: 160px; margin-left: 50px;"
clearable
/>
<el-button
class="serch-button"
style="margin-left: 50px;"
type="primary"
@click="serch"
>查询</el-button
>
<el-button class="serch-button" type="primary" @click="reset"> 重置 </el-button>
<el-button
class="put-button"
:disabled="tableData.length == 0"
type="primary"
@click="exportList"
>导出Excel数据</el-button
>
2025-04-14 21:52:19 +08:00
<el-button @click="filterdialogVisible = true" style="width: 50px;" class="put-button" type="primary"><img
2025-07-01 21:22:43 +08:00
style="height: 30px;" src="@/assets/filter.png"></el-button>
<!-- <el-button @click="filterdialogVisible = true" style="width: 50px;" class="put-button" type="primary"><img
style="height: 30px;" src="@/assets/filter.png"></el-button> -->
2025-04-03 16:41:54 +08:00
</div>
2025-07-01 21:22:43 +08:00
<!-- ····················································································································· -->
2025-04-07 18:26:39 +08:00
<div class="hostTable center-justify">
2025-07-01 21:22:43 +08:00
<el-table
ref="multipleTableRef"
:data="tableData"
stripe
v-loading="loading"
max-height="500"
@selection-change="handleSelectionChange"
>
<!-- <el-table-column type="selection" width="35" /> -->
<el-table-column fixed prop="displayId" label="Id" width="170">
2025-04-09 21:07:15 +08:00
<template #default="scope">
2025-07-01 21:22:43 +08:00
<div class="hostIdText" @click="openHTML(scope.row.displayId)">
{{ scope.row.displayId }}
</div>
2025-04-10 18:11:03 +08:00
</template>
</el-table-column>
2025-06-24 13:35:33 +08:00
2025-07-01 21:22:43 +08:00
<el-table-column
v-for="label in labelList"
:key="label.paramCode"
:prop="label.paramCode"
:label="label.paramCodeMeaning"
width="170"
>
<template v-if="label.paramCode != 'createDt'" #default="scope"> </template>
2025-04-07 18:26:39 +08:00
</el-table-column>
</el-table>
</div>
2025-07-01 21:22:43 +08:00
<!-- ······································································································································ -->
2025-06-24 13:35:33 +08:00
<!-- 分页 -->
2025-07-01 21:22:43 +08:00
<div class="center-justify" style="margin-top: 30px">
<el-pagination
v-model:current-page="page"
v-model:page-size="pageSize"
background
layout="sizes, prev, pager, next"
:total="total"
:page-sizes="[10, 20, 50, 100, 500, 1000]"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
2025-04-07 18:26:39 +08:00
</div>
2025-04-14 21:52:19 +08:00
2025-07-01 21:22:43 +08:00
<!-- ·······································································弹窗······································································· -->
<el-dialog v-model="filterdialogVisible" width="800px" :before-close="handleClose">
2025-04-14 21:52:19 +08:00
2025-07-01 21:22:43 +08:00
<el-row :gutter="20">
<el-col :span="4">
2025-07-01 21:22:43 +08:00
<!-- <label>选择筛选条件</label> -->
2025-06-24 13:35:33 +08:00
<div style="height: 100%; padding-top: 10px" class="center-justify">
2025-07-01 21:22:43 +08:00
时间
</div>
</el-col>
<el-col :span="10">
<div><label>开始时间/结束时间</label></div>
<el-date-picker
v-model="createTimes"
type="datetimerange"
value-format="YYYY-MM-DD"
placeholder="选择查询时间"
size="large"
style="width: 600px;margin-top: 10px"
/>
</el-col>
</el-row>
<el-row v-for="(field, index) in fields" :key="index" :gutter="20" style="margin-bottom: 10px">
<el-col :span="4">
<div style="height: 100%;" class="center-justify">
2025-06-24 13:35:33 +08:00
{{ field.label }}
</div>
2025-04-14 21:52:19 +08:00
</el-col>
<el-col :span="10">
2025-06-24 13:35:33 +08:00
<div><label>最小值</label></div>
<el-input type="number" :oninput="'if(value.length>9)value=value.slice(0,9)'"
v-model.number="searchForm[field.minModel]" placeholder="请输入最小值" />
</el-col>
<el-col :span="10">
2025-06-24 13:35:33 +08:00
<div><label>最大值</label></div>
<el-input type="number" :oninput="'if(value.length>9)value=value.slice(0,9)'"
v-model.number="searchForm[field.maxModel]" placeholder="请输入最大值" />
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="4">
<!-- <label>选择筛选条件</label> -->
<div style="height: 100%;padding-top: 10px;" class="center-justify">
排序
</div>
</el-col>
<el-col :span="10">
<div><label>排序类型</label></div>
2025-07-01 21:22:43 +08:00
<el-select v-model="sortData.sortName" filterable placeholder="请选择" style="width: 240px">
2025-06-24 13:35:33 +08:00
<el-option v-for="item in sortNameOptions" :key="item.type" :label="item.label" :value="item.type" />
2025-04-14 21:52:19 +08:00
</el-select>
2025-07-01 21:22:43 +08:00
2025-04-14 21:52:19 +08:00
</el-col>
<el-col :span="10">
<div><label>升序/降序</label></div>
2025-04-14 21:52:19 +08:00
2025-07-01 21:22:43 +08:00
<el-select v-model="sortData.sort" filterable placeholder="请选择" style="width: 240px">
<el-option v-for="item in [{ label: '升序', value: 'asc' }, { label: '降序', value: 'desc' }]" :key="item.value"
:label="item.label" :value="item.value" />
</el-select>
2025-04-14 21:52:19 +08:00
</el-col>
</el-row>
<template #footer>
<span class="dialog-footer">
2025-06-24 13:35:33 +08:00
<el-button type="primary" @click="reset">
重置
</el-button>
2025-04-14 21:52:19 +08:00
<!-- <el-button @click="filterdialogVisible = false">取消</el-button> -->
2025-05-06 15:38:23 +08:00
<el-button type="primary" @click="handelClick">
2025-04-14 21:52:19 +08:00
确认
</el-button>
</span>
</template>
</el-dialog>
2025-07-01 21:22:43 +08:00
</div>
2025-04-03 16:41:54 +08:00
</div>
</template>
<script setup>
2025-04-09 21:07:15 +08:00
// import { getToken, setToken, removeToken } from '@/utils/storage'
2025-07-01 21:22:43 +08:00
import {
tkhostdata,
dicts,
tkhostdetail,
downList,
getStaffList,
managerhosts,
upholdinfo,
getCountryinfo,
accountName,
} from "@/api/account";
import { usePythonBridge} from "@/utils/pythonBridge";
import { getUser, setSerch, getSerch } from "@/utils/storage";
import { ref, reactive, onMounted } from "vue";
import EChartsComponent from "@/components/EChartsComponent.vue";
import { ElMessage, ElMessageBox } from "element-plus";
import { color } from "echarts";
import { getCountryName } from '@/utils/countryUtil'
//ip国家
let countryData = ref('');
//获取国家
const getIpInfo = async () => {
try {
const response = await fetch('https://ipapi.co/json/');
if (!response.ok) {
throw new Error('请求失败');
}
const data = await response.json();
console.log('IP信息:', data.country);
countryData.value = getCountryName(data.country);
} catch (error) {
console.error('请求出错:', error);
ElMessageBox.prompt('请输入将要获取国家的中文名', '获取国家失败', {
confirmButtonText: '确认',
cancelButtonText: '取消',
showClose: false,
closeOnClickModal: false,
showCancelButton: false,
})
.then(({ value }) => {
countryData.value = value
})
// .catch(() => {
// ElMessage({
// type: 'info',
// message: 'Input canceled',
// })
// })
}
};
//打开TikTok登录
function openTikTok() {
loginTikTok();
}
//重置
function Resetss() {
queryFormData.value = {}
}
//大哥climb
const queryFormData = ref({
coinMin: "",
coinMax: "",
levelMin: "",
levelMax: "",
isRunning: true,
});
//时间
const timerId = ref(null)
const getBrotherInfodata = ref({
total: 0,
valid: 0,
})
function BigBrotherstop() {
queryFormData.value.tenantId = userInfo.value.tenantId;
queryFormData.value.region = countryData.value;
controlTask(JSON.stringify(queryFormData.value)).then(res => {
queryFormData.value.isRunning = true;
clearInterval(timerId.value)
timerId.value = null
})
}
function getBigBrother() {
queryFormData.value.tenantId = userInfo.value.tenantId;
queryFormData.value.region = countryData.value;
controlTask(JSON.stringify(queryFormData.value)).then(res => {
queryFormData.value.isRunning = false;
timerId.value = setInterval(() => {
getBrotherInfo().then(res => {
getBrotherInfodata.value = res;
})
}, 1000)
})
}
const loading = ref(false);
2025-04-09 21:07:15 +08:00
//py方法
2025-07-01 21:22:43 +08:00
const { givePyAnchorId, exportToExcel, loginTikTok , controlTask , getBrotherInfo } = usePythonBridge();
2025-04-14 21:52:19 +08:00
2025-07-01 21:22:43 +08:00
let num = ref(0);
//账号信息
const userInfo = ref(getUser());
2025-04-14 21:52:19 +08:00
//主播列表DOM
2025-07-01 21:22:43 +08:00
const multipleTableRef = ref(null);
2025-06-24 13:35:33 +08:00
let labelList = ref([
2025-07-01 21:22:43 +08:00
{ paramCode: "userIdStr", paramCodeMeaning: "用户id" },
{ paramCode: "level", paramCodeMeaning: "等级" },
{ paramCode: "hostcoins", paramCodeMeaning: "打赏的金币" },
{ paramCode: "totalGiftCoins", paramCodeMeaning: "打赏金币总和" },
{ paramCode: "hostDisplayId", paramCodeMeaning: "所在直播间主播id" },
{ paramCode: "region", paramCodeMeaning: "地区" },
{ paramCode: "followerCount", paramCodeMeaning: "粉丝数" },
{ paramCode: "followingCount", paramCodeMeaning: "关注数" },
{ paramCode: "createTime", paramCodeMeaning: "创建时间" },
2025-06-24 13:35:33 +08:00
]);
2025-07-01 21:22:43 +08:00
const tableData = ref([]);
//主播列表传参
2025-07-01 21:22:43 +08:00
const searchForm = ref({});
const createTimes = ref([]);
//分页
const page = ref(1);
const pageSize = ref(10);
2025-06-24 13:35:33 +08:00
const fields = [
2025-07-01 21:22:43 +08:00
{ label: "打赏的金币", minModel: "hostcoinsMin", maxModel: "hostcoinsMax" },
{ label: "打赏金币总和", minModel: "totalGiftCoinsMin", maxModel: "totalGiftCoinsMax" },
{ label: "等级", minModel: "levelMin", maxModel: "levelMax" },
];
//排序
2025-07-01 21:22:43 +08:00
let sortData = ref({ sortName: "createTime", sort: "desc" });
2025-06-24 13:35:33 +08:00
//排序类型
let sortNameOptions = ref([
2025-07-01 21:22:43 +08:00
{ label: "创建时间", type: "createTime" },
{ label: "打赏的金币", type: "hostsCoins" },
{ label: "打赏金币总和", type: "totalGiftCoins" },
{ label: "等级", type: "level" },
]);
2025-04-14 21:52:19 +08:00
//员工选择列表
2025-07-01 21:22:43 +08:00
let staffOptions = ref([]);
2025-04-14 21:52:19 +08:00
//筛选条件选择列表
2025-06-24 13:35:33 +08:00
2025-04-14 21:52:19 +08:00
//选择的员工
2025-07-01 21:22:43 +08:00
let staffValue = ref("");
2025-04-14 21:52:19 +08:00
//选择的主播列表
2025-07-01 21:22:43 +08:00
let selectHostList = ref([]);
2025-04-14 21:52:19 +08:00
//分配弹窗是否弹出
2025-07-01 21:22:43 +08:00
let dialogFormVisible = ref(false);
//分配情况弹窗是否弹出
2025-07-01 21:22:43 +08:00
let hostNameVisible = ref(false);
2025-04-14 21:52:19 +08:00
//备注弹窗是否弹出
2025-07-01 21:22:43 +08:00
let commentVisible = ref(false);
2025-04-14 21:52:19 +08:00
//筛选弹窗是否弹出
2025-07-01 21:22:43 +08:00
let filterdialogVisible = ref(false);
//分配的员工
2025-07-01 21:22:43 +08:00
let staffId = ref({});
2025-04-14 21:52:19 +08:00
//备注信息
2025-07-01 21:22:43 +08:00
let commentInfo = ref("");
2025-04-14 21:52:19 +08:00
//备注信息主播
2025-07-01 21:22:43 +08:00
let commentHost = ref("");
2025-04-03 16:41:54 +08:00
//分页
2025-07-01 21:22:43 +08:00
let total = ref(0);
2025-04-07 13:14:56 +08:00
//是否渲染
2025-07-01 21:22:43 +08:00
const isPopoverVisible = reactive({});
2025-04-03 16:41:54 +08:00
2025-07-01 21:22:43 +08:00
let options = ref([]);
2025-04-03 16:41:54 +08:00
2025-07-01 21:22:43 +08:00
let version = ref("0.0.0");
2025-05-06 15:38:23 +08:00
2025-04-03 16:41:54 +08:00
onMounted(() => {
2025-05-06 15:38:23 +08:00
getCountry(); //获取国家
2025-06-24 13:35:33 +08:00
// getSerchStorage();//获取搜索条件
2025-04-24 16:11:22 +08:00
getlist();//获取主播列表
2025-07-01 21:22:43 +08:00
getIpInfo();
});
2025-04-03 16:41:54 +08:00
function serch() {
2025-07-01 21:22:43 +08:00
page.value = 1;
2025-04-03 16:41:54 +08:00
getlist();
}
2025-04-14 21:52:19 +08:00
2025-07-01 21:22:43 +08:00
function exportList() {
// if (searchForm.value.dataType == "InvitationType") {
// searchForm.value.dataEnd = searchForm.value.dataStart;
// }
exportToExcel(requestParams.value);
2025-04-14 21:52:19 +08:00
// //浏览器导出方法
// downList('export/hostsinfo',
// {
// searchTime: searchForm.value.time,
// region: searchForm.value.country,
// pageSize: pageSize.value,
// page: page.value,
// userId: userInfo.value.userId,
// }
// );
2025-04-10 18:11:03 +08:00
}
2025-04-14 21:52:19 +08:00
//分页每页条数
2025-04-10 18:11:03 +08:00
function handleSizeChange(val) {
2025-07-01 21:22:43 +08:00
console.log(`${val} items per page`);
2025-04-10 18:11:03 +08:00
getlist();
}
2025-04-14 21:52:19 +08:00
//分页页数
2025-04-10 18:11:03 +08:00
function handleCurrentChange(val) {
2025-07-01 21:22:43 +08:00
console.log(`current page: ${val}`);
2025-04-10 18:11:03 +08:00
getlist();
2025-04-14 21:52:19 +08:00
}
//选择行
function handleSelectionChange(data) {
2025-07-01 21:22:43 +08:00
console.log(data);
selectHostList.value = [];
data.forEach((item) => {
selectHostList.value.push(item.hostId);
});
2025-04-14 21:52:19 +08:00
// multipleTableRef.value = data
// console.log(multipleTableRef.value)
2025-07-01 21:22:43 +08:00
}
//时间格式化
function formatDate(date) {
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从 0开始需要+1
const day = String(date.getDate()).padStart(2, '0');
const hours = String(date.getHours()).padStart(2, '0');
const minutes = String(date.getMinutes()).padStart(2, '0');
const seconds = String(date.getSeconds()).padStart(2, '0');
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
2025-04-10 18:11:03 +08:00
}
2025-04-03 20:25:25 +08:00
//获取主播列表
2025-07-01 21:22:43 +08:00
//记录请求参数
let requestParams = ref({});
2025-04-03 16:41:54 +08:00
const getlist = () => {
2025-07-01 21:22:43 +08:00
loading.value = true;
2025-04-03 16:41:54 +08:00
tkhostdata({
2025-06-24 13:35:33 +08:00
tenantId: Number(userInfo.value.tenantId),
2025-07-01 21:22:43 +08:00
sort: sortData.value.sort, //正序倒序
sortName: sortData.value.sortName, //排序类型
current: page.value,
pageSize: pageSize.value,
createTimeStart:createTimes.value[0],
createTimeEnd:createTimes.value[1],
...searchForm.value, //筛选条件
}).then((res) => {
loading.value = false;
console.log(res);
2025-06-24 13:35:33 +08:00
if (res) {
2025-07-01 21:22:43 +08:00
requestParams.value = res.records;
console.log(res.records);
total.value = Number(res.total);
tableData.value = res.records.map((item) => ({
level: item.level,// 等级
createTime:formatDate(new Date(item.createTime)),// 创建时间
followerCount: item.followerCount,// 粉丝数
followingCount: item.followingCount,// 关注数
hostDisplayId: item.hostDisplayId,// 所在直播间主播id
hostcoins: item.hostcoins,// 打赏的金币
region: item.region,// 地区
totalGiftCoins: item.totalGiftCoins,// 打赏金币总和
userIdStr: item.userIdStr,// 用户id
displayId: item.displayId,
2025-06-24 13:35:33 +08:00
}));
}
2025-07-01 21:22:43 +08:00
});
};
2025-05-06 15:38:23 +08:00
function handelClick() {
2025-07-01 21:22:43 +08:00
filterdialogVisible.value = false;
2025-05-06 15:38:23 +08:00
}
2025-06-24 13:35:33 +08:00
function reset() {
2025-07-01 21:22:43 +08:00
searchForm.value = {}
sortData.value = { sortName: "createTime", sort: "desc" }
createTimes.value = []
2025-06-24 13:35:33 +08:00
}
2025-05-06 15:38:23 +08:00
function handleClose(done) {
2025-07-01 21:22:43 +08:00
console.log("关闭");
done();
2025-05-06 15:38:23 +08:00
}
2025-04-14 21:52:19 +08:00
//修改主播维护状态
2025-06-24 13:35:33 +08:00
// function handleSelectChange(event, data) {
// upholdinfo({
// "hostId": data.hostId,
// "userId": userInfo.value.userId,
// "tenantId": userInfo.value.tenantId,
// // "comment": "我已经尽力维护,但是失败了",
// "useable": event.target.value
// }).then(res => {
// console.log(res)
// })
// }
2025-04-14 21:52:19 +08:00
//更改主播维护备注
2025-06-24 13:35:33 +08:00
// function uphostcomment() {
// upholdinfo({
// "hostId": commentHost.value,
// "userId": userInfo.value.userId,
// "tenantId": userInfo.value.tenantId,
// "comment": commentInfo.value,
// }).then(res => {
// console.log(res)
// serch()
// commentVisible.value = false
// })
// }
function filterTag(value, row) {
2025-07-01 21:22:43 +08:00
console.log(row.useable, value);
2025-06-24 13:35:33 +08:00
return row.useable === value;
2025-04-14 21:52:19 +08:00
}
//获取国家
function getCountry() {
2025-07-01 21:22:43 +08:00
getCountryinfo({})
.then((res) => {
console.log('````````国家`````````',res);
res.forEach((item) => {
if (item.countryGroupName) {
options.value.push({
value: item.countryGroupName,
label: item.countryGroupName,
});
}
});
console.log('````````国家2`````````', options.value);
2025-04-14 21:52:19 +08:00
})
2025-07-01 21:22:43 +08:00
.catch((err) => {
console.log("getCountry", err);
});
2025-04-14 21:52:19 +08:00
}
//获取下级员工
2025-06-24 13:35:33 +08:00
// const getStaff = () => {
// getStaffList({
// userId: userInfo.value.userId,
// activeYn: userInfo.value.activeYn,
// tenantId: userInfo.value.tenantId,
// }).then(res => {
// console.log(res)
// res.forEach(item => {
// staffOptions.value.push({
// value: item.userId,
// label: item.userName
// })
// })
// })
// }
// //分配主播给员工
// function allocation() {
// managerhosts({
// "manaId": userInfo.value.userId,
// "userId": staffValue.value,
// "tenantId": userInfo.value.tenantId,
// "hostIds": selectHostList.value
// }).then(res => {
// if (res) {
// dialogFormVisible.value = false
// }
// })
// }
2025-04-14 21:52:19 +08:00
2025-04-07 13:14:56 +08:00
//获取主播信息
2025-06-24 13:35:33 +08:00
// const getTkhostdetail = (id) => {
// tkhostdetail({
// hostId: id,
// // page: 1,
// searchTimeStart: '20250401',
// searchTimeEnd: '20250403'
// }).then(res => {
2025-04-07 13:14:56 +08:00
2025-06-24 13:35:33 +08:00
// console.log(labelList.value)
2025-04-07 13:14:56 +08:00
2025-06-24 13:35:33 +08:00
// })
2025-04-07 13:14:56 +08:00
2025-06-24 13:35:33 +08:00
// }
2025-04-07 13:14:56 +08:00
2025-04-09 21:07:15 +08:00
function openPopover(hostId, paramCode) {
isPopoverVisible[`${hostId}-${paramCode}`] = true;
}
function closePopover(hostId, paramCode) {
// isPopoverVisible[`${hostId}-${paramCode}`] = false;
}
function openHTML(id) {
2025-07-01 21:22:43 +08:00
console.log(id);
givePyAnchorId(id);
2025-04-09 21:07:15 +08:00
2025-06-24 13:35:33 +08:00
// upholdinfo({
// "hostId": id,
// "userId": userInfo.value.userId,
// "tenantId": userInfo.value.tenantId,
// // "comment": "我已经尽力维护,但是失败了",
// "useable": "Y"
// }).then(res => {
2025-05-12 21:09:32 +08:00
2025-06-24 13:35:33 +08:00
// getlist();
// })
2025-04-09 21:07:15 +08:00
}
2025-06-24 13:35:33 +08:00
// function openAccountName(idStr) {
// if (idStr) {
// hostNameVisible.value = true
// accountName(idStr).then(res => {
// staffId.value = JSON.stringify(res).replace(/[{}"]/g, '') // 移除所有 {} 和 "
// .split(',') // 按逗号分割成数组
// console.log(res)
// })
// }
// }
2025-04-03 16:41:54 +08:00
</script>
<style lang="less">
2025-04-14 21:52:19 +08:00
.hostList {
2025-04-03 20:25:25 +08:00
box-sizing: border-box;
2025-04-10 18:11:03 +08:00
// height: 100vh;
2025-04-03 20:25:25 +08:00
padding: 40px;
2025-04-14 21:52:19 +08:00
/* 页面无法选中 */
// -webkit-user-select: none;
// -moz-user-select: none;
// -ms-user-select: none;
// user-select: none;
2025-04-03 20:25:25 +08:00
.hostTable {
width: 100%;
2025-07-01 21:22:43 +08:00
padding: 30px 0;
2025-04-09 21:07:15 +08:00
.hostIdText {
text-decoration: underline;
cursor: pointer;
}
}
.serch-button {
width: 80px;
height: 47px;
2025-06-24 13:35:33 +08:00
background: @btn-bg-color;
2025-04-09 21:07:15 +08:00
border-radius: 10px;
2025-04-10 18:11:03 +08:00
border: none;
}
.put-button {
width: 132px;
height: 47px;
2025-06-24 13:35:33 +08:00
background: @btn-bg-color;
2025-04-10 18:11:03 +08:00
border-radius: 10px;
border: none;
2025-04-03 20:25:25 +08:00
}
2025-04-03 16:41:54 +08:00
}
2025-04-14 21:52:19 +08:00
.el-dialog {
--el-dialog-font-line-height: 50px;
--el-dialog-width: 600px;
--el-dialog-border-radius: 8px;
2025-06-24 13:35:33 +08:00
// border: 10px solid @bg-color-light;
2025-04-14 21:52:19 +08:00
}
2025-04-03 16:41:54 +08:00
.center-line {
display: flex;
flex-direction: column;
align-items: center;
// justify-content: center;
}
.center-justify {
display: flex;
justify-content: space-around;
align-items: center;
}
.center-align {
display: flex;
justify-content: space-between;
}
.center-flex {
display: flex;
justify-content: center;
align-items: center;
}
2025-04-09 21:07:15 +08:00
</style>
2025-06-24 13:35:33 +08:00
<style scoped lang="less">
2025-04-09 21:07:15 +08:00
::v-deep(.el-input__wrapper) {
2025-07-01 21:22:43 +08:00
background-color: #f2faf9;
2025-06-24 13:35:33 +08:00
border: 1px solid @bg-color;
2025-04-14 21:52:19 +08:00
height: 44px;
2025-04-09 21:07:15 +08:00
}
::v-deep(.el-select__wrapper) {
2025-07-01 21:22:43 +08:00
background-color: #f2faf9;
2025-06-24 13:35:33 +08:00
border: 1px solid @bg-color;
2025-04-09 21:07:15 +08:00
height: 48px;
}
::v-deep(.el-pagination.is-background .el-pager li.is-active) {
2025-06-24 13:35:33 +08:00
background-color: @bg-color;
2025-04-09 21:07:15 +08:00
}
2025-06-24 13:35:33 +08:00
</style>