From 2d5090c2b215a5ea7e489d4b50fbf30aae569324 Mon Sep 17 00:00:00 2001 From: xuxueyang <xuxy@fengyuntec.com> Date: 星期五, 26 七月 2024 15:03:01 +0800 Subject: [PATCH] fix bug 接口对接和样式调整 --- common/self.scss | 3 sub_pages/customer/shopping/shopping.vue | 141 +++++++----- mixin/mixin.js | 30 +- sub_pages/customer/shopping/confirm.vue | 213 ++++++++++++------ components/common-address-select/common-address-select.vue | 205 +++++++++--------- pages/user/address/address.vue | 44 ++- 6 files changed, 376 insertions(+), 260 deletions(-) diff --git a/common/self.scss b/common/self.scss index a4e635b..e5be877 100644 --- a/common/self.scss +++ b/common/self.scss @@ -104,6 +104,9 @@ .bg-white { background-color: #FFFFFF; } +.br-4{ + border-radius: 8rpx; +} .bg-app-white { background-color: #FFFFFF; diff --git a/components/common-address-select/common-address-select.vue b/components/common-address-select/common-address-select.vue index 82cfc27..59c780f 100644 --- a/components/common-address-select/common-address-select.vue +++ b/components/common-address-select/common-address-select.vue @@ -1,110 +1,115 @@ <template> - <!-- 改动的默认地址通过全局变量来控制吧 --> - <view class="flex location-select" @click="goToAddress" > - <uni-icons type="location" size="24" style="padding-top: 16rpx;margin-right: 8rpx;"></uni-icons> - <view class="info"> - <view class="name" v-if="!address.id">请前往设置地址信息</span> - </view> - <view class="name">{{address.name || '-'}}<span class="tel">{{address.tel || '-'}}</span> - </view> - <view class="address">{{address.schoolAreaStr || ''}} {{address.blockStr || ''}} {{address.room || ''}} {{address.address || ''}}</view> - </view> - <view class="right-icon" style="padding-top: 16rpx;"> - <uni-icons type="right" size="18" color="#B3B3B3"></uni-icons> - </view> - - - </view> + <!-- 改动的默认地址通过全局变量来控制吧 --> + <view class="flex location-select" @click="goToAddress"> + <uni-icons type="location" size="24" style="padding-top: 16rpx;margin-right: 8rpx;"></uni-icons> + <view class="info"> + <view class="name" v-if="!address.id">请前往设置地址信息</span> + </view> + <view class="name">{{ address.name || '-' }}<span class="tel">{{ address.tel || '-' }}</span> + </view> + <view class="address">{{ address.schoolAreaStr || '' }} {{ address.blockStr || '' }} {{ address.room || '' }} + {{ address.address || '' }} + </view> + </view> + <view class="right-icon" style="padding-top: 16rpx;"> + <uni-icons type="right" size="18" color="#B3B3B3"></uni-icons> + </view> + + + </view> </template> <script> - import { - mapState - } from 'vuex' - export default { - computed: { - ...mapState({ - address: state => { - return state.defaultaddress || {} - }, - currentInfo: state => { - return state.currentInfo || {} - }, - }), - }, - name:"common-address-select", - data() { - return { - }; - }, - async onShow(){ - - }, - methods:{ - async init(){ - //获取默认地址并且填充 - if(!this.address.id){ - this.$message.showLoading() - const {data} = await this.$http.request('get','/api/address/default/detail') - this.$message.hideLoading() - if(data){ - //提交更新默认地址 - this.$store.commit('setDefaultAddress',{...data}) - } - } - - }, - goToAddress(){ - if(!this.currentInfo.id){ - this.$message.showToast('请先前往登录') - return - } - uni.navigateTo({ - url:'/pages/user/address/address?source=select' - }) - } - }, - props:{ - // address:{ - // type:Object, - // default(){ - // return {} - // } - // } - } - } +import { + mapState +} from 'vuex' + +export default { + computed: { + ...mapState({ + address: state => { + return state.defaultaddress || {} + }, + currentInfo: state => { + return state.currentInfo || {} + }, + }), + }, + name: "common-address-select", + data() { + return {}; + }, + async mounted() { + await this.init() + }, + methods: { + async init() { + //获取默认地址并且填充 + if (!this.address.id && this.currentInfo.id) { + this.$message.showLoading() + const {data} = await this.$http.request('get', '/api/address/default/detail') + this.$message.hideLoading() + if (data) { + //提交更新默认地址 + this.$store.commit('setDefaultAddress', {...data}) + } + } + + }, + goToAddress() { + if (!this.currentInfo.id) { + this.$message.showToast('请先前往登录') + return + } + uni.navigateTo({ + url: '/pages/user/address/address?source=select' + }) + } + }, + props: { + // address:{ + // type:Object, + // default(){ + // return {} + // } + // } + } +} </script> <style lang="scss"> -.location-select{ - .info{ - // margin-bottom: 16rpx; - .name{ - font-weight: 400; - font-size: 32rpx; - color: #000000; - margin-left: 6rpx; - .tel{ - margin-left: 6rpx; - font-size: 28rpx; - color: #666666; - } - } - .address{ - font-size: 24rpx; - color: #666666; - line-height: 28rpx; - margin-top: 6rpx; - max-width: 580rpx; - margin-left: 6rpx; - word-wrap: break-word; - } - - } - .right-icon{ - margin-left: auto; - margin-right: 0rpx; - } +.location-select { + .info { + // margin-bottom: 16rpx; + .name { + font-weight: 400; + font-size: 32rpx; + color: #000000; + margin-left: 6rpx; + + .tel { + margin-left: 6rpx; + font-size: 28rpx; + color: #666666; + } + } + + .address { + font-size: 24rpx; + color: #666666; + line-height: 28rpx; + margin-top: 6rpx; + max-width: 580rpx; + margin-left: 6rpx; + word-wrap: break-word; + } + + } + + .right-icon { + margin-left: auto; + margin-right: 0rpx; + } } </style> \ No newline at end of file diff --git a/mixin/mixin.js b/mixin/mixin.js index 9da88ef..c119261 100644 --- a/mixin/mixin.js +++ b/mixin/mixin.js @@ -278,22 +278,28 @@ } }) if (data) { - if (this.page.current === 1) { - this.list = data.records || [] + if (data && Array.isArray(data)) { + this.list = data || [] + this.page.total = data.length || 0 } else { - //根据id去重正常 - var ids = [] - for (var item of this.list) { - ids.push(item.id) - } - for (var item of data.records) { - if (ids.indexOf(item.id) < 0) { - this.list.push(item) + if (this.page.current === 1) { + this.list = data.records || [] + } else { + //根据id去重正常 + var ids = [] + for (var item of this.list) { + ids.push(item.id) } - } + for (var item of data.records) { + if (ids.indexOf(item.id) < 0) { + this.list.push(item) + } + } + } + this.page.total = data.total || 0 } - this.page.total = data.total || 0 + if (this.getList_after) { this.getList_after() } diff --git a/pages/user/address/address.vue b/pages/user/address/address.vue index 920a686..8ba9669 100644 --- a/pages/user/address/address.vue +++ b/pages/user/address/address.vue @@ -28,12 +28,13 @@ </view> <view class="v-line"></view> <view class="flex"> - <!-- @click="changeDefaultAddress(item,index)"--> + <!-- --> <view class="flex"> - <view class="radio m-t-2 m-r-10" :class="[item.defaulted?'select':'']"> + <view class="radio m-t-2 m-r-10" :class="[item.isDefault?'select':'']" + @click="changeDefaultAddress(item,index)"> </view> - <span class="desc">{{ item.defaulted ? '默认地址:' : '当前地址:' }}{{ item.address || '' }}</span> + <span class="desc">{{ item.isDefault ? '默认地址:' : '当前地址:' }}{{ item.address || '' }}</span> <!-- 当前地址/默认地址勾选 --> </view> <view class="desc del t-red" @click="deleteAddress(item)"> @@ -77,13 +78,13 @@ </view> <view class="form-item"> <view class="form-item-label require"> - 请选择收获地址 + 收获地址 </view> <view class="m-l-a m-r-0 flex " :class="[!dto['province']?'desc-gray':'']"> - <uni-data-picker :area="true" @change="(e)=>{PickArea(dto,e)}" placeholder="" + <uni-data-picker :area="true" @change="(e)=>{PickArea(submitForm,e)}" placeholder="" :localdata="regionDataPlus"> - {{ dto['province'] || '请选择' }}{{ dto['city'] && ('/' + dto['city']) || '' }}{{ - dto['region'] && ('/' + dto['region']) || '' + {{ submitForm['province'] || '请选择' }}{{ submitForm['city'] && ('/' + submitForm['city']) || '' }}{{ + submitForm['region'] && ('/' + submitForm['region']) || '' }} </uni-data-picker> <u-icon class="m-l-a" name="arrow-right"></u-icon> @@ -154,35 +155,36 @@ }, regionDataPlus: [], + list:[], }; }, methods: { PickArea(item, e) { console.log('PickArea', item, e) if (e.detail.value) { - this.dto.province = '' - this.dto.city = '' - this.dto.region = '' + this.submitForm.province = '' + this.submitForm.city = '' + this.submitForm.region = '' if (e.detail.value.length <= 3) { if (!!e.detail.value[0]) - this.dto.province = e.detail.value[0].value + this.submitForm.province = e.detail.value[0].value if (!!e.detail.value[1]) - this.dto.city = e.detail.value[1].value + this.submitForm.city = e.detail.value[1].value if (!!e.detail.value[2]) - this.dto.region = e.detail.value[2].value + this.submitForm.region = e.detail.value[2].value } else { //说明有重复的 var plusnum = e.detail.value.length - 3 if (!!e.detail.value[plusnum + 0]) - this.dto.province = e.detail.value[plusnum + 0].value + this.submitForm.province = e.detail.value[plusnum + 0].value if (!!e.detail.value[plusnum + 1]) - this.dto.city = e.detail.value[plusnum + 1].value + this.submitForm.city = e.detail.value[plusnum + 1].value if (!!e.detail.value[plusnum + 2]) - this.dto.region = e.detail.value[plusnum + 2].value + this.submitForm.region = e.detail.value[plusnum + 2].value } this.$forceUpdate() - + console.log('submit forn',this.submitForm) } }, async init_area() { @@ -247,7 +249,7 @@ this.$message.showLoading() var { code - } = await this.$http.request('post', '/api/address/customer/default/' + + } = await this.$http.request('post', '/api/address/set/default/' + item.id, {}) this.$message.hideLoading() if (code === 0) { @@ -285,7 +287,7 @@ this.$message.showLoading() var { code - } = await this.$http.request('get', '/api/address/customer/delete/' + item.id, {}) + } = await this.$http.request('get', '/api/address/delete?id=' + item.id, {}) this.$message.hideLoading() if (code === 0) { this.$message.showToast('删除成功') @@ -301,7 +303,7 @@ this.$message.showLoading() var { data - } = await this.$http.request('get', '/api/address/list/detail/' + this.submitForm.id, {}) + } = await this.$http.request('get', '/api/address/list/detail?id=' + this.submitForm.id, {}) if (data) { @@ -339,7 +341,7 @@ const { code } = await this.$http.request('post', '/api/address/' + (this.submitForm.id ? 'update' : - 'edit'), { + 'add'), { data: this.submitForm }) this.$message.hideLoading() diff --git a/sub_pages/customer/shopping/confirm.vue b/sub_pages/customer/shopping/confirm.vue index 86c51b8..1fa2c45 100644 --- a/sub_pages/customer/shopping/confirm.vue +++ b/sub_pages/customer/shopping/confirm.vue @@ -13,34 +13,14 @@ }), }, - watch: { - // address(nv, ov) { - // if (nv && nv.id) { - // //尝试更新一下 - // - // } - // } - }, async onShow() { - setTimeout(async () => { - if (this.address && this.address.id && this.cacheAddressId !== this.address.id) { - this.$message.showLoading() - const {code, data} = await this.$http.request('get', '/api/flower/customer/order/confirm/transports', { - data: { - addressId: this.address.id, - weight: this.dto.totalWeight || 0 - } - }) - this.$message.hideLoading() - this.transportList = [] - if (code === 0) { - this.transportList = data || [] - } - } - }, 200) + }, onLoad(options) { - let item = JSON.parse(decodeURIComponent(options.query.dto)); + // console.log('dto',options) + + // let item = JSON.parse(decodeURIComponent(options.query.dto)); + let item = JSON.parse(this.$storage.getItem('_cache_shopping_dto') || '{}') || {} this.dto = { ...this.dto, ...item @@ -61,24 +41,56 @@ addressId: '', flowers: [], }, + current_transport: {}, cacheAddressId: '', transportList: [], } }, + watch: { + address(nv, ov) { + if (nv && nv.id !== this.cacheAddressId) { + this.loadTransportList() + this.cacheAddressId = nv.id + + } + } + }, methods: { + async loadTransportList() { + let that = this + { + console.log('address', that.address, that.cacheAddressId) + if (that.address && that.address.id && that.cacheAddressId !== that.address.id) { + that.$message.showLoading() + const {code, data} = await that.$http.request('post', '/api/customer/flower/order/confirm/transports', { + data: { + addressId: that.address.id, + weight: that.dto.totalWeight || 0 + } + }) + that.$message.hideLoading() + that.transportList = [] + if (code === 0) { + that.transportList = data || [] + } + } + } + }, async submitOrder() { + console.log('submitOrder', this.dto) if (!this.dto.transportId) { - this.$message.toast('请选择配送方式') + this.$message.showToast('请选择配送方式') return } - if (!this.dto.addressId) { - this.$message.toast('请选择收货地址') + if (!this.address.id) { + this.$message.showToast('请选择收货地址') return } + this.dto.addressId = this.address.id this.$message.showLoading() - const {code, data} = await this.$http.request('post', '/api/customer/flower/order/confirm', { + const {code, data} = await this.$http.request('post', '/api/customer/flower/order/commit', { data: { ...this.dto } @@ -127,18 +139,18 @@ <template> <view class="page-confirm"> - <view class="p10"> + <view class="p10 bg-white br-4"> <common-address-select ref="addressselect"></common-address-select> </view> <view> - <view class="flower-container"> - <view class="shopping-item m-t-20" v-for="(item,index) of dto.flowers" :key="index"> + <view class="flower-container br-4 p10"> + <view class="shopping-item m-b-20" v-for="(item,index) of dto.flowers" :key="index"> <u-divider v-if="index>0"></u-divider> - <view class="sup-title"> - <image class="icon-dp" src="/static/common/icon-dp.png"></image> - {{ item.supplierName || '-' }} + <view class="sup-title flex"> + <image class="icon-dp img100 m-r-10" src="/static/common/icon-dp.png"></image> + <view>{{ item.supplierName || '-' }}</view> </view> - <view class="item-each flex"> + <view class="item-each m-t-12 flex"> <image class="img img100 m-r-6" :src="item.url||item.cover"></image> <view> <view class="title"><span>{{ item.levelStr || '-' }}</span> {{ item.name || '-' }}</view> @@ -152,25 +164,25 @@ </view> </view> <view class="price"> - <view class="desc">打包费用:{{ dto.packing || 0 }}}</view> - <view class="m-l-a m-r-0"> + <view class="m-l-a m-r-0 text-right"> 共{{ dto.flowers.length }}件,小计<span class="t-red">¥{{ dto.totalAmount || 0 }}</span> </view> </view> </view> <!-- 查看商品列表,和选择运费 --> - <view class="transform-container p10"> - <view class="title flex"> + <view class="br-4 transform-container p10"> + <view class="title"> <view>运输方式:</view> - <!-- <view>约</view>--> <view class="flex transform-list"> <view v-for="(transform,index) of transportList" :class="[transform.id===dto.transportId?'cur':'']" - :key="index" class="transform-item" @click="dto.transportId = transform.id"> + :key="index" class="transform-item" @click="()=>{ + dto.transportId = transform.id; + current_transport = transform + }"> <view class="title">{{ transform.name }}</view> <view class="price">¥{{ transform.fee }}</view> </view> </view> - </view> <view class="m-t-20" v-if="false"> <view class="desc-red"> @@ -184,33 +196,58 @@ </view> </view> - <view class="form-item p10"> - <view class="label">特殊需求</view> - <view class="m-l-a m-r-0 flex1 text-right"> - <view class="m-t-12 m-b-12"> - <u-textarea v-model="dto.remarks" placeholder="请输入特殊需求"> + <view class="p10 bg-white m-t-20 br-4"> + <view class="form-item "> + <view class="label">特殊需求</view> + <view class="m-l-a m-r-0 flex1"> + <view class="m-t-12 m-b-12"> + <u-textarea v-model="dto.specialNeeds" placeholder="请输入特殊需求"> - </u-textarea> + </u-textarea> + </view> </view> </view> - </view> - <view class="form-item p10"> - <view class="label">留言</view> - <view class="m-l-a m-r-0 flex1 text-right"> - <view class="m-t-12 m-b-12"> - <u-textarea v-model="dto.remarks" placeholder="填写内容需与卖家协商并确认"> + <view class="form-item m-t-12 "> + <view class="label">留言</view> + <view class="m-l-a m-r-0 flex1"> + <view class="m-t-12 m-b-12"> + <u-textarea v-model="dto.remarks" placeholder="填写内容需与卖家协商并确认"> - </u-textarea> + </u-textarea> + </view> </view> </view> </view> </view> - <view class="bottom-price flex"> - <view> - 合计:¥ {{ dto.totalAmount || 0 }} 元 + <view class="m-t-20 br-4 info-container p10 bg-white"> + <view class="desc flex"> + <view>商品金额:</view> + <view class="m-l-a m-r-0 text-right"> + {{ (dto.totalAmount || 0) - (dto.packing) || 0 }} + </view> </view> - <view class="button-green-1" @click="submitOrder"> + <view class="desc flex"> + <view>打包费:</view> + <view class="m-l-a m-r-0 text-right"> + {{ (dto.packing || 0) }} + </view> + </view> + <view class="desc flex"> + <view>运费:</view> + <view class="m-l-a m-r-0 text-right"> + {{ (current_transport.fee || 0) }} + </view> + </view> + </view> + + <view style="min-height:200rpx"> + </view> + <view class="bottom-price flex"> + <view class="m-t-12 m-l-0 m-r-a"> + 合计:¥ {{ (dto.totalAmount || 0) + (current_transport.fee || 0) || 0 }} 元 + </view> + <view class="button-green-1 m-l-a m-r-0" style="min-width: 240rpx" @click="submitOrder"> 提交订单 </view> </view> @@ -219,17 +256,36 @@ <style scoped lang="scss"> .page-confirm { + padding: 20rpx 30rpx; + .bottom-price { + position: fixed; + background-color: #ffffff; + left: 0rpx; + padding: 20rpx; + right: 0rpx; + bottom: 0rpx; + } + .flower-container { + background-color: #ffffff; + .shopping-item { padding: 28rpx 22rpx; position: relative; .sup-title { border-bottom: 2rpx solid #EEEEEE; + line-height: 50rpx; + + .icon-dp { + width: 36rpx; + height: 36rpx; + margin-top: 7rpx; + } } .item-each { - padding-left: 88rpx; + padding-left: 20rpx; .img { width: 124rpx; @@ -260,27 +316,49 @@ font-size: 24rpx; color: #666666; line-height: 34rpx; + } } .button-icons { position: absolute; + line-height: 40rpx; + } } } + .info-container { + .desc { + font-weight: 400; + font-size: 28rpx; + color: #666666; + line-height: 40rpx; + + .value { + text-align: right; + } + } + } + .transform-container { + background-color: #ffffff; + .transform-list { .transform-item { background: rgba(225, 240, 231, 0.38); border-radius: 8rpx; - min-height: 112rpx; + //min-height: 112rpx; border: 2rpx solid rgba(225, 240, 231, 0.38); padding: 14rpx; text-align: center; - margin: 0 auto; + //margin: 0 auto; + margin-left: 20rpx; + margin-top: 10rpx; + margin-right: auto; max-width: 32%; + min-width: 120rpx; .title { font-weight: 400; @@ -293,7 +371,7 @@ font-weight: 600; font-size: 32rpx; color: #20613D; - line-height: 44rpx; + //line-height: 44rpx; } } @@ -314,12 +392,5 @@ } - .bottom-price { - position: fixed; - left: 0rpx; - padding: 20rpx; - right: 0rpx; - bottom: 160rpx; - } } </style> \ No newline at end of file diff --git a/sub_pages/customer/shopping/shopping.vue b/sub_pages/customer/shopping/shopping.vue index 749d2e4..df79d8b 100644 --- a/sub_pages/customer/shopping/shopping.vue +++ b/sub_pages/customer/shopping/shopping.vue @@ -14,40 +14,46 @@ <view class=""> <no-data v-if="!list||list.length===0" style="width: 100%;"></no-data> <view class="shopping-item m-t-20" v-for="(item,index) of list" :key="index"> - <u-swipe-action> - <u-swipe-action-item - :options="options1" - @click="(e)=>{clickSwipeButton(item)}" - > - <view class="sup-title"> - <radio :checked="ids.indexOf(item.id)>=0" @change="changeItem(item,'supplier')">></radio> - {{ item.supplierName || '-' }} - </view> - <u-divider></u-divider> - <view v-for="(dto,j) of item.flowerList" :key="j"> - <u-divider v-if="j>0"></u-divider> + + + <view class="sup-title"> + <radio :checked="ids.indexOf(item.id)>=0" @click="changeItem(item,'supplier')"></radio> + {{ item.supplierName || '-' }} + </view> + <u-divider></u-divider> + <view v-for="(dto,j) of item.flowerList" :key="j"> + <u-divider v-if="j>0"></u-divider> + <u-swipe-action> + <u-swipe-action-item + :options="options1" + @click="(e)=>{clickSwipeButton(dto)}" + > <view class="item-each flex"> - <radio :checked="ids.indexOf(dto.id)>=0" @change="changeItem(dto,'flower')"></radio> + <radio :checked="ids.indexOf(dto.id)>=0" @click="changeItem(dto,'flower')"></radio> <image class="img img100 m-r-6" :src="dto.url||dto.cover"></image> - <view> + <view class="flex1"> <view class="title"><span>{{ dto.levelStr || '-' }}</span> {{ dto.name || '-' }}</view> <view class="price"> {{ dto.price || '-' }}元/扎 </view> - <view class="desc m-t-12"> - <view class="m-r-15">剩余:{{ dto.stock || 0 }}</view> - </view> - <view class="button-icons flex"> - <uni-icons v-if="dto.num&&dto.num>=1" type="minus" size="32" - @click="addnum(dto,-1)"></uni-icons> - <view class="curnums" v-if="dto.num&&dto.num>=1">{{ dto.num }}</view> - <uni-icons type="plus-filled" size="32" @click="addnum(dto,1)"></uni-icons> + <view class="flex"> + <view class="desc m-t-12"> + <view class="m-r-15">剩余:{{ dto.stock || 0 }}</view> + </view> + <view class="button-icons flex m-l-a m-r-0"> + <uni-icons v-if="dto.num&&dto.num>=1" type="minus" size="32" + @click="addnum(dto,-1)"></uni-icons> + <view class="curnums" v-if="dto.num&&dto.num>=1">{{ dto.num }}</view> + <uni-icons type="plus-filled" size="32" @click="addnum(dto,1)"></uni-icons> + </view> </view> </view> </view> - </view> - </u-swipe-action-item> - </u-swipe-action> + </u-swipe-action-item> + </u-swipe-action> + </view> + + </view> </view> @@ -61,7 +67,7 @@ <view class="m-t-12 m-l-a m-r-20 text-center"> 合计:<span class="t-red">¥ {{ totalprice || 0 }}</span> 元 </view> - <view class="button-green-1 m-l-a m-r-0" style="min-width: 240rpx"> + <view class="button-green-1 m-l-a m-r-0" style="min-width: 240rpx" @click="submitPay"> 提交订单 </view> </view> @@ -82,7 +88,8 @@ checkall: false, options1: [{ text: '删除' - }] + }], + list: [] } }, onShow() { @@ -90,7 +97,7 @@ this.init() } }, - onLoad() { + mounted() { this.init() }, computed: { @@ -111,20 +118,28 @@ async submitPay() { // order/confirm/info var arr = [] - for (var j = 0; j < this.list.flowerList; j++) { - - if (this.ids.indexOf(this.list.flowerList[j].id) >= 0) { - arr.push({ - id: this.list.flowerList[j].id, - num: this.list.flowerList[j].num - }) + for (var j = 0; j < this.list.length; j++) { + if(!this.list[j].flowerList){ + continue } + for (var k = 0; k < this.list[j].flowerList.length; k++) { + if (this.ids.indexOf(this.list[j].flowerList[k].id) >= 0) { + arr.push({ + id: this.list[j].flowerList[k].id, + num: this.list[j].flowerList[k].num + }) + } else { + // console.log('skip', arr, this.list.flowerList[j],this.list.flowerList[j].id) + } + } + } - if (this.arr.length < 1) { + if (arr.length < 1) { + console.log('请选择商品', arr, this.ids) return } this.$message.showLoading() - const {code, data} = await http.request('post', '/api/api/customer/order/confirm/info', { + const {code, data} = await http.request('post', '/api/customer/flower/order/confirm/info', { data: { flowers: arr, } @@ -132,8 +147,9 @@ ) this.$message.hideLoading() if (code === 0) { + this.$storage.setItem('_cache_shopping_dto',JSON.stringify(data)) uni.navigateTo({ - url: '/sub_pages/customer/shopping/confirm?dto=' + +encodeURIComponent(JSON.stringify(data)) + url: '/sub_pages/customer/shopping/confirm' }) } }, @@ -141,10 +157,9 @@ //删除商品,重新加载数据? this.$message.showLoading() - const {code} = await http.request('post', '/api/customer/flower/cart/change-num', { - data: { - id: dto.id, - num: addnum + const {code} = await http.request('get', '/api/customer/flower/cart/delete', { + params: { + id: item.id, } } ) @@ -154,11 +169,11 @@ this.ids.splice(this.ids.indexOf(item.id), 1) } for (var i = 0; i < this.list.length; i++) { - if (this.list[i].id === dto.supplierId) { + if (this.list[i].id === item.supplierId) { this.list[i].splice(i, 1) - if (this.list.flowerList.length === 1) { - if (this.ids.indexOf(this.list[i].id) >= 0) { - this.ids.splice(this.ids.indexOf(this.list[i].id), 1) + if (this.list[i].flowerList.length === 1) { + if (this.ids.indexOf('supplier@' + this.list[i].supplierId) >= 0) { + this.ids.splice(this.ids.indexOf('supplier@' + this.list[i].supplierId), 1) } this.list[i].flowerList.splice(0, 1) this.list.splice(i, 1) @@ -200,10 +215,11 @@ } }, changeItem(dto, type) { + console.log('click changeItem', dto, type, this.ids) if (type === 'supplier') { //全选上 - if (this.ids.indexOf(dto.id) < 0) { - this.ids.push(dto.id) + if (this.ids.indexOf('supplier@' + dto.supplierId) < 0) { + this.ids.push('supplier@' + dto.supplierId) dto.flowerList.forEach(item => { if (this.ids.indexOf(item.id) < 0) { this.ids.push(item.id) @@ -211,9 +227,9 @@ }) } else { this.checkall = false - this.ids.splice(this.ids.indexOf(dto.id), 1) + this.ids.splice(this.ids.indexOf('supplier@' + dto.supplierId), 1) dto.flowerList.forEach(item => { - this.ids.splice(this.ids.indexOf(item.id), 1) + this.ids.splice(this.ids.indexOf('supplier@' + item.supplierId), 1) }) } @@ -224,8 +240,8 @@ } else { this.checkall = false - if (this.ids.indexOf(dto.supplierId) >= 0) { - this.ids.splice(this.ids.indexOf(dto.supplierId), 1) + if (this.ids.indexOf(dto.id) >= 0) { + this.ids.splice(this.ids.indexOf(dto.id), 1) } } @@ -251,13 +267,17 @@ } }, async init() { + if (!this.currentInfo.customerDTO) { + this.$message.showToast('请先前往个人中心补充个人信息') + return + } this.$message.showLoading() await this.$store.dispatch('sign_clear', 'shopping'); const {code, data} = await this.$http.request('get', '/api/customer/flower/cart/list', {}) this.$message.hideLoading() this.list = [] if (code === 0) { - this.list = data.list || [] + this.list = data || [] } } @@ -282,13 +302,15 @@ .shopping-item { padding: 28rpx 22rpx; position: relative; + background-color: #ffffff; .sup-title { - + margin-left: 10rpx; + margin-top: 10rpx; } .item-each { - padding-left: 88rpx; + padding-left: 40rpx; .img { width: 124rpx; @@ -323,7 +345,14 @@ } .button-icons { - position: absolute; + //position: absolute; + //z-index: 10; + line-height: 40rpx; + + .curnums { + margin-left: 10rpx; + margin-right: 10rpx; + } } } -- Gitblit v1.9.3