no message

This commit is contained in:
小陌 2024-02-01 19:01:08 +08:00
parent fb14650ec9
commit 5d0414ff3b
11 changed files with 110 additions and 104 deletions

2
dist/index.html vendored
View File

@ -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

File diff suppressed because one or more lines are too long

View File

@ -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
View 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

File diff suppressed because one or more lines are too long

1
dist/static/js/584.99cf2439.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
dist/static/js/app.f6ba5dd4.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -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,15 +185,18 @@ export default {
.mr30 {
margin-right: 30px;
}
.mx-1 {
margin-right: 0.5rem;
margin-top: 1.5rem;
margin-top: .5rem;
vertical-align: middle;
}
.ml-1 {
vertical-align: middle;
margin-top: 1.5rem;
margin-top: .5rem;
}
.w-20 {
width: 10rem;
}

View File

@ -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: '',