Ver código fonte

字体文件上传服务器

XSXS 1 semana atrás
pai
commit
b8c3df39aa

+ 115 - 101
pages/crowdFunding/customerService.vue

@@ -13,9 +13,10 @@
 			<view class="navbar-right" @click="toggleDropdown">
 				<image src="@/static/icon/more2.png" style="width: 64rpx; height: 64rpx; margin-top: 15rpx"
 					mode="widthFix"></image>
-					
-				<view class="dropdown-menu" v-if="showDropdown">
-					<view class="dropdown-item" @tap="handleOption('report')">举报内容</view>
+				<view class="dropdown-menu-mask" v-if="showDropdown">
+					<view class="dropdown-menu">
+						<view class="dropdown-item" @tap="handleOption('report')">举报内容</view>
+					</view>
 				</view>
 
 			</view>
@@ -25,80 +26,82 @@
 		<scroll-view class="cs-chat-list" :scroll-y="true" :scroll-with-animation="true"
 			:scroll-into-view="scrollToView" :style="{
 				paddingBottom: (keyboardHeight ? keyboardHeight + 100 : 100) + 'rpx',
-			}" @refresherrefresh="loadMoreHistory" :refresher-enabled="true" :refresher-triggered="triggered" enable-back-to-top ref="scrollView">
+			}" @refresherrefresh="loadMoreHistory" :refresher-enabled="true" :refresher-triggered="triggered" enable-back-to-top
+			ref="scrollView">
 			<view v-for="(msg, idx) in chatList" :key="msg.id">
-				<template v-if="msg.message_type == 1 || msg.message_type == 2 || msg.message_type == 3 || msg.message_type == 4 || msg.message_type == 5 ">
+				<template
+					v-if="msg.message_type == 1 || msg.message_type == 2 || msg.message_type == 3 || msg.message_type == 4 || msg.message_type == 5">
 
-				
-				<view v-if="shouldShowTime(idx)" class="cs-time-bar">
-					<view class="cs-time-inner">{{ formatTime(msg.time) }}</view>
-				</view>
-				<template v-if="msg.message_type == 5">
-					<view class="cs-msg-order-card-box">
-						<image class="order-card-avatar" :src="msg.avatar" />
-						<view class="cs-msg-order-card">
-							<image class="order-card-img" v-if="msg.order.main_image" :src="msg.order.main_image"
-								mode="aspectFill" />
-							<view class="order-card-info">
-								<view class="order-card-title">{{ msg.order.title }}</view>
-								<view class="order-card-row" v-if="msg.order.orderNo">
-									<text class="order-card-label">订单编号</text>
-									<text class="order-card-value">{{ msg.order.orderNo }}</text>
-								</view>
-								<view class="order-card-row" v-if="msg.order.orderTime">
-									<text class="order-card-label">下单时间</text>
-									<text class="order-card-value">{{
-										msg.order.orderTime
-									}}</text>
-								</view>
-								<view class="order-card-btn-box">
-									<button class="order-card-btn" @click="goDetails(msg.order)">查看详情</button>
+
+					<view v-if="shouldShowTime(idx)" class="cs-time-bar">
+						<view class="cs-time-inner">{{ formatTime(msg.time) }}</view>
+					</view>
+					<template v-if="msg.message_type == 5">
+						<view class="cs-msg-order-card-box">
+							<image class="order-card-avatar" :src="msg.avatar" />
+							<view class="cs-msg-order-card">
+								<image class="order-card-img" v-if="msg.order.main_image" :src="msg.order.main_image"
+									mode="aspectFill" />
+								<view class="order-card-info">
+									<view class="order-card-title">{{ msg.order.title }}</view>
+									<view class="order-card-row" v-if="msg.order.orderNo">
+										<text class="order-card-label">订单编号</text>
+										<text class="order-card-value">{{ msg.order.orderNo }}</text>
+									</view>
+									<view class="order-card-row" v-if="msg.order.orderTime">
+										<text class="order-card-label">下单时间</text>
+										<text class="order-card-value">{{
+											msg.order.orderTime
+											}}</text>
+									</view>
+									<view class="order-card-btn-box">
+										<button class="order-card-btn" @click="goDetails(msg.order)">查看详情</button>
+									</view>
 								</view>
 							</view>
 						</view>
-					</view>
-				</template>
-				<template v-else>
-					<view :id="'msg-' + msg.id" :class="[
-						'cs-msg-item',
-						msg.type === 'user' ? 'cs-msg-self' : 'cs-msg-other',
-					]">
-						<image class="cs-avatar" :src="msg.avatar" />
-						<view class="cs-msg-bubble">
-							<!-- 文本消息 -->
-							<template v-if="msg.message_type === 1">
-								{{ msg.content }}
-							</template>
-							<!-- 图片消息 -->
-							<template v-else-if="msg.message_type === 2">
-								<view style="position:relative;display:inline-block;">
-									<image :src="msg.media_url" mode="widthFix"
-										style="max-width: 180rpx;  border-radius: 8rpx;"
-										@tap="!msg.uploading && previewImage(msg.media_url)" />
-									<view v-if="msg.uploading"
-										style="position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(255,255,255,0.7);display:flex;align-items:center;justify-content:center;">
-										<text style="color:#a6e22e;font-size:24rpx;">{{ msg.progress || 0 }}%</text>
+					</template>
+					<template v-else>
+						<view :id="'msg-' + msg.id" :class="[
+							'cs-msg-item',
+							msg.type === 'user' ? 'cs-msg-self' : 'cs-msg-other',
+						]">
+							<image class="cs-avatar" :src="msg.avatar" />
+							<view class="cs-msg-bubble">
+								<!-- 文本消息 -->
+								<template v-if="msg.message_type === 1">
+									{{ msg.content }}
+								</template>
+								<!-- 图片消息 -->
+								<template v-else-if="msg.message_type === 2">
+									<view style="position:relative;display:inline-block;">
+										<image :src="msg.media_url" mode="widthFix"
+											style="max-width: 180rpx;  border-radius: 8rpx;"
+											@tap="!msg.uploading && previewImage(msg.media_url)" />
+										<view v-if="msg.uploading"
+											style="position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(255,255,255,0.7);display:flex;align-items:center;justify-content:center;">
+											<text style="color:#a6e22e;font-size:24rpx;">{{ msg.progress || 0 }}%</text>
+										</view>
 									</view>
-								</view>
-							</template>
-							<!-- 语音消息 -->
-							<template v-else-if="msg.message_type === 3">
-								<view class="cs-msg-voice">[语音消息] <text style="color:#a6e22e">(暂不支持播放)</text></view>
-							</template>
-							<!-- 视频消息 -->
-							<template v-else-if="msg.message_type === 4">
-								<video :src="msg.media_url" controls
-									style="max-width: 220rpx; max-height: 180rpx; border-radius: 8rpx;" />
-							</template>
-
-							<!-- 其它未知类型 -->
-							<template v-else>
-								<text style="color:#bbb">[未知消息类型]</text>
-							</template>
+								</template>
+								<!-- 语音消息 -->
+								<template v-else-if="msg.message_type === 3">
+									<view class="cs-msg-voice">[语音消息] <text style="color:#a6e22e">(暂不支持播放)</text></view>
+								</template>
+								<!-- 视频消息 -->
+								<template v-else-if="msg.message_type === 4">
+									<video :src="msg.media_url" controls
+										style="max-width: 220rpx; max-height: 180rpx; border-radius: 8rpx;" />
+								</template>
+
+								<!-- 其它未知类型 -->
+								<template v-else>
+									<text style="color:#bbb">[未知消息类型]</text>
+								</template>
+							</view>
 						</view>
-					</view>
+					</template>
 				</template>
-			</template>
 			</view>
 			<view style="height: 200rpx; width: 100%"></view>
 			<view :id="'bottom-anchor'"></view>
@@ -117,7 +120,7 @@
 							<button class="order-card-btn" @click="sendOrderCardMsg()">
 								发给客服
 							</button>
-						</view> 
+						</view>
 					</view>
 					<image class="order-card-close" @click="closeOrderCard" src="@/static/icon/wd_icon_guanbi.png"
 						mode="widthFix"></image>
@@ -400,7 +403,7 @@ export default {
 		},
 		closeOrderCard() {
 			this.adShow = false;
-		}, 
+		},
 		shouldShowTime(idx) {
 			if (idx === 0) return true;
 			// 找到上一个显示时间条的消息
@@ -1083,6 +1086,7 @@ export default {
 		display: flex;
 		flex-direction: row-reverse;
 		margin-bottom: 20rpx;
+
 		.order-card-avatar {
 			width: 64rpx;
 			height: 64rpx;
@@ -1171,41 +1175,51 @@ export default {
 		}
 	}
 
-	.dropdown-menu {
+	.dropdown-menu-mask {
 		position: absolute;
-		top: calc(100% + 10rpx);
-		right: 20rpx;
-		background-color: #ffffff;
-		border-radius: 20rpx;
-		padding: 0;
-		width: 200rpx;
-		box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.1);
+		top: 0;
+		left: 0; 
+		background-color: rgba(0, 0, 0, 0);
 		z-index: 100;
-		transform-origin: top right;
-		animation: dropdownAnimation 0.2s ease-out;
-		overflow: hidden;
-
-		.dropdown-item {
-			padding: 24rpx 0;
-			color: #333333;
-			font-size: 28rpx;
-			position: relative;
-			text-align: center;
-
-			&:not(:last-child)::after {
-				content: '';
-				position: absolute;
-				left: 0;
-				right: 0;
-				bottom: 0;
-				height: 1rpx;
-				background-color: #EEEEEE;
-			}
+		width: 100%;
+		height: 100vh;
+		.dropdown-menu {
+			position: absolute;
+			top: calc(100rpx + var(--status-bar-height));
+			right: 20rpx;
+			background-color: #ffffff;
+			border-radius: 20rpx;
+			padding: 0;
+			width: 200rpx;
+			box-shadow: 0 4rpx 20rpx rgba(0, 0, 0, 0.1);
+			z-index: 100;
+			transform-origin: top right;
+			animation: dropdownAnimation 0.2s ease-out;
+			overflow: hidden;
+
+			.dropdown-item {
+				padding: 24rpx 0;
+				color: #333333;
+				font-size: 28rpx;
+				position: relative;
+				text-align: center;
+
+				&:not(:last-child)::after {
+					content: '';
+					position: absolute;
+					left: 0;
+					right: 0;
+					bottom: 0;
+					height: 1rpx;
+					background-color: #EEEEEE;
+				}
 
-			&:active {
-				background-color: #f8f8f8;
+				&:active {
+					background-color: #f8f8f8;
+				}
 			}
 		}
+
 	}
 
 	@keyframes dropdownAnimation {

+ 518 - 472
pages/crowdFunding/orderDetail.vue

@@ -152,578 +152,624 @@
 </template>
 
 <script>
-	export default {
-		data() {
-			return {
-				statusType: "waitPay", // waitPay, waitSend, finish, waitComment, fail
-				status: "",
-				statusTitle: "", // 根据statusType动态切换
-				statusIcon: "loading", // 可根据状态切换icon   loading  fail  success
-				address: {},
-				product: {},
-				order: {},
-				paymentMethod: 'alipay', // 默认支付宝支付
-				isWeChatPay: true, // 是否显示微信支付选项
-				orderId: "",
-			};
+export default {
+	data() {
+		return {
+			statusType: "waitPay", // waitPay, waitSend, finish, waitComment, fail
+			status: "",
+			statusTitle: "", // 根据statusType动态切换
+			statusIcon: "loading", // 可根据状态切换icon   loading  fail  success
+			address: {},
+			product: {},
+			order: {},
+			paymentMethod: 'alipay', // 默认支付宝支付
+			isWeChatPay: true, // 是否显示微信支付选项
+			orderId: "",
+		};
+	},
+	onLoad(options) {
+		this.getOrderDetail(options.orderId);
+		this.orderId = options.orderId;
+
+	},
+	methods: {
+		goBack() {
+			uni.navigateBack();
+		},
+		goPages(url) {
+			uni.navigateTo({
+				url
+			});
 		},
-		onLoad(options) {
-			this.getOrderDetail(options.orderId);
-			this.orderId = options.orderId;
 
+		copy(val) {
+			uni.setClipboardData({
+				data: val
+			});
 		},
-		methods: {
-			goBack() {
-				uni.navigateBack();
-			},
-			goPages(url) {
-				uni.navigateTo({
-					url
-				});
-			},
-
-			copy(val) {
-				uni.setClipboardData({
-					data: val
-				});
-			},
-			cancelOrder() {
-				this.$refs["DialogBox"].confirm({
-					title: "提示",
-					content: "确定要取消订单吗?",
-					DialogType: "inquiry",
-					btn1: "否",
-					btn2: "是",
-					animation: 0,
-				}).then((res) => {
-					if (res) {
-						this.orderAction('cancel');
-					}
-				});
-			},
-			payOrder() {
-				this.$refs.paymentPopup.open();
-			},
-			selectPayment(method) {
-				this.paymentMethod = method;
-			},
-			confirmPayment() {
-				this.orderAction('pay', this.paymentMethod);
-				this.$refs.paymentPopup.close();
-			},
-			refundOrder() {
-				this.$refs.DialogBox.confirm({
-					title: "提示",
-					content: "确定要申请退款吗?",
-					DialogType: "inquiry",
-					btn1: "否",
-					btn2: "是",
-					animation: 0,
-				}).then((res) => {
-					if (res) {
-						this.orderAction('refund');
-					}
-				});
-			},
-			deleteOrder() {
-				this.$refs.DialogBox.confirm({
-					title: "提示",
-					content: "确定要删除订单吗?",
-					DialogType: "inquiry",
-					btn1: "否",
-					btn2: "是",
-					animation: 0,
-				}).then((res) => {
-					if (res) {
-						this.orderAction('del');
-					}
-				});
-			},
-			confirmOrder() {
-				this.$refs.DialogBox.confirm({
-					title: "提示",
-					content: "是否要确认收货吗?",
-					DialogType: "inquiry",
-					btn1: "否",
-					btn2: "是",
-					animation: 0,
-				}).then((res) => {
-					if (res) {
-						this.orderAction('finish');
-					}
-				});
-			},
-			commentOrder() {},
-			orderAction(act, payType = '') {
-			
-				var order_id = this.orderId; 
-				console.log(this.order);
-				if(act == "pay"){
-					order_id = this.order.orderNo;
-				} 
-				console.log({
-					order_id ,
+		cancelOrder() {
+			this.$refs["DialogBox"].confirm({
+				title: "提示",
+				content: "确定要取消订单吗?",
+				DialogType: "inquiry",
+				btn1: "否",
+				btn2: "是",
+				animation: 0,
+			}).then((res) => {
+				if (res) {
+					this.orderAction('cancel');
+				}
+			});
+		},
+		payOrder() {
+			this.$refs.paymentPopup.open();
+		},
+		selectPayment(method) {
+			this.paymentMethod = method;
+		},
+		confirmPayment() {
+			this.orderAction('pay', this.paymentMethod);
+			this.$refs.paymentPopup.close();
+		},
+		refundOrder() {
+			this.$refs.DialogBox.confirm({
+				title: "提示",
+				content: "确定要申请退款吗?",
+				DialogType: "inquiry",
+				btn1: "否",
+				btn2: "是",
+				animation: 0,
+			}).then((res) => {
+				if (res) {
+					this.orderAction('refund');
+				}
+			});
+		},
+		deleteOrder() {
+			this.$refs.DialogBox.confirm({
+				title: "提示",
+				content: "确定要删除订单吗?",
+				DialogType: "inquiry",
+				btn1: "否",
+				btn2: "是",
+				animation: 0,
+			}).then((res) => {
+				if (res) {
+					this.orderAction('del');
+				}
+			});
+		},
+		confirmOrder() {
+			this.$refs.DialogBox.confirm({
+				title: "提示",
+				content: "是否要确认收货吗?",
+				DialogType: "inquiry",
+				btn1: "否",
+				btn2: "是",
+				animation: 0,
+			}).then((res) => {
+				if (res) {
+					this.orderAction('finish');
+				}
+			});
+		},
+		commentOrder() { },
+		orderAction(act, payType = '') {
+
+			var order_id = this.orderId; 
+			var _this = this;
+			console.log({
+				order_id,
+				act: act,
+				payType: payType,
+			}, '支付接口参数');
+			uni.request({
+				url: this.$apiHost + '/Order/action',
+				method: 'GET',
+				data: {
+					order_id: order_id,
 					act: act,
 					payType: payType,
-				});
-				uni.request({
-					url: this.$apiHost + '/Order/action',
-					method: 'GET',
-					data: {
-						order_id:order_id,
-						act: act,
-						payType: payType,
-						uuid: getApp().globalData.uuid,
-						skey: getApp().globalData.skey
-					},
-					success: (res) => {
-						console.log(res.data, "订单操作结果");
-						if (res.data && res.data.success == 'yes') {
-							uni.showToast({
-								title: res.data.str,
-								icon: 'none'
+					uuid: getApp().globalData.uuid,
+					skey: getApp().globalData.skey
+				},
+				success: (res) => {
+					console.log(res.data, "订单操作结果");
+
+					if (res.data && res.data.success == 'yes') { 
+						// 微信支付
+						console.log(payType, "支付方式");
+						
+						if (payType === 'wx') {
+							console.log(res.data.wepay, "微信支付");
+
+							uni.requestPayment({
+								provider: "wxpay",
+								orderInfo: {
+									appid: res.data.wepay.appid,
+									partnerid: res.data.wepay.partnerid,
+									prepayid: res.data.wepay.prepayid,
+									package: "Sign=WXPay",
+									noncestr: res.data.wepay.noncestr,
+									timestamp: res.data.wepay.timestamp,
+									sign: res.data.wepay.sign
+								},
+								success: (payRes) => {
+									that.checkPayStatus();
+								},
+								fail: (err) => {
+									uni.hideLoading();
+									that.isSubmitting = false;
+									uni.showToast({ title: '支付取消', icon: 'none' });
+								}
 							});
-							this.getOrderDetail(this.order.orderNo);
-							if (act == 'cancel') {
-								this.goBack();
-							}
-						} else {
-							uni.showToast({
-								title: res.data.message || '操作失败',
-								icon: 'none'
+							return;
+						}
+						// 支付宝支付
+						else if (payType === 'alipay') {
+							console.log(res.data.ali_pay, "支付宝支付");
+							
+							uni.requestPayment({
+								provider: "alipay",
+								orderInfo: res.data.ali_pay,
+								success: (payRes) => {
+									that.checkPayStatus();
+								},
+								fail: (err) => {
+									uni.hideLoading();
+									
+									that.isSubmitting = false;
+									uni.showToast({ title: '支付取消', icon: 'none' });
+								}
 							});
+							return;
 						}
-					},
-					fail: () => {
+
 						uni.showToast({
-							title: '操作失败',
+							title: res.data.str,
 							icon: 'none'
 						});
-					}
-				});
-			},
-			getOrderDetail(orderId) {
-				uni.request({
-					url: this.$apiHost + '/Order/detail?order_id=' + orderId,
-					method: 'GET',
-					data: {
-						uuid: getApp().globalData.uuid,
-						skey: getApp().globalData.skey
-					},
-					success: (res) => {
-						console.log(res.data.data, "获取订单详情");
-						if (res.data && res.data.success == 'yes') {
-							let data = res.data.data;
-							if (data.address) {
-								this.address = JSON.parse(data.address);
-							}
-							this.order = {
-								orderNo: data.linkid,
-								createTime: data.create_time,
-								payTime: data.order_time,
-							}
-							if (data.crowdfund) {
-								this.product = {
-									price: data.crowdfund.price,
-									img: data.crowdfund.image,
-									title: data.crowdfund.title,
-									desc: "",
-									spec: data.crowdfund.title2,
-									count: 1,
-									total: data.money,
-									deliveryTime: data.crowdfund.delivery,
-									id: data.crowdfund.id,
-									// tip: "温馨提示:该链接仅购买线下实物卡片!不含线上卡牌壁纸",
-								}
-							}
-							this.status = data.status;
-							this.statusTitle = data.status_name;
+						this.getOrderDetail(this.order.orderNo);
+						if (act == 'cancel') {
+							this.goBack();
 						}
-					},
-					fail: () => {
+					} else {
 						uni.showToast({
-							title: '获取订单详情失败',
+							title: res.data.message || '操作失败',
 							icon: 'none'
 						});
-					},
-					complete: () => {
-						uni.hideLoading();
 					}
-				});
-			},
+				},
+				fail: () => {
+					uni.showToast({
+						title: '操作失败',
+						icon: 'none'
+					});
+				}
+			});
 		},
-		mounted() {
-			// 可根据实际订单状态设置statusType/statusTitle/statusIcon
-			// 例如:this.statusType = 'waitPay'; this.statusTitle = '待支付';
+		getOrderDetail(orderId) {
+			uni.request({
+				url: this.$apiHost + '/Order/detail?order_id=' + orderId,
+				method: 'GET',
+				data: {
+					uuid: getApp().globalData.uuid,
+					skey: getApp().globalData.skey
+				},
+				success: (res) => {
+					console.log(res.data.data, "获取订单详情");
+					if (res.data && res.data.success == 'yes') {
+						let data = res.data.data;
+						if (data.address) {
+							this.address = JSON.parse(data.address);
+						}
+						this.order = {
+							orderNo: data.linkid,
+							createTime: data.create_time,
+							payTime: data.order_time,
+						}
+						if (data.crowdfund) {
+							this.product = {
+								price: data.crowdfund.price,
+								img: data.crowdfund.image,
+								title: data.crowdfund.title,
+								desc: "",
+								spec: data.crowdfund.title2,
+								count: 1,
+								total: data.money,
+								deliveryTime: data.crowdfund.delivery,
+								id: data.crowdfund.id,
+								// tip: "温馨提示:该链接仅购买线下实物卡片!不含线上卡牌壁纸",
+							}
+						}
+						this.status = data.status;
+						this.statusTitle = data.status_name;
+					}
+				},
+				fail: () => {
+					uni.showToast({
+						title: '获取订单详情失败',
+						icon: 'none'
+					});
+				},
+				complete: () => {
+					uni.hideLoading();
+				}
+			});
 		},
-	};
+	},
+	mounted() {
+		// 可根据实际订单状态设置statusType/statusTitle/statusIcon
+		// 例如:this.statusType = 'waitPay'; this.statusTitle = '待支付';
+	},
+};
 </script>
 
 <style lang="scss">
-	.order-detail-page {
-		min-height: 100vh;
-		background: #f2f6f2;
-
-		.custom-navbar {
+.order-detail-page {
+	min-height: 100vh;
+	background: #f2f6f2;
+
+	.custom-navbar {
+		display: flex;
+		flex-direction: row;
+		align-items: center;
+		justify-content: space-between;
+		height: 90rpx;
+		padding: 0 40rpx;
+		padding-right: 30rpx;
+		padding-top: var(--status-bar-height);
+		background-color: transparent;
+		position: sticky;
+		top: 0;
+		height: calc(90rpx + var(--status-bar-height));
+		z-index: 100;
+
+		.navbar-left {
+			height: 80rpx;
 			display: flex;
-			flex-direction: row;
 			align-items: center;
-			justify-content: space-between;
-			height: 90rpx;
-			padding: 0 40rpx;
-			padding-right: 30rpx;
-			padding-top: var(--status-bar-height);
-			background-color: transparent;
-			position: sticky;
-			top: 0;
-			height: calc(90rpx + var(--status-bar-height));
-			z-index: 100;
-
-			.navbar-left {
-				height: 80rpx;
-				display: flex;
-				align-items: center;
-				justify-content: center;
-
-				.fa-angle-left {
-					font-size: 48rpx;
-					color: #333;
-				}
-			}
+			justify-content: center;
 
-			.navbar-right {
-				width: 60rpx;
-				height: 60rpx;
-				display: flex;
-				justify-content: center;
-				align-items: center;
+			.fa-angle-left {
+				font-size: 48rpx;
+				color: #333;
 			}
 		}
 
-		.status-bar {
+		.navbar-right {
+			width: 60rpx;
+			height: 60rpx;
 			display: flex;
+			justify-content: center;
 			align-items: center;
-			padding: 32rpx 32rpx 0 32rpx;
+		}
+	}
 
-			.status-icon {
-				width: 40rpx;
-				height: 40rpx;
-				margin-right: 12rpx;
-			}
+	.status-bar {
+		display: flex;
+		align-items: center;
+		padding: 32rpx 32rpx 0 32rpx;
 
-			.status-title {
-				font-size: 36rpx;
-				font-weight: bold;
-				color: #1F1F1F;
-			}
+		.status-icon {
+			width: 40rpx;
+			height: 40rpx;
+			margin-right: 12rpx;
 		}
 
-		.address-card {
-			background: #fff;
-			border-radius: 16rpx;
-			margin: 24rpx 16rpx 0 16rpx;
-			padding: 24rpx;
-			background: url("../../static/crowdFunding/order-detail-card-bg.png") no-repeat top right / auto 100%,
-				#fff;
+		.status-title {
+			font-size: 36rpx;
+			font-weight: bold;
+			color: #1F1F1F;
+		}
+	}
 
-			.row {
-				display: flex;
-				align-items: center;
-				margin-bottom: 8rpx;
+	.address-card {
+		background: #fff;
+		border-radius: 16rpx;
+		margin: 24rpx 16rpx 0 16rpx;
+		padding: 24rpx;
+		background: url("../../static/crowdFunding/order-detail-card-bg.png") no-repeat top right / auto 100%,
+			#fff;
 
-				.name {
-					font-size: 30rpx;
-					font-weight: bold;
-					margin-right: 18rpx;
-				}
+		.row {
+			display: flex;
+			align-items: center;
+			margin-bottom: 8rpx;
 
-				.mobile {
-					font-size: 30rpx;
-					margin-right: 18rpx;
-				}
+			.name {
+				font-size: 30rpx;
+				font-weight: bold;
+				margin-right: 18rpx;
+			}
 
-				.default {
-					font-size: 22rpx;
-					color: #acf934;
-					background: #1f1f1f;
-					border-radius: 8rpx;
-					padding: 2rpx 12rpx;
-					margin-right: 12rpx;
-				}
+			.mobile {
+				font-size: 30rpx;
+				margin-right: 18rpx;
 			}
 
-			.address {
-				font-size: 26rpx;
-				color: #666;
+			.default {
+				font-size: 22rpx;
+				color: #acf934;
+				background: #1f1f1f;
+				border-radius: 8rpx;
+				padding: 2rpx 12rpx;
+				margin-right: 12rpx;
 			}
 		}
 
-		.product-card {
-			background: #fff;
-			border-radius: 16rpx;
-			margin: 24rpx 16rpx 0 16rpx;
-			padding: 24rpx;
+		.address {
+			font-size: 26rpx;
+			color: #666;
+		}
+	}
+
+	.product-card {
+		background: #fff;
+		border-radius: 16rpx;
+		margin: 24rpx 16rpx 0 16rpx;
+		padding: 24rpx;
 
-			.product-top {
+		.product-top {
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+
+			.product-img {
+				width: 120rpx;
+				height: 120rpx;
+				border-radius: 12rpx;
+				margin-right: 18rpx;
+			}
+
+			.product-info {
+				flex: 1;
 				display: flex;
 				align-items: center;
 				justify-content: space-between;
 
-				.product-img {
-					width: 120rpx;
-					height: 120rpx;
-					border-radius: 12rpx;
-					margin-right: 18rpx;
-				}
-
-				.product-info {
-					flex: 1;
+				.product-title {
+					width: 100%;
 					display: flex;
 					align-items: center;
 					justify-content: space-between;
+					font-size: 28rpx;
+					font-weight: bold;
+					color: #1f1f1f;
+					display: flex;
+					align-items: center;
 
-					.product-title {
-						width: 100%;
-						display: flex;
-						align-items: center;
-						justify-content: space-between;
-						font-size: 28rpx;
-						font-weight: bold;
-						color: #1f1f1f;
-						display: flex;
-						align-items: center;
-
-						.two-omit {
-							width: 400rpx;
-						}
-
-						.arrow {
-							width: 60rpx;
-							height: 60rpx;
-							// margin-left: 140rpx;
-						}
+					.two-omit {
+						width: 400rpx;
 					}
 
-					.product-desc {
-						font-size: 24rpx;
-						color: #1F1F1F;
-						margin: 8rpx 0;
+					.arrow {
+						width: 60rpx;
+						height: 60rpx;
+						// margin-left: 140rpx;
 					}
 				}
-			}
 
-			.product-bom {
-				padding-top: 15rpx;
-
-				.product-spec {
-					font-size: 26rpx;
+				.product-desc {
+					font-size: 24rpx;
 					color: #1F1F1F;
 					margin: 8rpx 0;
-					display: flex;
-					align-items: center;
-					justify-content: space-between;
-
-					.count {
-						color: #888;
-						font-size: 22rpx;
-						margin-top: 16rpx;
-						margin-top: 8rpx;
-					}
 				}
+			}
+		}
 
-				.product-time {
-					font-size: 24rpx;
-					color: #b2b2b2;
-					margin-bottom: 8rpx;
-				}
+		.product-bom {
+			padding-top: 15rpx;
 
-				.product-tip {
-					font-size: 26rpx;
-					color: #b2b2b2;
-					background: #f6faf6;
-					border-radius: 8rpx;
-					padding: 8rpx 12rpx;
+			.product-spec {
+				font-size: 26rpx;
+				color: #1F1F1F;
+				margin: 8rpx 0;
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+
+				.count {
+					color: #888;
+					font-size: 22rpx;
+					margin-top: 16rpx;
+					margin-top: 8rpx;
 				}
 			}
 
-			.arrow {
-				width: 32rpx;
-				height: 32rpx;
-				margin-left: 8rpx;
+			.product-time {
+				font-size: 24rpx;
+				color: #b2b2b2;
+				margin-bottom: 8rpx;
+			}
+
+			.product-tip {
+				font-size: 26rpx;
+				color: #b2b2b2;
+				background: #f6faf6;
+				border-radius: 8rpx;
+				padding: 8rpx 12rpx;
 			}
 		}
 
-		.fee-row {
-			display: flex;
-			justify-content: space-between;
-			align-items: center;
-			padding: 0;
-			height: 64rpx;
-			font-size: 28rpx;
-			color: #1F1F1F;
+		.arrow {
+			width: 32rpx;
+			height: 32rpx;
+			margin-left: 8rpx;
+		}
+	}
 
-			text:first-child {
-				color: #999;
-			}
+	.fee-row {
+		display: flex;
+		justify-content: space-between;
+		align-items: center;
+		padding: 0;
+		height: 64rpx;
+		font-size: 28rpx;
+		color: #1F1F1F;
+
+		text:first-child {
+			color: #999;
+		}
 
-			&.total {
-				font-weight: bold;
-				color: #1f1f1f;
-				justify-content: flex-end;
+		&.total {
+			font-weight: bold;
+			color: #1f1f1f;
+			justify-content: flex-end;
 
-				text:first-child {
-					color: #1f1f1f;
-				}
+			text:first-child {
+				color: #1f1f1f;
+			}
 
-				.total-price {
-					color: #ff5500;
-					font-size: 32rpx;
-				}
+			.total-price {
+				color: #ff5500;
+				font-size: 32rpx;
 			}
 		}
+	}
 
-		.order-info-card {
-			background: #fff;
-			border-radius: 16rpx;
-			margin: 24rpx 16rpx 0 16rpx;
-			padding: 24rpx;
+	.order-info-card {
+		background: #fff;
+		border-radius: 16rpx;
+		margin: 24rpx 16rpx 0 16rpx;
+		padding: 24rpx;
 
-			.info-row {
-				display: flex;
-				align-items: center;
-				justify-content: space-between;
-				height: 56rpx;
-				font-size: 26rpx;
+		.info-row {
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+			height: 56rpx;
+			font-size: 26rpx;
 
-				>text:first-child {
-					color: #999;
-				}
+			>text:first-child {
+				color: #999;
+			}
 
-				.copy-btn {
-					color: #1f1f1f;
-					background: #f6faf6;
-					border-radius: 8rpx;
-					font-size: 24rpx;
-					margin-left: 18rpx;
-					padding: 2rpx 16rpx;
-				}
+			.copy-btn {
+				color: #1f1f1f;
+				background: #f6faf6;
+				border-radius: 8rpx;
+				font-size: 24rpx;
+				margin-left: 18rpx;
+				padding: 2rpx 16rpx;
 			}
 		}
+	}
 
-		.order-bottom {
-			position: fixed;
-			left: 0;
-			right: 0;
-			bottom: 0;
-			background: #fff;
-			display: flex;
-			align-items: center;
-			justify-content: flex-end;
+	.order-bottom {
+		position: fixed;
+		left: 0;
+		right: 0;
+		bottom: 0;
+		background: #fff;
+		display: flex;
+		align-items: center;
+		justify-content: flex-end;
+		padding: 0 32rpx;
+		height: 110rpx;
+		box-shadow: 0 -2rpx 8rpx rgba(0, 0, 0, 0.04);
+		z-index: 10;
+
+		.btn {
+			min-width: 180rpx;
+			height: 72rpx;
+			line-height: 72rpx;
+			border-radius: 44rpx;
+			text-align: center;
+			font-size: 30rpx;
 			padding: 0 32rpx;
-			height: 110rpx;
-			box-shadow: 0 -2rpx 8rpx rgba(0, 0, 0, 0.04);
-			z-index: 10;
-
-			.btn {
-				min-width: 180rpx;
-				height: 72rpx;
-				line-height: 72rpx;
-				border-radius: 44rpx;
-				text-align: center;
-				font-size: 30rpx;
-				padding: 0 32rpx;
-				margin-left: 24rpx;
+			margin-left: 24rpx;
 
-				&.btn-pay {
-					background: #1f1f1f;
-					color: #acf934;
-				}
+			&.btn-pay {
+				background: #1f1f1f;
+				color: #acf934;
+			}
 
-				&.btn-cancel {
-					background: #fff;
-					color: #1f1f1f;
-					border: 2rpx solid #e5e5e5;
-				}
+			&.btn-cancel {
+				background: #fff;
+				color: #1f1f1f;
+				border: 2rpx solid #e5e5e5;
+			}
 
-				&.btn-refund {
-					background: #1f1f1f;
-					color: #acf934;
-				}
+			&.btn-refund {
+				background: #1f1f1f;
+				color: #acf934;
+			}
 
-				&.btn-delete {
-					background: #fff;
-					color: #1f1f1f;
-					border: 2rpx solid #e5e5e5;
-				}
+			&.btn-delete {
+				background: #fff;
+				color: #1f1f1f;
+				border: 2rpx solid #e5e5e5;
+			}
 
-				&.btn-comment {
-					background: #1f1f1f;
-					color: #acf934;
-				}
+			&.btn-comment {
+				background: #1f1f1f;
+				color: #acf934;
 			}
 		}
+	}
 
-		.payment-popup {
-			background: #fff;
-			border-radius: 24rpx 24rpx 0 0;
-			padding: 32rpx;
+	.payment-popup {
+		background: #fff;
+		border-radius: 24rpx 24rpx 0 0;
+		padding: 32rpx;
 
-			.popup-header {
-				display: flex;
-				align-items: center;
-				justify-content: space-between;
-				margin-bottom: 32rpx;
+		.popup-header {
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+			margin-bottom: 32rpx;
 
-				.popup-title {
-					font-size: 32rpx;
-					font-weight: bold;
-					color: #1f1f1f;
-				}
+			.popup-title {
+				font-size: 32rpx;
+				font-weight: bold;
+				color: #1f1f1f;
 			}
+		}
 
-			.payment-options {
-				.payment-option {
-					display: flex;
-					align-items: center;
-					padding: 24rpx 0;
-					border-bottom: 2rpx solid #f6faf6;
-
-					.payment-icon {
-						width: 48rpx;
-						height: 48rpx;
-						margin-right: 18rpx;
-					}
+		.payment-options {
+			.payment-option {
+				display: flex;
+				align-items: center;
+				padding: 24rpx 0;
+				border-bottom: 2rpx solid #f6faf6;
 
-					.payment-name {
-						flex: 1;
-						font-size: 30rpx;
-						color: #1f1f1f;
-					}
+				.payment-icon {
+					width: 48rpx;
+					height: 48rpx;
+					margin-right: 18rpx;
+				}
 
-					.payment-select {
-						width: 32rpx;
-						height: 32rpx;
-					}
+				.payment-name {
+					flex: 1;
+					font-size: 30rpx;
+					color: #1f1f1f;
 				}
-			}
 
-			.confirm-payment {
-				margin-top: 32rpx;
-				background: #1f1f1f;
-				color: #acf934;
-				border-radius: 44rpx;
-				font-size: 32rpx;
-				font-weight: bold;
-				height: 88rpx;
-				line-height: 88rpx;
-				text-align: center;
+				.payment-select {
+					width: 32rpx;
+					height: 32rpx;
+				}
 			}
 		}
 
-		.btn-delete {
-			background: #f6faf6;
-			color: #888;
-			border: 1px solid #e5e5e5;
+		.confirm-payment {
+			margin-top: 32rpx;
+			background: #1f1f1f;
+			color: #acf934;
+			border-radius: 44rpx;
+			font-size: 32rpx;
+			font-weight: bold;
+			height: 88rpx;
+			line-height: 88rpx;
+			text-align: center;
 		}
 	}
+
+	.btn-delete {
+		background: #f6faf6;
+		color: #888;
+		border: 1px solid #e5e5e5;
+	}
+}
 </style>

+ 1 - 1
pages/crowdFunding/orderList.vue

@@ -10,7 +10,7 @@
         订单
         </view>
       </view>
-      <view class="navbar-right" @click="showActionSheet">
+      <view class="navbar-right"  >
         <image
           src="@/static/icon/more2.png"
           style="width: 64rpx; height: 64rpx; margin-top: 15rpx"

+ 18 - 0
pages/index/ai_pp.scss

@@ -0,0 +1,18 @@
+page {
+	background-color: #161616;
+	width: 100%;
+	height: 100vh;
+}
+.page {
+	background-color: #161616;
+	width: 100%;
+	background-repeat: no-repeat;
+}
+.ai_pp {
+	width:750rpx;height:1624rpx;
+}
+.pp_title {
+	position: fixed;
+	left:109rpx;top:180rpx;
+	width:532rpx;height:110rpx;
+}

+ 63 - 0
pages/index/ai_pp.vue

@@ -0,0 +1,63 @@
+<template>
+	<view class="page">
+		<image class="ai_pp" mode="widthFix" src="../../static/home/ai_pipei.jpg"></image>
+
+		<image class="pp_title" mode="widthFix" src="../../static/home/pp_title.png"></image>
+	</view>
+</template>
+
+<script>
+	export default {
+		components: {},
+		data() {
+			return {
+				title: '',
+				list: [],
+			}
+		},
+		onLoad() {
+			let that = this;
+			setTimeout(function() {
+				that.loadData();
+			}, 2000);
+		},
+		onShow() {},
+		methods: {
+			goHome(uid) {
+				uni.redirectTo({
+					url: '/pages/index/peopleHome?uid=' + uid
+				})
+			},
+			loadData() {
+				console.log({
+					uuid: getApp().globalData.uuid,
+					skey: getApp().globalData.skey
+				});
+				uni.request({
+					url: this.$apiHost + '/Index/aiPP',
+					data: {
+						uuid: getApp().globalData.uuid
+					},
+					header: {
+						"content-type": "application/json",
+						'sign': getApp().globalData.headerSign
+					},
+					success: (res) => {
+						console.log("----:", res.data);
+						this.goHome(res.data.userID);
+					},
+					complete: (com) => {
+						// uni.hideLoading();
+					},
+					fail: (e) => {
+						console.log("----e:", e);
+					}
+				});
+			},
+		}
+	}
+</script>
+
+<style scoped lang="scss">
+	@import 'ai_pp.scss';
+</style>

+ 1 - 3
pages/index/articleDetail.scss

@@ -1,6 +1,4 @@
-// 导入FontAwesome
-@import url("/static/fonts/font-awesome.min.css");
-
+ 
 page {
   background-color: #ffffff;
   width: 100%;

+ 1 - 5
pages/index/articleDetail.vue

@@ -1,10 +1,6 @@
 <template>
 	<view class="page">
-		<!-- 引入FontAwesome -->
-		<view>
-			<link rel="stylesheet"
-				href="/static/fonts/font-awesome.min.css" />
-		</view>
+	 
 
 		<!-- 顶部导航栏 -->
 		<view class="custom-navbar">

+ 1 - 1
pages/index/index.scss

@@ -1,6 +1,6 @@
 @font-face {
   font-family: "CustomFont";
-  src: url("@/static/fonts/alibaba.otf") format("opentype");
+  src: url("https://c.zhichao.art/cloudstatic/static/fonts/alibaba.otf") format("opentype");
   font-weight: normal;
   font-style: normal;
 }

+ 1 - 3
pages/index/workDetail.scss

@@ -1,6 +1,4 @@
-// 导入FontAwesome
-@import url("/static/fonts/font-awesome.min.css");
-
+ 
 page {
   background: #f2f6f2;
   width: 100%;

+ 1 - 6
pages/index/workDetail.vue

@@ -1,11 +1,6 @@
 <template>
   <view class="page">
-    <!-- 引入FontAwesome -->
-    <view>
-      <link rel="stylesheet"
-        href="/static/fonts/font-awesome.min.css" />
-    </view>
-
+ 
     <!-- 权限申请提示 -->
     <view v-if="showRights" class="permission-tip">
 		

+ 1 - 3
pages/makedetail/makeDetail.scss

@@ -1,6 +1,4 @@
-// 导入FontAwesome
-@import url("/static/fonts/font-awesome.min.css");
-
+ 
 page {
   background: #f2f6f2;
   width: 100%;

+ 1 - 5
pages/makedetail/makeDetail.vue

@@ -1,10 +1,6 @@
 <template>
 	<view class="page">
-		<!-- 引入FontAwesome -->
-		<view>
-			<link rel="stylesheet"
-				href="/static/fonts/font-awesome.min.css">
-		</view>
+ 
 		<!-- 权限申请提示 -->
 		<view v-if="showRights" class="permission-tip">
 			<text class="permission-title">正在获取相机、存储权限</text>

+ 1 - 6
pages/message/mailMessage.vue

@@ -112,12 +112,7 @@
 						<view v-if="item.unread_count >0" class="red-dot">{{ item.unread_count }}</view>
 					</view>
 				</block>
-					<!-- avatar: '../../static/home/avator.png',
-					nickname: '雾里',
-					tag: '发起人',
-					create_time: '17:10',
-					content: '谢谢你的关注,远方的陌生人',
-					quantity: 1	 -->
+			 
 				<view class="blankHeight"></view>
 				<view class="loading-more" v-if="tab === 3">
 					<text v-if="isLoading">正在加载更多...</text>

+ 1 - 3
pages/my/feedback.vue

@@ -208,9 +208,7 @@ export default {
 </script>
 
 <style lang="scss">
-// 导入FontAwesome
-@import url("/static/fonts/font-awesome.min.css");
-
+ 
 .page {
 	min-height: 100vh;
 	background-color: #f8f8f8;

+ 1 - 1
pages/my/myArticle.vue

@@ -220,7 +220,7 @@ export default {
 			// }
 			// var param = e.currentTarget.dataset.src;
 			// console.log(param);
-			// this.imgs = ['../../static/home/avator.png', '../../static/me/sex_2.png', '../../static/home/avator.png'];
+			 
 			setTimeout(() => this.$refs.previewImage.open(index), 0) // 传入当前选中的图片地址或序号
 			return; //如需测试和uni原生预览差别可注释这两行
 		},

+ 1 - 3
pages/my/myStar.scss

@@ -1,6 +1,4 @@
-// 导入FontAwesome
-@import url("/static/fonts/font-awesome.min.css");
-
+ 
 .star-container {
   width: 100%;
   min-height: 100vh;

+ 1 - 2
pages/my/userHomepage.vue

@@ -366,8 +366,7 @@ export default {
 };
 </script>
 
-<style scoped lang="scss">
-@import url("/static/fonts/font-awesome.min.css");
+<style scoped lang="scss"> 
  page {
   background-color: #fff;
 }

+ 1 - 1
pages/vip/M_purchase.scss

@@ -1,4 +1,4 @@
-@import url("/static/fonts/font-awesome.min.css");
+ 
 page {
   background-color: #f2f6f2;
 }

+ 1 - 4
pages/vip/index.vue

@@ -616,10 +616,7 @@ export default {
 }
 </script>
 
-<style lang="scss">
-// 导入FontAwesome
-@import url("/static/fonts/font-awesome.min.css");
-
+<style lang="scss"> 
 .vip-container {
 	min-height: 100vh;
 	padding-bottom: 360rpx;

BIN
static/fonts/PingFang Bold.ttf


BIN
static/fonts/PingFang Medium.ttf


BIN
static/fonts/alibaba.otf


+ 3 - 3
style/FontStyle.css

@@ -1,6 +1,6 @@
 @font-face {
     font-family: 'CustomFont';
-    src: url('@/static/fonts/alibaba.otf') format('opentype');
+    src: url('https://c.zhichao.art/cloudstatic/static/fonts/alibaba.otf') format('opentype');
     font-weight: normal;
     font-style: normal;
 }
@@ -10,7 +10,7 @@
 }
 @font-face {
     font-family: 'PingFang SC-Bold';
-    src: url('@/static/fonts/PingFang Bold.ttf') format('opentype');
+    src: url('https://c.zhichao.art/cloudstatic/static/fonts/PingFang Bold.ttf') format('opentype');
     font-weight: normal;
     font-style: normal;
 }
@@ -20,7 +20,7 @@
 }
 @font-face {
     font-family: 'PingFang SC-Medium';
-    src: url('@/static/fonts/PingFang Medium.ttf') format('opentype');
+    src: url('https://c.zhichao.art/cloudstatic/static/fonts/PingFang Medium.ttf') format('opentype');
     font-weight: normal;
     font-style: normal;
 }