mixin/mixin.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pages.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pages/home/components/home-zones.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pages/order/order-detail.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pages/order/order.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pages/user/supplier-user.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
static/common/icon-call.png | 补丁 | 查看 | 原始文档 | blame | 历史 | |
static/common/icon-car.png | 补丁 | 查看 | 原始文档 | blame | 历史 | |
static/common/icon-order-status-SEND.png | 补丁 | 查看 | 原始文档 | blame | 历史 | |
static/common/icon-wx.png | 补丁 | 查看 | 原始文档 | blame | 历史 | |
sub_pages/customer/self/collect.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
sub_pages/customer/trade/list.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
sub_pages/partner/markup-config/markup-config.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
sub_pages/partner/order-manage/order-manage.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
mixin/mixin.js
@@ -258,9 +258,9 @@ } return true }, async refreshList() { async refreshList(type = 'get') { this.page.current = 1 await this.getList() await this.getList(type) }, async getList(type = 'get') { if (this.listApi) { pages.json
@@ -97,6 +97,20 @@ "navigationBarTitleText": "客服中心", "enablePullDownRefresh": false } }, { "path": "pages/order/order", "style": { "navigationBarTitleText": "我的订单", "enablePullDownRefresh": true } }, { "path": "pages/order/order-detail", "style": { "navigationBarTitleText": "订单详情", "enablePullDownRefresh": false } } ], "subPackages": [ pages/home/components/home-zones.vue
@@ -1,191 +1,205 @@ <template> <view class="home-zones"> <view class="c"> <image class="p1 img100" :lazy-load="true" mode="aspectFit" src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/eb/eba404b98a224edc82897fe9647902e7%E4%BD%8D%E5%9B%BE@2x%20(4).png"> </image> <view class="c-txt-1"> <view class="title">婚礼酒店专区</view> <view class="flex"> <view class="desc">查看详情</view> <view class="right m-l-5"> <uni-icons class="icon" type="right" color="#C3B8A0" size="12"></uni-icons> </view> <view class="home-zones"> <view class="c" v-for="(item,index) of list"> <image class="p1 img100 m-t-12" :lazy-load="true" mode="aspectFit" :src="item.bgUrl"> </image> <view class="c-txt-1"> <view class="title">{{ item.name }}</view> <view class="flex" @click.stop="toDetail(item.id)"> <view class="desc">查看详情</view> <view class="right m-l-5"> <uni-icons class="icon" type="right" color="#C3B8A0" size="12"></uni-icons> </view> </view> </view> </view> <view class="c"> <image class="p2 img100 m-t-12" :lazy-load="true" mode="aspectFit" src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/52/52deec39e6ff47efb4855cda8766f29e%E8%B7%AF%E5%BE%84%204@2x.png"> </image> <view class="c-txt-1" style="top: 60rpx;"> <view class="title">特惠专区</view> <view class="flex"> <view class="desc">查看详情</view> <view class="right m-l-5"> <uni-icons class="icon" type="right" color="#C3B8A0" size="12"></uni-icons> </view> </view> </view> </view> <view class="c" v-if="false"> <image class="p2 img100 m-t-12" :lazy-load="true" mode="aspectFit" src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/52/52deec39e6ff47efb4855cda8766f29e%E8%B7%AF%E5%BE%84%204@2x.png"> </image> <view class="c-txt-1" style="top: 60rpx;"> <view class="title">特惠专区</view> <view class="flex"> <view class="desc">查看详情</view> <view class="right m-l-5"> <uni-icons class="icon" type="right" color="#C3B8A0" size="12"></uni-icons> </view> </view> </view> </view> <view class="flex m-t-12"> <view class="flex1 c m-r-5"> <image class="p3 img100" :lazy-load="true" mode="aspectFit" src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/87/8787940a92524d7a9805a9184946cfaf%E4%BD%8D%E5%9B%BE@2x%20(5).png"> </image> <view class="c-txt-2"> <view class="title">品质专区</view> <view class="flex"> <view class="desc">查看详情</view> <view class="right m-l-5"> <uni-icons class="icon" type="right" color="#ffffff" size="9"></uni-icons> </view> </view> </view> </view> <view class="flex m-t-12" v-if="false"> <view class="flex1 c m-r-5"> <image class="p3 img100" :lazy-load="true" mode="aspectFit" src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/87/8787940a92524d7a9805a9184946cfaf%E4%BD%8D%E5%9B%BE@2x%20(5).png"> </image> <view class="c-txt-2"> <view class="title">品质专区</view> <view class="flex"> <view class="desc">查看详情</view> <view class="right m-l-5"> <uni-icons class="icon" type="right" color="#ffffff" size="9"></uni-icons> </view> </view> </view> </view> <view class="flex1 c m-l-5"> <image class="p4 img100" :lazy-load="true" mode="aspectFit" src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/0e/0eb0917d31e64c849f250b6e0a825b25%E4%BD%8D%E5%9B%BE@2x%20(6).png"> </image> <view class="c-txt-2 red"> <view class="title">秒杀专区</view> <view class="flex"> <view class="desc">查看详情</view> <view class="right m-l-5"> <uni-icons class="icon" type="right" color="#ffffff" size="9"></uni-icons> </view> </view> </view> </view> <view class="flex1 c m-l-5"> <image class="p4 img100" :lazy-load="true" mode="aspectFit" src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/0e/0eb0917d31e64c849f250b6e0a825b25%E4%BD%8D%E5%9B%BE@2x%20(6).png"> </image> <view class="c-txt-2 red"> <view class="title">秒杀专区</view> <view class="flex"> <view class="desc">查看详情</view> <view class="right m-l-5"> <uni-icons class="icon" type="right" color="#ffffff" size="9"></uni-icons> </view> </view> </view> </view> </view> </view> </view> </view> </view> </view> </view> </template> <script> export default { data() { return { }; } } export default { data() { return { list: [], }; }, methods: { toDetail(id) { uni.navigateTo({ url: `//sub_pages/customer/trade/list?zoneId=${id}` }) }, }, onLoad() { this.$http.request('get', '/api/flower/zone/list', {}).then(res => { this.list = res.data || [] }) }, } </script> <style lang="scss"> .home-zones { margin-top: 20rpx; .home-zones { margin-top: 20rpx; .c { position: relative; .c { position: relative; .c-txt-1 { position: absolute; left: 38rpx; top: 40rpx; .c-txt-1 { position: absolute; left: 38rpx; top: 40rpx; .title { font-weight: 600; font-size: 36rpx; color: #FFFFFF; line-height: 50rpx; margin-bottom: 8rpx; } .title { font-weight: 600; font-size: 36rpx; color: #FFFFFF; line-height: 50rpx; margin-bottom: 8rpx; } .desc { font-weight: 400; font-size: 28rpx; color: #FFFFFF; line-height: 40rpx; } .desc { font-weight: 400; font-size: 28rpx; color: #FFFFFF; line-height: 40rpx; } .right { background: #FFFFFF; border-radius: 50%; width: 28rpx; height: 28rpx; margin-top: 6rpx; position: relative; .right { background: #FFFFFF; border-radius: 50%; width: 28rpx; height: 28rpx; margin-top: 6rpx; position: relative; .icon { position: absolute; top: -10rpx; left: 2rpx; } } } .icon { position: absolute; top: -10rpx; left: 2rpx; } } } .c-txt-2 { position: absolute; left: 22rpx; top: 50rpx; .c-txt-2 { position: absolute; left: 22rpx; top: 50rpx; .title { font-weight: 600; font-size: 28rpx; color: #535FCA; line-height: 40rpx; margin-bottom: 2rpx; } .title { font-weight: 600; font-size: 28rpx; color: #535FCA; line-height: 40rpx; margin-bottom: 2rpx; } .desc { font-weight: 400; font-size: 24rpx; color: #535FCA; line-height: 34rpx; } .desc { font-weight: 400; font-size: 24rpx; color: #535FCA; line-height: 34rpx; } .right { background: #535FCA; border-radius: 50%; width: 24rpx; height: 24rpx; margin-top: 6rpx; position: relative; .right { background: #535FCA; border-radius: 50%; width: 24rpx; height: 24rpx; margin-top: 6rpx; position: relative; .icon { position: absolute; top: -14rpx; left: 4rpx; } } } .icon { position: absolute; top: -14rpx; left: 4rpx; } } } .c-txt-2.red { .title { color: #892E2E; } .desc { color: #892E2E; } .right{ background: #892E2E; } } } .c-txt-2.red { .title { color: #892E2E; } .p1 { width: 100%; height: 176rpx; } .desc { color: #892E2E; } .p2 { width: 100%; height: 176rpx; .right { background: #892E2E; } } } } .p1 { width: 100%; height: 176rpx; } .p3 { width: 100%; height: 176rpx; } .p2 { width: 100%; height: 176rpx; .p4 { width: 100%; height: 176rpx; } } } .p3 { width: 100%; height: 176rpx; } .p4 { width: 100%; height: 176rpx; } } </style> pages/order/order-detail.vue
对比新文件 @@ -0,0 +1,313 @@ <script> export default { data() { return { id: '', dto: {} }; }, onLoad(options) { this.id = options.id || '' if (this.id) { this.getDetail() this.getItemList() } }, methods: { copyTxt(txt) { uni.setClipboardData({ data: txt,//要被复制的内容 success: () => {//复制成功的回调函数 uni.showToast({//提示 title: '复制成功' }) } }) }, async getDetail() { this.$message.showLoading() const {code, data} = this.$http.request('get', '/api/customer/order/list/view', { params: { id: this.id } }) this.$message.hideLoading() if (code === 0 && data) { this.dto = { ...this.dto, ...data } } }, async getItemList() { this.$message.showLoading() const {code, data} = this.$http.request('get', '/api/customer/order/item/list', { params: { id: this.id } }) this.$message.hideLoading() if (code === 0 && data) { this.list = data || [] } }, buttonClick(buttontype) { } }, } </script> <template> <view class="order-detail-page"> <view class="top-tip flex m-b-20"> <image src="//static/common/icon-order-status-SEND.png" class="icon-car m-r-6 img100"></image> <view> <view>{{ dto.status === 'SEND' && '商家已发货,正在通知顺丰小件取货' || dto.status === 'PENDING' && '订单还未支付,立即去支付' || dto.status === 'RECEIVE' && '待签收' || ('订单' + dto.statusStr) }} </view> <!-- <view>{{dto.paymentTime}}</view>--> </view> </view> <view class="m-b-20 address-container"> <view class="flex"> <view class="icon-loc"> <image src="/static/common/icon-loc.png" class="image"></image> </view> <view class="info"> <view class="title"> {{ dto.customer }} <view class="tel">{{ dto.customerTel }}</view> </view> <view class="content">{{ dto.customerAddress }}</view> </view> </view> </view> <view class="flower-info m-b-20" v-for="(item,index) of list" :key="index"> </view> <view class="info-container"> <view class="form-item"> <view class="label">订单编号:</view> <view class="value">{{ dto.orderNo || '-' }}</view> <view class="button m-l-a m-r-0" @click="copyTxt(dto.orderNo)">复制</view> </view> <view class="form-item"> <view class="label">下单日期:</view> <view class="value">{{ dto.paymentTime || '-' }}</view> </view> <view class="form-item" v-if="dto.cancelTime&&(dto.status==='CANCEL')"> <view class="label">取消时间:</view> <view class="value">{{ dto.cancelTime || '-' }}</view> </view> <view class="form-item" v-if="dto.evaluateTime&&(dto.status==='COMPLETED')"> <view class="label">评价时间:</view> <view class="value">{{ dto.evaluateTime || '-' }}</view> </view> <view class="form-item" v-if="(dto.status==='REFUND')"> <view class="label">退款金额:</view> <view class="value">{{ dto.refundAmount || '-' }}</view> </view> <view class="form-item" v-if="dto.refundNo&&(dto.status==='REFUND')"> <view class="label">退款单号:</view> <view class="value">{{ dto.refundNo || '-' }}</view> </view> <view class="form-item" v-if="dto.refundTime&&(dto.status==='REFUND')"> <view class="label">退款时间:</view> <view class="value">{{ dto.refundTime || '-' }}</view> </view> <view class="form-item" v-if="dto.receiveTime&&(dto.status==='EVALUATE')"> <view class="label">收货时间:</view> <view class="value">{{ dto.receiveTime || '-' }}</view> </view> <view class="form-item" v-if="dto.completeTime&&(dto.status==='COMPLETED')"> <view class="label">完成时间:</view> <view class="value">{{ dto.completeTime || '-' }}</view> </view> <view class="form-item" v-if="dto.transferTime&&(dto.status==='REFUND')"> <view class="label">转账时间:</view> <view class="value">{{ dto.transferTime || '-' }}</view> </view> <view class="line"> </view> <view class="form-item"> <view class="label">特殊需求:</view> <view class="value">{{ dto.specialNeeds || '-' }}</view> </view> <view class="form-item"> <view class="label">买家留言:</view> <view class="value">{{ dto.remarks || '-' }}</view> </view> </view> <view class="info-container"> <view class="form-item"> <view class="label">订单金额:</view> <view class="value">{{ dto.totalAmount || '-' }}</view> </view> <view class="form-item"> <view class="label">支付金额:</view> <view class="value">{{ dto.paymentAmount || '-' }}</view> </view> <view class="form-item"> <view class="label">商品金额:</view> <view class="value">{{ dto.flowerAmount || '-' }}</view> </view> <view class="form-item"> <view class="label">运费:</view> <view class="value">{{ dto.transportFee || '-' }}</view> </view> </view> <view class="info-container"> <view> <image src="/static/common/icon-kf.png" class="icon-kf m-l-15 img100"></image> 我的客服 </view> <view class="flex"> <view class="flex1 w-fit m-auto"> <image src="/static/common/icon-call.png" class="icon-call img100"></image> 15974805814 </view> <view class="flex1 w-fit m-auto"> <image src="/static/common/icon-wx.png" class="icon-call img100"></image> 在线客服 </view> </view> </view> <view class="button-space"></view> <view class="buttons-bottom"> <view class="button button-1" @click="buttonClick('refund')">申请退款</view> </view> </view> </template> <style lang="scss" scoped> .order-detail-page { background: #F7F7F7; padding: 30rpx; .info-container { .button-space { min-height: 140rpx; } .icon-kf { width: 44rpx; height: 44rpx; } .icon-call { width: 32rpx; height: 32rpx; } .buttons-bottom { position: fixed; left: 0; bottom: 0; right: 0; height: 120rpx; .button { border-radius: 42rpx; border: 2rpx solid #CECECE; font-weight: 400; font-size: 28rpx; color: #999999; text-align: center; line-height: 76rpx; } .button-1 { } } } .info-container { padding: 28rpx; .form-item { font-weight: 400; font-size: 28rpx; color: #666666; line-height: 40rpx; display: flex; .label { min-height: 140rpx; } .value { } } .line { height: 2rpx solid #EEEEEE; } } .top-tip { .icon-car { width: 52rpx; height: 52rpx; } } .address-container { padding: 28rpx; .icon-loc { width: 48rpx; height: 48rpx; background: #20613D; border-radius: 50%; .image { margin-top: 8rpx; margin-left: 8rpx; width: 32rpx; height: 32rpx; } } .info { .title { font-weight: 600; font-size: 32rpx; color: #000000; line-height: 44rpx; .tel { display: inline-block; margin-left: 20rpx; } } .content { font-weight: 400; font-size: 28rpx; color: #000000; line-height: 40rpx; } } } .flower-info { padding: 28rpx; background: #FFFFFF; border-radius: 8rpx; } } </style> pages/order/order.vue
对比新文件 @@ -0,0 +1,203 @@ <script> export default { data() { return { type: 'customer', query: { status: '', }, status: [ {name: '全部', value: ''}, {name: '待付款', value: 'PENDING'}, {name: '待发货', value: 'SEND'}, {name: '待收货', value: 'RECEIVE'}, {name: '待评价', value: 'EVALUATE'}, {name: '售后', value: 'COMPLETED'}, {name: '已退款', value: 'REFUND'}, ] }; }, onLoad(options) { this.query.status = options.status || '' this.listApi = `/api/customer/list` this.getList() }, onReachBottom() { this.page.current += 1 this.getMore() }, async onPullDownRefresh() { this.page.current = 1 await this.getList() uni.stopPullDownRefresh() }, methods: { toDetail(item) { // 订单详情页面 uni.navigateTo({ url: 'pages/order/order-detail?id=' + item.id }) }, }, } </script> <template> <view class="order-container"> <view class="order-top"> <view class="title">订单信息</view> <view class="flex"> <image class="image img100" src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/67/67acf980f310460a97d305c6ffc7e811位图@2x (1).png"></image> <view>消费订单:¥<span>{{ '0' }}</span> 总消费:¥<span>{{ '0' }}</span></view> </view> </view> <view class="status-list m-t-12 flex"> <view v-for="each of status" :key="each.value" class="status-each" :class="[query.status===each.value?'cur':'']"> {{ each.name }} </view> </view> <no-data v-if="!list||list.length==0" style="width: 100%;" class="m-t-12"></no-data> <view v-for="(item,index) in list" :key="index" class="m-t-12"> <view @click.stop="toDetail(item)" class="order-item list-item"> <view class="title flex"> <view> 订单:{{ item.orderNo }} </view> <view class="status t-red m-l-a m-r-0">¥{{ item.paymentAmount || item.totalAmount || '0'}}</view> </view> <view class="desc flex" v-if="!query.status"> <view class="label"> 订单状态: </view> <view class="value">{{ item.statusBackendStr }}</view> </view> <view class="desc flex"> <view class="label"> 收货人: </view> <view class="value">{{ item.customer }}</view> </view> <view class="desc flex"> <view class="label"> 收货人手机号码: </view> <view class="value">{{ item.customerTel }}</view> </view> <view class="desc flex"> <view class="label"> 收货地址: </view> <view class="value">{{ item.customerAddress }}</view> </view> <view class="desc flex"> <view class="label"> 支付时间: </view> <view class="value">{{ item.paymentTime }}</view> </view> </view> </view> </view> </template> <style lang="scss" scoped> .order-container { padding: 24rpx 30rpx; .order-item { margin-bottom: 20rpx; padding: 28rpx; .title { font-weight: 600; font-size: 28rpx; color: #000000; line-height: 40rpx; .status { font-weight: 400; font-size: 28rpx; color: #20613D; line-height: 40rpx; } } .desc{ font-weight: 400; font-size: 24rpx; color: #666666; line-height: 34rpx; } .line { height: 2rpx solid #EEEEEE; margin-top: 16rpx; margin-bottom: 16rpx; } } .status-list { overflow-x: scroll; .status-each { font-weight: 400; font-size: 28rpx; color: #666666; line-height: 40rpx; margin: 0 auto; //min-width: ; padding-left: 20rpx; padding-right: 20rpx; width: fit-content; text-align: center; } .status-each.cur { font-weight: 600; font-size: 32rpx; color: #20613D; line-height: 44rpx; } .status-each:first-child { margin-left: 0 } .status-each:last-child { margin-right: 0; } } .order-top { position: relative; min-height: 182rpx; background: #E1F0E7; border-radius: 8rpx; padding: 45rpx 35rpx; .title { font-weight: 600; font-size: 30rpx; color: #000000; line-height: 42rpx; } .desc { font-weight: 400; font-size: 24rpx; color: #666666; line-height: 34rpx; } .image { position: absolute; right: 0rpx; width: 288rpx; height: 148rpx; bottom: 0rpx; } } } </style> pages/user/supplier-user.vue
@@ -164,15 +164,15 @@ <uni-icons type="right"></uni-icons> </view> </view> <view class="user-util m-t-12 " @click="callTel" <view class="user-util m-t-12 " v-if="selftype==='supplier'||selftype==='customer' || !selftype"> <view class="title">我的客服</view> <view class="flex"> <image class="icon-clock m-r-6 m-t-2" src="../../static/common/icon-call.png"></image> <view class="name"> <view class="name" @click="callTel"> 客服电话 : <span class="topic-gray">{{ tel }}</span> </view> <view class="right-icon" @click="goto('/pages/help/help',false)"> <view class="right-icon" open-type="contact"> <uni-icons type="right"></uni-icons> </view> </view> static/common/icon-call.pngstatic/common/icon-car.png
static/common/icon-order-status-SEND.png
static/common/icon-wx.png
sub_pages/customer/self/collect.vue
@@ -10,14 +10,14 @@ </view> </view> <view class="component-filter-container"> <view class="flex1"> 排序 <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"> <view class="flex1" @click.stop="level_show=true"> {{ this.query.levelStr || '级别' }} <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down" @click="level_show=true"></image> ></image> </view> </view> @@ -29,19 +29,19 @@ <view class="trade-list-container"> <view class="trade-info-container" v-for="(dto,index) of list" :key="index"> <view class="title"> <view class="level m-r-15">{{dto.levelStr || '-'}}级</view> <view class="level m-r-15">{{ dto.levelStr || '-' }}级</view> <view class=""> {{dto.name || '-'}} {{ dto.name || '-' }} </view> </view> <view class="desc m-t-12"> <view class="m-r-15">已售:{{ dto.sales || 0}}</view> <view class="m-r-15">剩余:{{dto.stock || 0}}</view> <view class=" ">{{dto.unit||'-'}}支/扎</view> <view class="m-r-15">已售:{{ dto.sales || 0 }}</view> <view class="m-r-15">剩余:{{ dto.stock || 0 }}</view> <view class=" ">{{ dto.unit || '-' }}支/扎</view> </view> <view class="flex m-t-12"> <view class="price m-r-a"> <span class="num">{{dto.price||'-'}}</span> <span class="num">{{ dto.price || '-' }}</span> 元/扎 </view> <view class="m-l-a m-r-15"> @@ -70,14 +70,14 @@ name: '', levelStr: '', level: '', column:'', columnStr:'', column: '', columnStr: '', }, level_show: false, level_columns: [[]], order_show:false, order_columns:[[]] order_show: false, order_columns: [[]] } }, onLoad() { @@ -115,11 +115,15 @@ 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() }, } } sub_pages/customer/trade/list.vue
@@ -1,268 +1,393 @@ <template> <!-- 列表页面 --> <view class="trade-list"> <view class="category-detail flex"> <view class="flex1 info"> <view class="title flex"> <view>牛油果泡泡</view> <view> <image src="../../../static/common/icon-kf.png" class="icon-kf m-l-15 img100"></image> </view> </view> <view class="desc"> 规格:10支/扎 </view> <view class="desc"> 估重:1.3kg/扎 </view> <view class="desc"> 包袋:棉袋 </view> </view> <view class="info-price"> <view class="title">当日均价</view> <view class="price">19.66</view> <view class="flex desc"> <view class="m-l-a m-r-5">+0.76</view> <view class="m-r-a m-l-5">+4.02%</view> </view> </view> </view> <view class="" style="min-height: calc(100vh - 260rpx);"> <no-data v-if="!list||list.length==0" style="width: 100%;"></no-data> <view v-else> <!-- 查询条件 --> <view class="component-filter-container"> <view class="flex1"> 等级<image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image> </view> <view class="flex1"> 等级<image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image> </view> <view class="flex1"> 好卖家<image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image> </view> <view class="flex1"> 颜色<image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image> </view> <view class="flex1"> 筛选<image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image> </view> </view> </view> <view class="component-shop-item flex" v-for="(item,index) of list" :key="index" @click="toDetail(item)"> <view class="img"> <image class="img img100" src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/ff/fff3027bd0a146478fd1f0aae816a028%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20240710224139.png"> </image> <view class="level"> A级 </view> </view> <!-- 列表页面 --> <view class="trade-list"> <view class="category-detail flex"> <view class="flex1 info"> <view class="title flex"> <view>牛油果泡泡</view> <view> <image src="../../../static/common/icon-kf.png" class="icon-kf m-l-15 img100"></image> <view class="m-l-12 info-container flex1"> <view class="title"> 橙色芭比 <view class="price"> ¥6.60/扎 </view> </view> <view class="shop-name"> 牛油果泡泡·白色 </view> <view class="other-info flex"> <view class="m-r-15"> 已售:7 </view> <view class="m-r-15"> 剩余:13 </view> <view class="m-r-15"> 1支/扎 </view> </view> <view class="bottom-buttons flex"> </view> </view> <view class="desc"> 规格:10支/扎 </view> <view class="desc"> 估重:1.3kg/扎 </view> <view class="desc"> 包袋:棉袋 </view> </view> <view class="info-price"> <view class="title">当日均价</view> <view class="price">19.66</view> <view class="flex desc"> <view class="m-l-a m-r-5">+0.76</view> <view class="m-r-a m-l-5">+4.02%</view> </view> </view> </view> <view class="" style="min-height: calc(100vh - 260rpx);"> <no-data v-if="!list||list.length==0" style="width: 100%;"></no-data> <view v-else> <!-- 查询条件 --> <view class="component-filter-container"> <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 class="icons flex"> <uni-icons v-if="item.shopnum&&item.shopnum>=1" type="minus" size="32" @click.stop="mulnum(item)"></uni-icons> <view class="curnums" v-if="item.shopnum&&item.shopnum>=1">{{item.shopnum}}</view> <uni-icons v-if="!item.shopnum||item.shopnum<=99" type="plus-filled" size="32" @click.stop="addnum(item)"></uni-icons> </view> </view> </view> </view> <!-- <view class="flex1">--> <!-- 好卖家<image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image>--> <!-- </view>--> <!-- <view class="flex1">--> <!-- 颜色<image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image>--> <!-- </view>--> <view class="flex1" @click="showSelectParams" v-if="query.category"> 筛选 <image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image> </view> </view> </view> <view class="component-shop-item flex" v-for="(item,index) of list" :key="index" @click="toDetail(item)"> <view class="img"> <image class="img img100" src="https://hmy-flower.oss-cn-shanghai.aliyuncs.com/ff/fff3027bd0a146478fd1f0aae816a028%E5%BE%AE%E4%BF%A1%E6%88%AA%E5%9B%BE_20240710224139.png"> </image> <view class="level"> A级 </view> </view> <view class="m-l-12 info-container flex1"> <view class="title"> 橙色芭比 <view class="price"> ¥6.60/扎 </view> </view> <view class="shop-name"> 牛油果泡泡·白色 </view> <view class="other-info flex"> <view class="m-r-15"> 已售:7 </view> <view class="m-r-15"> 剩余:13 </view> <view class="m-r-15"> 1支/扎 </view> </view> <view class="bottom-buttons flex"> <view class="icons flex"> <uni-icons v-if="item.shopnum&&item.shopnum>=1" type="minus" size="32" @click.stop="mulnum(item)"></uni-icons> <view class="curnums" v-if="item.shopnum&&item.shopnum>=1">{{ item.shopnum }}</view> <uni-icons v-if="!item.shopnum||item.shopnum<=99" type="plus-filled" size="32" @click.stop="addnum(item)"></uni-icons> </view> </view> </view> </view> <view class="icon-shop" v-if="list&&list.length>0"> <!-- 购物图标 --> <!-- 如果有购买的东西,就要附带数字了 --> <view v-if="shoptotal>0" class="number"> {{shoptotal}} </view> </view> </view> <view class="icon-shop" v-if="list&&list.length>0"> <!-- 购物图标 --> <!-- 如果有购买的东西,就要附带数字了 --> <view v-if="shoptotal>0" class="number"> {{ shoptotal }} </view> </view> </view> <!-- 判断是否到底了,自动吧 --> <footer-msg :more="page.total>0&&page.total>page.current*page.size"></footer-msg> </view> <!-- 判断是否到底了,自动吧 --> <footer-msg :more="page.total>0&&page.total>page.current*page.size"></footer-msg> <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> <uni-popup ref="popup_param" type="bottom"> <view class="component-popup_input_all" v-if="params"> <view class="text-center m-b-40" style="font-size: 48rpx;font-weight: 600;">商品参数设置</view> <!-- 输入框--> <view v-for="(item,i) in params" :key="i" class="m-t-20"> <view class="title topic-font" style="font-size: 40rpx;font-weight: 600;">{{ item.name }}</view> <view class="m-t-12 flex value-items"> <view class="value-item" @click="updateValue(item,each)" :class="[item.value===each?'cur':'']" v-for="(each, j) in item.values" :key="j"> {{ each || '-' }} </view> </view> </view> <view class="button-space"></view> <view class="button-space"></view> <view class="button-green" style="background-color: #fff;bottom: 160rpx;color: #000" @click="closeParamPopAndQuery"> 查询 </view> <view class="button-green" @click="closeParamPop">关闭</view> </view> </uni-popup> </view> </template> <script> export default { data() { return { query: { category: '', }, shoptotal:0, list:[{},{},{}] } }, async onLoad(options) { // this.list = [{},{}] console.log('options', options) this.query.category = options.categoryId || '' this.listApi = '/api/customer/flower/list' this.getList() export default { data() { return { query: { category: '', zoneId: '', levelStr: '', level: '', column: '', params: [], columnStr: '', }, params: [], // await this.getList('post') // this. }, onReachBottom() { this.page.current += 1 this.getMore('post') }, async onPullDownRefresh() { this.page.current = 1 await this.getList('post') uni.stopPullDownRefresh() }, methods: { toDetail(item) { uni.navigateTo({ url: `/sub_pages/customer/trade/detail?id=${item.id}` }) }, mulnum(item) { if (item.shopnum > 0) { item.shopnum -= 1 } this.shoptotal -= 1 this.$forceUpdate() }, addnum(item) { if (item.shopnum) { item.shopnum += 1 } else { item.shopnum = 1 } this.shoptotal += 1 this.$forceUpdate() }, } } shoptotal: 0, list: [], level_show: false, level_columns: [[]], order_show: false, order_columns: [[]] } }, async onLoad(options) { // this.list = [{},{}] console.log('options', options) this.query.category = options.categoryId || '' this.query.zoneId = options.zoneId || '' this.listApi = '/api/customer/flower/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.columns_levels[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: '' }) }) // await this.getList('post') // this. }, onReachBottom() { this.page.current += 1 this.getMore('post') }, async onPullDownRefresh() { this.page.current = 1 await this.getList('post') uni.stopPullDownRefresh() }, methods: { updateValue(item, value) { item.value = value this.$set(item, 'value', value) this.$forceUpdate() }, closeParamPop() { this.$refs.popup_param.close() }, closeParamPopAndQuery() { this.$refs.popup_param.close() //设置参数 this.dto.params = [] for (var params of this.params) { if (params.value) { this.dto.params.push({ id: params.id, value: params.value }) } } this.refreshList('post') }, async showSelectParams() { //得有分类才有参数 this.$message.showLoading() const res = await this.$http.request('get', '/api/supplier/flower/params', { params: { categoryId: this.dto.category } }) this.$message.hideLoading() if (res.code === 0) { // this.columns_params = res.data || [] this.dto.params = res.data || [] this.$refs.popup_param.open() } }, select_level(e) { this.level_show = false this.query.levelStr = e.value[0].label this.query.level = e.value[0].value this.refreshList('post') }, select_order(e) { this.order_show = false this.query.columnStr = e.value[0].label this.query.column = e.value[0].value this.refreshList('post') }, toDetail(item) { uni.navigateTo({ url: `/sub_pages/customer/trade/detail?id=${item.id}` }) }, mulnum(item) { if (item.shopnum > 0) { item.shopnum -= 1 } this.shoptotal -= 1 this.$forceUpdate() }, addnum(item) { if (item.shopnum) { item.shopnum += 1 } else { item.shopnum = 1 } this.shoptotal += 1 this.$forceUpdate() }, } } </script> <style lang="scss"> .trade-list { padding: 24rpx 30rpx; .trade-list { padding: 24rpx 30rpx; .category-detail { padding: 22rpx 38rpx; margin-bottom: 10rpx; background-color: #E1F0E7; border-radius: 8rpx; .category-detail { padding: 22rpx 38rpx; margin-bottom: 10rpx; background-color: #E1F0E7; border-radius: 8rpx; .info { .title { font-weight: 600; font-size: 36rpx; color: #000000; line-height: 50rpx; } .info { .title { font-weight: 600; font-size: 36rpx; color: #000000; line-height: 50rpx; } .icon-kf { width: 44rpx; height: 44rpx; } .icon-kf { width: 44rpx; height: 44rpx; } .desc { font-weight: 400; font-size: 24rpx; color: #666666; line-height: 34rpx; margin-top: 8rpx; } } .desc { font-weight: 400; font-size: 24rpx; color: #666666; line-height: 34rpx; margin-top: 8rpx; } } .info-price { padding: 22rpx; text-align: center; background: #FFFFFF; border-radius: 8rpx; min-width: 260rpx; .title { font-weight: 400; font-size: 24rpx; color: #000000; line-height: 34rpx; } .info-price { padding: 22rpx; text-align: center; background: #FFFFFF; border-radius: 8rpx; min-width: 260rpx; .price { font-weight: 600; font-size: 32rpx; color: #BF0000; line-height: 44rpx; margin-top: 12rpx; } .title { font-weight: 400; font-size: 24rpx; color: #000000; line-height: 34rpx; } .desc { font-weight: 400; font-size: 24rpx; color: #666666; line-height: 34rpx; margin-top: 12rpx; } } } .price { font-weight: 600; font-size: 32rpx; color: #BF0000; line-height: 44rpx; margin-top: 12rpx; } .desc { font-weight: 400; font-size: 24rpx; color: #666666; line-height: 34rpx; margin-top: 12rpx; } } } .icon-shop { position: absolute; position: fixed; background-image: url('../../../static/images/customer/gwc.png'); width: 140rpx; height: 140rpx; // box-shadow: 0rpx 4rpx 22rpx 0rpx rgba(0, 0, 0, 0.16); border-radius: 50%; right: 40rpx; bottom: 300rpx; background-size: 100% 100%; .number { width: 30rpx; height: 30rpx; background: #F20000; line-height: 30rpx; text-align: center; position: absolute; right: 14rpx; top: 14rpx; color: #FFFFFF; border-radius: 50%; font-size: 24rpx; } } } .icon-shop { position: absolute; position: fixed; background-image: url('../../../static/images/customer/gwc.png'); width: 140rpx; height: 140rpx; // box-shadow: 0rpx 4rpx 22rpx 0rpx rgba(0, 0, 0, 0.16); border-radius: 50%; right: 40rpx; bottom: 300rpx; background-size: 100% 100%; .number { width: 30rpx; height: 30rpx; background: #F20000; line-height: 30rpx; text-align: center; position: absolute; right: 14rpx; top: 14rpx; color: #FFFFFF; border-radius: 50%; font-size: 24rpx; } } } </style> sub_pages/partner/markup-config/markup-config.vue
@@ -13,11 +13,18 @@ <view v-for="(item,index) in list" :key="index" class="m-b-24 markup-config-list list-container"> <view class="markup-config-item list-item"> <view class="title"> 商品分类:{{item.name || '-'}} 商品名称:{{item.name || '-'}} </view> <u-divider></u-divider> <view class="form"> <view class="form-item"> <view class="form-item-label">分类</view> <view class="form-item-value">{{item.categoryStr || '-'}}</view> </view> <view class="form-item"> <view class="form-item-label">规格</view> <view class="form-item-value">{{item.unit || '-'}}</view> </view> <view class="form-item"> <view class="form-item-label">规格</view> <view class="form-item-value">{{item.unit || '-'}}</view> @@ -31,36 +38,24 @@ <view class="form-item-value">{{item.color || '-'}}</view> </view> <view class="form-item"> <view class="form-item-label">等级A</view> <view class="form-item-value">{{item.levelA || '-'}}</view> </view> <view class="form-item"> <view class="form-item-label">等级A</view> <view class="form-item-value">{{item.levelA || '-'}}元</view> </view> <view class="form-item"> <view class="form-item-label">等级A</view> <view class="form-item-value">{{item.levelA || '-'}}元</view> </view> <view class="form-item"> <view class="form-item-label">等级B</view> <view class="form-item-value">{{item.levelB || '-'}}元</view> </view> <view class="form-item"> <view class="form-item-label">等级C</view> <view class="form-item-value">{{item.levelC || '-'}}元</view> </view> <view class="form-item"> <view class="form-item-label">等级D</view> <view class="form-item-value">{{item.levelD || '-'}}元</view> </view> <view class="form-item"> <view class="form-item-label">等级E</view> <view class="form-item-value">{{item.levelE || '-'}}元</view> </view> <view class="form-item"> <view class="form-item-label">等级O</view> <view class="form-item-value">{{item.levelO || '-'}}元</view> <view class="form-item-label">级别</view> <view class="form-item-value">{{item.levelStr || '-'}}</view> </view> <view class="form-item"> <view class="form-item-label">供应商价格</view> <view class="form-item-value">¥{{item.price || '-'}}</view> </view> <view class="form-item"> <view class="form-item-label">加价金额</view> <view class="form-item-value">{{item.fee || '-'}}</view> </view> <view class="form-item"> <view class="form-item-label">审核时间</view> <view class="form-item-value">{{item.auditTime || '-'}}</view> </view> <view class="form-item"> <view class="form-item-label">供应商名称</view> <view class="form-item-value">{{item.supplierName || '-'}}</view> </view> </view> </view> @@ -84,7 +79,7 @@ } }, onLoad() { this.listApi = '' this.listApi = '/api/flower/markup/sp/list' this.getList() }, sub_pages/partner/order-manage/order-manage.vue
@@ -1,156 +1,202 @@ <template> <view class="list-container order-settlement supplier"> <view class="component-tab-container m-t-12"> <view class="tab-item" :class="[tabIndex==0?'cur':'']" @click="changeIndex(0)">待配送</view> <view class="tab-item" :class="[tabIndex==1?'cur':'']" @click="changeIndex(1)">已配送</view> </view> <view class="p15" style="min-height: calc(100vh - 160rpx);"> <no-data v-if="!list||list.length==0" style="width: 100%;"></no-data> <view v-for="(item,index) in list" :key="index" class="m-b-24 order-settlement-list list-container"> <view class="order-settlement-item list-item"> <view class="title flex"> <view> 订单:27799880327543 </view> <view class="status m-l-a m-r-0">已结算</view> </view> <view class="button-green-1">确认配送完成</view> </view> </view> </view> <view class="list-container order-settlement supplier"> <view class="component-tab-container m-t-12"> <view class="tab-item" :class="[tabIndex===0?'cur':'']" @click="changeIndex(0)">全部</view> <view class="tab-item" :class="[tabIndex===1?'cur':'']" @click="changeIndex(1)">待配送</view> <view class="tab-item" :class="[tabIndex===2?'cur':'']" @click="changeIndex(2)">待收货</view> <!-- 判断是否到底了,自动吧 --> <footer-msg :more="page.total>0&&page.total>page.current*page.size"></footer-msg> </view> </view> <view class="p15" style="min-height: calc(100vh - 160rpx);"> <no-data v-if="!list||list.length==0" style="width: 100%;"></no-data> <view v-for="(item,index) in list" :key="index" class="m-b-24 order-settlement-list list-container" @click.stop="toDetail(item)"> <view class="order-settlement-item list-item"> <view class="title flex"> <view> 订单:{{ item.orderNo }} </view> <view class="status t-red m-l-a m-r-0">{{ item.paymentAmount }}</view> </view> <view class="desc flex"> <view class="label"> 订单状态: </view> <view class="value">{{ item.statusBackendStr }}</view> </view> <view class="desc flex"> <view class="label"> 收货人: </view> <view class="value">{{ item.customer }}</view> </view> <view class="desc flex"> <view class="label"> 收货人手机号码: </view> <view class="value">{{ item.customerTel }}</view> </view> <view class="desc flex"> <view class="label"> 收货地址: </view> <view class="value">{{ item.customerAddress }}</view> </view> <view class="desc flex"> <view class="label"> 支付时间: </view> <view class="value">{{ item.paymentTime }}</view> </view> <view class="button-green-1" v-if="false">确认配送完成</view> </view> </view> </view> <!-- 判断是否到底了,自动吧 --> <footer-msg :more="page.total>0&&page.total>page.current*page.size"></footer-msg> </view> </template> <script> export default { data() { return { tabIndex: 0, } }, onLoad() { this.listApi = '' this.getList() export default { data() { return { tabIndex: 0, status: ['', 'SEND', 'RECEIVE'], query: { status: '', } } }, onLoad() { this.listApi = `/api/partner/list` this.getList() }, onReachBottom() { this.page.current += 1 this.getMore() }, async onPullDownRefresh() { this.page.current = 1 await this.getList() uni.stopPullDownRefresh() }, methods: { changeIndex(index) { if (this.tabIndex !== index) { this.tabIndex = index // 刷新 query this.refreshList() } }, toDetail(item) { // uni.navigateTo({ // url: `/pages/notice/notice?id=${item.id}` // }) } } } }, onReachBottom() { this.page.current += 1 this.getMore() }, async onPullDownRefresh() { this.page.current = 1 await this.getList() uni.stopPullDownRefresh() }, methods: { toDetail(item) { // 订单详情页面 uni.navigateTo({ url: 'pages/order/order-detail?id=' + item.id }) }, changeIndex(index) { if (this.tabIndex !== index) { this.tabIndex = index this.query.status = this.status[index] // 刷新 query this.refreshList() } }, } } </script> <style lang="scss" scope> .order-settlement-list { .order-settlement-item { margin-bottom: 20rpx; padding: 28rpx; .order-settlement-list { .order-settlement-item { margin-bottom: 20rpx; padding: 28rpx; .title { font-weight: 600; font-size: 28rpx; color: #000000; line-height: 40rpx; .title { font-weight: 600; font-size: 28rpx; color: #000000; line-height: 40rpx; .status { font-weight: 400; font-size: 28rpx; color: #20613D; line-height: 40rpx; } .status { font-weight: 400; font-size: 28rpx; color: #20613D; line-height: 40rpx; } .status.red { color: #CF0000; } .status.red { color: #CF0000; } .status.green { color: var(--topiccolor); } } .status.green { color: var(--topiccolor); } } .desc{ font-weight: 400; font-size: 24rpx; color: #666666; line-height: 34rpx; } .line { height: 2rpx solid #EEEEEE; margin-top: 16rpx; margin-bottom: 16rpx; } .line { height: 2rpx solid #EEEEEE; margin-top: 16rpx; margin-bottom: 16rpx; } .tj { .label { font-weight: 600; font-size: 28rpx; color: #000000; line-height: 40rpx; } .tj { .label { font-weight: 600; font-size: 28rpx; color: #000000; line-height: 40rpx; } .value { font-weight: 400; font-size: 28rpx; color: #CF0000; line-height: 40rpx; } } .value { font-weight: 400; font-size: 28rpx; color: #CF0000; line-height: 40rpx; } } .form { display: flex; .form { display: flex; .form-item { flex: 1; min-width: 26%; max-width: 33%; .form-item { flex: 1; min-width: 26%; max-width: 33%; .label { font-weight: 400; font-size: 24rpx; color: #666666; line-height: 34rpx; } .label { font-weight: 400; font-size: 24rpx; color: #666666; line-height: 34rpx; } .label::after { content: ":"; font-weight: 400; font-size: 24rpx; color: #666666; line-height: 34rpx; } .label::after { content: ":"; font-weight: 400; font-size: 24rpx; color: #666666; line-height: 34rpx; } .value { font-weight: 400; font-size: 24rpx; color: #000000; line-height: 34rpx; } .value { font-weight: 400; font-size: 24rpx; color: #000000; line-height: 34rpx; } .value.red { color: #CF0000; } } .value.red { color: #CF0000; } } } } } } } } </style>