Browse Source

11111111

master
guoxing 1 year ago
parent
commit
8ca0626275
  1. 4
      common/config.js
  2. 432
      pages/home/myCellar.vue

4
common/config.js

@ -6,9 +6,9 @@
* loginTimeoutPage = "/pages/login/index", // 登录超时或失效的情况下,跳转到的登录页面
*/
module.exports = {
baseUrl: 'http://192.168.2.106:7211', // 本地
// baseUrl: 'http://9jb9ws.natappfree.cc', // 本地
// baseUrl: 'https://lpk.yyundong.com/lpkapi', // 测试服务器
// baseUrl: 'https://lpk.yyundong.com/mallapi', // 测试服务器
baseUrl: 'https://lpk.yyundong.com/mallapi', // 测试服务器
// baseUrl: 'https://supervise.yxtsoft.com/lpkapi', // 正式服务器
tokenName: "Authorization", // 请求头中token的名字,与服务器端对应
loginTimeoutCode: "5001", // 登录超时或失效的情况下,服务器端返回的错误码

432
pages/home/myCellar.vue

@ -1,83 +1,85 @@
<template>
<view id="page">
<!-- 顶部 -->
<view
style="display: flex;flex-direction: column;height: 100vh;background: -webkit-linear-gradient(left,#FEA65F,#FB9440);">
<view class="top">
<NavBar ref="nav" navTitle=" " :showIcon="false" :start-change-height="page.startHeight"
:end-change-height="page.endHeight">
</NavBar>
</view>
<!-- 功能区 -->
<view class="func-area">
<view class="center">
<!-- 左侧菜单区 -->
<view class="menu-area">
<!-- 左侧菜单列表 -->
<scroll-view scroll-y="true" style="height: 100%; width: 100%;border-bottom-left-radius: 25px;"
:scroll-top="scrollLeftTop" bindscrolltoupper="upper" bindscrolltolower="lower"
:show-scrollbar="false" :enhanced="true" bindscroll="scroll">
<view class="menu">
<view v-for="(item,index) in data" @click="labelClick(index,item)" class="method">
<text class="label" :class="{'label-selected':selectIndex==index}">{{item.name}}</text>
<view v-if="item.count>0" class="goods-count">{{item.count}}</view>
<loading-state ref="pageView" @request="request">
<view style="background: #fff; height: calc(100vh - 45px - 50vw);width: 100%;
border-radius: 15px;display: flex;flex-direction: column; box-sizing: border-box;margin-top: -15px;">
<view class="center">
<view style="width: 22%;display: flex;flex-direction: column;overflow-y: auto;padding-top: 10px;">
<view style="width: 100%;display: flex;flex-direction: column; ">
<view v-for="(item,index) in data" @click="labelClick(index,item)"
style="display: flex;flex-direction: column;justify-content: center;position: relative;">
<text class="label" :class="{'label2':selectIndex==index}">{{item.name}}</text>
<view v-if="item.count>0" style="border-radius: 50%;text-align: center;background: #f00;color: #fff;font-size: 8px;
position: absolute;
top: 10px;
right: 8px;
padding: 2px 5px;
width: auto;">{{item.count}}</view>
</view>
</view>
</scroll-view>
</view>
</view>
<view style="width: 78%;background-color: #fff;overflow-y: auto;">
<view style="width: 78%;background-color: #fff;overflow-y: auto;">
<scroll-view scroll-y="true" style="height: 100%; width: 100%;padding-left: 10px;padding-right: 10px;box-sizing: border-box;" bindscrolltoupper="upper"
bindscrolltolower="lower" bindscroll="scroll" :show-scrollbar="false"
:scroll-top="scrollRightTop" :enhanced="true">
<view style="width: 100%; display: flex;flex-direction: column;overflow-y: auto;">
<view style="width: 100%; display: flex;flex-direction: column;box-sizing: border-box;">
<view v-for="(item,index) in goods" @click="itemClick(item.goodsSid)"
style="display: flex;flex-direction: column;justify-content: center;width: 100%; margin-top: 15px; ">
<view v-for="(item,index) in goods"
style="display: flex;flex-direction: column;justify-content: center;width: 95%; margin-top: 15px; margin-left: 3%;">
<view style="display: flex;flex-direction: row;align-items: center;width: 100%; ">
<image :src="item.iconUrl" style="width: 90px;height: 90px; border-radius: 10px; "
mode="aspectFill"></image>
mode="aspectFill" @click="itemClick(item.goodsSid)"></image>
<view
style="display: flex;flex-direction: column;flex: 1; padding-bottom: 15px; margin-left: 10px;"
:style="{'border-bottom':(index == goods.length-1 ? 'none' : '1px #EFEFEF solid')}">
<text style="font-size: 13px;color: #000;">{{item.name}}</text>
<text style="font-size: 14px;color: #000;font-weight: 600;">{{item.name}}</text>
<text
style="font-size: 10px;color: #999;margin-top: 5px;">{{item.remark}}</text>
<view
style="display: flex;flex-direction: row;align-items: center;margin-top: 8px;">
<text
style="border: 1px #EE752F solid; border-radius: 5px; padding: 0px 8px;
font-size: 10px;color: #EE752F; margin-right: 10px; ">{{item.weight}}{{item.specificationUnit}}/{{item.unitName}}</text>
<text style="border: 1px #EE752F solid; border-radius: 5px; padding: 0px 8px;
font-size: 10px;color: #EE752F;">{{item.weight}}{{item.specificationUnit}}/{{item.unitName}}</text>
<text
style="border: 1px #EE752F solid; background: #FF9900; color: #fff; font-size: 10px;border-radius: 5px; padding: 0px 8px;"
style="border: 1px #EE752F solid; background: #FF9900;margin-left: 10px; color: #fff; font-size: 10px;border-radius: 5px; padding: 0px 8px;"
v-if="item.type=='0'">百姓菜!</text>
<text
style="border: 1px #3AA15F solid; background: #40C772; color: #fff; font-size: 10px;border-radius: 5px; padding: 0px 8px;"
style="border: 1px #3AA15F solid; background: #40C772;margin-left: 10px; color: #fff; font-size: 10px;border-radius: 5px; padding: 0px 8px;"
v-if="item.type=='1'">精品菜!</text>
<text
style="border: 1px #1D60C7 solid; background: #2489F7; color: #fff; font-size: 10px;border-radius: 5px; padding: 0px 8px;"
style="border: 1px #1D60C7 solid; background: #2489F7;margin-left: 10px; color: #fff; font-size: 10px;border-radius: 5px; padding: 0px 8px;"
v-if="item.type=='2'">企业菜!</text>
</view>
<view style="display: flex;flex-direction: row;align-items: center;justify-content: space-between; margin-top: 15px;
margin-right: 15px;">
<view style="display: flex;flex-direction: row;align-items: center;">
<text style="font-size: 12px;color: #666;">存量</text>
<text
style="font-size: 14px;color: #FF5006;">{{item.goodsNumber}}{{item.unitName}}</text>
</view>
<view style="display: flex;flex-direction: row;align-items: center;">
<image src="../../static/jian_icon.png" mode="aspectFill"
@ -89,7 +91,6 @@
style="width: 20px;height: 20px;" @click.stop="jia(item)"></image>
</view>
</view>
</view>
@ -112,47 +113,58 @@
</view>
</view>
</scroll-view>
</view>
</view>
</view>
<view class="bottom">
<view
style="display: flex;flex-direction: row; justify-content: center;align-items: center;padding-bottom: 10px;margin-top: 5px;padding: 0px 20px;">
<text
style="background: #FF9900;color: #fff;height: 42px;line-height: 40px;font-size: 13px;padding: 0px 15px;border: 1px #FF5006 solid;
border-top-left-radius: 25px;border-bottom-left-radius: 25px;border-top-right-radius: 0px;border-bottom-right-radius: 0px;"
@click="transfer()">转赠亲友</text>
<view style="border: 1px #FF5006 solid;margin-left: 5px;margin-right: 5px;padding: 0px 10px;height: 42px;flex: 1;
display: flex;flex-direction: row;align-items: center;box-sizing: border-box;" @click="gotoCart()">
<!-- image src="../../static/shoppCart_icon.png" mode="aspectFill"
style="height: 20px;width: 25px;"></image> -->
<text style="font-size: 12px;color: #666;margin-left: 10px; ">选中</text>
<text style="font-size: 15px;color: #FF5006;margin-left: 10px; ">{{page.count}}</text>
<text style="font-size: 12px;color: #666;margin-left: 10px; ">份蔬菜</text>
</view>
<text style="background: #FF9900; color: #fff;font-size: 13px; padding: 0px 15px;height: 40px;line-height: 40px;
border: 1px #FF5006 solid; border-top-right-radius: 25px; border-bottom-right-radius: 25px;flex-shrink: 0;"
@click="reservation()">预约提菜</text>
<view class="bottom">
<view
style="display: flex;flex-direction: row; justify-content: center;align-items: center;padding-bottom: 10px;margin-top: 5px;padding: 0px 10px;">
<text style="background: #FF9900;
color: #fff;
height: 42px;
line-height: 40px;
font-size: 13px;
padding: 0px 15px;
border: 1px #FF5006 solid;
border-top-left-radius: 25px;
border-bottom-left-radius: 25px;
border-top-right-radius: 0px;
border-bottom-right-radius: 0px;" @click="transfer()">转赠亲友</text>
<view style="border: 1px #FF5006 solid;margin-left: 5px;margin-right: 5px;padding: 0px 10px;height: 42px;flex: 1;
display: flex;flex-direction: row;align-items: center;box-sizing: border-box;" @click="gotoCart()">
<!-- image src="../../static/shoppCart_icon.png" mode="aspectFill"
style="height: 20px;width: 25px;"></image> -->
<text style="font-size: 12px;color: #666;margin-left: 10px; ">选中</text>
<text style="font-size: 15px;color: #FF5006;margin-left: 10px; ">{{page.count}}</text>
<text style="font-size: 12px;color: #666;margin-left: 10px; ">份蔬菜</text>
</view>
<text style="background: #FF9900; color: #fff;font-size: 13px; padding: 0px 15px;height: 40px;line-height: 40px;
border: 1px #FF5006 solid; border-top-right-radius: 25px; border-bottom-right-radius: 25px;flex-shrink: 0;"
@click="reservation()">预约提菜</text>
</view>
</view>
</view>
</loading-state>
<!-- 弹窗蒙版 -->
<view class="model" catchtouchmove='preventTouchMove' v-if='showModal'></view>
<view class="modalDlg" catchtouchmove='preventTouchMove' v-if='showModal'>
<view style="display: flex;flex-direction: column;justify-content: center;align-items: center;">
<image src="https://supervise.yxtsoft.com/lpk/image/newpor_gift.png" mode="aspectFill"
style="margin-left: 5vw;margin-right: 5vw;margin-top: -50px;"></image>
<image src="https://supervise.yxtsoft.com/lpk/image/newpor_btn.png" mode="aspectFill"
style="width: 180px;height: 50px;margin-top: 20px;" @click="showGift()"></image>
<image src="../../static/close.png" mode="aspectFill" style="width: 28px;height: 28px;margin-top: 10px;"
@click="colseDialog()"></image>
</view>
</view>
<!-- 礼包列表弹框 -->
<view class="model" catchtouchmove='preventTouchMove' v-if='showModal2'></view>
<view class="modalDlg2" catchtouchmove='preventTouchMove' v-if='showModal2'>
@ -202,63 +214,68 @@
<view class="model" catchtouchmove='preventTouchMove' v-if='showModal3' @click="colseDialog3()"></view>
<view class="modalDlg3" catchtouchmove='preventTouchMove' v-if='showModal3'>
<view style="display: flex;flex-direction: column;background: #fff;
padding: 10px 20px;overflow-y: auto;">
padding: 10px 20px;">
<text
style="font-size: 15px;color: #000;font-weight: 600;font-family: sans-serif;margin-top: 10px;margin-bottom:10px ;">转赠蔬菜列表</text>
<view style="display: flex;flex-direction: column;overflow-y: auto;">
style="font-size: 16px;color: #000;font-weight: 600;font-family: sans-serif;margin-top: 10px;margin-bottom:10px ;">转赠蔬菜列表</text>
<view v-for="(item,index) in goods"
style="display: flex;flex-direction: row;margin-top: 15px; margin-bottom: 10px;">
<scroll-view scroll-y="true" style="height: 80vw; width: 100%; box-sizing: border-box;
" bindscrolltoupper="upper" bindscrolltolower="lower" bindscroll="scroll">
<view style="display: flex;flex-direction: column;">
<view style="display: flex;flex-direction: row;align-items: center;width: 100%; ">
<view v-for="(item,index) in goods"
style="display: flex;flex-direction: row;margin-top: 15px; margin-bottom: 10px;">
<image :src="item.iconUrl" style="width: 90px;height: 90px; border-radius: 10px; "
mode="aspectFill" @click="itemClick(item.goodsSid)"></image>
<view style="display: flex;flex-direction: row;align-items: center;width: 100%; ">
<view
style="display: flex;flex-direction: column;flex: 1; padding-bottom: 15px; margin-left: 10px;"
:style="{'border-bottom':(index == goods.length-1 ? 'none' : '1px #EFEFEF solid')}">
<image :src="item.iconUrl" style="width: 90px;height: 90px; border-radius: 10px; "
mode="aspectFill" @click="itemClick(item.goodsSid)"></image>
<text style="font-size: 14px;color: #000; font-weight: 600;">{{item.name}}</text>
<view
style="display: flex;flex-direction: column;flex: 1; padding-bottom: 15px; margin-left: 10px;"
:style="{'border-bottom':(index == goods.length-1 ? 'none' : '1px #EFEFEF solid')}">
<text style="font-size: 10px;color: #999;margin-top: 5px;">{{item.remark}}</text>
<text style="font-size: 14px;color: #000; font-weight: 600;">{{item.name}}</text>
<view style="display: flex;flex-direction: row;align-items: center;margin-top: 8px;">
<text style="border: 1px #EE752F solid; border-radius: 5px; padding: 0px 8px;
font-size: 10px;color: #EE752F;">{{item.weight}}{{item.specificationUnit}}/{{item.unitName}}</text>
<text style="font-size: 10px;color: #999;margin-top: 5px;">{{item.remark}}</text>
<text
style="border: 1px #EE752F solid; background: #FF9900;margin-left: 10px; color: #fff; font-size: 10px;border-radius: 5px; padding: 0px 8px;"
v-if="item.type=='0'">百姓菜!</text>
<text
style="border: 1px #3AA15F solid; background: #40C772;margin-left: 10px; color: #fff; font-size: 10px;border-radius: 5px; padding: 0px 8px;"
v-if="item.type=='1'">精品菜!</text>
<text
style="border: 1px #1D60C7 solid; background: #2489F7;margin-left: 10px; color: #fff; font-size: 10px;border-radius: 5px; padding: 0px 8px;"
v-if="item.type=='2'">企业菜!</text>
</view>
<view
style="display: flex;flex-direction: row;align-items: center;margin-top: 8px;">
<text style="border: 1px #EE752F solid; border-radius: 5px; padding: 0px 8px;
font-size: 10px;color: #EE752F;">{{item.weight}}{{item.specificationUnit}}/{{item.unitName}}</text>
<view style="display: flex;flex-direction: row;align-items: center;justify-content: space-between; margin-top: 15px;
margin-right: 15px;">
<view style="display: flex;flex-direction: row;align-items: center;">
<text style="font-size: 10px;color: #FF5006;">剩余</text>
<text
style="font-size: 14px;color: #FF5006;">{{item.goodsNumber}}{{item.unitName}}</text>
style="border: 1px #EE752F solid; background: #FF9900;margin-left: 10px; color: #fff; font-size: 10px;border-radius: 5px; padding: 0px 8px;"
v-if="item.type=='0'">百姓菜!</text>
<text
style="border: 1px #3AA15F solid; background: #40C772;margin-left: 10px; color: #fff; font-size: 10px;border-radius: 5px; padding: 0px 8px;"
v-if="item.type=='1'">精品菜!</text>
<text
style="border: 1px #1D60C7 solid; background: #2489F7;margin-left: 10px; color: #fff; font-size: 10px;border-radius: 5px; padding: 0px 8px;"
v-if="item.type=='2'">企业菜!</text>
</view>
<view style="display: flex;flex-direction: row;align-items: center;">
<view style="display: flex;flex-direction: row;align-items: center;justify-content: space-between; margin-top: 15px;
margin-right: 15px;">
<view style="display: flex;flex-direction: row;align-items: center;">
<text style="font-size: 10px;color: #FF5006;">剩余</text>
<text
style="font-size: 14px;color: #FF5006;">{{item.goodsNumber}}{{item.unitName}}</text>
</view>
<image src="../../static/jian_icon.png" mode="aspectFill"
style="width: 20px;height: 20px;" @click.stop="jian(item)"></image>
<view style="display: flex;flex-direction: row;align-items: center;">
<text
style="font-size: 14px;margin-left: 8px;margin-right: 8px;">{{item.count}}</text>
<image src="../../static/jia_icon.png" mode="aspectFill"
style="width: 20px;height: 20px;" @click.stop="jia(item)"></image>
<image src="../../static/jian_icon.png" mode="aspectFill"
style="width: 20px;height: 20px;" @click.stop="jian(item)"></image>
<text
style="font-size: 14px;margin-left: 8px;margin-right: 8px;">{{item.count}}</text>
<image src="../../static/jia_icon.png" mode="aspectFill"
style="width: 20px;height: 20px;" @click.stop="jia(item)"></image>
</view>
</view>
</view>
</view>
@ -267,7 +284,8 @@
</view>
</view>
</scroll-view>
<view style="display: flex;flex-direction: row;align-items: center;margin-top: 15px;">
@ -291,9 +309,6 @@
</view>
</view>
</view>
</template>
@ -306,6 +321,9 @@
showModal: false,
showModal2: false,
showModal3: false,
scrollHeight: "",
scrollLeftTop: "0",
scrollRightTop: "0",
brandType: "0",
styleObject: {
// 'position': 'fixed',
@ -369,8 +387,8 @@
this.request()
this.page.count = 0
},
onLoad(options) {
onLoad() {
this.shareSid = options.shareSid
console.log("shareSid>>>>", this.shareSid);
@ -393,9 +411,10 @@
}
},
labelClick(index, item) {
this.selectIndex = index
this.brandType = item.sid
this.brandType = item.id
this.pickingUpGoods = []
this.page.count = 0
this.getgoods()
@ -412,6 +431,7 @@
_this.baseDataSuccess = true
_this.getgoods()
_this.selectIndex = 0
}).catch(e => {
_this.$nextTick(() => {
_this.$refs.pageView.setLoadState(1)
@ -512,9 +532,6 @@
}
},
colseDialog() {
this.showModal = false
},
showGift() {
let _this = this
@ -584,19 +601,31 @@
}).catch(e => {})
}
}
}
</script>
<style>
#page {
display: flex;
flex-direction: column;
height: 100vh;
background: -webkit-linear-gradient(left, #FEA65F, #FB9440);
button {
background: #FF9900;
color: #fff;
margin-top: 20px;
height: 40px;
width: 100%;
line-height: 40px;
text-align: center;
border-radius: 20px;
}
/* 顶部 */
button::after {
border: 0;
}
.top {
width: 100vw;
/* height: 126.66vw; */
@ -608,44 +637,26 @@
background-size: 100% 100%;
}
/* 功能区 */
.func-area {
background: #fff;
height: calc(100vh - 45px - 50vw);
width: 100%;
border-radius: 15px;
display: flex;
flex-direction: column;
box-sizing: border-box;
margin-top: -15px;
box-sizing: border-box;
}
/* 功能区-菜单区 */
.func-area .menu-area {
width: 22%;
display: flex;
flex-direction: column;
overflow-y: auto;
padding-top: 10px;
}
/* 功能区-菜单区-菜单 */
.func-area .menu-area .menu {
width: 100%;
.center {
display: flex;
flex-direction: column;
flex-direction: row;
flex: 1;
background-color: #f7f7f7;
border-radius: 15px;
overflow: hidden;
min-width: 0;
}
/* 功能区-菜单区-菜单-显示方法 */
.func-area .menu-area .menu .method {
.bottom {
display: flex;
flex-direction: column;
justify-content: center;
border-top: 1px solid #F8F8F8;
padding-top: 5px;
flex-shrink: 0;
margin-bottom: 10px;
}
/* 功能区-菜单区-菜单-标签 */
.func-area .menu-area .menu .label {
.label {
color: #191919;
font-size: 12px;
margin-top: 10px;
@ -656,8 +667,7 @@
margin-left: 5px;
}
/* 功能区-菜单区-菜单-标签选中 */
.func-area .menu-area .menu .label-selected {
.label2 {
background: #FFF;
color: #FFF;
background-color: #FF9900;
@ -672,37 +682,46 @@
margin-left: 5px;
}
/* 功能区-菜单区-菜单-商品数量 */
.func-area .menu-area .menu .goods-count {
border-radius: 50%;
text-align: center;
background: #f00;
.top_img1 {
border: 1px #FF9900 solid;
}
.top_img2 {
border: none
}
.top_text1 {
border: 1px #FF9900 solid;
background: #FF5006;
color: #fff;
font-size: 8px;
position: absolute;
top: 10px;
right: 8px;
padding: 2px 5px;
width: auto;
font-weight: 800;
font-family: sans-serif;
padding: 5px 16px;
border-radius: 5px;
margin-top: -25px;
font-size: 13px;
word-break: keep-all;
white-space: nowrap;
}
.center {
display: flex;
flex-direction: row;
flex: 1;
background-color: #f7f7f7;
border-radius: 15px;
overflow: hidden;
min-width: 0;
.top_text2 {
border: 1px #FF9900 solid;
background: #fff;
color: #F6894B;
font-weight: 800;
padding: 5px 16px;
font-family: sans-serif;
border-radius: 5px;
margin-top: -25px;
font-size: 13px;
word-break: keep-all;
white-space: nowrap;
}
.bottom {
display: flex;
flex-direction: column;
border-top: 1px solid #F8F8F8;
padding-top: 5px;
flex-shrink: 0;
margin-bottom: 10px;
::-webkit-scrollbar {
width: 0;
height: 0;
background-color: transparent;
}
/* 弹窗样式 */
@ -711,11 +730,11 @@
width: 100%;
height: 100%;
background: #000;
z-index: 999;
opacity: 0.5;
z-index: 100000;
opacity: 0.7;
top: 0;
left: 0;
bottom: 65;
}
.modalDlg {
@ -723,17 +742,54 @@
overflow: auto;
width: 100%;
position: fixed;
top: 50vw;
height: 100%;
top: 0;
left: 0;
z-index: 100000;
display: flex;
justify-content: center;
align-items: center;
}
.modalDlg2 {
/* 设置超出滚动 */
overflow: auto;
position: fixed;
z-index: 100000;
display: flex;
width: 100%;
height: 100%;
top: 0;
left: 0;
justify-content: center;
align-items: center;
}
.device-list {
box-sizing: border-box;
padding: 26rpx 6%;
display: flex;
justify-content: space-between;
align-items: center;
border-bottom: 1px solid #eee;
}
.modalDlg3 {
/* 设置超出滚动 */
overflow: auto;
width: 100%;
position: fixed;
top: 40vw;
left: 0;
right: 0;
z-index: 9999;
bottom: 0;
opacity: 1;
z-index: 100001;
background-color: #fff;
border-top-right-radius: 20px;
border-top-left-radius: 20px;
display: flex;
flex-direction: column;
}
</style>
Loading…
Cancel
Save