| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295 |
- <template>
- <base-page>
- <view class="goodslist">
- <view class="goodslist-box">
- <view class="goodslist-left">
- <view class="goods-title">
- 退款维权
- <text class="iconfont icongengduo1"></text>
- </view>
- <view class="goods-search">
- <view class="search">
- <text class="iconfont icon31sousuo"></text>
- <input type="text" v-model="search_text" @input="search" placeholder="搜索订单号/商品名称" />
- </view>
- </view>
- <block v-if="!one_judge && order_list.length > 0">
- <scroll-view scroll-y="true" class="goods-list-scroll" :show-scrollbar="false" @scrolltolower="getOrderList">
- <view
- class="item"
- @click="getOrderDetail(item.order_goods_id, index)"
- v-for="(item, index) in order_list"
- :key="index"
- :class="index == selectGoodsKeys ? 'itemhover' : ''"
- >
- <view class="title">
- <view>退款编号:{{ item.order_no }}</view>
- <view>{{ item.order_type_name }}</view>
- </view>
- <view class="total-money-num">
- <view class="box">
- <view>订单金额</view>
- <view>¥{{ item.real_goods_money }}</view>
- </view>
- <view class="box">
- <view>退款金额</view>
- <view>¥{{ item.refund_apply_money }}</view>
- </view>
- </view>
- <view class="total-money-num">
- <view class="member-info">
- <view>退款状态:</view>
- <view>{{ item.refund_status_name }}({{ item.refund_type == 1 ? '仅退款' : '退款退货' }})</view>
- </view>
- </view>
- </view>
- </scroll-view>
- </block>
- <view class="notYet" v-else-if="!one_judge && order_list.length == 0">暂无数据</view>
- </view>
- <view class="goodslist-right">
- <view class="goods-title">订单详情</view>
- <view class="order-information tab-wrap" v-if="Object.keys(order_detail).length">
- <view class="tab-head">
- <text v-for="(item, index) in tabObj.list" :key="index" :class="{ active: tabObj.index == item.value }" @click="tabObj.index = item.value">
- {{ item.name }}
- </text>
- </view>
- <view class="tab-content">
- <view class="other-information" v-if="tabObj.index == 1">
- <view class="item-box">
- <view class="item">
- <view>买家:</view>
- <view v-if="order_detail.nickname">{{ order_detail.nickname }}</view>
- <view v-else>散客</view>
- </view>
- <view class="item">
- <view>退款编号:</view>
- <view>{{ order_detail.refund_no }}</view>
- </view>
- <view class="item">
- <view>申请时间:</view>
- <view>{{ $util.timeFormat(order_detail.refund_action_time) }}</view>
- </view>
- <view class="item">
- <view>维权类型:</view>
- <view>{{ order_detail.refund_mode > 1 ? '售后' : '退款' }}</view>
- </view>
- <view class="item">
- <view>退款方式:</view>
- <view>
- {{ order_detail.shop_active_refund == 1 ? '主动退款' : order_detail.refund_type == 1 ? '仅退款' : '退货退款' }} ({{
- (order_detail.refund_type == 1 && '原路退款') || (order_detail.refund_type == 2 && '线下退款') || '退款到余额'
- }})
- </view>
- </view>
- <view class="item">
- <view>退款金额:</view>
- <view>¥{{ order_detail.refund_status == 3 ? order_detail.refund_real_money : order_detail.refund_apply_money }}</view>
- </view>
- <view class="item">
- <view>退款原因:</view>
- <view>{{ order_detail.refund_reason || '--' }}</view>
- </view>
- <view class="item">
- <view>退款说明:</view>
- <view>{{ order_detail.refund_remark || '--' }}</view>
- </view>
- <view class="item">
- <view>商家退款说明:</view>
- <view>{{ order_detail.shop_refund_remark || '--' }}</view>
- </view>
- <view class="item">
- <view>退款状态:</view>
- <view>{{ order_detail.refund_status_name }}</view>
- </view>
- </view>
- </view>
- <view class="goods-info" v-if="tabObj.index == 2">
- <view class="table">
- <view class="table-th table-all">
- <view class="table-td" style="width:45%">商品(元)</view>
- <view class="table-td" style="width:15%">价格</view>
- <view class="table-td" style="width:10%">数量</view>
- <view class="table-td" style="width:15%;">小计(元)</view>
- <view class="table-td" style="width:15%;justify-content: flex-end;">状态</view>
- </view>
- <view class="table-tr table-all">
- <view class="table-td" style="width:45%">{{ order_detail.sku_name }}</view>
- <view class="table-td" style="width:15%">{{ order_detail.price }}</view>
- <view class="table-td" style="width:10%">{{ order_detail.num }}</view>
- <view class="table-td" style="width:15%">{{ order_detail.goods_money }}</view>
- <view class="table-td uni-column" style="width:15%;align-items: flex-end;">{{ order_detail.refund_status_name }}</view>
- </view>
- </view>
- </view>
- <view class="other-information journal" v-if="tabObj.index == 3"><nsjournal :list="order_detail.refund_log_list"></nsjournal></view>
- </view>
- </view>
- <block v-else><image class="cart-empty" :src="$util.img('public/uniapp/cashier/cart_empty.png')" mode="widthFix"></image></block>
- </view>
- </view>
- </view>
- </base-page>
- </template>
- <script>
- import nsjournal from '@/components/ns-journal/ns-journal.vue';
- export default {
- components: {
- nsjournal
- },
- data() {
- return {
- selectGoodsKeys: 0,
- //获取订单的页数
- page: 1,
- //每次获取订单的条数
- page_size: 8,
- // 订单搜索是用到的数据
- search_text: '',
- //初始时加载详情数据判断
- one_judge: true,
- // 订单列表数据
- order_list: [],
- //订单详情数据
- order_detail: {},
- tabObj: {
- list: [
- {
- value: 1,
- name: '基础信息'
- },
- {
- value: 2,
- name: '商品信息'
- },
- {
- value: 3,
- name: '订单日志'
- }
- ],
- index: 1
- }
- };
- },
- onLoad(option) {
- this.getOrderList();
- },
- methods: {
- // 搜索
- search() {
- this.page = 1;
- this.order_list = [];
- this.one_judge = true;
- this.getOrderList();
- },
- /**
- * 获取订单列表
- */
- getOrderList() {
- this.$api.sendRequest({
- url: '/cashier/storeapi/cashierorderrefund/lists',
- data: {
- page: this.page,
- page_size: this.page_size,
- search: this.search_text
- },
- success: res => {
- if (res.data.list.length == 0) {
- this.order_detail = {};
- this.one_judge = false;
- }
- if (res.code >= 0) {
- this.page += 1;
- if (this.order_list.length == 0) {
- this.order_list = res.data.list;
- } else {
- this.order_list = this.order_list.concat(res.data.list);
- }
- //初始时加载一遍详情数据
- if (this.one_judge) {
- this.getOrderDetail(this.order_list[0].order_goods_id);
- }
- }
- }
- });
- },
- /**
- * 获取订单详情数据
- */
- getOrderDetail(order_goods_id, keys = 0, callback) {
- this.selectGoodsKeys = keys;
- this.$api.sendRequest({
- url: '/cashier/storeapi/cashierorderrefund/detail',
- data: {
- order_goods_id
- },
- success: res => {
- if (res.code >= 0) {
- this.order_detail = res.data;
- if (typeof callback == 'function') {
- callback();
- }
- this.$forceUpdate();
- this.one_judge = false;
- }
- }
- });
- }
- }
- };
- </script>
- <style scoped lang="scss">
- @import './public/css/orderlist.scss';
- .total-money-num .box {
- margin-top: 0;
- }
- .goodslist {
- .goodslist-right {
- .other-information {
- .title {
- margin-bottom: 0.1rem !important;
- }
- .item-box {
- margin-bottom: 0.15rem;
- .item {
- &:nth-child(1),
- &:nth-child(2) {
- margin-top: 0 !important;
- }
- view:nth-child(1) {
- width: 1rem !important;
- }
- }
- }
- }
- }
- }
- .tab-wrap {
- padding: 0 !important;
- background-color: #fff !important;
- .tab-head {
- display: flex;
- background-color: #f8f8f8;
- text {
- width: 1.15rem;
- height: 0.55rem;
- line-height: 0.55rem;
- text-align: center;
- font-size: $uni-font-size-lg;
- &.active {
- background-color: #fff;
- }
- }
- }
- }
- .item-box {
- padding: 0.1rem;
- }
- </style>
|