Browse Source

前端H5界面

xiaoshushu 3 năm trước cách đây
mục cha
commit
f8561022c5
44 tập tin đã thay đổi với 642 bổ sung2093 xóa
  1. 20 0
      smart-ui-app/.hbuilderx/launch.json
  2. 1 1
      smart-ui-app/App.vue
  3. 12 179
      smart-ui-app/common/common.scss
  4. 13 1
      smart-ui-app/manifest.json
  5. 50 77
      smart-ui-app/pages.json
  6. 0 116
      smart-ui-app/pages/goods/detail.vue
  7. 0 176
      smart-ui-app/pages/goods/index.vue
  8. 0 154
      smart-ui-app/pages/goods/pay.vue
  9. 0 183
      smart-ui-app/pages/goods/shopcar.vue
  10. 63 0
      smart-ui-app/pages/government/detail.vue
  11. 61 0
      smart-ui-app/pages/government/index.vue
  12. 193 65
      smart-ui-app/pages/index/index.vue
  13. 0 153
      smart-ui-app/pages/order/detail.vue
  14. 0 180
      smart-ui-app/pages/order/list.vue
  15. 21 0
      smart-ui-app/pages/travel/detail.vue
  16. 95 0
      smart-ui-app/pages/travel/index.vue
  17. 113 85
      smart-ui-app/pages/user/my.vue
  18. BIN
      smart-ui-app/static/b1.jpg
  19. BIN
      smart-ui-app/static/b2.jpg
  20. BIN
      smart-ui-app/static/b3.jpg
  21. BIN
      smart-ui-app/static/bj.jpg
  22. BIN
      smart-ui-app/static/dt.jpg
  23. BIN
      smart-ui-app/static/img1.jpg
  24. BIN
      smart-ui-app/static/img2.jpg
  25. BIN
      smart-ui-app/static/img3.jpg
  26. BIN
      smart-ui-app/static/img4.jpg
  27. BIN
      smart-ui-app/static/tab/dz.png
  28. BIN
      smart-ui-app/static/tab/dz_select.png
  29. BIN
      smart-ui-app/static/tab/home.png
  30. BIN
      smart-ui-app/static/tab/home_select.png
  31. BIN
      smart-ui-app/static/tab/jq.png
  32. BIN
      smart-ui-app/static/tab/jq_select.png
  33. BIN
      smart-ui-app/static/tab/my.png
  34. BIN
      smart-ui-app/static/tab/my_select.png
  35. BIN
      smart-ui-app/static/tab/zd.png
  36. BIN
      smart-ui-app/static/tab/zd_select.png
  37. BIN
      smart-ui-app/static/tp.jpg
  38. BIN
      smart-ui-app/static/组-74@2x.jpg
  39. 0 216
      smart-ui-app/uview-ui/components/u-badge/u-badge.vue
  40. 0 84
      smart-ui-app/uview-ui/components/u-table/u-table.vue
  41. 0 1
      smart-ui-app/uview-ui/components/u-tabs/u-tabs.vue
  42. 0 294
      smart-ui-app/uview-ui/components/u-tag/u-tag.vue
  43. 0 66
      smart-ui-app/uview-ui/components/u-td/u-td.vue
  44. 0 62
      smart-ui-app/uview-ui/components/u-th/u-th.vue

+ 20 - 0
smart-ui-app/.hbuilderx/launch.json

@@ -0,0 +1,20 @@
+{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
+  // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
+    "version": "0.0",
+    "configurations": [{
+     	"default" : 
+     	{
+     		"launchtype" : "local"
+     	},
+     	"h5" : 
+     	{
+     		"launchtype" : "local"
+     	},
+     	"mp-weixin" : 
+     	{
+     		"launchtype" : "local"
+     	},
+     	"type" : "uniCloud"
+     }
+    ]
+}

+ 1 - 1
smart-ui-app/App.vue

@@ -25,7 +25,7 @@ button::after { border: none }
 /**挂载iconfont图表*/
 /**挂载iconfont图表*/
 @font-face {
 @font-face {
 	font-family: 'iconfont';
 	font-family: 'iconfont';
-	src: url('https://at.alicdn.com/t/font_2736958_2paanmcb7gd.ttf') format('truetype');
+	src: url('https://at.alicdn.com/t/font_2816842_prqpn28m9t.ttf?t=1631771735015') format('truetype');
 	/* src: url('~@/static/font/iconfont.ttf') format('truetype'); */
 	/* src: url('~@/static/font/iconfont.ttf') format('truetype'); */
 }
 }
 .icon {
 .icon {

+ 12 - 179
smart-ui-app/common/common.scss

@@ -16,6 +16,9 @@
 	background-color: white;
 	background-color: white;
 	padding: 7px;
 	padding: 7px;
 }
 }
+.mt10{
+	margin-top: 10px;
+}
 .omit {
 .omit {
 	white-space: nowrap;
 	white-space: nowrap;
 	text-overflow: ellipsis;
 	text-overflow: ellipsis;
@@ -105,83 +108,6 @@
 		text-align: center;
 		text-align: center;
 	}
 	}
 }
 }
-.footer {
-	border-top: 1px solid #d8d8d8;
-	position: fixed;
-	width: 100%;
-	height: 60px;
-	background-color: white;
-	bottom: 0;
-	overflow: hidden;
-	z-index: 111111111;
-	.kf {
-		background-color: white;
-		margin-top: -22px;
-		float: left;
-		.icon {
-			font-size: 25px;
-		}
-		.tag {
-			margin-top: -26px;
-			font-size: 11px;
-		}
-	}
-	.check {
-		float: left;
-		padding-top: 18px;
-		padding-left: 5px;
-		.icon {
-			font-size: 17px;
-			padding-right: 3px;
-			font-weight: bold;
-			&.active {
-				color: $red;
-			}
-		}
-	}
-	.del {
-		float: left;
-		padding-top: 19px;
-		padding-left: 10px;
-		font-size: 13px;
-		color: $red;
-	}
-	.hej {
-		float: right;
-		padding-top: 20px;
-		padding-right: 10px;
-		font-size: 13px;
-		.price {
-			color: $theme-color;
-		}
-	}
-	.js {
-		background-color: $theme-color;
-		padding: 8px 10px;
-		border-radius: 29px;
-		color: white;
-		margin-top: 10px;
-		flex: 0.4;
-		margin-right: 10px;
-	}
-	.gwc {
-		background-color: $orange;
-		padding: 8px 10px;
-		color: white;
-		font-size: 14px;
-		text-align: center;
-		border-radius: 29px 0px 0px 29px;
-	}
-	.gm {
-		background-color: $theme-color;
-		padding: 8px 10px;
-		color: white;
-		font-size: 14px;
-		text-align: center;
-		border-radius: 0px 29px 29px 0px;
-		margin-right: 5px;
-	}
-}
 .form_group {
 .form_group {
 	width: 100%;
 	width: 100%;
 	display: flex;
 	display: flex;
@@ -225,6 +151,10 @@
 	width: 30%;
 	width: 30%;
 	float: left;
 	float: left;
 }
 }
+.r35 {
+	width: 35%;
+	float: left;
+}
 .r40 {
 .r40 {
 	width: 40%;
 	width: 40%;
 	float: left;
 	float: left;
@@ -237,6 +167,10 @@
 	width: 60%;
 	width: 60%;
 	float: left;
 	float: left;
 }
 }
+.r65 {
+	width: 65%;
+	float: left;
+}
 .r70 {
 .r70 {
 	width: 70%;
 	width: 70%;
 	float: left;
 	float: left;
@@ -270,105 +204,4 @@
 	color: $dar2;
 	color: $dar2;
 	font-size: 11px;
 	font-size: 11px;
 }
 }
-.goods_item {
-	background-color: white;
-	margin-top: 7px;
-	border-radius: 4px;
-	width: 49%;
-	padding: 10px;
-	float: left;
-	text-align: center;
-	margin-right: 5px;
-	image {
-		width: 100%;
-		height: 95px;
-		border-radius: 3px;
-		background-color: #dcdcdc;
-	}
-	&.goods_item:nth-child(even) {
-		margin-right: 0px;
-	}
-	.title {
-		padding-top: 6px;
-		font-size: 13px;
-		text-align: left;
-		color: #252525;
-	}
-	.price {
-		padding-top: 6px;
-		font-size: 15px;
-		text-align: left;
-		color: $theme-color;
-		.icon {
-			float: right;
-			color: #9c9c9c;
-			font-size: 19px;
-		}
-	}
-}
-.day {
-	padding-left: 3px;
-	color: #c7c0c0;
-	font-size: 12px;
-	font-weight: normal;
-}
-.order_title {
-	padding: 10px;
-	font-size: 15px;
-	font-weight: bold;
-	border-bottom: 1px solid #e5e5e5;
-	position: relative;
-	.zhu {
-		float: right;
-		font-size: 12px;
-		margin-top: 2px;
-	}
-}
-.tk {
-	font-size: 13px;
-	background-color: #ebecec;
-	padding: 7px;
-	border-radius: 5px;
-	margin-top: 7px;
-	color: #5f6060;
-}
-.order_item {
-	padding: 12px 10px 12px 10px;
-	border-bottom: 1px solid #e5e5e5;
-	background-color: white;
-	.pic {
-		width: 30%;
-		float: left;
-		border-radius: 3px;
-		height: 80px;
-		background-color: #dcdcdc;
-	}
-	.con {
-		width: 70%;
-		padding-left: 10px;
-		float: left;
-		.title {
-			font-size: 13px;
-			text-align: left;
-			color: #252525;
-		}
-		.price {
-			color: $theme-color;
-			margin-top: 5px;
-			font-weight: bold;
-			font-size: 14px;
-		}
-	}
-}
-.gray {
-	-webkit-filter: grayscale(100%);
-	-moz-filter: grayscale(100%);
-	-ms-filter: grayscale(100%);
-	-o-filter: grayscale(100%);
-	filter: grayscale(100%);
-	filter: gray;
-}
-.err {
-	color: #9fa1a2;
-	padding-top: 3px;
-}
+

+ 13 - 1
smart-ui-app/manifest.json

@@ -1,5 +1,5 @@
 {
 {
-    "name" : "广安农机农技智慧服务",
+    "name" : "智慧旅游",
     "appid" : "__UNI__8B92F0F",
     "appid" : "__UNI__8B92F0F",
     "description" : "",
     "description" : "",
     "versionName" : "1.0.0",
     "versionName" : "1.0.0",
@@ -67,5 +67,17 @@
     },
     },
     "uniStatistics" : {
     "uniStatistics" : {
         "enable" : false
         "enable" : false
+    },
+    "h5" : {
+        "router" : {
+            "base" : "/h6/"
+        },
+        "sdkConfigs" : {
+            "maps" : {
+                "qqmap" : {
+                    "key" : ""
+                }
+            }
+        }
     }
     }
 }
 }

+ 50 - 77
smart-ui-app/pages.json

@@ -6,7 +6,8 @@
 		{
 		{
 			"path": "pages/index/index",
 			"path": "pages/index/index",
 			"style": {
 			"style": {
-				"navigationBarTitleText": "广安农机农技智慧服务"
+				"navigationBarTitleText": "",
+				"navigationStyle": "custom"
 			}
 			}
 		},
 		},
 		{
 		{
@@ -18,75 +19,47 @@
 		{
 		{
 			"path": "pages/user/my",
 			"path": "pages/user/my",
 			"style": {
 			"style": {
-				"navigationBarTitleText": "我的"
+				"navigationBarTitleText": "我的",
+				"navigationStyle": "custom"
 			}
 			}
-		},
-		{
-			"path": "pages/goods/shopcar",
-			"style": {
-				"navigationBarTitleText": "购物车",
-				"enablePullDownRefresh": false
-			}
-
-		},
-		{
-			"path": "pages/goods/index",
-			"style": {
-				"navigationBarTitleText": "商品服务",
-				"enablePullDownRefresh": true,
-				"backgroundTextStyle": "dark",
-				"app-plus": {
-					"pullToRefresh": {
-						"support": true,
-						"style": "circle",
-						"offset": 0
-					}
-				}
-			}
-		},
-		{
-			"path": "pages/goods/detail",
-			"style": {
-				"navigationBarTitleText": "服务详情"
-			}
-		},
-		{
-			"path": "pages/user/info",
-			"style": {
-				"navigationBarTitleText": "账户设置"
-			}
-		},
-		{
-			"path": "pages/goods/pay",
-			"style": {
-				"navigationBarTitleText": "订单支付",
-				"enablePullDownRefresh": false
-			}
-
-		}, {
-			"path": "pages/order/list",
-			"style": {
-				"navigationBarTitleText": "我的订单",
-				"enablePullDownRefresh": true,
-				"backgroundTextStyle": "dark",
-				"app-plus": {
-					"pullToRefresh": {
-						"support": true,
-						"style": "circle",
-						"offset": 0
-					}
-				}
-			}
-
-		}, {
-			"path": "pages/order/detail",
-			"style": {
-				"navigationBarTitleText": "订单详情",
-				"enablePullDownRefresh": false
-			}
-
 		}
 		}
-	],
+	    ,{
+            "path" : "pages/travel/index",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "景区",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/government/index",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "党政服务",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/government/detail",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "政务详情",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/travel/detail",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "旅游路线",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+    ],
 	"tabBar": {
 	"tabBar": {
 		"color": "#7A7E83",
 		"color": "#7A7E83",
 		"selectedColor": "#c74547",
 		"selectedColor": "#c74547",
@@ -99,16 +72,16 @@
 				"text": "首页"
 				"text": "首页"
 			},
 			},
 			{
 			{
-				"pagePath": "pages/goods/index",
-				"iconPath": "static/tab/goods.png",
-				"selectedIconPath": "static/tab/goods_select.png",
-				"text": "服务"
+				"pagePath": "pages/travel/index",
+				"iconPath": "static/tab/jq.png",
+				"selectedIconPath": "static/tab/jq_select.png",
+				"text": "景区"
 			},
 			},
 			{
 			{
-				"pagePath": "pages/goods/shopcar",
-				"iconPath": "static/tab/shopcar.png",
-				"selectedIconPath": "static/tab/shopcar_select.png",
-				"text": "购物车"
+				"pagePath": "pages/government/index",
+				"iconPath": "static/tab/zd.png",
+				"selectedIconPath": "static/tab/zd_select.png",
+				"text": "党政服务"
 			},
 			},
 			{
 			{
 				"pagePath": "pages/user/my",
 				"pagePath": "pages/user/my",
@@ -120,7 +93,7 @@
 	},
 	},
 	"globalStyle": {
 	"globalStyle": {
 		"navigationBarTextStyle": "white",
 		"navigationBarTextStyle": "white",
-		"navigationBarTitleText": "广安农机农技智慧服务",
+		"navigationBarTitleText": "",
 		"navigationBarBackgroundColor": "#c74547",
 		"navigationBarBackgroundColor": "#c74547",
 		"backgroundColor": "#F8F8F8"
 		"backgroundColor": "#F8F8F8"
 	}
 	}

+ 0 - 116
smart-ui-app/pages/goods/detail.vue

@@ -1,116 +0,0 @@
-<template>
-	<view>
-		<view class="top">
-			<image :src="ip + item.pic" class="pic" mode="widthFix"></image>
-			<view class="title">
-				<text>{{ item.title }}</text>
-			</view>
-			<view class="price" v-if="item.price">
-				<text>¥{{ item.price }}</text>
-				<text class="day">/天</text>
-			</view>
-		</view>
-		<view class="contents">
-			<u-divider>服务介绍</u-divider>
-			<u-parse :html="item.contents" style="margin-top: 15px;"></u-parse>
-		</view>
-		<view class="footer">
-			<view class="lfx">
-				<view class="f" style="flex:0.6;">
-					<button class="kf" open-type="contact">
-						<view class="icon">&#xe62a;</view>
-						<view class="tag">客服</view>
-					</button>
-					<button class="kf" @click="car()">
-						<view class="icon">&#xe65f;</view>
-						<view class="tag">购物车</view>
-					</button>
-				</view>
-				<view class="f" style="flex: 1;">
-					<view class="lfx">
-						<view class="f gwc" @click="add()">加入购物车</view>
-						<view class="f gm" @click="buy()">立即租赁</view>
-					</view>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-<script>
-export default {
-	data() {
-		return {
-			ip: this.$http.urls.ip,
-			item: {}
-		};
-	},
-	onLoad(e) {
-		this.$http.request({
-			url: this.$http.urls.goods_detail + e.id,
-			success: res => {
-				this.item = res.data.data;
-				this.item.contents = res.data.data.contents.replace(/\<img/gi, '<img style=width:100%;height:auto');
-			}
-		});
-	},
-	methods: {
-		//购物车
-		car() {
-			uni.switchTab({
-				url: 'shopcar'
-			});
-		},
-		//添加购物车
-		add() {
-			this.$http.request({
-				url: this.$http.urls.cart_add,
-				method: 'POST',
-				data: { goodsId: this.item.id, userId: this.$getUser().id },
-				success: res => {
-					uni.showToast({ title: '已加入购物车', icon: 'none' });
-				}
-			});
-		},
-		//直接购买服务
-		buy() {
-			let list = [{ goodsId: this.item.id, goods: { title: this.item.title, price: this.item.price, pic: this.item.pic } }];
-			uni.navigateTo({ url: 'pay?list=' + JSON.stringify(list) });
-		}
-	}
-};
-</script>
-<style lang="scss">
-page {
-	background-color: $page;
-}
-.top {
-	background-color: white;
-	.pic {
-		width: 100%;
-	}
-	.title {
-		font-size: 15px;
-		font-weight: bold;
-		padding: 10px 15px 0px 15px;
-	}
-	.price {
-		font-size: 15px;
-		text-align: left;
-		color: $theme-color;
-		padding: 5px 15px 10px 15px;
-		.day {
-			padding-left: 3px;
-			color: #c7c0c0;
-			font-size: 12px;
-		}
-	}
-}
-.contents {
-	margin-top: 10px;
-	padding: 10px 10px 55px 10px;
-	background-color: white;
-}
-.footer {
-	padding-top: 8px;
-}
-</style>

+ 0 - 176
smart-ui-app/pages/goods/index.vue

@@ -1,176 +0,0 @@
-<template>
-	<view>
-		<view class="top">
-			<!--商品搜索-->
-			<view class="search">
-				<u-search v-model="param.title" :animation="true" action-text="取消" placeholder="输入搜索内容" shape="square" @search="search" @clear="clear"></u-search>
-			</view>
-			<!--分类筛选-->
-			<view class="menu">
-				<u-dropdown>
-					<u-dropdown-item v-model="options.value1" title="分类" :options="options1" @change="change($event, 1)"></u-dropdown-item>
-					<u-dropdown-item v-model="options.value2" title="排序" :options="options2" @change="change($event, 2)"></u-dropdown-item>
-					<u-dropdown-item v-model="options.value3" title="筛选" :options="options3" @change="change($event, 3)"></u-dropdown-item>
-				</u-dropdown>
-			</view>
-		</view>
-		<!--列表数据-->
-		<view class="list">
-			<view class="goods_item" v-for="(item, index) in list" :key="index" @click="detail(item)">
-				<image :src="ip + item.pic" mode="aspectFill"></image>
-				<view class="title omit">
-					<text>{{ item.title }}</text>
-				</view>
-				<view class="price">
-					<text>¥{{ item.price }}</text>
-					<text class="day">/天</text>
-					<text class="icon" v-show="item.mType == 0">&#xe61e;</text>
-					<text class="icon" v-show="item.mType == 1">&#xe61c;</text>
-				</view>
-			</view>
-			<view class="clear"></view>
-			<view class="loading"><u-loadmore :status="loadMore ? 'loading' : 'nomore'" /></view>
-		</view>
-	</view>
-</template>
-
-<script>
-export default {
-	data() {
-		return {
-			ip: this.$http.urls.ip,
-			list: [],
-			param: { pageNum: 1, orderByColumn: 'id', isAsc: 'desc', mType: '' },
-			loadMore: true,
-			options: { value1: '', value2: 'id-desc', value3: '' }, //options选中项的value值
-			//商品分类
-			options1: [{ label: '全部分类', value: '' }],
-			//综合排序
-			options2: [
-				{
-					label: '综合排序',
-					value: 'id-desc'
-				},
-				{
-					label: '时间降序',
-					value: 'createTime-desc'
-				},
-				{
-					label: '时间升序',
-					value: 'createTime-asc'
-				},
-				{
-					label: '价格降序',
-					value: 'price-desc'
-				},
-				{
-					label: '价格升序',
-					value: 'price-asc'
-				}
-			],
-			//筛选
-			options3: [
-				{
-					label: '智能推荐',
-					value: 'id-desc'
-				}
-			]
-		};
-	},
-	onLoad() {
-		this.getData();
-		this.getType();
-	},
-	methods: {
-		getType() {
-			this.$http.request({
-				url: this.$http.urls.dictType + 'm_type',
-				loading: 'false',
-				success: res => {
-					console.log('zx:' + JSON.stringify(res));
-					res.data.data.forEach(item => {
-						this.options1.push({ label: item.dictLabel, value: item.dictValue });
-					});
-				}
-			});
-		},
-		//获取数据
-		getData() {
-			this.$http.request({
-				url: this.$http.urls.goods_list,
-				data: this.param,
-				loading: 'false',
-				success: res => {
-					this.loadMore = res.data.pages > this.param.pageNum ? true : false;
-					res.data.rows.forEach(item => {
-						this.list.push(item);
-					});
-				}
-			});
-		},
-		//点击下拉菜单, tag当前点击标识(1,商品分类,2,综合排序和筛选)
-		change(e, tag) {
-			if (tag === 1) {
-				this.param.mType = e;
-			} else {
-				this.param.orderByColumn = e.split('-')[0];
-				this.param.isAsc = e.split('-')[1];
-			}
-			this.refresh();
-		},
-		//点击键盘搜索按钮触发
-		search() {
-			this.param.mType = '';
-			this.refresh();
-		},
-		//清空搜索内容
-		clear() {
-			this.refresh();
-		},
-		//详情
-		detail(item) {
-			uni.navigateTo({ url: '/pages/goods/detail?id=' + item.id });
-		},
-		//刷新数据
-		refresh() {
-			this.loadMore = true;
-			this.param.pageNum = 1;
-			this.list = [];
-			this.getData();
-		}
-	},
-	//下拉刷新
-	onPullDownRefresh() {
-		setTimeout(() => {
-			uni.stopPullDownRefresh();
-			this.refresh();
-		}, 1000);
-	},
-	//上拉加载
-	onReachBottom() {
-		if (this.loadMore) {
-			this.param.pageNum++;
-			this.getData();
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	background-color: $page;
-}
-.top {
-	background-color: white;
-	.search {
-		padding: 12px;
-	}
-	.menu {
-		background-color: white;
-		border-bottom: 1px solid #d8d8d8;
-	}
-}
-.list {
-	padding: 0px 10px 20px 10px;
-}
-</style>

+ 0 - 154
smart-ui-app/pages/goods/pay.vue

@@ -1,154 +0,0 @@
-<template>
-	<view>
-		<!--列表数据-->
-		<view class="list">
-			<view class="info">
-				<view class="order_title">
-					<text>广安农机农技智慧服务</text>
-					<view class="zhu" style="margin-top: -2px;"><u-tag text="租" type="success" /></view>
-				</view>
-				<view class="order_item" v-for="(item, index) in list" :key="index">
-					<image :src="ip + item.goods.pic" class="pic" mode="aspectFill"></image>
-					<view class="con">
-						<view class="title">
-							<text>{{ item.goods.title }}</text>
-						</view>
-						<view class="price">
-							<text>¥{{ item.goods.price }}</text>
-							<text class="day">/天</text>
-						</view>
-					</view>
-					<view class="clear"></view>
-				</view>
-				<u-divider style="padding: 10px;">共计{{ list.length }}项服务</u-divider>
-			</view>
-			<view class="info">
-				<view class="form_group hr">
-					<view class="lable">我的姓名</view>
-					<input type="text" placeholder="请输入姓名" v-model="item.name" />
-				</view>
-				<view class="form_group hr">
-					<view class="lable">联系电话</view>
-					<input type="number" placeholder="请输入联系电话" v-model="item.phone" />
-				</view>
-				<view class="form_group hr">
-					<view class="lable">租赁天数</view>
-					<u-number-box v-model="item.days" :min="1" @change="change"></u-number-box>
-				</view>
-				<view class="form_group hr">
-					<view class="lable">备注信息</view>
-					<textarea placeholder="备注信息" v-model="item.notes" />
-				</view>
-			</view>
-			<view class="phone">请填写正确的手机号,我们客服人员会和你取得联系</view>
-		</view>
-		<view class="footer">
-			<view class="lfx">
-				<view class="f">
-					<view class="hej">
-						<text class="price">¥{{ item.totalPrice }}</text>
-					</view>
-				</view>
-				<view class="f js" @click="pay()">支付</view>
-			</view>
-		</view>
-	</view>
-</template>
-<script>
-export default {
-	data() {
-		return {
-			ip: this.$http.urls.ip,
-			list: [],
-			item: { orderList: [], totalPrice: 0, days: 1, phone: this.$getUser().phone }
-		};
-	},
-	onLoad(e) {
-		this.list = JSON.parse(e.list);
-		this.calcul();
-	},
-	methods: {
-		change(e) {
-			this.calcul();
-		},
-		//计算
-		calcul() {
-			this.item.totalPrice = 0;
-			this.list.forEach(item => {
-				this.item.totalPrice = this.$util.accAdd(this.item.totalPrice, item.goods.price);
-			});
-			this.item.totalPrice = this.$util.accMul(this.item.totalPrice, this.item.days);
-			this.$forceUpdate();
-		},
-		//结算
-		pay() {
-			let rule = [
-				{ name: 'name', checkType: 'notnull', errorMsg: '请输入姓名' },
-				{ name: 'phone', checkType: 'phoneno', errorMsg: '请输入正确手机号' },
-				{ name: 'days', checkType: 'notnull', errorMsg: '请选择租赁天数' }
-			];
-			if (!this.$verify.check(this.item, rule)) {
-				uni.showModal({ content: this.$verify.error, showCancel: false });
-				return;
-			}
-			this.item.orderList = [];
-			this.item.title = '';
-			this.list.forEach(item => {
-				this.item.orderList.push({ id: item.id, goodsId: item.goodsId, price: item.goods.price, title: item.goods.title, pic: item.goods.pic });
-				this.item.title += item.goods.title + ',';
-			});
-			this.item.openId = this.$getUser().openId;
-			this.item.userId = this.$getUser().id;
-			this.$http.request({
-				url: this.$http.urls.pay,
-				method: 'POST',
-				data: this.item,
-				success: res => {
-					if (res.data.code === 200) {
-						//调起微信支付
-						wx.requestPayment({
-							timeStamp: res.data.data.timeStamp,
-							nonceStr: res.data.data.nonceStr,
-							package: res.data.data.package,
-							signType: res.data.data.signType,
-							paySign: res.data.data.paySign,
-							success: r => {
-								uni.redirectTo({ url: '/pages/order/list' });
-							},
-							fail: r => {
-								uni.redirectTo({ url: '/pages/order/list' });
-							}
-						});
-					} else {
-						uni.showModal({ content: res.data.msg, showCancel: false });
-					}
-				}
-			});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	background-color: $page;
-}
-.list {
-	padding: 0px 10px 75px 10px;
-	.info {
-		background-color: white;
-		border-radius: 5px;
-		margin-top: 10px;
-	}
-	.phone {
-		padding-top: 5px;
-		font-size: 13px;
-		color: #838383;
-	}
-}
-.footer {
-	.price {
-		font-size: 15px;
-	}
-}
-</style>

+ 0 - 183
smart-ui-app/pages/goods/shopcar.vue

@@ -1,183 +0,0 @@
-<template>
-	<view>
-		<!--列表数据-->
-		<view class="list" v-if="list.length > 0">
-			<view class="item" v-for="(item, index) in list" :key="index" @click="detail(item)">
-				<view class="icon" :class="{ active: item.check }" @click.stop="check(item)">&#xe61b;</view>
-				<image :src="ip + item.goods.pic" class="pic" mode="aspectFill"></image>
-				<view class="con">
-					<view class="title">{{ item.goods.title }}</view>
-					<view class="price">
-						<text>¥{{ item.goods.price }}</text>
-						<text class="day">/天</text>
-					</view>
-				</view>
-				<view class="clear"></view>
-			</view>
-		</view>
-		<view class="noData" v-else>
-			<text class="icon">&#xe60c;</text>
-			<view class="title">购物车是空的</view>
-		</view>
-		<view class="footer">
-			<view class="lfx">
-				<view class="f">
-					<view class="check" @click="check_all()">
-						<text class="icon" :class="{ active: checkAll && check_list.length > 0 }">&#xe61b;</text>
-						<text>全选</text>
-					</view>
-					<view class="del" v-if="check_list.length > 0" @click="del()">删除已选</view>
-					<view class="hej">
-						<text class="hj">合计:</text>
-						<text class="price">¥{{ total_price }}</text>
-					</view>
-				</view>
-				<view class="f js" @click="buy()">结算</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-export default {
-	data() {
-		return {
-			ip: this.$http.urls.ip,
-			list: [],
-			checkAll: false, //全选
-			check_list: [], //选中
-			total_price: '0.00' //合计
-		};
-	},
-	onShow() {
-		this.getData();
-	},
-	methods: {
-		//获取数据
-		getData() {
-			this.$http.request({
-				url: this.$http.urls.cart_list,
-				data: { userId: this.$getUser().id },
-				success: res => {
-					this.list = res.data.data;
-					this.calcul();
-				}
-			});
-		},
-		//选中
-		check(item) {
-			item.check = !item.check;
-			this.calcul();
-		},
-		//全选
-		check_all() {
-			this.checkAll = !this.checkAll;
-			this.list.forEach(item => {
-				item.check = this.checkAll;
-			});
-			this.calcul();
-		},
-		//计算价格和选中
-		calcul() {
-			this.check_list = this.list.filter(item => {
-				return item.check;
-			});
-			this.checkAll = this.check_list.length == this.list.length ? true : false;
-			this.total_price = 0;
-			this.check_list.forEach(item => {
-				this.total_price = this.$util.accAdd(this.total_price, item.goods.price);
-			});
-			this.$forceUpdate();
-		},
-		del() {
-			let ids = this.check_list.map(item => item.id);
-			uni.showModal({
-				title: '提示',
-				content: '是否删除选中服务?',
-				success: res => {
-					if (res.confirm) {
-						this.$http.request({
-							url: this.$http.urls.cart_del + ids,
-							method: 'delete',
-							success: res => {
-								uni.showToast({ title: '删除成功' });
-								this.getData();
-							}
-						});
-					}
-				}
-			});
-		},
-		//详情
-		detail(item) {
-			uni.navigateTo({ url: 'detail?id=' + item.goodsId });
-		},
-		//结算
-		buy() {
-			if (this.check_list == 0) {
-				uni.showModal({ content: '请勾选服务', showCancel: false });
-				return;
-			}
-			console.log(JSON.stringify(this.check_list));
-			uni.navigateTo({ url: 'pay?list=' + JSON.stringify(this.check_list) });
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	background-color: $page;
-}
-.list {
-	padding: 0px 10px 70px 10px;
-	.item {
-		background-color: white;
-		padding: 15px 8px 15px 8px;
-		border-bottom: 1px solid #e5e5e5;
-		border-radius: 5px;
-		margin-top: 10px;
-		.icon {
-			width: 10%;
-			float: left;
-			padding-left: 3px;
-			font-size: 17px;
-			margin-top: 30px;
-			font-weight: bold;
-			
-			&.active {
-				color: $red;
-			}
-		}
-		.pic {
-			float: left;
-			width: 30%;
-			border-radius: 3px;
-			height:80px;
-			background-color: #dcdcdc;
-		}
-		.con {
-			padding-left: 10px;
-			width: 60%;
-			float: left;
-			.title {
-				font-size: 13px;
-				text-align: left;
-				color: #252525;
-			}
-			.price {
-				color: $theme-color;
-				margin-top: 5px;
-			}
-		}
-	}
-}
-.footer {
-	/* #ifdef MP-WEIXIN */
-	bottom: 0px;
-	/* #endif */
-	/* #ifdef H5 */
-	bottom: 40px;
-	/* #endif */
-}
-</style>

+ 63 - 0
smart-ui-app/pages/government/detail.vue

@@ -0,0 +1,63 @@
+<template>
+	<view class="contents">
+		<view class="title"><text>西藏新增12家4A级景区,get到你的眼球吗?</text></view>
+		<view class="ly">
+			<text>公众号名称</text>
+			<text class="day">4天前</text>
+		</view>
+		<view>
+			<image src="../../static/b1.jpg" mode="widthFix" class="pic"></image>
+			<image src="../../static/b2.jpg" mode="widthFix" class="pic"></image>
+			<image src="../../static/b3.jpg" mode="widthFix" class="pic"></image>
+			<view class="fwb">
+				这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容这是内容
+			</view>
+			<view class="mt10">
+				<view class="">来源:作者名称</view>
+				<view class="">编辑丨编辑名称</view>
+				<view class="">责编丨初审名称</view>
+				<view class="">审核丨终审名称</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {
+			item: {}
+		};
+	}
+};
+</script>
+
+<style lang="scss">
+.contents {
+	padding: 20px;
+	.ly {
+		font-size: 14px;
+		margin-bottom: 15px;
+		color: #2196f3;
+		.day {
+			color: #818184;
+			padding-left: 10px;
+		}
+	}
+	.title {
+		padding-top: 20px;
+		font-size: 23px;
+		font-weight: 400;
+		margin-bottom: 20px;
+	}
+	.pic {
+		width: 100%;
+		border-radius: 3px;
+		margin-top: 3px;
+	}
+	.fwb {
+		margin-top: 15px;
+		color: #909090;
+	}
+}
+</style>

+ 61 - 0
smart-ui-app/pages/government/index.vue

@@ -0,0 +1,61 @@
+<template>
+	<view>
+		<view class="list">
+			<view class="item" v-for="(item, index) in list" :key="index" @click="detail(item)">
+				<view class="r65">
+					<view class="title">这是标题</view>
+					<view class="desc">这是内容介绍,可以是文字</view>
+				</view>
+				<view class="r35 day">2021· 8· 27</view>
+				<view class="clear"></view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {
+			list: ['1', '2', '3', '4', '5']
+		};
+	},
+	methods: {
+		//详情
+		detail(item) {
+			uni.navigateTo({ url: '/pages/government/detail'});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+.list {
+	padding: 0px 10px 70px 10px;
+	.item {
+		background-color: white;
+		padding: 18px;
+		border-bottom: 1px solid #e5e5e5;
+		border-radius: 5px;
+		margin-top: 10px;
+		box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.2);
+		.title {
+			font-size: 15px;
+			text-align: left;
+			color: #252525;
+			font-weight: bold;
+		}
+		.desc {
+			color: #969799;
+			font-size: 13px;
+			padding-top: 10px;
+		}
+		.day {
+			color: #969799;
+			font-size: 13px;
+			padding-top: 15px;
+			padding-left: 20px;
+		}
+	}
+}
+</style>

+ 193 - 65
smart-ui-app/pages/index/index.vue

@@ -1,34 +1,69 @@
 <template>
 <template>
 	<view class="page">
 	<view class="page">
-		<view class="top"><image src="../../static/dt.jpg" mode="widthFix"></image></view>
-		<view class="flex">
-			<view class="f">
-				<view class="ic" style="background-color: #FF5722;"><text class="icon">&#xe60e;</text></view>
-				<view class="">50+</view>
-				<view>农机农技</view>
+		<view class="qj" @click="call()">
+			<view class="icon">&#xe6d1;</view>
+			SOS
+		</view>
+		<view class="top">
+			<view class="wz">
+				<text class="icon">&#xe64a;</text>
+				<text>谢通门县欢迎您!</text>
 			</view>
 			</view>
-			<view class="f">
-				<view class="ic" style="background-color: #4CAF50;"><text class="icon">&#xe604;</text></view>
-				<view class="">2000+</view>
-				<view>提供服务</view>
+			<view class="wd">
+				<view class="qw">28°</view>
+				<view class="xs">
+					<view>中雨 东风2级</view>
+					<view>空气优23</view>
+				</view>
 			</view>
 			</view>
+			<view class="ms">城市后花园·温泉养生地·胜境谢通门</view>
+			<image src="../../static/组-74@2x.jpg" mode="aspectFill"></image>
 		</view>
 		</view>
-		<u-divider>最新服务</u-divider>
-		<view class="list">
-			<view class="goods_item" v-for="(item, index) in goods_list" :key="index" @click="detail(item)">
-				<image :src="ip + item.pic" mode="aspectFill"></image>
-				<view class="title omit">
-					<text>{{ item.title }}</text>
+		<view class="main">
+			<view class="flex menu">
+				<view class="f">
+					<view class="icon" style="background-color: #0f0b51;">&#xe605;</view>
+					<view class="title">景区介绍</view>
+				</view>
+				<view class="f">
+					<view class="icon" style="background-color: #e23e33;">&#xe695;</view>
+					<view class="title">党政服务</view>
+				</view>
+				<view class="f">
+					<view class="icon" style="background-color: #2cc937;">&#xe647;</view>
+					<view class="title">旅游攻略</view>
+				</view>
+				<view class="f">
+					<view class="icon" style="background-color: #e23e33;">&#xe645;</view>
+					<view class="title">热门活动</view>
+				</view>
+			</view>
+			<view class="flex mt10">
+				<view class="item">
+					<view class="tag">热门活动</view>
+					<image src="../../static/img1.jpg" mode="aspectFill" class="gray"></image>
+					<view class="more">点击显示更多</view>
+				</view>
+				<view class="item">
+					<view class="tag">党政服务信息</view>
+					<image src="../../static/img1.jpg" mode="aspectFill" class="gray"></image>
+					<view class="more">点击显示更多</view>
+				</view>
+			</view>
+			<view class="flex">
+				<view class="item">
+					<view class="tag">旅游攻略</view>
+					<image src="../../static/img2.jpg" mode="aspectFill" class="gray"></image>
+					<view class="more">点击显示更多</view>
 				</view>
 				</view>
-				<view class="price">
-					<text>¥{{ item.price }}</text>
-					<text class="day">/天</text>
-					<text class="icon" v-show="item.mType == 0">&#xe61e;</text>
-					<text class="icon" v-show="item.mType == 1">&#xe61c;</text>
+				<view class="item">
+					<view class="tag">热门活动</view>
+					<image src="../../static/img4.jpg" mode="aspectFill" class="gray"></image>
+					<view class="more">点击显示更多</view>
 				</view>
 				</view>
 			</view>
 			</view>
-			<view class="clear"></view>
 		</view>
 		</view>
+		<u-back-top :scroll-top="scrollTop"></u-back-top>
 	</view>
 	</view>
 </template>
 </template>
 
 
@@ -37,13 +72,28 @@ export default {
 	data() {
 	data() {
 		return {
 		return {
 			ip: this.$http.urls.ip,
 			ip: this.$http.urls.ip,
-			goods_list: []
+			goods_list: [],
+			scrollTop: 0
 		};
 		};
 	},
 	},
+	onPageScroll(e) {
+		this.scrollTop = e.scrollTop;
+	},
 	onLoad(e) {
 	onLoad(e) {
-		this.init();
+		//this.init();
 	},
 	},
 	methods: {
 	methods: {
+		call() {
+			uni.showModal({
+				title: '提示',
+				content: '是否拨打0892-88888888求援电话?',
+				success: res => {
+					if (res.confirm) {
+						
+					}
+				}
+			});
+		},
 		init() {
 		init() {
 			this.$http.request({
 			this.$http.request({
 				url: this.$http.urls.home,
 				url: this.$http.urls.home,
@@ -54,19 +104,6 @@ export default {
 			//let user={id:35,nickName:'微信用户',openId:'oD2_E4sMkz3zF_0xjhX_C4vaI_xo',sex:0,phone:'13097850972',token:'eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijc2NTVmOGM0LWY3YTAtNGU0Mi04MDU3LTdkNTA4NGY5NjE2NyJ9.f6xqQVYkm6zlfhZFbCOyj1-iOZtpkHJbUyCB2MNtTW-jgz1_9zcKKOdnw9uX_WJ_2VNrgOn6R5hmQAIm79YIZw'}
 			//let user={id:35,nickName:'微信用户',openId:'oD2_E4sMkz3zF_0xjhX_C4vaI_xo',sex:0,phone:'13097850972',token:'eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijc2NTVmOGM0LWY3YTAtNGU0Mi04MDU3LTdkNTA4NGY5NjE2NyJ9.f6xqQVYkm6zlfhZFbCOyj1-iOZtpkHJbUyCB2MNtTW-jgz1_9zcKKOdnw9uX_WJ_2VNrgOn6R5hmQAIm79YIZw'}
 			// uni.setStorageSync('user',user);
 			// uni.setStorageSync('user',user);
 		},
 		},
-		click(typeId) {
-			if (typeId === 0) {
-				uni.navigateTo({
-					url: '../product/product'
-				});
-			}
-			if (typeId === 1) {
-				uni.navigateTo({ url: '../service/list' });
-			}
-			if (typeId === 2) {
-				uni.navigateTo({ url: '../park/cemetery/cemetery' });
-			}
-		},
 		detail(item) {
 		detail(item) {
 			uni.navigateTo({ url: '/pages/goods/detail?id=' + item.id });
 			uni.navigateTo({ url: '/pages/goods/detail?id=' + item.id });
 		}
 		}
@@ -75,44 +112,135 @@ export default {
 </script>
 </script>
 
 
 <style lang="scss">
 <style lang="scss">
-.page {
-	padding: 15px;
-}
 .top {
 .top {
+	position: relative;
+	height: 300px;
+	color: white;
+	.wz {
+		position: absolute;
+		top: 10px;
+		left: 20px;
+		z-index: 111111;
+		.icon {
+			padding-right: 5px;
+		}
+	}
+	.wd {
+		position: absolute;
+		top: 70px;
+		left: 20px;
+		z-index: 111111;
+		.qw {
+			font-size: 40px;
+			float: left;
+			font-weight: bold;
+		}
+		.xs {
+			margin-left: 75px;
+			width: 100%;
+			font-weight: bold;
+			margin-top: 6px;
+		}
+	}
+	.ms {
+		position: absolute;
+		top: 155px;
+		left: 20px;
+		z-index: 111111;
+		font-size: 17px;
+		font-weight: bold;
+	}
 	image {
 	image {
 		width: 100%;
 		width: 100%;
-		border-radius: 5px;
-		box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+		height: 300px;
+		position: absolute;
 	}
 	}
 }
 }
-.flex {
-	text-align: center;
-	.f {
-		padding: 15px 12px 15px 12px;
-		border-radius: 5px;
-		margin: 10px;
-		font-size: 15px;
-		text-align: left;
+.main {
+	padding: 15px 15px 50px 15px;
+	width: 100%;
+	margin-top: -50px;
+	overflow: hidden;
+	position: absolute;
+	.menu {
+		background-color: white;
+		border-radius: 10px;
+		padding: 15px;
+		width: 100%;
 		box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
 		box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
-		.ic {
-			float: left;
-			background-color: $theme-color;
-			width: 45px;
-			height: 45px;
-			border-radius: 50%;
-			text-align: center;
+		.icon {
+			font-size: 30px;
+			background-color: red;
+			width: 38px;
+			height: 38px;
+			border-radius: 5px;
+			margin: 0 auto;
 			color: white;
 			color: white;
-			line-height: 45px;
-			margin-right: 5px;
-			.icon {
-				font-size: 30px;
-			}
+			padding: 3px;
+		}
+		.title {
+			padding-top: 4px;
+			font-size: 13px;
+		}
+	}
+	.item {
+		flex: 1;
+		overflow: hidden;
+		padding: 5px;
+		position: relative;
+		image {
+			border-radius: 5px;
+			width: 100%;
+			height: 180px;
+			box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+		}
+		.tag {
+			position: absolute;
+			left: 10px;
+			top: 10px;
+			z-index: 11111;
+			font-weight: bold;
+			color: white;
+			font-size: 16px;
+		}
+		.more {
+			position: absolute;
+			width: 70%;
+			background: #e23e33;
+			opacity: 0.78;
+			color: white;
+			bottom: 20px;
+			border-radius: 5px;
+			left: 16%;
+			padding: 5px 7px;
+			font-size: 13px;
 		}
 		}
 	}
 	}
 }
 }
-.list {
-	.goods_item {
-		box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+.gray {
+	-webkit-filter: grayscale(30%);
+	-moz-filter: grayscale(100%);
+	-ms-filter: grayscale(100%);
+	-o-filter: grayscale(100%);
+	filter: grayscale(30%);
+	filter: black;
+}
+.qj {
+	position: fixed;
+	top: 53%;
+	right: 0px;
+	width: 50px;
+	background: red;
+	z-index: 111;
+	padding: 10px 10px 5px 10px;
+	color: white;
+	font-size: 15px;
+	text-align: center;
+	border-radius: 10px 0px 0px 10px;
+	box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.3);
+	.icon {
+		font-size: 25px;
+		padding-bottom: 3px;
 	}
 	}
 }
 }
 </style>
 </style>

+ 0 - 153
smart-ui-app/pages/order/detail.vue

@@ -1,153 +0,0 @@
-<template>
-	<view>
-		<view class="list">
-			<view class="item">
-				<view class="order_title">
-					<text>广安农机农技智慧服务</text>
-					<view class="zhu">
-						<text class="theme_bg" v-if="item.state == 0">待支付</text>
-						<text style="color: #4CAF50;" v-if="item.state == 1">支付成功,待确认</text>
-						<text style="color: #4CAF50;" v-if="item.state == 2">进行中...</text>
-						<text style="color: #4CAF50;" v-if="item.state == 3">完成交易</text>
-						<text style="color: #4CAF50;" v-if="item.state == -1">已退款</text>
-					</view>
-				</view>
-				<view class="order_item" v-for="(it, index) in item.orderList" :key="index" @click="detail(it)">
-					<image :src="ip + it.pic" class="pic" mode="aspectFill"></image>
-					<view class="con">
-						<view class="title">{{ it.title }}</view>
-						<view class="price">
-							<text>¥{{ it.price }}</text>
-							<text class="day">/天</text>
-						</view>
-					</view>
-					<view class="clear"></view>
-				</view>
-				<button class="kf" open-type="contact">
-					<view class="icon">&#xe62a;</view>
-					<view class="tag">客服</view>
-				</button>
-				<button class="kf" @click="phone()">
-					<view class="icon">&#xe610;</view>
-					<view class="tag">电话</view>
-				</button>
-				<view class="hj">
-					合计:
-					<text class="theme_bg bo pad_left_5">¥ {{ item.totalPrice }}</text>
-				</view>
-				<view class="clear"></view>
-				<view class="tk" v-if="item.state == -1">抱歉,由于我们无法提供服务,该订单由系统取消,你的款项将退回到微信零钱。</view>
-			</view>
-			<view class="info">
-				<u-divider style="padding: 10px;">订单信息</u-divider>
-				<view class="form_group hr">
-					<view class="lable">姓名:</view>
-					<input type="text" v-model="item.name" disabled />
-				</view>
-				<view class="form_group hr">
-					<view class="lable">联系电话:</view>
-					<input type="number" v-model="item.phone" disabled />
-				</view>
-				<view class="form_group hr">
-					<view class="lable">租赁天数:</view>
-					<input type="number" v-model="item.days" disabled />
-				</view>
-				<view class="form_group hr">
-					<view class="lable">备注信息:</view>
-					<textarea v-model="item.notes" disabled />
-				</view>
-				<view class="form_group hr">
-					<view class="lable">创建时间:</view>
-					<input type="text" v-model="item.createTime" disabled />
-				</view>
-				<view class="form_group hr" v-if="item.paySuccessTime">
-					<view class="lable">付款时间:</view>
-					<input type="text" v-model="item.paySuccessTime" disabled />
-				</view>
-				<view class="form_group hr" v-if="item.orderCompleteTime">
-					<view class="lable">完成时间:</view>
-					<input type="text" v-model="item.orderCompleteTime" disabled />
-				</view>
-				<view class="form_group hr" v-if="item.payRefundTime">
-					<view class="lable">退款时间:</view>
-					<input type="text" v-model="item.payRefundTime" disabled />
-				</view>
-				<view class="form_group hr">
-					<view class="lable">订单编号:</view>
-					<input type="text" v-model="item.orderNum" disabled />
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-export default {
-	data() {
-		return {
-			ip: this.$http.urls.ip,
-			item: {}
-		};
-	},
-	onLoad(e) {
-		this.$http.request({
-			url: this.$http.urls.order_detail,
-			data: { orderNum: e.orderNum },
-			success: res => {
-				this.item = res.data.data;
-			}
-		});
-	},
-	methods: {
-		phone() {
-			uni.makePhoneCall({
-				phoneNumber: this.$getInfo().phone
-			});
-		},
-		detail(item) {
-			uni.navigateTo({
-				url: '/pages/goods/detail?id=' + item.goodsId
-			});
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	background-color: $page;
-}
-.list {
-	padding: 10px 15px 25px 15px;
-	.item {
-		background-color: white;
-		padding: 5px 10px;
-		border-radius: 5px;
-		.kf {
-			line-height: 18px !important;
-			float: left;
-			background-color: white;
-			margin-top: 9px;
-			.icon {
-				font-size: 20px;
-			}
-			.tag {
-				font-size: 13px;
-			}
-		}
-		.hj {
-			text-align: right;
-			padding-top: 15px;
-			.pirce {
-				padding-left: 10px;
-				color: $theme-color;
-			}
-		}
-	}
-	.info {
-		background-color: white;
-		border-radius: 5px;
-		margin-top: 10px;
-	}
-}
-</style>

+ 0 - 180
smart-ui-app/pages/order/list.vue

@@ -1,180 +0,0 @@
-<template>
-	<view>
-		<u-tabs :list="tab" active-color="#c74547" :is-scroll="false" :current="current" @change="change"></u-tabs>
-		<view class="list">
-			<view class="item" v-for="(item, key) in list" :key="key" @click="detail(item)">
-				<view class="order_title">
-					<text>广安农机农技智慧服务</text>
-					<view class="zhu">
-						<text class="theme_bg" v-if="item.state == 0">待支付</text>
-						<text style="color: #4CAF50;" v-if="item.state == 1">支付成功,待确认</text>
-						<text style="color: #4CAF50;" v-if="item.state == 2">进行中...</text>
-						<text style="color: #4CAF50;" v-if="item.state == 3">完成交易</text>
-						<text style="color: #4CAF50;" v-if="item.state == -1">已退款</text>
-					</view>
-				</view>
-				<view class="order_item" v-for="(it, index) in item.orderList" :key="index">
-					<image :src="ip + it.pic" class="pic" :class="it.goods.state == 1||it.goods.state==null? 'gray' : ''" mode="aspectFill"></image>
-					<view class="con">
-						<view class="title">{{ it.title }}</view>
-						<view class="price">
-							<text>¥{{ it.price }}</text>
-							<text class="day">/天</text>
-						</view>
-						<view class="err" v-if="it.goods.state == 1||it.goods.state==null">已下架</view>
-					</view>
-					<view class="clear"></view>
-				</view>
-				<view class="hj">
-					合计:
-					<text class="theme_bg bo pad_left_5">¥ {{ item.totalPrice }}</text>
-				</view>
-				<view>
-					<button class="btn" v-if="item.state == 0" @click.stop="pay(item)">去支付</button>
-					<button class="btn cancel" v-if="item.state == 0" @click.stop="cancel(item)">取消订单</button>
-				</view>
-				<view class="clear"></view>
-				<view class="tk" v-if="item.state == -1">抱歉,由于我们无法提供服务,该订单由系统取消,你的款项将原路退回。</view>
-			</view>
-			<view class="loading"><u-loadmore :status="loadMore ? 'loading' : 'nomore'" /></view>
-		</view>
-	</view>
-</template>
-
-<script>
-export default {
-	data() {
-		return {
-			ip: this.$http.urls.ip,
-			tab: [{ name: '所有订单', state: '' }, { name: '待付款', state: 0 }, { name: '进行中', state: 2 }, { name: '已完成', state: 3 }],
-			current: 0,
-			list: [],
-			param: { pageNum: 1, state: '', openId: this.$getUser().openId },
-			loadMore: true
-		};
-	},
-	onLoad() {
-		this.getData();
-	},
-	methods: {
-		//获取数据
-		getData() {
-			this.$http.request({
-				url: this.$http.urls.order_list,
-				data: this.param,
-				loading: 'false',
-				success: res => {
-					this.loadMore = res.data.pages > this.param.pageNum ? true : false;
-					res.data.rows.forEach(item => {
-						this.list.push(item);
-					});
-				}
-			});
-		},
-		change(index) {
-			this.current = index;
-			this.param.state = this.tab[index].state;
-			this.refresh();
-		},
-		detail(item) {
-			uni.navigateTo({
-				url: 'detail?orderNum=' + item.orderNum
-			});
-		},
-		//取消订单
-		cancel(item) {
-			uni.showModal({
-				title: '提示',
-				content: '是否取消该订单?',
-				success: res => {
-					if (res.confirm) {
-						this.$http.request({
-							url: this.$http.urls.order_cancel,
-							data: { orderNum: item.orderNum },
-							success: res => {
-								this.list.splice(this.list.indexOf(item), 1);
-								uni.showToast({ title: '取消成功' });
-							}
-						});
-					}
-				}
-			});
-		},
-		//付款
-		pay(item) {
-			this.$http.request({
-				url: this.$http.urls.pay,
-				method: 'POST',
-				data: item,
-				success: res => {
-					//调起微信支付
-					wx.requestPayment({
-						timeStamp: res.data.data.timeStamp,
-						nonceStr: res.data.data.nonceStr,
-						package: res.data.data.package,
-						signType: res.data.data.signType,
-						paySign: res.data.data.paySign,
-						success: r => {
-							uni.showToast({ title: '支付成功' });
-							item.state = 1;
-						},
-						fail: r => {
-							uni.showToast({ title: '取消支付' });
-						}
-					});
-				}
-			});
-		},
-		//刷新数据
-		refresh() {
-			this.loadMore = true;
-			this.param.pageNum = 1;
-			this.list = [];
-			this.getData();
-		}
-	},
-	//下拉刷新
-	onPullDownRefresh() {
-		setTimeout(() => {
-			uni.stopPullDownRefresh();
-			this.refresh();
-		}, 1000);
-	},
-	//上拉加载
-	onReachBottom() {
-		if (this.loadMore) {
-			this.param.pageNum++;
-			this.getData();
-		}
-	}
-};
-</script>
-
-<style lang="scss">
-page {
-	background-color: $page;
-}
-.list {
-	padding: 0px 15px 25px 15px;
-	.item {
-		background-color: white;
-		padding: 5px 13px 13px 13px;
-		margin-top: 10px;
-		border-radius: 5px;
-		.hj {
-			text-align: right;
-			padding-top: 13px;
-			.pirce {
-				padding-left: 10px;
-				color: $theme-color;
-			}
-		}
-		.btn {
-			margin-top: 10px;
-		}
-		.cancel {
-			background-color: $dar;
-		}
-	}
-}
-</style>

+ 21 - 0
smart-ui-app/pages/travel/detail.vue

@@ -0,0 +1,21 @@
+<template>
+	<view>
+		<image src="../../static/tp.jpg" mode="widthFix" class="pic"></image>
+	</view>
+</template>
+
+<script>
+	export default {
+		data() {
+			return {
+				
+			};
+		}
+	}
+</script>
+
+<style lang="scss">
+.pic{
+	width: 100%;
+}
+</style>

+ 95 - 0
smart-ui-app/pages/travel/index.vue

@@ -0,0 +1,95 @@
+<template>
+	<view>
+		<view class="list">
+			<view class="item" v-for="(item, index) in list" :key="index" @click="detail(item)">
+				<image src="../../static/img2.jpg" mode="aspectFill" class="pic"></image>
+				<view class="con">
+					<view class="title">景区名称</view>
+					<view class="ms">
+						<text class="ll">1233</text>
+						<text class="wz">浏览</text>
+					</view>
+					<view class="lx">
+						<text class="icon">&#xe696;</text>
+						景区路线
+					</view>
+				</view>
+				<view class="clear"></view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+export default {
+	data() {
+		return {
+			list: ['1', '2', '3', '4', '5']
+		};
+	},
+	methods: {
+		//详情
+		detail(item) {
+			uni.navigateTo({ url: '/pages/travel/detail' });
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+.list {
+	padding: 0px 10px 70px 10px;
+	.item {
+		background-color: white;
+		padding: 15px 8px 15px 8px;
+		border-bottom: 1px solid #e5e5e5;
+		border-radius: 5px;
+		margin-top: 10px;
+		box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.2);
+		.pic {
+			float: left;
+			width: 30%;
+			border-radius: 3px;
+			height: 80px;
+			background-color: #dcdcdc;
+		}
+		.con {
+			padding-left: 30px;
+			width: 60%;
+			float: left;
+			.title {
+				font-size: 15px;
+				text-align: left;
+				color: #252525;
+				font-weight: bold;
+			}
+			.ms {
+				margin-top: 10px;
+				.ll {
+					color: #d72424;
+					font-size: 16px;
+					padding-right: 5px;
+				}
+				.wz {
+					font-size: 12px;
+				}
+			}
+			.lx {
+				float: right;
+				color: #fff;
+				background: #d72424;
+				border-radius: 10px;
+				padding: 8px 10px;
+				font-size: 16px;
+				color: white;
+				font-weight: 700;
+				margin-right: -20px;
+				.icon {
+					padding-right: 5px;
+					font-size: 20px;
+				}
+			}
+		}
+	}
+}
+</style>

+ 113 - 85
smart-ui-app/pages/user/my.vue

@@ -1,46 +1,44 @@
 <template>
 <template>
-	<view>
-		<view class="bg theme_bg_bg"></view>
+	<view class="page">
 		<view class="top">
 		<view class="top">
-			<view class="box list dar3">
-				<view class="r hr" @click="navigate('/pages/user/info')">
-					<view class="r20"><image :src="user == '' ? '../../static/ls.jpg' : user.head" class="head"></image></view>
-					<view class="r50">
-						<view class="nickName" v-if="user == ''">登陆/注册</view>
-						<view class="nickName" v-else>
-							{{ user.nickName }}
-							<text class="icon bo">&#xe65a;</text>
-						</view>
-					</view>
-					<view class="clear"></view>
+			<view class="wd">
+				<view class="qw"><image src="../../static/ls.jpg" class="head"></image></view>
+				<view class="xs">
+					<view>登录 / 注册</view>
+					<view class="mt10">张玲</view>
 				</view>
 				</view>
-				<view class="item hr">
-					<button @click="navigate('/pages/order/list')">
-						<text class="icon ic">&#xe70b;</text>
-						我的订单
-						<text class="icon arrow">&#xe65a;</text>
-					</button>
+			</view>
+			<image src="../../static/bj.jpg" mode="aspectFill"></image>
+		</view>
+		<view class="main">
+			<view class="flex menu">
+				<view class="f">
+					<view class="icon" style="background-color: #607D8B">&#xe636;</view>
+					<view class="title">我的预约</view>
 				</view>
 				</view>
-				<view class="item hr">
-					<button open-type="feedback">
-						<text class="icon ic">&#xe617;</text>
-						意见反馈
-						<text class="icon arrow">&#xe65a;</text>
-					</button>
+				<view class="f">
+					<view class="icon" style="background-color: #e23e33;">&#xe610;</view>
+					<view class="title">我的投诉</view>
 				</view>
 				</view>
+				<view class="f">
+					<view class="icon" style="background-color: #2cc937;">&#xe656;</view>
+					<view class="title">我的评论</view>
+				</view>
+				<view class="f">
+					<view class="icon" style="background-color: #2196F3;">&#xe623;</view>
+					<view class="title">我的旅途</view>
+				</view>
+			</view>
+			<view class="list">
 				<view class="item hr">
 				<view class="item hr">
-					<button open-type="contact">
-						<text class="icon ic">&#xe62a;</text>
-						客服会话
-						<text class="icon arrow">&#xe65a;</text>
-					</button>
+					<text class="icon ic">&#xe626;</text>
+					<text>个人资料</text>
+					<text class="icon arrow">&#xe65a;</text>
 				</view>
 				</view>
-				<view class="item">
-					<button open-type="share">
-						<text class="icon ic">&#xe637;</text>
-						分享到
-						<text class="icon arrow">&#xe65a;</text>
-					</button>
+				<view class="item hr">
+					<text class="icon ic">&#xe65f;</text>
+					<text>关于我们</text>
+					<text class="icon arrow">&#xe65a;</text>
 				</view>
 				</view>
 			</view>
 			</view>
 		</view>
 		</view>
@@ -51,19 +49,26 @@
 export default {
 export default {
 	data() {
 	data() {
 		return {
 		return {
-			user: this.$getUser()
+			ip: this.$http.urls.ip,
+			goods_list: []
 		};
 		};
 	},
 	},
-	onShow() {
-		this.user = this.$getUser();
+	onLoad(e) {
+		//this.init();
 	},
 	},
 	methods: {
 	methods: {
-		navigate(url) {
-			if (this.$hasLogin()) {
-				uni.navigateTo({ url: url });
-			} else {
-				uni.navigateTo({ url: '/pages/user/login' });
-			}
+		init() {
+			this.$http.request({
+				url: this.$http.urls.home,
+				success: res => {
+					this.goods_list = res.data.data.goods_list;
+				}
+			});
+			//let user={id:35,nickName:'微信用户',openId:'oD2_E4sMkz3zF_0xjhX_C4vaI_xo',sex:0,phone:'13097850972',token:'eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6Ijc2NTVmOGM0LWY3YTAtNGU0Mi04MDU3LTdkNTA4NGY5NjE2NyJ9.f6xqQVYkm6zlfhZFbCOyj1-iOZtpkHJbUyCB2MNtTW-jgz1_9zcKKOdnw9uX_WJ_2VNrgOn6R5hmQAIm79YIZw'}
+			// uni.setStorageSync('user',user);
+		},
+		detail(item) {
+			uni.navigateTo({ url: '/pages/goods/detail?id=' + item.id });
 		}
 		}
 	}
 	}
 };
 };
@@ -71,50 +76,73 @@ export default {
 
 
 <style lang="scss">
 <style lang="scss">
 .top {
 .top {
-	padding: 15px;
-	margin-top: -50px;
-}
-.bg {
-	height: 70px;
-}
-.r {
-	padding-bottom: 7px;
-	.head {
-		width: 60px;
-		height: 60px;
-		border-radius: 50%;
-		margin-top: -50px;
-		margin-left: 10px;
-		border: 3px solid white;
+	position: relative;
+	height: 300px;
+	color: white;
+	.wd {
+		position: absolute;
+		top: 70px;
+		left: 20px;
+		z-index: 111111;
+		.head {
+			width: 75px;
+			height: 75px;
+			border-radius: 50%;
+		}
+		.xs {
+			margin-left: 100px;
+			width: 100%;
+			font-weight: bold;
+			margin-top: 10px;
+		}
 	}
 	}
-}
-
-.list {
-	background-color: white;
-	margin-top: 10px;
-	box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
-	.nickName {
-		font-size: 13px;
-		color: $dar2;
-		padding: 5px;
+	image {
+		width: 100%;
+		height: 300px;
+		position: absolute;
 	}
 	}
-	.item {
-		padding: 7px;
-		.ic {
-			font-weight: bold;
-			font-size: 20px;
-			padding-right: 10px;
+}
+.main {
+	padding: 15px 15px 50px 15px;
+	width: 100%;
+	margin-top: -50px;
+	overflow: hidden;
+	position: absolute;
+	.menu {
+		background-color: white;
+		border-radius: 10px;
+		padding: 15px;
+		width: 100%;
+		box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+		.icon {
+			font-size: 30px;
+			background-color: red;
+			width: 38px;
+			height: 38px;
+			border-radius: 5px;
+			margin: 0 auto;
+			color: white;
+			padding: 3px;
 		}
 		}
-		.arrow {
-			margin-top: 6px;
-			font-size: 20px;
+		.title {
+			padding-top: 4px;
+			font-size: 13px;
+		}
+	}
+	.list {
+		margin-top: 10px;
+		box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
+		.item {
+			padding: 15px;
+			.ic {
+				font-size: 20px;
+				padding-right: 10px;
+			}
+			.arrow {
+				margin-top: 6px;
+				font-size: 20px;
+			}
 		}
 		}
 	}
 	}
-}
-button {
-	text-align: left;
-	background-color: white;
-	color: #2e2e2e !important;
-	font-size: 14px;
 }
 }
 </style>
 </style>

BIN
smart-ui-app/static/b1.jpg


BIN
smart-ui-app/static/b2.jpg


BIN
smart-ui-app/static/b3.jpg


BIN
smart-ui-app/static/bj.jpg


BIN
smart-ui-app/static/dt.jpg


BIN
smart-ui-app/static/img1.jpg


BIN
smart-ui-app/static/img2.jpg


BIN
smart-ui-app/static/img3.jpg


BIN
smart-ui-app/static/img4.jpg


BIN
smart-ui-app/static/tab/dz.png


BIN
smart-ui-app/static/tab/dz_select.png


BIN
smart-ui-app/static/tab/home.png


BIN
smart-ui-app/static/tab/home_select.png


BIN
smart-ui-app/static/tab/jq.png


BIN
smart-ui-app/static/tab/jq_select.png


BIN
smart-ui-app/static/tab/my.png


BIN
smart-ui-app/static/tab/my_select.png


BIN
smart-ui-app/static/tab/zd.png


BIN
smart-ui-app/static/tab/zd_select.png


BIN
smart-ui-app/static/tp.jpg


BIN
smart-ui-app/static/组-74@2x.jpg


+ 0 - 216
smart-ui-app/uview-ui/components/u-badge/u-badge.vue

@@ -1,216 +0,0 @@
-<template>
-	<view v-if="show" class="u-badge" :class="[
-			isDot ? 'u-badge-dot' : '', 
-			size == 'mini' ? 'u-badge-mini' : '',
-			type ? 'u-badge--bg--' + type : ''
-		]" :style="[{
-			top: offset[0] + 'rpx',
-			right: offset[1] + 'rpx',
-			fontSize: fontSize + 'rpx',
-			position: absolute ? 'absolute' : 'static',
-			color: color,
-			backgroundColor: bgColor
-		}, boxStyle]"
-	>
-		{{showText}}
-	</view>
-</template>
-
-<script>
-	/**
-	 * badge 角标
-	 * @description 本组件一般用于展示头像的地方,如个人中心,或者评论列表页的用户头像展示等场所。
-	 * @tutorial https://www.uviewui.com/components/badge.html
-	 * @property {String Number} count 展示的数字,大于 overflowCount 时显示为 ${overflowCount}+,为0且show-zero为false时隐藏
-	 * @property {Boolean} is-dot 不展示数字,只有一个小点(默认false)
-	 * @property {Boolean} absolute 组件是否绝对定位,为true时,offset参数才有效(默认true)
-	 * @property {String Number} overflow-count 展示封顶的数字值(默认99)
-	 * @property {String} type 使用预设的背景颜色(默认error)
-	 * @property {Boolean} show-zero 当数值为 0 时,是否展示 Badge(默认false)
-	 * @property {String} size Badge的尺寸,设为mini会得到小一号的Badge(默认default)
-	 * @property {Array} offset 设置badge的位置偏移,格式为 [x, y],也即设置的为top和right的值,单位rpx。absolute为true时有效(默认[20, 20])
-	 * @property {String} color 字体颜色(默认#ffffff)
-	 * @property {String} bgColor 背景颜色,优先级比type高,如设置,type参数会失效
-	 * @property {Boolean} is-center 组件中心点是否和父组件右上角重合,优先级比offset高,如设置,offset参数会失效(默认false)
-	 * @example <u-badge type="error" count="7"></u-badge>
-	 */
-	export default {
-		name: 'u-badge',
-		props: {
-			// primary,warning,success,error,info
-			type: {
-				type: String,
-				default: 'error'
-			},
-			// default, mini
-			size: {
-				type: String,
-				default: 'default'
-			},
-			//是否是圆点
-			isDot: {
-				type: Boolean,
-				default: false
-			},
-			// 显示的数值内容
-			count: {
-				type: [Number, String],
-			},
-			// 展示封顶的数字值
-			overflowCount: {
-				type: Number,
-				default: 99
-			},
-			// 当数值为 0 时,是否展示 Badge
-			showZero: {
-				type: Boolean,
-				default: false
-			},
-			// 位置偏移
-			offset: {
-				type: Array,
-				default: () => {
-					return [20, 20]
-				}
-			},
-			// 是否开启绝对定位,开启了offset才会起作用
-			absolute: {
-				type: Boolean,
-				default: true
-			},
-			// 字体大小
-			fontSize: {
-				type: [String, Number],
-				default: '24'
-			},
-			// 字体演示
-			color: {
-				type: String,
-				default: '#ffffff'
-			},
-			// badge的背景颜色
-			bgColor: {
-				type: String,
-				default: ''
-			},
-			// 是否让badge组件的中心点和父组件右上角重合,配置的话,offset将会失效
-			isCenter: {
-				type: Boolean,
-				default: false
-			}
-		},
-		computed: {
-			// 是否将badge中心与父组件右上角重合
-			boxStyle() {
-				let style = {};
-				if(this.isCenter) {
-					style.top = 0;
-					style.right = 0;
-					// Y轴-50%,意味着badge向上移动了badge自身高度一半,X轴50%,意味着向右移动了自身宽度一半
-					style.transform = "translateY(-50%) translateX(50%)";
-				} else {
-					style.top = this.offset[0] + 'rpx';
-					style.right = this.offset[1] + 'rpx';
-					style.transform = "translateY(0) translateX(0)";
-				}
-				// 如果尺寸为mini,后接上scal()
-				if(this.size == 'mini') {
-					style.transform = style.transform + " scale(0.8)";
-				}
-				return style;
-			},
-			// isDot类型时,不显示文字
-			showText() {
-				if(this.isDot) return '';
-				else {
-					if(this.count > this.overflowCount) return `${this.overflowCount}+`;
-					else return this.count;
-				}
-			},
-			// 是否显示组件
-			show() {
-				// 如果count的值为0,并且showZero设置为false,不显示组件
-				if(this.count == 0 && this.showZero == false) return false;
-				else return true;
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	@import "../../libs/css/style.components.scss";
-	
-	.u-badge {
-		/* #ifndef APP-NVUE */
-		display: inline-flex;
-		/* #endif */
-		justify-content: center;
-		align-items: center;
-		line-height: 24rpx;
-		padding: 4rpx 8rpx;
-		border-radius: 100rpx;
-		z-index: 9;
-		
-		&--bg--primary {
-			background-color: $u-type-primary;
-		}
-		
-		&--bg--error {
-			background-color: $u-type-error;
-		}
-		
-		&--bg--success {
-			background-color: $u-type-success;
-		}
-		
-		&--bg--info {
-			background-color: $u-type-info;
-		}
-		
-		&--bg--warning {
-			background-color: $u-type-warning;
-		}
-	}
-	
-	.u-badge-dot {
-		height: 16rpx;
-		width: 16rpx;
-		border-radius: 100rpx;
-		line-height: 1;
-	}
-	
-	.u-badge-mini {
-		transform: scale(0.8);
-		transform-origin: center center;
-	}
-	
-	// .u-primary {
-	// 	background: $u-type-primary;
-	// 	color: #fff;
-	// }
-	
-	// .u-error {
-	// 	background: $u-type-error;
-	// 	color: #fff;
-	// }
-	
-	// .u-warning {
-	// 	background: $u-type-warning;
-	// 	color: #fff;
-	// }
-	
-	// .u-success {
-	// 	background: $u-type-success;
-	// 	color: #fff;
-	// }
-	
-	// .u-black {
-	// 	background: #585858;
-	// 	color: #fff;
-	// }
-	
-	.u-info {
-		background-color: $u-type-info;
-		color: #fff;
-	}
-</style>

+ 0 - 84
smart-ui-app/uview-ui/components/u-table/u-table.vue

@@ -1,84 +0,0 @@
-<template>
-	<view class="u-table" :style="[tableStyle]">
-		<slot />
-	</view>
-</template>
-
-<script>
-	/**
-	 * table 表格
-	 * @description 表格组件一般用于展示大量结构化数据的场景
-	 * @tutorial https://www.uviewui.com/components/table.html
-	 * @property {String} border-color 表格边框的颜色(默认#e4e7ed)
-	 * @property {String} bg-color 表格的背景颜色(默认#ffffff)
-	 * @property {String} align 单元格的内容对齐方式,作用类似css的text-align(默认center)
-	 * @property {String} padding 单元格的内边距,同css的padding写法(默认10rpx 0)
-	 * @property {String Number} font-size 单元格字体大小,单位rpx(默认28)
-	 * @property {String} color 单元格字体颜色(默认#606266)
-	 * @property {Object} th-style th单元格的样式,对象形式(将th所需参数放在table组件,是为了避免每一个th组件要写一遍)
-	 * @event {Function} click 点击组件时触发
-	 * @event {Function} close 点击关闭按钮时触发
-	 * @example <u-table></u-table>
-	 */
-	export default {
-		name: "u-table",
-		props: {
-			borderColor: {
-				type: String,
-				default: '#e4e7ed'
-			},
-			align: {
-				type: String,
-				default: 'center'
-			},
-			// td的内边距
-			padding: {
-				type: String,
-				default: '10rpx 6rpx'
-			},
-			// 字体大小
-			fontSize: {
-				type: [String, Number],
-				default: 28
-			},
-			// 字体颜色
-			color: {
-				type: String,
-				default: '#606266'
-			},
-			// th的自定义样式
-			thStyle: {
-				type: Object,
-				default () {
-					return {}
-				}
-			},
-			// table的背景颜色
-			bgColor: {
-				type: String,
-				default: '#ffffff'
-			}
-		},
-		data() {
-			return {}
-		},
-		computed: {
-			tableStyle() {
-				let style = {};
-				style.borderLeft = `solid 1px ${this.borderColor}`;
-				style.borderTop = `solid 1px ${this.borderColor}`;
-				style.backgroundColor = this.bgColor;;
-				return style;
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	@import "../../libs/css/style.components.scss";
-	
-	.u-table {
-		width: 100%;
-		box-sizing: border-box;
-	}
-</style>

+ 0 - 1
smart-ui-app/uview-ui/components/u-tabs/u-tabs.vue

@@ -8,7 +8,6 @@
 				<view class="u-scroll-box" :class="{'u-tabs-scorll-flex': !isScroll}">
 				<view class="u-scroll-box" :class="{'u-tabs-scorll-flex': !isScroll}">
 					<view class="u-tab-item u-line-1" :id="'u-tab-item-' + index" v-for="(item, index) in list" :key="index" @tap="clickTab(index)"
 					<view class="u-tab-item u-line-1" :id="'u-tab-item-' + index" v-for="(item, index) in list" :key="index" @tap="clickTab(index)"
 					 :style="[tabItemStyle(index)]">
 					 :style="[tabItemStyle(index)]">
-						<u-badge :count="item[count] || item['count'] || 0" :offset="offset" size="mini"></u-badge>
 						{{ item[name] || item['name']}}
 						{{ item[name] || item['name']}}
 					</view>
 					</view>
 					<view v-if="showBar" class="u-tab-bar" :style="[tabBarStyle]"></view>
 					<view v-if="showBar" class="u-tab-bar" :style="[tabBarStyle]"></view>

+ 0 - 294
smart-ui-app/uview-ui/components/u-tag/u-tag.vue

@@ -1,294 +0,0 @@
-<template>
-	<view v-if="show" :class="[
-		disabled ? 'u-disabled' : '',
-		'u-size-' + size,
-		'u-shape-' + shape,
-		'u-mode-' + mode + '-' + type
-	]"
-	 class="u-tag" :style="[customStyle]" @tap="clickTag">
-		{{text}}
-		<view class="u-icon-wrap" @tap.stop>
-			<u-icon @click="close" size="22" v-if="closeable" :color="closeIconColor" 
-			name="close" class="u-close-icon" :style="[iconStyle]"></u-icon>
-		</view>
-	</view>
-</template>
-
-<script>
-	/**
-	 * tag 提示
-	 * @description 该组件一般用于标记和选择
-	 * @tutorial https://www.uviewui.com/components/tag.html
-	 * @property {String} type 主题类型(默认primary)
-	 * @property {String} size 标签大小(默认default)
-	 * @property {String} shape 标签形状(默认square)
-	 * @property {String} text 标签的文字内容
-	 * @property {String} bg-color 自定义标签的背景颜色
-	 * @property {String} border-color 标签的边框颜色
-	 * @property {String} close-color 关闭按钮的颜色
-	 * @property {String Number} index 点击标签时,会通过click事件返回该值
-	 * @property {String} mode 模式选择,见官网说明(默认light)
-	 * @property {Boolean} closeable 是否可关闭,设置为true,文字右边会出现一个关闭图标(默认false)
-	 * @property {Boolean} show 标签显示与否(默认true)
-	 * @event {Function} click 点击标签触发
-	 * @event {Function} close closeable为true时,点击标签关闭按钮触发
-	 * @example <u-tag text="雪月夜" type="success" />
-	 */
-	export default {
-		name: 'u-tag',
-		// 是否禁用这个标签,禁用的话,会屏蔽点击事件
-		props: {
-			// 标签类型info、primary、success、warning、error
-			type: {
-				type: String,
-				default: 'primary'
-			},
-			disabled: {
-				type: [Boolean, String],
-				default: false
-			},
-			// 标签的大小,分为default(默认),mini(较小)
-			size: {
-				type: String,
-				default: 'default'
-			},
-			// tag的形状,circle(两边半圆形), square(方形,带圆角),circleLeft(左边是半圆),circleRight(右边是半圆)
-			shape: {
-				type: String,
-				default: 'square'
-			},
-			// 标签文字
-			text: {
-				type: [String, Number],
-				default: ''
-			},
-			// 背景颜色,默认为空字符串,即不处理
-			bgColor: {
-				type: String,
-				default: ''
-			},
-			// 标签字体颜色,默认为空字符串,即不处理
-			color: {
-				type: String,
-				default: ''
-			},
-			// 镂空形式标签的边框颜色
-			borderColor: {
-				type: String,
-				default: ''
-			},
-			// 关闭按钮图标的颜色
-			closeColor: {
-				type: String,
-				default: ''
-			},
-			// 点击时返回的索引值,用于区分例遍的数组哪个元素被点击了
-			index: {
-				type: [Number, String],
-				default: ''
-			},
-			// 模式选择,dark|light|plain
-			mode: {
-				type: String,
-				default: 'light'
-			},
-			// 是否可关闭
-			closeable: {
-				type: Boolean,
-				default: false
-			},
-			// 是否显示
-			show: {
-				type: Boolean,
-				default: true
-			}
-		},
-		data() {
-			return {
-				
-			}
-		},
-		computed: {
-			customStyle() {
-				let style = {};
-				// 文字颜色(如果有此值,会覆盖type值的颜色)
-				if(this.color) style.color = this.color;
-				// tag的背景颜色(如果有此值,会覆盖type值的颜色)
-				if(this.bgColor) style.backgroundColor = this.bgColor;
-				// 如果是镂空型tag,没有传递边框颜色(borderColor)的话,使用文字的颜色(color属性)
-				if(this.mode == 'plain' && this.color && !this.borderColor) style.borderColor = this.color;
-				else style.borderColor = this.borderColor;
-				return style;
-			},
-			iconStyle() {
-				if(!this.closeable) return ;
-				let style = {};
-				if(this.size == 'mini') style.fontSize = '20rpx';
-				else style.fontSize = '22rpx';
-				if(this.mode == 'plain' || this.mode == 'light') style.color = this.type;
-				else if(this.mode == 'dark')  style.color = "#ffffff";
-				if(this.closeColor) style.color = this.closeColor;
-				return style;
-			},
-			// 关闭图标的颜色
-			closeIconColor() {
-				// 如果定义了关闭图标的颜色,就用此值,否则用字体颜色的值
-				// 如果上面的二者都没有,如果是dark深色模式,图标就为白色
-				// 最后如果上面的三者都不合适,就返回type值给图标获取颜色
-				let color = '';
-				if(this.closeColor) return this.closeColor;
-				else if(this.color) return this.color;
-				else if(this.mode == 'dark') return '#ffffff';
-				else return this.type;
-			}
-		},
-		methods: {
-			// 标签被点击
-			clickTag() {
-				// 如果是disabled状态,不发送点击事件
-				if(this.disabled) return ;
-				this.$emit('click', this.index);
-			},
-			// 点击标签关闭按钮
-			close() {
-				this.$emit('close', this.index);
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	@import "../../libs/css/style.components.scss";
-	
-	.u-tag {
-		box-sizing: border-box;
-		align-items: center;
-		border-radius: 6rpx;
-		/* #ifndef APP-NVUE */
-		display: inline-block;
-		/* #endif */
-		line-height: 1;
-	}
-	
-	.u-size-default {
-		font-size: 22rpx;
-		padding: 12rpx 22rpx;
-	}
-	
-	.u-size-mini {
-		font-size: 20rpx;
-		padding: 6rpx 12rpx;
-	}
-
-	.u-mode-light-primary {
-		background-color: $u-type-primary-light;
-		color: $u-type-primary;
-		border: 1px solid $u-type-primary-disabled;
-	}
-	
-	.u-mode-light-success {
-		background-color: $u-type-success-light;
-		color: $u-type-success;
-		border: 1px solid $u-type-success-disabled;
-	}
-	
-	.u-mode-light-error {
-		background-color: $u-type-error-light;
-		color: $u-type-error;
-		border: 1px solid $u-type-error-disabled;
-	}
-	
-	.u-mode-light-warning {
-		background-color: $u-type-warning-light;
-		color: $u-type-warning;
-		border: 1px solid $u-type-warning-disabled;
-	}
-	
-	.u-mode-light-info {
-		background-color: $u-type-info-light;
-		color: $u-type-info;
-		border: 1px solid $u-type-info-disabled;
-	}
-	
-	.u-mode-dark-primary {
-		background-color: $u-type-primary;
-		color: #FFFFFF;
-	}
-	
-	.u-mode-dark-success {
-		background-color: $u-type-success;
-		color: #FFFFFF;
-	}
-	
-	.u-mode-dark-error {
-		background-color: $u-type-error;
-		color: #FFFFFF;
-	}
-	
-	.u-mode-dark-warning {
-		background-color: $u-type-warning;
-		color: #FFFFFF;
-	}
-	
-	.u-mode-dark-info {
-		background-color: $u-type-info;
-		color: #FFFFFF;
-	}
-	
-	.u-mode-plain-primary {
-		background-color: #FFFFFF;
-		color: $u-type-primary;
-		border: 1px solid $u-type-primary;
-	}
-	
-	.u-mode-plain-success {
-		background-color: #FFFFFF;
-		color: $u-type-success;
-		border: 1px solid $u-type-success;
-	}
-	
-	.u-mode-plain-error {
-		background-color: #FFFFFF;
-		color: $u-type-error;
-		border: 1px solid $u-type-error;
-	}
-	
-	.u-mode-plain-warning {
-		background-color: #FFFFFF;
-		color: $u-type-warning;
-		border: 1px solid $u-type-warning;
-	}
-	
-	.u-mode-plain-info {
-		background-color: #FFFFFF;
-		color: $u-type-info;
-		border: 1px solid $u-type-info;
-	}
-	
-	.u-disabled {
-		opacity: 0.55;
-	}
-
-	.u-shape-circle {
-		border-radius: 100rpx;
-	}
-	
-	.u-shape-circleRight {
-		border-radius:  0 100rpx 100rpx 0;
-	}
-
-	.u-shape-circleLeft {
-		border-radius: 100rpx 0 0 100rpx;
-	}
-	
-	.u-close-icon {
-		margin-left: 14rpx;
-		font-size: 22rpx;
-		color: $u-type-success;
-	}
-	
-	.u-icon-wrap {
-		display: inline-flex;
-		transform: scale(0.86);
-	}
-</style>

+ 0 - 66
smart-ui-app/uview-ui/components/u-td/u-td.vue

@@ -1,66 +0,0 @@
-<template>
-	<view class="u-td" :style="[tdStyle]">
-		<slot></slot>
-	</view>
-</template>
-
-<script>
-	/**
-	 * td td单元格
-	 * @description 表格组件一般用于展示大量结构化数据的场景(搭配u-table使用)
-	 * @tutorial https://www.uviewui.com/components/table.html#td-props
-	 * @property {String Number} width 单元格宽度百分比或者具体带单位的值,如30%, 200rpx等,一般使用百分比,单元格宽度默认为均分tr的长度(默认auto)
-	 * @example <u-td>二年级</u-td>
-	 */
-	export default {
-		name: "u-td",
-		props: {
-			// 宽度,百分比或者具体带单位的值,如30%, 200rpx等,一般使用百分比
-			width: {
-				type: [Number, String],
-				default: 'auto'
-			}
-		},
-		data() {
-			return {
-				tdStyle: {
-					
-				}
-			}
-		},
-		created() {
-			this.parent = false;
-		},
-		mounted() {
-			this.parent = this.$u.$parent.call(this, 'u-table');
-			if (this.parent) {
-				// 将父组件的相关参数,合并到本组件
-				let style = {};
-				if (this.width != "auto") style.flex = `0 0 ${this.width}`;
-				style.textAlign = this.parent.align;
-				style.fontSize = this.parent.fontSize + 'rpx';
-				style.padding = this.parent.padding;
-				style.borderBottom = `solid 1px ${this.parent.borderColor}`;
-				style.borderRight = `solid 1px ${this.parent.borderColor}`;
-				style.color = this.parent.color;
-				this.tdStyle = style;
-			}
-		}
-	};
-</script>
-
-<style lang="scss" scoped>
-	@import "../../libs/css/style.components.scss";
-
-	.u-td {
-		@include vue-flex;
-		flex-direction: column;
-		flex: 1;
-		justify-content: center;
-		font-size: 28rpx;
-		color: $u-content-color;
-		align-self: stretch;
-		box-sizing: border-box;
-		height: 100%;
-	}
-</style>

+ 0 - 62
smart-ui-app/uview-ui/components/u-th/u-th.vue

@@ -1,62 +0,0 @@
-<template>
-	<view class="u-th" :style="[thStyle]">
-		<slot></slot>
-	</view>
-</template>
-
-<script>
-	/**
-	 * th th单元格
-	 * @description 表格组件一般用于展示大量结构化数据的场景(搭配u-table使用)
-	 * @tutorial https://www.uviewui.com/components/table.html#td-props
-	 * @property {String Number} width 标题单元格宽度百分比或者具体带单位的值,如30%,200rpx等,一般使用百分比,单元格宽度默认为均分tr的长度
-	 * @example 暂无示例
-	 */
-	export default {
-		name: "u-th",
-		props: {
-			// 宽度,百分比或者具体带单位的值,如30%, 200rpx等,一般使用百分比
-			width: {
-				type: [Number, String],
-				default: ''
-			}
-		},
-		data() {
-			return {
-				thStyle: {}
-			}
-		},
-		created() {
-			this.parent = false;
-		},
-		mounted() {
-			this.parent = this.$u.$parent.call(this, 'u-table');
-			if (this.parent) {
-				// 将父组件的相关参数,合并到本组件
-				let style = {};
-				if (this.width) style.flex = `0 0 ${this.width}`;
-				style.textAlign = this.parent.align;
-				style.padding = this.parent.padding;
-				style.borderBottom = `solid 1px ${this.parent.borderColor}`;
-				style.borderRight = `solid 1px ${this.parent.borderColor}`;
-				Object.assign(style, this.parent.style);
-				this.thStyle = style;
-			}
-		}
-	};
-</script>
-
-<style lang="scss" scoped>
-	@import "../../libs/css/style.components.scss";
-
-	.u-th {
-		@include vue-flex;
-		flex-direction: column;
-		flex: 1;
-		justify-content: center;
-		font-size: 28rpx;
-		color: $u-main-color;
-		font-weight: bold;
-		background-color: rgb(245, 246, 248);
-	}
-</style>