wjx пре 4 година
комит
6ee4cb9d96
72 измењених фајлова са 3166 додато и 0 уклоњено
  1. 16 0
      .hbuilderx/launch.json
  2. 17 0
      App.vue
  3. 57 0
      api/api.js
  4. 11 0
      main.js
  5. 72 0
      manifest.json
  6. 35 0
      pages.json
  7. 230 0
      pages/checkInRecord/checkInRecord.vue
  8. 823 0
      pages/index/index.vue
  9. 28 0
      pages/officialAccount/officialAccount.vue
  10. BIN
      static/avatar.jpg
  11. BIN
      static/clickVideo.png
  12. BIN
      static/close.png
  13. BIN
      static/doubleBt.png
  14. BIN
      static/giftBag.png
  15. BIN
      static/giftBagSelect.png
  16. BIN
      static/gold.png
  17. BIN
      static/goldSelect.png
  18. BIN
      static/logo.png
  19. BIN
      static/popupBack.png
  20. BIN
      static/retract.png
  21. BIN
      static/signRecord.png
  22. BIN
      static/signSub.png
  23. BIN
      static/sign_back.png
  24. BIN
      static/triangle.png
  25. BIN
      static/unfold.png
  26. 76 0
      uni.scss
  27. 0 0
      unpackage/dist/dev/.automator/mp-weixin/.automator.json
  28. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
  29. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map
  30. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
  31. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/checkInRecord/checkInRecord.js.map
  32. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/checkInRecord/index.js.map
  33. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
  34. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/officialAccount/officialAccount.js.map
  35. 4 0
      unpackage/dist/dev/mp-weixin/app.js
  36. 16 0
      unpackage/dist/dev/mp-weixin/app.json
  37. 3 0
      unpackage/dist/dev/mp-weixin/app.wxss
  38. 131 0
      unpackage/dist/dev/mp-weixin/common/main.js
  39. 17 0
      unpackage/dist/dev/mp-weixin/common/main.wxss
  40. 158 0
      unpackage/dist/dev/mp-weixin/common/runtime.js
  41. 10 0
      unpackage/dist/dev/mp-weixin/common/vendor.js
  42. 325 0
      unpackage/dist/dev/mp-weixin/pages/checkInRecord/checkInRecord.js
  43. 5 0
      unpackage/dist/dev/mp-weixin/pages/checkInRecord/checkInRecord.json
  44. 1 0
      unpackage/dist/dev/mp-weixin/pages/checkInRecord/checkInRecord.wxml
  45. 107 0
      unpackage/dist/dev/mp-weixin/pages/checkInRecord/checkInRecord.wxss
  46. 257 0
      unpackage/dist/dev/mp-weixin/pages/index/index.js
  47. 5 0
      unpackage/dist/dev/mp-weixin/pages/index/index.json
  48. 0 0
      unpackage/dist/dev/mp-weixin/pages/index/index.wxml
  49. 456 0
      unpackage/dist/dev/mp-weixin/pages/index/index.wxss
  50. 155 0
      unpackage/dist/dev/mp-weixin/pages/officialAccount/officialAccount.js
  51. 5 0
      unpackage/dist/dev/mp-weixin/pages/officialAccount/officialAccount.json
  52. 1 0
      unpackage/dist/dev/mp-weixin/pages/officialAccount/officialAccount.wxml
  53. 32 0
      unpackage/dist/dev/mp-weixin/project.config.json
  54. 24 0
      unpackage/dist/dev/mp-weixin/project.private.config.json
  55. 7 0
      unpackage/dist/dev/mp-weixin/sitemap.json
  56. BIN
      unpackage/dist/dev/mp-weixin/static/avatar.jpg
  57. BIN
      unpackage/dist/dev/mp-weixin/static/clickVideo.png
  58. BIN
      unpackage/dist/dev/mp-weixin/static/close.png
  59. BIN
      unpackage/dist/dev/mp-weixin/static/doubleBt.png
  60. BIN
      unpackage/dist/dev/mp-weixin/static/giftBag.png
  61. BIN
      unpackage/dist/dev/mp-weixin/static/giftBagSelect.png
  62. BIN
      unpackage/dist/dev/mp-weixin/static/gold.png
  63. BIN
      unpackage/dist/dev/mp-weixin/static/goldSelect.png
  64. BIN
      unpackage/dist/dev/mp-weixin/static/logo.png
  65. BIN
      unpackage/dist/dev/mp-weixin/static/popupBack.png
  66. BIN
      unpackage/dist/dev/mp-weixin/static/retract.png
  67. BIN
      unpackage/dist/dev/mp-weixin/static/signRecord.png
  68. BIN
      unpackage/dist/dev/mp-weixin/static/signSub.png
  69. BIN
      unpackage/dist/dev/mp-weixin/static/sign_back.png
  70. BIN
      unpackage/dist/dev/mp-weixin/static/triangle.png
  71. BIN
      unpackage/dist/dev/mp-weixin/static/unfold.png
  72. 81 0
      utils/request.js

+ 16 - 0
.hbuilderx/launch.json

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

+ 17 - 0
App.vue

@@ -0,0 +1,17 @@
+<script>
+	export default {
+		onLaunch: function() {
+			console.log('App Launch')
+		},
+		onShow: function() {
+			console.log('App Show')
+		},
+		onHide: function() {
+			console.log('App Hide')
+		}
+	}
+</script>
+
+<style>
+	/*每个页面公共css */
+</style>

+ 57 - 0
api/api.js

@@ -0,0 +1,57 @@
+import { request } from "@/utils/request"
+
+
+/**
+ * wxb21c3e030b8af425  书券大礼包
+ * wx021e792baf529aff  好运赢书券
+ */
+export let config = {
+	appid: 'wxb21c3e030b8af425'
+}
+
+// 获取openId
+export async function getOpenId(data) {
+	return request({url: `/applet/openId`, data})
+}
+
+// 获取首页信息
+export async function getHome(data) {
+	return request({url: `/sign/in/home`, data})
+}
+
+// 签到
+export async function signInAjax(data) {
+	return request({url: `/sign/in/login`, data, method: 'PUT'})
+}
+
+// 获取签到记录列表
+export async function getSignList(data) {
+	return request({url: `/sign/in/login/record`, data})
+}
+
+
+// 签到提醒
+export async function setMessage(data) {
+	return request({url: `/sign/in/login/remind`, data})
+}
+
+// 获取签到提醒的模板ID
+export async function getTemplateIDs(data) {
+	return request({url: `/sign/in/login/remind/template`, data})
+}
+
+// 书币充值失败重新领取
+export async function setReClaim(data) {
+	return request({url: `/sign/in/login/reClaim`, data})
+}
+
+
+// 开关更新
+export async function switchUpdate(data) {
+	return request({url: `/sign/in/login/switch/update`, data, method: 'PUT'})
+}
+
+// 获取公众号文章
+export async function getUrl() {
+	return request({url: `/applet/mp/url`})
+}

+ 11 - 0
main.js

@@ -0,0 +1,11 @@
+import Vue from 'vue'
+import App from './App'
+
+Vue.config.productionTip = false
+
+App.mpType = 'app'
+
+const app = new Vue({
+    ...App
+})
+app.$mount()

+ 72 - 0
manifest.json

@@ -0,0 +1,72 @@
+{
+    "name" : "qc-signIn",
+    "appid" : "",
+    "description" : "",
+    "versionName" : "1.0.0",
+    "versionCode" : "100",
+    "transformPx" : false,
+    /* 5+App特有相关 */
+    "app-plus" : {
+        "usingComponents" : true,
+        "nvueStyleCompiler" : "uni-app",
+        "compilerVersion" : 3,
+        "splashscreen" : {
+            "alwaysShowBeforeRender" : true,
+            "waiting" : true,
+            "autoclose" : true,
+            "delay" : 0
+        },
+        /* 模块配置 */
+        "modules" : {},
+        /* 应用发布信息 */
+        "distribute" : {
+            /* android打包配置 */
+            "android" : {
+                "permissions" : [
+                    "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
+                    "<uses-permission android:name=\"android.permission.VIBRATE\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
+                    "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CAMERA\"/>",
+                    "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
+                    "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
+                    "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
+                    "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
+                    "<uses-feature android:name=\"android.hardware.camera\"/>",
+                    "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
+                ]
+            },
+            /* ios打包配置 */
+            "ios" : {},
+            /* SDK配置 */
+            "sdkConfigs" : {}
+        }
+    },
+    /* 快应用特有相关 */
+    "quickapp" : {},
+    /* 小程序特有相关 */
+    "mp-weixin" : {
+        "appid" : "wxb21c3e030b8af425",
+        "setting" : {
+            "urlCheck" : false,
+            "es6" : true
+        },
+        "usingComponents" : true
+    },
+    "mp-alipay" : {
+        "usingComponents" : true
+    },
+    "mp-baidu" : {
+        "usingComponents" : true
+    },
+    "mp-toutiao" : {
+        "usingComponents" : true
+    },
+    "uniStatistics" : {
+        "enable" : false
+    }
+}

+ 35 - 0
pages.json

@@ -0,0 +1,35 @@
+{
+	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
+		{
+			"path": "pages/index/index",
+			"style": {
+				"navigationStyle": "default",
+				"navigationBarTitleText": "签到有礼"
+			}
+		}
+	    ,{
+            "path" : "pages/checkInRecord/checkInRecord",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "签到记录",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+        ,{
+            "path" : "pages/officialAccount/officialAccount",
+            "style" :                                                                                    
+            {
+                "navigationBarTitleText": "关注公众号",
+                "enablePullDownRefresh": false
+            }
+            
+        }
+    ],
+	"globalStyle": {
+		"navigationBarTextStyle": "black",
+		"navigationBarTitleText": "签到有礼",
+		"navigationBarBackgroundColor": "#F8F8F8",
+		"backgroundColor": "#F8F8F8"
+	}
+}

+ 230 - 0
pages/checkInRecord/checkInRecord.vue

@@ -0,0 +1,230 @@
+<template>
+	<view class="checkInRecord">
+		<view class="timeData">
+			<picker mode="date" fields="month" @change="selectDataTime">
+				<view class="time" v-if="isShowYeer" style="display: flex;align-items: center;">
+					<text>{{queryForm.dayTime | getYMFilter}}</text>
+					<image src="../../static/triangle.png" mode="widthFix" class="triangle"></image>
+				</view>
+				<view class="time" v-else>
+					<text style="font-size: 48rpx;margin-right: 10rpx;">{{queryForm.dayTime | getDateFilter}}</text>
+					<text>月</text>
+					<image src="../../static/triangle.png" mode="widthFix" class="triangle"></image>
+				</view>
+			</picker>
+		</view>
+		
+		<scroll-view scroll-y="true" class="checkInList" lower-threshold="80" @scrolltolower="scrolltolower" >
+			<view v-for="item in signList" :key="item.id" class="item">
+				<view class="left">
+					<view class="title">{{item.describe}}</view>
+					<view class="data">{{item.longCreateTime | getTimerFilter}}</view>
+				</view>
+				<view class="right">
+					<text v-if="item.rechargeStatus === 1">已发放</text>
+					<view class="error" v-else @click="setAgainReceive(item)">
+						失败重领
+					</view>
+				</view>
+			</view>
+			
+			<view class="baseline" v-if="this.total === this.signList.length">
+				—— 我是有底线的 ——
+			</view>
+		</scroll-view>
+		
+	</view>
+</template>
+
+<script>
+	import { getSignList, setReClaim, config } from '@/api/api.js'
+	export default {
+		data() {
+			return {
+				queryForm: {
+					page: 1, 
+					pageSize: 20,
+					dayTime: '',
+					appId: config.appid
+				},
+				isShowYeer: false,   //是否展示年月
+				signList: [],
+				total: 0
+			};
+		},
+		onLoad(options) {
+			if (Object.keys(options).length > 0) {
+				this.queryForm = {...this.queryForm, ...options}
+				this.queryForm.dayTime = this.getDate()
+				this.getList()
+			}
+		},
+		filters: {
+			getYMFilter(value) {
+				if(!value) return ''
+				let data = value.split('-')
+				if (data.length > 1) {
+					return data[0] + '-' + data[1]
+				}else {
+					return value
+				}
+			},
+			getDateFilter(value) { // 获取月
+				if(!value) return ''
+				let data = value.split('-')
+				if (data.length > 1) {
+					return Number(data[1])
+				}else {
+					return value
+				}
+			},
+			getTimerFilter(value) { // 获取年月日时分秒
+				if(!value) return ''
+				let timestamp = Date.parse(new Date(value))
+				let date = new Date(timestamp)
+				let Y = date.getFullYear()
+				let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1)
+				let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
+				
+				let H = date.getHours() < 10 ? '0' + date.getHours() : date.getHours()
+				let minute = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()
+				let S = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
+				
+				return `${Y}-${M}-${D} ${H}:${minute}:${S}`
+			}
+		},
+		methods: {
+			// 重新领取
+			setAgainReceive (item) {
+				setReClaim({id: item.id, createTime: item.longCreateTime}).then(res => {
+					if (res.data === 1) {
+						uni.showToast({
+							title: '重领成功',
+							icon: 'success'
+						})
+						this.signList = this.signList.map(item => {
+							if (item.id === id) {
+								return {
+									...item,
+									rechargeStatus: res.data
+								}
+							} else {
+								return item
+							}
+						})
+					} else {
+						uni.showToast({
+							title: '重新领取失败,请稍后再来',
+							icon: 'none',
+							duration: 2000
+						})
+					}
+				})
+			},
+			getList() {
+				getSignList({...this.queryForm, dayTime: this.queryForm.dayTime + '-01'}).then(res => {
+					this.signList = this.signList.concat(res.data.signInLogEsDtoList)
+					this.total = res.data.total
+				})
+			},
+			// 滚动到底部去获取数据
+			scrolltolower() {
+				if ( this.signList.length !== this.total ) {
+					this.$set(this.queryForm, 'page', this.queryForm.page + 1)
+					this.getList()
+				}
+			},
+			// 选择时间
+			selectDataTime(e) {
+				this.isShowYeer = true
+				this.signList = []
+				this.$set(this.queryForm, 'page', 1)
+				this.$set(this.queryForm, 'dayTime', e.target.value)
+				this.getList()
+			},
+			// 获取年月
+			getDate() {
+				let timestamp = Date.parse(new Date())
+				let date = new Date(timestamp)
+				let Y = date.getFullYear()
+				let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1)
+				let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
+				return Y + '-' + M
+			}
+		}
+	}
+</script>
+
+<style lang="scss">
+	.checkInRecord {
+		display: flex;
+		flex-direction: column;
+		justify-content: flex-start;
+		width: 100%;
+		height: 100vh;
+	}
+	.timeData {
+		width: 100%;
+		height: 104rpx;
+		line-height: 104rpx;
+		padding: 0 30rpx;
+		box-sizing: border-box;
+		border-bottom: 1rpx solid #efefef;
+	}
+	.time {
+		font-size: 24rpx;
+		.triangle {
+			margin-left: 5rpx;
+			width: 15rpx;
+			height: 10rpx;
+		}
+	}
+	
+	.checkInList{
+		height: calc(100vh - 100rpx);
+		padding-bottom: 40rpx;
+		box-sizing: border-box;
+		overflow: hidden;
+		.item {
+			padding: 10rpx 0;
+			margin: 0 30rpx;
+			border-bottom: 1rpx solid #efefef;
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+		}
+		.title {
+			font-size: 28rpx;
+			font-weight: 500;
+			color: #000000;
+		}
+		.data {
+			font-size: 24rpx;
+			margin-top: 8rpx;
+			color: #808080;
+		}
+		.right {
+			&>text {
+				font-size: 28rpx;
+			}
+			.error {
+				font-size: 24rpx;
+				background-color: #FC6E53;
+				width: 140rpx;
+				height: 55rpx;
+				box-sizing: border-box;
+				color: #FFFFFF;
+				text-align: center;
+				line-height: 55rpx;
+				border-radius: 30rpx;
+			}
+		}
+	}
+	
+	.baseline {
+		text-align: center;
+		padding: 30rpx 0;
+		font-size: 24rpx;
+		color: #999999;
+	}
+</style>

+ 823 - 0
pages/index/index.vue

@@ -0,0 +1,823 @@
+<template>
+	<view class="sign">
+		<image src="../../static/sign_back.png" class="back" mode="widthFix"></image>
+		
+		<view class="signCenter">
+			<!-- 个人信息模块 -->
+			<view class="signTop">
+				<view class="left">
+					<!-- <image :src="avatarUrl || '../../static/avatar.jpg'" class="avatar" mode="widthFix"></image> -->
+					<view class="avatarView">
+						<open-data type="userAvatarUrl" class="avatar"></open-data>
+					</view>
+					<view class="userInfo">
+						<view class="account">{{signData.mpName}}</view>
+						<view class="ID">ID:{{signData.userId}}</view>
+					</view>
+				</view>
+				<navigator :url="'../checkInRecord/checkInRecord?openId=' + openId + '&mpAppId=' + mpData.mpAppId + '&mpOpenId=' + mpData.mpOpenId" class="right">
+					<image src="../../static/signRecord.png" mode="widthFix"></image>
+					<text>签到记录</text>
+				</navigator>
+			</view>
+			
+			<view class="signBottom">
+				
+				<!-- 签到展示模块 -->
+				<view class="exhibitionContent" v-if="signData.signInDayVoList.length > 0">
+					<view class="ts">已连续签到{{signData.sustainDayCount}}天,有{{signData.canSupplement}}次补签机会</view>
+					<view class="signinExhibition">
+						<view v-for="(item, index) in signData.signInDayVoList" :key="index" :class="item.signIn ? 'select' : item.canSupplement ? 'repairSign' : ''">
+							<template v-if="index < 6">
+								<view class="repair" v-if="item.canSupplement">看视频补签</view>
+								<text class="day">{{item.dayDescribe}}</text>
+								<image src="../../static/goldSelect.png" class="goldCoins" mode="heightFix" v-if="item.signIn"></image>
+								<image src="../../static/clickVideo.png" class="goldCoins" mode="heightFix" @click="repairSign(item)" v-else-if="item.canSupplement"></image>
+								<image src="../../static/gold.png" class="goldCoins" mode="heightFix" v-else></image>
+								<text class="reward">{{item.bookCoin}}书币</text>
+								<image src="../../static/signSub.png" class="signSub" mode="widthFix" v-if="item.signIn"></image>
+							</template>
+							<template v-else>
+								<view class="left">
+									<text class="day">{{item.dayDescribe}}</text>
+									<text class="reward">{{item.bookCoin}}书币</text>
+								</view>
+								<view class="right">
+									<image src="../../static/giftBag.png" mode="heightFix" v-if="!item.signIn"></image>
+									<image src="../../static/giftBagSelect.png" mode="heightFix" v-else></image>
+								</view>
+								<image src="../../static/signSub.png" class="signSub" mode="widthFix" v-if="item.signIn"></image>
+							</template>
+						</view>
+					</view>
+					<navigator url="../officialAccount/officialAccount" class="gignBt" v-if="!signData.mpName">签到领书币</navigator>
+					<view class="gignBt" @click="signIn" v-else-if="!isSignIn">签到领书币</view>
+					<!-- <view class="already" v-else>今日已签</view> -->
+					<view class="gignBt" v-else @click="moreGold">更多书币</view>
+				</view>
+				
+				
+				<!-- 签到提醒模块 -->
+				<view class="signRemind">
+					<text>签到提醒</text>
+					<view class="remindSwitch">
+						<view :class="signRemind ? 'open' : 'close'" @click="signRemindHandle(true)">
+							<view class="select"></view>
+							<text>开启</text>
+						</view>
+						<view :class="!signRemind ? 'open' : 'close'" @click="signRemindHandle(false)">
+							<view class="select"></view>
+							<text>关闭</text>
+						</view>
+					</view>
+				</view>
+				
+				<!-- 活动规则模块 -->
+				<view class="activityRules">
+					<view class="top" @click="activityRulesHandle">
+						<text>活动规则</text>
+						<image :src="!activityRules ? '../../static/unfold.png' : '../../static/retract.png'" mode="widthFix"></image>
+					</view>
+					<view class="bottom" v-if="activityRules">
+						<view>
+							1.用户进入每日送书币小程序后,每日首次打开小程序,点击签到按钮即可完成一次签到。
+						</view>
+						<view>
+							2.签到获得的书币奖励,在领取日后天效。连续签到所得书币奖励在周期内稍有变化,非均等分布。连续7日完成签到的用户在第7日可获得更多的奖励。
+						</view>
+						<view>
+							3.用户每个周期(7天),拥有2次补签机会(连续签到2天拥有1次补签机会),可通过观看小视频获得,连续未签到2天,签到重新开始。
+						</view>
+						<view>
+							4.连续签到:自首日完成签到开始累计,连续7天签到为一个周期。签到中断,则重新开始计算。
+						</view>
+						<view>
+							5.每日同一注册用户仅可参与一次。
+						</view>
+					</view>
+				</view>
+				
+			</view>
+			
+		</view>
+		<view class="popup" v-if="popupShow">
+			<view class="popupContent">
+				<view class="content">
+					<image src="../../static/popupBack.png"></image>
+					<view class="textCon">
+						<text class="ts">签到成功!</text> </br>
+						<text class="reward">恭喜您获得{{signInDay.bookCoin}}书币</text> </br>
+						<image src="../../static/doubleBt.png" class="doubleBt" mode="widthFix" @click="lookVideo"></image> </br>
+						<text class="bt" @click="signInHandle(false)">不了,单倍领取</text>
+					</view>
+				</view>
+				<image src="../../static/close.png" class="close" mode="widthFix" @click="closeHandle"></image>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	import { config, getHome, getOpenId, signInAjax, getTemplateIDs, setMessage, switchUpdate } from '@/api/api.js'
+	export default {
+		data() {
+			return {
+				signRemind: false,  // 是否开启签到提醒
+				activityRules: false, // 是否展开活动规则
+				popupShow: false, // 弹窗控制
+				signData: {
+					sustainDayCount: 0,
+					canSupplement: 0,
+					userId: null,
+					mpName: null,
+					signInDayVoList: [
+						{
+							signIn: false,
+							canSupplement: false,
+							dayDescribe: '第一天',
+							bookCoin: 10,
+							isSignIn: true
+						},
+						{
+							signIn: false,
+							canSupplement: false,
+							dayDescribe: '第二天',
+							bookCoin: 20,
+							isSignIn: false
+						},
+						{
+							signIn: false,
+							canSupplement: false,
+							dayDescribe: '第三天',
+							bookCoin: 30,
+							isSignIn: false
+						},
+						{
+							signIn: false,
+							canSupplement: false,
+							dayDescribe: '第四天',
+							bookCoin: 40,
+							isSignIn: false
+						},
+						{
+							signIn: false,
+							canSupplement: false,
+							dayDescribe: '第五天',
+							bookCoin: 50,
+							isSignIn: false
+						},
+						{
+							signIn: false,
+							canSupplement: false,
+							dayDescribe: '第六天',
+							bookCoin: 60,
+							isSignIn: false
+						},
+						{
+							signIn: false,
+							canSupplement: false,
+							dayDescribe: '第七天',
+							bookCoin: 70,
+							isSignIn: false
+						},
+					]
+				}, // 签到相关信息
+				openId: '',
+				mpData: {}, // 公众号相关
+				isSignIn: true,  // 是否已经签到
+				userId: undefined, // 用户ID
+				signIdTemID: [],   // 签到提醒模板ID
+				isMainSwitch: true,  // 是否关闭了通知按钮
+				isAlwaysCancel: false,  // 是否点击了总是允许取消
+				signInDay: {}, // 今天签到信息
+			}
+		},
+		watch: {
+			'signData.signInDayVoList':{
+				handler(val, oldVal){
+					if (val.length > 0) {
+						let signInDay = val.find(item => item.canSign)
+						if (signInDay) {
+							this.isSignIn = signInDay.signIn
+						}
+					}
+				},
+				deep: true
+			}
+		},
+		onLoad(options) {
+			this.mpData = options
+			uni.login({
+				success: async res => {
+					if (res.code) {
+						let openIDInfo = await getOpenId({appId: config.appid, code: res.code})
+						this.openId = openIDInfo.data
+						this.getList()
+					}
+				}
+			})
+		},
+		onShareAppMessage() {},
+		methods: {
+			// 更多书币
+			moreGold() {
+				let path = 'pages/index/index'
+				if(Object.keys(this.mpData).length > 0) {
+					path = path + this.getSerialize(this.mpData)
+				}
+				uni.navigateToMiniProgram({
+				  appId: 'wx021e792baf529aff',
+				  path,
+				  success(res) {
+				    // 打开成功
+				  }
+				})
+			},
+			// 对象序列化成 a=1&b=2
+			getSerialize(value) {
+				if(Object.prototype.toString.call(value) === "[object Object]") {
+					let path = ""
+					for (const key in value) {
+						if (Object.prototype.hasOwnProperty.call(value, key)) {
+							const element = value[key];
+							if (path === "") {
+								path = `?${key}=${element}`
+							}else {
+								path = path + `&${key}=${element}`
+							}
+						}
+					}
+					return path
+				} else {
+					return ""
+				}
+			},
+			// 判断模板消息是否点击了总是允许
+			getSetting() {
+				return new Promise((resolve, reject) => {
+					uni.getSetting({
+						withSubscriptions: true,
+						success: resSetting => {
+							console.log('订阅消息---->', resSetting)
+							let { subscriptionsSetting } = resSetting
+							if (subscriptionsSetting) {
+								let { mainSwitch, itemSettings, ...data } = subscriptionsSetting
+								if (data && Object.keys(data).length > 0) {
+									if (mainSwitch) {
+										for (const key in data) {
+											if (Object.prototype.hasOwnProperty.call(data, key)) {
+												const element = data[key];
+												if (element === 'accept') {
+													resolve(200)  // 总是允许开启
+												} else {
+													resolve(400)  // 总是允许取消
+												}
+											}
+										}
+									} else {
+										resolve(401)  // 后台关闭开关
+									}
+								} else {
+									resolve(402)  // 没有点总是允许
+								}
+							} else {
+								resolve(402) // 没有点总是允许
+							}
+						}
+					})
+				})
+			},
+			handleMessage(remindSwitch, allowSwitch = 0) {  // 设置签到消息接口
+				let { mpName, ...mp } = this.mpData
+				setMessage({appId: config.appid, openId: this.openId, allowSwitch, remindSwitch, ...mp}).then(res => {
+					this.getList()
+				})
+			},
+			// 获取模板签到ID
+			getTemplate() {
+				getTemplateIDs({appId: config.appid, type: 1}).then(res => {
+					this.signIdTemID = [res.data]
+				})
+			},
+			// 获取首页数据
+			async getList(signTime) {
+				let data = {appId: config.appid, userSource: 1, openId: this.openId, ...this.mpData, ...(signTime ? {signTime} : {})}
+				let res = await getHome(data)
+				if (res.data) {
+					this.mpData = {
+						mpAppId: res.data.mpAppId,
+						mpName: res.data.mpName,
+						mpOpenId: res.data.mpOpenId
+					}
+					this.signData = res.data
+					this.signRemind = res.data.loginRemindSwitch === 0 ? false : true
+					this.getTemplate()
+				}
+			},
+			/** 补签*/
+			repairSign(data) {
+				let { dayTime, dayNum } = data
+				signInAjax({watchVideo: false, supplement: true, appId: config.appid, openId: this.openId, dayNum, dayTime, ...this.mpData}).then(res => {
+					this.getList(res.data)
+					uni.showToast({
+						title: '补签成功',
+						icon: 'success'
+					})
+				})
+			},
+			getTimer() { // 获取年月日时分秒
+				let timestamp = Date.parse(new Date())
+				let date = new Date(timestamp)
+				let Y = date.getFullYear()
+				let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1)
+				let D = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
+				return `${Y}${M}${D}`
+			},
+			/** 签到提醒按钮 */
+			signRemindHandle(state) {
+				if (!this.signData.mpName) {
+					uni.navigateTo({
+						url: '../officialAccount/officialAccount'
+					})
+					return
+				}
+				if(state) { // 点击开启
+					if (this.signIdTemID.length > 0) {
+						uni.requestSubscribeMessage({
+							tmplIds: this.signIdTemID,
+							success: async res => {
+								let { errMsg, ...massageData } = res
+								console.log('------>', res)
+								let msg = await this.getSetting()
+								console.log('----2222---->', msg)
+								if(msg === 400) {
+									uni.showToast({
+										title: '签到消息微信关闭,如要开启通知,请到通知管理开启',
+										icon: 'none',
+										duration: 2000
+									})
+									return
+								} else if(msg === 401) {
+									uni.showToast({
+										title: '通知管理按钮关闭,如要开启通知,请到通知管理开启',
+										icon: 'none',
+										duration: 2000
+									})
+								} else {
+									for (const key in massageData) {
+										if (Object.prototype.hasOwnProperty.call(massageData, key)) {
+											const element = massageData[key];
+											if (element === 'accept') { // 允许
+												console.log('msg--->', msg)
+												this.handleMessage(1, msg === 200 ? 1 : 0)
+											} else if (element === 'reject') { // 取消
+												
+											}
+										}
+									}
+								}
+								
+								
+							}
+						})
+					} else {
+						uni.showToast({
+							title: '模板ID为空',
+							icon: 'none'
+						})
+					}
+				} else { // 点击关闭
+					this.handleMessage(0, 0)
+				}
+			},
+			/** 活动规则展开和收起  */
+			activityRulesHandle() {
+				this.activityRules = !this.activityRules
+			},
+			/** 签到 */
+			signIn() {
+				if(!this.signData.mpName) {
+					uni.showToast({
+						title: '请先关注公众号',
+						icon: 'none'
+					})
+					return
+				}
+				this.signInDay = this.signData.signInDayVoList.find(item => item.canSign)
+				this.popupShow = true
+			},
+			/** 关闭弹窗 */
+			closeHandle() {
+				this.popupShow = false
+				this.signInHandle(false)
+			},
+			/** 签到 */
+			signInHandle(watchVideo) {
+				let signInDay = this.signData.signInDayVoList.find(item => item.canSign)
+				console.log(signInDay)
+				if (signInDay) {
+					let { dayTime, dayNum, signIn } = signInDay
+					if (!signIn) {
+						signInAjax({watchVideo, supplement: false, appId: config.appid, openId: this.openId, dayNum, dayTime, ...this.mpData}).then(res => {
+							this.getList()
+							this.popupShow = false
+						})
+					} else {
+						uni.showToast({
+							title: '今日已签!',
+							icon: 'error'
+						})
+					}
+				} else {
+					uni.showToast({
+						title: '数据获取失败!',
+						icon: 'error'
+					})
+				}
+			},
+			/** 看视频签到 */
+			lookVideo() {
+				this.signInHandle(true)
+			},
+		}
+	}
+</script>
+
+<style lang="scss">
+	page{
+		background-color: #FC6E53;
+	}
+	.sign {
+		position: relative;
+		&>.back {
+			width: 100%;
+			margin-top: 104rpx;
+		}
+		.signCenter {
+			position: absolute;
+			top: 0;
+			padding: 40rpx 0;
+			margin-bottom: 20rpx;
+			font-family: PingFangSC-Medium, PingFang SC;
+		}
+		.signTop {
+			padding: 0 28rpx;
+			height: 104rpx;
+			display: flex;
+			justify-content: space-between;
+			align-items: center;
+			.left{
+				display: flex;
+				justify-content: flex-start;
+				align-items: center;
+				.avatarView{
+					width: 104rpx;
+					height: 104rpx;
+					overflow: hidden;
+					border-radius: 10px;
+					.avatar {
+						width: 104rpx;
+						height: 104rpx;
+						background: #D8D8D8;
+					}
+				}
+				
+				
+				.userInfo{
+					margin-left: 28rpx;
+					&>view{
+						font-size: 28rpx;
+						font-weight: 400;
+						color: #FFFFFF;
+						
+						&.ID{
+							margin-top: 4rpx;
+						}
+					}
+				}
+			}
+			.right{
+				width: 212rpx;
+				height: 68rpx;
+				background-color: #FFFFFF;
+				border-radius: 40rpx;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+				&>image {
+					width: 28rpx;
+					height: 32rpx;
+				}
+				&>text {
+					font-size: 28rpx;
+					font-weight: 400;
+					color: #FD9C01;
+					margin-left: 18rpx;
+				}
+			}
+		}
+		
+		.signBottom{
+			margin: 0 14rpx;
+			margin-top: 216rpx;
+			width: 722rpx;
+		}
+		.exhibitionContent{
+			padding: 26rpx 26rpx 40rpx;
+			box-sizing: border-box;
+			background-color: #FFFFFF;
+			border-radius: 22rpx;
+			box-shadow: 0px 4rpx 8rpx 0rpx rgba(230, 230, 230, 0.5);
+			&>.ts {
+				font-size: 28rpx;
+				font-weight: 400;
+				color: #666666;
+			}
+			&>.signinExhibition {
+				margin-top: 18rpx;
+				display: flex;
+				justify-content: space-between;
+				flex-wrap: wrap;
+				
+				&>view{
+					width: 152rpx;
+					height: 168rpx;
+					background: #FFF7EF;
+					box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(254, 173, 165, 0.26);
+					border-radius: 16rpx;
+					border: 2rpx solid #FFB35C;
+					margin-bottom: 20rpx;
+					padding: 12rpx;
+					box-sizing: border-box;
+					display: flex;
+					flex-direction: column;
+					justify-content: flex-start;
+					align-items: center;
+					position: relative;
+					.day{
+						font-size: 24rpx;
+						font-weight: 500;
+						color: #FF9011;
+					}
+					&>.goldCoins {
+						height: 68rpx;
+						margin: 5rpx 0;
+					}
+					.reward{
+						font-size: 24rpx;
+						font-weight: 500;
+						color: #FE604F;
+					}
+					&:last-child{
+						width: 322rpx;
+						display: flex;
+						justify-content: space-between;
+						flex-direction: row;
+						&>.left {
+							display: flex;
+							flex-direction: column;
+							align-items: flex-start;
+							margin-left: 35rpx;
+							height: 100%;
+							flex: 1;
+							.reward{
+								margin-top: 28rpx;
+								font-size: 32rpx;
+								font-weight: 500;
+							}
+						}
+						&>.right {
+							width: 115rpx;
+							height: 100%;
+							display: flex;
+							justify-content: center;
+							align-items: center;
+							&>image{
+								width: 108rpx;
+								height: 128rpx;
+							}
+						}
+					}
+					// 已签到
+					&.select {
+						overflow: hidden;
+						border: 2rpx solid #D2D2D2;
+						background: #F2F2F2;
+						.day, .reward{
+							color: #999999;
+						}
+					}
+					.signSub {
+						position: absolute;
+						bottom: 0;
+						right: 0;
+						width: 72rpx;
+					}
+					// 看视频补签
+					&.repairSign {
+						position: relative;
+						.repair {
+							position: absolute;
+							width: calc(100% + 2rpx);
+							left: -1rpx;
+							top: -1rpx;
+							text-align: center;
+							line-height: 46rpx;
+							height: 46rpx;
+							background: #FE604F;
+							font-size: 24rpx;
+							font-weight: 500;
+							color: #FFFFFF;
+							border-radius: 16rpx 16rpx 0 0;
+						}
+					}
+				}
+			}
+		
+			&>.gignBt {
+				width: 456rpx;
+				height: 80rpx;
+				line-height: 80rpx;
+				text-align: center;
+				// background-color: #D8D8D8;
+				background: linear-gradient(180deg, #FDC606 0%, #FF8D12 100%);
+				box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(241, 139, 11, 0.61);
+				margin: 40rpx auto 0;
+				font-size: 32rpx;
+				font-weight: 500;
+				color: #FFFFFF;
+				border-radius: 40rpx;
+			}
+			
+			&>.already{
+				margin: 40rpx auto 0;
+				width: 456rpx;
+				height: 80rpx;
+				background: #D8D8D8;
+				border-radius: 40rpx;
+				font-size: 32rpx;
+				font-weight: 500;
+				color: #FFFFFF;
+				line-height: 80rpx;
+				text-align: center;
+			}
+		}
+		
+		.signRemind {
+			margin-top: 40rpx;
+			height: 92rpx;
+			background: rgba(255, 255, 255, 0.15);
+			border-radius: 20rpx;
+			line-height: 92rpx;
+			color: #FFFFFF;
+			font-size: 32rpx;
+			padding: 0 28rpx;
+			box-sizing: border-box;
+			display: flex;
+			font-weight: 400;
+			justify-content: space-between;
+			
+			.remindSwitch{
+				display: flex;
+				justify-content: flex-start;
+				align-items: center;
+				
+				&>view {
+					display: flex;
+					justify-content: flex-start;
+					align-items: center;
+					
+					&>text {
+						font-weight: 400;
+						font-size: 32rpx;
+						margin-left: 12rpx;
+					}
+					
+					&.open > .select {
+						width: 24rpx;
+						height: 24rpx;
+						background: #FFFFFF;
+						border-radius: 24rpx;
+					}
+					
+					&.close > .select {
+						width: 24rpx;
+						height: 24rpx;
+						border: 2rpx solid #FFFFFF;
+						box-sizing: border-box;
+						border-radius: 24rpx;
+					}
+					
+					&:first-child {
+						margin-right: 38rpx;
+					}
+				}
+			}
+		}
+		
+		.activityRules {
+			margin-top: 40rpx;
+			background: rgba(255, 255, 255, 0.15);
+			border-radius: 20rpx;
+			color: #FFFFFF;
+			font-size: 32rpx;
+			font-weight: 400;
+			&>.top {
+				height: 92rpx;
+				padding: 0 28rpx;
+				box-sizing: border-box;
+				display: flex;
+				justify-content: space-between;
+				align-items: center;
+				&>image {
+					width: 40rpx;
+				}
+			}
+			&>.bottom {
+				padding: 0 28rpx 30rpx;
+				box-sizing: border-box;
+				
+				&> view {
+					margin-bottom: 12rpx;
+					font-size: 28rpx;
+					font-weight: 400;
+					color: #FFFFFF;
+					line-height: 46rpx;
+				}
+			}
+		}
+		
+		
+		.popup {
+			position: fixed;
+			width: 100%;
+			height: 100vh;
+			background: rgba(0, 0, 0, 0.6);
+			top: 0;
+			left: 0;
+			right: 0;
+			bottom: 0;
+			.popupContent {
+				width: 632rpx;
+				
+				position: absolute;
+				top: 50%;
+				left: 50%;
+				transform: translate(-50%, -50%);
+				text-align: center;
+				&>.content {
+					position: relative;
+					&>image {
+						width: 100%;
+						height: 652rpx;
+					}
+					&>.textCon {
+						position: absolute;
+						width: 100%;
+						top: 0;
+						left: 0;
+						right: 0;
+						bottom: 0;
+						padding-top: 192rpx;
+						.ts {
+							font-size: 60rpx;
+							font-weight: 500;
+							color: #F5631D;
+						}
+						
+						.reward {
+							height: 60rpx;
+							background: #FFD9A2;
+							border-radius: 31rpx;
+							font-size: 32rpx;
+							font-weight: 400;
+							display: inline-block;
+							padding: 0 32rpx;
+							color: #F5631E;
+							line-height: 60rpx;
+							margin-top: 20rpx;
+						}
+						
+						.doubleBt {
+							width: 424rpx;
+							height: 84rpx;
+							margin-top: 114rpx;
+						}
+						
+						.bt {
+							margin-top: 14rpx;
+							font-size: 32rpx;
+							font-weight: 400;
+							color: #FCE8CD;
+						}
+					}
+				}
+				&>.close {
+					width: 54rpx;
+					height: 54rpx;
+					margin-top: 76rpx;
+				}
+			}
+		}
+	}
+</style>

+ 28 - 0
pages/officialAccount/officialAccount.vue

@@ -0,0 +1,28 @@
+<template>
+	<view>
+		<web-view :src="url"></web-view>
+	</view>
+</template>
+
+<script>
+	import { config, getUrl } from '@/api/api.js'
+	export default {
+		data() {
+			return {
+				url: ''
+			}
+		},
+		onLoad() {
+			getUrl().then(res => {
+				this.url = res.data
+			})
+		},
+		methods: {
+			
+		}
+	}
+</script>
+
+<style>
+
+</style>

BIN
static/avatar.jpg


BIN
static/clickVideo.png



BIN
static/doubleBt.png


BIN
static/giftBag.png


BIN
static/giftBagSelect.png



BIN
static/goldSelect.png



BIN
static/popupBack.png


BIN
static/retract.png


BIN
static/signRecord.png


BIN
static/signSub.png


BIN
static/sign_back.png


BIN
static/triangle.png


BIN
static/unfold.png


+ 76 - 0
uni.scss

@@ -0,0 +1,76 @@
+/**
+ * 这里是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:24rpx;
+$uni-font-size-base:28rpx;
+$uni-font-size-lg:32rpx;
+
+/* 图片尺寸 */
+$uni-img-size-sm:40rpx;
+$uni-img-size-base:52rpx;
+$uni-img-size-lg:80rpx;
+
+/* Border Radius */
+$uni-border-radius-sm: 4rpx;
+$uni-border-radius-base: 6rpx;
+$uni-border-radius-lg: 12rpx;
+$uni-border-radius-circle: 50%;
+
+/* 水平间距 */
+$uni-spacing-row-sm: 10px;
+$uni-spacing-row-base: 20rpx;
+$uni-spacing-row-lg: 30rpx;
+
+/* 垂直间距 */
+$uni-spacing-col-sm: 8rpx;
+$uni-spacing-col-base: 16rpx;
+$uni-spacing-col-lg: 24rpx;
+
+/* 透明度 */
+$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
+
+/* 文章场景相关 */
+$uni-color-title: #2C405A; // 文章标题颜色
+$uni-font-size-title:40rpx;
+$uni-color-subtitle: #555555; // 二级标题颜色
+$uni-font-size-subtitle:36rpx;
+$uni-color-paragraph: #3F536E; // 文章段落颜色
+$uni-font-size-paragraph:30rpx;

+ 0 - 0
unpackage/dist/dev/.automator/mp-weixin/.automator.json


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/checkInRecord/checkInRecord.js.map


+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/checkInRecord/index.js.map

@@ -0,0 +1 @@
+{"version":3,"sources":["uni-app:///main.js"],"names":["createPage","Page"],"mappings":";;;;;;;;;;kDAAA;AACA;AACA,oG;AACAA,UAAU,CAACC,cAAD,CAAV,C","file":"pages/checkInRecord/index.js","sourcesContent":["import 'uni-pages';\nimport Vue from 'vue'\nimport Page from './pages/checkInRecord/index.vue'\ncreatePage(Page)"],"sourceRoot":""}

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/officialAccount/officialAccount.js.map


+ 4 - 0
unpackage/dist/dev/mp-weixin/app.js

@@ -0,0 +1,4 @@
+
+require('./common/runtime.js')
+require('./common/vendor.js')
+require('./common/main.js')

+ 16 - 0
unpackage/dist/dev/mp-weixin/app.json

@@ -0,0 +1,16 @@
+{
+  "pages": [
+    "pages/index/index",
+    "pages/checkInRecord/checkInRecord",
+    "pages/officialAccount/officialAccount"
+  ],
+  "subPackages": [],
+  "window": {
+    "navigationBarTextStyle": "black",
+    "navigationBarTitleText": "签到有礼",
+    "navigationBarBackgroundColor": "#F8F8F8",
+    "backgroundColor": "#F8F8F8"
+  },
+  "usingComponents": {},
+  "sitemapLocation": "sitemap.json"
+}

+ 3 - 0
unpackage/dist/dev/mp-weixin/app.wxss

@@ -0,0 +1,3 @@
+@import './common/main.wxss';
+
+[data-custom-hidden="true"],[bind-data-custom-hidden="true"]{display: none !important;}

+ 131 - 0
unpackage/dist/dev/mp-weixin/common/main.js

@@ -0,0 +1,131 @@
+(global["webpackJsonp"] = global["webpackJsonp"] || []).push([["common/main"],[
+/* 0 */
+/*!*******************************************************************!*\
+  !*** C:/Users/77876/Documents/HBuilderProjects/qc-signIn/main.js ***!
+  \*******************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(createApp) {__webpack_require__(/*! uni-pages */ 4);var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 2));
+var _App = _interopRequireDefault(__webpack_require__(/*! ./App */ 5));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}function ownKeys(object, enumerableOnly) {var keys = Object.keys(object);if (Object.getOwnPropertySymbols) {var symbols = Object.getOwnPropertySymbols(object);if (enumerableOnly) symbols = symbols.filter(function (sym) {return Object.getOwnPropertyDescriptor(object, sym).enumerable;});keys.push.apply(keys, symbols);}return keys;}function _objectSpread(target) {for (var i = 1; i < arguments.length; i++) {var source = arguments[i] != null ? arguments[i] : {};if (i % 2) {ownKeys(Object(source), true).forEach(function (key) {_defineProperty(target, key, source[key]);});} else if (Object.getOwnPropertyDescriptors) {Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));} else {ownKeys(Object(source)).forEach(function (key) {Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));});}}return target;}function _defineProperty(obj, key, value) {if (key in obj) {Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });} else {obj[key] = value;}return obj;}
+
+_vue.default.config.productionTip = false;
+
+_App.default.mpType = 'app';
+
+var app = new _vue.default(_objectSpread({},
+_App.default));
+
+createApp(app).$mount();
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["createApp"]))
+
+/***/ }),
+/* 1 */,
+/* 2 */,
+/* 3 */,
+/* 4 */,
+/* 5 */
+/*!*******************************************************************!*\
+  !*** C:/Users/77876/Documents/HBuilderProjects/qc-signIn/App.vue ***!
+  \*******************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./App.vue?vue&type=script&lang=js& */ 6);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+/* harmony import */ var _App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./App.vue?vue&type=style&index=0&lang=css& */ 8);
+/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);
+var render, staticRenderFns, recyclableRender, components
+var renderjs
+
+
+
+
+
+/* normalize component */
+
+var component = Object(_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
+  _App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__["default"],
+  render,
+  staticRenderFns,
+  false,
+  null,
+  null,
+  null,
+  false,
+  components,
+  renderjs
+)
+
+component.options.__file = "App.vue"
+/* harmony default export */ __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+/* 6 */
+/*!********************************************************************************************!*\
+  !*** C:/Users/77876/Documents/HBuilderProjects/qc-signIn/App.vue?vue&type=script&lang=js& ***!
+  \********************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=script&lang=js& */ 7);
+/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+ /* harmony default export */ __webpack_exports__["default"] = (_D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); 
+
+/***/ }),
+/* 7 */
+/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/77876/Documents/HBuilderProjects/qc-signIn/App.vue?vue&type=script&lang=js& ***!
+  \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;var _default =
+{
+  onLaunch: function onLaunch() {
+    console.log('App Launch');
+  },
+  onShow: function onShow() {
+    console.log('App Show');
+  },
+  onHide: function onHide() {
+    console.log('App Hide');
+  } };exports.default = _default;
+
+/***/ }),
+/* 8 */
+/*!****************************************************************************************************!*\
+  !*** C:/Users/77876/Documents/HBuilderProjects/qc-signIn/App.vue?vue&type=style&index=0&lang=css& ***!
+  \****************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=style&index=0&lang=css& */ 9);
+/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+ /* harmony default export */ __webpack_exports__["default"] = (_D_HBuilderX_plugins_uniapp_cli_node_modules_mini_css_extract_plugin_dist_loader_js_ref_6_oneOf_1_0_D_HBuilderX_plugins_uniapp_cli_node_modules_css_loader_dist_cjs_js_ref_6_oneOf_1_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_stylePostLoader_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_6_oneOf_1_2_D_HBuilderX_plugins_uniapp_cli_node_modules_postcss_loader_src_index_js_ref_6_oneOf_1_3_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_App_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default.a); 
+
+/***/ }),
+/* 9 */
+/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--6-oneOf-1-2!./node_modules/postcss-loader/src??ref--6-oneOf-1-3!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/77876/Documents/HBuilderProjects/qc-signIn/App.vue?vue&type=style&index=0&lang=css& ***!
+  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+// extracted by mini-css-extract-plugin
+    if(false) { var cssReload; }
+  
+
+/***/ })
+],[[0,"common/runtime","common/vendor"]]]);
+//# sourceMappingURL=../../.sourcemap/mp-weixin/common/main.js.map

+ 17 - 0
unpackage/dist/dev/mp-weixin/common/main.wxss

@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/*每个页面公共css */
+

+ 158 - 0
unpackage/dist/dev/mp-weixin/common/runtime.js

@@ -0,0 +1,158 @@
+
+  !function(){try{var a=Function("return this")();a&&!a.Math&&(Object.assign(a,{isFinite:isFinite,Array:Array,Date:Date,Error:Error,Function:Function,Math:Math,Object:Object,RegExp:RegExp,String:String,TypeError:TypeError,setTimeout:setTimeout,clearTimeout:clearTimeout,setInterval:setInterval,clearInterval:clearInterval}),"undefined"!=typeof Reflect&&(a.Reflect=Reflect))}catch(a){}}();
+  /******/ (function(modules) { // webpackBootstrap
+/******/ 	// install a JSONP callback for chunk loading
+/******/ 	function webpackJsonpCallback(data) {
+/******/ 		var chunkIds = data[0];
+/******/ 		var moreModules = data[1];
+/******/ 		var executeModules = data[2];
+/******/
+/******/ 		// add "moreModules" to the modules object,
+/******/ 		// then flag all "chunkIds" as loaded and fire callback
+/******/ 		var moduleId, chunkId, i = 0, resolves = [];
+/******/ 		for(;i < chunkIds.length; i++) {
+/******/ 			chunkId = chunkIds[i];
+/******/ 			if(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {
+/******/ 				resolves.push(installedChunks[chunkId][0]);
+/******/ 			}
+/******/ 			installedChunks[chunkId] = 0;
+/******/ 		}
+/******/ 		for(moduleId in moreModules) {
+/******/ 			if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
+/******/ 				modules[moduleId] = moreModules[moduleId];
+/******/ 			}
+/******/ 		}
+/******/ 		if(parentJsonpFunction) parentJsonpFunction(data);
+/******/
+/******/ 		while(resolves.length) {
+/******/ 			resolves.shift()();
+/******/ 		}
+/******/
+/******/ 		// add entry modules from loaded chunk to deferred list
+/******/ 		deferredModules.push.apply(deferredModules, executeModules || []);
+/******/
+/******/ 		// run deferred modules when all chunks ready
+/******/ 		return checkDeferredModules();
+/******/ 	};
+/******/ 	function checkDeferredModules() {
+/******/ 		var result;
+/******/ 		for(var i = 0; i < deferredModules.length; i++) {
+/******/ 			var deferredModule = deferredModules[i];
+/******/ 			var fulfilled = true;
+/******/ 			for(var j = 1; j < deferredModule.length; j++) {
+/******/ 				var depId = deferredModule[j];
+/******/ 				if(installedChunks[depId] !== 0) fulfilled = false;
+/******/ 			}
+/******/ 			if(fulfilled) {
+/******/ 				deferredModules.splice(i--, 1);
+/******/ 				result = __webpack_require__(__webpack_require__.s = deferredModule[0]);
+/******/ 			}
+/******/ 		}
+/******/
+/******/ 		return result;
+/******/ 	}
+/******/
+/******/ 	// The module cache
+/******/ 	var installedModules = {};
+/******/
+/******/ 	// object to store loaded and loading chunks
+/******/ 	// undefined = chunk not loaded, null = chunk preloaded/prefetched
+/******/ 	// Promise = chunk loading, 0 = chunk loaded
+/******/ 	var installedChunks = {
+/******/ 		"common/runtime": 0
+/******/ 	};
+/******/
+/******/ 	var deferredModules = [];
+/******/
+/******/ 	// The require function
+/******/ 	function __webpack_require__(moduleId) {
+/******/
+/******/ 		// Check if module is in cache
+/******/ 		if(installedModules[moduleId]) {
+/******/ 			return installedModules[moduleId].exports;
+/******/ 		}
+/******/ 		// Create a new module (and put it into the cache)
+/******/ 		var module = installedModules[moduleId] = {
+/******/ 			i: moduleId,
+/******/ 			l: false,
+/******/ 			exports: {}
+/******/ 		};
+/******/
+/******/ 		// Execute the module function
+/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ 		// Flag the module as loaded
+/******/ 		module.l = true;
+/******/
+/******/ 		// Return the exports of the module
+/******/ 		return module.exports;
+/******/ 	}
+/******/
+/******/
+/******/ 	// expose the modules object (__webpack_modules__)
+/******/ 	__webpack_require__.m = modules;
+/******/
+/******/ 	// expose the module cache
+/******/ 	__webpack_require__.c = installedModules;
+/******/
+/******/ 	// define getter function for harmony exports
+/******/ 	__webpack_require__.d = function(exports, name, getter) {
+/******/ 		if(!__webpack_require__.o(exports, name)) {
+/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
+/******/ 		}
+/******/ 	};
+/******/
+/******/ 	// define __esModule on exports
+/******/ 	__webpack_require__.r = function(exports) {
+/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ 		}
+/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
+/******/ 	};
+/******/
+/******/ 	// create a fake namespace object
+/******/ 	// mode & 1: value is a module id, require it
+/******/ 	// mode & 2: merge all properties of value into the ns
+/******/ 	// mode & 4: return value when already ns object
+/******/ 	// mode & 8|1: behave like require
+/******/ 	__webpack_require__.t = function(value, mode) {
+/******/ 		if(mode & 1) value = __webpack_require__(value);
+/******/ 		if(mode & 8) return value;
+/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
+/******/ 		var ns = Object.create(null);
+/******/ 		__webpack_require__.r(ns);
+/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
+/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
+/******/ 		return ns;
+/******/ 	};
+/******/
+/******/ 	// getDefaultExport function for compatibility with non-harmony modules
+/******/ 	__webpack_require__.n = function(module) {
+/******/ 		var getter = module && module.__esModule ?
+/******/ 			function getDefault() { return module['default']; } :
+/******/ 			function getModuleExports() { return module; };
+/******/ 		__webpack_require__.d(getter, 'a', getter);
+/******/ 		return getter;
+/******/ 	};
+/******/
+/******/ 	// Object.prototype.hasOwnProperty.call
+/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ 	// __webpack_public_path__
+/******/ 	__webpack_require__.p = "/";
+/******/
+/******/ 	var jsonpArray = global["webpackJsonp"] = global["webpackJsonp"] || [];
+/******/ 	var oldJsonpFunction = jsonpArray.push.bind(jsonpArray);
+/******/ 	jsonpArray.push = webpackJsonpCallback;
+/******/ 	jsonpArray = jsonpArray.slice();
+/******/ 	for(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);
+/******/ 	var parentJsonpFunction = oldJsonpFunction;
+/******/
+/******/
+/******/ 	// run deferred modules from other chunks
+/******/ 	checkDeferredModules();
+/******/ })
+/************************************************************************/
+/******/ ([]);
+//# sourceMappingURL=../../.sourcemap/mp-weixin/common/runtime.js.map
+  

Разлика између датотеке није приказан због своје велике величине
+ 10 - 0
unpackage/dist/dev/mp-weixin/common/vendor.js


Разлика између датотеке није приказан због своје велике величине
+ 325 - 0
unpackage/dist/dev/mp-weixin/pages/checkInRecord/checkInRecord.js


+ 5 - 0
unpackage/dist/dev/mp-weixin/pages/checkInRecord/checkInRecord.json

@@ -0,0 +1,5 @@
+{
+  "navigationBarTitleText": "签到记录",
+  "enablePullDownRefresh": false,
+  "usingComponents": {}
+}

+ 1 - 0
unpackage/dist/dev/mp-weixin/pages/checkInRecord/checkInRecord.wxml

@@ -0,0 +1 @@
+<view class="checkInRecord"><view class="timeData"><picker mode="date" fields="month" data-event-opts="{{[['change',[['selectDataTime',['$event']]]]]}}" bindchange="__e"><block wx:if="{{isShowYeer}}"><view class="time" style="display:flex;align-items:center;"><text>{{$root.f0}}</text><image class="triangle" src="../../static/triangle.png" mode="widthFix"></image></view></block><block wx:else><view class="time"><text style="font-size:48rpx;margin-right:10rpx;">{{$root.f1}}</text><text>月</text><image class="triangle" src="../../static/triangle.png" mode="widthFix"></image></view></block></picker></view><scroll-view class="checkInList" scroll-y="true" lower-threshold="80" data-event-opts="{{[['scrolltolower',[['scrolltolower',['$event']]]]]}}" bindscrolltolower="__e"><block wx:for="{{$root.l0}}" wx:for-item="item" wx:for-index="__i0__" wx:key="id"><view class="item"><view class="left"><view class="title">{{item.$orig.describe}}</view><view class="data">{{item.f2}}</view></view><view class="right"><block wx:if="{{item.$orig.rechargeStatus===1}}"><text>已发放</text></block><block wx:else><view data-event-opts="{{[['tap',[['setAgainReceive',['$0'],[[['signList','id',item.$orig.id]]]]]]]}}" class="error" bindtap="__e">失败重领</view></block></view></view></block><block wx:if="{{this.total===this.signList.length}}"><view class="baseline">—— 我是有底线的 ——</view></block></scroll-view></view>

+ 107 - 0
unpackage/dist/dev/mp-weixin/pages/checkInRecord/checkInRecord.wxss

@@ -0,0 +1,107 @@
+@charset "UTF-8";
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+/* 颜色变量 */
+/* 行为相关颜色 */
+/* 文字基本颜色 */
+/* 背景颜色 */
+/* 边框颜色 */
+/* 尺寸变量 */
+/* 文字尺寸 */
+/* 图片尺寸 */
+/* Border Radius */
+/* 水平间距 */
+/* 垂直间距 */
+/* 透明度 */
+/* 文章场景相关 */
+.checkInRecord {
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: flex;
+  -webkit-box-orient: vertical;
+  -webkit-box-direction: normal;
+  -webkit-flex-direction: column;
+          flex-direction: column;
+  -webkit-box-pack: start;
+  -webkit-justify-content: flex-start;
+          justify-content: flex-start;
+  width: 100%;
+  height: 100vh;
+}
+.timeData {
+  width: 100%;
+  height: 104rpx;
+  line-height: 104rpx;
+  padding: 0 30rpx;
+  box-sizing: border-box;
+  border-bottom: 1rpx solid #efefef;
+}
+.time {
+  font-size: 24rpx;
+}
+.time .triangle {
+  margin-left: 5rpx;
+  width: 15rpx;
+  height: 10rpx;
+}
+.checkInList {
+  height: calc(100vh - 100rpx);
+  padding-bottom: 40rpx;
+  box-sizing: border-box;
+  overflow: hidden;
+}
+.checkInList .item {
+  padding: 10rpx 0;
+  margin: 0 30rpx;
+  border-bottom: 1rpx solid #efefef;
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: flex;
+  -webkit-box-pack: justify;
+  -webkit-justify-content: space-between;
+          justify-content: space-between;
+  -webkit-box-align: center;
+  -webkit-align-items: center;
+          align-items: center;
+}
+.checkInList .title {
+  font-size: 28rpx;
+  font-weight: 500;
+  color: #000000;
+}
+.checkInList .data {
+  font-size: 24rpx;
+  margin-top: 8rpx;
+  color: #808080;
+}
+.checkInList .right > text {
+  font-size: 28rpx;
+}
+.checkInList .right .error {
+  font-size: 24rpx;
+  background-color: #FC6E53;
+  width: 140rpx;
+  height: 55rpx;
+  box-sizing: border-box;
+  color: #FFFFFF;
+  text-align: center;
+  line-height: 55rpx;
+  border-radius: 30rpx;
+}
+.baseline {
+  text-align: center;
+  padding: 30rpx 0;
+  font-size: 24rpx;
+  color: #999999;
+}
+

Разлика између датотеке није приказан због своје велике величине
+ 257 - 0
unpackage/dist/dev/mp-weixin/pages/index/index.js


+ 5 - 0
unpackage/dist/dev/mp-weixin/pages/index/index.json

@@ -0,0 +1,5 @@
+{
+  "navigationStyle": "default",
+  "navigationBarTitleText": "签到有礼",
+  "usingComponents": {}
+}

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
unpackage/dist/dev/mp-weixin/pages/index/index.wxml


+ 456 - 0
unpackage/dist/dev/mp-weixin/pages/index/index.wxss

@@ -0,0 +1,456 @@
+@charset "UTF-8";
+/**
+ * 这里是uni-app内置的常用样式变量
+ *
+ * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
+ * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
+ *
+ */
+/**
+ * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
+ *
+ * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
+ */
+/* 颜色变量 */
+/* 行为相关颜色 */
+/* 文字基本颜色 */
+/* 背景颜色 */
+/* 边框颜色 */
+/* 尺寸变量 */
+/* 文字尺寸 */
+/* 图片尺寸 */
+/* Border Radius */
+/* 水平间距 */
+/* 垂直间距 */
+/* 透明度 */
+/* 文章场景相关 */
+page {
+  background-color: #FC6E53;
+}
+.sign {
+  position: relative;
+}
+.sign > .back {
+  width: 100%;
+  margin-top: 104rpx;
+}
+.sign .signCenter {
+  position: absolute;
+  top: 0;
+  padding: 40rpx 0;
+  margin-bottom: 20rpx;
+  font-family: PingFangSC-Medium, PingFang SC;
+}
+.sign .signTop {
+  padding: 0 28rpx;
+  height: 104rpx;
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: flex;
+  -webkit-box-pack: justify;
+  -webkit-justify-content: space-between;
+          justify-content: space-between;
+  -webkit-box-align: center;
+  -webkit-align-items: center;
+          align-items: center;
+}
+.sign .signTop .left {
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: flex;
+  -webkit-box-pack: start;
+  -webkit-justify-content: flex-start;
+          justify-content: flex-start;
+  -webkit-box-align: center;
+  -webkit-align-items: center;
+          align-items: center;
+}
+.sign .signTop .left .avatarView {
+  width: 104rpx;
+  height: 104rpx;
+  overflow: hidden;
+  border-radius: 10px;
+}
+.sign .signTop .left .avatarView .avatar {
+  width: 104rpx;
+  height: 104rpx;
+  background: #D8D8D8;
+}
+.sign .signTop .left .userInfo {
+  margin-left: 28rpx;
+}
+.sign .signTop .left .userInfo > view {
+  font-size: 28rpx;
+  font-weight: 400;
+  color: #FFFFFF;
+}
+.sign .signTop .left .userInfo > view.ID {
+  margin-top: 4rpx;
+}
+.sign .signTop .right {
+  width: 212rpx;
+  height: 68rpx;
+  background-color: #FFFFFF;
+  border-radius: 40rpx;
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: flex;
+  -webkit-box-pack: center;
+  -webkit-justify-content: center;
+          justify-content: center;
+  -webkit-box-align: center;
+  -webkit-align-items: center;
+          align-items: center;
+}
+.sign .signTop .right > image {
+  width: 28rpx;
+  height: 32rpx;
+}
+.sign .signTop .right > text {
+  font-size: 28rpx;
+  font-weight: 400;
+  color: #FD9C01;
+  margin-left: 18rpx;
+}
+.sign .signBottom {
+  margin: 0 14rpx;
+  margin-top: 216rpx;
+  width: 722rpx;
+}
+.sign .exhibitionContent {
+  padding: 26rpx 26rpx 40rpx;
+  box-sizing: border-box;
+  background-color: #FFFFFF;
+  border-radius: 22rpx;
+  box-shadow: 0px 4rpx 8rpx 0rpx rgba(230, 230, 230, 0.5);
+}
+.sign .exhibitionContent > .ts {
+  font-size: 28rpx;
+  font-weight: 400;
+  color: #666666;
+}
+.sign .exhibitionContent > .signinExhibition {
+  margin-top: 18rpx;
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: flex;
+  -webkit-box-pack: justify;
+  -webkit-justify-content: space-between;
+          justify-content: space-between;
+  -webkit-flex-wrap: wrap;
+          flex-wrap: wrap;
+}
+.sign .exhibitionContent > .signinExhibition > view {
+  width: 152rpx;
+  height: 168rpx;
+  background: #FFF7EF;
+  box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(254, 173, 165, 0.26);
+  border-radius: 16rpx;
+  border: 2rpx solid #FFB35C;
+  margin-bottom: 20rpx;
+  padding: 12rpx;
+  box-sizing: border-box;
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: flex;
+  -webkit-box-orient: vertical;
+  -webkit-box-direction: normal;
+  -webkit-flex-direction: column;
+          flex-direction: column;
+  -webkit-box-pack: start;
+  -webkit-justify-content: flex-start;
+          justify-content: flex-start;
+  -webkit-box-align: center;
+  -webkit-align-items: center;
+          align-items: center;
+  position: relative;
+}
+.sign .exhibitionContent > .signinExhibition > view .day {
+  font-size: 24rpx;
+  font-weight: 500;
+  color: #FF9011;
+}
+.sign .exhibitionContent > .signinExhibition > view > .goldCoins {
+  height: 68rpx;
+  margin: 5rpx 0;
+}
+.sign .exhibitionContent > .signinExhibition > view .reward {
+  font-size: 24rpx;
+  font-weight: 500;
+  color: #FE604F;
+}
+.sign .exhibitionContent > .signinExhibition > view:last-child {
+  width: 322rpx;
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: flex;
+  -webkit-box-pack: justify;
+  -webkit-justify-content: space-between;
+          justify-content: space-between;
+  -webkit-box-orient: horizontal;
+  -webkit-box-direction: normal;
+  -webkit-flex-direction: row;
+          flex-direction: row;
+}
+.sign .exhibitionContent > .signinExhibition > view:last-child > .left {
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: flex;
+  -webkit-box-orient: vertical;
+  -webkit-box-direction: normal;
+  -webkit-flex-direction: column;
+          flex-direction: column;
+  -webkit-box-align: start;
+  -webkit-align-items: flex-start;
+          align-items: flex-start;
+  margin-left: 35rpx;
+  height: 100%;
+  -webkit-box-flex: 1;
+  -webkit-flex: 1;
+          flex: 1;
+}
+.sign .exhibitionContent > .signinExhibition > view:last-child > .left .reward {
+  margin-top: 28rpx;
+  font-size: 32rpx;
+  font-weight: 500;
+}
+.sign .exhibitionContent > .signinExhibition > view:last-child > .right {
+  width: 115rpx;
+  height: 100%;
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: flex;
+  -webkit-box-pack: center;
+  -webkit-justify-content: center;
+          justify-content: center;
+  -webkit-box-align: center;
+  -webkit-align-items: center;
+          align-items: center;
+}
+.sign .exhibitionContent > .signinExhibition > view:last-child > .right > image {
+  width: 108rpx;
+  height: 128rpx;
+}
+.sign .exhibitionContent > .signinExhibition > view.select {
+  overflow: hidden;
+  border: 2rpx solid #D2D2D2;
+  background: #F2F2F2;
+}
+.sign .exhibitionContent > .signinExhibition > view.select .day, .sign .exhibitionContent > .signinExhibition > view.select .reward {
+  color: #999999;
+}
+.sign .exhibitionContent > .signinExhibition > view .signSub {
+  position: absolute;
+  bottom: 0;
+  right: 0;
+  width: 72rpx;
+}
+.sign .exhibitionContent > .signinExhibition > view.repairSign {
+  position: relative;
+}
+.sign .exhibitionContent > .signinExhibition > view.repairSign .repair {
+  position: absolute;
+  width: calc(100% + 2rpx);
+  left: -1rpx;
+  top: -1rpx;
+  text-align: center;
+  line-height: 46rpx;
+  height: 46rpx;
+  background: #FE604F;
+  font-size: 24rpx;
+  font-weight: 500;
+  color: #FFFFFF;
+  border-radius: 16rpx 16rpx 0 0;
+}
+.sign .exhibitionContent > .gignBt {
+  width: 456rpx;
+  height: 80rpx;
+  line-height: 80rpx;
+  text-align: center;
+  background: -webkit-linear-gradient(top, #FDC606 0%, #FF8D12 100%);
+  background: linear-gradient(180deg, #FDC606 0%, #FF8D12 100%);
+  box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(241, 139, 11, 0.61);
+  margin: 40rpx auto 0;
+  font-size: 32rpx;
+  font-weight: 500;
+  color: #FFFFFF;
+  border-radius: 40rpx;
+}
+.sign .exhibitionContent > .already {
+  margin: 40rpx auto 0;
+  width: 456rpx;
+  height: 80rpx;
+  background: #D8D8D8;
+  border-radius: 40rpx;
+  font-size: 32rpx;
+  font-weight: 500;
+  color: #FFFFFF;
+  line-height: 80rpx;
+  text-align: center;
+}
+.sign .signRemind {
+  margin-top: 40rpx;
+  height: 92rpx;
+  background: rgba(255, 255, 255, 0.15);
+  border-radius: 20rpx;
+  line-height: 92rpx;
+  color: #FFFFFF;
+  font-size: 32rpx;
+  padding: 0 28rpx;
+  box-sizing: border-box;
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: flex;
+  font-weight: 400;
+  -webkit-box-pack: justify;
+  -webkit-justify-content: space-between;
+          justify-content: space-between;
+}
+.sign .signRemind .remindSwitch {
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: flex;
+  -webkit-box-pack: start;
+  -webkit-justify-content: flex-start;
+          justify-content: flex-start;
+  -webkit-box-align: center;
+  -webkit-align-items: center;
+          align-items: center;
+}
+.sign .signRemind .remindSwitch > view {
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: flex;
+  -webkit-box-pack: start;
+  -webkit-justify-content: flex-start;
+          justify-content: flex-start;
+  -webkit-box-align: center;
+  -webkit-align-items: center;
+          align-items: center;
+}
+.sign .signRemind .remindSwitch > view > text {
+  font-weight: 400;
+  font-size: 32rpx;
+  margin-left: 12rpx;
+}
+.sign .signRemind .remindSwitch > view.open > .select {
+  width: 24rpx;
+  height: 24rpx;
+  background: #FFFFFF;
+  border-radius: 24rpx;
+}
+.sign .signRemind .remindSwitch > view.close > .select {
+  width: 24rpx;
+  height: 24rpx;
+  border: 2rpx solid #FFFFFF;
+  box-sizing: border-box;
+  border-radius: 24rpx;
+}
+.sign .signRemind .remindSwitch > view:first-child {
+  margin-right: 38rpx;
+}
+.sign .activityRules {
+  margin-top: 40rpx;
+  background: rgba(255, 255, 255, 0.15);
+  border-radius: 20rpx;
+  color: #FFFFFF;
+  font-size: 32rpx;
+  font-weight: 400;
+}
+.sign .activityRules > .top {
+  height: 92rpx;
+  padding: 0 28rpx;
+  box-sizing: border-box;
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: flex;
+  -webkit-box-pack: justify;
+  -webkit-justify-content: space-between;
+          justify-content: space-between;
+  -webkit-box-align: center;
+  -webkit-align-items: center;
+          align-items: center;
+}
+.sign .activityRules > .top > image {
+  width: 40rpx;
+}
+.sign .activityRules > .bottom {
+  padding: 0 28rpx 30rpx;
+  box-sizing: border-box;
+}
+.sign .activityRules > .bottom > view {
+  margin-bottom: 12rpx;
+  font-size: 28rpx;
+  font-weight: 400;
+  color: #FFFFFF;
+  line-height: 46rpx;
+}
+.sign .popup {
+  position: fixed;
+  width: 100%;
+  height: 100vh;
+  background: rgba(0, 0, 0, 0.6);
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+}
+.sign .popup .popupContent {
+  width: 632rpx;
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  -webkit-transform: translate(-50%, -50%);
+          transform: translate(-50%, -50%);
+  text-align: center;
+}
+.sign .popup .popupContent > .content {
+  position: relative;
+}
+.sign .popup .popupContent > .content > image {
+  width: 100%;
+  height: 652rpx;
+}
+.sign .popup .popupContent > .content > .textCon {
+  position: absolute;
+  width: 100%;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  padding-top: 192rpx;
+}
+.sign .popup .popupContent > .content > .textCon .ts {
+  font-size: 60rpx;
+  font-weight: 500;
+  color: #F5631D;
+}
+.sign .popup .popupContent > .content > .textCon .reward {
+  height: 60rpx;
+  background: #FFD9A2;
+  border-radius: 31rpx;
+  font-size: 32rpx;
+  font-weight: 400;
+  display: inline-block;
+  padding: 0 32rpx;
+  color: #F5631E;
+  line-height: 60rpx;
+  margin-top: 20rpx;
+}
+.sign .popup .popupContent > .content > .textCon .doubleBt {
+  width: 424rpx;
+  height: 84rpx;
+  margin-top: 114rpx;
+}
+.sign .popup .popupContent > .content > .textCon .bt {
+  margin-top: 14rpx;
+  font-size: 32rpx;
+  font-weight: 400;
+  color: #FCE8CD;
+}
+.sign .popup .popupContent > .close {
+  width: 54rpx;
+  height: 54rpx;
+  margin-top: 76rpx;
+}
+

+ 155 - 0
unpackage/dist/dev/mp-weixin/pages/officialAccount/officialAccount.js

@@ -0,0 +1,155 @@
+(global["webpackJsonp"] = global["webpackJsonp"] || []).push([["pages/officialAccount/officialAccount"],{
+
+/***/ 32:
+/*!************************************************************************************************************************!*\
+  !*** C:/Users/77876/Documents/HBuilderProjects/qc-signIn/main.js?{"page":"pages%2FofficialAccount%2FofficialAccount"} ***!
+  \************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(createPage) {__webpack_require__(/*! uni-pages */ 4);
+var _vue = _interopRequireDefault(__webpack_require__(/*! vue */ 2));
+var _officialAccount = _interopRequireDefault(__webpack_require__(/*! ./pages/officialAccount/officialAccount.vue */ 33));function _interopRequireDefault(obj) {return obj && obj.__esModule ? obj : { default: obj };}
+createPage(_officialAccount.default);
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./node_modules/@dcloudio/uni-mp-weixin/dist/index.js */ 1)["createPage"]))
+
+/***/ }),
+
+/***/ 33:
+/*!*****************************************************************************************************!*\
+  !*** C:/Users/77876/Documents/HBuilderProjects/qc-signIn/pages/officialAccount/officialAccount.vue ***!
+  \*****************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _officialAccount_vue_vue_type_template_id_094e718c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./officialAccount.vue?vue&type=template&id=094e718c& */ 34);
+/* harmony import */ var _officialAccount_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./officialAccount.vue?vue&type=script&lang=js& */ 36);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _officialAccount_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _officialAccount_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js */ 10);
+
+var renderjs
+
+
+
+
+/* normalize component */
+
+var component = Object(_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])(
+  _officialAccount_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__["default"],
+  _officialAccount_vue_vue_type_template_id_094e718c___WEBPACK_IMPORTED_MODULE_0__["render"],
+  _officialAccount_vue_vue_type_template_id_094e718c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"],
+  false,
+  null,
+  null,
+  null,
+  false,
+  _officialAccount_vue_vue_type_template_id_094e718c___WEBPACK_IMPORTED_MODULE_0__["components"],
+  renderjs
+)
+
+component.options.__file = "pages/officialAccount/officialAccount.vue"
+/* harmony default export */ __webpack_exports__["default"] = (component.exports);
+
+/***/ }),
+
+/***/ 34:
+/*!************************************************************************************************************************************!*\
+  !*** C:/Users/77876/Documents/HBuilderProjects/qc-signIn/pages/officialAccount/officialAccount.vue?vue&type=template&id=094e718c& ***!
+  \************************************************************************************************************************************/
+/*! exports provided: render, staticRenderFns, recyclableRender, components */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_officialAccount_vue_vue_type_template_id_094e718c___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./officialAccount.vue?vue&type=template&id=094e718c& */ 35);
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "render", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_officialAccount_vue_vue_type_template_id_094e718c___WEBPACK_IMPORTED_MODULE_0__["render"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_officialAccount_vue_vue_type_template_id_094e718c___WEBPACK_IMPORTED_MODULE_0__["staticRenderFns"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_officialAccount_vue_vue_type_template_id_094e718c___WEBPACK_IMPORTED_MODULE_0__["recyclableRender"]; });
+
+/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "components", function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_loaders_templateLoader_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_16_0_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_template_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_uni_app_loader_page_meta_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_officialAccount_vue_vue_type_template_id_094e718c___WEBPACK_IMPORTED_MODULE_0__["components"]; });
+
+
+
+/***/ }),
+
+/***/ 35:
+/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/77876/Documents/HBuilderProjects/qc-signIn/pages/officialAccount/officialAccount.vue?vue&type=template&id=094e718c& ***!
+  \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! exports provided: render, staticRenderFns, recyclableRender, components */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "render", function() { return render; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "staticRenderFns", function() { return staticRenderFns; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recyclableRender", function() { return recyclableRender; });
+/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "components", function() { return components; });
+var components
+var render = function() {
+  var _vm = this
+  var _h = _vm.$createElement
+  var _c = _vm._self._c || _h
+}
+var recyclableRender = false
+var staticRenderFns = []
+render._withStripped = true
+
+
+
+/***/ }),
+
+/***/ 36:
+/*!******************************************************************************************************************************!*\
+  !*** C:/Users/77876/Documents/HBuilderProjects/qc-signIn/pages/officialAccount/officialAccount.vue?vue&type=script&lang=js& ***!
+  \******************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, __webpack_exports__, __webpack_require__) {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_officialAccount_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./officialAccount.vue?vue&type=script&lang=js& */ 37);
+/* harmony import */ var _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_officialAccount_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_officialAccount_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__);
+/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_officialAccount_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== 'default') (function(key) { __webpack_require__.d(__webpack_exports__, key, function() { return _D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_officialAccount_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__[key]; }) }(__WEBPACK_IMPORT_KEY__));
+ /* harmony default export */ __webpack_exports__["default"] = (_D_HBuilderX_plugins_uniapp_cli_node_modules_babel_loader_lib_index_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_webpack_preprocess_loader_index_js_ref_12_1_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_script_js_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_vue_cli_plugin_uni_packages_vue_loader_lib_index_js_vue_loader_options_D_HBuilderX_plugins_uniapp_cli_node_modules_dcloudio_webpack_uni_mp_loader_lib_style_js_officialAccount_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default.a); 
+
+/***/ }),
+
+/***/ 37:
+/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+  !*** ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--12-1!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!C:/Users/77876/Documents/HBuilderProjects/qc-signIn/pages/officialAccount/officialAccount.vue?vue&type=script&lang=js& ***!
+  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/*! no static exports found */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });exports.default = void 0;
+
+
+
+
+
+
+var _api = __webpack_require__(/*! @/api/api.js */ 20); //
+//
+//
+//
+//
+//
+var _default = { data: function data() {return { url: '' };},
+  onLoad: function onLoad() {var _this = this;
+    (0, _api.getUrl)().then(function (res) {
+      _this.url = res.data;
+    });
+  },
+  methods: {} };exports.default = _default;
+
+/***/ })
+
+},[[32,"common/runtime","common/vendor"]]]);
+//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/officialAccount/officialAccount.js.map

+ 5 - 0
unpackage/dist/dev/mp-weixin/pages/officialAccount/officialAccount.json

@@ -0,0 +1,5 @@
+{
+  "navigationBarTitleText": "关注公众号",
+  "enablePullDownRefresh": false,
+  "usingComponents": {}
+}

+ 1 - 0
unpackage/dist/dev/mp-weixin/pages/officialAccount/officialAccount.wxml

@@ -0,0 +1 @@
+<view><web-view src="{{url}}"></web-view></view>

+ 32 - 0
unpackage/dist/dev/mp-weixin/project.config.json

@@ -0,0 +1,32 @@
+{
+  "description": "项目配置文件。",
+  "packOptions": {
+    "ignore": []
+  },
+  "setting": {
+    "urlCheck": false,
+    "es6": true
+  },
+  "compileType": "miniprogram",
+  "libVersion": "",
+  "appid": "wxb21c3e030b8af425",
+  "projectname": "qc-signIn",
+  "condition": {
+    "search": {
+      "current": -1,
+      "list": []
+    },
+    "conversation": {
+      "current": -1,
+      "list": []
+    },
+    "game": {
+      "current": -1,
+      "list": []
+    },
+    "miniprogram": {
+      "current": -1,
+      "list": []
+    }
+  }
+}

+ 24 - 0
unpackage/dist/dev/mp-weixin/project.private.config.json

@@ -0,0 +1,24 @@
+{
+  "setting": {},
+  "condition": {
+    "plugin": {
+      "list": []
+    },
+    "game": {
+      "list": []
+    },
+    "gamePlugin": {
+      "list": []
+    },
+    "miniprogram": {
+      "list": [
+        {
+          "name": "pages/index/index",
+          "pathName": "pages/index/index",
+          "query": "mpOpenId=oNiRk1jTyzYx6zza8lklpQG_Ei-M&mpAppId=wx91208c6c8651a97d&mpName=脑瓜崩阅读",
+          "scene": null
+        }
+      ]
+    }
+  }
+}

+ 7 - 0
unpackage/dist/dev/mp-weixin/sitemap.json

@@ -0,0 +1,7 @@
+{
+  "desc": "关于本文件的更多信息,请参考文档 https://developers.weixin.qq.com/miniprogram/dev/framework/sitemap.html",
+  "rules": [{
+  "action": "allow",
+  "page": "*"
+  }]
+}

BIN
unpackage/dist/dev/mp-weixin/static/avatar.jpg


BIN
unpackage/dist/dev/mp-weixin/static/clickVideo.png


BIN
unpackage/dist/dev/mp-weixin/static/close.png


BIN
unpackage/dist/dev/mp-weixin/static/doubleBt.png


BIN
unpackage/dist/dev/mp-weixin/static/giftBag.png


BIN
unpackage/dist/dev/mp-weixin/static/giftBagSelect.png


BIN
unpackage/dist/dev/mp-weixin/static/gold.png


BIN
unpackage/dist/dev/mp-weixin/static/goldSelect.png


BIN
unpackage/dist/dev/mp-weixin/static/logo.png


BIN
unpackage/dist/dev/mp-weixin/static/popupBack.png


BIN
unpackage/dist/dev/mp-weixin/static/retract.png


BIN
unpackage/dist/dev/mp-weixin/static/signRecord.png


BIN
unpackage/dist/dev/mp-weixin/static/signSub.png


BIN
unpackage/dist/dev/mp-weixin/static/sign_back.png


BIN
unpackage/dist/dev/mp-weixin/static/triangle.png


BIN
unpackage/dist/dev/mp-weixin/static/unfold.png


+ 81 - 0
utils/request.js

@@ -0,0 +1,81 @@
+let apiUrl = 'https://test.api.zanxiangnet.com/miniapp'
+
+
+
+let isopen = false  // 控制loading
+const openLoading = () => {
+    if (!isopen) {
+        isopen = true
+        uni.showLoading({
+            title: '加载中'
+        });
+    }
+}
+const hiddenLoading = () => {
+    isopen = false
+    uni.hideLoading()
+}
+/**
+ * 
+ */
+// interface Props {
+//     url: string,
+//     data?: any,
+//     config?: {
+//         header?: any,
+//         method?: "OPTIONS" | "GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "TRACE" | "CONNECT",
+//         responseType?: "text" | "arraybuffer"
+//     },
+//     backspace?: boolean, // 是否返回上一页 默认否
+//     isLoading?: boolean,  // 是否展示loading
+//     isToast?: boolean  // 是否提示
+// }
+export function request(props) {
+	let {
+		url,
+		data,
+		config,
+		method,
+		backspace = false,
+		isLoading = true,
+		isToast = true
+	} = props
+	let _loading = false
+	let reqTimer = null
+	if (isLoading) {
+		reqTimer = setTimeout(() => {
+			openLoading()
+			_loading = true
+		}, 500)
+	}
+	return new Promise((resolve, reject) => {
+		uni.request({
+			url: `${apiUrl}${url}`,
+			data,
+			method: method || 'GET',
+			success: (res) => {
+				console.log("请求返回数据---》", res)
+				reqTimer && clearTimeout(reqTimer)
+				if (_loading) {
+					hiddenLoading()
+				}
+				if (res.data.code === 500) {
+					uni.showToast({
+					    title: res.data.msg || `${apiUrl}${url}请求错误`,
+						icon: 'none',
+					    duration: 2000
+					})
+					return
+				}
+				resolve(res.data)
+			},
+			fail: (err) => {
+				reqTimer && clearTimeout(reqTimer)
+				if (_loading) {
+					hiddenLoading()
+				}
+				reject(`${url}接口调用失败${err}`)
+			}
+		})
+	})
+}

Неке датотеке нису приказане због велике количине промена