| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038 |
- <template>
- <view :class="[AppTheme]" class="content">
- <!-- #ifdef APP-PLUS || MP-WEIXIN -->
- <u-sticky offsetTop="0" style="z-index: 10;">
- <!-- #endif -->
- <!-- #ifdef H5 -->
- <u-sticky offsetTop="-44" style="z-index: 10;">
- <!-- #endif -->
- <view class="navbar">
- <u-tabs ref="uTabs" :list="navList" :activeStyle="{
- color: primary,
- transform: 'scale(1.05)'
- }" :inactiveStyle="{
- color: '#606266',
- transform: 'scale(1)'
- }" lineWidth="30" :scrollable="false" :lineColor="primary" :current="current" @click="tabClick">
- </u-tabs>
- </view>
- </u-sticky>
- <swiper :current="tabCurrentIndex" class="swiper-box" @change="changeTab">
- <swiper-item class="tab-content" v-for="(tabItem, tabIndex) in navList" :key="tabIndex"
- @touchmove.stop="">
- <scroll-view class="list-scroll-content" :refresher-enabled="true" :refresher-triggered="triggered"
- @refresherrefresh="refresh" scroll-y @scrolltolower="handle">
- <view v-for="(item, index) in orderList" :key="index" class="order-item">
- <view class="i-top b-b">
- <text class="time">订单编号:{{ item.oid }}</text>
- <text class="state" :style="{ color: item.stateTipColor }">{{ item.stateTip }}</text>
- <text v-if="item.state === 9" class="del-btn yticon icon-iconfontshanchu1"
- @click="deleteOrder(index)"></text>
- </view>
- <scroll-view v-if="item.items.length > 1" class="goods-box"
- :class="[item.type === 5 ? 'goods-box2' : 'goods-box']" scroll-x>
- <view v-for="(goodsItem, goodsIndex) in item.items" :key="goodsIndex" class="goods-item"
- :class="[item.type === 5 ? 'goods-item2' : 'goods-item']">
- <image class="goods-img" mode="aspectFit"
- :class="[item.type === 5 ? 'goods-img2' : 'goods-img']" :src=" goodsItem.pic">
- </image>
- <view class="right_mess" v-if="item.type === 5">
- <view class="right_mess_p1">{{ goodsItem.name }}×{{ goodsItem.num }}</view>
- <view class="right_mess_p2"></view>
- <view class="right_mess_p3 text-neutral">金额:{{ goodsItem.price }}元</view>
- </view>
- </view>
- </scroll-view>
- <view v-if="item.items.length === 1" class="goods-box-single"
- v-for="(goodsItem, goodsIndex) in item.items" :key="goodsIndex">
- <image class="goods-img" :src=" goodsItem.pic" mode="aspectFill"></image>
- <view class="right">
- <text class="title clamp">{{ goodsItem.name }}</text>
- <text class="attr-box">x {{ goodsItem.num }}</text>
- <text class="price text-neutral">{{ goodsItem.price }}</text>
- </view>
- </view>
- <view class="price-box">
- 共
- <text class="num">{{ item.totalnum }}</text>
- 件商品 运费
- <text class="num price text-neutral">{{ item.yf }}</text>
- 实付款
- <text class="price text-neutral">{{ Number(item.payprice) }}</text>
- </view>
- <view class="action-box b-t">
- <button class="action-btn" @click="cancelOrder(item)"
- v-if="item.status == 1 && item.type != 4">取消订单</button>
- <button class="action-btn recom text-primary border-primary"
- @click="goOrderDetail(item)">查看订单{{item.sid}}</button>
- <button class="action-btn recom text-primary border-primary" @click="pay(item)"
- v-if="item.status == 1 && item.type != 4">去付款</button>
- <button class="action-btn recom text-primary border-primary"
- @click="orderTuikuan(item,index)"
- v-if="item.status == 2 && item.type != 3 && item.type != 4 && item.type != 5">
- 我要退款
- </button>
- <button class="action-btn recom text-primary border-primary"
- @click="orderTuihuo(item,index)"
- v-if="item.status == 3 && info.isth == 1 && item.type != 3 && item.type != 5">
- 我要退货
- </button>
- <button class="action-btn recom text-primary border-primary"
- @click="orderPickupSuccess(item)"
- v-if="item.status == 3 && item.delivery == 'since' && item.type != 4">
- 确认自提
- </button>
- <button class="action-btn recom text-primary border-primary" @click="logistics(item)"
- v-if="item.status == 3 && item.delivery != 'since'">查看物流</button>
- <button class="action-btn recom text-primary border-primary"
- @click="orderOK(item,index)"
- v-if="item.status == 3 && item.delivery != 'since'">确认收货</button>
- </view>
- </view>
- <u-loadmore style="margin-top: 30rpx;" :status="loadingType" />
- </scroll-view>
- </swiper-item>
- </swiper>
- <!-- 退款弹出层 -->
- <u-popup :show="show_tk" mode="center" round="10" width="700rpx" height="300px" @close="close_tuikuan">
- <view style="padding: 10px;">
- <view class="i-top b-b"><text class="time" style="text-align: center;font-size: 36rpx;">退款原因</text>
- </view>
- <view class="b-b">
- <!-- <view class=" illustrate">退款说明:</view> -->
- <view class="box-conter">
- <textarea style=" color: #303133; padding:10rpx; width: 100%;" :auto-height="true"
- v-model="tuikuan_explain" placeholder="请输入退款理由或货品名称" auto-height />
- </view>
- </view>
- <view class="tui-wrap">
- <view class="tui-btn" style="background: #Ccc !important; box-shadow: none;border: none;"
- @click="close_tk">取消</view>
- <view class="tui-btn bg-linear-gradient" @click="tuikuan_btn()">确认退款</view>
- </view>
- </view>
- </u-popup>
- <!-- 退货弹出层 -->
- <u-popup :show="show_th" mode="center" round="10" width="700rpx" height="450px" @close="close_tuihuo">
- <view style="padding: 10px;">
- <view class="tuihuo">
- <text style="text-align: center;font-size: 36rpx;">退货申请表</text>
- </view>
- <view class="i-top b-b">
- <text class="time">退货金额:</text>
- <u-input v-model="tuihuo_money" :trim="true" :clearable="false" style="flex-grow: 1;"
- type="digit" placeholder="必填" />
- </view>
- <view class="i-top b-b">
- <text class="time">快递公司:</text>
- <u-input v-model="tuihuo_gs" :trim="true" :clearable="false" style="flex-grow: 1;" type="text"
- placeholder="必填" />
- </view>
- <view class="i-top b-b">
- <text class="time">快递单号:</text>
- <u-input v-model="tuihuo_order" :trim="true" :clearable="false" style="flex-grow: 1;"
- type="digit" placeholder="必填" />
- </view>
- <view class="i-top b-b">
- <text class="time">退货说明:</text>
- <u-input v-model="tuihuo_explain" :trim="true" :clearable="false" style="flex-grow: 1;"
- type="text" placeholder="请输入退货理由或货品名称" />
- </view>
- <view class="tui-wrap">
- <view class="tui-btn" style="background: #Ccc !important; box-shadow: none;border: none;"
- @click="close_th">取消</view>
- <view class="tui-btn bg-linear-gradient" @click="tuihuo_btn()">确认退货</view>
- </view>
- </view>
- </u-popup>
- <payment ref="payment" :channel="1" :alipay="true" :weixinpay="true" :zhtpay="true"></payment>
- </view>
- </template>
- <script>
- import order from '@/api/order/index.js';
- import mall from '@/api/mall/index.js';
- export default {
- data() {
- return {
- _freshing: false,
- triggered: true,
- primary: this.$theme.primary,
- current: 0,
- info: {},
- settingFile: getApp().globalData.siteinfo,
- tabCurrentIndex: 0,
- orderList: [],
- page: 1,
- pagesize: 5,
- ifOnShow: false,
- show_tk: false,
- show_th: false,
- loadingType: 'more',
- tuihuo_money: '', //退货金额
- tuihuo_gs: '', //快递公司
- tuihuo_order: '', //快递单号
- tuihuo_explain: '', //退货说明
- tuikuan_explain: '', //退款说明
- th_info: '',
- tk_info: '',
- navList: [{
- state: 0,
- name: '全部',
- loadingType: 'more'
- },
- {
- state: 1,
- name: '待付款',
- loadingType: 'more'
- },
- {
- state: 2,
- name: '待发货',
- loadingType: 'more'
- },
- {
- state: 3,
- name: '待收货',
- loadingType: 'more'
- },
- {
- state: 4,
- name: '已完成',
- loadingType: 'more'
- }
- ],
- orderIndex: 0
- };
- },
- onLoad(options) {
- this.page = 1;
- this.tabCurrentIndex = +options.state;
- this.current = options.state
- this.orderType(options.state);
- },
- methods: {
- refresh() { //自定义下拉刷新
- console.log('下拉刷新了')
- if (this._freshing) return;
- this._freshing = true;
- //调用获取数据的函数
- // this.getData();
- if (!this.triggered)
- //界面下拉触发,triggered可能不是true,要设为true
- this.triggered = true;
- setTimeout(() => {
- this.triggered = false;
- this._freshing = false;
- uni.stopPullDownRefresh()
- }, 2000);
- },
- /* 查看物流 */
- logistics(item) {
- uni.navigateTo({
- url: '/pagesD/pages/order/logistics/logistics?id=' + item.id + '&sid=' + item.sid
- });
- },
- /* 监听退款 清空输入过的信息 */
- close_tuikuan() {
- (this.tuikuan_explain = ''), //退款说明
- console.log('关闭了退款');
- },
- /* 关闭退款窗口 */
- close_tk() {
- this.show_tk = false;
- },
- /* 退款 */
- tuikuan_btn() {
- let that = this;
- let tmplIdsone = that.$config.temlist;
- if (tmplIdsone) {
- that.$until.requestSubscribeMessage([
- tmplIdsone['returnReminder']
- ], tmplIdsone, function() {
- that.orderTuikuanSave();
- });
- } else {
- that.orderTuikuanSave();
- }
- },
- orderTuikuanSave() {
- let that = this;
- let item = that.tk_info;
- order.orderTuikuanSave({
- sid: item.sid,
- orderid: item.id,
- tuikuanmsg: encodeURI(this.tuikuan_explain)
- })
- .then(res => {
- uni.hideLoading();
- this.$api.msg(res.msg);
- if (res.status == 200) {
- this.show_tk = false;
- this.orderList[this.orderIndex].status = 0
- }
- });
- },
- /* 监听退货 清空输入过的信息 */
- close_tuihuo() {
- (this.tuihuo_money = ''), //退货金额
- (this.tuihuo_gs = ''), //快递公司
- (this.tuihuo_order = ''), //快递单号
- (this.tuihuo_explain = ''), //退货说明
- console.log('关闭了退货');
- },
- /* 关闭退货窗口 */
- close_th() {
- this.show_th = false;
- },
- /* 退货 */
- tuihuo_btn() {
- let that = this;
- let item = that.th_info;
- if (!that.tuihuo_money) {
- that.$api.msg('请输入退货金额');
- return;
- }
- if (!that.tuihuo_gs) {
- that.$api.msg('请输入快递公司');
- return;
- }
- if (!that.tuihuo_order) {
- that.$api.msg('请输入快递单号');
- return;
- }
- let tmplIdsone = that.$config.temlist;
- if (tmplIdsone) {
- that.$until.requestSubscribeMessage([tmplIdsone['returnReminder']], tmplIdsone, function() {
- that.orderTuihuo();
- });
- } else {
- that.orderTuihuo();
- }
- },
- orderTuihuo() {
- let that = this;
- order
- .orderTuihuo({
- sid: item.sid,
- orderid: item.id,
- tuihuoprice: that.tuihuo_money,
- tuihuokd: encodeURI(that.tuihuo_gs),
- tuihuokdnum: that.tuihuo_order,
- tuihuomsg: encodeURI(that.tuihuo_explain)
- })
- .then(res => {
- that.$api.msg(res.msg);
- if (res.status == 200) {
- that.show_th = false;
- that.orderList[that.orderIndex].status = 4
- }
- });
- },
- goOrderDetail(item) {
- uni.navigateTo({
- url: `orderDetail?sid=${item.sid}&id=${item.id}`
- });
- },
- handle() {
- console.log('上拉加载了')
- this.orderType(this.tabCurrentIndex);
- },
- getOrderList(type) {
- this.loadingType = 'loading';
- order
- .orderList({
- type,
- p: this.page
- })
- .then(res => {
- if (res.status == 200) {
- if (res.data.cache.length >= this.pagesize) {
- this.loadingType = 'more';
- this.page++;
- } else {
- this.page++;
- this.loadingType = 'nomore';
- }
- this.orderList = this.orderList.concat(res.data.cache);
- this.info = res.data.shopset;
- }
- });
- },
- changeTab(e) {},
- animationfinish(e) {
- let current = e.detail.current;
- this.swiperCurrent = current;
- this.current = current;
- },
- //顶部tab点击
- tabClick(e) {
- console.log(e, "eeeee")
- this.page = 1;
- this.orderList = [];
- this.tabCurrentIndex = e.index;
- this.orderType(e.index);
- // this.getOrderList(type);
- },
- //删除订单
- deleteOrder(index) {
- uni.showLoading({
- title: '请稍后'
- });
- setTimeout(() => {
- this.navList[this.tabCurrentIndex].orderList.splice(index, 1);
- uni.hideLoading();
- }, 600);
- },
- //取消订单
- cancelOrder(item) {
- uni.showLoading({
- title: '请稍后'
- });
- order
- .orderCancel({
- sid: item.sid,
- orderid: item.id
- })
- .then(res => {
- uni.hideLoading();
- this.$api.msg(res.msg);
- if (res.status == 200) {
- setTimeout(() => {
- this.orderList = this.orderList.filter(olditem => {
- return olditem.id != item.id;
- });
- }, 500);
- }
- });
- },
- pay(item) {
- console.log('pay', item);
- let that = this;
- that.$refs.payment.payopen({
- orderid: item.id,
- djqid: item.djqid,
- money: item.payprice
- });
- },
- orderTuikuan(item, index) {
- this.orderIndex = index
- /* 跳转退款界面*/
- this.show_tk = true;
- this.tk_info = item;
- },
- orderTuihuo(item, index) {
- this.orderIndex = index
- /* 跳转退货界面*/
- this.show_th = true;
- this.th_info = item;
- },
- orderPickupSuccess(item) {
- uni.showLoading({
- title: '请稍后'
- });
- order
- .orderPickupSuccess({
- sid: item.sid,
- orderid: item.id,
- pagesize: this.pagesize
- })
- .then(res => {
- uni.hideLoading();
- if (res.status == 200) {
- this.$api.msg(res.msg);
- this.orderType(this.tabCurrentIndex);
- }
- });
- },
- orderOK(item, index) {
- this.orderIndex = index
- uni.showModal({
- content: '确认已收到货?',
- cancelColor: '#ccc',
- confirmColor: '#000000',
- success: e => {
- if (e.confirm) {
- order
- .orderOK({
- sid: item.sid,
- orderid: item.id
- })
- .then(res => {
- this.$api.msg(res.msg);
- if (res.status == 200) {
- setTimeout(() => {
- this.orderList[this.orderIndex].status = 4
- }, 500);
- }
- });
- }
- }
- });
- },
- //订单状态文字和颜色
- orderStateExp(state) {
- let stateTip = '',
- stateTipColor = '#fa436a';
- switch (+state) {
- case 1:
- stateTip = '待付款';
- break;
- case 2:
- stateTip = '待发货';
- break;
- case 9:
- stateTip = '订单已关闭';
- stateTipColor = '#909399';
- break;
- //更多自定义
- }
- return {
- stateTip,
- stateTipColor
- };
- },
- orderType(state) {
- let stateTip = 0;
- let that = this;
- switch (Number(state)) {
- case 0:
- stateTip = 4;
- that.getOrderList(stateTip);
- break;
- case 1:
- stateTip = 1;
- that.getOrderList(stateTip);
- break;
- case 2:
- stateTip = 5;
- that.getOrderList(stateTip);
- break;
- case 3:
- stateTip = 2;
- that.getOrderList(stateTip);
- break;
- case 4:
- stateTip = 3;
- that.getOrderList(stateTip);
- break;
- }
- return stateTip;
- }
- },
- onReachBottom() {
- console.log('到底了');
- },
- onPullDownRefresh() {
- console.log('上拉加载了')
- this.orderList = [];
- this.page = 1;
- this.orderType(this.tabCurrentIndex);
- setTimeout(() => {
- uni.stopPullDownRefresh();
- }, 600);
- }
- };
- </script>
- <style lang="scss">
- page,
- .content {
- background: $page-color-base;
- height: 100%;
- box-sizing: border-box;
- }
- .swiper-box {
- height: calc(100vh - 44px);
- }
- .list-scroll-content {
- height: 100%;
- }
- .navbar {
- background: #fff;
- box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
- .nav-item {
- flex: 1;
- display: flex;
- justify-content: center;
- align-items: center;
- height: 100%;
- font-size: 15px;
- color: $tab-color-1;
- position: relative;
- &.current {
- color: $tab-color-1;
- &:after {
- content: '';
- position: absolute;
- left: 50%;
- bottom: 0;
- transform: translateX(-50%);
- width: 44px;
- height: 0;
- border-bottom: 2px solid $tab-color-2;
- }
- }
- }
- }
- .tuihuo {
- line-height: 70rpx;
- text-align: center;
- .text {
- text-align: center;
- }
- }
- .i-top {
- display: flex;
- align-items: center;
- flex-wrap: wrap;
- height: 126upx;
- padding: 0 0upx;
- font-size: $font-base;
- color: $font-color-dark;
- position: relative;
- .time {
- // flex: 1;
- // flex-grow: 1;
- }
- .state {
- color: $base-color;
- }
- .del-btn {
- padding: 10upx 0 10upx 36upx;
- font-size: $font-lg;
- color: $font-color-light;
- position: relative;
- &:after {
- content: '';
- width: 0;
- height: 30upx;
- border-left: 1px solid $border-color-dark;
- position: absolute;
- left: 20upx;
- top: 50%;
- transform: translateY(-50%);
- }
- }
- }
- .b-b {
- margin: 0 0rpx;
- .illustrate {
- margin-bottom: 20rpx;
- }
- .box-conter {
- height: 230rpx;
- width: 600rpx;
- border: 1rpx solid #cccccc;
- }
- }
- .uni-swiper-item {
- height: auto;
- }
- .f-tui {
- width: 100%;
- min-height: 270rpx;
- background: #fff;
- margin-top: 16rpx;
- padding-left: 30rpx;
- padding-bottom: 30rpx;
- }
- .tui-wrap {
- margin: 15rpx 0;
- display: flex;
- justify-content: space-around;
- .tui-btn {
- left: 520rpx;
- width: 40%;
- height: 68rpx;
- display: flex;
- justify-content: center;
- align-items: center;
- border-radius: 15rpx;
- border-width: 1px;
- border-style: solid;
- margin-top: 20rpx;
- color: #fff;
- }
- }
- .order-item {
- display: flex;
- flex-direction: column;
- padding-left: 30upx;
- background: #fff;
- margin-top: 16upx;
- .i-top {
- display: flex;
- align-items: center;
- height: 80upx;
- padding-right: 30upx;
- font-size: $font-base;
- color: $font-color-dark;
- position: relative;
- .time {
- flex: 1;
- font-weight: bold;
- }
- .state {
- color: $base-color;
- }
- .del-btn {
- padding: 10upx 0 10upx 36upx;
- font-size: $font-lg;
- color: $font-color-light;
- position: relative;
- &:after {
- content: '';
- width: 0;
- height: 30upx;
- border-left: 1px solid $border-color-dark;
- position: absolute;
- left: 20upx;
- top: 50%;
- transform: translateY(-50%);
- }
- }
- }
- /* 多条商品 */
- .goods-box {
- height: 160upx;
- padding: 20upx 0;
- white-space: nowrap;
- .goods-item {
- width: 120upx;
- height: 120upx;
- display: inline-block;
- margin-right: 24upx;
- }
- .goods-item2 {
- width: 100%;
- height: 160rpx;
- display: flex;
- justify-content: flex-start;
- align-items: center;
- margin-right: 0;
- }
- .goods-img {
- display: block;
- width: 100%;
- height: 100%;
- }
- .goods-img2 {
- display: block;
- width: 160rpx;
- height: 120rpx;
- }
- }
- .right_mess {
- width: auto;
- margin-left: 15rpx;
- }
- .right_mess_p1 {
- font-size: 28rpx;
- color: #000;
- letter-spacing: 5rpx;
- }
- .right_mess_p2 {
- font-size: 26rpx;
- color: #000;
- margin: 15rpx 0;
- letter-spacing: 5rpx;
- }
- .right_mess_p3 {
- font-size: 26rpx;
- letter-spacing: 5rpx;
- }
- .goods-box2 {
- height: auto;
- }
- /* 单条商品 */
- .goods-box-single {
- display: flex;
- padding: 20upx 0;
- .goods-img {
- display: block;
- width: 120upx;
- height: 120upx;
- }
- .right {
- flex: 1;
- display: flex;
- flex-direction: column;
- padding: 0 30upx 0 24upx;
- overflow: hidden;
- .title {
- font-size: $font-base + 2upx;
- color: $font-color-dark;
- line-height: 1;
- line-height: 40rpx;
- height: 40rpx;
- text-overflow: ellipsis;
- overflow: hidden;
- white-space: nowrap;
- }
- .attr-box {
- font-size: $font-sm + 2upx;
- color: $font-color-light;
- padding: 10upx 12upx;
- }
- .price {
- font-size: $font-base + 2upx;
- &:before {
- content: '¥';
- font-size: $font-sm;
- margin: 0 2upx 0 8upx;
- }
- }
- }
- }
- .price-box {
- display: flex;
- justify-content: flex-end;
- align-items: baseline;
- padding: 20upx 30upx;
- font-size: $font-sm + 2upx;
- color: $font-color-light;
- .num {
- margin: 0 8upx;
- }
- .price {
- font-size: $font-lg;
- &:before {
- content: '¥';
- font-size: $font-sm;
- margin: 0 2upx 0 8upx;
- }
- }
- }
- .action-box {
- display: flex;
- justify-content: flex-end;
- align-items: center;
- height: 100upx;
- position: relative;
- padding-right: 30upx;
- }
- .action-btn {
- width: 160upx;
- height: 60upx;
- margin: 0;
- margin-left: 24upx;
- padding: 0;
- text-align: center;
- line-height: 60upx;
- font-size: $font-sm + 2upx;
- background: #fff;
- border-radius: 100px;
- &:after {
- border-radius: 100px;
- }
- &.recom {
- background: #fff9f9;
- border-width: 1rpx;
- border-style: solid;
- }
- }
- }
- /* load-more */
- .uni-load-more {
- display: flex;
- flex-direction: row;
- height: 80upx;
- align-items: center;
- justify-content: center;
- background-color: transparent;
- }
- .uni-load-more__text {
- font-size: 28upx;
- color: #999;
- }
- .uni-load-more__img {
- height: 24px;
- width: 24px;
- margin-right: 10px;
- }
- .uni-load-more__img>view {
- position: absolute;
- }
- .uni-load-more__img>view view {
- width: 6px;
- height: 2px;
- border-top-left-radius: 1px;
- border-bottom-left-radius: 1px;
- background: #999;
- position: absolute;
- opacity: 0.2;
- transform-origin: 50%;
- animation: load 1.56s ease infinite;
- }
- .uni-load-more__img>view view:nth-child(1) {
- transform: rotate(90deg);
- top: 2px;
- left: 9px;
- }
- .uni-load-more__img>view view:nth-child(2) {
- transform: rotate(180deg);
- top: 11px;
- right: 0;
- }
- .uni-load-more__img>view view:nth-child(3) {
- transform: rotate(270deg);
- bottom: 2px;
- left: 9px;
- }
- .uni-load-more__img>view view:nth-child(4) {
- top: 11px;
- left: 0;
- }
- .load1,
- .load2,
- .load3 {
- height: 24px;
- width: 24px;
- }
- .load2 {
- transform: rotate(30deg);
- }
- .load3 {
- transform: rotate(60deg);
- }
- .load1 view:nth-child(1) {
- animation-delay: 0s;
- }
- .load2 view:nth-child(1) {
- animation-delay: 0.13s;
- }
- .load3 view:nth-child(1) {
- animation-delay: 0.26s;
- }
- .load1 view:nth-child(2) {
- animation-delay: 0.39s;
- }
- .load2 view:nth-child(2) {
- animation-delay: 0.52s;
- }
- .load3 view:nth-child(2) {
- animation-delay: 0.65s;
- }
- .load1 view:nth-child(3) {
- animation-delay: 0.78s;
- }
- .load2 view:nth-child(3) {
- animation-delay: 0.91s;
- }
- .load3 view:nth-child(3) {
- animation-delay: 1.04s;
- }
- .load1 view:nth-child(4) {
- animation-delay: 1.17s;
- }
- .load2 view:nth-child(4) {
- animation-delay: 1.3s;
- }
- .load3 view:nth-child(4) {
- animation-delay: 1.43s;
- }
- @-webkit-keyframes load {
- 0% {
- opacity: 1;
- }
- 100% {
- opacity: 0.2;
- }
- }
- </style>
|