提交 82a41625 作者: 施汉文

客户资料样式修改

上级 f8a92a1f
......@@ -16,7 +16,7 @@
<title>企微侧边栏</title>
<!-- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0,shrink-to-fit=no,user-scalable=no"> -->
<script src="https://g.alicdn.com/dingding/dinglogin/0.0.5/ddLogin.js"></script>
<script src="https://lf1-cdn-tos.bytegoofy.com/obj/iconpark/svg_27278_173.e64d61edfe0d4824e2eeb0b7f478e568.js"></script>
<script src="https://lf1-cdn-tos.bytegoofy.com/obj/iconpark/svg_27278_174.7c507957486002617642b36b416498d5.js"></script>
</head>
<body>
<noscript>
......
......@@ -69,10 +69,10 @@
>
<el-badge is-dot :type="csStatusInfo.type">
<!-- <span>{{ item.label }}</span> -->
<iconpark-icon
class="w-[14px] h-[14px]"
:name="item.icon"
></iconpark-icon>
<svg-icon
class="text-[14px]"
:svgName="item.icon"
></svg-icon>
</el-badge>
</div>
</el-tooltip>
......@@ -86,23 +86,15 @@
:content="item.label"
placement="left"
>
<iconpark-icon
class="w-[14px] h-[14px]"
:name="item.icon"
></iconpark-icon>
<svg-icon
class="w-[14px] text-red h-[14px] text-[14px]"
:svgName="item.icon"
></svg-icon>
</el-tooltip>
</div>
</el-menu-item>
</el-menu>
</div>
<<<<<<< HEAD =======
<!-- 绑定的 w 账号 -->
<bindUserList />
</div>
<div class="mobile-content">
<router-view></router-view>
>>>>>>> release
</div>
</div>
</template>
......@@ -185,7 +177,7 @@ export default {
{
label: "用户待办",
path: "/userToDo",
hasRedDot: false, // 红点状态
icon: "yonghudaiban",
},
{
label: "微言助手",
......@@ -546,7 +538,7 @@ body {
}
.agent-status-management {
::v-deep .el-badge__content.is-dot {
top: 38px !important;
/* top: 38px !important; */
right: 2px !important;
}
}
......@@ -562,4 +554,7 @@ body {
.p-common {
padding: 0 10px;
}
::v-deep .el-badge__content.is-fixed {
z-index: 1;
}
</style>
......@@ -9,11 +9,11 @@
>
<template #title>
<div class="flex items-center">
<iconpark-icon
<svg-icon
@click="$emit('close')"
name="icon-fanhui"
svgName="icon-fanhui"
class="mr-[8px] w-[20px] text-[20px] cursor-pointer"
></iconpark-icon>
></svg-icon>
<span class="text-[13px] text-[#131920] leading-[13px]">{{
title
}}</span>
......
<template>
<div class="w-full h-full flex items-center justify-center">
<div class="flex flex-col justify-center">
<iconpark-icon name="Empty-2" class="text-[80px]"></iconpark-icon>
<div class="flex flex-col items-center justify-center">
<svg-icon svgName="Empty-2" class="text-[80px]"></svg-icon>
<slot></slot>
</div>
</div>
......
<template>
<div class="relative w-full group flex items-center">
<template v-if="show">
<el-input
v-model="value"
class="showInputRemarkInput"
:type="isInput ? 'text' : 'textarea'"
></el-input>
<div class="absolute bottom-[6px] right-[10px] text-[16px] flex">
<svg-icon
svgName="icon-quxiao"
class="text-[#B0B2B5] cursor-pointer"
@click="close"
></svg-icon>
<svg-icon
svgName="icon-queding"
class="text-[#267EF0] cursor-pointer ml-[6px]"
@click="confirm"
></svg-icon>
</div>
</template>
<template v-else>
<slot></slot>
<svg-icon
svgName="ziliao-bianji"
class="group-hover:visible ml-[6px] text-primary invisible cursor-pointer text-[16px]"
@click="editRemark"
></svg-icon>
</template>
</div>
</template>
<script>
export default {
name: "CommonModificationBox",
props: {
text: {
type: String,
default: "",
},
isInput: {
type: Boolean,
default: false,
},
},
data() {
return {
value: "",
show: false,
};
},
created() {
// 初始化value为text的初始值
this.value = this.text;
},
watch: {
text(newVal) {
this.value = newVal;
},
},
methods: {
editRemark() {
this.show = true;
},
close() {
this.show = false;
this.value = this.text;
},
confirm() {
this.$emit("confirm", this.value);
this.show = false;
},
},
};
</script>
<style></style>
......@@ -31,10 +31,10 @@
:loading="logoutLoading"
>
<div class="flex items-center justify-center">
<iconpark-icon
name="kefucaozuo-xiaxian"
<svg-icon
svgName="kefucaozuo-xiaxian"
class="mr-[8px] text-[14px]"
></iconpark-icon>
></svg-icon>
下线
</div>
</el-button>
......@@ -51,10 +51,10 @@
:loading="startRestLoading"
>
<div class="flex items-center justify-center">
<iconpark-icon
name="kefucaozuo-xiuxi"
<svg-icon
svgName="kefucaozuo-xiuxi"
class="mr-[8px] text-[14px]"
></iconpark-icon>
></svg-icon>
开始休息
</div>
</el-button>
......@@ -67,10 +67,10 @@
:loading="finishRestLoading"
>
<div class="flex items-center justify-center">
<iconpark-icon
name="kefucaozuo-xiuxi"
<svg-icon
svgName="kefucaozuo-xiuxi"
class="mr-[8px] font-bold text-[14px]"
></iconpark-icon>
></svg-icon>
结束休息
</div>
</el-button>
......@@ -81,10 +81,10 @@
:loading="sendCommentLoading"
>
<div class="flex items-center justify-center">
<iconpark-icon
name="kefucaozuo-pingjia"
<svg-icon
svgName="kefucaozuo-pingjia"
class="mr-[8px] text-[14px]"
></iconpark-icon>
></svg-icon>
发送评价
</div>
</el-button>
......
......@@ -7,7 +7,7 @@
:okDisabled="!checkoutUser.member_id"
@ok="confirmSubmit"
>
<div class="w-full h-full py-[10px]">
<div class="w-full h-full flex flex-col py-[10px]" v-loading="loading">
<div class="flex items-center px-[12px]">
<el-input
v-model.trim="inputValue"
......@@ -93,7 +93,7 @@
</el-button>
</el-popover>
</div>
<div class="mt-[12px] content">
<div class="mt-[12px] content" v-if="tableList.length !== 0">
<div
class="cursor-pointer hover:bg-[#F5F6F7]"
v-for="item in tableList"
......@@ -217,6 +217,12 @@
</div>
</div>
</div>
<Empty v-else class="flex-1 pb-[30%]">
<div class="text-[#6D7176] text-[12px]">暂无数据</div>
<div class="text-[#B0B2B5] mt-[4px] text-[12px]">
请点击搜索框或筛选按钮查询
</div>
</Empty>
</div>
<!-- <div class="content">
......@@ -395,12 +401,14 @@ import { mapMutations, mapActions, mapState } from "vuex";
import page from "@/components/page/pageNum.vue";
import Drawer from "@/components/common/Drawer.vue";
import { debounce } from "@/utils/index";
import Empty from "@/components/common/Empty.vue";
export default {
name: "addUser",
components: {
userTable,
page,
Drawer,
Empty,
},
props: ["show"],
data() {
......@@ -446,6 +454,7 @@ export default {
...mapActions("game", ["gameBindUser"]),
...mapMutations("game", ["set_accountSelect"]),
requestRoleList() {
this.loading = true;
const data = {
member_id: this.form.member_id,
username: this.form.username.trim(),
......@@ -457,7 +466,8 @@ export default {
search_type: "bind",
...this.pageInfo,
};
getRoleHoLo(data).then((res) => {
getRoleHoLo(data)
.then((res) => {
if (res.status_code == 1) {
if (res.data.data.length == 0) {
this.tableList = [];
......@@ -467,6 +477,9 @@ export default {
this.pageInfo = res.data.page_info;
}
}
})
.finally(() => {
this.loading = false;
});
},
// S181.啊呸¤可瑞 八荒181服
......@@ -478,6 +491,8 @@ export default {
},
remoteMethodServer(query) {
if (query !== "") {
console.log(this.loading);
this.loading = true;
const data = {
type: "server_info",
......@@ -485,6 +500,7 @@ export default {
main_game_ids: this.form.main_game_id,
};
selectSearch(data).then((res) => {
console.log(this.loading);
this.loading = false;
if (res.status_code == 1) {
this.serverNameList = res.data.data;
......
......@@ -2,11 +2,11 @@
<div>
<div class="flex justify-between leading-[22px] font-medium">
<div class="text-[#363E49] text-[13px]">已选择标签</div>
<iconpark-icon
<svg-icon
@click="clear"
name="icon-qingkong"
svgName="icon-qingkong"
class="text-[16px] text-[#B0B2B5] hover:text-primary cursor-pointer"
></iconpark-icon>
></svg-icon>
</div>
<div
class="flex flex-wrap content-start gap-[8px] mt-[8px] pb-[12px] border-b-[1px] border-dashed border-b-[#E5E5E6] h-[112px] overflow-y-auto"
......@@ -63,7 +63,7 @@ export default {
remove(item) {
this.$emit(
"input",
this.value.filter((i) => i !== item)
this.value.filter((i) => i !== item),
);
this.$emit("change");
},
......@@ -71,8 +71,8 @@ export default {
this.$emit(
"input",
this.value.filter((i) =>
this.checkedIds.includes(i[this.options.value])
)
this.checkedIds.includes(i[this.options.value]),
),
);
this.$emit("change");
},
......
......@@ -78,6 +78,12 @@
@click="refreshTag"
></i>
<svg-icon
svgName="icon-zhongxinshengcheng"
@click="refreshTag"
:class="isRefresh ? 'refreshListActive' : ''"
class="mr-[8px] refreshList invisible group-hover:visible"
/>
<svg-icon
icon-class="fuzhi"
class="icon invisible group-hover:visible"
style="font-size: 14px"
......@@ -97,36 +103,36 @@
</template>
<script>
import { getRoleRecentActivityEditApi } from '@/api/game.js';
import { getGenerateProcedureApi } from '@/api/skill';
import { mapState } from 'vuex';
import { queryRoleRecentActivityNotPushNum } from '@/views/hooks/useGetCount';
import { corp_activity_procedure_copyUsed } from '@/api/works';
import { getRoleRecentActivityEditApi } from "@/api/game.js";
import { getGenerateProcedureApi } from "@/api/skill";
import { mapState } from "vuex";
import { queryRoleRecentActivityNotPushNum } from "@/views/hooks/useGetCount";
import { corp_activity_procedure_copyUsed } from "@/api/works";
const UpdateType = {
PUSH: 1, //修改推送
REMARK: 2, //修改备注
};
export default {
name: 'RecentActivitiesTemplate',
emits: ['handleUpdate'],
name: "RecentActivitiesTemplate",
emits: ["handleUpdate"],
components: {},
props: ['item'],
props: ["item"],
data() {
return {
editShow: false,
textarea: '',
textarea: "",
isRefresh: false,
pushLanguageTechnique: '', //推送话术
pushLanguageTechnique: "", //推送话术
};
},
computed: {
...mapState('user', ['cser_id', 'cser_name']),
...mapState('game', ['accountSelect', 'bindGameUserList']),
...mapState("user", ["cser_id", "cser_name"]),
...mapState("game", ["accountSelect", "bindGameUserList"]),
nowGameUserInfo() {
return {
member_id: this.accountSelect,
username: this.bindGameUserList.find(
(item) => item.member_id == this.accountSelect
(item) => item.member_id == this.accountSelect,
)?.username,
};
},
......@@ -156,10 +162,10 @@ export default {
user_id: this.cser_id,
user_name: this.cser_name,
});
this.$message.success('修改成功');
this.$message.success("修改成功");
queryRoleRecentActivityNotPushNum(this.accountSelect);
this.$emit('handleUpdate');
this.$emit("handleUpdate");
} catch (error) {
this.$message.error(error);
}
......@@ -183,9 +189,9 @@ export default {
try {
corp_activity_procedure_copyUsed({ _id: this._id });
await navigator.clipboard.writeText(this.pushLanguageTechnique);
this.$message.success('复制成功');
this.$message.success("复制成功");
} catch (err) {
console.error('复制失败:', err);
console.error("复制失败:", err);
}
},
......
......@@ -2,30 +2,67 @@
<div class="info-tab-content">
<div class="userDetailsPanel columnFlex">
<div class="content px-[10px]" v-loading="viewLoading">
<div v-if="chatUserDetails.is_phishing_account == 1" class="warnText">
<p>高风险玩家,请立即通知组长!!!!</p>
<p>
<div
v-if="chatUserDetails.is_phishing_account == 1"
class="warnText flex"
>
<div>
<svg-icon
class="text-[16px] mt-[4px] mr-[4px] text-[#FF7D00]"
svgName="weiguitongzhi"
></svg-icon>
</div>
<div>
<p class="text-[13px]">高风险玩家,请立即通知组长!!!!</p>
<p class="text-[12px]">
①千万不能推转游!!不要发送违禁词汇!!不要发送礼包和告知任何礼包信息!!
</p>
<p>②不能以任何形式推送APP/网页链接,也不可承认有APP/网页端口!!</p>
<p class="text-[12px]">
②不能以任何形式推送APP/网页链接,也不可承认有APP/网页端口!!
</p>
</div>
</div>
<div v-if="change_appraisal" class="warnText flex">
<div>
<svg-icon
class="text-[16px] mt-[4px] mr-[4px] text-[#FF7D00]"
svgName="weiguitongzhi"
></svg-icon>
</div>
<div v-if="change_appraisal" class="warnText">
<p>钓鱼号 禁止转端通知组长!</p>
</div>
<div v-else-if="gameUserInfo.exp_ip" class="warnText">
<div v-else-if="gameUserInfo.exp_ip" class="warnText flex">
<div>
<svg-icon
class="text-[16px] mt-[4px] mr-[4px] text-[#FF7D00]"
svgName="weiguitongzhi"
></svg-icon>
</div>
<p>高风险用户,禁止转端 !!!</p>
</div>
<!-- 会话内容存档状态 -->
<div
class="archive-status"
class="archive-status flex"
v-if="agreeStatus !== 'Agree' || !hasPermit"
>
<p v-if="agreeStatus !== 'Agree'">当前微信用户未开启会话内容存档</p>
<p v-if="!hasPermit">当前客服号未授权开启会话内容存档</p>
<i
class="el-icon-info text-[16px] pt-[6px] mr-[4px] text-[#909399]"
></i>
<div class="text-[#909399]">
<p v-if="agreeStatus !== 'Agree'" class="!text-[#909399]">
当前微信用户未开启会话内容存档
</p>
<p v-if="!hasPermit" class="!text-[#909399]">
当前客服号未授权开启会话内容存档
</p>
</div>
<div class="item rowFlex">
</div>
<div
class="item rowFlex justify-between pb-[12px] border-b-[1px] border-solid border-[#EBEDF0]"
>
<!-- 公共的信息 -->
<div class="flex">
<el-image
fit="fill"
draggable="false"
......@@ -51,12 +88,10 @@
style="margin-top: 3px"
>
<vipLevel :gameUserInfo="gameUserInfo" />
<el-button-group>
<!-- <el-button-group>
<el-button type="text" @click="zyouUnBindConfirm"
>解绑</el-button
>
<!-- <el-button type="text" size="mini" @click="autoResetPassword">修改密码</el-button>
<el-button type="text" size="mini" @click="changePhoneClick">修改手机号</el-button> -->
<el-button
v-if="!chatUserDetails.bind_cser"
type="text"
......@@ -66,13 +101,37 @@
<el-button type="text" v-if="false" @click="errorHandle"
>误操作</el-button
>
</el-button-group>
</el-button-group> -->
</div>
</div>
</div>
<el-dropdown trigger="click" class="h-[16px]">
<div
class="cursor-pointer h-[16px] w-[16px] font-bold self-center flex items-center"
>
<i class="text-[16px] el-icon-more"></i>
</div>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item>
<span @click="zyouUnBindConfirm"> 解绑 </span>
</el-dropdown-item>
<el-dropdown-item v-if="!chatUserDetails.bind_cser">
<span @click="relationKfh"> 关联客服 </span>
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
<div class="item rowFlex columnCenter">
<div class="rowFlex columnCenter">
<span class="label" style="min-width: 45px">备注:</span>
<ModificationBox
:text="
chatUserDetails.remark && chatUserDetails.remark != ''
? chatUserDetails.remark
: chatUserDetails.name
"
@confirm="handleInputRemark"
>
<p v-if="!showInputRemark" class="text" style="max-width: 170px">
{{
chatUserDetails.remark && chatUserDetails.remark != ""
......@@ -80,8 +139,9 @@
: chatUserDetails.name
}}
</p>
</ModificationBox>
</div>
<el-input
<!-- <el-input
v-if="showInputRemark"
v-model="showInputRemarkValue"
class="showInputRemarkInput"
......@@ -93,7 +153,7 @@
class="el-icon-edit icon"
style="font-size: 14px"
@click="editRemark"
></i>
></i> -->
</div>
<div class="item rowFlex columnCenter" v-if="lastTime">
<div class="rowFlex columnCenter">
......@@ -206,11 +266,11 @@
>+{{ chatUserDetails.tag_group.length - 1 }}
</el-button>
</el-tooltip>
<iconpark-icon
name="ziliao-tianjia-jb82dh2k"
<svg-icon
svgName="ziliao-tianjia-jb82dh2k"
class="group-hover:visible invisible text-primary text-[14px] ml-[6px]"
@click="editTags"
></iconpark-icon>
></svg-icon>
</div>
</div>
</div>
......@@ -270,6 +330,8 @@ import { sendChatMessage } from "@/utils/index.js";
import { getToken, removeToken } from "@/utils/auth";
import vipLevel from "./gameInfo/vipLevel.vue";
import Cookies from "js-cookie";
import ModificationBox from "@/components/common/ModificationBox.vue";
export default {
name: "info",
components: {
......@@ -278,6 +340,7 @@ export default {
shareInfo,
selectTag,
vipLevel,
ModificationBox,
},
props: {
// 用户详情
......@@ -560,6 +623,7 @@ export default {
// 处理备注输入
handleInputRemark(val) {
this.showInputRemark = false;
this.showInputRemarkValue = val;
this.chatUserDetails.remark = this.showInputRemarkValue;
const data = {
userid: this.chatUserDetails.userid,
......@@ -641,31 +705,35 @@ export default {
height: 100%;
background-color: #fff;
border-radius: 4px;
overflow: hidden;
.warnText {
width: 100%;
padding-top: 10px !important;
border-radius: 0 !important;
color: #ff7d00;
background: #fffbf5;
width: calc(100% + 20px) !important;
margin-bottom: 0 !important;
margin-left: -10px;
height: auto;
font-weight: 600;
font-size: 18px;
p {
color: #f56c6c;
line-height: 25px;
}
font-size: 13px;
padding: 4px 10px;
}
.archive-status {
margin-bottom: 15px;
padding: 8px;
padding: 4px 10px;
background-color: #f8f8f8;
border-radius: 4px;
font-size: 14px;
line-height: 20px;
// border-radius: 4px;
font-size: 12px;
width: calc(100% + 20px);
margin-left: -10px;
p {
margin: 5px 0;
color: #f56c6c;
font-weight: 600;
}
}
......@@ -688,7 +756,6 @@ export default {
margin-bottom: 10px;
p {
color: #f56c6c;
line-height: 25px;
}
}
......
......@@ -57,12 +57,12 @@
</el-button>
</el-tooltip>
</div>
<iconpark-icon
name="ziliao-tianjia-jb82dh2k"
<svg-icon
svgName="ziliao-tianjia-jb82dh2k"
class="invisible text-primary text-[14px] ml-[6px]"
:class="{ 'group-hover:visible': item.label_type == 2 }"
@click="addTag(item.label)"
></iconpark-icon>
></svg-icon>
</div>
<Empty />
</div>
......@@ -250,7 +250,7 @@ export default {
this.loading = true;
try {
const weixin_blongs_id = this.weixin_blongs_id_list.map(
(item) => item.value
(item) => item.value,
);
const res = await roleGetRoleLabel({
member_id: this.accountSelect,
......@@ -309,7 +309,7 @@ export default {
async searchLabel(query) {
try {
const weixin_blongs_id = this.weixin_blongs_id_list.map(
(item) => item.value
(item) => item.value,
);
const res = await roleLabelSearch({
label_name: query.trim() || "",
......@@ -346,7 +346,7 @@ export default {
? this.searchValue
: [];
const hasSelectedInThisGroup = group.children.some((child) =>
selectedIds.includes(child.label_id)
selectedIds.includes(child.label_id),
);
if (hasSelectedInThisGroup) {
......@@ -436,7 +436,7 @@ export default {
if (value && Array.isArray(value) && value.length > 0) {
// 获取当前标签组的标签
const currentGroupLabels = this.roleLabelList.find(
(item) => Number(item.label_type) === 2
(item) => Number(item.label_type) === 2,
).label;
// 获取所有选中标签的信息
......@@ -446,13 +446,13 @@ export default {
this.searchOptions.forEach((group) => {
// 找出该组中被选中的标签
const selectedInGroup = group.children.filter((child) =>
value.includes(child.label_id)
value.includes(child.label_id),
);
// 如果是单选标签组且选中了多个,只保留第一个
if (group.select_type === 1 && selectedInGroup.length > 1) {
this.$message.warning(
`标签组"${group.label_name}"为单选,只能选择一个标签`
`标签组"${group.label_name}"为单选,只能选择一个标签`,
);
// 只添加第一个选中的标签
selectedLabels.push(selectedInGroup[0]);
......@@ -470,11 +470,11 @@ export default {
// 检查selectedLabels中的标签组是否与currentGroupLabels中的标签组重复
if (currentGroupLabels && currentGroupLabels.length > 0) {
const existingGroupIds = currentGroupLabels.map(
(label) => label.label_group_id
(label) => label.label_group_id,
);
const hasConflict = selectedLabels.some((label) =>
existingGroupIds.includes(label.label_group_id)
existingGroupIds.includes(label.label_group_id),
);
if (hasConflict) {
......@@ -507,7 +507,7 @@ export default {
// 找出所有单选标签组
const singleSelectGroups = this.searchOptions.filter(
(group) => group.select_type === 1
(group) => group.select_type === 1,
);
// 检查单选标签组是否有全选操作
......@@ -517,14 +517,14 @@ export default {
// 检查当前组中选中的标签数量
const selectedInThisGroup = groupLabelIds.filter((id) =>
value.includes(id)
value.includes(id),
);
// 如果选中的标签数量大于1,说明可能是全选操作
if (selectedInThisGroup.length > 1) {
// 提示用户只能选择一个标签
this.$message.warning(
`标签组"${group.label_name}"为单选,只能选择一个标签`
`标签组"${group.label_name}"为单选,只能选择一个标签`,
);
// 清空该组的选择
......
......@@ -18,12 +18,19 @@
trigger="hover"
content="手动更新当前用户的智能标签,每个用户半个小时仅能更新一次"
>
<i
<!-- <i
slot="reference"
class="el-icon-refresh refreshList"
:class="isRefresh ? 'refreshListActive' : ''"
@click="refreshTag"
></i> -->
<svg-icon
svgName="icon-zhongxinshengcheng"
slot="reference"
@click="refreshTag"
></i>
class="refreshList text-[16px]"
:class="isRefresh ? 'refreshListActive' : ''"
/>
</el-popover>
</div>
<ZyouTag :game-user-info="gameUserInfo" :account-select="accountSelect" />
......@@ -62,12 +69,13 @@
>
<!-- changeUser -->
<div slot="reference" class="rowFlex columnCenter changeUser">
<p>
<svg-icon svgName="ziliao-qiehuan" />
<!-- <p>
<i class="el-icon-sort-down"></i>
</p>
<p>
<i class="el-icon-sort-up"></i>
</p>
</p> -->
</div>
</el-popconfirm>
</div>
......@@ -84,12 +92,13 @@
@confirm="changeNameFn"
>
<div slot="reference" class="rowFlex columnCenter changeUser">
<p>
<svg-icon svgName="ziliao-qiehuan" />
<!-- <p>
<i class="el-icon-sort-down"></i>
</p>
<p>
<i class="el-icon-sort-up"></i>
</p>
</p> -->
</div>
</el-popconfirm>
</div>
......@@ -110,12 +119,13 @@
slot="reference"
class="rowFlex columnCenter changeUser"
>
<p>
<svg-icon svgName="ziliao-qiehuan" />
<!-- <p>
<i class="el-icon-sort-down"></i>
</p>
<p>
<i class="el-icon-sort-up"></i>
</p>
</p> -->
</div>
</el-popconfirm>
</div>
......@@ -169,35 +179,53 @@
<div class="item rowFlex columnCenter spaceBetween">
<div class="rowFlex columnCenter">
<span class="label">是否愿意转端:</span>
<p class="text">
<el-radio-group
<p class="text flex items-center">
{{ chatUserDetails.transferred == 0 ? "是" : "否" }}
<svg-icon
svgName="ziliao-qiehuan"
class="text-primary text-[18px] ml-[6px]"
@click="
toTransfer(
chatUserDetails.transferred == 0
? (chatUserDetails.transferred = 1)
: (chatUserDetails.transferred = 0),
)
"
/>
<!-- <el-radio-group
v-model="chatUserDetails.transferred"
@change="toTransfer"
>
<el-radio :label="0"></el-radio>
<el-radio :label="1"></el-radio>
</el-radio-group>
</el-radio-group> -->
</p>
</div>
</div>
<div class="item rowFlex columnCenter">
<div class="rowFlex columnCenter">
<span class="label">手机号:</span>
<span class="label flex-shrink-0">手机号:</span>
<ModificationBox
:text="gameUserInfo.mobile"
:isInput="true"
@confirm="changeUserMobile"
>
<p v-if="!showUserMobile" class="text">{{ gameUserInfo.mobile }}</p>
</ModificationBox>
</div>
<el-input
<!-- <el-input
v-if="showUserMobile"
v-model="newMobileValue"
style="width: 120px; margin-left: 10px"
@change="changeUserMobile"
@blur="showUserMobile = false"
></el-input>
></el-input> -->
<!-- 暂时禁止用户修改手机号 -->
<i
<!-- <i
class="el-icon-edit icon"
style="font-size: 14px"
@click="editUserMobile"
></i>
></i> -->
</div>
<div class="item rowFlex columnCenter spaceBetween">
<div class="rowFlex columnCenter">
......@@ -311,6 +339,7 @@ import moment from "moment";
import ZyouTag from "./ZyouTag.vue";
import { debounce } from "@/utils";
import LastLogin from "@/views/components/quickSendGame/sendGame/lastLogin.vue";
import ModificationBox from "@/components/common/ModificationBox.vue";
export default {
name: "gameUserInfo",
......@@ -318,6 +347,7 @@ export default {
ZyouTag,
MarketingPanel,
LastLogin,
ModificationBox,
},
props: ["gameUserInfo", "chatUserDetails"],
data() {
......@@ -467,7 +497,7 @@ export default {
});
},
// 修改用户手机号
changeUserMobile() {
changeUserMobile(v) {
if (
!/^1((3[0-9])|(4[1579])|(5[0-9])|(6[6])|(7[0-9])|(8[0-9])|(9[0-9]))\d{8}$/.test(
this.newMobileValue,
......@@ -476,6 +506,7 @@ export default {
this.$message.warning("请填写正确的手机号");
return false;
}
this.newMobileValue = v;
this.gameUserInfo.mobile =
this.newMobileValue.substr(0, 3) +
"****" +
......@@ -533,7 +564,7 @@ export default {
}
.changeUser {
font-size: 18px;
transform: rotate(90deg);
// transform: rotate(90deg);
color: #3491fa;
margin-left: 10px;
margin-top: -5px;
......@@ -633,6 +664,9 @@ export default {
cursor: pointer;
font-size: 18px;
margin-left: 20px;
&:focus {
outline: none;
}
}
.refreshListActive {
animation: rotate 0.5s linear infinite;
......
......@@ -19,14 +19,14 @@
</div>
</template>
<script>
import Info from './components/Info.vue';
import roleInfo from '@/views/roleInfo.vue';
import orderList from '@/views/orderList.vue';
import { mapState, mapMutations } from 'vuex';
import { createRoleRecentActivityNotPushNum } from '@/views/hooks/useGetCount';
import Cookies from 'js-cookie';
import Info from "./components/Info.vue";
import roleInfo from "@/views/roleInfo.vue";
import orderList from "@/views/orderList.vue";
import { mapState, mapMutations } from "vuex";
import { createRoleRecentActivityNotPushNum } from "@/views/hooks/useGetCount";
import Cookies from "js-cookie";
export default {
name: 'userInfo',
name: "userInfo",
components: {
Info,
roleInfo,
......@@ -39,13 +39,13 @@ export default {
},
data() {
return {
activeTab: 'info',
activeTab: "info",
instance: null,
totalNum: 0,
};
},
computed: {
...mapState('game', ['chatUserInfo', 'accountSelect']),
...mapState("game", ["chatUserInfo", "accountSelect"]),
},
created() {
// 初始化 vuex 中的值
......@@ -57,10 +57,10 @@ export default {
});
},
methods: {
...mapMutations('user', ['set_userInfo']),
...mapMutations("user", ["set_userInfo"]),
async initInstance() {
this.instance = await createRoleRecentActivityNotPushNum(
this.accountSelect
this.accountSelect,
);
this.totalNum = this.instance.getTotalNum();
......@@ -70,10 +70,10 @@ export default {
},
initVuexValue() {
const userinfo = {
cser_id: Cookies.get('cser_id'),
cser_name: Cookies.get('cser_name'),
username: Cookies.get('cser_name'),
id: Cookies.get('cser_id'),
cser_id: Cookies.get("cser_id"),
cser_name: Cookies.get("cser_name"),
username: Cookies.get("cser_name"),
id: Cookies.get("cser_id"),
};
this.set_userInfo(userinfo);
},
......@@ -95,7 +95,7 @@ export default {
width: 100%;
::v-deep .el-tabs__header {
margin-bottom: 15px;
margin-bottom: 0;
padding: 0 10px;
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论