Browse Source

提交修改

message
douzhuo 2 years ago
parent
commit
3a17dd60fb
15 changed files with 222 additions and 56 deletions
  1. +2
    -1
      App.vue
  2. +8
    -0
      pages/center/Piabodata/Employeesstatistics.vue
  3. +10
    -1
      pages/center/Piabodata/Groupcontrast.vue
  4. +9
    -1
      pages/center/Piabodata/StaffAnalysis.vue
  5. +8
    -0
      pages/center/Piabodata/Theteamcompared.vue
  6. +27
    -17
      pages/center/Piabodata/TrendAnalysis.vue
  7. +31
    -23
      pages/center/Piabodata/index.vue
  8. +7
    -1
      pages/center/consumer/consumerDetail.vue
  9. +8
    -0
      pages/center/prohibited/index.vue
  10. +7
    -0
      pages/center/records/index.vue
  11. +24
    -12
      pages/index/consumer/index.vue
  12. +8
    -0
      pages/index/index.vue
  13. +9
    -0
      pages/mine/details2.vue
  14. +8
    -0
      pages/mine/reception/consultant.vue
  15. +56
    -0
      uview-ui/components/u-loadings/u-loadings.vue

+ 2
- 1
App.vue View File

@@ -19,7 +19,8 @@
return {
StatusBar: Vue.prototype.StatusBar,
CustomBar: Vue.prototype.CustomBar,
windowHeight: Vue.prototype.windowHeight
windowHeight: Vue.prototype.windowHeight,
LOADING: false
};
},



+ 8
- 0
pages/center/Piabodata/Employeesstatistics.vue View File

@@ -225,6 +225,10 @@
</view>
</view>
<u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar>
<!-- 加载组件 -->
<u-loadings v-model="LOADING"></u-loadings>
</view>
</template>

@@ -274,6 +278,7 @@
};
},
onLoad() {
this.LOADING = true
// 获取项目id
this.houseId = uni.getStorageSync('buildingID').id;
this.init()
@@ -439,12 +444,15 @@
//未标记客户数量排名,
staffStatisticsUnlabeledTop10(promse) {
this.$u.post('/cusLvStatistics/staffStatisticsUnlabeledTop', promse).then(res => {
this.LOADING = false
res.result.forEach(item => {
item.zxl = item.tagCustomer
item.name = item.accountName
})
res.result = this.dealData(res.result)
this.newlisttabinfo5 = res;
}).catch(e => {
this.LOADING = false
})
},



+ 10
- 1
pages/center/Piabodata/Groupcontrast.vue View File

@@ -235,6 +235,11 @@
<u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar>
<!-- 选择项目 -->
<u-select v-model="staffShow" :list="staffList" @confirm="staffSelectCallback" :default-value='selindex'></u-select>
<!-- 加载组件 -->
<u-loadings v-model="LOADING"></u-loadings>
</view>
</template>

@@ -306,6 +311,7 @@
};
},
onLoad() {
this.LOADING = true
let that=this
uni.$on('updateGroup',function(data){
console.log(data)
@@ -449,7 +455,8 @@
lastEndDate:this.lastEndDate,
lastStartDate:this.lastStartDate
})
.then(res=>{
.then(res=>{
this.LOADING = false
let allobj={
categories:[],
series:[]
@@ -474,6 +481,8 @@
}else{
this.emptyCharData = false;
}
}).catch(e => {
this.LOADING = false
})
},
//自定义时间


+ 9
- 1
pages/center/Piabodata/StaffAnalysis.vue View File

@@ -130,6 +130,10 @@
</u-select>
<u-select v-model="staffShow1" :list="staffList1" @confirm="staffSelectCallback" :default-value='selindex'>
</u-select>
<!-- 加载组件 -->
<u-loadings v-model="LOADING"></u-loadings>
</view>
</template>
<script>
@@ -227,7 +231,8 @@
};
},

onLoad: function(options) {
onLoad(options) {
this.LOADING = true
// 获取项目id
this.houseId = uni.getStorageSync('buildingID').id;
// this.buildingname = uni.getStorageSync('buildingID').name;
@@ -471,6 +476,7 @@
lastStartDate: this.lastStartDate
})
.then(res => {
this.LOADING = false
// console.log(res)
let first = res.first
let second = res.second
@@ -503,6 +509,8 @@
})
}

}).catch(e => {
this.LOADING = false
})
},
tabtimetap(index) {


+ 8
- 0
pages/center/Piabodata/Theteamcompared.vue View File

@@ -177,6 +177,10 @@
</u-select>
<u-select v-model="staffShow1" :list="staffList1" @confirm="staffSelectCallback" :default-value='selindex'>
</u-select>
<!-- 加载组件 -->
<u-loadings v-model="LOADING"></u-loadings>
</view>
</template>

@@ -371,6 +375,7 @@
};
},
onLoad() {
this.LOADING = true
let that = this
uni.$on('update', function(data) {
// console.log(data)
@@ -752,6 +757,7 @@
lastStartDate: this.lastStartDate
})
.then(res => {
this.LOADING = false
// console.log(res)
// 处理数据
this.chartData1 = {
@@ -828,6 +834,8 @@
// console.log(allobj)
this.chartData1 = allobj
this.$forceUpdate()
}).catch(e => {
this.LOADING = false
})
},
// 定义一个公共方法对数据进行处理


+ 27
- 17
pages/center/Piabodata/TrendAnalysis.vue View File

@@ -20,7 +20,7 @@
</view>
<view class="timepickpick" @click="checkboxChange()">
<image v-if="timepickpickisshow" style="width: 30rpx;height: 30rpx;"
src="../../../static/images/xuanzhong.png" mode=""></image>
src="../../../static/images/xuanzhong.png" mode=""></image>
<view v-else style="width: 30rpx;height:30rpx;border: 1px solid #E0E0E0;box-sizing:border-box;"></view>
<view style="font-size:26rpx;text-indent: 12rpx;">对比</view>
</view>
@@ -47,7 +47,7 @@
{{item.name}}
</view>
<view class="num u-flex" v-if="item.name==='平均执行率'">
{{item.num}}%
{{item.num}}%
<!-- <image style="margin-left: 2rpx;width: 28rpx;height: 14rpx" src="../../../static/images/excute.png" mode="" /> -->
</view>
<view class="num" v-else-if="item.name==='有效接待'">{{item.num||'--'}}</view>
@@ -56,11 +56,11 @@
<view class="comparesize" v-if="compareFlag&&timepickpickisshow">
<text style="margin-right: 50rpx;">对比:{{item.name==='平均执行率'?item.num1+'%':item.num1}}</text>
<text :style="{color:item.num2*1>0?'red':'green'}">
{{item.num2}}
<template v-if="item.name==='平均执行率'">
%
</template>
{{(item.num2*1) > 0 ? '↑' : '↓'}}</text>
{{item.num2}}
<template v-if="item.name==='平均执行率'">
%
</template>
{{(item.num2*1) > 0 ? '↑' : '↓'}}</text>
</view>
</view>
<!-- <view class="grid" v-for="(item,index) in numlist" :key="index"
@@ -229,8 +229,11 @@
<u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar>
<newcalendar v-model="totalTimeShow2" :planNum='intervaltime' mode="date" @change="totalTimeChange2">
</newcalendar>
</view>

<!-- 加载组件 -->
<u-loadings v-model="LOADING"></u-loadings>
</view>
</template>
<script>
import newcalendar from '@/components/newcalendar/newcalendar.vue';
@@ -357,14 +360,15 @@
components: {
newcalendar
},
onLoad: function(options) {
onLoad(options) {
this.LOADING = true
this.pamect.houseId = uni.getStorageSync('buildingID').id;
this.init()
},
onPullDownRefresh(){
onPullDownRefresh() {
this.init()
setTimeout(function () {
uni.stopPullDownRefresh();
setTimeout(function() {
uni.stopPullDownRefresh();
}, 1000);
},
watch: {
@@ -491,6 +495,10 @@
this.aboutEecondary()
}
}
setTimeout(() => {
this.LOADING = false
}, 1500)
});
},
//起始时间
@@ -1188,10 +1196,11 @@
}
</script>
<style lang="scss" scoped>
.boxtittab .tabbox{
flex: none;
padding: 0 35rpx;
}
.boxtittab .tabbox {
flex: none;
padding: 0 35rpx;
}

.uchaserbox {
height: 500rpx;
}
@@ -1306,7 +1315,8 @@
display: flex;
justify-content: center;
}
.timetabctview view{

.timetabctview view {
width: 100rpx;
}



+ 31
- 23
pages/center/Piabodata/index.vue View File

@@ -21,9 +21,10 @@
<view class="grid" v-for="(item,index) in numlist" :key="index">
<view class="audonum">
<view class="circle"></view>
{{item.name}}</view>
{{item.name}}
</view>
<view class="num u-flex" v-if="item.name==='平均执行率'">
{{item.num}}
{{item.num}}
<!-- <image style="margin-left: 2rpx;width: 28rpx;height: 14rpx" src="../../../static/images/excute.png" mode="" /> -->
</view>
<view class="num" v-else-if="item.name==='有效接待'">{{item.num||'--'}}</view>
@@ -54,8 +55,8 @@
:ontouch="true" canvasId="wangxiaohuaerlingilingwuyiba1" :canvas2d="true" />
</template>
<template v-else>
<qiun-data-charts type="line" :opts="lineOpts1" :chartData="lineOptsect" background="none" :ontouch="true"
canvasId="wangxiaohuaerlingilingwuyiba1" :canvas2d="true" />
<qiun-data-charts type="line" :opts="lineOpts1" :chartData="lineOptsect" background="none"
:ontouch="true" canvasId="wangxiaohuaerlingilingwuyiba1" :canvas2d="true" />
</template>
</view>
</view>
@@ -67,7 +68,7 @@
<view class="title1">团队接待趋势</view>
<view class="title2">
{{team.label}}
<image class="righttochoose" src="../../../static/images/down.png" mode=""></image>
<image class="righttochoose" src="../../../static/images/down.png" mode=""></image>
</view>
</view>
<view class="danwei">单位(%)</view>
@@ -84,8 +85,8 @@
<view class="title">
<view class="title1">员工接待趋势</view>
<view class="title2" @click="staffShow=true">
{{staff.label}}
<image class="righttochoose" src="../../../static/images/down.png" mode=""></image>
{{staff.label}}
<image class="righttochoose" src="../../../static/images/down.png" mode=""></image>
</view>
</view>
<!-- <view class="hejibox">
@@ -93,8 +94,8 @@
<view class="heji">均值:{{allavg1||0}}</view>
</view> -->
<view class="danwei">单位(%)</view>
<view style="width: 100%;height: 300rpx;text-align: center;line-height: 300rpx;"
v-if="lineOptsect2.series.length===0">暂无数据</view>
<view style="width: 100%;height: 300rpx;text-align: center;line-height: 300rpx;"
v-if="lineOptsect2.series.length===0">暂无数据</view>
<view class="uchaserbox">
<qiun-data-charts :opts="lineOpts" type="line" :chartData="lineOptsect2" background="none"
:ontouch="true" canvasId="wangxiaohuaerlingeryilingwuyibao" :canvas2d="true" />
@@ -119,15 +120,15 @@
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
</view> -->
<view style="width: 100%;text-align: center;line-height: 300rpx;"
v-if="newlisttabinfo.length==0">暂无数据</view>
<view style="width: 100%;text-align: center;line-height: 300rpx;" v-if="newlisttabinfo.length==0">暂无数据
</view>
<view v-else class="jindu" style="margin-top: 20rpx;">
<scroll-view style="height: 300rpx;" scroll-y="true">
<view class="jindu-box" v-for="(item,index) in newlisttabinfo" :key="index">
<view class="jindu-boxche">
<view class="jindu-name">{{item.name.substring(0, 4)}}</view>
<view class="progress-cus">
<view class="color" :style="'width:'+ getPercent(item.zxl) + '%'" ></view>
<view class="color" :style="'width:'+ getPercent(item.zxl) + '%'"></view>
</view>
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}%</view>
</view>
@@ -155,7 +156,7 @@
<view class="jindu-boxche">
<view class="jindu-name">{{item.name.substring(0, 4)}}</view>
<view class="progress-cus">
<view class="color" :style="'width:'+ getPercent(item.zxl) + '%'" ></view>
<view class="color" :style="'width:'+ getPercent(item.zxl) + '%'"></view>
</view>
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}%</view>
</view>
@@ -168,6 +169,9 @@
:default-value='selindex'></u-select>
<u-select v-model="staffShow1" :list="teamList" @confirm="staffSelectCallback($event,1)"
:default-value='selindex'></u-select>

<!-- 加载组件 -->
<u-loadings v-model="LOADING"></u-loadings>
</view>
</template>

@@ -210,7 +214,7 @@
danwei: '单位(次)',
totalTimeShow: false,
activeTab: 0,
numlist: [{
name: '平均执行率',
num: '',
@@ -221,7 +225,7 @@
num: '',
setName: 'avgDuration',
},
{
name: '接待量',
num: '',
@@ -233,7 +237,7 @@
setName: 'activeCustomer',
},
],
lineOptsect: {
"categories": [],
"series": []
@@ -260,7 +264,7 @@
title: '单位(min)',
setName: 'sumDuration'
},
{
name: "接待量",
id: 3,
@@ -274,8 +278,8 @@
setName: 'receptionCount'
},
],
bocindex: 0,
newlisttabinfo: [{
name: '接待量',
@@ -327,6 +331,7 @@
};
},
onShow() {
this.LOADING = true
let newmenulist = uni.getStorageSync('weapp_session_Menu_data');
this.permissions.commonly2 = newmenulist.lpdb;
this.permissions.commonly3 = newmenulist.xjqs;
@@ -370,9 +375,9 @@
}, 1000);
},
methods: {
getPercent(num){
getPercent(num) {
console.log(num)
return num||0
return num || 0
},
// 获取员工列表
getStaffList() {
@@ -416,6 +421,7 @@
lastStartDate: this.lastStartDate
})
.then(res => {
this.LOADING = false
// console.log(res)
// 处理销奖维度执行率
// this.newlisttabinfo
@@ -434,6 +440,8 @@
this.newlisttabinfo = arr
this.allList = res.list
this.tapspagek3(this.bocindex1)
}).catch(e => {
this.LOADING = false
})
},
// 获取简报
@@ -447,7 +455,7 @@
.then(res => {
res.fraction = (res.fraction || 0) + '%'
this.numlist.map(item => {
item.num = res[item.setName] || 0
item.num = res[item.setName] || 0
})
})
},
@@ -595,7 +603,7 @@
allobj.categories.push(item.statDate.slice(5, 10))
allobj.series[0].data.push(item[this.newlistoj1[index].setName])
})
this.bocindex = index;
this.lineOptsect = allobj
},


+ 7
- 1
pages/center/consumer/consumerDetail.vue View File

@@ -237,7 +237,9 @@
</scroll-view>

</u-popup>

<!-- 加载组件 -->
<u-loadings v-model="LOADING"></u-loadings>
</view>
</template>

@@ -264,6 +266,7 @@
}
},
onLoad(options) {
this.LOADING = true
this.customerId = options.id;
_this = this
},
@@ -296,6 +299,7 @@
this.$u.get("/customer/findById", {
id: this.customerId
}).then(res => {
this.LOADING = false
if (res.fraction == null) {
res.fraction = '0';
}
@@ -311,6 +315,8 @@

// console.log(res.demand.cusSemanticWords,'关键字')
this.customerInfo = res;
}).catch(e => {
this.LOADING = false
})
},
tabtimetap(idx) {


+ 8
- 0
pages/center/prohibited/index.vue View File

@@ -78,6 +78,10 @@
</u-popup>
<u-select v-model="soltishow" :list="orderBylist" @confirm="selectCallback2"></u-select>
<u-select v-model="showIdent" :list="identList" @confirm="selectIdent"></u-select>
<!-- 加载组件 -->
<u-loadings v-model="LOADING"></u-loadings>
</view>
</template>

@@ -169,6 +173,7 @@
}
},
onLoad(options) {
this.LOADING = true
this.isnorefresh = options.refresh;
if (options.activeTotal) {
this.activeTotal = options.activeTotal
@@ -380,6 +385,7 @@
}

this.$u.post("/customer/findbypage", parames).then(data => {
this.LOADING = false
var list = data.results || [];
if (this.isRefresh) {
this.recordList = list;
@@ -389,6 +395,8 @@
this.totalRecord = data.totalPage;
this.totalRecords = data.totalRecord;
this.nextPageObj = parames.query
}).catch(e => {
this.LOADING = false
})
},
//获取顾问列表


+ 7
- 0
pages/center/records/index.vue View File

@@ -219,6 +219,9 @@
90min以上</view>
</u-popup>
<u-select v-model="soltishow" :list="orderBylist" @confirm="selectCallback2"></u-select>
<!-- 加载组件 -->
<u-loadings v-model="LOADING"></u-loadings>
</view>
</template>

@@ -316,6 +319,7 @@
}
},
onLoad(options) {
this.LOADING = true
this.isnorefresh = options.refresh;
this.activeTotal = options.activeTotal
this.screen.markAdvisor = options.markAdvisor
@@ -534,6 +538,7 @@


this.$u.post("/customer/findbypage", parames).then(data => {
this.LOADING = false
var list = data.results || [];
// this.recordList = [...this.recordList, ...list];
if(this.isRefresh){
@@ -546,6 +551,8 @@
if(this.staTime && this.endtime) {
this.startFilterTime = `${this.staTime}-${this.endtime}`
}
}).catch(e => {
this.LOADING = false
})
},
//获取顾问列表


+ 24
- 12
pages/index/consumer/index.vue View File

@@ -70,7 +70,7 @@
负责顾问:<view class="content-sec-lab1">{{item.agentName || ''}}</view>
</view>

<view class="content-sec-lab" style="line-height: 46rpx;">
<view class="content-sec-lab" style="line-height: 46rpx;">
客户意向:
<text v-if="item.demand.cusSemanticWordsList==null">暂无</text>
<template v-else>
@@ -85,20 +85,21 @@
<view class="content-sec-num">
<view>到访{{item.visitRecord || '--'}}次</view>
<view>
{{item.mm || '0'}}min/{{item.fraction || '0'}}%
{{item.mm || '0'}}min/{{item.fraction || '0'}}%
</view>
</view>
</view>
<template v-if="permissions.commonly2">
<view class="content-last">
<!-- <view class="content-last-tab">
<!-- <view class="content-last-tab">
<image src="/static/images/genjin-icon.png" mode="" />添加提醒</view>
<view class="content-last-tab">
<image src="/static/images/genjin-icon.png" mode="" />
打电话</view> -->
<view class="content-last-tab" @click.stop="gotoFollowUp(item)">
<image src="/static/images/genjin-icon.png" mode="" />
写跟进</view>
写跟进
</view>
</view>
</template>

@@ -245,8 +246,8 @@
<u-popup v-model="soltishow" mode="bottom">
<view class="soltishow" @tap.stop @touchmove.stop>
<block v-for="(item, index) in orderBylist" :key="index">
<view class="soltishow-item"
:style="orderBy==item.value?'color: #2B6EFF':''" @click="selectCallback2(item)">
<view class="soltishow-item" :style="orderBy==item.value?'color: #2B6EFF':''"
@click="selectCallback2(item)">
{{ item.label }}
</view>
</block>
@@ -255,8 +256,12 @@
<!-- <u-select v-model="soltishow" :list="orderBylist" @confirm="selectCallback2"></u-select> -->

<!-- 底部导航栏 -->
<!-- <u-tabbar :mid-button="true" activeColor="#1296db" inactiveColor="#999999" v-model="current" :list="tabbarList">
<!-- <u-tabbar :mid-button="true" activeColor="#1296db" inactiveColor="#999999" v-model="current" :list="tabbarList">
</u-tabbar> -->


<!-- 加载组件 -->
<u-loadings v-model="LOADING"></u-loadings>
</view>

</template>
@@ -425,6 +430,7 @@
},

onShow() {
this.LOADING = true
let newmenulist = uni.getStorageSync('weapp_session_Menu_data');
this.permissions.commonly1 = newmenulist.khgl_ck;
this.permissions.commonly2 = newmenulist.khgl_gj;
@@ -461,7 +467,7 @@
}
},
methods: {
filterFun(){
filterFun() {

},
// 过滤
@@ -642,7 +648,7 @@
parames.query.level = this.screen.record.join(',');
}
this.$u.post("/customer/customerManagement", parames).then(data => {
this.LOADING = false
// if (this.staTime && this.endtime) {
// this.receptionDuration = `${this.staTime}-${this.endtime}`
// }
@@ -664,6 +670,8 @@
}
this.totalRecord = data.totalPage;
this.totalRecords = data.totalRecord;
}).catch(e => {
this.LOADING = false
})
},
//获取顾问列表
@@ -843,7 +851,8 @@
-webkit-box-orient: vertical;
/* 设置或检索伸缩盒对象的子元素的排列方式 */
}
.activeColor{

.activeColor {
color: #2671E2;
font-weight: bold;
}
@@ -869,7 +878,8 @@
display: flex;
align-items: center;
justify-content: center;
.filter{

.filter {
width: 40rpx;
height: 40rpx;
margin-left: 30rpx;
@@ -940,6 +950,7 @@
.content-tips {
background: #fff;
margin-bottom: 20rpx;

.content-first {
padding: 19rpx 30rpx;
display: flex;
@@ -1099,7 +1110,8 @@
display: flex;
align-items: center;
justify-content: center;
image{

image {
width: 40rpx;
height: 40rpx;
margin-right: 12rpx;


+ 8
- 0
pages/index/index.vue View File

@@ -294,6 +294,9 @@
</u-popup>
<!-- 底部导航栏 -->
<!-- <u-tabbar :mid-button="false" activeColor="#1296db" inactiveColor="#999999" v-model="current" :list="tabbarList"></u-tabbar> -->
<!-- 加载组件 -->
<u-loadings v-model="LOADING"></u-loadings>
</view>
</template>

@@ -384,6 +387,7 @@
},
components: {},
onLoad() {
this.LOADING = true
this.sendLog()
},
@@ -614,6 +618,7 @@
houseId: this.buildingID
},
success: (data) => {
this.LOADING = false
if (data.data.data == null) {
return
} else {
@@ -628,6 +633,9 @@
receptionCount: data.data.data.receptionCount
}
}
},
fail: () => {
this.LOADING = false
}
})
},


+ 9
- 0
pages/mine/details2.vue View File

@@ -438,6 +438,10 @@
</view>
</view>
<u-toast ref="uToast" />
<!-- 加载组件 -->
<u-loadings v-model="LOADING"></u-loadings>
</view>
</template>

@@ -564,6 +568,7 @@
},

onLoad(options) {
this.LOADING = true
this.status = options.status;
this.customerId = options.customerId;
this.itemobj = uni.getStorageSync('searchobj');
@@ -1641,6 +1646,7 @@
'Authorization': 'Bearer ' + uni.getStorageSync('weapp_session_login_data').token
},
success: (data) => {
this.LOADING = false
this.tablist = [];
let jsonInfo = JSON.parse(data.data.data.audioContent);

@@ -1689,6 +1695,9 @@
this.newluyinList = jsonInfo;
this.dialogList.push(jsonInfo[this.textindex]);
this.adasdasdasd(Math.floor(info.bg / 1000))
},
fail: () => {
this.LOADING = false
}
})
},


+ 8
- 0
pages/mine/reception/consultant.vue View File

@@ -40,6 +40,10 @@
<u-modal v-model="show" :mask-close-able="true" :title="'代接待提醒'" :confirm-text="confirmtext"
:cancel-text='canceltext' @cancel="confirmA" @confirm="confirmB" :show-cancel-button='true'
:content="content"></u-modal>


<!-- 加载组件 -->
<u-loadings v-model="LOADING"></u-loadings>
</view>
</template>

@@ -62,6 +66,7 @@
}
},
onLoad(option) {
this.LOADING = true
this.customerId = option.id;
this.freeList = []
},
@@ -152,12 +157,15 @@
},
getFreeList() {
this.$u.get("/zkAgentPool/freeList?itemId=" + this.buildingID).then(res => {
this.LOADING = false
if (res.length == 0) {
this.freeList = []
} else {
this.freeList = res;
this.textcdhSKJ = res[0].name
}
}).catch(e => {
this.LOADING = false
})
},
radioChange: function(evt) {


+ 56
- 0
uview-ui/components/u-loadings/u-loadings.vue View File

@@ -0,0 +1,56 @@
<template>
<view class="pages" v-if="value">
<div class="donut"></div>
</view>
</template>

<script>
export default {
name: '加载组件',
props: {
// v-model绑定的变量
value: {
type: Boolean,
default: false
},
},
}
</script>

<style lang="scss" scoped>
.pages {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: 999999;
display: flex;
flex-direction: column;
align-items: center;
background: #fff;

.donut {
margin-top: 35vh;
display: inline-block;
border: 10rpx solid rgba(0, 0, 0, 0.1);
border-left-color: #1296db;
border-radius: 50%;
width: 150rpx;
height: 150rpx;
animation: donut-spin 1.2s linear infinite;
}
}



@Keyframes donut-spin {
0% {
transform: rotate(0deg);
}

100% {
transform: rotate(360deg);
}
}
</style>

Loading…
Cancel
Save