mirror of
http://112.124.100.131/GFRS/ebiz-h5.git
synced 2025-12-12 10:16:43 +08:00
[FIX]【商品商城】增加接口
This commit is contained in:
@@ -2,28 +2,28 @@ import request from '@/assets/js/utils/request'
|
|||||||
import getUrl from '@/assets/js/utils/get-url'
|
import getUrl from '@/assets/js/utils/get-url'
|
||||||
|
|
||||||
// // 获取商品商城列表
|
// // 获取商品商城列表
|
||||||
// export function getCategory(data) {
|
export function getShopList(data) {
|
||||||
// return request({
|
return request({
|
||||||
// url: getUrl('/sale/product/getCategory', 1),
|
url: getUrl('/customer/shop/getShopList', 1),
|
||||||
// method: 'post',
|
method: 'post',
|
||||||
// data
|
data
|
||||||
// })
|
})
|
||||||
// }
|
}
|
||||||
|
|
||||||
// // 获取商城详情
|
// 查询分享轨迹(转发记录)
|
||||||
// export function getList(data) {
|
export function getShareList(data) {
|
||||||
// return request({
|
return request({
|
||||||
// url: getUrl('/sale/product/getProList', 1),
|
url: getUrl('/customer/shop/getShareList', 1),
|
||||||
// method: 'post',
|
method: 'post',
|
||||||
// data
|
data
|
||||||
// })
|
})
|
||||||
// }
|
}
|
||||||
|
|
||||||
// // 获取转发记录列表
|
// 分享轨迹保存
|
||||||
// export function getProductInfo(data) {
|
export function saveShareTrack(data) {
|
||||||
// return request({
|
return request({
|
||||||
// url: getUrl('/sale/product/getItemDetail', 1),
|
url: getUrl('/customer/shop/saveShareTrack', 1),
|
||||||
// method: 'post',
|
method: 'post',
|
||||||
// data
|
data
|
||||||
// })
|
})
|
||||||
// }
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
<van-row type="flex" align="center">
|
<van-row type="flex" align="center">
|
||||||
<van-col class="order" span="4">序号</van-col>
|
<van-col class="order" span="4">序号</van-col>
|
||||||
<van-col class="subTime" span="10">转发时间</van-col>
|
<van-col class="subTime" span="10">转发时间</van-col>
|
||||||
<van-col class="name" span="10">是否打开</van-col>
|
<van-col class="name" span="10">打开次数</van-col>
|
||||||
</van-row>
|
</van-row>
|
||||||
</div>
|
</div>
|
||||||
</van-sticky>
|
</van-sticky>
|
||||||
@@ -24,8 +24,8 @@
|
|||||||
<div class="main-table" v-for="(item, index) in answerList" :key="index">
|
<div class="main-table" v-for="(item, index) in answerList" :key="index">
|
||||||
<van-row type="flex" align="center">
|
<van-row type="flex" align="center">
|
||||||
<van-col class="order" span="4">{{ index + 1 }}</van-col>
|
<van-col class="order" span="4">{{ index + 1 }}</van-col>
|
||||||
<van-col class="subTime" span="10">{{ item.answerDate }}</van-col>
|
<van-col class="subTime" span="10">{{ item.shareTime }}</van-col>
|
||||||
<van-col class="name" span="10">{{ item.customerName }}</van-col>
|
<van-col class="name" span="10">{{ item.enterCount }}</van-col>
|
||||||
</van-row>
|
</van-row>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -40,7 +40,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { Sticky, Row, Col, List } from 'vant'
|
import { Sticky, Row, Col, List } from 'vant'
|
||||||
import { discAnalysisList } from '@/api/ebiz/manpower/manpower'
|
import { getShareList } from '@/api/ebiz/product-store/product-store'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'ForwardRecord',
|
name: 'ForwardRecord',
|
||||||
@@ -59,11 +59,13 @@ export default {
|
|||||||
finishedText: '',
|
finishedText: '',
|
||||||
pageSize: 15, //每页数据条数
|
pageSize: 15, //每页数据条数
|
||||||
isSuccess: false,
|
isSuccess: false,
|
||||||
answerList: [] //答卷列表
|
answerList: [], //记录列表
|
||||||
|
mallId: '' //商品id
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {},
|
created() {},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
this.mallId = this.$route.query.mallId
|
||||||
this.loadMore()
|
this.loadMore()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -73,19 +75,17 @@ export default {
|
|||||||
pageNum: this.currentPage,
|
pageNum: this.currentPage,
|
||||||
pageSize: this.pageSize
|
pageSize: this.pageSize
|
||||||
}
|
}
|
||||||
this.getDiscAnalysisList(pageInfo)
|
this.getShareList(pageInfo)
|
||||||
},
|
},
|
||||||
//获取DISC统计列表数据
|
//获取转发记录列表
|
||||||
//TODO
|
getShareList(pageInfo) {
|
||||||
getDiscAnalysisList(pageInfo) {
|
|
||||||
let params = {
|
let params = {
|
||||||
...pageInfo,
|
...pageInfo,
|
||||||
...{
|
...{
|
||||||
agentCode: '',
|
mallId: this.mallId
|
||||||
tableCode: 'GFRS-DISC'
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
discAnalysisList(params).then(res => {
|
getShareList(params).then(res => {
|
||||||
if (res.result == '0') {
|
if (res.result == '0') {
|
||||||
this.isSuccess = true
|
this.isSuccess = true
|
||||||
this.currentPage++
|
this.currentPage++
|
||||||
@@ -93,7 +93,7 @@ export default {
|
|||||||
if (res.content == null) {
|
if (res.content == null) {
|
||||||
this.finished = true
|
this.finished = true
|
||||||
this.loading = false
|
this.loading = false
|
||||||
this.finishedText = ''
|
this.finishedText = '已经全部加载'
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
let answerList = res.content.answerList.list
|
let answerList = res.content.answerList.list
|
||||||
@@ -112,6 +112,7 @@ export default {
|
|||||||
this.finished = true
|
this.finished = true
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
this.$toast(res.resultMessage)
|
||||||
this.finished = true
|
this.finished = true
|
||||||
this.loading = false
|
this.loading = false
|
||||||
this.finishedText = res.resultMessage
|
this.finishedText = res.resultMessage
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="login-msg-container">
|
<div class="login-msg-container">
|
||||||
<div class="p5 pb0">
|
<div class="p5 pb0">
|
||||||
<van-field v-model="loginInfo.name" required label="登录账号" v-validate="'required'" name="登录账号" placeholder="请输入" clearable />
|
<van-field v-model="loginInfo.aname" required label="登录账号" v-validate="'required'" name="登录账号" placeholder="请输入" clearable />
|
||||||
<van-field v-model="loginInfo.password" required label="登录密码" v-validate="'required'" name="登录密码" placeholder="请输入" clearable />
|
<van-field v-model="loginInfo.password" required label="登录密码" v-validate="'required'" name="登录密码" placeholder="请输入" clearable />
|
||||||
</div>
|
</div>
|
||||||
<van-button type="danger" class="bottom-btn" @click="nextStep" v-no-more-click="1000">确认并转发</van-button>
|
<van-button type="danger" class="bottom-btn" @click="nextStep" v-no-more-click="1000">确认并转发</van-button>
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { Field } from 'vant'
|
import { Field } from 'vant'
|
||||||
// import { weixinShare } from '@/assets/js/utils/wxShare.js'
|
import { saveShareTrack } from '@/api/ebiz/product-store/product-store'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'LoginMsg',
|
name: 'LoginMsg',
|
||||||
@@ -21,14 +21,19 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
loginInfo: {
|
loginInfo: {
|
||||||
name: '',
|
aname: '',
|
||||||
password: ''
|
password: ''
|
||||||
}
|
},
|
||||||
|
shareId: '', //分享id
|
||||||
|
mallId: '', //商城id
|
||||||
|
name: '' //商品名称
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {},
|
created() {},
|
||||||
mounted() {
|
mounted() {
|
||||||
document.getElementsByTagName('body')[0].classList.add('bg-white')
|
document.getElementsByTagName('body')[0].classList.add('bg-white')
|
||||||
|
this.mallId = this.$route.query.mallId
|
||||||
|
this.name = this.$route.query.name
|
||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {
|
||||||
document.getElementsByTagName('body')[0].classList.remove('bg-white')
|
document.getElementsByTagName('body')[0].classList.remove('bg-white')
|
||||||
@@ -37,6 +42,7 @@ export default {
|
|||||||
async nextStep() {
|
async nextStep() {
|
||||||
let valid = await this.$validator.validate()
|
let valid = await this.$validator.validate()
|
||||||
if (true === valid) {
|
if (true === valid) {
|
||||||
|
await saveShareTrack()
|
||||||
this.share()
|
this.share()
|
||||||
} else {
|
} else {
|
||||||
return this.$toast(this.$validator.errors.all()[0])
|
return this.$toast(this.$validator.errors.all()[0])
|
||||||
@@ -47,20 +53,47 @@ export default {
|
|||||||
location.origin +
|
location.origin +
|
||||||
'/#/productStore/storeDetail?token=' +
|
'/#/productStore/storeDetail?token=' +
|
||||||
localStorage.getItem('token') +
|
localStorage.getItem('token') +
|
||||||
'&name=' +
|
'&aname=' +
|
||||||
escape(this.loginInfo.name) +
|
escape(this.loginInfo.aname) +
|
||||||
'&password=' +
|
'&password=' +
|
||||||
escape(this.loginInfo.password)
|
escape(this.loginInfo.password) +
|
||||||
|
'&shareId=' +
|
||||||
|
this.shareId +
|
||||||
|
'&mallId' +
|
||||||
|
this.mallId +
|
||||||
|
'&name' +
|
||||||
|
this.name
|
||||||
// eslint-disable-next-line no-undef
|
// eslint-disable-next-line no-undef
|
||||||
EWebBridge.webCallAppInJs('bridge', {
|
EWebBridge.webCallAppInJs('bridge', {
|
||||||
flag: 'share',
|
flag: 'share',
|
||||||
extra: {
|
extra: {
|
||||||
title: `xxx商品商城`,
|
title: `${this.name}商品商城`,
|
||||||
content: `分享给你一个商品,快来点击购买吧!`,
|
content: `分享给你一个商品,快来点击购买吧!`,
|
||||||
url: url,
|
url: url,
|
||||||
img: this.$assetsUrl + 'images/logo.png'
|
img: this.$assetsUrl + 'images/logo.png'
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
//分享轨迹保存
|
||||||
|
saveShareTrack() {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
let data = {
|
||||||
|
mallId: this.mallId
|
||||||
|
}
|
||||||
|
saveShareTrack(data).then(
|
||||||
|
res => {
|
||||||
|
if (res.result == '0') {
|
||||||
|
this.shareId = res.content.id
|
||||||
|
resolve()
|
||||||
|
} else {
|
||||||
|
reject(this.$toast(res.resultMessage))
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error => {
|
||||||
|
reject(console.log(error))
|
||||||
|
}
|
||||||
|
)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,10 +5,10 @@
|
|||||||
<van-notice-bar wrapable :scrollable="false" text="温馨提示:您即将离开本站,访问的链接来源于第三方网站,可能存在风险,请谨慎操作!" />
|
<van-notice-bar wrapable :scrollable="false" text="温馨提示:您即将离开本站,访问的链接来源于第三方网站,可能存在风险,请谨慎操作!" />
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<img src="https://img.yzcdn.cn/vant/apple-1.jpg" alt="" width="100%" />
|
<img :src="detail.imgUrl" alt="" width="100%" />
|
||||||
</div>
|
</div>
|
||||||
<div class="p5 pb0 mb40" v-if="isWeixin">
|
<div class="p5 pb0 mb40" v-if="isWeixin">
|
||||||
<van-field v-model="loginInfo.name" required label="登录账号" v-validate="'required'" name="登录账号" placeholder="请输入" clearable />
|
<van-field v-model="loginInfo.aname" required label="登录账号" v-validate="'required'" name="登录账号" placeholder="请输入" clearable />
|
||||||
<van-field v-model="loginInfo.password" required label="登录密码" v-validate="'required'" name="登录密码" placeholder="请输入" clearable />
|
<van-field v-model="loginInfo.password" required label="登录密码" v-validate="'required'" name="登录密码" placeholder="请输入" clearable />
|
||||||
</div>
|
</div>
|
||||||
<van-button v-if="isWeixin" type="danger" class="bottom-btn" @click="check" v-no-more-click="1000">查看</van-button>
|
<van-button v-if="isWeixin" type="danger" class="bottom-btn" @click="check" v-no-more-click="1000">查看</van-button>
|
||||||
@@ -18,6 +18,9 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { NoticeBar, Field } from 'vant'
|
import { NoticeBar, Field } from 'vant'
|
||||||
|
import icon from '@/assets/images/jilu@3x.png'
|
||||||
|
import { getShopList, saveShareTrack } from '@/api/ebiz/product-store/product-store'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'StoreDetail',
|
name: 'StoreDetail',
|
||||||
components: {
|
components: {
|
||||||
@@ -28,13 +31,18 @@ export default {
|
|||||||
let isWeixin = this.$utils.device().isWeixin //判断环境
|
let isWeixin = this.$utils.device().isWeixin //判断环境
|
||||||
return {
|
return {
|
||||||
isWeixin, //是否在微信
|
isWeixin, //是否在微信
|
||||||
|
mallId: '', //商城id
|
||||||
|
shareId: '', //分享id
|
||||||
//登录账号及密码
|
//登录账号及密码
|
||||||
loginInfo: {
|
loginInfo: {
|
||||||
name: '',
|
aname: '',
|
||||||
password: ''
|
password: ''
|
||||||
},
|
},
|
||||||
storeId: '', //商城id
|
detail: {
|
||||||
imgUrl: '' //商城简介图片地址
|
imgUrl: '', //商城简介图片地址
|
||||||
|
linkUrl: '', //商城外链地址
|
||||||
|
name: '' //商城名称
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
@@ -45,43 +53,80 @@ export default {
|
|||||||
EWebBridge.webCallAppInJs('webview_right_button', {
|
EWebBridge.webCallAppInJs('webview_right_button', {
|
||||||
btns: [
|
btns: [
|
||||||
{
|
{
|
||||||
title: '转发记录',
|
img: icon
|
||||||
img: this.$assetsUrl + 'images/jilu@3x.png',
|
|
||||||
route: { flag: '', extra: {} }
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
}, 100)
|
}, 100)
|
||||||
}
|
}
|
||||||
window.appCallback = this.appCallback //app回调
|
window.appCallback = this.appCallback //app回调
|
||||||
this.storeId = this.$route.query.storeId
|
this.mallId = this.$route.query.mallId
|
||||||
if (this.isWeixin) {
|
if (this.isWeixin) {
|
||||||
this.loginInfo.name = this.$route.query.name
|
window.localStorage.setItem('token', this.$route.query.token)
|
||||||
|
this.loginInfo.aname = this.$route.query.aname
|
||||||
this.loginInfo.password = this.$route.query.password
|
this.loginInfo.password = this.$route.query.password
|
||||||
|
this.shareId = this.$route.query.shareId
|
||||||
|
this.name = this.$route.query.name
|
||||||
|
this.saveShareTrack()
|
||||||
}
|
}
|
||||||
|
// this.getShopList({ id: this.mallId })
|
||||||
|
//TEST
|
||||||
|
this.setDetail()
|
||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {
|
||||||
document.getElementsByTagName('body')[0].classList.remove('bg-white')
|
document.getElementsByTagName('body')[0].classList.remove('bg-white')
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
//TEST
|
||||||
|
setDetail() {
|
||||||
|
this.detail = {
|
||||||
|
imgUrl: 'https://img.yzcdn.cn/vant/apple-3.jpg',
|
||||||
|
linkUrl: 'https://img.yzcdn.cn/vant/apple-2.jpg'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
//获取商城详情
|
||||||
|
getShopList(data) {
|
||||||
|
getShopList(data).then(res => {
|
||||||
|
if (res.result == '0') {
|
||||||
|
this.detail = res.content[0]
|
||||||
|
} else {
|
||||||
|
this.$toast(res.resultMessage)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
//查看
|
//查看
|
||||||
check() {
|
check() {
|
||||||
//TODO
|
//TODO
|
||||||
|
window.location.href = this.detail.linkUrl
|
||||||
},
|
},
|
||||||
//一键转发
|
//一键转发
|
||||||
forward() {
|
forward() {
|
||||||
this.$jump({
|
this.$jump({
|
||||||
flag: 'h5',
|
flag: 'h5',
|
||||||
extra: {
|
extra: {
|
||||||
url: location.origin + `/#/productStore/loginMsg?storeId=${this.storeId}`
|
url: location.origin + `/#/productStore/loginMsg?mallId=${this.mallId}&name=${this.detail.name}`
|
||||||
},
|
},
|
||||||
routerInfo: {
|
routerInfo: {
|
||||||
path: `/productStore/loginMsg?storeId=${this.storeId}`
|
path: `/productStore/loginMsg?mallId=${this.mallId}&name=${this.detail.name}`
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
//分享轨迹保存
|
||||||
|
saveShareTrack() {
|
||||||
|
let data = {
|
||||||
|
mallId: this.mallId
|
||||||
|
}
|
||||||
|
saveShareTrack(data).then(res => {
|
||||||
|
if (res.result == '0') {
|
||||||
|
} else {
|
||||||
|
this.$toast(res.resultMessage)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
//app回调
|
//app回调
|
||||||
appCallback(data) {
|
appCallback(data) {
|
||||||
|
console.log('data========', data)
|
||||||
|
return
|
||||||
if (data.trigger == 'right_button_click' && !this.isWeixin) {
|
if (data.trigger == 'right_button_click' && !this.isWeixin) {
|
||||||
this.$jump({
|
this.$jump({
|
||||||
flag: 'h5',
|
flag: 'h5',
|
||||||
|
|||||||
@@ -4,15 +4,15 @@
|
|||||||
<div v-for="(item, index) in list" :key="index" @click="goDetail(item)">
|
<div v-for="(item, index) in list" :key="index" @click="goDetail(item)">
|
||||||
<van-grid :border="false" :gutter="10" :column-num="3">
|
<van-grid :border="false" :gutter="10" :column-num="3">
|
||||||
<van-grid-item>
|
<van-grid-item>
|
||||||
<van-image :src="item.imageUrl" />
|
<van-image :src="item.iconUrl" />
|
||||||
<van-grid-item :text="item.name" />
|
<van-grid-item :text="item.name" />
|
||||||
</van-grid-item>
|
</van-grid-item>
|
||||||
<van-grid-item>
|
<van-grid-item>
|
||||||
<van-image :src="item.imageUrl" />
|
<van-image :src="item.iconUrl" />
|
||||||
<van-grid-item :text="item.name" />
|
<van-grid-item :text="item.name" />
|
||||||
</van-grid-item>
|
</van-grid-item>
|
||||||
<van-grid-item>
|
<van-grid-item>
|
||||||
<van-image :src="item.imageUrl" />
|
<van-image :src="item.iconUrl" />
|
||||||
<van-grid-item :text="item.name" />
|
<van-grid-item :text="item.name" />
|
||||||
</van-grid-item>
|
</van-grid-item>
|
||||||
</van-grid>
|
</van-grid>
|
||||||
@@ -22,6 +22,8 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { Grid, GridItem, Image } from 'vant'
|
import { Grid, GridItem, Image } from 'vant'
|
||||||
|
import { getShopList } from '@/api/ebiz/product-store/product-store'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'StoreList',
|
name: 'StoreList',
|
||||||
components: {
|
components: {
|
||||||
@@ -37,25 +39,36 @@ export default {
|
|||||||
mounted() {
|
mounted() {
|
||||||
//TEST
|
//TEST
|
||||||
this.setList()
|
this.setList()
|
||||||
|
// this.getShopList()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
//TEST
|
//TEST
|
||||||
setList() {
|
setList() {
|
||||||
this.list = [
|
this.list = [
|
||||||
{ name: '小米', imageUrl: 'https://img.yzcdn.cn/vant/apple-1.jpg', storeId: 'A1' },
|
{ name: '小米', iconUrl: 'https://img.yzcdn.cn/vant/apple-1.jpg', id: 'A1' },
|
||||||
{ name: '华为', imageUrl: 'https://img.yzcdn.cn/vant/apple-2.jpg', storeId: 'A2' },
|
{ name: '华为', iconUrl: 'https://img.yzcdn.cn/vant/apple-2.jpg', id: 'A2' },
|
||||||
{ name: '苹果', imageUrl: 'https://img.yzcdn.cn/vant/apple-3.jpg', storeId: 'A3' }
|
{ name: '苹果', iconUrl: 'https://img.yzcdn.cn/vant/apple-3.jpg', id: 'A3' }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
//获取商品商城列表
|
||||||
|
getShopList() {
|
||||||
|
getShopList({}).then(res => {
|
||||||
|
if (res.result == '0') {
|
||||||
|
this.list = res.content
|
||||||
|
} else {
|
||||||
|
this.$toast(res.resultMessage)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
//查看详情
|
//查看详情
|
||||||
goDetail(v) {
|
goDetail(v) {
|
||||||
this.$jump({
|
this.$jump({
|
||||||
flag: 'h5',
|
flag: 'h5',
|
||||||
extra: {
|
extra: {
|
||||||
url: location.origin + `/#/productStore/storeDetail?storeId=${v.storeId}`
|
url: location.origin + `/#/productStore/storeDetail?mallId=${v.id}`
|
||||||
},
|
},
|
||||||
routerInfo: {
|
routerInfo: {
|
||||||
path: `/productStore/storeDetail?storeId=${v.storeId}`
|
path: `/productStore/storeDetail?mallId=${v.id}`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user