Browse Source

案例及预约相关接口

huangzhe 3 years ago
parent
commit
b26b47464a

+ 1 - 1
src/components/basic-component/app-goods/app-goods.vue

xqd
@@ -13,7 +13,7 @@
 			</view>
 			<!-- 商品图 -->
 			<view @click="toDetail" v-else>
-				<app-image :borderRadius="coverRadius" :img-src="goods.cover_pic" :width="listStyle == -1 ? coverHeight : '100%'" :height="coverHeight" :mode="fill === 1 ? 'aspectFill' : 'aspectFit'"></app-image>
+				<app-image :borderRadius="coverRadius" :img-src="goods.cover_pic?goods.cover_pic:goods.picUrl" :width="listStyle == -1 ? coverHeight : '100%'" :height="coverHeight" :mode="fill === 1 ? 'aspectFill' : 'aspectFit'"></app-image>
 			</view>
 			<view @click="toDetail" :style="coverStyle" class="out-dialog goods-cover" v-if="(goods.goods_num == 0 || goods.goods_stock == 0) && appSetting.is_show_stock == '1'">
 				<image :style="coverStyle" :src="appSetting.is_use_stock == '1' ? appImg.plugins_out : appSetting.sell_out_pic"></image>

+ 3 - 1
src/components/page-component/app-image-ad/app-image-ad.vue

xqd
@@ -15,7 +15,9 @@
 					backgroundImage: 'url(' + item.pic_url + ')',
 					height: item.height,
 			 	}"
-			></view>
+			>
+				<image :src="item.pic_url" mode=""></image>
+			</view>
 			</app-jump-button>
 		</view>
 		<view class="app-three-hundred-and-sixty" v-if="imageStyle === 1 || imageStyle === 2 || imageStyle === 3">

+ 3 - 2
src/components/page-component/index/app-diy-list.vue

xqd xqd
@@ -78,7 +78,8 @@ export default {
     },
     data() {
         return {
-            goodsList: []
+            goodsList: [],
+			tempList:[]
         }
     },
     computed: {
@@ -88,7 +89,7 @@ export default {
           // 获取商品数组
         copyList() {
             let list = this.list && this.list.length > 0 ? this.list : this.temp.data.list;
-			console.log('商品列表',this.list)
+			console.log('商品列表',list)
             return list;
         },
     },

+ 8 - 0
src/core/apiUrl.js

xqd xqd
@@ -10,7 +10,14 @@ const apiUrl = {
 		
 		estate_list:'plugin/sale/api/estate/list'
 	},
+	example:{
+		style_list:'plugin/example/api/index/style-list',
+		house_list:'plugin/example/api/index/house-list',
+		list:'plugin/example/api/index/example-list',
+		detail:'plugin/example/api/index/example-detail',
+	},
 	//
+	
     index: {
         config: 'api/index/config',
         newIndex: 'api/index/new-index',
@@ -74,6 +81,7 @@ const apiUrl = {
 		evaluate_list:'api/order-comments/list',
 		del_evaluate:'api/order-comments/del',
 		suggestion:'api/user/submit-suggestion',
+		visit_house:'api/user/visit-house'
     },
     article: {
         list: 'api/default/article-list',

+ 10 - 1
src/pages.json

xqd
@@ -114,7 +114,16 @@
 					"enablePullDownRefresh": false
 				}
 
-			}]
+			}    ,{
+                    "path" : "caseList",
+                    "style" :                                                                                    
+                {
+                    "navigationBarTitleText": "",
+                    "enablePullDownRefresh": false
+                }
+                
+                }
+            ]
 		},
 		{
 			"root": "pages/sale",

+ 96 - 26
src/pages/case/appointment/appointment-form.vue

xqd xqd xqd xqd xqd xqd
@@ -2,13 +2,25 @@
 	<view>
 		<app-nav-bar v-if="true" :fixed="true" :title="'预约'" color="#000" background-color="#eae2dd"></app-nav-bar>
 		<view class="main-between-y builInfo">
-			<view class="main-between">
+			<view class="main-between cross-center" style="height: 72rpx;" @click="$jump({open_type:'navigate',url:'/pages/sale/properties/addProperties'})">
 				<view class="hjx-ts-30 hjx-tw-600 hjx-tc-222">楼盘名称</view>
-				<view class="hjx-ts-30 hjx-tc-222">龙湖·揽镜</view>
+				<view class="hjx-ts-30 hjx-tc-222">
+					<view class="cross-center hjx-ts-28 t-omit" style="width: 510rpx;text-align: right;"
+						:class="{'hjx-tc-999':estate_name==''?true:false,'hjx-tc-000':estate_name!=''?true:false}">{{estate_name===''?'请选择':estate_name}}
+						<image style="width: 12.8rpx;height: 22.8rpx;margin-left: 20rpx;"
+							src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode=""></image>
+					</view>
+				</view>
 			</view>
-			<view class="main-between">
+			<view class="main-between cross-center" style="height: 72rpx;" @click="$jump({open_type:'navigate',url:'/pages/sale/properties/addProperties'})">
 				<view class="hjx-ts-30 hjx-tw-600 hjx-tc-222">楼盘地址</view>
-				<view class="hjx-ts-30 hjx-tc-222">双流区东升街道233号</view>
+				<view class="hjx-ts-30 hjx-tc-222">
+					<view class="cross-center hjx-ts-28 t-omit" style="width: 510rpx;text-align: right;"
+						:class="{'hjx-tc-999':estate_address==''?true:false,'hjx-tc-000':estate_address!=''?true:false}">{{estate_address===''?'请选择':estate_address}}
+						<image style="width: 12.8rpx;height: 22.8rpx;margin-left: 20rpx;"
+							src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode=""></image>
+					</view>
+				</view>
 			</view>
 		</view>
 		<view class="form_box">
@@ -17,22 +29,32 @@
 			<view class="item main-between cross-center">
 				<view class="hjx-ts-28 hjx-tw-600 hjx-tc-000">姓名</view>
 				<view>
-						<view class="cross-center hjx-ts-28 hjx-tc-999">请选择<image style="width: 12.8rpx;height: 22.8rpx;margin-left: 20rpx;" src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode=""></image></view>
-					
+					<view class="cross-center hjx-ts-28 ">
+						<input type="text" v-model="username" style="text-align:right;color: #000000;" placeholder="请输入"
+							placeholder-style="text-align:right" placeholder-class="hjx-tc-999" />
+					</view>
+
 				</view>
 			</view>
 			<view class="item main-between cross-center">
 				<view class="hjx-ts-28 hjx-tw-600 hjx-tc-000">电话</view>
 				<view>
-						<view class="cross-center hjx-ts-28 hjx-tc-999">请选择<image style="width: 12.8rpx;height: 22.8rpx;margin-left: 20rpx;" src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode=""></image></view>
-					
+					<view class="cross-center hjx-ts-28 ">
+						<input type="number" v-model="mobile" style="text-align:right;color: #000000;" placeholder="请输入"
+							placeholder-style="text-align:right" placeholder-class="hjx-tc-999" />
+					</view>
+
 				</view>
 			</view>
 			<view class="item main-between cross-center">
 				<view class="hjx-ts-28 hjx-tw-600 hjx-tc-000">看房日期</view>
 				<view>
 					<picker mode="date" :value="date" :start="startDate" :end="endDate" @change="bindDateChange">
-						<view class="cross-center hjx-ts-28 hjx-tc-999">{{date}}<image style="width: 12.8rpx;height: 22.8rpx;margin-left: 20rpx;" src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode=""></image></view>
+						<view class="cross-center hjx-ts-28"
+							:class="{'hjx-tc-999':date=='请选择'?true:false,'hjx-tc-000':date!='请选择'?true:false}">{{date}}
+							<image style="width: 12.8rpx;height: 22.8rpx;margin-left: 20rpx;"
+								src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode=""></image>
+						</view>
 					</picker>
 				</view>
 			</view>
@@ -40,7 +62,11 @@
 				<view class="hjx-ts-28 hjx-tw-600 hjx-tc-000">看房时间</view>
 				<view>
 					<picker mode="time" :value="time" start="09:01" end="21:01" @change="bindTimeChange">
-						<view class="cross-center hjx-ts-28 hjx-tc-999">{{time}}<image style="width: 12.8rpx;height: 22.8rpx;margin-left: 20rpx;" src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode=""></image></view>
+						<view class="cross-center hjx-ts-28"
+							:class="{'hjx-tc-999':time=='请选择'?true:false,'hjx-tc-000':time!='请选择'?true:false}">{{time}}
+							<image style="width: 12.8rpx;height: 22.8rpx;margin-left: 20rpx;"
+								src="https://t17.9026.com/web/statics/image/index/arrow-right-gray.png" mode=""></image>
+						</view>
 					</picker>
 				</view>
 			</view>
@@ -58,33 +84,54 @@
 			AppNavBar,
 		},
 		computed: {
-		        startDate() {
-		            return this.getDate('start');
-		        },
-		        endDate() {
-		            return this.getDate('end');
-		        }
-		    },
+			startDate() {
+				return this.getDate('start');
+			},
+			endDate() {
+				return this.getDate('end');
+			}
+		},
 		data() {
 			return {
-				time:'请选择',
-				date:'请选择'
+				estate_id:'',
+				estate_name:'',
+				estate_address:'',
+				
+				username: '',
+				mobile: '',
+				time: '请选择',
+				date: '请选择'
 			};
 		},
-		methods:{
+		onShow() {
+			var pages = getCurrentPages();
+			var currPage = pages[pages.length - 1]; //当前页面
+		
+			'estateInfo' in currPage.$vm ? this.estate_name = currPage.$vm.estateInfo.name : ''
+			'estateInfo' in currPage.$vm ? this.estate_id = currPage.$vm.estateInfo.id : ''
+			// 'estateInfo' in currPage.$vm ? this.multiIndex = currPage.$vm.estateInfo.multiIndex : ''
+			if('estateInfo' in currPage.$vm){
+				let address=currPage.$vm.estateInfo.address.split(' ').filter((s)=>{
+					return s && s.trim()
+				})
+				this.estate_address=address[2]+address[3]
+			}''
+			
+			
+		},
+		methods: {
 			bindTimeChange(e) {
-			            this.time = e.target.value
-			        },
+				this.time = e.target.value
+			},
 			bindDateChange(e) {
-				console.log(e)
-			            this.date = e.target.value
+				this.date = e.target.value
 			},
 			getDate(type) {
 				const date = new Date();
 				let year = date.getFullYear();
 				let month = date.getMonth() + 1;
 				let day = date.getDate();
-	
+
 				if (type === 'start') {
 					year = year - 60;
 				} else if (type === 'end') {
@@ -93,6 +140,29 @@
 				month = month > 9 ? month : '0' + month;
 				day = day > 9 ? day : '0' + day;
 				return `${year}-${month}-${day}`;
+			},
+			goAppointment() {
+				this.$request({
+					url: this.$api.user.visit_house,
+					data: {
+						estate_id: this.estate_id,
+						username: this.username,
+						phone: this.mobile,
+						visit_date: this.date + ' ' + this.time,
+					},
+					method: 'post'
+				}).then(res => {
+					if (res.code === 0) {
+						uni.showToast({
+							title: '预约成功'
+						})
+					} else {
+						uni.showToast({
+							title: res.msg,
+							icon: 'none'
+						})
+					}
+				})
 			}
 		}
 	}
@@ -101,7 +171,7 @@
 <style lang="scss" scoped>
 	.builInfo {
 		padding: 30rpx 36rpx;
-		height: 150rpx;
+		height: auto;
 	}
 
 	.form_box {

+ 242 - 71
src/pages/case/caseDetails.vue

xqd xqd xqd xqd
@@ -1,102 +1,258 @@
 <template>
-	<view class="page">
-		<app-nav-bar v-if="true" :fixed="true" :background-color="''" :xStyle="1" :hasMallSetting="2"
-			:hasHeight="false"></app-nav-bar>
-		<view class="swiper_cent tpbg">
-			<swiper style="height: 534rpx;" :indicator-dots="false" :autoplay="false" :interval="3000" :duration="1000"
-				@change="swiperChange">
-				<swiper-item v-for="(item,index) in 3" :key="index" @click="gopage">
-					<view style="width: 100%;height: 534rpx;position: relative;">
-						<image src="https://t17.9026.com/web/statics/image/index/14.png" style="width: 100%;height: 534rpx;position: absolute;top: 0;left: 0;" mode=""></image>
-					</view>
-				</swiper-item>
-			</swiper>
-			<view class="swiper_zhishi">
-				<view :class="swiperKey===i?'view_active':''" v-for="(item1,i) in 3" :key="i"></view>
-			</view>
-		</view>
-		<view class="center">
-			<view class="summary">
-				<view class="main-between title">
-					<view class="t-omit-two hxj-title text">北欧现代质感卧室,简洁清爽,卧室拥有大面积采光,让卧室明亮起来。</view>
-					<image src="https://t17.9026.com/web/statics/image/index/share.png" style="width: 33rpx;height: 33rpx;margin-top: 5rpx;"
-						mode=""></image>
-				</view>
-				<view class="main-between gg">
-					<view class="main-between-y cross-center item">
-						<view class="cross-center hjx-tc-666 hjx-ts-24">
-							<image src="https://t17.9026.com/web/statics/image/index/hx.png" mode=""></image>户型
+	<app-layout>
+		<view class="page">
+			<app-nav-bar v-if="true" :fixed="true" :background-color="''" :xStyle="1" :hasMallSetting="2"
+				:hasHeight="false"></app-nav-bar>
+			<view class="swiper_cent tpbg">
+				<swiper style="height: 534rpx;" :indicator-dots="false" :autoplay="false" :interval="3000"
+					:duration="1000" @change="swiperChange">
+					<swiper-item v-for="(item,index) in exampleDetail.banner_imgs" :key="index" @click="gopage">
+						<view style="width: 100%;height: 534rpx;position: relative;">
+							<image :src="item.banner_imgs"
+								style="width: 100%;height: 534rpx;position: absolute;top: 0;left: 0;" mode=""></image>
 						</view>
-						<view class="hjx-tc-222 hjx-ts-24 hjx-tw-600">三室一厅两卫</view>
+					</swiper-item>
+				</swiper>
+				<view class="swiper_zhishi">
+					<view :class="swiperKey===i?'view_active':''" v-for="(item1,i) in 3" :key="i"></view>
+				</view>
+			</view>
+			<view class="center">
+				<view class="topradus"></view>
+				<view class="summary">
+					<view class="main-between title">
+						<view class="t-omit-two hxj-title text t-omit-two">{{exampleDetail.title}}</view>
+						<app-jump-button form arrangement="topCenter" open_type="share" >
+						   <image src="https://t17.9026.com/web/statics/image/index/share.png"
+						   	style="width: 33rpx;height: 33rpx;margin-top: 5rpx;" mode=""></image>
+						</app-jump-button>
 					</view>
-					<view class="main-between-y cross-center item">
-						<view class="cross-center hjx-tc-666 hjx-ts-24">
-							<image src="https://t17.9026.com/web/statics/image/index/mj.png" mode=""></image>面积
+					<view class="main-between gg">
+						<view class="main-between-y cross-center item">
+							<view class="cross-center hjx-tc-666 hjx-ts-24">
+								<image src="https://t17.9026.com/web/statics/image/index/hx.png" mode=""></image>户型
+							</view>
+							<view class="hjx-tc-222 hjx-ts-24 hjx-tw-600">{{exampleDetail.exampleHouse.name}}</view>
 						</view>
-						<view class="hjx-tc-222 hjx-ts-24 hjx-tw-600">40m²</view>
-					</view>
-					<view class="main-between-y cross-center item">
-						<view class="cross-center hjx-tc-666 hjx-ts-24">
-							<image src="https://t17.9026.com/web/statics/image/index/dq.png" mode=""></image>地区
+						<view class="main-between-y cross-center item">
+							<view class="cross-center hjx-tc-666 hjx-ts-24">
+								<image src="https://t17.9026.com/web/statics/image/index/mj.png" mode=""></image>面积
+							</view>
+							<view class="hjx-tc-222 hjx-ts-24 hjx-tw-600">{{exampleDetail.square}}m²</view>
 						</view>
-						<view class="hjx-tc-222 hjx-ts-24 hjx-tw-600">成都</view>
-					</view>
-					<view class="main-between-y cross-center item">
-						<view class="cross-center hjx-tc-666 hjx-ts-24">
-							<image src="https://t17.9026.com/web/statics/image/index/fg.png" mode=""></image>风格
+						<view class="main-between-y cross-center item">
+							<view class="cross-center hjx-tc-666 hjx-ts-24">
+								<image src="https://t17.9026.com/web/statics/image/index/dq.png" mode=""></image>地区
+							</view>
+							<view class="hjx-tc-222 hjx-ts-24 hjx-tw-600">{{exampleDetail.address}}</view>
+						</view>
+						<view class="main-between-y cross-center item">
+							<view class="cross-center hjx-tc-666 hjx-ts-24">
+								<image src="https://t17.9026.com/web/statics/image/index/fg.png" mode=""></image>风格
+							</view>
+							<view class="hjx-tc-222 hjx-ts-24 hjx-tw-600">{{exampleDetail.exampleStyle.name}}</view>
 						</view>
-						<view class="hjx-tc-222 hjx-ts-24 hjx-tw-600">北欧</view>
 					</view>
 				</view>
-			</view>
-			<view class="details">
-				<view class="hjx-ts-34 hjx-tc-222 hjx-tw-600">详细描述</view>
-				<view class="content">
-					<view class="content-text">
-						四季轮换,家已经奏响秋日之歌。让卧室从清凉过渡到温暖,在人居荟只需要几步,干净舒适的家居、收纳、陈设与柔美的色调相融合,打造魅力非凡的惬意居所。
-					</view>
-					<view class="content-image">
-						<image src="https://t17.9026.com/web/statics/image/index/15.png" mode=""></image>
-					</view>
-					<view class="main-between content-goods">
-						<view class="main-left desc">
-							<image class="goods-img" src="https://t17.9026.com/web/statics/image/user-center/1.png" mode=""></image>
-							<view>
-								<view class="title">兴城人居ins居家占位套餐</view>
-								<view class="col">
-									高级棕
+				<view class="details">
+					<view class="hjx-ts-34 hjx-tc-222 hjx-tw-600" style="padding: 0 36rpx;">详细描述</view>
+					<view class="content">
+						<!-- <view class="content-text">
+							四季轮换,家已经奏响秋日之歌。让卧室从清凉过渡到温暖,在人居荟只需要几步,干净舒适的家居、收纳、陈设与柔美的色调相融合,打造魅力非凡的惬意居所。
+						</view>
+						<view class="content-image">
+							<image src="https://t17.9026.com/web/statics/image/index/15.png" mode=""></image>
+						</view>
+						<view class="main-between content-goods">
+							<view class="main-left desc">
+								<image class="goods-img" src="https://t17.9026.com/web/statics/image/user-center/1.png"
+									mode=""></image>
+								<view>
+									<view class="title">兴城人居ins居家占位套餐</view>
+									<view class="col">
+										高级棕
+									</view>
 								</view>
 							</view>
-						</view>
-						<view class="priceBox main-center-y">
-							<view class="hxj-price20 hjx-tc-222 hjx-tw-600"><text>¥</text>2466.00</view>
-							<view class="hxj-price20 hjx-tc-999 hjx-text-decoration-line-through"><text>¥</text>3000.00
+							<view class="priceBox main-center-y">
+								<view class="hxj-price20 hjx-tc-222 hjx-tw-600"><text>¥</text>2466.00</view>
+								<view class="hxj-price20 hjx-tc-999 hjx-text-decoration-line-through">
+									<text>¥</text>3000.00
+								</view>
 							</view>
+						</view> -->
+
+						<view class="detail-diy">
+						    <block v-for="(temp, index) in exampleDetail.detail" :key="index">
+						        <template v-if="temp.id === 'mch-goods'">
+						            <view :style="[
+						                 {'background-color':`${temp.data.backgroundColor}`,
+						                'padding': `${temp.data.c_padding_top}rpx ${temp.data.c_padding_lr}rpx ${temp.data.c_padding_bottom}rpx`,
+						                'background-image': temp.data.backgroundPicUrl ? `url(${temp.data.backgroundPicUrl})` : `none`,
+						                'background-size':`${temp.data.backgroundWidth + '% ' + temp.data.backgroundHeight + '%'}`,
+						                'background-position':`${transLabelBackgroundPosition(temp.data.position)}`,
+						                'background-repeat':`${transLabelBackgroundRepeat(temp.data.mode)}`}]"
+						            >
+						                <app-diy-list :temp="temp" :theme="getTheme"></app-diy-list>
+						            </view>
+						        </template>
+						        <template v-else-if="temp.id === 'rubik'">
+						            <view style="position: relative">
+						                <app-image-ad
+						                    v-bind:image-style="temp.data.style"
+						                    v-bind:list="temp.data.list"
+						                    v-bind:height="temp.data.height"
+						                ></app-image-ad>
+						                <block v-for="(hotspot, hotspot_index) in temp.data.hotspot" v-bind:key="hotspot_index">
+						                    <app-hotspot v-bind:hotspot="rubikHotspot(hotspot)"></app-hotspot>
+						                </block>
+						            </view>
+						        </template>
+						        <template v-else-if="temp.id === 'video'">
+						            <app-video
+						                v-bind:pic-url="temp.data.pic_url"
+						                v-bind:url="temp.data.url"
+						                v-bind:has-auto="temp.data.hasAuto"
+						                v-bind:has-cycle="temp.data.hasCycle"
+						                v-bind:bg-padding="temp.data.bg_padding"
+						                v-bind:c-border-bottom="temp.data.c_border_bottom"
+						                v-bind:c-border-top="temp.data.c_border_top"
+						                v-bind:c-padding-top="temp.data.c_padding_top"
+						                v-bind:c-padding-lr="temp.data.c_padding_lr"
+						                v-bind:c-padding-bottom="temp.data.c_padding_bottom"
+						            ></app-video>
+						        </template>
+						        <template v-else-if="temp.id === 'image-text'">
+						            <view style="padding: 1rpx 24rpx" :style="{backgroundColor: temp.data.bg || 'inherit'}">
+						                <app-rich :image-prop="imageProp" v-bind:content='temp.data.content'></app-rich>
+						            </view>
+						        </template>
+						    </block>
 						</view>
+						<view style="height: 111rpx"></view>
 					</view>
 				</view>
 			</view>
 		</view>
-	</view>
+	</app-layout>
 </template>
 
 <script>
+	// import mchShare from "./mch-share";
+	// import appDiyGoodsList from "./components/app-diy-goods-list.vue";
+	import {mapGetters, mapState} from "vuex";
+	import appRich from "@/components/basic-component/app-rich/parse";
+	import appVideo from "@/components/page-component/app-video/app-video";
+	import appImageAd from "@/components/page-component/app-image-ad/app-image-ad";
+	import appHotspot from "@/components/basic-component/app-hotspot/app-hotspot";
+	import appDiyList from "@/components/page-component/index/app-diy-list";
+	
 	import appNavBar from '@/components/page-component/index/app-nav-bar.vue';
 	export default {
 		components: {
-			appNavBar
+			appNavBar,
+			appDiyList,
+			// mchShare,
+			// appDiyGoodsList,
+			appRich,
+			appVideo,
+			appImageAd,
+			appHotspot,
+		},
+		computed: {
+		    // ...mapState({
+		    //     userInfo: state => state.user.info,
+		    // }),
+		    ...mapGetters('mallConfig', {
+		        getTheme: 'getTheme',
+		    }),
 		},
 		data() {
 			return {
-swiperKey:0
+				swiperKey: 0,
+
+				exampleDetail: null,
 			};
 		},
+		onLoad(option) {
+			this.$showLoading()
+			this.$request({
+				url: this.$api.example.detail,
+				data: {
+					example_id: option.id
+				},
+				method: 'post'
+			}).then(res => {
+				if (res.code === 0) {
+					this.exampleDetail = res.data
+					this.exampleDetail.banner_imgs = JSON.parse(this.exampleDetail.banner_imgs)
+					this.exampleDetail.detail = JSON.parse(this.exampleDetail.detail)
+				}
+				this.$hideLoading()
+			})
+		},
 		methods: {
-			swiperChange(e){
+			swiperChange(e) {
 				console.log(e.detail.current)
 				this.swiperKey = e.detail.current
 			},
-		}
+			transLabelBackgroundPosition(val) {
+			    val = Number(val);
+			    switch (val) {
+			        case 1:
+			            return 'left top';
+			        case 2:
+			            return 'center top';
+			        case 3:
+			            return 'right top';
+			        case 4:
+			            return 'left center';
+			        case 5:
+			            return 'center center';
+			        case 6:
+			            return 'right center';
+			        case 7:
+			            return 'left bottom';
+			        case 8:
+			            return 'center bottom';
+			        case 9:
+			            return 'right bottom';
+			        default:
+			            return 'center';
+			    }
+			},
+			transLabelBackgroundRepeat(val) {
+			    val = Number(val);
+			    switch (val) {
+			        case 1:
+			            return 'no-repeat';
+			        case 2:
+			            return 'repeat-x';
+			        case 3:
+			            return 'repeat-y';
+			        case 4:
+			            return 'repeat';
+			        default:
+			            return 'no-repeat';
+			    }
+			},
+			rubikHotspot(hotspot) {
+			    if (hotspot && hotspot.link) {
+			        hotspot.link.url = hotspot.link.value;
+			        hotspot.link.openType = hotspot.link.open_type;
+			    }
+			    return hotspot;
+			},
+		},
+		 onShareAppMessage(res) {
+		    if (res.from === 'button') {// 来自页面内分享按钮
+		      console.log(res.target)
+		    }
+		    return {
+		      title: this.exampleDetail.app_share_title,
+		      path: '/pages/case/caseDetails?id='+this.exampleDetail.id
+		    }
+		  }
 	}
 </script>
 
@@ -121,10 +277,22 @@ swiperKey:0
 		background: #F8F8F8;
 		border-radius: 20rpx;
 		overflow: hidden;
-		padding: 36rpx;
+		padding: 36rpx 0;
 		margin-top: -20rpx;
+		position: relative;
+
+		.topradus {
+			width: 100%;
+			height: 20rpx;
+			background-color: #fff;
+			position: absolute;
+			top: 0;
+			left: 0;
+			z-index: 10;
+		}
+
 		.summary {
-			padding-bottom: 30rpx;
+			padding: 0 36rpx 30rpx;
 			background-color: #F8F8F8;
 
 			.title {
@@ -211,8 +379,10 @@ swiperKey:0
 			}
 		}
 	}
+
 	.swiper_cent {
 		position: relative;
+
 		.swiper_zhishi {
 			display: flex;
 			align-items: center;
@@ -220,12 +390,13 @@ swiperKey:0
 			justify-content: center;
 			position: absolute;
 			bottom: 39rpx;
-	
+
 			view {
 				width: 81rpx;
 				height: 4rpx;
 				background: #c8c8c8;
 			}
+
 			.view_active {
 				background: #f4f4f4;
 			}

+ 142 - 0
src/pages/case/caseList.vue

xqd
@@ -0,0 +1,142 @@
+<template>
+	<app-layout>
+		<view class="popcase">
+			<view class="item" v-for="(item,index) in exampleList"
+				@tap="goPage(`/pages/case/caseDetails?id=${item.id}`)">
+				<image :src="item.cover_pic" mode=""></image>
+				<view class="main-between bt">
+					<view class="main-between-y">
+						<view class="title t-omit">{{item.title}}</view>
+						<!-- <view class="desc">{{item.exampleStyle.name}}·{{item.exampleHouse.name}}</view> -->
+					</view>
+					<!-- <view class="price20"><text class="rmb">¥</text>2466.00</view> -->
+				</view>
+			</view>
+			<appNoGoods v-if="exampleList.length===0" :title="'没有任何案例...'"></appNoGoods>
+		</view>
+	</app-layout>
+</template>
+
+<script>
+	import appNoGoods from '@/components/page-component/app-no-goods/app-no-goods.vue'
+	export default {
+		components: {
+			appNoGoods
+		},
+		data() {
+			return {
+				exampleList: [],
+				page: 1,
+
+			};
+		},
+		watch: {
+
+		},
+		computed: {
+
+		},
+		methods: {
+			getExampleList() {
+				this.$request({
+					url: this.$api.example.list,
+					data: {
+						style_id: this.style_id,
+						house_id: this.house_id,
+						is_chosen: 0,
+						page: this.page
+					},
+					method: 'post'
+				}).then(res => {
+					if (res.code === 0) {
+						this.exampleList = res.data.list
+					}
+				})
+			},
+			goPage(url) {
+				uni.navigateTo({
+					url: url
+				})
+			},
+		},
+		onLoad(option) {
+			this.style_id = option.style_id ? option.style_id : ''
+			this.house_id = option.house_id ? option.house_id : ''
+			uni.setNavigationBarTitle({
+				title: option.nav_title
+			});
+			this.getExampleList()
+		},
+		onReachBottom() {
+			this.page++
+			this.getExampleList()
+		}
+	};
+</script>
+
+<style lang="scss" scoped>
+	@import '../index/index.scss';
+
+	.tabs {
+		box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
+		background-color: #fff;
+		padding: 30rpx 36rpx 20rpx;
+		position: relative;
+		z-index: 10;
+
+		.item {
+			display: inline-block;
+			text-align: center;
+			font-size: 32rpx;
+			font-weight: bold;
+			color: #999999;
+			margin-right: 36rpx;
+		}
+
+		.active {
+			color: #222222;
+			position: relative;
+		}
+
+		.underline {
+			position: absolute;
+			bottom: 20rpx;
+			z-index: 100;
+		}
+	}
+
+	.popcase {
+		padding-top: 40rpx;
+
+		.item {
+			width: 678rpx;
+			height: auto;
+			background: #FFFFFF;
+			border-radius: 8rpx;
+			margin: 0 auto 30rpx;
+			overflow: hidden;
+
+			image {
+				width: 100%;
+				height: 340rpx;
+			}
+
+			.bt {
+				padding: 27rpx 24rpx 37rpx 33rpx;
+			}
+
+			.title {
+				width: 580rpx;
+				font-size: 32rpx;
+				font-weight: bold;
+				color: #222222;
+			}
+
+			.desc {
+				font-size: 22rpx;
+				font-weight: 500;
+				color: #A6824F;
+			}
+		}
+	}
+</style>

+ 65 - 17
src/pages/case/selectedCases.vue

xqd xqd xqd xqd xqd xqd xqd xqd
@@ -1,31 +1,31 @@
 <template>
-	<view>
+	<app-layout>
 		<view id="tabs-ewr">
 			<scroll-view class="main-left tabs" style="white-space: nowrap;" scroll-with-animation scroll-x :scroll-left="scrollLeft">
-				<block v-for="(item, index) in ['热门风格', '精选户型']" :key="index">
+				<block v-for="(item, index) in tabTitle" :key="index">
 					<view :class="{ item: true, active: activeIndex === index }" :id="'tab_' + index" @click="tabClick(index)">{{ item }}</view>
 				</block>
 				<!-- <view class="underline" :style="[tabBarStyle]"></view> -->
-			</scroll-view>
+			</scroll-view> 
 		</view>
-		<app-scroll-list :background="'#fff'"></app-scroll-list>
+		<app-scroll-list :background="'#fff'" :list="tabList"></app-scroll-list>
 		<view class="link">
 			<view class="title1">热门案例</view>
 			<image class="tyx" src="https://t17.9026.com/web/statics/image/index/tyx.png" mode=""></image>
-		</view>
+		</view> 
 		<view class="popcase">
-			<view class="item" v-for="(item,index) in 3" @tap="goPage">
-				<image src="https://t17.9026.com/web/statics/image/index/3.png" mode=""></image>
+			<view class="item" v-for="(item,index) in exampleList" @tap="goPage(`/pages/case/caseDetails?id=${item.id}`)">
+				<image :src="item.cover_pic" mode=""></image>
 				<view class="main-between bt">
 					<view class="main-between-y">
-						<view class="title">北欧质感现代风</view>
-						<view class="desc">九林居·3室1厅</view>
+						<view class="title t-omit">{{item.title}}</view>
+						<!-- <view class="desc">{{item.exampleStyle.name}}·{{item.exampleHouse.name}}</view> -->
 					</view>
-					<view class="price20"><text class="rmb">¥</text>2466.00</view>
+					<!-- <view class="price20"><text class="rmb">¥</text>2466.00</view> -->
 				</view>
 			</view>
 		</view>
-	</view>
+	</app-layout>
 </template>
  
 <script>
@@ -36,8 +36,13 @@ export default {
 	},
 	data() {
 		return {
-			list: ['热门风格', '精选户型'],
+			tabTitle: ['热门风格', '精选户型'],
 			activeIndex: 0,
+			
+			tabList:[],
+			exampleList:[],
+			page:1,
+			
 			scrollLeft: 0, // 滚动scroll-view的左边滚动距离
 			scrollBarLeft: 0, // 移动bar需要通过translateX()移动的距离
 			barFirstTimeMove: true, // 滑块第一次移动时(页面刚生成时),无需动画,否则给人怪异的感觉
@@ -52,6 +57,7 @@ export default {
 			// 视图更新后再执行移动操作
 			this.$nextTick(() => {
 				this.scrollByIndex();
+				this.getTabList()
 			});
 		}
 	},
@@ -91,9 +97,44 @@ export default {
 		}
 	},
 	methods: {
-		goPage(){
+		getTabList(){
+			this.$showLoading()
+			let url=this.activeIndex?this.$api.example.house_list:this.$api.example.style_list
+			this.$request({
+				url:url,
+				method:'post'
+			}).then(res=>{
+				if(res.code===0){
+					this.tabList=[]
+					for (let i = 0; i < res.data.length; i++) {
+						let item=res.data[i]
+						let link=!this.activeIndex?`?style_id=${item.id}`:`?house_id=${item.id}`
+						this.tabList.push({image:item.cover_img,id:item.id,tag:item.name,link:`/pages/case/caseList${link}&nav_title=${item.name}`})
+					}
+				}
+				this.$hideLoading()
+			})
+		},
+		getExampleList(){
+			this.$request({
+				url:this.$api.example.list,
+				data:{
+					// style_id,
+					// house_id,
+					is_chosen:1,
+					page:this.page
+				},
+				method:'post'
+			}).then(res=>{
+				if(res.code===0){
+					this.exampleList=res.data.list
+				}
+			})
+		},
+
+		goPage(url){
 			uni.navigateTo({
-				url:'/pages/case/caseDetails'
+				url:url
 			})
 		},
 		// 设置一个init方法,方便多处调用
@@ -130,7 +171,7 @@ export default {
 			// 创建节点查询
 			let query = uni.createSelectorQuery().in(this);
 			// 历遍所有tab,这里是执行了查询,最终使用exec()会一次性返回查询的数组结果
-			for (let i = 0; i < this.list.length; i++) {
+			for (let i = 0; i < this.tabTitle.length; i++) {
 				// 只要size和rect两个参数
 				query.select(`#tab_${i}`).fields({
 					size: true,
@@ -175,6 +216,12 @@ export default {
 	},
 	onLoad() {
 		this.init();
+		this.getTabList()
+		this.getExampleList()
+	},
+	onReachBottom() {
+		this.page++
+		this.getExampleList()
 	}
 };
 </script>
@@ -209,7 +256,7 @@ export default {
 .popcase{
 	.item{
 		width: 678rpx;
-		height: 466rpx;
+		height: auto;
 		background: #FFFFFF;
 		border-radius: 8rpx;
 		margin: 0 auto 30rpx;
@@ -219,9 +266,10 @@ export default {
 			height: 340rpx;
 		}
 		.bt{
-			padding: 10rpx 24rpx 31rpx 33rpx;
+			padding: 27rpx 24rpx 37rpx 33rpx;
 		}
 		.title{
+			width: 580rpx;
 			font-size: 32rpx;
 			font-weight: bold;
 			color: #222222;

+ 2 - 2
src/pages/index/hxj_index_component.vue

xqd
@@ -237,8 +237,8 @@
 					{
 						image: 'https://t17.9026.com/web/statics/image/index/temporary/jhk-1634283667210.png',
 						title: '定制产品',
-						tag: '定制',
-						link: ''
+						tag: '预约',
+						link: '/pages/case/appointment/appointment-form'
 					},
 					{
 						image: 'https://t17.9026.com/web/statics/image/index/2.png',

+ 1 - 5
src/pages/sale/properties/addProperties.vue

xqd
@@ -71,15 +71,11 @@
 		},
 		methods:{
 			selectEstate(index,name,id,item){
-				// if(this.type==='addCustomer'){
 					let pages = getCurrentPages();
 					let currPage = pages[pages.length - 1]; //当前页面
 					let prevPage = pages[pages.length - 2]; //上一个页面
 					let multiIndex=[item.province_id,item.city_id,item.district_id]
-					prevPage.$vm.estateInfo={id:id,name:name,multiIndex:multiIndex}
-					// uni.navigateBack()
-					// return
-				// }
+					prevPage.$vm.estateInfo={id:id,name:name,multiIndex:multiIndex,address:item.address}
 				this.selectIndex=index
 				this.show=true
 			},

BIN
src/static/image.zip