Quellcode durchsuchen

📦 答题插件代码修改接入1

快乐的梦鱼 vor 3 Wochen
Ursprung
Commit
90a03dbc5a
62 geänderte Dateien mit 145 neuen und 205 gelöschten Zeilen
  1. 6 3
      src/App.vue
  2. 1 1
      src/components/basic/Text.vue
  3. 8 4
      src/pages/home/village/games/index.vue
  4. 7 1
      src/pages/home/village/introd/card.vue
  5. 0 1
      src/pages/third/yunexamine/App.d.ts
  6. 1 1
      src/pages/third/yunexamine/App.vue
  7. 23 0
      src/pages/third/yunexamine/common/util.js
  8. 1 1
      src/pages/third/yunexamine/components/none-data/none-data.vue
  9. 1 1
      src/pages/third/yunexamine/components/upload-avatar/upload-avatar.vue
  10. 1 1
      src/pages/third/yunexamine/pages/examine/answer.vue
  11. 1 1
      src/pages/third/yunexamine/pages/examine/history.vue
  12. 1 1
      src/pages/third/yunexamine/pages/examine/review.vue
  13. 3 3
      src/pages/third/yunexamine/pages/examine/top.vue
  14. 1 1
      src/pages/third/yunexamine/pages/examine/wrong.vue
  15. 5 5
      src/pages/third/yunexamine/pages/gift/detail.vue
  16. 2 2
      src/pages/third/yunexamine/pages/gift/exchange.vue
  17. 4 4
      src/pages/third/yunexamine/pages/gift/express_feed.vue
  18. 1 1
      src/pages/third/yunexamine/pages/gift/index.vue
  19. 1 1
      src/pages/third/yunexamine/pages/gift/order.vue
  20. 2 2
      src/pages/third/yunexamine/pages/gift/order_detail.vue
  21. 1 1
      src/pages/third/yunexamine/pages/home/activity.vue
  22. 1 1
      src/pages/third/yunexamine/pages/home/dashboard.vue
  23. 6 2
      src/pages/third/yunexamine/pages/home/index.vue
  24. 4 3
      src/pages/third/yunexamine/pages/user/auto_login.vue
  25. 2 0
      src/pages/third/yunexamine/pages/user/change_code.vue
  26. 4 2
      src/pages/third/yunexamine/pages/user/change_phone.vue
  27. 9 9
      src/pages/third/yunexamine/pages/user/feedback.vue
  28. 21 20
      src/pages/third/yunexamine/pages/user/login.vue
  29. 8 6
      src/pages/third/yunexamine/pages/user/mine.vue
  30. 8 8
      src/pages/third/yunexamine/pages/user/register.vue
  31. 4 2
      src/pages/third/yunexamine/service/request/request.js
  32. BIN
      src/pages/third/yunexamine/static/iconfont.ttf
  33. BIN
      src/pages/third/yunexamine/static/iconfont.woff
  34. BIN
      src/pages/third/yunexamine/static/iconfont.woff2
  35. BIN
      src/pages/third/yunexamine/static/imgs/activity_loading.jpg
  36. BIN
      src/pages/third/yunexamine/static/imgs/gift_top_bg.jpg
  37. BIN
      src/pages/third/yunexamine/static/imgs/home_top_loading.jpg
  38. BIN
      src/pages/third/yunexamine/static/imgs/line-bg.png
  39. BIN
      src/pages/third/yunexamine/static/imgs/loading_image.png
  40. BIN
      src/pages/third/yunexamine/static/imgs/login_top_loading.jpg
  41. BIN
      src/pages/third/yunexamine/static/imgs/result_right.png
  42. BIN
      src/pages/third/yunexamine/static/imgs/result_timeout.png
  43. BIN
      src/pages/third/yunexamine/static/imgs/result_timeout_end.png
  44. BIN
      src/pages/third/yunexamine/static/imgs/result_wrong.png
  45. BIN
      src/pages/third/yunexamine/static/imgs/top_1.png
  46. BIN
      src/pages/third/yunexamine/static/imgs/top_2.png
  47. BIN
      src/pages/third/yunexamine/static/imgs/top_3.png
  48. BIN
      src/pages/third/yunexamine/static/imgs/top_bg.png
  49. BIN
      src/pages/third/yunexamine/static/imgs/user.png
  50. BIN
      src/pages/third/yunexamine/static/tabs/gift.png
  51. BIN
      src/pages/third/yunexamine/static/tabs/gift_active.png
  52. BIN
      src/pages/third/yunexamine/static/tabs/home.png
  53. BIN
      src/pages/third/yunexamine/static/tabs/home_active.png
  54. BIN
      src/pages/third/yunexamine/static/tabs/info.png
  55. BIN
      src/pages/third/yunexamine/static/tabs/info_active.png
  56. BIN
      src/pages/third/yunexamine/static/tabs/mine.png
  57. BIN
      src/pages/third/yunexamine/static/tabs/mine_active.png
  58. BIN
      src/pages/third/yunexamine/static/tabs/top.png
  59. BIN
      src/pages/third/yunexamine/static/tabs/top_active.png
  60. 0 109
      src/pages/third/yunexamine/uni.scss
  61. 1 1
      src/pages/user/index.vue
  62. 6 6
      src/pages/third/yunexamine/static/iconfont.css

+ 6 - 3
src/App.vue

@@ -9,7 +9,6 @@ import { configAppTheme } from './common/config/Theme';
 import { getCurrentPageUrl, navTo } from './components/utils/PageAction';
 import { onError, onLaunch } from '@dcloudio/uni-app'
 import { RequestApiConfig, RequestApiError } from '@imengyu/imengyu-utils';
-import { doLaunch } from './pages/third/yunexamine/App.js';
 import ApiCofig from './common/config/ApiCofig';
 import MemoryTimeOut from './components/composeabe/MemoryTimeOut';
 import BugReporter from './common/BugReporter';
@@ -43,8 +42,6 @@ onLaunch(async () => {
     
   await BugReporter.checkAndReportBug();
   await init();
-
-  doLaunch();
 });
 
 //配置BugReporter
@@ -82,6 +79,11 @@ function loadFontFace() {
     family: "HUNdin1451",
     source: 'url("https://mncdn.wenlvti.net/app_static/minnan/fonts/HUN-din1451.woff")',
   });
+  uni.loadFontFace({
+    global: true,
+    family: "iconfont-yunexamine",
+    source: 'url("https://xy.wenlvti.net/app_static/yunexamine/iconfont.woff2")',
+  });
 }
 
 
@@ -94,6 +96,7 @@ IconUtils.loadDefaultIcons('https://mncdn.wenlvti.net/app_static/xiangyuan/data/
 	/*每个页面公共css */
   @import "@/components/index.scss";
   @import "@/common/style/leagicy.scss";
+  @import "./static/iconfont-yunexamine.css";
 
   page {
     background: #fef2e8;

+ 1 - 1
src/components/basic/Text.vue

@@ -7,7 +7,7 @@
     {{ text }}
     <!-- #endif -->
     <!-- #ifndef APP-NVUE -->
-    <slot>{{ text }}</slot>
+    <slot>{{ text || '' }}</slot>
     <!-- #endif -->
   </text>
 </template>

+ 8 - 4
src/pages/home/village/games/index.vue

@@ -47,7 +47,7 @@ const gamesLoader = useSimpleDataLoader(async () => {
       id: 1,
       name: '知识竞赛',
       image: 'https://xy.wenlvti.net/app_static/images/home/games/Games1.png',
-      link: 'https://mn.wenlvti.net/assets/addons/yunexamine/h5/#/pages/home/dashboard',
+      link: 'nav:/pages/third/yunexamine/pages/home/index',
       unlock: true,
     },
     {
@@ -86,9 +86,13 @@ const gamesLoader = useSimpleDataLoader(async () => {
 
 const openGame = (game: { link?: string }) => {
   if (game.link) {
-    navTo('/pages/article/web/ewebview', {
-      url: 'https://mn.wenlvti.net/assets/addons/yunexamine/h5/#/pages/home/dashboard'
-    });
+    if (game.link.startsWith('nav:')) {
+      navTo(game.link.substring(4));
+    } else {
+      navTo('/pages/article/web/ewebview', {
+        url: 'https://mn.wenlvti.net/assets/addons/yunexamine/h5/#/pages/home/dashboard'
+      });
+    }
   }
 };
 </script>

+ 7 - 1
src/pages/home/village/introd/card.vue

@@ -286,7 +286,13 @@ import MemoryTimeOut from '@/components/composeabe/MemoryTimeOut';
 const authStore = useAuthStore();
 const { getIsVolunteer } = useUserTools();
 const { requireLogin } = useRequireLogin();
-const { onPublishSuccess } = useOfficialAccount();
+const { onPublishSuccess } = useOfficialAccount(() => {
+  return {
+    villageId: villageStore.currentVillage?.id ?? 0,
+    userId: authStore.userId,
+    tag: recommendTagName.value,
+  };
+});
 const { isFollowed, onFollow, onUnFollow } = useFollow();
 const villageStore = useVillageStore();
 const { getIsJoinedVillage } = useUserTools();

+ 0 - 1
src/pages/third/yunexamine/App.d.ts

@@ -1 +0,0 @@
-export declare function doLaunch(): void;

+ 1 - 1
src/pages/third/yunexamine/App.vue

@@ -50,7 +50,7 @@
 </script>
 
 <style lang="scss">
-	@import '.https://xy.wenlvti.net/app_static/yunexamine/iconfont.css';
+	@import '.https://xy.wenlvti.net/app_static/yunexamine/iconfont-yunexamine.css';
 
 	page {
 		font-family: 'Source Sans Pro', 'Helvetica Neue', Helvetica, Arial, sans-serif;

+ 23 - 0
src/pages/third/yunexamine/common/util.js

@@ -162,6 +162,11 @@ export  function showToast(text, icon) {
 		mask: true,
 		duration: 2000
 	})
+  return wrapPromiseToJs(new Promise((resolve, reject) => {
+    setTimeout(() => {
+      resolve(null)
+    }, 1000)
+  }))
 }
 
 // 隐藏消息提示
@@ -342,6 +347,24 @@ export function rpx2px(rpx) {
   return rpx / 750 * systemInfo.windowWidth;
 }
 
+export function wrapPromiseToJs(promise) {
+  const res = [
+    null,
+    null
+  ];
+  return new Promise((resolve) => {
+    promise
+      .then((r) => {
+        res[1] = r;
+        resolve(res)
+      })
+      .catch((e) => {
+        res[0] = e;
+        resolve(res)
+      })
+  }) 
+}
+
 export default {
 	extend,
 	toDecimal,

+ 1 - 1
src/pages/third/yunexamine/components/none-data/none-data.vue

@@ -1,6 +1,6 @@
 <template>
 	<view class="none">
-		<text class="s-icon iconfont icon-warn"></text>
+		<text class="s-icon iconfont-yunexamine icon-warn"></text>
 		<text class="s-text">暂无数据</text>
 	</view>
 </template>

+ 1 - 1
src/pages/third/yunexamine/components/upload-avatar/upload-avatar.vue

@@ -15,7 +15,7 @@
 				<!-- #endif -->
 			</view>
 			<view class="b-save" @click="onClose">
-				<view class="s-icon iconfont icon-roundclose"></view>
+				<view class="s-icon iconfont-yunexamine icon-roundclose"></view>
 			</view>
 		</view>
 	</view>

+ 1 - 1
src/pages/third/yunexamine/pages/examine/answer.vue

@@ -31,7 +31,7 @@
 						:class="optionState(index)">
 						<view class="s-num">{{optionNum(index)}}.</view>
 						<view class="s-cont">{{item.label}}</view>
-						<view class="s-state iconfont" :class="optionIcon(index)"></view>
+						<view class="s-state iconfont-yunexamine" :class="optionIcon(index)"></view>
 					</view>
 				</view>
 				<view class="b-result" :class="resultIcon" v-if="state.state == 2">

+ 1 - 1
src/pages/third/yunexamine/pages/examine/history.vue

@@ -17,7 +17,7 @@
 						</view>
 					</view>
 					<view class="b-more">
-						<view class="iconfont icon-more"></view>
+						<view class="iconfont-yunexamine icon-more"></view>
 					</view>
 				</view>
 			</view>

+ 1 - 1
src/pages/third/yunexamine/pages/examine/review.vue

@@ -31,7 +31,7 @@
 						:class="optionState(index)">
 						<view class="s-num">{{optionNum(index)}}.</view>
 						<view class="s-cont">{{item.label}}</view>
-						<view class="s-state iconfont" :class="optionIcon(index)"></view>
+						<view class="s-state iconfont-yunexamine" :class="optionIcon(index)"></view>
 					</view>
 				</view>
 				<view class="b-result" :class="resultIcon">

+ 3 - 3
src/pages/third/yunexamine/pages/examine/top.vue

@@ -44,7 +44,7 @@
 			</view>
 			<picker class="b-group" @change="onFilter" :value="groupIndex" :range="groupList" range-key="name">
 				<view class="b-main">
-					<view class="s-icon iconfont icon-unfold"></view>
+					<view class="s-icon iconfont-yunexamine icon-unfold"></view>
 					<view class="s-name">{{ groupList[groupIndex].name }}排行</view>
 				</view>
 			</picker>
@@ -61,8 +61,8 @@
 	import Util from '../../common/util'
 	import mixinsCommon from '../../mixins/common.js'
 	import mixinsAuth from '../../mixins/auth.js'
-	import noneData from './../components/none-data/none-data.vue'
-	import loadMore from './../components/load-more/load-more.vue'
+	import noneData from '../../components/none-data/none-data.vue'
+	import loadMore from '../../components/load-more/load-more.vue'
 	import { useExamineStore } from '../../store/module/examine.js'
 	export default {
 		mixins: [mixinsCommon, mixinsAuth],

+ 1 - 1
src/pages/third/yunexamine/pages/examine/wrong.vue

@@ -11,7 +11,7 @@
 						</view>
 					</view>
 					<view class="b-more">
-						<view class="iconfont icon-more"></view>
+						<view class="iconfont-yunexamine icon-more"></view>
 					</view>
 				</view>
 			</view>

+ 5 - 5
src/pages/third/yunexamine/pages/gift/detail.vue

@@ -32,9 +32,9 @@
 		</view>
 		<view class="content">
 			<view class="b-title">
-				<view class="iconfont icon-line"></view>
+				<view class="iconfont-yunexamine icon-line"></view>
 				<view class="s-tit">奖品详情</view>
-				<view class="iconfont icon-line"></view>
+				<view class="iconfont-yunexamine icon-line"></view>
 			</view>
 			<view class="b-rich">
 				<rich-text :nodes="goodContent"></rich-text>
@@ -60,14 +60,14 @@
 	} from '../../service/api/gift.js'
 	import {
 		formatRichText
-	} from './../common/util.js'
+	} from '../../common/util.js'
 	import mixinsCommon from '../../mixins/common.js'
 	import mixinsAuth from '../../mixins/auth.js'
   import LoadMore from '../../components/load-more/load-more.vue'
 	export default {
 		mixins: [mixinsCommon, mixinsAuth],
     components: {
-      loadMore
+      LoadMore
     },
 		data() {
 			return {
@@ -250,7 +250,7 @@
 			align-items: center;
 			justify-content: center;
 
-			.iconfont {
+			.iconfont-yunexamine {
 				color: #ccc;
 			}
 

+ 2 - 2
src/pages/third/yunexamine/pages/gift/exchange.vue

@@ -25,7 +25,7 @@
 								range-key="name">
 								<view class="b-main">
 									<view class="s-cont">{{gainMethodList[gainMethodIndex].name}}</view>
-									<view class="iconfont icon-more"></view>
+									<view class="iconfont-yunexamine icon-more"></view>
 								</view>
 							</picker>
 						</view>
@@ -377,7 +377,7 @@
 							font-size: 28upx;
 						}
 
-						.iconfont {
+						.iconfont-yunexamine {
 							margin-left: 10upx;
 						}
 					}

+ 4 - 4
src/pages/third/yunexamine/pages/gift/express_feed.vue

@@ -30,14 +30,14 @@
 			</view>
 			<view class="feed-detail">
 				<view class="address-data">
-					<view class="iconfont icon-pos"></view>
+					<view class="iconfont-yunexamine icon-pos"></view>
 					<text class="b-address">
 						<text class="s-tit">收货地址:</text>
 						<text class="s-cont">{{state.address}}</text>
 					</text>
 				</view>
 				<view class="feed-data">
-					<view class="iconfont icon-feed"></view>
+					<view class="iconfont-yunexamine icon-feed"></view>
 					<view class="feed-list">
 						<view class="b-row" v-for="(item, index) in state.track_list" :key="index">
 							<view class="s-cont">{{item.context}}</view>
@@ -162,7 +162,7 @@
 		.address-data {
 			display: flex;
 
-			.iconfont {
+			.iconfont-yunexamine {
 				margin-right: 20upx;
 				color: #999;
 				font-size: 36upx;
@@ -185,7 +185,7 @@
 			margin-top: 60upx;
 			display: flex;
 
-			.iconfont {
+			.iconfont-yunexamine {
 				margin-right: 20upx;
 				color: #aaa;
 				font-size: 36upx;

+ 1 - 1
src/pages/third/yunexamine/pages/gift/index.vue

@@ -56,7 +56,7 @@
 	} from '../../service/api/gift.js'
 	import mixinsCommon from '../../mixins/common.js'
 	import mixinsAuth from '../../mixins/auth.js'
-	import loadMore from './../components/load-more/load-more.vue'
+	import loadMore from '../../components/load-more/load-more.vue'
 	import { useAppStore } from '../../store/index.js'
 	export default {
 		mixins: [mixinsCommon, mixinsAuth],

+ 1 - 1
src/pages/third/yunexamine/pages/gift/order.vue

@@ -53,7 +53,7 @@
 	import Util from '../../common/util'
 	import mixinsCommon from '../../mixins/common.js'
 	import mixinsAuth from '../../mixins/auth.js'
-	import loadMore from './../components/load-more/load-more.vue'
+	import loadMore from '../../components/load-more/load-more.vue'
 	export default {
 		mixins: [mixinsCommon, mixinsAuth],
     components: {

+ 2 - 2
src/pages/third/yunexamine/pages/gift/order_detail.vue

@@ -2,7 +2,7 @@
 	<view class="wrap">
 		<view class="main" v-if="hasLoad">
 			<view class="state-box" :class="stateStyle">
-				<view class="iconfont" :class="stateIcon"></view>
+				<view class="iconfont-yunexamine" :class="stateIcon"></view>
 				<view class="s-tit">{{state.status_text}}</view>
 			</view>
 			<view class="gift-view" @click="onJumpGift(state.gift_data.id)">
@@ -274,7 +274,7 @@
 			color: #666;
 		}
 
-		.iconfont {
+		.iconfont-yunexamine {
 			font-size: 64upx;
 		}
 

+ 1 - 1
src/pages/third/yunexamine/pages/home/activity.vue

@@ -14,7 +14,7 @@
 	import mixinsAuth from '../../mixins/auth.js'
 	import {
 		formatRichText
-	} from './../common/util.js'
+	} from '../../common/util.js'
 	import { useAppStore } from '../../store/index.js'
 	export default {
 		mixins: [mixinsCommon, mixinsAuth],

+ 1 - 1
src/pages/third/yunexamine/pages/home/dashboard.vue

@@ -46,7 +46,7 @@
 		formatDate
 	} from '../../common/util.js'
 	import mixinsCommon from '../../mixins/common.js'
-	import loadMore from './../components/load-more/load-more.vue'
+	import loadMore from '../../components/load-more/load-more.vue'
 	import { useAppStore } from '../../store/index.js'
 	export default {
 		mixins: [mixinsCommon],

+ 6 - 2
src/pages/third/yunexamine/pages/home/index.vue

@@ -54,7 +54,7 @@
 							<view class="s-tit2">名</view>
 						</view>
 						<view class="b-more">
-							<view class="iconfont icon-more"></view>
+							<view class="iconfont-yunexamine icon-more"></view>
 						</view>
 					</view>
 				</view>
@@ -85,6 +85,7 @@
 	import mixinsAuth from '../../mixins/auth.js'
 	import loadMore from '../../components/load-more/load-more.vue'
 	import uploadAvatar from '../../components/upload-avatar/upload-avatar.vue'
+	import { doLaunch } from '../../App.js'
 	import { useAppStore } from '../../store/index.js'
 	import { useUserStore } from '../../store/module/user.js'
 	import { useExamineStore } from '../../store/module/examine.js'
@@ -114,6 +115,9 @@
 				examineStore: useExamineStore()
 			}
 		},
+    onLoad() {
+      doLaunch()
+    },
 		onShow() {
 			this.loadHomeData()
 		},
@@ -431,7 +435,7 @@
 				}
 
 				.b-more {
-					.iconfont {
+					.iconfont-yunexamine {
 						font-size: 30upx;
 						color: #ccc;
 					}

+ 4 - 3
src/pages/third/yunexamine/pages/user/auto_login.vue

@@ -16,7 +16,8 @@
 	} from '../../service/request/main.js'
 	import {
 		encodeRedirectUrl,
-		decodeRedirectUrl
+		decodeRedirectUrl,
+    wrapPromiseToJs,
 	} from '../../common/util.js'
 	import { useAppStore } from '../../store/index.js'
 
@@ -29,8 +30,8 @@
 		onLoad(options) {
 			console.log('onLoad autoLogin', options)
 			// 微信小程序自动登录
-			const returnPage = options.from ? decodeRedirectUrl(options.from) : 'pages/home/index';
-			uni.login().then(([err, res]) => {
+			const returnPage = options.from ? decodeRedirectUrl(options.from) : 'pages/third/yunexamine/pages/home/index';
+		  wrapPromiseToJs(uni.login()).then(([err, res]) => {
 				console.log('uni.login', err, res);
 				if (!err) {
 					wechatAutoLogin(res.code).then(([err, res]) => {

+ 2 - 0
src/pages/third/yunexamine/pages/user/change_code.vue

@@ -99,6 +99,8 @@
 		padding-bottom: env(safe-area-inset-bottom);
 		
 	}
+  
+  $pq-bg-color: #f6f6f6;
 
 	.wrap {
 		padding: 0 40upx;

+ 4 - 2
src/pages/third/yunexamine/pages/user/change_phone.vue

@@ -42,7 +42,7 @@
 		changePhone,
 		changeWechatPhone
 	} from '../../service/api/user.js'
-	import { showToast } from '../../common/util.js'
+	import { showToast, wrapPromiseToJs } from '../../common/util.js'
 	import mixinsCommon from '../../mixins/common.js'
 	import mixinsAuth from '../../mixins/auth.js'
 	import { useAppStore } from '../../store/index.js'
@@ -98,7 +98,7 @@
 					return showToast('未修改手机号')
 				}
 				this.disable.captcha = true
-				uni.login().then(([err, res]) => {
+				wrapPromiseToJs(uni.login()).then(([err, res]) => {
 					console.log('uni.login', err, res)
 					sendPhoneCaptcha(this.form.newPhone, res ? res.code : '', false).then(([err, res]) => {
 						console.log('sendPhoneCaptcha', err, res)
@@ -190,6 +190,8 @@
 		padding-bottom: env(safe-area-inset-bottom);
 		
 	}
+  
+  $pq-bg-color: #f6f6f6;
 
 	.wrap {
 		padding: 0 40upx;

+ 9 - 9
src/pages/third/yunexamine/pages/user/feedback.vue

@@ -7,7 +7,7 @@
 					<picker @change="onFilter" data-field="type" :value="typeIndex" :range="typeList" range-key="name">
 						<view class="b-main">
 							<view class="s-cont">{{this.typeList[this.typeIndex].name}}</view>
-							<view class="iconfont icon-more"></view>
+							<view class="iconfont-yunexamine icon-more"></view>
 						</view>
 					</picker>
 				</view>
@@ -24,25 +24,25 @@
 					<view v-if="form.photos.length > 0" class="s-photos">
 						<view class="s-item" v-for="(item, index) in form.photos" :key="index">
 							<image :src="item.url" mode="widthFix" @click="onPreview(index)"></image>
-							<view class="s-del iconfont icon-wrong-b" @click="onDelete(index)"></view>
+							<view class="s-del iconfont-yunexamine icon-wrong-b" @click="onDelete(index)"></view>
 						</view>
 					</view>
-					<view class="s-upload iconfont icon-upload" @click="onUploadPhotos"></view>
+					<view class="s-upload iconfont-yunexamine icon-upload" @click="onUploadPhotos"></view>
 				</view>
 			</view>
 		</view>
 		<view class="btn-save" :class="{ disable: disable.submit }" @click="onSave">提交反馈</view>
 		<view class="feedback" v-if="state.items.length > 0">
 			<view class="b-title" v-if="state.items.length > 0">
-				<view class="iconfont icon-line"></view>
+				<view class="iconfont-yunexamine icon-line"></view>
 				<view class="s-tit">我的反馈</view>
-				<view class="iconfont icon-line"></view>
+				<view class="iconfont-yunexamine icon-line"></view>
 			</view>
 			<view class="b-items">
 				<view class="b-item" v-for="(item, index) in state.items" :key="index" @click="onJumpDetail(item.id)">
 					<view class="b-main">
 						<text class="s-cont too-long">{{item.content}}</text>
-						<view class="s-more iconfont icon-more"></view>
+						<view class="s-more iconfont-yunexamine icon-more"></view>
 					</view>
 					<view class="b-foot">
 						<view class="s-info">
@@ -70,7 +70,7 @@
 	import {
 		compressImage,
 		showToast
-	} from './../common/util.js'
+	} from '../../common/util.js'
 	import mixinsCommon from '../../mixins/common.js'
 	import mixinsAuth from '../../mixins/auth.js'
   import LoadMore from '../../components/load-more/load-more.vue'
@@ -279,7 +279,7 @@
 							font-size: 28upx;
 						}
 
-						.iconfont {
+						.iconfont-yunexamine {
 							margin-left: 10upx;
 						}
 					}
@@ -387,7 +387,7 @@
 			align-items: center;
 			justify-content: center;
 
-			.iconfont {
+			.iconfont-yunexamine {
 				color: #ccc;
 			}
 

+ 21 - 20
src/pages/third/yunexamine/pages/user/login.vue

@@ -8,13 +8,13 @@
 				<view class="form">
 					<view class="b-row">
 						<view class="b-input">
-							<view class="s-icon iconfont icon-account"></view>
+							<view class="s-icon iconfont-yunexamine icon-account"></view>
 							<input type="text" :value="form.name" @input="onInputName" placeholder="请输入姓名" />
 						</view>
 					</view>
 					<view class="b-row">
 						<view class="b-input">
-							<view class="s-icon iconfont icon-password"></view>
+							<view class="s-icon iconfont-yunexamine icon-password"></view>
 							<input type="text" :value="form.code" @input="onInputCode" placeholder="请输入登录码" />
 						</view>
 					</view>
@@ -25,13 +25,13 @@
 				<view class="form">
 					<view class="b-row">
 						<view class="b-input">
-							<view class="s-icon iconfont icon-card"></view>
+							<view class="s-icon iconfont-yunexamine icon-card"></view>
 							<input type="text" :value="form.number" @input="onInputNumber" placeholder="请输入编号" />
 						</view>
 					</view>
 					<view class="b-row">
 						<view class="b-input">
-							<view class="s-icon iconfont icon-password"></view>
+							<view class="s-icon iconfont-yunexamine icon-password"></view>
 							<input type="text" :value="form.code" @input="onInputCode" placeholder="请输入登录码" />
 						</view>
 					</view>
@@ -42,13 +42,13 @@
 				<view class="form">
 					<view class="b-row">
 						<view class="b-input">
-							<view class="s-icon iconfont icon-phone"></view>
+							<view class="s-icon iconfont-yunexamine icon-phone"></view>
 							<input type="text" :value="form.phone" @input="onInputPhone" placeholder="请输入手机号" />
 						</view>
 					</view>
 					<view class="b-row">
 						<view class="b-input">
-							<view class="s-icon iconfont icon-password"></view>
+							<view class="s-icon iconfont-yunexamine icon-password"></view>
 							<input type="text" :value="form.captcha" @input="onInputCaptcha" placeholder="请输入验证码" />
 							<view class="s-captcha" :class="{ disable: captcha.second > 0 }" @click="onPhoneCaptcha">
 								<text v-if="!captcha.retry && !captcha.second">获取验证码</text>
@@ -74,25 +74,25 @@
 					<view class="b-method f-name"
 						v-if="loginMethods.indexOf('name_code') !== -1 && loginMethod !== 'name_code'"
 						@click="onChangeMethod('name_code')">
-						<view class="iconfont icon-key"></view>
+						<view class="iconfont-yunexamine icon-key"></view>
 						<view class="s-text">姓名登录码</view>
 					</view>
 					<view class="b-method f-number"
 						v-if="loginMethods.indexOf('number_code') !== -1 && loginMethod !== 'number_code'"
 						@click="onChangeMethod('number_code')">
-						<view class="iconfont icon-key"></view>
+						<view class="iconfont-yunexamine icon-key"></view>
 						<view class="s-text">编号登录码</view>
 					</view>
 					<view class="b-method f-phone"
 						v-if="loginMethods.indexOf('phone_captcha') !== -1 && loginMethod !== 'phone_captcha'"
 						@click="onChangeMethod('phone_captcha')">
-						<view class="iconfont icon-verify-fill"></view>
+						<view class="iconfont-yunexamine icon-verify-fill"></view>
 						<view class="s-text">手机验证码</view>
 					</view>
 					<!-- #ifdef  MP-WEIXIN -->
 					<button class="b-method f-wechat open-data-btn" open-type="getPhoneNumber"
 						@getphonenumber="onGetPhoneNumber" v-if="loginMethods.indexOf('wechat_phone') !== -1">
-						<view class="iconfont icon-phone"></view>
+						<view class="iconfont-yunexamine icon-phone"></view>
 						<view class="s-text">手机号快捷登录</view>
 					</button>
 					<!-- #endif -->
@@ -104,7 +104,7 @@
 			<view class="tips">{{loginNote}}</view>
 		</view>
 		<view class="select-activity" v-if="selectActivity" @click="onJumpActivity">
-			<view class="iconfont icon-dashboard"></view>
+			<view class="iconfont-yunexamine icon-dashboard"></view>
 		</view>
 	</view>
 </template>
@@ -122,8 +122,9 @@
 	} from '../../service/request/main.js'
 	import {
 		decodeRedirectUrl,
-		showToast
-	} from './../common/util'
+		showToast,
+    wrapPromiseToJs
+	} from '../../common/util'
 	import mixinsCommon from '../../mixins/common.js'
 	import { useAppStore } from '../../store/index.js'
 	export default {
@@ -150,7 +151,7 @@
 			}
 		},
 		onLoad(options) {
-			this.returnPage = options.from ? decodeRedirectUrl(options.from) : 'pages/home/index'
+			this.returnPage = options.from ? decodeRedirectUrl(options.from) : 'pages/third/yunexamine/pages/home/index'
 			console.log('login returnPage', this.returnPage)
 			smartLogin('', true) // 判断是否扫码或进入活动列表页,因为当前页没有接口请求和权限校验
 		},
@@ -216,7 +217,7 @@
 					return
 				}
 				this.disable.captcha = true
-				uni.login().then(([err, res]) => {
+			  wrapPromiseToJs(uni.login()).then(([err, res]) => {
 					console.log('uni.login', err, res)
 					sendPhoneCaptcha(this.form.phone, res ? res.code : '', true).then(([err, res]) => {
 						console.log('sendPhoneCaptcha', err, res)
@@ -281,7 +282,7 @@
 					return showToast('登录码不能为空')
 				}
 				this.disable.submit = true;
-				uni.login().then(([err, res]) => {
+				wrapPromiseToJs(uni.login()).then(([err, res]) => {
 					console.log('uni.login', err, res)
 					loginByNumberCode(this.form.number, this.form.code, res ? res.code : '').then(([err, res]) => {
 						console.log('loginByNumberCode', err, res)
@@ -309,7 +310,7 @@
 					return showToast('验证码不能为空')
 				}
 				this.disable.submit = true
-				uni.login().then(([err, res]) => {
+				wrapPromiseToJs(uni.login()).then(([err, res]) => {
 					console.log('uni.login', err, res)
 					loginByPhoneCaptcha(this.form.phone, this.form.captcha, res ? res.code : '').then(([err,
 						res
@@ -338,7 +339,7 @@
 				uni.showLoading({
 					title: '尝试登录中'
 				})
-				uni.login().then(([err, res]) => {
+			  wrapPromiseToJs(uni.login()).then(([err, res]) => {
 					console.log('uni.login', err, res)
 					loginByWechatPhone(e.detail.encryptedData, e.detail.iv, e.detail.code || '', res.code).then(([
 						err, res
@@ -509,7 +510,7 @@
 				background: #35C773;
 			}
 
-			.iconfont {
+			.iconfont-yunexamine {
 				margin-right: 10upx;
 				font-size: 40upx;
 			}
@@ -553,7 +554,7 @@
 		align-items: center;
 		justify-content: center;
 
-		.iconfont {
+		.iconfont-yunexamine {
 			font-size: 50upx;
 			color: #DA5650;
 		}

+ 8 - 6
src/pages/third/yunexamine/pages/user/mine.vue

@@ -8,11 +8,11 @@
 				</view>
 				<view class="b-info">
 					<!-- #ifdef  MP-WEIXIN -->
-					<button class="s-edit iconfont icon-edit open-data-btn" open-type="chooseAvatar"
+					<button class="s-edit iconfont-yunexamine icon-edit open-data-btn" open-type="chooseAvatar"
 						@chooseavatar="onChooseAvatar"></button>
 					<!-- #endif -->
 					<!-- #ifdef  H5 -->
-					<view class="s-edit iconfont icon-edit" @click="onUploadAvatar"></view>
+					<view class="s-edit iconfont-yunexamine icon-edit" @click="onUploadAvatar"></view>
 					<!-- #endif -->
 					<view class="s-status" v-if="userInfo.status != 1">{{userInfo.status_text}}</view>
 				</view>
@@ -39,7 +39,7 @@
 					v-if="disableOptions.indexOf('change_phone') === -1 && (loginMethods.indexOf('phone_captcha') !== -1 || loginMethods.indexOf('wechat_phone') !== -1)">
 					<text class="s-tit">修改手机号</text>
 					<text class="s-tip"></text>
-					<text class="s-more iconfont icon-more"></text>
+					<text class="s-more iconfont-yunexamine icon-more"></text>
 				</view>
 				<!-- #endif -->
 				<!-- #ifdef  H5 -->
@@ -47,19 +47,19 @@
 					v-if="disableOptions.indexOf('change_phone') === -1 && loginMethods.indexOf('phone_captcha') !== -1">
 					<text class="s-tit">修改手机号</text>
 					<text class="s-tip"></text>
-					<text class="s-more iconfont icon-more"></text>
+					<text class="s-more iconfont-yunexamine icon-more"></text>
 				</view>
 				<!-- #endif -->
 				<view class="b-item" @click="onChangeCode"
 					v-if="disableOptions.indexOf('change_code') === -1 && (loginMethods.indexOf('name_code') !== -1 || loginMethods.indexOf('number_code') !== -1)">
 					<text class="s-tit">修改登录码</text>
 					<text class="s-tip"></text>
-					<text class="s-more iconfont icon-more"></text>
+					<text class="s-more iconfont-yunexamine icon-more"></text>
 				</view>
 				<view class="b-item" @click="onFeedback" v-if="disableOptions.indexOf('feedback') === -1">
 					<text class="s-tit">意见反馈</text>
 					<text class="s-tip"></text>
-					<text class="s-more iconfont icon-more"></text>
+					<text class="s-more iconfont-yunexamine icon-more"></text>
 				</view>
 			</view>
 			<view class="btn-logout" @click="onLogout" v-if="disableOptions.indexOf('logout') === -1">退出登录</view>
@@ -184,6 +184,8 @@
 		padding-bottom: env(safe-area-inset-bottom);
 		
 	}
+  
+  $pq-bg-color: #f6f6f6;
 
 	.wrap {
 		padding: 0 40upx 100upx 40upx;

+ 8 - 8
src/pages/third/yunexamine/pages/user/register.vue

@@ -8,7 +8,7 @@
 						range-key="name">
 						<view class="b-main">
 							<view class="s-cont">{{this.groupList[this.groupIndex].name}}</view>
-							<view class="iconfont icon-more"></view>
+							<view class="iconfont-yunexamine icon-more"></view>
 						</view>
 					</picker>
 				</view>
@@ -38,7 +38,7 @@
 						range-key="name">
 						<view class="b-main">
 							<view class="s-cont">{{this.genderList[this.genderIndex].name}}</view>
-							<view class="iconfont icon-more"></view>
+							<view class="iconfont-yunexamine icon-more"></view>
 						</view>
 					</picker>
 				</view>
@@ -56,7 +56,7 @@
 							<view class="s-cont">
 								{{item.value_list[selectIndex(item.value_list, form.custom[item.name])]}}
 							</view>
-							<view class="iconfont icon-more"></view>
+							<view class="iconfont-yunexamine icon-more"></view>
 						</view>
 					</picker>
 				</view>
@@ -108,8 +108,8 @@
 		register,
 		sendPhoneCaptcha
 	} from '../../service/api/user.js'
-  import { showToast } from '../../common/util.js'
-	import Util from './../common/util.js'
+  import { showToast, wrapPromiseToJs } from '../../common/util.js'
+	import Util from '../../common/util.js'
 	import Config from '../../service/config.js'
 	import mixinsCommon from '../../mixins/common.js'
 	import { useAppStore } from '../../store/index.js'
@@ -205,7 +205,7 @@
 					return
 				}
 				this.disable.captcha = true
-				uni.login().then(([err, res]) => {
+			  wrapPromiseToJs(uni.login()).then(([err, res]) => {
 					console.log('uni.login', err, res)
 					sendPhoneCaptcha(this.form.phone, res ? res.code : '', true).then(([err, res]) => {
 						console.log('sendPhoneCaptcha', err, res)
@@ -269,7 +269,7 @@
 				}
 				console.log('form', this.form)
 				this.disable.submit = true
-				uni.login().then(([err, res]) => {
+				wrapPromiseToJs(uni.login()).then(([err, res]) => {
 					console.log('uni.login', err, res)
 					this.form.wx_code = res ? res.code : ''
 					this.form.group_id = this.groupList[this.groupIndex].value
@@ -347,7 +347,7 @@
 							font-size: 28upx;
 						}
 
-						.iconfont {
+						.iconfont-yunexamine {
 							margin-left: 10upx;
 						}
 					}

+ 4 - 2
src/pages/third/yunexamine/service/request/request.js

@@ -1,3 +1,5 @@
+import { wrapPromiseToJs } from '../../common/util.js'
+
 export default class Request {
 	// 判断url是否为绝对路径
 	static absolutelyUrl(url) {
@@ -58,7 +60,7 @@ export default class Request {
 		options.method = options.method || this.config.method
 
 		// promise 请求
-		return new Promise((resolve, reject) => {
+		return (new Promise((resolve, reject) => {
 			let execute = true
 			let _config = null
 			// 请求完成
@@ -115,7 +117,7 @@ export default class Request {
 			} else {
 				uni.request(_config)
 			}
-		})
+		}))
 	};
 
 	// 接口请求 - 支持重试

BIN
src/pages/third/yunexamine/static/iconfont.ttf


BIN
src/pages/third/yunexamine/static/iconfont.woff


BIN
src/pages/third/yunexamine/static/iconfont.woff2


BIN
src/pages/third/yunexamine/static/imgs/activity_loading.jpg


BIN
src/pages/third/yunexamine/static/imgs/gift_top_bg.jpg


BIN
src/pages/third/yunexamine/static/imgs/home_top_loading.jpg


BIN
src/pages/third/yunexamine/static/imgs/line-bg.png


BIN
src/pages/third/yunexamine/static/imgs/loading_image.png


BIN
src/pages/third/yunexamine/static/imgs/login_top_loading.jpg


BIN
src/pages/third/yunexamine/static/imgs/result_right.png


BIN
src/pages/third/yunexamine/static/imgs/result_timeout.png


BIN
src/pages/third/yunexamine/static/imgs/result_timeout_end.png


BIN
src/pages/third/yunexamine/static/imgs/result_wrong.png


BIN
src/pages/third/yunexamine/static/imgs/top_1.png


BIN
src/pages/third/yunexamine/static/imgs/top_2.png


BIN
src/pages/third/yunexamine/static/imgs/top_3.png


BIN
src/pages/third/yunexamine/static/imgs/top_bg.png


BIN
src/pages/third/yunexamine/static/imgs/user.png


BIN
src/pages/third/yunexamine/static/tabs/gift.png


BIN
src/pages/third/yunexamine/static/tabs/gift_active.png


BIN
src/pages/third/yunexamine/static/tabs/home.png


BIN
src/pages/third/yunexamine/static/tabs/home_active.png


BIN
src/pages/third/yunexamine/static/tabs/info.png


BIN
src/pages/third/yunexamine/static/tabs/info_active.png


BIN
src/pages/third/yunexamine/static/tabs/mine.png


BIN
src/pages/third/yunexamine/static/tabs/mine_active.png


BIN
src/pages/third/yunexamine/static/tabs/top.png


BIN
src/pages/third/yunexamine/static/tabs/top_active.png


+ 0 - 109
src/pages/third/yunexamine/uni.scss

@@ -1,109 +0,0 @@
-/**
- * 这里是uni-app内置的常用样式变量
- *
- * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
- * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
- *
- */
-
-/**
- * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
- *
- * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
- */
-
-/* 颜色变量 */
-
-/* 行为相关颜色 */
-$uni-color-primary: #007aff;
-$uni-color-success: #4cd964;
-$uni-color-warning: #f0ad4e;
-$uni-color-error: #dd524d;
-
-/* 文字基本颜色 */
-$uni-text-color:#333;//基本色
-$uni-text-color-inverse:#fff;//反色
-$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
-$uni-text-color-placeholder: #808080;
-$uni-text-color-disable:#c0c0c0;
-
-/* 背景颜色 */
-$uni-bg-color:#ffffff;
-$uni-bg-color-grey:#f8f8f8;
-$uni-bg-color-hover:#f1f1f1;//点击状态颜色
-$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
-
-/* 边框颜色 */
-$uni-border-color:#c8c7cc;
-
-/* 尺寸变量 */
-
-/* 文字尺寸 */
-$uni-font-size-sm:12px;
-$uni-font-size-base:14px;
-$uni-font-size-lg:16;
-
-/* 图片尺寸 */
-$uni-img-size-sm:20px;
-$uni-img-size-base:26px;
-$uni-img-size-lg:40px;
-
-/* Border Radius */
-$uni-border-radius-sm: 2px;
-$uni-border-radius-base: 3px;
-$uni-border-radius-lg: 6px;
-$uni-border-radius-circle: 50%;
-
-/* 水平间距 */
-$uni-spacing-row-sm: 5px;
-$uni-spacing-row-base: 10px;
-$uni-spacing-row-lg: 15px;
-
-/* 垂直间距 */
-$uni-spacing-col-sm: 4px;
-$uni-spacing-col-base: 8px;
-$uni-spacing-col-lg: 12px;
-
-/* 透明度 */
-$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
-
-/* 文章场景相关 */
-$uni-color-title: #2C405A; // 文章标题颜色
-$uni-font-size-title:20px;
-$uni-color-subtitle: #555555; // 二级标题颜色
-$uni-font-size-subtitle:26px;
-$uni-color-paragraph: #3F536E; // 文章段落颜色
-$uni-font-size-paragraph:15px;
-
-
-
-
-/* 页面左右间距 */
-$page-row-spacing: 30upx;
-$page-color-base: #f8f8f8;
-$page-color-light: #f8f6fc;
-$base-color: #fa436a;
-
-/* 文字尺寸 */
-$font-sm: 24upx;
-$font-base: 28upx;
-$font-lg: 32upx;
-
-/* 文字颜色 */
-$font-color-dark: #303133;
-$font-color-base: #606266;
-$font-color-light: #909399;
-$font-color-disabled: #c0c4cc;
-$font-color-spec: #4399fc;
-
-/* 边框颜色 */
-$border-color-dark: #dcdfe6;
-$border-color-base: #e4e7ed;
-$border-color-light: #ebeef5;
-
-/* 图片加载中颜色 */
-$image-bg-color: #eee;
-
-
-/* 背景颜色 */
-$pq-bg-color: #f6f6f6;  /* #FAFAFA #f8f8f8 #f1f1f1 #f6f6f6 */

+ 1 - 1
src/pages/user/index.vue

@@ -107,7 +107,7 @@ function doLogout() {
   });
 }
 function goStore() {
-  requireLogin(() => navTo('/pages/third/yunexamine/pages/home/index'), '登录后查看我的关注哦');
+  requireLogin(() => navTo('/pages/third/yunexamine/pages/gift/index'), '登录后查看我的哦');
 }
 
 

+ 6 - 6
src/pages/third/yunexamine/static/iconfont.css

@@ -1,12 +1,12 @@
 @font-face {
-  font-family: "iconfont"; /* Project id 3719789 */
-  src: url('iconfont.woff2?t=1693452193811') format('woff2'),
-       url('iconfont.woff?t=1693452193811') format('woff'),
-       url('iconfont.ttf?t=1693452193811') format('truetype');
+  font-family: "iconfont-yunexamine-yunexamine"; /* Project id 2581260 */
+  src: url('https://xy.wenlvti.net/app_static/yunexamine/iconfont-yunexamine.woff2?t=1693452193811') format('woff2'),
+       url('https://xy.wenlvti.net/app_static/yunexamine/iconfont-yunexamine.woff?t=1693452193811') format('woff'),
+       url('https://xy.wenlvti.net/app_static/yunexamine/iconfont-yunexamine.ttf?t=1693452193811') format('truetype');
 }
 
-.iconfont {
-  font-family: "iconfont" !important;
+.iconfont-yunexamine {
+  font-family: "iconfont-yunexamine" !important;
   font-size: 16px;
   font-style: normal;
   -webkit-font-smoothing: antialiased;