hwq 1 yıl önce
ebeveyn
işleme
c49f2f02e4

+ 3 - 3
api/index.js

@@ -9,9 +9,9 @@ export function groom4(data) {
 	});
 }
 // 精品推荐
-export function groom1(data) {
+export function groom2(data) {
 	return request({
-		url: '/api/groom/list/1',
+		url: '/api/groom/list/2',
 		method: 'get',
 		data
 	});
@@ -40,4 +40,4 @@ export function enroll(data) {
 		method: 'post',
 		data
 	});
-}
+}

+ 1 - 1
api/user.js

@@ -148,7 +148,7 @@ export function yjzye(data) {
 
 export function jfzz(data) {
 	return request({
-		url: '/api/user/transfer_account',
+		url: '/api/brokeragePriceTransfer',
 		method: 'post',
 		data
 	})

+ 36 - 36
components/wangding-pickerAddress/data.js

@@ -1,21 +1,21 @@
 export default [{
-	"name": "北京",
+	"name": "北京",
 	"city": [{
-		"name": "北京市",
+		"name": "市辖区",
 		"area": ["东城区", "西城区", "朝阳区", "丰台区", "石景山区", "海淀区", "门头沟区", "房山区", "通州区", "顺义区", "昌平区", "大兴区",
 			"怀柔区", "平谷区", "密云区", "延庆区"
 		]
 	}]
 }, {
-	"name": "天津",
+	"name": "天津",
 	"city": [{
-		"name": "天津市",
+		"name": "市辖区",
 		"area": ["和平区", "河东区", "河西区", "南开区", "河北区", "红桥区", "东丽区", "西青区", "津南区", "北辰区", "武清区", "宝坻区", "滨海新区",
 			"宁河区", "静海区", "蓟州区"
 		]
 	}]
 }, {
-	"name": "河北",
+	"name": "河北",
 	"city": [{
 		"name": "石家庄市",
 		"area": ["市辖区", "长安区", "桥西区", "新华区", "井陉矿区", "裕华区", "藁城区", "鹿泉区", "栾城区", "井陉县", "正定县", "行唐县", "灵寿县",
@@ -70,7 +70,7 @@ export default [{
 		"area": ["定州市", "辛集市"]
 	}]
 }, {
-	"name": "山西",
+	"name": "山西",
 	"city": [{
 		"name": "太原市",
 		"area": ["市辖区", "小店区", "迎泽区", "杏花岭区", "尖草坪区", "万柏林区", "晋源区", "清徐县", "阳曲县", "娄烦县", "古交市"]
@@ -116,7 +116,7 @@ export default [{
 		]
 	}]
 }, {
-	"name": "内蒙古",
+	"name": "内蒙古自治区",
 	"city": [{
 		"name": "呼和浩特市",
 		"area": ["市辖区", "新城区", "回民区", "玉泉区", "赛罕区", "土默特左旗", "托克托县", "和林格尔县", "清水河县", "武川县"]
@@ -163,7 +163,7 @@ export default [{
 		"area": ["阿拉善左旗", "阿拉善右旗", "额济纳旗"]
 	}]
 }, {
-	"name": "辽宁",
+	"name": "辽宁",
 	"city": [{
 		"name": "沈阳市",
 		"area": ["市辖区", "和平区", "沈河区", "大东区", "皇姑区", "铁西区", "苏家屯区", "浑南区", "沈北新区", "于洪区", "辽中区", "康平县",
@@ -210,7 +210,7 @@ export default [{
 		"area": ["市辖区", "连山区", "龙港区", "南票区", "绥中县", "建昌县", "兴城市"]
 	}]
 }, {
-	"name": "吉林",
+	"name": "吉林",
 	"city": [{
 		"name": "长春市",
 		"area": ["市辖区", "南关区", "宽城区", "朝阳区", "二道区", "绿园区", "双阳区", "九台区", "农安县", "榆树市", "德惠市"]
@@ -240,7 +240,7 @@ export default [{
 		"area": ["延吉市", "图们市", "敦化市", "珲春市", "龙井市", "和龙市", "汪清县", "安图县"]
 	}]
 }, {
-	"name": "黑龙江",
+	"name": "黑龙江",
 	"city": [{
 		"name": "哈尔滨市",
 		"area": ["市辖区", "道里区", "南岗区", "道外区", "平房区", "松北区", "香坊区", "呼兰区", "阿城区", "双城区", "依兰县", "方正县", "宾县",
@@ -288,7 +288,7 @@ export default [{
 		"area": ["呼玛县", "塔河县", "漠河县"]
 	}]
 }, {
-	"name": "上海",
+	"name": "市辖区",
 	"city": [{
 		"name": "上海市",
 		"area": ["黄浦区", "徐汇区", "长宁区", "静安区", "普陀区", "虹口区", "杨浦区", "闵行区", "宝山区", "嘉定区", "浦东新区", "金山区", "松江区",
@@ -296,7 +296,7 @@ export default [{
 		]
 	}]
 }, {
-	"name": "江苏",
+	"name": "江苏",
 	"city": [{
 		"name": "南京市",
 		"area": ["市辖区", "玄武区", "秦淮区", "建邺区", "鼓楼区", "浦口区", "栖霞区", "雨花台区", "江宁区", "六合区", "溧水区", "高淳区"]
@@ -338,7 +338,7 @@ export default [{
 		"area": ["市辖区", "宿城区", "宿豫区", "沭阳县", "泗阳县", "泗洪县"]
 	}]
 }, {
-	"name": "浙江",
+	"name": "浙江",
 	"city": [{
 		"name": "杭州市",
 		"area": ["市辖区", "上城区", "下城区", "江干区", "拱墅区", "西湖区", "滨江区", "萧山区", "余杭区", "富阳区", "桐庐县", "淳安县", "建德市",
@@ -376,7 +376,7 @@ export default [{
 		"area": ["市辖区", "莲都区", "青田县", "缙云县", "遂昌县", "松阳县", "云和县", "庆元县", "景宁畲族自治县", "龙泉市"]
 	}]
 }, {
-	"name": "安徽",
+	"name": "安徽",
 	"city": [{
 		"name": "合肥市",
 		"area": ["市辖区", "瑶海区", "庐阳区", "蜀山区", "包河区", "长丰县", "肥东县", "肥西县", "庐江县", "巢湖市"]
@@ -427,7 +427,7 @@ export default [{
 		"area": ["市辖区", "宣州区", "郎溪县", "广德县", "泾县", "绩溪县", "旌德县", "宁国市"]
 	}]
 }, {
-	"name": "福建",
+	"name": "福建",
 	"city": [{
 		"name": "福州市",
 		"area": ["市辖区", "鼓楼区", "台江区", "仓山区", "马尾区", "晋安区", "闽侯县", "连江县", "罗源县", "闽清县", "永泰县", "平潭县", "福清市",
@@ -459,7 +459,7 @@ export default [{
 		"area": ["市辖区", "蕉城区", "霞浦县", "古田县", "屏南县", "寿宁县", "周宁县", "柘荣县", "福安市", "福鼎市"]
 	}]
 }, {
-	"name": "江西",
+	"name": "江西",
 	"city": [{
 		"name": "南昌市",
 		"area": ["市辖区", "东湖区", "西湖区", "青云谱区", "湾里区", "青山湖区", "新建区", "南昌县", "安义县", "进贤县"]
@@ -501,7 +501,7 @@ export default [{
 		"area": ["市辖区", "信州区", "广丰区", "上饶县", "玉山县", "铅山县", "横峰县", "弋阳县", "余干县", "鄱阳县", "万年县", "婺源县", "德兴市"]
 	}]
 }, {
-	"name": "山东",
+	"name": "山东",
 	"city": [{
 		"name": "济南市",
 		"area": ["市辖区", "历下区", "市中区", "槐荫区", "天桥区", "历城区", "长清区", "平阴县", "济阳县", "商河县", "章丘市"]
@@ -555,7 +555,7 @@ export default [{
 		"area": ["市辖区", "牡丹区", "定陶区", "曹县", "单县", "成武县", "巨野县", "郓城县", "鄄城县", "东明县"]
 	}]
 }, {
-	"name": "河南",
+	"name": "河南",
 	"city": [{
 		"name": "郑州市",
 		"area": ["市辖区", "中原区", "二七区", "管城回族区", "金水区", "上街区", "惠济区", "中牟县", "巩义市", "荥阳市", "新密市", "新郑市",
@@ -618,7 +618,7 @@ export default [{
 		"area": ["济源市"]
 	}]
 }, {
-	"name": "湖北",
+	"name": "湖北",
 	"city": [{
 		"name": "武汉市",
 		"area": ["市辖区", "江岸区", "江汉区", "硚口区", "汉阳区", "武昌区", "青山区", "洪山区", "东西湖区", "汉南区", "蔡甸区", "江夏区", "黄陂区",
@@ -667,7 +667,7 @@ export default [{
 		"area": ["仙桃市", "潜江市", "天门市", "神农架林区"]
 	}]
 }, {
-	"name": "湖南",
+	"name": "湖南",
 	"city": [{
 		"name": "长沙市",
 		"area": ["市辖区", "芙蓉区", "天心区", "岳麓区", "开福区", "雨花区", "望城区", "长沙县", "宁乡县", "浏阳市"]
@@ -716,7 +716,7 @@ export default [{
 		"area": ["吉首市", "泸溪县", "凤凰县", "花垣县", "保靖县", "古丈县", "永顺县", "龙山县"]
 	}]
 }, {
-	"name": "广东",
+	"name": "广东",
 	"city": [{
 		"name": "广州市",
 		"area": ["市辖区", "荔湾区", "越秀区", "海珠区", "天河区", "白云区", "黄埔区", "番禺区", "花都区", "南沙区", "从化区", "增城区"]
@@ -788,7 +788,7 @@ export default [{
 		"area": ["市辖区", "云城区", "云安区", "新兴县", "郁南县", "罗定市"]
 	}]
 }, {
-	"name": "广西",
+	"name": "广西壮族自治区",
 	"city": [{
 		"name": "南宁市",
 		"area": ["市辖区", "兴宁区", "青秀区", "江南区", "西乡塘区", "良庆区", "邕宁区", "武鸣区", "隆安县", "马山县", "上林县", "宾阳县", "横县"]
@@ -839,7 +839,7 @@ export default [{
 		"area": ["市辖区", "江州区", "扶绥县", "宁明县", "龙州县", "大新县", "天等县", "凭祥市"]
 	}]
 }, {
-	"name": "海南",
+	"name": "海南",
 	"city": [{
 		"name": "海口市",
 		"area": ["市辖区", "秀英区", "龙华区", "琼山区", "美兰区"]
@@ -861,9 +861,9 @@ export default [{
 		]
 	}]
 }, {
-	"name": "重庆",
+	"name": "重庆",
 	"city": [{
-		"name": "重庆市",
+		"name": "市辖区",
 		"area": ["万州区", "涪陵区", "渝中区", "大渡口区", "江北区", "沙坪坝区", "九龙坡区", "南岸区", "北碚区", "綦江区", "大足区", "渝北区",
 			"巴南区", "黔江区", "长寿区", "江津区", "合川区", "永川区", "南川区", "璧山区", "铜梁区", "潼南区", "荣昌区", "开州区"
 		]
@@ -874,7 +874,7 @@ export default [{
 		]
 	}]
 }, {
-	"name": "四川",
+	"name": "四川",
 	"city": [{
 		"name": "成都市",
 		"area": ["市辖区", "锦江区", "青羊区", "金牛区", "武侯区", "成华区", "龙泉驿区", "青白江区", "新都区", "温江区", "双流区", "金堂县", "郫县",
@@ -948,7 +948,7 @@ export default [{
 		]
 	}]
 }, {
-	"name": "贵州",
+	"name": "贵州",
 	"city": [{
 		"name": "贵阳市",
 		"area": ["市辖区", "南明区", "云岩区", "花溪区", "乌当区", "白云区", "观山湖区", "开阳县", "息烽县", "修文县", "清镇市"]
@@ -984,7 +984,7 @@ export default [{
 		"area": ["都匀市", "福泉市", "荔波县", "贵定县", "瓮安县", "独山县", "平塘县", "罗甸县", "长顺县", "龙里县", "惠水县", "三都水族自治县"]
 	}]
 }, {
-	"name": "云南",
+	"name": "云南",
 	"city": [{
 		"name": "昆明市",
 		"area": ["市辖区", "五华区", "盘龙区", "官渡区", "西山区", "东川区", "呈贡区", "晋宁县", "富民县", "宜良县", "石林彝族自治县", "嵩明县",
@@ -1043,7 +1043,7 @@ export default [{
 		"area": ["香格里拉市", "德钦县", "维西傈僳族自治县"]
 	}]
 }, {
-	"name": "西藏",
+	"name": "西藏自治区",
 	"city": [{
 		"name": "拉萨市",
 		"area": ["市辖区", "城关区", "堆龙德庆区", "林周县", "当雄县", "尼木县", "曲水县", "达孜县", "墨竹工卡县"]
@@ -1069,7 +1069,7 @@ export default [{
 		"area": ["普兰县", "札达县", "噶尔县", "日土县", "革吉县", "改则县", "措勤县"]
 	}]
 }, {
-	"name": "陕西",
+	"name": "陕西",
 	"city": [{
 		"name": "西安市",
 		"area": ["市辖区", "新城区", "碑林区", "莲湖区", "灞桥区", "未央区", "雁塔区", "阎良区", "临潼区", "长安区", "高陵区", "蓝田县", "周至县",
@@ -1108,7 +1108,7 @@ export default [{
 		"area": ["市辖区", "商州区", "洛南县", "丹凤县", "商南县", "山阳县", "镇安县", "柞水县"]
 	}]
 }, {
-	"name": "甘肃",
+	"name": "甘肃",
 	"city": [{
 		"name": "兰州市",
 		"area": ["市辖区", "城关区", "七里河区", "西固区", "安宁区", "红古区", "永登县", "皋兰县", "榆中县"]
@@ -1153,7 +1153,7 @@ export default [{
 		"area": ["合作市", "临潭县", "卓尼县", "舟曲县", "迭部县", "玛曲县", "碌曲县", "夏河县"]
 	}]
 }, {
-	"name": "青海",
+	"name": "青海",
 	"city": [{
 		"name": "西宁市",
 		"area": ["市辖区", "城东区", "城中区", "城西区", "城北区", "大通回族土族自治县", "湟中县", "湟源县"]
@@ -1180,7 +1180,7 @@ export default [{
 		"area": ["格尔木市", "德令哈市", "乌兰县", "都兰县", "天峻县"]
 	}]
 }, {
-	"name": "宁夏",
+	"name": "宁夏回族自治区",
 	"city": [{
 		"name": "银川市",
 		"area": ["市辖区", "兴庆区", "西夏区", "金凤区", "永宁县", "贺兰县", "灵武市"]
@@ -1198,7 +1198,7 @@ export default [{
 		"area": ["市辖区", "沙坡头区", "中宁县", "海原县"]
 	}]
 }, {
-	"name": "新疆",
+	"name": "新疆维吾尔自治区",
 	"city": [{
 		"name": "乌鲁木齐市",
 		"area": ["市辖区", "天山区", "沙依巴克区", "新市区", "水磨沟区", "头屯河区", "达坂城区", "米东区", "乌鲁木齐县"]
@@ -1248,7 +1248,7 @@ export default [{
 		"area": ["石河子市", "阿拉尔市", "图木舒克市", "五家渠市", "铁门关市"]
 	}]
 }, {
-	"name": "香港",
+	"name": "香港特别行政区",
 	"city": [{
 		"name": "香港特别行政区",
 		"area": ["中西区", "东区", "九龙城区", "观塘区", "南区", "深水埗区", "湾仔区", "黄大仙区", "油尖旺区", "离岛区", "葵青区", "北区", "西贡区",
@@ -1256,7 +1256,7 @@ export default [{
 		]
 	}]
 }, {
-	"name": "澳门",
+	"name": "澳门特别行政区",
 	"city": [{
 		"name": "澳门特别行政区",
 		"area": ["澳门半岛", "凼仔", "路凼城", "路环"]

+ 85 - 85
manifest.json

@@ -1,86 +1,86 @@
 {
-	"name": "华中康新堂",
-	"appid": "__UNI__E0158B1",
-	"description": "",
-	"versionName": "1.0.0",
-	"versionCode": "100",
-	"transformPx": false,
-	"app-plus": {
-		/* 5+App特有相关 */
-		"usingComponents": true,
-		"splashscreen": {
-			"alwaysShowBeforeRender": true,
-			"waiting": true,
-			"autoclose": true,
-			"delay": 0
-		},
-		"modules": {},
-		/* 模块配置 */
-		"distribute": {
-			/* 应用发布信息 */
-			"android": {
-				/* android打包配置 */
-				"permissions": [
-					"<uses-feature android:name=\"android.hardware.camera\"/>",
-					"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
-					"<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
-					"<uses-permission android:name=\"android.permission.CAMERA\"/>",
-					"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
-					"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
-					"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
-					"<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
-					"<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
-					"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
-					"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
-					"<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>"
-				],
-				"abiFilters": ["armeabi-v7a", "arm64-v8a", "x86"]
-			},
-			"ios": {
-				"idfa": false
-			},
-			/* ios打包配置 */
-			"sdkConfigs": {
-				"maps": {},
-				"oauth": {
-					"weixin": {
-						"appid": "",
-						"appsecret": "",
-						"UniversalLinks": ""
-					}
-				}
-			}
-		}
-	},
-	/* SDK配置 */
-	"quickapp": {},
-	/* 快应用特有相关 */
-	"mp-weixin": {
-		/* 小程序特有相关 */
-		"usingComponents": true,
-		"appid": "",
-		"setting": {
-			"urlCheck": true,
-			"minified": true
-		}
-	},
-	"h5": {
-		"title": "华中康新堂",
-		"domain": "",
-		"router": {
-			"base": "/index/",
-			"mode": "hash"
-		},
-		"devServer": {
-			"proxy": {
-				"/api": {
-					"target": "http://kxt.liuniukj.com/api",
-					// "changeOrigin": true,
-					"pathRewrite": {
-						"/api": "" // rewrite path
-					}
-				}
-			}
-		}
-	}
-}
+    "name" : "华中康新堂",
+    "appid" : "__UNI__E0158B1",
+    "description" : "",
+    "versionName" : "1.0.0",
+    "versionCode" : "100",
+    "transformPx" : false,
+    "app-plus" : {
+        /* 5+App特有相关 */
+        "usingComponents" : true,
+        "splashscreen" : {
+            "alwaysShowBeforeRender" : true,
+            "waiting" : true,
+            "autoclose" : true,
+            "delay" : 0
+        },
+        "modules" : {},
+        /* 模块配置 */
+        "distribute" : {
+            /* 应用发布信息 */
+            "android" : {
+                /* android打包配置 */
+                "permissions" : [
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+                    "<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
+                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
+                    "<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_CONTACTS\"/>"
+                ],
+                "abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ]
+            },
+            "ios" : {
+                "idfa" : false
+            },
+            /* ios打包配置 */
+            "sdkConfigs" : {
+                "maps" : {},
+                "oauth" : {
+                    "weixin" : {
+                        "appid" : "",
+                        "appsecret" : "",
+                        "UniversalLinks" : ""
+                    }
+                }
+            }
+        }
+    },
+    /* SDK配置 */
+    "quickapp" : {},
+    /* 快应用特有相关 */
+    "mp-weixin" : {
+        /* 小程序特有相关 */
+        "usingComponents" : true,
+        "appid" : "",
+        "setting" : {
+            "urlCheck" : true,
+            "minified" : true
+        }
+    },
+    "h5" : {
+        "title" : "华中康新堂",
+        "domain" : "",
+        "router" : {
+            "base" : "/index/",
+            "mode" : "hash"
+        },
+        "devServer" : {
+            "proxy" : {
+                "/api" : {
+                    "target" : "http://kxt.liuniukj.com/api",
+                    // "changeOrigin": true,
+                    "pathRewrite" : {
+                        "/api" : "" // rewrite path
+                    }
+                }
+            }
+        }
+    }
+}

+ 7 - 1
pages.json

@@ -191,6 +191,12 @@
 				"navigationBarTitleText": "奖励提现"
 			}
 		},
+		{
+			"path": "pages/user/yjzz",
+			"style": {
+				"navigationBarTitleText": "转账"
+			}
+		},
 		{
 			"path": "pages/user/favorites",
 			"style": {
@@ -330,7 +336,7 @@
 	},
 	"tabBar": {
 		"color": "#C0C4CC",
-		"selectedColor": "#363F5B",
+		"selectedColor": "#9C0B18",
 		"borderStyle": "black",
 		"backgroundColor": "#ffffff",
 		"list": [{

+ 76 - 156
pages/index/artDetail.vue

@@ -1,186 +1,106 @@
 <template>
 	<view class="center">
-		<view class="hotgoods">
-			<view class="hotgoods-item" v-for="item in list" :key="item.id"
-				@click="navto('/pages/product/product?id=' + item.id + '&isfg=1')" style="height: 520rpx;">
-				<view class="image-wrapper">
-					<image class="image" :src="item.image" mode="scaleToFill"></image>
-				</view>
-				<view class="flex"
-					style="flex-direction: column;justify-content: space-between;align-items: flex-start;height: 170rpx;">
-					<view class="title clamp2">{{item.store_name}}</view>
-					<view class="hot-price">
-						<view class="price">
-							<text class="font-size-sm"></text>
-							¥{{ item.price * 1 }}
-						</view>
-						<view class="yuanPrice" v-if="item.ot_price*1 > item.price*1">¥{{ item.ot_price*1 }}</view>
-					</view>
-				</view>
-
-			</view>
+		<view class="title clamp">{{ item.title }}</view>
+		<view class="tip flex">
+			<view class="tip-left">作者:{{ item.author }}</view>
+			<view class="tip-right">{{ item.add_time }}</view>
+		</view>
+		<view class="main" v-for="(ls, index) in item.content" :key="index">
+			<view v-if="ls.type == 'rich-text'" v-html="ls.value" class="main"></view>
+			<video v-if="ls.type == 'video' && ls.value" :src="ls.value" style="width:100%;height: 300px"
+				frameborder="0"></video>
 		</view>
-		<uni-load-more :status="loadingType"></uni-load-more>
 	</view>
 </template>
 
 <script>
 	import {
-		loadIndexs,
-		groom1
-	} from '@/api/index.js';
+		details
+	} from '@/api/user.js';
 	export default {
 		data() {
 			return {
 				id: '',
-				list: [],
-				page: 1,
-				limit: 10,
-				loadingType: 'more'
+				item: ''
 			};
 		},
-		onLoad() {
+		onLoad(option) {
+			this.id = option.id;
 			this.loadData();
 		},
 		methods: {
 			loadData() {
-				this.loadingType = 'loading'
-				groom1().then(res => {
-					this.list = res.data.list
-					this.loadingType = 'noMore'
-				})
+				details({}, this.id).then(({
+					data
+				}) => {
+					console.log(data);
+					data.content = data.content.replace(/<img/g, '<img class="rich-img"').replace(/<p>\s*<img/g,
+						'<p class="pHeight"><img');
+					data.content = this.getVideo(data.content);
+					this.item = data;
+				});
 			},
-			navto(url, type = 0) {
-				if (type == 1) {
-					if (!this.hasLogin) {
-						// 保存地址
-						saveUrl();
-						// 登录拦截
-						interceptor();
-					} else {
-						uni.navigateTo({
-							url,
-							fail() {
-								uni.switchTab({
-									url
-								})
-							}
-						})
+			// 富文本视频解析
+			getVideo(data) {
+				let videoList = [];
+				let videoReg = /<video.*?(?:>|\/>)/gi; //匹配到字符串中的 video 标签
+				let srcReg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i; //匹配到字符串中的 video 标签 的路径
+				let arr = data.match(videoReg) || []; // arr 为包含所有video标签的数组
+				let articleList = data.split('</video>'); // 把字符串  从视频标签分成数组
+				arr.forEach((item, index) => {
+					var src = item.match(srcReg);
+					videoList.push(src[1]); //所要显示的字符串中 所有的video 标签 的路径
+				});
+				let needArticleList = [];
+				articleList.forEach((item, index) => {
+					if (item != '' && item != undefined) {
+						//  常见的标签渲染
+						needArticleList.push({
+							type: 'rich-text',
+							value: item + '</video>'
+						});
 					}
-				} else {
-					uni.navigateTo({
-						url,
-						fail() {
-							uni.switchTab({
-								url
-							})
-						}
-					})
-				}
-			
-			},
+					let articleListLength = articleList.length; // 插入到原有video 标签位置
+					if (index < articleListLength && videoList[index] != undefined) {
+						needArticleList.push({
+							type: 'video',
+							value: videoList[index]
+						});
+					}
+				});
+				return needArticleList;
+			}
 		}
 	};
 </script>
 
-<style lang="scss">
-	.hotgoods {
-		margin-top: 38rpx;
+<style lang="less">
+	.center {
 		width: 100%;
-		display: flex;
-		flex-wrap: wrap;
-		padding: 0 20rpx 30rpx;
-		justify-content: space-between;
-
-		.hotgoods-item {
-			width: 345rpx;
-			background-color: #ffffff;
-			border-radius: 12rpx;
-			box-shadow: 0 0 15rpx rgba(0, 0, 0, 0.2);
-			margin-bottom: 15rpx;
-
-			.image-wrapper {
-				width: 345rpx;
-				height: 345rpx;
-				border-radius: 3px;
-				overflow: hidden;
-				position: relative;
-
-				.image-bg {
-					position: absolute;
-					top: 0;
-					left: 0;
-					right: 0;
-					bottom: 0;
-					width: 100%;
-					height: 100%;
-					opacity: 1;
-					border-radius: 12rpx 12rpx 0 0;
-					z-index: 2;
-				}
-
-				.image {
-					width: 100%;
-					height: 100%;
-					opacity: 1;
-					border-radius: 12rpx 12rpx 0 0;
-				}
-			}
-
-			.title {
-				margin-top: 24rpx;
-				padding: 0 20rpx;
-				font-size: 32rpx;
-				font-weight: 500;
-				color: #333333;
-			}
-
-			.hot-price {
-				display: flex;
-				justify-content: flex-start;
-				align-items: center;
-				// padding: 14rpx 0 30rpx;
-
-				.hotPrice-box {
-					padding: 2rpx 6rpx;
-
-					background: linear-gradient(90deg, #c79a4c, #f9df7f);
-					border-radius: 5rpx;
-					text-align: center;
-					line-height: 28rpx;
-					font-size: 20rpx;
-					font-family: Source Han Sans CN;
-					font-weight: 400;
-					color: #ffffff;
-				}
-
-				.price {
-					margin-left: 10rpx;
-					font-size: 40rpx;
-					color: #ff0000;
-					font-weight: 500;
+		height: 100%;
+	}
 
-					.jf {
-						font-size: 20rpx;
-					}
-				}
+	.title {
+		padding: 30rpx 30rpx 0 24rpx;
+		font-size: 32rpx;
+		font-family: PingFang SC;
+		font-weight: bold;
+		color: #333333;
+	}
 
-				.yuanPrice {
-					margin-left: 10rpx;
-					font-size: 20rpx;
-					font-family: PingFang SC;
-					font-weight: 500;
-					text-decoration: line-through;
-					color: #999999;
-				}
+	.tip {
+		padding: 38rpx 32rpx 28rpx 24rpx;
+		font-size: 24rpx;
+		font-family: PingFang SC;
+		font-weight: 500;
+		color: #666666;
+		border-bottom: 1px solid #e9e9e9;
+	}
 
-				.cart-icon {
-					image {
-						width: 44rpx;
-						height: 44rpx;
-					}
-				}
-			}
+	/deep/ .main {
+		.rich-img {
+			width: 100% !important;
+			height: auto;
 		}
 	}
-</style>
+</style>

+ 93 - 282
pages/index/index.vue

@@ -29,12 +29,18 @@
 				</view>
 				<view class="item-title">全部商品</view>
 			</view>
-			<view class="cate-item flex" @click="navto('/pages/index/artDetail')">
+			<view class="cate-item flex" @click="navto('/pages/index/artDetail?id=1')">
 				<view class="img-wrapper flex">
 					<image src="../../static/icon/in2.png" mode=""></image>
 				</view>
 				<view class="item-title">公司介绍</view>
 			</view>
+			<view class="cate-item flex" @click="navTo('/pages/product/classify?type=3')">
+				<view class="img-wrapper flex">
+					<image src="../../static/icon/in5.png" mode=""></image>
+				</view>
+				<view class="item-title">爆款区</view>
+			</view>
 			<view class="cate-item flex" @click="openKf">
 				<view class="img-wrapper flex">
 					<image src="../../static/icon/in3.png" mode=""></image>
@@ -49,64 +55,10 @@
 			</view>
 		</view>
 		<!-- 分类 ed -->
-		<view class="jg">
-
-		</view>
-		<!-- 爆款商品列表 start -->
-		<view class="hot-wrap">
-			<view class="hot-top-box flex">
-				<view class="hot-top flex">
-					<image src="../../static/icon/bkq.png" mode=""></image>
-					<view class="">
-						爆款区
-					</view>
-				</view>
-				<view class="hot-right" @click="navTo('/pages/product/classify?type=1')">
-					<view class="">
-						更多
-					</view>
-					<image src="../../static/icon/back.png" mode=""></image>
-				</view>
-			</view>
-			<view class="commodity flex">
-				<view class="commodity-item" v-for="(item, index) in firstList" :key="item.id"
-					@click="navTo('/pages/product/product?id=' + item.id+'&isvip=1')">
-					<image class="commodity-image" :src="item.image" mode=""></image>
-					<view class="commodity-title clamp">{{ item.store_name }}</view>
-					<view class="vip-price">
-						¥{{ item.price*1 }}<text class="price">¥200</text>
-					</view>
-				</view>
-			</view>
-		</view>
-		<!-- 爆款商品列表 ed-->
-		<view class="jg"></view>
 		<!-- 进货商品列表 start -->
-		<view class="hot-wrap">
-			<view class="hot-top-box flex">
-				<view class="hot-top flex">
-					<image src="../../static/icon/hhh.png" mode=""></image>
-					<view class="">
-						进货区
-					</view>
-				</view>
-				<view class="hot-right" @click="navTo('/pages/product/classify?type=2')">
-					<view class="">
-						更多
-					</view>
-					<image src="../../static/icon/back.png" mode=""></image>
-				</view>
-			</view>
-			<view class="commodity flex">
-				<view class="commodity-item" v-for="(item, index) in firstList" :key="item.id"
-					@click="navTo('/pages/product/product?id=' + item.id+'&isvip=1')">
-					<image class="commodity-image" :src="item.image" mode=""></image>
-					<view class="commodity-title clamp">{{ item.store_name }}</view>
-					<view class="vip-price">
-						¥{{ item.price*1 }}<text class="price">¥200</text>
-					</view>
-				</view>
-			</view>
+		<view v-if="userInfo && userInfo. is_power == 1" class="jhq" @click="navTo('/pages/product/classify?type=2')">
+			<image src="../../static/img/jhq.png" mode="widthFix">
+			</image>
 		</view>
 		<!-- 进货商品列表 ed-->
 		<view class="jg"></view>
@@ -115,29 +67,20 @@
 			<view class="goodsList-title">
 				<image src="../../static/icon/title.png" mode=""></image>
 			</view>
-			<view class="goodsList-box">
-				<view class="goodsList-item flex" :key="ind" v-for="(ls, ind) in firstList"
+			<view class="goodsList-box flex">
+				<view class="goodsList-item" :key="ind" v-for="(ls, ind) in firstList"
 					@click="navTo('/pages/product/product?id=' + ls.id)">
-					<image :src="ls.image" mode=" scaleToFill"></image>
-					<view class="goodsList-content">
-						<view class="title clamp2">
-							<text>{{ ls.store_name }}</text>
-						</view>
-						<view class="goods-money flex">
-							<view class="money-box">
-								<view class="old-price" v-if="ls.ot_price * 1 > ls.price * 1">
-									<text class="old-left">¥{{ ls.ot_price }}</text>
-									<image src="../../static/icon/down.png" mode="widthFix"></image>
-									<text class="old-right">直降{{ ls.ot_price * 1 - ls.price * 1 }}元</text>
-								</view>
-								<view class="otMoney-box flex">
-									<view class="otMoney">¥{{ ls.price }}</view>
-									<view class="goodsList-btn">
-										立即购买
-									</view>
-								</view>
-							</view>
+					<view class="image-wrapper">
+						<image class="image" :src="ls.image" mode=" scaleToFill"></image>
+					</view>
+					<view class="title clamp2">
+						{{ ls.store_name }}
+					</view>
+					<view class="hot-price">
+						<view class="price">
+							<text>¥{{ ls.price * 1 }}</text>
 						</view>
+
 					</view>
 				</view>
 			</view>
@@ -212,11 +155,8 @@
 				page: 1,
 				limit: 5,
 				firstList: [],
-				goodList: [], //商品列表
-				shopList: [],
 				period: 1,
 				shareImage: '',
-				fgList: '', //复购商品
 			};
 		},
 		computed: {
@@ -271,7 +211,6 @@
 		},
 		onReachBottom() {
 			console.log('到底')
-			// this.getGoodList()
 		},
 		onLoad: function(option) {
 			// #ifdef MP
@@ -285,35 +224,25 @@
 			// #endif
 		},
 		onShow: function() {
-			this.getGoodList()
 			this.loadData();
-			this.groom1()
+			if (hasLogin) {
+				this.getuser()
+			}
 		},
 		methods: {
-			//获取复购商品
-			groom1() {
-				groom1().then(res => {
-					console.log(res)
-					this.fgList = res.data.list
-				})
-			},
-			getGoodList() {
-				let obj = this
-				if (obj.loadingType == 'loading' || obj.loadingType == 'noMore') {
-					return
-				}
-				obj.loadingType = 'loading'
-				getProducts({
-					page: 1,
-					limit: 50,
-				}).then(res => {
-					obj.goodList = res.data
-					if (obj.limit == res.data.length) {
-						obj.loadingType = 'more'
-					} else {
-						obj.loadingType = 'noMore'
-					}
-				})
+			...mapMutations('user', ['setUserInfo']),
+			getuser() {
+				getUserInfo({})
+					.then(({
+						data
+					}) => {
+						obj.setUserInfo(data);
+
+					})
+					.catch(e => {
+						console.log(e);
+					});
+
 			},
 			navto(url, type = 0) {
 				if (type == 1) {
@@ -371,10 +300,6 @@
 						console.log(goods, '商品信息');
 						this.carouselList = data.banner;
 						this.swiperLength = this.carouselList.length;
-						this.bastList = data.giftInfo; //会员礼包
-						data.info.firstList.forEach(e => {
-							e.isVip = e.store_type ? "3" : "0"
-						})
 						this.firstList = data.info.firstList //首页商品
 						uni.stopPullDownRefresh();
 					})
@@ -578,8 +503,8 @@
 			justify-content: center;
 
 			.img-wrapper {
-				width: 123rpx;
-				height: 123rpx;
+				width: 100rpx;
+				height: 100rpx;
 				border-radius: 20rpx;
 				position: relative;
 
@@ -595,106 +520,13 @@
 
 			.item-title {
 				margin-top: 15rpx;
-				font-size: 26rpx;
+				font-size: 24rpx;
 				font-weight: 500;
 				color: #333333;
 			}
 		}
 	}
 
-	.hot-wrap {
-		.hot-top-box {
-			width: 750rpx;
-			padding: 40rpx 22rpx 0rpx;
-			background: linear-gradient(#FFFFFF, rgba(255, 255, 255, 0));
-		}
-
-		.hot-top {
-			justify-content: flex-start;
-			font-size: 32rpx;
-			font-weight: 800;
-			color: #000000;
-
-			image {
-				width: 36rpx;
-				height: 36rpx;
-				margin-right: 12rpx;
-			}
-		}
-
-		.hot-right {
-			display: flex;
-			align-items: center;
-			justify-content: flex-end;
-			font-size: 24rpx;
-			font-family: PingFang SC;
-			font-weight: 500;
-			color: #9A9A9A;
-
-			image {
-				width: 12rpx;
-				height: 21rpx;
-				margin-left: 12rpx;
-			}
-		}
-
-		.commodity {
-			background: #ffffff;
-			border-radius: 8rpx;
-			margin: 20rpx 0 0;
-			flex-wrap: wrap;
-			justify-content: flex-start;
-
-			.commodity-item {
-				width: 33%;
-				display: flex;
-				flex-direction: column;
-				align-items: center;
-
-				.commodity-image {
-					width: 208rpx;
-					height: 208rpx;
-					border-radius: 10rpx;
-					background: #E7E2E2;
-				}
-
-				.commodity-title {
-					margin-top: 14rpx;
-					width: 208rpx;
-					font-size: 24rpx;
-					font-family: PingFang SC;
-					font-weight: bold;
-					color: #3f3f3f;
-				}
-
-				.price {
-					width: 208rpx;
-					font-size: 24rpx;
-					font-family: PingFang SC;
-					font-weight: 500;
-					color: #999999;
-				}
-
-				.vip-price {
-					width: 208rpx;
-					font-size: 24rpx;
-					font-family: PingFang SC;
-					font-weight: 500;
-					color: #9C0B18;
-
-					.price {
-						font-size: 20rpx;
-						font-family: PingFang SC;
-						font-weight: 500;
-						text-decoration: line-through;
-						color: #9A9A9A;
-					}
-				}
-			}
-		}
-
-	}
-
 	.popup-box {
 		width: 522rpx;
 		height: 605rpx;
@@ -783,6 +615,15 @@
 		}
 	}
 
+	.jhq {
+		margin: 0 auto;
+		width: 750rpx;
+
+		image {
+			width: 100%;
+		}
+	}
+
 	.goodsList {
 		background: #FFFFFF;
 		padding-top: 41rpx;
@@ -801,92 +642,62 @@
 
 	.goodsList-box {
 		background: #FFFFFF;
+		padding: 26rpx 20rpx 20rpx;
+		flex-wrap: wrap;
 
 		.goodsList-item {
-			margin: 0 auto 20rpx;
-			width: 690rpx;
-			background: #FFFFFF;
-			box-shadow: 0rpx 0rpx 20rpx 0rpx rgba(50, 50, 52, 0.06);
-			border-radius: 10rpx;
+			width: 345rpx;
 			background-color: #ffffff;
-			padding: 20rpx;
-
-			image {
-				flex-shrink: 0;
-				border-radius: $border-radius-sm;
-				height: 180rpx;
-				width: 180rpx;
-			}
-
-			.goodsList-content {
-				margin-left: 20rpx;
-				flex-grow: 1;
-				height: 180rpx;
+			border-radius: 12rpx;
+			box-shadow: 0 0 15rpx rgba(0, 0, 0, 0.2);
+			margin-bottom: 20rpx;
+
+			.image-wrapper {
+				width: 345rpx;
+				height: 345rpx;
+				border-radius: 3px;
 				position: relative;
 
-				.title {
-					font-size: $font-base;
-					color: $font-color-dark;
-					font-weight: 500;
-				}
-
-				.goods-money {
-					position: absolute;
-					left: 0;
-					bottom: 0;
+				.image {
 					width: 100%;
+					height: 100%;
+					opacity: 1;
+					border-radius: 12rpx 12rpx 0 0;
+				}
+			}
 
-					.money-box {
-						image {
-							width: 14rpx;
-							margin: 0 6rpx 0 10rpx;
-						}
-
-						.old-price {
-							.old-left {
-								font-size: 26rpx;
-								font-weight: 500;
-								text-decoration: line-through;
-								color: #999999;
-							}
-
-							.old-right {
-								font-size: 24rpx;
-								font-weight: bold;
-								color: #b59467;
-							}
-						}
-
-					}
+			.title {
+				margin-top: 24rpx;
+				padding: 0 20rpx;
+				font-size: 32rpx;
+				font-weight: 500;
+				color: #333333;
+			}
 
-					.otMoney-box {
+			.hot-price {
+				display: flex;
+				justify-content: flex-start;
+				align-items: center;
 
-						.otMoney {
-							font-size: 36rpx;
-							color: #9C0B18;
-							padding-right: 20rpx;
-						}
+				.price {
+					margin-left: 10rpx;
+					font-size: 36rpx;
+					color: #9C0B18;
+					font-weight: 500;
+					display: flex;
+					justify-content: flex-start;
+					align-items: center;
 
+					.ot-pirce {
+						margin-left: 7rpx;
+						font-size: 26rpx;
+						font-weight: 500;
+						text-decoration: line-through;
+						color: #999999;
+						align-self: flex-end;
 					}
 
 				}
-
-				.goodsList-btn {
-					position: absolute;
-					bottom: 0;
-					right: 0;
-					width: 137rpx;
-					height: 52rpx;
-					background: #9c0b18;
-					border-radius: 26rpx;
-					display: flex;
-					justify-content: center;
-					align-items: center;
-					font-size: 26rpx;
-					font-family: PingFang SC;
-					font-weight: 500;
-					color: #FFFFFF;
-				}
 			}
 		}
 	}

+ 31 - 34
pages/money/account.vue

@@ -1,27 +1,24 @@
 <template>
 	<view class="content">
-			<!-- <view class="navbar">
+		<!-- <view class="navbar">
 			<view v-for="(item, index) in navList" :key="index" class="nav-item" :class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.text }}</view>
 		</view> -->
 		<view class="row b-b">
 			<text class="tit">姓名</text>
-			<input class="input" v-model="name" type="text" placeholder="请输入姓名"
-				placeholder-class="placeholder" />
+			<input class="input" v-model="name" type="text" placeholder="请输入姓名" placeholder-class="placeholder" />
 		</view>
-		<view class="row b-b" >
+		<view class="row b-b">
 			<text class="tit">{{type==3?'银行卡号':'账号'}}</text>
 			<input class="input" v-model="payment" type="text" :placeholder="'请输入'+ (type==3?'银行卡号':'账号')"
 				placeholder-class="placeholder" />
 		</view>
 		<view class="row b-b" v-if="type==3">
 			<text class="tit">手机号码</text>
-			<input class="input" v-model="phone" type="text" placeholder="请输入手机号码"
-				placeholder-class="placeholder" />
+			<input class="input" v-model="phone" type="text" placeholder="请输入手机号码" placeholder-class="placeholder" />
 		</view>
 		<view class="row b-b" v-if="type==3">
 			<text class="tit">所属银行</text>
-			<input class="input" v-model="bank" type="text" placeholder="请输入所属银行"
-				placeholder-class="placeholder" />
+			<input class="input" v-model="bank" type="text" placeholder="请输入所属银行" placeholder-class="placeholder" />
 		</view>
 		<!-- <view class="row b-b" v-if="type==3">
 			<text class="tit">所属支行</text>
@@ -47,9 +44,9 @@
 			return {
 				type: 0,
 				payment: '',
-				name:'',
+				name: '',
 				bank: '',
-				phone:'',
+				phone: '',
 				bank_name: '',
 				loading: false
 			};
@@ -97,32 +94,32 @@
 			// 提交保存
 			confirm() {
 				let obj = this;
-				if(obj.loading) {
+				if (obj.loading) {
 					return
 				}
-				if(obj.name == '') {
+				if (obj.name == '') {
 					return obj.$api.msg('请输入姓名')
 				}
-				if(obj.payment == '') {
-					if(obj.type == 3) {
+				if (obj.payment == '') {
+					if (obj.type == 3) {
 						return obj.$api.msg('请输入银行卡号')
 					}
-					if(obj.type == 2) {
+					if (obj.type == 2) {
 						return obj.$api.msg('请输入账号')
 					}
 				}
-				if(obj.type == 3) {
-					if(obj.phone == '') {
+				if (obj.type == 3) {
+					if (obj.phone == '') {
 						return obj.$api.msg('请输入手机号')
 					}
-					if(obj.bank == '') {
+					if (obj.bank == '') {
 						return obj.$api.msg('请输入所属银行')
 					}
 					// if(obj.bank_name == '') {
 					// 	return obj.$api.msg('请输入所属支行')
 					// }
 				}
-				
+
 				obj.loading = true
 				setBank({
 					type: obj.type,
@@ -152,25 +149,25 @@
 				getBank().then(res => {
 					let bank;
 					console.log(obj.type)
-					if(obj.type == 2) {
-						
-						bank =  res.data.zfb
+					if (obj.type == 2) {
+
+						bank = res.data.zfb
 					}
-					if(obj.type == 3) {
-						console.log( res.data.bank)
-						bank =  res.data.bank
+					if (obj.type == 3) {
+						console.log(res.data.bank)
+						bank = res.data.bank
 						console.log(bank)
 					}
 					console.log(bank)
-					if(bank.name) {
+					if (bank.name) {
 						obj.name = bank.name
-						obj.phone= bank.phone
-						obj.payment= bank.payment
-						obj.bank= bank.bank
-						obj.bank_name= bank.bank_name
+						obj.phone = bank.phone
+						obj.payment = bank.payment
+						obj.bank = bank.bank
+						obj.bank_name = bank.bank_name
 					}
-					
-					
+
+
 				})
 			},
 			/* 保存银行卡详细 */
@@ -289,7 +286,7 @@
 
 	.add-btn {
 		&.up {
-			background-color:#ff4072;
+			background-color: #a9000b;
 			color: #fff;
 		}
 
@@ -304,4 +301,4 @@
 		border-radius: 10rpx;
 		// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
 	}
-</style>
+</style>

+ 2 - 2
pages/money/recharge.vue

@@ -8,8 +8,8 @@
 			<view class="title">充值金额</view>
 			<view class="row">
 				<text class="tit">¥</text>
-				<input class="input" type="number" v-model="money" placeholder="请选择充值金额" placeholder-class="placeholder"
-					disabled />
+				<input class="input" type="number" v-model="money" placeholder="请选择充值金额"
+					placeholder-class="placeholder" />
 			</view>
 			<view class="xian"></view>
 			<view class="moneyBtn-box">

+ 609 - 556
pages/order/order.vue

@@ -1,7 +1,8 @@
 <template>
 	<view class="content">
 		<view class="navbar">
-			<view v-for="(item, index) in navList" :key="index" class="nav-item" :class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.text }}</view>
+			<view v-for="(item, index) in navList" :key="index" class="nav-item"
+				:class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.text }}</view>
 		</view>
 
 		<swiper :current="tabCurrentIndex" class="swiper-box" duration="300" @change="changeTab">
@@ -11,11 +12,14 @@
 					<empty v-if="tabItem.loaded === true && tabItem.orderList.length === 0"></empty>
 
 					<!-- 订单列表 -->
-					<view @click="goToOrderDetail(item)" v-for="(item, index) in tabItem.orderList" :key="index" class="order-item">
+					<view @click="goToOrderDetail(item)" v-for="(item, index) in tabItem.orderList" :key="index"
+						class="order-item">
 						<view class="i-top b-b">
 							<text class="time">{{ item._add_time }}</text>
-							<text class="state" :style="{ color: item.stateTipColor }">{{ item._status._title  == '待评价'? '已完成': item._status._title}}</text>
-							<text v-if="item.status === 4" class="del-btn iconfont icondelete" @click="deleteOrder(index)"></text>
+							<text class="state"
+								:style="{ color: item.stateTipColor }">{{ item._status._title  == '待评价'? '已完成': item._status._title}}</text>
+							<text v-if="item.status === 4" class="del-btn iconfont icondelete"
+								@click="deleteOrder(index)"></text>
 						</view>
 
 						<scroll-view v-if="item.cartInfo.length > 1" class="goods-box" scroll-x>
@@ -31,7 +35,8 @@
 								<text class="price">{{ moneyNum(goodsItem.productInfo.price)}}</text>
 							</view>
 						</view> -->
-						<view class="goods-box-single" v-for="(goodsItem, goodsIndex) in item.cartInfo" :key="goodsIndex">
+						<view class="goods-box-single" v-for="(goodsItem, goodsIndex) in item.cartInfo"
+							:key="goodsIndex">
 							<image class="goods-img" :src="goodsItem.productInfo.image" mode="scaleToFill"></image>
 							<view class="right">
 								<view class="flex-start">
@@ -39,7 +44,8 @@
 									<text class="price">{{ goodsItem.productInfo.price|moneyNum }}</text>
 								</view>
 								<view class="row flex">
-									<text class="row_title">{{ goodsItem.productInfo.attrInfo ? goodsItem.productInfo.attrInfo.suk : '' }}</text>
+									<text
+										class="row_title">{{ goodsItem.productInfo.attrInfo ? goodsItem.productInfo.attrInfo.suk : '' }}</text>
 									<text class="attr-box"> x {{ goodsItem.cart_num }}</text>
 								</view>
 							</view>
@@ -53,12 +59,15 @@
 							实付款
 							<text class="price">{{ moneyNum(item.pay_price)}}</text>
 						</view>
-						<view class="action-box b-t" v-if="item.status != 5">
-							<button v-if="item._status._title == '未支付'" class="action-btn" @click.stop="cancelOrder(item)">取消订单</button>
-							<button v-if="item._status._title == '未支付'" @click.stop="orderPay(item)" class="action-btn recom">立即支付</button>
+						<view class="action-box b-t" v-if="item.status != 5 && item.status != 0">
+							<button v-if="item._status._title == '未支付'" class="action-btn"
+								@click.stop="cancelOrder(item)">取消订单</button>
+							<button v-if="item._status._title == '未支付'" @click.stop="orderPay(item)"
+								class="action-btn recom">立即支付</button>
 							<!-- <button v-if="item._status._title == '待评价'" class="action-btn">评价</button> -->
-							<button v-if="item._status._title == '待收货'" @click.stop="orderTake(item, index)" class="action-btn">确认收货</button>
-							<button v-if="item._status._title == '未发货'" class="action-btn" @click.stop="orderRefund(item)">申请退款</button>
+							<button v-if="item._status._title == '待收货'" @click.stop="orderTake(item, index)"
+								class="action-btn">确认收货</button>
+							<!-- <button v-if="item._status._title == '未发货'" class="action-btn" @click.stop="orderRefund(item)">申请退款</button> -->
 						</view>
 					</view>
 
@@ -70,607 +79,651 @@
 </template>
 
 <script>
-import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
-import empty from '@/components/empty';
-import { orderList, orderCancel, orderDel, orderTake } from '@/api/order.js';
-export default {
-	components: {
-		uniLoadMore,
-		empty
-	},
-	data() {
-		return {
-			tabCurrentIndex: 0,
-			navList: [
-				{
-					state: 0,
-					text: '待付款',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 1,
-					text: '待发货',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 2,
-					text: '待收货',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-				{
-					state: 3,
-					text: '已完成',
-					loadingType: 'more',
-					orderList: [],
-					page: 1, //当前页数
-					limit: 10 //每次信息条数
-				},
-				// {
-				// 	state: 4,
-				// 	text: '已完成',
-				// 	loadingType: 'more',
-				// 	orderList: [],
-				// 	page: 1, //当前页数
-				// 	limit: 10 //每次信息条数
-				// }
-			]
-		};
-	},
-
-	onLoad(options) {
-		/**
-		 * 修复app端点击除全部订单外的按钮进入时不加载数据的问题
-		 * 替换onLoad下代码即可
-		 */
-		this.tabCurrentIndex = +options.state;
-		// #ifndef MP
-		this.loadData();
-		// #endif
-		// #ifdef MP
-		if (options.state == 0) {
-			this.loadData();
-		}
-		// #endif
-	},
-	// #ifdef APP-PLUS || H5
-	onBackPress(e){
-		uni.switchTab({
-			url: '/pages/user/user',
-		});
-		return true;
-	},
-	// #endif
-	methods: {
-		// 转换金额为数字
-		moneyNum(value){
-				return +value;
-		},
-		// 确认收货
-		orderTake(item, index) {
-			let obj = this;
-			uni.showModal({
-				title: '是否确认收货?',
-				success: () => {
-					orderTake({
-						uni: item.order_id
-					})
-						.then(e => {
-							obj.navList[obj.tabCurrentIndex].orderList.splice(index, 1);
-							uni.showToast({
-								title: '收货成功'
-							});
-						})
-						.catch(e => {
-							console.log(e);
-						});
-				}
-			});
-		},
-		//跳转到订单详情
-		goToOrderDetail(e) {
-			uni.navigateTo({
-				url: '/pages/order/orderDetail?id=' + e.order_id
-			});
+	import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
+	import empty from '@/components/empty';
+	import {
+		orderList,
+		orderCancel,
+		orderDel,
+		orderTake
+	} from '@/api/order.js';
+	export default {
+		components: {
+			uniLoadMore,
+			empty
 		},
-		// 申请退款
-		orderRefund(e) {
-			uni.navigateTo({
-				url: '/pages/order/orderRefund?id=' + e.order_id
-			});
-		},
-		// 订单支付
-		orderPay(e) {
-			uni.navigateTo({
-				url: '/pages/money/pay?type=1&ordid=' + e.order_id + '&money=' + e.pay_price
-			});
-		},
-		//获取订单列表
-		loadData(source) {
-			//这里是将订单挂载到tab列表下
-			let index = this.tabCurrentIndex;
-			let navItem = this.navList[index];
-			let state = navItem.state;
-			if (source === 'tabChange' && navItem.loaded === true) {
-				//tab切换只有第一次需要加载数据
-				return;
-			}
-			if (navItem.loadingType === 'loading') {
-				//防止重复加载
-				return;
-			}
-			if (navItem.loadingType === 'noMore') {
-				//防止重复加载
-				return;
-			}
-			// 修改当前对象状态为加载中
-			navItem.loadingType = 'loading';
-
-			orderList({
-				type: state,
-				page: navItem.page,
-				limit: navItem.limit
-			})
-				.then(({ data }) => {
-					let arr = data.map(e => {
-						let b = this.orderStateExp(e.status);
-						e.stateTip = b.stateTip;
-						e.stateTipColor = b.stateTipColor;
-						return e;
-					});
-					navItem.orderList = navItem.orderList.concat(arr);
-					// console.log(navItem.orderList);
-					navItem.page++;
-					if (navItem.limit == data.length) {
-						//判断是否还有数据, 有改为 more, 没有改为noMore
-						navItem.loadingType = 'more';
-						return;
-					} else {
-						//判断是否还有数据, 有改为 more, 没有改为noMore
-						navItem.loadingType = 'noMore';
-					}
-					uni.hideLoading();
-					this.$set(navItem, 'loaded', true);
-				})
-				.catch(e => {
-					console.log(e);
-				});
+		data() {
+			return {
+				tabCurrentIndex: 0,
+				navList: [{
+						state: 0,
+						text: '待付款',
+						loadingType: 'more',
+						orderList: [],
+						page: 1, //当前页数
+						limit: 10 //每次信息条数
+					},
+					{
+						state: 1,
+						text: '待发货',
+						loadingType: 'more',
+						orderList: [],
+						page: 1, //当前页数
+						limit: 10 //每次信息条数
+					},
+					{
+						state: 2,
+						text: '待收货',
+						loadingType: 'more',
+						orderList: [],
+						page: 1, //当前页数
+						limit: 10 //每次信息条数
+					},
+					{
+						state: 3,
+						text: '已完成',
+						loadingType: 'more',
+						orderList: [],
+						page: 1, //当前页数
+						limit: 10 //每次信息条数
+					},
+					// {
+					// 	state: 4,
+					// 	text: '已完成',
+					// 	loadingType: 'more',
+					// 	orderList: [],
+					// 	page: 1, //当前页数
+					// 	limit: 10 //每次信息条数
+					// }
+				]
+			};
 		},
 
-		//swiper 切换
-		changeTab(e) {
-			this.tabCurrentIndex = e.target.current;
-			this.loadData('tabChange');
-		},
-		//顶部tab点击
-		tabClick(index) {
-			this.tabCurrentIndex = index;
+		onLoad(options) {
+			/**
+			 * 修复app端点击除全部订单外的按钮进入时不加载数据的问题
+			 * 替换onLoad下代码即可
+			 */
+			this.tabCurrentIndex = +options.state;
+			// #ifndef MP
+			this.loadData();
+			// #endif
+			// #ifdef MP
+			if (options.state == 0) {
+				this.loadData();
+			}
+			// #endif
 		},
-		//删除订单
-		deleteOrder(index) {
-			uni.showLoading({
-				title: '请稍后'
+		// #ifdef APP-PLUS || H5
+		onBackPress(e) {
+			uni.switchTab({
+				url: '/pages/user/user',
 			});
-			setTimeout(() => {
-				this.navList[this.tabCurrentIndex].orderList.splice(index, 1);
-				uni.hideLoading();
-			}, 600);
+			return true;
 		},
-		//取消订单
-		cancelOrder(item) {
-			uni.showModal({
-				title: '订单取消',
-				content: '是否取消订单?',
-				success: e => {
-					if (e.confirm) {
-						uni.showLoading({
-							title: '请稍后'
-						});
-						orderCancel({ id: item.order_id })
+		// #endif
+		methods: {
+			// 转换金额为数字
+			moneyNum(value) {
+				return +value;
+			},
+			// 确认收货
+			orderTake(item, index) {
+				let obj = this;
+				uni.showModal({
+					title: '是否确认收货?',
+					success: () => {
+						orderTake({
+								uni: item.order_id
+							})
 							.then(e => {
+								obj.navList[obj.tabCurrentIndex].orderList.splice(index, 1);
 								uni.showToast({
-									title: '取消成功',
-									duration: 2000,
-									position: 'top'
+									title: '收货成功'
 								});
 							})
 							.catch(e => {
 								console.log(e);
 							});
-						//取消订单后删除待付款中该项
-						let list = this.navList[this.tabCurrentIndex].orderList;
-						let index = list.findIndex(val => val.id === item.id);
-						index !== -1 && list.splice(index, 1);
-						uni.hideLoading();
 					}
+				});
+			},
+			//跳转到订单详情
+			goToOrderDetail(e) {
+				uni.navigateTo({
+					url: '/pages/order/orderDetail?id=' + e.order_id
+				});
+			},
+			// 申请退款
+			orderRefund(e) {
+				uni.navigateTo({
+					url: '/pages/order/orderRefund?id=' + e.order_id
+				});
+			},
+			// 订单支付
+			orderPay(e) {
+				uni.navigateTo({
+					url: '/pages/money/pay?type=1&ordid=' + e.order_id + '&money=' + e.pay_price
+				});
+			},
+			//获取订单列表
+			loadData(source) {
+				//这里是将订单挂载到tab列表下
+				let index = this.tabCurrentIndex;
+				let navItem = this.navList[index];
+				let state = navItem.state;
+				if (source === 'tabChange' && navItem.loaded === true) {
+					//tab切换只有第一次需要加载数据
+					return;
 				}
-			});
-		},
+				if (navItem.loadingType === 'loading') {
+					//防止重复加载
+					return;
+				}
+				if (navItem.loadingType === 'noMore') {
+					//防止重复加载
+					return;
+				}
+				// 修改当前对象状态为加载中
+				navItem.loadingType = 'loading';
 
-		//订单状态文字和颜色
-		orderStateExp(state) {
-			let stateTip = '',
-				stateTipColor = '#fa436a';
-			switch (+state) {
-				case 0:
-					stateTip = '待付款';
-					break;
-				case 1:
-					stateTip = '待发货';
-					break;
-				case 2:
-					stateTip = '待收货';
-					break;
-				case 3:
-					stateTip = '已完成';
-					stateTipColor = '#5dbc7c';
-					break;
-				case 4:
-					stateTip = '已完成';
-					stateTipColor = '#5dbc7c';
-					break;
-				case 9:
-					stateTip = '订单已关闭';
-					stateTipColor = '#909399';
-					break;
-
-				//更多自定义
+				orderList({
+						type: state,
+						page: navItem.page,
+						limit: navItem.limit
+					})
+					.then(({
+						data
+					}) => {
+						let arr = data.map(e => {
+							let b = this.orderStateExp(e.status);
+							e.stateTip = b.stateTip;
+							e.stateTipColor = b.stateTipColor;
+							return e;
+						});
+						navItem.orderList = navItem.orderList.concat(arr);
+						// console.log(navItem.orderList);
+						navItem.page++;
+						if (navItem.limit == data.length) {
+							//判断是否还有数据, 有改为 more, 没有改为noMore
+							navItem.loadingType = 'more';
+							return;
+						} else {
+							//判断是否还有数据, 有改为 more, 没有改为noMore
+							navItem.loadingType = 'noMore';
+						}
+						uni.hideLoading();
+						this.$set(navItem, 'loaded', true);
+					})
+					.catch(e => {
+						console.log(e);
+					});
+			},
+
+			//swiper 切换
+			changeTab(e) {
+				this.tabCurrentIndex = e.target.current;
+				this.loadData('tabChange');
+			},
+			//顶部tab点击
+			tabClick(index) {
+				this.tabCurrentIndex = index;
+			},
+			//删除订单
+			deleteOrder(index) {
+				uni.showLoading({
+					title: '请稍后'
+				});
+				setTimeout(() => {
+					this.navList[this.tabCurrentIndex].orderList.splice(index, 1);
+					uni.hideLoading();
+				}, 600);
+			},
+			//取消订单
+			cancelOrder(item) {
+				uni.showModal({
+					title: '订单取消',
+					content: '是否取消订单?',
+					success: e => {
+						if (e.confirm) {
+							uni.showLoading({
+								title: '请稍后'
+							});
+							orderCancel({
+									id: item.order_id
+								})
+								.then(e => {
+									uni.showToast({
+										title: '取消成功',
+										duration: 2000,
+										position: 'top'
+									});
+								})
+								.catch(e => {
+									console.log(e);
+								});
+							//取消订单后删除待付款中该项
+							let list = this.navList[this.tabCurrentIndex].orderList;
+							let index = list.findIndex(val => val.id === item.id);
+							index !== -1 && list.splice(index, 1);
+							uni.hideLoading();
+						}
+					}
+				});
+			},
+
+			//订单状态文字和颜色
+			orderStateExp(state) {
+				let stateTip = '',
+					stateTipColor = '#fa436a';
+				switch (+state) {
+					case 0:
+						stateTip = '待付款';
+						break;
+					case 1:
+						stateTip = '待发货';
+						break;
+					case 2:
+						stateTip = '待收货';
+						break;
+					case 3:
+						stateTip = '已完成';
+						stateTipColor = '#5dbc7c';
+						break;
+					case 4:
+						stateTip = '已完成';
+						stateTipColor = '#5dbc7c';
+						break;
+					case 9:
+						stateTip = '订单已关闭';
+						stateTipColor = '#909399';
+						break;
+
+						//更多自定义
+				}
+				return {
+					stateTip,
+					stateTipColor
+				};
 			}
-			return { stateTip, stateTipColor };
 		}
-	}
-};
+	};
 </script>
 
 <style lang="scss">
-page,
-.content {
-	background: $page-color-base;
-	height: 100%;
-}
-
-.swiper-box {
-	height: calc(100% - 40px);
-}
-.list-scroll-content {
-	height: 100%;
-}
-
-.navbar {
-	display: flex;
-	height: 40px;
-	padding: 0 5px;
-	background: #fff;
-	box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
-	position: relative;
-	z-index: 10;
-	.nav-item {
-		flex: 1;
-		display: flex;
-		justify-content: center;
-		align-items: center;
+	page,
+	.content {
+		background: $page-color-base;
+		height: 100%;
+	}
+
+	.swiper-box {
+		height: calc(100% - 40px);
+	}
+
+	.list-scroll-content {
 		height: 100%;
-		font-size: 15px;
-		color: $font-color-dark;
-		position: relative;
-		&.current {
-			color: $base-color;
-			&:after {
-				content: '';
-				position: absolute;
-				left: 50%;
-				bottom: 0;
-				transform: translateX(-50%);
-				width: 44px;
-				height: 0;
-				border-bottom: 2px solid $base-color;
-			}
-		}
 	}
-}
-
-.uni-swiper-item {
-	height: auto;
-}
-.order-item {
-	display: flex;
-	flex-direction: column;
-	padding-left: 30rpx;
-	background: #fff;
-	margin-top: 16rpx;
-	.i-top {
+
+	.navbar {
 		display: flex;
-		align-items: center;
-		height: 80rpx;
-		padding-right: 30rpx;
-		font-size: $font-base;
-		color: $font-color-dark;
+		height: 40px;
+		padding: 0 5px;
+		background: #fff;
+		box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
 		position: relative;
-		.time {
+		z-index: 10;
+
+		.nav-item {
 			flex: 1;
-		}
-		.state {
-			color: $base-color;
-		}
-		.del-btn {
-			padding: 10rpx 0 10rpx 36rpx;
-			font-size: $font-lg;
-			color: $font-color-light;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			height: 100%;
+			font-size: 15px;
+			color: $font-color-dark;
 			position: relative;
-			&:after {
-				content: '';
-				width: 0;
-				height: 30rpx;
-				border-left: 1px solid $border-color-dark;
-				position: absolute;
-				left: 20rpx;
-				top: 50%;
-				transform: translateY(-50%);
+
+			&.current {
+				color: $base-color;
+
+				&:after {
+					content: '';
+					position: absolute;
+					left: 50%;
+					bottom: 0;
+					transform: translateX(-50%);
+					width: 44px;
+					height: 0;
+					border-bottom: 2px solid $base-color;
+				}
 			}
 		}
 	}
-	/* 多条商品 */
-	.goods-box {
-		height: 160rpx;
-		padding: 20rpx 0;
-		white-space: nowrap;
-		.goods-item {
-			width: 120rpx;
-			height: 120rpx;
-			display: inline-block;
-			margin-right: 24rpx;
-		}
-		.goods-img {
-			display: block;
-			width: 100%;
-			height: 100%;
-		}
+
+	.uni-swiper-item {
+		height: auto;
 	}
-	/* 单条商品 */
-	.goods-box-single {
+
+	.order-item {
 		display: flex;
-		padding: 20rpx 0;
-		.goods-img {
-			display: block;
-			width: 120rpx;
-			height: 120rpx;
-		}
-		.right {
-			flex: 1;
+		flex-direction: column;
+		padding-left: 30rpx;
+		background: #fff;
+		margin-top: 16rpx;
+
+		.i-top {
 			display: flex;
-			flex-direction: column;
-			padding: 0 30rpx 0 24rpx;
-			overflow: hidden;
-			.row{
-				margin-top: 10rpx;
+			align-items: center;
+			height: 80rpx;
+			padding-right: 30rpx;
+			font-size: $font-base;
+			color: $font-color-dark;
+			position: relative;
+
+			.time {
+				flex: 1;
 			}
-			.row_title{
-				padding:5rpx 10rpx;
-				background-color: #dddddd;
-				border-radius: 10rpx;
-				font-size: 22rpx;
-				color: #ffffff;
+
+			.state {
+				color: $base-color;
 			}
-			.title {
-				font-size: $font-base + 2rpx;
-				color: $font-color-dark;
-				line-height: 1;
-				width: 80%;
+
+			.del-btn {
+				padding: 10rpx 0 10rpx 36rpx;
+				font-size: $font-lg;
+				color: $font-color-light;
+				position: relative;
+
+				&:after {
+					content: '';
+					width: 0;
+					height: 30rpx;
+					border-left: 1px solid $border-color-dark;
+					position: absolute;
+					left: 20rpx;
+					top: 50%;
+					transform: translateY(-50%);
+				}
+			}
+		}
+
+		/* 多条商品 */
+		.goods-box {
+			height: 160rpx;
+			padding: 20rpx 0;
+			white-space: nowrap;
+
+			.goods-item {
+				width: 120rpx;
+				height: 120rpx;
+				display: inline-block;
+				margin-right: 24rpx;
+			}
+
+			.goods-img {
+				display: block;
+				width: 100%;
+				height: 100%;
+			}
+		}
+
+		/* 单条商品 */
+		.goods-box-single {
+			display: flex;
+			padding: 20rpx 0;
+
+			.goods-img {
+				display: block;
+				width: 120rpx;
+				height: 120rpx;
 			}
-			.attr-box {
+
+			.right {
+				flex: 1;
 				display: flex;
-				justify-content: flex-end;
-				font-size: $font-sm + 2rpx;
-				color: $font-color-light;
+				flex-direction: column;
+				padding: 0 30rpx 0 24rpx;
+				overflow: hidden;
+
+				.row {
+					margin-top: 10rpx;
+				}
+
+				.row_title {
+					padding: 5rpx 10rpx;
+					background-color: #dddddd;
+					border-radius: 10rpx;
+					font-size: 22rpx;
+					color: #ffffff;
+				}
+
+				.title {
+					font-size: $font-base + 2rpx;
+					color: $font-color-dark;
+					line-height: 1;
+					width: 80%;
+				}
+
+				.attr-box {
+					display: flex;
+					justify-content: flex-end;
+					font-size: $font-sm + 2rpx;
+					color: $font-color-light;
+				}
+
+				.price {
+					display: inline;
+					font-size: $font-base + 2rpx;
+					color: $font-color-dark;
+
+					&:before {
+						content: '¥';
+						font-size: $font-sm;
+
+					}
+				}
 			}
+		}
+
+		.price-box {
+			display: flex;
+			justify-content: flex-end;
+			align-items: baseline;
+			padding: 20rpx 30rpx;
+			font-size: $font-sm + 2rpx;
+			color: $font-color-light;
+
+			.num {
+				margin: 0 8rpx;
+				color: $font-color-dark;
+			}
+
 			.price {
-				display: inline;
-				font-size: $font-base + 2rpx;
+				font-size: $font-lg;
 				color: $font-color-dark;
+
 				&:before {
 					content: '¥';
 					font-size: $font-sm;
-					
+					margin: 0 2rpx 0 8rpx;
 				}
 			}
 		}
-	}
-	.price-box {
-		display: flex;
-		justify-content: flex-end;
-		align-items: baseline;
-		padding: 20rpx 30rpx;
-		font-size: $font-sm + 2rpx;
-		color: $font-color-light;
-		.num {
-			margin: 0 8rpx;
-			color: $font-color-dark;
+
+		.action-box {
+			display: flex;
+			justify-content: flex-end;
+			align-items: center;
+			height: 100rpx;
+			position: relative;
+			padding-right: 30rpx;
 		}
-		.price {
-			font-size: $font-lg;
+
+		.action-btn {
+			width: 160rpx;
+			height: 60rpx;
+			margin: 0;
+			margin-left: 24rpx;
+			padding: 0;
+			text-align: center;
+			line-height: 60rpx;
+			font-size: $font-sm + 2rpx;
 			color: $font-color-dark;
-			&:before {
-				content: '¥';
-				font-size: $font-sm;
-				margin: 0 2rpx 0 8rpx;
+			background: #fff;
+			border-radius: 100px;
+
+			&:after {
+				border-radius: 100px;
+			}
+
+			&.recom {
+				color: $base-color;
+
+				&:after {
+					border-color: $base-color;
+				}
+			}
+
+			&.evaluate {
+				color: $color-yellow;
+
+				&:after {
+					border-color: $color-yellow;
+				}
 			}
 		}
 	}
-	.action-box {
+
+	/* load-more */
+	.uni-load-more {
 		display: flex;
-		justify-content: flex-end;
+		flex-direction: row;
+		height: 80rpx;
 		align-items: center;
-		height: 100rpx;
-		position: relative;
-		padding-right: 30rpx;
+		justify-content: center;
 	}
-	.action-btn {
-		width: 160rpx;
-		height: 60rpx;
-		margin: 0;
-		margin-left: 24rpx;
-		padding: 0;
-		text-align: center;
-		line-height: 60rpx;
-		font-size: $font-sm + 2rpx;
-		color: $font-color-dark;
-		background: #fff;
-		border-radius: 100px;
-		&:after {
-			border-radius: 100px;
-		}
-		&.recom {
-			color: $base-color;
-			&:after {
-				border-color: $base-color;
-			}
-		}
-		&.evaluate {
-			color: $color-yellow;
-			&:after {
-				border-color: $color-yellow;
-			}
-		}
+
+	.uni-load-more__text {
+		font-size: 28rpx;
+		color: #999;
 	}
-}
-
-/* load-more */
-.uni-load-more {
-	display: flex;
-	flex-direction: row;
-	height: 80rpx;
-	align-items: center;
-	justify-content: center;
-}
-
-.uni-load-more__text {
-	font-size: 28rpx;
-	color: #999;
-}
-
-.uni-load-more__img {
-	height: 24px;
-	width: 24px;
-	margin-right: 10px;
-}
-
-.uni-load-more__img > view {
-	position: absolute;
-}
-
-.uni-load-more__img > view view {
-	width: 6px;
-	height: 2px;
-	border-top-left-radius: 1px;
-	border-bottom-left-radius: 1px;
-	background: #999;
-	position: absolute;
-	opacity: 0.2;
-	transform-origin: 50%;
-	animation: load 1.56s ease infinite;
-}
-
-.uni-load-more__img > view view:nth-child(1) {
-	transform: rotate(90deg);
-	top: 2px;
-	left: 9px;
-}
-
-.uni-load-more__img > view view:nth-child(2) {
-	transform: rotate(180deg);
-	top: 11px;
-	right: 0;
-}
-
-.uni-load-more__img > view view:nth-child(3) {
-	transform: rotate(270deg);
-	bottom: 2px;
-	left: 9px;
-}
-
-.uni-load-more__img > view view:nth-child(4) {
-	top: 11px;
-	left: 0;
-}
-
-.load1,
-.load2,
-.load3 {
-	height: 24px;
-	width: 24px;
-}
-
-.load2 {
-	transform: rotate(30deg);
-}
-
-.load3 {
-	transform: rotate(60deg);
-}
-
-.load1 view:nth-child(1) {
-	animation-delay: 0s;
-}
-
-.load2 view:nth-child(1) {
-	animation-delay: 0.13s;
-}
-
-.load3 view:nth-child(1) {
-	animation-delay: 0.26s;
-}
-
-.load1 view:nth-child(2) {
-	animation-delay: 0.39s;
-}
-
-.load2 view:nth-child(2) {
-	animation-delay: 0.52s;
-}
-
-.load3 view:nth-child(2) {
-	animation-delay: 0.65s;
-}
-
-.load1 view:nth-child(3) {
-	animation-delay: 0.78s;
-}
-
-.load2 view:nth-child(3) {
-	animation-delay: 0.91s;
-}
-
-.load3 view:nth-child(3) {
-	animation-delay: 1.04s;
-}
-
-.load1 view:nth-child(4) {
-	animation-delay: 1.17s;
-}
-
-.load2 view:nth-child(4) {
-	animation-delay: 1.3s;
-}
-
-.load3 view:nth-child(4) {
-	animation-delay: 1.43s;
-}
-
-@-webkit-keyframes load {
-	0% {
-		opacity: 1;
+
+	.uni-load-more__img {
+		height: 24px;
+		width: 24px;
+		margin-right: 10px;
 	}
 
-	100% {
+	.uni-load-more__img>view {
+		position: absolute;
+	}
+
+	.uni-load-more__img>view view {
+		width: 6px;
+		height: 2px;
+		border-top-left-radius: 1px;
+		border-bottom-left-radius: 1px;
+		background: #999;
+		position: absolute;
 		opacity: 0.2;
+		transform-origin: 50%;
+		animation: load 1.56s ease infinite;
+	}
+
+	.uni-load-more__img>view view:nth-child(1) {
+		transform: rotate(90deg);
+		top: 2px;
+		left: 9px;
+	}
+
+	.uni-load-more__img>view view:nth-child(2) {
+		transform: rotate(180deg);
+		top: 11px;
+		right: 0;
+	}
+
+	.uni-load-more__img>view view:nth-child(3) {
+		transform: rotate(270deg);
+		bottom: 2px;
+		left: 9px;
+	}
+
+	.uni-load-more__img>view view:nth-child(4) {
+		top: 11px;
+		left: 0;
+	}
+
+	.load1,
+	.load2,
+	.load3 {
+		height: 24px;
+		width: 24px;
+	}
+
+	.load2 {
+		transform: rotate(30deg);
+	}
+
+	.load3 {
+		transform: rotate(60deg);
+	}
+
+	.load1 view:nth-child(1) {
+		animation-delay: 0s;
+	}
+
+	.load2 view:nth-child(1) {
+		animation-delay: 0.13s;
+	}
+
+	.load3 view:nth-child(1) {
+		animation-delay: 0.26s;
+	}
+
+	.load1 view:nth-child(2) {
+		animation-delay: 0.39s;
+	}
+
+	.load2 view:nth-child(2) {
+		animation-delay: 0.52s;
+	}
+
+	.load3 view:nth-child(2) {
+		animation-delay: 0.65s;
+	}
+
+	.load1 view:nth-child(3) {
+		animation-delay: 0.78s;
+	}
+
+	.load2 view:nth-child(3) {
+		animation-delay: 0.91s;
+	}
+
+	.load3 view:nth-child(3) {
+		animation-delay: 1.04s;
+	}
+
+	.load1 view:nth-child(4) {
+		animation-delay: 1.17s;
+	}
+
+	.load2 view:nth-child(4) {
+		animation-delay: 1.3s;
+	}
+
+	.load3 view:nth-child(4) {
+		animation-delay: 1.43s;
+	}
+
+	@-webkit-keyframes load {
+		0% {
+			opacity: 1;
+		}
+
+		100% {
+			opacity: 0.2;
+		}
 	}
-}
-</style>
+</style>

Dosya farkı çok büyük olduğundan ihmal edildi
+ 34 - 35
pages/order/orderDetail.vue


+ 18 - 7
pages/product/classify.vue

@@ -1,7 +1,7 @@
 <template>
 	<view class="container">
 		<view class="goodsList-box">
-			<view class="goodsList-item flex" :key="ind" v-for="(ls, ind) in firstList" @click="navTo(ls)">
+			<view class="goodsList-item flex" :key="ind" v-for="(ls, ind) in list" @click="navTo(ls)">
 				<image :src="ls.image" mode=" scaleToFill"></image>
 				<view class="goodsList-content">
 					<view class="title clamp2">
@@ -30,18 +30,27 @@
 
 <script>
 	import {
-		groomList
+		getProducts
 	} from '@/api/product.js';
 	export default {
 		data() {
 			return {
 				list: [],
-				bannerImg: []
+				type: ''
 			};
 		},
 		onLoad(option) {
 			// 获取查询对象
 			this.type = option.type;
+			if (this.type == 3) {
+				uni.setNavigationBarTitle({
+					title: '爆款商品'
+				});
+			} else {
+				uni.setNavigationBarTitle({
+					title: '进货区'
+				});
+			}
 			// 加载基础数据
 			this.loadData();
 		},
@@ -53,14 +62,16 @@
 			},
 			// 请求载入数据
 			async loadData() {
-				groomList({}, this.type)
+				getProducts({
+						pages: 1,
+						limit: 1000,
+						store_region: this.type
+					})
 					.then(({
 						data
 					}) => {
-						// 保存轮播图
-						this.bannerImg = data.banner;
 						// 保存商品信息
-						this.list = data.list;
+						this.list = data;
 					})
 					.catch(e => {
 						console.log(e);

+ 371 - 336
pages/product/list.vue

@@ -6,21 +6,25 @@
 				<text>销量优先</text>
 				<view class="p-box">
 					<text :class="{ active: numberOrder === 1 && filterIndex === 1 }" class="iconfont iconfold"></text>
-					<text :class="{ active: numberOrder === 2 && filterIndex === 1 }" class="iconfont iconfold xia"></text>
+					<text :class="{ active: numberOrder === 2 && filterIndex === 1 }"
+						class="iconfont iconfold xia"></text>
 				</view>
 			</view>
 			<view class="nav-item" :class="{ current: filterIndex === 2 }" @click="tabClick(2)">
 				<text>价格</text>
 				<view class="p-box">
 					<text :class="{ active: priceOrder === 1 && filterIndex === 2 }" class="iconfont iconfold"></text>
-					<text :class="{ active: priceOrder === 2 && filterIndex === 2 }" class="iconfont iconfold xia"></text>
+					<text :class="{ active: priceOrder === 2 && filterIndex === 2 }"
+						class="iconfont iconfold xia"></text>
 				</view>
 			</view>
 			<text class="cate-item iconfont iconapps" @click="toggleCateMask('show')"></text>
 		</view>
 		<view class="goods-list">
 			<view v-for="(item, index) in goodsList" :key="index" class="goods-item" @click="navToDetailPage(item)">
-				<view class="image-wrapper"><image :src="item.image" mode="aspectFill"></image></view>
+				<view class="image-wrapper">
+					<image :src="item.image" mode="aspectFill"></image>
+				</view>
 				<text class="title clamp">{{ item.title }}</text>
 				<view class="price-box">
 					<text class="price">{{ item.price }}</text>
@@ -30,12 +34,14 @@
 		</view>
 		<uni-load-more :status="loadingType"></uni-load-more>
 
-		<view class="cate-mask" :class="cateMaskState === 0 ? 'none' : cateMaskState === 1 ? 'show' : ''" @click="toggleCateMask">
+		<view class="cate-mask" :class="cateMaskState === 0 ? 'none' : cateMaskState === 1 ? 'show' : ''"
+			@click="toggleCateMask">
 			<view class="cate-content" @click.stop.prevent="stopPrevent" @touchmove.stop.prevent="stopPrevent">
 				<scroll-view scroll-y class="cate-list">
 					<view v-for="item in cateList" :key="item.id">
 						<view class="cate-item b-b two">{{ item.cate_name }}</view>
-						<view v-for="tItem in item.children" :key="tItem.id" class="cate-item b-b" :class="{ active: tItem.id == cateId }" @click="changeCate(tItem)">
+						<view v-for="tItem in item.children" :key="tItem.id" class="cate-item b-b"
+							:class="{ active: tItem.id == cateId }" @click="changeCate(tItem)">
 							{{ tItem.cate_name }}
 						</view>
 					</view>
@@ -46,369 +52,398 @@
 </template>
 
 <script>
-import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
-import { getProducts } from '@/api/product.js';
-import { getCategoryList } from '@/api/product.js';
-export default {
-	components: {
-		uniLoadMore
-	},
-	data() {
-		return {
-			cateMaskState: 0, //分类面板展开状态
-			headerPosition: 'fixed',
-			headerTop: '0px',
-			loadingType: 'more', //加载更多状态
-			filterIndex: 0, //查询类型
-			numberOrder: 0, //1 销量从低到高 2销量从高到低
-			limit: 6, //每次加载数据条数
-			page: 0, //当前页数
-			cateId: 0, //已选三级分类id
-			priceOrder: 0, //1 价格从低到高 2价格从高到低
-			cateList: [], //分类列表
-			goodsList: [] //商品列表
-		};
-	},
-
-	onLoad(options) {
-		// #ifdef H5
-		this.headerTop = document.getElementsByTagName('uni-page-head')[0].offsetHeight + 'px';
-		// #endif
-		this.cateId = options.tid;
-		this.loadCateList(options.fid, options.sid);
-		this.loadData();
-	},
-	onPageScroll(e) {
-		//兼容iOS端下拉时顶部漂移
-		if (e.scrollTop >= 0) {
-			this.headerPosition = 'fixed';
-		} else {
-			this.headerPosition = 'absolute';
-		}
-	},
-	//下拉刷新
-	onPullDownRefresh() {
-		this.loadData('refresh');
-	},
-	//监听页面是否滚动到底部加载更多
-	onReachBottom() {
-		this.loadData();
-	},
-	methods: {
-		//加载分类
-		async loadCateList(fid, sid) {
-			let obj = this;
-			getCategoryList({}).then(function(e) {
-				console.log(e);
-				e.data.forEach(function(e) {
-					if (e.id == fid) {
-						obj.cateList = e.children;
-						return;
-					}
-				});
-				console.log(obj.cateList);
-			});
+	import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
+	import {
+		getProducts
+	} from '@/api/product.js';
+	import {
+		getCategoryList
+	} from '@/api/product.js';
+	export default {
+		components: {
+			uniLoadMore
 		},
-		//加载商品 ,带下拉刷新和上滑加载
-		async loadData(type = 'add', loading) {
-			let obj = this;
-			let data = {
-				page: obj.page,
-				limit: obj.limit,
-				sid: obj.cateId //分类id
+		data() {
+			return {
+				cateMaskState: 0, //分类面板展开状态
+				headerPosition: 'fixed',
+				headerTop: '0px',
+				loadingType: 'more', //加载更多状态
+				filterIndex: 0, //查询类型
+				numberOrder: 0, //1 销量从低到高 2销量从高到低
+				limit: 6, //每次加载数据条数
+				page: 1, //当前页数
+				cateId: 0, //已选三级分类id
+				priceOrder: 0, //1 价格从低到高 2价格从高到低
+				cateList: [], //分类列表
+				goodsList: [] //商品列表
 			};
-			//没有更多直接返回
-			if (type === 'add') {
-				if (obj.loadingType === 'nomore') {
-					return;
-				}
-				obj.loadingType = 'loading';
+		},
+
+		onLoad(options) {
+			// #ifdef H5
+			this.headerTop = document.getElementsByTagName('uni-page-head')[0].offsetHeight + 'px';
+			// #endif
+			this.cateId = options.tid;
+			this.loadCateList(options.fid, options.sid);
+			this.loadData();
+		},
+		onPageScroll(e) {
+			//兼容iOS端下拉时顶部漂移
+			if (e.scrollTop >= 0) {
+				this.headerPosition = 'fixed';
 			} else {
-				obj.loadingType = 'more';
-			}
-			if (type === 'refresh') {
-				// 清空数组
-				obj.goodsList = [];
-				obj.page = 1
-			}
-			if (this.filterIndex == 1) {
-				console.log( obj.salesOrder);
-				data.salesOrder = obj.numberOrder == 1 ? 'asc' : 'desc';
+				this.headerPosition = 'absolute';
 			}
-			if (this.filterIndex == 2) {
-				console.log( obj.priceOrder);
-				data.priceOrder = obj.priceOrder == 1 ? 'asc' : 'desc';
-			}
-			getProducts(data).then(function(e) {
-				console.log(e.data);
-				obj.goodsList = obj.goodsList.concat(e.data);
-				//判断是否还有下一页,有是more  没有是nomore
-				if (obj.limit==e.data.length) {
-					obj.page++
-					obj.loadingType='more'
-				} else{
-					obj.loadingType='nomore'
+		},
+		//下拉刷新
+		onPullDownRefresh() {
+			this.loadData('refresh');
+		},
+		//监听页面是否滚动到底部加载更多
+		onReachBottom() {
+			this.loadData();
+		},
+		methods: {
+			//加载分类
+			async loadCateList(fid, sid) {
+				let obj = this;
+				getCategoryList({}).then(function(e) {
+					console.log(e);
+					e.data.forEach(function(e) {
+						if (e.id == fid) {
+							obj.cateList = e.children;
+							return;
+						}
+					});
+					console.log(obj.cateList);
+				});
+			},
+			//加载商品 ,带下拉刷新和上滑加载
+			async loadData(type = 'add', loading) {
+				let obj = this;
+				let data = {
+					page: obj.page,
+					limit: obj.limit,
+					store_region: 1,
+					sid: obj.cateId //分类id
+				};
+				//没有更多直接返回
+				if (type === 'add') {
+					if (obj.loadingType === 'nomore') {
+						return;
+					}
+					obj.loadingType = 'loading';
+				} else {
+					obj.loadingType = 'more';
 				}
 				if (type === 'refresh') {
-					if (loading == 1) {
-						uni.hideLoading();
+					// 清空数组
+					obj.goodsList = [];
+					obj.page = 1
+				}
+				if (this.filterIndex == 1) {
+					console.log(obj.salesOrder);
+					data.salesOrder = obj.numberOrder == 1 ? 'asc' : 'desc';
+				}
+				if (this.filterIndex == 2) {
+					console.log(obj.priceOrder);
+					data.priceOrder = obj.priceOrder == 1 ? 'asc' : 'desc';
+				}
+				getProducts(data).then(function(e) {
+					console.log(e.data);
+					obj.goodsList = obj.goodsList.concat(e.data);
+					//判断是否还有下一页,有是more  没有是nomore
+					if (obj.limit == e.data.length) {
+						obj.page++
+						obj.loadingType = 'more'
 					} else {
-						uni.stopPullDownRefresh();
+						obj.loadingType = 'nomore'
+					}
+					if (type === 'refresh') {
+						if (loading == 1) {
+							uni.hideLoading();
+						} else {
+							uni.stopPullDownRefresh();
+						}
 					}
+				});
+			},
+			//筛选点击
+			tabClick(index) {
+				// 防止重复点击综合排序
+				if (this.filterIndex === 0 && this.filterIndex === index) {
+					return;
 				}
-			});
-		},
-		//筛选点击
-		tabClick(index) {
-			// 防止重复点击综合排序
-			if (this.filterIndex === 0 && this.filterIndex === index) {
-				return;
-			}
-			this.filterIndex = index;
-			// 判断是否为销量优先
-			if (index === 1) {
-				this.numberOrder = this.numberOrder === 1 ? 2 : 1;
-			}
-			// 判断是否为价格优先
-			if (index === 2) {
-				this.priceOrder = this.priceOrder === 1 ? 2 : 1;
-			}
-			// 初始化页数
-			this.page = 1;
-			// 初始化数组
-			uni.pageScrollTo({
-				duration: 300,
-				scrollTop: 0
-			});
-			this.loadData('refresh', 1);
-			uni.showLoading({
-				title: '正在加载'
-			});
-		},
-		//显示分类面板
-		toggleCateMask(type) {
-			let timer = type === 'show' ? 10 : 300;
-			let state = type === 'show' ? 1 : 0;
-			this.cateMaskState = 2;
-			setTimeout(() => {
-				this.cateMaskState = state;
-			}, timer);
-		},
-		//分类点击
-		changeCate(item) {
-			this.cateId = item.id;
-			// 显示右侧分类
-			this.toggleCateMask();
-			// 滚轮返回顶部
-			uni.pageScrollTo({
-				duration: 300,
-				scrollTop: 0
-			});
-			// 初始化查询页数
-			this.page = 1
-			// 重新加载数据
-			this.loadData('refresh', 1);
-			uni.showLoading({
-				title: '正在加载'
-			});
-		},
-		//详情
-		navToDetailPage(item) {
-			let id = item.id;
-			uni.navigateTo({
-				url: `/pages/product/product?id=${id}`
-			});
-		},
-		stopPrevent() {}
-	}
-};
+				this.filterIndex = index;
+				// 判断是否为销量优先
+				if (index === 1) {
+					this.numberOrder = this.numberOrder === 1 ? 2 : 1;
+				}
+				// 判断是否为价格优先
+				if (index === 2) {
+					this.priceOrder = this.priceOrder === 1 ? 2 : 1;
+				}
+				// 初始化页数
+				this.page = 1;
+				// 初始化数组
+				uni.pageScrollTo({
+					duration: 300,
+					scrollTop: 0
+				});
+				this.loadData('refresh', 1);
+				uni.showLoading({
+					title: '正在加载'
+				});
+			},
+			//显示分类面板
+			toggleCateMask(type) {
+				let timer = type === 'show' ? 10 : 300;
+				let state = type === 'show' ? 1 : 0;
+				this.cateMaskState = 2;
+				setTimeout(() => {
+					this.cateMaskState = state;
+				}, timer);
+			},
+			//分类点击
+			changeCate(item) {
+				this.cateId = item.id;
+				// 显示右侧分类
+				this.toggleCateMask();
+				// 滚轮返回顶部
+				uni.pageScrollTo({
+					duration: 300,
+					scrollTop: 0
+				});
+				// 初始化查询页数
+				this.page = 1
+				// 重新加载数据
+				this.loadData('refresh', 1);
+				uni.showLoading({
+					title: '正在加载'
+				});
+			},
+			//详情
+			navToDetailPage(item) {
+				let id = item.id;
+				uni.navigateTo({
+					url: `/pages/product/product?id=${id}`
+				});
+			},
+			stopPrevent() {}
+		}
+	};
 </script>
 
 <style lang="scss">
-page,
-.content {
-	background: $page-color-base;
-}
-.content {
-	padding-top: 96rpx;
-}
-
-.navbar {
-	position: fixed;
-	left: 0;
-	top: var(--window-top);
-	display: flex;
-	width: 100%;
-	height: 80rpx;
-	background: #fff;
-	box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.06);
-	z-index: 10;
-	.nav-item {
-		flex: 1;
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		height: 100%;
-		font-size: 30rpx;
-		color: $font-color-dark;
-		position: relative;
-		&.current {
-			color: $base-color;
-			&:after {
-				content: '';
-				position: absolute;
-				left: 50%;
-				bottom: 0;
-				transform: translateX(-50%);
-				width: 120rpx;
-				height: 0;
-				border-bottom: 4rpx solid $base-color;
-			}
-		}
+	page,
+	.content {
+		background: $page-color-base;
+	}
+
+	.content {
+		padding-top: 96rpx;
 	}
-	.p-box {
+
+	.navbar {
+		position: fixed;
+		left: 0;
+		top: var(--window-top);
 		display: flex;
-		flex-direction: column;
-		.iconfont {
+		width: 100%;
+		height: 80rpx;
+		background: #fff;
+		box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.06);
+		z-index: 10;
+
+		.nav-item {
+			flex: 1;
 			display: flex;
-			align-items: center;
 			justify-content: center;
-			width: 30rpx;
-			height: 14rpx;
-			line-height: 1;
-			margin-left: 4rpx;
-			font-size: 26rpx;
-			color: #888;
-			&.active {
+			align-items: center;
+			height: 100%;
+			font-size: 30rpx;
+			color: $font-color-dark;
+			position: relative;
+
+			&.current {
 				color: $base-color;
+
+				&:after {
+					content: '';
+					position: absolute;
+					left: 50%;
+					bottom: 0;
+					transform: translateX(-50%);
+					width: 120rpx;
+					height: 0;
+					border-bottom: 4rpx solid $base-color;
+				}
 			}
 		}
-		.xia {
-			transform: scaleY(-1);
+
+		.p-box {
+			display: flex;
+			flex-direction: column;
+
+			.iconfont {
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				width: 30rpx;
+				height: 14rpx;
+				line-height: 1;
+				margin-left: 4rpx;
+				font-size: 26rpx;
+				color: #888;
+
+				&.active {
+					color: $base-color;
+				}
+			}
+
+			.xia {
+				transform: scaleY(-1);
+			}
 		}
-	}
-	.cate-item {
-		display: flex;
-		justify-content: center;
-		align-items: center;
-		height: 100%;
-		width: 80rpx;
-		position: relative;
-		font-size: 44rpx;
-		&:after {
-			content: '';
-			position: absolute;
-			left: 0;
-			top: 50%;
-			transform: translateY(-50%);
-			border-left: 1px solid #ddd;
-			width: 0;
-			height: 36rpx;
+
+		.cate-item {
+			display: flex;
+			justify-content: center;
+			align-items: center;
+			height: 100%;
+			width: 80rpx;
+			position: relative;
+			font-size: 44rpx;
+
+			&:after {
+				content: '';
+				position: absolute;
+				left: 0;
+				top: 50%;
+				transform: translateY(-50%);
+				border-left: 1px solid #ddd;
+				width: 0;
+				height: 36rpx;
+			}
 		}
 	}
-}
-
-/* 分类 */
-.cate-mask {
-	position: fixed;
-	left: 0;
-	top: var(--window-top);
-	bottom: 0;
-	width: 100%;
-	background: rgba(0, 0, 0, 0);
-	z-index: 95;
-	transition: 0.3s;
-
-	.cate-content {
-		width: 630rpx;
-		height: 100%;
-		background: #fff;
-		float: right;
-		transform: translateX(100%);
+
+	/* 分类 */
+	.cate-mask {
+		position: fixed;
+		left: 0;
+		top: var(--window-top);
+		bottom: 0;
+		width: 100%;
+		background: rgba(0, 0, 0, 0);
+		z-index: 95;
 		transition: 0.3s;
-	}
-	&.none {
-		display: none;
-	}
-	&.show {
-		background: rgba(0, 0, 0, 0.4);
 
 		.cate-content {
-			transform: translateX(0);
+			width: 630rpx;
+			height: 100%;
+			background: #fff;
+			float: right;
+			transform: translateX(100%);
+			transition: 0.3s;
+		}
+
+		&.none {
+			display: none;
+		}
+
+		&.show {
+			background: rgba(0, 0, 0, 0.4);
+
+			.cate-content {
+				transform: translateX(0);
+			}
 		}
 	}
-}
-.cate-list {
-	display: flex;
-	flex-direction: column;
-	height: 100%;
-	.cate-item {
-		display: flex;
-		align-items: center;
-		height: 90rpx;
-		padding-left: 30rpx;
-		font-size: 28rpx;
-		color: #555;
-		position: relative;
-	}
-	.two {
-		height: 64rpx;
-		color: #303133;
-		font-size: 30rpx;
-		background: #f8f8f8;
-	}
-	.active {
-		color: $base-color;
-	}
-}
-
-/* 商品列表 */
-.goods-list {
-	display: flex;
-	flex-wrap: wrap;
-	padding: 0 30rpx;
-	background: #fff;
-	.goods-item {
+
+	.cate-list {
 		display: flex;
 		flex-direction: column;
-		width: 48%;
-		padding-bottom: 40rpx;
-		&:nth-child(2n + 1) {
-			margin-right: 4%;
+		height: 100%;
+
+		.cate-item {
+			display: flex;
+			align-items: center;
+			height: 90rpx;
+			padding-left: 30rpx;
+			font-size: 28rpx;
+			color: #555;
+			position: relative;
 		}
-	}
-	.image-wrapper {
-		width: 100%;
-		height: 330rpx;
-		border-radius: 3px;
-		overflow: hidden;
-		image {
-			width: 100%;
-			height: 100%;
-			opacity: 1;
+
+		.two {
+			height: 64rpx;
+			color: #303133;
+			font-size: 30rpx;
+			background: #f8f8f8;
+		}
+
+		.active {
+			color: $base-color;
 		}
 	}
-	.title {
-		font-size: $font-lg;
-		color: $font-color-dark;
-		line-height: 80rpx;
-	}
-	.price-box {
+
+	/* 商品列表 */
+	.goods-list {
 		display: flex;
-		align-items: center;
-		justify-content: space-between;
-		padding-right: 10rpx;
-		font-size: 24rpx;
-		color: $font-color-light;
-	}
-	.price {
-		font-size: $font-lg;
-		color: $uni-color-primary;
-		line-height: 1;
-		&:before {
-			content: '¥';
-			font-size: 26rpx;
+		flex-wrap: wrap;
+		padding: 0 30rpx;
+		background: #fff;
+
+		.goods-item {
+			display: flex;
+			flex-direction: column;
+			width: 48%;
+			padding-bottom: 40rpx;
+
+			&:nth-child(2n + 1) {
+				margin-right: 4%;
+			}
+		}
+
+		.image-wrapper {
+			width: 100%;
+			height: 330rpx;
+			border-radius: 3px;
+			overflow: hidden;
+
+			image {
+				width: 100%;
+				height: 100%;
+				opacity: 1;
+			}
+		}
+
+		.title {
+			font-size: $font-lg;
+			color: $font-color-dark;
+			line-height: 80rpx;
+		}
+
+		.price-box {
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+			padding-right: 10rpx;
+			font-size: 24rpx;
+			color: $font-color-light;
+		}
+
+		.price {
+			font-size: $font-lg;
+			color: $uni-color-primary;
+			line-height: 1;
+
+			&:before {
+				content: '¥';
+				font-size: 26rpx;
+			}
 		}
 	}
-}
-</style>
+</style>

+ 63 - 6
pages/product/product.vue

@@ -33,11 +33,16 @@
 		</view>
 
 		<view class="introduce-section">
-			<view class="price-box" v-if="goodsType == 0">
-				<text class="price-tip">¥</text>
-				<text class="price">{{ goodsObjact.price}}</text>
-				<text class="m-price" v-if="goodsObjact.ot_price > goodsObjact.price">¥{{ goodsObjact.ot_price }}</text>
+			<view class="flex">
+				<view class="price-box" v-if="goodsType == 0">
+					<text class="price-tip">¥</text>
+					<text class="price">{{ goodsObjact.price}}</text>
+					<text class="m-price"
+						v-if="goodsObjact.ot_price > goodsObjact.price">¥{{ goodsObjact.ot_price }}</text>
+				</view>
+				<image @click="shareToFriend()" class="price-icon" src="../../static/icon/sharejt.png" mode=""></image>
 			</view>
+
 			<text class="title" v-if="goodsType == 0">{{ goodsObjact.store_name }}</text>
 		</view>
 		<view class="c-list">
@@ -70,11 +75,17 @@
 		<!-- 底部操作菜单 -->
 		<view class="page-bottom" v-if="goodsType == 0">
 			<view class="action-btn-group">
-				<view class="shoucang flex" @click="toFavorite(goodsObjact)">
+				<!-- <view class="shoucang flex" @click="toFavorite(goodsObjact)">
 					<image src="../../static/icon/sc-ico.png" mode=""></image>
 					<view class="">
 						收藏
 					</view>
+				</view> -->
+				<view class="shoucang flex" @click="toIndex()">
+					<image src="../../static/icon/index.png" mode=""></image>
+					<view class="">
+						首页
+					</view>
 				</view>
 				<view class="buy-now">
 					<button type="primary" class=" action-btn no-border buy-now-btn" @click.stop="toggleSpec(2)"
@@ -122,6 +133,11 @@
 				<button class="btn" @click.stop="buy">确定</button>
 			</view>
 		</view>
+		<uni-popup ref="popupshare" type="center">
+			<view class="share-box">
+				<image :src="shareImage" mode="widthFix" class="box-img" @longpress="saveImg()"></image>
+			</view>
+		</uni-popup>
 		<!-- <view :class="{ seckillBottom: goodsType == 1, goodsBottom: goodsType == 0 }"></view> -->
 		<!-- 分享 -->
 		<!-- <share ref="share" :contentHeight="580" :shareList="shareList"></share> -->
@@ -138,7 +154,8 @@
 		collectAdd,
 		collectDel,
 		seckillGoods,
-		groupGoods
+		groupGoods,
+		poster
 	} from '@/api/product.js';
 	// #ifdef H5
 	import {
@@ -170,6 +187,7 @@
 		},
 		data() {
 			return {
+				shareImage: '',
 				isvip: 0,
 				details: '',
 				reply: '', //评论
@@ -292,6 +310,35 @@
 					url: '/pages/product/product?id=' + this.goodsObjact.product_id
 				});
 			},
+			shareToFriend() {
+				let obj = this;
+				uni.showLoading({
+					title: 'Loading...',
+					mask: true
+				});
+				// #ifdef H5
+				let fromname = 'wechat';
+				// #endif
+				// #ifdef MP
+				let fromname = 'routine';
+				// #endif
+				console.log(obj.goodsid, 'id');
+				poster({
+						productId: obj.goodsid,
+						from: fromname
+					})
+					.then(({
+						data
+					}) => {
+						obj.shareImage = data.url;
+						console.log(obj.shareImage, '123456');
+						uni.hideLoading();
+						this.$refs.popupshare.open();
+					})
+					.catch(e => {
+						uni.hideLoading();
+					});
+			},
 			// 获取商品信息
 			goodsDetail() {
 				let obj = this;
@@ -444,6 +491,11 @@
 					});
 				}
 			},
+			toIndex() {
+				uni.switchTab({
+					url: '/pages/index/index'
+				})
+			},
 			// 立即购买
 			buy() {
 				let obj = this;
@@ -656,6 +708,11 @@
 			color: #FD3B39;
 		}
 
+		.price-icon {
+			width: 36rpx;
+			height: 36rpx;
+		}
+
 		.price {
 			font-size: $font-lg + 2rpx;
 		}

+ 15 - 3
pages/set/addressManage.vue

@@ -16,8 +16,13 @@
 			<text class="iconfont iconlocation"></text>
 		</view>
 		<view class="row b-b">
-			<text class="tit">门牌号</text>
-			<input class="input" type="text" v-model="addressData.area" placeholder="楼号、门牌"
+			<text class="tit">乡镇</text>
+			<input class="input" type="text" v-model="addressData.town" placeholder="请输入乡镇"
+				placeholder-class="placeholder" />
+		</view>
+		<view class="row b-b">
+			<text class="tit">详细地址</text>
+			<input class="input" type="text" v-model="addressData.area" placeholder="请输入详细地址"
 				placeholder-class="placeholder" />
 		</view>
 
@@ -56,6 +61,7 @@
 						city: '',
 						district: ''
 					},
+					town: '',
 					area: '',
 					default: false
 				}
@@ -77,6 +83,7 @@
 						district: data.district
 					},
 					area: data.detail,
+					town: data.town,
 					default: data.is_default == 1,
 					id: data.id
 				};
@@ -128,6 +135,10 @@
 					this.$api.msg('请在地图选择所在位置');
 					return;
 				}
+				if (!data.town) {
+					this.$api.msg('请填写乡镇信息');
+					return;
+				}
 				if (!data.area) {
 					this.$api.msg('请填写门牌号信息');
 					return;
@@ -142,6 +153,7 @@
 						city: data.address.city,
 						district: data.address.district
 					},
+					town: data.town,
 					detail: data.area,
 					is_default: data.default,
 					id: data.id || "",
@@ -177,7 +189,7 @@
 
 		.tit {
 			flex-shrink: 0;
-			width: 120rpx;
+			width: 140rpx;
 			font-size: 30rpx;
 			color: $font-color-dark;
 		}

+ 146 - 129
pages/set/phone.vue

@@ -7,7 +7,8 @@
 		<view>
 			<view class="row b-b">
 				<text class="tit">验证码</text>
-				<input class="input" v-model="captcha" type="text" placeholder="请填写验证码" placeholder-class="placeholder" />
+				<input class="input" v-model="captcha" type="text" placeholder="请填写验证码"
+					placeholder-class="placeholder" />
 				<view class="code" @click="verification">{{ countDown == 0 ? '验证码' : countDown }}</view>
 			</view>
 			<button class="add-btn" :class="{ 'bg-gray': loding }" @click="loding ? '' : confirm()">提交</button>
@@ -16,146 +17,162 @@
 </template>
 
 <script>
-import { verify } from '@/api/login.js';
-import { mapState } from 'vuex';
-import { registerReset, binding } from '@/api/set.js';
-export default {
-	data() {
-		return {
-			time: '', //保存倒计时对象
-			countDown: 0, //倒计时
-			account: '', //手机号
-			captcha: '', //验证码
-			password: '', //新密码
-			loding: false //是否载入中
-		};
-	},
-	watch: {
-		// 监听倒计时
-		countDown(i) {
-			if (i == 0) {
-				clearInterval(this.time);
-			}
-		}
-	},
-	computed: {
-		...mapState(['userInfo'])
-	},
-	onLoad() {
-		if (this.userInfo.phone == null) {
-			this.account = '';
-		} else {
-			this.account = this.userInfo.phone;
-			this.show = false;
-		}
-	},
-	methods: {
-		//发送验证码
-		verification() {
-			let obj = this;
-			if (this.account == '') {
-				this.$api.msg('请输入电话号码');
-				return;
-			}
-			if (!/(^1[3|4|5|7|8][0-9]{9}$)/.test(this.account)) {
-				this.$api.msg('请输入正确的手机号');
-				return;
+	import {
+		verify
+	} from '@/api/login.js';
+	import {
+		mapState
+	} from 'vuex';
+	import {
+		registerReset,
+		binding
+	} from '@/api/set.js';
+	export default {
+		data() {
+			return {
+				time: '', //保存倒计时对象
+				countDown: 0, //倒计时
+				account: '', //手机号
+				captcha: '', //验证码
+				password: '', //新密码
+				loding: false //是否载入中
+			};
+		},
+		watch: {
+			// 监听倒计时
+			countDown(i) {
+				if (i == 0) {
+					clearInterval(this.time);
+				}
 			}
-			// 判断是否在倒计时
-			if (obj.countDown > 0) {
-				return false;
+		},
+		computed: {
+			...mapState(['userInfo'])
+		},
+		onLoad() {
+			if (this.userInfo.phone == null) {
+				this.account = '';
 			} else {
-				obj.countDown = 60;
-				obj.time = setInterval(() => {
-					obj.countDown--;
-				}, 1000);
-				//调用验证码接口
-				verify({
-					phone: obj.account,
-					type: 'BDING_CODE'
-				})
-					.then(({ data }) => {})
+				this.account = this.userInfo.phone;
+				this.show = false;
+			}
+		},
+		methods: {
+			//发送验证码
+			verification() {
+				let obj = this;
+				if (this.account == '') {
+					this.$api.msg('请输入电话号码');
+					return;
+				}
+				if (!/(^1[3|4|5|7|8][0-9]{9}$)/.test(this.account)) {
+					this.$api.msg('请输入正确的手机号');
+					return;
+				}
+				// 判断是否在倒计时
+				if (obj.countDown > 0) {
+					return false;
+				} else {
+					obj.countDown = 60;
+					obj.time = setInterval(() => {
+						obj.countDown--;
+					}, 1000);
+					//调用验证码接口
+					verify({
+							phone: obj.account,
+							type: 'BDING_CODE'
+						})
+						.then(({
+							data
+						}) => {})
+						.catch(err => {
+							console.log(err);
+						});
+				}
+			},
+			confirm(e) {
+				let obj = this;
+				obj.loding = true;
+				binding({
+						phone: obj.account,
+						captcha: obj.captcha
+					})
+					.then(({
+						data
+					}) => {
+						obj.$api.msg('绑定成功!');
+						setTimeout(function() {
+							obj.loding = false;
+							uni.switchTab({
+								url: '/pages/user/user'
+							});
+						}, 1000);
+					})
 					.catch(err => {
+						obj.loding = false;
 						console.log(err);
 					});
 			}
-		},
-		confirm(e) {
-			let obj = this;
-			obj.loding = true;
-			binding({
-				phone: obj.account,
-				captcha: obj.captcha
-			})
-				.then(({ data }) => {
-					obj.$api.msg('绑定成功!');
-					setTimeout(function() {
-						obj.loding = false;
-						uni.switchTab({
-							url: '/pages/user/user'
-						});
-					}, 1000);
-				})
-				.catch(err => {
-					obj.loding = false;
-					console.log(err);
-				});
 		}
-	}
-};
+	};
 </script>
 
 <style lang="scss">
-page {
-	background: $page-color-base;
-}
-.row {
-	display: flex;
-	align-items: center;
-	position: relative;
-	padding: 0 30rpx;
-	height: 110rpx;
-	background: #fff;
+	page {
+		background: $page-color-base;
+	}
 
-	.tit {
-		flex-shrink: 0;
-		width: 120rpx;
-		font-size: 30rpx;
-		color: $font-color-dark;
+	.row {
+		display: flex;
+		align-items: center;
+		position: relative;
+		padding: 0 30rpx;
+		height: 110rpx;
+		background: #fff;
+
+		.tit {
+			flex-shrink: 0;
+			width: 120rpx;
+			font-size: 30rpx;
+			color: $font-color-dark;
+		}
+
+		.input {
+			flex: 1;
+			font-size: 30rpx;
+			color: $font-color-dark;
+		}
+
+		.iconlocation {
+			font-size: 36rpx;
+			color: $font-color-light;
+		}
 	}
-	.input {
-		flex: 1;
-		font-size: 30rpx;
-		color: $font-color-dark;
+
+	.add-btn {
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		width: 690rpx;
+		height: 80rpx;
+		margin: 60rpx auto;
+		font-size: $font-lg;
+		color: #fff;
+		background-color: $base-color;
+		border-radius: 10rpx;
+		// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
 	}
-	.iconlocation {
-		font-size: 36rpx;
-		color: $font-color-light;
+
+	.bg-gray {
+		background-color: $color-gray;
 	}
-}
-.add-btn {
-	display: flex;
-	align-items: center;
-	justify-content: center;
-	width: 690rpx;
-	height: 80rpx;
-	margin: 60rpx auto;
-	font-size: $font-lg;
-	color: #fff;
-	background-color: $base-color;
-	border-radius: 10rpx;
-	// box-shadow: 1px 2px 5px rgba(219, 63, 96, 0.4);
-}
 
-.bg-gray {
-	background-color: $color-gray;
-}
-.code {
-	color: #5dbc7c;
-	font-size: 23rpx;
-	border-left: 1px solid #eeeeee;
-	width: 150rpx;
-	flex-shrink: 0;
-	text-align: center;
-}
-</style>
+	.code {
+		color: #9C0B18;
+		font-size: 23rpx;
+		border-left: 1px solid #eeeeee;
+		width: 150rpx;
+		flex-shrink: 0;
+		text-align: center;
+	}
+</style>

+ 44 - 51
pages/set/set.vue

@@ -1,74 +1,61 @@
 <template>
 	<view class="container">
 		<uni-list>
-		    <uni-list-item title="个人资料" @click="navTo('/pages/set/userinfo')" ></uni-list-item>
-			<uni-list-item title="修改密码" @click="navTo('/pages/set/password')" ></uni-list-item>
-		    <uni-list-item title="实名认证" @click="navTo('/pages/set/phone')" ></uni-list-item>
-		    <uni-list-item title="收货地址" @click="navTo('/pages/set/address')" ></uni-list-item>
+			<uni-list-item title="个人资料" @click="navTo('/pages/set/userinfo')"></uni-list-item>
+			<!-- <uni-list-item title="修改密码" @click="navTo('/pages/set/password')" ></uni-list-item> -->
+			<uni-list-item title="实名认证" @click="navTo('/pages/set/phone')"></uni-list-item>
+			<uni-list-item title="收货地址" @click="navTo('/pages/set/address')"></uni-list-item>
 		</uni-list>
-		<uni-list class="margin-t-20">
-		    <uni-list-item title="消息推送" :switch-checked='true' :show-switch="true" :show-arrow="false" switch-color='#5dbc7c'  @switchChange='switchChange'> 
-			</uni-list-item>
-		</uni-list>
-		
-		<uni-list class="margin-t-20">
-		    <uni-list-item title="清除缓存" ></uni-list-item>
-		    <uni-list-item title="检查更新" >
-				<template slot="right">
-					当前版本 1.0.3
-				</template>
-			</uni-list-item>
-		</uni-list>
-		<view class="list-cell log-out-btn" @click="toLogout">
-			<text class="cell-tit">退出登录</text>
-		</view>
 	</view>
 </template>
 
 <script>
 	import uniList from "@/components/uni-list/uni-list.vue"
 	import uniListItem from "@/components/uni-list-item/uni-list-item.vue"
-	import { logout } from '@/api/set.js';
-	import {  
-	    mapMutations  
+	import {
+		logout
+	} from '@/api/set.js';
+	import {
+		mapMutations
 	} from 'vuex';
 	export default {
 		components: {
-			uniList,uniListItem
+			uniList,
+			uniListItem
 		},
 		data() {
 			return {
-				
+
 			};
 		},
-		methods:{
-			...mapMutations('user',['logout']),
-			navTo(url){
+		methods: {
+			...mapMutations('user', ['logout']),
+			navTo(url) {
 				uni.navigateTo({
-					url:url
+					url: url
 				})
 			},
 			//退出登录
-			toLogout(){
+			toLogout() {
 				let obj = this;
 				uni.showModal({
-				    content: '确定要退出登录么',
-				    success: (e)=>{
-				    	if(e.confirm){
+					content: '确定要退出登录么',
+					success: (e) => {
+						if (e.confirm) {
 							logout({}).then((e) => {
 								uni.navigateBack();
 							}).catch((e) => {
 								console.log(e);
 							})
-				    		obj.logout();
-				    	}
-				    }
+							obj.logout();
+						}
+					}
 				});
 			},
 			//switch切换触发方法
-			switchChange(e){
+			switchChange(e) {
 				console.log(e);
-				let statusTip = e.value ? '打开': '关闭';
+				let statusTip = e.value ? '打开' : '关闭';
 				this.$api.msg(`${statusTip}消息推送`);
 			},
 
@@ -77,37 +64,43 @@
 </script>
 
 <style lang='scss'>
-	page{
+	page {
 		background: $page-color-base;
 	}
-	.list-cell{
-		display:flex;
-		align-items:baseline;
+
+	.list-cell {
+		display: flex;
+		align-items: baseline;
 		padding: 20rpx $page-row-spacing;
-		line-height:60rpx;
-		position:relative;
+		line-height: 60rpx;
+		position: relative;
 		background: #fff;
 		justify-content: center;
-		&.log-out-btn{
+
+		&.log-out-btn {
 			margin-top: 40rpx;
-			.cell-tit{
+
+			.cell-tit {
 				color: $uni-color-primary;
 				text-align: center;
 				margin-right: 0;
 			}
 		}
-		.cell-tit{
+
+		.cell-tit {
 			flex: 1;
 			font-size: $font-base + 2rpx;
 			color: $font-color-dark;
-			margin-right:10rpx;
+			margin-right: 10rpx;
 		}
-		.cell-tip{
+
+		.cell-tip {
 			font-size: $font-base;
 			color: $font-color-light;
 		}
-		switch{
+
+		switch {
 			transform: translateX(16rpx) scale(.84);
 		}
 	}
-</style>
+</style>

+ 2 - 2
pages/user/award.vue

@@ -20,7 +20,7 @@
 				<view class="money-btn" @click="navto('/pages/user/withdrawal')">佣金提现</view>
 			</view>
 		</view>
-		<view class="info-box flex">
+		<!-- <view class="info-box flex">
 			<view class="info-item">
 				<view class="info-font">累计收入</view>
 				<view class="info-num">{{userInfo.brokerage || '0'}}</view>
@@ -30,7 +30,7 @@
 				<view class="info-font">累计支出</view>
 				<view class="info-num">{{userInfo.extractTotalPrice || '0'}}</view>
 			</view>
-		</view>
+		</view> -->
 		<view class="navbar">
 			<view v-for="(item, index) in navList" :key="index" class="nav-item"
 				:class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.text }}</view>

+ 90 - 46
pages/user/user.vue

@@ -6,18 +6,32 @@
 		</view>
 		<view class="" style="height: 100rpx;"></view>
 		<view class="user-box">
+			<view class="user-shop flex" v-if="userInfo.uid">
+				<view class="user-shop-item" v-if="userInfo.level> 0 " style="width: 180rpx;">
+					<image class="user-shop-icon" src="../../static/icon/level.png" mode="" style="width: 180rpx;">
+					</image>
+					<view class="user-shopname" style="padding-left: 70rpx;">
+						{{userInfo.level_name}}
+					</view>
+				</view>
+			</view>
 			<image class="avatar" :src="userInfo.avatar" mode="" v-if="userInfo.avatar"
 				@click="navTo('/pages/set/userinfo')"></image>
 			<image class="avatar" src="../../static/error/missing-face.png" mode="" v-else></image>
+			<view class="dz" v-if="userInfo.is_v1 && userInfo.is_v1 ==1">
+				<view class="dz-bg">
+					<image src="../../static/icon/dz.png" mode=""></image>
+				</view>
+				<view class="dz-font">
+					店长
+				</view>
+			</view>
 			<view class="user-name-id">
 				<view class="user-name clamp1">{{ userInfo.nickname || '游客'}}</view>
-				<view class="user-shop flex" v-if="userInfo.uid">
-					<view class="user-shop-item" v-if="userInfo.level> 0 " style="width: 180rpx;">
-						<image class="user-shop-icon" src="../../static/img/level.png" mode="" style="width: 180rpx;">
-						</image>
-						<view class="user-shopname" style="padding-left: 70rpx;">
-							{{userInfo.level_name}}
-						</view>
+				<view class="dl" v-if="userInfo && userInfo.area_admin > 0">
+					<image class="dl-icon" src="../../static/icon/dl.png" mode=""></image>
+					<view class="dl-font">
+						{{userInfo.area_admin == 1?'省代':userInfo.area_admin == 2?'市代':userInfo.area_admin == 3?'区代':'镇代'}}
 					</view>
 				</view>
 			</view>
@@ -92,18 +106,14 @@
 			</view>
 			<image src="../../static/icon/back.png" mode="" class="right-img"></image>
 		</view>
-		<view class="user-list flex" @click="navTo('/pages/set/userinfo')">
+		<view class="user-list flex" @click="navTo('/pages/set/set')">
 			<image src="../../static/icon/u4.png" mode="" class="left-img"></image>
 			<view class="">
 				设置
 			</view>
 			<image src="../../static/icon/back.png" mode="" class="right-img"></image>
 		</view>
-
-
-
 		<view class="" style="height: 20rpx;">
-
 		</view>
 		<uni-popup ref="popupkf" type="center">
 			<view class="popup-box">
@@ -291,19 +301,16 @@
 			// 加载初始数据
 			loadBaseData() {
 				const obj = this
-				getLevelList().then(res => {
-					obj.levelList = res.data
-					getUserInfo({})
-						.then(({
-							data
-						}) => {
-							obj.setUserInfo(data);
+				getUserInfo({})
+					.then(({
+						data
+					}) => {
+						obj.setUserInfo(data);
 
-						})
-						.catch(e => {
-							console.log(e);
-						});
-				})
+					})
+					.catch(e => {
+						console.log(e);
+					});
 
 			},
 			/**
@@ -514,6 +521,41 @@
 			width: 132rpx;
 			height: 132rpx;
 			background-color: #eee;
+			position: relative;
+		}
+
+		.dz {
+			position: relative;
+			z-index: 2;
+			margin-top: -30rpx;
+			width: 120rpx;
+			height: 40rpx;
+
+			.dz-bg {
+				position: absolute;
+				top: 0;
+				left: 0;
+				right: 0;
+				width: 120rpx;
+				height: 40rpx;
+
+				image {
+					width: 100%;
+					height: 100%;
+				}
+			}
+
+			.dz-font {
+				padding-left: 20rpx;
+				text-align: center;
+				position: relative;
+				z-index: 3;
+				line-height: 40rpx;
+				color: #f1e2b3;
+				font-family: PingFang SC;
+				font-weight: bold;
+				font-size: 24rpx;
+			}
 		}
 
 
@@ -528,7 +570,29 @@
 			color: #333333;
 		}
 
+		.dl {
+			margin-top: 20rpx;
+			display: flex;
+			justify-content: center;
+			align-items: center;
+
+			.dl-icon {
+				width: 30rpx;
+				height: 30rpx;
+			}
+
+			.dl-font {
+				margin-left: 10rpx;
+				font-family: PingFang SC;
+				font-weight: bold;
+				color: #ff7523;
+				font-size: 26rpx;
+			}
+		}
+
 		.user-shop {
+			position: absolute;
+			right: 0;
 			display: flex;
 			justify-content: flex-start;
 			align-items: center;
@@ -536,7 +600,7 @@
 			.user-shop-item {
 				margin: 10rpx auto 0;
 				position: relative;
-				width: 180rpx;
+				width: 150rpx;
 				height: 55rpx;
 
 				.user-shop-icon {
@@ -544,7 +608,7 @@
 					top: 0;
 					left: 0;
 					right: 0;
-					width: 180rpx;
+					width: 150rpx;
 					height: 55rpx;
 				}
 
@@ -561,26 +625,6 @@
 			}
 		}
 
-		// .user-shop {
-		// 	margin-top: 10rpx;
-		// 	display: flex;
-		// 	justify-content: center;
-		// 	align-items: center;
-
-		// 	.user-shop-icon {
-		// 		width: 22rpx;
-		// 		height: 22rpx;
-		// 	}
-
-		// 	.user-shopname {
-		// 		margin-left: 6rpx;
-		// 		font-size: 20rpx;
-		// 		font-family: PingFang SC;
-		// 		font-weight: 500;
-		// 		color: #ff7e3e;
-		// 	}
-		// }
-
 		.user-money {
 			width: 100%;
 			margin-top: 50rpx;

+ 351 - 0
pages/user/yjzz.vue

@@ -0,0 +1,351 @@
+<template>
+	<view class="content">
+		<view class="content-money">
+			<view class="flex">
+				<view class="buttom">
+					<view class="icon">{{ userInfo.now_money | getMoneyStyle }}</view>
+					<text class="text">可转账余额</text>
+				</view>
+			</view>
+		</view>
+		<view class="row-box">
+			<view class="title">收款人UID</view>
+			<view class="row"><input class="input" type="number" v-model="phone" placeholder="请输入收款人UID"
+					placeholder-class="placeholder" /></view>
+		</view>
+		<view class="row-box">
+			<view class="title">转账金额</view>
+			<view class="row">
+				<!-- <text class="tit">¥</text> -->
+				<input class="input" type="number" v-model="withdrawal" placeholder="转入金额"
+					placeholder-class="placeholder" />
+				<view class="buttom" @click="withdrawal = userInfo.now_money*1">全部转账</view>
+				<!-- <view class="buttom" @click="withdrawal = userInfo.dynamic_integral" v-if="type== 2">全部转账</view> -->
+			</view>
+		</view>
+		<button class="add-btn up" :class="{ action: loding }" @click="!loding ? confirm() : ''">转账</button>
+	</view>
+</template>
+
+<script>
+	import {
+		getMoneyStyle
+	} from '@/utils/rocessor.js';
+	import {
+		getUserInfo,
+		jfzz
+	} from '@/api/user.js';
+	import {
+		mapMutations,
+		mapState
+	} from 'vuex';
+	export default {
+		filters: {
+			getMoneyStyle
+		},
+		data() {
+			return {
+				phone: '',
+				money: '0.00', //可提现金额
+				withdrawal: '', //提现金额
+				password: '', //支付密码
+				card: '', //转账卡号
+				name: '',
+				// #ifdef H5
+				weichatBsrowser: false,
+				// #endif
+				loding: false,
+				type: 0
+			};
+		},
+		onLoad(options) {
+			// #ifdef H5
+			this.weichatBsrowser = uni.getStorageSync('weichatBrowser');
+			// #endif
+			this.dataUp();
+			if (options.type) {
+				this.type = options.type;
+			}
+		},
+		computed: {
+			...mapState('user', ['userInfo'])
+		},
+		methods: {
+			...mapMutations('user', ['setUserInfo', 'login']),
+			// 更新数据
+			dataUp() {
+				let obj = this;
+				getUserInfo({})
+					.then(e => {
+						obj.setUserInfo(e.data);
+					})
+					.catch(e => {
+						console.log(e);
+					});
+			},
+			// 切换选中对象
+			tabRadio(e) {
+				this.type = e.detail.value;
+			},
+			// 提交
+			confirm() {
+				let obj = this;
+				obj.loding = true;
+				if (obj.withdrawal == 0) {
+					obj.loding = false;
+					uni.showModal({
+						title: '提示',
+						content: '转账金额不要为0'
+					});
+					return;
+				}
+				if (obj.phone == '') {
+					return obj.$api.msg('请输入用户UID')
+				}
+				let data = {
+					other_uid: obj.phone, //编号
+					TransferMoney: obj.withdrawal, //金额
+					uid: obj.userInfo.uid
+					// type: obj.type
+				};
+				jfzz(data)
+					.then(e => {
+
+						// 允许按钮点击
+						obj.loding = false;
+						// 初始化提现金额
+						uni.showToast({
+							title: '转账成功',
+							duration: 2000,
+							position: 'top'
+						});
+						obj.dataUp();
+					})
+					.catch(e => {
+						obj.$api.msg(e.msg);
+						obj.loding = false;
+						console.log();
+					});
+			},
+			boblack() {
+				uni.navigateBack({
+					fail() {
+						uni.switchTab({
+							url: '/pages/index/index'
+						})
+					}
+				})
+			},
+		}
+	};
+</script>
+
+<style lang="scss">
+	page {
+		height: 100%;
+	}
+
+	.content-money {
+		padding: 30rpx 0;
+		background: #ffffff;
+	}
+
+	.item {
+		padding: 0 $page-row-spacing;
+		background-color: #ffffff;
+	}
+
+	.flex {
+		background-color: #ffffff;
+		text-align: center;
+		margin: 0 30rpx;
+		border-radius: $border-radius-sm;
+		justify-content: center;
+
+		.buttom {
+			font-size: $font-lg;
+			width: 50%;
+		}
+
+		.interval {
+			width: 2px;
+			height: 60rpx;
+			background-color: #eeeeee;
+		}
+
+		.icon {
+			background-size: 100%;
+			font-size: 42rpx;
+			color: $font-color-dark;
+			font-weight: bold;
+			background-repeat: no-repeat;
+			background-position: center;
+		}
+
+		.text {
+			color: $font-color-light;
+		}
+	}
+
+	.row-box {
+		margin-top: 30rpx;
+		padding: 20rpx 30rpx;
+		background: #fff;
+
+		.title {
+			font-size: $font-base + 2rpx;
+			color: $font-color-dark;
+		}
+
+		.row {
+			display: flex;
+			align-items: center;
+			position: relative;
+			height: 80rpx;
+
+			.tit {
+				flex-shrink: 0;
+				width: 40rpx;
+				font-size: 30rpx;
+				color: $font-color-dark;
+			}
+
+			.input {
+				flex: 1;
+				font-size: 30rpx;
+				color: $font-color-dark;
+			}
+
+			.iconlocation {
+				font-size: 36rpx;
+				color: $font-color-light;
+			}
+
+			.buttom {
+				color: #a9000b;
+				font-size: $font-base;
+			}
+		}
+	}
+
+	.add-btn {
+		width: 520rpx;
+		height: 80rpx;
+		border-radius: 20rpx;
+		margin: 140rpx auto 0;
+		font-size: 36rpx;
+		font-weight: bold;
+		color: #ffffff;
+		background-color: #a9000b;
+	}
+
+	.back-btn {
+		width: 520rpx;
+		height: 80rpx;
+		border-radius: 20rpx;
+		margin: 40rpx auto;
+		font-size: 36rpx;
+		font-weight: bold;
+		color: #303030;
+		background-color: #F8DABA;
+	}
+
+	.name {
+		background: #fff;
+		padding: 30rpx;
+	}
+
+	.list {
+		padding-left: 30rpx;
+		margin-top: 30rpx;
+		background-color: #ffffff;
+
+		.box {
+			display: flex;
+			align-items: center;
+			width: 100%;
+			height: 120rpx;
+			border-bottom: 1px solid $border-color-light;
+
+			.icon {
+				font-size: 48rpx;
+				padding-right: 20rpx;
+
+				.icon-img {
+					height: 50rpx;
+					width: 50rpx;
+				}
+			}
+
+			.iconweixin1 {
+				color: #18bf16;
+			}
+
+			.iconzhifubao {
+				color: #08aaec;
+			}
+
+			.title-box {
+				flex-grow: 1;
+				text-align: left;
+
+				.title {
+					font-size: $font-base + 2rpx;
+					color: $font-color-base;
+				}
+
+				.node {
+					font-size: $font-sm;
+					color: $font-color-light;
+				}
+			}
+		}
+	}
+
+	.tip {
+		padding: 20rpx;
+		color: #ff0000;
+	}
+
+	/deep/ .uni-radio-input {
+		width: 45rpx;
+		height: 45rpx;
+	}
+
+	.psw-wrapper {
+		width: 548rpx;
+		height: 344rpx;
+		background-color: #FFFFFF;
+		border-radius: 15rpx 15rpx;
+
+		.psw-title {
+			width: 100%;
+			font-size: 35rpx;
+			padding: 43rpx 0 49rpx;
+			text-align: center;
+			font-weight: 800;
+		}
+
+		.psw-ipt {
+			display: block;
+			background-color: #dce3ed;
+			height: 90rpx;
+			width: 464rpx;
+			padding-left: 30rpx;
+			margin: 0 auto;
+			font-size: 80rpx;
+		}
+
+		.psw-btn text {
+			display: inline-block;
+			text-align: center;
+			width: 50%;
+			padding-top: 29rpx;
+			font-size: 35rpx;
+		}
+
+		.psw-qd {
+			color: #5771DF;
+		}
+	}
+</style>

+ 5 - 9
pages/user/yue.vue

@@ -18,16 +18,12 @@
 				</view>
 				<view class="moneybtn-box">
 					<!-- <view class="money-btn" style="text-decoration: underline;" @click="navto('/pages/money/freeze')">冻结记录</view> -->
-					<view class="money-btn" style="text-decoration: underline;"></view>
+					<view class="money-btn" @click="navto('/pages/user/yjzz')">转账</view>
 					<view class="money-btn" @click="navto('/pages/money/recharge')">钱包充值</view>
 				</view>
 			</view>
 		</view>
-		<view class="info-box flex">
-			<!-- <view class="info-item">
-				<view class="info-font">冻结中</view>
-				<view class="info-num">111</view>
-			</view> -->
+		<!-- <view class="info-box flex">
 			<view class="shu"></view>
 			<view class="info-item">
 				<view class="info-font">累计充值</view>
@@ -38,7 +34,7 @@
 				<view class="info-font">累计支出</view>
 				<view class="info-num">{{ userInfo.orderStatusSum || '0'}}</view>
 			</view>
-		</view>
+		</view> -->
 		<view class="navbar">
 			<view v-for="(item, index) in navList" :key="index" class="nav-item"
 				:class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">{{ item.text }}</view>
@@ -87,7 +83,7 @@
 	import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue';
 	import empty from '@/components/empty';
 	import {
-		getUser
+		getUserInfo
 	} from '@/api/user.js';
 	export default {
 		filters: {
@@ -156,7 +152,7 @@
 				});
 			},
 			getUserInfo() {
-				getUser({}).then(({
+				getUserInfo({}).then(({
 					data
 				}) => {
 					this.userInfo = data

BIN
static/icon/dl.png


BIN
static/icon/dz.png


BIN
static/icon/in5.png


BIN
static/icon/index.png


BIN
static/icon/level.png


BIN
static/img/jhq.png


BIN
static/img/level.png


BIN
static/tabBar/cart-action.png


BIN
static/tabBar/cart.png


BIN
static/tabBar/cate-action.png


BIN
static/tabBar/cate.png


BIN
static/tabBar/home-action.png


BIN
static/tabBar/home.png


BIN
static/tabBar/user-action.png


BIN
static/tabBar/user.png


Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor