Browse Source

add order api

account
刘嘉炜 4 years ago
parent
commit
1e1bea179e
  1. 2
      src/components/order_list/competition/competition.vue
  2. 4
      src/subpackage/order/components/header/header.vue
  3. 10
      src/subpackage/order/components/p_line/p_line.vue
  4. 2
      src/subpackage/order/js/api.js
  5. 52
      src/subpackage/order/pages/events/detail/detail.vue
  6. 69
      src/subpackage/order/pages/events/member_info/member_info.vue
  7. 53
      src/subpackage/order/pages/events/member_list/member_list.vue
  8. 2
      src/subpackage/order/pages/order_manage/order_manage.vue
  9. BIN
      src/subpackage/order/static/images/arrow.png

2
src/components/order_list/competition/competition.vue

@ -10,7 +10,7 @@
<a-line :value="orderInfo.match_name || '-'">
<block slot="name">赛事主题</block>
</a-line>
<a-line :value="orderInfo.match_type == 'personal' ? '个人' : orderInfo.match_type == 'team' ? '' : '团队' ">
<a-line :value="orderInfo.match_type == 'personal' ? '个人' : orderInfo.match_type == 'team' ? '团队' : '' ">
<block slot="name">赛事类型</block>
</a-line>
<a-line :value="orderInfo.match_info.match_addr || '-'">

4
src/subpackage/order/components/header/header.vue

@ -1,7 +1,7 @@
<template>
<view class="header-container">
<view class="hc-stadium">
<image class="hs-img" mode="aspectFit" :src="logo"></image>
<image v-if="logo" class="hs-img" mode="aspectFit" :src="logo"></image>
<view class="hs-txt">{{ source || '-' }}</view>
</view>
<view class="hc-user">
@ -20,7 +20,7 @@
export default {
props: {
logo: {
default: '-',
default: '',
},
source: {
default: '-',

10
src/subpackage/order/components/p_line/p_line.vue

@ -2,7 +2,7 @@
<view class="p-line">
<view class="pl-key">{{ keyname || '-' }}</view>
<view class="pl-value">{{ value || '-' }}</view>
<view class="pl-btn" v-if="isbtn">复制</view>
<view class="pl-btn" v-if="isbtn" @click="copyBtn">复制</view>
</view>
</template>
@ -21,6 +21,14 @@ export default {
default: '-',
type: String
}
},
methods: {
copyBtn(){
let { value } = this;
uni.setClipboardData({
data: value
})
}
}
}
</script>

2
src/subpackage/order/js/api.js

@ -14,6 +14,8 @@ export const ORDER_API = {
lockEndBill:`${ORIGIN}/admin/stadium/locker/endBill`, // 储物柜-结束计费
currentUser:`${ORIGIN}/admin/assistant/currentUser`, // 获取当前用户信息
appointmentOrderInfo:`${ORIGIN}/admin/gameAppointment/orderInfo`, // 赛事订单详情
matchOrderSonList:`${ORIGIN}/gameAppointment/match/orderSonList`, // 赛事订单-参赛成员列表
matchGetOrderSon:`${ORIGIN}/gameAppointment/match/getOrderSon`, // 赛事订单_参赛成员详情
}
export default ORDER_API;

52
src/subpackage/order/pages/events/detail/detail.vue

@ -1,7 +1,7 @@
<template>
<view class="events-detail">
<o-header
:logo='orderInfo.extension.show_logo || "-"'
:logo='orderInfo.extension.show_logo || ""'
:source='orderInfo.extension.show_name || "-"'
:phone='orderInfo.user_info.mobile || "-"'
:name='orderInfo.user_info.nickname || "-"'
@ -9,7 +9,7 @@
></o-header>
<!-- 个人 -->
<block v-if="orderInfo&&orderInfo.match_type == 'personal'">
<view class="ed-type-box">
<view class="ed-type-box" v-if="orderInfo.safe_id_card || orderInfo.safe_name">
<view class="ed-tit">保险信息</view>
<a-line :value="orderInfo.safe_name || '-'">
<block slot="name">姓名</block>
@ -20,16 +20,18 @@
</view>
<view class="ed-box" v-if="orderInfo.match_info.match_has_ext_msg&&orderInfo.match_ext_msg">
<view class="ed-tit">参赛资料</view>
<a-line :value="orderInfo.match_ext_msg.name || '-'">
<a-line v-if="orderInfo.match_ext_msg.name" :value="orderInfo.match_ext_msg.name || '-'">
<block slot="name">姓名</block>
</a-line>
<a-line :value="orderInfo.match_ext_msg.phone || '-'">
<a-line v-if="orderInfo.match_ext_msg.phone" :value="orderInfo.match_ext_msg.phone || '-'">
<block slot="name">手机号码</block>
</a-line>
<a-line :value="orderInfo.match_ext_msg.gender==0?'女': orderInfo.match_ext_msg.gender==1?'男': '-'">
<a-line
v-if="orderInfo.match_ext_msg.gender == 0 || orderInfo.match_ext_msg.gender == 1"
:value="orderInfo.match_ext_msg.gender==0?'女': orderInfo.match_ext_msg.gender==1?'男': '-'">
<block slot="name">性别</block>
</a-line>
<a-line :value="(orderInfo.match_ext_msg.weight || 0) + 'kg'">
<a-line v-if="orderInfo.match_ext_msg.weight" :value="(orderInfo.match_ext_msg.weight || 0) + 'kg'">
<block slot="name">体重</block>
</a-line>
<block v-if="orderInfo.match_ext_msg.cert_img&&orderInfo.match_ext_msg.cert_img.length">
@ -50,28 +52,30 @@
<!-- 团队 -->
<block v-if="orderInfo&&orderInfo.match_type == 'team'">
<view class="ed-type-box">
<view class="ed-type-box" v-if="orderInfo.match_ext_msg">
<view class="ed-tit">团队负责人信息</view>
<a-line :value="'阿拉斯加山脉'">
<a-line :value="orderInfo.match_ext_msg.name || '-'">
<block slot="name">姓名</block>
</a-line>
<a-line :value="'15440953165'">
<a-line :value="orderInfo.match_ext_msg.phone || '-'">
<block slot="name">手机号码</block>
</a-line>
</view>
<view class="ed-box">
<view class="ed-tit">赛事信息</view>
<s-line :keyname="'参赛成员'" :value="'已选参赛人员:6人'"></s-line>
<a-line :value="'白云冲锋队'">
<s-line :keyname="'参赛成员'" :value="'已选参赛人员:' + (orderInfo.member_total || 0) + '人'"></s-line>
<a-line :value="(orderInfo.team_info&&orderInfo.team_info.team_name) || '-'">
<block slot="name">团队名称</block>
</a-line>
<a-line :value="'待确认'" value-color="#ea5061">
<a-line
:value="orderInfo.team_member_confirm_status == 'yes' ? '已确认' : '待确认'"
:value-color="orderInfo.team_member_confirm_status == 'yes' ? '#009874;' : '#EA5061;'">
<block slot="name">参赛成员确认状态</block>
</a-line>
<view class="eb-btn">查看参赛成员</view>
<view class="eb-btn" @click="toParticipants">查看参赛成员</view>
</view>
</block>
<view class="ed-box">
<view class="ed-box" v-if="orderInfo.match_info">
<view class="ed-tit">赛事信息</view>
<a-line :value="orderInfo.match_info.match_name || '-'">
<block slot="name">赛事名称</block>
@ -82,10 +86,10 @@
<a-line :value="orderInfo.match_info.match_addr || '-'">
<block slot="name">赛事地址</block>
</a-line>
<a-line :value="orderInfo.match_info.match_star_time + '~' + orderInfo.match_info.match_end_time">
<a-line :value="(orderInfo.match_info.match_star_time || '') + '~' + (orderInfo.match_info.match_end_time || '')">
<block slot="name">活动时间</block>
</a-line>
<a-line :value="orderInfo.match_info.match_fee + '/人'">
<a-line :value="(orderInfo.match_info.match_fee || 0) + '/人'">
<block slot="name">活动费用</block>
</a-line>
</view>
@ -148,6 +152,16 @@ export default {
this.getInfo(options.order_id)
},
methods: {
toParticipants(){
let { orderInfo } = this;
let _query = {
order_no: orderInfo.order_no,
brand_id: orderInfo.brand_id,
confirm_status: orderInfo.team_member_confirm_status,
team_name: (orderInfo.team_info&&orderInfo.team_info.team_name) || '-',
}
util.routeTo(`/subpackage/order/pages/events/member_list/member_list?query=${util.jsonStr(_query)}`, 'nT');
},
//
payTypeTxt: util.order_pay_type_txt,
previewImg(e){
@ -185,9 +199,13 @@ export default {
<style lang="scss">
@import '~style/public.scss';
.events-detail{
padding-bottom: calc( 0upx + constant(safe-area-inset-bottom)); /* 兼容 iOS < 11.2 */
padding-bottom: calc( 0upx + env(safe-area-inset-bottom)); /* 兼容 iOS >= 11.2 */
}
.ed-box{
margin-bottom: 24upx;
padding: 30upx;
margin-bottom: 24upx;
background-color: #fff;
}
.ed-tit{

69
src/subpackage/order/pages/events/member_info/member_info.vue

@ -1,37 +1,36 @@
<template>
<view class="menber-info">
<view class="mi-name ed-box">成员姓名周校学</view>
<view class="mi-name ed-box">成员姓名{{ merberInfo.actual_name || '-' }}</view>
<view class="ed-type-box">
<view class="ed-tit">保险信息</view>
<a-line :value="'阿拉斯加山脉'">
<a-line :value="merberInfo.safe_name || '-'">
<block slot="name">姓名</block>
</a-line>
<a-line :value="'4409531656666'">
<a-line :value="merberInfo.safe_id_card || '-'">
<block slot="name">身份证号码</block>
</a-line>
</view>
<view class="ed-box">
<view class="ed-box" v-if="merberInfo.match_ext_msg">
<view class="ed-tit">参赛资料</view>
<a-line :value="'阿拉斯加山脉'">
<a-line v-if="extInfo.name" :value="extInfo.name || '-'">
<block slot="name">姓名</block>
</a-line>
<a-line :value="'18316535485'">
<a-line v-if="extInfo.phone" :value="extInfo.phone || '-'">
<block slot="name">手机号码</block>
</a-line>
<a-line :value="'男'">
<a-line v-if="extInfo.gender == 0 || extInfo.gender == 1" :value="extInfo.gender == 1?'男':extInfo.gender == 0?'女':''">
<block slot="name">性别</block>
</a-line>
<a-line :value="'60kg'">
<a-line v-if="extInfo.weight" :value="(extInfo.weight || 0) + 'kg'">
<block slot="name">体重</block>
</a-line>
<view class="ed-tit">资质证书</view>
<view class="ed-img-list">
<image></image>
<image></image>
<image></image>
<image></image>
<image></image>
</view>
<block v-if="extInfo.cert_img&&extInfo.cert_img.length">
<view class="ed-tit">资质证书</view>
<view class="ed-img-list">
<image v-for="(e, i) in extInfo.cert_img" :key="i" mode="aspectFill" :src="e" @click="prviewBtn(e)"></image>
</view>
</block>
</view>
</view>
</template>
@ -51,6 +50,42 @@ export default {
's-line': s_line,
'p-line': p_line,
},
computed: {
extInfo(){
let { merberInfo } = this;
if(merberInfo&&merberInfo.match_ext_msg&&''+merberInfo.match_ext_msg == "[object Object]"){
return merberInfo.match_ext_msg
}
return {};
}
},
data(){
return {
merberInfo: {}
}
},
onLoad(options){
this.getInfo({ id: options.id, brand_id: options.brand_id })
},
methods:{
prviewBtn(e){
uni.previewImage({
urls: [e]
})
},
getInfo({ id = '', brand_id = '' }){
util.showLoad();
server.get({
url: ORDER_API.matchGetOrderSon,
data: { id, brand_id },
failMsg: '加载失败!'
})
.then(res=>{
util.hideLoad();
this.merberInfo = res || {};
})
},
}
}
</script>
@ -87,7 +122,7 @@ export default {
margin-bottom: 30upx;
width: 180upx;
height: 180upx;
background-color: skyblue;
border-radius: 10upx;
}
}
</style>

53
src/subpackage/order/pages/events/member_list/member_list.vue

@ -1,16 +1,19 @@
<template>
<view class="member-list">
<view class="ml-header">
<view class="mh-tit">团队名称白云冲锋队</view>
<a-line :value="'待确认'" value-color="#ea5061">
<view class="mh-tit">团队名称{{ optionsQuery.team_name || '-' }}</view>
<a-line :value="optionsQuery.confirm_status == 'yes' ? '已确认' : '待确认'" :value-color="optionsQuery.confirm_status == 'no'?'#EA5061':'#009874'">
<block slot="name">参赛成员确认状态</block>
</a-line>
</view>
<view class="ml-bar"><text>参赛成员</text> <text>已选</text>6</view>
<view class="ml-bar"><text>参赛成员</text></view>
<view class="ml-list">
<view class="ml-item" v-for="i in 10" :key="i">
<view class="mi-name">成员1林花花</view>
<view><text>已完善</text><image></image></view>
<view class="ml-item" v-for="(e, i) in sonList" :key="i" @click="toInfo(e)">
<view class="mi-name">成员{{ i + 1 }}{{ e.actual_name || '-' }}</view>
<view>
<text :style="!e.is_submit_msg?'color: #EA5061;':''">{{ e.is_submit_msg ? '已完善' : '待完善' }}</text>
<image mode="aspectFit" src="/subpackage/order/static/images/arrow.png"></image>
</view>
</view>
</view>
</view>
@ -18,10 +21,47 @@
<script>
import a_line from '../../../../../components/order_list/a_line/a_line.vue';
import util from '../../../../../utils/util';
import { ORDER_API } from '../../../js/api';
import server from '../../../js/server';
export default {
components: {
'a-line': a_line,
},
data(){
return {
sonList: [],
optionsQuery: {}
}
},
onLoad(options){
let _query = util.jsonPar(options.query);
this.optionsQuery = _query || {};
console.warn(_query)
this.getList({
order_no: _query.order_no,
brand_id: _query.brand_id,
})
},
methods: {
toInfo(e){
if(e.is_submit_msg)return util.routeTo(`/subpackage/order/pages/events/member_info/member_info?id=${e.id}&brand_id=${e.brand_id}`, 'nT')
util.showNone('未完善!');
},
getList({ order_no = '', brand_id = '' }){
util.showLoad();
server.get({
url: ORDER_API.matchOrderSonList,
data: { order_no, brand_id },
failMsg: '加载失败!'
})
.then(res=>{
util.hideLoad();
let _list = res.list || [];
this.sonList = _list;
})
},
}
}
</script>
@ -86,7 +126,6 @@ export default {
vertical-align: middle;
width: 24upx;
height: 24upx;
background-color: skyblue;
}
}
}

2
src/subpackage/order/pages/order_manage/order_manage.vue

@ -38,7 +38,7 @@ export default {
util.routeTo(getTabRoutePath() + `?order_type=${ele.orderType}`,'nT');
},
isFinish(key){
let _endKeyArr = [1, 2, 3, 4, 5, 7, 9, 10, 11, 14, 16, 15, 13, 6 ]
let _endKeyArr = [ 1, 2, 3, 4, 5, 7, 9, 10, 14, 16, 15, 13, 6 ];
return _endKeyArr.includes(key);
}
}

BIN
src/subpackage/order/static/images/arrow.png

After

Width: 64  |  Height: 64  |  Size: 475 B

Loading…
Cancel
Save