同步代码
This commit is contained in:
1
pageLineUp/avation.svg
Normal file
1
pageLineUp/avation.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="32" height="32" viewBox="0 0 32 32"><defs><style>.a{fill:#fff;stroke:#707070;}.b{clip-path:url(#a);}.c{fill:#f8f8f8;}.d{fill:#e9ecee;}</style><clipPath id="a"><circle class="a" cx="16" cy="16" r="16" transform="translate(-7196 16482)"/></clipPath></defs><g class="b" transform="translate(7196 -16482)"><rect class="c" width="33" height="33" rx="3" transform="translate(-7196 16481)"/><path class="d" d="M73.653,35.487a7.5,7.5,0,1,0-7.634-7.5A7.579,7.579,0,0,0,73.653,35.487Zm1.984.722h-3.4c-5.315,0-10.8,3.084-10.8,8.306v1.724c0,2.729,4.255,2.729,9.64,2.729H76.8c5.173,0,9.64,0,9.64-2.73V44.514c0-5.22-5.487-8.305-10.8-8.305Z" transform="translate(-7253.44 16465.031)"/></g></svg>
|
||||
|
After Width: | Height: | Size: 770 B |
199
pageLineUp/callRecord.vue
Normal file
199
pageLineUp/callRecord.vue
Normal file
@@ -0,0 +1,199 @@
|
||||
<template>
|
||||
<view class="callRecord">
|
||||
<view v-for="item in datas.list" :key="item.id">
|
||||
<view>
|
||||
<view>
|
||||
{{item.callNum}}
|
||||
</view>
|
||||
<view>
|
||||
({{item.note}})
|
||||
</view>
|
||||
</view>
|
||||
<view :class="[item.state==3?'rightTopstyle':'rightTop']">
|
||||
{{filterEvent(item.state)}}
|
||||
</view>
|
||||
<view>
|
||||
<view>
|
||||
<view>
|
||||
时间
|
||||
</view>
|
||||
<view>
|
||||
{{item.callTime}}
|
||||
</view>
|
||||
</view>
|
||||
<view>
|
||||
<view>
|
||||
手机号
|
||||
</view>
|
||||
<view>
|
||||
{{item.phone}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
onMounted,
|
||||
reactive
|
||||
} from 'vue';
|
||||
import {
|
||||
callTablecallRecord,
|
||||
} from '@/http/yskApi/requestAll.js';
|
||||
let datas = reactive({
|
||||
list: ""
|
||||
})
|
||||
onMounted(() => {
|
||||
getList()
|
||||
})
|
||||
|
||||
function filterEvent(i) {
|
||||
// -1已取消 0排队中 1叫号中 2已入座 3 已过号
|
||||
if (i == -1) {
|
||||
return '已取消'
|
||||
} else if (i == 0) {
|
||||
return '排队中'
|
||||
} else if (i == 1) {
|
||||
return '叫号中'
|
||||
} else if (i == 2) {
|
||||
return '已入座'
|
||||
} else if (i == 3) {
|
||||
return '已过号 '
|
||||
}
|
||||
}
|
||||
|
||||
function getList() {
|
||||
callTablecallRecord({
|
||||
shopId: uni.getStorageSync('shopId'),
|
||||
page: 1,
|
||||
size: 9999
|
||||
}).then((res) => {
|
||||
datas.list = res.records
|
||||
})
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
page {
|
||||
background: #f9f9f9;
|
||||
}
|
||||
</style>
|
||||
<style scoped lang="less">
|
||||
// * {
|
||||
// padding: 0;
|
||||
// margin: 0;
|
||||
// text-decoration: none;
|
||||
// outline: none;
|
||||
// }
|
||||
|
||||
|
||||
ul,
|
||||
li {
|
||||
list-style: none;
|
||||
padding: 12rpx;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.callRecord {
|
||||
|
||||
>view {
|
||||
width: 694rpx;
|
||||
height: 166rpx;
|
||||
margin: 32rpx 0;
|
||||
background: #FFFFFF;
|
||||
border-radius: 18rpx 18rpx 18rpx 18rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
|
||||
>view:first-child {
|
||||
padding: 0 58rpx;
|
||||
box-sizing: border-box;
|
||||
|
||||
>view:first-child {
|
||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||
font-weight: 500;
|
||||
font-size: 56rpx;
|
||||
color: #333333;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
>view:last-child {
|
||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||
font-weight: 500;
|
||||
font-size: 24rpx;
|
||||
color: #999999;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
>view:last-child {
|
||||
height: 120rpx;
|
||||
border-left: 2rpx solid #E5E5E5;
|
||||
padding-left: 32rpx;
|
||||
|
||||
>view {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 24rpx;
|
||||
|
||||
>view:first-child {
|
||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||
font-weight: 500;
|
||||
font-size: 28rpx;
|
||||
color: #333333;
|
||||
width: 90rpx;
|
||||
}
|
||||
|
||||
>view:last-child {
|
||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
font-size: 28rpx;
|
||||
color: #666666;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.rightTop {
|
||||
position: absolute;
|
||||
right: 0rpx;
|
||||
top: 0;
|
||||
|
||||
width: 94rpx;
|
||||
height: 36rpx;
|
||||
line-height: 36rpx;
|
||||
text-align: center;
|
||||
background: #4394FD;
|
||||
border-radius: 0rpx 8rpx 0rpx 8rpx;
|
||||
|
||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
font-size: 22rpx;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
.rightTopstyle {
|
||||
position: absolute;
|
||||
right: 0rpx;
|
||||
top: 0;
|
||||
|
||||
width: 94rpx;
|
||||
height: 36rpx;
|
||||
line-height: 36rpx;
|
||||
text-align: center;
|
||||
background: #9a9a9a;
|
||||
border-radius: 0rpx 8rpx 0rpx 8rpx;
|
||||
|
||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
font-size: 22rpx;
|
||||
color: #FFFFFF;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</style>
|
||||
490
pageLineUp/index.vue
Normal file
490
pageLineUp/index.vue
Normal file
@@ -0,0 +1,490 @@
|
||||
<template>
|
||||
<view class="pageLineUpTop">
|
||||
<view :class="[[datas.selecttopType==''?'active':'']]" @tap="gettypeevent('')">
|
||||
<view style="border-bottom: 1px dashed #ccc;line-height: 70rpx;">全部</view>
|
||||
<view style="line-height: 50rpx;">{{datas.list.totalCount}}桌</view>
|
||||
</view>
|
||||
<view v-for='item in datas.list.records' :key="item.id" @tap="gettypeevent(item.id)"
|
||||
:class="[[datas.selecttopType==item.id?'active':'']]">
|
||||
<view style="border-bottom: 1px dashed #ccc;line-height: 70rpx;">{{item.name}}</view>
|
||||
<view style="line-height: 50rpx;color: #999;">{{item.totalCount}}桌({{item.note}})</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="userinfo">
|
||||
<view>用户</view>
|
||||
<span>号码</span>
|
||||
<span>等待</span>
|
||||
</view>
|
||||
<view class="userinfoBox" v-for="item in datas.listType.records" :key="item.id">
|
||||
<view class="userinfo1">
|
||||
<view>
|
||||
<image src="./avation.svg" style="width: 64rpx;height: 64rpx;margin-right: 16rpx;" mode=""></image>
|
||||
<view>
|
||||
<view>
|
||||
{{item.phone}}
|
||||
</view>
|
||||
<view>
|
||||
{{item.callTime}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<span>{{item.callNum}}</span>
|
||||
<span>{{item.waitingCount}}桌</span>
|
||||
</view>
|
||||
<view class="userinfo2">
|
||||
<view>{{item.name}}{{item.note}}</view>
|
||||
<button type="primary" class="mini-btn" size="mini" style="border-radius: 200rpx;" @tap="quxiaoevent(item)"
|
||||
plain="true">取消</button>
|
||||
<button class="mini-btn" type="primary" style="border-radius: 200rpx;" @tap="profilepicture(item)"
|
||||
size="mini">播报</button>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottomBUtton">
|
||||
<button class="mini-btn" type="primary" @tap="showFalse">取号</button>
|
||||
<button type="text" class="mini-btn" plain="true" @tap="toUrl">叫号记录</button>
|
||||
</view>
|
||||
<!-- 播报弹窗 -->
|
||||
<uni-popup ref="alertDialog" type="dialog">
|
||||
<uni-popup-dialog :type="datas.msgType" cancelText="完成" confirmText="过号" confirmText-color="#000" title="播报"
|
||||
@confirm="dialogConfirm(1)" @close="dialogConfirm(2)">
|
||||
<view class="">
|
||||
<view class="">
|
||||
正在叫号请稍后
|
||||
</view>
|
||||
<view style="font-size: 24rpx; text-align:center;color: #52C41A;"
|
||||
v-if="datas.profilepicturedata.state==1">
|
||||
已发送至用户
|
||||
</view>
|
||||
<view style="font-size: 24rpx;text-align:center;color: #F02C45;" v-else>
|
||||
用户未订阅消息
|
||||
</view>
|
||||
</view>
|
||||
</uni-popup-dialog>
|
||||
</uni-popup>
|
||||
<!-- 取号遮罩层 -->
|
||||
<up-popup :show="datas.show" :round="18" mode="center" @close="close" @open="open">
|
||||
<view class="zhezhaopop">
|
||||
<view class="">
|
||||
<span></span>
|
||||
<span>取号</span>
|
||||
<up-icon @tap="confirm" name="close-circle-fill"></up-icon>
|
||||
</view>
|
||||
<view class="">
|
||||
选择桌型
|
||||
</view>
|
||||
<view class="pageLineUpTop">
|
||||
<view v-for='item in datas.list.records' :key="item.id"
|
||||
:class="[datas.selectTabletype.id==item.id?'active':'']" @tap="selectTypeEvent(item)">
|
||||
<view style="border-bottom: 1px dashed #ccc;line-height: 70rpx;">{{item.name}}</view>
|
||||
<view style="line-height: 50rpx;">等待{{item.totalCount}}桌</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="">
|
||||
手机号码
|
||||
</view>
|
||||
<view style="margin-bottom: 48rpx;">
|
||||
<input v-model="datas.phone" type="text" placeholder="填写号码" />
|
||||
</view>
|
||||
<up-button text="确认取号" @tap="callTabletakeNumberEvent" type="primary" class="buttomStyle"
|
||||
shape="circle"></up-button>
|
||||
</view>
|
||||
</up-popup>
|
||||
<!-- 取号成功 -->
|
||||
<up-popup :show="datas.showtwo" :round="18" mode="center" @close="close" @open="open">
|
||||
<view class="zhezhaopops">
|
||||
<view class="">
|
||||
<span></span>
|
||||
<span>取号成功</span>
|
||||
<up-icon @tap="confirmtow" name="close-circle-fill"></up-icon>
|
||||
</view>
|
||||
<view class="">
|
||||
{{datas.showtowData.callNum}}
|
||||
</view>
|
||||
<view style="margin-bottom: 48rpx;">
|
||||
{{datas.showtowData.tableName}} ({{datas.showtowData.tableNote}})
|
||||
</view>
|
||||
<up-button text="确认" @tap="confirmtow" type="primary" class="buttomStyle" shape="circle"></up-button>
|
||||
</view>
|
||||
</up-popup>
|
||||
<!-- <up-toast ref="uToastRef"></up-toast> -->
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
reactive,
|
||||
getCurrentInstance,
|
||||
onMounted
|
||||
} from 'vue';
|
||||
import {
|
||||
callTable,
|
||||
callTablequeue,
|
||||
callTabletakeNumber,
|
||||
callTableput,
|
||||
callTablecall
|
||||
} from '@/http/yskApi/requestAll.js';
|
||||
import go from '@/commons/utils/go.js'
|
||||
let getrefs = getCurrentInstance()
|
||||
let datas = reactive({
|
||||
msgType: "",
|
||||
// 关闭取号弹窗
|
||||
show: false,
|
||||
showtwo: false,
|
||||
showtowData: "",
|
||||
// 桌形列表
|
||||
list: [],
|
||||
// 正在排号
|
||||
listType: [],
|
||||
// 选中的桌型
|
||||
selectTabletype: undefined,
|
||||
// 手机号
|
||||
phone: null,
|
||||
// 顶部全部\大桌选择
|
||||
selecttopType: '',
|
||||
// 选中拨号的id
|
||||
dialId: "",
|
||||
// 拨号是否订阅
|
||||
profilepicturedata: ""
|
||||
|
||||
})
|
||||
onMounted(() => {
|
||||
getList()
|
||||
})
|
||||
const confirm = () => {
|
||||
datas.show = false;
|
||||
};
|
||||
const confirmtow = () => {
|
||||
datas.showtwo = false;
|
||||
};
|
||||
|
||||
function dialogConfirm(value) {
|
||||
if (value == 1) {
|
||||
callTableput({
|
||||
shopId: uni.getStorageSync('shopId'),
|
||||
state: 3,
|
||||
callQueueId: datas.dialId
|
||||
}).then((res) => {
|
||||
getList()
|
||||
})
|
||||
} else {
|
||||
// value=2完成
|
||||
callTableput({
|
||||
shopId: uni.getStorageSync('shopId'),
|
||||
state: 2,
|
||||
callQueueId: datas.dialId
|
||||
}).then((res) => {
|
||||
getList()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
function gettypeevent(d) {
|
||||
datas.selecttopType = d
|
||||
getList()
|
||||
}
|
||||
|
||||
function getList() {
|
||||
callTable({
|
||||
shopId: uni.getStorageSync('shopId'),
|
||||
page: 1,
|
||||
size: 10,
|
||||
}).then((res) => {
|
||||
datas.list = res
|
||||
datas.selectTabletype = res.records[0]
|
||||
})
|
||||
callTablequeue({
|
||||
shopId: uni.getStorageSync('shopId'),
|
||||
page: 1,
|
||||
size: 9999,
|
||||
callTableId: datas.selecttopType,
|
||||
state: 0
|
||||
}).then((res) => {
|
||||
datas.listType = res
|
||||
})
|
||||
}
|
||||
|
||||
function quxiaoevent(item) {
|
||||
callTableput({
|
||||
shopId: uni.getStorageSync('shopId'),
|
||||
state: -1,
|
||||
callQueueId: item.id
|
||||
}).then((res) => {
|
||||
getList()
|
||||
})
|
||||
}
|
||||
|
||||
function selectTypeEvent(d) {
|
||||
datas.selectTabletype = d
|
||||
}
|
||||
|
||||
function callTabletakeNumberEvent() {
|
||||
callTabletakeNumber({
|
||||
callTableId: datas.selectTabletype.id,
|
||||
shopId: uni.getStorageSync('shopId'),
|
||||
phone: datas.phone,
|
||||
note: datas.selectTabletype.note,
|
||||
name: datas.selectTabletype.name,
|
||||
}).then((res) => {
|
||||
if (res) {
|
||||
datas.show = false;
|
||||
datas.showtwo = true;
|
||||
datas.showtowData = res
|
||||
datas.phone = ''
|
||||
getList()
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
function showFalse() {
|
||||
datas.show = true;
|
||||
}
|
||||
|
||||
function profilepicture(item) {
|
||||
datas.dialId = item.id
|
||||
callTablecall({
|
||||
shopId: uni.getStorageSync('shopId'),
|
||||
callQueueId: item.id
|
||||
}).then((res) => {
|
||||
datas.profilepicturedata = res
|
||||
getrefs.ctx.$refs.alertDialog.open()
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
function toUrl() {
|
||||
go.to('PAGES_CALLRE_CORD')
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
page {
|
||||
height: 100%;
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
|
||||
.pageLineUpTop {
|
||||
display: flex;
|
||||
// justify-content: space-around;
|
||||
flex-wrap: wrap;
|
||||
margin: 36rpx 0;
|
||||
|
||||
|
||||
>view {
|
||||
width: 208rpx;
|
||||
height: 136rpx;
|
||||
background: #FFFFFF;
|
||||
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
||||
border: 2rpx solid #E5E5E5;
|
||||
margin-top: 20rpx;
|
||||
margin-left: 22rpx;
|
||||
|
||||
>view {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
// >view:last-child {
|
||||
// margin-right: auto;
|
||||
// margin-left: 22rpx;
|
||||
// }
|
||||
|
||||
.active {
|
||||
border: 2rpx solid #318AFE;
|
||||
|
||||
>view:first-child {
|
||||
color: #318AFE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.userinfo {
|
||||
width: 750rpx;
|
||||
height: 84rpx;
|
||||
background: #E9E9E9;
|
||||
border-radius: 12rpx 12rpx 0rpx 0rpx;
|
||||
padding: 0 44rpx;
|
||||
.df;
|
||||
justify-content: space-between;
|
||||
|
||||
>view:first-child {
|
||||
width: 300rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.userinfoBox {
|
||||
margin-bottom: 32rpx;
|
||||
|
||||
.userinfo1 {
|
||||
width: 750rpx;
|
||||
height: 84rpx;
|
||||
background: #fff;
|
||||
border-radius: 12rpx 12rpx 0rpx 0rpx;
|
||||
padding: 0 44rpx;
|
||||
.df;
|
||||
justify-content: space-between;
|
||||
padding-top: 32rpx;
|
||||
|
||||
>view:first-child {
|
||||
width: 280rpx;
|
||||
.df;
|
||||
}
|
||||
}
|
||||
|
||||
.userinfo2 {
|
||||
width: 750rpx;
|
||||
height: 84rpx;
|
||||
background: #fff;
|
||||
border-radius: 12rpx 12rpx 0rpx 0rpx;
|
||||
padding: 58rpx 0;
|
||||
padding-left: 44rpx;
|
||||
.df;
|
||||
justify-content: space-between;
|
||||
background-color: #fff;
|
||||
// margin-top: 32rpx;
|
||||
|
||||
>view:first-child {
|
||||
margin-right: 260rpx;
|
||||
background: #E5E5E5;
|
||||
width: 130rpx;
|
||||
height: 32rpx;
|
||||
line-height: 32rpx;
|
||||
text-align: center;
|
||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||
font-weight: 400;
|
||||
font-size: 22rpx;
|
||||
color: #999999;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bottomBUtton {
|
||||
width: 100%;
|
||||
height: 200rpx;
|
||||
background-color: #fff;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 50%;
|
||||
transform: translate(-50%);
|
||||
padding-top: 24rpx;
|
||||
|
||||
>button {
|
||||
width: 530rpx;
|
||||
background: #318AFE;
|
||||
border-radius: 200rpx;
|
||||
}
|
||||
|
||||
>button:last-child {
|
||||
background-color: rgba(0, 0, 0, 0);
|
||||
border: none;
|
||||
color: #318AFE;
|
||||
}
|
||||
}
|
||||
|
||||
.zhezhaopop {
|
||||
padding: 34rpx 32rpx;
|
||||
width: 594rpx;
|
||||
// height: 668rpx;
|
||||
background: #FFFFFF;
|
||||
// border-radius: 18rpx 18rpx 18rpx 18rpx;
|
||||
|
||||
>view:first-child {
|
||||
|
||||
.df;
|
||||
justify-content: space-between;
|
||||
|
||||
>span:nth-child(2) {
|
||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||
font-weight: bold;
|
||||
font-size: 32rpx;
|
||||
color: #333333;
|
||||
}
|
||||
}
|
||||
|
||||
>view:nth-child(2) {
|
||||
margin-top: 48rpx;
|
||||
}
|
||||
|
||||
>view:nth-child(3) {
|
||||
margin-top: 32rpx;
|
||||
}
|
||||
|
||||
>view:nth-child(4) {
|
||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||
font-weight: 500;
|
||||
font-size: 28rpx;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
>view:nth-child(5) {
|
||||
margin-top: 22rpx;
|
||||
|
||||
>input {
|
||||
width: 500rpx;
|
||||
height: 84rpx;
|
||||
padding-left: 24rpx;
|
||||
background: #FFFFFF;
|
||||
border-radius: 8rpx 8rpx 8rpx 8rpx;
|
||||
border: 2rpx solid #E5E5E5;
|
||||
// margin-top: 32rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.buttomStyle {
|
||||
margin-top: 48rpx;
|
||||
width: 506rpx;
|
||||
height: 80rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.zhezhaopops {
|
||||
padding: 34rpx 32rpx;
|
||||
width: 594rpx;
|
||||
background: #FFFFFF;
|
||||
// border-radius: 18rpx 18rpx 18rpx 18rpx;
|
||||
border-radius: 18rpx 18rpx 18rpx 18rpx;
|
||||
|
||||
>view:first-child {
|
||||
border-radius: 18rpx 18rpx 18rpx 18rpx;
|
||||
.df;
|
||||
justify-content: space-between;
|
||||
|
||||
>span:nth-child(2) {
|
||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||
font-weight: bold;
|
||||
font-size: 32rpx;
|
||||
color: #333333;
|
||||
}
|
||||
}
|
||||
|
||||
>view:nth-child(2) {
|
||||
|
||||
font-family: Source Han Sans CN, Source Han Sans CN;
|
||||
font-weight: bold;
|
||||
font-size: 80rpx;
|
||||
color: #333333;
|
||||
margin-top: 64rpx;
|
||||
margin-left: 34%;
|
||||
}
|
||||
|
||||
>view:nth-child(3) {
|
||||
margin-top: 48rpx;
|
||||
margin-left: 34%;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.buttomStyle {
|
||||
margin-top: 48rpx;
|
||||
width: 506rpx;
|
||||
height: 80rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.df {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user