From badafedccb814258fa54156b558458fa04191f8d Mon Sep 17 00:00:00 2001 From: xuxueyang <xuxy@fengyuntec.com> Date: 星期二, 30 七月 2024 11:42:48 +0800 Subject: [PATCH] update --- sub_pages/customer/trade/list.vue | 13 + pages/home/home.vue | 2 sub_pages/customer/self/history.vue | 252 +++++++++++++++++++++++++++++++ pages.json | 7 store/index.js | 16 ++ sub_pages/customer/trade/detail.vue | 30 +++ pages/user/user-pwd/user-pwd.vue | 40 +++- manifest.json | 2 sub_pages/customer/self/collect.vue | 8 pages/login/supplier-reg.vue | 5 sub_pages/customer/shop/shop.vue | 4 sub_pages/partner/markup-config/markup-config.vue | 2 sub_pages/customer/trade/trade.vue | 55 ++++++ pages/user/supplier-user.vue | 21 + 14 files changed, 414 insertions(+), 43 deletions(-) diff --git a/manifest.json b/manifest.json index 651a10c..7911942 100644 --- a/manifest.json +++ b/manifest.json @@ -49,7 +49,7 @@ "quickapp" : {}, /* 快应用特有相关 */ "mp-weixin" : { - "appid" : "wx1441324401626290", + "appid" : "wx6d0ecc4e18710458", "setting" : { "urlCheck" : false, "es6" : true, diff --git a/pages.json b/pages.json index ce91a3e..1fc9c7a 100644 --- a/pages.json +++ b/pages.json @@ -304,6 +304,13 @@ "navigationBarTitleText": "我的关注", "enablePullDownRefresh": true } + }, + { + "path": "self/history", + "style": { + "navigationBarTitleText": "浏览记录", + "enablePullDownRefresh": true + } }, { "path": "self/collect", diff --git a/pages/home/home.vue b/pages/home/home.vue index 539d789..f96d8b9 100644 --- a/pages/home/home.vue +++ b/pages/home/home.vue @@ -23,7 +23,7 @@ <view class="flex1 input"> <u-input placeholder="请输入花名" v-model="search_flow"> <template slot="suffix"> - <uni-icons color="#20613D" type="search" size="24" @tap="buttonSearchFlow"></uni-icons> + <uni-icons color="#20613D" type="search" size="24" @click="buttonSearchFlow"></uni-icons> </template> </u-input> </view> diff --git a/pages/login/supplier-reg.vue b/pages/login/supplier-reg.vue index 85089a8..f493427 100644 --- a/pages/login/supplier-reg.vue +++ b/pages/login/supplier-reg.vue @@ -35,6 +35,9 @@ <view class="t-a titles-top"> <view class="title-1">HELLO</view> <view class="title-2">欢迎入驻<span class="title-3">花满芫</span></view> + <!-- #ifdef PUB_CUSTOMER --> + <view class="title-2">{{!partnerId?'未绑定合伙人':`已绑定${partnerName}`}}</view> + <!-- #endif --> </view> @@ -72,7 +75,7 @@ <!-- #ifdef PUB_CUSTOMER --> <!-- open-type="getUserInfo"--> <button @tap="wxreg('')" - class="bottom-button">注册,{{!partnerId?'未绑定合伙人':`已绑定${partnerName}`}}</button> + class="bottom-button">注 册</button> <!-- #endif --> diff --git a/pages/user/supplier-user.vue b/pages/user/supplier-user.vue index c0a7541..36cc797 100644 --- a/pages/user/supplier-user.vue +++ b/pages/user/supplier-user.vue @@ -22,10 +22,10 @@ ||currentInfo.supplierDTO&¤tInfo.supplierDTO.cover " :src="currentInfo.picture ||currentInfo.customerDTO&¤tInfo.customerDTO.cover - ||currentInfo.supplierDTO&¤tInfo.supplierDTO.cover" mode="aspectFit"></image> + ||currentInfo.supplierDTO&¤tInfo.supplierDTO.cover" mode="scaleToFill"></image> <image class="user-icon" v-else src='https://youzhen123.oss-cn-huhehaote.aliyuncs.com/WechatOwnerProperty/images/mrtx.png' - mode="aspectFit"></image> + mode="scaleToFill"></image> <view class="name" v-if="currentInfo.id"> <view class="t1"> @@ -49,19 +49,19 @@ </view> <!-- #ifdef PUB_CUSTOMER --> <view class="customer-info-records"> - <view class="item"> - <view class="num" @click="goto('/sub_pages/customer/self/collect',true)">{{ tj.collectNum || 0 }} + <view class="item" @click="goto('/sub_pages/customer/self/collect',true)"> + <view class="num">{{ tj.collectNum || 0 }} </view> <view class="name">我的收藏</view> </view> <view class="line"></view> - <view class="item"> - <view class="num" @click="goto('/sub_pages/customer/self/follow',true)">{{ tj.followNum || 0 }} + <view class="item" @click="goto('/sub_pages/customer/self/follow',true)"> + <view class="num">{{ tj.followNum || 0 }} </view> <view class="name">关注店铺</view> </view> <view class="line"></view> - <view class="item"> + <view class="item" @click="goto('/sub_pages/customer/self/history',true)"> <view class="num">{{ tj.browseNum || 0 }}</view> <view class="name">浏览记录</view> </view> @@ -187,6 +187,13 @@ <uni-icons type="right"></uni-icons> </view> </view> + <view class="user-util m-t-12 flex" v-if="selftype==='customer'" @click="clearlogout"> + <view class="title">退出登录</view> + <view class="right-icon"> + <uni-icons type="right"></uni-icons> + </view> + </view> + <view class="user-util m-t-12 " v-if="selftype==='supplier'||selftype==='customer' || !selftype"> <view class="title">我的客服</view> <view class="flex"> diff --git a/pages/user/user-pwd/user-pwd.vue b/pages/user/user-pwd/user-pwd.vue index 51ffd75..167a751 100644 --- a/pages/user/user-pwd/user-pwd.vue +++ b/pages/user/user-pwd/user-pwd.vue @@ -4,18 +4,29 @@ <!-- <u-form-item :label-position="labelPosition" label="原始密码" label-width="150" prop="oldpassword"> <u-input :border="border" type="password" v-model="model.oldpassword" placeholder="请确认密码"></u-input> </u-form-item> --> -<!-- <u-form-item :label-position="labelPosition" label="旧密码" prop="oldpassword" label-width="150"> + <!-- <u-form-item :label-position="labelPosition" label="旧密码" prop="oldpassword" label-width="150"> <u-input :password-icon="true" :border="border" type="password" v-model="model.oldpassword" placeholder="请输入旧密码"></u-input> </u-form-item> <u-divider></u-divider> --> <u-form-item :label-position="labelPosition" label="新密码" prop="password" label-width="150"> - <u-input :password-icon="true" :border="border" type="password" v-model="model.password" - placeholder="请输入新密码"></u-input> + <u-input :password-icon="true" :border="border" :type="showPassword1?'text':'password'" + v-model="model.password" placeholder="请输入新密码"> + <template slot="suffix"> + <uni-icons color="#20613D" :type="showPassword1 ? 'eye-slash-filled' : 'eye-filled'" size="24" + @click="showPassword1=!showPassword1"></uni-icons> + </template> + </u-input> </u-form-item> <u-divider></u-divider> <u-form-item :label-position="labelPosition" label="确认密码" label-width="150" prop="rePassword"> - <u-input :border="border" type="password" v-model="model.rePassword" placeholder="请确认密码"></u-input> + <u-input :password-icon="true" :border="border" :type="showPassword2?'text':'password'" v-model="model.rePassword" + placeholder="请确认密码"> + <template slot="suffix"> + <uni-icons color="#20613D" :type="showPassword2 ? 'eye-slash-filled' : 'eye-filled'" size="24" + @click="showPassword2=!showPassword2"></uni-icons> + </template> + </u-input> </u-form-item> </u-form> <!-- <u-button @click="submit">提交</u-button> --> @@ -36,7 +47,8 @@ password: '', rePassword: '' }, - + showPassword1: false, + showPassword2:false, rules: { // oldpassword: [ // { @@ -52,17 +64,15 @@ // // } // ], oldpassword: [{ - required: true, - message: '请输入旧密码', - trigger: ['change', 'blur'] - } - ], + required: true, + message: '请输入旧密码', + trigger: ['change', 'blur'] + }], password: [{ - required: true, - message: '请输入密码', - trigger: ['change', 'blur'] - } - ], + required: true, + message: '请输入密码', + trigger: ['change', 'blur'] + }], rePassword: [{ required: true, message: '请重新输入密码', diff --git a/store/index.js b/store/index.js index 9f5be1f..5000bdd 100644 --- a/store/index.js +++ b/store/index.js @@ -415,6 +415,22 @@ } return resp }, + countShopping: async function({ + commit, + dispatch, + state + }, data) { + if(state.currentInfo.id){ + const resp = await http.request('get', '/api/customer/flower/cart/flower/count', {}) + if (resp && resp.code === 0) { + return resp.data || 0 + } else { + return 0 + } + } + return 0 + }, + } }) diff --git a/sub_pages/customer/self/collect.vue b/sub_pages/customer/self/collect.vue index d5ec579..0dd0f95 100644 --- a/sub_pages/customer/self/collect.vue +++ b/sub_pages/customer/self/collect.vue @@ -97,7 +97,7 @@ <view class="flex1 input"> <u-input placeholder="请输入花名" v-model="query.name"> <template slot="suffix"> - <uni-icons color="#20613D" type="search" size="24" @tap="refreshList"></uni-icons> + <uni-icons color="#20613D" type="search" size="24" @click="refreshList"></uni-icons> </template> </u-input> </view> @@ -130,9 +130,9 @@ <view class="flex"> <view class="title"> <span class="m-r-5" style="display: inline-block;" - v-if="item.categoryStr">{{item.categoryStr||''}}</span> - <span v-if="item.levelStr" class="m-r-5" - style="display: inline-block;">{{ item.levelStr || '' }}</span> + v-if="dto.categoryStr">{{dto.categoryStr||''}}</span> + <span v-if="dto.levelStr" class="m-r-5" + style="display: inline-block;">{{ dto.levelStr || '' }}</span> {{ dto.name || '-' }} </view> <view class="price m-l-a m-r-0"> diff --git a/sub_pages/customer/self/history.vue b/sub_pages/customer/self/history.vue new file mode 100644 index 0000000..84d81a4 --- /dev/null +++ b/sub_pages/customer/self/history.vue @@ -0,0 +1,252 @@ +<script> + export default { + async onPullDownRefresh() { + await this.refreshList() + uni.stopPullDownRefresh() + }, + data() { + return { + query: { + name: '', + levelStr: '', + level: '', + column: '', + columnStr: '', + }, + level_show: false, + level_columns: [ + [] + ], + + order_show: false, + order_columns: [ + [] + ] + } + }, + onLoad() { + this.listApi = '/api/browse/history/list' + this.getList() + + this.$http.request('get', '/api/code/value', { + params: { + type: 'FLOWER_LEVEL' + } + }).then(res => { + var data = res.data + this.level_columns = [data || []] + this.level_columns[0].unshift({ + label: '全部', + value: '' + }) + }) + + this.$http.request('get', '/api/code/value', { + params: { + type: 'FLOWER_ORDER_BY' + } + }).then(res => { + var data = res.data + this.order_columns = [data || []] + this.order_columns[0].unshift({ + label: '默认', + value: '' + }) + }) + }, + methods: { + toDetail(item) { + if (item.status == 'UP') { + + } else { + this.$message.showToast('已失效,无法查看详情') + return + } + uni.navigateTo({ + url: `/sub_pages/customer/trade/detail?id=${item.id}` + }) + }, + async submitShopping(dto) { + //提交到购物车中 + this.$message.showLoading() + await this.$store.dispatch('submitShopping', dto); + this.$message.hideLoading() + }, + select_level(e) { + this.level_show = false + this.query.levelStr = e.value[0].label + this.query.level = e.value[0].value + this.refreshList() + + }, + select_order(e) { + this.order_show = false + this.query.columnStr = e.value[0].label + this.query.column = e.value[0].value + this.refreshList() + + }, + } + } +</script> + +<template> + <view class="page-collect " style="background: #E1F0E7;"> + <view style="padding-bottom: 0rpx;" class="p20"> + <view class="search-container flex"> + <view class="flex1 input"> + <u-input placeholder="请输入花名" v-model="query.name"> + <template slot="suffix"> + <uni-icons color="#20613D" type="search" size="24" @click="refreshList"></uni-icons> + </template> + </u-input> + </view> + </view> + <view class="component-filter-container p10"> + <view class="flex1" @click.stop="order_show=true"> + {{ this.query.columnStr || '排序' }} + <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image> + </view> + <view class="flex1" @click.stop="level_show=true"> + {{ this.query.levelStr || '级别' }} + <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image> + </view> + </view> + </view> + + <no-data v-if="!list||list.length===0" style="width: 100%;"></no-data> + + + <u-picker :show="level_show" @confirm="select_level" keyName="label" :columns="level_columns" + @cancel="level_show=false"></u-picker> + <u-picker :show="order_show" @confirm="select_order" keyName="label" :columns="order_columns" + @cancel="order_show=false"></u-picker> + + <view class="trade-list-container"> + <view class="trade-info-container flex" v-for="(dto,index) of list" :key="index" + @click.stop="toDetail(dto)"> + <image class="img img100 br-4 m-r-10" :src="dto.url||dto.cover"></image> + <view class="flex1"> + <view class="flex"> + <view class="title"> + <span class="m-r-5" style="display: inline-block;" + v-if="dto.categoryStr">{{dto.categoryStr||''}}</span> + <span v-if="dto.levelStr" class="m-r-5" + style="display: inline-block;">{{ dto.levelStr || '' }}</span> + {{ dto.name || '-' }} + </view> + <view class="price m-l-a m-r-0"> + ¥{{ dto.price || '-' }}/扎 + </view> + </view> + <view class="flex"> + <view class="desc m-t-12 flex"> + <view class="m-r-15">剩余:{{ dto.stock || 0 }}</view> + <view class="m-r-15">颜色:{{ dto.color || '-' }}</view> + </view> + <view class="button-icons flex m-l-a m-r-0 m-t-20" v-if="dto.status=='UP'"> + <view class="m-r-0 gwc" @click.stop="submitShopping(dto)"> + + 购物车 + </view> + </view> + </view> + </view> + + </view> + + </view> + </view> +</template> + +<style lang="scss" scoped> + .page-collect { + min-height: 99vh; + + .search-container { + display: flex; + margin: 12rpx 0rpx 20rpx 0rpx; + position: relative; + z-index: 1; + + .input { + background-color: #fff !important; + border-radius: 8rpx; + } + + .button { + min-width: 120rpx; + max-width: 120rpx; + margin-left: auto; + margin-right: 0rpx; + text-align: right; + line-height: 70rpx !important; + } + } + + .trade-info-container { + background-color: #fff; + border-top-right-radius: 40rpx; + border-top-left-radius: 40rpx; + padding: 30rpx; + overflow: hidden; + min-height: calc(100vh - 300rpx); + overflow-y: scroll; + + .img { + width: 124rpx; + height: 124rpx; + } + + .title { + font-weight: 600; + font-size: 28rpx; + + color: #000000; + line-height: 40rpx; + + .level { + color: #20613D; + } + } + + .price { + font-weight: 400; + font-size: 28rpx; + color: #CF0000; + line-height: 40rpx; + } + + .desc { + font-weight: 400; + font-size: 24rpx; + color: #666666; + line-height: 34rpx; + } + + + .button-icons { + //position: absolute; + //z-index: 10; + line-height: 40rpx; + + .curnums { + margin-left: 10rpx; + margin-right: 10rpx; + } + } + + .gwc { + width: 168rpx; + height: 48rpx; + border-radius: 30rpx; + border: 2rpx solid #20613D; + font-size: 24rpx; + color: #20613D; + line-height: 48rpx; + text-align: center; + } + + } + + } +</style> \ No newline at end of file diff --git a/sub_pages/customer/shop/shop.vue b/sub_pages/customer/shop/shop.vue index 8808e70..82c1522 100644 --- a/sub_pages/customer/shop/shop.vue +++ b/sub_pages/customer/shop/shop.vue @@ -339,9 +339,9 @@ }) this.$message.hideLoading() if (code === 0) { - item.shopnum += addnum + item.shopnum += addnum + this.$forceUpdate() } - this.$forceUpdate() }, } diff --git a/sub_pages/customer/trade/detail.vue b/sub_pages/customer/trade/detail.vue index 36de112..34afd53 100644 --- a/sub_pages/customer/trade/detail.vue +++ b/sub_pages/customer/trade/detail.vue @@ -13,6 +13,7 @@ </view> <view class="icon-container"> <image src="../../../static/common/icon-shop.png" @click="toShopping(dto)" class="icon-shop"> + <view class="image-shop-number">{{shopnum||'1'}}</view> </image> </view> @@ -128,7 +129,8 @@ data() { return { id: '', - dto: {} + dto: {}, + shopnum: 0, } }, onLoad(options) { @@ -136,8 +138,12 @@ if (this.id) { this.getDetail() } + this.refreshShopNum() }, methods: { + async refreshShopNum() { + this.shopnum = await this.$store.dispatch('submitShopping', dto); + }, async collectItem(dto) { await this.$message.confirm(`是否${dto.collection?'移除':'添加到'}收藏`) this.$message.showLoading() @@ -166,6 +172,7 @@ this.$message.showLoading() await this.$store.dispatch('submitShopping', dto); this.$message.hideLoading() + this.refreshShopNum() }, async getDetail() { this.$message.showLoading() @@ -202,7 +209,20 @@ <style lang="scss" scoped> .trade-detail { - background-color: #FFFFFF; + background-color: #FFFFFF; + .image-shop-number { + width: 30rpx; + height: 30rpx; + background: #F20000; + line-height: 30rpx; + text-align: center; + position: absolute; + right: 0rpx; + top: -6rpx; + color: #FFFFFF; + border-radius: 50%; + font-size: 24rpx; + } .trade-info-container { padding: 46rpx 30rpx; @@ -388,8 +408,10 @@ height: 54rpx; margin: 0 auto; margin-top: 12rpx; - display: inline-block; - + display: inline-block; + margin-left: 12rpx; + position: relative; + } .num { diff --git a/sub_pages/customer/trade/list.vue b/sub_pages/customer/trade/list.vue index 74f6d23..9a5c027 100644 --- a/sub_pages/customer/trade/list.vue +++ b/sub_pages/customer/trade/list.vue @@ -224,6 +224,7 @@ if (this.query.category) { await this.getDetail() } + this.refreshShopNum() // await this.getList('post') // this. @@ -237,7 +238,10 @@ await this.getList('post') uni.stopPullDownRefresh() }, - methods: { + methods: { + async refreshShopNum() { + this.shoptotal = await this.$store.dispatch('submitShopping', dto); + }, async getDetail() { this.$message.showLoading() //获取到分类的详情信息 @@ -355,9 +359,12 @@ }) this.$message.hideLoading() if (code === 0) { - item.shopnum += addnum + item.shopnum += addnum + this.$forceUpdate() + + this.refreshShopNum() + } - this.$forceUpdate() }, } } diff --git a/sub_pages/customer/trade/trade.vue b/sub_pages/customer/trade/trade.vue index bffd115..d32b933 100644 --- a/sub_pages/customer/trade/trade.vue +++ b/sub_pages/customer/trade/trade.vue @@ -44,10 +44,10 @@ </view> <view class="cateen_infos list"> <view class="title">{{item.name}}</view> - <view class="price">¥29.01-30.01</view> + <view class="price">¥{{minWeightPrice(item)}}-{{maxWeightPrice(item)}}</view> - <view class="desc">在售14410扎</view> - + <view class="desc">在售 {{item.stock||'-'}} 扎</view> + </view> </view> @@ -138,6 +138,53 @@ }) }, methods: { + maxWeightPrice(item) { + var p = 0 + if (item.weightA && item.weightA > p) { + p = item.weightA + } + if (item.weightB && item.weightB > p) { + p = item.weightB + } + if (item.weightC && item.weightC > p) { + p = item.weightC + } + if (item.weightD && item.weightD > p) { + p = item.weightD + } + if (item.weightE && item.weightE > p) { + p = item.weightE + } + if (item.weightO && item.weightO > p) { + p = item.weightO + } + return p + }, + minWeightPrice(item) { + var p = -1 + if (item.weightA && item.weightA < p) { + p = item.weightA + } + if (item.weightB && item.weightB < p) { + p = item.weightB + } + if (item.weightC && item.weightC < p) { + p = item.weightC + } + if (item.weightD && item.weightD < p) { + p = item.weightD + } + if (item.weightE && item.weightE < p) { + p = item.weightE + } + if (item.weightO && item.weightO < p) { + p = item.weightO + } + if (p < 0) { + p = 0 + } + return p + }, refInit(catgoryTree) { this.list = catgoryTree || [] if (this.list.length > 0) { @@ -329,7 +376,7 @@ font-size: 24rpx; color: #CF0000; line-height: 34rpx; - text-align: center; + text-align: left; } diff --git a/sub_pages/partner/markup-config/markup-config.vue b/sub_pages/partner/markup-config/markup-config.vue index 83f25ca..d34bb16 100644 --- a/sub_pages/partner/markup-config/markup-config.vue +++ b/sub_pages/partner/markup-config/markup-config.vue @@ -4,7 +4,7 @@ <view class="flex1 input"> <u-input placeholder="请输入分类名称" v-model="query.name" clearable> <template slot="suffix"> - <uni-icons color="#20613D" type="search" size="24" @tap="refreshList"></uni-icons> + <uni-icons color="#20613D" type="search" size="24" @click="refreshList"></uni-icons> </template> </u-input> </view> -- Gitblit v1.9.3