From f837b731f571bb53cee99f9bc22a6f74855f3e6c Mon Sep 17 00:00:00 2001 From: xuxueyang <xuxy@fengyuntec.com> Date: 星期一, 12 八月 2024 02:43:20 +0800 Subject: [PATCH] add 商品结算测试 --- sub_pages/supplier/order-settlement/order-settlement.vue | 18 - sub_pages/supplier/order-manage/order-manage.vue | 101 +++++++++++ manifest.json | 2 pages/home/supplier-home.vue | 21 ++ pages.json | 21 ++ sub_pages/supplier/flower-manage/flower-manage.vue | 36 +++ sub_pages/supplier/order-manage/order-manage-settlement.vue | 175 +++++++++++++++++++ sub_pages/supplier/order-manage/order-manage-flower.vue | 139 +++++++++++++++ 8 files changed, 497 insertions(+), 16 deletions(-) diff --git a/manifest.json b/manifest.json index 2848179..782394c 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 c5995e0..4165edf 100644 --- a/pages.json +++ b/pages.json @@ -215,6 +215,27 @@ "style": { "navigationBarTitleText": "结算单详情" } + }, + { + "path": "order-manage/order-manage", + "style": { + "navigationBarTitleText": "订单管理", + "enablePullDownRefresh": true + } + }, + { + "path" : "order-manage/order-manage-settlement", + "style" : + { + "navigationBarTitleText" : "配送结算明细" + } + }, + { + "path" : "order-manage/order-manage-flower", + "style" : + { + "navigationBarTitleText" : "配送商品明细" + } } // #endif // #ifdef PUB_PARTNER diff --git a/pages/home/supplier-home.vue b/pages/home/supplier-home.vue index cc67058..3faafc4 100644 --- a/pages/home/supplier-home.vue +++ b/pages/home/supplier-home.vue @@ -135,6 +135,14 @@ </view> <view class="order-desc tg">订单管理</view> </view> + <!-- <view class="nav row margin-tb" v-if="selftype==='supplier'" + @click="goto('/sub_pages/supplier/order-manage/order-manage',true)"> + <view class="img-c"> + <image class="icon margin-bottom order-icon ddgl" + src="/static/images/partner/user/user-icon-ddgl.png" mode="scaleToFill" /> + </view> + <view class="order-desc tg">订单统计</view> + </view> --> <view class="nav row margin-tb" @click="goto('/sub_pages/supplier/order-settlement/order-settlement',true)"> @@ -241,7 +249,18 @@ }, created() { //公告 - this.$http.request('get', '/api/pub/announcement/list', { + var type = '' + // #ifdef PUB_CUSTOMER + type = 'customer' + // #endif + // #ifdef PUB_SUPPLIER + type = 'supplier' + // #endif + // #ifdef PUB_PARTNER + type = 'partner' + // #endif + + this.$http.request('get', '/api/pub/announcement/list/'+type, { params: { size: 5, status: 'A' diff --git a/sub_pages/supplier/flower-manage/flower-manage.vue b/sub_pages/supplier/flower-manage/flower-manage.vue index 8eea3fe..6d2ce88 100644 --- a/sub_pages/supplier/flower-manage/flower-manage.vue +++ b/sub_pages/supplier/flower-manage/flower-manage.vue @@ -13,9 +13,17 @@ <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 flow-manage-list"> <view class="flow-manage-list-item"> - <view class="flex"> - <image class="flower-img img100 m-r-6" :src="item.cover" @click="previewImg(item.cover)"> - </image> + <view class="flex m-r-6"> + <view class="img flower-img m-r-6"> + <image class="flower-img img100 " :src="item.cover" + :class="[!item.stock?'component-stock-zero':'']" @click="previewImg(item.cover)"> + + </image> + <view class="status" :class="[!item.stock?'zero':'']" v-if="item.statusStr"> + {{ item.statusStr}} + </view> + </view> + <view class="flex1"> <view class=" flex"> <view class="title">{{item.name}}<span class="level">{{item.levelStr}}</span></view> @@ -347,6 +355,28 @@ height: 118rpx; min-width: 128rpx; min-height: 118rpx; + position: relative; + + .status { + position: absolute; + min-width: 66rpx; + height: 34rpx; + background: #20613D; + left: 0; + top: 0; + border-top-left-radius: 8rpx; + border-bottom-right-radius: 8rpx; + color: #FFFFFF; + line-height: 34rpx; + font-size: 22rpx; + text-align: center; + } + + .status.zero { + // background: unset; + // font-size: 24rpx; + + } } .each-list { diff --git a/sub_pages/supplier/order-manage/order-manage-flower.vue b/sub_pages/supplier/order-manage/order-manage-flower.vue new file mode 100644 index 0000000..8f706f8 --- /dev/null +++ b/sub_pages/supplier/order-manage/order-manage-flower.vue @@ -0,0 +1,139 @@ +<template> + <view class="list-container order-sale supplier"> + <view class="p15" style="min-height: calc(100vh - 20rpx);"> + <no-data v-if="!list||list.length==0" style="width: 100%;"></no-data> + <view v-for="(item,index) in list" :key="index" @click="toDetail(item)" + class="m-b-24 order-sale-list list-container"> + <view class="order-sale-item br-4 list-item bg-white"> + <view class="form"> + <view class="flex"> + <view class="form-item flex1"> + <view class="label">商品名称</view> + <view class="value">{{item.flowerName||'-'}}</view> + </view> + <view class="form-item flex1"> + <view class="label">数量</view> + <view class="value">{{item.num||0}}</view> + </view> + </view> + <view class="flex"> + <view class="form-item"> + <view class="label">等级</view> + <view class="value">{{item.flowerLevelStr}}</view> + </view> + <view class="form-item"> + <view class="label">价格</view> + <view class="value">¥{{item.price||'0.00'}}</view> + </view> + </view> + </view> + + </view> + </view> + </view> + + <!-- 判断是否到底了,自动吧 --> + <footer-msg :more="page.total>0&&page.total>page.current*page.size"></footer-msg> + + </view> +</template> + +<script> + import moment from 'moment' + export default { + data() { + return { + tabIndex: 0, + query: { + day: '' + } + } + }, + onLoad(options) { + this.query.day = options.day || '' + + + this.listApi = '/api/supplier/delivery/mine/list/flower' + + this.getList() + + }, + onReachBottom() { + this.getMore() + }, + async onPullDownRefresh() { + this.page.current = 1 + await this.getList() + uni.stopPullDownRefresh() + }, + methods: { + + } + } +</script> + +<style lang="scss" scope> + .order-sale-list { + .order-sale-item { + margin-bottom: 20rpx; + padding: 22rpx; + + .title { + font-weight: 600; + font-size: 28rpx; + color: #000000; + line-height: 40rpx; + } + + .line { + min-height: 2rpx; + background-color: #EEEEEE; + margin-top: 16rpx; + margin-bottom: 16rpx; + } + + .form { + // display: flex; + // flex-wrap: wrap; + + .form-item { + flex: 1; + // min-width: 40%; + // max-width: 50%; + + .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; + } + + .value { + font-weight: 400; + font-size: 24rpx; + color: #000000; + line-height: 34rpx; + text-align: center; + flex: 1; + } + + .value.red { + color: #CF0000; + } + } + + .form-item.width100 { + max-width: unset; + } + } + } + } +</style> \ No newline at end of file diff --git a/sub_pages/supplier/order-manage/order-manage-settlement.vue b/sub_pages/supplier/order-manage/order-manage-settlement.vue new file mode 100644 index 0000000..53ece42 --- /dev/null +++ b/sub_pages/supplier/order-manage/order-manage-settlement.vue @@ -0,0 +1,175 @@ +<template> + <view class="list-container order-sale supplier"> + <view class="p15" style="min-height: calc(100vh - 20rpx);"> + <no-data v-if="!list||list.length==0" style="width: 100%;"></no-data> + <view v-for="(item,index) in list" :key="index" @click="toDetail(item)" + class="m-b-24 order-sale-list list-container"> + <view class="order-sale-item br-4 list-item bg-white"> + <view class="form"> + <view class="flex"> + <view class="form-item flex1"> + <view class="label">结算单价/均价</view> + <view class="value">¥{{item.price||'0.00'}}</view> + </view> + <view class="form-item flex1"> + <view class="label">商品数量</view> + <view class="value">{{item.flowerNum||0}}</view> + </view> + </view> + <view class="flex"> + <view class="form-item"> + <view class="label">订单数量</view> + <view class="value">{{item.orderNum}}</view> + </view> + <view class="form-item"> + <view class="label">买家数量</view> + <view class="value">{{item.customerNum}}</view> + </view> + </view> + <view class="flex"> + <view class="form-item"> + <view class="label">服务费</view> + <view class="value">{{item.serviceFee}}</view> + </view> + <view class="form-item"> + <view class="label">售后理赔</view> + <view class="value">{{item.salesFee}}</view> + </view> + </view> + <view class="flex"> + <view class="form-item"> + <view class="label">质检扣款</view> + <view class="value">{{item.checkFee}}</view> + </view> + <view class="form-item"> + <view class="label">集货站运费</view> + <view class="value">{{item.stationFee}}</view> + </view> + </view> + </view> + <!-- <view class="line"></view> --> + <view class="form"> + <view class="flex"> + <view class="form-item"> + <view class="label title-bold">交易合计</view> + <view class="value t-red">¥{{item.totalAmount||0}}</view> + </view> + <view class="form-item"> + <view class="label title-bold">结算金额</view> + <view class="value t-red">¥{{item.settlementAmount||0}}</view> + </view> + </view> + </view> + </view> + </view> + </view> + + <!-- 判断是否到底了,自动吧 --> + <footer-msg :more="page.total>0&&page.total>page.current*page.size"></footer-msg> + + </view> +</template> + +<script> + import moment from 'moment' + export default { + data() { + return { + tabIndex: 0, + query: { + day: '' + } + } + }, + onLoad(options) { + this.query.day = options.day || '' + + + this.listApi = '/api/supplier/delivery/mine/list/settlement' + + this.getList() + + }, + onReachBottom() { + this.getMore() + }, + async onPullDownRefresh() { + this.page.current = 1 + await this.getList() + uni.stopPullDownRefresh() + }, + methods: { + toDetail(item) { + uni.navigateTo({ + url: `/sub_pages/supplier/order-settlement/order-settlement-detail?id=${item.id}` + }) + }, + } + } +</script> + +<style lang="scss" scope> + .order-sale-list { + .order-sale-item { + margin-bottom: 20rpx; + padding: 22rpx; + + .title { + font-weight: 600; + font-size: 28rpx; + color: #000000; + line-height: 40rpx; + } + + .line { + min-height: 2rpx; + background-color: #EEEEEE; + margin-top: 16rpx; + margin-bottom: 16rpx; + } + + .form { + // display: flex; + // flex-wrap: wrap; + + .form-item { + flex: 1; + // min-width: 40%; + // max-width: 50%; + + .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; + } + + .value { + font-weight: 400; + font-size: 24rpx; + color: #000000; + line-height: 34rpx; + text-align: center; + flex: 1; + } + + .value.red { + color: #CF0000; + } + } + + .form-item.width100 { + max-width: unset; + } + } + } + } +</style> \ No newline at end of file diff --git a/sub_pages/supplier/order-manage/order-manage.vue b/sub_pages/supplier/order-manage/order-manage.vue new file mode 100644 index 0000000..019226d --- /dev/null +++ b/sub_pages/supplier/order-manage/order-manage.vue @@ -0,0 +1,101 @@ +<template> + <!-- 列表页面 --> + <view> + <view class="p15" style="min-height: calc(100vh - 260rpx);"> + <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"> + <view class="notice-item flex"> + <view>{{item.date}}</view> + <view class="num m-auto">{{item.num || 0}}</view> + <view class="price t-red m-auto">¥{{item.price || 0}}</view> + <view class="buttons m-l-a m-r-0"> + <view @click.stop="toDetailFlower(item)" class="button button-1 m-r-10"> + 商品详情 + </view> + <view @click.stop="toDetailSettlement(item)" class="m-l-10 button button-0"> + 结算详情 + </view> + </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 { + query: {} + } + }, + onLoad() { + this.listApi = '/api/supplier/delivery/mine/list' + this.getList() + + }, + onReachBottom() { + this.getMore() + }, + async onPullDownRefresh() { + this.page.current = 1 + await this.getList() + uni.stopPullDownRefresh() + }, + methods: { + toDetailFlower(item) { + uni.navigateTo({ + url: `/sub_pages/supplier/order-manage/order-manage-flower?date=${item.date}` + }) + }, + toDetailSettlement(item) { + uni.navigateTo({ + url: `/sub_pages/supplier/order-manage/order-manage-settlement?date=${item.date}` + }) + }, + } + } +</script> + +<style lang="scss" scoped> + .notice-item { + padding: 20rpx; + font-size: 28rpx; + font-weight: 600; + background-color: #fff; + + .buttons { + display: flex; + margin-left: auto; + width: fit-content; + + .button { + // width: 216rpx; + padding: 10rpx 20rpx; + line-height: 34rpx; + font-size: 24rpx; + height: 34rpx; + background: #20613D; + text-align: center; + border-radius: 30rpx; + + } + + .button-1 { + background: #fff; + color: #333; + border: 2rpx solid #333; + + } + + .button-0 { + color: #fff; + border: 2rpx solid #20613D; + } + } + } +</style> \ No newline at end of file diff --git a/sub_pages/supplier/order-settlement/order-settlement.vue b/sub_pages/supplier/order-settlement/order-settlement.vue index 47e859f..f76c55c 100644 --- a/sub_pages/supplier/order-settlement/order-settlement.vue +++ b/sub_pages/supplier/order-settlement/order-settlement.vue @@ -59,8 +59,7 @@ </view> </view> </view> - - <view class="line"></view> + <!-- <view class="line"></view> --> <view class="form"> <view class="flex"> <view class="form-item"> @@ -98,8 +97,8 @@ onLoad() { var currentMonthStr = this.$util.toDate(new Date()).substring(0, 8) + '01' this.query.startDateStr = currentMonthStr - var lastMonthDate = new Date(new Date(this.$util.toDate(new Date(currentMonthStr).getTime() + 3600_000 * 24 * - 40).substring(0, 8) + '01').getTime() - 3600_000 * 24 * 1) + var lastMonthDate = new Date(new Date(this.$util.toDate(new Date(currentMonthStr).getTime() + 3600000 * 24 * + 40).substring(0, 8) + '01').getTime() - 3600000 * 24 * 1) this.query.endDateStr = this.$util.toDate(lastMonthDate) // #ifdef PUB_PARTNER this.listApi = '/api/partner/settlement/list' @@ -143,11 +142,6 @@ } }, - toDetail(item) { - // uni.navigateTo({ - // url: `/pages/notice/notice?id=${item.id}` - // }) - } } } </script> @@ -173,8 +167,8 @@ } .form { - display: flex; - flex-wrap: wrap; + // display: flex; + // flex-wrap: wrap; .form-item { flex: 1; @@ -201,6 +195,8 @@ font-size: 24rpx; color: #000000; line-height: 34rpx; + text-align: center; + flex: 1; } .value.red { -- Gitblit v1.9.3