完善会员开通信息

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({
url: 'mall/shops',
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({
url: 'mall/goods',
data: {
shop_id,
category_id
category_id,
page,
}
})
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -80,19 +80,19 @@
<uni-icons class="forward" type="forward" color="#999" />
</view>
<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" />
</view>
</view>
<view class="btns-box">
<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" />
</view>
<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" />
</view>
@@ -352,7 +352,7 @@
.user-content {
padding-left: 158rpx;
height: 140rpx;
height: 160rpx;
display: flex;
flex-direction: column;
justify-content: center;
@@ -373,7 +373,7 @@
}
.name {
line-height: 40rpx;
line-height: 50rpx;
font-weight: bold;
font-size: $title-size + 8;
@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