cmy il y a 2 ans
Parent
commit
3c12f76c0d
67 fichiers modifiés avec 1671 ajouts et 184 suppressions
  1. 3 0
      .gitignore
  2. 41 4
      api/apply.js
  3. 7 1
      manifest.json
  4. BIN
      myjtp.rar
  5. 12 0
      node_modules/.package-lock.json
  6. 30 0
      node_modules/jweixin-module/README.md
  7. 0 0
      node_modules/jweixin-module/lib/index.js
  8. 56 0
      node_modules/jweixin-module/package.json
  9. 4 0
      node_modules/qrcodejs2/.npmignore
  10. 14 0
      node_modules/qrcodejs2/LICENSE
  11. 43 0
      node_modules/qrcodejs2/README.md
  12. 18 0
      node_modules/qrcodejs2/bower.json
  13. 47 0
      node_modules/qrcodejs2/index-svg.html
  14. 44 0
      node_modules/qrcodejs2/index.html
  15. 37 0
      node_modules/qrcodejs2/index.svg
  16. 1 0
      node_modules/qrcodejs2/jquery.min.js
  17. 50 0
      node_modules/qrcodejs2/package.json
  18. 156 0
      node_modules/qrcodejs2/qrcode.js
  19. 0 0
      node_modules/qrcodejs2/qrcode.min.js
  20. 16 0
      package-lock.json
  21. 6 0
      package.json
  22. 18 15
      pages.json
  23. 86 80
      pages/apply/choose.vue
  24. 434 0
      pages/apply/information.vue
  25. 94 0
      pages/apply/qrcode.vue
  26. 11 5
      pages/apply/query.vue
  27. 152 75
      pages/apply/success.vue
  28. 256 0
      pages/apply/verification.vue
  29. BIN
      static/img/92x.png
  30. BIN
      static/img/alertbg2.png
  31. BIN
      static/img/alertbg3.png
  32. BIN
      static/img/apply.png
  33. BIN
      static/img/bp1.png
  34. BIN
      static/img/bp2.png
  35. BIN
      static/img/cm.png
  36. BIN
      static/img/logo.png
  37. BIN
      static/img/s1.jpg
  38. BIN
      static/img/userAllb.png
  39. BIN
      static/img/userb.png
  40. BIN
      static/img/verification.png
  41. 0 1
      store/index.js
  42. 6 0
      store/model/user.js
  43. BIN
      unpackage/dist.zip
  44. BIN
      unpackage/dist/build/h5/h5.rar
  45. 1 1
      unpackage/dist/build/h5/index.html
  46. BIN
      unpackage/dist/build/h5/static/img/img02.a56a0368.jpg
  47. BIN
      unpackage/dist/build/h5/static/img/img02.jpg
  48. BIN
      unpackage/dist/build/h5/static/img/img02.png
  49. 0 0
      unpackage/dist/build/h5/static/js/index.575034fb.js
  50. 0 0
      unpackage/dist/build/h5/static/js/pages-activity-index.aa05f91f.js
  51. 0 0
      unpackage/dist/build/h5/static/js/pages-activity-userInfo.867e66a7.js
  52. 0 0
      unpackage/dist/build/h5/static/js/pages-activity-userInfo~pages-addTp-company~pages-addTp-user~pages-index.71a855c7.js
  53. 0 0
      unpackage/dist/build/h5/static/js/pages-activity-userInfo~pages-addTp-company~pages-addTp-user~pages-index~pages-recharge-pay.66c91ae3.js
  54. 0 0
      unpackage/dist/build/h5/static/js/pages-addTp-company.0197a6e8.js
  55. 0 0
      unpackage/dist/build/h5/static/js/pages-addTp-company~pages-addTp-user.f358bee2.js
  56. 0 0
      unpackage/dist/build/h5/static/js/pages-addTp-company~pages-addTp-user~pages-recharge-pay.b58bec58.js
  57. 0 0
      unpackage/dist/build/h5/static/js/pages-addTp-user.019d6a86.js
  58. 0 0
      unpackage/dist/build/h5/static/js/pages-index.86e8d209.js
  59. 0 0
      unpackage/dist/build/h5/static/js/pages-public-forget.741dde1b.js
  60. 0 0
      unpackage/dist/build/h5/static/js/pages-public-login.af7772e9.js
  61. 0 0
      unpackage/dist/build/h5/static/js/pages-public-register.4cef4024.js
  62. 0 0
      unpackage/dist/build/h5/static/js/pages-public-wxLogin.d57e4c0c.js
  63. 0 0
      unpackage/dist/build/h5/static/js/pages-recharge-pay.e374285e.js
  64. 0 0
      unpackage/dist/build/h5/static/js/pages-redirect-redirect.8320eebf.js
  65. 2 2
      utils/newRequest.js
  66. 26 0
      utils/wxAuthorized.js
  67. BIN
      uview-ui.rar

+ 3 - 0
.gitignore

@@ -0,0 +1,3 @@
+unpackage/debug
+unpackage/dist
+unpackage/resources

+ 41 - 4
api/apply.js

@@ -1,9 +1,10 @@
 import request from '@/utils/request'
+import {upFilse} from '@/utils/request'
 
 // 查询会员
 export function query(data,type) {
 	return request({
-		url: '/member/get/'+type,
+		url: '/api/member/get/'+type,
 		method: 'get',
 		data
 	});
@@ -11,7 +12,7 @@ export function query(data,type) {
 // 申请
 export function apply(data,type) {
 	return request({
-		url: '/member/apply/'+type,
+		url: '/api/member/apply/'+type,
 		method: 'post',
 		data
 	});
@@ -19,8 +20,44 @@ export function apply(data,type) {
 // 会员价格
 export function getPrice(data,type) {
 	return request({
-		url: '/member/config/'+type,
+		url: '/api/member/config/'+type,
 		method: 'get',
 		data
 	});
-}
+}
+
+//上传图片
+export function uploads(data) {
+	return upFilse({
+		url: '/api/upload/image',
+		method: 'post',
+		data
+	});
+}
+
+// 
+export function getIndex(data) {
+	return request({
+		url: '/api/index',
+		method: 'get',
+		data
+	});
+}
+// 核销码列表
+export function getTicket(data) {
+	return request({
+		url: '/api/ticket',
+		method: 'get',
+		data
+	});
+}
+// 核销
+export function check(data) {
+	return request({
+		url: '/api/check',
+		method: 'post',
+		data
+	});
+}
+
+

+ 7 - 1
manifest.json

@@ -1,6 +1,6 @@
 {
     "name" : "投票系统",
-    "appid" : "__UNI__F0EBD91",
+    "appid" : "__UNI__A8504C1",
     "description" : "",
     "versionName" : "1.0.0",
     "versionCode" : "100",
@@ -48,6 +48,12 @@
                         "appsecret" : "",
                         "UniversalLinks" : ""
                     }
+                },
+                "share" : {
+                    "weixin" : {
+                        "appid" : "",
+                        "UniversalLinks" : ""
+                    }
                 }
             }
         }

BIN
myjtp.rar


+ 12 - 0
node_modules/.package-lock.json

@@ -0,0 +1,12 @@
+{
+  "name": "myjtp",
+  "lockfileVersion": 2,
+  "requires": true,
+  "packages": {
+    "node_modules/jweixin-module": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/jweixin-module/-/jweixin-module-1.6.0.tgz",
+      "integrity": "sha512-dGk9cf+ipipHmtzYmKZs5B2toX+p4hLyllGLF6xuC8t+B05oYxd8fYoaRz0T30U2n3RUv8a4iwvjhA+OcYz52w=="
+    }
+  }
+}

+ 30 - 0
node_modules/jweixin-module/README.md

@@ -0,0 +1,30 @@
+# jweixin-module
+
+微信JS-SDK
+
+## 安装
+
+### NPM
+
+```shell
+npm install jweixin-module --save
+```
+
+### UMD
+
+```http
+https://unpkg.com/jweixin-module/out/index.js
+```
+
+## 使用
+
+```js
+var jweixin = require('jweixin-module')
+jweixin.ready(function(){
+    // TODO
+});
+```
+
+## 完整API
+
+>[微信JS-SDK说明文档](https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115)

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
node_modules/jweixin-module/lib/index.js


+ 56 - 0
node_modules/jweixin-module/package.json

@@ -0,0 +1,56 @@
+{
+  "_args": [
+    [
+      "jweixin-module@1.6.0",
+      "C:\\Users\\Administrator\\Documents\\WeChat Files\\wxid_5042trap0ahs22\\FileStorage\\File\\2021-11\\myjtp"
+    ]
+  ],
+  "_from": "jweixin-module@1.6.0",
+  "_id": "jweixin-module@1.6.0",
+  "_inBundle": false,
+  "_integrity": "sha512-dGk9cf+ipipHmtzYmKZs5B2toX+p4hLyllGLF6xuC8t+B05oYxd8fYoaRz0T30U2n3RUv8a4iwvjhA+OcYz52w==",
+  "_location": "/jweixin-module",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "version",
+    "registry": true,
+    "raw": "jweixin-module@1.6.0",
+    "name": "jweixin-module",
+    "escapedName": "jweixin-module",
+    "rawSpec": "1.6.0",
+    "saveSpec": null,
+    "fetchSpec": "1.6.0"
+  },
+  "_requiredBy": [
+    "/"
+  ],
+  "_resolved": "https://registry.npmjs.org/jweixin-module/-/jweixin-module-1.6.0.tgz",
+  "_spec": "1.6.0",
+  "_where": "C:\\Users\\Administrator\\Documents\\WeChat Files\\wxid_5042trap0ahs22\\FileStorage\\File\\2021-11\\myjtp",
+  "author": {
+    "name": "Shengqiang Guo"
+  },
+  "bugs": {
+    "url": "https://github.com/zhetengbiji/jweixin-module/issues"
+  },
+  "description": "微信JS-SDK",
+  "devDependencies": {},
+  "homepage": "https://github.com/zhetengbiji/jweixin-module#readme",
+  "keywords": [
+    "wxjssdk",
+    "weixin",
+    "jweixin",
+    "wechat",
+    "jssdk",
+    "wx"
+  ],
+  "license": "ISC",
+  "main": "lib/index.js",
+  "name": "jweixin-module",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/zhetengbiji/jweixin-module.git"
+  },
+  "scripts": {},
+  "version": "1.6.0"
+}

+ 4 - 0
node_modules/qrcodejs2/.npmignore

@@ -0,0 +1,4 @@
+.DS_Store
+
+.idea
+.project

+ 14 - 0
node_modules/qrcodejs2/LICENSE

@@ -0,0 +1,14 @@
+The MIT License (MIT)
+---------------------
+Copyright (c) 2012 davidshimjs
+
+Permission is hereby granted, free of charge,
+to any person obtaining a copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction,
+including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

+ 43 - 0
node_modules/qrcodejs2/README.md

@@ -0,0 +1,43 @@
+# QRCode.js
+QRCode.js is javascript library for making QRCode. QRCode.js supports Cross-browser with HTML5 Canvas and table tag in DOM.
+QRCode.js has no dependencies.
+
+## Basic Usages
+```
+<div id="qrcode"></div>
+<script type="text/javascript">
+new QRCode(document.getElementById("qrcode"), "http://jindo.dev.naver.com/collie");
+</script>
+```
+
+or with some options
+
+```
+var qrcode = new QRCode("test", {
+	text: "http://jindo.dev.naver.com/collie",
+	width: 128,
+	height: 128,
+	colorDark : "#000000",
+	colorLight : "#ffffff",
+	correctLevel : QRCode.CorrectLevel.H
+});
+```
+
+and you can use some methods
+
+```
+qrcode.clear(); // clear the code.
+qrcode.makeCode("http://naver.com"); // make another code.
+```
+
+## Browser Compatibility
+IE6~10, Chrome, Firefox, Safari, Opera, Mobile Safari, Android, Windows Mobile, ETC.
+
+## License
+MIT License
+
+## Contact
+twitter @davidshimjs
+
+[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/davidshimjs/qrcodejs/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
+

+ 18 - 0
node_modules/qrcodejs2/bower.json

@@ -0,0 +1,18 @@
+{
+  "name": "qrcode.js",
+  "version": "0.0.1",
+  "homepage": "https://github.com/davidshimjs/qrcodejs",
+  "authors": [
+    "Sangmin Shim", "Sangmin Shim <ssm0123@gmail.com> (http://jaguarjs.com)"
+  ],
+  "description": "Cross-browser QRCode generator for javascript",
+  "main": "qrcode.js",
+  "ignore": [
+    "bower_components",
+    "node_modules",
+    "index.html",
+    "index.svg",
+    "jquery.min.js",
+    "qrcode.min.js"
+  ]
+}

+ 47 - 0
node_modules/qrcodejs2/index-svg.html

@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko">
+  <head>
+    <title>Cross-Browser QRCode generator for Javascript</title>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+    <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no" />
+    <script type="text/javascript" src="jquery.min.js"></script>
+    <script type="text/javascript" src="qrcode.js"></script>
+  </head>
+  <body>
+  <input id="text" type="text" value="http://jindo.dev.naver.com/collie" style="width:80%" />
+  <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <g id="qrcode"/>
+  </svg>
+  <script type="text/javascript">
+  var qrcode = new QRCode(document.getElementById("qrcode"), {
+      width : 100,
+      height : 100,
+      useSVG: true
+  });
+
+  function makeCode () {		
+      var elText = document.getElementById("text");
+
+      if (!elText.value) {
+          alert("Input a text");
+          elText.focus();
+          return;
+      }
+
+      qrcode.makeCode(elText.value);
+  }
+
+  makeCode();
+
+  $("#text").
+      on("blur", function () {
+          makeCode();
+      }).
+      on("keydown", function (e) {
+          if (e.keyCode == 13) {
+              makeCode();
+          }
+      });
+    </script>
+  </body>
+</html>

+ 44 - 0
node_modules/qrcodejs2/index.html

@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko">
+<head>
+<title>Cross-Browser QRCode generator for Javascript</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no" />
+<script type="text/javascript" src="jquery.min.js"></script>
+<script type="text/javascript" src="qrcode.js"></script>
+</head>
+<body>
+<input id="text" type="text" value="http://jindo.dev.naver.com/collie" style="width:80%" /><br />
+<div id="qrcode" style="width:100px; height:100px; margin-top:15px;"></div>
+
+<script type="text/javascript">
+var qrcode = new QRCode(document.getElementById("qrcode"), {
+	width : 100,
+	height : 100
+});
+
+function makeCode () {		
+	var elText = document.getElementById("text");
+	
+	if (!elText.value) {
+		alert("Input a text");
+		elText.focus();
+		return;
+	}
+	
+	qrcode.makeCode(elText.value);
+}
+
+makeCode();
+
+$("#text").
+	on("blur", function () {
+		makeCode();
+	}).
+	on("keydown", function (e) {
+		if (e.keyCode == 13) {
+			makeCode();
+		}
+	});
+</script>
+</body>

+ 37 - 0
node_modules/qrcodejs2/index.svg

@@ -0,0 +1,37 @@
+<?xml version="1.0" standalone="yes"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="-50 0 200 100">
+  <g id="qrcode"/>
+  <foreignObject x="-50" y="0" width="100" height="100">
+    <body xmlns="http://www.w3.org/1999/xhtml" style="padding:0; margin:0">
+      <div style="padding:inherit; margin:inherit; height:100%">
+        <textarea id="text" style="height:100%; width:100%; position:absolute; margin:inherit; padding:inherit">james</textarea>
+      </div>
+      <script type="application/ecmascript" src="qrcode.js"></script>
+      <script type="application/ecmascript">
+var elem = document.getElementById("qrcode");
+var qrcode = new QRCode(elem, {
+    width : 100,
+    height : 100
+});
+
+function makeCode () {
+    var elText = document.getElementById("text");
+ 
+    if (elText.value === "") {
+        //alert("Input a text");
+        //elText.focus();
+        return;
+    }
+ 
+    qrcode.makeCode(elText.value);
+}
+
+makeCode();
+
+document.getElementById("text").onkeyup = function (e) {
+        makeCode();
+};
+</script>
+    </body>
+  </foreignObject>
+</svg>

Fichier diff supprimé car celui-ci est trop grand
+ 1 - 0
node_modules/qrcodejs2/jquery.min.js


+ 50 - 0
node_modules/qrcodejs2/package.json

@@ -0,0 +1,50 @@
+{
+  "_from": "qrcodejs2",
+  "_id": "qrcodejs2@0.0.2",
+  "_inBundle": false,
+  "_integrity": "sha1-Rlr+Xjnxn6zsuTLBH3oYYQkUauE=",
+  "_location": "/qrcodejs2",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "tag",
+    "registry": true,
+    "raw": "qrcodejs2",
+    "name": "qrcodejs2",
+    "escapedName": "qrcodejs2",
+    "rawSpec": "",
+    "saveSpec": null,
+    "fetchSpec": "latest"
+  },
+  "_requiredBy": [
+    "#USER",
+    "/"
+  ],
+  "_resolved": "https://registry.npmjs.org/qrcodejs2/-/qrcodejs2-0.0.2.tgz",
+  "_shasum": "465afe5e39f19facecb932c11f7a186109146ae1",
+  "_spec": "qrcodejs2",
+  "_where": "C:\\Users\\Administrator\\Documents\\WeChat Files\\wxid_5042trap0ahs22\\FileStorage\\File\\2021-11\\myjtp",
+  "author": {
+    "name": "davidshimjs",
+    "email": "ssm0123@gmail.com"
+  },
+  "bugs": {
+    "url": "https://github.com/davidshimjs/qrcodejs/issues"
+  },
+  "bundleDependencies": false,
+  "deprecated": false,
+  "description": "Javsacript QRCode for all browsers",
+  "gitHead": "06c7a5e134f116402699f03cda5819e10a0e5787",
+  "homepage": "https://github.com/davidshimjs/qrcodejs#readme",
+  "keywords": [
+    "qrcode",
+    "javascript"
+  ],
+  "license": "MIT",
+  "main": "qrcode.js",
+  "name": "qrcodejs2",
+  "repository": {
+    "type": "git",
+    "url": "git://github.com/davidshimjs/qrcodejs.git"
+  },
+  "version": "0.0.2"
+}

Fichier diff supprimé car celui-ci est trop grand
+ 156 - 0
node_modules/qrcodejs2/qrcode.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
node_modules/qrcodejs2/qrcode.min.js


+ 16 - 0
package-lock.json

@@ -0,0 +1,16 @@
+{
+  "requires": true,
+  "lockfileVersion": 1,
+  "dependencies": {
+    "jweixin-module": {
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/jweixin-module/-/jweixin-module-1.6.0.tgz",
+      "integrity": "sha512-dGk9cf+ipipHmtzYmKZs5B2toX+p4hLyllGLF6xuC8t+B05oYxd8fYoaRz0T30U2n3RUv8a4iwvjhA+OcYz52w=="
+    },
+    "qrcodejs2": {
+      "version": "0.0.2",
+      "resolved": "https://registry.npmjs.org/qrcodejs2/-/qrcodejs2-0.0.2.tgz",
+      "integrity": "sha1-Rlr+Xjnxn6zsuTLBH3oYYQkUauE="
+    }
+  }
+}

+ 6 - 0
package.json

@@ -0,0 +1,6 @@
+{
+  "dependencies": {
+    "jweixin-module": "^1.6.0",
+    "qrcodejs2": "0.0.2"
+  }
+}

+ 18 - 15
pages.json

@@ -5,7 +5,7 @@
 	"pages": [{
 			"path": "pages/index",
 			"style": {
-				"navigationBarTitleText": "2022届寻找明星母婴服务人员海选赛",
+				"navigationBarTitleText": "2021届寻找明星母婴服务人员海选赛",
 				"app-plus": {
 					"titleNView": false
 				}
@@ -41,26 +41,15 @@
 			}
 		},
 		{
-			"path": "pages/apply/enterpriseInformation",
+			"path": "pages/apply/information",
 			"style": {
-				"navigationBarTitleText": "企业申请"
-				// "app-plus": {
-				// 	"titleNView": {
-				// 		"type": "transparent"
-				// 	}
-				// }
-			}
-		},
-		{
-			"path": "pages/apply/personalInformation",
-			"style": {
-				"navigationBarTitleText": "个人申请"
+				"navigationBarTitleText": "申请"
 			}
 		},
 		{
 			"path": "pages/apply/choose",
 			"style": {
-				"navigationBarTitleText": "申请类型"
+				"navigationBarTitleText": "会员申请表"
 			}
 		},
 		{
@@ -80,6 +69,20 @@
 				"navigationBarTitleText": "证书"
 			}
 		},
+		{
+			"path": "pages/apply/verification",
+			"style": {
+				"navigationStyle":"custom",
+				"navigationBarTitleText": "我的核销码"
+			}
+		},
+		{
+			"path": "pages/apply/qrcode",
+			"style": {
+				"navigationBarTitleText": "我的核销券"
+			}
+		},
+		
 		{
 			"path": "pages/redirect/redirect",
 			"style": {

+ 86 - 80
pages/apply/choose.vue

@@ -1,111 +1,109 @@
 <template>
-	<view class="alertBox">
-		<image class="titleImg" src="@/static/img/alertbg.png" mode="widthFix"></image>
-		<view class="title">参赛类型</view>
-		<view class="titleTip">请选择您的参赛身份类型</view>
-		<view class="lxTtem flex" @click="type = 1">
-			<view class="leftTitle flex">
-				<image class="leftImgTip" src="@/static/img/user.png" mode="heightFix"></image>
-				<text>个人参赛</text>
+	<view class="">
+		<view class="alertBox">
+			<image class="titleImg" src="@/static/img/alertbg2.png" mode="widthFix"></image>
+			<image :src="img" class="logo"></image>
+			<view class="hed"></view>
+			<view class="lxTtem flex" @click="type = 1">
+				<view class="leftTitle flex">
+					<image class="leftImgTip" src="@/static/img/bp2.png" mode="heightFix"></image>
+					<text>个人会员</text>
+				</view>
+				<view class="rightTip flex"><view v-if="type == 1" class="xzTip"></view></view>
 			</view>
-			<view class="rightTip flex"><view v-if="type == 1" class="xzTip"></view></view>
-		</view>
-		<view class="lxTtem flex" @click="type = 2">
-			<view class="leftTitle flex">
-				<image class="leftImgTip" src="@/static/img/userAll.png" mode="heightFix"></image>
-				<text>企业参赛(我有所属企业)</text>
+			<view class="lxTtem flex" @click="type = 2">
+				<view class="leftTitle flex">
+					<image class="leftImgTip" src="@/static/img/bp1.png" mode="heightFix"></image>
+					<text>企业会员</text>
+				</view>
+				<view class="rightTip flex"><view v-if="type == 2" class="xzTip"></view></view>
 			</view>
-			<view class="rightTip flex"><view v-if="type == 2" class="xzTip"></view></view>
+			<view class="pushtyle" @click="submit">确认</view>
 		</view>
-	
-		<view class="pushtyle" @click="submit">确认</view>
+		<view class="content" id="content"></view>
 	</view>
-	<!-- <div class="content">
-		<div class="">
-			<div class="title">申请类型</div>
-			<div class="explain">
-				请选择您的申请身份类型
-			</div>
-			<div class="list">
-				<label>个人会员</label>
-				<input type="radio" name="radio" id="" value="1" v-model="type"/>
-			</div>
-			<div class="list">
-				<label>企业会员</label>
-				<input type="radio" name="radio" id="" value="2" v-model="type"/>
-			</div>
-		</div>
-		<div class="button" @click="submit">
-			确认
-		</div>
-	</div> -->
 </template>
 
 <script>
+import { shareLoad } from '../../utils/wxAuthorized.js'
+import { getIndex } from '../../api/apply.js'
+import { getUserInfo } from '../../api/login.js'
 export default {
 	data() {
 		return {
-			type: 1
+			type: 1,
+			img: require('@/static/img/logo.png'),
 		}
 	},
+	mounted() {
+		this.getContent()
+	},
+	onShow() {
+		
+	},
+	onLoad() {
+		this.share()
+	},
 	methods: {
+		getContent() {
+			getIndex().then(res => {
+				const content = document.getElementById("content");
+				console.log(res.data)
+				content.innerHTML = res.data.content
+			})
+		},
 		submit() {
 			uni.navigateTo({
-				url: '/pages/apply/query?type=' + this.type
+				url: '/pages/apply/information?type=' + this.type
 			})
-			// window.location.href = 'query.html?type='+this.type;
+		},
+		// 分享
+		share() {
+			const pages = getCurrentPages()
+			const path = pages[pages.length - 1].route
+			const baseURL = this.$store.state.baseURL
+			const data = {
+				link: window.location.href, // 分享链接
+				imgUrl: 'http://vote.deepbytop.com/index/static/img/logo.f387ae76.png',
+				desc: '母婴健康专委会会员申请表',
+				title: '母婴健康专委会会员申请表',
+				fail:function (e) {
+					console.log(e);
+				}
+			}
+			shareLoad(data)
 		}
 	}
 }
 </script>
 
 <style lang="scss" scoped>
-/* body {
-	background-color: #888888;
-	height: 100%;
-}
-.content {
-	width: 70%;
-	font-size: 15px;
-	margin: 300px auto;
-	background-color: #fff;
-	padding: 20px;
-	text-align: center;
-	border-radius: 10px;
-}
-.title {
-	font-weight: bold;
-	margin-bottom: 15px;
-}
-.explain {
-	font-size: 12px;
-	color: #4c4c4c;
-}
-.list {
-	margin-top: 30px;
-	width: 100%;
-	display: flex;
-	justify-content: space-between;
-}
-.button {
-	background-color: #006eeb;
-	width: 90%;
-	margin: 5px auto;
-	margin-top: 20px;
-	color: #fff;
-	border-radius: 5px;
-	padding: 5px;
-} */
-
+	page {
+		height: 100%;
+	}
 .alertBox {
 	background-color: #fff;
 	width: 80%;
-	margin: 280rpx auto;
+	margin: auto auto;
 	border-radius: 30rpx;
 	padding-bottom: 40rpx;
+	position: relative;
+	top: 100rpx;
 	.titleImg {
 		width: 100%;
-		z-index: -1;
+		z-index: 99;
+		position: absolute;
+		top: 0;
+	}
+	.logo {
+		width: 130rpx;
+		height: 130rpx;
+		position: absolute;
+		top: 100rpx;
+		left: calc(50% - 60rpx);
+	}
+	.hed {
+		height: 230rpx;
 	}
 	.title {
 		text-align: center;
@@ -153,8 +151,7 @@ export default {
 		}
 	}
 	.pushtyle {
-		background: #006eeb;
-		// box-shadow: 0px 16rpx 16rpx 0px rgba(215, 39, 43, 0.5);
+		background-color: #3b66f5;
 		border-radius: 10rpx;
 		color: #ffffff;
 		font-size: 28rpx;
@@ -165,4 +162,13 @@ export default {
 		margin-top: 40rpx;
 	}
 }
+.content {
+	// background-color: ;
+	position: relative;
+	top: 150rpx;
+	padding: 0 10%;
+	font-size: 28rpx;
+	color: #303133;
+	line-height: 45rpx;
+}
 </style>

+ 434 - 0
pages/apply/information.vue

@@ -0,0 +1,434 @@
+<template>
+	<view class="">
+		<view class="information">
+			<view class="list">
+				<view class="lable">{{isType?'姓名':'企业单位'}}:</view>
+				<view class="input">
+					<input type="text" v-model="list.name" :placeholder="isType?'请输入姓名':'请输入企业单位'" />
+				</view>
+			</view>
+			<view class="list">
+				<view class="lable">{{isType?'身份证号':'企业统一代码'}}:</view>
+				<view class="input">
+					<input type="text" v-model="list.id" :placeholder="isType?'请输入身份证号':'请输入企业统一代码'" />
+				</view>
+			</view>
+			<view class="list">
+				<view class="lable">联系方式:</view>
+				<view class="input">
+					<input type="text" v-model="list.phone" placeholder="请输入联系方式" />
+				</view>
+			</view>
+			<view class="list">
+				<view class="lable" style="">所在地区:</view>
+				<view class="input" style="width: calc(100% - 240rpx);padding: 20rpx;">
+					<pickerAddress class="pickerAddress" :class="{pickerColor: !location}" @change="onCityClick">
+						{{location||'请选择地址'}}
+					</pickerAddress>
+				</view>
+				<view><img src="@/static/img/jt.png" v-show="!location"></view>
+			</view>
+			<view class="list">
+				<view class="lable">详细地址:</view>
+				<view class="input">
+					<input type="text" v-model="list.address" placeholder="请输入详细地址" />
+				</view>
+			</view>
+			<view class="list">
+				<view class="lable">{{isType?'职业':'主营领域'}}:</view>
+				<view class="input">
+					<input type="text" v-model="list.occupation" :placeholder="isType?'请输入职业':'请输入主营领域'" />
+				</view>
+			</view>
+			<view class="list">
+				<view class="lable">{{isType?'职业年限':'公司年限'}}:</view>
+				<view class="input">
+					<input type="text" v-model="list.careerYears" :placeholder="isType?'请输入职业年限':'请输入公司年限'" />
+				</view>
+			</view>
+			<view class="list">
+				<view class="lable">保荐人:</view>
+				<view class="input">
+					<input type="text" v-model="list.sponsor" placeholder="请输入保荐人" />
+				</view>
+			</view>
+		</view>
+		<view class="img">
+			<p>{{isType?'半身照':'品牌logo'}}:</p>
+			<view class="photo" @click='pic'>
+				<img :src="list.img" v-if="list.img" />
+				<img src="@/static/img/k.png" v-else>
+			</view>
+		</view>
+		<view class="button" @click="eject">
+			提交申请
+		</view>
+		<view class="gradeList" v-if="isEject">
+			<view class="title">
+				选择会员
+			</view>
+			<view class="grade" v-for="( g,index ) in gradeList"  @click="chooseGradeList(g,index)">
+				<view style="width: 230rpx;">{{ g.name }}</view>
+				<view class="right">
+					{{ g.price == 0 ? '': g.price }}
+					<view class="border">
+						<view v-if="chooseGrade == index" class="xzTip"></view>
+					</view>
+				</view>
+			</view>
+			<view class="gradeButton" @click="type == 1?submit1():submit2()">
+				确定提交
+			</view>
+		</view>
+		<view class="bg" v-if="isEject" @click="isEject = false"></view>
+	</view>
+</template>
+
+<script>
+	import {
+		apply,
+		getPrice,
+		uploads
+	} from '../../api/apply.js'
+	import {
+		getUserInfo
+	} from '../../api/login.js'
+	import {
+		mapMutations,
+		mapState
+	} from 'vuex';
+	import {
+		saveUrl,
+		interceptor
+	} from '@/utils/loginUtils.js';
+	import pickerAddress from '@/components/wangding-pickerAddress/wangding-pickerAddress.vue';
+	import weixinObj from '@/plugin/jweixin-module/index.js';
+	export default {
+		components: {
+			pickerAddress
+		},
+		data() {
+			return {
+				list: {
+					name: '', // 姓名/企业单位
+					id: '', // 身份证号/企业统一代码
+					phone: '', // 联系方式
+					location: '', // 所在地区
+					address: '', // 详细地址
+					occupation: '', // 职业/主营领域
+					careerYears: '', // 职业年限/公司年限
+					sponsor: '', // 保荐人
+					img: '', // 半身照/品牌logo
+					pay_type: 'weixin', //weixin:微信支付,yue:余额支付
+					grade: '' // 等级
+				},
+				province: '', // 省
+				city: '', // 市
+				district: '', // 区
+				type: '', // 1代表个人会员2代表企业会员
+				isEject: false, //会员价格弹窗
+				gradeList: [],
+				chooseGrade: 0,
+				money: 0.0, //订单金额
+				// // #ifdef H5
+				// froms: '', //保存h5中数据来源对象
+				// // #endif
+				// orderKey: '',
+				// orderId: '', //保存订单id
+				payLoding: false, //判断是否在支付中
+			}
+		},
+		computed: {
+			// #ifdef H5
+			...mapState(['weichatObj']),
+			// #endif
+			isType() {
+				return this.type == 1
+			},
+			// 所在地区
+			location() {
+				return this.province + this.city + this.district
+			},
+			...mapState('user', ['hasLogin'])
+		},
+		mounted() {
+			this.price()
+		},
+		watch: {
+			location() {
+				this.list.location = this.location
+			}
+		},
+		onLoad(options) {
+			this.type = options.type;
+			getUserInfo()
+		},
+		methods: {
+			...mapMutations('user', ['setInformation']),
+			// 选择会员价格
+			chooseGradeList(data, index) {
+				this.chooseGrade = index
+				this.list.grade = data.grade
+				this.money = data.price
+				console.log(this.list)
+			},
+			// 会员价格
+			price() {
+				getPrice({}, this.type).then(res => {
+					this.gradeList = res.data
+					this.list.grade = res.data[0].grade
+					console.log(this.list)
+				})
+			},
+			//会员价格选择
+			eject() {
+				this.isEject = true
+			},
+			// 个人申请提交
+			submit1() {
+				console.log('1')
+				const obj = this;
+				if (obj.payLoding) {
+					return;
+				}
+				obj.payLoding = true;
+				apply(obj.list, obj.type).then(res => {
+					let da = res.data.result.jsConfig;
+					let data = {
+						timestamp: da.timestamp,
+						nonceStr: da.nonceStr,
+						package: da.package,
+						signType: da.signType,
+						paySign: da.paySign,
+						success: function(res) {
+							console.log(res)
+							obj.paySuccessToP();
+							obj.payLoding = false;
+						},
+						fail: () => {
+							obj.payLoding = false;
+						}
+					};
+					weixinObj.chooseWXPay(data);
+				}).catch(res => {
+					obj.payLoding = false;
+					console.log(res)
+				})
+			},
+			//企业申请
+			submit2() {
+				const obj = this;
+				console.log('2')
+				apply(obj.list, obj.type).then(res => {
+					console.log(res)
+					obj.paySuccessTo();
+				}).catch(res => {
+					console.log(res)
+				})
+			},
+			// 上传图片
+			pic() {
+				console.log(this.hasLogin, '当前状态');
+				if (this.hasLogin) {
+					uploads().then(res => {
+						console.log(res, '返回图片');
+						this.list.img = res[0].url
+					})
+				} else {
+					uni.showModal({
+						title: "登陆",
+						content: '您未登录!是否马上登录?',
+						success: (e) => {
+							// 判断是否点击确认按钮
+							if (e.confirm) {
+								// 保存当前页面地址
+								saveUrl()
+								// 跳转页面
+								interceptor()
+							}
+						}
+					})
+				}
+			},
+			// 选中城市切换
+			onCityClick({ data }) {
+				this.province = data[0] + '/';
+				this.city = data[1] + '/';
+				this.district = data[2];
+			},
+			//提交申请成功
+			paySuccessTo() {
+				const that = this
+				uni.showToast({
+					title: '申请成功,请等待三个工作日审核',
+					duration: 2000,
+					position: 'top'
+				});
+				this.isEject = !this.isEject
+			},
+			// 个人申请提交申请成功
+			paySuccessToP() {
+				this.paySuccessTo()
+				setTimeout(() => {
+					uni.navigateTo({
+						url: '/pages/apply/verification'
+					})
+				},500)
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page {
+		height: 100%;
+	}
+
+	body {
+		background-color: #f3f3f3;
+	}
+
+	.information {
+		background-color: #fff;
+		margin: 0 10rpx;
+		padding: 0 40rpx;
+		border-radius: 20rpx 20rpx 0 0;
+		font-size: 30rpx;
+	}
+
+	.list {
+		display: flex;
+		border-bottom: solid 1rpx #f3f3f3;
+
+		.lable {
+			padding: 20rpx;
+			width: 270rpx;
+		}
+
+		img {
+			padding-top: 26rpx;
+			width: 0rpx;
+			float: right;
+		}
+
+		.input {
+			input {
+				border: 0;
+				width: calc(100% - 20rpx);
+				font-size: 30rpx;
+				padding: 20rpx;
+			}
+		}
+	}
+
+	.img {
+		font-size: 30rpx;
+		background-color: #fff;
+		border-radius: 0 0 20rpx 20rpx;
+		height: 340rpx;
+		position: relative;
+		margin: 0 10rpx;
+		padding: 0 40rpx;
+
+		p {
+			padding: 20rpx;
+		}
+
+		img {
+			width: 160rpx;
+		}
+	}
+
+	.photo {
+		width: 160rpx;
+		height: 160rpx;
+		margin: auto auto;
+	}
+
+	.button {
+		position: fixed;
+		bottom: 0;
+		left: 0;
+		width: 100%;
+		text-align: center;
+		color: #fff;
+		background-color: #3b66f5;
+		font-size: 30rpx;
+		height: 100rpx;
+		line-height: 100rpx;
+	}
+
+	.pickerAddress {}
+
+	.pickerColor {
+		color: #808080;
+	}
+
+	.gradeList {
+		padding: 40rpx;
+		width: 600rpx;
+		left: calc(50% - 300rpx);
+		position: absolute;
+		top: 30%;
+		border-radius: 20rpx;
+		z-index: 99;
+		background-color: #fff;
+
+		.title {
+			text-align: center;
+			font-size: 36rpx;
+			font-weight: bold;
+			color: #333333;
+		}
+
+		.grade {
+			text-align: center;
+			display: flex;
+			justify-content: space-between;
+			padding: 40rpx 20rpx;
+		}
+
+		.right {
+			display: flex;
+			margin: auto 0;
+		}
+
+		.border {
+			margin: auto 15rpx;
+			width: 20rpx;
+			height: 20rpx;
+			border-radius: 50%;
+			border: solid 1rpx #3b66f5;
+
+			.xzTip {
+				width: 12rpx;
+				height: 12rpx;
+				margin-top: 2rpx;
+				margin-left: 2rpx;
+				border-radius: 50%;
+				background-color: #3b66f5;
+			}
+		}
+	}
+
+	.bg {
+		position: absolute;
+		top: 0;
+		left: 0;
+		background-color: rgba(0, 0, 0, 0.5);
+		width: 100%;
+		height: 100%;
+		z-index: 98;
+	}
+
+	.gradeButton {
+		padding: 10rpx;
+		background-color: #3b66f5;
+		color: #fff;
+		width: 80%;
+		margin: 0 auto;
+		border-radius: 10rpx;
+		font-size: 32rpx;
+		text-align: center;
+	}
+</style>

+ 94 - 0
pages/apply/qrcode.vue

@@ -0,0 +1,94 @@
+<template>
+	<view class="qrcode">
+		<view class="name">
+			<image :src="avatar" mode="" class="name-img"></image>
+			<view class="">
+				{{ name }}
+			</view>
+		</view>
+		<view class="ma">
+			<div class="qrCode" ref="qrCodeDiv"></div>
+			<view class="id">
+				<!-- {{ id }} -->
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+import QRCode from 'qrcodejs2';
+	export default {
+		onLoad(options) {
+			this.id = options.id
+			console.log(this.id)
+			this.$nextTick(function () {
+			    this.bindQRCode();
+			})
+		},
+		mounted() {
+			const data = this.$store.state.user.userInfo
+			this.avatar = data.avatar
+			this.name = data.nickname || data.real_name
+			console.log(this.avatar);
+			console.log(this.name);
+		},
+		data() {
+			return {
+				id: '',
+				avatar: '',
+				name: '',
+			}
+		},
+		methods: {
+			bindQRCode() {
+				new QRCode(this.$refs.qrCodeDiv, {
+					render : "canvas",
+				    text: this.id,
+				    width: 170,
+				    height: 170,
+				    colorDark: "#333333", //二维码颜色
+				    colorLight: "#ffffff", //二维码背景色
+				    correctLevel: QRCode.CorrectLevel.L//容错率,L/M/H
+				})
+			},
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	page {
+		background-color: #fff;
+		height: 100%;
+	}
+	.qrcode {
+			text-align: center;
+		.name {
+			margin: 100rpx;
+			image {
+				width: 120rpx;
+				height: 120rpx;
+				border-radius: 50%;
+				border: solid 1rpx #eaeaea;
+			}
+		}
+		.ma {
+			margin: 0 auto;
+			padding: 50rpx;
+			width: 450rpx;
+			height: 450rpx;
+			border: solid 1rpx #3b66f5;
+			.name-img {
+				width: 300rpx;
+				height: 300rpx;
+			}
+			
+			.id {
+				font-size: 30rpx;
+				margin: 20rpx 0;
+			}
+		}
+		.about {
+			margin: 30rpx;
+		}
+	}
+</style>

+ 11 - 5
pages/apply/query.vue

@@ -1,7 +1,7 @@
 <template>
 	<view id="myApp">
 		<view class="header">
-			<img src="@/static/img/index-bg.png" >
+			<img src="@/static/img/apply.png" >
 		</view>
 		<view class="information" v-if="type == 1">
 			<form name="myform">
@@ -40,6 +40,7 @@
 
 <script>
 import { query } from '../../api/apply.js'
+import { mapMutations } from 'vuex';
 	export default {
 		data() {
 			return {
@@ -52,10 +53,15 @@ import { query } from '../../api/apply.js'
 			this.type = options.type
 		},
 		methods: {
+			...mapMutations('user', ['setInformation']),
 			submit() {
-				const data = this.type ==1 ? { name: this.name, idcard: this.idcard }: { name: this.name }
-				query(data,this.type).then(res => {
-					console.log(res)
+				const obj = this
+				const data = obj.type == 1 ? { name: this.name, idcard: this.idcard }: { name: this.name }
+				query(data,obj.type).then(res => {
+					obj.setInformation(res.data.data)
+					uni.navigateTo({
+						url: '/pages/apply/success?type='+this.type
+					})
 				}).catch(res => {
 					console.log(res)
 				})
@@ -64,7 +70,7 @@ import { query } from '../../api/apply.js'
 	}
 </script>
 
-<style>
+<style lang="scss" scoped>
 body {
 	margin: 0;
 	background-color: #f3f3f3;

+ 152 - 75
pages/apply/success.vue

@@ -1,96 +1,173 @@
 <template>
 <view class="success">
-	<img src="@/static/img/su2.jpg" v-if="type == 1" ref="img">
-	<img src="@/static/img/su.jpg" v-else>
-	<text class="name" :style="{top: -height*1.15+'rpx'}">{{ list.name }}</text>
-	<text class="id" :style="{top: -height*1.92+'rpx'}">{{ list.id }}</text>
-	<text class="time" :style="{top: -height*0.55+'rpx'}">{{ getTime(list.valid_time) }}</text>
+	<canvas canvas-id="firstCanvas" id="firstCanvas" :style="{width: width+'px',height: height+'px'}" v-if="type ==1">
+	</canvas >
+	<swiper class="sw" :indicator-dots="true" :autoplay="false" :interval="4000" :duration="1000">
+		<swiper-item  class="swl" v-for="i in this.list.imgs">
+			<view class="sImgList" @click="previewImg(i)">
+				<image :src="i" class="sImg" mode="aspectFit"></image>
+			</view>
+		</swiper-item>
+	</swiper>
 </view>
 </template>
 
 <script>
-	export default {
-		mounted() {
-			this.height = this.$refs.img.height
+export default {
+	onReady: function (e) {
+		this.getWidth()
+		// 获取信息
+		this.list = this.$store.state.user.information
+		if(this.type == 1) {
+			this.huatu()
+		}else {
+			console.log(this.list.imgs)
+		}
+		
+	},
+	computed: {
+		// 时间戳转换
+		time() {
+			return this.getTime(this.list.valid_time)
+		},
+		// 证书高度
+		height() {
+			return this.width*3/2
 		},
-		data() {
-			return {
-				height: '',
-				type: 1,
-				list: {
-					id: "9",
+		// 字体大小
+		font() {
+			const size = Math.ceil((this.width-375)/20+15)
+			console.log(size)
+			return size +'rpx 黑体'
+		},
+	},
+	data() {
+		return {
+			img1: require('@/static/img/s1.jpg'),
+			img2: require('@/static/img/su2.jpg'),
+			width: '',
+			type: 1,
+			list: {
+				id: "9",
+				type: "2",
+				name: "京",
+				idcard: "怀疑自己",
+				phone: "快递积极",
+				province: "安徽省",
+				city: "铜陵市",
+				area: "郊区",
+				detail_address: "古茗",
+				job: "李静",
+				job_year: "1",
+				uid: "33776",
+				saver: "刺激感了",
+				logo: "/Uploads/Picture/2021-11-17/6194a421bb357.jpg",
+				add_time: "1637131806",
+				status: "1",
+				paid: "1",
+				valid_time: "1668673114",
+				check_time: "1637137114",
+				pay_time: "1637131815",
+				pay_money: "0.01",
+				order_id: "20211117101575758703",
+				grade: "1",
+				grade_info: {
+					id: "3",
 					type: "2",
-					name: "京",
-					idcard: "怀疑自己",
-					phone: "快递积极",
-					province: "安徽省",
-					city: "铜陵市",
-					area: "郊区",
-					detail_address: "古茗",
-					job: "李静",
-					job_year: "1",
-					uid: "33776",
-					saver: "刺激感了",
-					logo: "/Uploads/Picture/2021-11-17/6194a421bb357.jpg",
-					add_time: "1637131806",
-					status: "1",
-					paid: "1",
-					valid_time: "1668673114",
-					check_time: "1637137114",
-					pay_time: "1637131815",
-					pay_money: "0.01",
-					order_id: "20211117101575758703",
+					year: "3",
+					name: "3年企业会员",
 					grade: "1",
-					grade_info: {
-						id: "3",
-						type: "2",
-						year: "3",
-						name: "3年企业会员",
-						grade: "1",
-						price: "0.01"
-					}
+					price: "0.01"
 				}
 			}
+		}
+	},
+	onLoad(options) {
+		// 企业或个人
+		this.type = options.type
+	},
+	methods: {
+		// 查看图片
+		previewImg(current) {
+			console.log(current);
+			uni.previewImage({
+				current,
+				urls: this.list.imgs
+			})
+		},
+		// 时间戳转换成时间
+		getTime(time) {
+			const num =13 - (time+'').length;
+			let l = 1;//倍数
+			for (let i = 0; i < num; i++) {
+				l+='0';
+			}
+			// 重新解析为数字
+			l = parseInt(l)
+			const date = new Date(parseInt(time) * l);
+			const year = date.getFullYear();
+			const mon = date.getMonth() + 1;
+			const day = date.getDate();
+			const hours = date.getHours();
+			const minu = date.getMinutes();
+			const sec = date.getSeconds();
+			return year + '-' + mon + '-' + day 
+			// + ' ' + hours + ':' + minu + ':' + sec;
 		},
-		methods: {
-			//时间戳转换成时间
-			getTime(time) {
-				const num =13 - (time+'').length;
-				let l = 1;//倍数
-				for (let i = 0; i < num; i++) {
-					l+='0';
-				}
-				// 重新解析为数字
-				l = parseInt(l)
-				const date = new Date(parseInt(time) * l);
-				const year = date.getFullYear();
-				const mon = date.getMonth() + 1;
-				const day = date.getDate();
-				const hours = date.getHours();
-				const minu = date.getMinutes();
-				const sec = date.getSeconds();
-				return year + '-' + mon + '-' + day 
-				// + ' ' + hours + ':' + minu + ':' + sec;
+		// 获取屏幕宽度
+		getWidth() {
+			this.width = (document.body.clientWidth || document.documentElement.clientWidth);
+		},
+		huatu() {
+			var context = uni.createCanvasContext('firstCanvas')
+			context.font = this.font;
+			// 设置颜色
+			context.fillStyle = "#000";
+			const width = this.width
+			const height = this.height
+			// 绘制文字(参数:要写的字,x坐标,y坐标)
+			context.drawImage(this.img1 ,0 ,0,width,height)
+			// 企业名称
+			if(this.list.unit != null) {
+				context.fillText(this.list.unit, width/3.2, height/2.15);
 			}
+			// 个人会员姓名
+			if(this.list.name != null) {
+				context.fillText(this.list.name, width/3.2, height/2.15);
+			}
+			// 会员编号
+			if(this.list.id != null) {
+				context.fillText(this.list.id, width/1.32, height/13.8);
+			}
+			// 有效日期
+			if(this.list.valid_time != null) {
+				context.fillText( this.time, width/3.6, height/1.31);
+			}
+			context.stroke()
+			context.draw()
 		}
 	}
+}
 </script>
 
-<style>
-img {
-	width: 100%;
-	height: 507px;
+<style lang="scss" scoped>
+page {
+	height: 100%;
 }
-.name {
-	position: relative;
-	left: 35%;
+#firstCanvas {
+	margin: auto auto;
 }
-.id {
-	position: relative;
-	left: 70%;
-}
-.time {
-	position: relative;
-	left: 25%;
+.sw {
+	min-height: 500px;
+	margin: auto auto;
+	.swl {
+	margin: auto auto;
+	}
 }
+	.sImgList {
+		.sImg {
+			width: 100%;
+			height: 500px;
+		}
+	}
 </style>

+ 256 - 0
pages/apply/verification.vue

@@ -0,0 +1,256 @@
+<template>
+	<view class="verification">
+		<view :isBack="true" titleTintColor="#fff" search class='headerNav'>
+		    <text></text>
+		    <image class="uni_btnImage" src="../../static/img/cm.png" @click="scanCode"></image>
+		</view>
+		<view class="">
+				<view class="letter" v-for="l in list">
+					<view class="header">
+						<view class="left tico">
+							订单号: {{ l.id }}
+						</view>
+						<view class="right">
+							待核销
+						</view>
+					</view>
+					<view class="middle">
+						<image src="../../static/img/verification.png" mode=""></image>
+						<view class="inf">
+							<text class="name"><b>{{ l.ticket_name }}</b></text><br>
+							<text class="time tico">{{ getTime(l.add_time) }}</text>
+						</view>
+					</view>
+					<view class="footer">
+						<view class="about tico">
+							当前已核销{{ l.num }}次,还剩{{ l.all_num - l.num }}次
+						</view>
+						<view class="button" @click="navTo(l.ticket_code)">
+							出示核销
+						</view>
+					</view>
+				</view>
+				<view class="jz">
+					-------{{ loadingType=='loadmore'?'加载中':'加载完成'}}-------
+				</view>
+		</view>
+	</view>
+</template>
+
+<script>
+import weichatObj from "@/plugin/jweixin-module/index.js";
+import { sanCode } from '../../utils/wxAuthorized.js'
+import { getTicket,check } from '../../api/apply.js'
+// import { mapState } from 'vuex';
+	export default {
+		data() {
+			return {
+				page: 1,
+				limit: 10,
+				loadingType: 'loadmore',
+				list: [],
+			}
+		},
+		mounted() {
+			this.init()
+		},
+		methods: {
+			// 初始化数据
+			init() {
+				const that = this// 获取项目对象
+				if (that.loadingType === 'loading') {
+					//防止重复加载
+					return;
+				}
+				if (that.loadingType === 'nomore') {
+					//防止重复加载
+					return;
+				}
+				// 修改当前对象状态为加载中
+				that.loadingType = 'loading';
+				const data = {page: this.page,limit: this.limit}
+				console.log(data);
+				getTicket(data)
+				.then(e => {
+					const data = e.data.list
+					that.list = data
+					that.page++;
+					if (that.limit == data.length) {
+						//判断是否还有数据, 有改为 more, 没有改为noMore
+						that.loadingType = 'loadmore';
+						return;
+					} else {
+						//判断是否还有数据, 有改为 more, 没有改为noMore
+						that.loadingType = 'nomore';
+					}
+				}).catch(e => {
+					that.loadingType = 'loadmore';
+					console.log(e);
+				});
+			},// 页面下拉到底部加载
+			onReachBottom() {
+				this.ticketList()
+				console.log("dddd")
+			},
+			ticketList() {
+				const that = this// 获取项目对象
+				if (that.loadingType === 'loading') {
+					//防止重复加载
+					return;
+				}
+				if (that.loadingType === 'nomore') {
+					//防止重复加载
+					return;
+				}
+				// 修改当前对象状态为加载中
+				that.loadingType = 'loading';
+				const data = {page: this.page+1,limit: this.limit}
+				console.log(data);
+				getTicket(data)
+				.then(e => {
+					const data = e.data.list;
+					that.list = data
+					that.page++;
+					if (that.limit == data.length) {
+						//判断是否还有数据, 有改为 more, 没有改为noMore
+						that.loadingType = 'loadmore';
+						return;
+					} else {
+						//判断是否还有数据, 有改为 more, 没有改为noMore
+						that.loadingType = 'nomore';
+					}
+				}).catch(e => {
+					that.loadingType = 'loadmore';
+					console.log(e);
+				});
+			},
+			navTo(id) {
+				uni.navigateTo({
+					url: '/pages/apply/qrcode?id='+id
+				})
+			},
+			// 扫一扫
+			scanCode() {
+				console.log("===");
+				// const weichatObj = this.$store.state.weichatObj
+				console.log(weichatObj)
+				weichatObj.scanQRCode({
+					needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
+					scanType: ['qrCode', 'barCode'], // 可以指定扫二维码还是一维码,默认二者都有
+					success: function(res) {
+						console.log(res.resultStr);
+						// obj.orderVerific(res.resultStr); // 当needResult 为 1 时,扫码返回的结果
+						check({code: res.resultStr}).then(res => {
+							console.log(res);
+							this.scanCodeSuccessTo()
+						})
+					}
+				});
+			},
+			// 核销成功
+			scanCodeSuccessTo() {
+				const that = this
+				uni.showToast({
+					title: '核销成功',
+					duration: 2000,
+					position: 'top'
+				});
+			},
+			// 时间戳转换成时间
+			getTime(time) {
+				const num =13 - (time+'').length;
+				let l = 1;//倍数
+				for (let i = 0; i < num; i++) {
+					l+='0';
+				}
+				// 重新解析为数字
+				l = parseInt(l)
+				const date = new Date(parseInt(time) * l);
+				const year = date.getFullYear();
+				const mon = date.getMonth() + 1;
+				const day = date.getDate();
+				const hours = date.getHours();
+				const minu = date.getMinutes();
+				const sec = date.getSeconds();
+				return year + '-' + mon + '-' + day + ' ' + hours + ':' + minu + ':' + sec;
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.tico {
+		color: #999;
+	}
+	.nav {
+		display: flex;
+		justify-content: space-around;
+		background-color: #fff;
+		.isclick {
+			color: #3b66f5;
+			border-bottom: solid 5rpx #3b66f5;
+		}
+		.item {
+			padding: 20rpx;
+		}
+	}
+	.letter {
+		margin: 30rpx;
+		padding: 20rpx;
+		background-color: #fff;
+		border-radius: 10rpx;
+		box-shadow:2rpx 2rpx 20rpx  #dedede;
+		.header {
+			display: flex;
+			justify-content: space-between;
+			.left {
+				color: #999;
+			}
+			.right {
+				color: red;
+			}
+		}
+		.middle {
+			display: flex;
+			margin: 20rpx 0;
+			image {
+				width: 80rpx;
+				height: 80rpx;
+				margin: auto 0;
+			}
+			.inf {
+				margin: auto 20rpx;
+				text {
+					padding: 20rpx 0;
+				}
+				.name {
+					font-size: 30rpx;
+				}
+			}
+		}
+		.footer {
+			display: flex;
+			justify-content: space-between;
+			.button {
+				background-color: #3b66f5;
+				color: #fff;
+				padding: 6rpx 20rpx;
+				border-radius: 50rpx;
+			}
+		}
+	}
+	.jz {
+		text-align: center;
+		color: #999;
+	}
+	.headerNav {
+		background-color: #fff;
+		padding: 20rpx;
+		display: flex;
+		justify-content: space-between;
+	}
+	.uni_btnImage {
+		width: 50rpx;
+		height: 50rpx;
+	}
+</style>

BIN
static/img/92x.png


BIN
static/img/alertbg2.png


BIN
static/img/alertbg3.png


BIN
static/img/apply.png


BIN
static/img/bp1.png


BIN
static/img/bp2.png


BIN
static/img/cm.png


BIN
static/img/logo.png


BIN
static/img/s1.jpg


BIN
static/img/userAllb.png


BIN
static/img/userb.png


BIN
static/img/verification.png


+ 0 - 1
store/index.js

@@ -8,7 +8,6 @@ const store = new Vuex.Store({
 		// baseURL:"http://yrh.liuniu946.com",//'http://eb.shuibo.net',//请求地址配置 
 		baseURL:'http://vote.deepbytop.com',//请求地址配置 
 		urlFile:'/index',//项目部署所在文件夹
-		userInfo: {}, //登录信息
 		loginInterceptor:false,//是否打开强制登录
 		// #ifdef H5 || MP-WEIXIN
 		weichatInfo:{},//保存微信注册信息

+ 6 - 0
store/model/user.js

@@ -8,11 +8,13 @@ let state = {
 		unpaid_count: 0 //待付款
 	}, //订单信息
 	hasLogin: false, //是否登录
+	information: {} //申请后获取信息
 }
 
 let mutations = {
 	// 登录
 	login(state) {
+		console.log('登录完成');
 		state.hasLogin = true;
 	},
 	// 退出登录
@@ -47,6 +49,10 @@ let mutations = {
 	// 保存订单信息
 	setOrderInfo(state, provider) {
 		state.orderInfo = provider;
+	},
+	// 申请获取信息
+	setInformation(state, provider) {
+		state.information = provider;
 	}
 
 }

BIN
unpackage/dist.zip


BIN
unpackage/dist/build/h5/h5.rar


+ 1 - 1
unpackage/dist/build/h5/index.html

@@ -1,2 +1,2 @@
 <!DOCTYPE html><html lang=zh-CN><head><meta charset=utf-8><meta http-equiv=X-UA-Compatible content="IE=edge"><title>我要投票</title><script>var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
-            document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel=stylesheet href=/index/static/index.b0707a6a.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=/index/static/js/chunk-vendors.5fef9a39.js></script><script src=/index/static/js/index.575034fb.js></script></body></html>
+            document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')</script><link rel=stylesheet href=/index/static/index.a5c69d49.css></head><body><noscript><strong>Please enable JavaScript to continue.</strong></noscript><div id=app></div><script src=/index/static/js/chunk-vendors.ced84562.js></script><script src=/index/static/js/index.9df1e1ab.js></script></body></html>

BIN
unpackage/dist/build/h5/static/img/img02.a56a0368.jpg


BIN
unpackage/dist/build/h5/static/img/img02.jpg


BIN
unpackage/dist/build/h5/static/img/img02.png


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
unpackage/dist/build/h5/static/js/index.575034fb.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-activity-index.aa05f91f.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-activity-userInfo.867e66a7.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-activity-userInfo~pages-addTp-company~pages-addTp-user~pages-index.71a855c7.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-activity-userInfo~pages-addTp-company~pages-addTp-user~pages-index~pages-recharge-pay.66c91ae3.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-addTp-company.0197a6e8.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-addTp-company~pages-addTp-user.f358bee2.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-addTp-company~pages-addTp-user~pages-recharge-pay.b58bec58.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-addTp-user.019d6a86.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-index.86e8d209.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-public-forget.741dde1b.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-public-login.af7772e9.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-public-register.4cef4024.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-public-wxLogin.d57e4c0c.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-recharge-pay.e374285e.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
unpackage/dist/build/h5/static/js/pages-redirect-redirect.8320eebf.js


+ 2 - 2
utils/newRequest.js

@@ -48,7 +48,7 @@ let service = {
 			// 请求前数据处理
 			requestData = service.request.success(data);
 			// #ifdef H5
-			
+			console.log(process)
 			if(process.env.NODE_ENV === 'development'){
 				url= requestData.url;
 			    console.log('开发环境')
@@ -84,7 +84,7 @@ let service = {
 		})
 	},
 	// 上传文件
-	upFilse: async function(data) {
+	 upFilse: async function(data) {
 		return await new Promise(function(resolve, reject) {
 			let requestData = ''; //保存处理完成后请求数据
 			let url = '' //保存请求地址

+ 26 - 0
utils/wxAuthorized.js

@@ -106,6 +106,7 @@ export async function weixindata(config) {
 				}) => {
 					try {
 						// 保存appId
+						console.log(data)
 						appId = data.appId
 						// 微信信息配置
 						weixinObj.config({
@@ -218,6 +219,31 @@ function shareFun(config) {
 
 	}
 }
+
+// 扫码
+export function sanCode(config) {
+	try {
+		weixindata().then(e => {
+			sanCodeapi().then(res => {
+				console.log(res);
+				return res
+			})
+			// wx.checkJsApi({
+			// // jsApiList: ['scanQRCode'], // 需要检测的JS接口列表,所有JS接口列表见附录2,
+			// 	success: function(res) {
+			// 		console.log('返回信息')
+			// 		console.log(res)
+			// 		return res
+			// 		// 以键值对的形式返回,可用的api值true,不可用为false
+			// 		// 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
+			// 	}
+			// });
+		})
+	}catch (e) {
+		console.log('报错', e)
+		return e
+	}
+}
 // 保存路由对象
 export function setRouter(route) {
 	return new Promise((ok, err) => {

BIN
uview-ui.rar


Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff