工作台
This commit is contained in:
169
apis/index.js
Normal file
169
apis/index.js
Normal file
@@ -0,0 +1,169 @@
|
||||
|
||||
/**
|
||||
* Web唐明明
|
||||
* 匆匆数载恍如梦,岁月迢迢华发增。
|
||||
* 碌碌无为枉半生,一朝惊醒万事空。
|
||||
*/
|
||||
|
||||
import store from '@/store'
|
||||
import router from '../router'
|
||||
|
||||
// 基础配置
|
||||
const config = {
|
||||
apiUrl : 'http://douhuo.douhuofalv.com/api/',
|
||||
timeout : 60000
|
||||
}
|
||||
|
||||
let loginHintState = false
|
||||
|
||||
// 网络请求
|
||||
const request = (parameter, hideLoding = true) => {
|
||||
// 检查url配置
|
||||
if(parameter.url === 'undefined' || parameter.url === ''){
|
||||
uni.showToast({
|
||||
title: '请求地址不能为空',
|
||||
icon : 'none'
|
||||
})
|
||||
return
|
||||
}
|
||||
// 注入header
|
||||
config.header = {
|
||||
'Accept': 'application/json',
|
||||
'Authorization': store.getters.getToken || uni.getStorageSync('token')
|
||||
}
|
||||
// 加载提示
|
||||
if(!hideLoding) uni.showLoading({
|
||||
title: '加载中',
|
||||
mask : true
|
||||
});
|
||||
|
||||
// 请求实例
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.request({
|
||||
url : config.apiUrl + parameter.url,
|
||||
timeout : config.timeout,
|
||||
header : config.header || {},
|
||||
data : parameter.data || {},
|
||||
method : parameter.method || 'GET',
|
||||
success : res => {
|
||||
if (res.header.Authorization){
|
||||
updateToken('token', res.header.Authorization)
|
||||
}
|
||||
if(res.statusCode === 200){
|
||||
uni.hideLoading()
|
||||
const resolveData = res.data
|
||||
if(resolveData.status_code === 200) {
|
||||
resolve(resolveData.data)
|
||||
return
|
||||
}
|
||||
if(resolveData.status_code === 401) {
|
||||
loginHint()
|
||||
return
|
||||
}
|
||||
reject(resolveData)
|
||||
return
|
||||
}
|
||||
errToast(res.statusCode)
|
||||
},
|
||||
fail(err) {
|
||||
uni.showToast({
|
||||
title: '网络错误,请检查您设备网络状态',
|
||||
icon : 'none'
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
// 文件上传
|
||||
const uploading = (paths, formData, url) => {
|
||||
uni.showLoading({
|
||||
title: '上传中',
|
||||
mask : true
|
||||
});
|
||||
// 注入header
|
||||
config.header = {
|
||||
'Accept': 'application/json',
|
||||
'Authorization': store.getters.getToken || ''
|
||||
}
|
||||
// 上传图片
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.uploadFile({
|
||||
url : config.apiUrl + (url || 'storage/uploads'),
|
||||
files : paths,
|
||||
header : config.header || {},
|
||||
formData: formData || {},
|
||||
success : res=>{
|
||||
if(res.statusCode === 200){
|
||||
uni.hideLoading()
|
||||
let updData = JSON.parse(res.data)
|
||||
if(updData.status_code === 200){
|
||||
resolve(updData.data)
|
||||
return
|
||||
}
|
||||
reject(updData)
|
||||
return
|
||||
}
|
||||
errToast(res.statusCode)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
// 处理一些http请求错误提示
|
||||
const errToast = (code) => {
|
||||
switch (code){
|
||||
case 404:
|
||||
uni.showToast({
|
||||
title: code + '接口不存在,请联系系统管理员',
|
||||
icon : 'none'
|
||||
})
|
||||
break;
|
||||
case 405:
|
||||
uni.showToast({
|
||||
title: code + '请检查接口请求方式错误',
|
||||
icon : 'none'
|
||||
})
|
||||
break;
|
||||
case 500:
|
||||
uni.showToast({
|
||||
title: code + '服务端错误,请检查服务器信息',
|
||||
icon : 'none'
|
||||
})
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// 更新token
|
||||
const updateToken = (token) => {
|
||||
store.commit('setToken', token)
|
||||
// 清除退出登录标识
|
||||
uni.removeStorageSync('isnew')
|
||||
}
|
||||
|
||||
// 处理登录提示
|
||||
const loginHint = () => {
|
||||
if( loginHintState ) return
|
||||
if(!loginHintState) loginHintState = true
|
||||
updateToken('')
|
||||
uni.showModal({
|
||||
title: '登录提示',
|
||||
content: '您的登录信息已过期,请重新登录',
|
||||
confirmColor: '#8b64fd',
|
||||
showCancel:false,
|
||||
success: res=> {
|
||||
loginHintState = false
|
||||
if (res.confirm) {
|
||||
uni.reLaunch({
|
||||
url:'/pages/auth/auth'
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
request,
|
||||
uploading,
|
||||
config
|
||||
}
|
||||
49
apis/interfaces/account.js
Normal file
49
apis/interfaces/account.js
Normal file
@@ -0,0 +1,49 @@
|
||||
|
||||
/**
|
||||
* Web唐明明
|
||||
* 匆匆数载恍如梦,岁月迢迢华发增。
|
||||
* 碌碌无为枉半生,一朝惊醒万事空。
|
||||
* moduleName: 账户
|
||||
*/
|
||||
|
||||
import { request } from '../index'
|
||||
|
||||
// 火力值账户
|
||||
const score = (data) =>{
|
||||
return request({
|
||||
url : "user/account/score",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 活力值变动
|
||||
const log = data => {
|
||||
return request({
|
||||
url : "user/account/score",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 业绩账户
|
||||
const cash = data => {
|
||||
return request({
|
||||
url: "perf/lists",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 奖金账户
|
||||
const balance = data => {
|
||||
return request({
|
||||
url: "user/account/balance",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
score,
|
||||
log,
|
||||
cash,
|
||||
balance
|
||||
}
|
||||
|
||||
21
apis/interfaces/address.js
Normal file
21
apis/interfaces/address.js
Normal file
@@ -0,0 +1,21 @@
|
||||
|
||||
/**
|
||||
* Web唐明明
|
||||
* 匆匆数载恍如梦,岁月迢迢华发增。
|
||||
* 碌碌无为枉半生,一朝惊醒万事空。
|
||||
* moduleName: 地址信息
|
||||
*/
|
||||
|
||||
import { request } from '../index'
|
||||
|
||||
// 城市列表
|
||||
const region = data => {
|
||||
return request({
|
||||
url : 'region/all',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
region
|
||||
}
|
||||
61
apis/interfaces/auth.js
Normal file
61
apis/interfaces/auth.js
Normal file
@@ -0,0 +1,61 @@
|
||||
|
||||
/**
|
||||
* Web唐明明
|
||||
* 匆匆数载恍如梦,岁月迢迢华发增。
|
||||
* 碌碌无为枉半生,一朝惊醒万事空。
|
||||
* moduleName: 鉴权
|
||||
*/
|
||||
|
||||
import { request } from '../index'
|
||||
|
||||
// 用户名密码登录
|
||||
const auth = (data) =>{
|
||||
return request({
|
||||
url : "user/auth/login",
|
||||
method : "POST",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 用户注册
|
||||
const register = data => {
|
||||
return request({
|
||||
url : "user/auth/register",
|
||||
method : "POST",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 图形验证码
|
||||
const captcha = () => {
|
||||
return request({
|
||||
url : "user/auth/captcha",
|
||||
method : "POST"
|
||||
})
|
||||
}
|
||||
|
||||
// 获取短信验证码
|
||||
const verifyCaptcha = data => {
|
||||
return request({
|
||||
url : "user/auth/verify_captcha",
|
||||
method : "POST",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 重置密码
|
||||
const resetPassword = data => {
|
||||
return request({
|
||||
url : "user/auth/reset_password",
|
||||
method : "POST",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
auth,
|
||||
register,
|
||||
captcha,
|
||||
verifyCaptcha,
|
||||
resetPassword
|
||||
}
|
||||
67
apis/interfaces/business.js
Normal file
67
apis/interfaces/business.js
Normal file
@@ -0,0 +1,67 @@
|
||||
|
||||
/**
|
||||
* Web唐明明
|
||||
* 匆匆数载恍如梦,岁月迢迢华发增。
|
||||
* 碌碌无为枉半生,一朝惊醒万事空。
|
||||
* moduleName: 业务
|
||||
*/
|
||||
|
||||
import { request } from '../index'
|
||||
|
||||
// 主业务类型
|
||||
const business = () =>{
|
||||
return request({
|
||||
url: "business/index",
|
||||
})
|
||||
}
|
||||
|
||||
// 获取主业务机构
|
||||
const institution = id =>{
|
||||
return request({
|
||||
url: "business/" + id + "/institution",
|
||||
})
|
||||
}
|
||||
|
||||
// 获取机构表单数据
|
||||
const institutionType = id => {
|
||||
return request({
|
||||
url: "business/institution/" + id + "/type",
|
||||
})
|
||||
}
|
||||
|
||||
// 搜索办理业务用户
|
||||
const availableUser = (type, value) => {
|
||||
if(type === 'mobile'){
|
||||
return request({
|
||||
url : "user/relations/child_by_mobile",
|
||||
data: {
|
||||
mobile: value
|
||||
}
|
||||
})
|
||||
}
|
||||
if(type === 'name'){
|
||||
return request({
|
||||
url : "user/relations/child_by_name",
|
||||
data: {
|
||||
name: value
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// 提交用户办理信息
|
||||
const submitStore = data => {
|
||||
return request({
|
||||
url : "business/store",
|
||||
method : "POST",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
business,
|
||||
institution,
|
||||
institutionType,
|
||||
availableUser,
|
||||
submitStore
|
||||
}
|
||||
47
apis/interfaces/college.js
Normal file
47
apis/interfaces/college.js
Normal file
@@ -0,0 +1,47 @@
|
||||
|
||||
/**
|
||||
* Web唐明明
|
||||
* 匆匆数载恍如梦,岁月迢迢华发增。
|
||||
* 碌碌无为枉半生,一朝惊醒万事空。
|
||||
* moduleName: 商学院
|
||||
*/
|
||||
|
||||
import { request } from '../index'
|
||||
|
||||
// 考试评测列表
|
||||
const evaluations = () => {
|
||||
return request({
|
||||
url : "evaluations",
|
||||
})
|
||||
}
|
||||
|
||||
// 考试题列表
|
||||
const questions = id => {
|
||||
return request({
|
||||
url : "evaluations/" + id + "/questions",
|
||||
})
|
||||
}
|
||||
|
||||
// 提交答案
|
||||
const answers = (id, data) => {
|
||||
return request({
|
||||
url : "evaluations/" + id + "/answers",
|
||||
method : "POST",
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 考试答案解析
|
||||
const report = id => {
|
||||
return request({
|
||||
url : "evaluations/" + id + "/report"
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
evaluations,
|
||||
questions,
|
||||
answers,
|
||||
report
|
||||
}
|
||||
|
||||
38
apis/interfaces/mailed.js
Normal file
38
apis/interfaces/mailed.js
Normal file
@@ -0,0 +1,38 @@
|
||||
|
||||
/**
|
||||
* Web唐明明
|
||||
* 匆匆数载恍如梦,岁月迢迢华发增。
|
||||
* 碌碌无为枉半生,一朝惊醒万事空。
|
||||
* moduleName: 邮寄材料
|
||||
*/
|
||||
|
||||
import { request } from '../index'
|
||||
|
||||
// 获取物流公司列表
|
||||
const express = () => {
|
||||
return request({
|
||||
url : 'express',
|
||||
})
|
||||
}
|
||||
|
||||
// 获取订单邮寄地址
|
||||
const orderAddress = id => {
|
||||
return request({
|
||||
url : 'business/' + id + '/address'
|
||||
})
|
||||
}
|
||||
|
||||
// 提交邮寄物品
|
||||
const submitExpresses = (id, data) => {
|
||||
return request({
|
||||
url : 'business/' + id + '/expresses',
|
||||
method : 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
express,
|
||||
orderAddress,
|
||||
submitExpresses
|
||||
}
|
||||
155
apis/interfaces/order.js
Normal file
155
apis/interfaces/order.js
Normal file
@@ -0,0 +1,155 @@
|
||||
|
||||
/**
|
||||
* Web唐明明
|
||||
* 匆匆数载恍如梦,岁月迢迢华发增。
|
||||
* 碌碌无为枉半生,一朝惊醒万事空。
|
||||
* moduleName: 订单管理
|
||||
*/
|
||||
|
||||
import { request } from '../index'
|
||||
|
||||
// 订单列表
|
||||
const lists = data => {
|
||||
return request({
|
||||
url : 'app/orders',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 配置服务包
|
||||
const service = orderId => {
|
||||
return request({
|
||||
url : 'business/' + orderId + '/service',
|
||||
method : 'POST'
|
||||
})
|
||||
}
|
||||
|
||||
// 添加服务包
|
||||
const serviceAdd = (orderId, items) => {
|
||||
return request({
|
||||
url : 'business/' + orderId + '/service/calculate',
|
||||
method : 'POST',
|
||||
data : {
|
||||
items
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 删除服务包
|
||||
const serviceRemove = (id, data) => {
|
||||
return request({
|
||||
url : 'business/' + id + '/service/remove',
|
||||
method : 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 完成分配
|
||||
const serviceOver = orderId => {
|
||||
return request({
|
||||
url : 'business/' + orderId + '/service/over',
|
||||
method : 'POST',
|
||||
})
|
||||
}
|
||||
|
||||
// 订单详情
|
||||
const info = orderId => {
|
||||
return request({
|
||||
url : 'app/orders/' + orderId
|
||||
})
|
||||
}
|
||||
|
||||
// 订单资料完善情况
|
||||
const perfect = orderId => {
|
||||
return request({
|
||||
url : 'app/orders/' + orderId + '/data',
|
||||
})
|
||||
}
|
||||
|
||||
// 订单基础资料信息
|
||||
const perfectBase = orderId => {
|
||||
return request({
|
||||
url : 'business/' + orderId + '/user/base'
|
||||
})
|
||||
}
|
||||
|
||||
// 提交基础资料信息
|
||||
const updPerfectBase = (orderId, data) => {
|
||||
return request({
|
||||
url : 'business/' + orderId + '/user/base',
|
||||
method : 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 订单机构资料
|
||||
const baseBase = baseId => {
|
||||
return request({
|
||||
url : 'business/' + baseId + '/user/bank'
|
||||
})
|
||||
}
|
||||
|
||||
// 更新机构资料
|
||||
const updBaseBase = (baseId, data) => {
|
||||
return request({
|
||||
url : 'business/' + baseId + '/user/bank',
|
||||
method : 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 待补差价订单
|
||||
const ordersDiffs = data => {
|
||||
return request({
|
||||
url : 'app/orders/diffs'
|
||||
})
|
||||
}
|
||||
|
||||
// 待修改订单
|
||||
const ordersEditorders = data => {
|
||||
return request({
|
||||
url : 'app/orders/editorders'
|
||||
})
|
||||
}
|
||||
|
||||
// 个人订单签约
|
||||
const orderSign = (id, data) => {
|
||||
return request({
|
||||
url : 'business/' + id + '/sign_url',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 查询订单签约状态
|
||||
const getOrderSignStatus = id => {
|
||||
return request({
|
||||
url: 'business/' + id + '/sign_status'
|
||||
})
|
||||
}
|
||||
|
||||
// 机构预估方案
|
||||
const getSchemes = id => {
|
||||
return request({
|
||||
url: 'business/' + id + '/item_scheme'
|
||||
})
|
||||
}
|
||||
|
||||
// 支付订单
|
||||
export {
|
||||
lists,
|
||||
service,
|
||||
serviceAdd,
|
||||
serviceRemove,
|
||||
serviceOver,
|
||||
info,
|
||||
perfect,
|
||||
perfectBase,
|
||||
updPerfectBase,
|
||||
baseBase,
|
||||
updBaseBase,
|
||||
ordersDiffs,
|
||||
ordersEditorders,
|
||||
orderSign,
|
||||
getOrderSignStatus,
|
||||
getSchemes
|
||||
}
|
||||
28
apis/interfaces/pay.js
Normal file
28
apis/interfaces/pay.js
Normal file
@@ -0,0 +1,28 @@
|
||||
|
||||
/**
|
||||
* Web唐明明
|
||||
* 匆匆数载恍如梦,岁月迢迢华发增。
|
||||
* 碌碌无为枉半生,一朝惊醒万事空。
|
||||
* moduleName: 收银台
|
||||
*/
|
||||
|
||||
import { request } from '../index'
|
||||
|
||||
// 抖火币支付
|
||||
const coinPay = orderId => {
|
||||
return request({
|
||||
url : 'pay/order/' + orderId + '/score',
|
||||
})
|
||||
}
|
||||
|
||||
// 抖火币补差价支付
|
||||
const diffCoinPay = orderId => {
|
||||
return request({
|
||||
url : 'pay/diff/' + orderId + '/score'
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
coinPay,
|
||||
diffCoinPay
|
||||
}
|
||||
59
apis/interfaces/transfers.js
Normal file
59
apis/interfaces/transfers.js
Normal file
@@ -0,0 +1,59 @@
|
||||
|
||||
/**
|
||||
* Web唐明明
|
||||
* 匆匆数载恍如梦,岁月迢迢华发增。
|
||||
* 碌碌无为枉半生,一朝惊醒万事空。
|
||||
* moduleName: 转让订单管理
|
||||
*/
|
||||
|
||||
import { request } from '../index'
|
||||
|
||||
// 订单列表
|
||||
const lists = data => {
|
||||
return request({
|
||||
url : 'app/transfers',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 可转让对象
|
||||
const levels = id => {
|
||||
return request({
|
||||
url: 'app/transfer/' + id + '/levels',
|
||||
})
|
||||
}
|
||||
|
||||
// 转让
|
||||
const transfer = (id, level) => {
|
||||
return request({
|
||||
url : 'app/' + id + '/transfer',
|
||||
data: {
|
||||
level
|
||||
},
|
||||
method: 'POST'
|
||||
})
|
||||
}
|
||||
|
||||
// 接收订单
|
||||
const transferAgree = id => {
|
||||
return request({
|
||||
url : 'app/' + id + '/agree',
|
||||
method: 'POST'
|
||||
})
|
||||
}
|
||||
|
||||
// 拒绝接收
|
||||
const transferRefuse = id => {
|
||||
return request({
|
||||
url : 'app/' + id + '/refuse',
|
||||
method: 'POST'
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
lists,
|
||||
levels,
|
||||
transfer,
|
||||
transferAgree,
|
||||
transferRefuse
|
||||
}
|
||||
17
apis/interfaces/uploading.js
Normal file
17
apis/interfaces/uploading.js
Normal file
@@ -0,0 +1,17 @@
|
||||
|
||||
/**
|
||||
* Web唐明明
|
||||
* 匆匆数载恍如梦,岁月迢迢华发增。
|
||||
* 碌碌无为枉半生,一朝惊醒万事空。
|
||||
* moduleName: 上传图片
|
||||
*/
|
||||
|
||||
import { uploading as upd } from '../index'
|
||||
|
||||
const uploads = (paths, fromData) => {
|
||||
return upd(paths, fromData)
|
||||
}
|
||||
|
||||
export {
|
||||
uploads
|
||||
}
|
||||
84
apis/interfaces/user.js
Normal file
84
apis/interfaces/user.js
Normal file
@@ -0,0 +1,84 @@
|
||||
|
||||
/**
|
||||
* Web唐明明
|
||||
* 匆匆数载恍如梦,岁月迢迢华发增。
|
||||
* 碌碌无为枉半生,一朝惊醒万事空。
|
||||
* moduleName: 用户
|
||||
*/
|
||||
|
||||
import { request } from '../index'
|
||||
|
||||
// 我的下级用户
|
||||
const relations = data => {
|
||||
return request({
|
||||
url : 'user/relations',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 我的邀请码
|
||||
const code = () => {
|
||||
return request({
|
||||
url : 'user/invite',
|
||||
})
|
||||
}
|
||||
|
||||
// 用户信息
|
||||
const info = () => {
|
||||
return request({
|
||||
url : 'app/user/info'
|
||||
})
|
||||
}
|
||||
|
||||
// 更新用户资料
|
||||
const updInfo = (key, value) => {
|
||||
return request({
|
||||
url : 'user/setting/' + key,
|
||||
method : 'PUT',
|
||||
data : {
|
||||
value
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 用户认证状态
|
||||
const certified = () => {
|
||||
return request({
|
||||
url : 'user/certified'
|
||||
})
|
||||
}
|
||||
|
||||
// 用户认证
|
||||
const certification = data => {
|
||||
return request({
|
||||
url : 'user/certification',
|
||||
method : 'POST',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 获取身份证认证信息
|
||||
const identityOcr = () => {
|
||||
return request({
|
||||
url : 'user/certification'
|
||||
})
|
||||
}
|
||||
|
||||
// 获取签名地址
|
||||
const eSigns = data => {
|
||||
return request({
|
||||
url : 'e-signs/authorize/psn',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
relations,
|
||||
code,
|
||||
info,
|
||||
updInfo,
|
||||
certified,
|
||||
certification,
|
||||
identityOcr,
|
||||
eSigns
|
||||
}
|
||||
28
apis/interfaces/work.js
Normal file
28
apis/interfaces/work.js
Normal file
@@ -0,0 +1,28 @@
|
||||
|
||||
/**
|
||||
* Web唐明明
|
||||
* 匆匆数载恍如梦,岁月迢迢华发增。
|
||||
* 碌碌无为枉半生,一朝惊醒万事空。
|
||||
* moduleName: 工作台
|
||||
*/
|
||||
|
||||
import { request } from '../index'
|
||||
|
||||
// 工作台首页
|
||||
const index = () => {
|
||||
return request({
|
||||
url : 'app/user',
|
||||
})
|
||||
}
|
||||
|
||||
// 会员权益
|
||||
const rights = () => {
|
||||
return request({
|
||||
url : 'app/rights'
|
||||
})
|
||||
}
|
||||
|
||||
export {
|
||||
index,
|
||||
rights
|
||||
}
|
||||
Reference in New Issue
Block a user