Browse Source

feat: 添加快捷下单组件到多个页面

- 在多个页面中添加 QuickOrderEntry 组件以提供快捷下单功能
- 全局注册 QuickOrderEntry 组件
- 优化 QuickOrderEntry 组件逻辑,添加 token 检查
- 移除部分页面中不必要的 QuickOrderEntry 导入和刷新逻辑
- 修改首页轮播图点击跳转到快速创建订单页面
master
前端-胡立永 1 week ago
parent
commit
4667b2f4ba
19 changed files with 72 additions and 42 deletions
  1. +8
    -5
      components/QuickOrderEntry.vue
  2. +2
    -1
      components/productItem.vue
  3. +2
    -0
      main.js
  4. +5
    -0
      pages/index/cart.vue
  5. +2
    -9
      pages/index/category.vue
  6. +3
    -14
      pages/index/center.vue
  7. +6
    -12
      pages/index/index.vue
  8. +4
    -0
      pages/index/order.vue
  9. +4
    -0
      pages_order/mine/about.vue
  10. +3
    -0
      pages_order/mine/address.vue
  11. +4
    -0
      pages_order/mine/help.vue
  12. +4
    -0
      pages_order/mine/individualTeam.vue
  13. +5
    -1
      pages_order/mine/promotion.vue
  14. +4
    -0
      pages_order/mine/purse.vue
  15. +4
    -0
      pages_order/mine/runningWater.vue
  16. +4
    -0
      pages_order/order/orderDetail.vue
  17. +3
    -0
      pages_order/product/productDetail.vue
  18. +4
    -0
      pages_order/product/productList.vue
  19. +1
    -0
      store/store.js

+ 8
- 5
components/QuickOrderEntry.vue View File

@ -45,6 +45,9 @@ export default {
isInitialized: false isInitialized: false
} }
}, },
mounted() {
this.getQuickOrderInfo()
},
methods: { methods: {
// //
handleClick() { handleClick() {
@ -69,6 +72,11 @@ export default {
// //
getQuickOrderInfo() { getQuickOrderInfo() {
if(!uni.getStorageSync('token')){
return
}
// //
this.$api('getOrderInfo', {}, res => { this.$api('getOrderInfo', {}, res => {
if (res.code === 200 && res.result) { if (res.code === 200 && res.result) {
@ -137,11 +145,6 @@ export default {
getMessageCount() { getMessageCount() {
return this.innerMessageCount; return this.innerMessageCount;
}, },
//
getOrderInfo() {
return this.orderInfo;
}
}, },
} }
</script> </script>


+ 2
- 1
components/productItem.vue View File

@ -13,10 +13,11 @@
<text style="font-size: 30rpx; ">{{item.price}}</text>/{{item.unit}} <text style="font-size: 30rpx; ">{{item.price}}</text>/{{item.unit}}
</view> </view>
</view> </view>
<view class="buy-shop" v-if="btn">
<view class="buy-shop">
<uv-button <uv-button
type="primary" type="primary"
shape="circle" shape="circle"
v-if="btn"
text="立即购买"></uv-button> text="立即购买"></uv-button>
<view class="tips"> <view class="tips">


+ 2
- 0
main.js View File

@ -22,10 +22,12 @@ Vue.mixin(mixinConfigList)
import configPopup from '@/components/config/configPopup.vue' import configPopup from '@/components/config/configPopup.vue'
import navbar from '@/components/base/navbar.vue' import navbar from '@/components/base/navbar.vue'
import kefu from '@/components/base/kefu.vue' import kefu from '@/components/base/kefu.vue'
import QuickOrderEntry from '@/components/QuickOrderEntry.vue'
Vue.component('configPopup',configPopup) Vue.component('configPopup',configPopup)
Vue.component('navbar',navbar) Vue.component('navbar',navbar)
Vue.component('kefu',kefu) Vue.component('kefu',kefu)
Vue.component('QuickOrderEntry', QuickOrderEntry)
const app = new Vue({ const app = new Vue({
...App, ...App,


+ 5
- 0
pages/index/cart.vue View File

@ -101,6 +101,11 @@
</view> </view>
</view> </view>
<quick-order-entry
ref="quickOrderEntry"
bottom="50vh"
/>
<kefu></kefu> <kefu></kefu>
<tabber select="cart" /> <tabber select="cart" />


+ 2
- 9
pages/index/category.vue View File

@ -54,7 +54,7 @@
<quick-order-entry <quick-order-entry
ref="quickOrderEntry"
ref="quickOrderEntry"
/> />
<kefu/> <kefu/>
@ -66,14 +66,10 @@
<script> <script>
import tabber from '@/components/base/tabbar.vue' import tabber from '@/components/base/tabbar.vue'
import productItem from '@/components/productItem.vue' import productItem from '@/components/productItem.vue'
import QuickOrderEntry from '@/components/QuickOrderEntry.vue'
export default { export default {
components: { components: {
tabber, tabber,
productItem, productItem,
QuickOrderEntry,
}, },
data() { data() {
return { return {
@ -99,10 +95,7 @@
this.getCategory() this.getCategory()
}, },
onShow() { onShow() {
if(uni.getStorageSync('token')){
//
this.$refs.quickOrderEntry.refresh();
}
this.$refs.quickOrderEntry.refresh();
}, },
methods: { methods: {
clickTabs({index}){ clickTabs({index}){


+ 3
- 14
pages/index/center.vue View File

@ -60,9 +60,8 @@
<uv-swiper <uv-swiper
class="uv-swaip" class="uv-swaip"
height="240rpx" height="240rpx"
:list="bannerList"
:list="[configList.banner_icon]"
circular circular
keyName="image"
indicator="true" indicator="true"
bgColor="#ffffff"> bgColor="#ffffff">
</uv-swiper> </uv-swiper>
@ -131,10 +130,10 @@
</view> </view>
<!-- <quick-order-entry
<quick-order-entry
ref="quickOrderEntry" ref="quickOrderEntry"
bottom="50vh" bottom="50vh"
/> -->
/>
<kefu/> <kefu/>
@ -158,7 +157,6 @@
data() { data() {
return { return {
list: [], list: [],
bannerList : [],
} }
}, },
onShow() { onShow() {
@ -166,17 +164,8 @@
// //
this.$store.commit('getUserInfo') this.$store.commit('getUserInfo')
} }
this.getBanner()
}, },
methods: { methods: {
//
getBanner() {
this.$api('getBanner', res => {
if (res.code == 200) {
this.bannerList = res.result
}
})
},
} }
} }
</script> </script>


+ 6
- 12
pages/index/index.vue View File

@ -27,10 +27,14 @@
</view> </view>
</view> </view>
<view class="image-home">
<view class="image-home"
@click="$utils.navigateTo('/pages_order/order/fastCreateOrder')">
<uv-swiper class="uv-swaip" <uv-swiper class="uv-swaip"
keyName="image" keyName="image"
height="350rpx" :list="bannerList" circular bgColor="#ffffff">
height="350rpx"
:list="bannerList"
circular
bgColor="#ffffff">
</uv-swiper> </uv-swiper>
</view> </view>
@ -72,7 +76,6 @@
<script> <script>
import PrivacyAgreementPoup from '@/components/config/PrivacyAgreementPoup.vue' import PrivacyAgreementPoup from '@/components/config/PrivacyAgreementPoup.vue'
import tabber from '@/components/base/tabbar.vue' import tabber from '@/components/base/tabbar.vue'
import QuickOrderEntry from '@/components/QuickOrderEntry.vue'
import productItem from '@/components/productItem.vue' import productItem from '@/components/productItem.vue'
import mixinsList from '@/mixins/list.js' import mixinsList from '@/mixins/list.js'
export default { export default {
@ -80,7 +83,6 @@ export default {
components: { components: {
tabber, tabber,
PrivacyAgreementPoup, PrivacyAgreementPoup,
QuickOrderEntry,
productItem, productItem,
}, },
data() { data() {
@ -99,8 +101,6 @@ export default {
this.getBanner() this.getBanner()
this.getMenu() this.getMenu()
if(uni.getStorageSync('token')){ if(uni.getStorageSync('token')){
//
this.refreshQuickOrder()
this.$store.commit('getUserInfo') this.$store.commit('getUserInfo')
} }
}, },
@ -142,12 +142,6 @@ export default {
// url: item.url, // url: item.url,
// }) // })
}, },
//
refreshQuickOrder() {
if (this.$refs.quickOrderEntry) {
this.$refs.quickOrderEntry.refresh();
}
},
} }
} }
</script> </script>


+ 4
- 0
pages/index/order.vue View File

@ -61,6 +61,10 @@
</view> </view>
<kefu/> <kefu/>
<quick-order-entry
ref="quickOrderEntry"
/>
</view> </view>
</template> </template>


+ 4
- 0
pages_order/mine/about.vue View File

@ -10,6 +10,10 @@
<uv-parse :content="configList.config_aboutus"></uv-parse> <uv-parse :content="configList.config_aboutus"></uv-parse>
</view> </view>
<quick-order-entry
ref="quickOrderEntry"
/>
</view> </view>
</template> </template>


+ 3
- 0
pages_order/mine/address.vue View File

@ -19,6 +19,9 @@
@saveOrUpdate="saveOrUpdate" @saveOrUpdate="saveOrUpdate"
:title="title"></redactAddress> :title="title"></redactAddress>
<quick-order-entry
ref="quickOrderEntry"
/>
<view class="add-btn"> <view class="add-btn">
<view @click="addBtn" class="btn"> <view @click="addBtn" class="btn">


+ 4
- 0
pages_order/mine/help.vue View File

@ -51,6 +51,10 @@
<view @click="submit">确认</view> <view @click="submit">确认</view>
</view> </view>
</view> </view>
<quick-order-entry
ref="quickOrderEntry"
/>
</view> </view>
</template> </template>


+ 4
- 0
pages_order/mine/individualTeam.vue View File

@ -62,6 +62,10 @@
</view> </view>
</view> </view>
</view> </view>
<quick-order-entry
ref="quickOrderEntry"
/>
</view> </view>
</template> </template>


+ 5
- 1
pages_order/mine/promotion.vue View File

@ -2,7 +2,7 @@
<view class="promotion"> <view class="promotion">
<navbar title="二维码" <navbar title="二维码"
bgColor="rgb(235, 51, 0)"
bgColor="#DC2828"
color="#fff" color="#fff"
leftClick @leftClick="$utils.navigateBack" /> leftClick @leftClick="$utils.navigateBack" />
@ -19,6 +19,10 @@
保存到相册 保存到相册
</view> </view>
<!-- <quick-order-entry
ref="quickOrderEntry"
/> -->
</view> </view>
</template> </template>


+ 4
- 0
pages_order/mine/purse.vue View File

@ -35,6 +35,10 @@
<view class="b-fiexd"> <view class="b-fiexd">
<view class="button-submit">提交</view> <view class="button-submit">提交</view>
</view> </view>
<quick-order-entry
ref="quickOrderEntry"
/>
</view> </view>
</template> </template>


+ 4
- 0
pages_order/mine/runningWater.vue View File

@ -48,6 +48,10 @@
<uv-empty mode="history" textSize="28rpx" iconSize="100rpx" /> <uv-empty mode="history" textSize="28rpx" iconSize="100rpx" />
</view> </view>
</view> </view>
<quick-order-entry
ref="quickOrderEntry"
/>
<!-- 日历选择器 --> <!-- 日历选择器 -->
<uv-calendars <uv-calendars


+ 4
- 0
pages_order/order/orderDetail.vue View File

@ -182,6 +182,10 @@
<kefu></kefu> <kefu></kefu>
<quick-order-entry
ref="quickOrderEntry"
/>
<!-- 联系客服弹框 --> <!-- 联系客服弹框 -->
<customerServicePopup ref="customerServicePopup" /> <customerServicePopup ref="customerServicePopup" />
</view> </view>


+ 3
- 0
pages_order/product/productDetail.vue View File

@ -68,6 +68,9 @@
<!-- 联系客服弹框 --> <!-- 联系客服弹框 -->
<customerServicePopup ref="customerServicePopup" /> <customerServicePopup ref="customerServicePopup" />
<quick-order-entry
ref="quickOrderEntry"
/>
<kefu/> <kefu/>
</view> </view>


+ 4
- 0
pages_order/product/productList.vue View File

@ -18,6 +18,10 @@
:item="item" v-for="(item, index) in list" :key="index"/> :item="item" v-for="(item, index) in list" :key="index"/>
</view> </view>
<quick-order-entry
ref="quickOrderEntry"
/>
<kefu/> <kefu/>
</view> </view>
</template> </template>


+ 1
- 0
store/store.js View File

@ -166,6 +166,7 @@ const store = new Vuex.Store({
uni.getImageInfo({ uni.getImageInfo({
src: `${Vue.prototype.$config.baseUrl}/info/createQrCode?token=${uni.getStorageSync('token')}`, src: `${Vue.prototype.$config.baseUrl}/info/createQrCode?token=${uni.getStorageSync('token')}`,
success : res => { success : res => {
uni.hideLoading()
that.commit('setPromotionUrl', res.path) that.commit('setPromotionUrl', res.path)
}, },
fail : err => { fail : err => {


Loading…
Cancel
Save