完善会员开通信息

This commit is contained in:
唐明明
2022-06-11 16:19:49 +08:00
20 changed files with 19188 additions and 18525 deletions

View File

@@ -22,11 +22,12 @@ const goods = id => {
} }
// 店铺列表 // 店铺列表
const shops = (categoryId) => { const shops = (categoryId,page) => {
return request({ return request({
url: 'mall/shops', url: 'mall/shops',
data: { data: {
category_id: categoryId category_id: categoryId,
page:page
} }
}) })
} }
@@ -39,12 +40,13 @@ const shopsDetail = (shopId) => {
} }
// 店铺商品 // 店铺商品
const shopsGoods = (shop_id, category_id) => { const shopsGoods = (shop_id, category_id,page) => {
return request({ return request({
url: 'mall/goods', url: 'mall/goods',
data: { data: {
shop_id, shop_id,
category_id category_id,
page,
} }
}) })
} }

View File

@@ -1,86 +1,85 @@
{ {
"pages": [{ "pages": [{
"path": "pages/auth/auth", "path": "pages/auth/auth",
"name": "Auth", "name": "Auth",
"style": { "style": {
"navigationBarTitleText": "登录", "navigationBarTitleText": "登录",
"navigationStyle": "custom" "navigationStyle": "custom"
} }
}, },
{ {
"path": "pages/auth/role", "path": "pages/auth/role",
"name": "AuthRole", "name": "AuthRole",
"style": { "style": {
"navigationBarTitleText": "角色创建", "navigationBarTitleText": "角色创建",
"navigationBarBackgroundColor": "#FFF", "navigationBarBackgroundColor": "#FFF",
"app-plus": { "app-plus": {
"titleNView": { "titleNView": {
"buttons": [{ "buttons": [{
"text": "退出登录", "text": "退出登录",
"fontSize": "14", "fontSize": "14",
"width": "80px", "width": "80px",
"color": "#34CE98" "color": "#34CE98"
}] }]
} }
} }
} }
}, { }, {
"path": "pages/life/life", "path": "pages/life/life",
"name": "Life", "name": "Life",
"style": { "style": {
"navigationBarTitleText": "共力人生", "navigationBarTitleText": "共力人生",
"navigationStyle": "custom", "navigationStyle": "custom",
"app-plus": { "app-plus": {
"titleNView": { "titleNView": {
"type": "transparent" "type": "transparent"
} }
} }
} }
}, },
{ {
"path": "pages/store/index", "path": "pages/store/index",
"name": "Store", "name": "Store",
"style": { "style": {
"navigationBarTitleText": "DT商城", "navigationBarTitleText": "DT商城",
"enablePullDownRefresh": true, "enablePullDownRefresh": true,
"app-plus": { "app-plus": {
"titleNView": { "titleNView": {
"backgroundColor": "#FFFFFF", "backgroundColor": "#fff",
"buttons": [{ "buttons": [{
"float": "right", "float": "right",
"text": "\ue603", "text": "\ue603",
"fontSrc": "/static/iconfont.ttf", "fontSrc": "/static/iconfont.ttf",
"color": "#000", "color": "#000",
"fontSize": "20px" "fontSize": "20px"
}] }]
} }
} }
} }
}, },
{ {
"path": "pages/user/index", "path": "pages/user/index",
"name": "User", "name": "User",
"style": { "style": {
"navigationBarTitleText": "我的", "navigationBarTitleText": "我的",
"navigationBarTextStyle": "white", "navigationBarTextStyle": "white",
"app-plus": { "app-plus": {
"titleNView": { "titleNView": {
"backgroundColor": "#34CE98", "backgroundColor": "#34CE98",
"type": "transparent" "type": "transparent"
} }
} }
} }
}, },
{ {
"path": "pages/setting/setting", "path": "pages/setting/setting",
"name": "Setting", "name": "Setting",
"style": { "style": {
"navigationBarTitleText": "设置中心", "navigationBarTitleText": "设置中心",
"navigationBarBackgroundColor": "#34CE98", "navigationBarBackgroundColor": "#34CE98",
"navigationBarTextStyle": "white" "navigationBarTextStyle": "white"
} }
}, },
{ {
"path": "pages/store/goods", "path": "pages/store/goods",
"name": "StoreGoods", "name": "StoreGoods",

View File

@@ -19,7 +19,8 @@
price: "", price: "",
coins: "", coins: "",
platform: ['dtpay'], platform: ['dtpay'],
oepnType: '', oepnType: '',
canpay:true,
} }
}, },
mounted() { mounted() {
@@ -27,7 +28,6 @@
this.price = Number(this.$Route.query.price).toFixed(2) this.price = Number(this.$Route.query.price).toFixed(2)
this.coins = this.$Route.query.coins this.coins = this.$Route.query.coins
if (this.$Route.query.oepnType === 'order') { if (this.$Route.query.oepnType === 'order') {
console.log('order....');
this.oepnType = this.$Route.query.oepnType this.oepnType = this.$Route.query.oepnType
} }
}, },
@@ -60,75 +60,80 @@
}) })
}, },
getDTPAY() { getDTPAY() {
console.log('dt 支付。。。') console.log('dt 支付。。。')
dtPAY(this.payNo).then(res => { if(this.canpay){
console.log(res); this.canpay = false
// this.callPay(res, payType) dtPAY(this.payNo).then(res => {
if (res.state === 'warning') { if (res.state === 'warning') {
uni.showModal({ uni.showModal({
title: '当前DT积分不足', title: '当前DT积分不足',
content: '不能支付该订单,是否放弃当前支付', content: '不能支付该订单,是否放弃当前支付',
confirmText: '立即充值', confirmText: '立即充值',
confirmColor: "#34CE98", confirmColor: "#34CE98",
cancelText: '放弃支付', cancelText: '放弃支付',
cancelColor: "#666666", cancelColor: "#666666",
success: (res) => { success: (res) => {
if (res.confirm) { if (res.confirm) {
this.$Router.push({ this.$Router.push({
name: "AccountRecharge" name: "AccountRecharge"
}) })
} else { } else {
uni.navigateBack(); uni.navigateBack();
} }
} this.canpay = true
}) }
} else { })
if (this.oepnType === 'order') { } else {
uni.showModal({ if (this.oepnType === 'order') {
title: '支付成功', uni.showModal({
content: '该订单已支付成功', title: '支付成功',
confirmText: ' 返回订单', content: '该订单已支付成功',
confirmColor: "#34CE98", confirmText: ' 返回订单',
showCancel: false, confirmColor: "#34CE98",
success: (res) => { showCancel: false,
if (res.confirm) { success: (res) => {
this.$Router.back(); if (res.confirm) {
eventBus.$emit('paySuccess', this.payNo); this.$Router.back();
} eventBus.$emit('paySuccess', this.payNo);
} }
}) this.canpay = true
} else { }
uni.showModal({ })
title: '支付成功', } else {
content: '该订单已支付成功', uni.showModal({
confirmText: '我的订单', title: '支付成功',
confirmColor: "#34CE98", content: '该订单已支付成功',
cancelText: '再逛逛', confirmText: '我的订单',
cancelColor: "#666666", confirmColor: "#34CE98",
success: (res) => { cancelText: '再逛逛',
if (res.confirm) { cancelColor: "#666666",
this.$Router.push({ success: (res) => {
name: "Order", if (res.confirm) {
params: { this.$Router.push({
index: 0 name: "Order",
}, params: {
}) index: 0
} else { },
uni.navigateBack(); })
} } else {
} uni.navigateBack();
}) }
} this.canpay = true
}
} })
}).catch(err => { }
uni.showToast({
title: err.message, }
icon: "none", }).catch(err => {
mask: true, uni.showToast({
}) title: err.message,
}) icon: "none",
mask: true,
})
this.canpay = true
})
}
}, },
getALPAY(payType) { getALPAY(payType) {
alPAY(this.payNo).then(res => { alPAY(this.payNo).then(res => {

View File

@@ -65,11 +65,9 @@
total : 0, total : 0,
freight : 0, freight : 0,
address : "", address : "",
remark : "" remark : "",
canApply :true
}; };
},
computed:{
}, },
onShow(){ onShow(){
if(JSON.stringify(this.$store.getters.getAddress) !== '{}') this.address = this.$store.getters.getAddress if(JSON.stringify(this.$store.getters.getAddress) !== '{}') this.address = this.$store.getters.getAddress
@@ -114,24 +112,34 @@
}) })
return return
} }
verify({ if(this.canApply){
goods_sku_id: this.$Route.query.skuId, this.canApply = false;
qty : this.qty, verify({
address_id : this.address.address_id, goods_sku_id: this.$Route.query.skuId,
remark : this.remark || '' qty : this.qty,
}).then(res => { address_id : this.address.address_id,
console.log(res); remark : this.remark || ''
this.$store.commit('setAddress', {}) }).then(res => {
this.$Router.replace({ console.log(res);
name: 'Pay', this.$store.commit('setAddress', {})
params: { this.$Router.replace({
orderNo: res.order_no, name: 'Pay',
price : res.total, params: {
coins : res.coins, orderNo: res.order_no,
} price : res.total,
}) coins : res.coins,
}) }
} })
this.canApply = true
}).catch(err=>{
this.canApply = true
})
}else{
this.canApply = true
}
}
} }
} }
</script> </script>

View File

@@ -302,10 +302,7 @@
background-color: $text-price; background-color: $text-price;
display: inline-block; display: inline-block;
} }
// .card-title{
// font-weight: normal;
// font-size: 28rpx!important;
// }
.card-box { .card-box {
// &-item{ // &-item{
// background: #fff !important; // background: #fff !important;

View File

@@ -28,7 +28,7 @@
</scroll-view> </scroll-view>
</view> </view>
<view class="right"> <view class="right">
<scroll-view scroll-y="true" class="scroll-view-right"> <scroll-view scroll-y="true" class="scroll-view-right" @scrolltolower='lower'>
<block v-if="goods.length > 0"> <block v-if="goods.length > 0">
<view class="goods-item" v-for="(item,index) in goods" :key="index" <view class="goods-item" v-for="(item,index) in goods" :key="index"
@click="onGoods(item.goods_id)"> @click="onGoods(item.goods_id)">
@@ -39,7 +39,7 @@
<view class="price">{{item.price.price_min || '0'}} <view class="price">{{item.price.price_min || '0'}}
<view class="price-type"> <view class="price-type">
<text> DT积分</text> <text> DT积分</text>
<text class="kucun"> 库存量:1222</text> <text class="kucun"> 库存量:{{item.stock}}</text>
</view> </view>
</view> </view>
</view> </view>
@@ -70,12 +70,14 @@
category_id : '', category_id : '',
classify : [], classify : [],
goods : [], goods : [],
pages : {} has_more:true,
page:1,
} }
}, },
onLoad(e) { onLoad(e) {
this.ShopId = this.$Route.query.ShopId this.ShopId = this.$Route.query.ShopId
shopsDetail(this.ShopId).then(res => { shopsDetail(this.ShopId).then(res => {
console.log(res);
this.classify = [{ this.classify = [{
category_id: '', category_id: '',
name: '全部商品', name: '全部商品',
@@ -89,15 +91,20 @@
icon: 'none' icon: 'none'
}) })
}) })
}, },
onPullDownRefresh() {
this.has_more = true;
this.page = 1;
this.getGoods()
},
methods: { methods: {
getGoods() { getGoods() {
uni.showLoading({ uni.showLoading({
title: '加载中...' title: '加载中...'
}) })
shopsGoods(this.ShopId, this.category_id).then(res => { shopsGoods(this.ShopId, this.category_id,this.page).then(res => {
this.goods = res.data this.goods = this.goods.concat(res.data);
this.pages = res.page this.has_more = res.page.has_more;
uni.hideLoading() uni.hideLoading()
}).catch(err => { }).catch(err => {
uni.showToast({ uni.showToast({
@@ -105,10 +112,20 @@
icon: 'none' icon: 'none'
}) })
}) })
}, },
lower(){
if(this.has_more){
this.page = this.page + 1;
this.has_more = true;
this.getGoods()
}
},
selectClassify(id) { selectClassify(id) {
if (id === this.category_id) return; if (id === this.category_id) return;
this.category_id = id; this.category_id = id;
this.page = 1;
this.goods =[];
this.has_more = true;
this.getGoods() this.getGoods()
}, },
search() { search() {

View File

@@ -4,31 +4,29 @@
<u-sticky bgColor="#fff" zIndex="99"> <u-sticky bgColor="#fff" zIndex="99">
<u-tabs :list="classify" lineColor="#34CE98" @click="onTabs" /> <u-tabs :list="classify" lineColor="#34CE98" @click="onTabs" />
</u-sticky> </u-sticky>
<!-- 店铺列表 --> <!-- 店铺列表 -->
<block v-if="shopsArr.length > 0"> <block v-if="shopsArr.length > 0">
<view class="shop-List"> <view class="shop-List">
<view class="shopInfo" v-for="(item,index) in shopsArr" :key="index" @click="toShop(item.shop_id)"> <view class="shopInfo" v-for="(item,index) in shopsArr" :key="index" @click="toShop(item.shop_id)">
<view class="shopInfo-title-left"> <view class="shopInfo-title-left">
<image class="shop-logo" :src="item.cover" mode="aspectFill" /> <image class="shop-logo" :src="item.cover" mode="aspectFill" />
<view class="shop-title"> <view class="shop-title">
<view class="shop-titl nowrap">{{item.name}}</view> <view class="shop-titl nowrap">{{item.name}}</view>
<view>店铺评分:<span>5.0</span></view> <view>店铺评分:<span>5.0</span></view>
</view> </view>
</view> </view>
<view class="shopInfo-title-right" >在售{{item.goods_count}}<uni-icons class="icons" type="right" size="14" color="grey" /></view> <view class="shopInfo-title-right">在售{{item.goods_count}}
</view> <uni-icons class="icons" type="right" size="14" color="grey" />
</view> </view>
</block> </view>
<block v-else> </view>
<view class="vertical pages-empty"> </block>
<u-empty <block v-else>
icon="http://cdn.uviewui.com/uview/empty/list.png" <view class="vertical pages-empty">
textColor="#999" <u-empty icon="http://cdn.uviewui.com/uview/empty/list.png" textColor="#999" text="暂无相关店铺">
text="暂无相关店铺" </u-empty>
> </view>
</u-empty> </block>
</view>
</block>
</view> </view>
</template> </template>
@@ -39,130 +37,158 @@
export default { export default {
data() { data() {
return { return {
shopsArr : [], shopsArr: [],
classify : [], classify: [],
shopsPage: {}, // shopsPage: {},
page: 1,
has_more: true,
}; };
}, },
mounted() { mounted() {
this.getShops() this.getShops()
}, },
onReachBottom() {
if (this.has_more) {
this.page = this.page + 1;
this.getShops();
}
},
methods: { methods: {
getShops() { getShops() {
shops(this.categoryId).then(res => { shops(this.categoryId, this.page).then(res => {
console.log(res) console.log(res)
this.shopsArr = res.shops.data if (this.page == 1) {
this.shopsPage= res.shops.page this.shopsArr = [];
this.classify = [{ this.classify = [{
name: "全部", name: "全部",
category_id: "" category_id: ""
}].concat(res.categories) }].concat(res.categories)
}
this.shopsArr = this.shopsArr.concat(res.shops.data);
this.has_more = res.shops.page.has_more;
uni.stopPullDownRefresh() uni.stopPullDownRefresh()
}) })
}, },
onTabs(e) { onTabs(e) {
this.categoryId = e.category_id this.categoryId = e.category_id
this.page = 1;
this.has_more = true;
this.getShops() this.getShops()
}, },
toShop(id) { toShop(id) {
this.$Router.push({ this.$Router.push({
name: 'ShopDetail', name: 'ShopDetail',
params: { params: {
ShopId: id, ShopId: id,
} }
}) })
} }
}, },
onPullDownRefresh() { onPullDownRefresh() {
this.getShops() this.category_id = '';
this.page = 1;
this.has_more = true;
this.getShops();
}, },
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.pages-empty{ .pages-empty {
height: 70vh; height: 70vh;
} }
.content { .content {
background: $window-color; background: $window-color;
min-height: 100vh; min-height: 100vh;
} }
// 筛选 // 筛选
.classify-tabs { .classify-tabs {
background: white; background: white;
} }
.shop-List{
padding: $padding; .shop-List {
.shopInfo { padding: $padding;
display: flex;
flex-direction: row; .shopInfo {
align-items: center; display: flex;
box-sizing: border-box; flex-direction: row;
width: 100%; align-items: center;
padding: $padding - 10; box-sizing: border-box;
background-color: #fff; width: 100%;
border-radius: $radius; padding: $padding - 10;
margin-top: 20rpx; background-color: #fff;
&:first-child{ border-radius: $radius;
margin-top: 0; margin-top: 20rpx;
}
.shopInfo-title-left { &:first-child {
width: 60%; margin-top: 0;
display: flex; }
flex-direction: row;
align-items: center; .shopInfo-title-left {
justify-content: flex-start; width: 60%;
box-sizing: border-box; display: flex;
position: relative; flex-direction: row;
padding-left: 90rpx; align-items: center;
min-height: 90rpx; justify-content: flex-start;
box-sizing: border-box; box-sizing: border-box;
.shop-logo { position: relative;
position: absolute; padding-left: 90rpx;
left: 0; min-height: 90rpx;
top: 0; box-sizing: border-box;
width: 90rpx;
height: 90rpx; .shop-logo {
border-radius: 10rpx; position: absolute;
border: solid 1rpx #f9f9f9; left: 0;
} top: 0;
.shop-title { width: 90rpx;
display: flex; height: 90rpx;
flex-direction: column; border-radius: 10rpx;
align-items: flex-start; border: solid 1rpx #f9f9f9;
justify-content: flex-start; }
box-sizing: border-box;
font-size: 26rpx; .shop-title {
margin-left: $margin; display: flex;
color: #999; flex-direction: column;
width: 100%; align-items: flex-start;
span { justify-content: flex-start;
color: $text-price; box-sizing: border-box;
padding-left: 4rpx; font-size: 26rpx;
} margin-left: $margin;
.shop-titl { color: #999;
font-size: 32rpx; width: 100%;
color: #333;
font-weight: bold; span {
margin-bottom: 6rpx; color: $text-price;
overflow: hidden; padding-left: 4rpx;
white-space: nowrap; }
text-overflow: ellipsis;
width: 100%; .shop-titl {
} font-size: 32rpx;
} color: #333;
} font-weight: bold;
.shopInfo-title-right { margin-bottom: 6rpx;
width: 40%; overflow: hidden;
text-align: right; white-space: nowrap;
font-size: 26rpx; text-overflow: ellipsis;
color: gray; width: 100%;
.icons{ }
vertical-align: bottom; }
margin-top: 2rpx; }
}
} .shopInfo-title-right {
} width: 40%;
} text-align: right;
font-size: 26rpx;
color: gray;
.icons {
vertical-align: bottom;
margin-top: 2rpx;
}
}
}
}
</style> </style>

View File

@@ -80,19 +80,19 @@
<uni-icons class="forward" type="forward" color="#999" /> <uni-icons class="forward" type="forward" color="#999" />
</view> </view>
<view class="btns-box-item" @click="onBtn('Invitation', {})"> <view class="btns-box-item" @click="onBtn('Invitation', {})">
<image class="icon" src="@/static/user/userIcon_03.png" mode="widthFix" /> <image class="icon" src="@/static/user/userIcon_07.png" mode="widthFix" />
分享邀请 分享邀请
<uni-icons class="forward" type="forward" color="#999" /> <uni-icons class="forward" type="forward" color="#999" />
</view> </view>
</view> </view>
<view class="btns-box"> <view class="btns-box">
<view class="btns-box-item" @click="onBtn('Feedback', {})"> <view class="btns-box-item" @click="onBtn('Feedback', {})">
<image class="icon" src="@/static/user/userIcon_03.png" mode="widthFix" /> <image class="icon" src="@/static/user/userIcon_06.png" mode="widthFix" />
意见反馈 意见反馈
<uni-icons class="forward" type="forward" color="#999" /> <uni-icons class="forward" type="forward" color="#999" />
</view> </view>
<view class="btns-box-item" @click="updateApp"> <view class="btns-box-item" @click="updateApp">
<image class="icon" src="@/static/user/userIcon_03.png" mode="widthFix" /> <image class="icon" src="@/static/user/userIcon_08.png" mode="widthFix" />
版本更新 版本更新
<uni-icons class="forward" type="forward" color="#999" /> <uni-icons class="forward" type="forward" color="#999" />
</view> </view>
@@ -352,7 +352,7 @@
.user-content { .user-content {
padding-left: 158rpx; padding-left: 158rpx;
height: 140rpx; height: 160rpx;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
@@ -373,7 +373,7 @@
} }
.name { .name {
line-height: 40rpx; line-height: 50rpx;
font-weight: bold; font-weight: bold;
font-size: $title-size + 8; font-size: $title-size + 8;
@extend .nowrap; @extend .nowrap;

BIN
static/user/userIcon_06.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

BIN
static/user/userIcon_07.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

BIN
static/user/userIcon_08.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB