no message
This commit is contained in:
parent
fb14650ec9
commit
5d0414ff3b
2
dist/index.html
vendored
2
dist/index.html
vendored
@ -1,4 +1,4 @@
|
||||
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible"/><meta content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=0" name="viewport"/><link rel="icon" href="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/favicon.ico"><title>X-PHP</title><script>document.write("<script src='config.js'><\/script>");</script><script defer="defer" src="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/static/js/echarts.49558cc4.js"></script><script defer="defer" src="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/static/js/elicons.4bccae06.js"></script><script defer="defer" src="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/static/js/modules.af2834df.js"></script><script defer="defer" src="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/static/js/app.c0c00448.js"></script><link href="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/static/css/modules.34563575.css" rel="stylesheet"><link href="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/static/css/app.717335f6.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but X-PHP doesn't work properly without JavaScript enabled.</strong></noscript><div id="app" class="adminui"><div class="app-loading"><div class="app-loading__logo"><img src="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/logo.png"/></div><div class="app-loading-text"><span class="app-loading-preloader">X</span> <span class="app-loading-preloader">-</span> <span class="app-loading-preloader">A</span> <span class="app-loading-preloader">d</span> <span class="app-loading-preloader">m</span> <span class="app-loading-preloader">i</span> <span class="app-loading-preloader">n</span><div class="app-loading-viewtext-container"><span class="app-loading-viewtext">X</span> <span class="app-loading-viewtext">-</span> <span class="app-loading-viewtext">A</span> <span class="app-loading-viewtext">d</span> <span class="app-loading-viewtext">m</span> <span class="app-loading-viewtext">i</span> <span class="app-loading-viewtext">n</span></div></div></div></div></body><div id="versionCheck" class="versionCheck"><h2>当前浏览器内核版本过低</h2><p>当前版本:<span id="versionCheck-type">--</span> <span id="versionCheck-version">--</span></p><p>最低版本要求:Chrome 71+、Firefox 65+、Safari 12+、Edge 97+。</p><p>请升级浏览器版本,或更换现代浏览器,如果你使用的是双核浏览器,请切换到极速/高速模式。</p></div><style>html,
|
||||
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible"/><meta content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=0" name="viewport"/><link rel="icon" href="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/favicon.ico"><title>X-PHP</title><script>document.write("<script src='config.js'><\/script>");</script><script defer="defer" src="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/static/js/echarts.49558cc4.js"></script><script defer="defer" src="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/static/js/elicons.4bccae06.js"></script><script defer="defer" src="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/static/js/modules.af2834df.js"></script><script defer="defer" src="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/static/js/app.f6ba5dd4.js"></script><link href="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/static/css/modules.34563575.css" rel="stylesheet"><link href="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/static/css/app.3628e6a0.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but X-PHP doesn't work properly without JavaScript enabled.</strong></noscript><div id="app" class="adminui"><div class="app-loading"><div class="app-loading__logo"><img src="https://ansnid.oss-cn-shenzhen.aliyuncs.com/x-Admin/logo.png"/></div><div class="app-loading-text"><span class="app-loading-preloader">X</span> <span class="app-loading-preloader">-</span> <span class="app-loading-preloader">A</span> <span class="app-loading-preloader">d</span> <span class="app-loading-preloader">m</span> <span class="app-loading-preloader">i</span> <span class="app-loading-preloader">n</span><div class="app-loading-viewtext-container"><span class="app-loading-viewtext">X</span> <span class="app-loading-viewtext">-</span> <span class="app-loading-viewtext">A</span> <span class="app-loading-viewtext">d</span> <span class="app-loading-viewtext">m</span> <span class="app-loading-viewtext">i</span> <span class="app-loading-viewtext">n</span></div></div></div></div></body><div id="versionCheck" class="versionCheck"><h2>当前浏览器内核版本过低</h2><p>当前版本:<span id="versionCheck-type">--</span> <span id="versionCheck-version">--</span></p><p>最低版本要求:Chrome 71+、Firefox 65+、Safari 12+、Edge 97+。</p><p>请升级浏览器版本,或更换现代浏览器,如果你使用的是双核浏览器,请切换到极速/高速模式。</p></div><style>html,
|
||||
body,
|
||||
#app {
|
||||
transition-property: filter;
|
||||
|
4
dist/report.html
vendored
4
dist/report.html
vendored
File diff suppressed because one or more lines are too long
1
dist/static/css/34.4c66d7b0.css
vendored
1
dist/static/css/34.4c66d7b0.css
vendored
@ -1 +0,0 @@
|
||||
.width-add[data-v-1648d24c]{width:40px}.mr30[data-v-1648d24c]{margin-right:30px}.mx-1[data-v-1648d24c]{margin-right:.5rem}.ml-1[data-v-1648d24c],.mx-1[data-v-1648d24c]{margin-top:1.5rem;vertical-align:middle}.w-20[data-v-1648d24c]{width:10rem}.user-info .section[data-v-1648d24c]{padding:20px 0;border-bottom:1px dashed #eee}.user-info .section-hd[data-v-1648d24c]{padding-left:7px;border-left:3px solid var(--el-color-primary);font-weight:500;font-size:14px;line-height:16px;color:#303133}.user-info .section-bd[data-v-1648d24c]{padding:0 10px;display:flex;flex-wrap:wrap}.user-info .section .item[data-v-1648d24c]{flex:0 0 calc(33.33333% - 20px);display:flex;margin:16px 30px 0 0;font-size:13px;color:#666}.user-info .section .item[data-v-1648d24c]:nth-child(3n+3){margin:16px 0 0}.user-info .section .value[data-v-1648d24c]{flex:1}.user-info .section .avatar[data-v-1648d24c]{width:60px;height:60px;overflow:hidden}.user-info .section .avatar img[data-v-1648d24c]{width:100%;height:100%}
|
1
dist/static/css/584.02ae3f6d.css
vendored
Normal file
1
dist/static/css/584.02ae3f6d.css
vendored
Normal file
@ -0,0 +1 @@
|
||||
[data-v-aca363ea] .el-descriptions__title{padding-left:7px;border-left:3px solid var(--el-color-primary);font-weight:500;font-size:14px;line-height:16px;color:#303133}[data-v-aca363ea] .el-descriptions{padding:20px 0;border-bottom:1px dashed #eee}[data-v-aca363ea] .el-descriptions__body{padding:0 10px}.width-add[data-v-aca363ea]{width:40px}.mr30[data-v-aca363ea]{margin-right:30px}.mx-1[data-v-aca363ea]{margin-right:.5rem}.ml-1[data-v-aca363ea],.mx-1[data-v-aca363ea]{margin-top:.5rem;vertical-align:middle}.w-20[data-v-aca363ea]{width:10rem}.user-info .section[data-v-aca363ea]{padding:20px 0;border-bottom:1px dashed #eee}.user-info .section-hd[data-v-aca363ea]{padding-left:7px;border-left:3px solid var(--el-color-primary);font-weight:500;font-size:14px;line-height:16px;color:#303133}.user-info .section-bd[data-v-aca363ea]{padding:0 10px;display:flex;flex-wrap:wrap}.user-info .section .item[data-v-aca363ea]{flex:0 0 calc(33.33333% - 20px);display:flex;margin:16px 30px 0 0;font-size:13px;color:#666}.user-info .section .item[data-v-aca363ea]:nth-child(3n+3){margin:16px 0 0}.user-info .section .value[data-v-aca363ea]{flex:1}.user-info .section .avatar[data-v-aca363ea]{width:60px;height:60px;overflow:hidden}.user-info .section .avatar img[data-v-aca363ea]{width:100%;height:100%}
|
File diff suppressed because one or more lines are too long
1
dist/static/js/34.ed6c9523.js
vendored
1
dist/static/js/34.ed6c9523.js
vendored
File diff suppressed because one or more lines are too long
1
dist/static/js/584.99cf2439.js
vendored
Normal file
1
dist/static/js/584.99cf2439.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
dist/static/js/app.c0c00448.js
vendored
1
dist/static/js/app.c0c00448.js
vendored
File diff suppressed because one or more lines are too long
1
dist/static/js/app.f6ba5dd4.js
vendored
Normal file
1
dist/static/js/app.f6ba5dd4.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@ -4,41 +4,48 @@
|
||||
<div class="section-hd">基本信息</div>
|
||||
<div class="section-bd">
|
||||
<div class="item">
|
||||
<div>用户ID:</div>
|
||||
<div class="value">{{ user.uid }}</div>
|
||||
<div>唯一ID:</div>
|
||||
<div class="value" v-copy="user.uniqid">{{ user.uniqid }}</div>
|
||||
</div>
|
||||
<div class="item"></div>
|
||||
<div class="item"></div>
|
||||
<div class="item">
|
||||
<div>用户名:</div>
|
||||
<div class="value" v-copy="user.username">{{ user.username || '-' }}</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div>真实姓名:</div>
|
||||
<div class="value">{{ user.real_name || '-' }}</div>
|
||||
<div>昵称:</div>
|
||||
<div class="value" v-copy="user.nickname">{{ user.nickname || '-' }}</div>
|
||||
</div>
|
||||
<div class="item"></div>
|
||||
<div class="item">
|
||||
<div>手机号码:</div>
|
||||
<div class="value">{{ user.phone || '-' }}</div>
|
||||
<div class="value" v-copy="user.mobile">{{ user.mobile || '-' }}</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div>生日:</div>
|
||||
<div class="value">{{ user.birthday }}</div>
|
||||
<div>邮箱:</div>
|
||||
<div class="value" v-copy="user.email">{{ user.email }}</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div>性别:</div>
|
||||
<div v-if="user.sex" class="value">{{ user.sex == 1 ? '男' : '女' }}</div>
|
||||
<div v-if="user.gender" class="value">{{ user.gender == 1 ? '男' : '女' }}</div>
|
||||
<div v-else class="value">保密</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div>身份证号:</div>
|
||||
<div class="value">{{ user.card_id || '-' }}</div>
|
||||
<div>用户来源:</div>
|
||||
<div class="value">{{ user.regtype || '-' }}</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div>用户地址:</div>
|
||||
<div class="value">{{ user.addres || '-' }}</div>
|
||||
<div>注册IP:</div>
|
||||
<div class="value">{{ user.regip || '-' }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="section-hd">用户标签</div>
|
||||
<div class="section-bd">
|
||||
<div>
|
||||
<el-tag v-for="tag in tags" :key="tag" class="mx-1" closable :disable-transitions="false" @close="handleClose(tag)">
|
||||
<div style="padding-top: 10px;">
|
||||
<el-tag v-for="(tag, index) in userTag" :key="index" class="mx-1" closable :disable-transitions="false" @close="handleClose(tag)">
|
||||
{{ tag }}
|
||||
</el-tag>
|
||||
<el-input v-if="inputVisible" ref="InputRef" v-model="inputValue" class="ml-1 w-20" size="small" @keyup.enter="handleInputConfirm" @blur="handleInputConfirm" />
|
||||
@ -57,60 +64,19 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="section-hd">用户概况</div>
|
||||
<div class="section-bd">
|
||||
<div class="item">
|
||||
<div>推广资格:</div>
|
||||
<div class="value">{{ user.spread_open ? '开启' : '关闭' }}</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div>用户状态:</div>
|
||||
<div class="value">{{ user.status ? '开启' : '锁定' }}</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div>用户等级:</div>
|
||||
<div class="value">{{ user.vip_name || '-' }}</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div>用户标签:</div>
|
||||
<div class="value">{{ user.label_list || '-' }}</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div>用户分组:</div>
|
||||
<div class="value">{{ user.group_name || '-' }}</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div>推广人:</div>
|
||||
<div class="value">{{ user.spread_uid_nickname || '-' }}</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div>注册时间:</div>
|
||||
<div class="value">{{ user.add_time }}</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div>登录时间:</div>
|
||||
<div class="value">{{ user.last_time }}</div>
|
||||
</div>
|
||||
<div v-if="user.is_money_level" class="item">
|
||||
<div>付费会员:</div>
|
||||
<div class="value">
|
||||
{{
|
||||
user.is_ever_level == 1 ? '永久会员' : user.overdue_time ? `${user.overdue_time} 到期` : '已过期'
|
||||
}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="section-hd">用户备注</div>
|
||||
<div class="section-bd">
|
||||
<div class="item">
|
||||
<div>备注:</div>
|
||||
<div class="value">{{ user.mark || '-' }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<el-descriptions v-bind="s.options" v-for="(s, index) in section" :key="index">
|
||||
<template #extra>
|
||||
{{ s.extra }}
|
||||
</template>
|
||||
<el-descriptions-item v-bind="d" v-for="(d, i) in s.data" :key="i">
|
||||
<template #label>
|
||||
<span v-html="d.label"> </span>
|
||||
</template>
|
||||
{{ data[d.field] || '-' }}
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -118,36 +84,61 @@
|
||||
|
||||
export default {
|
||||
props: {
|
||||
data: { type: Object, default: () => ({}) }
|
||||
user: { type: Object, default: () => ({}) },
|
||||
tags: { type: Array, default: () => ([]) },
|
||||
token: { type: String, default: () => '' },
|
||||
},
|
||||
components: {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
user: {},
|
||||
form: [],
|
||||
tags: ['fdsfdsa', 'fdsafa'],
|
||||
token: null,
|
||||
userTag: [],
|
||||
data: {},
|
||||
section: [],
|
||||
inputVisible: null,
|
||||
inputValue: null,
|
||||
isLoad: false, // 初始设为 true
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
|
||||
// 监听 userTag 数组的变化
|
||||
userTag: {
|
||||
handler(val) {
|
||||
if (this.isLoad) {
|
||||
this.$emit("update:tags", val)
|
||||
return this.submitUserTags(val);
|
||||
}
|
||||
this.isLoad = true;
|
||||
},
|
||||
deep: true // 深度监听,以便能够检测数组或对象内部值的变化
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
// this.$http.post('system/user/get', { uid:this.data.uid }).then((res) => {
|
||||
// if (res.code == 200) {
|
||||
// this.user = res.data.user;
|
||||
// this.token = res.data.token;
|
||||
// this.form = res.data.form;
|
||||
// }
|
||||
// });
|
||||
this.userTag = this.tags;
|
||||
this.getData();
|
||||
},
|
||||
methods: {
|
||||
|
||||
getData() {
|
||||
this.$http.post('user/data/get', { token: this.token }).then((res) => {
|
||||
if (res.code == 200) {
|
||||
this.data = res.data.data || [];
|
||||
this.section = res.data.section || [];
|
||||
return;
|
||||
}
|
||||
this.$alert(res.message, "提示", { type: 'error' });
|
||||
});
|
||||
},
|
||||
// 提交
|
||||
submitUserTags(tags) {
|
||||
this.$http.post('user/index/tagsUpdate', { tags: tags, token: this.token }).then((res) => {
|
||||
if (res.code == 200) {
|
||||
return false;
|
||||
}
|
||||
this.$alert(res.message, "提示", { type: 'error' });
|
||||
});
|
||||
},
|
||||
handleClose(tag) {
|
||||
this.tags.splice(this.tags.indexOf(tag), 1)
|
||||
this.userTag.splice(this.userTag.indexOf(tag), 1)
|
||||
},
|
||||
|
||||
showInput() {
|
||||
@ -160,22 +151,33 @@ export default {
|
||||
},
|
||||
handleInputConfirm() {
|
||||
if (this.inputValue) {
|
||||
this.tags.push(this.inputValue)
|
||||
this.userTag.push(this.inputValue)
|
||||
}
|
||||
this.inputVisible = false
|
||||
this.inputValue = ''
|
||||
},
|
||||
updateParentValue(val) {
|
||||
console.log(val)
|
||||
alert('fdsafa')
|
||||
},
|
||||
submit() {
|
||||
alert(1)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
:deep .el-descriptions__title {
|
||||
padding-left: 7px;
|
||||
border-left: 3px solid var(--el-color-primary);
|
||||
font-weight: 500;
|
||||
font-size: 14px;
|
||||
line-height: 16px;
|
||||
color: #303133;
|
||||
}
|
||||
|
||||
:deep .el-descriptions {
|
||||
padding: 20px 0;
|
||||
border-bottom: 1px dashed #eeeeee;
|
||||
}
|
||||
|
||||
:deep .el-descriptions__body {
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
.width-add {
|
||||
width: 40px;
|
||||
}
|
||||
@ -183,16 +185,19 @@ export default {
|
||||
.mr30 {
|
||||
margin-right: 30px;
|
||||
}
|
||||
|
||||
.mx-1 {
|
||||
margin-right: 0.5rem;
|
||||
margin-top: 1.5rem;
|
||||
margin-right: 0.5rem;
|
||||
margin-top: .5rem;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.ml-1 {
|
||||
vertical-align: middle;
|
||||
margin-top: 1.5rem;
|
||||
margin-top: .5rem;
|
||||
}
|
||||
.w-20{
|
||||
|
||||
.w-20 {
|
||||
width: 10rem;
|
||||
}
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="user-row-action">
|
||||
<div class="user-row-action" v-if="user.uid">
|
||||
<el-button @click="xupdate('message', '发送消息', 'drawer')" type="info" size="small">
|
||||
系统消息
|
||||
</el-button>
|
||||
@ -57,7 +57,7 @@
|
||||
<el-main>
|
||||
<Suspense>
|
||||
<template #default>
|
||||
<component :data="user" :token="token" :is="page" />
|
||||
<component :user="user" :tags="tags" :token="token" :is="page" />
|
||||
</template>
|
||||
<template #fallback>
|
||||
<el-skeleton :rows="3" />
|
||||
@ -169,6 +169,7 @@ export default {
|
||||
return {
|
||||
menu: [],
|
||||
stat: [],
|
||||
tags: [],
|
||||
user: {},
|
||||
userData: this.modelValue,
|
||||
token: '',
|
||||
|
Loading…
Reference in New Issue
Block a user