zhouzhenyuan 10 months ago
parent c21e88f45e
commit 8c18027cf2
  1. 17
      api/coupon.js
  2. 22
      api/feedback/index.js
  3. 7
      api/help.js
  4. 914
      pages - 副本.json
  5. 324
      pages/news/coupon/index.vue
  6. 350
      pages/news/coupon/list.vue
  7. 122
      pages/news/park/addressEdit.vue
  8. 18
      pages/news/park/addressList.vue
  9. 650
      pages/news1/feedback.vue
  10. 360
      pages/news1/help.vue
  11. 13
      pages/news1/huoyuan.vue
  12. 959
      pages/news1/wallet.vue
  13. 4
      pages/user/index.vue
  14. BIN
      static/wallet/wallet.png

@ -2,7 +2,10 @@ import request from '@/utils/request'
// api地址
const api = {
list: 'coupon/list'
list: 'coupon/list',
serveList:'coupon/server',
receive:'myCoupon/receive',
myCouponList:'myCoupon/list'
}
// 优惠券列表
@ -14,3 +17,15 @@ export const list = (param, option) => {
}
return request.get(api.list, param, options)
}
// 服务类优惠券
export const serveList = (param) => {
return request.get(api.serveList, param)
}
// 领券
export const receive=(data)=>{
return request.post(api.receive, data)
}
//我的优惠券
export const myCouponList=(data)=>{
return request.post(api.myCouponList, data)
}

@ -0,0 +1,22 @@
import request from '@/utils/request'
// api地址
const api = {
list: 'user/getFeedBack',
shopList: 'store/getStore',
add:'user/addFeedback'
}
// 我的反馈列表
export const list = (param, option) => {
return request.get(api.list, param, option)
}
// 获取可用商户
export const shopList = (param, option) => {
return request.get(api.shopList, param, option)
}
// 提交反馈
export const add=(data)=> {
return request.post(api.add, data)
}

@ -2,10 +2,15 @@ import request from '@/utils/request'
// api地址
const api = {
list: 'help/list'
list: 'help/list',
helpList:'article/helpCenter'
}
// 帮助中心列表
export const list = (param) => {
return request.get(api.list, param)
}
// 帮助中心列表
export const helpList = (param) => {
return request.get(api.helpList, param)
}

@ -1,914 +0,0 @@
{
"tabBar": {
"color": "#000000",
"selectedColor": "#fa2209",
"borderStyle": "black",
"backgroundColor": "#ffffff",
"list": [{
"pagePath": "pages/index/index",
"iconPath": "static/tabbar/home.png",
"selectedIconPath": "static/tabbar/home-active.png",
"text": "首页"
}, {
"pagePath": "pages/category/index",
"iconPath": "static/tabbar/cate.png",
"selectedIconPath": "static/tabbar/cate-active.png",
"text": "分类"
}, {
"pagePath": "pages/serve/index",
"iconPath": "static/tabbar/serve.png",
"selectedIconPath": "static/tabbar/serve-active.png",
"text": "服务"
}, {
"pagePath": "pages/cart/index",
"iconPath": "static/tabbar/cart.png",
"selectedIconPath": "static/tabbar/cart-active.png",
"text": "购物车"
}, {
"pagePath": "pages/user/index",
"iconPath": "static/tabbar/user.png",
"selectedIconPath": "static/tabbar/user-active.png",
"text": "我的"
}]
},
"pages": [ //pageshttps://uniapp.dcloud.io/collocation/pages
{
"path": "pages/index/index",
"style": {
"enablePullDownRefresh": true,
"navigationStyle": "custom"
}
},
{
"path": "pages/serve/index",
"style": {
"enablePullDownRefresh": true,
"navigationBarTitleText": "服务"
}
},
{
"path": "pages/category/index",
"style": {
"navigationBarTitleText": "全部分类"
}
},
{
"path": "pages/cart/index",
"style": {
"navigationBarTitleText": "购物车"
}
},
{
"path": "pages/user/index",
"style": {
"navigationBarTitleText": "个人中心",
"enablePullDownRefresh": true,
"navigationStyle": "custom",
"mp-alipay": {
"defaultTitle": "",
"transparentTitle": "always"
}
}
},
{
"path": "pages/member/index",
"style": {
// "navigationBarTitleText": "会员中心",
"navigationStyle": "custom"
}
},
{
"path": "pages/memberInfo/index",
"style": {
// "navigationBarTitleText": "会员购买记录",
"navigationStyle": "custom"
}
},
{
"path": "pages/invite/index",
"style": {
"navigationBarTitleText": "邀请有礼",
"navigationBarBackgroundColor": "#FF5554",
"navigationBarTextStyle": "white"
}
},
{
"path": "pages/custom/index",
"style": {
"enablePullDownRefresh": true
}
},
{
"path": "pages/search/index",
"style": {
"navigationBarTitleText": "商品搜索"
}
},
{
"path": "pages/login/index",
"style": {
"navigationStyle": "custom",
"navigationBarTitleText": "会员登录"
}
},
{
"path": "pages/user/bind/index",
"style": {
"navigationBarTitleText": "绑定手机"
}
},
{
"path": "pages/user/personal/index",
"style": {
"navigationBarTitleText": "个人信息"
}
},
{
"path": "pages/article/index",
"style": {
"navigationBarTitleText": "资讯列表"
}
},
{
"path": "pages/article/detail",
"style": {
"navigationBarTitleText": "资讯详情"
}
},
{
"path": "pages/help/index",
"style": {
"navigationBarTitleText": "帮助中心"
}
},
{
"path": "pages/coupon/index",
"style": {
"navigationBarTitleText": "领券中心"
}
},
{
"path": "pages/goods/list",
"style": {
"navigationBarTitleText": "商品列表",
"enablePullDownRefresh": true
}
},
{
"path": "pages/goods/detail",
"style": {
"navigationStyle": "custom"
// "navigationBarTitleText": "商品详情页"
}
},
{
"path": "pages/comment/index",
"style": {
"navigationBarTitleText": "商品评价页"
}
},
{
"path": "pages/my-coupon/index",
"style": {
"navigationBarTitleText": "我的优惠券"
}
},
{
"path": "pages/address/index",
"style": {
"navigationBarTitleText": "收货地址"
}
},
{
"path": "pages/address/create",
"style": {
"navigationBarTitleText": "新增收货地址"
}
},
{
"path": "pages/address/update",
"style": {
"navigationBarTitleText": "编辑收货地址"
}
},
{
"path": "pages/points/log",
"style": {
"navigationBarTitleText": "账单明细"
}
},
{
"path": "pages/wallet/index",
"style": {
"navigationBarTitleText": "我的钱包"
}
},
{
"path": "pages/wallet/balance/log",
"style": {
"navigationBarTitleText": "账单详情"
}
},
{
"path": "pages/wallet/recharge/index",
"style": {
"navigationBarTitleText": "充值中心"
}
},
{
"path": "pages/wallet/recharge/order",
"style": {
"navigationBarTitleText": "充值记录"
}
},
{
"path": "pages/checkout/index",
"style": {
"navigationBarTitleText": "订单结算台"
}
},
{
"path": "pages/checkout/cashier/index",
"style": {
"navigationBarTitleText": "支付订单"
}
},
{
"path": "pages/sureOrder/index",
"style": {
"navigationBarTitleText": "确认订单",
"navigationStyle": "custom"
}
},
{
"path": "pages/order/center",
"style": {
"navigationBarTitleText": "订单中心",
"enablePullDownRefresh": true
}
},
{
"path": "pages/order/index",
"style": {
"navigationBarTitleText": "我的订单",
"enablePullDownRefresh": true
}
},
{
"path": "pages/order/detail",
"style": {
"navigationStyle": "custom"
// "navigationBarTitleText": "订单详情",
// "navigationBarTextStyle": "black",
// "navigationBarBackgroundColor": "#ffaaff"
}
},
{
"path": "pages/order/express/index",
"style": {
"navigationBarTitleText": "物流跟踪"
}
},
{
"path": "pages/order/extract/check",
"style": {
"navigationBarTitleText": "订单自提核销"
}
},
{
"path": "pages/order/comment/index",
"style": {
"navigationBarTitleText": "订单评价"
}
},
{
"path": "pages/refund/index",
"style": {
"navigationBarTitleText": "退换/售后"
}
},
{
"path": "pages/refund/detail",
"style": {
"navigationBarTitleText": "售后详情"
}
},
{
"path": "pages/refund/apply",
"style": {
"navigationBarTitleText": "申请售后"
}
},
{
"path": "pages/shop/extract",
"style": {
"navigationBarTitleText": "选择自提门店"
}
},
{
"path": "pages/shop/detail",
"style": {
"navigationBarTitleText": "门店详情"
}
},
{
"path": "pages/dealer/index",
"style": {
"navigationBarTitleText": ""
}
},
{
"path": "pages/dealer/apply",
"style": {
"navigationBarTitleText": ""
}
},
{
"path": "pages/dealer/withdraw/apply",
"style": {
"navigationBarTitleText": ""
}
},
{
"path": "pages/dealer/withdraw/list",
"style": {
"navigationBarTitleText": ""
}
},
{
"path": "pages/dealer/poster",
"style": {
"navigationBarTitleText": ""
}
},
{
"path": "pages/dealer/order",
"style": {
"navigationBarTitleText": ""
}
},
{
"path": "pages/dealer/team",
"style": {
"navigationBarTitleText": ""
}
},
{
"path": "pages/bargain/index",
"style": {
"navigationBarTitleText": "砍价会场"
}
},
{
"path": "pages/bargain/goods/index",
"style": {
"navigationBarTitleText": "砍价商品"
}
},
{
"path": "pages/bargain/task",
"style": {
"navigationBarTitleText": "砍价任务"
}
},
{
"path": "pages/sharp/index",
"style": {
"navigationBarTitleText": "整点秒杀会场",
"enablePullDownRefresh": true
}
},
{
"path": "pages/sharp/goods/index",
"style": {
"navigationBarTitleText": "秒杀商品详情"
}
},
{
"path": "pages/groupon/index",
"style": {
"navigationBarTitleText": "拼团活动"
}
},
{
"path": "pages/groupon/goods/index",
"style": {
"navigationBarTitleText": "拼团商品"
}
},
{
"path": "pages/groupon/task/index",
"style": {
"navigationBarTitleText": "拼团详情",
// "navigationStyle": "custom"
"navigationBarBackgroundColor": "#FF5644",
"navigationBarTextStyle": "white"
}
},
{
"path": "pages/live/index",
"style": {
"navigationBarTitleText": "直播列表",
"enablePullDownRefresh": true
}
}, {
"path": "pages/invoice/index",
"style": {
"navigationBarTitleText": "我的发票抬头",
"enablePullDownRefresh": false
}
}, {
"path": "pages/invoice/detail",
"style": {
"navigationBarTitleText": "我的发票抬头",
"enablePullDownRefresh": false
}
}, {
"path": "pages/invoice/edit",
"style": {
"navigationBarTitleText": "申请发票",
"enablePullDownRefresh": false
}
}, {
"path": "pages/order/refund/refund",
"style": {
"navigationBarTitleText": "申请退款",
"enablePullDownRefresh": false
}
}, {
"path": "pages/order/refund/index",
"style": {
"navigationBarTitleText": "申请售后",
"enablePullDownRefresh": false
}
}, {
"path": "pages/order/refund/freight",
"style": {
"navigationBarTitleText": "退货运费",
"enablePullDownRefresh": false
}
}, {
"path": "pages/order/refund/refund1",
"style": {
"navigationBarTitleText": "申请退款",
"enablePullDownRefresh": false
}
}, {
"path": "pages/order/refund/refundDetail",
"style": {
"navigationBarTitleText": "退货退款详情",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
}, {
"path": "pages/order/refund/refundDetail1",
"style": {
"navigationBarTitleText": "退货退款详情",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
}, {
"path": "pages/invite/list",
"style": {
"navigationBarTitleText": "邀请记录",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
}, {
"path": "pages/user/vip/goods",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
}
],
"subPackages": [{
"root": "pages/news/",
"pages": [{
"path": "consult/store",
"style": {
"navigationBarTitleText": "门店相册",
"enablePullDownRefresh": false
}
},
{
"path": "consult/comment",
"style": {
"navigationBarTitleText": "评论",
"enablePullDownRefresh": false
}
},
{
"path": "consult/about",
"style": {
"navigationBarTitleText": "联系我们",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
},
{
"path": "consult/index",
"style": {
"navigationBarTitleText": "咨询",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
},
{
"path": "park/index",
"style": {
"navigationBarTitleText": "停车指引",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
},
{
"path": "park/recordHistory",
"style": {
"navigationBarTitleText": "预约记录",
"enablePullDownRefresh": false
}
}, {
"path": "park/addressList",
"style": {
"navigationBarTitleText": "地址",
"enablePullDownRefresh": false
}
}, {
"path": "park/addressEdit",
"style": {
"navigationBarTitleText": "地址",
"enablePullDownRefresh": false
}
}, {
"path": "park/personal",
"style": {
"navigationBarTitleText": "编辑信息",
"enablePullDownRefresh": false
}
},
{
"path": "coupon/index",
"style": {
"navigationBarTitleText": "领券中心",
"navigationBarBackgroundColor": "#FB3A22",
"navigationBarTextStyle": "white",
"enablePullDownRefresh": false
}
},
{
"path": "coupon/list",
"style": {
"navigationBarTitleText": "领券中心",
"navigationBarBackgroundColor": "#FB3A22",
"navigationBarTextStyle": "white",
"enablePullDownRefresh": false
}
},
{
"path": "recycling/index",
"style": {
"navigationBarTitleText": "上门回收",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
},
{
"path": "recycling/detail",
"style": {
"navigationBarTitleText": "上门回收",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
},
{
"path": "recycling/confirm",
"style": {
"navigationBarTitleText": "确认服务订单",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
},
{
"path": "recycling/timer",
"style": {
"navigationBarTitleText": "选择时间",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
},
{
"path": "recycling/order",
"style": {
"navigationBarTitleText": "订单详情",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
}
]
},
{
"root": "pages/activity/",
"pages": [{
"path": "presale",
"style": {
"navigationBarTitleText": "预售专区",
"enablePullDownRefresh": false
}
},
{
"path": "presaleRule",
"style": {
"navigationBarTitleText": "预售规则",
"enablePullDownRefresh": false
}
},
{
"path": "intimate",
"style": {
"navigationBarTitleText": "贴心服务",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
},
{
"path": "newsshop",
"style": {
"navigationBarTitleText": "新年换新",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
},
{
"path": "newPeople",
"style": {
"navigationBarTitleText": "新人首单礼",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
}
]
},
{
"root": "pages/news1/",
"pages": [{
"path": "logistics",
"style": {
"navigationStyle": "default",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "物流问题"
}
},
{
"path": "help",
"style": {
// "enablePullDownRefresh": true,
"navigationStyle": "default",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "帮助与客服"
}
},
{
"path": "jinqun",
"style": {
// "enablePullDownRefresh": true,
"navigationStyle": "default",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "进社群享更多福利"
}
}
]
}
]
}],
"subPackages": [{
"root": "pages/news/",
"pages": [{
"path": "coupon/index",
"style": {
"navigationBarTitleText": "领券中心",
"navigationBarBackgroundColor": "#FB3A22",
"navigationBarTextStyle": "white",
"enablePullDownRefresh": false
}
},
{
"path": "coupon/list",
"style": {
"navigationBarTitleText": "领券中心",
"navigationBarBackgroundColor": "#FB3A22",
"navigationBarTextStyle": "white",
"enablePullDownRefresh": false
}
},
{
"path": "recycling/index",
"style": {
"navigationBarTitleText": "上门回收",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
},
{
"path": "recycling/detail",
"style": {
"navigationBarTitleText": "上门回收",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
},
{
"path": "recycling/confirm",
"style": {
"navigationBarTitleText": "确认服务订单",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
},
{
"path": "recycling/timer",
"style": {
"navigationBarTitleText": "选择时间",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
},
{
"path": "recycling/order",
"style": {
"navigationBarTitleText": "订单详情",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
}
]
},
{
"root": "pages/activity/",
"pages": [{
"path": "presale",
"style": {
"navigationBarTitleText": "预售专区",
"enablePullDownRefresh": false
}
},
{
"path": "presaleRule",
"style": {
"navigationBarTitleText": "预售规则",
"enablePullDownRefresh": false
}
},
{
"path": "intimate",
"style": {
"navigationBarTitleText": "贴心服务",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
},
{
"path": "newsshop",
"style": {
"navigationBarTitleText": "新年换新",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
},
{
"path": "newPeople",
"style": {
"navigationBarTitleText": "新人首单礼",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
},
{
"path": "seckill",
"style": {
"navigationBarTitleText": "限时秒杀",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
},
{
"path": "ranking",
"style": {
"navigationBarTitleText": "排行",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
},
{
"path": "newGoods",
"style": {
"navigationBarTitleText": "新品首发",
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
}
]
},
{
"root": "pages/news1/",
"pages": [{
"path": "logistics",
"style": {
"navigationStyle": "default",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "物流问题"
}
},
{
"path": "help",
"style": {
"navigationStyle": "default",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "帮助与客服"
}
},
{
"path": "jinqun",
"style": {
// "enablePullDownRefresh": true,
"navigationStyle": "default",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "进社群享更多福利"
}
}, {
"path": "wallet",
"style": {
// "enablePullDownRefresh": true,
"navigationStyle": "custom",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "我的钱包"
}
},
{
"path": "huoyuan",
"style": {
// "enablePullDownRefresh": true,
"navigationStyle": "custom",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "我要货源"
}
},
{
"path": "feedback",
"style": {
// "enablePullDownRefresh": true,
"navigationStyle": "default",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "我要反馈"
}
},
{
"path": "MerchantSettlement",
"style": {
"navigationStyle": "default",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "商家入驻"
}
}
]
}
],
"globalStyle": {
// #ifdef H5
// "navigationStyle": "custom",
"maxWidth": 750,
"rpxCalcMaxDeviceWidth": 750, // rpx px 960
"rpxCalcBaseDeviceWidth": 560, // rpx 使 rpx px 375
"rpxCalcIncludeWidth": 9999, // rpx rpx 750
// #endif
"navigationBarBackgroundColor": "#ffffff",
"navigationBarTitleText": "",
"navigationBarTextStyle": "black",
"backgroundTextStyle": "dark"
},
"easycom": {
"autoscan": true,
"custom": {}
}
}

@ -1,4 +1,4 @@
<template>
<template>
<view class="coupon">
<view class="coupon-hd">
<image src="@/static/news/coupon-bg.jpg"></image>
@ -8,149 +8,233 @@
<view class="item" :class="tabIndex == 1?'item-on':''" @click="tabItem(1)">服务券</view>
</view>
<view class="coupon-bd">
<view class="item" v-for="i in 10" :key="i" @click="openPage()">
<view class="a"><text>890</text></view>
<view class="b">满999元使用</view>
<view class="c">适用于全场商品</view>
<view class="d">点击领取</view>
<view class="item" v-for="(item,index) in couponList" :key="index">
<view class="a" v-if="item.coupon_type==10"><text>{{item.reduce_price}}</text></view>
<view class="a" v-if="item.coupon_type==20"><text>{{item.discount}}</text></view>
<view class="b">{{item.min_price}}元使用</view>
<view class="c">
<text v-if="item.apply_range==10">适用于全场商品</text>
<text v-if="item.apply_range==20">适用于部分商品</text>
</view>
<view class="d" @click="receive(item)">点击领取</view>
<image src="@/static/news/icon-coupon-01.png"></image>
</view>
</view>
<view class="nolist">
<view class="nolist" v-if="couponList.length==0">
<image src="@/static/news/icon-coupon-03.png"></image>
<view class="txt">暂无已使用优惠券</view>
</view>
</view>
</template>
<script>
export default {
data() {
<view class="footer" @click="goMyCoupon">
查看我的优惠券
<u-icon name="arrow-right" class="fooIcon"></u-icon>
</view>
</view>
</template>
<script>
import * as CouponApi from '@/api/coupon'
export default {
data() {
return {
tabIndex: 0
}
},
tabIndex: 0,
couponList: []
}
},
onShow() {
this.getCoupon(this.tabIndex)
},
methods: {
getCoupon(index) {
const that = this
if (index == 0) {
CouponApi.list()
.then(res => {
that.couponList = res.data.list
})
.finally(() => that.isLoading = false)
} else {
CouponApi.serveList()
.then(res => {
that.couponList = res.data.list
})
.finally(() => that.isLoading = false)
}
},
openPage() {
uni.navigateTo({
url: "/pages/news/coupon/list"
})
},
tabItem(index){
this.tabIndex = index
}
}
}
</script>
<style lang="scss" scoped>
.coupon{
background-color: #FB3A22;
overflow: hidden;
.nolist{
width: 100%;
display: block;
margin: 0 auto;
text-align: center;
padding: 150rpx 50rpx;
image{
width: 388rpx;
height: 378rpx;
}
.txt{
font-size: 32rpx;
margin-top: 20rpx;
font-weight: 500;
color: #fff;
},
tabItem(index) {
this.tabIndex = index;
this.getCoupon(index)
},
receive(item) {
const that = this
CouponApi.receive({
couponId: item.coupon_id
})
.then(res => {
that.$toast(res.message)
})
.finally(() => that.isLoading = false)
},
goMyCoupon(){
uni.navigateTo({
url: "/pages/news/coupon/list"
})
},
}
}
&-hd{
width: 100%;
height: 445rpx;
image{
</script>
<style lang="scss" scoped>
.coupon {
background-color: #FB3A22;
overflow: hidden;
min-height: 100vh;
.nolist {
width: 100%;
height: 100%;
}
}
&-tab{
padding: 0 40rpx;
display: flex;
align-items: center;
justify-content: space-between;
.item{
width: 316rpx;
line-height: 80rpx;
border-radius: 10rpx;
font-size: 32rpx;
color: #FFFFFF;
display: block;
margin: 0 auto;
text-align: center;
&-on{
color: #F34A40;
background: #FFFFFF;
}
}
}
&-bd{
padding: 0 40rpx 40rpx;
overflow: hidden;
.item{
width: 662rpx;
height: 366rpx;
position: relative;
margin-top: 20rpx;
overflow: hidden;
image{
width: 100%;
height: 100%;
padding: 150rpx 50rpx;
image {
width: 388rpx;
height: 378rpx;
}
.a{
width: 100%;
position: absolute;
left: 60rpx;
top: 70rpx;
z-index: 2;
font-size: 36rpx;
font-weight: 500;
color: #FE6900;
text{
font-size: 68rpx;
}
}
.b{
width: 100%;
position: absolute;
left: 60rpx;
top: 160rpx;
z-index: 2;
.txt {
font-size: 32rpx;
margin-top: 20rpx;
font-weight: 500;
color: #6B6B6B;
color: #fff;
}
.c{
}
&-hd {
width: 100%;
height: 445rpx;
image {
width: 100%;
position: absolute;
left: 60rpx;
bottom: 20rpx;
z-index: 2;
font-size: 28rpx;
font-weight: 500;
color: #A7572C;
height: 100%;
}
.d{
width: 188rpx;
line-height: 68rpx;
background: linear-gradient(180deg, #FF7366 0%, #FF5242 100%);
border-radius: 68rpx;
position: absolute;
right: 28rpx;
top: 40rpx;
z-index: 2;
font-size: 28rpx;
font-weight: 500;
}
&-tab {
padding: 0 40rpx;
display: flex;
align-items: center;
justify-content: space-between;
.item {
width: 316rpx;
line-height: 80rpx;
border-radius: 10rpx;
font-size: 32rpx;
color: #FFFFFF;
text-align: center;
&-on {
color: #F34A40;
background: #FFFFFF;
}
}
}
&-bd {
padding: 0 40rpx 40rpx;
overflow: hidden;
height: 100%;
padding-bottom: 148rpx;
.item {
width: 662rpx;
height: 366rpx;
position: relative;
margin-top: 20rpx;
overflow: hidden;
image {
width: 100%;
height: 100%;
}
.a {
width: 100%;
position: absolute;
left: 60rpx;
top: 70rpx;
z-index: 2;
font-size: 36rpx;
font-weight: 500;
color: #FE6900;
text {
font-size: 68rpx;
}
}
.b {
width: 100%;
position: absolute;
left: 60rpx;
top: 160rpx;
z-index: 2;
font-size: 32rpx;
font-weight: 500;
color: #6B6B6B;
}
.c {
width: 100%;
position: absolute;
left: 60rpx;
bottom: 20rpx;
z-index: 2;
font-size: 28rpx;
font-weight: 500;
color: #A7572C;
}
.d {
width: 188rpx;
line-height: 68rpx;
background: linear-gradient(180deg, #FF7366 0%, #FF5242 100%);
border-radius: 68rpx;
position: absolute;
right: 28rpx;
top: 40rpx;
z-index: 2;
font-size: 28rpx;
font-weight: 500;
color: #FFFFFF;
text-align: center;
}
}
}
}
}
</style>
.footer {
display: flex;
position: fixed;
bottom: 0;
left: 0;
width: 100%;
height: 148rpx;
justify-content: center;
align-items: center;
font-size: 36rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #FA3B22;
line-height: 148rpx;
background: linear-gradient(180deg, #FFFFFF 0%, #FEEECA 100%);
.fooIcon{
margin-left: 36rpx;
}
}
</style>

@ -1,16 +1,22 @@
<template>
<template>
<view class="coupon">
<view class="coupon-tab">
<u-tabs :list="list" height="106" font-size="32" active-color="#F34A40" inactive-color="#686868" :is-scroll="false" v-model="tabIndex" @change="change"></u-tabs>
<u-tabs :list="list" height="106" font-size="32" active-color="#F34A40" inactive-color="#686868"
:is-scroll="false" v-model="tabIndex" @change="change"></u-tabs>
</view>
<view class="coupon-bd">
<view class="item" :class="tabIndex == 2?'item-on':''" v-for="i in 10" :key="i">
<view class="a"><text>890</text></view>
<view class="b">有效期2024.01-2024.01.19</view>
<view class="c">适用于全场商品</view>
<view class="d" v-if="tabIndex == 0">去使用</view>
<view class="e">满999元使用</view>
<view class="f">满999元减130元</view>
<view class="item" :class="tabIndex == 2?'item-on':''" v-for="(item,index) in couponList" :key="index">
<view class="a" v-if="item.coupon_type==10"><text>{{item.reduce_price}}</text></view>
<view class="a" v-if="item.coupon_type==20"><text>{{item.discount}}</text></view>
<view class="b">有效期{{item.end_time}}</view>
<view class="c">
<text v-if="item.apply_range==10">适用于全场商品</text>
<text v-if="item.apply_range==20">适用于部分商品</text>
</view>
<view class="d" v-if="tabIndex == 0" @click="goUse(item)">去使用</view>
<view class="e">{{item.min_price}}元使用</view>
<view class="f" v-if="item.coupon_type==10">{{item.min_price}}元减{{item.reduce_price}}</view>
<view class="f" v-if="item.coupon_type==20">{{item.min_price}}{{item.discount}}</view>
<image class="bg" v-if="tabIndex <= 1" src="@/static/news/icon-coupon-01.png"></image>
<image class="bg" v-else src="@/static/news/icon-coupon-02.png"></image>
<image class="icon" v-if="tabIndex == 1" src="@/static/news/icon-coupon-use.png"></image>
@ -21,161 +27,207 @@
</view>
</view>
</view>
<view class="nolist">
<view class="nolist" v-if="couponList.length==0">
<image src="@/static/news/icon-coupon-03.png"></image>
<view class="txt">暂无已使用优惠券</view>
</view>
</view>
</template>
<script>
export default {
data() {
</view>
</template>
<script>
import * as CouponApi from '@/api/coupon'
export default {
data() {
return {
list: [{
name: '未使用'
}, {
name: '已使用'
}, {
name: '已过期'
list: [{
name: '未使用',
val:'isUsable'
}, {
name: '已使用',
val:'isUse'
}, {
name: '已过期',
val:'isExpire'
}],
tabIndex: 0
}
},
tabIndex: 0,
couponList:[]
}
},
onShow() {
this.getCoupon(this.tabIndex)
},
methods: {
change() {
},
tabItem(index){
getCoupon(e) {
const that = this
let param={
dataType:that.list[e].val
}
CouponApi.myCouponList(param)
.then(res => {
that.couponList = res.data.list.data
})
.finally(() => that.isLoading = false)
},
change(e) {
this.couponList=[]
this.getCoupon(e)
},
tabItem(index) {
this.tabIndex = index
}
}
}
</script>
<style lang="scss" scoped>
.coupon{
overflow: hidden;
.nolist{
width: 100%;
display: block;
margin: 0 auto;
text-align: center;
padding: 150rpx 50rpx;
image{
width: 388rpx;
height: 378rpx;
}
.txt{
font-size: 32rpx;
margin-top: 20rpx;
font-weight: 500;
color: #959595;
},
goUse(item){
// 使
if(item.coupon_case==10){
//
uni.navigateTo({
url:''
})
}
},
}
}
&-bd{
padding: 0 40rpx 40rpx;
</script>
<style lang="scss" scoped>
.coupon {
overflow: hidden;
.item{
width: 662rpx;
height: 366rpx;
position: relative;
margin-top: 20rpx;
overflow: hidden;
.bg{
width: 100%;
height: 100%;
}
.icon{
width:220rpx;
height: 195rpx;
position: absolute;
right: 0;
bottom: 0;
z-index:1;
}
.a{
width: 235rpx;
position: absolute;
right: 0;
top: 40rpx;
z-index: 2;
font-size: 36rpx;
font-weight: 500;
text-align: center;
color: #FE6900;
text{
font-size: 68rpx;
}
}
.b{
position: absolute;
left: 40rpx;
top: 110rpx;
z-index: 2;
font-size: 28rpx;
font-weight: 500;
color: #AFAFAF;
}
.e{
position: absolute;
left: 40rpx;
top: 46rpx;
z-index: 2;
font-size: 36rpx;
font-weight: 500;
color: #454545;
}
.f{
position: absolute;
left: 40rpx;
top: 160rpx;
z-index: 2;
font-size: 28rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #6C6C6C;
.nolist {
width: 100%;
display: block;
margin: 0 auto;
text-align: center;
padding: 150rpx 50rpx;
image {
width: 388rpx;
height: 378rpx;
}
.c{
position: absolute;
left: 40rpx;
bottom: 20rpx;
z-index: 2;
font-size: 28rpx;
.txt {
font-size: 32rpx;
margin-top: 20rpx;
font-weight: 500;
color: #A7572C;
color: #959595;
}
.d{
width: 188rpx;
line-height: 68rpx;
background: linear-gradient(180deg, #FF7366 0%, #FF5242 100%);
border-radius: 68rpx;
position: absolute;
right: 28rpx;
top: 140rpx;
z-index: 2;
font-size: 28rpx;
font-weight: 500;
color: #FFFFFF;
text-align: center;
}
.line{
position: absolute;
right: 230rpx;
height: 200rpx;
width: 2px;
z-index: 3;
top: 36rpx;
}
&-on{
.a{
color: #BBBBBB;
}
&-bd {
padding: 0 40rpx 40rpx;
overflow: hidden;
.item {
width: 662rpx;
height: 366rpx;
position: relative;
margin-top: 20rpx;
overflow: hidden;
.bg {
width: 100%;
height: 100%;
}
.icon {
width: 220rpx;
height: 195rpx;
position: absolute;
right: 0;
bottom: 0;
z-index: 1;
}
.a {
width: 235rpx;
position: absolute;
right: 0;
top: 40rpx;
z-index: 2;
font-size: 36rpx;
font-weight: 500;
text-align: center;
color: #FE6900;
text {
font-size: 68rpx;
}
}
.b {
position: absolute;
left: 40rpx;
top: 110rpx;
z-index: 2;
font-size: 28rpx;
font-weight: 500;
color: #AFAFAF;
}
.e {
position: absolute;
left: 40rpx;
top: 46rpx;
z-index: 2;
font-size: 36rpx;
font-weight: 500;
color: #454545;
}
.f {
position: absolute;
left: 40rpx;
top: 160rpx;
z-index: 2;
font-size: 28rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #6C6C6C;
}
.c {
position: absolute;
left: 40rpx;
bottom: 20rpx;
z-index: 2;
font-size: 28rpx;
font-weight: 500;
color: #A7572C;
}
.d {
width: 188rpx;
line-height: 68rpx;
background: linear-gradient(180deg, #FF7366 0%, #FF5242 100%);
border-radius: 68rpx;
position: absolute;
right: 28rpx;
top: 140rpx;
z-index: 2;
font-size: 28rpx;
font-weight: 500;
color: #FFFFFF;
text-align: center;
}
.line {
position: absolute;
right: 230rpx;
height: 200rpx;
width: 2px;
z-index: 3;
top: 36rpx;
}
.c{
color: #BBBBBB;
&-on {
.a {
color: #BBBBBB;
}
.c {
color: #BBBBBB;
}
}
}
}
}
}
</style>
</style>

@ -17,7 +17,8 @@
<view class="a">所属城市</view>
<view class="b">
<picker mode="region" :value="form.region" @change="bindCityChange">
<view class="select">{{cityInfo.province}}{{cityInfo.city}}{{cityInfo.area}}<u-icon name="arrow-right"></u-icon></view>
<view class="select">{{cityInfo.province}}{{cityInfo.city}}{{cityInfo.area}}<u-icon
name="arrow-right"></u-icon></view>
</picker>
</view>
</view>
@ -28,14 +29,16 @@
</view>
</view>
</view>
<view class="addressList-bd">
<view class="addressList-bd" v-if="type=='edit'">
<view class="a">设为默认收货地址</view>
<view class="b">
<u-switch v-model="checked" active-color="#55BD6A" inactive-color="#eee"></u-switch>
<u-switch v-model="checked" active-color="#55BD6A" inactive-color="#eee"
@change="setDefault"></u-switch>
</view>
</view>
<view class="addressList-fd">
<view class="btn" @click="saveAddress">保存收货地址</view>
<view class="btn" @click="saveAddress" v-if="type=='add'">保存收货地址</view>
<view class="btn" @click="editAddress" v-if="type=='edit'">保存收货地址</view>
</view>
</view>
</template>
@ -45,59 +48,132 @@
export default {
data() {
return {
array:[],
index:0,
type: 'add',
array: [],
index: 0,
checked: false,
value: "",
cityInfo:{
province:'请选择省市区',
city:'',
area:''
cityInfo: {
province: '请选择省市区',
city: '',
area: ''
},
form: {
content: '',
// content: '',
name: '',
phone: '',
region: [],
detail: ''
},
addressDetail:null,
addressDetail: null,
addressId: '',
};
},
onLoad(optios){
if(optios.addressDetail){
this.addressDetail =JSON.parse(optios.addressDetail) ;
onLoad(optios) {
if (optios.addressDetail) {
this.type = 'edit'
this.addressDetail = JSON.parse(optios.addressDetail);
this.addressId = this.addressDetail.address_id
this.cityInfo.province = this.addressDetail.region.province;
this.cityInfo.city = this.addressDetail.region.city;
this.cityInfo.area = this.addressDetail.region.region;
this.form.name = this.addressDetail.name;
this.form.phone = this.addressDetail.phone;
this.form.region = [this.addressDetail.province_id,this.addressDetail.city_id,this.addressDetail.region_id];
this.form.region = [{
value: this.addressDetail.province_id,
label: this.addressDetail.region.province
}, {
value: this.addressDetail.city_id,
label: this.addressDetail.region.city
}, {
value: this.addressDetail.region_id,
label: this.addressDetail.region.region
}];
this.form.detail = this.addressDetail.detail;
console.log(this.addressDetail,'收货地址详情')
}
},
methods: {
bindCityChange(e){
console.log(e,'选择的省市区数据')
methods: {
bindCityChange(e) {
this.cityInfo.province = e.detail.value[0];
this.cityInfo.city = e.detail.value[1];
this.cityInfo.area = e.detail.value[2];
this.form.region = e.detail.code;
this.form.region = [{
value: e.detail.code[0],
label: e.detail.value[0]
}, {
value: e.detail.code[1],
label: e.detail.value[1]
}, {
value: e.detail.code[2],
label: e.detail.value[2]
}];
},
saveAddress() {
//
const that = this
let params = that.form
AddressApi.add(params)
if (that.form.name == '') {
return that.$toast('请填写收货人姓名')
}
if (that.form.phone == '') {
return that.$toast('请填写收货人手机号')
}
if (that.form.region == []) {
return that.$toast('请选择所属地市')
}
AddressApi.add(that.form)
.then(result => {
that.$toast(result.message)
uni.navigateBack()
setTimeout(() => {
uni.navigateBack()
}, 1000)
})
.finally(() => {
})
},
editAddress() {
//
const that = this
if (that.form.name == '') {
return that.$toast('请填写收货人姓名')
}
if (that.form.phone == '') {
return that.$toast('请填写收货人手机号')
}
if (that.form.region == []) {
return that.$toast('请选择所属地市')
}
AddressApi.edit(that.form)
.then(result => {
that.$toast(result.message)
setTimeout(() => {
uni.navigateBack()
}, 1000)
})
.finally(() => {
})
},
setDefault(val) {
//
const that = this
if (val) {
AddressApi.setDefault(that.addressId)
.then(result => {
that.$toast(result.message);
setTimeout(() => {
uni.navigateBack()
}, 500)
})
}
},
}
}
</script>

@ -1,7 +1,7 @@
<template>
<view class="addressList">
<view class="item" v-for="(item,index) in addressList" :key="index">
<view class="a">{{item.name}} {{item.phone}}<text>默认</text></view>
<view class="a">{{item.name}} {{item.phone}}<text v-if="item.address_id==defaultId">默认</text></view>
<view class="b">
<view class="d">
{{item.detail}}
@ -22,14 +22,26 @@
export default {
data() {
return {
addressList: []
addressList: [],
defaultId:'',
};
},
onShow() {
this.getAddressList()
this.getDefault()
},
methods: {
getDefault(){
//
const that = this
return new Promise((resolve, reject) => {
AddressApi.defaultId()
.then(res => {
that.defaultId = res.data.defaultId
})
.catch(reject)
})
},
getAddressList() {
const that = this
return new Promise((resolve, reject) => {

@ -1,6 +1,5 @@
<template>
<view>
<view class="order-tab">
<view :class="OrderType==0?'tab action':'tab'" @click="onOrderTab(0)">
<text>我要反馈</text>
@ -14,49 +13,44 @@
<text>我的反馈</text>
<text class="line"></text>
</view>
</view>
<view class="section1" v-if="OrderType==0">
<u-form :model="form" ref="uForm">
<view class="section1Item">
<u-form-item label="反馈类型" label-width="150">
<u-radio-group v-model="form.type">
<u-radio active-color="#FF4434" v-for="(item, index) in checkboxList1" :key="index" :name="item.name">
<u-radio active-color="#FF4434" v-for="(item, index) in checkboxList1" :key="index"
:name="item.name">
{{item.name}}
</u-radio>
</u-radio-group>
</u-form-item>
<u-form-item label="反馈类型" label-width="150">
<u-radio-group v-model="form.shop">
<u-radio active-color="#FF4434" v-for="(item, index) in checkboxList2" :key="index" :name="item.name">
<u-radio active-color="#FF4434" v-for="(item, index) in checkboxList2" :key="index"
:name="item.name">
{{item.name}}
</u-radio>
</u-radio-group>
</u-form-item>
<u-form-item label="门店" label-width="150" @click="typeShow = true">
<u-input v-model="form.shopText" placeholder="请选择门店" type="select" @click="typeShow = true"/>
<u-action-sheet :list="type" :cancel-btn="false" v-model="typeShow" @click="actionSheetCallback"></u-action-sheet>
<u-form-item label="门店" label-width="150" @click="typeShow = true">
<u-input v-model="form.shopText" placeholder="请选择门店" type="select" @click="typeShow = true" />
<u-action-sheet :list="shopList" :cancel-btn="false" v-model="typeShow"
@click="actionSheetCallback"></u-action-sheet>
</u-form-item>
<u-form-item label="投诉内容" label-width="150" label-position="top">
<u-input v-model="form.comment" class="textarea" placeholder="请填写投诉内容" type="textarea"/>
<u-input v-model="form.comment" class="textarea" placeholder="请填写投诉内容" type="textarea" />
</u-form-item>
<u-upload
:fileList="finishImageList"
:previewFullImage="true"
@afterRead="afterRead"
:maxCount="8" width="180" height="180"
upload-text="上传照片"
@delete="deletePic"
name="1"
multiple
></u-upload>
<u-upload :fileList="finishImageList" :previewFullImage="true" @afterRead="afterRead" :maxCount="8"
width="180" height="180" upload-text="上传照片" @delete="deletePic" name="1" multiple></u-upload>
</view>
<view class="section1Item" style="margin-top:20upx;">
<view class="section1Item" style="margin-top:20rpx;">
<u-form-item label="您的称呼" label-width="150">
<u-input placeholder="请填写" v-model="form.name" />
</u-form-item>
@ -70,71 +64,76 @@
<view class="introText">1.工作人员将于1小时内与您联系解决您的问题(工作时间为周一至周日09:00~21:30)</view>
<view class="introText">2.有效投诉奖励最高奖励200元现金/代金券</view>
</view>
<view class="submitBtn">
<view class="submitBtn" @click="submit">
提交
</view>
</view>
<view class="section2" v-if="OrderType==1">
<view class="feedShow">
<view class="feedShow" v-for="(item,index) in feedBackList" :key="index">
<view class="feedbackItem">
<view class="statusfb">
已完成
<text v-if="item.status==0">待处理</text>
<text v-if="item.status==1">已完成</text>
</view>
<view class="feedbackContent">
<view class="fbTitle">
<view class="fbFlag">投诉</view>
<view class="fbFlag">
<text v-if="item.type==1">投诉</text>
<text v-if="item.type==2">建议</text>
<text v-if="item.type==3">表扬</text>
</view>
<view class="fbTitleText">
广福路爱情海玫瑰天街玫瑰天街玫瑰天街玫瑰天街玫瑰天街玫瑰天街
{{item.store_name}}
</view>
</view>
<u-read-more show-height="150" color="#9E9E9E" :toggle="true" close-text="展开">
<rich-text :nodes="content"></rich-text>
<rich-text :nodes="item.content"></rich-text>
</u-read-more>
<view class="timefb">
2024-01-25 15:00:00
{{item.created_at}}
</view>
</view>
<view class="feedbackResult">
<u-collapse>
<u-collapse-item title="处理结果">
<u-form :model="result" ref="result">
<u-form :model="item" ref="item">
<u-form-item label="处理时间" label-width="150" prop="time">
{{result.time}}
{{item.replay_at}}
</u-form-item>
<u-form-item label="反馈内容" label-width="150" prop="feedback">
{{result.feedback}}
{{item.content}}
</u-form-item>
</u-form>
</u-collapse-item>
</u-collapse>
</view>
</view>
</view>
</view>
<view class="section2" v-if="OrderType==2">
<view class="feedShow">
<view class="feedShow" v-for="(item,index) in feedBackList" :key="index">
<view class="feedbackItem">
<view class="feedbackResult">
<u-collapse>
<u-collapse-item :open="true" title="处理结果">
<u-form :model="result" ref="result">
<u-form :model="item" ref="item">
<u-form-item label="处理时间" label-width="150" prop="time">
{{result.time}}
{{item.replay_at}}
</u-form-item>
<u-form-item label="反馈内容" label-width="150" prop="feedback">
{{result.feedback}}
{{item.content}}
</u-form-item>
</u-form>
</u-collapse-item>
</u-collapse>
</view>
</view>
</view>
<!-- <view class="empty">
<image src="/static/news1/feedbackempty.png" mode="widthFix"></image>
@ -147,77 +146,128 @@
</template>
<script>
import * as feedback from '@/api/feedback'
export default {
data() {
return {
OrderType: 2,
OrderType: 0,
shop_id: '',
form: {
type: '',
shop:'',
shopText:'',
comment:'',
name:'',
phone:'186'
shop: '',
shopText: '',
comment: '',
name: '',
phone: ''
},
checkboxList1: [
{name: '投诉'},
{name: '建议'},
{name: '表扬'}
],
checkboxList2: [
{name: '门店'},
{name: '其他'},
],
typeShow:false,
type: [
feedBackList: [],
page: 1,
checkboxList1: [{
name: '投诉',
val:1
},
{
name: '建议',
val:2
},
{
text: '12345'
name: '表扬',
val:3
}
],
checkboxList2: [{
name: '门店'
},
{
name: '其他'
},
],
typeShow: false,
shopList: [],
//
finishImageList:[],
content: `山不在高,有仙则名。水不在深,有龙则灵。斯是陋室,惟吾德馨。
苔痕上阶绿草色入帘青谈笑有鸿儒往来无白丁可以调素琴阅金经
无丝竹之乱耳无案牍之劳形南阳诸葛庐西蜀子云亭孔子云何陋之有山不在高有仙则名水不在深有龙则灵斯是陋室惟吾德馨
苔痕上阶绿草色入帘青谈笑有鸿儒往来无白丁可以调素琴阅金经
无丝竹之乱耳无案牍之劳形南阳诸葛庐西蜀子云亭孔子云何陋之有山不在高有仙则名水不在深有龙则灵斯是陋室惟吾德馨
苔痕上阶绿草色入帘青谈笑有鸿儒往来无白丁可以调素琴阅金经
无丝竹之乱耳无案牍之劳形南阳诸葛庐西蜀子云亭孔子云何陋之有山不在高有仙则名水不在深有龙则灵斯是陋室惟吾德馨
苔痕上阶绿草色入帘青谈笑有鸿儒往来无白丁可以调素琴阅金经
无丝竹之乱耳无案牍之劳形南阳诸葛庐西蜀子云亭孔子云何陋之有`,
result:{
time:'2024-01-23 09:11:10',
feedback:`山不在高,有仙则名。水不在深,有龙则灵。斯是陋室,惟吾德馨。
苔痕上阶绿草色入帘青谈笑有鸿儒往来无白丁可以调素琴阅金经
无丝竹之乱耳无案牍之劳形南阳诸葛庐西蜀子云亭孔子云何陋之有山不在高有仙则名水不在深有龙则灵斯是陋室惟吾德馨
苔痕上阶绿草色入帘青谈笑有鸿儒往来无白丁可以调素琴阅金经
无丝竹之乱耳无案牍之劳形南阳诸葛庐西蜀子云亭孔子云何陋之有山不在高有仙则名水不在深有龙则灵斯是陋室惟吾德馨
苔痕上阶绿草色入帘青谈笑有鸿儒往来无白丁可以调素琴阅金经
无丝竹之乱耳无案牍之劳形南阳诸葛庐西蜀子云亭孔子云何陋之有山不在高有仙则名水不在深有龙则灵斯是陋室惟吾德馨
苔痕上阶绿草色入帘青谈笑有鸿儒往来无白丁可以调素琴阅金经
无丝竹之乱耳无案牍之劳形南阳诸葛庐西蜀子云亭孔子云何陋之有`
}
finishImageList: [],
result: {}
};
},
onShow() {
this.getShopList()
},
onLoad(params) {
},
methods:{
methods: {
getShopList() {
const that = this
that.shopList = []
return new Promise((resolve, reject) => {
feedback.shopList()
.then(res => {
if (res.data.length > 0) {
for (var i = 0; i < res.data.length; i++) {
let obj = {
text: res.data[i].store_name,
id: res.data[i].store_id
}
that.shopList.push(obj)
}
}
})
.catch(reject)
})
},
submit() {
const that = this
let params = {
shop_id: that.shop_id,
type: that.form.type,
object_type: that.form.shop,
content: that.form.comment
}
return new Promise((resolve, reject) => {
feedback.add(params)
.then(res => {
that.$toast(res.message)
})
.catch(reject)
})
},
/**
* 订单tab点击
*/
onOrderTab(type){
onOrderTab(type) {
this.OrderType = type;
if (type != 0) {
this.getFeedBack(type)
}
},
getFeedBack(type) {
//
const that = this
let params = {
is_my: '',
page: that.page
}
params.is_my = type == 1 ? 0 : 1
return new Promise((resolve, reject) => {
feedback.list(params)
.then(res => {
if (res.status == 200) {
that.feedBackList = res.data.list.data
}
})
.catch(reject)
})
},
actionSheetCallback(index) {
this.form.shopText = this.type[index].text;
this.form.shopText = this.shopList[index].text;
this.shop_id = this.shopList[index].id
},
//
async afterRead(event) {
let lists = [].concat(event.file)
let fileListLen = this[`fileList${event.name}`].length
lists.map((item) => {
@ -229,8 +279,8 @@
})
for (let i = 0; i < lists.length; i++) {
const result = await this.uploadFilePromise(lists[i].url)
if(JSON.parse(result).code==1){
if (JSON.parse(result).code == 1) {
let item = this[`fileList${event.name}`][fileListLen]
this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
status: 'success',
@ -238,12 +288,12 @@
url: result
}))
fileListLen++
}else{
} else {
this[`fileList${event.name}`].splice(fileListLen, 1)
}
}
},
//
uploadFilePromise(url) {
@ -264,7 +314,7 @@
// }, 1000)
// }else{
// uni.$u.toast(JSON.parse(res.data).msg)
// resolve(res.data)
// }
// },
@ -276,7 +326,7 @@
},
//
deletePic(event) {
this.finishImageList.splice(event.index, 1)
},
}
@ -284,211 +334,237 @@
</script>
<style scoped lang="scss">
page{
min-height: 100%;
width: 100%;
background-color: #F7F8FA;
}
/* 订单tab */
.order-tab{
position: fixed;
left: 0;
top: 100upx;
z-index: 10;
display: flex;
align-items: center;
width: 100%;
height: 100rpx;
background-color: #FFFFFF;
.tab{
position: relative;
page {
min-height: 100%;
width: 100%;
background-color: #F7F8FA;
}
/* 订单tab */
.order-tab {
position: fixed;
left: 0;
top: 0;
z-index: 10;
display: flex;
align-items: center;
justify-content: center;
flex:1;
height: 80%;
text{
width: 100%;
height: 100rpx;
background-color: #FFFFFF;
.tab {
position: relative;
display: flex;
align-items: center;
justify-content: center;
flex: 1;
height: 80%;
text {
font-size: 32rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
}
}
.action {
text {
color: #FF4D4D;
line-height: 19px;
}
.line {
position: absolute;
left: 50%;
bottom: 0;
width: 32rpx;
height: 6rpx;
background: #FF4D4D;
transform: translate(-50%, 0);
border-radius: 32px 32px 32px 32px;
}
}
}
.section1 {
border: 1px solid transparent;
.section1Item {
background-color: #fff;
border-radius: 4px 4px 4px 4px;
margin: 120rpx 30rpx 30rpx 30rpx;
padding: 10rpx 40rpx;
}
::v-deep .u-form-item--left__content__label {
font-size: 32rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
font-weight: bold;
color: #373737;
}
}
.action{
text{
color: #FF4D4D;
line-height: 19px;
::v-deep .u-border-bottom:after {
border: none;
}
.line{
position: absolute;
left: 50%;
bottom: 0;
width: 32upx;
height: 6upx;
background: #FF4D4D;
transform: translate(-50%,0);
border-radius: 32px 32px 32px 32px;
.textarea {
height: 250rpx;
background: #F7F8FA;
border-radius: 3px 3px 3px 3px;
opacity: 1;
}
}
}
.section1{
border:1px solid transparent;
.section1Item{
background-color: #fff;
border-radius: 4px 4px 4px 4px;
margin:120upx 30upx 30upx 30upx;
padding:10upx 40upx;
}
::v-deep .u-form-item--left__content__label{
font-size: 32upx;
font-family: PingFang SC, PingFang SC;
font-weight: bold;
color: #373737;
}
::v-deep .u-border-bottom:after{
border:none;
}
.textarea{
height: 250upx;
background: #F7F8FA;
border-radius: 3px 3px 3px 3px;
opacity: 1;
}
::v-deep .u-input__textarea{
padding:26upx;
}
.introContent{
margin-top:16upx;
margin:16upx 30upx 30upx 30upx;
.introText{
font-size: 24upx;
color:#C5C6C8;
margin-top:16upx;
line-height: 40upx;
::v-deep .u-input__textarea {
padding: 26rpx;
}
}
.submitBtn{
height: 100upx;
background: linear-gradient(180deg, #FE7E71 0%, #FF4434 100%);
border-radius: 52px 52px 52px 52px;
opacity: 1;
font-size: 32upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #FFFFFF;
margin:32upx 30upx 30upx 30upx;
text-align: center;
line-height: 100upx;
}
}
.section2{
min-height: 100%;
padding:120upx 30upx 30upx 30upx;
.feedShow{
padding:30upx;
border-radius: 4px 4px 4px 4px;
background-color: #fff;
}
.feedbackItem{
position: relative;
margin-bottom:30upx;
// border:1px solid yellow;
.statusfb{
position: absolute;
right:0;
width: 92upx;
height: 44upx;
line-height: 44upx;
text-align: center;
background-color: #EEFAF6;
font-size: 26upx;
.introContent {
margin-top: 16rpx;
margin: 16rpx 30rpx 30rpx 30rpx;
.introText {
font-size: 24rpx;
color: #C5C6C8;
margin-top: 16rpx;
line-height: 40rpx;
}
}
.submitBtn {
height: 100rpx;
background: linear-gradient(180deg, #FE7E71 0%, #FF4434 100%);
border-radius: 52px 52px 52px 52px;
opacity: 1;
font-size: 32rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #2DC37F;
top:40upx;
color: #FFFFFF;
margin: 32rpx 30rpx 30rpx 30rpx;
text-align: center;
line-height: 100rpx;
}
}
.section2 {
min-height: 100%;
padding: 120rpx 30rpx 30rpx 30rpx;
.feedShow {
padding: 30rpx;
border-radius: 4px 4px 4px 4px;
background-color: #fff;
margin-bottom: 16rpx;
}
.feedbackContent{
padding-bottom:30upx;
border-bottom:1px solid #A0A0A0;
.fbTitle{
display: flex;
align-items: center;
width:calc(100% - 100upx);
.fbFlag{
// width: 54upx;
// height: 44upx;
// line-height: 44upx;
background: #FFFFFF;
border-radius: 3px;
opacity: 1;
padding:5upx;
border: 1px solid #FF4D4D;
font-size: 26upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #FF4D4D;
flex-shrink: 1;
.feedbackItem {
position: relative;
margin-bottom: 30rpx;
// border:1px solid yellow;
.statusfb {
position: absolute;
right: 0;
width: 92rpx;
height: 44rpx;
line-height: 44rpx;
text-align: center;
background-color: #EEFAF6;
font-size: 26rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #2DC37F;
top: 40rpx;
}
.feedbackContent {
padding-bottom: 30rpx;
border-bottom: 1px solid #A0A0A0;
.fbTitle {
display: flex;
align-items: center;
width: calc(100% - 100rpx);
.fbFlag {
// width: 54rpx;
// height: 44rpx;
// line-height: 44rpx;
background: #FFFFFF;
border-radius: 3px;
opacity: 1;
padding: 5rpx;
border: 1px solid #FF4D4D;
font-size: 26rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #FF4D4D;
flex-shrink: 1;
}
.fbTitleText {
flex: 1;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
color: #000;
font-size: 500;
margin-left: 20rpx;
}
}
.fbTitleText{
flex:1;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
color:#000;
font-size: 500;
margin-left:20upx;
.timefb {
color: #A0A0A0;
}
}
.timefb{
color:#A0A0A0;
.feedbackResult {
::v-deep .u-form-item--left__content__label {
color: #A6A6A6;
}
::v-deep .u-border-bottom:after {
border: none;
}
::v-deep .u-form-item__body {
align-items: baseline;
}
::v-deep .u-form-item--right__content__slot {
line-height: 36rpx;
}
}
}
.feedbackResult{
::v-deep .u-form-item--left__content__label{
color:#A6A6A6;
}
::v-deep .u-border-bottom:after{
border:none;
}
::v-deep .u-form-item__body{
align-items: baseline;
}
::v-deep .u-form-item--right__content__slot{
line-height: 36upx;
.empty {
text-align: center;
position: relative;
top: 150rpx;
image {
width: 210rpx;
height: auto;
}
}
}
.empty{
text-align: center;
position: relative;
top:150upx;
image{
width:210upx;
height:auto;
}
.emptytext{
font-size: 32upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #717171;
}
}
}
.emptytext {
font-size: 32rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #717171;
}
}
</style>
}
</style>

@ -1,219 +1,247 @@
<template>
<view class="help">
<view class="helpContent">
<view class="helpTitle">帮助中心</view>
<view class="helpItem" v-for="(item,index) in itemList" :key="index">
<view class="helpMain">
<u-icon name="arrow-left" class="zhishi" color="#dfdbdb" size="28"></u-icon>
<image :src="item.icon" class="titleIcon" mode="widthFix"></image>
<view class="mainText">
<text>{{item.title}}</text>
<u-icon name="arrow-right" v-if="item.title!=''" color="#8B8B8B" size="22"></u-icon>
<view class="help">
<view class="helpContent">
<view class="helpTitle">帮助中心</view>
<view class="helpItem" v-for="(item,index) in itemList" :key="index">
<view class="helpMain">
<u-icon name="arrow-left" class="zhishi" color="#dfdbdb" size="28"></u-icon>
<image :src="item.icon" class="titleIcon" mode="widthFix"></image>
<view class="mainText">
<text>{{item.name}}</text>
<u-icon name="arrow-right" v-if="item.name!=''" color="#8B8B8B" size="22"></u-icon>
</view>
</view>
<view class="mainItem">
<view class="itemText" v-for="(p,i) in item.child" :key="i">{{p.title}}</view>
</view>
</view>
<view class="mainItem">
<view class="itemText" v-for="(p,i) in item.children" :key="i">{{p}}</view>
<!-- <view class="itemText">如何申请换货</view>
<view class="itemText">退换货地址如何查看1111111</view>
<view class="itemText">退换货地址如何查看45643567543567</view> -->
</view>
</view>
</view>
<view class="footer">
<view class="btn">
<image src="/static/news1/n7.png" mode="widthFix"></image>
<text>在线客服9:00-22:00</text>
<view class="footer">
<view class="btn">
<image src="/static/news1/n7.png" mode="widthFix"></image>
<text>在线客服9:00-22:00</text>
</view>
</view>
</view>
</view>
</template>
<script>
import * as help from '@/api/help'
export default {
data() {
return {
itemList: [
{
title:'物流问题',
icon:'/static/news1/n1.png',
children:['发货失效','发货时间','催促物流','修改收货地址']
itemList: [{
title: '物流问题',
icon: '/static/news1/n1.png',
children: ['发货失效', '发货时间', '催促物流', '修改收货地址']
},
{
title:'',
icon:'',
children:['延迟发货','物流状态不更新','商品验货与签收','配送快递']
title: '',
icon: '',
children: ['延迟发货', '物流状态不更新', '商品验货与签收', '配送快递']
},
{
title:'售后问题',
icon:'/static/news1/n2.png',
children:['如何申请退货','如何申请换货','退换货运费政策','退换货何时退款']
title: '售后问题',
icon: '/static/news1/n2.png',
children: ['如何申请退货', '如何申请换货', '退换货运费政策', '退换货何时退款']
},
{
title:'',
icon:'',
children:['退换货政策','极速售后服务','维修政策','退换货地址如何查看']
title: '',
icon: '',
children: ['退换货政策', '极速售后服务', '维修政策', '退换货地址如何查看']
},
{
title:'订单问题',
icon:'/static/news1/n3.png',
children:['修改订单','取消订单','价格保护','发票服务']
title: '订单问题',
icon: '/static/news1/n3.png',
children: ['修改订单', '取消订单', '价格保护', '发票服务']
},
{
title:'',
icon:'',
children:['商城理的商品1234567','商城实物与图片3456768','违规订单处理123456','话费充值说明']
title: '',
icon: '',
children: ['商城理的商品1234567', '商城实物与图片3456768', '违规订单处理123456', '话费充值说明']
},
{
title:'活动问题',
icon:'/static/news1/n4.png',
children:['余额','秒杀说明','预售说明','积分规则']
title: '活动问题',
icon: '/static/news1/n4.png',
children: ['余额', '秒杀说明', '预售说明', '积分规则']
},
{
title:'',
icon:'',
children:['红包说明','plus会员','分销员','团购说明']
title: '',
icon: '',
children: ['红包说明', 'plus会员', '分销员', '团购说明']
},
{
title:'风控规则',
icon:'/static/news1/n5.png',
children:['风控规则','','','']
title: '风控规则',
icon: '/static/news1/n5.png',
children: ['风控规则', '', '', '']
},
{
title:'服务政策',
icon:'/static/news1/n6.png',
children:['隐私政策','商务合作','会员协议','分销协议']
title: '服务政策',
icon: '/static/news1/n6.png',
children: ['隐私政策', '商务合作', '会员协议', '分销协议']
},
{
title:'',
icon:'',
children:['常见问题','','退换货细则','争议处理判定标准']
title: '',
icon: '',
children: ['常见问题', '', '退换货细则', '争议处理判定标准']
},
],
}
},
onShow() {
this.getHelpList()
},
methods: {
getHelpList() {
const that = this
help.helpList()
.then(res => {
if (res.status == 200) {
that.itemList = res.data.list;
}
})
.finally(() => that.isLoading = false)
},
}
}
</script>
<style lang="scss" scoped>
page{
min-height:100%;
padding-bottom: 120upx;
}
.help{
height: 100%;
.helpContent{
margin: 20upx;
background: #fff;
border-radius: 20upx;
overflow: hidden;
padding:20upx;
.helpTitle{
font-size: 32upx;
color:#000000;
padding: 20upx 0;
// border-bottom: 3upx solid #dfdbdb;
}
.helpItem{
display: flex;
color: #333333;
font-size: 28upx;
border-top:1px solid #dfdbdb;
.helpMain{
width: 180upx;
height:180upx;
border-right:1px solid #dfdbdb;
flex-shrink:0;
page {
min-height: 100%;
padding-bottom: 120upx;
}
.help {
height: 100%;
.helpContent {
margin: 20upx;
background: #fff;
border-radius: 20upx;
overflow: hidden;
padding: 20upx;
.helpTitle {
font-size: 32upx;
color: #000000;
padding: 20upx 0;
// border-bottom: 3upx solid #dfdbdb;
}
.helpItem {
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
position: relative;
.titleIcon{
width: 50upx;
height:auto;
}
.mainText{
margin-top:8upx;
text{
color: #333333;
font-size: 28upx;
margin-left:5upx;
color: #333333;
font-size: 28upx;
border-top: 1px solid #dfdbdb;
.helpMain {
width: 180upx;
height: 180upx;
border-right: 1px solid #dfdbdb;
flex-shrink: 0;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
position: relative;
.titleIcon {
width: 50upx;
height: auto;
}
.mainText {
margin-top: 8upx;
text {
color: #333333;
font-size: 28upx;
margin-left: 5upx;
}
}
.zhishi {
position: absolute;
right: -5px;
background: #fff;
top: 50%;
transform: translateY(-50%);
}
}
.zhishi{
position: absolute;
right: -5px;
background: #fff;
top: 50%;
transform: translateY(-50%);
.mainItem {
display: flex;
flex-wrap: wrap;
align-items: center;
width: calc(100% - 90px);
.itemText {
width: 50%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
text-align: center;
// padding: 24upx 16upx;
height: 90upx;
line-height: 90upx;
padding: 0 10upx;
}
:nth-child(2n) {
// border-bottom:1px solid #dfdbdb;
border-left: 1px solid #dfdbdb;
// border-right:1px solid #dfdbdb;
}
:last-child {
border-top: 1px solid #dfdbdb;
// border-left:1px solid #dfdbdb;
}
:nth-child(3) {
border-top: 1px solid #dfdbdb;
}
}
}
.mainItem{
}
.footer {
position: fixed;
z-index: 9;
bottom: 0;
width: 100%;
background-color: #fff;
.btn {
height: 100upx;
margin: 10upx 30upx;
background: #FE6048;
border-radius: 28px 28px 28px 28px;
opacity: 1;
display: flex;
flex-wrap: wrap;
align-items: center;
width: calc(100% - 90px);
.itemText{
width: 50%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
text-align: center;
// padding: 24upx 16upx;
height: 90upx;
line-height: 90upx;
padding:0 10upx;
}
:nth-child(2n){
// border-bottom:1px solid #dfdbdb;
border-left:1px solid #dfdbdb;
// border-right:1px solid #dfdbdb;
}
:last-child{
border-top:1px solid #dfdbdb;
// border-left:1px solid #dfdbdb;
justify-content: center;
image {
width: 54upx;
height: auto;
}
:nth-child(3){
border-top:1px solid #dfdbdb;
text {
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 600;
color: #FFFFFF;
margin-left: 100upx;
}
}
}
}
.footer{
position: fixed;
z-index:9;
bottom:0;
width: 100%;
background-color: #fff;
.btn{
height: 100upx;
margin:10upx 30upx;
background: #FE6048;
border-radius: 28px 28px 28px 28px;
opacity: 1;
display: flex;
align-items: center;
justify-content: center;
image{
width:54upx;
height:auto;
}
text{
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 600;
color: #FFFFFF;
margin-left:100upx;
}
}
}
}
</style>

@ -2,8 +2,9 @@
<view class="huoyuan">
<view style="width:100%;position: fixed;top:0;z-index:99">
<view class="navBarContent">
<u-icon name="arrow-left" style="position: absolute;top:50%;left:40upx;transform: translateY(-50%);" color="#ffffff" size="24"></u-icon>
<text>我要货源</text>
<u-navbar title="我要货源" :border-bottom="false" :background="background" title-color="#fff"></u-navbar>
<!-- <u-icon name="arrow-left" style="position: absolute;top:50%;left:40upx;transform: translateY(-50%);" color="#ffffff" size="24"></u-icon>
<text>我要货源</text> -->
</view>
</view>
@ -71,9 +72,14 @@
</template>
<script>
import img from "@/static/news1/walletBg.png"
export default {
data() {
return {
background: {
background: 'url('+ img+') center top no-repeat',
backgroundSize: '100%',
},
list:[
{icon:'/static/news1/m1.png',title:'发采购询价单',subTitle:'填写所需信息一键发布询价'},
{icon:'/static/news1/m2.png',title:'卖家实时报价',subTitle:'60分钟获取卖家报价'},
@ -295,4 +301,7 @@ page{
}
}
.bgImg{
width: 100%;
}
</style>

File diff suppressed because it is too large Load Diff

@ -361,7 +361,7 @@
</view>
</view>
<view class="serveIcon">
<image src="/static/user/complaint.png" mode="" class="icons"></image>
<image src="/static/user/complaint.png" mode="" class="icons" @click="goPage('/pages/news1/feedback')"></image>
<view class="serveInfo">
投诉
</view>
@ -523,7 +523,7 @@
getCoupon() {
//
uni.navigateTo({
url: '/pages/news/coupon/list'
url: '/pages/news/coupon/index'
})
},
myWallet() {

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Loading…
Cancel
Save