<template> <view class="pos-order-list" ref="container"> <view class="top-header"> <view class="search"> <view class="search-content acea-row row-middle"> <text class="iconfont icon-sousuo"></text> <input v-model="where.search_info" confirm-type="search" placeholder="请输收货人手机号或订单号搜索" class="input" @confirm="handleSearch" /> </view> </view> <view> <scroll-view class="nav acea-row" scroll-x="true" style="white-space: nowrap; display: flex;" scroll-with-animation show-scrollbar="true"> <view class="item" :class="where.status == '' ? 'on' : ''" @click="changeStatus('')"> 全部 </view> <view class="item" :class="where.status == 1 ? 'on' : ''" @click="changeStatus(1)"> 待付款 </view> <view class="item" :class="where.is_verify == 1 ? 'on' : ''" @click="changeStatus('verify')"> 待核销 </view> <view class="item" :class="where.status == 2 ? 'on' : ''" @click="changeStatus(2)"> 待发货 </view> <view class="item" :class="where.status == 3 ? 'on' : ''" @click="changeStatus(3)"> 待收货 </view> <view class="item" :class="where.status == 4 ? 'on' : ''" @click="changeStatus(4)"> 待评价 </view> <view class="item" :class="where.status == 5 ? 'on' : ''" @click="changeStatus(5)"> 已完成 </view> <view class="item" :class="where.status == 6 ? 'on' : ''" @click="changeStatus(6)"> 退款 </view> <view class="item" :class="where.status == 7 ? 'on' : ''" @click="changeStatus(7)"> 暂存 </view> </scroll-view> </view> </view> <view v-if="(where.status == 6)" class="list"> <view class="item" v-for="(item, index) in list" :key="index"> <view class="order-num acea-row row-middle"> <text v-if="item.order && item.order.activity_type != 0" class="activity_type"> {{ item.order.activity_type == 1 ? '秒杀' : item.order.activity_type == 2 ? '预售' : item.order.activity_type == 3 ? '助力' : item.order.activity_type == 4 ? '拼团' : item.order.activity_type == 10 ? '套餐' :'' }} </text> 退款单号:{{ item.refund_order_sn }} <text class="time">申请时间:{{ item.create_time }}</text> </view> <view class="pos-order-goods" v-for="(val, key) in item.refundProduct" :key="key" @click="toRefundDetail(item)"> <view v-if="val.product" class="goods acea-row row-between-wrapper"> <view class="picTxt acea-row row-between-wrapper"> <view class="pictrue"> <image :src="val.product.cart_info.productAttr.image||val.product.cart_info.product.image" /> </view> <view class="text acea-row row-between row-column"> <view class="info line1 refund-info"> {{ val.product.cart_info.product.store_name }} </view> <view class="attr" v-if="val.product.cart_info.productAttr.sku"> {{ val.product.cart_info.productAttr.sku }} </view> <view class="y-money refund-y-money"> 退款:¥{{ val.refund_price }} </view> </view> </view> <view class="money refund-money"> <view class="num">x{{ val.refund_num }}</view> </view> </view> </view> <view class="item-status"> <text v-if="item.status == -1" class="iconfont icon-yijujue1"></text> <text v-if="item.status == 0" class="iconfont icon-tuikuanzhong on"></text> <text v-if="item.status == 1 || item.status == 2" class="iconfont icon-tuihuozhong on"></text> <text v-if="item.status == 3" class="iconfont icon-yituikuan1"></text> <text v-if="item.status == -2" class="iconfont icon-yiquxiao"></text> </view> <view class="operation acea-row row-between-wrapper"> <view class="more"> </view> <view class="acea-row row-middle"> <view class="bnt" @click="refundModify(item, 1)">订单备注</view> <navigator class="bnt bnt_color" v-if="item.status == 0" :url="'/pages/admin/orderRefund/index?id='+item.refund_order_id+'&merId='+merId">立即退款 </navigator> <navigator class="bnt" v-if="item.status == 2" :url="'/pages/users/goods_logistics/index?refundId='+item.refund_order_id+'&merId='+merId"> 查看物流 </navigator> <view class="bnt bnt_color" v-if="item.status == 2" @tap='confirmOrder(item)'>确认收货</view> </view> </view> </view> </view> <view v-else-if="(where.status == 7)" class="list"> <block v-for="(item, index) in list" :key="index"> <view class="item"> <view class="order-num acea-row row-middle"> 暂存单号:{{ item.order_sn }} <text class="time">暂存时间:{{ item.c_time }}</text> <text class="fk_status" v-if="item.order_status == 0">未支付</text> <text class="fk_status" v-if="item.order_status == 1"> <view>待核销</view> <view style="color: #FFE4BF;" v-if="!!item.refund_order_id && item.refund_status != -1 && item.refund_status != 3"> 退款中</view> </text> <text class="fk_status" v-if="item.order_status == 2"> <view>待发货</view> <view style="color: #FFE4BF;" v-if="!!item.refund_order_id && item.refund_status != -1 && item.refund_status != 3"> 退款中</view> </text> <text class="fk_status" v-if="item.order_status == 3"> <view>待收货</view> <view style="color: #FFE4BF;" v-if="!!item.refund_order_id && item.refund_status != -1 && item.refund_status != 3"> 退款中</view> </text> <text class="fk_status" v-if="item.order_status == 4"> <view>待评价</view> <view style="color: #FFE4BF;" v-if="!!item.refund_order_id && item.refund_status != -1 && item.refund_status != 3"> 退款中</view> </text> <text class="fk_status" v-if="item.order_status == 5"> <view>交易完成</view> <view style="color: #FFE4BF;" v-if="!!item.refund_order_id && item.refund_status != -1 && item.refund_status != 3"> 退款中</view> </text> <text class="fk_status" v-if="item.refund_mark == 1"> <view>退款成功</view> </text> </view> <view class="pos-order-goods" v-for="(val, key) in item.storeOrder.orderProduct" :key="key" @click="toDetail(item)"> <view class="goods acea-row row-between-wrapper" v-if="val.cart_info"> <view class="picTxt acea-row row-between-wrapper"> <view class="pictrue"> <image :src="val.cart_info.product.image || val.cart_info.productAttr.image" /> </view> <view class="text acea-row row-between row-column"> <view class="info line1 refund-info"> {{ val.cart_info.product.store_name }} </view> <view class="attr" v-if="val.cart_info.productAttr.sku"> {{ val.cart_info.productAttr.sku }} </view> <view class="y-money refund-y-money"> 价格:¥{{ val.cart_info.product.price }} </view> </view> </view> <view class="money refund-money"> <view class="num">x{{ item.storeOrder.total_num }}</view> </view> </view> </view> <view class="public-total" v-if="item.refund_mark == 1"> 共{{ item.total_num }}件商品, 已退款 <span class="money" style="margin-right: 30rpx;">¥{{ item.pay_price }}</span> (邮费 ¥{{ item.pay_postage}}) </view> <view class="public-total" v-else> 共{{ item.total_num }}件商品, <span v-if="item.order_status < 1">应</span> <span v-else>已</span> 支付 <span class="money" style="margin-right: 30rpx;">¥{{ item.pay_price }}</span> (邮费 ¥{{ item.pay_postage}}) </view> <view class="operation acea-row row-between-wrapper"> <view class="more"></view> <view class="acea-row row-middle"> <view class="bnt" @click="modify(item, 1)">订单备注</view> <view class="bnt bnt_color" v-if="item.order_status == 1" @click="toDetail(item)">去核销</view> <view class="bnt bnt_color" v-if="item.order_status == 2" @click="toPostagequ(item)">去发货 </view> <navigator class="bnt bnt_color" v-if="!!item.refund_order_id && item.refund_status != -1 && item.refund_status!=3" :url="'/pages/admin/orderRefund/index?id='+item.refund_order_id+'&merId='+merId"> 立即退款 </navigator> </view> </view> </view> </block> </view> <view v-else class="list"> <view class="item" v-for="(item, index) in list" :key="index"> <view class="order-num acea-row row-middle"> <text class="cloud-tag" v-if="item.source==103">云商品</text> <text v-else-if="item.activity_type != 0" class="activity_type"> {{ item.activity_type == 1 ? '秒杀' : item.activity_type == 2 ? '预售' : item.activity_type == 3 ? '助力' : item.activity_type == 4 ? '拼团' : item.activity_type == 10 ? '套餐' :'' }} </text> 订单号:{{ item.order_sn }} <text class="time">下单时间:{{ item.create_time }}</text> <text class="order-status" v-if="item.refunding != 0 && where.status != 1">{{item.refunding==1 ? '退款中' : item.refunding==2 ? '部分退款' : '全部退款'}}</text> </view> <view class="pos-order-goods" v-for="(val, key) in item.orderProduct" :key="key" @click="toDetail(item)"> <view class="goods"> <view class="acea-row row-between-wrapper"> <view class="picTxt acea-row row-between-wrapper"> <view class="pictrue"> <image :src="val.cart_info.productAttr.image||val.cart_info.product.image" /> </view> <view class="text acea-row row-between row-column"> <view class="info line2"> {{ val.cart_info.product.store_name }} </view> <view class="attr" v-if="val.cart_info.productAttr.sku"> {{ val.cart_info.productAttr.sku }} </view> <view class="attr" @click.stop="showBarCode(val.cart_info.productAttr.product)" v-if="val.cart_info.productAttr.product&&val.cart_info.productAttr.product.bar_code"> 商品条码: {{ val.cart_info.productAttr.product.bar_code }} </view> </view> </view> <view class="money"> <view class="x-money">¥{{ val.cart_info.productAttr.price }}</view> <view class="num">x{{ val.product_num }}</view> <!-- <view class="refund-num" v-if="val.product_num-val.refund_num>0">{{val.product_num-val.refund_num}}件{{val.is_refund==1?'退款中' : val.is_refund==2 ? '已退款' : val.is_refund==3?'全部退款':''}}</view> --> </view> </view> </view> </view> <view class="public-total" v-if="item.pay_type !== 8"> 共{{ item.total_num }}件商品, <span v-if="where.status <= 1">应</span> <span v-else>已</span> 支付 <span class="money" style="margin-right: 30rpx;">¥{{ item.pay_price }}</span> (邮费 ¥{{ item.pay_postage}}) </view> <view class="public-total" v-else> 先货后款 <span v-if="where.status <= 1">应</span> <span v-else>已</span> 支付 <span class="money" style="margin-right: 30rpx;">¥0.00</span> (邮费 ¥{{ item.pay_postage}}) </view> <view class="public-total" v-if="item.pay_type == 8 "> 共{{item.total_num}}件商品,结算周期到期后付款¥{{ item.pay_price }} </view> <view class="operation acea-row row-between-wrapper"> <view class="more"> </view> <view class="acea-row row-middle"> <view class="bnt" v-if="item.pay_type == 8 && item.status == 12" @click="tongyi(item.group_order_id,1)"> 同意 </view> <view class="bnt" v-if="item.pay_type == 8 && item.status == 12 " @click="tongyi(item.group_order_id,2)"> 拒绝 </view> <view class="bnt" @click="modify(item, 0)" v-if="item.pay_type !=8 && item.paid !=1 &&!(item.status ==2 && item.pau_type==8) "> 一键改价 </view> <view class="bnt" @click="modify(item, 1)">订单备注</view> <view class="bnt bnt_color" v-if="where.status == 2 && item.order_type == 0&&(item.activity_type==98||item.activity_type==99)" @click="toPostage(item)">去发货 </view> <view class="bnt bnt_color" v-if="(where.status == 2 || (item.order_type === 0 && item.status === 0 && item.paid == 1)) && item.order_type == 0 && item.order_type !=1 && item.activity_type==0" @click="toPostagequ(item)">去发货 </view> <view class="bnt bnt_color" v-if="((item.order_type == 1 && item.status === 0 && item.paid == 1) && item.order_type == 1) || where.is_verify == 1" @click="toDetail(item)">去核销</view> </view> </view> </view> </view> <Loading :loaded="loaded" :loading="loading"></Loading> <view v-if="!loading && list.length <= 0" class="nothing"> <image src="/static/images/no_thing.png" mode="widthFix"></image> <view class="nothing_text">暂无订单~</view> </view> <PriceChange :change="change" :orderInfo="orderInfo" v-on:closechange="changeclose($event)" v-on:savePrice="savePrice" :status="status"></PriceChange> <view> <view class="priceChange" :class="refundMark === true ? 'on' : ''"> <view class="priceTitle"> 订单备注 <span class="iconfont icon-guanbi" @click="refundMark = false"></span> </view> <view class="listChange"> <textarea placeholder="请填写备注信息..." v-model="refundInfo.mer_mark"></textarea> </view> <view class="modify" @click="save"> 确认提交 </view> </view> <view class="mask" @touchmove.prevent v-show="refundMark === true"></view> </view> <view class="form-wrap" v-if="popUpShow" style="position: fixed;z-index: 11; top: 0;left: 0;width:100vw;height:100vh;background:rgba(0,0,0,.4);display: flex;align-items: center;justify-content: center;"> <view class="form"> <view class="form-item"> <view class="form-item-label">送货人姓名</view> <view class="form-item-val"> <u-input v-model="deliveryForm.delivery_name" placeholder="请输入送货人姓名" placeholderStyle="color:#999;font-size:26rpx;" border="surround"></u-input> </view> </view> <view class="form-item"> <view class="form-item-label">送货人电话</view> <view class="form-item-val"> <u-input v-model="deliveryForm.delivery_id" placeholder="请输入送货人电话" placeholderStyle="color:#999;font-size:26rpx;" border="surround"></u-input> </view> </view> <view class="form-item"> <view class="form-item-label">备注</view> <view class="form-item-val"> <u-input v-model="deliveryForm.remark" placeholder="请输入备注" placeholderStyle="color:#999;font-size:26rpx;"></u-input> </view> </view> <view class="form-btn"> <view class="form-btn-cancel" @click="popUpShow = false">取消</view> <view class="form-btn-confirm" @click="handleSubmitDelivery">确认</view> </view> </view> </view> <!-- <u-popup :show="popUpShow" mode="center" :closeOnClickOverlay="true" round="12" @close="popUpClose"> <view style="text-align: center;margin-top: 30rpx;"> 请把二维码展示给取货人员 </view> <view style="padding: 28.07rpx;"> <image :src="payCodeUrl" style="width:400rpx;height: 400rpx;"></image> </view> </u-popup> --> <view class="bar-code" v-show="showBar" @click="showBar=false"> <barcode ref="code"></barcode> </view> </view> </template> <script> // +---------------------------------------------------------------------- // | CRMEB [ CRMEB赋能开发者,助力企业发展 ] // +---------------------------------------------------------------------- // | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved. // +---------------------------------------------------------------------- // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权 // +---------------------------------------------------------------------- // | Author: CRMEB Team <admin@crmeb.com> // +---------------------------------------------------------------------- import { getOrderList, getRefundOrderList, setAdminOrderPrice, setAdminOrderRemark, setOfflinePay, setOrderRefund, refundOrderReceive, setRefundMark, postconfirm, logisticsCode, delivery, lockList } from "@/api/admin"; import Loading from '@/components/Loading/index' import PriceChange from '@/components/PriceChange/index' import { isMoney } from '@/utils/validate.js' import { Toast } from "../../../libs/uniApi"; export default { name: "AdminOrderList", components: { Loading, PriceChange }, data() { return { // 去发货 deliveryForm: { delivery_name: '', delivery_id: '', delivery_type: 2, mer_id: '' }, showBar: false, current: "", change: false, refundMark: false, types: 1, where: { page: 1, limit: 10, status: 1, search_info: '', product_type: '', pay_time: null, }, list: [], loaded: false, loading: false, refundInfo: {}, orderInfo: {}, status: "", codeShow: false, merId: '', popUpShow: false, payCodeUrl: '' }; }, watch: { "$route.params.types": function(newVal) { let that = this; if (newVal != undefined) { that.where.status = newVal; that.init(); } }, }, onLoad(option) { this.where.product_type = uni.getStorageSync("PRODUCT_TYPE") ?? "" this.where.status = option.types if (option.types == 99) { delete this.where.status; this.where.is_verify = 1; } if (option.types == 88) { this.where.status = 7; } this.current = ""; this.merId = option.merId; if (option.pay_time) { this.where.pay_time = option.pay_time; } this.getIndex(); }, onPullDownRefresh() { this.loaded = false; this.where.page = 1; this.list = []; this.getIndex(); }, methods: { // 状态 statusParse(item) { const status = item.order[0].status; if (status == 0) return "待发货"; if (status == 1) return "待收货"; if (status == 2) return "待评价"; if (status == 3) return "已完成"; }, // 关闭二维码弹窗 popUpClose() { this.popUpShow = false }, showBarCode(val) { this.showBar = true this.$refs['code'].init({ name: val.store_name, code: val.bar_code }); }, //同意先货后款订单 tongyi(id, number) { let data = { id: id, type: number } if (number == 1) { this.$nextTick(() => { this.where.status = 2; delete this.where.is_verify; this.init(); }) } else if (number == 2) { uni.navigateTo({ url: `/pages/admin/orderList/index?types=1&merId=${this.merId}` }) } postconfirm(this.merId, data).then(res => { // console.log(res); }) }, handleSearch() { this.loaded = false; this.where.page = 1; this.list = []; this.getIndex(); }, // 获取数据 getIndex() { let that = this; if (that.loading || that.loaded) return; that.loading = true; if (that.where.status == 6) { getRefundOrderList(that.where, that.merId).then(res => { that.loading = false; that.loaded = res.data.list.length < that.where.limit; that.list.push.apply(that.list, res.data.list); that.where.page = that.where.page + 1; }, err => { that.$util.Tips({ title: err }); }); } else if (that.where.status == 7) { lockList(that.where, that.merId).then(res => { that.loading = false; that.loaded = res.data.list.length < that.where.limit; that.list.push.apply(that.list, res.data.list); that.where.page = that.where.page + 1; }, err => { that.$util.Tips({ title: err }); }) } else { getOrderList(that.where, that.merId).then( res => { that.loading = false; that.loaded = res.data.list.length < that.where.limit; that.list.push.apply(that.list, res.data.list); that.where.page = that.where.page + 1; uni.stopPullDownRefresh(); // console.log(that.list); }, err => { uni.stopPullDownRefresh(); that.$util.Tips({ title: err }); } ); } }, // 初始化 init: function() { this.list = []; this.where.page = 1; this.loaded = false; this.loading = false; this.getIndex(); this.current = ""; }, // 导航切换 changeStatus(val) { if (val != 'verify') { if (this.where.status != val) { this.where.status = val; this.where.search_info = '' delete this.where.is_verify; this.init(); } } else { this.where.search_info = '' this.where.is_verify = 1; delete this.where.status; this.init(); } }, // 商品操作 modify: function(item, status) { let temp = status.toString() this.change = true; this.orderInfo = item; this.status = temp; }, refundModify(item) { this.refundInfo = item; this.refundMark = true; }, // 退款单备注 save(item) { let that = this; if (!that.refundInfo.mer_mark) { return this.$util.Tips({ title: '请输入备注' }) } setRefundMark(that.merId, that.refundInfo.refund_order_id, { mer_mark: that.refundInfo.mer_mark }).then(res => { that.refundMark = false; this.$util.Tips({ title: res.message, icon: 'success' }) }, err => { that.refundMark = false; that.$util.Tips({ title: err }); }); }, changeclose: function(msg) { this.change = msg; }, // 确认收货 confirmOrder: function(item) { let that = this; uni.showModal({ title: '确认收货', content: '为保障权益,请收到货确认无误后,再确认收货', success: function(res) { if (res.confirm) { refundOrderReceive(that.merId, item.refund_order_id).then(res => { return that.$util.Tips({ title: '操作成功', icon: 'success' }, function() { item.status = 3; }); }).catch(err => { return that.$util.Tips({ title: err }); }) } } }) }, // 保存送货人电话 姓名 handleSubmitDelivery(item) { if (!this.deliveryForm.delivery_name) return this.$util.Tips({ title: "请输入送货人姓名!" }) if (!uni.$u.test.mobile(this.deliveryForm.delivery_id)) { return uni.showToast({ title: "手机号输入有误!", icon: "none" }); } let that = this; delivery(this.deliveryForm).then(res => { if (res.status == 200) { this.$util.Tips({ title: res.message }) that.init(); setTimeout(() => { that.popUpShow = false; }, 1000) } }).catch((err) => { that.$util.Tips({ title: err }) }) }, //收件码 toPostagequ(item) { this.deliveryForm.delivery_name = ''; this.deliveryForm.delivery_id = ''; this.deliveryForm.remark = ''; if (item.mer_id) { this.deliveryForm.mer_id = item.mer_id; this.deliveryForm.order_id = item.order_id; } else { this.deliveryForm.mer_id = item.order[0].mer_id; this.deliveryForm.order_id = item.order[0].order_id; } this.popUpShow = true; }, toPostage(item) { let that = this; if (item.refunding != 0) { uni.showModal({ title: '标题', content: '该订单有售后申请,请确认已处理!', success: function(res) { if (res.confirm) { uni.navigateTo({ url: `/pages/admin/delivery/index?id=${item.order_id}&merId=${that.merId}` }) } } }) } else { uni.navigateTo({ url: `/pages/admin/delivery/index?id=${item.order_id}&merId=${that.merId}` }) } }, async savePrice(opt) { let that = this, data = {}, price = opt.orderInfo.pay_postage, refund_price = opt.refund_price, refund_status = that.orderInfo.refund_status, remark = opt.remark; let parmas = { pay_postage: opt.orderInfo.pay_postage, coupon_price: opt.orderInfo.coupon_price, total_price: Number(opt.orderInfo.total_price) } let id = that.orderInfo.order_id; if (that.status == 0) { if (!isMoney(opt.orderInfo.pay_postage || opt.orderInfo.total_price)) { return that.$util.Tips({ title: '请输入正确的金额' }); } data.pay_price = price; setAdminOrderPrice(this.merId, id, parmas).then( function() { that.change = false; that.$util.Tips({ title: '改价成功', icon: 'success' }) that.init(); }, function(res) { that.change = false; that.$util.Tips({ title: res, icon: 'none' }) } ); } else { if (!remark) { return this.$util.Tips({ title: '请输入备注' }) } setAdminOrderRemark(this.merId, id, { remark: remark }).then( res => { that.change = false; this.$util.Tips({ title: res.message, icon: 'success' }) that.init(); }, err => { that.change = false; that.$util.Tips({ title: err }); } ); } }, toDetail(item) { let order_id, mer_id; if (item.order_id) { order_id = item.order_id; mer_id = item.mer_id; } else { order_id = item.order_id; mer_id = item.mer_id; } uni.navigateTo({ url: `/pages/admin/orderDetail/index?id=${order_id}&mer_id=${mer_id}` }) }, toRefundDetail(item) { uni.navigateTo({ url: `/pages/admin/refundDetail/index?id=${item.refund_order_id}&mer_id=${item.mer_id}` }) } }, onReachBottom() { this.getIndex() } } </script> <style lang="scss"> .form { position: relative; z-index: 11; padding: 40rpx 60rpx; background-color: #fff; border-radius: 20rpx; .form-item { display: flex; align-items: center; .form-item-label { width: 140rpx; font-size: 28rpx; color: #333; font-weight: bold; margin-right: 20rpx; } .form-item-val { flex: 1; } } .form-btn { display: flex; justify-content: center; margin-top: 50rpx; .form-btn-cancel { width: 83px; height: 60rpx; line-height: 60rpx; border-radius: 30rpx; text-align: center; color: #2291F8; border: 2rpx solid #2291F8; margin-right: 40rpx; } .form-btn-confirm { width: 83px; height: 60rpx; line-height: 60rpx; background: linear-gradient(90deg, #2291F8 0%, #1CD1DC 100%); border-radius: 30rpx; text-align: center; color: #fff; font-size: 28rpx; } .form-btn-cancel:active { background: rgba(209, 220, 255, .3); } .form-btn-confirm:active { opacity: .8; } } } .pos-order-list .top-header { position: fixed; top: 0; left: 0; z-index: 10; width: 100%; background-color: #fff; } .pos-order-list .nav { // width: 100%; height: 96upx; font-size: 30upx; color: #282828; width: 690rpx; margin: 0 auto; } .pos-order-list .nav .item { display: inline-block; text-align: center; color: #333333; max-width: 160rpx; margin-right: 50rpx; line-height: 96upx; &:last-child { margin-right: 0; } } .pos-order-list .nav .item.on { color: #2291f8; } .pos-order-list .list { margin-top: 210upx; } .pos-order-list .list .item { background-color: #fff; width: 100%; position: relative; } .pos-order-list .list .item .item-status { position: absolute; top: 14rpx; right: 20rpx; .iconfont { font-size: 98rpx; color: #CCCCCC; &.on { color: #FFE3BC; } } } .pos-order-list .list .item~.item { margin-top: 24upx; } .pos-order-list .list .activity_type { display: inline-block; color: #E93323; font-size: 20rpx; text-align: center; border-radius: 5rpx; padding: 0 4rpx; line-height: 28rpx; margin-right: 8rpx; border: 1rpx solid #E93323; } .pos-order-list .list .item .order-num { height: 124upx; border-bottom: 1px solid #eee; font-size: 30upx; font-weight: bold; color: #282828; padding: 0 30upx; position: relative; } .fk_status { position: absolute; right: 20rpx; top: 50%; transform: translateY(-50%); } .pos-order-list .list .item .order-status { color: #ff9600; position: absolute; top: 24rpx; right: 20rpx; text-align: right; width: 160rpx; font-weight: normal; font-size: 26rpx; } .pos-order-list .list .item .order-num .time { font-size: 26upx; font-weight: normal; color: #999; margin-top: -40upx; } .pos-order-list .list .item .operation { padding: 20upx 30upx 20upx 0; margin: 30upx 0 0 30upx; border-top: 1rpx solid #EEEEEE; } .pos-order-list .list .item .operation .more { position: relative; } .pos-order-list .list .item .operation .icon-gengduo { font-size: 50upx; color: #aaa; } .pos-order-list .list .item .operation .order .arrow { width: 0; height: 0; border-left: 11upx solid transparent; border-right: 11upx solid transparent; border-top: 20upx solid #e5e5e5; position: absolute; left: 15upx; bottom: -18upx; } .pos-order-list .list .item .operation .order .arrow:before { content: ''; width: 0; height: 0; border-left: 7upx solid transparent; border-right: 7upx solid transparent; border-top: 20upx solid #fff; position: absolute; left: -7upx; bottom: 0; } .pos-order-list .list .item .operation .order { width: 200upx; background-color: #fff; border: 1px solid #eee; border-radius: 10upx; position: absolute; top: -100upx; z-index: 9; } .pos-order-list .list .item .operation .order .items { height: 77upx; line-height: 77upx; text-align: center; } .pos-order-list .list .item .operation .order .items~.items { border-top: 1px solid #f5f5f5; } .pos-order-list .list .item .operation .bnt { font-size: 28upx; color: #5c5c5c; width: 160upx; height: 60upx; border-radius: 30upx; border: 1px solid #bbb; text-align: center; line-height: 60upx; } .pos-order-list .list .item .operation .bnt_color { border: none; color: #fff; background: linear-gradient(90deg, #2291F8 0%, #1CD1DC 100%); } .pos-order-list .list .item .operation .bnt~.bnt { margin-left: 14upx; } .pos-order-goods { padding: 0 30upx; background-color: #fff; } .pos-order-goods .goods { padding-top: 20rpx; overflow: hidden; } .pos-order-goods .goods~.goods { border-top: 1px dashed #e5e5e5; } .pos-order-goods .cancellate { font-size: 24rpx; float: right; margin-top: 10rpx; text { margin-left: 26rpx; } } .pos-order-goods .cancelled { color: #FF9600; } .pos-order-goods .goods .uncancell { color: #999999; } .pos-order-goods .goods .picTxt { width: 515upx; } .pos-order-goods .goods .picTxt .pictrue { width: 130upx; height: 130upx; } .pos-order-goods .goods .picTxt .pictrue image { width: 100%; height: 100%; border-radius: 6upx; } .pos-order-goods .goods .picTxt .text { flex-direction: column; width: 365upx; } .pos-order-goods .goods .picTxt .text .info { font-size: 28upx; color: #282828; &.refund-info { width: 460upx; } } .refund-y-money { margin-top: 16rpx; font-size: 26rpx; } .pos-order-goods .goods .picTxt .text .attr { margin-top: 5rpx; font-size: 24upx; color: #999; } .pos-order-goods .goods .money { width: 164upx; text-align: right; font-size: 28upx; &.refund-money { width: auto; position: relative; top: -50rpx; .num { color: #999999; } } .refund-num { font-size: 24rpx; color: #282828; } } .pos-order-goods .goods .money .x-money { color: #282828; } .pos-order-goods .goods .money .num { color: #ff9600; margin: 5upx 0; } .pos-order-goods .goods .money .y-money { color: #999; text-decoration: line-through; } .pos-order-goods .goods .refund_num { display: inline-block; margin-left: 10rpx; } .public-total { font-size: 28upx; color: #282828; height: 92upx; line-height: 92upx; text-align: right; padding: 0 30upx; background-color: #fff; } .public-total .money { color: #ff4c3c; } .nothing { margin-top: 200rpx; text-align: center; } .nothing_text { margin-top: 20rpx; color: #999999; } .priceChange { position: fixed; width: 580upx; background-color: #fff; border-radius: 10upx; top: 50%; left: 50%; margin-left: -290upx; margin-top: -335upx; z-index: 666; transition: all 0.3s ease-in-out 0s; transform: scale(0); opacity: 0; } .priceChange.on { opacity: 1; transform: scale(1); } .priceChange .priceTitle { background: url("~@/static/images/pricetitle.jpg") no-repeat; background-size: 100% 100%; width: 100%; height: 160upx; border-radius: 10upx 10upx 0 0; text-align: center; font-size: 40upx; color: #fff; line-height: 160upx; position: relative; } .priceChange .priceTitle .iconfont { position: absolute; font-size: 40upx; right: 26upx; top: 23upx; width: 40upx; height: 40upx; line-height: 40upx; } .priceChange .listChange { padding: 0 40upx; } .priceChange .listChange textarea { box-sizing: border-box; } .priceChange .listChange .item { height: 103upx; border-bottom: 1px solid #e3e3e3; font-size: 32upx; color: #333; } .priceChange .modify { font-size: 32upx; color: #fff; width: 490upx; height: 90upx; text-align: center; line-height: 90upx; border-radius: 45upx; background-color: #2291f8; margin: 53upx auto; } .priceChange .listChange textarea { border: 1px solid #eee; width: 100%; height: 200upx; margin-top: 50upx; border-radius: 10upx; color: #333; padding: 20upx; } .search { padding: 17rpx 30rpx; .search-content { width: 100%; height: 60rpx; padding: 0 30rpx; border-radius: 30rpx; background-color: #F5F5F5; font-size: 26rpx; } .iconfont { margin-right: 10rpx; font-size: 26rpx; color: #999999; } .input-placeholder { font-size: 26rpx; color: #999999; } .input { flex: 1; } } .bar-code { position: fixed; top: 0; left: 0; z-index: 999999; width: 100vw; height: 100vh; background-color: rgba(0, 0, 0, 0.2); display: flex; align-items: center; justify-content: center; } .cloud-tag { font-size: 20rpx; padding: 2rpx 5rpx; font-weight: 400; background-color: #ff4c3c; border-radius: 8rpx; margin-right: 6rpx; color: #fff; } </style>