Browse Source

Clear .gitignore

master
chenkainan 1 year ago
parent
commit
fac6611afa
  1. 123
      pages.json
  2. 934
      subPackages/food/foodDetail.vue
  3. 170
      subPackages/food/foodList.vue
  4. 142
      subPackages/line/lineList.vue
  5. 165
      subPackages/techan/techanList.vue
  6. 2
      unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map
  7. 2
      unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
  8. 6
      unpackage/dist/dev/mp-weixin/app.json
  9. 2
      unpackage/dist/dev/mp-weixin/common/runtime.js
  10. 8
      unpackage/dist/dev/mp-weixin/common/vendor.js
  11. 19
      unpackage/dist/dev/mp-weixin/project.config.json
  12. 3
      unpackage/dist/dev/mp-weixin/project.private.config.json

123
pages.json

@ -26,56 +26,79 @@
} }
} }
], ],
"subPackages" : [ "subPackages": [{
{ "root": "subPackages",
"root" : "subPackages", "pages": [{
"pages": [ "path": "webPage/webPage",
{ "style": {
"path" : "webPage/webPage", "navigationBarTitleText": "",
"style" : { "enablePullDownRefresh": false //
"navigationBarTitleText" : "",
"enablePullDownRefresh" : false //
}
} }
] },
} {
], "path": "food/foodList",
"tabBar" : { "style": {
"color" : "#666666", "navigationBarTitleText": "",
"selectedColor" : "#71B580", "navigationStyle": "custom"
"borderStyle" : "black", }
"backgroundColor" : "#ffffff", },
// #ifdef APP-PLUS {
"fontSize" : "12px", "path": "food/foodDetail",
"height" : "50px", "style": {
"iconWidth" : "20px", "navigationBarTitleText": "美食餐饮"
// #endif }
"list" : [ },
{ {
"pagePath" : "pages/index/index", "path": "techan/techanList",
"iconPath" : "/static/images/index.png", "style": {
"selectedIconPath" : "/static/images/index_HL.png", "navigationBarTitleText": "",
"text" : "首页" "navigationStyle": "custom"
}, }
{ },
"pagePath" : "pages/map/map", {
"iconPath" : "/static/images/map.png", "path": "line/lineList",
"selectedIconPath" : "/static/images/map_HL.png", "style": {
"text" : "地图" "navigationBarTitleText": "",
}, "navigationStyle": "custom"
{ }
"pagePath" : "pages/mall/mall", }
"iconPath" : "/static/images/mall.png", ]
"selectedIconPath" : "/static/images/mall_HL.png", }],
"text" : "商城" "tabBar": {
}, "color": "#666666",
{ "selectedColor": "#71B580",
"pagePath" : "pages/user/user", "borderStyle": "black",
"iconPath" : "/static/images/user.png", "backgroundColor": "#ffffff",
"selectedIconPath" : "/static/images/user_HL.png", // #ifdef APP-PLUS
"text" : "我的" "fontSize": "12px",
} "height": "50px",
] "iconWidth": "20px",
// #endif
"list": [{
"pagePath": "pages/index/index",
"iconPath": "/static/images/index.png",
"selectedIconPath": "/static/images/index_HL.png",
"text": "首页"
},
{
"pagePath": "pages/map/map",
"iconPath": "/static/images/map.png",
"selectedIconPath": "/static/images/map_HL.png",
"text": "地图"
},
{
"pagePath": "pages/mall/mall",
"iconPath": "/static/images/mall.png",
"selectedIconPath": "/static/images/mall_HL.png",
"text": "商城"
},
{
"pagePath": "pages/user/user",
"iconPath": "/static/images/user.png",
"selectedIconPath": "/static/images/user_HL.png",
"text": "我的"
}
]
}, },
"globalStyle": { "globalStyle": {
"navigationBarTextStyle": "black", "navigationBarTextStyle": "black",
@ -84,4 +107,4 @@
"backgroundColor": "#F8F8F8" "backgroundColor": "#F8F8F8"
}, },
"uniIdRouter": {} "uniIdRouter": {}
} }

934
subPackages/food/foodDetail.vue

@ -0,0 +1,934 @@
<template>
<view class="bg" id="bg" v-if="info">
<view class="swipe-box">
<swiper class="swiper" :autoplay="true" :interval="3000" :duration="1000" circular indicator-dots indicator-color="rgba(255,255,255,.5)" indicator-active-color="#fff">
<swiper-item v-for="(item, index) in info.list_images.split(',')" :key="item.id">
<view class="swiper-item">
<image class="item-img" :src="showImg(item)" mode="aspectFill"></image>
</view>
</swiper-item>
</swiper>
</view>
<view class="price-box">
<view class="price-box1">
<view class="price-zan">
<view class="price">
<view class="present-price">{{ info.money / 100 }}</view>
</view>
</view>
<view class="title">{{ info.title }}</view>
<view class="tag" v-if="info.goods_new_tag">
<view class="tag-item" v-for="(item, index) in info.goods_new_tag.split(',')" :key="index">{{ item }}
</view>
</view>
</view>
<view class="select-box" @click="openPop">
<view class="left">
<view class="">
选择
</view>
<view class="specifications">
<!-- <span v-for="sName in sku">{{sName.title}};</span> -->
<span>{{sku[0].title}}</span>
</view>
</view>
<image class="right" :src="showImg('/uploads/20231223/32634518cfcfbaac647d3318b254fb02.png')" mode=""></image>
</view>
</view>
<!-- 团建文本渲染部分 -->
<view class="text-box">
<view class="tab-box">
<view :class="index==navIndex?'seld-nav':'' " v-for="(item, index) in navsList" :title="item.name" :key="item.name" @click="changeNav(item,index)" style="display: flex;flex-direction: column;align-items: center;">
<view class="">
{{ item.name }}
</view>
<view class="line" v-if="navIndex == index"></view>
</view>
</view>
<view class="" id="cpts" v-html="formateRichText(info.special_content)" style="padding: 30rpx;"></view>
<view class="" id="fysm" v-html="formateRichText(info.price_content)" style="padding: 30rpx;"></view>
<view class="" id="ydxz" v-html="formateRichText(info.reserve_content)" style="padding: 30rpx;"></view>
</view>
<!-- 游客点评 -->
<view class="comment-box" id="comment">
<view class="comment-title flex-between">
<view>
<img src="https://static.ticket.sz-trip.com/dongtai/images/user/comment.png" class="comment-icon">
游客点评
<span class="comment-rate">{{info.rate}}</span>
</view>
<view class="comment-num">
{{commentNum}}
</view>
</view>
<view v-if="commentList.length > 0">
<view class="comment-item" v-for="(item,index) in commentList" :key="index">
<view style="display: flex;justify-content: space-between;">
<view style="display: flex;">
<img :src="item.user.avatar" class="comment-avatar">
<view class="flex-column" style="height: 57rpx;justify-content: space-around;">
<view class="comment-name">{{item.user.nickname}}</view>
<uni-rate :size="10" :readonly="true" :value="item.rate" active-color="red"/>
</view>
</view>
<view class="comment-time">
{{item.create_time.slice(0,10)}}
</view>
</view>
<view class="comment-content text-overflowRows">
{{ item.content }}
</view>
<!-- <view class="comment-imgs" v-if="item.img_list">
<img :src="showImg(imgItem)" class="comment-img" v-for="(imgItem,imgIndex) in item.img_list.split(',')" :key="imgIndex">
</view> -->
</view>
</view>
<view class="empty-box" v-else>
<view>这里空空如也快去点评吧!</view>
</view>
<navigator :url="'/subPackages/hotel/commentList?goodsId=' + info.id" class="content-more" v-if="commentList.length > 0">
查看全部点评 >
</navigator>
</view>
<view class="btn-list">
<view class="left-box">
<button id="contact" open-type="contact" bindcontact="handleContact" session-from="sessionFrom">
<view class="img-box">
<image src="https://yjdtadmin.sz-trip.com/uploads/20231222/ae5fd4482c56e2655ecae6059171aab0.png"
mode="aspectFill"></image>
<view class="text">
客服
</view>
</view>
</button>
<!-- <view class="img-box">
<image v-if="isCollect == 0" @click.stop="collect" :src="showImg('/uploads/20231226/b5ad17bc7074e949fce2f39fad3c9c44.png')"
mode="aspectFill"></image>
<image v-else @click.stop="collect" :src="showImg('/uploads/20231226/477bbd7016d0eecb47909b8555df49b6.png')"
mode="aspectFill"></image>
<view class="text">
收藏
</view>
</view> -->
</view>
<view class="btn-buy" @click="openPop">
立即购买
</view>
</view>
<uni-popup ref="popup" type="bottom">
<view class="popup-content" v-if="sku.length>0">
<img src="https://static.ticket.sz-trip.com/taizhou/images/cha.png" @click="closePopup"
style="margin: 31rpx 0 0 639rpx;width: 31rpx;height: 31rpx;">
<view class="bottom-productImg">
<img :src="showImg(sku[productIndex].image)" alt="">
<view class="right-content">
<view class="bottom-productPrice com-price">{{showPrice(sku[productIndex].money)}}</view>
<view class="bottom-content text-overflow">已选择{{sku[productIndex].title}}</view>
</view>
</view>
<view style="max-height: 500rpx;overflow-y: scroll;">
<view class="sp">
规格
</view>
<view v-for="(botItem,botIndex) in sku" :key="botIndex" class="botProduct text-overflow"
@click="changeProduct(botIndex)" :class="productIndex==botIndex?'botProducts':''">
{{botItem.title}}
</view>
</view>
<view class="buy-num com-flex-tao">
数量
<view class="number-btn">
<view>
<text @click="delNumber">-</text>
</view>
<view style="width: 96rpx;height: 69rpx;margin: 0 14rpx;">{{ buyNum }}</view>
<view>
<text @click="addNumber">+</text>
</view>
</view>
</view>
</view>
<view class="btn-box">
<view class="buy-btn" @click="order">
下一步
</view>
</view>
</uni-popup>
</view>
</template>
<script>
// import Base from '@/components/Base';
export default {
extends: Base,
data() {
return {
id: null,
info: null,
sku: [],
productIndex: 0,
businessInfo: [],
isCollect: 0,
showLength: 0,
buyNum: 1,
reserve_content: null,
//
navsList: [
{ name: "产品特色",id:'cpts' },
{ name: "费用说明",id:'fysm' },
{ name: "预订须知",id:'ydxz' },
{ name: "游客点评",id:'comment' }
],
navIndex:0, //
commentList: [],
commentNum: ''
};
},
// onLoad(option) {
// this.id = option.id;
// this.getInfo();
// this.getSpecificationsByGoodsId();
// this.getBusinessInfo();
// },
methods: {
// getComment() {
// this.Post({
// goods_id: this.info.id,
// offset: 0,
// limit: 2
// }, '/api/scenic/getGoodsCommentByScenicId').then(res => {
// this.commentList = res.data
// this.commentNum = res.msg
// })
// },
// changeNav(item,index) {
// this.navIndex = index
// console.log(item.name);
// // id
// let to = item.id
// //
// uni.createSelectorQuery().select('#' + to).boundingClientRect(function(rect){
// // 使scrollIntoView
// console.log(rect);
// uni.pageScrollTo({
// scrollTop: rect.top,
// duration: 200
// })
// }).exec();
// },
// changeProduct(index) {
// this.productIndex = index
// },
getInfo() {
this.Post({
goods_id: this.id
},
'/api/goods/getGoodDetail'
).then(res => {
if (res.data.flag == 0) {
setTimeout(() => {
uni.showToast({
title: '商品不存在或已下架',
icon: 'none'
})
}, 0)
setTimeout(() => {
this.goBack()
}, 2000)
}
this.info = res.data;
this.isCollect = res.data.is_collect;
this.getComment()
});
},
getSpecificationsByGoodsId() {
this.Post({
goods_id: this.id
},
'/api/goods/getSpecificationsByGoodsId'
).then(res => {
if (res) {
this.sku = res.data;
}
});
},
getBusinessInfo() {
this.Post({
goods_id: this.id,
lon: this.$store.state.user.location.lon || 116.437164,
lat: this.$store.state.user.location.lat || 39.911372,
limit: 10
},
'/api/extract/getMerchantExtractListByGoodsId'
).then(res => {
if (res) {
this.businessInfo = res.data;
}
});
},
//
collect() {
this.Post({
type: 3,
id: this.id
},
'/api/scenic/collect'
).then(res => {
if (res) {
uni.showToast({
title: res.msg,
icon: 'none'
});
this.isCollect = !this.isCollect
console.log(this.isCollect);
this.$forceUpdate()
}
});
},
//
addNumber() {
this.buyNum += 1;
},
delNumber() {
if (this.buyNum <= 1) {
return;
}
this.buyNum -= 1;
},
closePopup() {
this.$refs.popup.close()
},
openPop(){
this.$refs.popup.open()
},
order(item) {
let goods = this.sku[this.productIndex]
goods.buyNum = this.buyNum
uni.setStorageSync('order', JSON.stringify(goods)); //
uni.setStorageSync('info', JSON.stringify(this.info)); //
uni.navigateTo({
url: '/subPackages/oneplus/oneplusOrder'
});
},
goUser() {
uni.switchTab({
url: '/pages/index/user'
})
}
},
onReachBottom() {
}
};
</script>
<style lang="scss" scoped>
.bg {
min-height: 100vh;
overflow-x: hidden;
background: #f2f4f7;
padding-bottom: 210rpx;
}
view {
box-sizing: border-box;
}
button {
margin: 0;
padding: 0;
outline: none;
border-radius: 0;
background-color: transparent;
line-height: inherit;
}
button::after {
border: none;
}
.swipe-box {
height: 484rpx;
position: relative;
.swiper-item-num {
width: 90rpx;
height: 40rpx;
background: rgba(0, 0, 0, 0.5);
border-radius: 20rpx;
font-size: 24rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #ffffff;
text-align: center;
line-height: 40rpx;
position: absolute;
right: 30rpx;
bottom: 50rpx;
}
}
.swiper {
height: 484rpx;
position: relative;
.swiper-item {
width: 100%;
height: 484rpx;
.item-img {
width: 750rpx;
height: 484rpx;
}
}
}
.price-box1 {
padding: 24rpx 30rpx;
}
.price-box {
z-index: 9;
position: relative;
margin-top: -20rpx;
width: 750rpx;
background: #ffffff;
border-radius: 20rpx;
.price-zan {
display: flex;
align-items: center;
justify-content: space-between;
.price {
display: flex;
.present-price {
font-size: 42rpx;
font-family: PingFang SC;
font-weight: 400;
color: rgba(248, 74, 86, 1);
&:before {
content: '¥';
display: inline-block;
font-size: 26rpx;
}
&:after {
content: '起';
display: inline-block;
font-size: 24rpx;
font-family: PingFangSC;
font-weight: 400;
color: #8D8D8D;
}
}
}
}
.tag {
margin-bottom: 40.67rpx;
margin-top: 20rpx;
display: flex;
align-items: center;
.tag-item {
background: rgba(254, 180, 25, .14);
border-radius: 18rpx;
margin-right: 18rpx;
font-size: 24rpx;
font-family: PingFangSC;
font-weight: 500;
color: #FEB419;
padding: 0 16rpx;
}
}
.title {
font-size: 30rpx;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: bold;
color: #000000;
margin-top: 20rpx;
}
}
.notice {
padding: 40rpx 30rpx;
width: 710rpx;
background: #ffffff;
border-radius: 16rpx;
margin: 0 auto;
margin-top: 20rpx;
.notice-title {
font-size: 36rpx;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #000000;
margin-bottom: 40rpx;
}
}
.tab {
width: 750rpx;
height: 88rpx;
background: #ffffff;
box-shadow: 0px 1rpx 0px 0px rgba(227, 229, 232, 1);
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 32rpx;
position: fixed;
top: 0;
.tab-item {
height: 88rpx;
position: relative;
line-height: 88rpx;
.tab-text {
font-size: 30rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #393b3e;
}
.act-text {
font-size: 30rpx;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #000000;
}
.tab-line {
width: 60rpx;
height: 6rpx;
background: #08c59b;
border-radius: 3rpx;
position: absolute;
bottom: 0;
left: 50%;
transform: translate(-30rpx, 0);
}
}
}
.more {
width: 100%;
height: 93rpx;
line-height: 93rpx;
text-align: center;
border-top: solid 1rpx rgba(227, 229, 232, 1);
font-size: 26rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #4D526C;
margin-top: 50rpx;
}
.xzPopup {
width: 750rpx;
padding: 33rpx 26rpx 20rpx;
box-sizing: border-box;
background-color: #FFFFFF;
position: relative;
max-height: 70vh;
overflow-y: auto;
view {
padding: 0 20rpx;
box-sizing: border-box;
margin-top: 35rpx;
}
img {
width: 32rpx;
height: 32rpx;
position: absolute;
top: 33rpx;
right: 27rpx;
}
}
.comment {
font-size: 24rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: bold;
color: #6B0500;
margin-top: 28rpx;
}
.btn-list {
position: fixed;
bottom: 0;
width: 750rpx;
height: 180rpx;
background: #FFFFFF;
box-shadow: 0rpx 0rpx 16rpx 0rpx rgba(6, 0, 1, 0.1);
display: flex;
justify-content: space-between;
padding: 30rpx 50rpx 0 50rpx;
.left-box {
display: flex;
align-items: flex-start;
.img-box {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
margin-right: 64rpx;
image {
width: 48rpx;
height: 48rpx;
}
.text {
font-size: 24rpx;
font-family: PingFangSC;
font-weight: 400;
color: #666666;
}
}
}
.btn-buy {
width: 254rpx;
height: 78rpx;
background: linear-gradient(90deg, #F84A56, #FF9834);
border-radius: 40rpx;
text-align: center;
line-height: 78rpx;
font-size: 32rpx;
font-family: PingFangSC;
font-weight: 500;
color: #FFFFFF;
}
}
.popup-content {
background-color: white;
padding: 0rpx 39rpx 51rpx 39rpx;
height: auto;
border-radius: 20rpx 20rpx 0 0 ;
}
.bottom-productImg {
display: flex;
margin-bottom: 23rpx;
}
.bottom-productImg img {
width: 218rpx;
height: 179rpx;
background: #666666;
border-radius: 13rpx;
}
.right-content {
margin: 10rpx 0 0 41rpx;
}
.bottom-productPrice {
font-size: 40rpx;
color: #FC524B;
&:before{
content: "¥";
font-size: 26rpx;
}
}
.bottom-content {
width: 331rpx;
font-size: 27rpx;
font-family: PingFang SC;
font-weight: 400;
color: #666666;
}
.botProduct {
width: 320rpx;
// height: 78rpx;
border-radius: 13rpx;
background-color: #F5F5F5;
font-size: 29rpx;
font-family: PingFang SC;
font-weight: 400;
color: #333333;
line-height: 78rpx;
text-align: center;
margin-bottom: 25rpx;
display: inline-block;
}
.botProduct:nth-child(even) {
margin-right: 30rpx;
}
.botProducts {
// border: 1rpx solid #00AAFF;
background-color:rgba(254, 180, 25, 1);
color: rgba(0, 0, 0, 1);
}
.buy-num {
font-size: 29rpx;
font-family: PingFang SC;
font-weight: 400;
color: #333333;
// border-top: 1rpx solid #CCCCCC;
padding: 39rpx 0;
display: flex;
align-items: center;
justify-content: space-between;
}
.buy-num .number-btn {
display: flex;
}
.buy-num .number-btn view {
display: flex;
justify-content: center;
align-items: center;
width: 69rpx;
height: 69rpx;
border: 1rpx solid #CCCCCC;
border-radius: 7rpx;
}
.buy-num .number-btn>view text {
font-size: 46rpx;
}
.buy-btn {
width: 670rpx;
height: 78rpx;
text-align: center;
line-height: 78rpx;
background: linear-gradient(90deg, #F84A56, #FF9834);
border-radius: 40rpx;
font-size: 34rpx;
font-family: PingFangSC;
font-weight: 500;
color: #FFFFFF;
}
.btn-box{
width: 750rpx;
height: 151rpx;
background: #FFFFFF;
box-shadow: 0rpx 0rpx 16rpx 0rpx rgba(6,0,1,0.1);
display: flex;
align-items: center;
justify-content: center;
}
.sp{
width: 100%;
height: 30rpx;
font-size: 32rpx;
font-family: PingFangSC;
font-weight: 400;
color: #060001;
line-height: 30rpx;
border-top: solid 2rpx #ccc;
margin: 60rpx 0;
padding-top: 30rpx;
}
.guige {
padding: 42rpx 0;
border-top: 1rpx solid #D8D8D8;
}
.select-box {
// width: 100%;
height: 113rpx;
border-top: 1rpx solid #D8D8D8;
padding-left: 38rpx;
padding-right: 32rpx;
font-size: 31rpx;
font-family: PingFang SC;
font-weight: 500;
color: #000000;
display: flex;
justify-content: space-between;
align-items: center;
}
.left {
display: flex;
}
.specifications {
margin-left: 27.33rpx;
font-size: 31rpx;
font-family: PingFang SC;
font-weight: 500;
color: #888888;
white-space: nowrap;
width: 500rpx;
overflow: hidden;
}
.right {
width: 15.33rpx;
height: 27.33rpx;
}
.text-box {
width: 710rpx;
margin: 22rpx 20rpx;
background: #FFFFFF;
position: relative;
border-radius: 13rpx;
}
.tab-box {
display: flex;
justify-content: space-around;
align-items: center;
font-size: 29rpx;
font-family: PingFangSC;
font-weight: 400;
color: #333333;
height: 85.33rpx;
line-height: 85.33rpx;
}
.seld-nav {
font-size: 33rpx;
font-family: PingFangSC;
font-weight: bold;
color: #000000;
// border-bottom: 5rpx solid #FEB419;
}
.line {
width: 47rpx;
height: 5rpx;
background: #FEB419;
border-radius: 3rpx;
margin-top: -10rpx;
}
.comment-box{
width: 710rpx;
height: auto;
background: #FFFFFF;
border-radius: 13rpx;
margin: 24rpx auto 0;
padding: 0 20rpx;
.comment-title{
border-bottom: 1rpx solid #D9D9D9;
height: 95rpx;
display: flex;
align-items: center;
font-size: 35rpx;
font-family: PingFang SC;
font-weight: bold;
color: #000000;
.comment-icon{
width: 32rpx;
height: 32rpx;
margin-right: 14rpx;
}
.comment-rate{
font-size: 30rpx;
font-family: PingFang SC;
font-weight: 400;
color: #D62828;
margin-left: 10rpx;
}
.comment-num{
font-size: 27rpx;
font-family: PingFang SC;
font-weight: 400;
color: #999999;
}
}
.comment-item{
padding: 37rpx 0;
border-bottom: 1rpx solid #CCCCCC;
.comment-avatar{
width: 57rpx;
height: 57rpx;
border-radius: 50%;
margin-right: 15rpx;
}
.comment-name{
font-size: 21rpx;
font-family: PingFang SC;
font-weight: 400;
color: #666666;
}
.comment-time {
font-family: PingFangSC;
font-weight: 400;
font-size: 24rpx;
color: #999999;
}
.comment-content{
margin-top: 30rpx;
font-size: 28rpx;
font-family: PingFang SC;
font-weight: 400;
color: #000000;
}
.comment-imgs{
margin-top: 34rpx;
overflow-x: auto;
white-space: nowrap;
.comment-img{
width: 147rpx;
height: 147rpx;
border-radius: 13rpx;
margin-right: 15rpx;
}
}
.comment-imgs::-webkit-scrollbar {
display: none;
}
}
.empty-box {
text-align: center;
padding: 98rpx 0;
font-size: 28rpx;
color: #999999;
}
.content-more{
height: 98rpx;
display: flex;
align-items: center;
justify-content: flex-end;
font-size: 27rpx;
font-family: PingFang SC;
font-weight: 500;
color: #999999;
}
}
</style>

170
subPackages/food/foodList.vue

@ -0,0 +1,170 @@
<template>
<view class="bg">
<img src="https://static.ticket.sz-trip.com/hsrNewTown/images/calendar/topLeft.png" class="topLeft" @click="goBack"/>
<img :src="showImg('/uploads/20240826/7329f5c692bfee0c3a3acacc0205761d.png')" class="topImg" />
<navigator :url="'/subPackages/food/foodDetail?id=' + item.id" class="item" v-for="item in list" :key="item.id">
<image class="img" :src="showImg(item.image)" mode=""></image>
<view class="content">
<view class="title text-overflowRows">
{{item.title}}
</view>
<view style="display: flex;" v-if="item.goods_new_tag">
<view class="tagItem1" v-for="(tagItem,tagIndex) in item.goods_new_tag.split(',').slice(0,2)" :key="tagIndex">{{tagItem}}</view>
</view>
<view class="bottom">
<view class="distance">
<text v-if="item.distance">距您约{{ item.distance/1000 }}km</text>
</view>
<view class="price">
{{item.low_money/100}}
</view>
</view>
</view>
</navigator>
</view>
</template>
<script>
export default {
data() {
return {
headImg: '',
list:[], //
finished: false,
}
},
onReady() {
// this.getHeadImg('jiudian').then(res => {
// this.headImg = res
// })
this.getList()
},
methods: {
//
getList(){
this.Post({
type_id: 16,
offset: this.list.length,
limit: 10,
lon: uni.getStorageSync('location').lon || '',
lat: uni.getStorageSync('location').lat || '',
},'/api/goods/getGoodsByType').then(res => {
this.list = [...this.list, ...res.data];
if (res.data.length < 10) {
this.finished = true
}
})
},
},
onReachBottom() {
setTimeout(() => {
if (!this.finished) this.getList()
},1000)
}
}
</script>
<style lang="scss" scoped>
.bg {
background: #FFFFFF;
min-height: 100vh;
padding-bottom: 26rpx;
}
.topLeft {
position: absolute;
left: 26rpx;
top: 101rpx;
width: 53.33rpx;
height: 53.33rpx;
z-index: 2;
}
.topImg {
width: 750rpx;
height: 440rpx;
}
.item {
width: 696rpx;
height: 213rpx;
background: #FFFFFF;
box-shadow: 0rpx 0rpx 9rpx 0rpx rgba(153,153,153,0.38);
border-radius: 13rpx;
margin: 27.33rpx auto 0;
padding: 12.67rpx 19.33rpx 14rpx 13.33rpx;
display: flex;
}
.img {
width: 187rpx;
height: 187rpx;
background: #87CD93;
border-radius: 13rpx;
margin-right: 22.67rpx;
flex-shrink: 0;
}
.content {
padding: 6rpx 0;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.title {
padding-left: 2.67rpx;
font-family: PingFang SC;
font-weight: bold;
font-size: 31rpx;
color: #000000;
width: 427rpx;
}
.tagItem1 {
width: 128rpx;
height: 41rpx;
background: rgba(205,233,209, .3);
border-radius: 7rpx 5rpx 5rpx 7rpx;
border: 2rpx solid #87CD93;
font-family: PingFang SC;
font-weight: 500;
font-size: 25rpx;
color: #3C6943;
text-align: center;
line-height: 37rpx;
margin-right: 12rpx;
}
.bottom {
width: 452rpx;
display: flex;
justify-content: space-between;
align-items: center;
}
.distance {
font-family: PingFang SC;
font-weight: 500;
font-size: 27rpx;
color: #999999;
}
.price {
font-family: PingFang SC;
font-weight: bold;
font-size: 33.33rpx;
color: #D90F00;
display: flex;
align-items: baseline;
}
.price::before{
content: '¥';
font-size: 24rpx;
}
.price::after{
content: '/人';
font-size: 24rpx;
}
</style>

142
subPackages/line/lineList.vue

@ -0,0 +1,142 @@
<template>
<view class="bg">
<img src="https://static.ticket.sz-trip.com/hsrNewTown/images/calendar/topLeft.png" class="topLeft" @click="goBack"/>
<img :src="showImg('/uploads/20240826/97282395bdd31e0b1fe20e5356cc4fc4.png')" class="topImg" />
<view class="item" v-for="item in list" :key="item.id">
<image class="img" :src="showImg(item.image)" mode=""></image>
<view class="content">
<view class="title text-overflowRows">
{{item.title}}
</view>
<view class="bottom">
<view class="price">
{{item.low_money/100}}
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
list:[], //
finished: false,
}
},
onReady() {
this.getList()
},
methods: {
//
getList(){
this.Post({
type_id: 17,
offset: this.list.length,
limit: 10,
lon: uni.getStorageSync('location').lon || '',
lat: uni.getStorageSync('location').lat || '',
},'/api/goods/getGoodsByType').then(res => {
this.list = [...this.list, ...res.data];
if (res.data.length < 10) {
this.finished = true
}
})
},
},
onReachBottom() {
setTimeout(() => {
if (!this.finished) this.getList()
},1000)
}
}
</script>
<style lang="scss" scoped>
view {
box-sizing: border-box;
}
.bg {
background: #FFFFFF;
min-height: 100vh;
padding-bottom: 26rpx;
}
.topLeft {
position: absolute;
left: 26rpx;
top: 101rpx;
width: 53.33rpx;
height: 53.33rpx;
z-index: 2;
}
.topImg {
width: 750rpx;
height: 440rpx;
}
.item {
width: 697rpx;
height: 227rpx;
background: #FFFFFF;
box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(153,153,153,0.38);
border-radius: 13rpx;
margin: 26.67rpx auto 0;
display: flex;
}
.img {
width: 280rpx;
height: 227rpx;
background: #87CD93;
border-radius: 13rpx;
margin-right: 20.67rpx;
flex-shrink: 0;
}
.content {
width: 370rpx;
padding: 20.67rpx 0 24rpx 0;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.title {
font-family: PingFang SC;
font-weight: bold;
font-size: 31rpx;
color: #000000;
width: 367rpx;
}
.bottom {
width: 370rpx;
display: flex;
justify-content: flex-end;
}
.price {
font-family: PingFang SC;
font-weight: bold;
font-size: 33.33rpx;
color: #F02A2A;
display: flex;
align-items: baseline;
}
.price::before{
content: '¥';
font-size: 24rpx;
}
.price::after{
content: '起';
font-size: 24rpx;
color: #666;
font-weight: 500;
}
</style>

165
subPackages/techan/techanList.vue

@ -0,0 +1,165 @@
<template>
<view class="bg">
<img src="https://static.ticket.sz-trip.com/hsrNewTown/images/calendar/topLeft.png" class="topLeft" @click="goBack"/>
<img :src="showImg('/uploads/20240826/53bbad9d231e7e0eb2404efb0c0903f4.png')" class="topImg" />
<view class="box">
<view class="item" v-for="item in list" :key="item.id" @click="goDetail(item)">
<image class="item-img" :src="showImg(item.image)" mode=""></image>
<view class="content">
<view class="title text-overflowRows">{{item.title}}</view>
<view class="bottom">
<view class="price">
{{item.money/100}}
</view>
<view class="buy">
立即购买
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
list:[],
finished: false,
}
},
onReady() {
this.getList()
},
methods: {
//
getList(){
this.Post({
type_id: 19,
offset: this.list.length,
limit: 10,
},'/api/goods/getGoodsByType').then(res => {
this.list = [...this.list, ...res.data];
if (res.data.length < 10) {
this.finished = true
}
})
},
goDetail(item) {
uni.navigateTo({
url: '/subPackages/feiyi/feiyiDetails?id=' + item.id
})
}
},
onReachBottom() {
setTimeout(() => {
if (!this.finished) this.getList()
},1000)
}
}
</script>
<style lang="scss" scoped>
view {
box-sizing: border-box;
}
.bg {
background: #FFFFFF;
min-height: 100vh;
padding-bottom: 26rpx;
}
.topLeft {
position: absolute;
left: 26rpx;
top: 101rpx;
width: 53.33rpx;
height: 53.33rpx;
z-index: 2;
}
.topImg {
width: 750rpx;
height: 440rpx;
}
.box {
margin-top: 26.67rpx;
// border-radius: 20rpx 20rpx 0rpx 0rpx;
padding: 0 26.67rpx;
display: flex;
flex-wrap: wrap;
justify-content: space-between;
}
.item {
margin-bottom: 22rpx;
width: 335rpx;
height: 497rpx;
background: #FFFFFF;
box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(153,153,153,0.38);
border-radius: 13rpx;
}
.item-img {
width: 100%;
height: 342rpx;
background: #87CD93;
border-radius: 13rpx 13rpx 0rpx 0rpx;
}
.content {
height: 145rpx;
padding: 0 13rpx 13.33rpx;
display: flex;
flex-direction: column;
justify-content: space-between;
}
.title {
font-family: PingFang SC;
font-weight: bold;
font-size: 29rpx;
color: #000000;
width: 291rpx;
}
.bottom {
display: flex;
justify-content: space-between;
align-items: center;
}
.price {
font-size: 34.67rpx;
font-family: PingFangSC;
font-weight: bold;
color: #D60000;
}
.price::before {
content: '¥';
font-size: 24rpx;
}
.price::after {
content: '起';
font-size: 24rpx;
color: #999999;
font-weight: 500;
}
.buy {
width: 140rpx;
height: 42rpx;
background: #71B580;
border-radius: 21rpx;
text-align: center;
line-height: 42rpx;
font-family: PingFang SC;
font-weight: 500;
font-size: 27rpx;
color: #FFFFFF;
}
</style>

2
unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map

File diff suppressed because one or more lines are too long

2
unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map

File diff suppressed because one or more lines are too long

6
unpackage/dist/dev/mp-weixin/app.json

@ -9,7 +9,11 @@
{ {
"root": "subPackages", "root": "subPackages",
"pages": [ "pages": [
"webPage/webPage" "webPage/webPage",
"food/foodList",
"food/foodDetail",
"techan/techanList",
"line/lineList"
] ]
} }
], ],

2
unpackage/dist/dev/mp-weixin/common/runtime.js

@ -1,5 +1,5 @@
!function(){try{var a=Function("return this")();a&&!a.Math&&(Object.assign(a,{isFinite:isFinite,Array:Array,Date:Date,Error:Error,Function:Function,Math:Math,Object:Object,RegExp:RegExp,String:String,TypeError:TypeError,setTimeout:setTimeout,clearTimeout:clearTimeout,setInterval:setInterval,clearInterval:clearInterval}),"undefined"!=typeof Reflect&&(a.Reflect=Reflect))}catch(a){}}(); !function(){try{var a=Function("return this")();a&&!a.Math&&(Object.assign(a,{isFinite:isFinite,Array:Array,Date:Date,Error:Error,Function:Function,Math:Math,Object:Object,RegExp:RegExp,String:String,TypeError:TypeError,setTimeout:setTimeout,clearTimeout:clearTimeout,setInterval:setInterval,clearInterval:clearInterval}),"undefined"!=typeof Reflect&&(a.Reflect=Reflect))}catch(a){}}();
(function(e){function t(t){for(var n,o,i=t[0],l=t[1],c=t[2],s=0,f=[];s<i.length;s++)o=i[s],Object.prototype.hasOwnProperty.call(a,o)&&a[o]&&f.push(a[o][0]),a[o]=0;for(n in l)Object.prototype.hasOwnProperty.call(l,n)&&(e[n]=l[n]);p&&p(t);while(f.length)f.shift()();return u.push.apply(u,c||[]),r()}function r(){for(var e,t=0;t<u.length;t++){for(var r=u[t],n=!0,o=1;o<r.length;o++){var i=r[o];0!==a[i]&&(n=!1)}n&&(u.splice(t--,1),e=l(l.s=r[0]))}return e}var n={},o={"common/runtime":0},a={"common/runtime":0},u=[];function i(e){return l.p+""+e+".js"}function l(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,l),r.l=!0,r.exports}l.e=function(e){var t=[],r={"compoents/waterList":1};o[e]?t.push(o[e]):0!==o[e]&&r[e]&&t.push(o[e]=new Promise((function(t,r){for(var n=({"compoents/waterList":"compoents/waterList"}[e]||e)+".wxss",a=l.p+n,u=document.getElementsByTagName("link"),i=0;i<u.length;i++){var c=u[i],s=c.getAttribute("data-href")||c.getAttribute("href");if("stylesheet"===c.rel&&(s===n||s===a))return t()}var f=document.getElementsByTagName("style");for(i=0;i<f.length;i++){c=f[i],s=c.getAttribute("data-href");if(s===n||s===a)return t()}var p=document.createElement("link");p.rel="stylesheet",p.type="text/css",p.onload=t,p.onerror=function(t){var n=t&&t.target&&t.target.src||a,u=new Error("Loading CSS chunk "+e+" failed.\n("+n+")");u.code="CSS_CHUNK_LOAD_FAILED",u.request=n,delete o[e],p.parentNode.removeChild(p),r(u)},p.href=a;var d=document.getElementsByTagName("head")[0];d.appendChild(p)})).then((function(){o[e]=0})));var n=a[e];if(0!==n)if(n)t.push(n[2]);else{var u=new Promise((function(t,r){n=a[e]=[t,r]}));t.push(n[2]=u);var c,s=document.createElement("script");s.charset="utf-8",s.timeout=120,l.nc&&s.setAttribute("nonce",l.nc),s.src=i(e);var f=new Error;c=function(t){s.onerror=s.onload=null,clearTimeout(p);var r=a[e];if(0!==r){if(r){var n=t&&("load"===t.type?"missing":t.type),o=t&&t.target&&t.target.src;f.message="Loading chunk "+e+" failed.\n("+n+": "+o+")",f.name="ChunkLoadError",f.type=n,f.request=o,r[1](f)}a[e]=void 0}};var p=setTimeout((function(){c({type:"timeout",target:s})}),12e4);s.onerror=s.onload=c,document.head.appendChild(s)}return Promise.all(t)},l.m=e,l.c=n,l.d=function(e,t,r){l.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},l.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,t){if(1&t&&(e=l(e)),8&t)return e;if(4&t&&"object"===typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(l.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)l.d(r,n,function(t){return e[t]}.bind(null,n));return r},l.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return l.d(t,"a",t),t},l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},l.p="/",l.oe=function(e){throw console.error(e),e};var c=global["webpackJsonp"]=global["webpackJsonp"]||[],s=c.push.bind(c);c.push=t,c=c.slice();for(var f=0;f<c.length;f++)t(c[f]);var p=s;r()})([]); (function(e){function n(n){for(var o,r,a=n[0],s=n[1],p=n[2],c=0,l=[];c<a.length;c++)r=a[c],Object.prototype.hasOwnProperty.call(u,r)&&u[r]&&l.push(u[r][0]),u[r]=0;for(o in s)Object.prototype.hasOwnProperty.call(s,o)&&(e[o]=s[o]);m&&m(n);while(l.length)l.shift()();return i.push.apply(i,p||[]),t()}function t(){for(var e,n=0;n<i.length;n++){for(var t=i[n],o=!0,r=1;r<t.length;r++){var a=t[r];0!==u[a]&&(o=!1)}o&&(i.splice(n--,1),e=s(s.s=t[0]))}return e}var o={},r={"common/runtime":0},u={"common/runtime":0},i=[];function a(e){return s.p+""+e+".js"}function s(n){if(o[n])return o[n].exports;var t=o[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,s),t.l=!0,t.exports}s.e=function(e){var n=[],t={"compoents/waterList":1,"uni_modules/uni-popup/components/uni-popup/uni-popup":1,"uni_modules/uni-rate/components/uni-rate/uni-rate":1,"uni_modules/uni-icons/components/uni-icons/uni-icons":1};r[e]?n.push(r[e]):0!==r[e]&&t[e]&&n.push(r[e]=new Promise((function(n,t){for(var o=({"compoents/waterList":"compoents/waterList","uni_modules/uni-popup/components/uni-popup/uni-popup":"uni_modules/uni-popup/components/uni-popup/uni-popup","uni_modules/uni-rate/components/uni-rate/uni-rate":"uni_modules/uni-rate/components/uni-rate/uni-rate","uni_modules/uni-transition/components/uni-transition/uni-transition":"uni_modules/uni-transition/components/uni-transition/uni-transition","uni_modules/uni-icons/components/uni-icons/uni-icons":"uni_modules/uni-icons/components/uni-icons/uni-icons"}[e]||e)+".wxss",u=s.p+o,i=document.getElementsByTagName("link"),a=0;a<i.length;a++){var p=i[a],c=p.getAttribute("data-href")||p.getAttribute("href");if("stylesheet"===p.rel&&(c===o||c===u))return n()}var l=document.getElementsByTagName("style");for(a=0;a<l.length;a++){p=l[a],c=p.getAttribute("data-href");if(c===o||c===u)return n()}var m=document.createElement("link");m.rel="stylesheet",m.type="text/css",m.onload=n,m.onerror=function(n){var o=n&&n.target&&n.target.src||u,i=new Error("Loading CSS chunk "+e+" failed.\n("+o+")");i.code="CSS_CHUNK_LOAD_FAILED",i.request=o,delete r[e],m.parentNode.removeChild(m),t(i)},m.href=u;var f=document.getElementsByTagName("head")[0];f.appendChild(m)})).then((function(){r[e]=0})));var o=u[e];if(0!==o)if(o)n.push(o[2]);else{var i=new Promise((function(n,t){o=u[e]=[n,t]}));n.push(o[2]=i);var p,c=document.createElement("script");c.charset="utf-8",c.timeout=120,s.nc&&c.setAttribute("nonce",s.nc),c.src=a(e);var l=new Error;p=function(n){c.onerror=c.onload=null,clearTimeout(m);var t=u[e];if(0!==t){if(t){var o=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;l.message="Loading chunk "+e+" failed.\n("+o+": "+r+")",l.name="ChunkLoadError",l.type=o,l.request=r,t[1](l)}u[e]=void 0}};var m=setTimeout((function(){p({type:"timeout",target:c})}),12e4);c.onerror=c.onload=p,document.head.appendChild(c)}return Promise.all(n)},s.m=e,s.c=o,s.d=function(e,n,t){s.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:t})},s.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.t=function(e,n){if(1&n&&(e=s(e)),8&n)return e;if(4&n&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(s.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var o in e)s.d(t,o,function(n){return e[n]}.bind(null,o));return t},s.n=function(e){var n=e&&e.__esModule?function(){return e["default"]}:function(){return e};return s.d(n,"a",n),n},s.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},s.p="/",s.oe=function(e){throw console.error(e),e};var p=global["webpackJsonp"]=global["webpackJsonp"]||[],c=p.push.bind(p);p.push=n,p=p.slice();for(var l=0;l<p.length;l++)n(p[l]);var m=c;t()})([]);
//# sourceMappingURL=../../.sourcemap/mp-weixin/common/runtime.js.map //# sourceMappingURL=../../.sourcemap/mp-weixin/common/runtime.js.map

8
unpackage/dist/dev/mp-weixin/common/vendor.js

File diff suppressed because one or more lines are too long

19
unpackage/dist/dev/mp-weixin/project.config.json

@ -21,7 +21,24 @@
"libVersion": "3.5.4", "libVersion": "3.5.4",
"appid": "touristappid", "appid": "touristappid",
"projectname": "yandu_WeChat", "projectname": "yandu_WeChat",
"condition": {}, "condition": {
"search": {
"current": -1,
"list": []
},
"conversation": {
"current": -1,
"list": []
},
"game": {
"current": -1,
"list": []
},
"miniprogram": {
"current": -1,
"list": []
}
},
"editorSetting": { "editorSetting": {
"tabIndent": "auto", "tabIndent": "auto",
"tabSize": 2 "tabSize": 2

3
unpackage/dist/dev/mp-weixin/project.private.config.json

@ -3,5 +3,6 @@
"projectname": "yandu_WeChat", "projectname": "yandu_WeChat",
"setting": { "setting": {
"compileHotReLoad": true "compileHotReLoad": true
} },
"condition": {}
} }
Loading…
Cancel
Save