Przeglądaj źródła

v1.0.0 线上迎新

4 lat temu
rodzic
commit
525f439247
100 zmienionych plików z 3710 dodań i 0 usunięć
  1. 17 0
      App.vue
  2. 196 0
      js_sdk/mmmm-image-tools/index.js
  3. 11 0
      js_sdk/mmmm-image-tools/package.json
  4. 13 0
      main.js
  5. 78 0
      manifest.json
  6. 5 0
      node_modules/exif-js/.npmignore
  7. 9 0
      node_modules/exif-js/CHANGELOG.md
  8. 21 0
      node_modules/exif-js/LICENSE.md
  9. 87 0
      node_modules/exif-js/README.md
  10. 23 0
      node_modules/exif-js/bower.json
  11. BIN
      node_modules/exif-js/example/Bloated-Hero.jpg
  12. BIN
      node_modules/exif-js/example/Bush-dog.jpg
  13. BIN
      node_modules/exif-js/example/DSCN0614_small.jpg
  14. BIN
      node_modules/exif-js/example/dsc_09827.jpg
  15. 53 0
      node_modules/exif-js/example/index.html
  16. 10 0
      node_modules/exif-js/exif.d.ts
  17. 1059 0
      node_modules/exif-js/exif.js
  18. 112 0
      node_modules/exif-js/index.html
  19. 68 0
      node_modules/exif-js/package.json
  20. BIN
      node_modules/exif-js/spec/Exif2-2.pdf
  21. 11 0
      package-lock.json
  22. 43 0
      pages.json
  23. 68 0
      pages/confirm/confirm.vue
  24. 145 0
      pages/confirm/css/confirm.css
  25. 1 0
      pages/confirm/css/confirm.min.css
  26. 153 0
      pages/confirm/css/confirm.scss
  27. 157 0
      pages/faceSearch/css/faceSea.css
  28. 1 0
      pages/faceSearch/css/faceSea.min.css
  29. 164 0
      pages/faceSearch/css/faceSea.scss
  30. 505 0
      pages/faceSearch/faceSea.vue
  31. 65 0
      pages/index/css/index.css
  32. 62 0
      pages/index/index.vue
  33. 54 0
      pages/map/map.vue
  34. 54 0
      pages/weiChat/weiChat.vue
  35. BIN
      static/images/card.png
  36. BIN
      static/images/change.png
  37. BIN
      static/images/head1.png
  38. BIN
      static/images/light.png
  39. BIN
      static/images/map.png
  40. BIN
      static/images/pay.png
  41. BIN
      static/images/showhead.png
  42. BIN
      static/images/take.png
  43. BIN
      static/images/付款成功.png
  44. BIN
      static/images/成功@2x.png
  45. BIN
      static/images/注意@2x.png
  46. BIN
      static/images/等待@2x.png
  47. BIN
      static/images/背景.png
  48. BIN
      static/images/背景2.png
  49. 21 0
      store/index.js
  50. 76 0
      uni.scss
  51. 4 0
      uni_modules/uni-icons/changelog.md
  52. 132 0
      uni_modules/uni-icons/components/uni-icons/icons.js
  53. 71 0
      uni_modules/uni-icons/components/uni-icons/uni-icons.vue
  54. BIN
      uni_modules/uni-icons/components/uni-icons/uni.ttf
  55. 82 0
      uni_modules/uni-icons/package.json
  56. 46 0
      uni_modules/uni-icons/readme.md
  57. 0 0
      unpackage/dist/build/.automator/h5/.automator.json
  58. 2 0
      unpackage/dist/build/h5/index.html
  59. BIN
      unpackage/dist/build/h5/static/images/card.png
  60. BIN
      unpackage/dist/build/h5/static/images/change.png
  61. BIN
      unpackage/dist/build/h5/static/images/head1.png
  62. BIN
      unpackage/dist/build/h5/static/images/light.png
  63. BIN
      unpackage/dist/build/h5/static/images/map.png
  64. BIN
      unpackage/dist/build/h5/static/images/pay.png
  65. BIN
      unpackage/dist/build/h5/static/images/showhead.png
  66. BIN
      unpackage/dist/build/h5/static/images/take.png
  67. BIN
      unpackage/dist/build/h5/static/images/付款成功.png
  68. BIN
      unpackage/dist/build/h5/static/images/成功@2x.png
  69. BIN
      unpackage/dist/build/h5/static/images/注意@2x.png
  70. BIN
      unpackage/dist/build/h5/static/images/等待@2x.png
  71. BIN
      unpackage/dist/build/h5/static/images/背景.png
  72. BIN
      unpackage/dist/build/h5/static/images/背景2.png
  73. BIN
      unpackage/dist/build/h5/static/img/card.91fc604e.png
  74. BIN
      unpackage/dist/build/h5/static/img/head1.9d46c7fe.png
  75. BIN
      unpackage/dist/build/h5/static/img/map.e587701e.png
  76. BIN
      unpackage/dist/build/h5/static/img/showhead.e1e3277f.png
  77. BIN
      unpackage/dist/build/h5/static/img/take.3666bbed.png
  78. BIN
      unpackage/dist/build/h5/static/img/背景.924f1693.png
  79. 1 0
      unpackage/dist/build/h5/static/index.d0f128df.css
  80. 13 0
      unpackage/dist/build/h5/static/js/chunk-vendors.5ab0e23a.js
  81. 1 0
      unpackage/dist/build/h5/static/js/index.0a5ca588.js
  82. 1 0
      unpackage/dist/build/h5/static/js/pages-confirm-confirm.d2984933.js
  83. 1 0
      unpackage/dist/build/h5/static/js/pages-faceSearch-faceSea.b547cd10.js
  84. 1 0
      unpackage/dist/build/h5/static/js/pages-index-index.64b277e1.js
  85. 1 0
      unpackage/dist/build/h5/static/js/pages-map-map.f3a1d99f.js
  86. 1 0
      unpackage/dist/build/h5/static/js/pages-weiChat-weiChat.befafa87.js
  87. 0 0
      unpackage/dist/dev/.automator/app-plus/.automator.json
  88. 0 0
      unpackage/dist/dev/.automator/mp-weixin/.automator.json
  89. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map
  90. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map
  91. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map
  92. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/confirm/confirm.js.map
  93. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/faceSearch/faceSea.js.map
  94. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map
  95. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/map/map.js.map
  96. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/pay/pay.js.map
  97. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/paySuccess/paySuccess.js.map
  98. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/pages/weiChat/weiChat.js.map
  99. 1 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js.map
  100. 0 0
      unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.js.map

+ 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>

+ 196 - 0
js_sdk/mmmm-image-tools/index.js

@@ -0,0 +1,196 @@
+function getLocalFilePath(path) {
+    if (path.indexOf('_www') === 0 || path.indexOf('_doc') === 0 || path.indexOf('_documents') === 0 || path.indexOf('_downloads') === 0) {
+        return path
+    }
+    if (path.indexOf('file://') === 0) {
+        return path
+    }
+    if (path.indexOf('/storage/emulated/0/') === 0) {
+        return path
+    }
+    if (path.indexOf('/') === 0) {
+        var localFilePath = plus.io.convertAbsoluteFileSystem(path)
+        if (localFilePath !== path) {
+            return localFilePath
+        } else {
+            path = path.substr(1)
+        }
+    }
+    return '_www/' + path
+}
+
+function dataUrlToBase64(str) {
+    var array = str.split(',')
+    return array[array.length - 1]
+}
+
+var index = 0
+function getNewFileId() {
+    return Date.now() + String(index++)
+}
+
+function biggerThan(v1, v2) {
+    var v1Array = v1.split('.')
+    var v2Array = v2.split('.')
+    var update = false
+    for (var index = 0; index < v2Array.length; index++) {
+        var diff = v1Array[index] - v2Array[index]
+        if (diff !== 0) {
+            update = diff > 0
+            break
+        }
+    }
+    return update
+}
+
+export function pathToBase64(path) {
+    return new Promise(function(resolve, reject) {
+        if (typeof window === 'object' && 'document' in window) {
+            if (typeof FileReader === 'function') {
+                var xhr = new XMLHttpRequest()
+                xhr.open('GET', path, true)
+                xhr.responseType = 'blob'
+                xhr.onload = function() {
+                    if (this.status === 200) {
+                        let fileReader = new FileReader()
+                        fileReader.onload = function(e) {
+                            resolve(e.target.result)
+                        }
+                        fileReader.onerror = reject
+                        fileReader.readAsDataURL(this.response)
+                    }
+                }
+                xhr.onerror = reject
+                xhr.send()
+                return
+            }
+            var canvas = document.createElement('canvas')
+            var c2x = canvas.getContext('2d')
+            var img = new Image
+            img.onload = function() {
+                canvas.width = img.width
+                canvas.height = img.height
+                c2x.drawImage(img, 0, 0)
+                resolve(canvas.toDataURL())
+                canvas.height = canvas.width = 0
+            }
+            img.onerror = reject
+            img.src = path
+            return
+        }
+        if (typeof plus === 'object') {
+            plus.io.resolveLocalFileSystemURL(getLocalFilePath(path), function(entry) {
+                entry.file(function(file) {
+                    var fileReader = new plus.io.FileReader()
+                    fileReader.onload = function(data) {
+                        resolve(data.target.result)
+                    }
+                    fileReader.onerror = function(error) {
+                        reject(error)
+                    }
+                    fileReader.readAsDataURL(file)
+                }, function(error) {
+                    reject(error)
+                })
+            }, function(error) {
+                reject(error)
+            })
+            return
+        }
+        if (typeof wx === 'object' && wx.canIUse('getFileSystemManager')) {
+            wx.getFileSystemManager().readFile({
+                filePath: path,
+                encoding: 'base64',
+                success: function(res) {
+                    resolve('data:image/png;base64,' + res.data)
+                },
+                fail: function(error) {
+                    reject(error)
+                }
+            })
+            return
+        }
+        reject(new Error('not support'))
+    })
+}
+
+export function base64ToPath(base64) {
+    return new Promise(function(resolve, reject) {
+        if (typeof window === 'object' && 'document' in window) {
+            base64 = base64.split(',')
+            var type = base64[0].match(/:(.*?);/)[1]
+            var str = atob(base64[1])
+            var n = str.length
+            var array = new Uint8Array(n)
+            while (n--) {
+                array[n] = str.charCodeAt(n)
+            }
+            return resolve((window.URL || window.webkitURL).createObjectURL(new Blob([array], { type: type })))
+        }
+        var extName = base64.split(',')[0].match(/data\:\S+\/(\S+);/)
+        if (extName) {
+            extName = extName[1]
+        } else {
+            reject(new Error('base64 error'))
+        }
+        var fileName = getNewFileId() + '.' + extName
+        if (typeof plus === 'object') {
+            var basePath = '_doc'
+            var dirPath = 'uniapp_temp'
+            var filePath = basePath + '/' + dirPath + '/' + fileName
+            if (!biggerThan(plus.os.name === 'Android' ? '1.9.9.80627' : '1.9.9.80472', plus.runtime.innerVersion)) {
+                plus.io.resolveLocalFileSystemURL(basePath, function(entry) {
+                    entry.getDirectory(dirPath, {
+                        create: true,
+                        exclusive: false,
+                    }, function(entry) {
+                        entry.getFile(fileName, {
+                            create: true,
+                            exclusive: false,
+                        }, function(entry) {
+                            entry.createWriter(function(writer) {
+                                writer.onwrite = function() {
+                                    resolve(filePath)
+                                }
+                                writer.onerror = reject
+                                writer.seek(0)
+                                writer.writeAsBinary(dataUrlToBase64(base64))
+                            }, reject)
+                        }, reject)
+                    }, reject)
+                }, reject)
+                return
+            }
+            var bitmap = new plus.nativeObj.Bitmap(fileName)
+            bitmap.loadBase64Data(base64, function() {
+                bitmap.save(filePath, {}, function() {
+                    bitmap.clear()
+                    resolve(filePath)
+                }, function(error) {
+                    bitmap.clear()
+                    reject(error)
+                })
+            }, function(error) {
+                bitmap.clear()
+                reject(error)
+            })
+            return
+        }
+        if (typeof wx === 'object' && wx.canIUse('getFileSystemManager')) {
+            var filePath = wx.env.USER_DATA_PATH + '/' + fileName
+            wx.getFileSystemManager().writeFile({
+                filePath: filePath,
+                data: dataUrlToBase64(base64),
+                encoding: 'base64',
+                success: function() {
+                    resolve(filePath)
+                },
+                fail: function(error) {
+                    reject(error)
+                }
+            })
+            return
+        }
+        reject(new Error('not support'))
+    })
+}

+ 11 - 0
js_sdk/mmmm-image-tools/package.json

@@ -0,0 +1,11 @@
+{
+    "id": "mmmm-image-tools",
+    "name": "image-tools",
+    "version": "1.4.0",
+    "description": "图像转换工具,可用于图像和base64的转换",
+    "keywords": [
+        "base64",
+        "保存",
+        "图像"
+    ]
+}

+ 13 - 0
main.js

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

+ 78 - 0
manifest.json

@@ -0,0 +1,78 @@
+{
+    "name" : "迎新",
+    "appid" : "__UNI__722AE3C",
+    "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" : "",
+        "setting" : {
+            "urlCheck" : false
+        },
+        "usingComponents" : true
+    },
+    "mp-alipay" : {
+        "usingComponents" : true
+    },
+    "mp-baidu" : {
+        "usingComponents" : true
+    },
+    "mp-toutiao" : {
+        "usingComponents" : true
+    },
+    "uniStatistics" : {
+        "enable" : false
+    },
+    "h5" : {
+        "title" : "迎新",
+        "domain" : "https://jtishfw.ncjti.edu.cn/yinxin/ncjtSecurityManagement/",
+        "router" : {
+            "base" : "./"
+        }
+    }
+}

+ 5 - 0
node_modules/exif-js/.npmignore

@@ -0,0 +1,5 @@
+.*.swp
+.DS_Store
+/.vimproject
+/Session.vim
+/node_modules

+ 9 - 0
node_modules/exif-js/CHANGELOG.md

@@ -0,0 +1,9 @@
+# Changelog
+
+## v2.1.1 07/08/2015
+
+*No changelog for this release.*
+
+## v2.2.0 31/03/2017
+
+Issue #69 #72: Added IPTC methods. New NPM release.

+ 21 - 0
node_modules/exif-js/LICENSE.md

@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2008 Jacob Seidelin
+
+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.

+ 87 - 0
node_modules/exif-js/README.md

@@ -0,0 +1,87 @@
+# Exif.js
+
+A JavaScript library for reading [EXIF meta data](https://en.wikipedia.org/wiki/Exchangeable_image_file_format) from image files.
+
+You can use it on images in the browser, either from an image or a file input element. Both EXIF and IPTC metadata are retrieved.
+This package can also be used in AMD or CommonJS environments.
+
+**Note**: The EXIF standard applies only to `.jpg` and `.tiff` images. EXIF logic in this package is based on the EXIF standard v2.2 ([JEITA CP-3451, included in this repo](/spec/Exif2-2.pdf)).
+
+## Install
+Install `exif-js` through [NPM](https://www.npmjs.com/#getting-started):
+
+    npm install exif-js --save    
+
+Or [Bower](http://bower.io/):
+
+    bower install exif-js --save
+
+Then add a `script` tag in your an HTML in the [best position](http://stackoverflow.com/questions/436411/where-is-the-best-place-to-put-script-tags-in-html-markup) referencing your local file.
+
+    <script src="vendors/exif-js/exif-js"></script>
+
+**Note**: This repo has no `.min.js`. Do your own [minification](https://en.wikipedia.org/wiki/Minification_(programming)) if you want that.
+
+If you prefer another package manager you will probably manage :D. Or you can clone this GIT repository or download it's ZIP file and extract `exif.js` to your project.
+
+## Usage
+The package adds a global `EXIF` variable (or AMD or CommonJS equivalent).
+
+Start with calling the `EXIF.getData` function. You pass it an image as a parameter:
+- either an image from a `<img src="image.jpg">`
+- OR a user selected image in a `<file type="input">` element on your page.
+
+As a second parameter you specify a callback function. In the callback function you should use `this` to access the image with the aforementioned metadata you can then use as you want.
+That image now has an extra `exifdata` property which is a Javascript object with the EXIF metadata. You can access it's properties to get data like the *image caption*, the *date a photo was taken* or it's *orientation*.
+
+You can get all tages with `EXIF.getTag`. Or get a single tag with `EXIF.getTag`, where you specify the tag as the second parameter.
+The tag names to use are listed in `EXIF.Tags` in `exif.js`.
+
+**Important**: Note that you have to wait for the image to be completely loaded, before calling `getData` or any other function. It will silently fail otherwise.
+You can implement this wait, by running your exif-extracting logic on the `window.onLoad` function. Or on an image's own `onLoad` function.
+For jQuery users please note that you can NOT (reliably) use jQuery's `ready` event for this. Because it fires before images are loaded.
+You could use $(window).load() instead of $(document.ready() (please note that `exif-js has NO dependency on jQuery or any other external library). 
+ 
+**JavaScript**:
+```javascript
+window.onload=getExif;
+
+function getExif() {
+    var img1 = document.getElementById("img1");
+    EXIF.getData(img1, function() {
+        var make = EXIF.getTag(this, "Make");
+        var model = EXIF.getTag(this, "Model");
+        var makeAndModel = document.getElementById("makeAndModel");
+        makeAndModel.innerHTML = `${make} ${model}`;
+    });
+
+    var img2 = document.getElementById("img2");
+    EXIF.getData(img2, function() {
+        var allMetaData = EXIF.getAllTags(this);
+        var allMetaDataSpan = document.getElementById("allMetaDataSpan");
+        allMetaDataSpan.innerHTML = JSON.stringify(allMetaData, null, "\t");
+    });
+}
+```
+
+**HTML**:
+```html
+<img src="image1.jpg" id="img1" />
+<pre>Make and model: <span id="makeAndModel"></span></div>
+<br/>
+<img src="image2.jpg" id="img2" />
+<pre id="allMetaDataSpan"></pre>
+<br/>
+```
+
+Note there are also alternate tags, such the `EXIF.TiffTags`. See the source code for the full definition and use.
+You can also get back a string with all the EXIF information in the image pretty printed by using `EXIF.pretty`.
+Check the included [index.html](/exif-js/exif-js/blob/master/index.html).
+
+Please refer to the [source code](exif.js) for more advanced usages such as getting image data from a [File/Blob](https://developer.mozilla.org/en/docs/Web/API/Blob) object (`EXIF.readFromBinaryFile`).
+
+## Contributions
+This is an [open source project](LICENSE.md). Please contribute by forking this repo and issueing a pull request. The project has had notable contributions already, like reading ITPC data.
+
+You can also contribute by [filing bugs or new features please issue](/exif-js/issues).
+Or improve the documentation. Please update this README when you do a pull request of proposed changes in base functionality.

+ 23 - 0
node_modules/exif-js/bower.json

@@ -0,0 +1,23 @@
+{
+  "name": "exif-js",
+  "version": "2.2.2",
+  "homepage": "https://github.com/exif-js/exif-js",
+  "authors": [
+    "Jacob Seidelin"
+  ],
+  "description": "JavaScript library for reading EXIF image metadata",
+  "main": "exif.js",
+  "keywords": [
+    "exif"
+  ],
+  "license": "MIT",
+  "ignore": [
+    "**/.*",
+    "node_modules",
+    "bower_components",
+    "test",
+    "tests",
+    "spec",
+    "example"
+  ]
+}

BIN
node_modules/exif-js/example/Bloated-Hero.jpg


BIN
node_modules/exif-js/example/Bush-dog.jpg


BIN
node_modules/exif-js/example/DSCN0614_small.jpg


BIN
node_modules/exif-js/example/dsc_09827.jpg


+ 53 - 0
node_modules/exif-js/example/index.html

@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta http-equiv="X-UA-Compatible" content="ie=edge">
+    <title>EXIF example with inline EXIF info</title>
+</head>
+<body>
+
+    <img src="DSCN0614_small.jpg" id="img1" />
+    <pre>Make and model: <span id="makeAndModel"></span></div>
+    <br/>
+
+    <img src="Bush-dog.jpg" id="img2" />
+    <pre id="allMetaDataSpan"></pre>
+    <br/>
+
+    <img src="Bloated-Hero.jpg" id="img3" /><br/>
+    <pre id="img3WithXmpMetaData"></pre>
+
+    <script type="text/javascript" src="../exif.js"></script>
+    <script>
+        "use strict";
+        window.onload=getExif;
+
+        function getExif() {
+            var img1 = document.getElementById("img1");
+            EXIF.getData(img1, function() {
+                var make = EXIF.getTag(this, "Make");
+                var model = EXIF.getTag(this, "Model");
+                var makeAndModel = document.getElementById("makeAndModel");
+                makeAndModel.innerHTML = `${make} ${model}`;
+            });
+
+            var img2 = document.getElementById("img2");
+            EXIF.getData(img2, function() {
+                var allMetaData = EXIF.getAllTags(this);
+                var allMetaDataSpan = document.getElementById("allMetaDataSpan");
+                allMetaDataSpan.innerHTML = JSON.stringify(allMetaData, null, "\t");
+            });
+
+            var img3 = document.getElementById("img3");
+            // EXIF.enableXmp();
+            EXIF.getData(img3, function() {
+                var allMetaData = EXIF.getAllTags(this);
+                var img3WithXmpMetaData = document.getElementById("img3WithXmpMetaData");
+                img3WithXmpMetaData.innerHTML = JSON.stringify(allMetaData, null, "\t");
+            });
+        }
+    </script>
+</body>
+</html>

+ 10 - 0
node_modules/exif-js/exif.d.ts

@@ -0,0 +1,10 @@
+interface EXIFStatic {
+    getData(url: string, callback: any): any;
+    getTag(img: any, tag: any): any;
+    getAllTags(img: any): any;
+    pretty(img: any): string;
+    readFromBinaryFile(file: any): any;
+}
+
+declare var EXIF : EXIFStatic;
+export = EXIF;

Plik diff jest za duży
+ 1059 - 0
node_modules/exif-js/exif.js


Plik diff jest za duży
+ 112 - 0
node_modules/exif-js/index.html


+ 68 - 0
node_modules/exif-js/package.json

@@ -0,0 +1,68 @@
+{
+  "_from": "exif-js",
+  "_id": "exif-js@2.3.0",
+  "_inBundle": false,
+  "_integrity": "sha1-nRCBm/Vx+HOBPnZAJBJVq5zhqBQ=",
+  "_location": "/exif-js",
+  "_phantomChildren": {},
+  "_requested": {
+    "type": "tag",
+    "registry": true,
+    "raw": "exif-js",
+    "name": "exif-js",
+    "escapedName": "exif-js",
+    "rawSpec": "",
+    "saveSpec": null,
+    "fetchSpec": "latest"
+  },
+  "_requiredBy": [
+    "#USER",
+    "/"
+  ],
+  "_resolved": "https://registry.npmjs.org/exif-js/-/exif-js-2.3.0.tgz",
+  "_shasum": "9d10819bf571f873813e7640241255ab9ce1a814",
+  "_spec": "exif-js",
+  "_where": "/Users/liran/Desktop/桌面 - 树.的MacBook Pro/HBuilderProjects/迎新",
+  "author": {
+    "name": "Jacob Seidelin"
+  },
+  "bugs": {
+    "url": "https://github.com/exif-js/exif-js/issues"
+  },
+  "bundleDependencies": false,
+  "deprecated": false,
+  "description": "JavaScript library for reading EXIF image metadata",
+  "devDependencies": {
+    "bower": "^1.4.2",
+    "mversion": "^1.10.0"
+  },
+  "directories": {
+    "example": "example"
+  },
+  "homepage": "https://github.com/exif-js/exif-js",
+  "ignore": [
+    "**/.*",
+    "node_modules",
+    "bower_components",
+    "test",
+    "tests",
+    "spec",
+    "example"
+  ],
+  "keywords": [
+    "exif"
+  ],
+  "license": "MIT",
+  "main": "exif.js",
+  "maintainers": [
+    {
+      "name": "Roald de Vries"
+    }
+  ],
+  "name": "exif-js",
+  "repository": {
+    "type": "git",
+    "url": "git+https://github.com/exif-js/exif-js.git"
+  },
+  "version": "2.3.0"
+}

BIN
node_modules/exif-js/spec/Exif2-2.pdf


+ 11 - 0
package-lock.json

@@ -0,0 +1,11 @@
+{
+  "requires": true,
+  "lockfileVersion": 1,
+  "dependencies": {
+    "exif-js": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/exif-js/-/exif-js-2.3.0.tgz",
+      "integrity": "sha1-nRCBm/Vx+HOBPnZAJBJVq5zhqBQ="
+    }
+  }
+}

+ 43 - 0
pages.json

@@ -0,0 +1,43 @@
+{
+	"pages": [ 
+		{
+			"path": "pages/faceSearch/faceSea",
+			"style":{
+				"navigationBarTitleText": "人脸采集"
+			}
+		},
+		{
+			"path": "pages/index/index",
+			"style": {
+				"navigationBarTitleText": "迎新首页"
+			}
+		},
+		{
+			"path": "pages/confirm/confirm",
+			"style":{
+				"navigationBarTitleText": "信息确认",
+				"navigationBarBackgroundColor": "white",
+				"navigationStyle": "custom"
+			}
+		},
+		{
+			"path": "pages/weiChat/weiChat",
+			"style":{
+				"navigationBarTitleText": "临时卡领取"	
+			}
+		},  
+		{
+			"path": "pages/map/map",
+			"style":{
+				"navigationBarTitleText": "地图导览"	
+			}
+		} 
+    ],
+	"globalStyle": {
+		"navigationBarTextStyle": "black",
+		"navigationBarTitleText": "迎新",
+		"navigationBarBackgroundColor": "#f7f7f7",
+		"backgroundColor": "#ffffff"
+	}
+	
+}

+ 68 - 0
pages/confirm/confirm.vue

@@ -0,0 +1,68 @@
+<template>
+  <view class="content">
+    <view class="status_bar">
+      <!-- 这里是状态栏 -->
+    </view>
+    <view class="navBar">
+      <view class="back" @click="back()"></view>
+      <text>信息确认</text>
+    </view>
+    <!-- 叠层背景 -->
+    <view class="messageBg1"></view>
+    <view class="messageBg2"></view>
+    <!-- 信息卡 -->
+    <view class="messageCard">
+      <view class="detail">
+        <view class="head">
+          <view></view>
+          <text>个人信息</text>
+        </view>
+        <text class="name mes">姓名:{{ name }}</text>
+        <text class="sex mes">姓别:{{ sex }}</text>
+        <text class="examNumber mes">准考证号:{{ examNumber }}</text>
+        <text class="idNumber mes">身份证号:{{ idnum }}</text>
+      </view>
+      <button class="confirm" @click="confirm">我已确认</button>
+      <text class="footer"
+        >如信息有误,或有其他疑问,请联系校招生办,联系电话:0791-82121208</text
+      >
+    </view>
+  </view>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      name: "",
+      sex: "",
+      examNumber: "",
+      idnum: "",
+    };
+  },
+  created() {
+    this.name = this.$store.state.name;
+    this.sex = this.$store.state.sex;
+    this.examNumber = this.$store.state.examNumber;
+    this.idnum = this.$store.state.idnum;
+  },
+  methods: {
+    confirm() {
+      let that = this;
+      uni.navigateTo({
+        url: "../index/index",
+      });
+      setTimeout(() => {
+        let webUrl = "https://wj.qq.com/s2/8767613/e476?openid=";
+        let openid = that.idnum;
+        let url = webUrl + openid;
+        window.location.href = url;
+      }, 500);
+    },
+  },
+};
+</script>
+
+<style scoped lang="scss">
+@import url("./css/confirm.min.css");
+</style>

+ 145 - 0
pages/confirm/css/confirm.css

@@ -0,0 +1,145 @@
+@charset "UTF-8";
+page {
+  height: 100%;
+}
+
+.content {
+  position: relative;
+  width: 100%;
+  height: 100%;
+  font-family: "MicrosoftYaHei";
+  font-weight: 400;
+  background-image: url(../../static/images/背景.png);
+  background-size: 100% 100%;
+  background-attachment: fixed;
+}
+
+.content background-repeat:no-repeat
+.status_bar {
+  position: fixed;
+  top: 0;
+  height: var(--status-bar-height);
+  width: 100%;
+  background: #f8f8f8;
+  z-index: 1000;
+}
+
+.content .navBar {
+  position: fixed;
+  top: 0;
+  left: 0;
+  width: 750rpx;
+  height: 55rpx;
+  margin-top: 34rpx;
+  color: #fff;
+  font-weight: bold;
+  background-color: rbga(0, 0, 0, 0.1);
+  text-align: center;
+  line-height: 55rpx;
+}
+
+.content .navBar .back {
+  display: inline-block;
+  position: absolute;
+  top: 16rpx;
+  left: 30rpx;
+  width: 10px;
+  height: 10px;
+  border: none;
+  border-bottom: 4rpx solid #fff;
+  border-left: 4rpx solid #fff;
+  transform: rotate(45deg);
+  text-align: center;
+}
+
+.content .messageCard {
+  position: absolute;
+  top: 330rpx;
+  left: 36rpx;
+  width: 678rpx;
+  height: 680rpx;
+  background: #fff;
+  border-radius: 14rpx;
+  box-sizing: border-box;
+}
+
+.content .messageCard .detail {
+  display: flex;
+  flex-direction: column;
+  justify-content: space-between;
+  width: 578rpx;
+  height: 300rpx;
+  margin-top: 50rpx;
+  margin-left: 50rpx;
+}
+
+.content .messageCard .detail .head {
+  display: flex;
+  justify-content: flex-start;
+}
+
+.content .messageCard .detail .head view {
+  width: 8rpx;
+  height: 30rpx;
+  background: #6EAFF0;
+  margin-top: 12rpx;
+  margin-right: 19rpx;
+}
+
+.content .messageCard .detail .head text {
+  font-size: 32rpx;
+  font-weight: bold;
+  color: #333333;
+  line-height: 54rpx;
+}
+
+.content .messageCard .detail .mes {
+  font-size: 28rpx;
+  line-height: 54rpx;
+}
+
+.content .messageCard .confirm {
+  width: 322rpx;
+  height: 80rpx;
+  background: #6EAFF0;
+  border-radius: 10rpx;
+  margin: 0 auto;
+  font-size: 28rpx;
+  color: #FFFFFF;
+  line-height: 80rpx;
+  text-align: center;
+  margin-top: 100rpx;
+}
+
+.content .messageCard .footer {
+  display: block;
+  width: 578rpx;
+  height: 63rpx;
+  margin: 0 auto;
+  margin-top: 38rpx;
+  font-size: 24rpx;
+  color: #B3B3B3;
+  line-height: 40rpx;
+}
+
+.content .messageBg1 {
+  position: absolute;
+  top: 344rpx;
+  left: 51rpx;
+  width: 648rpx;
+  height: 680rpx;
+  background: #FFFFFF;
+  opacity: 0.7;
+  border-radius: 14rpx;
+}
+
+.content .messageBg2 {
+  position: absolute;
+  top: 357rpx;
+  left: 58rpx;
+  width: 634rpx;
+  height: 680rpx;
+  background: #FFFFFF;
+  opacity: 0.5;
+  border-radius: 14rpx;
+}

Plik diff jest za duży
+ 1 - 0
pages/confirm/css/confirm.min.css


+ 153 - 0
pages/confirm/css/confirm.scss

@@ -0,0 +1,153 @@
+  page {
+      height: 100%;
+  }
+  .content {
+      position: relative;
+      width: 100%;
+      height: 100%;
+      font-family: "MicrosoftYaHei";
+      font-weight: 400;
+      background-image: url(../../static/images/背景.png);
+      background-size:100% 100%;
+      background-attachment: fixed;
+      background-repeat:no-repeat
+    .status_bar {
+            position: fixed;
+            top: 0;
+            height: var(--status-bar-height);
+            width: 100%;
+            background: #f8f8f8;
+            z-index: 1000;
+        }
+        .navBar{
+            position: fixed;
+            top: 0;
+            left: 0;
+            width: 750rpx;
+            height: 55rpx;
+            margin-top: 34rpx;
+            color: #fff;
+            font-weight: bold;
+            background-color: rbga(0,0,0,0.1);
+            text-align: center;
+            line-height: 55rpx;
+            .back{
+                display: inline-block;
+                position: absolute;
+                top: 16rpx;
+                left:30rpx ;
+                width: 10px;
+                height: 10px;
+                border: none;
+                border-bottom: 4rpx solid #fff;
+                border-left: 4rpx solid #fff;
+                transform: rotate(45deg);
+                text-align: center;
+                
+            }
+        }
+    //   .bgImg {
+    //       position: absolute;
+    //       left: 0;
+    //       top: 0;
+    //       z-index: 1000;
+    //       width: 100%;
+    //       height: 100%;
+
+		  
+    //   }
+
+      .messageCard {
+          position: absolute;
+          top: 330rpx;
+          left: 36rpx;
+          width: 678rpx;
+          height: 680rpx;
+          background: #fff;
+          border-radius: 14rpx;
+          box-sizing: border-box;
+
+          .detail {
+              display: flex;
+              flex-direction: column;
+              justify-content: space-between;
+              width: 578rpx;
+              height: 300rpx;
+              margin-top: 50rpx;
+              margin-left: 50rpx;
+
+              .head {
+                  display: flex;
+                  justify-content: flex-start;
+
+                  view {
+                      width: 8rpx;
+                      height: 30rpx;
+                      background: #6EAFF0;
+                      margin-top: 12rpx;
+                      margin-right: 19rpx;
+                  }
+
+                  text {
+                      font-size: 32rpx;
+                      font-weight: bold;
+                      color: #333333;
+                      line-height: 54rpx;
+                  }
+              }
+
+              .mes {
+                  font-size: 28rpx;
+                  line-height: 54rpx;
+              }
+          }
+
+          .confirm {
+              width: 322rpx;
+              height: 80rpx;
+              background: #6EAFF0;
+              border-radius: 10rpx;
+              margin: 0 auto;
+              font-size: 28rpx;
+              color: #FFFFFF;
+              line-height: 80rpx;
+              text-align: center;
+              margin-top: 100rpx;
+          }
+
+          .footer {
+              display: block;
+              width: 578rpx;
+              height: 63rpx;
+              margin: 0 auto;
+              margin-top: 38rpx;
+              font-size: 24rpx;
+              color: #B3B3B3;
+              line-height: 40rpx;
+
+          }
+      }
+
+      .messageBg1 {
+          position: absolute;
+          top: 344rpx;
+          left: 51rpx;
+          width: 648rpx;
+          height: 680rpx;
+          background: #FFFFFF;
+          opacity: 0.7;
+          border-radius: 14rpx;
+      }
+
+      .messageBg2 {
+          position: absolute;
+          top: 357rpx;
+          left: 58rpx;
+          width: 634rpx;
+          height: 680rpx;
+          background: #FFFFFF;
+          opacity: 0.5;
+          border-radius: 14rpx;
+      }
+
+  }

+ 157 - 0
pages/faceSearch/css/faceSea.css

@@ -0,0 +1,157 @@
+.content {
+  display: flex;
+  flex-direction: column;
+  justify-content: flex-start;
+  width: 100%;
+  height: 100%;
+  background: #fff;
+  font-family: "MicrosoftYaHei";
+}
+
+.content .cameraField {
+  position: relative;
+  width: 750rpx;
+  height: 1000rpx;
+  background: #6EAFF0;
+  z-index: 2;
+  overflow: hidden;
+}
+
+.content .cameraField canvas {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  border-radius: 5rpx;
+  z-index: 3;
+}
+
+.content .cameraField .hint {
+  position: absolute;
+  top: 45rpx;
+  left: 223rpx;
+  width: 301rpx;
+  height: 72rpx;
+  color: #fff;
+  font-size: 32rpx;
+  background: rgba(0, 0, 0, 0.33);
+  border-radius: 36rpx;
+  text-align: center;
+  line-height: 72rpx;
+  box-sizing: border-box;
+  z-index: 4;
+}
+
+.content .cameraField .hint image {
+  max-width: 30rpx;
+  max-height: 30rpx;
+  vertical-align: middle;
+  margin-right: 15rpx;
+  margin-bottom: 4rpx;
+}
+
+.content .cameraField .uploading {
+  display: flex;
+  position: absolute;
+  top: 251rpx;
+  left: 244rpx;
+  flex-direction: column;
+  justify-content: space-around;
+  width: 263rpx;
+  height: 296rpx;
+  font-size: 24rpx;
+  border-radius: 10rpx;
+  background: rgba(0, 0, 0, 0.33);
+  box-sizing: border-box;
+  z-index: 4;
+}
+
+.content .cameraField .uploading image {
+  max-width: 60rpx;
+  max-height: 60rpx;
+  text-align: center;
+  margin-left: 102rpx;
+  margin-top: 40rpx;
+  animation: myMove 2s linear infinite normal;
+}
+
+@keyframes myMove {
+  0% {
+    transform: rotate(0deg);
+  }
+  25% {
+    transform: rotate(90deg);
+  }
+  50% {
+    transform: rotate(180deg);
+  }
+  75% {
+    transform: rotate(270deg);
+  }
+  100% {
+    transform: rotate(360deg);
+  }
+}
+
+.content .cameraField .uploading text {
+  margin-bottom: 30rpx;
+  color: #fff;
+  text-align: center;
+}
+
+.content .cameraField .head {
+  position: absolute;
+  bottom: 16%;
+  left: 50%;
+  transform: translateX(-376rpx);
+  width: 750rpx;
+  height: 620rpx;
+  z-index: 5;
+}
+
+.content .controlField {
+  width: 750rpx;
+  color: #fff;
+}
+
+.content .controlField .control1 {
+  display: flex;
+  justify-content: space-between;
+  width: 550rpx;
+  height: 150rpx;
+  margin: 0 auto;
+  margin-top: 40rpx;
+}
+
+.content .controlField .control1 .light,
+.content .controlField .control1 .change {
+  max-height: 70rpx;
+  max-width: 70rpx;
+  margin-top: 40rpx;
+  text-align: center;
+}
+
+.content .controlField .control1 .take {
+  max-height: 150rpx;
+  max-width: 150rpx;
+}
+
+.content .controlField .control2 {
+  display: flex;
+  justify-content: space-between;
+  width: 600rpx;
+  height: 150rpx;
+  margin: 0 auto;
+  margin-top: 70rpx;
+}
+
+.content .controlField .control2 view {
+  width: 170rpx;
+  height: 80rpx;
+  background: #6EAFF0;
+  font-size: 32rpx;
+  text-align: center;
+  line-height: 80rpx;
+  border-radius: 10rpx;
+}

Plik diff jest za duży
+ 1 - 0
pages/faceSearch/css/faceSea.min.css


+ 164 - 0
pages/faceSearch/css/faceSea.scss

@@ -0,0 +1,164 @@
+ .content {
+     display: flex;
+     flex-direction: column;
+     justify-content: flex-start;
+     width: 100%;
+     height: 100%;
+     background: #fff;
+     font-family: "MicrosoftYaHei";
+    
+     .cameraField {
+         position: relative;
+         width: 750rpx;
+         height: 1000rpx;
+         background: #6EAFF0;
+         z-index: 2;
+         overflow: hidden;
+         canvas{
+             position: absolute;
+             top: 0;
+             left: 0;
+             width: 100%;
+             height: 100%; 
+             border-radius: 5rpx;
+             z-index: 3;
+         }
+
+         .hint {
+             position: absolute;
+             top: 45rpx;
+             left: 223rpx;
+             width: 301rpx;
+             height: 72rpx;
+             color: #fff;
+             font-size: 32rpx;
+             background: rgba($color: #000000, $alpha: .33);
+             border-radius: 36rpx;
+             text-align: center;
+             line-height: 72rpx;
+             box-sizing: border-box;
+             z-index: 4;
+
+             image {
+                 max-width: 30rpx;
+                 max-height: 30rpx;
+                 vertical-align: middle;
+                 margin-right: 15rpx;
+                 margin-bottom: 4rpx;
+             }
+         }
+
+         .uploading {
+             display: flex;
+             position: absolute;
+             top: 251rpx;
+             left: 244rpx;
+             flex-direction: column;
+             justify-content: space-around;
+             width: 263rpx;
+             height: 296rpx;
+             font-size: 24rpx;
+             border-radius: 10rpx;
+             background: rgba($color: #000000, $alpha: .33);
+             box-sizing: border-box;
+             z-index: 4;
+
+             image {
+                 max-width: 60rpx;
+                 max-height: 60rpx;
+                 text-align: center;
+                 margin-left: 102rpx;
+                 margin-top: 40rpx;
+                 animation: myMove 2s linear infinite normal;
+
+                 @keyframes myMove {
+                     0% {
+                         transform: rotate(0deg);
+                     }
+
+                     25% {
+                         transform: rotate(90deg);
+                     }
+
+                     50% {
+                         transform: rotate(180deg);
+                     }
+
+                     75% {
+                         transform: rotate(270deg);
+                     }
+
+                     100% {
+                         transform: rotate(360deg);
+                     }
+                 }
+             }
+
+             text {
+                 margin-bottom: 30rpx;
+                 color: #fff;
+                 text-align: center;
+             }
+         }
+
+         .head {
+             position: absolute;
+             bottom: 16%;
+             left: 50%;
+             transform: translateX(-376rpx);
+             width: 750rpx;
+             height: 620rpx;
+            
+             z-index: 5;
+         }
+     }
+
+     .controlField {
+         width: 750rpx;
+        //  height: 447rpx;
+         color: #fff;
+
+         .control1 {
+             display: flex;
+             justify-content: space-between;
+             width: 550rpx;
+             height: 150rpx;
+             margin: 0 auto;
+            //  margin-top: 130rpx;
+            margin-top: 40rpx;
+
+             .light,
+             .change {
+                 max-height: 70rpx;
+                 max-width: 70rpx;
+                 margin-top: 40rpx;
+                 text-align: center;
+             }
+
+             .take {
+                 max-height: 150rpx;
+                 max-width: 150rpx;
+             }
+         }
+
+         .control2 {
+             display: flex;
+             justify-content: space-between;
+             width: 600rpx;
+             height: 150rpx;
+             margin: 0 auto;
+            //  margin-top: 130rpx;
+            margin-top: 70rpx;
+
+             view {
+                 width: 170rpx;
+                 height: 80rpx;
+                 background: #6EAFF0;
+                 font-size: 32rpx;
+                 text-align: center;
+                 line-height: 80rpx;
+                 border-radius: 10rpx;
+             }
+         }
+     }
+ }

+ 505 - 0
pages/faceSearch/faceSea.vue

@@ -0,0 +1,505 @@
+<template>
+  <view class="content">
+    <!-- 拍照区域 -->
+    <view class="cameraField">
+      <!-- 上传的人脸图片 -->
+      <canvas
+        canvas-id="canvas"
+        id="canvas"
+        type="2d"
+        style="width: 100%; height: 100%"
+      ></canvas>
+      <!-- 提示框 -->
+      <view class="hint" v-if="isShow3">
+        <image :src="hintImage" />
+        {{ hintWord }}
+      </view>
+      <!-- “上传中”提示框 -->
+      <view class="uploading" v-if="isShow4">
+        <image src="../../static/images/等待@2x.png" mode="scaleToFill" />
+        <text>人脸匹配中...</text>
+      </view>
+      <!-- 头像限制框    -->
+      <image
+        class="head"
+        src="../../static/images/head1.png"
+        mode="scaleToFill"
+      />
+    </view>
+    <!-- 控件区域 -->
+    <view class="controlField">
+      <!-- 拍照控件 -->
+      <view class="control1" v-if="isShow1">
+        <view>
+          <image class="light" src="../../static/images/light.png" />
+        </view>
+        <view @click="takePhoto()">
+          <image class="take" src="../../static/images/take.png" />
+        </view>
+        <view>
+          <image class="change" src="../../static/images/change.png" />
+        </view>
+      </view>
+      <!-- 重拍/上传控件 -->
+      <view class="control2" v-if="isShow2">
+        <view @click="resetPhoto">重拍</view>
+        <view @click="upload">使用照片</view>
+      </view>
+    </view>
+  </view>
+</template>
+
+<script></script>
+<script>
+import { EXIF } from "../../node_modules/exif-js/exif";
+import { mapState, mapMutations } from "vuex";
+import {
+  pathToBase64,
+  base64ToPath,
+} from "../../js_sdk/mmmm-image-tools/index.js";
+export default {
+  data() {
+    return {
+      isShow1: true, //拍照控件
+      isShow2: false, //重拍/上传控件
+      isShow3: true, //提示框
+      isShow4: false, //“上传中”提示框
+      hintImage: "../../static/images/注意@2x.png", //提示图标
+      hintWord: "请勿遮挡面部", //提示文字
+      imgPath: "", //上传的人脸图片
+      baseStr: "",
+      tipFlag: "",
+      maxWidth: "",
+      maxHeight: "",
+    };
+  },
+  computed: mapState(["position", "userData"]),
+
+  onLoad(options) {
+    //拉取微信授权
+    this.loginFilter();
+  },
+  mounted() {
+    let that = this;
+    (function () {
+      var u = navigator.userAgent;
+      var isAndroid = u.indexOf("Android") > -1 || u.indexOf("Linux") > -1; //android终端或者uc浏览器
+      var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
+      if (isiOS) {
+        that.tipFlag = "ios";
+      }
+      if (isAndroid) {
+        that.tipFlag = "Android";
+      }
+    })();
+  },
+  methods: {
+    ...mapMutations(["getPosition", "getUserData"]),
+    // 授权获取信息
+    loginFilter() {
+      let cardNumber = this.getQueryString("cardNumber");
+      let name = this.getQueryString("name");
+      let error = this.getQueryString("error");
+      let homeWeb =
+        "https://open.wecard.qq.com/connect/oauth/authorize?app_key=8C41E2FECF2E9925&response_type=code&scope=snsapi_userinfo&ocode=1015730314&redirect_uri=https://jtishfw.ncjti.edu.cn/yinxin/ncjtSecurityManagement/getUserInfo&state=1";
+      if (!cardNumber) {
+        window.location.href = homeWeb;
+      } else {
+        if (error) {
+          uni.showToast({
+            title: "服务器连接失败",
+            icon: "error",
+            mask: true,
+            duration: 3000,
+          });
+          setTimeout(function () {
+            uni.navigateTo({
+              url: "../index/index",
+            });
+          }, 1000);
+        }
+        this.$store.state.name = name;
+        this.$store.state.idnum = cardNumber;
+        this.judgeGrade();
+        this.judgeWrite();
+      }
+    },
+
+    //判断老生无权限
+    judgeGrade() {
+      var date = new Date();
+      var year = date.getFullYear().toString();
+      let grade = this.getQueryString("grade");
+      if (grade == year) {
+        return;
+      } else {
+        uni.showToast({
+          title: "无权限,仅对新生请退出",
+          icon: "error",
+          mask: true,
+          duration: 50000,
+        });
+        return;
+      }
+    },
+
+    //判断是否填写问卷
+    judgeWrite() {
+      uni.request({
+        url: "https://jtishfw.ncjti.edu.cn/yinxin/ncjtSecurityManagement/freshmanSurveyDoneByIdnum",
+        data: {
+          idnum: this.$store.state.idnum,
+        },
+        header: {
+          Accept: "application/json",
+          "Content-Type": "application/json",
+          "X-Requested-With": "XMLHttpRequest",
+        },
+        method: "GET",
+        sslVerify: true,
+        success: ({ data, statusCode, header }) => {
+          console.log(data);
+          if (data.result === "success") {
+            uni.navigateTo({
+              url: "../index/index",
+            });
+          }
+        },
+        fail: (error) => {},
+      });
+    },
+
+    //获取当前URL指定参数
+    getQueryString(name) {
+      let url = window.location.href; // 获取URL
+
+      let pattern = new RegExp("[\?\&]" + name + "=([^\&]+)", "i"); // 正则匹配URL
+
+      let matcher = pattern.exec(url);
+
+      if (matcher == null || matcher.length < 1) {
+        return false;
+      }
+      return decodeURIComponent(matcher[1]); // 输出指定的参数值 中文也可以
+    },
+
+    //拍照
+    takePhoto() {
+      if (this.isShow4) {
+        this.isShow3 = !this.isShow3;
+        this.isShow4 = !this.isShow4;
+        this.isShow1 = !this.isShow1;
+        this.isShow2 = !this.isShow2;
+      } else {
+        this.isShow1 = !this.isShow1;
+        this.isShow2 = !this.isShow2;
+      }
+      this.photo();
+    },
+
+    //重拍
+    resetPhoto() {
+      if (this.isShow4) {
+        this.isShow3 = !this.isShow3;
+        this.isShow4 = !this.isShow4;
+        this.isShow1 = !this.isShow1;
+        this.isShow2 = !this.isShow2;
+      }
+      this.photo();
+    },
+
+    //压缩上传的图片
+    compressUploadImg(img, width, height, ratio) {
+      // img可以是dataURL或者图片url
+      let canvas = document.createElement("canvas");
+      canvas.width = width;
+      canvas.height = height;
+      let ctx = canvas.getContext("2d");
+      let img64 = canvas.toDataURL("image/jpeg", ratio);
+      console.log(img64);
+      return (this.$store.state.imageBase = img64); // 压缩后的base64串
+    },
+
+    //安卓机图片修正
+    async detail(url) {
+      let maxWidth = this.maxWidth;
+      let Orientation = 1;
+      //获取图片META信息
+      await this.getImageTag(url, "Orientation", function (e) {
+        if (e != undefined) Orientation = e;
+      });
+      var img = null;
+      var canvas = null;
+      await this.comprossImage(url, maxWidth, function (e) {
+        img = e.img;
+        canvas = e.canvas;
+      });
+      //  console.log(Orientation,"Orientation")
+      let baseStr = "";
+      //如果方向角不为1,都需要进行旋转
+      switch (Orientation) {
+        case 6: //需要顺时针(向右)90度旋转
+          baseStr = this.rotateImg(img, "right", canvas);
+          break;
+        case 8: //需要逆时针(向左)90度旋转
+          baseStr = this.rotateImg(img, "left", canvas);
+          break;
+        case 3: //需要180度旋转 转两次
+          baseStr = this.rotateImg(img, "right", canvas, 2);
+          break;
+        default:
+          baseStr = this.rotateImg(img, "", canvas);
+          break;
+      }
+      // console.log(baseStr, "baseStr");
+    },
+    async comprossImage(imgSrc, maxWidth, func) {
+      if (!imgSrc) return 0;
+      return new Promise((resolve, reject) => {
+        uni.getImageInfo({
+          src: imgSrc,
+          success(res) {
+            let img = new Image();
+            img.src = res.path;
+            // console.log(img);
+            let canvas = uni.createCanvasContext("canvas");
+            let obj = new Object();
+            obj.img = img;
+            obj.canvas = canvas;
+            resolve(func(obj));
+            let fileObj = document.createElement("file"); //上传文件的对象
+          },
+        });
+      });
+    },
+    getImageTag(file, tag, suc) {
+      if (!file) return 0;
+      return new Promise((resolve, reject) => {
+        /* eslint-disable func-names */
+        // 箭头函数会修改this,所以这里不能用箭头函数
+        let imgObj = new Image();
+        imgObj.src = file;
+        // console.log(imgObj);
+        uni.getImageInfo({
+          src: file,
+          success(res) {
+            EXIF.getData(imgObj, function () {
+              EXIF.getAllTags(this);
+              let or = EXIF.getTag(this, "Orientation"); //这个Orientation 就是我们判断需不需要旋转的值了,有1、3、6、8
+              resolve(suc(or));
+            });
+          },
+        });
+      });
+    },
+    rotateImg(img, direction, canvas, times = 1) {
+      console.log("开始旋转");
+      //最小与最大旋转方向,图片旋转4次后回到原方向
+      var min_step = 0;
+      var max_step = 3;
+      if (img == null) return;
+      //img的高度和宽度不能在img元素隐藏后获取,否则会出错
+      var height = img.height;
+      var width = img.width;
+      let maxWidth = this.maxWidth;
+      let maxHeight = this.maxHeight;
+      var step = 0;
+      if (step == null) {
+        step = min_step;
+      }
+      if (direction == "right") {
+        step += times;
+        //旋转到原位置,即超过最大值
+        step > max_step && (step = min_step);
+      } else if (direction == "left") {
+        step -= times;
+        step < min_step && (step = max_step);
+      } else {
+        //不旋转
+        step = 0;
+      }
+      //旋转角度以弧度值为参数
+      var degree = (step * 90 * Math.PI) / 180;
+      var ctx = uni.createCanvasContext("canvas");
+      // var ctx = canvas.getContext("2d");
+      // console.log(degree);
+      // console.log(step);
+      switch (step) {
+        case 1:
+          // console.log("右旋转 90度");
+          width = maxHeight;
+          height = maxWidth;
+          ctx.rotate(degree);
+          ctx.drawImage(img.src, 0, -height, width, height);
+          ctx.draw();
+          break;
+        case 2:
+          //console.log('旋转 180度')
+          width = maxWidth;
+          height = maxHeight;
+          ctx.rotate(degree);
+          ctx.drawImage(img.src, -width, -height, width, height);
+          ctx.draw();
+          break;
+        case 3:
+          // console.log("左旋转 90度");
+          width = maxHeight;
+          height = maxWidth;
+          ctx.rotate(degree);
+          ctx.drawImage(img.src, -width, 0, width, height);
+          ctx.draw();
+          break;
+        default:
+          //不旋转
+          // canvas.width = width;
+          // canvas.height = height;
+          width = maxWidth;
+          height = maxHeight;
+          ctx.drawImage(img.src, 0, 0, width, height);
+          ctx.draw();
+          break;
+      }
+      // let baseStr = canvas.toDataURL("image/jpeg", 1);
+      // let baseStr = this.$store.state.imageBase;
+      // return baseStr;
+    },
+
+    //照片
+    photo() {
+      if (this.$store.state.idnum) {
+        let that = this;
+        uni.chooseImage({
+          count: 1,
+          sourceType: ["camera"],
+          sizeType: ["compressed"],
+          success: (res) => {
+            uni.getSystemInfo({
+              success: function (res2) {
+                that.maxWidth = res2.windowWidth;
+                let base = 4 / 3;
+                that.maxHeight = that.maxWidth * base;
+              },
+            });
+            that.imgPath = res.tempFilePaths[0]; //这就是要的blod
+            //上传压缩图片
+            // that.toBase64(that.imgPath);
+            that.compressUploadImg(
+              that.imgPath,
+              that.maxWidth,
+              that.maxHeight,
+              1
+            );
+            //图片页面显示
+            if (that.tipFlag == "ios") {
+              let canvas = uni.createCanvasContext("canvas");
+              canvas.drawImage(
+                that.imgPath,
+                0,
+                0,
+                that.maxWidth,
+                that.maxHeight
+              );
+              canvas.draw();
+            } else {
+              that.detail(that.imgPath);
+            }
+          },
+          complete: () => {
+            if (that.imgPath == null) {
+              this.isShow1 = !this.isShow1;
+              this.isShow2 = !this.isShow2;
+            }
+          },
+        });
+      } else {
+        uni.showToast({
+          title: "请下拉刷新授权",
+          icon: "error",
+          mask: true,
+        });
+      }
+    },
+
+    //上传图片
+    upload() {
+      this.isShow3 = !this.isShow3;
+      this.isShow4 = !this.isShow4;
+      uni.request({
+        url: "https://jtishfw.ncjti.edu.cn/yinxin/ncjtSecurityManagement/verifyBase64ImagesWithIDNumber",
+        data: {
+          idnum: this.$store.state.idnum,
+          image: this.$store.state.imageBase,
+        },
+        header: { "content-type": "application/x-www-form-urlencoded" },
+        method: "POST",
+        sslVerify: true,
+        success: ({ data, statusCode, header }) => {
+          if (data.error) {
+            this.isShow3 = !this.isShow3;
+            this.isShow4 = !this.isShow4;
+            uni.showToast({
+              title: "人脸匹配失败",
+              icon: "error",
+              mask: true,
+              duration: 3000,
+            });
+            setTimeout(this.back, 1000);
+          } else {
+            this.$store.state.sex = data.sex;
+            this.$store.state.examNumber = data.examNumber;
+            setTimeout(this.uploadSucceed, 500);
+          }
+        },
+        fail: (error) => {
+          this.isShow3 = !this.isShow3;
+          this.isShow4 = !this.isShow4;
+          uni.showToast({
+            title: "上传失败",
+            icon: "error",
+            mask: true,
+            duration: 3000,
+          });
+          setTimeout(this.back, 2000);
+        },
+      });
+    },
+
+    //人脸采集成功
+    uploadSucceed() {
+      this.hintWord = "人脸采集成功";
+      this.hintImage = "../../static/images/成功@2x.png";
+      this.isShow3 = !this.isShow3;
+      this.isShow4 = !this.isShow4;
+      this.isShow2 = !this.isShow2;
+      setTimeout(this.navigateToConfirm, 2000);
+    },
+
+    //图片转Base64
+    toBase64(path) {
+      pathToBase64(path)
+        .then((base64) => {
+          this.$store.state.imageBase = base64;
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+
+    //跳转人脸采集确认页面
+    navigateToConfirm() {
+      uni.navigateTo({
+        url: "../confirm/confirm",
+      });
+    },
+    back() {
+      uni.reLaunch({
+        url: "../faceSearch/faceSea",
+      });
+    },
+  },
+};
+</script>
+
+<style lang="scss">
+@import url("./css/faceSea.min.css");
+</style>

+ 65 - 0
pages/index/css/index.css

@@ -0,0 +1,65 @@
+.container{
+	width: 750rpx;
+	height: 846rpx;
+	background: #fff;
+}
+.item-image{
+	width: 749rpx;
+	height: 360rpx;
+	margin: 0 auto;
+	background-image: url(../../static/images/showhead.png);
+   background-size: 100% 100%;
+    background-attachment: fixed;
+    background-repeat: no-repeat;
+}
+
+.item-title{
+	display: flex;
+	flex-direction: row;
+	width: 400rpx;
+	margin-top: 39rpx;
+	margin-left: 30rpx;
+}
+
+.item-title-line{
+	width: 10rpx;
+	height: 32rpx;
+	background-color: #3FB0FF;
+}
+
+.item-title-font{
+	font-size: 32rpx;
+	font-weight: 700;
+	color: #333333;
+	margin-left: 15rpx;
+	margin-top: -5rpx;
+}
+
+.item-list{
+	display: flex;
+	flex-direction: row;
+	justify-content: flex-start;
+	width: 750rpx;
+	margin-top: 40rpx;
+	margin-left: 80rpx;
+}
+
+.item-list-one{
+	display: flex;
+	flex-direction: column;
+	align-items: center;
+	width: 150rpx;
+	margin-right: 80rpx;
+}
+
+.img-btn{
+	width: 90rpx;
+	height: 90rpx;
+}
+.list-txt{
+	width: 150rpx;
+	text-align: center;
+	font-size: 28rpx;
+	margin-top: 29rpx;
+	color: #333333;
+}

+ 62 - 0
pages/index/index.vue

@@ -0,0 +1,62 @@
+<template>
+  <view class="container">
+    <view class="item-image"> </view>
+    <view class="item-title">
+      <view class="item-title-line"></view>
+      <view class="item-title-font">迎新指南</view>
+    </view>
+    <view class="item-list">
+      <view class="item-list-one" @click="navigateToMap">
+        <image src="../../static/images/map.png" class="img-btn"></image>
+        <text class="list-txt">地图导览</text>
+      </view>
+      <view class="item-list-one" @click="navigateToCard">
+        <image src="../../static/images/card.png" class="img-btn"></image>
+        <text class="list-txt">临时卡领取</text>
+      </view>
+      <!-- <view class="item-list-one" @click="navigateToPay">
+        <image src="../../static/images/pay.png" class="img-btn"></image>
+        <text class="list-txt">在线缴费</text>
+      </view> -->
+    </view>
+  </view>
+</template>
+
+<script>
+export default {
+  data() {
+    return {};
+  },
+
+  onLoad() {
+    uni.preloadPage({ url: "../map/map" });
+    uni.preloadPage({ url: "../weiChat/weiChat" });
+  },
+  upUnload() {},
+  methods: {
+    navigateToMap() {
+      uni.navigateTo({
+        url: "../map/map",
+      });
+    },
+    navigateToCard() {
+      uni.navigateTo({
+        url: "../weiChat/weiChat",
+      });
+    },
+    navigateToPay() {
+      // uni.navigateTo({
+      //   url: "../Pay/pay",
+      // });
+    },
+    navigateToGW() {
+      let gwUrl = "https://www.ecjtuit.edu.cn/?ivk_sa=1024320u";
+      window.location.href = gwUrl;
+    },
+  },
+};
+</script>
+
+<style>
+@import url("./css/index.css");
+</style>

+ 54 - 0
pages/map/map.vue

@@ -0,0 +1,54 @@
+<template>
+  <view class="content">
+    <image :src="'data:image/png;base64,' + imgUrl" mode="aspectFit" />
+  </view>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      imgUrl: "",
+    };
+  },
+  created() {
+    this.getMap();
+  },
+
+  methods: {
+    getMap() {
+      uni.request({
+        url: "https://jtishfw.ncjti.edu.cn/yinxin/ncjtSecurityManagement/getSchoolMap",
+        data: "",
+        header: {
+          Accept: "text/plain",
+        },
+        method: "POST",
+        sslVerify: true,
+        success: ({ data, statusCode, header }) => {
+          if (statusCode == 200) {
+            // console.log(data);
+            // console.log(data.replace(/[\r\n]/g, ""));
+            var url = JSON.parse(data.replace(/[\r\n]/g, ""));
+            // console.log(url);
+            this.imgUrl = url.map;
+            // console.log(this.imgUrl);
+          }
+        },
+        fail: (error) => {},
+      });
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.content {
+  width: 100%;
+  height: 100%;
+  image {
+    width: 750rpx;
+    height: 1207rpx;
+  }
+}
+</style>

+ 54 - 0
pages/weiChat/weiChat.vue

@@ -0,0 +1,54 @@
+<template>
+  <view class="content">
+    <image :src="'data:image/jpeg;base64,' + imgUrl" mode="aspectFit" />
+  </view>
+</template>
+
+<script>
+export default {
+  data() {
+    return {
+      imgUrl: "",
+    };
+  },
+  created() {
+    this.getWeiChat();
+  },
+
+  methods: {
+    getWeiChat() {
+      uni.request({
+        url: "https://jtishfw.ncjti.edu.cn/yinxin/ncjtSecurityManagement/getWeichat",
+        data: "",
+        header: {
+          Accept: "text/plain",
+        },
+        method: "POST",
+        sslVerify: true,
+        success: ({ data, statusCode, header }) => {
+          if (statusCode == 200) {
+            // console.log(data);
+            // console.log(data.replace(/[\r\n]/g, ""));
+            var url = JSON.parse(data.replace(/[\r\n]/g, ""));
+            // console.log(url);
+            this.imgUrl = url.weichat;
+            // console.log(this.imgUrl);
+          }
+        },
+        fail: (error) => {},
+      });
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.content {
+  width: 100%;
+  height: 100%;
+  image {
+    width: 750rpx;
+    height: 1207rpx;
+  }
+}
+</style>

BIN
static/images/card.png


BIN
static/images/change.png


BIN
static/images/head1.png


BIN
static/images/light.png


BIN
static/images/map.png


BIN
static/images/pay.png


BIN
static/images/showhead.png


BIN
static/images/take.png


BIN
static/images/付款成功.png


BIN
static/images/成功@2x.png


BIN
static/images/注意@2x.png


BIN
static/images/等待@2x.png


BIN
static/images/背景.png


BIN
static/images/背景2.png


+ 21 - 0
store/index.js

@@ -0,0 +1,21 @@
+import Vue from 'vue'
+import Vuex from 'vuex'
+Vue.use(Vuex)
+const store = new Vuex.Store({
+	state: {
+		name: '',
+		sex: '',
+		examNumber:'',
+        idnum: '',
+		imageBase: '',
+		money:''
+	},
+	mutations: {
+  
+	},
+	actions: {
+
+	}
+})
+
+export default store

+ 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;

+ 4 - 0
uni_modules/uni-icons/changelog.md

@@ -0,0 +1,4 @@
+## 1.1.5(2021-05-12)
+- 新增 组件示例地址
+## 1.1.4(2021-02-05)
+- 调整为uni_modules目录规范

+ 132 - 0
uni_modules/uni-icons/components/uni-icons/icons.js

@@ -0,0 +1,132 @@
+export default {
+	"pulldown": "\ue588",
+	"refreshempty": "\ue461",
+	"back": "\ue471",
+	"forward": "\ue470",
+	"more": "\ue507",
+	"more-filled": "\ue537",
+	"scan": "\ue612",
+	"qq": "\ue264",
+	"weibo": "\ue260",
+	"weixin": "\ue261",
+	"pengyouquan": "\ue262",
+	"loop": "\ue565",
+	"refresh": "\ue407",
+	"refresh-filled": "\ue437",
+	"arrowthindown": "\ue585",
+	"arrowthinleft": "\ue586",
+	"arrowthinright": "\ue587",
+	"arrowthinup": "\ue584",
+	"undo-filled": "\ue7d6",
+	"undo": "\ue406",
+	"redo": "\ue405",
+	"redo-filled": "\ue7d9",
+	"bars": "\ue563",
+	"chatboxes": "\ue203",
+	"camera": "\ue301",
+	"chatboxes-filled": "\ue233",
+	"camera-filled": "\ue7ef",
+	"cart-filled": "\ue7f4",
+	"cart": "\ue7f5",
+	"checkbox-filled": "\ue442",
+	"checkbox": "\ue7fa",
+	"arrowleft": "\ue582",
+	"arrowdown": "\ue581",
+	"arrowright": "\ue583",
+	"smallcircle-filled": "\ue801",
+	"arrowup": "\ue580",
+	"circle": "\ue411",
+	"eye-filled": "\ue568",
+	"eye-slash-filled": "\ue822",
+	"eye-slash": "\ue823",
+	"eye": "\ue824",
+	"flag-filled": "\ue825",
+	"flag": "\ue508",
+	"gear-filled": "\ue532",
+	"reload": "\ue462",
+	"gear": "\ue502",
+	"hand-thumbsdown-filled": "\ue83b",
+	"hand-thumbsdown": "\ue83c",
+	"hand-thumbsup-filled": "\ue83d",
+	"heart-filled": "\ue83e",
+	"hand-thumbsup": "\ue83f",
+	"heart": "\ue840",
+	"home": "\ue500",
+	"info": "\ue504",
+	"home-filled": "\ue530",
+	"info-filled": "\ue534",
+	"circle-filled": "\ue441",
+	"chat-filled": "\ue847",
+	"chat": "\ue263",
+	"mail-open-filled": "\ue84d",
+	"email-filled": "\ue231",
+	"mail-open": "\ue84e",
+	"email": "\ue201",
+	"checkmarkempty": "\ue472",
+	"list": "\ue562",
+	"locked-filled": "\ue856",
+	"locked": "\ue506",
+	"map-filled": "\ue85c",
+	"map-pin": "\ue85e",
+	"map-pin-ellipse": "\ue864",
+	"map": "\ue364",
+	"minus-filled": "\ue440",
+	"mic-filled": "\ue332",
+	"minus": "\ue410",
+	"micoff": "\ue360",
+	"mic": "\ue302",
+	"clear": "\ue434",
+	"smallcircle": "\ue868",
+	"close": "\ue404",
+	"closeempty": "\ue460",
+	"paperclip": "\ue567",
+	"paperplane": "\ue503",
+	"paperplane-filled": "\ue86e",
+	"person-filled": "\ue131",
+	"contact-filled": "\ue130",
+	"person": "\ue101",
+	"contact": "\ue100",
+	"images-filled": "\ue87a",
+	"phone": "\ue200",
+	"images": "\ue87b",
+	"image": "\ue363",
+	"image-filled": "\ue877",
+	"location-filled": "\ue333",
+	"location": "\ue303",
+	"plus-filled": "\ue439",
+	"plus": "\ue409",
+	"plusempty": "\ue468",
+	"help-filled": "\ue535",
+	"help": "\ue505",
+	"navigate-filled": "\ue884",
+	"navigate": "\ue501",
+	"mic-slash-filled": "\ue892",
+	"search": "\ue466",
+	"settings": "\ue560",
+	"sound": "\ue590",
+	"sound-filled": "\ue8a1",
+	"spinner-cycle": "\ue465",
+	"download-filled": "\ue8a4",
+	"personadd-filled": "\ue132",
+	"videocam-filled": "\ue8af",
+	"personadd": "\ue102",
+	"upload": "\ue402",
+	"upload-filled": "\ue8b1",
+	"starhalf": "\ue463",
+	"star-filled": "\ue438",
+	"star": "\ue408",
+	"trash": "\ue401",
+	"phone-filled": "\ue230",
+	"compose": "\ue400",
+	"videocam": "\ue300",
+	"trash-filled": "\ue8dc",
+	"download": "\ue403",
+	"chatbubble-filled": "\ue232",
+	"chatbubble": "\ue202",
+	"cloud-download": "\ue8e4",
+	"cloud-upload-filled": "\ue8e5",
+	"cloud-upload": "\ue8e6",
+	"cloud-download-filled": "\ue8e9",
+	"headphones":"\ue8bf",
+	"shop":"\ue609"
+}

Plik diff jest za duży
+ 71 - 0
uni_modules/uni-icons/components/uni-icons/uni-icons.vue


BIN
uni_modules/uni-icons/components/uni-icons/uni.ttf


+ 82 - 0
uni_modules/uni-icons/package.json

@@ -0,0 +1,82 @@
+{
+  "id": "uni-icons",
+  "displayName": "uni-icons 图标",
+  "version": "1.1.5",
+  "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。",
+  "keywords": [
+    "uni-ui",
+    "uniui",
+    "icon",
+    "图标"
+],
+  "repository": "https://github.com/dcloudio/uni-ui",
+  "engines": {
+    "HBuilderX": ""
+  },
+  "directories": {
+    "example": "../../temps/example_temps"
+  },
+  "dcloudext": {
+    "category": [
+      "前端组件",
+      "通用组件"
+    ],
+    "sale": {
+      "regular": {
+        "price": "0.00"
+      },
+      "sourcecode": {
+        "price": "0.00"
+      }
+    },
+    "contact": {
+      "qq": ""
+    },
+    "declaration": {
+      "ads": "无",
+      "data": "无",
+      "permissions": "无"
+    },
+    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+  },
+  "uni_modules": {
+    "dependencies": [],
+    "encrypt": [],
+    "platforms": {
+      "cloud": {
+        "tcb": "y",
+        "aliyun": "y"
+      },
+      "client": {
+        "App": {
+          "app-vue": "y",
+          "app-nvue": "y"
+        },
+        "H5-mobile": {
+          "Safari": "y",
+          "Android Browser": "y",
+          "微信浏览器(Android)": "y",
+          "QQ浏览器(Android)": "y"
+        },
+        "H5-pc": {
+          "Chrome": "y",
+          "IE": "y",
+          "Edge": "y",
+          "Firefox": "y",
+          "Safari": "y"
+        },
+        "小程序": {
+          "微信": "y",
+          "阿里": "y",
+          "百度": "y",
+          "字节跳动": "y",
+          "QQ": "y"
+        },
+        "快应用": {
+          "华为": "u",
+          "联盟": "u"
+        }
+      }
+    }
+  }
+}

+ 46 - 0
uni_modules/uni-icons/readme.md

@@ -0,0 +1,46 @@
+
+
+## Icons 图标
+> **组件名:uni-icons**
+> 代码块: `uIcons`
+
+
+用于展示 icons 图标 。
+
+### 安装方式
+
+本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。
+
+如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55)
+
+### 基本用法
+
+在 ``template`` 中使用组件
+
+```html
+<uni-icons type="contact" size="30"></uni-icons>
+```
+
+
+
+## API
+
+### Icons Props
+
+|属性名	|类型		|默认值	|说明				|
+|:-:	|:-:		|:-:	|:-:				|
+|size	|Number		|24		|图标大小			|
+|type	|String		|-		|图标图案,参考示例	|
+|color	|String		|-		|图标颜色			|
+
+
+### Icons Events
+|事件名	|说明			|返回值|
+|:-:	|:-:			|:-:  |
+|@click|点击 Icon 触发事件|-    |
+
+
+
+## 组件示例
+
+点击查看:[https://hellouniapp.dcloud.net.cn/pages/extUI/icons/icons](https://hellouniapp.dcloud.net.cn/pages/extUI/icons/icons)

+ 0 - 0
unpackage/dist/build/.automator/h5/.automator.json


Plik diff jest za duży
+ 2 - 0
unpackage/dist/build/h5/index.html


BIN
unpackage/dist/build/h5/static/images/card.png


BIN
unpackage/dist/build/h5/static/images/change.png


BIN
unpackage/dist/build/h5/static/images/head1.png


BIN
unpackage/dist/build/h5/static/images/light.png


BIN
unpackage/dist/build/h5/static/images/map.png


BIN
unpackage/dist/build/h5/static/images/pay.png


BIN
unpackage/dist/build/h5/static/images/showhead.png


BIN
unpackage/dist/build/h5/static/images/take.png


BIN
unpackage/dist/build/h5/static/images/付款成功.png


BIN
unpackage/dist/build/h5/static/images/成功@2x.png


BIN
unpackage/dist/build/h5/static/images/注意@2x.png


BIN
unpackage/dist/build/h5/static/images/等待@2x.png


BIN
unpackage/dist/build/h5/static/images/背景.png


BIN
unpackage/dist/build/h5/static/images/背景2.png


BIN
unpackage/dist/build/h5/static/img/card.91fc604e.png


BIN
unpackage/dist/build/h5/static/img/head1.9d46c7fe.png


BIN
unpackage/dist/build/h5/static/img/map.e587701e.png


BIN
unpackage/dist/build/h5/static/img/showhead.e1e3277f.png


BIN
unpackage/dist/build/h5/static/img/take.3666bbed.png


BIN
unpackage/dist/build/h5/static/img/背景.924f1693.png


Plik diff jest za duży
+ 1 - 0
unpackage/dist/build/h5/static/index.d0f128df.css


Plik diff jest za duży
+ 13 - 0
unpackage/dist/build/h5/static/js/chunk-vendors.5ab0e23a.js


Plik diff jest za duży
+ 1 - 0
unpackage/dist/build/h5/static/js/index.0a5ca588.js


Plik diff jest za duży
+ 1 - 0
unpackage/dist/build/h5/static/js/pages-confirm-confirm.d2984933.js


Plik diff jest za duży
+ 1 - 0
unpackage/dist/build/h5/static/js/pages-faceSearch-faceSea.b547cd10.js


Plik diff jest za duży
+ 1 - 0
unpackage/dist/build/h5/static/js/pages-index-index.64b277e1.js


Plik diff jest za duży
+ 1 - 0
unpackage/dist/build/h5/static/js/pages-map-map.f3a1d99f.js


Plik diff jest za duży
+ 1 - 0
unpackage/dist/build/h5/static/js/pages-weiChat-weiChat.befafa87.js


+ 0 - 0
unpackage/dist/dev/.automator/app-plus/.automator.json


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


Plik diff jest za duży
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map


Plik diff jest za duży
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map


Plik diff jest za duży
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map


Plik diff jest za duży
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/confirm/confirm.js.map


Plik diff jest za duży
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/faceSearch/faceSea.js.map


Plik diff jest za duży
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/index/index.js.map


Plik diff jest za duży
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/map/map.js.map


Plik diff jest za duży
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/pay/pay.js.map


Plik diff jest za duży
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/paySuccess/paySuccess.js.map


Plik diff jest za duży
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/pages/weiChat/weiChat.js.map


Plik diff jest za duży
+ 1 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js.map


+ 0 - 0
unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-nav-bar/components/uni-nav-bar/uni-nav-bar.js.map


Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików