fanfan 9 months ago
commit 48950b4051
  1. 2
      src/components/Table/UserItem/UserItem.vue
  2. 38
      src/views/order/Index.vue
  3. 15
      src/views/order/modules/CancelForm.vue
  4. 46
      src/views/user/Index.vue

@ -8,7 +8,7 @@
:src="user.avatar_url || user.avatar.preview_url" :src="user.avatar_url || user.avatar.preview_url"
alt="会员头像" alt="会员头像"
/> />
<img v-else src="~@/assets/img/default-avatar.png" alt="会员头像" /> <!-- <img v-else src="~@/assets/img/default-avatar.png" alt="会员头像" /> -->
</a-tooltip> </a-tooltip>
</div> </div>
<div class="in-right flex flex-dir-column flex-x-center"> <div class="in-right flex flex-dir-column flex-x-center">

@ -248,7 +248,7 @@ import {
OrderSourceEnum, OrderSourceEnum,
OrderStatusEnum, OrderStatusEnum,
PayStatusEnum, PayStatusEnum,
ReceiptStatusEnum, ReceiptStatusEnum
} from '@/common/enum/order' } from '@/common/enum/order'
import { PaymentMethodEnum } from '@/common/enum/payment' import { PaymentMethodEnum } from '@/common/enum/payment'
import { DeliveryForm, ExtractForm, CancelForm } from './modules' import { DeliveryForm, ExtractForm, CancelForm } from './modules'
@ -259,45 +259,45 @@ const columns = [
title: '商品信息', title: '商品信息',
align: 'center', align: 'center',
dataIndex: 'goods', dataIndex: 'goods',
scopedSlots: { customRender: 'goods' }, scopedSlots: { customRender: 'goods' }
}, },
{ {
title: '单价/数量', title: '单价/数量',
align: 'center', align: 'center',
scopedSlots: { customRender: 'unit_price' }, scopedSlots: { customRender: 'unit_price' }
}, },
{ {
title: '实付款', title: '实付款',
align: 'center', align: 'center',
dataIndex: 'pay_price', dataIndex: 'pay_price',
scopedSlots: { customRender: 'pay_price' }, scopedSlots: { customRender: 'pay_price' }
}, },
{ {
title: '买家', title: '买家',
dataIndex: 'user', dataIndex: 'user',
scopedSlots: { customRender: 'user' }, scopedSlots: { customRender: 'user' }
}, },
{ {
title: '支付方式', title: '支付方式',
dataIndex: 'pay_method', dataIndex: 'pay_method',
scopedSlots: { customRender: 'pay_method' }, scopedSlots: { customRender: 'pay_method' }
}, },
{ {
title: '配送方式', title: '配送方式',
dataIndex: 'delivery_type', dataIndex: 'delivery_type',
scopedSlots: { customRender: 'delivery_type' }, scopedSlots: { customRender: 'delivery_type' }
}, },
{ {
title: '交易状态', title: '交易状态',
dataIndex: 'status', dataIndex: 'status',
scopedSlots: { customRender: 'status' }, scopedSlots: { customRender: 'status' }
}, },
{ {
title: '操作', title: '操作',
dataIndex: 'action', dataIndex: 'action',
width: '180px', width: '180px',
scopedSlots: { customRender: 'action' }, scopedSlots: { customRender: 'action' }
}, }
] ]
// //
@ -306,7 +306,7 @@ const SearchTypeEnum = [
{ name: '会员昵称', value: 20 }, { name: '会员昵称', value: 20 },
{ name: '会员ID', value: 30 }, { name: '会员ID', value: 30 },
{ name: '收货人姓名', value: 40 }, { name: '收货人姓名', value: 40 },
{ name: '收货人电话', value: 50 }, { name: '收货人电话', value: 50 }
] ]
export default { export default {
@ -317,7 +317,7 @@ export default {
UserItem, UserItem,
DeliveryForm, DeliveryForm,
ExtractForm, ExtractForm,
CancelForm, CancelForm
}, },
data () { data () {
return { return {
@ -340,7 +340,7 @@ export default {
pageSizeOptions: ['15', '30', '50', '100', '200', '300', '400', '500'], pageSizeOptions: ['15', '30', '50', '100', '200', '300', '400', '500'],
showTotal: (total) => `${total} 条记录`, // showTotal: (total) => `${total} 条记录`, //
// //
shopList: [], shopList: []
} }
}, },
beforeCreate () { beforeCreate () {
@ -355,14 +355,14 @@ export default {
ReceiptStatusEnum, ReceiptStatusEnum,
PaymentMethodEnum, PaymentMethodEnum,
SearchTypeEnum, SearchTypeEnum,
simpleImage: Empty.PRESENTED_IMAGE_SIMPLE, simpleImage: Empty.PRESENTED_IMAGE_SIMPLE
}) })
}, },
watch: { watch: {
// //
$route () { $route () {
this.init() this.init()
}, }
}, },
created () { created () {
// //
@ -416,7 +416,7 @@ export default {
[OrderStatusEnum.NORMAL.value]: '', [OrderStatusEnum.NORMAL.value]: '',
[OrderStatusEnum.CANCELLED.value]: 'red', [OrderStatusEnum.CANCELLED.value]: 'red',
[OrderStatusEnum.APPLY_CANCEL.value]: 'red', [OrderStatusEnum.APPLY_CANCEL.value]: 'red',
[OrderStatusEnum.COMPLETED.value]: 'green', [OrderStatusEnum.COMPLETED.value]: 'green'
} }
return ColorEnum[orderStatus] return ColorEnum[orderStatus]
}, },
@ -470,7 +470,7 @@ export default {
app.handleRefresh() app.handleRefresh()
}) })
.finally((result) => modal.destroy()) .finally((result) => modal.destroy())
}, }
}) })
}, },
@ -487,8 +487,8 @@ export default {
// //
handleCancel (record) { handleCancel (record) {
this.$refs.CancelForm.show(record) this.$refs.CancelForm.show(record)
}, }
}, }
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>

@ -20,11 +20,14 @@
:wrapperCol="wrapperCol" :wrapperCol="wrapperCol"
extra="同意后将退回付款金额并关闭订单" extra="同意后将退回付款金额并关闭订单"
> >
<a-radio-group v-decorator="['status', { initialValue: 1, rules: [{ required: true }] }]"> <a-radio-group v-decorator="['status', { initialValue: 1, rules: [{ required: true }] }]" @change="handleStatus">
<a-radio :value="1">同意</a-radio> <a-radio :value="1">同意</a-radio>
<a-radio :value="0">拒绝</a-radio> <a-radio :value="0">拒绝</a-radio>
</a-radio-group> </a-radio-group>
</a-form-item> </a-form-item>
<a-form-item label="拒绝原因" :labelCol="labelCol" :wrapperCol="wrapperCol" v-if="refuse_show">
<a-textarea placeholder="拒绝原因" :rows="2" v-decorator="['remark', { initialValue: '', rules: [{ required: true,message: '拒绝原因不能为空' }] }]"/>
</a-form-item>
</a-form> </a-form>
</a-spin> </a-spin>
</a-modal> </a-modal>
@ -36,6 +39,7 @@ import * as Api from '@/api/order/event'
export default { export default {
data () { data () {
return { return {
refuse_show: false,
// //
title: '审核取消订单', title: '审核取消订单',
// //
@ -63,7 +67,14 @@ export default {
// //
this.record = record this.record = record
}, },
handleStatus (e) {
if (e.target.value === 0) {
this.form.setFieldsValue({ refuse_text: '' })
this.refuse_show = true
} else {
this.refuse_show = false
}
},
// //
handleSubmit (e) { handleSubmit (e) {
e.preventDefault() e.preventDefault()

@ -25,7 +25,12 @@
</a-form> </a-form>
</a-row> </a-row>
</div> </div>
<s-table ref="table" rowKey="user_id" :loading="isLoading" :columns="columns" :data="loadData" <s-table
ref="table"
rowKey="user_id"
:loading="isLoading"
:columns="columns"
:data="loadData"
:pagination="pagination"> :pagination="pagination">
<!-- 会员头像 --> <!-- 会员头像 -->
<span slot="avatar_url" slot-scope="text"> <span slot="avatar_url" slot-scope="text">
@ -62,6 +67,10 @@
<span slot="platform" class="platform" slot-scope="text"> <span slot="platform" class="platform" slot-scope="text">
<platform-icon :name="text" :showTips="true" :iconSize="17" /> <platform-icon :name="text" :showTips="true" :iconSize="17" />
</span> </span>
<!-- 邀请信息 -->
<span slot="invite_user" slot-scope="text">
<UserItem :user="text" />
</span>
<!-- 操作 --> <!-- 操作 -->
<span class="actions" slot="action" slot-scope="item"> <span class="actions" slot="action" slot-scope="item">
<a v-if="$module('market-recharge')" v-action:recharge @click="handleRecharge(item)" title="会员充值">充值</a> <a v-if="$module('market-recharge')" v-action:recharge @click="handleRecharge(item)" title="会员充值">充值</a>
@ -75,6 +84,7 @@
</template> </template>
<script> <script>
import { UserItem } from '@/components/Table'
import { filterModules } from '@/core/app' import { filterModules } from '@/core/app'
import * as Api from '@/api/user' import * as Api from '@/api/user'
import * as GradeApi from '@/api/user/grade' import * as GradeApi from '@/api/user/grade'
@ -86,20 +96,25 @@ import { GradeForm, RechargeForm } from './modules'
const columns = filterModules([ const columns = filterModules([
{ {
title: '会员ID', title: '会员ID',
dataIndex: 'user_id', dataIndex: 'user_id'
}, },
{ {
title: '会员头像', title: '会员头像',
dataIndex: 'avatar_url', dataIndex: 'avatar_url',
scopedSlots: { customRender: 'avatar_url' }, scopedSlots: { customRender: 'avatar_url' }
}, },
{ {
title: '昵称/手机号', title: '昵称/手机号',
scopedSlots: { customRender: 'main_info' }, scopedSlots: { customRender: 'main_info' }
},
{
title: '邀请人',
dataIndex: 'invite_user',
scopedSlots: { customRender: 'invite_user' }
}, },
{ {
title: '会员身份', title: '会员身份',
dataIndex: 'user_type_text', dataIndex: 'user_type_text'
}, },
/* { /* {
title: '会员等级', title: '会员等级',
@ -110,28 +125,28 @@ const columns = filterModules([
{ {
title: '余额/积分', title: '余额/积分',
dataIndex: 'balance', dataIndex: 'balance',
scopedSlots: { customRender: 'balance' }, scopedSlots: { customRender: 'balance' }
}, },
{ {
title: '实际消费金额', title: '实际消费金额',
dataIndex: 'expend_money', dataIndex: 'expend_money',
scopedSlots: { customRender: 'expend_money' }, scopedSlots: { customRender: 'expend_money' }
}, },
{ {
title: '注册来源', title: '注册来源',
dataIndex: 'platform', dataIndex: 'platform',
scopedSlots: { customRender: 'platform' }, scopedSlots: { customRender: 'platform' }
}, },
{ {
title: '注册时间', title: '注册时间',
dataIndex: 'create_time', dataIndex: 'create_time'
}, },
{ {
title: '操作', title: '操作',
// dataIndex: 'action', // dataIndex: 'action',
width: '180px', width: '180px',
scopedSlots: { customRender: 'action' }, scopedSlots: { customRender: 'action' }
}, }
]) ])
export default { export default {
@ -141,6 +156,7 @@ export default {
GradeForm, GradeForm,
RechargeForm, RechargeForm,
PlatformIcon, PlatformIcon,
UserItem
}, },
data () { data () {
return { return {
@ -157,7 +173,7 @@ export default {
return Api.list({ ...param, ...this.queryParam }).then((response) => response.data.list) return Api.list({ ...param, ...this.queryParam }).then((response) => response.data.list)
}, },
// //
gradeList: [], gradeList: []
} }
}, },
created () { created () {
@ -195,7 +211,7 @@ export default {
app.handleRefresh() app.handleRefresh()
}) })
.finally((result) => modal.destroy()) .finally((result) => modal.destroy())
}, }
}) })
}, },
@ -216,8 +232,8 @@ export default {
*/ */
handleRefresh (bool = false) { handleRefresh (bool = false) {
this.$refs.table.refresh(bool) this.$refs.table.refresh(bool)
}, }
}, }
} }
</script> </script>

Loading…
Cancel
Save