fanfan 1 year ago
commit 14a7395928
  1. 6
      .idea/misc.xml
  2. 8
      .idea/modules.xml
  3. 6
      .idea/vcs.xml
  4. 64
      .idea/workspace.xml
  5. 9
      .idea/yanzong_qianduan.iml
  6. 7
      api/user/vip.js
  7. 2
      common/model/dealer/Setting.js
  8. 4
      manifest.json
  9. 10
      pages.json
  10. 2
      pages/cart/index.vue
  11. 3
      pages/checkout/index.vue
  12. 56
      pages/dealer/order.vue
  13. 2
      pages/invite/index.vue
  14. 9
      pages/invite/list.vue
  15. 9
      pages/login/index.vue
  16. 48
      pages/news/user/index.vue
  17. 297
      pages/news/user/vip.vue
  18. 6
      pages/news1/text.vue
  19. 12
      pages/news3/JoinDistribution.vue
  20. 678
      pages/news3/shopDealerOrder.vue
  21. 4
      pages/shop/extract.vue
  22. 560
      pages/sureOrder/index.vue
  23. 68
      pages/user/index.vue

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/yanzong_qianduan.iml" filepath="$PROJECT_DIR$/.idea/yanzong_qianduan.iml" />
</modules>
</component>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ChangeListManager">
<list default="true" id="9bef4bf5-aade-4c02-9012-bbc8fec848f0" name="Changes" comment="">
<change beforePath="$PROJECT_DIR$/components/goods-sku-popup/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/components/goods-sku-popup/index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pages/cart/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/cart/index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pages/goods/components/SkuPopup.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/goods/components/SkuPopup.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pages/goods/detail.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/goods/detail.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pages/invoice/indexset.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/invoice/indexset.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pages/news/park/browsingHistory.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/news/park/browsingHistory.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pages/news/recycling/confirm1.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/news/recycling/confirm1.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pages/news/recycling/order.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/news/recycling/order.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pages/news/recycling/orderList.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/news/recycling/orderList.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pages/news/user/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/news/user/index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pages/news3/ManualEntry.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/news3/ManualEntry.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pages/news3/seasoningCondimentsRecord.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/news3/seasoningCondimentsRecord.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pages/order/detail.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/order/detail.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pages/order/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/order/index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pages/order/refund/refund.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/order/refund/refund.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pages/sureOrder/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/sureOrder/index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/pages/user/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/user/index.vue" afterDir="false" />
<change beforePath="$PROJECT_DIR$/static/detail/buy.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/static/detail/priceback.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/static/detail/pro.png" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/static/weixiu.png" beforeDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="Git.Settings">
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component>
<component name="MarkdownSettingsMigration">
<option name="stateVersion" value="1" />
</component>
<component name="ProjectId" id="2csvnkKiehY0MbsRW3bGP7kwr64" />
<component name="ProjectViewState">
<option name="hideEmptyMiddlePackages" value="true" />
<option name="showLibraryContents" value="true" />
</component>
<component name="PropertiesComponent"><![CDATA[{
"keyToString": {
"RunOnceActivity.OpenProjectViewOnStart": "true",
"RunOnceActivity.ShowReadmeOnStart": "true",
"WebServerToolWindowFactoryState": "false",
"last_opened_file_path": "/Users/zhangtianning/work/job_liu/goodCity/yanzong_qianduan",
"vue.rearranger.settings.migration": "true"
}
}]]></component>
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
<component name="TaskManager">
<task active="true" id="Default" summary="Default task">
<changelist id="9bef4bf5-aade-4c02-9012-bbc8fec848f0" name="Changes" comment="" />
<created>1708913269339</created>
<option name="number" value="Default" />
<option name="presentableId" value="Default" />
<updated>1708913269339</updated>
<workItem from="1708913291435" duration="655000" />
</task>
<servers />
</component>
</project>

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

@ -4,7 +4,8 @@ import request from '@/utils/request'
const api = {
brandList: 'goods/brandList',
category: 'category/list',
getImage: 'goods/getCommonConfig'
getImage: 'goods/getCommonConfig',
vipList:'user/list'
}
// 大牌
@ -19,3 +20,7 @@ export const category = (data) => {
export const getImage = (data) => {
return request.get(api.getImage, data)
}
//会员管理
export const getVipList = (data) => {
return request.get(api.vipList, data)
}

@ -29,7 +29,7 @@ const getApiData = () => {
* 有缓存的情况下返回缓存, 没有缓存从后端api获取
* @param {bool} isCache 是否从缓存中获取
*/
const data = (isCache = false) => {
const data = (key,isCache = false) => {console.log(key);console.log('...............');
return new Promise((resolve, reject) => {
const cacheData = getStorage()
if (isCache && cacheData) {

@ -114,13 +114,13 @@
"lazyCodeLoading" : "requiredComponents",
"permission" : {
"scope.userLocation" : {
"desc" : "你的位置信息将用于为您提供更合适您的服务"
"desc" : "获取当前所在城市位置"
}
},
"optimization" : {
"subPackages" : true
},
"requiredPrivateInfos" : [ "chooseAddress" ]
"requiredPrivateInfos" : [ "chooseAddress","getLocation" ]
},
"mp-alipay" : {
"usingComponents" : true

@ -1065,6 +1065,14 @@
"navigationBarTitleText": "商品订单"
}
},
{
"path": "shopDealerOrder",
"style": {
"navigationStyle": "default",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "分销商品"
}
},
{
"path": "shopOrderDetails",
"style": {
@ -1107,7 +1115,7 @@
// "enablePullDownRefresh": true,
"navigationStyle": "custom",
"navigationBarTextStyle": "black",
"navigationBarTitleText": "加入分销"
"navigationBarTitleText": "分销中心"
}
},
{

@ -575,7 +575,7 @@
.goods-price {
vertical-align: bottom;
color: $main-bg;
flex: 1;
.unit {
font-size: 24rpx;
}

@ -359,7 +359,8 @@
//
personal: {},
//
setting: {}
setting: {},
distance_unit: ""
}
},

@ -1,20 +1,52 @@
<template>
<view class="container" :style="appThemeStyle">
<view class="container" :style="appThemeStyle" style="background: #F8F8F8;">
<mescroll-body ref="mescrollRef" :sticky="true" @init="mescrollInit" :down="{ use: false }" :up="upOption" @up="upCallback">
<!-- tab栏 -->
<u-tabs :list="tabList" :is-scroll="false" :current="curTab" active-color="#786cff" :duration="0.2" @change="onChangeTab" />
<view style="padding: 15rpx 36rpx;">
<u-search bgColor="#fff" placeholder="输入订单编号/收件人名字/电话商品名称" v-model="keyword"></u-search>
</view>
<!-- 列表数据 -->
<view class="widget-list b-f">
<view class="widget-list b-f" v-show="list.data.length>0">
<view class="widget__detail" v-for="(item, index) in list.data" :key="index">
<view class="detail__row dis-flex flex-x-between">
<view class="detail__row dis-flex flex-x-between" style="margin-bottom: 18rpx;">
<view class="detail__left f-24">订单号{{ item.order.order_no }}</view>
<view class="detail__right f-24 c-violet">
{{ item.order.state_text }}
</view>
</view>
<view class="detail__row m-top10 dis-flex flex-x-between">
<view class="detail__row m-top10 dis-flex flex-x-between" @click="onTargetDetail(goodsItem.goods_id)" v-for="(goodsItem,goodsIndex) in item.goods">
<view class="detail__left dis-flex flex-y-center">
<view class="user-avatar">
<avatar-image :url="goodsItem.goods_image" :width="100" :borderWidth="4" :borderColor="`#fff`" />
</view>
<view class="user-info dis-flex flex-dir-column flex-x-center" style="justify-content: flex-end">
<!-- <view class="user-nickName f-28">
{{ item.user.nick_name }}
</view> -->
<view class="user-time f-24 c-80">x{{ goodsItem.total_num }}</view>
</view>
</view>
<view class="detail__right dis-flex flex-dir-column flex-x-center flex-y-center">
<view class="detail__money t-r col-m" style="color: #F21A1C;">
<text class="f-26">¥ </text>
<text class="f-28">{{ goodsItem.goods_price }}</text>
</view>
</view>
</view>
<view class="dis-flex flex-dir-row flex-x-end flex-y-center">
<view class="detail__time f-22 c-80">
含运费{{item.order.express_price}}
</view>
<view class="f-28" style="color: #3B3B3B;margin-left: 10rpx;font-weight: 600;">
共计<text style="color: #F21A1C;">¥{{ item.order.total_price }}</text>
</view>
</view>
<!-- <view class="detail__row m-top10 dis-flex flex-x-between">
<view class="detail__left dis-flex flex-y-center">
<view class="user-avatar">
<avatar-image :url="item.user.avatar_url" :width="100" :borderWidth="4" :borderColor="`#fff`" />
@ -31,7 +63,7 @@
</view>
<view class="detail__time f-22 c-80">{{ item.create_time }}</view>
</view>
</view>
</view> -->
</view>
</view>
</mescroll-body>
@ -54,6 +86,7 @@
mixins: [MescrollMixin],
data() {
return {
keyword:'',
//
tabList: [],
//
@ -84,11 +117,15 @@
},
methods: {
onTargetDetail(goodsId) {
this.$navTo('pages/goods/detail', {
goodsId
})
},
//
getSetting() {
const app = this
SettingModel.data()
SettingModel.data({keyword:app.keyword})
.then(setting => {
const words = setting.words.order
app.setPageTitle(words.title)
@ -181,7 +218,8 @@
</style>
<style lang="scss" scoped>
.c-violet {
color: #786cff;
// color: #786cff;
color:#FF6813;
}
.c-80 {

@ -88,7 +88,7 @@
backgroundBg1: {
"background-color": "transparent"
},
isPopup: true,
isPopup: false,
info: {},
list: ["邀请更多好友,获得更多奖金"]
}

@ -3,14 +3,15 @@
<view class="user-bd">
<view class="li" v-for="(a,i) in list" :key="i">
<view class="l">
<image :src="$picUrl+'/static/news/avater.png'"></image>
<image v-if="a.invitee.money" :src="a.invitee.money"></image>
<image v-else :src="$picUrl+'/static/news/avater.png'"></image>
</view>
<view class="m">
<view class="n">AUIIO</view>
<view class="t">2023-02-12 10:00</view>
<view class="n">{{a.invitee.nick_name}}</view>
<view class="t">{{a.create_time}}</view>
</view>
<view class="r">
+<text>18</text>
+<text>{{a.money}}</text>
</view>
</view>
</view>

@ -15,7 +15,7 @@
<text v-if="showCountDown">{{countdown}}</text>
</view>
<view class="c">
查看并同意<text>用户服务协议</text><text>隐私政策</text>
查看并同意<text @click="toTextPage(1)">用户服务协议</text><text @click="toTextPage(2)">隐私政策</text>
</view>
</view>
<view class="login-fd login-fd-on" @click="login">登录</view>
@ -26,6 +26,7 @@
</template>
<script>
import * as UserApi from '@/api/user'
import * as CaptchaApi from '@/api/captcha';
import mpWeiXinMobile from './components/mp-weixin-mobile.vue'
@ -57,7 +58,11 @@
this.share_user_id = o.share_user_id
},
methods: {
toTextPage(n) {
uni.navigateTo({
url: "/pages/news1/text?pageFlag=" + n
})
},
validatePhoneNumber(phone) {
//
var regExp = /^1[3456789]\d{9}$/;

@ -5,21 +5,21 @@
</view>
<view class="user-hd">
<view class="avater">
<image :src="$picUrl+'/static/news/avater.png'"></image>
<image :src="form.avatar_url?form.avatar_url:`${$picUrl}/static/news/avater.png`"></image>
</view>
<view class="info">
<!-- p会员 无p游客 -->
<view class="name">我是昵称<text class="p">游客</text></view>
<view class="desc">真实姓名张三</view>
<view class="desc">18089800909</view>
<view class="name">{{form.nick_name}}<text class="p">{{form.user_type_text}}</text></view>
<!-- <view class="desc">真实姓名张三</view> -->
<view class="desc">{{form.mobile}}</view>
</view>
</view>
<view class="user-show">
<view class="a">
<text>余额(</text>¥0.00
<text>余额(</text>¥{{form.expend_money?form.expend_money:0.00}}
</view>
<view class="a">
<text>积分(</text>0.00
<text>积分(</text>{{form.grade?form.grade:0.00}}
</view>
</view>
<view class="user-order">
@ -93,13 +93,42 @@
export default {
data() {
return {
form:{
address_id: null,
avatar: null,
avatar_id: null,
avatar_url: null,
balance: "",
city: null,
country: null,
create_time: "",
effective_time: null,
expend_money: "",
gender: "",
grade: null,
grade_id: null,
is_delete: null,
last_login_time: null,
mobile: "",
nick_name: "",
pay_money: "",
platform: "",
points: null,
province: null,
store_id: null,
update_time: "",
user_id: null,
user_type: null,
user_type_text: ""
},
checked: true,
isScroll: true,
background: {
background: 'url(https://www.royaum.com.cn/static/news/login-bg.png) centertop no-repeat',
// background: 'url('+ img+') center top no-repeat',
backgroundSize: '100% auto',
}
},
}
},
onPageScroll(e){
@ -111,6 +140,11 @@
},
methods: {
},
onLoad(option) {
console.log(option)
this.form = Object.assign({},this.form,JSON.parse(option.item))
console.log(this.form)
}
}
</script>

@ -1,33 +1,48 @@
<template>
<view class="user">
<view class="search">
<view class="box">
<!-- <view class="box">
<image src="/static/news/icon-search.png"></image>
<input type="search" placeholder="商品名称/编码" />
</view>
</view> -->
<u-search placeholder="输入用户昵称/姓名/手机号" shape="round" :show-action="false" height="60" bg-color="#ffffff" v-model="keyword"></u-search>
</view>
<view class="user-bd">
<view class="li" v-for="i in 2" :key="i">
<view class="li" v-for="i in list" :key="i.user_id" @click="goVipDetails(i)">
<view class="a">
<view class="l">
<image :src="$picUrl+'/static/news/avater.png'"></image>
<image :src="i.avatar_url?i.avatar_url:$picUrl+'/static/news/avater.png'"></image>
</view>
<view class="m">
<view class="n">昵称</view>
<view class="r">
<view class="m">
<view class="n">{{i.nick_name}}</view>
<view class="btn">{{i.user_type_text}}</view>
</view>
<view class="n">
<view>
<text>{{i.mobile}}</text>
<image @click="copyText(i.mobile)" :src="$picUrl+'/static/news/icon-copy.png'" style="margin-top:-4rpx;"></image>
</view>
<image :src="$picUrl+'/static/news/tel.png'" @click="makeCall(i.mobile)"></image>
</view>
</view>
<!-- <view class="m">
<view class="n">{{nick_name}}</view>
<view class="n">真实姓名张三</view>
<view class="n">18089800909<image :src="$picUrl+'/static/news/icon-copy.png'"></image></view>
<view class="n">{{mobile}}<image :src="$picUrl+'/static/news/icon-copy.png'"></image></view>
</view>
<view class="r">
<view class="btn">会员</view>
<image :src="$picUrl+'/static/news/tel.png'"></image>
</view>
</view> -->
</view>
<view class="b">
<view class="l">余额(<text>¥0.00</text></view>
<view class="l">积分(<text>0.00</text></view>
<view class="l">余额(<text>¥{{i.points?i.points:0.00}}</text></view>
<view class="l">积分(<text>{{i.points?i.points:0}}</text></view>
</view>
</view>
<view class="li" v-for="i in 2" :key="i">
<!-- <view class="li" v-for="i in 2" :key="i">
<view class="a">
<view class="l">
<image :src="$picUrl+'/static/news/avater.png'"></image>
@ -46,21 +61,104 @@
<view class="l">余额(<text>¥0.00</text></view>
<view class="l">积分(<text>0.00</text></view>
</view>
</view>
</view> -->
</view>
</view>
</template>
<script>
<script>
import * as Vip from '@/api/user/vip'
export default {
data() {
return {
keyword:'',
page:1,
total:0,
list:[],
title:'会员管理'
};
},
methods: {
}
async getList(){
let res = await Vip.getVipList({page:this.page,search:this.keyword,user_type:this.title=='会员管理'?"10,20":'30'})
console.log(res,"===")
this.list.push(...res.data.list.data);
this.total = res.data.list.total;
},
copyText(text) {
uni.setClipboardData({
data: text,
success: () => {
uni.showToast({
title: '复制成功',
icon: 'success',
duration: 2000
});
},
fail: () => {
uni.showToast({
title: '复制失败',
icon: 'none'
});
}
});
},
makeCall(phoneNumber) {
uni.getSetting({
success(res) {
if (!res.authSetting['scope.phoneCall']) {
//
uni.authorize({
scope: 'scope.phoneCall',
success() {
//
uni.makePhoneCall({
phoneNumber: phoneNumber //
});
},
fail() {
//
uni.showModal({
title: '提示',
content: '需要电话权限',
success: function(modalRes) {
if (modalRes.confirm) {
uni.openSetting();
}
}
});
}
});
} else {
//
uni.makePhoneCall({
phoneNumber: phoneNumber //
});
}
}
});
},
goVipDetails(item){
let details = JSON.stringify(item)
uni.navigateTo({
url:"/pages/news/user/index?item="+details
})
}
},
onLoad(option) {
this.title = option.title
uni.setNavigationBarTitle({
title: this.title
});
this.list = []
this.getList()
},
onReachBottom() {
if (this.list.length < this.total) {
this.page++;
this.getList()
}
},
}
</script>
@ -70,42 +168,43 @@
overflow: hidden;
.search{
width: 750rpx;
padding: 35rpx;
padding: 34rpx 34rpx 0 34rpx;
box-sizing: border-box;
.box{
padding: 15rpx 25rpx;
box-sizing: border-box;
display: flex;
align-items: center;
background: #F3F3F3;
border-radius: 60rpx;
image{
width: 28rpx;
height: 28rpx;
margin-right: 22rpx;
}
input{
flex: 1;
font-size: 28rpx;
line-height: 30rpx;
}
}
// .box{
// padding: 15rpx 25rpx;
// box-sizing: border-box;
// display: flex;
// align-items: center;
// background: #F3F3F3;
// border-radius: 60rpx;
// image{
// width: 28rpx;
// height: 28rpx;
// margin-right: 22rpx;
// }
// input{
// flex: 1;
// font-size: 28rpx;
// line-height: 30rpx;
// }
// }
}
&-bd{
padding: 0 30rpx;
padding: 0 34rpx;
overflow: hidden;
.li{
padding: 0 20rpx;
padding:0 12rpx;
background-color: #FFFFFF;
overflow: hidden;
border-radius: 12rpx;
margin-top: 20rpx;
&:first-child{
margin-top: 0;
}
border-radius: 8rpx;
margin-top: 18rpx;
// &:first-child{
// margin-top: 0;
// }
.a{
display: flex;
align-items: flex-start;
// align-items: flex-start;
align-items: center;
justify-content: space-between;
padding: 15rpx 0 30rpx;
border-bottom: 1px solid #F2F2F2;
@ -119,54 +218,88 @@
border-radius: 50%;
}
}
.m{
.r{
flex: 1;
max-width: 400rpx;
margin-right: 20rpx;
// width: 98rpx;
// overflow: hidden;
.m{
// flex: 1;
// max-width: 400rpx;
// margin-right: 20rpx;
display: flex;
align-items: center;
justify-content: space-between;
.btn{
// width: 98rpx;
padding:0 10rpx;
height: 56rpx;
line-height: 56rpx;
background: #FFFFFF;
border-radius: 3px 3px 3px 3px;
border: 1px solid #FFA928;
text-align: center;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
font-size: 28rpx;
color: #FFA928;
&-on{
border-color:#FFA928;
color: #FFA928;
}
}
}
.n{
font-size: 28rpx;
font-weight: 400;
color: #545454;
height: 50rpx;
display: flex;
align-items: center;
justify-content: space-between;
margin-top:20rpx;
text{
font-size: 28rpx;
color: #454545;
}
image{
width: 30rpx;
height: 30rpx;
margin-left: 10rpx;
vertical-align: middle;
margin-top: -1px;
}
}
// image{
// display: block;
// width: 30rpx;
// height: 30rpx;
// float: right;
// margin-top: 20rpx;
// margin-right: 20rpx;
// }
}
.r{
width: 98rpx;
overflow: hidden;
.btn{
width: 98rpx;
line-height: 64rpx;
background: #FFFFFF;
border-radius: 10rpx;
text-align: center;
border: 1px solid #FF6257;
font-size: 28rpx;
font-weight: 400;
color: #FF6257;
&-on{
border-color:#FFA928;
color: #FFA928;
}
}
image{
display: block;
width: 30rpx;
height: 30rpx;
float: right;
margin-top: 20rpx;
margin-right: 20rpx;
}
}
// .m{
// flex: 1;
// max-width: 400rpx;
// margin-right: 20rpx;
// .n{
// font-size: 28rpx;
// font-weight: 400;
// color: #545454;
// height: 50rpx;
// image{
// width: 30rpx;
// height: 30rpx;
// margin-left: 10rpx;
// vertical-align: middle;
// margin-top: -1px;
// }
// }
// }
}
.b{
padding-top: 30rpx;
padding-top: 20rpx;
padding-bottom: 20rpx;
overflow: hidden;
display: flex;
@ -176,13 +309,13 @@
text-align: center;
font-size: 28rpx;
font-weight: 400;
color: #454545;
color: #B1B1B1;
text{
font-size: 28rpx;
font-weight: 400;
color: #B1B1B1;
color: #454545;
display: block;
margin-top: 10rpx;
margin-top: 12rpx;
}
}
}

@ -1,6 +1,10 @@
<template>
<view>
<view class="con">{{ content }}</view>
<!-- <view class="con">{{ content }}</view> -->
<view class="con">
<mp-html :content="content" />
</view>
</view>
</template>

@ -12,10 +12,12 @@
<view class="userInfo">
<image :src="$picUrl+'/static/news3/join.png'" mode="widthFix"></image>
<view class="userContent">
<image :src="user.avatar_url" mode="aspectFill" class="avatar"></image>
<view v-if="user">
<image src="{{user.avatar_url?'/static/news3/walletBg.png':'/static/news3/walletBg.png'}}" mode="aspectFill" class="avatar"></image>
</view>
<view class="user">
<view class="userTop">
<text class="name">{{ user.nick_name }}</text>
<text class="name">{{ user.nick_name||'' }}</text>
<view class="flag">
分销商
</view>
@ -81,11 +83,11 @@
//
isLoading: true,
//
user: undefined,
user: {},
//
isDealer: false,
//
dealer: undefined,
dealer: {},
//
refereeName: undefined,
//
@ -119,7 +121,7 @@
// api
const data = result.data
app.isDealer = data.isDealer
app.user = data.user
app.user = data.user||{};
app.dealer = data.dealer
app.refereeName = data.refereeName
app.setting = data.setting

@ -0,0 +1,678 @@
<template>
<view>
<view class="head-info">
<!-- 搜索 -->
<view class="searchContent">
<u-search height="50" @search="getListAfter" @custom="getListAfter" placeholder="输入订单编号/收件人名字/电话商品名称" v-model="keyword"></u-search>
<!-- <u-input v-model="keyword" placeholder="输入订单编号/收件人名字/电话商品名称"/> -->
<!-- <u-icon name="search" class="search"></u-icon> -->
<!-- <view class="filter" @click="getFilterHandle">
<image src=":src="$picUrl+'/static/news3/filter.png" mode="widthFix"></image>
<text>筛选</text>
</view> -->
</view>
</view>
<!-- 分类列表 -->
<view class="container">
<view class="classify-list">
<view class="list" v-for="(item,index) in classList"
:class="{'action':classifyShow==item.id}"
@click="onClassify(item,index)"
:key="index">
<text>{{item.name}}</text>
<text class="line" v-show="classifyShow==item.id"></text>
</view>
</view>
</view>
<view class="shopContent">
<view class="shopItem" v-for="(item,index) in goodsList" :key="index">
<view class="orderInfo">
<text>订单号{{item.order_no}}</text>
<text class="statusText">{{item.state_text}}</text>
</view>
<view class="shopItemInfo" v-for="(p,i) in item.goods" :key="i">
<image :src="p.goods_image"></image>
<view class="priceCon">
<text class="num">x{{p.total_num}}</text>
<view class="priceText">
<text style="font-size: 26upx;">¥</text>
<text>{{p.total_price}}</text>
</view>
</view>
</view>
<view class="totalNum">
<text>含运费¥{{item.third_money}}</text>
<text>共计</text>
<text>¥{{item.order_price}}</text>
</view>
<view class="remark">
<view class="remarkTitle">
收件人姓名 {{item.address_name}}
</view>
<view class="remarkContent">
{{item.remark}}
</view>
</view>
<view class="btnGroup">
<view class="btn info" v-show="item.state_text=='待发货'||item.state_text=='待付款'">修改地址</view>
<view class="btn primary" v-show="item.state_text=='待发货'||item.state_text=='待付款'" @click="goJump('/pages/news3/updatePrice',item)">修改价格</view>
<view class="btn primary" v-show="item.state_text=='待发货'" @click="goJump('/pages/news3/sendOutGoods',item)">发货</view>
<view class="btn info" v-show="item.state_text=='refund'">拒绝</view>
<view class="btn primary" v-show="item.state_text=='refund'">同意</view>
<view class="btn info" v-show="item.state_text=='cancel'||item.state_text=='complete'">删除订单</view>
<view class="btn info" @click="afterSale=true" v-show="item.state_text=='receipt'">转至售后</view>
<view class="btn primary" v-show="item.state_text=='receipt'">修改物流</view>
</view>
</view>
</view>
<u-popup v-model="show" mode="bottom" border-radius="10" :closeable="true">
<view class="filterContent">
<view class="filterTitle">
订单筛选
</view>
<view class="filterItem">
<view class="filterItemContent">
<view class="itemTitle">
下单时间
</view>
<view class="timeContainer">
<u-input v-model="startTime" type="select" @click="getTime('start')" disabled placeholder="起始时间"/>
<text>-</text>
<u-input v-model="endTime" type="select" @click="getTime('end')" disabled placeholder="终止时间"/>
</view>
</view>
<view class="filterItemContent">
<view class="itemTitle">
来源
</view>
<view class="selectContainer">
<view @click="setResourceIndex(index)" :class="sourceIndex==index?'selectItem active':'selectItem'" v-for="(item,index) in selectList" :key="item.id">
{{item.name}}
</view>
</view>
</view>
<view class="filterItemContent">
<view class="itemTitle">
支付方式
</view>
<view class="selectContainer">
<view @click="setpayIndex(index)" :class="payIndex==index?'selectItem active':'selectItem'" v-for="(item,index) in payList" :key="item.id">
{{item.name}}
</view>
</view>
</view>
</view>
<view class="btnGroup">
<view class="resetBtn">
重置
</view>
<view class="confrim">
确定
</view>
</view>
</view>
<u-picker mode="time" z-index="99999" v-model="timeShow"></u-picker>
</u-popup>
<u-popup v-model="afterSale" width="80%" border-radius="10" :closeable="true" mode="center">
<view class="afterSales">
<view class="filterTitle">
确定转移至售后
</view>
<view class="filterItem">
<view class="filterItemContent">
<view class="itemTitle">
上传照片 <text style="color:#FF5042">*</text><text>最多可传5张图片</text>
</view>
<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="filterItemContent">
<view class="itemTitle">
备注
</view>
<u-input v-model="remark" placeholder="请输入您的留言" type="textarea" :auto-height="true" />
</view>
</view>
<view class="submit">
确定
</view>
</view>
</u-popup>
<afterSale ref='afterSales'></afterSale>
</view>
</template>
<script>
import afterSale from './components/afterSales.vue'
import * as newFunApi from '@/api/newFun'
import * as Api from '@/api/dealer/order'
export default {
components:{afterSale},
data(){
return{
classifyShow: 'all',
classList: [
{
id: 'all',
name: '全部',
},{
id: 'delivery',
name: '待发货',
},{
id: 'receipt',
name: '待验收',
},{
id: 'pay',
name: '待付款',
},{
id: 'complete',
name: '已完成',
},{
id: 'refund',
name: '售后订单',
},{
id: 'apply_cancel',
name: '待取消',
},{
id: 'cancel',
name: '已取消',
},
],
goodsList:[
],
show:false,
timeShow:false,
selectList:[
{id:1,name:'预售'},
{id:2,name:'秒杀'},
{id:3,name:'拼团'},
{id:4,name:'砍价'},
],
payList:[
{id:1,name:'微信支付'},
{id:2,name:'好友代付'},
{id:3,name:'线下支付'},
],
sourceIndex:0,
payIndex:0,
startTime:null,
endTime:null,
pageNum:1,
keyword: "",
total: 1,
pageNum: 1,
// classList: [
// {
// id: 0,
// name: '',
// },{
// id: 1,
// name: '',
// },{
// id: 2,
// name: '',
// },{
// id: 3,
// name: '',
// },{
// id: 4,
// name: '退',
// },{
// id: 5,
// name: '',
// },{
// id: 6,
// name: '',
// },
// {
// id: 7,
// name: '',
// }
// ],
}
},
onReady(options) {
// this.getList()
},
onLoad(options) {console.log('--------');
// console.log(options);
this.classifyShow=options.type;
this.getList();
},
onPageScroll(e){
},
methods:{
//
// getTabValue() {
// const app = this
// if (app.classList.length) {
// return app.classList[app.curTab].id
// }
// return -1
// },
//
async getList() {
uni.showLoading({
title:"加载中"
})
const app = this
return new Promise((resolve, reject) => {
Api.list({ dataType: app.classifyShow, page: app.pageNum })
.then(result => {console.log(result);
//
// const newList = result.data.list
// app.list.data = getMoreListData(newList, app.list, pageNo)
uni.hideLoading();
app.goodsList = app.goodsList.concat(result.data.list.data)
app.total = result.data.list.total
resolve(app.goodsList)
})
})
},
// async getList() {
// uni.showLoading({
// title:""
// })
// let {status, message, data} = await newFunApi.shopOrderList({
// dataType: this.classifyShow,
// page: this.pageNum,
// searchValue: this.keyword
// });
// if(status == 200){
// uni.hideLoading();
// this.goodsList = this.goodsList.concat(data.list.data)
// this.total = data.list.total
// }
// },
goJump(path,value){
uni.navigateTo({
url: path+'?item='+JSON.stringify(value),
})
},
getListAfter(){
this.goodsList = [];
this.getList()
},
getLable(val){
// let arr = this.classList.filter(item=>{
// return val==item.id
// })
// return arr[0].name
},
onSearch(){
uni.navigateTo({url:''})
},
onClassify(item,index){
this.classifyShow = item.id;
this.getListAfter()
},
setResourceIndex(index){
this.sourceIndex = index;
},
setpayIndex(index){
this.payIndex = index;
},
getTime(val){
console.log("ooo")
this.timeShow = true;
},
getFilterHandle(){
console.log("uu")
this.$refs.afterSales.afterSale = true;
}
},
onReachBottom() {
if(this.goodsList.length <= this.total){
this.pageNum ++;
this.getList();
}
},
};
</script>
<style scoped lang="scss">
page{
background-color: #F7F8FA;
min-height:100%;
}
.head-info{
padding:22upx 20upx;
.searchContent{
display: flex;
align-items: center;
justify-content: space-between;
position: relative;
::v-deep .uni-input-placeholder{
margin-left:90upx;
z-index:10;
}
.search{
position: absolute;
top:20upx;
left:26upx;
z-index:9;
}
::v-deep .u-input{
flex:1;
margin-right:28upx;
}
::v-deep .uni-input-input{
background: #FFFFFF;
border-radius: 30px 30px 30px 30px;
opacity: 1;
padding-left:80upx;
width:calc(100% - 80upx);
}
.filter{
display: flex;
width: 100upx;
flex-direction: column;
align-items: center;
justify-content: center;
image{
width:34upx;
height:auto;
}
text{
font-size: 24upx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #616161;
}
}
}
}
.container{
background-color: #fff;
}
.classify-list{
white-space:nowrap;
width: 100%;
height: 100rpx;
overflow-x: auto;
overflow-y: hidden;
.list{
position: relative;
display:inline-block;
width: 18%;
height: 100%;
line-height: 100rpx;
text-align: center;
text{
font-size: 28rpx;
color: #3B3B3B;
}
.line{
position: absolute;
left: 50%;
bottom: 10rpx;
// width: 60%;
// height: 8rpx;
background: linear-gradient(to right,#f8f893,#fe9d00);
// border-radius: 10rpx;
transform: translate(-50%,0);
width: 60upx;
height: 8upx;
background: #FF6257;
border-radius: 29px 29px 29px 29px;
opacity: 1;
}
}
.action{
text{
font-size: 32rpx;
opacity: 1;
}
}
}
.shopContent{
.shopItem{
margin-bottom:14upx;
padding:36upx;
background-color: #fff;
.orderInfo{
display: flex;
align-items: center;
justify-content:space-between;
text{
font-size: 28upx;
color: #707070;
}
}
.shopItemInfo{
display: flex;
margin-top:40upx;
image{
width:180upx;
height:180upx;
flex-shrink: 0;
}
.priceCon{
flex:1;
display: flex;
align-items: flex-end;
justify-content: space-between;
margin-left:40upx;
.num{
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #1E1E1E;
}
.priceText{
display: flex;
align-items: center;
text{
font-size: 32upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #F21A1C;
font-weight: bold;
}
}
}
}
.totalNum{
text-align: right;
margin-top:70upx;
text:first-child{
font-size: 24upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #B7B7B7;
}
text:nth-child(2){
font-size: 32upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #3B3B3B;
margin:0 10upx;
}
text:nth-child(3){
font-size: 32upx;
font-family: PingFang SC, PingFang SC;
font-weight: 600;
color: #F21A1C;
}
}
.remark{
background: #F8F8F8;
border-radius: 0px 0px 0px 0px;
opacity: 1;
padding:20upx;
margin-top:20upx;
.remarkTitle{
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #3B3B3B;
}
.remarkContent{
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #939393;
margin-top:8upx;
}
}
.btnGroup{
display: flex;
margin-top:28upx;
flex-wrap: wrap;
justify-content: flex-end;
.btn{
width: 180upx;
height: 56upx;
background: #FFFFFF;
border-radius: 50px 50px 50px 50px;
opacity: 1;
font-size: 14px;
line-height: 56upx;
text-align: center;
margin-left:12upx;
}
.info{
border: 1px solid #9F9F9F;
color: #8B8B8B;
}
.primary{
border: 1px solid #F63116;
color: #F83F11;
}
}
}
}
.filterContent{
padding:32upx;
.filterTitle{
font-size: 32upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #303030;
text-align: center;
}
.filterItem{
.filterItemContent{
margin-top:40upx;
.itemTitle{
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #303030;
margin-bottom:20upx;
}
.timeContainer{
display: flex;
align-items: center;
::v-deep .uni-input-wrapper{
background: #F3F3F3;
border-radius: 22px 22px 22px 22px;
opacity: 1;
text-align: center;
}
::v-deep .u-input__right-icon{
display: none;
}
text{
margin:16upx;
}
}
.selectContainer{
display: flex;
.selectItem{
flex:1;
margin:0 10upx;
height: 70upx;
line-height: 66upx;
text-align: center;
background: #F3F3F3;
border-radius: 22px 22px 22px 22px;
opacity: 1;
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #A1A1A1;
}
.active{
border: 1px solid #F83F11;
color:#F21A1C;
background-color: #fff;
}
}
}
}
.btnGroup{
display: flex;
justify-content: center;
margin-top:100upx;
padding-bottom:60upx;
.resetBtn{
width: 216upx;
height: 70upx;
line-height: 66upx;
background: #DBDBDB;
border-radius: 22px 22px 22px 22px;
opacity: 1;
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #585858;
text-align: center;
}
.confrim{
width: 216upx;
height: 70upx;
text-align: center;
background: linear-gradient(180deg, #FD5D06 0%, #F3211A 100%);
border-radius: 50px 50px 50px 50px;
opacity: 1;
line-height: 66upx;
font-size: 28upx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #FFFFFF;
margin-left:24upx;
}
}
}
</style>

@ -2,7 +2,7 @@
<view class="container b-f">
<!-- 门店列表 -->
<view class="shop-list">
<view v-for="(item, index) in shopList" :key="index" @click="onSelectedShop(item.shop_id)" class="shop-item dis-flex flex-y-center">
<view v-for="(item, index) in shopList" :key="index" @click="onSelectedShop(item.shop_id,item.distance_unit)" class="shop-item dis-flex flex-y-center">
<view class="shop-item__content flex-box">
<view class="shop-item__title">
<text>{{ item.shop_name }}</text>
@ -127,7 +127,7 @@
/**
* 选择门店
*/
onSelectedShop(selectedId) {
onSelectedShop(selectedId,distance_unit) {
const app = this
// id
app.selectedId = selectedId

@ -4,88 +4,83 @@
<u-navbar title="确认订单" :border-bottom="false" title-color="#333" :background="background"></u-navbar>
</view>
<view class="buyType">
<view class="toDoor" :class="buyType=='sm'?'':'toDoor-dis'" @click="choseType('sm')">
<view class="toDoor" :class="buyType=='sm'?'':'toDoor-dis'" @click="handleSwichDelivery(DeliveryTypeEnum.EXPRESS.value,'sm')">
送货上门
</view>
<view class="toDoor" :class="buyType=='zq'?'':'toDoor-dis'" @click="choseType('zq')">
<view class="toDoor" :class="buyType=='zq'?'':'toDoor-dis'" @click="handleSwichDelivery(DeliveryTypeEnum.EXTRACT.value,'zq')">
到店自取
</view>
<view class="toDoor-on" :style="{'left': buyType=='sm'?'0':'345rpx'}">{{buyType=='zq'?'到店自取':'送货上门'}}</view>
<view class="toDoor-on" :style="{'left': buyType=='sm'?'0':'350rpx'}">{{buyType=='zq'?'到店自取':'送货上门'}}</view>
</view>
<view class="getSelf" >
<view class="address" v-if="buyType=='sm'">
<view class="address" v-if="buyType=='sm'" @click="onSelectAddress">
<view class="addAddress">
<view class="tip" v-if="true">请点击添加收货地址</view>
<view class="tip" v-if="!order.address">请点击添加收货地址</view>
<view class="info" v-else>
<view class="name"></view>
<view class="detail"></view>
<view class="name">{{ order.address.name}}<text>{{ order.address.phone }}</text></view>
<view class="detail">
<text v-for="(region, idx) in order.address.region" :key="idx">{{ region }}</text>
<text>{{ order.address.detail }}</text>
</view>
</view>
</view>
<view class="leftImg">
<image :src="$picUrl+'/static/order/left.png'"></image>
</view>
</view>
<view class="shopAddress" v-if="buyType=='zq'">
<view class="youTime">
花梨服务站
</view>
<view class="leftImg">
切换
<image src="/static/order/left.png" mode=""></image>
</view>
</view>
<view class="addressDetail">
</view>
<view class="lookMap" v-if="buyType=='zq'">
<image src="/static/user/address.png" mode="" class="addressIcon"></image>
<view class="range">
距您16.39km
</view>
<view class="checkMap">
查看地图
</view>
<image src="/static/order/left.png" mode="" class="rightIcon"></image>
</view>
<view class="pickUp">
<view class="pickPeople">
<view class="title">
取件人
</view>
<view class="name">
</view>
</view>
<view class="pickPeople">
<view class="title">
</view>
<view class="name">
<image src="/static/order/edit.png" mode="" class="edit"></image>
</view>
</view>
<view class="pickPeople">
<view class="title">
预留电话
</view>
<view class="name">
</view>
</view>
<view class="pickPeople">
<view class="title">
</view>
<view class="name">
<image src="/static/order/edit.png" mode="" class="edit"></image>
</view>
</view>
</view>
</view>
<view class="shopAddress" v-if="buyType=='zq'">
<view class="info" v-if="order.extractShop.shop_id">
<view class="a">
<view class="youTime">
{{ order.extractShop.shop_name }}
</view>
<view class="leftImg" @click="onSelectExtractPoint()">
切换
<image :src="$picUrl+'/static/order/left.png'" mode=""></image>
</view>
</view>
<view class="b">
{{ order.extractShop.region.province }} {{ order.extractShop.region.city }}{{ order.extractShop.region.region }} {{ order.extractShop.address }}
</view>
<view class="lookMap">
<image :src="$picUrl+'/static/user/address.png'" mode="" class="addressIcon"></image>
<view class="range">
距您{{distance_unit}}
</view>
<view class="checkMap" @click="openMap(order.extractShop)">
查看地图
</view>
<image :src="$picUrl+'/static/order/left.png'" mode="" class="rightIcon"></image>
</view>
</view>
<view class="tip" v-else @click="onSelectExtractPoint()">请选择门店<image :src="$picUrl+'/static/order/left.png'" mode=""></image></view>
<view class="pickUp">
<view class="pickPeople">
<view class="title">
取件人
</view>
<view class="name">
<input class="input" placeholder="请填写联系人姓名" v-model="linkman" />
<image :src="$picUrl+'/static/order/edit.png'" mode="" class="edit"></image>
</view>
</view>
<view class="pickPeople">
<view class="title">
预留电话
</view>
<view class="name">
<input class="input" placeholder="请填写联系电话" v-model="phone" />
<image :src="$picUrl+'/static/order/edit.png'" mode="" class="edit"></image>
</view>
</view>
</view>
</view>
</view>
<view class="preTime">
<view class="preTime" v-if="buyType=='zq'">
<view class="left">
<view class="bagImg">
<image src="/static/order/bag.png" mode="" class="bag"></image>
<image :src="$picUrl+'/static/order/bag.png'" mode="" class="bag"></image>
街边取
</view>
<view class="preText">
@ -96,52 +91,52 @@
<switch />
</view>
</view>
<view class="time">
<view class="time" v-if="buyType=='zq'">
<view class="youTime">
预计到货时间
</view>
<view class="leftImg">
<text class="leftText">2024-12-20 0930</text>
<image src="/static/order/left.png" mode=""></image>
<view class="leftImg" @click="openPicker(1)">
<text v-if="timer" class="leftText">{{timer}}</text>
<text v-else>请选择</text>
<image :src="$picUrl+'/static/order/left.png'" mode=""></image>
</view>
</view>
<view class="time">
<view class="time" v-if="buyType=='sm'">
<view class="youTime">
您期待的收货时间
</view>
<view class="leftImg">
请选择
<image src="/static/order/left.png" mode=""></image>
<view class="leftImg" @click="openPicker(2)">
<text v-if="timer" class="leftText">{{timer}}</text>
<text v-else>请选择</text>
<image :src="$picUrl+'/static/order/left.png'" mode=""></image>
</view>
</view>
<view class="goodsDetail">
<view class="goodsType">
<image src="/static/order/bag.png" mode="" class="bag"></image>
<image :src="$picUrl+'/static/order/bag.png'" mode="" class="bag"></image>
<text>大白兔家电</text>
<image src="/static/order/left.png" mode="" class="leftIcon"></image>
<image :src="$picUrl+'/static/order/left.png'" mode="" class="leftIcon"></image>
</view>
<view class="goods">
<view class="goods" v-for="(item, index) in order.goodsList" :key="index">
<view class="goodsImg">
<image :src="goodsInfo.goods_image" mode=""></image>
<image :src="item.goods_image" mode=""></image>
</view>
<view class="goodsInfo">
<view class="goodsName">
{{goodsInfo.goods_name}}
{{ item.goods_name }}
</view>
<view class="goodsPrice">
<text>{{goodsInfo.goods_price_min}}</text>
<text>{{item.goods_price_min}}</text>
</view>
</view>
<view class="goodsNum">
x1
x{{ item.total_num }}
</view>
</view>
</view>
<view class="time">
<view class="youTime" style="width: 60rpx;">
留言
</view>
<input type="textarea" placeholder="建议留言前先和店家沟通" v-model="remark" style="width:100%;" maxlength="100" />
</view>
@ -151,15 +146,18 @@
商品总额
</view>
<view class="price">
{{goodsInfo.goods_price_min}}
{{ order.orderTotalPrice }}
</view>
</view>
<view class="orderTitle">
<view class="orderTitle" v-if="order.address">
<view class="total">
运费
</view>
<view class="price">
{{goodsInfo.goods_price_min}}
<view class="price" v-if="order.isIntraRegion">
+{{ order.expressPrice }}
</view>
<view class="price" v-else>
不在配送范围
</view>
</view>
<view class="orderTitle">
@ -174,9 +172,14 @@
<view class="total">
优惠券
</view>
<view class="price" @click="choseCoupon">
<text class="couponNum">{{couponList.length}}张可用</text>
<image src="/static/order/left.png" mode=""></image>
<view class="price" v-if="order.couponList.length > 0" @click="handleShowPopup">
<text class="couponNum" v-if="order.couponId > 0">-{{ order.couponMoney }}</text>
<text class="couponNum" v-else>{{order.couponList.length}}张可用</text>
<image :src="$picUrl+'/static/order/left.png'"></image>
</view>
<view class="price" v-else>
<text class="couponNum">无优惠券可用</text>
<image :src="$picUrl+'/static/order/left.png'"></image>
</view>
</view>
<view class="line">
@ -188,7 +191,7 @@
</view>
<view class="right">
<text class="totalNum">共1件合计</text>
<text class="allPrice">{{goodsInfo.goods_price_min}}</text>
<text class="allPrice">{{ order.orderPayPrice }}</text>
</view>
</view>
</view>
@ -227,12 +230,54 @@
<view class="meetPrice">
应付款
<text class="type"></text>
<text class="price">{{goodsInfo.goods_price_min}}</text>
<text class="price">{{order.orderPayPrice}}</text>
</view>
<view class="btn" @click="orderPay">
<view class="btn">
提交订单
</view>
</view>
</view>
<!-- 优惠券弹出框 -->
<u-popup v-model="showPopup" mode="bottom">
<view class="popup__coupon">
<view class="coupon__title f-30">选择优惠券</view>
<!-- 优惠券列表 -->
<view class="coupon-list">
<scroll-view :scroll-y="true" style="height: 565rpx;">
<view class="coupon-item" v-for="(item, index) in order.couponList" :key="index">
<view class="item-wrapper" :class="[item.is_apply ? 'color-' + CouponColors[index % CouponColors.length] : 'color-gray']"
@click="handleSelectCoupon(index)">
<view class="coupon-type">{{ CouponTypeEnum[item.coupon_type].name }}</view>
<view class="tip dis-flex flex-dir-column flex-x-center">
<view v-if="item.coupon_type == CouponTypeEnum.FULL_DISCOUNT.value">
<text class="f-30"></text>
<text class="money">{{ item.reduce_price }}</text>
</view>
<text class="money" v-if="item.coupon_type == CouponTypeEnum.DISCOUNT.value">{{ item.discount }}</text>
<text class="pay-line">{{ item.min_price }}元可用</text>
</view>
<view class="split-line"></view>
<view class="content dis-flex flex-dir-column flex-x-between">
<view class="title">{{ item.name }}</view>
<view class="bottom dis-flex flex-y-center">
<view class="time flex-box">
<block v-if="item.start_time === item.end_time">{{ item.start_time }} 当天有效</block>
<block v-else>{{ item.start_time }}~{{ item.end_time }}</block>
</view>
</view>
</view>
</view>
</view>
</scroll-view>
</view>
<!-- 不使用优惠券 -->
<view class="coupon__do_not dis-flex flex-y-center flex-x-center">
<view class="control dis-flex flex-y-center flex-x-center" @click="handleNotUseCoupon()">
<text class="f-26">不使用优惠券</text>
</view>
</view>
</view>
</u-popup>
<u-picker mode="time" v-model="show1" :params="params" @confirm="confirm"></u-picker>
</view>
</template>
@ -298,6 +343,19 @@
export default {
data() {
return {
params: {
year: true,
month: true,
day: true,
hour: true,
minute: true,
second: true
},
show1: false,
background: {
background: 'url(https://www.royaum.com.cn/static/news/login-bg.png) center top no-repeat',
backgroundSize: '100% auto',
},
//
OrderTypeEnum,
DeliveryTypeEnum,
@ -347,8 +405,11 @@
},
//
personal: {},
buyType:'sm',
//
setting: {}
setting: {},
timer: "",
distance_unit: ""
}
},
@ -381,7 +442,12 @@
},
methods: {
openPicker() {
this.show1 = true;
},
confirm(e){
this.timer = e.year+'-'+e.month+'-'+e.day+' '+e.hour+':'+e.minute+':'+e.second
},
//
getOrderData() {
const app = this
@ -435,9 +501,10 @@
},
//
handleSwichDelivery(key) {
handleSwichDelivery(key,val) {
this.curDelivery = key
this.getOrderData()
this.buyType = val;
},
//
@ -636,188 +703,210 @@
.getSelf {
width: 700rpx;
margin: 0 auto;
.shopAddress {
display: flex;
align-items: center;
justify-content: space-between;
.youTime {
font-size: 24rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #000000;
}
.leftImg {
font-size: 24rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #9E9E9E;
image {
width: 18rpx;
height: 18rpx;
margin-left: 16rpx;
}
}
}
background-image: url('https://www.royaum.com.cn/static/order/map.png');
background-size: 100%;
height: 160rpx;
background-size: 100%;
min-height: 160rpx;
padding: 14rpx 46rpx 0 32rpx;
box-sizing: border-box;
.addressDetail {
height: 34rpx;
font-size: 24rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #838383;
line-height: 34rpx;
margin-top: 6rpx;
}
.lookMap {
display: flex;
align-items: center;
margin-top: 8rpx;
.addressIcon {
width: 23rpx;
height: 26rpx;
margin-right: 14rpx;
}
.range {
font-size: 20rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #F42B17;
line-height: 26rpx;
padding-right: 10rpx;
border-right: 2rpx solid #D9D9D9;
margin-right: 10rpx;
}
.checkMap {
font-size: 20rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #2B2B2B;
line-height: 26rpx;
margin-right: 24rpx;
}
.rightIcon {
width: 18rpx;
height: 18rpx;
}
}
.pickUp {
display: flex;
justify-content: space-around;
margin-top: 26rpx;
.pickPeople {
.title {
height: 28rpx;
font-size: 20rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #838383;
line-height: 28rpx;
}
.name {
height: 28rpx;
font-size: 20rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 600;
color: #2C2C2C;
line-height: 28rpx;
margin-top: 10rpx;
.edit {
width: 20rpx;
height: 20rpx;
}
}
}
}
}
.leftText {
font-size: 24rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #F21A1C;
line-height: 28rpx;
}
.shopAddress {
max-height: 260rpx;
padding-bottom: 20rpx;
overflow: hidden;
.tip{
font-size: 24rpx;
color: #F32E2E;
display: flex;
align-items: center;
justify-content: space-between;
image{
width: 12rpx;
height: 18rpx;
}
}
.pickUp {
display: flex;
justify-content: space-around;
margin-top: 16rpx;
.pickPeople {
flex: 1;
&:first-child{
margin-right: 20rpx;
}
.title {
font-size: 24rpx;
font-weight: 400;
color: #838383;
}
.name {
margin-top: 10rpx;
display: flex;
align-items: center;
input{
width: 200rpx;
line-height: 60rpx;
font-size: 24rpx;
color: #2C2C2C;
display: block;
}
.edit {
width: 30rpx;
height: 30rpx;
margin-left: 10rpx;
}
}
}
}
.a{
display: flex;
align-items: center;
justify-content: space-between;
.youTime {
font-size: 28rpx;
font-weight: 600;
color: #1D1D1D;
}
.leftImg {
font-size: 24rpx;
font-weight: 400;
color: #F42B17;
image {
width: 12rpx;
height: 18rpx;
margin-left: 16rpx;
}
}
}
.b{
font-size: 24rpx;
color: #838383;
line-height: 50rpx;
}
.lookMap {
display: flex;
align-items: center;
margin-top: 8rpx;
margin-bottom: 10rpx;
.addressIcon {
width: 23rpx;
height: 26rpx;
margin-right: 14rpx;
}
.range {
font-size: 20rpx;
font-weight: 400;
color: #F42B17;
line-height: 26rpx;
padding-right: 10rpx;
border-right: 2rpx solid #D9D9D9;
margin-right: 10rpx;
}
.checkMap {
font-size: 20rpx;
font-weight: 400;
color: #2B2B2B;
line-height: 26rpx;
margin-right: 24rpx;
}
.rightIcon {
width: 12rpx;
height: 18rpx;
}
}
}
.address {
margin-left: 26rpx;
background-image: url('../../static/order/map.png');
width: 694rpx;
height: 154rpx;
display: flex;
width: 100%;
display: flex;
height: 120rpx;
align-items: center;
justify-content: space-between;
padding: 0 52rpx 0 32rpx;
padding: 0 22rpx 0 32rpx;
box-sizing: border-box;
.addAddress {
font-size: 28rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 500;
color: #F32E2E;
// color: #F32E2E;
color: #212121;
.info{
flex: 1;
.name{
font-size: 28rpx;
color: #212121;
text{
margin-left: 20rpx;
color: #666;
}
}
.detail{
margin-top: 10rpx;
font-size: 26rpx;
}
}
.tip{
font-size: 30rpx;
font-weight: 500;
color: #F32E2E;
}
}
.leftImg {
width: 18rpx;
width: 12rpx;
height: 18rpx;
image {
width: 100%;
height: 100%;
height: 100%;
display: block;
}
}
}
.ziqu{
overflow: hidden;
padding: 0 22rpx 0 32rpx;
}
.preTime {
width: 694rpx;
width: 700rpx;
height: 140rpx;
background: #FFFFFF;
border-radius: 10rpx 10rpx 10rpx 10rpx;
opacity: 1;
border-radius: 10rpx;
margin: 12rpx 0 0 26rpx;
display: flex;
justify-content: space-between;
padding: 34rpx 0 0 30rpx;
box-sizing: border-box;
.left {
.bagImg {
height: 30rpx;
font-size: 24rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #000000;
line-height: 30rpx;
margin-bottom: 10rpx;
color: #000000;
display: flex;
align-items: center;
.bag {
width: 30rpx;
height: 30rpx;
width: 35rpx;
height: 35rpx;
margin-right: 10rpx;
}
}
}
.preText {
height: 34rpx;
font-size: 24rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #959595;
line-height: 34rpx;
margin-top: 15rpx;
}
}
@ -826,7 +915,7 @@
width: 694rpx;
height: 90rpx;
background: #FFFFFF;
border-radius: 10rpx 10rpx 10rpx 10rpx;
border-radius: 10rpx;
opacity: 1;
margin: 12rpx 0 0 26rpx;
align-items: center;
@ -835,19 +924,16 @@
.youTime {
font-size: 24rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #000000;
}
.leftImg {
font-size: 24rpx;
font-family: PingFang SC, PingFang SC;
font-weight: 400;
color: #9E9E9E;
image {
width: 18rpx;
width: 12rpx;
height: 18rpx;
margin-left: 16rpx;
}

@ -119,7 +119,7 @@
<view class="typeLeft common">
会员管理<u-icon style="margin-left: 10rpx;" name="arrow-right"></u-icon>
</view>
<view class="typeRight common" @click="goJump('/pages/news/user/vip')">
<view class="typeRight common" @click="goManagementHandle('/pages/news/user/vip','分销管理')">
<image :src="$picUrl+'/static/user/sale.png'" class="sale"></image>
分销管理<u-icon style="margin-left: 10rpx;" name="arrow-right"></u-icon>
</view>
@ -238,45 +238,39 @@
<view class="goodsManage" v-if="userInfo.user_type == 30">
<view class="manageTitle">
<text lines="1" class="text_5 titleLeft">分销订单</text>
<text lines="1" class="text_6 titleRight" @click="goJump('/pages/news3/fenxiao')">查看全部</text>
<!-- <text lines="1" class="text_6 titleRight" @click="goJump('/pages/news3/fenxiao')">查看全部</text> -->
<text lines="1" class="text_6 titleRight" @click="goJump('/pages/news3/shopDealerOrder')">查看全部</text>
<u-icon @click="goJump('/pages/news3/fenxiao')" style="margin-left: 5rpx; color: #909090; margin-top: -5rpx;" name="arrow-right"></u-icon>
</view>
<view class="grounding goodsOrder">
<view class="image-text_21" @click="goJump('/pages/news3/fenxiao?type=1')">
<view class="image-text_21" @click="goJump('/pages/news3/shopDealerOrder?type=pay')">
<image :src="$picUrl+'/static/user/unpay.png'" class="label_11"></image>
<view class="text-group_21">
<text lines="1" class="text_7" v-if="orderTodoInfo.distribution_order.payment_number">{{orderTodoInfo.distribution_order.payment_number}}</text>
<text lines="1" class="text_8">待付款</text>
</view>
</view>
<view class="image-text_21" @click="goJump('/pages/news3/fenxiao?type=2')">
<view class="image-text_21" @click="goJump('/pages/news3/shopDealerOrder?type=delivery')">
<image :src="$picUrl+'/static/user/unsend.png'" class="label_11"></image>
<view class="text-group_21">
<text lines="1" class="text_7" v-if="orderTodoInfo.distribution_order.delivery_number">{{orderTodoInfo.distribution_order.delivery_number}}</text>
<text lines="1" class="text_8">待发货</text>
</view>
</view>
<view class="image-text_21" @click="goJump('/pages/news3/fenxiao?type=7')">
<view class="image-text_21" @click="goJump('/pages/news3/shopDealerOrder?type=receipt')">
<image :src="$picUrl+'/static/user/untake.png'" class="label_11"></image>
<view class="text-group_21">
<text lines="1" class="text_7" v-if="orderTodoInfo.distribution_order.received_number">{{orderTodoInfo.distribution_order.received_number}}</text>
<text lines="1" class="text_8">待收货</text>
</view>
</view>
<view class="image-text_21" @click="goJump('/pages/news3/fenxiao?type=5')">
<view class="image-text_21" @click="goJump('/pages/news3/shopDealerOrder?type=complete')">
<image :src="$picUrl+'/static/user/over.png'" class="label_11"></image>
<view class="text-group_21">
<text lines="1" class="text_7" v-if="orderTodoInfo.distribution_order.finish_number">{{orderTodoInfo.distribution_order.finish_number}}</text>
<text lines="1" class="text_8">已完成</text>
</view>
</view>
<view class="image-text_21" @click="goJump('/pages/news3/fenxiao?type=4')">
<image :src="$picUrl+'/static/user/detail.png'" class="label_11"></image>
<view class="text-group_21">
<text lines="1" class="text_7" v-if="orderTodoInfo.distribution_order.retund_number">{{orderTodoInfo.distribution_order.retund_number}}</text>
<text lines="1" class="text_8">退款中</text>
</view>
</view>
</view>
</view>
<view class="wallet">
@ -400,11 +394,17 @@
邀请朋友
</view>
</view>
<view class="serveIcon" @click="goJump('/pages/invite/index')">
<!-- <view class="serveIcon" @click="goJump('/pages/invite/index')"> -->
<view class="serveIcon" v-if="userInfo.user_type ==30" @click="goDealer(userInfo.user_type)">
<image :src="$picUrl+'/static/user/invites.png'" class="icons"></image>
<view class="serveInfo">
<text v-if="userInfo.user_type >=30">邀请分销</text>
<text v-else >加入分销</text>
<text>分销中心</text>
</view>
</view>
<view class="serveIcon" v-if="userInfo.user_type == 10 || userInfo.user_type == 20" @click="goDealer(userInfo.user_type)">
<image :src="$picUrl+'/static/user/invites.png'" class="icons"></image>
<view class="serveInfo">
<text>加入分销</text>
</view>
</view>
@ -426,7 +426,7 @@
数据统计
</view>
</view>
<view class="serveIcon" @click="goJump('/pages/news/user/vip')" v-if="userInfo.user_type == 40">
<view class="serveIcon" @click="goManagementHandle('/pages/news/user/vip','会员管理')" v-if="userInfo.user_type == 40">
<image :src="$picUrl+'/static/user/hygl.png'" class="icons"></image>
<view class="serveInfo">
会员管理
@ -533,6 +533,18 @@
}
},
methods: {
goDealer(type){
if(type==30){
this.goJump('/pages/news3/JoinDistribution?dataType=all');
}else if(type==10 || type==20){
// uni.showToast({
// title: '',
// icon: 'none',
// duration: 2000
// })
this.goJump('/pages/member/index');
}
},
openScrollTo(){
uni.pageScrollTo({
scrollTop: 0
@ -649,6 +661,12 @@
url
})
},
goManagementHandle(url,title){
uni.navigateTo({
url:url+'?title='+title
})
},
goLogin() {
//
uni.navigateTo({
@ -693,14 +711,14 @@
})
},
goGoodsOrder(val) {
if(this.isLogin == false){
this.goLogin()
return;
}
//
uni.navigateTo({
url: '/pages/order/index?dataType=' + val
})
// if(this.isLogin == false){
// this.goLogin()
// return;
// }
// //
// uni.navigateTo({
// url: '/pages/order/index?dataType=' + val
// })
},
goodsDetail(item) {
//

Loading…
Cancel
Save