4.2维修预约

This commit is contained in:
DL
2024-01-13 18:36:44 +08:00
parent 78836e4d34
commit ef99e5d96a
35 changed files with 5023 additions and 237 deletions

View File

@@ -0,0 +1,77 @@
import request from "@/utils/request.js";
/**
* 获取门店列表
*
*/
export function getStoreList(params) {
return request.get('repair/merchant/search/list', params, {
noAuth: true
});
}
/**
* 获取热门城市 /api/front/hot/city/list/all
*/
export const getHotCityAPI = () => request.get('hot/city/list/all')
/**
* 轮播图 /api/front/carousel/list
*/
export const getCarouselAPI = () => request.get('carousel/list')
/**
* 获取当前时间 /api/front/date/get/time
*/
export const getTimeAPI = () => request.get('date/get/time')
/**
* 预约时间模块 /api/front/date/list
*/
export const getDateListAPI = (params) => request.get('date/list',params,{noAuth: true})
/**
* 获取我的汽车 /api/front/car/user/center/getMyCar
*/
export const getMyCarAPI = () => request.get('car/user/center/getMyCar',{noAuth: true})
/**
* 预约工单创建 /api/front/car/user/center/reservation/order/create
*/
export const reservationCreateAPI = (data) => request.post('car/user/center/reservation/order/create',data)
/*
* 实名详情更具id /api/front/certification/detail/now
*/
export const realNameDetaiNowlAPI = () => request.get(`certification/detail/now`)
/**
* 绑定车辆 /api/front/car/user/center/bind
*/
export const userBindAPI=(data)=>request.post('car/user/center/bind', data);
/**
* 用户实名添加 /api/front/certification/add
*/
export const certificationAPI=(data)=>request.post('certification/add', data);
/**
* 车辆型号分页列表 /api/front/car/model/list
*/
export const modelListAPI = (params) => request.get('car/model/list', params,{noAuth: true})
/**
* 用户信息 /api/front/user/info
*/
export const getMineInfoAPI = () => request.get('user/info')
/**
* 用户完整信息 /api/front/user/user/info
*/
export const getAllMineInfoAPI = () => request.get('user/user/info')
/**
* 更具车牌号查询车辆详情 /api/front/car/user/center/getInfo
*/
export const getCarInfoAPI=(params)=>request.get('car/user/center/getInfo', params,{noAuth: true})

1472
data/address_a.js Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -110,4 +110,15 @@ export const tabsList7 = [{
name: '已驳回',
value: 5,
type:'reject'
}]
export const tabsList8 = [{
name: '全部卡券',
value: 1
}, {
name: '限时优惠',
value: 2
}, {
name: '助力抢券',
value: 3
}]

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -35,7 +35,8 @@
"path": "pages/serve/index",
"style": {
// "navigationBarTitleText": "服务"
"navigationStyle": "custom"
"navigationStyle": "custom",
"enablePullDownRefresh" : false
}
}, {
"path": "pages/serve/message/message",
@@ -47,92 +48,136 @@
}, {
"path": "pages/serve/message/m_system",
"style": {
"navigationBarTitleText": "系统消息"
"navigationBarTitleText": "系统消息",
"enablePullDownRefresh" : false
}
}, {
"path": "pages/serve/message/m_sys_detail",
"style": {
"navigationBarTitleText": "系统消息系统消息系统消息"
"navigationBarTitleText": "系统消息系统消息系统消息",
"enablePullDownRefresh" : false
}
},{
"path": "pages/serve/message/m_order_mess",
"style": {
"navigationBarTitleText": "订单消息"
"navigationBarTitleText": "订单消息",
"enablePullDownRefresh" : false
}
},{
"path": "pages/serve/message/m_comment",
"style": {
// "navigationBarTitleText": "收到的评论",
"navigationStyle": "custom"
"navigationStyle": "custom",
"enablePullDownRefresh" : false
}
},{
"path": "pages/serve/message/m_getlike",
"style": {
"navigationBarTitleText": "赞"
"navigationBarTitleText": "赞",
"enablePullDownRefresh" : false
}
},{
"path": "pages/serve/message/m_unknow",
"style": {
"navigationBarTitleText": "陌生人消息"
"navigationBarTitleText": "陌生人消息",
"enablePullDownRefresh" : false
}
},{
"path": "pages/serve/message/m_dialog",
"style": {
"navigationBarTitleText": "BYD"
"navigationBarTitleText": "BYD",
"enablePullDownRefresh" : false
}
},
{
},{
"path": "pages/serve/repair/repair",
"style": {
"navigationBarTitleText": "维修"
"navigationBarTitleText": "维修",
"enablePullDownRefresh" : false
}
}, {
},{
"path": "pages/serve/repair/re_create/select_store",
"style": {
"navigationBarTitleText": "常规保养",
"enablePullDownRefresh" : false
}
},{
"path": "pages/serve/repair/re_create/select_city",
"style": {
"navigationBarTitleText": "搜索城市",
"enablePullDownRefresh" : false
}
},{
"path": "pages/serve/repair/re_create/reservation",
"style": {
"navigationBarTitleText": "维修预约",
"enablePullDownRefresh" : false
}
},{
"path": "pages/serve/repair/re_create/select_time",
"style": {
"navigationBarTitleText": "预约时间",
"enablePullDownRefresh" : false
}
},{
"path": "pages/serve/repair/re_create/result",
"style": {
"navigationBarTitleText": "维修预约",
"enablePullDownRefresh" : false
}
},{
"path": "pages/serve/repair/realname",
"style": {
"navigationBarTitleText": "完善资料"
"navigationBarTitleText": "完善资料",
"enablePullDownRefresh" : false
}
}, {
"path": "pages/serve/repair/real_result",
"style": {
"navigationBarTitleText": ""
"navigationBarTitleText": "",
"enablePullDownRefresh" : false
}
},{
"path": "pages/serve/repair/re_binding",
"style": {
"navigationBarTitleText": "绑定车辆"
"navigationBarTitleText": "绑定车辆",
"enablePullDownRefresh" : false
}
},{
"path": "pages/serve/repair/bind_result",
"style": {
"navigationBarTitleText": "绑定结果"
"navigationBarTitleText": "绑定结果",
"enablePullDownRefresh" : false
}
},{
"path": "pages/serve/coupons/coupons",
"style": {
"navigationBarTitleText": "卡券"
"navigationBarTitleText": "卡券",
"enablePullDownRefresh" : false
}
},{
"path": "pages/serve/coupons/cou_detail",
"style": {
// "navigationBarTitleText": "卡券详情"
"navigationStyle": "custom"
"navigationStyle": "custom",
"enablePullDownRefresh" : false
}
},{
"path": "pages/serve/coupons/cou_store",
"style": {
"navigationBarTitleText": "门店列表"
"navigationBarTitleText": "门店列表",
"enablePullDownRefresh" : false
}
},{
"path": "pages/serve/coupons/cou_order",
"style": {
"navigationBarTitleText": "确认订单"
"navigationBarTitleText": "确认订单",
"enablePullDownRefresh" : false
}
},{
"path": "pages/serve/coupons/payresult",
"style": {
"navigationBarTitleText": "支付结果"
"navigationBarTitleText": "支付结果",
"enablePullDownRefresh" : false
}
},

View File

@@ -5,20 +5,21 @@
<u-icon name="arrow-left" size="19"></u-icon>
</view>
<!-- #ifdef MP-WEIXIN -->
<view class="administration" slot="right" @click="navClearBtn">
<image class="clear_img" src="@/static/images/app/serve/coupons_xingxing.png" mode=""></image>
<image class="clear_img" src="@/static/images/app/serve/coupons_fenxiang.png" mode=""></image>
<view class="administration" slot="right">
<image @click="collectBtn" class="clear_img" :src="`${config.aliyunOssUrl}/static/images/app/serve/coupons_xingxing.png`" mode=""></image>
<image @click="shareBtn" class="clear_img" :src="`${config.aliyunOssUrl}/static/images/app/serve/coupons_fenxiang.png`" mode=""></image>
</view>
<!-- #endif -->
<!-- #ifdef APP -->
<view class="" slot="right">
<image class="clear_img" src="@/static/images/app/serve/m_clear.png" mode=""></image>
<image @click="collectBtn" class="clear_img" src="@/static/images/app/serve/coupons_xingxing.png" mode=""></image>
<image @click="shareBtn" class="clear_img" src="@/static/images/app/serve/coupons_fenxiang.png" mode=""></image>
</view>
<!-- #endif -->
</u-navbar>
<!-- 主图 -->
<view class="de_img">
<image src="@/static/images/app/serve/serve_kaquan.png" mode=""></image>
<image src="@/static/images/app/serve/repair_refund.png" mode=""></image>
</view>
<!-- 秒杀 -->
<!-- 选择性展示 -->
@@ -70,7 +71,7 @@
<view class="tit_down"> 福利大礼包限时抢购8种券大放送福利大礼包限时抢购8种券大放送福利大礼包限时抢购8种券大放送福利大礼包限时抢购8种券大放送 </view>
</view>
<!-- 规格 -->
<view class="de_specs">
<view class="de_specs" @click="openSpecs">
<view class="specs_l"> 规格 </view>
<view class="specs_r"> 请选择 <u-icon name="arrow-right" color="#999999" size="14"></u-icon> </view>
</view>
@@ -81,7 +82,7 @@
<view class="up_r"> 更多门店 <u-icon name="arrow-right" color="#999999" size="14"></u-icon> </view>
</view>
<view class="store_down">
<image class="down_l" src="@/static/images/app/serve/coupons_img.png" mode=""></image>
<image class="down_l" src="@/static/images/app/serve/repair_refund.png" mode=""></image>
<view class="down_r">
<view class="r_up"> 星桔EV(祥园路店) </view>
<view class="r_down"> 2.5km | 杭州市余杭区莫干山路1665号 </view>
@@ -97,7 +98,7 @@
<view class="eva_xian"></view>
<view class="eva_info">
<view class="info_l">
<image class="info_l_img" src="@/static/images/app/serve/coupons_name.png" mode=""></image>
<image class="info_l_img" src="@/static/images/app/serve/repair_refund.png" mode=""></image>
<view class="info_l_con">
<view class="con_name"> 客户 </view>
<view class="con_star">
@@ -113,10 +114,10 @@
工作人员服务态度很好维修的很仔细休息室很干净维修的很仔细
</view>
<view class="content_img">
<image src="@/static/images/app/serve/coupons_img1.png" mode=""></image>
<image src="@/static/images/app/serve/coupons_img1.png" mode=""></image>
<image src="@/static/images/app/serve/coupons_img1.png" mode=""></image>
<image src="@/static/images/app/serve/coupons_img1.png" mode=""></image>
<image src="@/static/images/app/serve/repair_refund.png" mode=""></image>
<image src="@/static/images/app/serve/repair_refund.png" mode=""></image>
<image src="@/static/images/app/serve/repair_refund.png" mode=""></image>
<image src="@/static/images/app/serve/repair_refund.png" mode=""></image>
</view>
</view>
</view>
@@ -133,18 +134,44 @@
</view>
<!-- 富文本展示 -->
<view class="eva_eva">
<image src="@/static/images/app/serve/coupons_name.png" mode=""></image>
<image src="@/static/images/app/serve/repair_refund.png" mode=""></image>
</view>
<!-- 选择行展示 -->
<!-- <view class="eva_btn" @click="buyBtn"> 立即购买 </view> -->
<view class="eva_btn" @click="buyBtn"> 立即抢购 </view>
<!-- 选择规格 -->
<u-popup :show="showSpecs" mode="bottom" @close="closeSpecs" :closeable='true' :closeOnClickOverlay='false'>
<view class="specs_view">
<view class="specs_up">
<image src="@/static/images/app/serve/repair_refund.png" mode=""></image>
<view class="up_r">
<view class="up_r_up"> 福利大礼包限时抢购8种券 </view>
<view class="up_r_down">
<text class="down_txt_up"> </text>
<text class="down_txt_cen"> 49.99 </text>
<text class="down_txt_down"> 库存8 </text>
</view>
</view>
</view>
<view class="specs_down">
<view class="down_num"> 数量 </view>
<u-number-box :min="1" :max="999999" v-model="specsValue" @change="specsChange"></u-number-box>
</view>
<view class="specs_btn">选择</view>
</view>
</u-popup>
</view>
</template>
<script>
import config from '@/config';
export default {
data(){
return {
config,
showSpecs:false,
specsValue:1,
timeData: {},
value: 4
}
@@ -166,13 +193,98 @@
this.timeData = e
},
goBack(){
uni.navigateBack()
uni.navigateBack({
url:`/pages/serve/coupons/coupons`
})
},
// 收藏
collectBtn(){
console.log('收藏');
},
// 分享
shareBtn(){
console.log('分享');
},
// 规格弹层
openSpecs(){
this.showSpecs=true
},
specsChange(e){
console.log(e,'数量');
},
closeSpecs(){
this.showSpecs=false
}
}
}
</script>
<style lang="scss">
.specs_view {
// border: 1px solid red;
padding: 32rpx;
.specs_up {
display: flex;
align-items: center;
image {
width: 112rpx;
height: 112rpx;
}
.up_r {
margin-left: 24rpx;
.up_r_up {
font-size: 36rpx;
font-weight: 400;
color: #111111;
overflow: hidden;
text-overflow: ellipsis;
// white-space: nowrap;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.up_r_down {
margin-top: 16rpx;
.down_txt_up {
font-size: 32rpx;
font-family: Roboto, Roboto;
font-weight: 500;
color: #F20808;
}
.down_txt_cen {
font-size: 46rpx;
font-family: Roboto, Roboto;
font-weight: 500;
color: #F20808;
}
.down_txt_down {
font-size: 24rpx;
font-weight: 400;
color: #999999;
margin-left: 16rpx;
}
}
}
}
.specs_down {
margin-top: 32rpx;
.down_num {
font-size: 32rpx;
font-weight: 400;
color: #999999;
margin-bottom: 24rpx;
}
}
.specs_btn {
padding: 26rpx 0;
background: #13AFA8;
border-radius: 40rpx 40rpx 40rpx 40rpx;
opacity: 1;
text-align: center;
color: #FFFFFF;
margin-top: 32rpx;
}
}
.administration {
margin-right: 180rpx;
}

View File

@@ -3,7 +3,7 @@
<view class="or_upall">
<view class="or_info">
<view class="info_l">
<image class="l_img" src="@/static/images/app/serve/serve_kaquan.png" mode=""></image>
<image class="l_img" src="@/static/images/app/serve/repair_refund.png" mode=""></image>
<view class="l_txt">
<view class="txt_up"> 买车优惠券 </view>
<view class="txt_con">
@@ -29,7 +29,7 @@
</view>
</view>
<!-- 选择性展示 -->
<view class="or_coupon">
<view class="or_coupon" @click="useCouponsBtn">
<view class="coupon_l"> 使用优惠券 </view>
<view class="coupon_r">
<view class="r_bgc"> 2张可用 </view>
@@ -48,67 +48,66 @@
<view class="top-up-popup-allprice"> 合计49.99 </view>
<view class="top-up-popup-title">选择支付方式</view>
<view>
<view class="top-up-popup-type f-jcsb f-a-i">
<view class="top-up-popup-type f-jcsb f-a-i" @click="actTypeFn('ye')">
<view class="f-a-i">
<!-- #ifdef MP-WEIXIN -->
<!-- <image :src="`${config.aliyunOssUrl}/static/images/app/mine/ye.png`" mode=""></image> -->
<image src="@/static/images/app/serve/ye.png" mode=""></image>
<image :src="`${config.aliyunOssUrl}/static/images/app/serve/ye.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image src="@/static/images/app/serve/ye.png" mode=""></image>
<!-- #endif -->
<view class="top-up-popup-type-wx">余额支付</view>
</view>
<view class="f-a-i" @click="actTypeFn('ye')">
<view class="f-a-i">
<!-- #ifdef MP-WEIXIN -->
<image v-if="topUpType=='ye'" :src="`${config.aliyunOssUrl}/static/images/app/mine/act.png`" mode=""></image>
<image v-else :src="`${config.aliyunOssUrl}/static/images/app/mine/act_no.png`" mode=""></image>
<image v-if="topUpType=='ye'" :src="`${config.aliyunOssUrl}/static/images/app/serve/act.png`" mode=""></image>
<image v-else :src="`${config.aliyunOssUrl}/static/images/app/serve/act_no.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image v-if="topUpType=='ye'" src="@/static/images/app/mine/act.png" mode=""></image>
<image v-else src="@/static/images/app/mine/act_no.png" mode=""></image>
<image v-if="topUpType=='ye'" src="@/static/images/app/serve/act.png" mode=""></image>
<image v-else src="@/static/images/app/serve/act_no.png" mode=""></image>
<!-- #endif -->
</view>
</view>
<view class="top-up-popup-type f-jcsb f-a-i">
<view class="top-up-popup-type f-jcsb f-a-i" @click="actTypeFn('wx')">
<view class="f-a-i">
<!-- #ifdef MP-WEIXIN -->
<image :src="`${config.aliyunOssUrl}/static/images/app/mine/wx.png`" mode=""></image>
<image :src="`${config.aliyunOssUrl}/static/images/app/serve/wx.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image src="@/static/images/app/mine/wx.png" mode=""></image>
<image src="@/static/images/app/serve/wx.png" mode=""></image>
<!-- #endif -->
<view class="top-up-popup-type-wx">微信支付</view>
</view>
<view class="f-a-i" @click="actTypeFn('wx')">
<view class="f-a-i">
<!-- #ifdef MP-WEIXIN -->
<image v-if="topUpType=='wx'" :src="`${config.aliyunOssUrl}/static/images/app/mine/act.png`" mode=""></image>
<image v-else :src="`${config.aliyunOssUrl}/static/images/app/mine/act_no.png`" mode=""></image>
<image v-if="topUpType=='wx'" :src="`${config.aliyunOssUrl}/static/images/app/serve/act.png`" mode=""></image>
<image v-else :src="`${config.aliyunOssUrl}/static/images/app/serve/act_no.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image v-if="topUpType=='wx'" src="@/static/images/app/mine/act.png" mode=""></image>
<image v-else src="@/static/images/app/mine/act_no.png" mode=""></image>
<image v-if="topUpType=='wx'" src="@/static/images/app/serve/act.png" mode=""></image>
<image v-else src="@/static/images/app/serve/act_no.png" mode=""></image>
<!-- #endif -->
</view>
</view>
<view class="top-up-popup-type f-jcsb f-a-i">
<view class="top-up-popup-type f-jcsb f-a-i" @click="actTypeFn('zfb')">
<view class="f-a-i">
<!-- #ifdef MP-WEIXIN -->
<image :src="`${config.aliyunOssUrl}/static/images/app/mine/zfb.png`" mode=""></image>
<image :src="`${config.aliyunOssUrl}/static/images/app/serve/zfb.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image src="@/static/images/app/mine/zfb.png" mode=""></image>
<image src="@/static/images/app/serve/zfb.png" mode=""></image>
<!-- #endif -->
<view class="top-up-popup-type-zfb">支付宝</view>
</view>
<view class="f-a-i" @click="actTypeFn('zfb')">
<view class="f-a-i">
<!-- #ifdef MP-WEIXIN -->
<image v-if="topUpType=='zfb'" :src="`${config.aliyunOssUrl}/static/images/app/mine/act.png`" mode=""></image>
<image v-else :src="`${config.aliyunOssUrl}/static/images/app/mine/act_no.png`" mode=""></image>
<image v-if="topUpType=='zfb'" :src="`${config.aliyunOssUrl}/static/images/app/serve/act.png`" mode=""></image>
<image v-else :src="`${config.aliyunOssUrl}/static/images/app/serve/act_no.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image v-if="topUpType=='zfb'" src="@/static/images/app/mine/act.png" mode=""></image>
<image v-else src="@/static/images/app/mine/act_no.png" mode=""></image>
<image v-if="topUpType=='zfb'" src="@/static/images/app/serve/act.png" mode=""></image>
<image v-else src="@/static/images/app/serve/act_no.png" mode=""></image>
<!-- #endif -->
</view>
</view>
@@ -140,12 +139,11 @@
}
},
methods: {
payPopupBtn(){
this.topUpTypeShow = false
uni.navigateTo({
url:`/pages/serve/coupons/payresult`
})
// 使用优惠券
useCouponsBtn(){
console.log('使用优惠券');
},
// 去结算
payBtn(){
this.topUpTypeShow=true
},
@@ -153,6 +151,12 @@
this.topUpTypeShow = false
console.log('topUpTypeClose');
},
payPopupBtn(){
this.topUpTypeShow = false
uni.navigateTo({
url:`/pages/serve/coupons/payresult`
})
},
//充值类型
actTypeFn(type) {
this.topUpType = type

View File

@@ -24,10 +24,20 @@
</view>
<view class="down_r">
<view class="down_r_icon" @click.stop="callPhone(JSON.stringify(item.phone))">
<image src="@/static/images/app/serve/cou_store_phone.png" mode=""></image>
<!-- #ifdef MP-WEIXIN -->
<image :src="`${config.aliyunOssUrl}/static/images/app/serve/cou_store_phone.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image src="@/static/images/app/serve/cou_store_phone.png" mode=""></image>
<!-- #endif -->
</view>
<view class="down_r_icon">
<image src="@/static/images/app/serve/cou_store_up.png" mode=""></image>
<!-- #ifdef MP-WEIXIN -->
<image :src="`${config.aliyunOssUrl}/static/images/app/serve/cou_store_up.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image src="@/static/images/app/serve/cou_store_up.png" mode=""></image>
<!-- #endif -->
</view>
</view>
</view>
@@ -39,9 +49,11 @@
</template>
<script>
import config from '@/config';
export default {
data(){
return {
config,
dataList:[
{id:1,phone:18339106332,backImage:'https://cdn.uviewui.com/uview/album/1.jpg',name:'星桔EV(祥园路店)',distance:'2.5',addressDetail:'杭州市余杭区莫干山路1664号',starLevel:4.8},
{id:2,phone:18339106332,backImage:'https://cdn.uviewui.com/uview/album/1.jpg',name:'星桔EV(5路店)',distance:'3.5',addressDetail:'杭州市余杭区莫干山路1665号',starLevel:4},
@@ -60,13 +72,9 @@ export default {
display: flex;
padding: 32rpx 24rpx;
margin-bottom: 32rpx;
width: 702rpx;
background-color: #fff;
.footleft {
width: 168rpx;
height: 140rpx;
.footleft_img {
width: 168rpx;
height: 140rpx;

View File

@@ -6,57 +6,43 @@
<view class="l_txt">杭州</view>
<u-icon name="arrow-down-fill" color="#444444 " size="12"></u-icon>
</view>
<u-search placeholder="搜索" v-model="keyword" height="32" searchIconSize='24' :showAction='false' placeholderColor='#AAAAAA' searchIconColor='#999999'></u-search>
<u-search placeholder="搜索" v-model="keyword" height="32" searchIconSize='24' :showAction='false'
placeholderColor='#AAAAAA' searchIconColor='#999999'></u-search>
</view>
<!-- Tabs 标签 -->
<view class="tabs_view">
<u-tabs :list="tabsList" @click="clickTabs" :scrollable='false' lineWidth="40" lineColor="#111111"
<u-tabs :list="tabsList8" @click="clickTabs" :current='current' :scrollable='false' lineWidth="40" lineColor="#111111"
:activeStyle="{color: '#111111',fontWeight: 'bold',transform: 'scale(1.05)'}"
:inactiveStyle="{color: '#666666',transform: 'scale(1)'}"></u-tabs>
</view>
<!-- 内容 -->
<view class="coupons_con">
<view class="con_view" v-for="(item,index) in 9 " :key="index" @click="toDetailPages">
<image class="view_img" src="@/static/images/app/serve/serve_kaquan.png" mode=""></image>
<image class="view_img" src="@/static/images/app/serve/repair_refund.png" mode=""></image>
<view class="view_txt"> 标题最多显示两行卡券名称 2*1L中负荷车辆齿轮油齿轮油 </view>
<view class="view_price">198.00</view>
</view>
<!-- <view class="con_view">
<image class="view_img" src="@/static/images/app/serve/serve_kaquan.png" mode=""></image>
<view class="view_txt"> 商品名称最多两行 </view>
<view class="view_price">298.00 </view>
</view>
<view class="con_view">
<image class="view_img" src="@/static/images/app/serve/serve_kaquan.png" mode=""></image>
<view class="view_txt"> 商品标题最多显示两行商品标题最多显示两行最多显示两行 </view>
<view class="view_price">298.00 </view>
</view>
<view class="con_view">
<image class="view_img" src="@/static/images/app/serve/serve_kaquan.png" mode=""></image>
<view class="view_txt"> 商品名称最多两行 </view>
<view class="view_price">298.00 </view>
</view>
<view class="con_view">
<image class="view_img" src="@/static/images/app/serve/serve_kaquan.png" mode=""></image>
<view class="view_txt"> 商品名称最多两行 </view>
<view class="view_price">298.00 </view>
</view> -->
</view>
</view>
</template>
<script>
import { tabsList8 } from "@/data/tabsData.js"
export default {
data(){
return {
tabsList:[
{ name: '全部卡券'},
{ name: '限时优惠'},
{ name: '助力抢券'},
]
tabsList8,
num:null,
current:0,
}
},
onLoad(query) {
console.log(query,'query---来自服务首页');
this.current=query.num
},
methods:{
// 详情页
toDetailPages(){
uni.navigateTo({
url:`/pages/serve/coupons/cou_detail`
@@ -65,6 +51,7 @@
// tabs 点击
clickTabs(item){
console.log(item,'tabs点击');
}
}
}

View File

@@ -1,7 +1,12 @@
<template>
<view class="unbindresult">
<view class="re_up">
<image class="re_img" src="@/static/images/app/serve/cou_payresult.png" mode=""></image>
<!-- #ifdef MP-WEIXIN -->
<image class="re_img" :src="`${config.aliyunOssUrl}/static/images/app/serve/cou_payresult.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image class="re_img" src="@/static/images/app/serve/cou_payresult.png" mode=""></image>
<!-- #endif -->
<view class="re_txt"> 您的订单已经支付成功去我的卡包核销 </view>
</view>
<view class="re_inspect" @click="toMyCardBagPage"> 我的卡包 </view>
@@ -10,10 +15,11 @@
</template>
<script>
import config from '@/config';
export default{
data(){
return{
config,
}
},
methods:{

View File

@@ -5,21 +5,23 @@
<view class="posi_l">
<u-icon name="map" size="19"></u-icon>
<view class="l_txt">杭州</view>
<u-icon name="arrow-right" size="19"></u-icon>
<u-icon name="arrow-right" size="12"></u-icon>
</view>
</view>
<!-- #ifdef MP-WEIXIN -->
<view class="administration" slot="right" @click="toMessagePages">
<view class="posi_r">
<image class="r_img" src="@/static/images/app/serve/serve_message.png" mode=""></image>
<image class="r_img" :src="`${config.aliyunOssUrl}/static/images/app/serve/serve_message.png`" mode=""></image>
<view class="r_num"> 3 </view>
</view>
</view>
<!-- #endif -->
<!-- #ifdef APP -->
<view class="" slot="right">
<image class="r_img" src="@/static/images/app/serve/serve_message.png" mode=""></image>
<view class="r_num"> 3 </view>
<view class="" slot="right" @click="toMessagePages">
<view class="posi_r">
<image class="r_img" src="@/static/images/app/serve/serve_message.png" mode=""></image>
<view class="r_num"> 3 </view>
</view>
</view>
<!-- #endif -->
</u-navbar>
@@ -37,30 +39,53 @@
</view> -->
<!-- 搜索 -->
<view class="search">
<u-search placeholder="搜索" height="32" searchIconSize='24' :showAction='false' placeholderColor='#AAAAAA' searchIconColor='#13AFA8' v-model="keyword"></u-search>
<!-- #ifdef MP-WEIXIN -->
<u-search placeholder="搜索" height="32" :showAction='false' :searchIcon="`${config.aliyunOssUrl}/static/images/app/serve/serve_search.png`"
placeholderColor='#AAAAAA' :disabled='true' searchIconSize='16'></u-search>
<!-- #endif -->
<!-- #ifdef APP -->
<u-search placeholder="搜索" height="32" :showAction='false' searchIcon='@/static/images/app/serve/serve_search.png'
placeholderColor='#AAAAAA' :disabled='true' searchIconSize='16'></u-search>
<!-- #endif -->
</view>
<!-- 大图 -->
<!-- 大图 轮播 -->
<view class="displaydrawing">
<image class="dis_img" src="@/static/images/app/serve/serve_drawing.png" mode=""></image>
<u-swiper height="574rpx" keyName="image" :list="branner" indicator></u-swiper>
</view>
<!-- 三个 -->
<view class="threeview">
<view class="th_one" @click="toRepairPages">
<image class="one_img" src="@/static/images/app/serve/serve_weixiu.png" mode=""></image>
<view class="one_txt"> 维修 </view>
</view>
<view class="th_one" @click="toCouponsPages">
<image class="one_img" src="@/static/images/app/serve/serve_coupons.png" mode=""></image>
<view class="one_txt"> 卡券 </view>
</view>
<view class="th_one">
<image class="one_img" src="@/static/images/app/serve/serve_study.png" mode=""></image>
<view class="one_txt"> 学习 </view>
</view>
<!-- #ifdef MP-WEIXIN -->
<view class="th_one" @click="toRepairPages">
<image class="one_img" :src="`${config.aliyunOssUrl}/static/images/app/serve/serve_weixiu.png`" mode=""></image>
<view class="one_txt"> 维修 </view>
</view>
<view class="th_one" @click="toCouponsPages(0)">
<image class="one_img" :src="`${config.aliyunOssUrl}/static/images/app/serve/serve_coupons.png`" mode=""></image>
<view class="one_txt"> 卡券 </view>
</view>
<view class="th_one">
<image class="one_img" :src="`${config.aliyunOssUrl}/static/images/app/serve/serve_study.png`" mode=""></image>
<view class="one_txt"> 学习 </view>
</view>
<!-- #endif -->
<!-- #ifdef APP -->
<view class="th_one" @click="toRepairPages">
<image class="one_img" src="@/static/images/app/serve/serve_weixiu.png" mode=""></image>
<view class="one_txt"> 维修 </view>
</view>
<view class="th_one" @click="toCouponsPages(0)">
<image class="one_img" src="@/static/images/app/serve/serve_coupons.png" mode=""></image>
<view class="one_txt"> 卡券 </view>
</view>
<view class="th_one">
<image class="one_img" src="@/static/images/app/serve/serve_study.png" mode=""></image>
<view class="one_txt"> 学习 </view>
</view>
<!-- #endif -->
</view>
<!-- 助力活动 -->
<view class="activity">
<view class="ac_up">
<view class="ac_up" @click="toCouponsPages(2)">
<view class="up_l">助力活动</view>
<view class="up_r">
<view class="up_r_txt">查看更多</view>
@@ -74,7 +99,7 @@
</view>
<!-- 限时秒杀 -->
<view class="activity">
<view class="ac_up">
<view class="ac_up" @click="toCouponsPages(1)">
<view class="up_l">限时秒杀</view>
<view class="up_r">
<view class="up_r_txt">查看更多</view>
@@ -114,27 +139,43 @@
</template>
<script>
import { callWithAsyncErrorHandling } from "vue";
import { brannerList } from '@/api/system/config';
import config from '@/config';
export default {
data() {
return {
price:198
price:198,
config,
branner: [], // 轮播图列表
};
},
onShow() {
this.getBranner()
},
methods:{
// 获取轮播图
getBranner() {
brannerList({type: 4}).then(res => {
console.log('轮播图', res.data.list);
this.branner = res.data.list
})
},
selectCityBtn(){
console.log('选择城市');
},
toCouponsPages(){
// 卡券
toCouponsPages(num){
uni.navigateTo({
url:`/pages/serve/coupons/coupons`
url:`/pages/serve/coupons/coupons?num=${num}`
})
},
// 维修
toRepairPages(){
uni.navigateTo({
url:`/pages/serve/repair/repair`
})
},
// 消息
toMessagePages(){
uni.navigateTo({
url:`/pages/serve/message/message`
@@ -150,24 +191,16 @@ import { callWithAsyncErrorHandling } from "vue";
}
.posi_l{
// border: 1px solid red;
display: flex;
justify-content: space-between;
// justify-content: space-between;
align-items: center;
.l_imgtop{
width: 24rpx;
height: 28rpx;
}
.l_txt{
font-size: 28rpx;
font-weight: 500;
color: #111111;
margin: 0 10rpx;
}
.l_imgfoot{
width: 10rpx;
height: 20rpx;
}
}
.posi_r{
position: relative;

View File

@@ -7,7 +7,12 @@
</view>
<view class="u-nav-slot nav_center" slot="center" @click="openCenter">
<text class="nav-txt"> {{navTitle}} </text>
<image class="nav_down_img" src="@/static/images/app/serve/com_down.png" mode=""></image>
<!-- #ifdef MP-WEIXIN -->
<image class="nav_down_img" :src="`${config.aliyunOssUrl}/static/images/app/serve/com_down.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image class="nav_down_img" src="@/static/images/app/serve/com_down.png" mode=""></image>
<!-- #endif -->
</view>
</u-navbar>
</view>
@@ -17,19 +22,29 @@
<view class="nav_select" :style="{top:(statusBarHeight+44)+'px'}">
<view class="select_up" @click="selectClick">
<text :class=" clickShow? 'select_txt' :'select_up_txt'"> 收到的评论 </text>
<image v-show="clickShow" class="nav_select_img" src="@/static/images/app/serve/com_select.png" mode=""></image>
<!-- #ifdef MP-WEIXIN -->
<image v-show="clickShow" class="nav_select_img" :src="`${config.aliyunOssUrl}/static/images/app/serve/com_select.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image v-show="clickShow" class="nav_select_img" src="@/static/images/app/serve/com_select.png" mode=""></image>
<!-- #endif -->
</view>
<view class="nav_xian"></view>
<view class="select_up" @click="selectClickDown">
<text :class=" clickShowDown? 'select_txt' :'select_up_txt'"> 发出的评论 </text>
<image v-show="clickShowDown" class="nav_select_img" src="@/static/images/app/serve/com_select.png" mode=""></image>
<!-- #ifdef MP-WEIXIN -->
<image v-show="clickShowDown" class="nav_select_img" :src="`${config.aliyunOssUrl}/static/images/app/serve/com_select.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image v-show="clickShowDown" class="nav_select_img" src="@/static/images/app/serve/com_select.png" mode=""></image>
<!-- #endif -->
</view>
</view>
</u-popup>
<view class="comment_list">
<view class="getlist">
<view class="list_l">
<image class="list_img" src="@/static/images/app/serve/coupons_img1.png" mode=""></image>
<image class="list_img" src="@/static/images/app/serve/repair_refund.png" mode=""></image>
<u-badge :isDot="true" type="error" :absolute='true' :offset='[2,0]'></u-badge>
</view>
<view class="list_r">
@@ -48,7 +63,7 @@
</view>
<view class="getlist" v-for="(item,index) in 10" :key="index">
<view class="list_l">
<image class="list_img" src="@/static/images/app/serve/coupons_img1.png" mode=""></image>
<image class="list_img" src="@/static/images/app/serve/repair_refund.png" mode=""></image>
</view>
<view class="list_r">
<view class="list_r_up">
@@ -70,9 +85,11 @@
</template>
<script>
import config from '@/config';
export default {
data(){
return {
config,
navTitle:'收到的评论',
show:false, // 弹出层
clickShow:true,

View File

@@ -2,7 +2,7 @@
<view class="m_getlike">
<view class="getlike" v-for="(item,index) in 3" :key="index">
<view class="like_l">
<image class="like_img" src="@/static/images/app/serve/coupons_img1.png" mode=""></image>
<image class="like_img" src="@/static/images/app/serve/repair_refund.png" mode=""></image>
<u-badge :isDot="true" type="error" :absolute='true' :offset='[2,0]'></u-badge>
</view>
<view class="like_r">
@@ -21,7 +21,7 @@
</view>
<view class="getlike">
<view class="like_l">
<image class="like_img" src="@/static/images/app/serve/coupons_img1.png" mode=""></image>
<image class="like_img" src="@/static/images/app/serve/repair_refund.png" mode=""></image>
</view>
<view class="like_r">
<view class="like_r_up">
@@ -41,6 +41,16 @@
</template>
<script>
export default {
data(){
return {
}
},
methods :{
}
}
</script>
<style lang="scss">

View File

@@ -15,7 +15,7 @@
</view>
</view>
<view class="m_sys_img">
<image src="@/static/images/app/serve/m_sys_con.png" mode=""></image>
<image src="@/static/images/app/serve/repair_refund.png" mode=""></image>
</view>
<view>
<view class="h2title"> 1.2 二级标题内容 </view>
@@ -40,7 +40,7 @@
</view>
</view>
<view class="m_sys_img">
<image src="@/static/images/app/serve/m_sys_con.png" mode=""></image>
<image src="@/static/images/app/serve/repair_refund.png" mode=""></image>
</view>
<view>
<view class="h2title"> 2.2 二级标题内容 </view>

View File

@@ -5,7 +5,7 @@
<view class="m_content" hover-class="hover_content" @click="toSysDetailPages">
<view class="con_up"> 恭喜获得#带着宠物去旅行 #红包!现金实物超多惊喜速拆! </view>
<view class="con_img">
<image src="@/static/images/app/serve/m_sys_con.png" mode=""></image>
<image src="@/static/images/app/serve/repair_refund.png" mode=""></image>
</view>
<view class="con_txt">
怪物树种精灵秘宝(绽放的玫瑰交女巫巨人到110)怪物龙人精英秘宝(龙族简史交智慧巨人110)怪物树种精灵秘宝(绽放的玫瑰交女巫巨人到110)

View File

@@ -2,7 +2,7 @@
<view class="m_unknow">
<view class="unknow" v-for="(item,index) in 3" :key="index">
<view class="unknow_l">
<image class="unknow_img" src="@/static/images/app/serve/coupons_img1.png" mode=""></image>
<image class="unknow_img" src="@/static/images/app/serve/repair_refund.png" mode=""></image>
</view>
<view class="unknow_r">
<view class="unknow_up">

View File

@@ -8,20 +8,26 @@
<u-icon name="arrow-left" size="19"></u-icon>
</view>
<!-- #ifdef MP-WEIXIN -->
<view class="administration" slot="right" @click="navClearBtn">
<image class="clear_img" src="@/static/images/app/serve/m_clear.png" mode=""></image>
<view class="administration" slot="right" @click="openClear">
<image class="clear_img" :src="`${config.aliyunOssUrl}/static/images/app/serve/m_clear.png`" mode=""></image>
</view>
<!-- #endif -->
<!-- #ifdef APP -->
<view class="" slot="right">
<view class="" slot="right" @click="openClear">
<image class="clear_img" src="@/static/images/app/serve/m_clear.png" mode=""></image>
</view>
<!-- #endif -->
</u-navbar>
<view class="viewBox">
<view class="box" @click="toSystemPages">
<view class="box_l">
<image class="box_l_img" src="@/static/images/app/serve/m_one.png" mode=""></image>
<!-- #ifdef MP-WEIXIN -->
<image class="box_l_img" :src="`${config.aliyunOssUrl}/static/images/app/serve/m_one.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image class="box_l_img" src="@/static/images/app/serve/m_one.png" mode=""></image>
<!-- #endif -->
<view class="box_l_txt"> 系统消息 </view>
</view>
<view class="box_r">
@@ -31,7 +37,12 @@
</view>
<view class="box" @click="toOrdermessagePages">
<view class="box_l">
<image class="box_l_img" src="@/static/images/app/serve/m_two.png" mode=""></image>
<!-- #ifdef MP-WEIXIN -->
<image class="box_l_img" :src="`${config.aliyunOssUrl}/static/images/app/serve/m_two.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image class="box_l_img" src="@/static/images/app/serve/m_two.png" mode=""></image>
<!-- #endif -->
<view class="box_l_txt"> 订单消息 </view>
</view>
<view class="box_r">
@@ -41,7 +52,12 @@
</view>
<view class="box" @click="toCommentPages">
<view class="box_l">
<image class="box_l_img" src="@/static/images/app/serve/m_three.png" mode=""></image>
<!-- #ifdef MP-WEIXIN -->
<image class="box_l_img" :src="`${config.aliyunOssUrl}/static/images/app/serve/m_three.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image class="box_l_img" src="@/static/images/app/serve/m_three.png" mode=""></image>
<!-- #endif -->
<view class="box_l_txt"> 评论 </view>
</view>
<view class="box_r">
@@ -51,7 +67,12 @@
</view>
<view class="box" @click="toGetlikePages">
<view class="box_l">
<image class="box_l_img" src="@/static/images/app/serve/m_four.png" mode=""></image>
<!-- #ifdef MP-WEIXIN -->
<image class="box_l_img" :src="`${config.aliyunOssUrl}/static/images/app/serve/m_four.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image class="box_l_img" src="@/static/images/app/serve/m_four.png" mode=""></image>
<!-- #endif -->
<view class="box_l_txt"> 收到的赞 </view>
</view>
<view class="box_r">
@@ -61,7 +82,12 @@
</view>
<view class="box" @click="toUnknowPages">
<view class="box_l">
<image class="box_l_img" src="@/static/images/app/serve/m_five.png" mode=""></image>
<!-- #ifdef MP-WEIXIN -->
<image class="box_l_img" :src="`${config.aliyunOssUrl}/static/images/app/serve/m_five.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image class="box_l_img" src="@/static/images/app/serve/m_five.png" mode=""></image>
<!-- #endif -->
<view class="box_l_txt"> 陌生人的消息 </view>
</view>
<view class="box_r">
@@ -74,7 +100,7 @@
<view class="chatView">
<view class="chat" v-for="(item , index) in 3" :key="index" @click="toDialogPages">
<view class="chat_l">
<image class="chat_l_img" src="@/static/images/app/serve/m_liuyan.png" mode=""></image>
<image class="chat_l_img" src="@/static/images/app/serve/repair_refund.png" mode=""></image>
<view class="chat_l_txt">
<view class="txt_up"> BYD </view>
<view class="txt_down"> 已经通过了~ </view>
@@ -99,27 +125,29 @@
</template>
<script>
import config from '@/config';
export default{
data(){
return{
config,
showClear:false, // 是否清除
barHeight:null,
'min-content':wx.getSystemInfoSync().statusBarHeight
}
},
methods:{
goBack(){
uni.navigateBack()
uni.navigateBack({
url:`/pages/serve/index`
})
},
// 扫把
navClearBtn(){
console.log('清除消息');
},
// 清除弹层
// 打开清除弹层
openClear(){
console.log('打开清除');
this.showClear=true
},
// 确认清除
sureClear(){
console.log('确认清除');
this.showClear=false
},
// 系统消息

View File

@@ -3,7 +3,12 @@
<!-- 绑定成功 -->
<view class="allview">
<view class="topview">
<u-image :showLoading="true" src="@/static/images/app/serve/bind_mate.png" width="148rpx" height="148rpx"></u-image>
<!-- #ifdef MP-WEIXIN -->
<u-image :showLoading="true" width="148rpx" height="148rpx" :src="`${config.aliyunOssUrl}/static/images/app/serve/bind_mate.png`" mode=""></u-image>
<!-- #endif -->
<!-- #ifdef APP -->
<u-image :showLoading="true" width="148rpx" height="148rpx" src="@/static/images/app/serve/bind_mate.png" mode=""></u-image>
<!-- #endif -->
</view>
<view class="contentview">
<u-cell-group :border="false">
@@ -11,21 +16,17 @@
<u-cell title="姓名" :value="userInfo.realName?userInfo.realName:'--'"></u-cell>
<u-cell title="车型" :value="formObj.modelName?formObj.modelName:'--'"></u-cell>
<u-cell title="行驶证">
<!-- <u-icon slot="icon" size="26" name="file-text"></u-icon> -->
<view slot="right-icon">
<view class="conimg">
<!-- <u-image :showLoading="true" :src="formObj.driveLicense" width="112rpx" height="112rpx"></u-image> -->
<u-image src="@/static/images/app/serve/repair_swiper.png" width="112rpx" height="112rpx"></u-image>
<u-image :showLoading="true" :src="formObj.driveLicense" width="112rpx" height="112rpx"></u-image>
</view>
</view>
</u-cell>
<u-cell title="车牌号" :value="formObj.carNo?formObj.carNo:'--'"></u-cell>
<u-cell title="解绑日期" :value="formObj.unbindTime?formObj.unbindTime:'--'"></u-cell>
<u-cell title="车辆类型 " :value="formObj.category==1?'公户车':formObj.category==2?'私家车':'--'"></u-cell>
<u-cell title="所属公司" v-if="formObj.category==1"
:value="formObj.company?formObj.company:'--'"></u-cell>
<u-cell title="车主姓名" v-if="formObj.category==2"
:value="formObj.ownerName?formObj.ownerName:'--'"></u-cell>
<u-cell title="所属公司" v-if="formObj.category==1" :value="formObj.company?formObj.company:'--'"></u-cell>
<u-cell title="车主姓名" v-if="formObj.category==2" :value="formObj.ownerName?formObj.ownerName:'--'"></u-cell>
<u-cell title="使用性质"
:value="formObj.type==1?'预约出租客运':formObj.type==2?'非营运':formObj.type==3?'租赁':'--'"></u-cell>
</u-cell-group>
@@ -38,28 +39,32 @@
</template>
<script>
// import { getMyCarAPI,getUserInfoAPI } from '@/api/car'
// import { getCarInfoAPI } from '@/api/user'
// import { realNameDetaiNowlAPI } from '@/api/mine'
// import { mapGetters } from 'vuex'
import { getMyCarAPI,getCarInfoAPI,getMineInfoAPI, realNameDetaiNowlAPI} from '@/api/serve/repair/repair'
import { mapGetters } from 'vuex'
import config from '@/config';
export default {
data() {
return {
formObj: {},
userInfo: {}
userInfo: {},
config,
}
},
onShow() {
// this.getMyCar()
this.getMyCar()
},
computed: {
// ...mapGetters(['carNo'])
...mapGetters(['carNo'])
},
methods: {
async getMyCar() {
const car = await getMyCarAPI() // 车辆信息
console.log(car, 'carrrrr');
this.formObj = car.data
getMyCar() {
// 车辆信息
getMyCarAPI().then(car=>{
console.log(car, 'carrrrr');
this.formObj = car.data
}).catch(err=>{
this.$toast(err)
})
// 提交绑定车辆信息后,跳转到绑定结果页面,
// 但提交的信息需在平台端审核同意后,车辆信息才会更新
@@ -75,11 +80,12 @@
// }).catch(err=>{
// console.log(err);
// })
// const user= await getUserInfoAPI() // 用户完整信息
// console.log(user,'user-info');
const detail = await realNameDetaiNowlAPI() // 实名详情
this.userInfo = detail.data
// 实名详情
realNameDetaiNowlAPI().then(detail=>{
this.userInfo = detail.data
}).catch(err=>{
this.$toast(err)
})
},
toHomePage() {
uni.switchTab({

View File

@@ -4,7 +4,12 @@
<view class="bgcview">
<view class="top">
<text class="top_txt">填写车辆信息</text>
<image class="top_imgview" src="@/static/images/app/serve/re_bind_bgc.png" mode=""></image>
<!-- #ifdef MP-WEIXIN -->
<image class="top_imgview" :src="`${config.aliyunOssUrl}/static/images/app/serve/re_bind_bgc.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image class="top_imgview" src="@/static/images/app/serve/re_bind_bgc.png" mode=""></image>
<!-- #endif -->
</view>
<view class="content">
<view class="form-box">
@@ -15,7 +20,12 @@
<view class="f_car_num">
<view class="fcn_l"> {{ formData.carNo.charAt(0) }} </view>
<view class="fcn_r">
<image class="fcn_r_img" src="@/static/images/app/serve/re_bind_down.png" mode=""></image>
<!-- #ifdef MP-WEIXIN -->
<image class="fcn_r_img" :src="`${config.aliyunOssUrl}/static/images/app/serve/re_bind_down.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image class="fcn_r_img" src="@/static/images/app/serve/re_bind_down.png" mode=""></image>
<!-- #endif -->
</view>
</view>
<view class="letter_number">
@@ -41,17 +51,32 @@
</u-form-item>
<u-form-item label="上传行驶证" border-bottom='true'>
<view class="lr" v-if='carInfo.driveLicense'>
<image v-if='carInfo.driveLicense' style="width: 112rpx; height: 112rpx;" :src="carInfo.driveLicense"></image>
<image v-else style="width: 112rpx; height: 112rpx;" src="@/static/images/app/serve/re_bind_travel.png" mode=""></image>
<!-- #ifdef MP-WEIXIN -->
<image v-if='carInfo.driveLicense' style="width: 112rpx; height: 112rpx;" :src="carInfo.driveLicense"></image>
<image v-else style="width: 112rpx; height: 112rpx;" :src="`${config.aliyunOssUrl}/static/images/app/serve/re_bind_travel.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image v-if='carInfo.driveLicense' style="width: 112rpx; height: 112rpx;" :src="carInfo.driveLicense"></image>
<image v-else style="width: 112rpx; height: 112rpx;" src="@/static/images/app/serve/re_bind_travel.png" mode=""></image>
<!-- #endif -->
</view>
<view v-else class="form-item">
<text style="color:#999999" v-show="!formData.driveLicense">(必选)</text>
<view class="image-box rel">
<image class="upload-bg" v-show="formData.driveLicense" :src="formData.driveLicense" mode=""></image>
<image v-show="!formData.driveLicense" class="upload-bg"
src="@/static/images/app/serve/re_bind_travel.png" mode="" @click="upload('image', 'driveLicense')"></image>
<image v-show="formData.driveLicense" class="reduce abs"
src="@/static/images/app/serve/realname_clea.png" mode="" @click="DelPic('driveLicense')"></image>
<!-- #ifdef MP-WEIXIN -->
<image class="upload-bg" v-show="formData.driveLicense" :src="formData.driveLicense" mode=""></image>
<image v-show="!formData.driveLicense" class="upload-bg"
:src="`${config.aliyunOssUrl}/static/images/app/serve/re_bind_travel.png`" mode="" @click="upload('image', 'driveLicense')"></image>
<image v-show="formData.driveLicense" class="reduce abs"
:src="`${config.aliyunOssUrl}/static/images/app/serve/realname_clea.png`" mode="" @click="DelPic('driveLicense')"></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image class="upload-bg" v-show="formData.driveLicense" :src="formData.driveLicense" mode=""></image>
<image v-show="!formData.driveLicense" class="upload-bg"
src="@/static/images/app/serve/re_bind_travel.png" mode="" @click="upload('image', 'driveLicense')"></image>
<image v-show="formData.driveLicense" class="reduce abs"
src="@/static/images/app/serve/realname_clea.png" mode="" @click="DelPic('driveLicense')"></image>
<!-- #endif -->
</view>
</view>
</u-form-item>
@@ -135,11 +160,12 @@
</template>
<script>
// import { userBindAPI, getCarInfoAPI,modelListAPI } from '@/api/user'
// import { getMineInfoAPI, realNameDetaiNowlAPI } from '@/api/mine'
import { userBindAPI, getCarInfoAPI,modelListAPI ,getMineInfoAPI, realNameDetaiNowlAPI} from '@/api/serve/repair/repair'
import config from '@/config';
export default {
data() {
return {
config,
screenHeight:wx.getSystemInfoSync().screenHeight,
datetimeShow: false,
datetimeValue: Number(new Date()),
@@ -300,7 +326,7 @@
if (this.noneInfo == true) {
userBindAPI(this.carInfo).then(res => {
uni.navigateTo({
url: '/pages/user/bindResult'
url: '/pages/serve/repair/bind_result'
})
}).catch(err => {
this.$toast(err)
@@ -308,7 +334,7 @@
} else {
userBindAPI(this.formData).then(res => {
uni.navigateTo({
url: '/pages/user/bindResult'
url: '/pages/serve/repair/bind_result'
})
}).catch(err => {
this.$toast(err)
@@ -323,7 +349,7 @@
success: (res) => {
if (res.confirm) {
uni.navigateTo({
url: "/pages/user/realName",
url: "/pages/serve/repair/realname",
});
} else if (res.cancel) {
console.log("用户点击取消");
@@ -504,11 +530,6 @@
margin-bottom: 15rpx;
font-size: 30rpx;
}
.list_view{
// border: 1px solid blue;
// height: 730rpx;
// overflow: hidden;
}
}
.form-item {
display: flex;

View File

@@ -0,0 +1,599 @@
<template>
<view class="repairdeyail">
<view class="allview">
<view class="banner">
<image class="banner_img" :src="dataObj.backImage" mode=""></image>
<view class="banner_score">{{ dataObj.starLevel ? dataObj.starLevel : "--" }}</view>
</view>
<view class="content">
<view class="con_up">
<view class="up_lr">
<view class="up_left">
<view class="up_l_one">
{{ dataObj.name ? dataObj.name : "--" }}
</view>
<view class="up_l_two">
<view class="twotxt">
{{ homenum == 1 ? "常规保养" : homenum == 2 ? "故障维修" : homenum == 3 ? "事故维修" : homenum == 4 ? "退车" : "保养保养"}}
</view>
</view>
<view class="up_l_three">
<view class="threeleft"> 营业时间 </view>
<view class="threeright">
{{ dataObj.dayTime ? dataObj.dayTime : "9:00-20:00" }}
</view>
</view>
</view>
<view class="up_right">
<!-- #ifdef MP-WEIXIN -->
<view class="up_r_icon" @click.stop="callPhone(JSON.stringify(dataObj.phone))">
<image class="up_r_iconimg"
:src="`${config.aliyunOssUrl}/static/images/app/serve/cou_store_phone.png`" mode="">
</image>
</view>
<view class="up_r_icon">
<image class="up_r_iconimg"
:src="`${config.aliyunOssUrl}/static/images/app/serve/cou_store_up.png`" mode=""></image>
</view>
<!-- #endif -->
<!-- #ifdef APP -->
<view class="up_r_icon" @click.stop="callPhone(JSON.stringify(dataObj.phone))">
<image class="up_r_iconimg" src="@/static/images/app/serve/cou_store_phone.png" mode="">
</image>
</view>
<view class="up_r_icon">
<image class="up_r_iconimg" src="@/static/images/app/serve/cou_store_up.png" mode=""></image>
</view>
<!-- #endif -->
</view>
</view>
<view class="up_l_four line-one">
<text> {{ dataObj.distance ? dataObj.distance : "--" }}km </text>
<text class="suxian"> | </text>
<text>
{{ dataObj.addressDetail ? dataObj.addressDetail : "-" }}
</text>
</view>
</view>
<view class="con_down">
<view class="cheview">
<view class="cheview_l"> 车辆 </view>
<view class="cheview_r">
<text slot="value" class="u-slot-value formtxt">
{{createData.repairType == 1 ? "常规保养" : createData.repairType == 2 ? "故障维修" : createData.repairType == 3 ? "事故维修" : createData.repairType == 4 ? "退车" : "保养保养"}}
</text>
</view>
</view>
<view class="cheview" @click="popupShow = true">
<view class="cheview_l"> 预约信息 </view>
<view class="infoview_r">
<view class="r_txt">
{{ formObj.carNo ? formObj.carNo : "-" }}
{{ myInfo.realName ? myInfo.realName : "-" }}
</view>
<u-icon name="arrow-right" color="#999999" size="14"></u-icon>
</view>
</view>
<view class="cheview" @click="openTime">
<view class="cheview_l"> 预约时间 </view>
<view class="infoview_r">
<view class="r_txt">
{{ createData.workingDay ? createData.workingDay : "" }}
{{ createData.workingTime ? createData.workingTime : "请填写" }}
</view>
<u-icon name="arrow-right" color="#999999" size="14"></u-icon>
</view>
</view>
<view class="descview">
<view class="cheview_l"> 描述 </view>
<view class="descview_r">
<u-textarea v-model="createData.repairDescribe" placeholder="选填" border="none"></u-textarea>
</view>
</view>
</view>
</view>
</view>
<view class="con_btnview">
<view class="btnview_sure" @click="groupSubmit" shape="circle"> </view>
</view>
<!-- 预约信息 -->
<u-popup :show="popupShow" :round="16" mode="bottom" @close="popupShow = false" closeable="true">
<view class="popuptxt">预约信息</view>
<view class="popview">
<view class="groupview">
<view class="grop_con"> 基本信息 </view>
<view class="carnum">
<view class="num_l"> 车牌 </view>
<view class="num_r">{{ formObj.carNo ? formObj.carNo : "-" }}
</view>
</view>
<view class="carnum">
<view class="num_l"> 车型 </view>
<view class="num_r">
{{ formObj.modelName ? formObj.modelName : "-" }}
</view>
</view>
<view class="carnum">
<view class="num_l"> 姓名 </view>
<view class="num_r">
{{ myInfo.realName ? myInfo.realName : "-" }}
</view>
</view>
<view class="carnum">
<view class="num_l"> 电话 </view>
<view class="num_r"> {{ myInfo.phone ? myInfo.phone : "-" }} </view>
</view>
</view>
<view class="popupbtn" @click="popupSubmit"> </view>
</view>
</u-popup>
</view>
</template>
<script>
import { getStoreList, getCarouselAPI , reservationCreateAPI, getMyCarAPI , realNameDetaiNowlAPI} from '@/api/serve/repair/repair'
import { mapGetters } from "vuex";
import config from '@/config'
export default {
data() {
return {
config,
popupShow: false,
tabledata: {
limit: 10,
page: 1,
latitude: "30",
longitude: "126",
},
dataObj: {},
formObj: {},
myInfo: {},
createData: {
carId: null,
merId: null,
repairDescribe: "",
repairType: 1,
workingDay: "",
workingTime: "",
},
};
},
computed: {
...mapGetters(["checkIds", "homenum", "merId", "workingDay", "workingTime", ]),
},
onShow() {
this.getStoreList();
},
methods: {
getStoreList() {
this.createData.merId = this.merId;
this.createData.repairType = this.homenum;
this.createData.workingDay = this.workingDay;
this.createData.workingTime = this.workingTime;
// 门店
getStoreList(this.tabledata).then(res=>{
res.data.list.forEach((ele) => {
if (ele.id == this.merId) {
this.dataObj = ele;
}
});
}).catch(err=>{
this.$toast(err)
})
// 获取我的汽车
getMyCarAPI().then(car=>{
if (car.data) {
this.formObj = car.data;
this.createData.carId = car.data.id;
} else {
uni.showModal({
title: "您还没绑定车辆,是否现在去绑定车辆!",
cancelText: "稍后再去",
confirmText: "现在就去",
success: (res) => {
if (res.confirm) {
uni.navigateTo({
url: "/pages/serve/repair/re_binding",
});
} else if (res.cancel) {
console.log("用户点击取消");
}
},
});
}
})
// 实名信息
realNameDetaiNowlAPI().then(my=>{
this.myInfo = my.data;
}).catch(err=>{
this.$toast(err)
})
},
// 去选择时间
openTime() {
uni.navigateTo({
url: `/pages/serve/repair/re_create/select_time`,
});
},
// 确认提交
groupSubmit() {
if (!this.createData.carId) {
uni.showModal({
title: "您还没绑定车辆,是否现在去绑定车辆!",
cancelText: "稍后再去",
confirmText: "现在就去",
success: (res) => {
if (res.confirm) {
uni.navigateTo({
url: "/pages/serve/repair/re_binding",
});
} else if (res.cancel) {
console.log("用户点击取消");
}
},
});
} else if (!this.myInfo) {
uni.showModal({
title: "您还没有完善信息,是否现在去完善信息!",
cancelText: "稍后再去",
confirmText: "现在就去",
success: (res) => {
if (res.confirm) {
uni.navigateTo({
url: "/pages/serve/repair/realname",
});
} else if (res.cancel) {
console.log("用户点击取消");
}
},
});
} else {
reservationCreateAPI(this.createData)
.then((res) => {
uni.navigateTo({
url: "/pages/serve/repair/re_create/result",
});
})
.catch((err) => {
this.$toast(err);
});
}
},
popupSubmit() {
console.log("预约信息");
this.popupShow = false;
},
callPhone(phoneNumber) {
console.log(phoneNumber);
uni.makePhoneCall({
phoneNumber,
});
},
},
};
</script>
<style lang="scss" scoped>
.repairdeyail {
height: 100vh;
background-color: #f5f5f5;
.allview {
padding: 16rpx 24rpx;
background-color: #f5f5f5;
.banner {
// border: 1px solid red;
position: relative;
width: 702rpx;
height: 304rpx;
border-radius: 16rpx 16rpx 0rpx 0rpx;
.banner_img {
width: 702rpx;
height: 304rpx;
}
.banner_score {
width: 136rpx;
height: 54rpx;
font-size: 36rpx;
line-height: 52rpx;
font-weight: 500;
text-align: center;
font-family: PingFang SC, PingFang SC;
color: #ffffff;
background: #f68d1f;
border-radius: 16rpx 0rpx 16rpx 0rpx;
opacity: 1;
position: absolute;
bottom: -27rpx;
right: 0;
}
}
.content {
.con_up {
padding: 32rpx;
margin-bottom: 24rpx;
background-color: #fff;
border-radius: 10rpx;
.up_lr {
display: flex;
justify-content: space-between;
align-items: center;
}
// 左
.up_left {
.up_l_one {
font-size: 36rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #000000;
padding-bottom: 8rpx;
}
.up_l_two {
padding: 0 28rpx 24rpx 0rpx;
font-size: 28rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #444444;
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
.twotxt {
padding: 4rpx 12rpx;
border-radius: 4rpx;
background-color: #efefef;
margin-right: 10rpx;
// flex: 0 0 30%;
margin-top: 10rpx;
}
}
.up_l_three {
display: flex;
padding-bottom: 24rpx;
.threeleft {
width: 120rpx;
height: 44rpx;
font-size: 26rpx;
font-weight: 400;
line-height: 40rpx;
text-align: center;
font-family: PingFang SC, PingFang SC;
color: #13afa8;
background: #e2f0ef;
border-radius: 4rpx 0rpx 0rpx 4rpx;
opacity: 1;
border: 2rpx solid #13afa8;
}
.threeright {
width: 178rpx;
height: 44rpx;
font-size: 28rpx;
font-weight: 500;
line-height: 42rpx;
text-align: center;
color: #ffffff;
background: #13afa8;
border-radius: 0rpx 4rpx 4rpx 0rpx;
opacity: 1;
font-family: PingFang SC, PingFang SC;
}
}
}
.up_l_four {
font-size: 26rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #111111;
// width: 500rpx;
.suxian {
font-size: 20rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #aaaaaa;
margin: 0 8rpx;
}
}
// 右 icon
.up_right {
display: flex;
.up_r_icon {
width: 48rpx;
height: 48rpx;
background-color: #13afa8;
border-radius: 50%;
margin-left: 20rpx;
display: flex;
justify-content: center;
align-items: center;
}
.up_r_iconimg {
width: 48rpx;
height: 48rpx;
}
}
}
.con_down {
border: 1px solid #ffffff;
padding: 0 32rpx 32rpx 32rpx;
margin: 35rpx 0;
background-color: #fff;
border-radius: 10rpx;
.labeltxt {
display: block;
width: 160rpx;
height: 44rpx;
font-size: 32rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #444444;
line-height: 42rpx;
}
.formtxt {
display: block;
width: 128rpx;
height: 44rpx;
border-radius: 4rpx 4rpx 4rpx 4rpx;
opacity: 1;
font-size: 28rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
text-align: center;
background: #444444;
color: #ffffff;
line-height: 42rpx;
}
.cheview {
// border: 1px solid red;
display: flex;
justify-content: space-between;
align-items: center;
padding-bottom: 16rpx;
border-bottom: 1rpx solid #ededed;
margin-top: 50rpx;
.r_icon {
width: 10rpx;
height: 20rpx;
margin-left: 8rpx;
}
.r_txt {
margin-right: 8rpx;
}
.infoview_r {
display: flex;
justify-content: space-between;
align-items: center;
}
}
.cheview_l {
font-size: 32rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #444444;
}
.descview {
margin-top: 50rpx;
}
}
}
.line-one {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
// border: 1px solid blue;
}
}
.con_btnview {
padding: 8rpx 24rpx;
width: 100%;
height: 112rpx;
background: #ffffff;
position: fixed;
left: 0;
bottom: 40rpx;
.btnview_sure {
height: 96rpx;
line-height: 96rpx;
text-align: center;
font-size: 34rpx;
color: #ffffff;
background-color: #13afa8;
border-radius: 60rpx 60rpx 60rpx 60rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
}
}
.popuptxt {
height: 132rpx;
line-height: 130rpx;
font-size: 32rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #222222;
text-align: center;
border-bottom: 1rpx solid #ededed;
}
.popview {
padding: 0 20rpx 40rpx 20rpx;
.groupview {
margin-bottom: 50rpx;
padding: 24rpx;
.grop_con {
font-size: 32rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 550;
color: #222222;
padding-top: 24rpx;
}
.carnum {
display: flex;
justify-content: space-between;
align-items: center;
padding-bottom: 16rpx;
border-bottom: 1rpx solid #ededed;
margin-top: 40rpx;
}
.num_l {
font-size: 32rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #444444;
}
.num_r {
font-size: 32rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #111111;
}
}
.popupbtn {
margin-top: 50rpx;
font-size: 28rpx;
height: 80rpx;
line-height: 80rpx;
text-align: center;
color: #ffffff;
background-color: #13afa8;
border-radius: 60rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
}
}
}
</style>

View File

@@ -0,0 +1,141 @@
<template>
<view class="resultall">
<view class="re_result">
<view class="conview">
<view class="imgview">
<!-- #ifdef MP-WEIXIN -->
<image class="img" :src="`${config.aliyunOssUrl}/static/images/app/serve/re_result.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image class="img" src="@/static/images/app/serve/re_result.png" mode=""></image>
<!-- #endif -->
</view>
<view class="txtview">
<view class="bigtxt">预约成功</view>
<view class="smalltxt">你的维修工单已经预约成功可在我的工单里面查看进度</view>
</view>
</view>
<view class="btnview">
<view class="btn_top" @click="toMyBtn">
我的工单
</view>
<view class="btn_bottom" @click="toHomePage">
返回首页
</view>
</view>
</view>
</view>
</template>
<script>
import config from '@/config'
export default {
data() {
return {
config,
}
},
methods: {
toMyBtn() {
console.log('去我的工单');
// this.$store.dispatch('WorkingDay', '')
// this.$store.dispatch('WorkingTime', '')
// uni.navigateTo({
// url: `/pages/order/myOrder`
// });
},
toHomePage() {
console.log('去首页');
// this.$store.dispatch('WorkingDay', '')
// this.$store.dispatch('WorkingTime', '')
uni.switchTab({
url: '/pages/index/index'
});
}
}
}
</script>
<style lang="scss" scoped>
.resultall {
background-color: #F5F5F5;
height: 100vh;
}
.re_result {
padding: 135rpx 50rpx 0 50rpx;
.conview {
// border: 1px solid blue ;
.imgview {
// border: 1px solid red ;
width: 500rpx;
height: 280rpx;
margin: 0 auto;
.img {
width: 500rpx;
height: 280rpx;
}
}
.txtview {
text-align: center;
margin-top: 40rpx;
.bigtxt {
font-size: 40rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #000000;
}
.smalltxt {
font-size: 24rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #999999;
margin-top: 15rpx;
}
}
}
.btnview {
margin-top: 64rpx;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: 100%;
.btn_top {
width: 264rpx;
height: 80rpx;
border-radius: 60rpx 60rpx 60rpx 60rpx;
opacity: 1;
line-height: 78rpx;
text-align: center;
font-size: 34rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #fff;
background: #13AFA8;
}
.btn_bottom {
width: 264rpx;
height: 80rpx;
border-radius: 60rpx 60rpx 60rpx 60rpx;
opacity: 1;
line-height: 78rpx;
text-align: center;
font-size: 34rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
margin-top: 20rpx;
color: #13AFA8;
}
}
}
</style>

View File

@@ -0,0 +1,216 @@
<template>
<view class="re_select">
<view class="search">
<u-search placeholder="搜索城市" :showAction="true" v-model="cityNmae" actionText="搜索" @custom='searchBtn'
@search='searchBtn' actionStyle='{font-size: 28rpx;font-weight: 500;}'></u-search>
</view>
<view v-show="cityNmae==''">
<view class="city_list">
<view class="city_up">
<view class="up_up">
<view class="txt_view">
当前城市
</view>
<view class="btn_view" @click="getCityName(citySave)">
{{citySave}}
</view>
</view>
<view class="up_cen">
<view class="txt_view">
热门城市
</view>
<view class="cenbtnall">
<view class="cen_btnview" v-for="item in hotCity" :key='item.id' @click="getCityName(item.cityName)">
{{item.cityName}}
</view>
</view>
</view>
</view>
</view>
<view class="city_down">
<u-index-list :index-list="indexList">
<template v-for="(item, index) in itemArr">
<u-index-anchor :text="indexList[index]" :id="index" :index="index">
</u-index-anchor>
<u-index-item :key="indexList[index]" :item='item' @getItem='getItem'>
<view class="list-cell" v-for="(cell,index) in item" :key="cell.code" @click="clickCity(index)">
{{cell.city}}
</view>
</u-index-item>
</template>
</u-index-list>
</view>
</view>
<view v-show="cityNmae!=''" class="cityshow_view">
<view class="city_show" v-for="item in citySearch" :key='item.code' hover-class="bg-click" @click="getCityName(item.city)">
{{item.city}}
</view>
</view>
</view>
</template>
<script>
import { getHotCityAPI } from '@/api/serve/repair/repair'
import { mapGetters } from 'vuex'
const area = require('../../../../data/address_a.js')
export default {
data() {
return {
hotCity: [],
indexList: area.select_list,
itemArr: [],
cityNmae: '',
citySearch:[],
isShow:true,
// 顺序城市索引
cityIndex:null,
};
},
computed: {
...mapGetters(['citySave'])
},
onLoad() {
let areas = area.city_list
for (let key in areas) {
this.itemArr.push(areas[key])
};
},
onShow() {
this.getHotCity()
},
methods: {
getHotCity() {
getHotCityAPI().then(res=>{
this.hotCity=res.data
}).catch(err=>{
this.$toast(err)
})
},
citySelect(e) {
},
searchBtn() {
this.citySearch = this.searchCity(this.itemArr, this.cityNmae)
},
searchCity(arr, targetCity) {
const flatArr = arr.flat();
const result = flatArr.filter(item => item.city.includes(targetCity));
return result;
},
// 热门城市
getCityName(name){
this.$store.dispatch('SelectCity', name)
uni.navigateBack({
url:`/pages/serve/repair/re_create/select_store`,
})
},
// 顺序城市
clickCity(index){
this.cityIndex=index
},
getItem(getItem){
getItem.forEach((ele,index)=>{
if(this.cityIndex==index){
this.$store.dispatch('SelectCity', ele.city)
uni.navigateBack({
url:`/pages/serve/repair/re_create/select_store`,
})
}
})
}
}
}
</script>
<style lang="scss">
.cityshow_view{
margin-top: 16rpx;
.city_show{
height: 104rpx;
background: #FFFFFF;
padding: 24rpx;
font-size: 28rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #111111;
}
.bg-click{
background-color: #F5F5F5;
}
}
.re_select {
background-color: #F5F5F5;
height: 100vh;
}
.search {
padding: 0 24rpx;
height: 88rpx;
background: #FFFFFF;
}
.txt_view {
// border: 1px solid green ;
height: 44rpx;
font-size: 32rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #111111;
}
.city_list {
background-color: #F5F5F5;
padding: 32rpx;
margin-bottom: 16rpx;
.city_up {
// height: 440rpx;
.up_up {
margin-bottom: 48rpx;
.btn_view {
width: 148rpx;
height: 60rpx;
line-height: 60rpx;
text-align: center;
background: #13AFA8;
border-radius: 4rpx 4rpx 4rpx 4rpx;
font-size: 26rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #FFFFFF;
margin-top: 16rpx;
}
}
.up_cen {
.cenbtnall {
display: flex;
flex-wrap: wrap;
// justify-content: space-between;
// padding-right: 16rpx;
// border: 1px solid red;
.cen_btnview {
// border: 1px solid blue;
flex-basis: calc(25% - 16px);
margin-top: 16rpx;
margin-right: 16rpx;
width: 148rpx;
height: 58rpx;
line-height: 58rpx;
text-align: center;
background: #FFFFFF;
border-radius: 4rpx 4rpx 4rpx 4rpx;
opacity: 1;
font-size: 24rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #111111;
}
}
}
}
}
</style>

View File

@@ -0,0 +1,312 @@
<template>
<view class="content">
<view style="height: 24rpx;" />
<view class="con_imgview">
<u-swiper height="370rpx" :list="list" :circular="true" imgMode="widthFix" keyName="image"
:imgMode="aspectFit"></u-swiper>
</view>
<view class="positionview">
<view class="postop">
<view class="posleft">
<u-icon name="map-fill" color="#3D3D3D" size="14"></u-icon>
<text class="lefttxt">选择门店</text>
</view>
<view class="posright" @click="link('/pages/serve/repair/re_create/select_city')">
<text class="righttxt">{{ selectCity?selectCity:citySave }}</text>
<u-icon name="arrow-right" color="#999999" size="10"></u-icon>
</view>
</view>
<z-paging ref="paging" :fixed="false" use-page-scroll auto-full-height v-model="dataList" @query="queryList">
<view class="posfoot">
<view class="footview" hover-class="hover-footview" v-for="(item,index) in dataList" :key="item.id"
@click="link(`/pages/serve/repair/re_create/reservation?id=${item.id}`,`${item.id}`)">
<view class="footleft">
<image class="footleft_img" :src="item.backImage"></image>
<!-- coverImage 封面图 backImage 背景图 avatar 头像 -->
</view>
<view class="footright">
<view :class="['fr_up', checkIds.indexOf(item.id) !== -1 && 'checked-imp']">{{item.name}}
</view>
<view :class="['fr_centre', 'line-one', checkIds.indexOf(item.id) !== -1 && 'checked-imp']">
<text>{{item.distance}} km </text> <text class="suxian">|</text> <text>
{{item.province + item.city + item.addressDetail}} </text>
</view>
<view class="fr_down">
<view class="down_l">
<text :class="[ checkIds.indexOf(item.id) !== -1 && 'checked-imp']">评分</text> <text class="redtxt">
{{item.starLevel}} </text>
</view>
<view class="down_r">
<view class="down_r_icon" @click.stop="callPhone(JSON.stringify(item.phone))">
<image src="https://qicheoss.oss-cn-shanghai.aliyuncs.com/static/images/images/phone_fill.png"
mode=""></image>
</view>
<view class="down_r_icon">
<image src="https://qicheoss.oss-cn-shanghai.aliyuncs.com/static/images/images/pos_icon.png"
mode=""></image>
</view>
</view>
</view>
</view>
</view>
</view>
</z-paging>
</view>
</view>
</template>
<script>
import { getStoreList, getCarouselAPI } from '@/api/serve/repair/repair'
import { mapGetters } from 'vuex'
const QQMapWX = require('../../../../js_sdk/qqmap-wx-jssdk/qqmap-wx-jssdk.js')
var qqmapsdk = new QQMapWX({ key: 'SH4BZ-BN36N-UYSFP-SJMPC-LZMGK-EWF3P' })
export default {
data() {
return {
dataList: [],
list: [],
carousel: {
limit: 10,
page: 1
},
query: {
latitude: '30',
longitude: '126'
},
}
},
computed: { ...mapGetters(['checkIds', 'citySave', 'homenum','selectCity']) },
onLoad(query) {
if (this.selectCity) this.citySave=this.selectCity
if (this.homenum == 1) {
uni.setNavigationBarTitle({ title: '常规保养' })
}
if (this.homenum == 2) {
uni.setNavigationBarTitle({ title: '故障维修' })
}
if (this.homenum == 3) {
uni.setNavigationBarTitle({ title: '事故维修' })
}
if (this.homenum == 4) {
uni.setNavigationBarTitle({ title: '退车' })
}
},
onShow() {
uni.getLocation({
type: 'gcj02',
success: res => {
qqmapsdk.reverseGeocoder({
location: {
latitude: res.latitude,
longitude: res.longitude
},
success: res1 => {
this.$store.dispatch('SetCity', res1.result.address_component.city)
},
fail: res => {
console.log(res)
},
})
},
fail: err => {
console.log(err)
}
}),
this.getCarousel()
},
methods: {
queryList(pageNo, pageSize) {
getStoreList({
limit: pageSize,
page: pageNo,
city: this.citySave,
...this.query
}).then(res => {
this.$refs.paging.complete(res.data.list)
}).catch(err => {
this.$refs.paging.complete(false)
})
},
callPhone(phoneNumber) {
uni.makePhoneCall({ phoneNumber })
},
link(url, id) {
if (id) {
this.$store.dispatch('CheckIds', id * 1)
this.$store.dispatch('MerId', id)
}
uni.navigateTo({ url, })
},
// 轮播图
getCarousel() {
getCarouselAPI(this.carousel).then(res=>{
this.list = res.data.list
}).catch(err=>{
this.$toast(err)
})
},
}
}
</script>
<style lang="scss" scoped>
.content {
background-color: #f5f5f5;
.con_imgview {
margin: 0 auto;
margin-bottom: 32rpx;
width: 686rpx;
height: 370rpx;
overflow: hidden;
}
.positionview {
padding: 0 24rpx 24rpx 24rpx;
.postop {
// border: 1px solid;
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 22rpx;
.posleft {
display: flex;
align-items: center;
.leftimg {
width: 24rpx;
height: 24rpx;
}
.lefttxt {
font-size: 32rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #444444;
margin-left: 5rpx;
}
}
.posright {
display: flex;
.rightimg {
width: 10rpx;
height: 20rpx;
}
.righttxt {
font-size: 24rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #444444;
margin-right: 8rpx;
}
}
}
.posfoot {
// border: 1px solid red;
.footview {
display: flex;
padding: 32rpx 24rpx;
margin-bottom: 32rpx;
width: 702rpx;
background-color: #fff;
.footleft {
width: 168rpx;
height: 140rpx;
.footleft_img {
width: 168rpx;
height: 140rpx;
background-color: #AAAAAA;
}
}
.footright {
padding-left: 16rpx;
width: 470rpx;
.fr_up {
font-size: 32rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #111111;
}
.fr_centre {
font-size: 26rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #111111;
margin-bottom: 16rpx;
.suxian {
font-size: 20rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #AAAAAA;
margin: 0 8rpx;
}
}
.fr_down {
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
.down_l {
font-size: 24rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #111111;
line-height: 1;
.redtxt {
font-size: 40rpx;
font-family: Roboto, Roboto;
font-weight: 500;
color: #F20808;
}
}
.down_r {
display: flex;
.down_r_icon {
image {
margin-left: 20rpx;
width: 48rpx;
height: 48rpx;
}
}
}
}
}
}
.hover-footview {
background-color: #f1f1f1;
}
}
}
}
.line-one {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.checked-imp {
color: #999999 !important;
}
</style>

View File

@@ -0,0 +1,321 @@
<template>
<view class="retime">
<view class="tabs">
<view class="time_up">
<view class="up_up"> {{month}} </view>
<view class="up_cen">
<view class="mon" v-for="item in daysOfWeek" :key="item.id">
<view :class="item.day==day?'mon_up_only':'mon_up'" @click="selectTimeBtn(item.day)"> {{item.day}} </view>
<view class="mon_down"> {{item.week}} </view>
</view>
</view>
</view>
<view class="time_slot">
<view :class="onlySel==item.workingTime?'ts_only':item.past ?'ts_grey':'ts'" v-for="item in pastTimeSlots"
:key="item.id" @click="item.past ? null : selectSlot(item.workingTime)">
{{item.workingTime}}
</view>
</view>
<view class="selectedtime">
<view class="select">
<text class="sel_txt">已选择</text>
<view class="sel_down"> {{month}}{{day}} {{thisHour?thisHour:'请选时间'}} </view>
</view>
<view class="surebtn" @click="sureBtn"> 确认预约 </view>
</view>
</view>
</view>
</template>
<script>
import { getTimeAPI, getDateListAPI } from '@/api/serve/repair/repair'
import { mapGetters } from 'vuex'
export default {
data() {
return {
onlySel: '',
// 获取时间块
dateData: {
merId: null,
workingDay: ''
},
dateDataList: [],
ofWeek: null,
workingDay: '',
workingTime: '',
year: '',
month: '',
day: '',
thisHour: '',
nowDay: '',
nowYear: '',
}
},
onShow() {
this.getTimeList()
},
computed: {
...mapGetters(['checkIds', 'merId']),
daysOfWeek() {
const weeks = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'];
let daysOfWeek = [];
for (let i = 0; i < 7; i++) {
let d = new Date(this.dateData.workingDay);
d.setDate(d.getDate() + i);
daysOfWeek.push({
id: i + 1,
year: d.getFullYear(),
month: d.getMonth() + 1,
day: d.getDate(),
week: weeks[d.getDay()]
});
}
return daysOfWeek;
},
// 时间段
pastTimeSlots() {
const now = new Date(this.dateData.workingDay);
const nowMinutes = now.getHours() * 60 + now.getMinutes();
return this.dateDataList.map(slot => {
const end = slot.workingTime.split('-')[1];
const endMinutes = parseInt(end.split(':')[0]) * 60 + parseInt(end.split(':')[1]);
return this.day > this.nowDay || (this.year > this.nowYear) ? { ...slot } : {
...slot,
past: nowMinutes >
endMinutes
};
});
}
},
methods: {
getTimeList() {
this.dateData.merId = this.merId
// 当前时间
getTimeAPI().then(res=>{
console.log(res, '当前时间');
this.dateData.workingDay = res.data.day
this.ofWeek = res.data.dayOfWeek
this.getTime(res.data.day)
}).catch(err=>{
this.$toast(err)
})
// 时间块
getDateListAPI(this.dateData).then(res1=>{
this.dateDataList = res1.data
}).catch(err=>{
this.$toast(err)
})
},
// 选择哪天
selectTimeBtn(str) {
// console.log(str,'点击选择');
this.onlySel = ''
this.daysOfWeek.forEach(ele => {
// console.log(ele,'elele');
if (ele.day == str) {
this.year = ele.year
this.month = ele.month
this.day = ele.day
}
});
},
// 时间段
selectSlot(str) {
// console.log(str,'时间段');
this.thisHour = str
this.onlySel = str
},
getTime(dateTime) {
const d = new Date(dateTime)
this.year = d.getFullYear()
this.month = d.getMonth() + 1
this.day = d.getDate()
this.nowDay = d.getDate()
this.nowYear = d.getFullYear()
},
sureBtn() {
this.workingDay = this.year + '-' + this.month + '-' + this.day;
this.workingTime = this.thisHour
this.$store.dispatch('WorkingDay', this.workingDay)
this.$store.dispatch('WorkingTime', this.workingTime)
uni.navigateBack({
url: `/pages/serve/repair/re_create/reservation`
})
}
}
}
</script>
<style lang="scss" scoped>
.selectedtime {
display: flex;
justify-content: space-between;
align-items: center;
position: absolute;
bottom: 50rpx;
width: 90%;
.select {
width: 40%;
height: 96rpx;
.sel_txt {
font-size: 24rpx;
font-weight: 400;
color: #999999;
}
.sel_down {
font-size: 24rpx;
font-weight: 400;
color: #111111;
margin-top: 8rpx;
}
}
.surebtn {
width: 60%;
height: 96rpx;
background: #13AFA8;
border-radius: 48rpx;
opacity: 1;
text-align: center;
line-height: 96rpx;
font-size: 28rpx;
font-weight: 400;
color: #FFFFFF;
}
}
.time_slot {
// border: 1px solid red;
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
margin-top: 72rpx;
.ts_grey {
width: 48%;
height: 64rpx;
text-align: center;
line-height: 64rpx;
background: #F5F5F5;
border-radius: 8rpx;
opacity: 1;
font-size: 28rpx;
font-weight: 400;
color: #999999;
margin-bottom: 32rpx;
}
.ts {
width: 48%;
height: 64rpx;
text-align: center;
line-height: 64rpx;
background: #F5F5F5;
border-radius: 8rpx;
opacity: 1;
font-size: 28rpx;
font-weight: 400;
color: #111111;
margin-bottom: 32rpx;
}
.ts_only {
width: 48%;
height: 64rpx;
text-align: center;
line-height: 62rpx;
background: #13AFA8;
border-radius: 8rpx;
opacity: 1;
font-size: 28rpx;
font-weight: 400;
color: #FFFFFF;
margin-bottom: 32rpx;
}
}
.time_up {
.up_up {
font-size: 32rpx;
font-weight: 500;
color: #222222;
margin-bottom: 32rpx;
}
.up_cen {
// border: 1px solid blue;
display: flex;
justify-content: space-around;
align-items: center;
}
.mon {
margin: 0 auto;
.mon_up_grey {
width: 64rpx;
height: 64rpx;
text-align: center;
line-height: 64rpx;
background: #F5F5F5;
border-radius: 52rpx;
opacity: 1;
font-size: 24rpx;
font-weight: 400;
color: #999999;
}
.mon_up_only {
width: 64rpx;
height: 64rpx;
text-align: center;
line-height: 64rpx;
background: #13AFA8;
border-radius: 52rpx;
opacity: 1;
font-size: 24rpx;
font-weight: 400;
color: #FFFFFF;
}
.mon_up {
width: 64rpx;
height: 64rpx;
text-align: center;
line-height: 62rpx;
border-radius: 52rpx;
opacity: 1;
border: 2rpx solid #AAAAAA;
font-size: 24rpx;
font-weight: 400;
color: #111111;
}
.mon_down_grey {
font-size: 28rpx;
font-weight: 400;
color: #999999;
margin-top: 10rpx;
}
.mon_down {
font-size: 28rpx;
font-weight: 400;
color: #111111;
margin-top: 10rpx;
}
}
}
.retime {
height: 100vh;
padding: 32rpx;
background: #FFFFFF;
position: relative;
}
</style>

View File

@@ -1,14 +1,24 @@
<template>
<view class="unbindresult">
<view class="re_up">
<image class="re_img" src="@/static/images/app/serve/real_result_submit.png" mode=""></image>
<!-- #ifdef MP-WEIXIN -->
<image class="re_img" :src="`${config.aliyunOssUrl}/static/images/app/serve/real_result_submit.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image class="re_img" src="@/static/images/app/serve/real_result_submit.png" mode=""></image>
<!-- #endif -->
<view class="re_txt"> 您的资料已经提交成功 </view>
</view>
<view class="re_inspect" @click="toBindingPage"> 返回维修页面 </view>
<u-popup :show="showBinding" mode="center" @close="showBinding=false" :safeAreaInsetBottom='false'>
<view class="allView">
<view class="show_img">
<image src="@/static/images/app/serve/real_result_bgc.png" mode=""></image>
<!-- #ifdef MP-WEIXIN -->
<image :src="`${config.aliyunOssUrl}/static/images/app/serve/real_result_bgc.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image src="@/static/images/app/serve/real_result_bgc.png" mode=""></image>
<!-- #endif -->
</view>
<view class="big_txt"> 绑定车辆 </view>
<view class="small_txt"> 绑定后更有利于您的管理请去绑定 </view>
@@ -22,9 +32,11 @@
</template>
<script>
import config from '@/config'
export default{
data(){
return{
config,
showBinding:true
}
},

View File

@@ -10,7 +10,12 @@
<view class="top">
<view class="top_txt">填写个人信息</view>
<view class="top_imgview">
<image src="@/static/images/app/serve/realname_bgc.png"></image>
<!-- #ifdef MP-WEIXIN -->
<image :src="`${config.aliyunOssUrl}/static/images/app/serve/realname_bgc.png`"></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image src="@/static/images/app/serve/realname_bgc.png"></image>
<!-- #endif -->
</view>
</view>
<view class="formview">
@@ -37,10 +42,21 @@
<view class="upload-box">
<view class="content flex-wrap align-center">
<view class="image-box rel" v-for="(item,index) in imageList" :key="index">
<image :src="item" mode=""></image>
<image @click="DelPic(index)" class="reduce abs" src="@/static/images/app/serve/realname_clea.png" mode=""></image>
<!-- #ifdef MP-WEIXIN -->
<image :src="item" mode=""></image>
<image @click="DelPic(index)" class="reduce abs" :src="`${config.aliyunOssUrl}/static/images/app/serve/realname_clea.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image :src="item" mode=""></image>
<image @click="DelPic(index)" class="reduce abs" src="@/static/images/app/serve/realname_clea.png" mode=""></image>
<!-- #endif -->
</view>
<image src="@/static/images/app/serve/realname_upload.png" mode="" @click="getImage"></image>
<!-- #ifdef MP-WEIXIN -->
<image :src="`${config.aliyunOssUrl}/static/images/app/serve/realname_upload.png`" mode="" @click="getImage"></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image src="@/static/images/app/serve/realname_upload.png" mode="" @click="getImage"></image>
<!-- #endif -->
</view>
</view>
</view>
@@ -49,9 +65,11 @@
</template>
<script>
import config from '@/config'
export default {
data() {
return {
config,
isShow: true,
userInfo: {
id: null,

View File

@@ -1,29 +1,48 @@
<template>
<view class="content">
<view class="con_imgview">
<u-swiper height="370rpx" :list="list" :circular="true" imgMode="widthFix" keyName="image"
:imgMode="aspectFit"></u-swiper>
<u-swiper height="370rpx" :list="list" :circular="true" imgMode="widthFix" keyName="image" :imgMode="aspectFit"></u-swiper>
</view>
<view class="con_type">
<view class="title">
<text>选择维修类型</text>
</view>
<view class="typeview">
<view class="typeview_one" @click="toRepair">
<view class="typeview_one" @click="toRepair(1)">
<text class="typetxt">常规保养</text>
<image class="type_img" src="@/static/images/app/serve/repair_conserve.png"></image>
<!-- #ifdef MP-WEIXIN -->
<image class="type_img" :src="`${config.aliyunOssUrl}/static/images/app/serve/repair_conserve.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image class="type_img" src="@/static/images/app/serve/repair_conserve.png"></image>
<!-- #endif -->
</view>
<view class="typeview_one" @click="toRepair">
<view class="typeview_one" @click="toRepair(2)">
<text class="typetxt">故障维修</text>
<image class="type_img" src="@/static/images/app/serve/repair_fault.png"></image>
<!-- #ifdef MP-WEIXIN -->
<image class="type_img" :src="`${config.aliyunOssUrl}/static/images/app/serve/repair_fault.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image class="type_img" src="@/static/images/app/serve/repair_fault.png"></image>
<!-- #endif -->
</view>
<view class="typeview_one" @click="toRepair">
<view class="typeview_one" @click="toRepair(3)">
<text class="typetxt">事故维修</text>
<image class="type_img" src="@/static/images/app/serve/repair_accident.png"></image>
<!-- #ifdef MP-WEIXIN -->
<image class="type_img" :src="`${config.aliyunOssUrl}/static/images/app/serve/repair_accident.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image class="type_img" src="@/static/images/app/serve/repair_accident.png"></image>
<!-- #endif -->
</view>
<view class="typeview_one" @click="toRepair">
<view class="typeview_one" @click="toRepair(4)">
<text class="typetxt">退车</text>
<image class="type_img" src="@/static/images/app/serve/repair_refund.png"></image>
<!-- #ifdef MP-WEIXIN -->
<image class="type_img" :src="`${config.aliyunOssUrl}/static/images/app/serve/repair_refund.png`" mode=""></image>
<!-- #endif -->
<!-- #ifdef APP -->
<image class="type_img" src="@/static/images/app/serve/repair_refund.png"></image>
<!-- #endif -->
</view>
</view>
<view class="foottxt">
@@ -34,18 +53,35 @@
</template>
<script>
import { getCarouselAPI } from '@/api/serve/repair/repair'
import config from '@/config';
export default {
data() {
return {
list:[
require('@/static/images/app/serve/repair_swiper.png'),
require('@/static/images/app/serve/repair_swiper.png'),
]
// list:[
// require('@/static/images/app/serve/repair_swiper.png'),
// require('@/static/images/app/serve/repair_swiper.png'),
// ],
list:[],
config,
}
},
onShow() {
this.getCarousel()
},
methods: {
toRepair() {},
getCarousel() {
getCarouselAPI().then(res=>{
console.log(res,'维修页面---轮播图');
this.list = res.data.list
}).catch(err=>{
this.$toast(err)
})
},
toRepair(num) {
this.$store.dispatch('HomeNum', num)
uni.navigateTo({ url: `/pages/serve/repair/re_create/select_store` })
},
toFault() {},
toAccident() {},
toRefund() {},
@@ -56,12 +92,9 @@
<style lang="scss" scoped>
.content {
padding: 16rpx 32rpx 36rpx 32rpx;
// border-bottom: 1rpx solid #f5f5f5;
.con_imgview {
margin-bottom: 32rpx;
width: 686rpx;
height: 370rpx;
}
.con_type {

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

View File

@@ -16,5 +16,17 @@ const getters = {
workingHours: state => state.form.workingHours,
garage: state => state.form.garage,
materialRequisition: state => state.form.materialRequisition,
checkIds: state => state.tools.checkIds,
orderIds: state => state.tools.orderIds,
citySave: state => state.tools.citySave,
selectCity: state => state.tools.selectCity,
homenum: state => state.tools.homenum,
carNo: state => state.tools.carNo,
setupnum: state => state.tools.setupnum,
merId: state => state.tools.merId,
orderInfo: state => state.tools.orderInfo,
workingDay: state => state.tools.workingDay,
workingTime: state => state.tools.workingTime,
userInfo: state => state.user.userInfo
}
export default getters

View File

@@ -4,6 +4,8 @@ import user from '@/store/modules/user'
import form from '@/store/modules/form'
import pageManager from '@/store/modules/pageManager'
import websocket from '@/store/modules/websocket'
import tools from '@/store/modules/tools'
import binding from '@/store/modules/binding'
import getters from './getters'
Vue.use(Vuex)
@@ -13,7 +15,9 @@ const store = new Vuex.Store({
user,
websocket,
pageManager,
form
form,
tools,
binding
},
getters
})

33
store/modules/binding.js Normal file
View File

@@ -0,0 +1,33 @@
import storage from '@/utils/storage'
import constant from '@/utils/constant'
const binding = {
state: {
formData: {
carNo: "",
category: null,
company: "",
driveLicense: "",
ownerName: "",
type: null,
unbindTime: ""
},
},
mutations: {
SET_FORM: (state, city) => {
state.citySave = city
}
},
actions: {
SetCity({
commit
}, city) {
console.log('vuex', city);
commit('SET_FORM', city)
}
}
}
export default binding

115
store/modules/tools.js Normal file
View File

@@ -0,0 +1,115 @@
import storage from '@/utils/storage'
import constant from '@/utils/constant'
const tools = {
state: {
checkIds: uni.getStorageSync('vuex_checkIds') || [],
orderIds: uni.getStorageSync('vuex_orderIds') || [],
citySave: '',
selectCity:'', // 选择城市
homenum: null, // 区别repairType
carNo: '', // 车牌号
setupnum: null, // 区别协议隐私
merId:null, // 维修店id
orderInfo:{}, // 工单信息(重新提交)
workingDay:'', // 年月日
workingTime:'', // 时间段
},
mutations: {
SET_CHECKIDS: (state, id) => {
if (id) {
state.checkIds.push(id)
uni.setStorageSync('vuex_checkIds', state.checkIds)
} else {
state.checkIds = []
uni.setStorageSync('vuex_checkIds', [])
}
},
SET_CITY: (state, city) => {
state.citySave = city
},
SET_SELECTCITY: (state, selectCity) => {
state.selectCity = selectCity
},
SET_CARNO: (state, carNo) => {
state.carNo = carNo
},
SET_HOMENUM: (state, num) => {
state.homenum = num
},
SET_SETUPNUM: (state, num) => {
state.setupnum = num
},
SET_MERID: (state, merId) => {
state.merId = merId
},
SET_ORDERINFO: (state, orderInfo) => {
state.orderInfo = orderInfo
},
SET_ORDERIDS: (state, id) => {
if (id) {
state.orderIds.push(id)
uni.setStorageSync('vuex_orderIds', state.orderIds)
} else {
state.orderIds = []
uni.setStorageSync('vuex_orderIds', [])
}
},
SET_WORKINGDAY: (state, workingDay) => {
state.workingDay = workingDay
},
SET_WORKINGTIME: (state, workingTime) => {
state.workingTime = workingTime
},
},
actions: {
CheckIds({ commit }, id) {
console.log('vuex', id);
commit('SET_CHECKIDS', id)
},
OrderIds({ commit }, id) {
console.log('OrderIds', id);
commit('SET_ORDERIDS', id)
},
SetCity({ commit }, city) {
console.log('vuex', city);
commit('SET_CITY', city)
},
SelectCity({ commit }, selectCity) {
console.log('vuex-selectCity', selectCity);
commit('SET_SELECTCITY', selectCity)
},
CarNo({ commit }, carNo) {
console.log('vuex-carNo', carNo);
commit('SET_CARNO', carNo)
},
HomeNum({ commit }, num) {
console.log('vuex-num', num);
commit('SET_HOMENUM', num)
},
SetupNum({ commit }, num) {
console.log('vuex-num', num);
commit('SET_SETUPNUM', num)
},
MerId({ commit }, merId) {
console.log('vuex-merId', merId);
commit('SET_MERID', merId)
},
OrderInfo({ commit }, orderInfo) {
console.log('vuex-orderInfo', orderInfo);
commit('SET_ORDERINFO', orderInfo)
},
WorkingDay({ commit }, workingDay) {
console.log('vuex-workingDay', workingDay);
commit('SET_WORKINGDAY', workingDay)
},
WorkingTime({ commit }, workingTime) {
console.log('vuex-workingTime', workingTime);
commit('SET_WORKINGTIME', workingTime)
},
}
}
export default tools

View File

@@ -1,5 +1,10 @@
export default {
props: {
item: {
type:Array,
default(){
return []
}
}
}
}

View File

@@ -6,6 +6,7 @@
class="u-index-item"
:id="`u-index-item-${id}`"
:class="[`u-index-item-${id}`]"
@click="clickIndex"
>
<slot />
</view>
@@ -47,6 +48,10 @@
this.init()
},
methods: {
clickIndex(){
// console.log(this.item);
this.$emit('getItem',this.item)
},
init() {
// 此处会活动父组件实例并赋值给实例的parent属性
this.getParentData('u-index-list')