mirror of
http://112.124.100.131/GFRS/ebiz-h5.git
synced 2025-12-20 03:46:44 +08:00
添加e起陪访页面
This commit is contained in:
BIN
src/assets/images/success.png
Normal file
BIN
src/assets/images/success.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.6 KiB |
60
src/components/common/PopupSelector.vue
Normal file
60
src/components/common/PopupSelector.vue
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<van-cell-group @click.native="showPopup">
|
||||||
|
<van-field v-bind="$attrs" right-icon="arrow" v-model="value" :required="required" :readonly="readonly" />
|
||||||
|
</van-cell-group>
|
||||||
|
<van-popup id="popup" :value="isShow" :position="position" @click-overlay="closePopup">
|
||||||
|
<slot :closePopup="closePopup">
|
||||||
|
<van-picker id="picker" show-toolbar :columns="columns" />
|
||||||
|
</slot>
|
||||||
|
</van-popup>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'PopupSelectorq',
|
||||||
|
props: {
|
||||||
|
position: {
|
||||||
|
type: String,
|
||||||
|
default: 'bottom'
|
||||||
|
},
|
||||||
|
columns: {
|
||||||
|
type: Array,
|
||||||
|
default() {
|
||||||
|
return ['暂无数据']
|
||||||
|
}
|
||||||
|
},
|
||||||
|
required: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
readonly: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
value: '',
|
||||||
|
isShow: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {},
|
||||||
|
methods: {
|
||||||
|
showPopup() {
|
||||||
|
this.isShow = true
|
||||||
|
},
|
||||||
|
closePopup() {
|
||||||
|
this.isShow = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss">
|
||||||
|
#app .van-picker__cancel,
|
||||||
|
#app .van-picker__confirm {
|
||||||
|
color: #1989fa;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -15,8 +15,7 @@ import md5 from 'js-md5'
|
|||||||
import cryptoJs from 'crypto-js'
|
import cryptoJs from 'crypto-js'
|
||||||
import cacheUtils from '@/assets/js/utils/cacheUtils'
|
import cacheUtils from '@/assets/js/utils/cacheUtils'
|
||||||
|
|
||||||
|
import { Cell, CellGroup, DatetimePicker, Popup, Picker, Col, Row, Tab, Tabs, NavBar, Toast, Button, Dialog, Icon, Lazyload, Field, Area, Uploader } from 'vant'
|
||||||
import { Cell, CellGroup, DatetimePicker, Popup, Picker, Col, Row, Tab, Tabs, NavBar, Toast, Button, Dialog, Icon, Lazyload } from 'vant'
|
|
||||||
Vue.use(Cell)
|
Vue.use(Cell)
|
||||||
Vue.use(CellGroup)
|
Vue.use(CellGroup)
|
||||||
Vue.use(DatetimePicker)
|
Vue.use(DatetimePicker)
|
||||||
@@ -35,6 +34,9 @@ Vue.use(Dialog)
|
|||||||
Vue.use(Lazyload, {
|
Vue.use(Lazyload, {
|
||||||
lazyComponent: true
|
lazyComponent: true
|
||||||
})
|
})
|
||||||
|
Vue.use(Field)
|
||||||
|
Vue.use(Area)
|
||||||
|
Vue.use(Uploader)
|
||||||
|
|
||||||
Vue.prototype.$assetsUrl = config.assetsUrl
|
Vue.prototype.$assetsUrl = config.assetsUrl
|
||||||
Vue.prototype.$assetsUpUrl = config.assetsUpUrl
|
Vue.prototype.$assetsUpUrl = config.assetsUpUrl
|
||||||
|
|||||||
40
src/router/ebiz/eqiVisit.js
Normal file
40
src/router/ebiz/eqiVisit.js
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
// e起陪访
|
||||||
|
const VisitInfoRegister = () => import('@/views/ebiz/eqiVisit/VisitInfoRegister')
|
||||||
|
const RegisterResult = () => import('@/views/ebiz/eqiVisit/RegisterResult')
|
||||||
|
const NewcomerList = () => import('@/views/ebiz/eqiVisit/NewcomerList')
|
||||||
|
const ScoreRanking = () => import('@/views/ebiz/eqiVisit/ScoreRanking')
|
||||||
|
|
||||||
|
export default [
|
||||||
|
{
|
||||||
|
path: '/eqiVisit/VisitInfoRegister',
|
||||||
|
name: 'VisitInfoRegister',
|
||||||
|
component: VisitInfoRegister,
|
||||||
|
meta: {
|
||||||
|
title: '陪访信息登记'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/eqiVisit/registerResult',
|
||||||
|
name: 'RegisterResult',
|
||||||
|
component: RegisterResult,
|
||||||
|
meta: {
|
||||||
|
title: '提交结果'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/eqiVisit/newcomerList',
|
||||||
|
name: 'NewcomerList',
|
||||||
|
component: NewcomerList,
|
||||||
|
meta: {
|
||||||
|
title: '选择陪访对象'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/eqiVisit/scoreRanking',
|
||||||
|
name: 'ScoreRanking',
|
||||||
|
component: ScoreRanking,
|
||||||
|
meta: {
|
||||||
|
title: '积分榜'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -29,6 +29,8 @@ import goodStart from './goodStart'
|
|||||||
import renewalManage from './renewalManage'
|
import renewalManage from './renewalManage'
|
||||||
import question from './question'
|
import question from './question'
|
||||||
import hgb from './hgb'
|
import hgb from './hgb'
|
||||||
|
import eqiVisit from './eqiVisit'
|
||||||
|
|
||||||
export default [
|
export default [
|
||||||
...proposal,
|
...proposal,
|
||||||
...sale,
|
...sale,
|
||||||
@@ -55,5 +57,6 @@ export default [
|
|||||||
...renewalManage,
|
...renewalManage,
|
||||||
...question,
|
...question,
|
||||||
...hgb,
|
...hgb,
|
||||||
...goodStart
|
...goodStart,
|
||||||
|
...eqiVisit
|
||||||
] //根据需要进行删减
|
] //根据需要进行删减
|
||||||
|
|||||||
164
src/views/ebiz/eqiVisit/NewcomerList.vue
Normal file
164
src/views/ebiz/eqiVisit/NewcomerList.vue
Normal file
@@ -0,0 +1,164 @@
|
|||||||
|
<template>
|
||||||
|
<div class="bg-white">
|
||||||
|
<van-sticky>
|
||||||
|
<van-tabs v-model="deptIndex">
|
||||||
|
<van-tab v-for="(dept, i) in depts" :key="i" :title="dept.name" />
|
||||||
|
</van-tabs>
|
||||||
|
<van-tabs v-model="groupIndex">
|
||||||
|
<van-tab v-for="(group, i) in groups" :key="i" :title="group.name" />
|
||||||
|
</van-tabs>
|
||||||
|
</van-sticky>
|
||||||
|
<van-pull-refresh v-model="isLoading" @refresh="onRefresh">
|
||||||
|
<van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoad">
|
||||||
|
<div v-for="(item, i) in list" :key="i" class="van-hairline--bottom newcomer">
|
||||||
|
<div class="avatar">
|
||||||
|
<img :src="avatar" />
|
||||||
|
</div>
|
||||||
|
<div class="info">
|
||||||
|
<p class="mb10 agentCode">工号: {{ item.agentCode }}</p>
|
||||||
|
<div class="detail">
|
||||||
|
<span>{{ item.name }}</span>
|
||||||
|
<span>{{ item.gender }}</span>
|
||||||
|
<span>{{ item.phone }}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</van-list>
|
||||||
|
</van-pull-refresh>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import avatar from '@/assets/images/bnf_avatar.png'
|
||||||
|
import { Tab, Tabs, List, Sticky, PullRefresh } from 'vant'
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
[Tab.name]: Tab,
|
||||||
|
[Tabs.name]: Tabs,
|
||||||
|
[List.name]: List,
|
||||||
|
[Sticky.name]: Sticky,
|
||||||
|
[PullRefresh.name]: PullRefresh
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
avatar,
|
||||||
|
isLoading: false,
|
||||||
|
list: [
|
||||||
|
{ agentCode: '0232389', name: 'xxx', gender: 0, phone: '13888888888' },
|
||||||
|
{ agentCode: '0232389', name: 'xxx', gender: 0, phone: '13888888888' },
|
||||||
|
{ agentCode: '0232389', name: 'xxx', gender: 0, phone: '13888888888' },
|
||||||
|
{ agentCode: '0232389', name: 'xxx', gender: 0, phone: '13888888888' },
|
||||||
|
{ agentCode: '0232389', name: 'xxx', gender: 0, phone: '13888888888' },
|
||||||
|
{ agentCode: '0232389', name: 'xxx', gender: 0, phone: '13888888888' },
|
||||||
|
{ agentCode: '0232389', name: 'xxx', gender: 0, phone: '13888888888' },
|
||||||
|
{ agentCode: '0232389', name: 'xxx', gender: 0, phone: '13888888888' },
|
||||||
|
{ agentCode: '0232389', name: 'xxx', gender: 0, phone: '13888888888' },
|
||||||
|
{ agentCode: '0232389', name: 'xxx', gender: 0, phone: '13888888888' },
|
||||||
|
{ agentCode: '0232389', name: 'xxx', gender: 0, phone: '13888888888' },
|
||||||
|
{ agentCode: '0232389', name: 'xxx', gender: 0, phone: '13888888888' },
|
||||||
|
{ agentCode: '0232389', name: 'xxx', gender: 0, phone: '13888888888' },
|
||||||
|
{ agentCode: '0232389', name: 'xxx', gender: 0, phone: '13888888888' },
|
||||||
|
{ agentCode: '0232389', name: 'xxx', gender: 0, phone: '13888888888' },
|
||||||
|
{ agentCode: '0232389', name: 'xxx', gender: 0, phone: '13888888888' }
|
||||||
|
],
|
||||||
|
loading: false,
|
||||||
|
finished: false,
|
||||||
|
deptIndex: 0,
|
||||||
|
depts: [
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
name: 'aaa部门'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
name: 'bbb部门'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
name: 'ccc部门'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
groupIndex: 0,
|
||||||
|
groups: [
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
name: 'aaa组'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
name: 'bbb组'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
name: 'ccc组'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 4,
|
||||||
|
name: 'ddd组'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 5,
|
||||||
|
name: 'eee组'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 6,
|
||||||
|
name: 'fff组'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
onRefresh() {
|
||||||
|
setTimeout(() => {
|
||||||
|
this.isLoading = false
|
||||||
|
this.count++
|
||||||
|
}, 1000)
|
||||||
|
},
|
||||||
|
onLoad() {
|
||||||
|
// 异步更新数据
|
||||||
|
// setTimeout 仅做示例,真实场景中一般为 ajax 请求
|
||||||
|
setTimeout(() => {
|
||||||
|
for (let i = 0; i < 10; i++) {
|
||||||
|
this.list.push({ agentCode: '0232389', name: 'xxx', gender: 0, phone: '13888888888' })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 加载状态结束
|
||||||
|
this.loading = false
|
||||||
|
|
||||||
|
// 数据全部加载完成
|
||||||
|
if (this.list.length >= 40) {
|
||||||
|
this.finished = true
|
||||||
|
}
|
||||||
|
}, 1000)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.newcomer {
|
||||||
|
display: flex;
|
||||||
|
padding: 10px 25px;
|
||||||
|
.avatar {
|
||||||
|
max-width: 50px;
|
||||||
|
margin-right: 10px;
|
||||||
|
img {
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.info {
|
||||||
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
.agentCode {
|
||||||
|
color: #999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.detail {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
58
src/views/ebiz/eqiVisit/RegisterResult.vue
Normal file
58
src/views/ebiz/eqiVisit/RegisterResult.vue
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
<template>
|
||||||
|
<div class="bg-white container">
|
||||||
|
<div class="wrapper">
|
||||||
|
<img class="mb30 icon" :src="img" />
|
||||||
|
<h1 class="blue mb30">恭喜完成陪访</h1>
|
||||||
|
<p class="blue mb30">奖励: +1积分</p>
|
||||||
|
<h2 class="blue mb30">累计积分99分</h2>
|
||||||
|
<div class="btns p30">
|
||||||
|
<van-button class="mr5" plain color="#199ed8" type="primary">继续登记陪访</van-button>
|
||||||
|
<van-button class="ml5" plain color="#199ed8" type="primary">积分榜</van-button>
|
||||||
|
<van-button color="#199ed8" type="primary">返回</van-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import img from '@/assets/images/success.png'
|
||||||
|
export default {
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
img
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.container {
|
||||||
|
text-align: center;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
height: 100vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon {
|
||||||
|
transform: scale(1.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
.blue {
|
||||||
|
color: #199ed8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btns {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
.van-button:nth-of-type(1),
|
||||||
|
.van-button:nth-of-type(2) {
|
||||||
|
flex: 1;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.van-button:nth-of-type(3) {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
55
src/views/ebiz/eqiVisit/ScoreRanking.vue
Normal file
55
src/views/ebiz/eqiVisit/ScoreRanking.vue
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
<template>
|
||||||
|
<div class="bg-white ranking">
|
||||||
|
<van-notice-bar text="温馨提示: 每日凌晨更新前一日积分排行,下拉刷新最新排行" wrapable />
|
||||||
|
<div class="table-wrapper">
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<th v-for="(th, i) in theads" :key="i" :style="{ minWidth: th.length + 2 + 'em' }">{{ th }}</th>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>1</td>
|
||||||
|
<td>撒扽撒</td>
|
||||||
|
<td>就安家费冲动foi</td>
|
||||||
|
<td>赛发赛</td>
|
||||||
|
<td>232</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { NoticeBar } from 'vant'
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
[NoticeBar.name]: NoticeBar
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
theads: ['排名', '姓名', '所在机构', '职级', '积分']
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.ranking {
|
||||||
|
height: 100vh;
|
||||||
|
.table-wrapper {
|
||||||
|
width: 100vw;
|
||||||
|
overflow: auto;
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
th {
|
||||||
|
white-space: nowrap;
|
||||||
|
padding: 20px 10px;
|
||||||
|
background: #199ed8;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
106
src/views/ebiz/eqiVisit/VisitInfoRegister.vue
Normal file
106
src/views/ebiz/eqiVisit/VisitInfoRegister.vue
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
<template>
|
||||||
|
<div class="full-page bg-white">
|
||||||
|
<div class="form m10">
|
||||||
|
<van-cell-group>
|
||||||
|
<van-field right-icon="arrow" v-model="accompanyingName" label="陪访新人姓名" placeholder="请选择" required readonly />
|
||||||
|
</van-cell-group>
|
||||||
|
<PopupSelector label="陪访类型" placeholder="请选择" readonly required :columns="visitType" />
|
||||||
|
<PopupSelector label="日期" placeholder="请选择" readonly required>
|
||||||
|
<template v-slot:default="{ closePopup }">
|
||||||
|
<van-datetime-picker v-model="currentDate" type="date" @confirm="onDateConfirm($event, closePopup)" @cancel="closePopup" />
|
||||||
|
</template>
|
||||||
|
</PopupSelector>
|
||||||
|
<PopupSelector label="时长(h)" placeholder="请选择" readonly required :columns="duration" />
|
||||||
|
<van-cell-group>
|
||||||
|
<van-field v-model="customerName" label="客户姓名" placeholder="请输入" required />
|
||||||
|
</van-cell-group>
|
||||||
|
<PopupSelector label="客户年龄" placeholder="请选择" readonly required />
|
||||||
|
<PopupSelector label="地点" placeholder="请选择" readonly required>
|
||||||
|
<template v-slot:default="{ closePopup }">
|
||||||
|
<van-area :area-list="areaList" value="450000" @confirm="onAreaConfirm($event, closePopup)" @cancel="closePopup" />
|
||||||
|
</template>
|
||||||
|
</PopupSelector>
|
||||||
|
<van-cell-group>
|
||||||
|
<van-field v-model="homeAddress" label="详细地址" placeholder="请输入" required />
|
||||||
|
</van-cell-group>
|
||||||
|
<p class="m10">现场照片(最多9张)</p>
|
||||||
|
<van-uploader class="m10" v-model="fileList" :after-read="afterRead" :max-count="9" />
|
||||||
|
</div>
|
||||||
|
<van-button type="info" block>提交</van-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import PopupSelector from '@/components/common/PopupSelector.vue'
|
||||||
|
import areaList from '@/assets/js/utils/areaForSale'
|
||||||
|
import { uploadImg } from '@/api/ebiz/sale/sale'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'VisitInfoRegister',
|
||||||
|
components: {
|
||||||
|
PopupSelector
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
fileList: [],
|
||||||
|
areaList,
|
||||||
|
accompanyingName: '',
|
||||||
|
customerName: '',
|
||||||
|
homeAddress: '',
|
||||||
|
visitType: ['入职前陪访', '新人首单', '冲刺挑战', '参与衔训'],
|
||||||
|
show: false,
|
||||||
|
currentDate: new Date()
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
duration() {
|
||||||
|
let duration = []
|
||||||
|
for (let i = 0; i < 48; i++) {
|
||||||
|
duration.push(0.5 + i * 0.5)
|
||||||
|
}
|
||||||
|
return duration
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
async afterRead(file) {
|
||||||
|
let data = new FormData()
|
||||||
|
data.append('imgPath', file.file)
|
||||||
|
this.$toast.loading({
|
||||||
|
duration: 0
|
||||||
|
})
|
||||||
|
let res = await uploadImg(data)
|
||||||
|
console.log('res :>> ', res)
|
||||||
|
if (res.result === '0') {
|
||||||
|
file.result = res.path
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onDateConfirm(data, fun) {
|
||||||
|
console.log('date :>> ', data)
|
||||||
|
fun()
|
||||||
|
},
|
||||||
|
onAreaConfirm(data, fun) {
|
||||||
|
console.log('data :>> ', data)
|
||||||
|
fun()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.full-page {
|
||||||
|
width: 100vw;
|
||||||
|
height: 100vh;
|
||||||
|
position: fixed;
|
||||||
|
overflow: auto;
|
||||||
|
.form {
|
||||||
|
padding-bottom: 50px;
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.van-button {
|
||||||
|
border-radius: 0;
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
Reference in New Issue
Block a user