浏览代码

删除演示版

gcz 3 年之前
父节点
当前提交
8efa2c81c4
共有 100 个文件被更改,包括 0 次插入11610 次删除
  1. 二进制
      .DS_Store
  2. 0 6
      .gitignore
  3. 0 16
      .hbuilderx/launch.json
  4. 0 18
      App.vue
  5. 0 14
      index.html
  6. 0 28
      main.js
  7. 0 81
      manifest.json
  8. 0 21
      node_modules/vue-jsonp/LICENSE
  9. 0 153
      node_modules/vue-jsonp/README.md
  10. 0 73
      node_modules/vue-jsonp/dist/index.d.ts
  11. 0 8
      node_modules/vue-jsonp/dist/index.esm.js
  12. 0 8
      node_modules/vue-jsonp/dist/index.js
  13. 0 20
      node_modules/vue-jsonp/dist/utils/index.d.ts
  14. 0 80
      node_modules/vue-jsonp/package.json
  15. 0 11
      package-lock.json
  16. 0 151
      pages.json
  17. 0 88
      pages/index/chooseRoad/chooseRoad.vue
  18. 0 218
      pages/index/clockIn/clockIn.vue
  19. 0 192
      pages/index/deviceDetails/deviceDetails.vue
  20. 0 175
      pages/index/deviceList/deviceList.vue
  21. 0 155
      pages/index/gateDetails/gateDetails.vue
  22. 0 187
      pages/index/geomagDetails/geomagDetails.vue
  23. 0 84
      pages/index/index.scss
  24. 0 136
      pages/index/index.vue
  25. 0 187
      pages/index/lockDetails/lockDetails.vue
  26. 0 47
      pages/index/messageCenter/messageCenter.scss
  27. 0 57
      pages/index/messageCenter/messageCenter.vue
  28. 0 32
      pages/login/login.scss
  29. 0 98
      pages/login/login.vue
  30. 0 93
      pages/mine/changePassword/changePassword.vue
  31. 0 31
      pages/mine/mine.scss
  32. 0 85
      pages/mine/mine.vue
  33. 0 121
      pages/mine/problemReporting/problemReporting.vue
  34. 0 120
      pages/ownerInquiry/ownerInquiry.vue
  35. 0 165
      pages/ownerInquiry/queryResults/queryResults.vue
  36. 0 1
      static/icons/chengguan-wu-bujian-gonggongsheshi-daoluxinxixianshiping.svg
  37. 二进制
      static/icons/clock-in-icon.png
  38. 二进制
      static/icons/config-icon.png
  39. 0 0
      static/icons/daozhakongzhi.svg
  40. 二进制
      static/icons/geomagnetism-icon.png
  41. 0 31
      static/icons/geomagnetism-icon.svg
  42. 0 1
      static/icons/has-car-icon.svg
  43. 0 1
      static/icons/has-ele-icon.svg
  44. 二进制
      static/icons/logout-icon.png
  45. 0 1
      static/icons/no-car-icon.svg
  46. 0 1
      static/icons/no-ele-icon.svg
  47. 二进制
      static/icons/parking-lock-icon.png
  48. 0 40
      static/icons/parking-lock-icon.svg
  49. 二进制
      static/icons/password-icon.png
  50. 二进制
      static/icons/question-icon.png
  51. 0 30
      static/icons/railing-gate-icon.svg
  52. 二进制
      static/icons/railing-icon.png
  53. 二进制
      static/icons/road-icon.png
  54. 0 1
      static/icons/shipinjiankongyemian.svg
  55. 0 1138
      static/js/qqmap-wx-jssdk.min.js
  56. 二进制
      static/logo.png
  57. 二进制
      static/tabbar/index-selected.png
  58. 二进制
      static/tabbar/index.png
  59. 二进制
      static/tabbar/mine-selected.png
  60. 二进制
      static/tabbar/mine.png
  61. 二进制
      static/tabbar/search-selected.png
  62. 二进制
      static/tabbar/search.png
  63. 0 78
      uni.scss
  64. 0 24
      uni_modules/z-paging/changelog.md
  65. 0 186
      uni_modules/z-paging/components/z-paging-empty-view/z-paging-empty-view.vue
  66. 0 88
      uni_modules/z-paging/components/z-paging-swiper-item/z-paging-swiper-item.vue
  67. 0 126
      uni_modules/z-paging/components/z-paging-swiper/z-paging-swiper.vue
  68. 0 157
      uni_modules/z-paging/components/z-paging/components/z-paging-load-more.vue
  69. 0 284
      uni_modules/z-paging/components/z-paging/components/z-paging-refresh.vue
  70. 0 1
      uni_modules/z-paging/components/z-paging/config/index.js
  71. 0 185
      uni_modules/z-paging/components/z-paging/css/z-paging-main.css
  72. 0 33
      uni_modules/z-paging/components/z-paging/css/z-paging-static.css
  73. 0 28
      uni_modules/z-paging/components/z-paging/js/z-paging-config.js
  74. 0 25
      uni_modules/z-paging/components/z-paging/js/z-paging-enum.js
  75. 0 153
      uni_modules/z-paging/components/z-paging/js/z-paging-i18n.js
  76. 0 3120
      uni_modules/z-paging/components/z-paging/js/z-paging-main.js
  77. 0 32
      uni_modules/z-paging/components/z-paging/js/z-paging-mixin.js
  78. 0 8
      uni_modules/z-paging/components/z-paging/js/z-paging-static.js
  79. 0 199
      uni_modules/z-paging/components/z-paging/js/z-paging-utils.js
  80. 0 54
      uni_modules/z-paging/components/z-paging/wxs/z-paging-renderjs.js
  81. 0 342
      uni_modules/z-paging/components/z-paging/wxs/z-paging-wxs.wxs
  82. 0 519
      uni_modules/z-paging/components/z-paging/z-paging.vue
  83. 0 84
      uni_modules/z-paging/package.json
  84. 0 46
      uni_modules/z-paging/readme.md
  85. 0 21
      uview-ui/LICENSE
  86. 0 105
      uview-ui/README.md
  87. 0 139
      uview-ui/changelog.md
  88. 0 78
      uview-ui/components/u--form/u--form.vue
  89. 0 40
      uview-ui/components/u--image/u--image.vue
  90. 0 72
      uview-ui/components/u--input/u--input.vue
  91. 0 43
      uview-ui/components/u--text/u--text.vue
  92. 0 47
      uview-ui/components/u--textarea/u--textarea.vue
  93. 0 54
      uview-ui/components/u-action-sheet/props.js
  94. 0 275
      uview-ui/components/u-action-sheet/u-action-sheet.vue
  95. 0 59
      uview-ui/components/u-album/props.js
  96. 0 259
      uview-ui/components/u-album/u-album.vue
  97. 0 44
      uview-ui/components/u-alert/props.js
  98. 0 243
      uview-ui/components/u-alert/u-alert.vue
  99. 0 52
      uview-ui/components/u-avatar-group/props.js
  100. 0 103
      uview-ui/components/u-avatar-group/u-avatar-group.vue

二进制
.DS_Store


+ 0 - 6
.gitignore

@@ -1,6 +0,0 @@
-.hbuilderx
-unpackage
-.idea
-.vscode
-.project
-.DS_Store

+ 0 - 16
.hbuilderx/launch.json

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

+ 0 - 18
App.vue

@@ -1,18 +0,0 @@
-<script>
-	export default {
-		onLaunch: function() {
-			console.log('App Launch')
-		},
-		onShow: function() {
-			console.log('App Show')
-		},
-		onHide: function() {
-			console.log('App Hide')
-		}
-	}
-</script>
-
-<style lang="scss">
-	/*每个页面公共css */
-	@import "@/uview-ui/index.scss";
-</style>

+ 0 - 14
index.html

@@ -1,14 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-  <head>
-    <meta charset="UTF-8" />
-    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />
-    <title></title>
-    <!--preload-links-->
-    <!--app-context-->
-  </head>
-  <body>
-    <div id="app"><!--app-html--></div>
-    <script type="module" src="/main.js"></script>
-  </body>
-</html>

+ 0 - 28
main.js

@@ -1,28 +0,0 @@
-import App from './App'
-import uView from 'uview-ui'
-Vue.use(uView)
-
-import { VueJsonp } from 'vue-jsonp'
-Vue.use(VueJsonp)
-
-// #ifndef VUE3
-import Vue from 'vue'
-Vue.config.productionTip = false
-App.mpType = 'app'
-const app = new Vue({
-	...App
-})
-app.$mount()
-// #endif
-
-// #ifdef VUE3
-import {
-	createSSRApp
-} from 'vue'
-export function createApp() {
-	const app = createSSRApp(App)
-	return {
-		app
-	}
-}
-// #endif

+ 0 - 81
manifest.json

@@ -1,81 +0,0 @@
-{
-    "name" : "停车巡检端",
-    "appid" : "__UNI__650D1C3",
-    "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
-    },
-    "vueVersion" : "2",
-    "h5" : {
-        "sdkConfigs" : {
-            "maps" : {
-                "qqmap" : {
-                    "key" : "CWWBZ-F2T36-ZQ6SU-EDL5X-Y3EUT-3HBIF"
-                }
-            }
-        }
-    }
-}

+ 0 - 21
node_modules/vue-jsonp/LICENSE

@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2020 LancerComet
-
-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.

+ 0 - 153
node_modules/vue-jsonp/README.md

@@ -1,153 +0,0 @@
-# Vue-jsonp
-
-[![VueJsonp](https://github.com/LancerComet/vue-jsonp/workflows/Test/badge.svg)](https://github.com/LancerComet/vue-jsonp/actions)
-
-A tiny library for handling JSONP request.
-
-## Quick Start
-
-As Vue plugin:
-
-```ts
-import { VueJsonp } from 'vue-jsonp'
-
-// Vue Plugin.
-Vue.use(VueJsonp)
-
-// Now you can use this.$jsonp in Vue components.
-const vm = new Vue()
-vm.$jsonp('/some-jsonp-url', {
-  myCustomUrlParam: 'veryNice'
-})
-```
-
-Use function directly:
-
-```ts
-import { jsonp } from 'vue-jsonp'
-
-jsonp('/some-jsonp-url', {
-  myCustomUrlParam: 'veryNice'
-})
-```
-
-## Send data and set query & function name
-
-### Send data
-
-```ts
-// The request url will be "/some-jsonp-url?name=LancerComet&age=100&callback=jsonp_{RANDOM_STR}".
-jsonp('/some-jsonp-url', {
-  name: 'LancerComet',
-  age: 100
-})
-```
-
-### Custom query & function name
-
-The url uniform is `/url?{callbackQuery}={callbackName}&...`, the default is `/url?callback=jsonp_{RANDOM_STRING}&...`.
-
-And you can change it like this:
-
-```ts
-// The request url will be "/some-jsonp-url?name=LancerComet&age=100&cb=jsonp_func".
-jsonp('/some-jsonp-url', {
-  callbackQuery: 'cb',
-  callbackName: 'jsonp_func',
-  name: 'LancerComet',
-  age: 100
-})
-```
-
-## Module exports
-
- - `VueJsonp: PluginObject<never>`
- 
- - `jsonp<T>: (url: string, param?: IJsonpParam, timeout?: number) => Promise<T>`
- 
-## API
-
-### IJsonpParam
-
-IJsonpParam is the type of param for jsonp function.
-
-```ts
-/**
- * JSONP parameter declaration.
- */
-interface IJsonpParam {
-  /**
-   * Callback query name.
-   * This param is used to define the query name of the callback function.
-   *
-   * @example
-   * // The request url will be "/some-url?myCallback=jsonp_func&myCustomUrlParam=veryNice"
-   * jsonp('/some-url', {
-   *   callbackQuery: 'myCallback',
-   *   callbackName: 'jsonp_func',
-   *   myCustomUrlParam: 'veryNice'
-   * })
-   *
-   * @default callback
-   */
-  callbackQuery?: string
-
-  /**
-   * Callback function name.
-   * This param is used to define the jsonp function name.
-   *
-   * @example
-   * // The request url will be "/some-url?myCallback=jsonp_func&myCustomUrlParam=veryNice"
-   * jsonp('/some-url', {
-   *   callbackQuery: 'myCallback',
-   *   callbackName: 'jsonp_func',
-   *   myCustomUrlParam: 'veryNice'
-   * })
-   *
-   * @default jsonp_ + randomStr()
-   */
-  callbackName?: string
-
-  /**
-   * Custom data.
-   */
-  [key: string]: any
-}
-```
-
-## Example
-
-```ts
-import Vue from 'vue'
-import { VueJsonp } from 'vue-jsonp'
-
-Vue.use(VueJsonp)
-
-const vm = new Vue()
-const { code, data, message } = await vm.$jsonp<{
-  code: number,
-  message: string,
-  data: {
-    id: number,
-    nickname: string
-  }
-}>('/my-awesome-url', {
-  name: 'MyName', age: 20
-})
-
-assert(code === 0)
-assert(message === 'ok')
-assert(data.id === 1)
-assert(data.nickname === 'John Smith')
-```
-
-```ts
-import { jsonp } from 'vue-jsonp'
-
-const result = await jsonp<string>('/my-awesome-url')
-assert(result === 'such a jsonp')
-```
-
-## License
-
-MIT

+ 0 - 73
node_modules/vue-jsonp/dist/index.d.ts

@@ -1,73 +0,0 @@
-/**
- * Vue Jsonp.
- * # Carry Your World #
- *
- * @author: LancerComet
- * @license: MIT
- */
-import { PluginObject } from 'vue/types/plugin';
-declare module 'vue/types/vue' {
-    interface Vue {
-        $jsonp: typeof jsonp;
-    }
-}
-/**
- * Vue JSONP.
- */
-declare const VueJsonp: PluginObject<never>;
-/**
- * JSONP function.
- *
- * @param { string } url Target URL address.
- * @param { IJsonpParam } param Querying params object.
- * @param { number } timeout Timeout setting (ms).
- *
- * @example
- * jsonp('/url', {
- *   callbackQuery: ''
- *   callbackName: '',
- *   name: 'LancerComet',
- *   age: 26
- * }, 1000)
- */
-declare function jsonp<T = any>(url: string, param?: IJsonpParam, timeout?: number): Promise<T>;
-export { VueJsonp, jsonp };
-/**
- * JSONP parameter declaration.
- */
-interface IJsonpParam {
-    /**
-     * Callback query name.
-     * This param is used to define the query name of the callback function.
-     *
-     * @example
-     * // The request url will be "/some-url?myCallback=jsonp_func&myCustomUrlParam=veryNice"
-     * jsonp('/some-url', {
-     *   callbackQuery: 'myCallback',
-     *   callbackName: 'jsonp_func',
-     *   myCustomUrlParam: 'veryNice'
-     * })
-     *
-     * @default callback
-     */
-    callbackQuery?: string;
-    /**
-     * Callback function name.
-     * This param is used to define the jsonp function name.
-     *
-     * @example
-     * // The request url will be "/some-url?myCallback=jsonp_func&myCustomUrlParam=veryNice"
-     * jsonp('/some-url', {
-     *   callbackQuery: 'myCallback',
-     *   callbackName: 'jsonp_func',
-     *   myCustomUrlParam: 'veryNice'
-     * })
-     *
-     * @default jsonp_ + randomStr()
-     */
-    callbackName?: string;
-    /**
-     * Custom data.
-     */
-    [key: string]: any;
-}

+ 0 - 8
node_modules/vue-jsonp/dist/index.esm.js

@@ -1,8 +0,0 @@
-function e(t,n){t=t.replace(/=/g,"");var o=[];switch(n.constructor){case String:case Number:case Boolean:o.push(encodeURIComponent(t)+"="+encodeURIComponent(n));break;case Array:n.forEach((function(n){o=o.concat(e(t+"[]=",n))}));break;case Object:Object.keys(n).forEach((function(r){var a=n[r];o=o.concat(e(t+"["+r+"]",a))}))}return o}function t(e){var n=[];return e.forEach((function(e){"string"==typeof e?n.push(e):n=n.concat(t(e))})),n}
-/**
- * Vue Jsonp.
- * # Carry Your World #
- *
- * @author: LancerComet
- * @license: MIT
- */var n={install:function(e){e.prototype.$jsonp=o}};function o(n,o,r){if(void 0===o&&(o={}),"string"!=typeof n)throw new Error('[Vue-jsonp] Type of param "url" is not string.');if("object"!=typeof o||!o)throw new Error("[Vue-jsonp] Invalid params, should be an object.");return r="number"==typeof r?r:5e3,new Promise((function(a,c){var u="string"==typeof o.callbackQuery?o.callbackQuery:"callback",i="string"==typeof o.callbackName?o.callbackName:"jsonp_"+(Math.floor(1e5*Math.random())*Date.now()).toString(16);o[u]=i,delete o.callbackQuery,delete o.callbackName;var s=[];Object.keys(o).forEach((function(t){s=s.concat(e(t,o[t]))}));var l=t(s).join("&"),f=function(){p(),clearTimeout(m),c({status:400,statusText:"Bad Request"})},p=function(){b.removeEventListener("error",f)},d=function(){document.body.removeChild(b),delete window[i]},m=null;r>-1&&(m=setTimeout((function(){p(),d(),c({statusText:"Request Timeout",status:408})}),r)),window[i]=function(e){clearTimeout(m),p(),d(),a(e)};var b=document.createElement("script");b.addEventListener("error",f),b.src=n+(/\?/.test(n)?"&":"?")+l,document.body.appendChild(b)}))}export{n as VueJsonp,o as jsonp};

+ 0 - 8
node_modules/vue-jsonp/dist/index.js

@@ -1,8 +0,0 @@
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).VueJsonp={})}(this,(function(e){"use strict";function t(e,o){e=e.replace(/=/g,"");var n=[];switch(o.constructor){case String:case Number:case Boolean:n.push(encodeURIComponent(e)+"="+encodeURIComponent(o));break;case Array:o.forEach((function(o){n=n.concat(t(e+"[]=",o))}));break;case Object:Object.keys(o).forEach((function(r){var c=o[r];n=n.concat(t(e+"["+r+"]",c))}))}return n}function o(e){var t=[];return e.forEach((function(e){"string"==typeof e?t.push(e):t=t.concat(o(e))})),t}
-/**
-   * Vue Jsonp.
-   * # Carry Your World #
-   *
-   * @author: LancerComet
-   * @license: MIT
-   */var n={install:function(e){e.prototype.$jsonp=r}};function r(e,n,r){if(void 0===n&&(n={}),"string"!=typeof e)throw new Error('[Vue-jsonp] Type of param "url" is not string.');if("object"!=typeof n||!n)throw new Error("[Vue-jsonp] Invalid params, should be an object.");return r="number"==typeof r?r:5e3,new Promise((function(c,a){var i="string"==typeof n.callbackQuery?n.callbackQuery:"callback",s="string"==typeof n.callbackName?n.callbackName:"jsonp_"+(Math.floor(1e5*Math.random())*Date.now()).toString(16);n[i]=s,delete n.callbackQuery,delete n.callbackName;var u=[];Object.keys(n).forEach((function(e){u=u.concat(t(e,n[e]))}));var f=o(u).join("&"),l=function(){p(),clearTimeout(b),a({status:400,statusText:"Bad Request"})},p=function(){m.removeEventListener("error",l)},d=function(){document.body.removeChild(m),delete window[s]},b=null;r>-1&&(b=setTimeout((function(){p(),d(),a({statusText:"Request Timeout",status:408})}),r)),window[s]=function(e){clearTimeout(b),p(),d(),c(e)};var m=document.createElement("script");m.addEventListener("error",l),m.src=e+(/\?/.test(e)?"&":"?")+f,document.body.appendChild(m)}))}e.VueJsonp=n,e.jsonp=r,Object.defineProperty(e,"__esModule",{value:!0})}));

+ 0 - 20
node_modules/vue-jsonp/dist/utils/index.d.ts

@@ -1,20 +0,0 @@
-/**
- * Generate random string.
- *
- * @return { string }
- */
-declare function randomStr(): string;
-/**
- * Format params into querying string.
- *
- * @return {string[]}
- */
-declare function formatParams(queryKey: string, value: any): string[];
-/**
- * Flat querys.
- *
- * @param {string[] | (string[])[]} array
- * @returns
- */
-declare function flatten(array: string[] | (string[])[]): string[];
-export { formatParams, flatten, randomStr };

+ 0 - 80
node_modules/vue-jsonp/package.json

@@ -1,80 +0,0 @@
-{
-  "_from": "vue-jsonp",
-  "_id": "vue-jsonp@2.0.0",
-  "_inBundle": false,
-  "_integrity": "sha512-Mzd9GNeuKP5hHFDWZNMWOsCuMILSkA6jo2l4A02wheFz3qqBzH7aSEFTey1BRCZCLizlaf1EqJ5YUtF392KspA==",
-  "_location": "/vue-jsonp",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "tag",
-    "registry": true,
-    "raw": "vue-jsonp",
-    "name": "vue-jsonp",
-    "escapedName": "vue-jsonp",
-    "rawSpec": "",
-    "saveSpec": null,
-    "fetchSpec": "latest"
-  },
-  "_requiredBy": [
-    "#USER",
-    "/"
-  ],
-  "_resolved": "https://repo.huaweicloud.com/repository/npm/vue-jsonp/-/vue-jsonp-2.0.0.tgz",
-  "_shasum": "3bfac56bb72941a2511c11e1a123b876f03427f7",
-  "_spec": "vue-jsonp",
-  "_where": "H:\\company-project\\parking_patrol_end",
-  "author": {
-    "name": "LancerComet",
-    "email": "chw644@hotmail.com"
-  },
-  "bugs": {
-    "url": "https://github.com/LancerComet/vue-jsonp/issues"
-  },
-  "bundleDependencies": false,
-  "deprecated": false,
-  "description": "A tiny library for handling JSONP request.",
-  "devDependencies": {
-    "@types/expect-puppeteer": "^4.4.3",
-    "@types/jest": "^26.0.14",
-    "@types/jest-environment-puppeteer": "^4.4.0",
-    "@types/puppeteer": "^3.0.2",
-    "jest": "^26.4.2",
-    "jest-puppeteer": "^4.4.0",
-    "puppeteer": "^5.3.1",
-    "rollup": "^2.28.2",
-    "rollup-plugin-cleanup": "^3.2.1",
-    "rollup-plugin-delete": "^2.0.0",
-    "rollup-plugin-terser": "^7.0.2",
-    "rollup-plugin-typescript2": "^0.27.3",
-    "ts-jest": "^26.4.1",
-    "tslint": "^6.1.3",
-    "typescript": "^4.0.3",
-    "vue": "^2.6.12"
-  },
-  "files": [
-    "dist/",
-    "index.d.ts",
-    "README.md"
-  ],
-  "homepage": "https://github.com/LancerComet/vue-jsonp#readme",
-  "keywords": [
-    "Vue",
-    "JSONP"
-  ],
-  "license": "MIT",
-  "main": "./dist/index.js",
-  "module": "./dist/index.esm.js",
-  "name": "vue-jsonp",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/LancerComet/vue-jsonp.git"
-  },
-  "scripts": {
-    "build": "rollup -c",
-    "prepublish": "npm run test",
-    "pretest": "npm run build",
-    "preversion": "npm run test",
-    "test": "jest"
-  },
-  "version": "2.0.0"
-}

+ 0 - 11
package-lock.json

@@ -1,11 +0,0 @@
-{
-  "requires": true,
-  "lockfileVersion": 1,
-  "dependencies": {
-    "vue-jsonp": {
-      "version": "2.0.0",
-      "resolved": "https://repo.huaweicloud.com/repository/npm/vue-jsonp/-/vue-jsonp-2.0.0.tgz",
-      "integrity": "sha512-Mzd9GNeuKP5hHFDWZNMWOsCuMILSkA6jo2l4A02wheFz3qqBzH7aSEFTey1BRCZCLizlaf1EqJ5YUtF392KspA=="
-    }
-  }
-}

+ 0 - 151
pages.json

@@ -1,151 +0,0 @@
-{
-	"easycom": {
-		"^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue"
-	},
-	"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
-		{
-			"path": "pages/index/index",
-			"style": {
-				"navigationBarTitleText": "停车巡检端",
-				"navigationStyle": "custom"
-			}
-		}, {
-			"path": "pages/login/login",
-			"style": {
-				"navigationBarTitleText": "登录",
-				"navigationStyle": "custom",
-				"enablePullDownRefresh": false
-			}
-
-		}, {
-			"path": "pages/ownerInquiry/ownerInquiry",
-			"style": {
-				"navigationBarTitleText": "车主查询",
-				"enablePullDownRefresh": false,
-				"navigationStyle": "custom"
-			}
-
-		}, {
-			"path": "pages/mine/mine",
-			"style": {
-				"navigationBarTitleText": "我的",
-				"enablePullDownRefresh": false,
-				"navigationStyle": "custom"
-			}
-
-		}, {
-			"path": "pages/index/messageCenter/messageCenter",
-			"style": {
-				"navigationBarTitleText": "消息中心",
-				"enablePullDownRefresh": false,
-				"navigationBarBackgroundColor": "#5290FF",
-				"navigationBarTextStyle": "white"
-			}
-
-		}, {
-			"path": "pages/mine/problemReporting/problemReporting",
-			"style": {
-				"navigationBarTitleText": "问题上报",
-				"enablePullDownRefresh": false
-			}
-
-		}, {
-			"path": "pages/mine/changePassword/changePassword",
-			"style": {
-				"navigationBarTitleText": "修改密码",
-				"enablePullDownRefresh": false
-			}
-
-		}, {
-			"path": "pages/ownerInquiry/queryResults/queryResults",
-			"style": {
-				"navigationBarTitleText": "查询结果",
-				"enablePullDownRefresh": false
-			}
-
-		}, {
-			"path": "pages/index/deviceList/deviceList",
-			"style": {
-				"navigationBarTitleText": "全部设备",
-				"enablePullDownRefresh": false,
-				"navigationBarBackgroundColor": "#5290FF",
-				"navigationBarTextStyle": "white"
-			}
-
-		}, {
-			"path": "pages/index/chooseRoad/chooseRoad",
-			"style": {
-				"navigationBarTitleText": "选择路段",
-				"enablePullDownRefresh": false,
-				"navigationBarBackgroundColor": "#5290FF",
-				"navigationBarTextStyle": "white"
-			}
-
-		}, {
-			"path": "pages/index/geomagDetails/geomagDetails",
-			"style": {
-				"navigationBarTitleText": "地磁",
-				"enablePullDownRefresh": false
-			}
-
-		}, {
-			"path": "pages/index/lockDetails/lockDetails",
-			"style": {
-				"navigationBarTitleText": "车位锁",
-				"enablePullDownRefresh": false
-			}
-
-		}, {
-			"path": "pages/index/gateDetails/gateDetails",
-			"style": {
-				"navigationBarTitleText": "栏杆道闸",
-				"enablePullDownRefresh": false
-			}
-
-		}, {
-			"path": "pages/index/clockIn/clockIn",
-			"style": {
-				"navigationBarTitleText": "打卡",
-				"enablePullDownRefresh": false,
-				"navigationBarBackgroundColor": "#5290FF",
-				"navigationBarTextStyle": "white"
-			}
-
-		}, {
-			"path": "pages/index/deviceDetails/deviceDetails",
-			"style": {
-				"navigationBarTitleText": "设备详情",
-				"enablePullDownRefresh": false
-			}
-
-		}
-	],
-	"globalStyle": {
-		"navigationBarTextStyle": "black",
-		"navigationBarTitleText": "停车巡检端",
-		"navigationBarBackgroundColor": "#F8F8F8",
-		"backgroundColor": "#F5F5F5"
-	},
-	"tabBar": {
-		"color": "#a7a7a7",
-		"selectedColor": "#2080FF",
-		"borderStyle": "black",
-		"backgroundColor": "#ffffff",
-		"list": [{
-			"pagePath": "pages/index/index",
-			"iconPath": "static/tabbar/index.png",
-			"selectedIconPath": "static/tabbar/index-selected.png",
-			"text": "首页"
-		}, {
-			"pagePath": "pages/ownerInquiry/ownerInquiry",
-			"iconPath": "static/tabbar/search.png",
-			"selectedIconPath": "static/tabbar/search-selected.png",
-			"text": "车主查询"
-		}, {
-			"pagePath": "pages/mine/mine",
-			"iconPath": "static/tabbar/mine.png",
-			"selectedIconPath": "static/tabbar/mine-selected.png",
-			"text": "我的"
-		}]
-	}
-}

+ 0 - 88
pages/index/chooseRoad/chooseRoad.vue

@@ -1,88 +0,0 @@
-<template>
-	<view class="road">
-		<view class="road-list">
-			<view class="road-list-item" v-for="(item, index) in roadList" :key="index" @click="jumpPage(type, { roadName: item.roadName })">
-				<view class="road-list-item-icon">
-					<u--image src="./../../../static/icons/road-icon.png" width="50rpx" height="60rpx"></u--image>
-				</view>
-				<view>{{ item.roadName }}</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				roadList: [
-					{
-						roadName: '可处路'
-					},
-					{
-						roadName: '党固路'
-					}
-				],
-				type: 1
-			}
-		},
-		onLoad(page) {
-			if (page.type) {
-				this.type = page.type
-				switch (Number(this.type)){
-					case 1:
-						this.roadList = [{roadName: '本杰路'}, { roadName: '丰林路' }]
-						break;
-					case 2:
-						this.roadList = [{roadName: '顺时路'}, { roadName: '党固路' }]
-						break;
-					case 3:
-						this.roadList = [{roadName: '税务大楼'}, { roadName: '政务大楼' }]
-						break;
-				}
-			}
-		},
-		methods: {
-			jumpPage(type, params) {
-				let url
-				switch (Number(type)){
-					case 1:
-						url = 'pages/index/geomagDetails/geomagDetails'
-						break;
-					case 2:
-						url = 'pages/index/lockDetails/lockDetails'
-						break;
-					case 3:
-						url = 'pages/index/gateDetails/gateDetails'
-						break;
-				}
-				uni.$u.route({
-					url,
-					params
-				})
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-.road {
-	&-list {
-		padding: 40rpx 20rpx;
-		display: flex;
-		flex-wrap: wrap;
-		&-item {
-			text-align: center;
-			color: #1e1e1e;
-			font-size: 26rpx;
-			width: 33%;
-			margin-bottom: 40rpx;
-			&-icon {
-				text-align: center;
-				width: 50rpx;
-				margin: 0 auto 20rpx;
-			}
-		}
-	}
-}
-</style>

+ 0 - 218
pages/index/clockIn/clockIn.vue

@@ -1,218 +0,0 @@
-<template>
-	<view class="clock">
-		<view class="clock-button">
-			<view class="clock-button-outer-animate"></view>
-			<view class="clock-button-outer">
-				<view class="clock-button-inner">
-					<view class="tips">
-						<view>上班打卡</view>
-						<view>{{ currentTime }}</view>
-					</view>
-				</view>
-			</view>
-		</view>
-		<view class="clock-tips">
-			<view class="clock-tips-content">
-				<u-icon name="checkmark-circle-fill" color="#0E9CFF" size="15"></u-icon>
-				<view>已经进入考勤范围,<view class="address">{{ address }}</view><text @click="positionLocation()">重新定位?</text>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	import QQMapWX from '@/static/js/qqmap-wx-jssdk.min.js'
-	export default {
-		data() {
-			return {
-				currentTime: '',
-				qqMap: new QQMapWX({
-					key: 'CWWBZ-F2T36-ZQ6SU-EDL5X-Y3EUT-3HBIF',
-					vm: this
-				}),
-				address: ''
-			}
-		},
-		onShow() {
-			this.currentDate();
-			this.positionLocation()
-		},
-		onUnload() {
-			if (this.formatDate) {
-				clearInterval(this.formatDate); // 在Vue实例销毁前,清除时间定时器
-			}
-		},
-		methods: {
-			positionLocation() {
-				uni.showLoading({
-					title: '定位中...'
-				})
-				wx.getLocation({
-					type: 'gcj02',
-					success: (res) => {
-						this.qqMap.reverseGeocoder({
-							location: {
-								longitude: res.longitude,
-								latitude: res.latitude
-							},
-							success: (res) => {
-								if (res?.result?.formatted_addresses) {
-									this.address = res.result.formatted_addresses.recommend;
-								} else {
-									uni.showToast({
-										title: '获取位置失败!',
-										duration: 3000
-									})
-								}
-								uni.hideLoading()
-							},
-							fail: () => {
-								uni.showToast({
-									title: '获取位置失败!',
-									duration: 3000
-								})
-								uni.hideLoading()
-							}
-						})
-					},
-					fail: () => {
-						uni.showToast({
-							title: '获取位置失败!',
-							duration: 3000
-						})
-						uni.hideLoading()
-					}
-				});
-			},
-			currentDate() {
-				setInterval(this.formatDate, 500);
-			},
-			formatDate() {
-				let date = new Date();
-				let year = date.getFullYear(); // 年
-				let month = date.getMonth() + 1; // 月
-				let day = date.getDate(); // 日
-				let week = date.getDay(); // 星期
-				let hour = date.getHours(); // 时
-				hour = hour < 10 ? "0" + hour : hour; // 如果只有一位,则前面补零
-				let minute = date.getMinutes(); // 分
-				minute = minute < 10 ? "0" + minute : minute; // 如果只有一位,则前面补零
-				let second = date.getSeconds(); // 秒
-				second = second < 10 ? "0" + second : second; // 如果只有一位,则前面补零
-				this.currentTime = `${hour}:${minute}:${second}`;
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	.clock {
-		&-button {
-			position: relative;
-			animation-name: example;
-			animation-duration: 2s;
-			animation-fill-mode: forwards;
-
-			&-outer {
-				margin: 0 auto;
-				display: flex;
-				justify-content: center;
-				align-items: center;
-
-				&-animate {
-					position: absolute;
-					top: 50%;
-					left: 50%;
-					margin-left: -135rpx;
-					margin-top: -135rpx;
-					width: 270rpx;
-					height: 270rpx;
-					background-color: #98D4FE;
-					border-radius: 50%;
-					z-index: -1;
-					animation: scaleUp 3s infinite;
-				}
-
-				@keyframes scaleUp {
-					0% {
-						transform: scale3d(0.8, 0.8, 0.8);
-					}
-
-					50% {
-						transform: scale3d(1.3, 1.3, 1.3);
-					}
-
-					100% {
-						transform: scale3d(0.8, 0.8, 0.8);
-					}
-				}
-			}
-
-			@keyframes example {
-				from {
-					top: 0;
-				}
-
-				to {
-					top: 286rpx;
-				}
-			}
-
-			&-inner {
-				width: 220rpx;
-				height: 220rpx;
-				background-color: #0E9CFF;
-				border-radius: 50%;
-				display: flex;
-				align-items: center;
-				justify-content: center;
-				color: #fff;
-
-				.tips {
-					view {
-						color: #f2f2f2;
-						font-size: 34rpx;
-						text-align: center;
-
-						&:last-child {
-							color: #ddd;
-							font-size: 30rpx;
-							margin-top: 10rpx;
-						}
-					}
-				}
-			}
-		}
-
-		&-tips {
-			text-align: center;
-			margin-top: 320rpx;
-
-			&-content {
-				display: flex;
-				align-items: center;
-				justify-content: center;
-				color: #000;
-				font-size: 24rpx;
-
-				view {
-					margin-left: 5rpx;
-
-					text {
-						color: #F4993A;
-					}
-				}
-			}
-		}
-	}
-
-	.address {
-		display: inline-block;
-		width: 200rpx;
-		line-height: 24rpx;
-		overflow: hidden;
-		white-space: nowrap;
-		text-overflow: ellipsis;
-	}
-</style>

+ 0 - 192
pages/index/deviceDetails/deviceDetails.vue

@@ -1,192 +0,0 @@
-<template>
-	<view class="details">
-		<view class="details-list">
-			<view class="details-item" v-if="type == 1 || type == 2">
-				<view class="left">
-					<view>泊位号:</view>
-					<view>BJ001</view>
-				</view>
-				<view class="right">例行巡查</view>
-			</view>
-			<view class="details-item" v-if="type == 3">
-				<view class="left">
-					<view>停车场:</view>
-					<view>政务大楼停车场-入口处</view>
-				</view>
-				<view class="right">例行巡查</view>
-			</view>
-			<view class="details-item">
-				<view class="left">
-					<view>设备编号:</view>
-					<view>2021505862</view>
-				</view>
-			</view>
-			<view class="details-item" v-if="type == 1">
-				<view class="left">
-					<view>电量值:</view>
-					<view>9.9v</view>
-				</view>
-			</view>
-			<view class="details-item" v-if="type == 2 || type == 3">
-				<view class="left">
-					<view>设备状态:</view>
-					<view>降板</view>
-				</view>
-			</view>
-			<view class="details-item" v-if="type == 1">
-				<view class="left">
-					<view>信号值:</view>
-					<view>-90</view>
-				</view>
-			</view>
-			<view class="details-item" v-if="type == 2">
-				<view class="left">
-					<view>电量值:</view>
-					<view>9.9V</view>
-				</view>
-			</view>
-			<view class="details-item" v-if="type == 1">
-				<view class="left">
-					<view>车牌号:</view>
-					<view>贵A12345</view>
-				</view>
-			</view>
-			<view class="details-item" v-if="type == 2">
-				<view class="left">
-					<view>停车情况:</view>
-					<view>有车</view>
-				</view>
-			</view>
-			<view class="details-item" v-if="type == 1 || type == 2">
-				<view class="left">
-					<view>入场时间:</view>
-					<view>10月28日18:21:30</view>
-				</view>
-			</view>
-			<view class="details-item" v-if="type == 1 || type == 2">
-				<view class="left">
-					<view>停车时长:</view>
-					<view>1小时30分40秒</view>
-				</view>
-			</view>
-		</view>
-		<view class="details-recent">
-			<view class="details-recent-title">
-				<view></view>
-				<view>最近事件</view>
-				<view></view>
-			</view>
-			<view class="details-recent-list">
-				<view class="details-recent-list-header">
-					<view>时间</view>
-					<view>事件类型</view>
-				</view>
-				<view class="details-recent-list-content">
-					<view class="drlc-item" v-for="(item, index) in recentList" :key="index">
-						<view>{{ item.date }}</view>
-						<view>{{ item.event }}</view>
-					</view>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				type: 1,
-				recentList: [
-					{ date: '12月17日 15:15:30', event: '心跳事件' },
-					{ date: '12月17日 15:15:30', event: '心跳事件' },
-					{ date: '12月17日 15:15:30', event: '心跳事件' },
-					{ date: '12月17日 15:15:30', event: '心跳事件' },
-					{ date: '12月17日 15:15:30', event: '心跳事件' },
-					{ date: '12月17日 15:15:30', event: '心跳事件' },
-					{ date: '12月17日 15:15:30', event: '心跳事件' }
-				]
-			}
-		},
-		onLoad(page) {
-			this.type = page?.type ?? 1
-		},
-		methods: {
-			
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-.details {
-	padding: 60rpx 40rpx;
-	font-family: PingFangSC-regular;
-	&-item {
-		display: flex;
-		justify-content: space-between;
-		margin-bottom: 38rpx;
-		font-size: 26rpx;
-		color: #101010;
-		.left {
-			display: flex;
-			view {
-				&:first-child {
-					width: 160rpx;
-					text-align: right;
-				}
-			}
-		}
-		.right {
-			color: #5991E8;
-		}
-	}
-	&-recent {
-		&-title {
-			width: 100%;
-			display: flex;
-			justify-content: space-between;
-			align-items: center;
-			view {
-				color: #3D3C3C;
-				font-size: 26rpx;
-				&:first-child, &:last-child {
-					width: 35%;
-					border-top: dashed 1px #d6d6d6;
-				}
-			}
-		}
-		&-list {
-			margin-top: 52rpx;
-			&-header {
-				display: flex;
-				justify-content: space-between;
-				view {
-					color: #101010;
-					font-size: 26rpx;
-					&:first-child {
-						margin-left: 60rpx;
-					}
-					&:last-child {
-						margin-right: 60rpx;
-					}
-				}
-			}
-			&-content {
-				margin-top: 32rpx;
-				.drlc-item {
-					display: flex;
-					justify-content: space-between;
-					color: #a2a2a2;
-					font-size: 26rpx;
-					margin-bottom: 32rpx;
-					view {
-						&:last-child {
-							margin-right: 60rpx;
-						}
-					}
-				}
-			}
-		}
-	}
-}
-</style>

+ 0 - 175
pages/index/deviceList/deviceList.vue

@@ -1,175 +0,0 @@
-<template>
-	<view class="device">
-		<z-paging ref="paging" v-model="deviceList" @query="queryList">
-			<view class="device-header" slot="top">
-				<view class="device-header-left">
-					<u--input
-						v-model="deviceTypeValue"
-						suffixIcon="arrow-down"
-						:readonly="true"
-						@focus="deviceTypeShow = true"
-						fontSize="24rpx"
-					></u--input>
-					<u-picker :show="deviceTypeShow" :columns="deviceTypeList" keyName="label" @confirm="deviceTypeConfirm"></u-picker>
-				</view>
-				<view class="device-header-right">
-					<u--input
-						v-model="roadValue"
-						suffixIcon="arrow-down"
-						:readonly="true"
-						fontSize="24rpx"
-						@focus="roadShow = true"
-					></u--input>
-					<u-picker :show="roadShow" :columns="roadList" keyName="label" @confirm="roadConfirm"></u-picker>
-				</view>
-			</view>
-			<view class="device-list">
-				<view class="device-list-item" v-for="(item, index) in deviceList" :key="index">
-					<view class="device-list-item-left">
-						<view class="left-device">
-							<view>{{ item.deviceType }}</view>
-							<view>{{ item.road }}</view>
-						</view>
-						<view class="device-no">设备编号: {{ item.deviceNo }}</view>
-					</view>
-					<view class="device-list-item-right" :class="item.status === 0 ? 'success' : item.status === 1 ? 'error' : 'nomal'">{{ item.status | filterStatus }}</view>
-				</view>
-			</view>
-		</z-paging>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				deviceTypeValue: '全部',
-				roadValue: '全部',
-				deviceList: [],
-				deviceTypeShow: false,
-				deviceTypeList: [[
-					{ label: '全部', value: 0 },
-					{ label: '车位锁', value: 1 },
-					{ label: '地磁', value: 2 },
-					{ label: '栏杆道闸', value: 3 }
-				]],
-				roadShow: false,
-				roadList: [[
-					{ label: '全部', value: 0 },
-					{ label: '顺时路', value: 1 },
-					{ label: '党固路', value: 2 },
-					{ label: '丰林路', value: 3 },
-					{ label: '教育路', value: 4 },
-					{ label: '物资路', value: 5 },
-					{ label: '桂花苑路段', value: 6 },
-					{ label: '可处路', value: 7 }
-				]]
-			}
-		},
-		filters: {
-			filterStatus(val) {
-				let name
-				switch (val){
-					case 0:
-						name = '运行中'
-						break;
-					case 1:
-						name = '已离线'
-						break;
-					case 2:
-						name = '异常'
-						break;
-				}
-				return name
-			}
-		},
-		methods: {
-			queryList(pageNo, pageSize) {
-				this.$refs.paging.complete([{
-					deviceType: '车位锁',
-					road: '可处路-KC001',
-					deviceNo: '200602061258',
-					status: 0
-				}, {
-					deviceType: '地磁',
-					road: '可处路-KC002',
-					deviceNo: '200602061259',
-					status: 1
-				}, {
-					deviceType: '栏杆道闸',
-					road: '可处路-KC003',
-					deviceNo: '200602061269',
-					status: 2
-				}, {
-					deviceType: '地磁',
-					road: '可处路-KC005',
-					deviceNo: '200602061259',
-					status: 0
-				}])
-			},
-			deviceTypeConfirm(e) {
-				this.deviceTypeValue = e.value[0].label
-				this.deviceTypeShow = false
-			},
-			roadConfirm(e) {
-				this.roadValue = e.value[0].label
-				this.roadShow = false
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-.device {
-	font-family: 'PingFangSC-regular';
-	&-header {
-		display: flex;
-		justify-content: space-between;
-		padding: 24rpx;
-		&-left {
-			width: 30%;
-		}
-		&-right {
-			width: 30%;
-		}
-	}
-	&-list {
-		&-item {
-			border-bottom: solid 1px #bbb;
-			padding: 32rpx 24rpx;
-			display: flex;
-			justify-content: space-between;
-			align-items: center;
-			.left-device {
-				display: flex;
-				view {
-					font-size: 30rpx;
-					margin-bottom: 16rpx;
-					&:first-child {
-						color: #000;
-						font-weight: 600;
-						margin-right: 44rpx;
-						font-size: 30rpx;
-						width: 130rpx;
-					}
-				}
-			}
-			.device-no {
-				font-size: 28rpx;
-			}
-			&-right {
-				font-size: 28rpx;
-			}
-			.success {
-				color: #06C76E;
-			}
-			.error {
-				color: #FF3939;
-			}
-			.nomal {
-				color: #008CFF;
-			}
-		}
-	}
-}
-</style>

+ 0 - 155
pages/index/gateDetails/gateDetails.vue

@@ -1,155 +0,0 @@
-<template>
-	<view class="details">
-		<z-paging ref="paging" v-model="list" @query="queryList">
-			<view class="details-tabs" slot="top">
-				<u-tabs :list="tabList" @click="tabClick" lineWidth="40"></u-tabs>
-			</view>
-			<view class="details-total" slot="top">
-				<view>已停车位:{{ 30 }}个;空余车位:{{ 36 }}个</view>
-			</view>
-			<view class="details-list">
-				<view class="details-list-item" v-for="(item, index) in list" :key="index" @click="jumpPage('pages/index/deviceDetails/deviceDetails', { type: 3 })">
-					<view class="details-list-item-header">
-						<view>{{ item.roadNo }}</view>
-						<view>{{ item.signal }}</view>
-					</view>
-					<view class="details-list-item-img">
-						<u--image v-if="item.type === 1" src="../../../static/icons/daozhakongzhi.svg" width="174rpx" height="174rpx"></u--image>
-						<u--image v-else-if="item.type === 2" src="../../../static/icons/shipinjiankongyemian.svg" width="174rpx" height="174rpx"></u--image>
-						<u--image v-else-if="item.type === 3" src="../../../static/icons/chengguan-wu-bujian-gonggongsheshi-daoluxinxixianshiping.svg" width="174rpx" height="174rpx"></u--image>
-					</view>
-					<view class="details-list-item-bottom">
-						<view>设备号{{ item.deviceNo }}</view>
-					</view>
-				</view>
-			</view>
-		</z-paging>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				roadInfo: {
-					roadName: ''
-				},
-				tabList: [{
-						name: '全部',
-						value: ''
-					},
-					{
-						name: '异常',
-						value: 1
-					},
-					{
-						name: '离线',
-						value: 2
-					}
-				],
-				list: []
-			}
-		},
-		onLoad(page) {
-			if (page.roadName) {
-				this.roadInfo.roadName = page.roadName
-				uni.setNavigationBarTitle({
-					title: page.roadName
-				})
-			}
-		},
-		methods: {
-			queryList(pageNo, pageSize) {
-				this.$refs.paging.complete([{
-					roadNo: '入口道闸',
-					signal: '降板',
-					type: 1,
-					deviceNo: '202103051265',
-					electric: 9.9
-				}, {
-					roadNo: '入口车牌识别',
-					signal: '在线',
-					type: 2,
-					deviceNo: '202103051265',
-					electric: 10
-				}, {
-					roadNo: '入口显示屏',
-					signal: '在线',
-					type: 3,
-					deviceNo: '202103051265',
-					electric: 10
-				}])
-			},
-			tabClick(val) {
-				console.log(val)
-			},
-			getTimeLong(date) {
-				const nowDate = (new Date()).valueOf()
-				const curDate = (new Date(date)).valueOf()
-				const timeLen = (nowDate - curDate) / 1000
-				const day = parseInt(timeLen / (24 * 3600));
-				const hour = parseInt((timeLen - day * 24 * 3600) / 3600);
-				const minutes = parseInt((timeLen - day * 24 * 3600 - hour * 3600) / 60)
-				const second = parseInt(timeLen % 60)
-				return `${day}天${hour}时${minutes}分${second}秒`
-			},
-			jumpPage(url, params) {
-				uni.$u.route({
-					url, params
-				})
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	page {
-		min-height: calc(100vh - 88rpx);
-		background-color: #F6F6FF;
-	}
-
-	.details {
-		font-family: 'PingFangSC-regular';
-		&-tabs {
-			background-color: #fff;
-		}
-		&-total {
-			display: flex;
-			justify-content: flex-end;
-			margin-top: 32rpx;
-			font-size: 26rpx;
-			color: #000;
-			padding-right: 20rpx;
-		}
-		&-list {
-			padding: 40rpx 20rpx;
-			display: flex;
-			justify-content: space-between;
-			flex-wrap: wrap;
-
-			&-item {
-				width: calc(50% - 52rpx);
-				background-color: #fff;
-				border-radius: 16rpx;
-				padding: 20rpx;
-				margin-bottom: 20rpx;
-				&-header {
-					display: flex;
-					justify-content: space-between;
-					color: #101010;
-					font-size: 26rpx;
-				}
-				&-img {
-					width: 152rpx;
-					height: 152rpx;
-					margin: 16rpx auto 46rpx;
-				}
-				&-bottom {
-					text-align: center;
-					font-size: 24rpx;
-					color: #101010;
-				}
-			}
-		}
-	}
-</style>

+ 0 - 187
pages/index/geomagDetails/geomagDetails.vue

@@ -1,187 +0,0 @@
-<template>
-	<view class="details">
-		<z-paging ref="paging" v-model="list" @query="queryList">
-			<view class="details-tabs" slot="top">
-				<u-tabs :list="tabList" @click="tabClick" lineWidth="40"></u-tabs>
-			</view>
-			<view class="details-list">
-				<view class="details-list-item" v-for="(item, index) in list" :key="index" @click="jumpPage('pages/index/deviceDetails/deviceDetails', { type: 1 })">
-					<view class="details-list-item-header">
-						<view>{{ item.roadNo }}</view>
-						<view>{{ item.signal }}信号</view>
-					</view>
-					<view class="details-list-item-cardNo">
-						{{ item.cardNum }}
-					</view>
-					<view class="details-list-item-img">
-						<u--image v-if="item.cardNum" src="../../../static/icons/has-car-icon.svg" width="152rpx" height="152rpx"></u--image>
-						<u--image v-else src="../../../static/icons/no-car-icon.svg" width="152rpx" height="152rpx"></u--image>
-					</view>
-					<view class="details-list-item-time">
-						{{ item.inTime ? getTimeLong(item.inTime) : '' }}
-					</view>
-					<view class="details-list-item-bottom">
-						<view>{{ item.deviceNo }}</view>
-						<view>
-							<view>{{ item.electric }}V</view>
-							<view class="ele">
-								<u--image v-if="item.electric < 10" src="../../../static/icons/no-ele-icon.svg" width="48rpx" height="48rpx"></u--image>
-								<u--image v-else src="../../../static/icons/has-ele-icon.svg" width="48rpx" height="48rpx"></u--image>
-							</view>
-						</view>
-					</view>
-				</view>
-			</view>
-		</z-paging>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				roadInfo: {
-					roadName: ''
-				},
-				tabList: [{
-						name: '全部',
-						value: ''
-					},
-					{
-						name: '异常',
-						value: 1
-					},
-					{
-						name: '低电量',
-						value: 2
-					},
-					{
-						name: '低信号',
-						value: 3
-					}
-				],
-				list: []
-			}
-		},
-		onLoad(page) {
-			if (page.roadName) {
-				this.roadInfo.roadName = page.roadName
-				uni.setNavigationBarTitle({
-					title: page.roadName
-				})
-			}
-		},
-		methods: {
-			queryList(pageNo, pageSize) {
-				this.$refs.paging.complete([{
-					roadNo: 'KC001',
-					signal: '-90',
-					inTime: '2021-12-17 09:30:50',
-					cardNum: '贵A12345',
-					deviceNo: '202103051265',
-					electric: 9.9
-				}, {
-					roadNo: 'KC001',
-					signal: '-90',
-					inTime: '',
-					cardNum: '',
-					deviceNo: '202103051265',
-					electric: 10
-				}])
-			},
-			tabClick(val) {
-				console.log(val)
-			},
-			getTimeLong(date) {
-				const nowDate = (new Date()).valueOf()
-				const curDate = (new Date(date)).valueOf()
-				const timeLen = (nowDate - curDate) / 1000
-				const day = parseInt(timeLen / (24 * 3600));
-				const hour = parseInt((timeLen - day * 24 * 3600) / 3600);
-				const minutes = parseInt((timeLen - day * 24 * 3600 - hour * 3600) / 60)
-				const second = parseInt(timeLen % 60)
-				return `${day}天${hour}时${minutes}分${second}秒`
-			},
-			jumpPage(url, params) {
-				uni.$u.route({
-					url, params
-				})
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	page {
-		min-height: calc(100vh - 88rpx);
-		background-color: #F6F6FF;
-	}
-
-	.details {
-		font-family: 'PingFangSC-regular';
-		&-tabs {
-			background-color: #fff;
-		}
-
-		&-list {
-			padding: 40rpx 20rpx;
-			display: flex;
-			justify-content: space-between;
-			flex-wrap: wrap;
-
-			&-item {
-				width: calc(50% - 52rpx);
-				background-color: #fff;
-				border-radius: 16rpx;
-				padding: 20rpx;
-				margin-bottom: 20rpx;
-				&-header {
-					display: flex;
-					justify-content: space-between;
-					color: #101010;
-					font-size: 26rpx;
-				}
-				&-cardNo {
-					text-align: center;
-					color: #101010;
-					height: 40rpx;
-					line-height: 40rpx;
-					font-size: 26rpx;
-					margin-bottom: 10rpx;
-				}
-				&-img {
-					width: 152rpx;
-					height: 152rpx;
-					margin: 0 auto;
-				}
-				&-time {
-					text-align: center;
-					margin-top: 12rpx;
-					margin-bottom: 20rpx;
-					font-size: 26rpx;
-					color: #101010;
-					height: 40rpx;
-					overflow: hidden;
-					text-overflow: ellipsis;
-					white-space: nowrap;
-				}
-				&-bottom {
-					display: flex;
-					justify-content: space-between;
-					align-items: center;
-					font-size: 24rpx;
-					color: #101010;
-					view {
-						&:last-child {
-							display: flex;
-							align-items: center;
-						}
-					}
-					.ele {
-						transform: rotate(-90deg);
-					}
-				}
-			}
-		}
-	}
-</style>

+ 0 - 84
pages/index/index.scss

@@ -1,84 +0,0 @@
-page {
-	background-color: #f5f5f5;
-}
-.index {
-	font-family: 'PingFangSC-regular';
-	&-header {
-		height: 250rpx;
-		background-color: #5290FF;
-		padding: 30rpx;
-		display: flex;
-		justify-content: space-between;
-		&-left {
-			color: #fff;
-			font-size: 40rpx;
-			view {
-				&:last-child {
-					margin-top: 20rpx;
-					font-size: 28rpx;
-					font-family: 'PingFangSC-bold';
-				}
-			}
-		}
-		&-right {
-			margin-right: 30rpx;
-			height: 60rpx;
-		}
-	}
-	&-statistics {
-		padding: 0 30rpx;
-		&-list {
-			background-color: #fff;
-			border: solid 1px rgba(255, 0, 0, 0);
-			display: flex;
-			justify-content: space-between;
-			align-items: center;
-			padding: 44rpx 80rpx;
-			border-radius: 20rpx;
-			margin-top: -96rpx;
-			&-item {
-				text-align: center;
-				view {
-					color: #999898;
-					font-size: 26rpx;
-					&:first-child {
-						color: #101010;
-						font-size: 60rpx;
-						font-family: 'PingFangSC-bold';
-					}
-				}
-			}
-		}
-	}
-	&-device {
-		padding: 40rpx 30rpx;
-		background-color: #fff;
-		margin-top: 20rpx;
-		&-info {
-			&-title {
-				font-size: 36rpx;
-				color: #333;
-				font-family: 'PingFangSC-bold';
-				font-weight: 600;
-			}
-			&-menu {
-				display: flex;
-				.item {
-					width: 160rpx;
-					padding: 60rpx 0;
-					text-align: center;
-					.image {
-						display: inline-block;
-					}
-					view {
-						&:last-child {
-							font-size: 24rpx;
-							color: #101010;
-							margin-top: 6rpx;
-						}
-					}
-				}
-			}
-		}
-	}
-}

+ 0 - 136
pages/index/index.vue

@@ -1,136 +0,0 @@
-<template>
-	<view class="index">
-		<!-- 欢迎 -->
-		<view class="index-header">
-			<view class="index-header-left">
-				<view>欢迎登录!</view>
-				<view>张三丰</view>
-			</view>
-			<view class="index-header-right" @click="jumpPage('pages/index/messageCenter/messageCenter')">
-				<u-icon
-					name="bell"
-					color="#fff"
-					size="24"></u-icon>
-				<u-badge
-					type="error"
-					max="99"
-					:absolute="true"
-					:offset="[10, 14]"
-					bgColor="#FD0A0A"
-					:value="infoVal"></u-badge>
-			</view>
-		</view>
-		<!-- 数据汇总 -->
-		<view class="index-statistics">
-			<view class="index-statistics-list">
-				<view class="index-statistics-list-item" @click="jumpPage('pages/index/deviceList/deviceList')">
-					<view>36</view>
-					<view>设备总数</view>
-				</view>
-				<view class="index-statistics-list-item" @click="jumpPage('pages/index/deviceList/deviceList')">
-					<view>10</view>
-					<view>设备离线</view>
-				</view>
-				<view class="index-statistics-list-item" @click="jumpPage('pages/index/deviceList/deviceList')">
-					<view>5</view>
-					<view>设备异常</view>
-				</view>
-			</view>
-		</view>
-		<!-- 设备信息 -->
-		<view class="index-device">
-			<view class="index-device-info">
-				<view class="index-device-info-title">设备信息</view>
-				<view class="index-device-info-menu">
-					<view class="item" @click="jumpPage('pages/index/chooseRoad/chooseRoad', { type: 1 })">
-						<u--image
-							class="image"
-							src="../../static/icons/geomagnetism-icon.svg"
-							width="48rpx"
-							height="48rpx"
-						></u--image>
-						<view>地磁</view>
-					</view>
-					<view class="item" @click="jumpPage('pages/index/chooseRoad/chooseRoad', { type: 2 })">
-						<u--image
-							class="image"
-							src="../../static/icons/parking-lock-icon.svg"
-							width="48rpx"
-							height="48rpx"></u--image>
-						<view>车位锁</view>
-					</view>
-					<view class="item" @click="jumpPage('pages/index/chooseRoad/chooseRoad', { type: 3 })">
-						<u--image
-							class="image"
-							src="./../../static/icons/railing-gate-icon.svg"
-							width="48rpx"
-							height="48rpx"></u--image>
-						<view>栏杆道闸</view>
-					</view>
-				</view>
-			</view>
-		</view>
-		<!-- 考勤管理 -->
-		<view class="index-device">
-			<view class="index-device-info">
-				<view class="index-device-info-title">考勤管理</view>
-				<view class="index-device-info-menu">
-					<view class="item" @click="jumpPage('pages/index/clockIn/clockIn')">
-						<u--image
-							class="image"
-							src="./../../static/icons/clock-in-icon.png"
-							width="48rpx"
-							height="48rpx"></u--image>
-						<view>打卡</view>
-					</view>
-				</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				infoVal: 3
-			}
-		},
-		onShow() {
-			uni.getStorage({
-				key: 'Token',
-				success: function(res) {
-					console.log(res.data);
-				},
-				error: function(err) {
-					console.log(err)
-				},
-				complete: (e) => {
-					console.log(e)
-					if (e.data) {
-						
-					} else {
-						uni.$u.route({
-							url: 'pages/login/login'
-						})
-					}
-				}
-			});
-		},
-		methods: {
-			/**
-			 * @param { String } url
-			 * @param { Object } params
-			 */
-			jumpPage(url, params) {
-				uni.$u.route({
-					url, params
-				})
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	@import './index.scss';
-</style>

+ 0 - 187
pages/index/lockDetails/lockDetails.vue

@@ -1,187 +0,0 @@
-<template>
-	<view class="details">
-		<z-paging ref="paging" v-model="list" @query="queryList">
-			<view class="details-tabs" slot="top">
-				<u-tabs :list="tabList" @click="tabClick" lineWidth="40"></u-tabs>
-			</view>
-			<view class="details-list">
-				<view class="details-list-item" v-for="(item, index) in list" :key="index" @click="jumpPage('pages/index/deviceDetails/deviceDetails', { type: 2 })">
-					<view class="details-list-item-header">
-						<view>{{ item.roadNo }}</view>
-						<view>{{ item.deviceState }}</view>
-					</view>
-					<view class="details-list-item-cardNo">
-						{{ item.cardNum }}
-					</view>
-					<view class="details-list-item-img">
-						<u--image v-if="item.cardNum" src="../../../static/icons/has-car-icon.svg" width="152rpx" height="152rpx"></u--image>
-						<u--image v-else src="../../../static/icons/no-car-icon.svg" width="152rpx" height="152rpx"></u--image>
-					</view>
-					<view class="details-list-item-time">
-						{{ item.inTime ? getTimeLong(item.inTime) : '' }}
-					</view>
-					<view class="details-list-item-bottom">
-						<view>{{ item.deviceNo }}</view>
-						<view>
-							<view>{{ item.electric }}V</view>
-							<view class="ele">
-								<u--image v-if="item.electric < 10" src="../../../static/icons/no-ele-icon.svg" width="48rpx" height="48rpx"></u--image>
-								<u--image v-else src="../../../static/icons/has-ele-icon.svg" width="48rpx" height="48rpx"></u--image>
-							</view>
-						</view>
-					</view>
-				</view>
-			</view>
-		</z-paging>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				roadInfo: {
-					roadName: ''
-				},
-				tabList: [{
-						name: '全部',
-						value: ''
-					},
-					{
-						name: '异常',
-						value: 1
-					},
-					{
-						name: '低电量',
-						value: 2
-					},
-					{
-						name: '离线',
-						value: 3
-					}
-				],
-				list: []
-			}
-		},
-		onLoad(page) {
-			if (page.roadName) {
-				this.roadInfo.roadName = page.roadName
-				uni.setNavigationBarTitle({
-					title: page.roadName
-				})
-			}
-		},
-		methods: {
-			queryList(pageNo, pageSize) {
-				this.$refs.paging.complete([{
-					roadNo: 'KC001',
-					deviceState: '升板',
-					inTime: '2021-12-17 09:30:50',
-					cardNum: '贵A12345',
-					deviceNo: '202103051265',
-					electric: 9.9
-				}, {
-					roadNo: 'KC001',
-					deviceState: '降板',
-					inTime: '',
-					cardNum: '',
-					deviceNo: '202103051265',
-					electric: 10
-				}])
-			},
-			tabClick(val) {
-				console.log(val)
-			},
-			getTimeLong(date) {
-				const nowDate = (new Date()).valueOf()
-				const curDate = (new Date(date)).valueOf()
-				const timeLen = (nowDate - curDate) / 1000
-				const day = parseInt(timeLen / (24 * 3600));
-				const hour = parseInt((timeLen - day * 24 * 3600) / 3600);
-				const minutes = parseInt((timeLen - day * 24 * 3600 - hour * 3600) / 60)
-				const second = parseInt(timeLen % 60)
-				return `${day}天${hour}时${minutes}分${second}秒`
-			},
-			jumpPage(url, params) {
-				uni.$u.route({
-					url, params
-				})
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	page {
-		min-height: calc(100vh - 88rpx);
-		background-color: #F6F6FF;
-	}
-
-	.details {
-		font-family: 'PingFangSC-regular';
-		&-tabs {
-			background-color: #fff;
-		}
-
-		&-list {
-			padding: 40rpx 20rpx;
-			display: flex;
-			justify-content: space-between;
-			flex-wrap: wrap;
-
-			&-item {
-				width: calc(50% - 52rpx);
-				background-color: #fff;
-				border-radius: 16rpx;
-				padding: 20rpx;
-				margin-bottom: 20rpx;
-				&-header {
-					display: flex;
-					justify-content: space-between;
-					color: #101010;
-					font-size: 26rpx;
-				}
-				&-cardNo {
-					text-align: center;
-					color: #101010;
-					height: 40rpx;
-					line-height: 40rpx;
-					font-size: 26rpx;
-					margin-bottom: 10rpx;
-				}
-				&-img {
-					width: 152rpx;
-					height: 152rpx;
-					margin: 0 auto;
-				}
-				&-time {
-					text-align: center;
-					margin-top: 12rpx;
-					margin-bottom: 20rpx;
-					font-size: 26rpx;
-					color: #101010;
-					height: 40rpx;
-					overflow: hidden;
-					text-overflow: ellipsis;
-					white-space: nowrap;
-				}
-				&-bottom {
-					display: flex;
-					justify-content: space-between;
-					align-items: center;
-					font-size: 24rpx;
-					color: #101010;
-					view {
-						&:last-child {
-							display: flex;
-							align-items: center;
-						}
-					}
-					.ele {
-						transform: rotate(-90deg);
-					}
-				}
-			}
-		}
-	}
-</style>

+ 0 - 47
pages/index/messageCenter/messageCenter.scss

@@ -1,47 +0,0 @@
-page {
-	background-color: #f6f6ff;
-	min-height: calc(100vh - 88rpx);
-}
-.message {
-	font-family: 'PingFangSC-regular';
-	&-list {
-		padding-top: 40rpx;
-		&-item {
-			padding: 0 40rpx;
-			&-date {
-				color: #cfcfd6;
-				font-size: 26rpx;
-				text-align: center;
-				margin-top: 20rpx;
-			}
-			&-content {
-				background-color: #fff;
-				border-radius: 16rpx;
-				padding: 26rpx 0 20rpx;
-				margin-top: 20rpx;
-				.type {
-					color: #101010;
-					font-size: 34rpx;
-					font-weight: 600;
-					margin-bottom: 14rpx;
-					padding: 0 26rpx;
-				}
-				.info {
-					font-size: 28rpx;
-					color: #666;
-					line-height: 45rpx;
-					padding: 0 26rpx;
-					margin-bottom: 40rpx;
-				}
-				.jump {
-					display: flex;
-					justify-content: space-between;
-					padding: 20rpx 26rpx 0;
-					border-top: solid 1px #dfdfdf;
-					font-size: 28rpx;
-					color: #509DF4;
-				}
-			}
-		}
-	}
-}

+ 0 - 57
pages/index/messageCenter/messageCenter.vue

@@ -1,57 +0,0 @@
-<template>
-	<view class="message">
-		<z-paging ref="paging" v-model="messageList" @query="queryList">
-			<view class="message-list">
-				<view class="message-list-item" v-for="(item, index) in messageList" :key="index">
-					<view class="message-list-item-date">{{ item.date }}</view>
-					<view class="message-list-item-content">
-						<view class="type">{{ item.type }}</view>
-						<view class="info">
-							<text>{{ item.content }}</text>
-						</view>
-						<view class="jump">
-							<view>查看详情</view>
-							<view>
-								<u-icon name="arrow-right" color="#101010" size="16"></u-icon>
-							</view>
-						</view>
-					</view>
-				</view>
-			</view>
-		</z-paging>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				messageList: []
-			}
-		},
-		methods: {
-			queryList(pageNo, pageSize) {
-				this.$refs.paging.complete([{
-						date: '2021年12月20日 08:02:03',
-						type: '故障消息',
-						content: '欠费车贵AR366T于12月20日 08:02:03驶入可处路,欠费金额:¥500.00,请前往!'
-					},
-					{
-						date: '2021年12月20日 08:20:03',
-						type: '预警消息',
-						content: '可处路-KC002的信号过低,请及时处理!\n设备号:2022112542'
-					},
-					{
-						date: '2021年12月20日 09:05:49',
-						type: '应急求助',
-						content: '可处路-KC003有一个车主求紧急求助:求助内容:车车位锁卡住车子了'
-					}
-				]);
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	@import './messageCenter.scss';
-</style>

+ 0 - 32
pages/login/login.scss

@@ -1,32 +0,0 @@
-.login {
-	&-title {
-		margin-bottom: 226rpx;
-		padding: 246rpx 150rpx 0;
-		font-family: 'PingFangSC-bold';
-		color: #50A0FA;
-		font-size: 72rpx;
-		text-align: center;
-		font-weight: bold;
-	}
-	&-form {
-		padding: 0 56rpx;
-		&-title {
-			font-size: 40rpx;
-			font-family: PingFangSC-bold;
-			font-weight: bold;
-			margin-bottom: 50rpx;
-		}
-		&-box {
-			&-button {
-				margin-top: 80rpx;
-			}
-			&-forget {
-				width: 100%;
-				text-align: right;
-				font-size: 28rpx;
-				color: #999;
-				font-family: PingFangSC-regular;
-			}
-		}
-	}
-}

+ 0 - 98
pages/login/login.vue

@@ -1,98 +0,0 @@
-<!-- 登录 -->
-<template>
-	<view class="login">
-		<view class="login-title">智慧停车<br />设备巡检系统</view>
-		<view class="login-form">
-			<view class="login-form-title">账号密码登录</view>
-			<view class="login-form-box">
-				<u--form :model="loginForm" :rules="loginRules" ref="loginForm">
-					<u-form-item prop="phoneNumber">
-						<u--input v-model="loginForm.phoneNumber" border="surround" placeholder="请输入手机号码" shape="square"
-							fontSize="30rpx" maxlength="11" type="number" color="#B7B7B7"></u--input>
-					</u-form-item>
-					<u-form-item prop="password">
-						<u--input v-model="loginForm.password" border="surround" :password="true" placeholder="请输入密码"
-							shape="square" fontSize="30rpx" color="#B7B7B7">
-						</u--input>
-					</u-form-item>
-					<u-form-item>
-						<u-button class="login-form-box-button" type="primary" text="登录" @click="handleLogin">
-						</u-button>
-					</u-form-item>
-					<u-form-item>
-						<view class="login-form-box-forget" @click="jumpPage('pages/mine/changePassword/changePassword')">忘记密码?</view>
-					</u-form-item>
-				</u--form>
-			</view>
-		</view>
-		<u-notify ref="uNotify" message="Hi uView"></u-notify>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				loginForm: {
-					phoneNumber: '18084288856',
-					password: '123456'
-				},
-				loginRules: {
-					phoneNumber: [{
-							required: true,
-							message: '请输入手机号码',
-							trigger: ['blur']
-						},
-						{
-							validator: (rule, value, callback) => {
-								return uni.$u.test.mobile(value);
-							},
-							message: '手机号码不正确',
-							trigger: ['blur']
-						}
-					],
-					password: {
-						type: 'string',
-						required: true,
-						message: '请输入密码',
-						trigger: ['blur']
-					}
-				}
-			}
-		},
-		methods: {
-			handleLogin() {
-				this.$refs.loginForm.validate().then(res => {
-					uni.setStorage({
-						key: 'Token',
-						data: '456123',
-						success: function() {
-							console.log('success');
-						}
-					});
-					uni.$u.route({
-						url: 'pages/index/index',
-						type: 'switchTab'
-					})
-				}).catch(error => {
-					this.$refs.uNotify.show({
-						top: -1,
-						type: 'warning',
-						message: '请输入手机号/密码',
-						duration: 1000 * 3,
-						fontSize: 20
-					})
-				})
-			},
-			jumpPage(url) {
-				uni.$u.route({
-					url
-				})
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	@import './login.scss';
-</style>

+ 0 - 93
pages/mine/changePassword/changePassword.vue

@@ -1,93 +0,0 @@
-<template>
-	<view class="password">
-		<u--form labelPosition="left" :model="changeForm" :rules="rules" ref="changeForm">
-			<u-form-item label="" prop="newPass" borderBottom labelWidth="0" :style="{'marginBottom': '30rpx'}">
-				<u--input v-model="changeForm.newPass" border="none" prefixIcon="lock"
-					prefixIconStyle="font-size: 40rpx;color: #638EE3" placeholder="输入新密码"
-					placeholderStyle="font-size: 24rpx" password></u--input>
-			</u-form-item>
-			<u-form-item label="" prop="confirmPass" borderBottom labelWidth="0">
-				<u--input v-model="changeForm.confirmPass" border="none" prefixIcon="lock"
-					prefixIconStyle="font-size: 40rpx;color: #638EE3" placeholder="确认新密码"
-					placeholderStyle="font-size: 24rpx" password></u--input>
-			</u-form-item>
-			<u-form-item label="" labelWidth="0">
-				<view class="confirm-button">
-					<u-button type="primary" text="确认" color="#638EE3" :customStyle="{borderRadius: '20rpx'}"
-						@click="submitChangeForm" :loading="loading"></u-button>
-				</view>
-			</u-form-item>
-		</u--form>
-		<u-toast ref="uToast"></u-toast>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				changeForm: {
-					newPass: '',
-					confirmPass: ''
-				},
-				rules: {
-					newPass: {
-						type: 'string',
-						required: true,
-						message: '输入新密码',
-						trigger: ['blur', 'change']
-					},
-					confirmPass: {
-						type: 'string',
-						required: true,
-						message: '输入确认密码',
-						trigger: ['blur', 'change']
-					}
-				},
-				loading: false
-			}
-		},
-		methods: {
-			submitChangeForm() {
-				this.$refs.changeForm.validate().then(res => {
-					console.log(this.changeForm)
-					if (this.changeForm.newPass === this.changeForm.confirmPass) {
-						this.loading = true
-						this.$refs.uToast.show({
-							type: 'success',
-							title: '提示',
-							message: "修改成功",
-							iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/success.png'
-						})
-						setTimeout(() => {
-							uni.$u.route({
-								url: 'pages/mine/mine',
-								type: 'switchTab'
-							})
-						}, 2000)
-					} else {
-						this.$refs.uToast.show({
-							type: 'warning',
-							title: '提示',
-							message: "两次密码不一致",
-							iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/warning.png'
-						})
-					}
-				}).catch(error => {
-
-				})
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	.password {
-		padding: 100rpx 68rpx;
-
-		.confirm-button {
-			width: 100%;
-			margin-top: 200rpx;
-		}
-	}
-</style>

+ 0 - 31
pages/mine/mine.scss

@@ -1,31 +0,0 @@
-.mine {
-	&-header {
-		height: 234rpx;
-		background-color: #5290FF;
-		display: flex;
-		align-items: flex-end;
-		padding: 0 34rpx 36rpx;
-		&-avatar {
-			margin-right: 42rpx;
-		}
-		&-user {
-			font-size: 40rpx;
-			color: #fff;
-			view {
-				&:last-child {
-					font-size: 28rpx;
-					margin-bottom: 14rpx;
-				}
-			}
-		}
-	}
-	&-cell {
-		margin-top: 32rpx;
-		.cell-title {
-			font-size: 28rpx;
-			font-family: PingFangSC-regular;
-			color: #101010;
-			margin-left: 10rpx;
-		}
-	}
-}

+ 0 - 85
pages/mine/mine.vue

@@ -1,85 +0,0 @@
-<template>
-	<view class="mine">
-		<view class="mine-header">
-			<view class="mine-header-avatar">
-				<u-avatar :src="userInfo.avatar" size="60"></u-avatar>
-			</view>
-			<view class="mine-header-user">
-				<view>张三丰</view>
-				<view>巡检员</view>
-			</view>
-		</view>
-		<view class="mine-cell">
-			<u-cell-group :border="false">
-				<u-cell icon="setting-fill" title="" :border="false" :isLink="true"
-					:rightIconStyle="{color: '#638EE3', fontSize: '30rpx', fontWeight: 600}"
-					:customStyle="{ marginBottom: '10rpx' }" @click="jumpPage('pages/mine/problemReporting/problemReporting')">
-					<view slot="icon">
-						<u--image src="./../../static/icons/question-icon.png" width="44rpx" height="44rpx"></u--image>
-					</view>
-					<view class="cell-title" slot="title">
-						问题上报
-					</view>
-				</u-cell>
-				<u-cell icon="integral-fill" title="" :border="false" :isLink="true"
-					:rightIconStyle="{color: '#638EE3', fontSize: '30rpx', fontWeight: 600}"
-					:customStyle="{ marginBottom: '10rpx' }">
-					<view slot="icon">
-						<u--image src="./../../static/icons/config-icon.png" width="44rpx" height="44rpx"></u--image>
-					</view>
-					<view class="cell-title" slot="title">
-						配置管理
-					</view>
-				</u-cell>
-				<u-cell icon="integral-fill" title="" :border="false" :isLink="true"
-					:rightIconStyle="{color: '#638EE3', fontSize: '30rpx', fontWeight: 600}"
-					:customStyle="{ marginBottom: '10rpx' }" @click="jumpPage('pages/mine/changePassword/changePassword')">
-					<view slot="icon">
-						<u--image src="./../../static/icons/password-icon.png" width="44rpx" height="44rpx"></u--image>
-					</view>
-					<view class="cell-title" slot="title">
-						修改密码
-					</view>
-				</u-cell>
-				<u-cell icon="integral-fill" title="" :border="false" :isLink="true"
-					:rightIconStyle="{color: '#638EE3', fontSize: '30rpx', fontWeight: 600}"
-					:customStyle="{ marginBottom: '10rpx' }" @click="logout">
-					<view slot="icon">
-						<u--image src="./../../static/icons/logout-icon.png" width="44rpx" height="44rpx"></u--image>
-					</view>
-					<view class="cell-title" slot="title">
-						退出账号
-					</view>
-				</u-cell>
-			</u-cell-group>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				userInfo: {
-					avatar: 'https://cdn.uviewui.com/uview/album/1.jpg'
-				}
-			}
-		},
-		methods: {
-			logout() {
-				uni.$u.route({
-					url: 'pages/login/login'
-				})
-			},
-			jumpPage(url, params) {
-				uni.$u.route({
-					url, params
-				})
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	@import './mine.scss';
-</style>

+ 0 - 121
pages/mine/problemReporting/problemReporting.vue

@@ -1,121 +0,0 @@
-<template>
-	<view class="problem">
-		<view class="problem-form">
-			<u--form labelPosition="left" :model="reportForm" :rules="rules" ref="reportForm">
-				<u-form-item label="问题描述:" prop="content" labelWidth="80">
-					<u--textarea v-model="reportForm.content" placeholder="请详细描述问题内容" count maxlength="300" height="80">
-					</u--textarea>
-				</u-form-item>
-				<u-form-item label="上传图片:" labelWidth="80">
-					<u-upload :fileList="fileList1" @afterRead="afterRead" @delete="deletePic" name="1" multiple
-						:maxCount="10" uploadIcon="plus" uploadIconColor="rgba(0, 0, 0, 0.45)"
-						uploadText="上传照片" width="104" height="104" bgColor="#fff"></u-upload>
-				</u-form-item>
-				<u-form-item label="" labelWidth="20">
-					<u-button type="primary" text="提交" :loading="loading" @click="submitForm"></u-button>
-				</u-form-item>
-			</u--form>
-		</view>
-		<u-toast ref="uToast"></u-toast>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				reportForm: {
-					content: '',
-					fileList: []
-				},
-				rules: {
-					content: [
-						{
-							type: 'string',
-							required: true,
-							message: '请详细描述问题内容',
-							trigger: ['blur']
-						}
-					]
-				},
-				fileList1: [],
-				loading: false
-			}
-		},
-		methods: {
-			// 删除图片
-			deletePic(event) {
-				this[`fileList${event.name}`].splice(event.index, 1)
-			},
-			// 新增图片
-			async afterRead(event) {
-				// 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
-				let lists = [].concat(event.file)
-				let fileListLen = this[`fileList${event.name}`].length
-				lists.map((item) => {
-					this[`fileList${event.name}`].push({
-						...item,
-						status: 'uploading',
-						message: '上传中'
-					})
-				})
-				for (let i = 0; i < lists.length; i++) {
-					const result = await this.uploadFilePromise(lists[i].thumb)
-					let item = this[`fileList${event.name}`][fileListLen]
-					this[`fileList${event.name}`].splice(fileListLen, 1, Object.assign(item, {
-						status: 'success',
-						message: '',
-						url: result
-					}))
-					fileListLen++
-					this.reportForm.fileList = this.fileList1.map(item => {
-						return item.url.url
-					})
-				}
-			},
-			uploadFilePromise(url) {
-				return new Promise((resolve, reject) => {
-					let a = uni.uploadFile({
-						url: 'https://wx.hw.hongweisoft.com/veterans/file/upload/single/minio',
-						filePath: url,
-						name: 'file',
-						formData: {
-							user: 'test'
-						},
-						success: (res) => {
-							setTimeout(() => {
-								resolve(JSON.parse(res.data)?.data)
-							}, 1000)
-						}
-					});
-				})
-			},
-			submitForm() {
-				this.$refs.reportForm.validate().then(res => {
-					console.log(this.reportForm)
-					this.loading = true
-					this.$refs.uToast.show({
-						type: 'success',
-						title: '提示',
-						message: "提交成功",
-						iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/success.png'
-					})
-					setTimeout(() => {
-						uni.$u.route({
-							url: 'pages/mine/mine',
-							type: 'switchTab'
-						})
-					}, 2000)
-				}).catch(error => {
-					
-				})
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-.problem {
-	padding: 20rpx 40rpx;
-}
-</style>

+ 0 - 120
pages/ownerInquiry/ownerInquiry.vue

@@ -1,120 +0,0 @@
-<template>
-	<view class="inquiry">
-		<view class="inquiry-input" @click="keyboardShow = true">
-			<u-code-input v-model="cardNum" :maxlength="8" size="25" :disabledKeyboard="true"></u-code-input>
-			<u-keyboard ref="uKeyboard" mode="car" :show="keyboardShow" @change="keyboardChange"
-				@confirm="keyboardConfirm" @backspace="keyboardBackspace"></u-keyboard>
-			<u-picker :show="colorShow" :columns="colorList" keyName="text" @confirm="colorConfirm"></u-picker>
-		</view>
-		<view class="inquiry-button">
-			<u-button type="primary" text="查询" @click="searchRecords"></u-button>
-		</view>
-		<view class="inquiry-tips">通过输入车牌号查询车主的停车记录</view>
-		<u-toast ref="uToast"></u-toast>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				cardNum: '',
-				colorCode: '',
-				keyboardShow: false,
-				colorList: [
-					[{
-						text: '蓝色',
-						colorCode: 0
-					}, {
-						text: '黄色',
-						colorCode: 1
-					}, {
-						text: '黑色',
-						colorCode: 2
-					}, {
-						text: '白色',
-						colorCode: 3
-					}, {
-						text: '绿色',
-						colorCode: 4
-					}, {
-						text: '其他',
-						colorCode: 99
-					}]
-				],
-				colorShow: false
-			}
-		},
-		methods: {
-			keyboardChange(val) {
-				if (this.cardNum.length < 7) {
-					this.cardNum += val
-				}
-				console.log(this.cardNum)
-			},
-			keyboardConfirm(val) {
-				this.keyboardShow = false
-				this.colorShow = true
-			},
-			keyboardBackspace() {
-				if (this.cardNum.length) this.cardNum = this.cardNum.substr(0, this.cardNum.length - 1);
-			},
-			colorConfirm(val) {
-				this.colorCode = val.value[0].colorCode
-				this.colorShow = false
-			},
-			searchRecords() {
-				if (this.cardNum.length === 7 && (this.colorCode || this.colorCode == 0)) {
-					uni.$u.route({
-						url: 'pages/ownerInquiry/queryResults/queryResults'
-					})
-				} else if (this.cardNum.length < 7 && this.colorCode){
-					this.$refs.uToast.show({
-						type: 'warning',
-						title: '提示',
-						message: "请选择正确的车牌号",
-						iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/warning.png'
-					})
-				} else if (this.cardNum.length === 7 && this.colorCode === '') {
-					this.$refs.uToast.show({
-						type: 'warning',
-						title: '提示',
-						message: "请选择车牌颜色",
-						iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/warning.png'
-					})
-				} else {
-					this.$refs.uToast.show({
-						type: 'warning',
-						title: '提示',
-						message: "请选择车牌号和车牌颜色",
-						iconUrl: 'https://cdn.uviewui.com/uview/demo/toast/warning.png'
-					})
-				}
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	.inquiry {
-		padding: 0 40rpx;
-
-		&-input {
-			padding-top: 420rpx;
-			text-align: center;
-			width: calc(100% - 40rpx);
-			margin: 0 auto;
-		}
-
-		&-button {
-			margin-top: 100rpx;
-		}
-
-		&-tips {
-			color: #bbb;
-			font-size: 28rpx;
-			margin-top: 100rpx;
-			text-align: center;
-		}
-	}
-</style>

+ 0 - 165
pages/ownerInquiry/queryResults/queryResults.vue

@@ -1,165 +0,0 @@
-<template>
-	<view class="results">
-		<z-paging ref="paging" v-model="resultList" @query="queryList">
-			<view class="results-list">
-				<view class="results-list-item" v-for="(item, index) in resultList" :key="index">
-					<view class="results-list-item-title">
-						<view class="left">
-							<view>{{ item.cardNo }}</view>
-							<view>{{ item.roadName }}</view>
-						</view>
-						<view class="right">{{ item.status === 0 ? '已完成': '' }}</view>
-					</view>
-					<view class="results-list-item-content">
-						<view class="item">订单编号:{{ item.orderNo }}</view>
-						<view class="item" v-if="item.type === 1">开始计费:{{ item.startDate }}</view>
-						<view class="item" v-else>入场时间:{{ item.startDate }}</view>
-						<view class="item" v-if="item.type === 1">结束计费:{{ item.endDate }}</view>
-						<view class="item" v-else>出场时间:{{ item.endDate }}</view>
-						<view class="item">免费时长:{{ item.freeDuration }}</view>
-						<view class="item">计费时长:{{ item.calcDuration }}</view>
-						<view class="item">累计停车时长:{{ item.totalDuration }}</view>
-						<view class="item">应缴金额:<text>{{ item.shouldPay || 0 }}元</text></view>
-						<view class="item">实缴金额:<text>{{ item.reallyPay || 0 }}元</text></view>
-						<view class="item">泊位号:{{ item.parkNo }}</view>
-						<view class="item" v-if="item.type === 1">车位锁设备号:{{ item.lockNo }}</view>
-					</view>
-					<view class="results-list-item-bottom">
-						<view>收费标准</view>
-						<view>
-							<u-icon name="arrow-right" color="#969799" size="18"></u-icon>
-						</view>
-					</view>
-				</view>
-			</view>
-		</z-paging>
-	</view>
-</template>
-
-<script>
-	export default {
-		data() {
-			return {
-				resultList: []
-			}
-		},
-		methods: {
-			queryList(pageNo, pageSize) {
-				this.$refs.paging.complete([{
-					cardNo: '贵AR366Y',
-					roadName: '园丁路',
-					status: 0,
-					orderNo: '617947319799648256',
-					startDate: '2021-11-09 15:08:2',
-					endDate: '2021-11-10 09:23:43',
-					freeDuration: '0天0时15分0秒',
-					calcDuration: '0天17时59分16秒',
-					totalDuration: '0天18时15分16秒',
-					shouldPay: '0.24',
-					reallyPay: '0.01',
-					parkNo: 'DJ001',
-					lockNo: '2015030411',
-					type: 1
-				}, {
-					cardNo: '贵AR366Y',
-					roadName: '园丁路',
-					status: 0,
-					orderNo: '617947319799648256',
-					startDate: '2021-11-09 15:08:2',
-					endDate: '2021-11-10 09:23:43',
-					freeDuration: '0天0时15分0秒',
-					calcDuration: '0天17时59分16秒',
-					totalDuration: '0天18时15分16秒',
-					shouldPay: '0.24',
-					reallyPay: '0.01',
-					parkNo: 'DJ001',
-					lockNo: '2015030411',
-					type: 2
-				}])
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	page {
-		background-color: #F6F6FF;
-		min-height: calc(100vh - 88rpx);
-	}
-
-	.results {
-		&-list {
-			padding: 30rpx 40rpx;
-
-			&-item {
-				background-color: #fff;
-				border-radius: 14rpx;
-				margin-bottom: 20rpx;
-
-				&-title {
-					display: flex;
-					justify-content: space-between;
-					align-items: center;
-					padding: 24rpx 40rpx;
-					border-bottom: 1px solid #dfdfdf;
-					margin-bottom: 30rpx;
-
-					.left {
-						view {
-							&:first-child {
-								font-size: 32rpx;
-								font-weight: 600;
-								color: #3a3a3a;
-								line-height: 50rpx;
-								letter-spacing: 1px;
-							}
-
-							&:last-child {
-								color: #858585;
-								font-size: 26rpx;
-								line-height: 40rpx;
-							}
-						}
-					}
-
-					.right {
-						padding: 0 14rpx;
-						line-height: 50rpx;
-						border-radius: 4rpx;
-						border: 1px solid #bdbdbd;
-						color: #858585;
-					}
-				}
-
-				&-content {
-					padding: 0 40rpx 24rpx;
-					border-bottom: 1px solid #dfdfdf;
-
-					.item {
-						margin-bottom: 8rpx;
-						font-size: 26rpx;
-						font-weight: 400;
-						color: #595959;
-						line-height: 40rpx;
-						letter-spacing: 1px;
-						text {
-							color: #fa6400;
-						}
-					}
-				}
-
-				&-bottom {
-					display: flex;
-					justify-content: space-between;
-					align-items: center;
-					padding: 26rpx 32rpx;
-					font-size: 28rpx;
-					line-height: 54rpx;
-					color: #606266;
-					background-color: #fff;
-					text-align: left;
-				}
-			}
-		}
-	}
-</style>

+ 0 - 1
static/icons/chengguan-wu-bujian-gonggongsheshi-daoluxinxixianshiping.svg

@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M226.127012 957.819259h564.16079V71.74321H226.127012v886.076049z m55.030519-830.451358h454.099753v774.826667H281.157531v-774.826667z" fill="#EA5959" /><path d="M382.976 450.81284l297.630025-126.508247a57.520988 57.520988 0 1 0-45.005432-105.876544L337.957926 344.936296a57.520988 57.520988 0 0 0 45.005432 105.889185M382.976 634.829432L680.593383 508.333827a57.520988 57.520988 0 1 0-45.005432-105.889185L337.970568 528.952889a57.520988 57.520988 0 1 0 45.005432 105.876543M382.976 818.846025l297.617383-126.520889a57.520988 57.520988 0 1 0-45.005432-105.876543L337.970568 712.95684a57.520988 57.520988 0 0 0 45.005432 105.889185" fill="#EA5959" /></svg>

二进制
static/icons/clock-in-icon.png


二进制
static/icons/config-icon.png


文件差异内容过多而无法显示
+ 0 - 0
static/icons/daozhakongzhi.svg


二进制
static/icons/geomagnetism-icon.png


+ 0 - 31
static/icons/geomagnetism-icon.svg

@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="77px" height="75px" viewBox="0 0 77 75" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <title>地磁</title>
-    <defs>
-        <linearGradient x1="50%" y1="2.5636701%" x2="78.5018587%" y2="88.3968519%" id="linearGradient-1">
-            <stop stop-color="#101010" offset="0%"></stop>
-            <stop stop-color="#101010" offset="100%"></stop>
-        </linearGradient>
-        <path d="M59,31.7668267 C59,30.7637013 58.5696325,29.1846188 56.4274662,27.610336 C57.1431335,26.6072106 57.5686654,25.6040853 57.5686654,24.6009599 C57.5686654,19.8685121 49.2852998,16 39,16 C28.7147002,16 20.4313346,19.8685121 20.4313346,24.6009599 C20.4313346,25.6040853 20.8617021,26.6072106 21.5725338,27.610336 C19.4303675,29.1894185 19,30.7637013 19,31.7668267 C19,32.9139413 19.5705996,33.9170666 20.426499,34.920192 L20.426499,50.3990401 C20.426499,55.1314879 28.7098646,59 38.9951644,59 C49.2804642,59 57.5686654,55.1314879 57.5686654,50.3990401 L57.5686654,34.920192 C58.4294004,33.9170666 59,32.9139413 59,31.7668267 Z M23.9613153,31.0036834 L24.5464217,31.0036834 C27.8974855,32.7747516 33.434236,33.9554638 39.7011605,33.9554638 C46.1131528,33.9554638 51.794971,32.7747516 55.2911025,30.8836924 C55.4361702,30.8836924 55.4361702,31.0036834 55.5812379,31.0036834 C56.6015474,31.5940395 57.3317215,32.3043867 57.3317215,32.7747516 C57.3317215,34.4306284 50.6295938,37.5023998 39.8462282,37.5023998 C29.0628627,37.5023998 22.360735,34.4306284 22.360735,32.7747516 C22.2156673,32.299587 22.7959381,31.7092309 23.9613153,31.0036834 Z M39,20.958031 C40.8665377,20.958031 42.3317215,21.7307735 42.3317215,22.6139078 C42.3317215,23.4970421 40.8665377,24.2697846 39,24.2697846 C37.1334623,24.2697846 35.6682785,23.4970421 35.6682785,22.6139078 C35.6682785,21.7307735 37.1334623,20.958031 39,20.958031 Z M25.6682785,54.041969 L25.6682785,39.153477 L27.8346228,39.153477 C28.1682785,39.3022659 28.6663443,39.3022659 29,39.4510548 L29,54.041969 L25.6682785,54.041969 L25.6682785,54.041969 Z M40.6682785,55.6930461 L37.3365571,55.6930461 L37.3365571,40.8093537 L40.6682785,40.8093537 L40.6682785,55.6930461 L40.6682785,55.6930461 Z M52.3317215,54.041969 L49,54.041969 L49,39.4510548 C49.3336557,39.3022659 49.8317215,39.3022659 50.1653772,39.153477 L52.3317215,39.153477 L52.3317215,54.041969 L52.3317215,54.041969 Z" id="path-2"></path>
-        <filter x="-16.2%" y="-12.8%" width="132.5%" height="130.2%" filterUnits="objectBoundingBox" id="filter-3">
-            <feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="2" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0.461831837   0 0 0 0 0.838768116  0 0 0 0.456785402 0" type="matrix" in="shadowBlurOuter1"></feColorMatrix>
-        </filter>
-    </defs>
-    <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="首页备份-4" transform="translate(-79.000000, -497.000000)">
-            <g id="金刚区备份" transform="translate(41.000000, 465.000000)">
-                <g id="编组-3" transform="translate(38.000000, 32.000000)">
-                    <g id="地磁" transform="translate(0.000000, 0.000000)">
-                        <rect id="矩形" fill="url(#linearGradient-1)" x="0" y="0" width="77" height="75" rx="30"></rect>
-                        <g id="形状结合">
-                            <use fill="black" fill-opacity="1" filter="url(#filter-3)" xlink:href="#path-2"></use>
-                            <use fill="#FFFFFF" fill-rule="evenodd" xlink:href="#path-2"></use>
-                        </g>
-                    </g>
-                </g>
-            </g>
-        </g>
-    </g>
-</svg>

+ 0 - 1
static/icons/has-car-icon.svg

@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M945.4 696.9L925 676.5c-4.4-4.5-10.9-6.2-17-4.5h-0.1c-11.1-21.7-23.6-57.2-24.8-62.7-2.3-10.6-6.1-20.8-11.3-30.3-19.6-36.1-57.9-60.8-101.6-60.8H620.5c-43.7 0-81.9 24.7-101.6 60.8-5.2 9.5-9 19.7-11.3 30.3-1.2 5.3-13.5 39.5-25.2 62.6-5.8-1.6-12 0-16.3 4.3l-18.3 18.3c-5.8 5.8-9 13.6-9 21.8v31.4l4.3 2.9c1.3 0.5 2.7 0.8 4 1.3v193.3c0 15.6 12.7 28.3 28.3 28.3h51c15.6 0 28.3-12.7 28.3-28.3v-23c5.5 1 11 1.6 16.6 1.6h248.4c5.6 0 11.1-0.6 16.6-1.6v23c0 15.6 12.7 28.3 28.3 28.3h51c15.6 0 28.3-12.7 28.3-28.3V752c1.3-0.5 2.7-0.8 3.9-1.3l4.3-2.9v-34.9c-0.1-6-2.5-11.7-6.7-16z m-407.3 169c-22.9 0-41.4-18.5-41.4-41.4s18.5-41.4 41.4-41.4 41.4 18.5 41.4 41.4c0 11-4.3 21.5-12.1 29.3-7.8 7.7-18.3 12.1-29.3 12.1z m150.7-165.7c-46.4-0.3-92.6-4.5-138.3-12.6v-18.2c0.2-51.4 41.8-93 93.2-93.2H747c51.4 0.2 93 41.8 93.2 93.2v18.2c-35.7 6.4-71.8 10.3-108 11.9-14.3 0.4-28.8 0.6-43.4 0.7z m163.9 165.7c-22.9 0-41.4-18.5-41.4-41.4s18.5-41.4 41.4-41.4 41.4 18.5 41.4 41.4c0 11-4.4 21.5-12.1 29.3-7.8 7.7-18.4 12.1-29.3 12.1z m0 0" fill="#5991E8" /><path d="M466 599.2c3.2-14.2 8.4-28 15.4-40.8 9.4-17.4 22-32.9 37.2-45.6-5.9 1.3-11.9 1.9-18 1.8H311.7c-16.4 0-29.8-13.4-29.8-29.8V325.7c0-6.9 5.6-12.5 12.6-12.5h206.2c52.2 0 95 42.8 95 95v11.6c0.1 23.8-8.9 46.6-25.1 64 16.1-5.5 33-8.3 50-8.3h149.7c12 0 23.9 1.4 35.5 4.1 2.5-14.7 3.7-29.7 3.7-44.6v-42.1c0-149.1-122-271.2-271.2-271.2H103.9c-19.7 0.1-35.7 16-35.8 35.8v728c0 14 5.6 27.5 15.5 37.4 9.9 9.9 23.4 15.5 37.4 15.5h108c14 0 27.5-5.6 37.4-15.5 9.9-9.9 15.5-23.4 15.5-37.4V706.2h114.9c2-15.9 9.3-30.6 20.7-41.9l18.4-18.4c4.9-4.9 10.6-8.8 16.8-11.7 6.4-15.1 11.9-30.3 13.3-35z m0 0" fill="#5991E8" /></svg>

+ 0 - 1
static/icons/has-ele-icon.svg

@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M144.700101 684.994006l535.580045 0L680.280146 359.237781 144.700101 359.237781 144.700101 684.994006 144.700101 684.994006zM918.373823 440.680675l0-81.442894c0-44.791136-36.649711-81.437777-81.437777-81.437777l-692.235944 0c-44.791136 0-81.437777 36.646642-81.437777 81.437777L63.262324 684.994006c0 44.791136 36.646642 81.442894 81.437777 81.442894l692.235944 0c44.788066 0 81.437777-36.650735 81.437777-81.442894l0-81.437777c22.396079 0 40.7194-18.322297 40.7194-40.7194l0-81.436754C959.093223 459.003995 940.769902 440.680675 918.373823 440.680675L918.373823 440.680675zM877.655446 481.400075l0 81.436754L877.655446 684.994006c0 22.395056-18.323321 40.718377-40.7194 40.718377l-692.235944 0c-22.396079 0-40.7194-18.323321-40.7194-40.718377L103.980701 359.237781c0-22.396079 18.323321-40.7194 40.7194-40.7194l692.235944 0c22.396079 0 40.7194 18.323321 40.7194 40.7194L877.655446 481.400075 877.655446 481.400075zM877.655446 481.400075" fill="#00CA0F" /></svg>

二进制
static/icons/logout-icon.png


+ 0 - 1
static/icons/no-car-icon.svg

@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M945.4 696.9L925 676.5c-4.4-4.5-10.9-6.2-17-4.5h-0.1c-11.1-21.7-23.6-57.2-24.8-62.7-2.3-10.6-6.1-20.8-11.3-30.3-19.6-36.1-57.9-60.8-101.6-60.8H620.5c-43.7 0-81.9 24.7-101.6 60.8-5.2 9.5-9 19.7-11.3 30.3-1.2 5.3-13.5 39.5-25.2 62.6-5.8-1.6-12 0-16.3 4.3l-18.3 18.3c-5.8 5.8-9 13.6-9 21.8v31.4l4.3 2.9c1.3 0.5 2.7 0.8 4 1.3v193.3c0 15.6 12.7 28.3 28.3 28.3h51c15.6 0 28.3-12.7 28.3-28.3v-23c5.5 1 11 1.6 16.6 1.6h248.4c5.6 0 11.1-0.6 16.6-1.6v23c0 15.6 12.7 28.3 28.3 28.3h51c15.6 0 28.3-12.7 28.3-28.3V752c1.3-0.5 2.7-0.8 3.9-1.3l4.3-2.9v-34.9c-0.1-6-2.5-11.7-6.7-16z m-407.3 169c-22.9 0-41.4-18.5-41.4-41.4s18.5-41.4 41.4-41.4 41.4 18.5 41.4 41.4c0 11-4.3 21.5-12.1 29.3-7.8 7.7-18.3 12.1-29.3 12.1z m150.7-165.7c-46.4-0.3-92.6-4.5-138.3-12.6v-18.2c0.2-51.4 41.8-93 93.2-93.2H747c51.4 0.2 93 41.8 93.2 93.2v18.2c-35.7 6.4-71.8 10.3-108 11.9-14.3 0.4-28.8 0.6-43.4 0.7z m163.9 165.7c-22.9 0-41.4-18.5-41.4-41.4s18.5-41.4 41.4-41.4 41.4 18.5 41.4 41.4c0 11-4.4 21.5-12.1 29.3-7.8 7.7-18.4 12.1-29.3 12.1z m0 0" fill="#CDCDCD" /><path d="M466 599.2c3.2-14.2 8.4-28 15.4-40.8 9.4-17.4 22-32.9 37.2-45.6-5.9 1.3-11.9 1.9-18 1.8H311.7c-16.4 0-29.8-13.4-29.8-29.8V325.7c0-6.9 5.6-12.5 12.6-12.5h206.2c52.2 0 95 42.8 95 95v11.6c0.1 23.8-8.9 46.6-25.1 64 16.1-5.5 33-8.3 50-8.3h149.7c12 0 23.9 1.4 35.5 4.1 2.5-14.7 3.7-29.7 3.7-44.6v-42.1c0-149.1-122-271.2-271.2-271.2H103.9c-19.7 0.1-35.7 16-35.8 35.8v728c0 14 5.6 27.5 15.5 37.4 9.9 9.9 23.4 15.5 37.4 15.5h108c14 0 27.5-5.6 37.4-15.5 9.9-9.9 15.5-23.4 15.5-37.4V706.2h114.9c2-15.9 9.3-30.6 20.7-41.9l18.4-18.4c4.9-4.9 10.6-8.8 16.8-11.7 6.4-15.1 11.9-30.3 13.3-35z m0 0" fill="#CDCDCD" /></svg>

+ 0 - 1
static/icons/no-ele-icon.svg

@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M144.700101 684.994006l535.580045 0L680.280146 359.237781 144.700101 359.237781 144.700101 684.994006 144.700101 684.994006zM918.373823 440.680675l0-81.442894c0-44.791136-36.649711-81.437777-81.437777-81.437777l-692.235944 0c-44.791136 0-81.437777 36.646642-81.437777 81.437777L63.262324 684.994006c0 44.791136 36.646642 81.442894 81.437777 81.442894l692.235944 0c44.788066 0 81.437777-36.650735 81.437777-81.442894l0-81.437777c22.396079 0 40.7194-18.322297 40.7194-40.7194l0-81.436754C959.093223 459.003995 940.769902 440.680675 918.373823 440.680675L918.373823 440.680675zM877.655446 481.400075l0 81.436754L877.655446 684.994006c0 22.395056-18.323321 40.718377-40.7194 40.718377l-692.235944 0c-22.396079 0-40.7194-18.323321-40.7194-40.718377L103.980701 359.237781c0-22.396079 18.323321-40.7194 40.7194-40.7194l692.235944 0c22.396079 0 40.7194 18.323321 40.7194 40.7194L877.655446 481.400075 877.655446 481.400075zM877.655446 481.400075" fill="#FF0404"/></svg>

二进制
static/icons/parking-lock-icon.png


+ 0 - 40
static/icons/parking-lock-icon.svg

@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<svg width="77px" height="75px" viewBox="0 0 77 75" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <title>车位锁</title>
-    <defs>
-        <linearGradient x1="50%" y1="2.5636701%" x2="78.5018587%" y2="88.3968519%" id="linearGradient-1">
-            <stop stop-color="#101010" offset="0%"></stop>
-            <stop stop-color="#101010" offset="100%"></stop>
-        </linearGradient>
-        <filter id="filter-2">
-            <feColorMatrix in="SourceGraphic" type="matrix" values="0 0 0 0 1.000000 0 0 0 0 1.000000 0 0 0 0 1.000000 0 0 0 1.000000 0"></feColorMatrix>
-        </filter>
-        <filter x="-23.9%" y="-25.0%" width="147.7%" height="150.0%" filterUnits="objectBoundingBox" id="filter-3">
-            <feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
-            <feGaussianBlur stdDeviation="2" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
-            <feColorMatrix values="0 0 0 0 0.769502944   0 0 0 0 0.395340962   0 0 0 0 0  0 0 0 0.478966346 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
-            <feMerge>
-                <feMergeNode in="shadowMatrixOuter1"></feMergeNode>
-                <feMergeNode in="SourceGraphic"></feMergeNode>
-            </feMerge>
-        </filter>
-    </defs>
-    <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="首页备份-4" transform="translate(-337.000000, -497.000000)">
-            <g id="金刚区备份" transform="translate(41.000000, 465.000000)">
-                <g id="编组-3" transform="translate(38.000000, 32.000000)">
-                    <g id="车位锁" transform="translate(258.000000, 0.000000)">
-                        <rect id="矩形备份-3" fill="url(#linearGradient-1)" x="0" y="0" width="77" height="75" rx="30"></rect>
-                        <g filter="url(#filter-2)" id="quan">
-                            <g filter="url(#filter-3)" transform="translate(17.000000, 17.000000)">
-                                <g id="cheweisuo" transform="translate(0.000000, -0.000000)" fill="#000000" fill-rule="nonzero">
-                                    <path d="M44,17.0902332 C40.15,-1.48408104 22,0.0297368512 22,0.0297368512 C22,0.0297368512 3.85,-1.48408104 0,17.0902332 L0,23.980896 C0,23.980896 0.158382812,34.8408524 7.85563281,38.7355768 L8.02725,40.0835599 C8.02725,40.0835599 14.9088672,42.1099697 17.3024844,41.9953116 L21.9543672,42 L26.5941328,41.9953116 C28.9871914,42.1094045 35.8528672,40.0835599 35.8528672,40.0835599 L36.0866172,38.7356202 C43.7843828,34.8408524 44,23.980896 44,23.980896 L44,17.0902332 Z M22.1518086,35.9923471 L22.8546914,38.3705143 L21.9570742,38.3610355 L21.0451914,38.3705143 L21.7409414,35.9923471 C21.7409414,35.9923471 20.5903672,35.9266915 20.6365586,34.8597664 C20.68275,33.7923196 21.86525,33.7550133 21.9301328,33.7360993 C21.9356328,33.734447 21.9400156,33.7016192 21.9438828,33.6553994 C21.94775,33.701054 21.9521328,33.734447 21.9576328,33.7360993 C22.0225156,33.7550133 23.2067344,33.7923196 23.2528828,34.8597664 C23.2991172,35.9266915 22.1518086,35.9923471 22.1518086,35.9923471 Z M36.4396914,35.1976101 C32.9615,31.0535249 21.9576328,30.4613637 21.9576328,30.4613637 L21.9296172,30.4613637 C21.9296172,30.4613637 10.92575,31.0535684 7.447,35.1976101 C7.447,35.1976101 3.62286719,34.8442004 3.72130859,22.5616918 C3.72130859,22.5616918 5.01875,23.0965022 6.15338281,21.2988869 C7.28805859,19.5012282 7.15438281,10.7065967 21.9576328,9.15825528 C36.8098672,10.7060315 36.6123828,19.4906189 37.7476172,21.2877559 C38.88225,23.0854147 40.1653828,22.5627788 40.1653828,22.5627788 C40.2638672,34.8464614 36.4396914,35.1976101 36.4396914,35.1976101 L36.4396914,35.1976101 Z" id="形状"></path>
-                                </g>
-                            </g>
-                        </g>
-                    </g>
-                </g>
-            </g>
-        </g>
-    </g>
-</svg>

二进制
static/icons/password-icon.png


二进制
static/icons/question-icon.png


文件差异内容过多而无法显示
+ 0 - 30
static/icons/railing-gate-icon.svg


二进制
static/icons/railing-icon.png


二进制
static/icons/road-icon.png


+ 0 - 1
static/icons/shipinjiankongyemian.svg

@@ -1 +0,0 @@
-<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="185.84px" viewBox="0 0 1102 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M117.208615 703.015385V551.384615L0 530.668308v482.540307l117.208615-41.432615v-165.415385H303.261538L385.969231 682.456615l-103.424-62.070153-48.206769 82.707692H117.208615zM1102.769231 551.384615L261.907692 0H165.415385L34.422154 206.769231V275.692308l751.300923 482.461538 62.070154-6.931692L1102.769231 551.384615zM34.422154 317.046154v110.276923l758.232615 475.608615h68.844308l34.500923-34.500923 34.422154-103.424s-96.413538 69.001846-103.345231 69.001846C792.654769 806.360615 34.422154 317.046154 34.422154 317.046154z" fill="#27A8FF" /></svg>

+ 0 - 1138
static/js/qqmap-wx-jssdk.min.js

@@ -1,1138 +0,0 @@
-var vm = ''
-
-/**
- * 这里是重写部分
- */
-var wx = {
-    request(obj){
-        obj.data.output = 'jsonp'
-        vm.$jsonp(obj.url,obj.data)
-        .then(json => {
-                if(json.status == 0){
-                    obj.success(json)
-                }else {
-                    obj.fail(json)
-                }
-            })
-            .catch(err => {
-                obj.fail(err)
-            })
-    }
-}
-
-var ERROR_CONF = {
-    KEY_ERR: 311,
-    KEY_ERR_MSG: 'key格式错误',
-    PARAM_ERR: 310,
-    PARAM_ERR_MSG: '请求参数信息有误',
-    SYSTEM_ERR: 600,
-    SYSTEM_ERR_MSG: '系统错误',
-    WX_ERR_CODE: 1000,
-    WX_OK_CODE: 200
-};
-var BASE_URL = 'https://apis.map.qq.com/ws/';
-var URL_SEARCH = BASE_URL + 'place/v1/search';
-var URL_SUGGESTION = BASE_URL + 'place/v1/suggestion';
-var URL_GET_GEOCODER = BASE_URL + 'geocoder/v1/';
-var URL_CITY_LIST = BASE_URL + 'district/v1/list';
-var URL_AREA_LIST = BASE_URL + 'district/v1/getchildren';
-var URL_DISTANCE = BASE_URL + 'distance/v1/';
-var URL_DIRECTION = BASE_URL + 'direction/v1/';
-var MODE = {
-  driving: 'driving',
-  transit: 'transit'
-};
-var EARTH_RADIUS = 6378136.49;
-var Utils = {
-  /**
-  * md5加密方法
-  * 版权所有©2011 Sebastian Tschan,https://blueimp.net
-  */
-  safeAdd(x, y) {
-    var lsw = (x & 0xffff) + (y & 0xffff);
-    var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
-    return (msw << 16) | (lsw & 0xffff);
-  },
-  bitRotateLeft(num, cnt) {
-    return (num << cnt) | (num >>> (32 - cnt));
-  },
-  md5cmn(q, a, b, x, s, t) {
-    return this.safeAdd(this.bitRotateLeft(this.safeAdd(this.safeAdd(a, q), this.safeAdd(x, t)), s), b);
-  },
-  md5ff(a, b, c, d, x, s, t) {
-    return this.md5cmn((b & c) | (~b & d), a, b, x, s, t);
-  },
-  md5gg(a, b, c, d, x, s, t) {
-    return this.md5cmn((b & d) | (c & ~d), a, b, x, s, t);
-  },
-  md5hh(a, b, c, d, x, s, t) {
-    return this.md5cmn(b ^ c ^ d, a, b, x, s, t);
-  },
-  md5ii(a, b, c, d, x, s, t) {
-    return this.md5cmn(c ^ (b | ~d), a, b, x, s, t);
-  },
-  binlMD5(x, len) {
-    /* append padding */
-    x[len >> 5] |= 0x80 << (len % 32);
-    x[((len + 64) >>> 9 << 4) + 14] = len;
-
-    var i;
-    var olda;
-    var oldb;
-    var oldc;
-    var oldd;
-    var a = 1732584193;
-    var b = -271733879;
-    var c = -1732584194;
-    var d = 271733878;
-
-    for (i = 0; i < x.length; i += 16) {
-      olda = a;
-      oldb = b;
-      oldc = c;
-      oldd = d;
-
-      a = this.md5ff(a, b, c, d, x[i], 7, -680876936);
-      d = this.md5ff(d, a, b, c, x[i + 1], 12, -389564586);
-      c = this.md5ff(c, d, a, b, x[i + 2], 17, 606105819);
-      b = this.md5ff(b, c, d, a, x[i + 3], 22, -1044525330);
-      a = this.md5ff(a, b, c, d, x[i + 4], 7, -176418897);
-      d = this.md5ff(d, a, b, c, x[i + 5], 12, 1200080426);
-      c = this.md5ff(c, d, a, b, x[i + 6], 17, -1473231341);
-      b = this.md5ff(b, c, d, a, x[i + 7], 22, -45705983);
-      a = this.md5ff(a, b, c, d, x[i + 8], 7, 1770035416);
-      d = this.md5ff(d, a, b, c, x[i + 9], 12, -1958414417);
-      c = this.md5ff(c, d, a, b, x[i + 10], 17, -42063);
-      b = this.md5ff(b, c, d, a, x[i + 11], 22, -1990404162);
-      a = this.md5ff(a, b, c, d, x[i + 12], 7, 1804603682);
-      d = this.md5ff(d, a, b, c, x[i + 13], 12, -40341101);
-      c = this.md5ff(c, d, a, b, x[i + 14], 17, -1502002290);
-      b = this.md5ff(b, c, d, a, x[i + 15], 22, 1236535329);
-
-      a = this.md5gg(a, b, c, d, x[i + 1], 5, -165796510);
-      d = this.md5gg(d, a, b, c, x[i + 6], 9, -1069501632);
-      c = this.md5gg(c, d, a, b, x[i + 11], 14, 643717713);
-      b = this.md5gg(b, c, d, a, x[i], 20, -373897302);
-      a = this.md5gg(a, b, c, d, x[i + 5], 5, -701558691);
-      d = this.md5gg(d, a, b, c, x[i + 10], 9, 38016083);
-      c = this.md5gg(c, d, a, b, x[i + 15], 14, -660478335);
-      b = this.md5gg(b, c, d, a, x[i + 4], 20, -405537848);
-      a = this.md5gg(a, b, c, d, x[i + 9], 5, 568446438);
-      d = this.md5gg(d, a, b, c, x[i + 14], 9, -1019803690);
-      c = this.md5gg(c, d, a, b, x[i + 3], 14, -187363961);
-      b = this.md5gg(b, c, d, a, x[i + 8], 20, 1163531501);
-      a = this.md5gg(a, b, c, d, x[i + 13], 5, -1444681467);
-      d = this.md5gg(d, a, b, c, x[i + 2], 9, -51403784);
-      c = this.md5gg(c, d, a, b, x[i + 7], 14, 1735328473);
-      b = this.md5gg(b, c, d, a, x[i + 12], 20, -1926607734);
-
-      a = this.md5hh(a, b, c, d, x[i + 5], 4, -378558);
-      d = this.md5hh(d, a, b, c, x[i + 8], 11, -2022574463);
-      c = this.md5hh(c, d, a, b, x[i + 11], 16, 1839030562);
-      b = this.md5hh(b, c, d, a, x[i + 14], 23, -35309556);
-      a = this.md5hh(a, b, c, d, x[i + 1], 4, -1530992060);
-      d = this.md5hh(d, a, b, c, x[i + 4], 11, 1272893353);
-      c = this.md5hh(c, d, a, b, x[i + 7], 16, -155497632);
-      b = this.md5hh(b, c, d, a, x[i + 10], 23, -1094730640);
-      a = this.md5hh(a, b, c, d, x[i + 13], 4, 681279174);
-      d = this.md5hh(d, a, b, c, x[i], 11, -358537222);
-      c = this.md5hh(c, d, a, b, x[i + 3], 16, -722521979);
-      b = this.md5hh(b, c, d, a, x[i + 6], 23, 76029189);
-      a = this.md5hh(a, b, c, d, x[i + 9], 4, -640364487);
-      d = this.md5hh(d, a, b, c, x[i + 12], 11, -421815835);
-      c = this.md5hh(c, d, a, b, x[i + 15], 16, 530742520);
-      b = this.md5hh(b, c, d, a, x[i + 2], 23, -995338651);
-
-      a = this.md5ii(a, b, c, d, x[i], 6, -198630844);
-      d = this.md5ii(d, a, b, c, x[i + 7], 10, 1126891415);
-      c = this.md5ii(c, d, a, b, x[i + 14], 15, -1416354905);
-      b = this.md5ii(b, c, d, a, x[i + 5], 21, -57434055);
-      a = this.md5ii(a, b, c, d, x[i + 12], 6, 1700485571);
-      d = this.md5ii(d, a, b, c, x[i + 3], 10, -1894986606);
-      c = this.md5ii(c, d, a, b, x[i + 10], 15, -1051523);
-      b = this.md5ii(b, c, d, a, x[i + 1], 21, -2054922799);
-      a = this.md5ii(a, b, c, d, x[i + 8], 6, 1873313359);
-      d = this.md5ii(d, a, b, c, x[i + 15], 10, -30611744);
-      c = this.md5ii(c, d, a, b, x[i + 6], 15, -1560198380);
-      b = this.md5ii(b, c, d, a, x[i + 13], 21, 1309151649);
-      a = this.md5ii(a, b, c, d, x[i + 4], 6, -145523070);
-      d = this.md5ii(d, a, b, c, x[i + 11], 10, -1120210379);
-      c = this.md5ii(c, d, a, b, x[i + 2], 15, 718787259);
-      b = this.md5ii(b, c, d, a, x[i + 9], 21, -343485551);
-
-      a = this.safeAdd(a, olda);
-      b = this.safeAdd(b, oldb);
-      c = this.safeAdd(c, oldc);
-      d = this.safeAdd(d, oldd);
-    }
-    return [a, b, c, d];
-  },
-  binl2rstr(input) {
-    var i;
-    var output = '';
-    var length32 = input.length * 32;
-    for (i = 0; i < length32; i += 8) {
-      output += String.fromCharCode((input[i >> 5] >>> (i % 32)) & 0xff);
-    }
-    return output;
-  },
-  rstr2binl(input) {
-    var i;
-    var output = [];
-    output[(input.length >> 2) - 1] = undefined;
-    for (i = 0; i < output.length; i += 1) {
-      output[i] = 0;
-    }
-    var length8 = input.length * 8;
-    for (i = 0; i < length8; i += 8) {
-      output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << (i % 32);
-    }
-    return output;
-  },
-  rstrMD5(s) {
-    return this.binl2rstr(this.binlMD5(this.rstr2binl(s), s.length * 8));
-  },
-  rstrHMACMD5(key, data) {
-    var i;
-    var bkey = this.rstr2binl(key);
-    var ipad = [];
-    var opad = [];
-    var hash;
-    ipad[15] = opad[15] = undefined;
-    if (bkey.length > 16) {
-      bkey = this.binlMD5(bkey, key.length * 8);
-    }
-    for (i = 0; i < 16; i += 1) {
-      ipad[i] = bkey[i] ^ 0x36363636;
-      opad[i] = bkey[i] ^ 0x5c5c5c5c;
-    }
-    hash = this.binlMD5(ipad.concat(this.rstr2binl(data)), 512 + data.length * 8);
-    return this.binl2rstr(this.binlMD5(opad.concat(hash), 512 + 128));
-  },
-  rstr2hex(input) {
-    var hexTab = '0123456789abcdef';
-    var output = '';
-    var x;
-    var i;
-    for (i = 0; i < input.length; i += 1) {
-      x = input.charCodeAt(i);
-      output += hexTab.charAt((x >>> 4) & 0x0f) + hexTab.charAt(x & 0x0f);
-    }
-    return output;
-  },
-  str2rstrUTF8(input) {
-    return unescape(encodeURIComponent(input));
-  },
-  rawMD5(s) {
-    return this.rstrMD5(this.str2rstrUTF8(s));
-  },
-  hexMD5(s) {
-    return this.rstr2hex(this.rawMD5(s));
-  },
-  rawHMACMD5(k, d) {
-    return this.rstrHMACMD5(this.str2rstrUTF8(k), str2rstrUTF8(d));
-  },
-  hexHMACMD5(k, d) {
-    return this.rstr2hex(this.rawHMACMD5(k, d));
-  },
-
-  md5(string, key, raw) {
-    if (!key) {
-      if (!raw) {
-        return this.hexMD5(string);
-      }
-      return this.rawMD5(string);
-    }
-    if (!raw) {
-      return this.hexHMACMD5(key, string);
-    }
-    return this.rawHMACMD5(key, string);
-  },
-  /**
-   * 得到md5加密后的sig参数
-   * @param {Object} requestParam 接口参数
-   * @param {String} sk签名字符串
-   * @param {String} featrue 方法名
-   * @return 返回加密后的sig参数
-   */
-  getSig(requestParam, sk, feature, mode) {
-    var sig = null;
-    var requestArr = [];
-    Object.keys(requestParam).sort().forEach(function(key){
-      requestArr.push(key + '=' + requestParam[key]);
-    });
-    if (feature == 'search') {
-      sig = '/ws/place/v1/search?' + requestArr.join('&') + sk;
-    }
-    if (feature == 'suggest') {
-      sig = '/ws/place/v1/suggestion?' + requestArr.join('&') + sk;
-    }
-    if (feature == 'reverseGeocoder') {
-      sig = '/ws/geocoder/v1/?' + requestArr.join('&') + sk;
-    }
-    if (feature == 'geocoder') {
-      sig = '/ws/geocoder/v1/?' + requestArr.join('&') + sk;
-    }
-    if (feature == 'getCityList') {
-      sig = '/ws/district/v1/list?' + requestArr.join('&') + sk;
-    }
-    if (feature == 'getDistrictByCityId') {
-      sig = '/ws/district/v1/getchildren?' + requestArr.join('&') + sk;
-    }
-    if (feature == 'calculateDistance') {
-      sig = '/ws/distance/v1/?' + requestArr.join('&') + sk;
-    }
-    if (feature == 'direction') {
-      sig = '/ws/direction/v1/' + mode + '?' + requestArr.join('&') + sk;
-    }
-    sig = this.md5(sig);
-    return sig;
-  },
-    /**
-     * 得到终点query字符串
-     * @param {Array|String} 检索数据
-     */
-    location2query(data) {
-        if (typeof data == 'string') {
-            return data;
-        }
-        var query = '';
-        for (var i = 0; i < data.length; i++) {
-            var d = data[i];
-            if (!!query) {
-                query += ';';
-            }
-            if (d.location) {
-                query = query + d.location.lat + ',' + d.location.lng;
-            }
-            if (d.latitude && d.longitude) {
-                query = query + d.latitude + ',' + d.longitude;
-            }
-        }
-        return query;
-    },
-
-    /**
-     * 计算角度
-     */
-    rad(d) {
-      return d * Math.PI / 180.0;
-    },  
-    /**
-     * 处理终点location数组
-     * @return 返回终点数组
-     */
-    getEndLocation(location){
-      var to = location.split(';');
-      var endLocation = [];
-      for (var i = 0; i < to.length; i++) {
-        endLocation.push({
-          lat: parseFloat(to[i].split(',')[0]),
-          lng: parseFloat(to[i].split(',')[1])
-        })
-      }
-      return endLocation;
-    },
-
-    /**
-     * 计算两点间直线距离
-     * @param a 表示纬度差
-     * @param b 表示经度差
-     * @return 返回的是距离,单位m
-     */
-    getDistance(latFrom, lngFrom, latTo, lngTo) {
-      var radLatFrom = this.rad(latFrom);
-      var radLatTo = this.rad(latTo);
-      var a = radLatFrom - radLatTo;
-      var b = this.rad(lngFrom) - this.rad(lngTo);
-      var distance = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLatFrom) * Math.cos(radLatTo) * Math.pow(Math.sin(b / 2), 2)));
-      distance = distance * EARTH_RADIUS;
-      distance = Math.round(distance * 10000) / 10000;
-      return parseFloat(distance.toFixed(0));
-    },
-    /**
-     * 使用微信接口进行定位
-     */
-    getWXLocation(success, fail, complete) {
-        wx.getLocation({
-            type: 'gcj02',
-            success: success,
-            fail: fail,
-            complete: complete
-        });
-    },
-
-    /**
-     * 获取location参数
-     */
-    getLocationParam(location) {
-        if (typeof location == 'string') {
-            var locationArr = location.split(',');
-            if (locationArr.length === 2) {
-                location = {
-                    latitude: location.split(',')[0],
-                    longitude: location.split(',')[1]
-                };
-            } else {
-                location = {};
-            }
-        }
-        return location;
-    },
-
-    /**
-     * 回调函数默认处理
-     */
-    polyfillParam(param) {
-        param.success = param.success || function () { };
-        param.fail = param.fail || function () { };
-        param.complete = param.complete || function () { };
-    },
-
-    /**
-     * 验证param对应的key值是否为空
-     * 
-     * @param {Object} param 接口参数
-     * @param {String} key 对应参数的key
-     */
-    checkParamKeyEmpty(param, key) {
-        if (!param[key]) {
-            var errconf = this.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + key +'参数格式有误');
-            param.fail(errconf);
-            param.complete(errconf);
-            return true;
-        }
-        return false;
-    },
-
-    /**
-     * 验证参数中是否存在检索词keyword
-     * 
-     * @param {Object} param 接口参数
-     */
-    checkKeyword(param){
-        return !this.checkParamKeyEmpty(param, 'keyword');
-    },
-
-    /**
-     * 验证location值
-     * 
-     * @param {Object} param 接口参数
-     */
-    checkLocation(param) {
-        var location = this.getLocationParam(param.location);
-        if (!location || !location.latitude || !location.longitude) {
-            var errconf = this.buildErrorConfig(ERROR_CONF.PARAM_ERR, ERROR_CONF.PARAM_ERR_MSG + ' location参数格式有误');
-            param.fail(errconf);
-            param.complete(errconf);
-            return false;
-        }
-        return true;
-    },
-
-    /**
-     * 构造错误数据结构
-     * @param {Number} errCode 错误码
-     * @param {Number} errMsg 错误描述
-     */
-    buildErrorConfig(errCode, errMsg) {
-        return {
-            status: errCode,
-            message: errMsg
-        };
-    },
-
-    /**
-     * 
-     * 数据处理函数
-     * 根据传入参数不同处理不同数据
-     * @param {String} feature 功能名称
-     * search 地点搜索
-     * suggest关键词提示
-     * reverseGeocoder逆地址解析
-     * geocoder地址解析
-     * getCityList获取城市列表:父集
-     * getDistrictByCityId获取区县列表:子集
-     * calculateDistance距离计算
-     * @param {Object} param 接口参数
-     * @param {Object} data 数据
-     */
-    handleData(param,data,feature){
-      if (feature == 'search') {
-        var searchResult = data.data;
-        var searchSimplify = [];
-        for (var i = 0; i < searchResult.length; i++) {
-          searchSimplify.push({
-            id: searchResult[i].id || null,
-            title: searchResult[i].title || null,
-            latitude: searchResult[i].location && searchResult[i].location.lat || null,
-            longitude: searchResult[i].location && searchResult[i].location.lng || null,
-            address: searchResult[i].address || null,
-            category: searchResult[i].category || null,
-            tel: searchResult[i].tel || null,
-            adcode: searchResult[i].ad_info && searchResult[i].ad_info.adcode || null,
-            city: searchResult[i].ad_info && searchResult[i].ad_info.city || null,
-            district: searchResult[i].ad_info && searchResult[i].ad_info.district || null,
-            province: searchResult[i].ad_info && searchResult[i].ad_info.province || null
-          })
-        }
-        param.success(data, {
-          searchResult: searchResult,
-          searchSimplify: searchSimplify
-        })
-      } else if (feature == 'suggest') {
-        var suggestResult = data.data;
-        var suggestSimplify = [];
-        for (var i = 0; i < suggestResult.length; i++) {
-          suggestSimplify.push({
-            adcode: suggestResult[i].adcode || null,
-            address: suggestResult[i].address || null,
-            category: suggestResult[i].category || null,
-            city: suggestResult[i].city || null,
-            district: suggestResult[i].district || null,
-            id: suggestResult[i].id || null,
-            latitude: suggestResult[i].location && suggestResult[i].location.lat || null,
-            longitude: suggestResult[i].location && suggestResult[i].location.lng || null,
-            province: suggestResult[i].province || null,
-            title: suggestResult[i].title || null,
-            type: suggestResult[i].type || null
-          })
-        }
-        param.success(data, {
-          suggestResult: suggestResult,
-          suggestSimplify: suggestSimplify
-          })
-      } else if (feature == 'reverseGeocoder') {
-        var reverseGeocoderResult = data.result;
-        var reverseGeocoderSimplify = {
-          address: reverseGeocoderResult.address || null,
-          latitude: reverseGeocoderResult.location && reverseGeocoderResult.location.lat || null,
-          longitude: reverseGeocoderResult.location && reverseGeocoderResult.location.lng || null,
-          adcode: reverseGeocoderResult.ad_info && reverseGeocoderResult.ad_info.adcode || null,
-          city: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.city || null,
-          district: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.district || null,
-          nation: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.nation || null,
-          province: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.province || null,
-          street: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.street || null,
-          street_number: reverseGeocoderResult.address_component && reverseGeocoderResult.address_component.street_number || null,
-          recommend: reverseGeocoderResult.formatted_addresses && reverseGeocoderResult.formatted_addresses.recommend || null,
-          rough: reverseGeocoderResult.formatted_addresses && reverseGeocoderResult.formatted_addresses.rough || null
-        };
-        if (reverseGeocoderResult.pois) {//判断是否返回周边poi
-          var pois = reverseGeocoderResult.pois;
-          var poisSimplify = [];
-          for (var i = 0;i < pois.length;i++) {
-            poisSimplify.push({
-              id: pois[i].id || null,
-              title: pois[i].title || null,
-              latitude: pois[i].location && pois[i].location.lat || null,
-              longitude: pois[i].location && pois[i].location.lng || null,
-              address: pois[i].address || null,
-              category: pois[i].category || null,
-              adcode: pois[i].ad_info && pois[i].ad_info.adcode || null,
-              city: pois[i].ad_info && pois[i].ad_info.city || null,
-              district: pois[i].ad_info && pois[i].ad_info.district || null,
-              province: pois[i].ad_info && pois[i].ad_info.province || null
-            })
-          }
-          param.success(data,{
-            reverseGeocoderResult: reverseGeocoderResult,
-            reverseGeocoderSimplify: reverseGeocoderSimplify,
-            pois: pois,
-            poisSimplify: poisSimplify
-          })
-        } else {
-          param.success(data, {
-            reverseGeocoderResult: reverseGeocoderResult,
-            reverseGeocoderSimplify: reverseGeocoderSimplify
-          })
-        }
-      } else if (feature == 'geocoder') {
-        var geocoderResult = data.result;
-        var geocoderSimplify = {
-          title: geocoderResult.title || null,
-          latitude: geocoderResult.location && geocoderResult.location.lat || null,
-          longitude: geocoderResult.location && geocoderResult.location.lng || null,
-          adcode: geocoderResult.ad_info && geocoderResult.ad_info.adcode || null,
-          province: geocoderResult.address_components && geocoderResult.address_components.province || null,
-          city: geocoderResult.address_components && geocoderResult.address_components.city || null,
-          district: geocoderResult.address_components && geocoderResult.address_components.district || null,
-          street: geocoderResult.address_components && geocoderResult.address_components.street || null,
-          street_number: geocoderResult.address_components && geocoderResult.address_components.street_number || null,
-          level: geocoderResult.level || null
-        };
-        param.success(data,{
-          geocoderResult: geocoderResult,
-          geocoderSimplify: geocoderSimplify
-        });
-      } else if (feature == 'getCityList') {
-        var provinceResult = data.result[0];
-        var cityResult = data.result[1];
-        var districtResult = data.result[2];
-        param.success(data,{
-          provinceResult: provinceResult,
-          cityResult: cityResult,
-          districtResult: districtResult
-        });
-      } else if (feature == 'getDistrictByCityId') {
-        var districtByCity = data.result[0];
-        param.success(data, districtByCity);
-      } else if (feature == 'calculateDistance') {
-        var calculateDistanceResult = data.result.elements;  
-        var distance = [];
-        for (var i = 0; i < calculateDistanceResult.length; i++){
-          distance.push(calculateDistanceResult[i].distance);
-        }   
-        param.success(data, {
-          calculateDistanceResult: calculateDistanceResult,
-          distance: distance
-          });
-      } else if (feature == 'direction') {
-        var direction = data.result.routes;
-        param.success(data,direction);
-      } else {
-        param.success(data);
-      }
-    },
-
-    /**
-     * 构造微信请求参数,公共属性处理
-     * 
-     * @param {Object} param 接口参数
-     * @param {Object} param 配置项
-     * @param {String} feature 方法名
-     */
-    buildWxRequestConfig(param, options, feature) {
-        var that = this;
-        options.header = { "content-type": "application/json" };
-        options.method = 'GET';
-        options.success = function (res) {
-            var data = res;
-            if (data.status === 0) {
-              that.handleData(param, data, feature);
-            } else {
-                param.fail(data);
-            }
-        };
-        options.fail = function (res) {
-            res.statusCode = ERROR_CONF.WX_ERR_CODE;
-            param.fail(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg));
-        };
-        options.complete = function (res) {
-            var statusCode = +res.statusCode;
-            switch(statusCode) {
-                case ERROR_CONF.WX_ERR_CODE: {
-                    param.complete(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg));
-                    break;
-                }
-                case ERROR_CONF.WX_OK_CODE: {
-                    var data = res.data;
-                    if (data.status === 0) {
-                        param.complete(data);
-                    } else {
-                        param.complete(that.buildErrorConfig(data.status, data.message));
-                    }
-                    break;
-                }
-                default:{
-                    param.complete(that.buildErrorConfig(ERROR_CONF.SYSTEM_ERR, ERROR_CONF.SYSTEM_ERR_MSG));
-                }
-
-            }
-        };
-        return options;
-    },
-
-    /**
-     * 处理用户参数是否传入坐标进行不同的处理
-     */
-    locationProcess(param, locationsuccess, locationfail, locationcomplete) {
-        var that = this;
-        locationfail = locationfail || function (res) {
-            res.statusCode = ERROR_CONF.WX_ERR_CODE;
-            param.fail(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg));
-        };
-        locationcomplete = locationcomplete || function (res) {
-            if (res.statusCode == ERROR_CONF.WX_ERR_CODE) {
-                param.complete(that.buildErrorConfig(ERROR_CONF.WX_ERR_CODE, res.errMsg));
-            }
-        };
-        if (!param.location) {
-            that.getWXLocation(locationsuccess, locationfail, locationcomplete);
-        } else if (that.checkLocation(param)) {
-            var location = Utils.getLocationParam(param.location);
-            locationsuccess(location);
-        }
-    }
-};
-
-
-class QQMapWX {
-
-    /**
-     * 构造函数
-     * 
-     * @param {Object} options 接口参数,key 为必选参数
-     */
-    constructor(options) {
-        if (!options.key) {
-            throw Error('key值不能为空');
-        }
-        vm = options.vm
-        this.key = options.key;
-    };
-
-    /**
-     * POI周边检索
-     *
-     * @param {Object} options 接口参数对象
-     * 
-     * 参数对象结构可以参考
-     * @see http://lbs.qq.com/webservice_v1/guide-search.html
-     */
-    search(options) {
-        var that = this;
-        options = options || {};
-
-        Utils.polyfillParam(options);
-
-        if (!Utils.checkKeyword(options)) {
-            return;
-        }
-
-        var requestParam = {
-            keyword: options.keyword,
-            orderby: options.orderby || '_distance',
-            page_size: options.page_size || 10,
-            page_index: options.page_index || 1,
-            output: 'json',
-            key: that.key
-        };
-
-        if (options.address_format) {
-            requestParam.address_format = options.address_format;
-        }
-
-        if (options.filter) {
-            requestParam.filter = options.filter;
-        }
-
-        var distance = options.distance || "1000";
-        var auto_extend = options.auto_extend || 1;
-        var region = null;
-        var rectangle = null;
-
-        //判断城市限定参数
-        if (options.region) {
-          region = options.region;
-        }
-
-        //矩形限定坐标(暂时只支持字符串格式)
-        if (options.rectangle) {
-          rectangle = options.rectangle;
-        }
-
-        var locationsuccess = function (result) {        
-          if (region && !rectangle) {
-            //城市限定参数拼接
-            requestParam.boundary = "region(" + region + "," + auto_extend + "," + result.latitude + "," + result.longitude + ")";
-            if (options.sig) {
-              requestParam.sig = Utils.getSig(requestParam, options.sig, 'search');
-            }
-          } else if (rectangle && !region) {
-            //矩形搜索
-            requestParam.boundary = "rectangle(" + rectangle + ")";
-            if (options.sig) {
-              requestParam.sig = Utils.getSig(requestParam, options.sig, 'search');
-            }
-            } else {
-              requestParam.boundary = "nearby(" + result.latitude + "," + result.longitude + "," + distance + "," + auto_extend + ")";
-            if (options.sig) {
-              requestParam.sig = Utils.getSig(requestParam, options.sig, 'search');
-            }
-            }            
-            wx.request(Utils.buildWxRequestConfig(options, {
-                url: URL_SEARCH,
-                data: requestParam
-            }, 'search'));
-        };
-        Utils.locationProcess(options, locationsuccess);
-    };
-
-    /**
-     * sug模糊检索
-     *
-     * @param {Object} options 接口参数对象
-     * 
-     * 参数对象结构可以参考
-     * http://lbs.qq.com/webservice_v1/guide-suggestion.html
-     */
-    getSuggestion(options) {
-        var that = this;
-        options = options || {};
-        Utils.polyfillParam(options);
-
-        if (!Utils.checkKeyword(options)) {
-            return;
-        }
-
-        var requestParam = {
-            keyword: options.keyword,
-            region: options.region || '全国',
-            region_fix: options.region_fix || 0,
-            policy: options.policy || 0,
-            page_size: options.page_size || 10,//控制显示条数
-            page_index: options.page_index || 1,//控制页数
-            get_subpois : options.get_subpois || 0,//返回子地点
-            output: 'json',
-            key: that.key
-        };
-        //长地址
-        if (options.address_format) {
-          requestParam.address_format = options.address_format;
-        }
-        //过滤
-        if (options.filter) {
-          requestParam.filter = options.filter;
-        }
-        //排序
-        if (options.location) {
-          var locationsuccess = function (result) {
-            requestParam.location = result.latitude + ',' + result.longitude;
-            if (options.sig) {
-              requestParam.sig = Utils.getSig(requestParam, options.sig, 'suggest');
-            }
-            wx.request(Utils.buildWxRequestConfig(options, {
-              url: URL_SUGGESTION,
-              data: requestParam
-            }, "suggest"));      
-          };
-          Utils.locationProcess(options, locationsuccess);
-        } else {
-          if (options.sig) {
-            requestParam.sig = Utils.getSig(requestParam, options.sig, 'suggest');
-          }
-          wx.request(Utils.buildWxRequestConfig(options, {
-            url: URL_SUGGESTION,
-            data: requestParam
-          }, "suggest"));      
-        }        
-    };
-
-    /**
-     * 逆地址解析
-     *
-     * @param {Object} options 接口参数对象
-     * 
-     * 请求参数结构可以参考
-     * http://lbs.qq.com/webservice_v1/guide-gcoder.html
-     */
-    reverseGeocoder(options) {
-        var that = this;
-        options = options || {};
-        Utils.polyfillParam(options);
-        var requestParam = {
-            coord_type: options.coord_type || 5,
-            get_poi: options.get_poi || 0,
-            output: 'json',
-            key: that.key
-        };
-        if (options.poi_options) {
-            requestParam.poi_options = options.poi_options
-        }
-
-        var locationsuccess = function (result) {
-            requestParam.location = result.latitude + ',' + result.longitude;
-          if (options.sig) {
-            requestParam.sig = Utils.getSig(requestParam, options.sig, 'reverseGeocoder');
-          }
-            wx.request(Utils.buildWxRequestConfig(options, {
-                url: URL_GET_GEOCODER,
-                data: requestParam
-            }, 'reverseGeocoder'));
-        };
-        Utils.locationProcess(options, locationsuccess);
-    };
-
-    /**
-     * 地址解析
-     *
-     * @param {Object} options 接口参数对象
-     * 
-     * 请求参数结构可以参考
-     * http://lbs.qq.com/webservice_v1/guide-geocoder.html
-     */
-    geocoder(options) {
-        var that = this;
-        options = options || {};
-        Utils.polyfillParam(options);
-
-        if (Utils.checkParamKeyEmpty(options, 'address')) {
-            return;
-        }
-
-        var requestParam = {
-            address: options.address,
-            output: 'json',
-            key: that.key
-        };
-
-        //城市限定
-        if (options.region) {
-          requestParam.region = options.region;
-        }
-
-        if (options.sig) {
-          requestParam.sig = Utils.getSig(requestParam, options.sig, 'geocoder');
-        }
-
-        wx.request(Utils.buildWxRequestConfig(options, {
-            url: URL_GET_GEOCODER,
-            data: requestParam
-        },'geocoder'));
-    };
-
-
-    /**
-     * 获取城市列表
-     *
-     * @param {Object} options 接口参数对象
-     * 
-     * 请求参数结构可以参考
-     * http://lbs.qq.com/webservice_v1/guide-region.html
-     */
-    getCityList(options) {
-        var that = this;
-        options = options || {};
-        Utils.polyfillParam(options);
-        var requestParam = {
-            output: 'json',
-            key: that.key
-        };
-
-        if (options.sig) {
-          requestParam.sig = Utils.getSig(requestParam, options.sig, 'getCityList');
-        }
-
-        wx.request(Utils.buildWxRequestConfig(options, {
-            url: URL_CITY_LIST,
-            data: requestParam
-        },'getCityList'));
-    };
-
-    /**
-     * 获取对应城市ID的区县列表
-     *
-     * @param {Object} options 接口参数对象
-     * 
-     * 请求参数结构可以参考
-     * http://lbs.qq.com/webservice_v1/guide-region.html
-     */
-    getDistrictByCityId(options) {
-        var that = this;
-        options = options || {};
-        Utils.polyfillParam(options);
-
-        if (Utils.checkParamKeyEmpty(options, 'id')) {
-            return;
-        }
-
-        var requestParam = {
-            id: options.id || '',
-            output: 'json',
-            key: that.key
-        };
-
-        if (options.sig) {
-          requestParam.sig = Utils.getSig(requestParam, options.sig, 'getDistrictByCityId');
-        }
-
-        wx.request(Utils.buildWxRequestConfig(options, {
-            url: URL_AREA_LIST,
-            data: requestParam
-        },'getDistrictByCityId'));
-    };
-
-    /**
-     * 用于单起点到多终点的路线距离(非直线距离)计算:
-     * 支持两种距离计算方式:步行和驾车。
-     * 起点到终点最大限制直线距离10公里。
-     *
-     * 新增直线距离计算。
-     * 
-     * @param {Object} options 接口参数对象
-     * 
-     * 请求参数结构可以参考
-     * http://lbs.qq.com/webservice_v1/guide-distance.html
-     */
-    calculateDistance(options) {
-        var that = this;
-        options = options || {};
-        Utils.polyfillParam(options);
-
-        if (Utils.checkParamKeyEmpty(options, 'to')) {
-            return;
-        }
-
-        var requestParam = {
-            mode: options.mode || 'walking',
-            to: Utils.location2query(options.to),
-            output: 'json',
-            key: that.key
-        };
-
-        if (options.from) {
-          options.location = options.from;
-        }
-
-        //计算直线距离
-        if(requestParam.mode == 'straight'){        
-          var locationsuccess = function (result) {
-            var locationTo = Utils.getEndLocation(requestParam.to);//处理终点坐标
-            var data = {
-              message:"query ok",
-              result:{
-                elements:[]
-              },
-              status:0
-            };
-            for (var i = 0; i < locationTo.length; i++) {
-              data.result.elements.push({//将坐标存入
-                distance: Utils.getDistance(result.latitude, result.longitude, locationTo[i].lat, locationTo[i].lng),
-                duration:0,
-                from:{
-                  lat: result.latitude,
-                  lng:result.longitude
-                },
-                to:{
-                  lat: locationTo[i].lat,
-                  lng: locationTo[i].lng
-                }
-              });            
-            }
-            var calculateResult = data.result.elements;
-            var distanceResult = [];
-            for (var i = 0; i < calculateResult.length; i++) {
-              distanceResult.push(calculateResult[i].distance);
-            }  
-            return options.success(data,{
-              calculateResult: calculateResult,
-              distanceResult: distanceResult
-            });
-          };
-          
-          Utils.locationProcess(options, locationsuccess);
-        } else {
-          var locationsuccess = function (result) {
-            requestParam.from = result.latitude + ',' + result.longitude;
-            if (options.sig) {
-              requestParam.sig = Utils.getSig(requestParam, options.sig, 'calculateDistance');
-            }
-            wx.request(Utils.buildWxRequestConfig(options, {
-              url: URL_DISTANCE,
-              data: requestParam
-            },'calculateDistance'));
-          };
-
-          Utils.locationProcess(options, locationsuccess);
-        }      
-    };
-
-  /**
-   * 路线规划:
-   * 
-   * @param {Object} options 接口参数对象
-   * 
-   * 请求参数结构可以参考
-   * https://lbs.qq.com/webservice_v1/guide-road.html
-   */
-  direction(options) {
-    var that = this;
-    options = options || {};
-    Utils.polyfillParam(options);
-
-    if (Utils.checkParamKeyEmpty(options, 'to')) {
-      return;
-    }
-
-    var requestParam = {
-      output: 'json',
-      key: that.key
-    };
-
-    //to格式处理
-    if (typeof options.to == 'string') {
-      requestParam.to = options.to;
-    } else {
-      requestParam.to = options.to.latitude + ',' + options.to.longitude;
-    }
-    //初始化局部请求域名
-    var SET_URL_DIRECTION = null;
-    //设置默认mode属性
-    options.mode = options.mode || MODE.driving;
-
-    //设置请求域名
-    SET_URL_DIRECTION = URL_DIRECTION + options.mode;
-
-    if (options.from) {
-      options.location = options.from;
-    }
-
-    if (options.mode == MODE.driving) {
-      if (options.from_poi) {
-        requestParam.from_poi = options.from_poi;
-      }
-      if (options.heading) {
-        requestParam.heading = options.heading;
-      }
-      if (options.speed) {
-        requestParam.speed = options.speed;
-      }
-      if (options.accuracy) {
-        requestParam.accuracy = options.accuracy;
-      }
-      if (options.road_type) {
-        requestParam.road_type = options.road_type;
-      }
-      if (options.to_poi) {
-        requestParam.to_poi = options.to_poi;
-      }
-      if (options.from_track) {
-        requestParam.from_track = options.from_track;
-      }
-      if (options.waypoints) {
-        requestParam.waypoints = options.waypoints;
-      }
-      if (options.policy) {
-        requestParam.policy = options.policy;
-      }
-      if (options.plate_number) {
-        requestParam.plate_number = options.plate_number;
-      }
-    }
-
-    if (options.mode == MODE.transit) {
-      if (options.departure_time) {
-        requestParam.departure_time = options.departure_time;
-      }
-      if (options.policy) {
-        requestParam.policy = options.policy;
-      }
-    } 
-
-    var locationsuccess = function (result) {
-      requestParam.from = result.latitude + ',' + result.longitude;
-      if (options.sig) {
-        requestParam.sig = Utils.getSig(requestParam, options.sig, 'direction',options.mode);
-      }
-      wx.request(Utils.buildWxRequestConfig(options, {
-        url: SET_URL_DIRECTION,
-        data: requestParam
-      }, 'direction'));
-    };
-
-    Utils.locationProcess(options, locationsuccess);
-  }
-};
-
-module.exports = QQMapWX;

二进制
static/logo.png


二进制
static/tabbar/index-selected.png


二进制
static/tabbar/index.png


二进制
static/tabbar/mine-selected.png


二进制
static/tabbar/mine.png


二进制
static/tabbar/search-selected.png


二进制
static/tabbar/search.png


+ 0 - 78
uni.scss

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

+ 0 - 24
uni_modules/z-paging/changelog.md

@@ -1,24 +0,0 @@
-## 2.0.9(2021-11-04)
-1.新增`loadingFullFixed`,支持设置loading铺满屏幕。  
-2.新增`minDelay`,支持设置触发@query后最小延迟处理的时间。  
-3.新增`autoHideEmptyViewWhenPull`,支持控制用户下拉刷新时是否自动隐藏空数据图。  
-4.修复在main.js中进行z-paging的全局配置无效的问题。  
-5.修复在微信小程序中使用自动显示下拉刷新view时,请求时间很短时刷新状态无法结束的问题。  
-6.修复在nvue中使用滑动切换选项卡可能出现的无法下拉刷新的问题。  
-7.修复自动显示下拉刷新view时,上次刷新时间不会更新的问题。  
-8.在z-paging中使用popup等组件时,未能盖住全屏的问题及z-paging内view position:fixed失效的问题可以通过更新最新版HbuilderX解决。
-## 2.0.8(2021-10-14)
-1.修复`ReferenceError: getPrivateLanguage is not defined`报错的问题  
-2.修复在nvue中使用聊天记录模式时,手动调用`scrollToTop`或`scrollToBottom`时递归调用的问题。  
-3.修复使用`u-grid`时,内部item元素过多时。`z-paging`自定义的下拉刷新view与默认下拉刷新view同时展示的问题。
-## 2.0.7(2021-10-08)
-1.修复在一些平台中,底部加载更多会被遮挡的问题。  
-2.修复在nvue中`safe-area-inset-bottom`为true时,可能出现的顶部异常偏移的问题。  
-3.修复在HbuilderX 3.2.8+中,下拉刷新时@onRefresh被触发多次的问题。  
-4.修复在iOS中滚动到顶部view,在某些情况下因bounce的影响闪一下又消失的问题。  
-5.修复在使用页面滚动时,滚动到顶部view未能正常显示的问题。  
-6.修复在nvue中,使用聊天记录模式,数据未满一页时,数组被颠倒的问题。  
-7.修复在nvue中,使用页面滚动时,`scrollToTop`无效的问题。  
-8.修复在nvue中,使用聊天记录模式时,`scrollToBottom`和`scrollToTop`效果颠倒的问题。  
-9.修复在安卓 nvue中,导航栏与z-paging间出现的白色分割线的问题。  
-10.修复在HbuilderX 3.2.9+中,vue下拉刷新加载中时有一段空白间隙的问题。

+ 0 - 186
uni_modules/z-paging/components/z-paging-empty-view/z-paging-empty-view.vue

@@ -1,186 +0,0 @@
-<!-- z-paging -->
-<!-- github地址:https://github.com/SmileZXLee/uni-z-paging -->
-<!-- dcloud地址:https://ext.dcloud.net.cn/plugin?id=3935 -->
-<!-- 反馈QQ群:790460711 -->
-
-<!-- 空数据占位view,此组件支持easycom规范,可以在项目中直接引用 -->
-<template>
-	<view :class="{'zp-container':true,'zp-container-fixed':emptyViewFixed}" :style="[finalEmptyViewStyle]">
-		<view :class="{'zp-main':true,'zp-main-fixed':emptyViewFixed}">
-			<image v-if="!emptyViewImg.length" class="zp-main-image" :style="[emptyViewImgStyle]" :src="emptyImg"></image>
-			<image v-else class="zp-main-image" mode="aspectFit" :style="[emptyViewImgStyle]" :src="emptyViewImg"></image>
-			<text class="zp-main-title" :style="[emptyViewTitleStyle]">{{emptyViewText}}</text>
-			<text v-if="showEmptyViewReload" class="zp-main-error-btn" :style="[emptyViewReloadStyle]"
-				@click="reloadClick">{{emptyViewReloadText}}</text>
-		</view>
-	</view>
-</template>
-
-<script>
-	import zStatic from '../z-paging/js/z-paging-static'
-	export default {
-		data() {
-			return {
-				base64Empty: zStatic.base64Empty,
-				base64Error: zStatic.base64Error
-			};
-		},
-		props: {
-			//空数据描述文字
-			emptyViewText: {
-				type: String,
-				default: function() {
-					return '没有数据哦~'
-				}
-			},
-			//空数据图片
-			emptyViewImg: {
-				type: String,
-				default: function() {
-					return ''
-				}
-			},
-			//是否显示空数据图重新加载按钮
-			showEmptyViewReload: {
-				type: Boolean,
-				default: function() {
-					return false
-				}
-			},
-			//空数据点击重新加载文字
-			emptyViewReloadText: {
-				type: String,
-				default: function() {
-					return '重新加载'
-				}
-			},
-			//是否是加载失败
-			isLoadFailed: {
-				type: Boolean,
-				default: function() {
-					return false
-				}
-			},
-			//空数据图样式
-			emptyViewStyle: {
-				type: Object,
-				default: function() {
-					return {}
-				}
-			},
-			//空数据图img样式
-			emptyViewImgStyle: {
-				type: Object,
-				default: function() {
-					return {}
-				}
-			},
-			//空数据图描述文字样式
-			emptyViewTitleStyle: {
-				type: Object,
-				default: function() {
-					return {}
-				}
-			},
-			//空数据图重新加载按钮样式
-			emptyViewReloadStyle: {
-				type: Object,
-				default: function() {
-					return {}
-				}
-			},
-			//空数据图z-index
-			emptyViewZIndex: {
-				type: Number,
-				default: function() {
-					return 9
-				}
-			},
-			//空数据图片是否使用fixed布局并铺满z-paging
-			emptyViewFixed: {
-				type: Boolean,
-				default: function() {
-					return true
-				}
-			}
-		},
-		computed: {
-			emptyImg() {
-				if (this.isLoadFailed) {
-					return this.base64Error;
-				} else {
-					return this.base64Empty;
-				}
-			},
-			finalEmptyViewStyle(){
-				this.emptyViewStyle['z-index'] = this.emptyViewZIndex;
-				return this.emptyViewStyle;
-			}
-		},
-		methods: {
-			reloadClick() {
-				this.$emit('reload');
-			}
-		}
-	}
-</script>
-
-<style scoped>
-	.zp-container{
-		/* #ifndef APP-NVUE */
-		display: flex;
-		/* #endif */
-		align-items: center;
-		justify-content: center;
-	}
-	.zp-container-fixed {
-		/* #ifndef APP-NVUE */
-		position: absolute;
-		top: 0;
-		left: 0;
-		width: 100%;
-		height: 100%;
-		/* #endif */
-		/* #ifdef APP-NVUE */
-		flex: 1;
-		/* #endif */
-	}
-
-	.zp-main{
-		/* #ifndef APP-NVUE */
-		display: flex;
-		/* #endif */
-		flex-direction: column;
-		align-items: center;
-	}
-	
-	.zp-main-fixed {
-		/* #ifndef APP-NVUE */
-		margin-top: -150rpx;
-		/* #endif */
-		/* #ifdef APP-NVUE */
-		margin-top: -100rpx;
-		/* #endif */
-	}
-
-	.zp-main-image {
-		width: 200rpx;
-		height: 200rpx;
-	}
-
-	.zp-main-title {
-		font-size: 26rpx;
-		color: #aaaaaa;
-		text-align: center;
-		margin-top: 10rpx;
-	}
-
-	.zp-main-error-btn {
-		font-size: 26rpx;
-		padding: 8rpx 24rpx;
-		border: solid 1px #dddddd;
-		border-radius: 6rpx;
-		color: #aaaaaa;
-		margin-top: 50rpx;
-	}
-</style>

+ 0 - 88
uni_modules/z-paging/components/z-paging-swiper-item/z-paging-swiper-item.vue

@@ -1,88 +0,0 @@
-<!-- z-paging -->
-<!-- github地址:https://github.com/SmileZXLee/uni-z-paging -->
-<!-- dcloud地址:https://ext.dcloud.net.cn/plugin?id=3935 -->
-<!-- 反馈QQ群:790460711 -->
-
-<!-- 滑动切换选项卡swiper-item,此组件支持easycom规范,可以在项目中直接引用 -->
-<template>
-	<view class="zp-swiper-item-container">
-		<z-paging ref="paging" :fixed="false" @query="_queryList" @listChange="_updateList" :mounted-auto-call-reload="false"
-			style="height: 100%;">
-			<slot></slot>
-		</z-paging>
-	</view>
-</template>
-
-<script>
-	import zPaging from '../z-paging/z-paging'
-	export default {
-		name: "z-paging-swiper-item",
-		components: {
-			zPaging
-		},
-		data() {
-			return {
-				firstLoaded: false
-			}
-		},
-		props: {
-			//当前组件的index,也就是当前组件是swiper中的第几个
-			tabIndex: {
-				type: Number,
-				default: function() {
-					return 0
-				}
-			},
-			//当前swiper切换到第几个index
-			currentIndex: {
-				type: Number,
-				default: function() {
-					return 0
-				}
-			},
-		},
-		watch: {
-			currentIndex: {
-				handler(newVal, oldVal) {
-					if (newVal === this.tabIndex) {
-						//懒加载,当滑动到当前的item时,才去加载
-						if (!this.firstLoaded) {
-							this.$nextTick(()=>{
-								setTimeout(() => {
-									this.$refs.paging.reload();
-								}, 5);
-							})
-						}
-					}
-				},
-				immediate: true
-			}
-		},
-		methods: {
-			reload(data) {
-				this.$refs.paging.reload(data);
-			},
-			complete(data) {
-				this.firstLoaded = true;
-				this.$refs.paging.complete(data);
-			},
-			_queryList(pageNo, pageSize) {
-				this.$emit('query', pageNo, pageSize);
-			},
-			_updateList(list) {
-				this.$emit('updateList', list);
-			}
-		}
-	}
-</script>
-
-<style scoped>
-	.zp-swiper-item-container {
-		/* #ifndef APP-NVUE */
-		height: 100%;
-		/* #endif */
-		/* #ifdef APP-NVUE */
-		flex: 1;
-		/* #endif */
-	}
-</style>

+ 0 - 126
uni_modules/z-paging/components/z-paging-swiper/z-paging-swiper.vue

@@ -1,126 +0,0 @@
-<!-- z-paging -->
-<!-- github地址:https://github.com/SmileZXLee/uni-z-paging -->
-<!-- dcloud地址:https://ext.dcloud.net.cn/plugin?id=3935 -->
-<!-- 反馈QQ群:790460711 -->
-
-<!-- 滑动切换选项卡swiper,此组件支持easycom规范,可以在项目中直接引用 -->
-<template>
-	<view :class="fixed?'zp-swiper-container zp-swiper-container-fixed':'zp-swiper-container'" :style="[swiperStyle]">
-		<slot v-if="$slots.top" name="top"></slot>
-		<view class="zp-swiper-super">
-			<view class="zp-swiper">
-				<slot/></slot>
-			</view>
-		</view>
-		<slot v-if="$slots.bottom" name="bottom"></slot>
-	</view>
-</template>
-
-<script>
-	export default {
-		name: "z-paging-swiper",
-		data() {
-			return {
-				systemInfo: null
-			};
-		},
-		props: {
-			//是否使用fixed布局,默认为是
-			fixed: {
-				type: Boolean,
-				default: true
-			},
-			//是否开启底部安全区域适配
-			safeAreaInsetBottom: {
-				type: Boolean,
-				default: false
-			}
-		},
-		mounted() {
-			this.$nextTick(() => {
-				this.systemInfo = uni.getSystemInfoSync();
-			})
-		},
-		computed: {
-			swiperStyle() {
-				if (!this.systemInfo) {
-					return {};
-				}
-				let swiperStyle = {};
-				const windowTop = this.systemInfo.windowTop;
-				const windowBottom = this.systemInfo.windowBottom;
-				if (this.fixed) {
-					if (windowTop && windowTop !== undefined) {
-						swiperStyle.top = windowTop + 'px';
-					}
-					let bottom = 0;
-					if (windowBottom && windowBottom !== undefined) {
-						bottom = windowBottom;
-					}
-					if (this.safeAreaInsetBottom) {
-						bottom += this.safeAreaBottom;
-					}
-					swiperStyle.bottom = bottom + 'px';
-				}
-				return swiperStyle;
-			},
-			safeAreaBottom() {
-				if (!this.systemInfo) {
-					return 0;
-				}
-				let safeAreaBottom = 0;
-				// #ifdef MP-WEIXIN
-				safeAreaBottom = this.systemInfo.screenHeight - this.systemInfo.safeArea.bottom;
-				// #endif
-				// #ifdef APP-PLUS || H5
-				safeAreaBottom = this.systemInfo.safeAreaInsets.bottom || 0;
-				// #endif
-				return Math.abs(safeAreaBottom);
-			}
-		}
-	}
-</script>
-
-<style scoped>
-	.zp-swiper-container {
-		/* #ifndef APP-NVUE */
-		display: flex;
-		/* #endif */
-		flex-direction: column;
-		flex: 1;
-	}
-
-	.zp-swiper-container-fixed {
-		position: fixed;
-		/* #ifndef APP-NVUE */
-		height: auto;
-		width: auto;
-		/* #endif */
-		top: 0;
-		left: 0;
-		bottom: 0;
-		right: 0;
-	}
-
-	.zp-swiper-super {
-		flex: 1;
-		position: relative;
-	}
-
-	.zp-swiper {
-		/* #ifndef APP-NVUE */
-		height: 100%;
-		width: 100%;
-		position: absolute;
-		top: 0;
-		left: 0;
-		/* #endif */
-		/* #ifdef APP-NVUE */
-		flex: 1;
-		/* #endif */
-	}
-	
-	.zp-swiper-item {
-		height: 100%;
-	}
-</style>

+ 0 - 157
uni_modules/z-paging/components/z-paging/components/z-paging-load-more.vue

@@ -1,157 +0,0 @@
-<!-- [z-paging]上拉加载更多view -->
-
-<template>
-	<view class="zp-l-container" :style="[zConfig.customStyle]">
-		<text
-			:class="zConfig.defaultThemeStyle==='white'?'zp-l-line zp-l-line-white':'zp-l-line zp-l-line-black'"
-			:style="[zConfig.noMoreLineCustomStyle]"
-			v-if="zConfig.showNoMoreLine&&zConfig.status===2"></text>
-		<!-- #ifndef APP-NVUE -->
-		<image v-if="zConfig.status===1&&zConfig.loadingIconCustomImage.length"
-			:src="zConfig.loadingIconCustomImage" :class="{'zp-l-line-loading-custom-image':true,'zp-l-line-loading-custom-image-animated':zConfig.loadingAnimated}">
-		</image>
-		<image
-			v-if="zConfig.status===1&&zConfig.loadingIconType==='flower'&&!zConfig.loadingIconCustomImage.length"
-			class="zp-line-loading-image" :style="[zConfig.iconCustomStyle]"
-			:src="zConfig.defaultThemeStyle==='white'?base64FlowerWhite:base64Flower">
-		</image>
-		<!-- #endif -->
-		<!-- #ifdef APP-NVUE -->
-		<view>
-			<loading-indicator v-if="zConfig.status===1"
-				:style="[{color:zConfig.defaultThemeStyle==='white'?'white':'#777777'}]" :animating="true"
-				class="zp-line-loading-image">
-			</loading-indicator>
-		</view>
-		<!-- #endif -->
-		<text
-			v-if="zConfig.status===1&&zConfig.loadingIconType==='circle'&&!zConfig.loadingIconCustomImage.length"
-			:class="zConfig.defaultThemeStyle==='white'?'zp-l-line-loading-view zp-l-line-loading-view-white':'zp-l-line-loading-view zp-l-line-loading-view-black'"
-			:style="[zConfig.iconCustomStyle]"></text>
-		<text
-			:class="zConfig.defaultThemeStyle==='white'?'zp-l-text zp-l-text-white':'zp-l-text zp-l-text-black'">{{ownLoadingMoreText}}</text>
-		<text
-			:class="zConfig.defaultThemeStyle==='white'?'zp-l-line zp-l-line-white':'zp-l-line zp-l-line-black'"
-			:style="[zConfig.noMoreLineCustomStyle]"
-			v-if="zConfig.showNoMoreLine&&zConfig.status===2"></text>
-	</view>
-</template>
-<script>
-	import zStatic from '../js/z-paging-static'
-	export default {
-		name: 'z-paging-load-more',
-		data() {
-			return {
-				base64Arrow: zStatic.base64Arrow,
-				base64Flower: zStatic.base64Flower,
-				base64FlowerWhite: zStatic.base64FlowerWhite,
-			};
-		},
-		props: ['zConfig'],
-		computed: {
-			ownLoadingMoreText() {
-				const loadingMoreText = this.loadingStatusTextMap[this.zConfig.status];
-				return loadingMoreText;
-			},
-			loadingStatusTextMap() {
-				return {
-					0: this.zConfig.defaultText,
-					1: this.zConfig.loadingText,
-					2: this.zConfig.noMoreText,
-					3: this.zConfig.failText,
-				}
-			}
-		}
-	}
-</script>
-
-<style scoped>
-	@import "../css/z-paging-static.css";
-
-	.zp-l-container {
-		height: 80rpx;
-		font-size: 27rpx;
-		/* #ifndef APP-NVUE */
-		clear: both;
-		display: flex;
-		/* #endif */
-		flex-direction: row;
-		align-items: center;
-		justify-content: center;
-	}
-
-	.zp-l-line-loading-custom-image {
-		color: #a4a4a4;
-		margin-right: 8rpx;
-		width: 28rpx;
-		height: 28rpx;
-	}
-	
-	.zp-l-line-loading-custom-image-animated{
-		/* #ifndef APP-NVUE */
-		animation: loading-circle 1s linear infinite;
-		/* #endif */
-	}
-
-	.zp-l-line-loading-view {
-		margin-right: 8rpx;
-		width: 22rpx;
-		height: 23rpx;
-		border: 3rpx solid #dddddd;
-		border-radius: 50%;
-		/* #ifndef APP-NVUE */
-		animation: loading-circle 1s linear infinite;
-		/* #endif */
-	}
-
-	.zp-l-line-loading-view-black {
-		border-color: #c8c8c8;
-		border-top-color: #444444;
-	}
-
-	.zp-l-line-loading-view-white {
-		border-color: #aaaaaa;
-		border-top-color: #ffffff;
-	}
-
-	.zp-l-text {
-		/* #ifdef APP-NVUE */
-		font-size: 30rpx;
-		margin: 0rpx 10rpx;
-		/* #endif */
-	}
-
-	.zp-l-text-black {
-		color: #a4a4a4;
-	}
-
-	.zp-l-text-white {
-		color: #efefef;
-	}
-
-	.zp-l-line {
-		height: 1px;
-		width: 100rpx;
-		margin: 0rpx 10rpx;
-	}
-
-	.zp-l-line-black {
-		background-color: #eeeeee;
-	}
-
-	.zp-l-line-white {
-		background-color: #efefef;
-	}
-
-	@keyframes loading-circle {
-		0% {
-			-webkit-transform: rotate(0deg);
-			transform: rotate(0deg);
-		}
-
-		100% {
-			-webkit-transform: rotate(360deg);
-			transform: rotate(360deg);
-		}
-	}
-</style>

+ 0 - 284
uni_modules/z-paging/components/z-paging/components/z-paging-refresh.vue

@@ -1,284 +0,0 @@
-<!-- [z-paging]下拉刷新view -->
-
-<template>
-	<view style="height: 100%;">
-		<view
-			:class="['zp-r-container',{'zp-r-container-padding':showUpdateTime}]" style="height: 100%;">
-			<view class="zp-r-left">
-				<image v-if="status!==2" :class="refresherLeftImageClass"
-					:style="[{width: showUpdateTime?'36rpx':'30rpx',height: showUpdateTime?'36rpx':'30rpx','margin-right': showUpdateTime?'20rpx':'9rpx'},imgStyle]"
-					:src="defaultThemeStyle==='white'?(status===3?base64SuccessWhite:base64ArrowWhite):(status===3?base64Success:base64Arrow)">
-				</image>
-				<!-- #ifndef APP-NVUE -->
-				<image v-else class="zp-line-loading-image zp-r-left-image"
-					:style="[{width: showUpdateTime?'36rpx':'30rpx',height: showUpdateTime?'36rpx':'30rpx','margin-right': showUpdateTime?'20rpx':'9rpx'},imgStyle]"
-					:src="defaultThemeStyle==='white'?base64FlowerWhite:base64Flower">
-				</image>
-				<!-- #endif -->
-				<!-- #ifdef APP-NVUE -->
-				<view v-else :style="[{'margin-right':showUpdateTime?'18rpx':'12rpx'}]">
-					<loading-indicator
-						:class="systemInfo.platform==='ios'?'zp-loading-image-ios':'zp-loading-image-android'"
-						:style="[{color:defaultThemeStyle==='white'?'white':'#777777'},imgStyle]" :animating="true">
-					</loading-indicator>
-				</view>
-				<!-- #endif -->
-			</view>
-			<view class="zp-r-right">
-				<text class="zp-r-right-text"
-					:style="[refresherRightTextStyle,titleStyle]">{{refresherStatusTextMap[status]||defaultText}}
-				</text>
-				<text class="zp-r-right-text zp-r-right-time-text"
-					:style="[refresherRightTextStyle,updateTimeStyle]"
-					v-if="showUpdateTime&&refresherTimeText.length">{{refresherTimeText}}
-				</text>
-			</view>
-		</view>
-	</view>
-</template>
-<script>
-	const systemInfo = uni.getSystemInfoSync();
-	import zStatic from '../js/z-paging-static'
-	import {
-		getRefesrherFormatTimeByKey
-	} from '../js/z-paging-utils'
-	export default {
-		name: 'z-paging-refresh',
-		data() {
-			return {
-				systemInfo: systemInfo,
-				base64Arrow: zStatic.base64Arrow,
-				base64ArrowWhite: zStatic.base64ArrowWhite,
-				base64Flower: zStatic.base64Flower,
-				base64FlowerWhite: zStatic.base64FlowerWhite,
-				base64Success: zStatic.base64Success,
-				base64SuccessWhite: zStatic.base64SuccessWhite,
-				refresherTimeText: '',
-				leftImageLoaded: false
-			};
-		},
-		props: {
-			'status': {
-				default: 0
-			},
-			'defaultThemeStyle': {},
-			'defaultText': {},
-			'pullingText': {},
-			'refreshingText': {},
-			'completeText': {},
-			'showUpdateTime': {
-				default: false
-			},
-			'updateTimeKey': {},
-			'imgStyle': {
-				default: {}
-			},
-			'titleStyle': {
-				default: {}
-			},
-			'updateTimeStyle': {
-				default: {}
-			},
-		},
-		computed: {
-			refresherStatusTextMap() {
-				this.updateTime(this.updateTimeKey);
-				return {
-					0: this.defaultText,
-					1: this.pullingText,
-					2: this.refreshingText,
-					3: this.completeText
-				};
-			},
-			refresherLeftImageClass() {
-				if(this.status === 3){
-					return 'zp-r-left-image-no-transform .zp-r-left-image-pre-size';
-				}
-				let refresherLeftImageClass = 'zp-r-left-image ';
-				if (this.status === 0) {
-					if (this.leftImageLoaded) {
-						refresherLeftImageClass += 'zp-r-arrow-down';
-					} else {
-						this.leftImageLoaded = true;
-						refresherLeftImageClass += 'zp-r-arrow-down-no-duration';
-					}
-				} else {
-					refresherLeftImageClass += 'zp-r-arrow-top';
-				}
-				return refresherLeftImageClass + ' zp-r-left-image-pre-size';
-			},
-			refresherRightTextStyle() {
-				let refresherRightTextStyle = {};
-				let color = '#555555';
-				if (this.defaultThemeStyle === 'white') {
-					color = '#efefef';
-				}
-				// #ifdef APP-NVUE
-				if (this.showUpdateTime) {
-					refresherRightTextStyle = {
-						'height': '40rpx',
-						'line-height': '40rpx'
-					};
-				} else {
-					refresherRightTextStyle = {
-						'height': '80rpx',
-						'line-height': '80rpx'
-					};
-				}
-				// #endif
-				refresherRightTextStyle['color'] = color;
-				return refresherRightTextStyle;
-			}
-		},
-		methods: {
-			updateTime(updateTimeKey) {
-				if (!updateTimeKey) {
-					updateTimeKey = this.updateTimeKey;
-				}
-				if (this.showUpdateTime) {
-					this.refresherTimeText = getRefesrherFormatTimeByKey(updateTimeKey);
-				}
-			}
-		}
-	}
-</script>
-
-<style scoped>
-	@import "../css/z-paging-static.css";
-
-	.zp-r-container {
-		/* #ifndef APP-NVUE */
-		display: flex;
-		/* #endif */
-		flex-direction: row;
-		justify-content: center;
-		align-items: center;
-	}
-
-	.zp-r-container-padding {
-		/* #ifdef APP-NVUE */
-		padding: 15rpx 0rpx;
-		/* #endif */
-	}
-
-	.zp-r-left {
-		/* #ifndef APP-NVUE */
-		display: flex;
-		/* #endif */
-		flex-direction: row;
-		align-items: center;
-		overflow: hidden;
-	}
-
-	.zp-r-left-image {
-		/* #ifndef APP-NVUE */
-		transform: rotate(180deg);
-		margin-top: 2rpx;
-		/* #endif */
-		/* #ifdef APP-NVUE */
-		transition-duration: .2s;
-		transition-property: transform;
-		color: #666666;
-		/* #endif */
-	}
-	
-	.zp-r-left-image-no-transform {
-		/* #ifndef APP-NVUE */
-		margin-top: 2rpx;
-		/* #endif */
-		/* #ifdef APP-NVUE */
-		transition-duration: .2s;
-		transition-property: transform;
-		color: #666666;
-		/* #endif */
-	}
-	
-	.zp-r-left-image-pre-size{
-		/* #ifndef APP-NVUE */
-		width: 30rpx;
-		width: 30rpx;
-		overflow: hidden;
-		/* #endif */
-	}
-
-	.zp-r-arrow-top {
-		/* #ifndef APP-NVUE */
-		animation: refresher-arrow-top .2s linear;
-		-webkit-animation: refresher-arrow-top .2s linear;
-		animation-fill-mode: forwards;
-		-webkit-animation-fill-mode: forwards;
-		/* #endif */
-		/* #ifdef APP-NVUE */
-		transform: rotate(0deg);
-		/* #endif */
-	}
-
-	.zp-r-arrow-down {
-		/* #ifndef APP-NVUE */
-		animation: refresher-arrow-down .2s linear;
-		-webkit-animation: refresher-arrow-down .2s linear;
-		animation-fill-mode: forwards;
-		-webkit-animation-fill-mode: forwards;
-		/* #endif */
-		/* #ifdef APP-NVUE */
-		transform: rotate(180deg);
-		/* #endif */
-	}
-
-	.zp-r-arrow-down-no-duration {
-		/* #ifndef APP-NVUE */
-		animation: refresher-arrow-down 0s linear;
-		-webkit-animation: refresher-arrow-down 0s linear;
-		animation-fill-mode: forwards;
-		-webkit-animation-fill-mode: forwards;
-		/* #endif */
-		/* #ifdef APP-NVUE */
-		transform: rotate(180deg);
-		/* #endif */
-	}
-
-	.zp-r-right {
-		font-size: 27rpx;
-		/* #ifndef APP-NVUE */
-		display: flex;
-		/* #endif */
-		flex-direction: column;
-		align-items: center;
-		justify-content: center;
-	}
-
-	.zp-r-right-text {
-		/* #ifdef APP-NVUE */
-		font-size: 28rpx;
-		/* #endif */
-	}
-
-	.zp-r-right-time-text {
-		margin-top: 10rpx;
-		font-size: 24rpx;
-	}
-
-	@keyframes refresher-arrow-top {
-		0% {
-			-webkit-transform: rotate(180deg);
-			transform: rotate(180deg);
-		}
-
-		100% {
-			-webkit-transform: rotate(0deg);
-			transform: rotate(0deg);
-		}
-	}
-
-	@keyframes refresher-arrow-down {
-		0% {
-			-webkit-transform: rotate(0deg);
-			transform: rotate(0deg);
-		}
-
-		100% {
-			-webkit-transform: rotate(180deg);
-			transform: rotate(180deg);
-		}
-	}
-</style>

+ 0 - 1
uni_modules/z-paging/components/z-paging/config/index.js

@@ -1 +0,0 @@
-// z-paging全局配置文件,注意避免更新时此文件被覆盖,若被覆盖,可在此文件中右键->点击本地历史记录,找回覆盖前的配置

+ 0 - 185
uni_modules/z-paging/components/z-paging/css/z-paging-main.css

@@ -1,185 +0,0 @@
-/* [z-paging]公共css*/
-
-.z-paging-content {
-	position: relative;
-	/* #ifndef APP-NVUE */
-	display: flex;
-	width: 100%;
-	height: 100%;
-	/* #endif */
-	flex-direction: column;
-}
-
-.z-paging-content-fixed, .zp-loading-fixed {
-	position: fixed;
-	/* #ifndef APP-NVUE */
-	height: auto;
-	width: auto;
-	/* #endif */
-	top: 0;
-	left: 0;
-	bottom: 0;
-	right: 0;
-}
-
-.zp-page-scroll-top,
-.zp-page-scroll-bottom {
-	/* #ifndef APP-NVUE */
-	width: auto;
-	/* #endif */
-	position: fixed;
-	left: 0;
-	right: 0;
-	z-index: 999;
-}
-
-.zp-scroll-view-super {
-	flex: 1;
-	position: relative;
-}
-
-.zp-custom-refresher-container {
-	overflow: hidden;
-}
-
-.zp-scroll-view {
-	height: 100%;
-	width: 100%;
-}
-
-.zp-scroll-view-absolute {
-	position: absolute;
-	top: 0;
-	left: 0;
-}
-
-/* #ifndef APP-NVUE */
-.zp-scroll-view-hide-scrollbar ::-webkit-scrollbar {
-	display: none;
-	-webkit-appearance: none;
-	width: 0 !important;
-	height: 0 !important;
-	background: transparent;
-}
-
-/* #endif */
-
-.zp-paging-touch-view {
-	width: 100%;
-	height: 100%;
-	position: relative;
-}
-
-.zp-fixed-bac-view {
-	position: absolute;
-	width: 100%;
-	top: 0;
-	left: 0;
-	height: 200px;
-}
-
-.zp-paging-main {
-	height: 100%;
-	/* #ifndef APP-NVUE */
-	display: flex;
-	/* #endif */
-	flex-direction: column;
-}
-
-.zp-paging-container {
-	flex: 1;
-	position: relative;
-	/* #ifndef APP-NVUE */
-	display: flex;
-	/* #endif */
-	flex-direction: column;
-}
-
-.zp-chat-record-loading-container {
-	/* #ifndef APP-NVUE */
-	display: flex;
-	width: 100%;
-	/* #endif */
-	/* #ifdef APP-NVUE */
-	width: 750rpx;
-	/* #endif */
-	align-items: center;
-	justify-content: center;
-	height: 60rpx;
-	font-size: 26rpx;
-}
-
-.zp-chat-record-loading-custom-image {
-	width: 35rpx;
-	height: 35rpx;
-	/* #ifndef APP-NVUE */
-	animation: loading-flower 1s linear infinite;
-	/* #endif */
-}
-
-.zp-custom-refresher-container {
-	/* #ifndef APP-NVUE */
-	display: flex;
-	/* #endif */
-	flex-direction: row;
-	justify-content: center;
-	align-items: center;
-}
-
-.zp-back-to-top {
-	width: 76rpx;
-	height: 76rpx;
-	z-index: 999;
-	position: absolute;
-	bottom: 0rpx;
-	right: 25rpx;
-	transition-duration: .3s;
-	transition-property: opacity;
-}
-
-.zp-back-to-top-show {
-	opacity: 1;
-}
-
-.zp-back-to-top-hide {
-	opacity: 0;
-}
-
-.zp-back-to-top-img {
-	/* #ifndef APP-NVUE */
-	width: 100%;
-	height: 100%;
-	/* #endif */
-	/* #ifdef APP-NVUE */
-	flex: 1;
-	/* #endif */
-	z-index: 999;
-}
-
-.zp-empty-view {
-	/* #ifdef APP-NVUE */
-	height: 100%;
-	/* #endif */
-	flex: 1;
-}
-
-.zp-empty-view-center {
-	/* #ifndef APP-NVUE */
-	display: flex;
-	/* #endif */
-	flex-direction: column;
-	align-items: center;
-	justify-content: center;
-}
-
-.zp-loading-fixed{
-	z-index: 9999;
-}
-
-.zp-n-refresh-container {
-	/* #ifndef APP-NVUE */
-	display: flex;
-	/* #endif */
-	justify-content: center;
-	width: 750rpx;
-}

+ 0 - 33
uni_modules/z-paging/components/z-paging/css/z-paging-static.css

@@ -1,33 +0,0 @@
-/* [z-paging]公用的静态css资源 */
-
-.zp-line-loading-image {
-	margin-right: 8rpx;
-	width: 28rpx;
-	height: 28rpx;
-	/* #ifndef APP-NVUE */
-	animation: loading-flower 1s steps(12) infinite;
-	/* #endif */
-	color: #666666;
-}
-
-.zp-loading-image-ios{
-	width: 20px;
-	height: 20px;
-}
-
-.zp-loading-image-android{
-	width: 32rpx;
-	height: 32rpx;
-}
-
-@keyframes loading-flower {
-	0% {
-		-webkit-transform: rotate(0deg);
-		transform: rotate(0deg);
-	}
-
-	to {
-		-webkit-transform: rotate(1turn);
-		transform: rotate(1turn);
-	}
-}

+ 0 - 28
uni_modules/z-paging/components/z-paging/js/z-paging-config.js

@@ -1,28 +0,0 @@
-// [z-paging]处理main.js中的配置信息工具
-
-let config = null;
-let getedStorage = false;
-const storageKey = 'Z-PAGING-CONFIG-STORAGE-KEY'
-
-function setConfig(value) {
-	try {
-		uni.setStorageSync(storageKey, value);
-	} catch {}
-}
-
-function getConfig() {
-	try {
-		if (getedStorage) {
-			return config;
-		}
-		config = uni.getStorageSync(storageKey);
-		getedStorage = true;
-	} catch {
-		return null;
-	}
-}
-
-module.exports = {
-	setConfig,
-	getConfig
-};

+ 0 - 25
uni_modules/z-paging/components/z-paging/js/z-paging-enum.js

@@ -1,25 +0,0 @@
-// [z-paging]枚举
-
-const Enum = {
-	//当前加载类型 0-下拉刷新 1-上拉加载更多
-	LoadingType: {
-		Refresher: 0,
-		LoadingMore: 1
-	},
-	//下拉刷新状态 0-默认状态 1.松手立即刷新 2.刷新中 3.刷新结束
-	RefresherStatus: {
-		Default: 0,
-		PullToRefresh: 1,
-		Loading: 2,
-		Complete: 3
-	},
-	//底部加载更多状态 0-默认状态 1.加载中 2.没有更多数据 3.加载失败
-	LoadingMoreStatus: {
-		Default: 0,
-		Loading: 1,
-		NoMore: 2,
-		Fail: 3
-	}
-}
-
-module.exports = Enum;

+ 0 - 153
uni_modules/z-paging/components/z-paging/js/z-paging-i18n.js

@@ -1,153 +0,0 @@
-// z-paging国际化(支持中文、中文繁体和英文)
-
-const i18nUpdateKey = 'z-paging-i18n-update';
-
-const refresherDefaultText = {
-	'en': 'Pull down to refresh',
-	'zh-cn': '继续下拉刷新',
-	'zh-hant-cn': '繼續下拉重繪',
-}
-const refresherPullingText = {
-	'en': 'Release to refresh',
-	'zh-cn': '松开立即刷新',
-	'zh-hant-cn': '鬆開立即重繪',
-}
-const refresherRefreshingText = {
-	'en': 'Refreshing...',
-	'zh-cn': '正在刷新...',
-	'zh-hant-cn': '正在重繪...',
-}
-const refresherCompleteText = {
-	'en': 'Refresh succeeded',
-	'zh-cn': '刷新成功',
-	'zh-hant-cn': '重繪成功',
-}
-
-const loadingMoreDefaultText = {
-	'en': 'Click to load more',
-	'zh-cn': '点击加载更多',
-	'zh-hant-cn': '點擊加載更多',
-}
-const loadingMoreLoadingText = {
-	'en': 'Loading...',
-	'zh-cn': '正在加载...',
-	'zh-hant-cn': '正在加載...',
-}
-const loadingMoreNoMoreText = {
-	'en': 'No more data',
-	'zh-cn': '没有更多了',
-	'zh-hant-cn': '沒有更多了',
-}
-const loadingMoreFailText = {
-	'en': 'Load failed,click to reload',
-	'zh-cn': '加载失败,点击重新加载',
-	'zh-hant-cn': '加載失敗,點擊重新加載',
-}
-
-const emptyViewText = {
-	'en': 'No data',
-	'zh-cn': '没有数据哦~',
-	'zh-hant-cn': '沒有數據哦~',
-}
-
-const emptyViewReloadText = {
-	'en': 'Reload',
-	'zh-cn': '重新加载',
-	'zh-hant-cn': '重新加載',
-}
-
-const emptyViewErrorText = {
-	'en': 'Sorry,load failed',
-	'zh-cn': '很抱歉,加载失败',
-	'zh-hant-cn': '很抱歉,加載失敗',
-}
-
-const refresherUpdateTimeText = {
-	'en': 'Last update: ',
-	'zh-cn': '最后更新:',
-	'zh-hant-cn': '最後更新:',
-}
-
-const refresherUpdateTimeNoneText = {
-	'en': 'None',
-	'zh-cn': '无',
-	'zh-hant-cn': '無',
-}
-
-const refresherUpdateTimeTodayText = {
-	'en': 'Today',
-	'zh-cn': '今天',
-	'zh-hant-cn': '今天',
-}
-
-const refresherUpdateTimeYesterdayText = {
-	'en': 'Yesterday',
-	'zh-cn': '昨天',
-	'zh-hant-cn': '昨天',
-}
-
-// 获取当前语言,格式为:zh-cn、zh-hant-cn、en。followSystemLanguage:获取的结果是否是在不跟随系统语言下获取到的
-function getLanguage(followSystemLanguage = true) {
-	return _getPrivateLanguage(false, followSystemLanguage);
-}
-
-// 获取当前语言,格式为:简体中文、繁體中文、English。followSystemLanguage:获取的结果是否是在不跟随系统语言下获取到的
-function getLanguageName(followSystemLanguage = true) {
-	const language = getLanguage(followSystemLanguage);
-	const languageNameMap = {
-		'zh-cn': '简体中文',
-		'zh-hant-cn': '繁體中文',
-		'en': 'English'
-	};
-	return languageNameMap[language];
-}
-
-//设置当前语言,格式为:zh-cn、zh-hant-cn、en
-function setLanguage(myLanguage) {
-	uni.setStorageSync(i18nUpdateKey, myLanguage);
-	uni.$emit(i18nUpdateKey, myLanguage);
-}
-
-// 插件内部使用,请勿直接调用
-function _getPrivateLanguage(myLanguage, followSystemLanguage = true) {
-	let systemLanguage = '';
-	if (followSystemLanguage) {
-		systemLanguage = uni.getSystemInfoSync().language;
-	}
-	let language = myLanguage || uni.getStorageSync(i18nUpdateKey) || systemLanguage;
-	language = language.toLowerCase();
-	var reg = new RegExp('_', '');
-	language = language.replace(reg, '-');
-	if (language.indexOf('zh') !== -1) {
-		if (language === 'zh' || language === 'zh-cn' || language.indexOf('zh-hans') !== -1) {
-			return 'zh-cn';
-		}
-		return 'zh-hant-cn';
-	}
-	if (language.indexOf('en') !== -1) {
-		return 'en';
-	}
-	return 'zh-cn';
-}
-
-module.exports = {
-	refresherDefaultText,
-	refresherPullingText,
-	refresherRefreshingText,
-	refresherCompleteText,
-	refresherUpdateTimeText,
-	refresherUpdateTimeNoneText,
-	refresherUpdateTimeTodayText,
-	refresherUpdateTimeYesterdayText,
-	loadingMoreDefaultText,
-	loadingMoreLoadingText,
-	loadingMoreNoMoreText,
-	loadingMoreFailText,
-	emptyViewText,
-	emptyViewReloadText,
-	emptyViewErrorText,
-	getLanguage,
-	getLanguageName,
-	setLanguage,
-	_getPrivateLanguage,
-}

+ 0 - 3120
uni_modules/z-paging/components/z-paging/js/z-paging-main.js

@@ -1,3120 +0,0 @@
-// [z-paging]核心js
-
-import zStatic from './z-paging-static'
-import zConfig from './z-paging-config'
-import zLocalConfig from '../config/index'
-import zUtils from './z-paging-utils'
-import zI18n from './z-paging-i18n'
-import zPagingRefresh from '../components/z-paging-refresh'
-import zPagingLoadMore from '../components/z-paging-load-more'
-import zPagingEmptyView from '../../z-paging-empty-view/z-paging-empty-view'
-
-import Enum from './z-paging-enum'
-
-const currentVersion = 'V2.0.9';
-const systemInfo = uni.getSystemInfoSync();
-const commonDelayTime = 100;
-const i18nUpdateKey = 'z-paging-i18n-update';
-const errorUpdateKey = 'z-paging-error-emit';
-let config = null;
-// #ifdef APP-NVUE
-const weexDom = weex.requireModule('dom');
-const weexAnimation = weex.requireModule('animation');
-// #endif
-
-/*
-当z-paging未使用uni_modules管理时,控制台会有警告:WARNING: Module not found: Error: Can't resolve '@/uni_modules/z-paging'...
-此时注释下方try中的代码即可
-*/
-try {
-	const contextKeys = require.context('@/uni_modules/z-paging', false, /\z-paging-config$/).keys();
-	if (contextKeys.length) {
-		const suffix = '.js';
-		config = require('@/uni_modules/z-paging/z-paging-config' + suffix);
-	}
-} catch {}
-
-//获取默认配置信息
-function _getConfig(key, defaultValue) {
-	if (!config) {
-		if (zLocalConfig && Object.keys(zLocalConfig).length) {
-			config = zLocalConfig;
-		} else {
-			const temConfig = zConfig.getConfig();
-			if (zConfig && temConfig) {
-				config = temConfig;
-			}
-		}
-	}
-	if (!config) {
-		return defaultValue;
-	}
-	let value = config[toKebab(key)];
-	if (value === undefined) {
-		value = config[key];
-	}
-	if (value !== undefined) {
-		return value;
-	}
-	return defaultValue;
-}
-//驼峰转短横线
-function toKebab(value) {
-	return value.replace(/([A-Z])/g, "-$1").toLowerCase();
-}
-
-export default {
-	name: "z-paging",
-	components: {
-		zPagingRefresh,
-		zPagingLoadMore,
-		zPagingEmptyView
-	},
-	data() {
-		return {
-			//--------------静态资源---------------
-			base64Arrow: zStatic.base64Arrow,
-			base64Flower: zStatic.base64Flower,
-			base64BackToTop: zStatic.base64BackToTop,
-
-			//-------------全局数据相关--------------
-			currentData: [],
-			totalData: [],
-			realTotalData: [],
-			totalLocalPagingList: [],
-			pageNo: 1,
-			scrollTop: 0,
-			oldScrollTop: 0,
-			refresherTouchstartY: 0,
-			lastRefresherTouchmove: null,
-			refresherReachMaxAngle: true,
-			refresherTransform: 'translateY(0px)',
-			refresherTransition: '',
-			finalRefresherDefaultStyle: 'black',
-			//当前加载类型 0-下拉刷新 1-上拉加载更多
-			loadingType: Enum.LoadingType.Refresher,
-			//底部加载更多状态 0-默认状态 1.加载中 2.没有更多数据 3.加载失败
-			loadingStatus: Enum.LoadingMoreStatus.Default,
-			//下拉刷新状态 0-默认状态 1.松手立即刷新 2.刷新中
-			refresherStatus: Enum.RefresherStatus.Default,
-			scrollViewStyle: {},
-			scrollViewInStyle: {},
-			pullDownTimeStamp: 0,
-			requestTimeStamp: 0,
-			pageScrollTop: -1,
-			chatRecordLoadingMoreText: '',
-			moveDistance: 0,
-			loadingMoreDefaultSlot: null,
-			backToTopClass: 'zp-back-to-top zp-back-to-top-hide',
-			tempLanguageUpdateKey: 0,
-			wxsPropType: '',
-			refresherRevealStackCount: 0,
-			renderPropScrollTop: -1,
-			renderPropUsePageScroll: -1,
-			checkScrolledToBottomTimeOut: null,
-			refresherCompleteTimeout: null,
-			refresherCompleteSubTimeout: null,
-			lastBackToTopShowTime: 0,
-			systemInfo: null,
-
-			//--------------状态&判断---------------
-			showLoadingMore: false,
-			insideOfPaging: -1,
-			refresherTriggered: false,
-			loading: false,
-			firstPageLoaded: false,
-			pagingLoaded: false,
-			loaded: false,
-			isUserReload: true,
-			scrollEnable: true,
-			isTouchmoving: false,
-			isLocalPaging: false,
-			isAddedData: false,
-			isTotalChangeFromAddData: false,
-			isTouchEnded: false,
-			isUserPullDown: false,
-			privateRefresherEnabled: -1,
-			privateScrollWithAnimation: -1,
-			privateConcat: true,
-			myParentQuery: -1,
-			showBackToTopClass: false,
-			isLoadFailed: false,
-			isIos: systemInfo.platform === 'ios',
-			privateShowRefresherWhenReload: false,
-			disabledBounce: false,
-			cacheScrollNodeHeight: -1,
-			customNoMore: -1,
-			customRefresherHeight: -1,
-			showCustomRefresher: false,
-			fromEmptyViewReload: false,
-			doRefreshAnimateAfter: false,
-			isRefresherInComplete: false,
-			isIos13: systemInfo.system && systemInfo.system.length && systemInfo.system.indexOf('iOS 13') != -1,
-
-			//--------------nvue相关---------------
-			nRefresherLoading: false,
-			nListIsDragging: false,
-			nShowBottom: true,
-			nFixFreezing: false,
-			nShowRefresherReveal: false,
-			nIsFirstPageAndNoMore: false,
-			nFirstPageAndNoMoreChecked: false,
-			nLoadingMoreFixedHeight: false,
-			nShowRefresherRevealHeight: 0,
-
-			//---------------wxs相关---------------
-			wxsIsScrollTopInTopRange: true,
-			wxsScrollTop: 0,
-			wxsPageScrollTop: 0,
-			wxsOnPullingDown: false,
-		};
-	},
-	props: {
-		//自定义pageNo,默认为1
-		defaultPageNo: {
-			type: [Number, String],
-			default: _getConfig('defaultPageNo', 1),
-			observer: function(newVal, oldVal) {
-				this.pageNo = newVal;
-			},
-		},
-		//自定义pageSize,默认为10
-		defaultPageSize: {
-			type: [Number, String],
-			default: _getConfig('defaultPageSize', 10),
-		},
-		//为保证数据一致,设置当前tab切换时的标识key,并在complete中传递相同key,若二者不一致,则complete将不会生效
-		dataKey: {
-			type: [Number, Object],
-			default: function() {
-				return _getConfig('dataKey', null);
-			},
-		},
-		//自动注入的list名,可自动修改父view(包含ref="paging")中对应name的list值
-		autowireListName: {
-			type: String,
-			default: function() {
-				return _getConfig('autowireListName', '');
-			},
-		},
-		//自动注入的query名,可自动调用父view(包含ref="paging")中的query方法
-		autowireQueryName: {
-			type: String,
-			default: function() {
-				return _getConfig('autowireQueryName', '');
-			},
-		},
-		//调用complete后延迟处理的时间,单位为毫秒,默认0毫秒,优先级高于minDelay
-		delay: {
-			type: [Number, String],
-			default: _getConfig('delay', 0),
-		},
-		//触发@query后最小延迟处理的时间,单位为毫秒,默认0毫秒,优先级低于delay(假设设置为300毫秒,若分页请求时间小于300毫秒,则在调用complete后延迟[300毫秒-请求时长];若请求时长大于300毫秒,则不延迟),当show-refresher-when-reload为true或reload(true)时,其最小值为400
-		minDelay: {
-			type: [Number, String],
-			default: _getConfig('minDelay', 0),
-		},
-		//i18n国际化设置语言,支持简体中文(zh-cn)、繁体中文(zh-hant-cn)和英文(en)
-		language: {
-			type: String,
-			default: _getConfig('language', '')
-		},
-		//i18n国际化默认是否跟随系统语言,默认为是
-		followSystemLanguage: {
-			type: Boolean,
-			default: _getConfig('followSystemLanguage', true)
-		},
-		//设置z-paging的style,部分平台(如微信小程序)无法直接修改组件的style,可使用此属性代替
-		pagingStyle: {
-			type: Object,
-			default: function() {
-				return _getConfig('pagingStyle', {});
-			},
-		},
-		//z-paging的高度,优先级低于pagingStyle中设置的height;传字符串,如100px、100rpx、100%
-		height: {
-			type: String,
-			default: _getConfig('height', '')
-		},
-		//z-paging的宽度,优先级低于pagingStyle中设置的width;传字符串,如100px、100rpx、100%
-		width: {
-			type: String,
-			default: _getConfig('width', '')
-		},
-		//z-paging的背景色,优先级低于pagingStyle中设置的background-color。传字符串,如"#ffffff"
-		bgColor: {
-			type: String,
-			default: _getConfig('bgColor', '')
-		},
-		//设置z-paging的容器(插槽的父view)的style
-		pagingContentStyle: {
-			type: Object,
-			default: function() {
-				return _getConfig('pagingContentStyle', {});
-			},
-		},
-		//z-paging是否自动高度,若自动高度则会自动铺满屏幕
-		autoHeight: {
-			type: Boolean,
-			default: _getConfig('autoHeight', false)
-		},
-		//z-paging是否自动高度时,附加的高度,注意添加单位px或rpx,若需要减少高度,则传负数
-		autoHeightAddition: {
-			type: [Number, String],
-			default: _getConfig('autoHeightAddition', '0px')
-		},
-		//loading(下拉刷新、上拉加载更多)的主题样式,支持black,white,默认black
-		defaultThemeStyle: {
-			type: String,
-			default: function() {
-				return _getConfig('defaultThemeStyle', 'black');
-			}
-		},
-		//下拉刷新的主题样式,支持black,white,默认black
-		refresherThemeStyle: {
-			type: String,
-			default: function() {
-				return _getConfig('refresherThemeStyle', '');
-			}
-		},
-		//自定义下拉刷新中左侧图标的样式
-		refresherImgStyle: {
-			type: Object,
-			default: function() {
-				return _getConfig('refresherImgStyle', {});
-			}
-		},
-		//自定义下拉刷新中右侧状态描述文字的样式
-		refresherTitleStyle: {
-			type: Object,
-			default: function() {
-				return _getConfig('refresherTitleStyle', {});
-			}
-		},
-		//自定义下拉刷新中右侧最后更新时间文字的样式(show-refresher-update-time为true时有效)
-		refresherUpdateTimeStyle: {
-			type: Object,
-			default: function() {
-				return _getConfig('refresherUpdateTimeStyle', {});
-			}
-		},
-		//底部加载更多的主题样式,支持black,white,默认black
-		loadingMoreThemeStyle: {
-			type: String,
-			default: function() {
-				return _getConfig('loadingMoreThemeStyle', '');
-			}
-		},
-		//是否只使用下拉刷新,设置为true后将关闭mounted自动请求数据、关闭滚动到底部加载更多,强制隐藏空数据图。默认为否
-		refresherOnly: {
-			type: Boolean,
-			default: _getConfig('refresherOnly', false)
-		},
-		//自定义下拉刷新结束以后延迟回弹的时间,单位为毫秒,默认为0
-		refresherCompleteDelay: {
-			type: [Number, String],
-			default: _getConfig('refresherCompleteDelay', 0)
-		},
-		//自定义下拉刷新结束回弹动画时间,单位为毫秒,默认为300毫秒(refresherEndBounceEnabled为false时,refresherCompleteDuration为设定值的1/3),nvue无效
-		refresherCompleteDuration: {
-			type: [Number, String],
-			default: _getConfig('refresherCompleteDuration', 300)
-		},
-		//使用页面滚动,默认为否,当设置为是时则使用页面的滚动而非此组件内部的scroll-view的滚动,使用页面滚动时z-paging无需设置确定的高度且对于长列表展示性能更高,但配置会略微繁琐
-		usePageScroll: {
-			type: Boolean,
-			default: _getConfig('usePageScroll', false)
-		},
-		//z-paging是否使用fixed布局,若使用fixed布局,则z-paging的父view无需固定高度,z-paging高度默认为100%,默认为否(当使用内置scroll-view滚动时有效)
-		fixed: {
-			type: Boolean,
-			default: _getConfig('fixed', true)
-		},
-		//是否开启底部安全区域适配
-		safeAreaInsetBottom: {
-			type: Boolean,
-			default: _getConfig('safeAreaInsetBottom', false)
-		},
-		//是否可以滚动,使用内置scroll-view和nvue时有效,默认为是
-		scrollable: {
-			type: Boolean,
-			default: _getConfig('scrollable', true)
-		},
-		//z-paging mounted后自动调用reload方法(mounted后自动调用接口),默认为是。请使用简便写法:auto
-		mountedAutoCallReload: {
-			type: Boolean,
-			default: _getConfig('mountedAutoCallReload', true)
-		},
-		//z-paging mounted后自动调用reload方法(mounted后自动调用接口),默认为是
-		auto: {
-			type: Boolean,
-			default: _getConfig('auto', true)
-		},
-		//reload时自动滚动到顶部,默认为是
-		autoScrollToTopWhenReload: {
-			type: Boolean,
-			default: _getConfig('autoScrollToTopWhenReload', true)
-		},
-		//reload时立即自动清空原list,默认为是,若立即自动清空,则在reload之后、请求回调之前页面是空白的
-		autoCleanListWhenReload: {
-			type: Boolean,
-			default: _getConfig('autoCleanListWhenReload', true)
-		},
-		//调用reload方法时自动显示下拉刷新view,默认为否
-		showRefresherWhenReload: {
-			type: Boolean,
-			default: _getConfig('showRefresherWhenReload', false)
-		},
-		//调用reload方法时自动显示加载更多view,且为加载中状态,默认为否
-		showLoadingMoreWhenReload: {
-			type: Boolean,
-			default: _getConfig('showLoadingMoreWhenReload', false)
-		},
-		//是否使用自定义的下拉刷新,默认为是,即使用z-paging的下拉刷新。设置为false即代表使用uni scroll-view自带的下拉刷新,h5、App、微信小程序以外的平台不支持uni scroll-view自带的下拉刷新
-		useCustomRefresher: {
-			type: Boolean,
-			default: _getConfig('useCustomRefresher', true)
-		},
-		//自定义下拉刷新下拉帧率,默认为40,过高可能会出现抖动问题
-		refresherFps: {
-			type: [Number, String],
-			default: _getConfig('refresherFps', 40)
-		},
-		//自定义下拉刷新允许触发的最大下拉角度,默认为40度,当下拉角度小于设定值时,自定义下拉刷新动画不会被触发
-		refresherMaxAngle: {
-			type: [Number, String],
-			default: _getConfig('refresherMaxAngle', 40)
-		},
-		//自定义下拉刷新的角度由未达到最大角度变到达到最大角度时,是否继续下拉刷新手势,默认为否
-		refresherAngleEnableChangeContinued: {
-			type: Boolean,
-			default: _getConfig('refresherAngleEnableChangeContinued', false)
-		},
-		//自定义下拉刷新默认状态下的文字
-		refresherDefaultText: {
-			type: [String, Object],
-			default: _getConfig('refresherDefaultText', null)
-		},
-		//自定义下拉刷新松手立即刷新状态下的文字
-		refresherPullingText: {
-			type: [String, Object],
-			default: _getConfig('refresherPullingText', null)
-		},
-		//自定义下拉刷新刷新中状态下的文字
-		refresherRefreshingText: {
-			type: [String, Object],
-			default: _getConfig('refresherRefreshingText', null)
-		},
-		//自定义下拉刷新刷新结束状态下的文字
-		refresherCompleteText: {
-			type: [String, Object],
-			default: _getConfig('refresherCompleteText', null)
-		},
-		//是否开启自定义下拉刷新刷新结束回弹效果,默认为是
-		refresherEndBounceEnabled: {
-			type: Boolean,
-			default: _getConfig('refresherEndBounceEnabled', true)
-		},
-		//自定义底部加载更多样式
-		loadingMoreCustomStyle: {
-			type: Object,
-			default: function() {
-				return _getConfig('loadingMoreCustomStyle', {});
-			}
-		},
-		//自定义底部加载更多加载中动画样式
-		loadingMoreLoadingIconCustomStyle: {
-			type: Object,
-			default: function() {
-				return _getConfig('loadingMoreLoadingIconCustomStyle', {});
-			}
-		},
-		//自定义底部加载更多加载中动画图标类型,可选flower或circle,默认为flower
-		loadingMoreLoadingIconType: {
-			type: String,
-			default: _getConfig('loadingMoreLoadingIconType', 'flower')
-		},
-		//自定义底部加载更多加载中动画图标图片
-		loadingMoreLoadingIconCustomImage: {
-			type: String,
-			default: _getConfig('loadingMoreLoadingIconCustomImage', '')
-		},
-		//底部加载更多加载中view是否展示旋转动画,默认为是
-		loadingMoreLoadingAnimated: {
-			type: Boolean,
-			default: _getConfig('loadingMoreLoadingAnimated', true)
-		},
-		//是否启用加载更多数据(含滑动到底部加载更多数据和点击加载更多数据),默认为是
-		loadingMoreEnabled: {
-			type: Boolean,
-			default: _getConfig('loadingMoreEnabled', true)
-		},
-		//是否启用滑动到底部加载更多数据,默认为是
-		toBottomLoadingMoreEnabled: {
-			type: Boolean,
-			default: _getConfig('toBottomLoadingMoreEnabled', true)
-		},
-		//滑动到底部"默认"文字,默认为【点击加载更多】
-		loadingMoreDefaultText: {
-			type: [String, Object],
-			default: _getConfig('loadingMoreDefaultText', null)
-		},
-		//滑动到底部"加载中"文字,默认为【正在加载...】
-		loadingMoreLoadingText: {
-			type: [String, Object],
-			default: _getConfig('loadingMoreLoadingText', null)
-		},
-		//滑动到底部"没有更多"文字,默认为【没有更多了】
-		loadingMoreNoMoreText: {
-			type: [String, Object],
-			default: _getConfig('loadingMoreNoMoreText', null)
-		},
-		//滑动到底部"加载失败"文字,默认为【加载失败,点击重新加载】
-		loadingMoreFailText: {
-			type: [String, Object],
-			default: _getConfig('loadingMoreFailText', null)
-		},
-		//当没有更多数据且分页内容未超出z-paging时是否隐藏没有更多数据的view,默认为否
-		hideLoadingMoreWhenNoMoreAndInsideOfPaging: {
-			type: Boolean,
-			default: _getConfig('hideLoadingMoreWhenNoMoreAndInsideOfPaging', false)
-		},
-		//当没有更多数据且分页数组长度少于这个值时,隐藏没有更多数据的view,默认为0,代表不限制。
-		hideLoadingMoreWhenNoMoreByLimit: {
-			type: Number,
-			default: _getConfig('hideLoadingMoreWhenNoMoreByLimit', 0)
-		},
-		//当分页未满一屏时,是否自动加载更多,默认为否(nvue无效)
-		insideMore: {
-			type: Boolean,
-			default: _getConfig('insideMore', false)
-		},
-		//是否显示默认的加载更多text,默认为是
-		showDefaultLoadingMoreText: {
-			type: Boolean,
-			default: _getConfig('showDefaultLoadingMoreText', true)
-		},
-		//是否显示没有更多数据的view
-		showLoadingMoreNoMoreView: {
-			type: Boolean,
-			default: _getConfig('showLoadingMoreNoMoreView', true)
-		},
-		//是否显示没有更多数据的分割线,默认为是
-		showLoadingMoreNoMoreLine: {
-			type: Boolean,
-			default: _getConfig('showLoadingMoreNoMoreLine', true)
-		},
-		//自定义底部没有更多数据的分割线样式
-		loadingMoreNoMoreLineCustomStyle: {
-			type: Object,
-			default: function() {
-				return _getConfig('loadingMoreNoMoreLineCustomStyle', {});
-			},
-		},
-		//是否强制隐藏空数据图,默认为否
-		hideEmptyView: {
-			type: Boolean,
-			default: _getConfig('hideEmptyView', false)
-		},
-		//空数据图描述文字,默认为“没有数据哦~”
-		emptyViewText: {
-			type: [String, Object],
-			default: _getConfig('emptyViewText', null)
-		},
-		//是否显示空数据图重新加载按钮(无数据时),默认为否
-		showEmptyViewReload: {
-			type: Boolean,
-			default: _getConfig('showEmptyViewReload', false)
-		},
-		//加载失败时是否显示空数据图重新加载按钮,默认为是
-		showEmptyViewReloadWhenError: {
-			type: Boolean,
-			default: _getConfig('showEmptyViewReloadWhenError', true)
-		},
-		//空数据图点击重新加载文字,默认为“重新加载”
-		emptyViewReloadText: {
-			type: [String, Object],
-			default: _getConfig('emptyViewReloadText', null)
-		},
-		//空数据图图片,默认使用z-paging内置的图片
-		emptyViewImg: {
-			type: String,
-			default: _getConfig('emptyViewImg', '')
-		},
-		//空数据图“加载失败”描述文字,默认为“很抱歉,加载失败”
-		emptyViewErrorText: {
-			type: [String, Object],
-			default: _getConfig('emptyViewErrorText', null)
-		},
-		//空数据图“加载失败”图片,默认使用z-paging内置的图片
-		emptyViewErrorImg: {
-			type: String,
-			default: _getConfig('emptyViewErrorImg', '')
-		},
-		//空数据图样式
-		emptyViewStyle: {
-			type: Object,
-			default: function() {
-				return _getConfig('emptyViewStyle', {});
-			}
-		},
-        //空数据图容器样式
-        emptyViewSuperStyle: {
-        	type: Object,
-        	default: function() {
-        		return _getConfig('emptyViewSuperStyle', {});
-        	}
-        },
-		//空数据图img样式
-		emptyViewImgStyle: {
-			type: Object,
-			default: function() {
-				return _getConfig('emptyViewImgStyle', {});
-			}
-		},
-		//空数据图描述文字样式
-		emptyViewTitleStyle: {
-			type: Object,
-			default: function() {
-				return _getConfig('emptyViewTitleStyle', {});
-			}
-		},
-		//空数据图重新加载按钮样式
-		emptyViewReloadStyle: {
-			type: Object,
-			default: function() {
-				return _getConfig('emptyViewReloadStyle', {});
-			}
-		},
-		//空数据图片是否铺满z-paging,默认为是。若设置为否,则为填充满z-paging的剩余部分
-		emptyViewFixed: {
-			type: Boolean,
-			default: function() {
-				return _getConfig('emptyViewFixed', true)
-			}
-		},
-		//空数据图片是否垂直居中,默认为是。emptyViewFixed为false时有效
-		emptyViewCenter: {
-			type: Boolean,
-			default: function() {
-				return _getConfig('emptyViewCenter', true)
-			}
-		},
-		//加载中时是否自动隐藏空数据图,默认为是
-		autoHideEmptyViewWhenLoading: {
-			type: Boolean,
-			default: _getConfig('autoHideEmptyViewWhenLoading', true)
-		},
-		//用户下拉列表触发下拉刷新加载中时是否自动隐藏空数据图,默认为是
-		autoHideEmptyViewWhenPull: {
-			type: Boolean,
-			default: _getConfig('autoHideEmptyViewWhenPull', true)
-		},
-		//第一次加载后自动隐藏loading slot,默认为是
-		autoHideLoadingAfterFirstLoaded: {
-			type: Boolean,
-			default: _getConfig('autoHideLoadingAfterFirstLoaded', true)
-		},
-		//loading slot是否铺满屏幕并固定,默认为否
-		loadingFullFixed: {
-			type: Boolean,
-			default: _getConfig('loadingFullFixed', false)
-		},
-		//自动显示点击返回顶部按钮,默认为否
-		autoShowBackToTop: {
-			type: Boolean,
-			default: _getConfig('autoShowBackToTop', false)
-		},
-		//点击返回顶部按钮显示/隐藏的阈值(滚动距离),单位为px,默认为400rpx
-		backToTopThreshold: {
-			type: [Number, String],
-			default: _getConfig('backToTopThreshold', '400rpx')
-		},
-		//点击返回顶部按钮的自定义图片地址,默认使用z-paging内置的图片
-		backToTopImg: {
-			type: String,
-			default: _getConfig('backToTopImg', '')
-		},
-		//点击返回顶部按钮返回到顶部时是否展示过渡动画,默认为是
-		backToTopWithAnimate: {
-			type: Boolean,
-			default: _getConfig('backToTopWithAnimate', true)
-		},
-		//点击返回顶部按钮与底部的距离,注意添加单位px或rpx,默认为160rpx
-		backToTopBottom: {
-			type: [Number, String],
-			default: _getConfig('backToTopBottom', '160rpx')
-		},
-		//点击返回顶部按钮的自定义样式
-		backToTopStyle: {
-			type: Object,
-			default: function() {
-				return _getConfig('backToTopStyle', {});
-			},
-		},
-		//控制是否出现滚动条,默认为是
-		showScrollbar: {
-			type: Boolean,
-			default: _getConfig('showScrollbar', true)
-		},
-		//是否允许横向滚动,默认为否
-		scrollX: {
-			type: Boolean,
-			default: _getConfig('scrollX', false)
-		},
-		//iOS设备上滚动到顶部时是否允许回弹效果,默认为否。关闭回弹效果后可使滚动到顶部与下拉刷新更连贯,但是有吸顶view时滚动到顶部时可能出现抖动。
-		scrollToTopBounceEnabled: {
-			type: Boolean,
-			default: _getConfig('scrollToTopBounceEnabled', false)
-		},
-		//iOS设备上滚动到底部时是否允许回弹效果,默认为是。
-		scrollToBottomBounceEnabled: {
-			type: Boolean,
-			default: _getConfig('scrollToBottomBounceEnabled', true)
-		},
-		//在设置滚动条位置时使用动画过渡,默认为否
-		scrollWithAnimation: {
-			type: Boolean,
-			default: _getConfig('scrollWithAnimation', false)
-		},
-		//值应为某子元素id(id不能以数字开头)。设置哪个方向可滚动,则在哪个方向滚动到该元素
-		scrollIntoView: {
-			type: String,
-			default: _getConfig('scrollIntoView', '')
-		},
-		//距底部/右边多远时(单位px),触发 scrolltolower 事件,默认为100rpx
-		lowerThreshold: {
-			type: [Number, String],
-			default: _getConfig('lowerThreshold', '100rpx')
-		},
-		//iOS点击顶部状态栏、安卓双击标题栏时,滚动条返回顶部,只支持竖向,默认为是
-		enableBackToTop: {
-			type: Boolean,
-			default: _getConfig('enableBackToTop', true)
-		},
-		//是否开启自定义下拉刷新,默认为是
-		refresherEnabled: {
-			type: Boolean,
-			default: _getConfig('refresherEnabled', true)
-		},
-		//设置自定义下拉刷新阈值,默认为80rpx
-		refresherThreshold: {
-			type: [Number, String],
-			default: _getConfig('refresherThreshold', '80rpx')
-		},
-		//设置系统下拉刷新默认样式,支持设置 black,white,none,none 表示不使用默认样式,默认为black
-		refresherDefaultStyle: {
-			type: String,
-			default: _getConfig('refresherDefaultStyle', 'black')
-		},
-		//设置自定义下拉刷新区域背景
-		refresherBackground: {
-			type: String,
-			default: _getConfig('refresherBackground', '#ffffff00')
-		},
-		//设置固定的自定义下拉刷新区域背景
-		refresherFixedBackground: {
-			type: String,
-			default: _getConfig('refresherFixedBackground', '#ffffff00')
-		},
-		//设置固定的自定义下拉刷新区域高度,默认为0
-		refresherFixedBacHeight: {
-			type: [Number, String],
-			default: _getConfig('refresherFixedBacHeight', 0)
-		},
-		//设置自定义下拉刷新下拉超出阈值后继续下拉位移衰减的比例,范围0-1,值越大代表衰减越多。默认为0.7(nvue无效)
-		refresherOutRate: {
-			type: Number,
-			default: _getConfig('refresherOutRate', 0.7)
-		},
-		//是否显示最后更新时间,默认为否
-		showRefresherUpdateTime: {
-			type: Boolean,
-			default: _getConfig('showRefresherUpdateTime', false)
-		},
-		//如果需要区别不同页面的最后更新时间,请为不同页面的z-paging的`refresher-update-time-key`设置不同的字符串
-		refresherUpdateTimeKey: {
-			type: String,
-			default: _getConfig('refresherUpdateTimeKey', 'default')
-		},
-		//本地分页时上拉加载更多延迟时间,单位为毫秒,默认200毫秒
-		localPagingLoadingTime: {
-			type: [Number, String],
-			default: _getConfig('localPagingLoadingTime', 200)
-		},
-		//使用聊天记录模式,默认为否
-		useChatRecordMode: {
-			type: Boolean,
-			default: _getConfig('useChatRecordMode', false)
-		},
-		//slot="top"的view的z-index,默认为99,仅使用页面滚动时有效
-		topZIndex: {
-			type: Number,
-			default: _getConfig('topZIndex', 99)
-		},
-		//z-paging内容容器父view的z-index,默认为1
-		superContentZIndex: {
-			type: Number,
-			default: _getConfig('superContentZIndex', 1)
-		},
-		//z-paging内容容器部分的z-index,默认为10
-		contentZIndex: {
-			type: Number,
-			default: _getConfig('contentZIndex', 10)
-		},
-		//空数据view的z-index,默认为9
-		emptyViewZIndex: {
-			type: Number,
-			default: _getConfig('emptyViewZIndex', 9)
-		},
-		//使用页面滚动时,是否在不满屏时自动填充满屏幕,默认为是
-		autoFullHeight: {
-			type: Boolean,
-			default: _getConfig('autoFullHeight', true)
-		},
-		//自动拼接complete中传过来的数组(使用聊天记录模式时无效)
-		concat: {
-			type: Boolean,
-			default: _getConfig('concat', true)
-		},
-		//nvue中修改列表类型,可选值有list、waterfall和scroller,默认为list
-		nvueListIs: {
-			type: String,
-			default: _getConfig('nvueListIs', 'list')
-		},
-		//nvue waterfall配置,仅在nvue中且nvueListIs=waterfall时有效,配置参数详情参见:https://uniapp.dcloud.io/component/waterfall
-		nvueWaterfallConfig: {
-			type: Object,
-			default: function() {
-				return _getConfig('nvueWaterfallConfig', {});
-			}
-		},
-		//nvue 控制是否回弹效果,iOS不支持动态修改
-		nvueBounce: {
-			type: Boolean,
-			default: _getConfig('nvueBounce', true)
-		},
-		//nvue中通过代码滚动到顶部/底部时,是否加快动画效果(无滚动动画时无效),默认为否
-		nvueFastScroll: {
-			type: Boolean,
-			default: _getConfig('nvueFastScroll', false)
-		},
-		//nvue中list的id
-		nvueListId: {
-			type: String,
-			default: _getConfig('nvueListId', '')
-		},
-		//nvue中refresh组件的样式
-		nvueRefresherStyle: {
-			type: Object,
-			default: function() {
-				return _getConfig('nvueRefresherStyle', {});
-			}
-		},
-		//是否隐藏nvue列表底部的tagView,此view用于标识滚动到底部位置,若隐藏则滚动到底部功能将失效,在nvue中实现吸顶+swiper功能时需将最外层z-paging的此属性设置为true。默认为否
-		hideNvueBottomTag: {
-			type: Boolean,
-			default: _getConfig('hideNvueBottomTag', false)
-		},
-		//是否将错误信息打印至控制台,默认为是
-		showConsoleError: {
-			type: Boolean,
-			default: _getConfig('showConsoleError', true)
-		},
-		//父组件v-model所绑定的list的值
-		value: {
-			type: Array,
-			default: function() {
-				return [];
-			}
-		}
-	},
-	mounted() {
-		this.wxsPropType = (new Date()).getTime().toString();
-		this.renderJsIgnore;
-		if (!this.refresherOnly && (this.mountedAutoCallReload && this.auto)) {
-			this.$nextTick(() => {
-				this._preReload();
-			})
-		}
-		this.$nextTick(() => {
-			this.systemInfo = uni.getSystemInfoSync();
-			if (!this.usePageScroll && this.autoHeight) {
-				this._setAutoHeight();
-			}
-			this.loaded = true;
-		})
-		this.updatePageScrollTopHeight();
-		this.updatePageScrollBottomHeight();
-		if (this.finalRefresherEnabled && this.useCustomRefresher) {
-			this.$nextTick(() => {
-				this.isTouchmoving = true;
-			})
-		}
-		uni.$on(i18nUpdateKey, () => {
-			this.tempLanguageUpdateKey = (new Date()).getTime();
-		})
-		uni.$on(errorUpdateKey, () => {
-			if (this.loading) {
-				this.complete(false);
-			}
-		})
-		// #ifdef APP-NVUE
-		if (!this.isIos && !this.useChatRecordMode) {
-			this.nLoadingMoreFixedHeight = true;
-		}
-		// #endif
-	},
-	destroyed() {
-		uni.$off(i18nUpdateKey);
-		uni.$off(errorUpdateKey);
-	},
-	watch: {
-		value(newVal, oldVal) {
-			let dataType = Object.prototype.toString.call(newVal);
-			if (dataType === '[object Undefined]') {
-				zUtils.consoleErr('v-model所绑定的值不存在!');
-				return;
-			}
-			if (dataType !== '[object Array]') {
-				zUtils.consoleErr('v-model所绑定的值必须为Array类型!');
-				return;
-			}
-			if (!zUtils.arrayIsEqual(newVal, this.totalData)) {
-				this.isTotalChangeFromAddData = true;
-				this.totalData = newVal;
-			}
-		},
-		totalData(newVal, oldVal) {
-			if ((!this.isUserReload || !this.autoCleanListWhenReload) && this.firstPageLoaded && !newVal.length &&
-				oldVal.length) {
-				return;
-			}
-			newVal = [...newVal];
-			if (this.autoFullHeight && this.usePageScroll && this.isTotalChangeFromAddData) {
-				// #ifndef APP-NVUE
-				this.$nextTick(() => {
-					this._checkScrollViewShouldFullHeight((scrollViewNode, pagingContainerNode) => {
-						this._preCheckShowLoadingMoreWhenNoMoreAndInsideOfPaging(newVal,
-							scrollViewNode,
-							pagingContainerNode)
-					});
-				})
-				// #endif
-				// #ifdef APP-NVUE
-				this._preCheckShowLoadingMoreWhenNoMoreAndInsideOfPaging(newVal)
-				// #endif
-			} else {
-				this._preCheckShowLoadingMoreWhenNoMoreAndInsideOfPaging(newVal)
-			}
-			if (!this.usePageScroll && (this.pageNo === this.defaultPageNo || this.defaultPageNo + 1)) {
-				setTimeout(() => {
-					this._checkScrollViewOutOfPage();
-				}, commonDelayTime)
-			}
-			this.realTotalData = newVal;
-			this.$emit('input', newVal);
-			this.$emit('update:list', newVal);
-			this.$emit('listChange', newVal);
-			this._callMyParentList(newVal);
-			this.firstPageLoaded = false;
-			this.isTotalChangeFromAddData = false;
-			this.$nextTick(() => {
-				this._getNodeClientRect('.zp-paging-container-content').then((res) => {
-					if (res) {
-						this.$emit('pagingContentHeightChanged', res[0].height);
-					}
-				});
-				// #ifdef APP-NVUE
-				if (this.useChatRecordMode && this.nIsFirstPageAndNoMore && this.pageNo === this
-					.defaultPageNo && !this.nFirstPageAndNoMoreChecked) {
-					this.nFirstPageAndNoMoreChecked = true;
-					this._scrollToBottom(false);
-				}
-				// #endif
-			})
-		},
-		currentData(newVal, oldVal) {
-			this._currentDataChange(newVal, oldVal);
-		},
-		loadingStatus(newVal, oldVal) {
-			this.$emit('loadingStatusChange', newVal);
-			// #ifdef APP-NVUE
-			if (this.useChatRecordMode) {
-				if (this.pageNo === this.defaultPageNo && newVal === Enum.LoadingMoreStatus.NoMore) {
-					this.nIsFirstPageAndNoMore = true;
-					return;
-				}
-			}
-			this.nIsFirstPageAndNoMore = false;
-			//  #endif
-		},
-		oldScrollTop(newVal, oldVal) {
-			if (!this.usePageScroll) {
-				this.$emit('scrollTopChange', newVal);
-				this.$emit('update:scrollTop', newVal);
-				this._checkShouldShowBackToTop(newVal, oldVal);
-				if (this.isIos) {
-					if (newVal > 5) {
-						this.wxsScrollTop = 6;
-					} else {
-						this.wxsScrollTop = 0;
-					}
-				} else {
-					this.wxsScrollTop = newVal;
-				}
-			}
-		},
-		pageScrollTop(newVal, oldVal) {
-			if (this.usePageScroll) {
-				this.$emit('scrollTopChange', newVal);
-				this.$emit('update:scrollTop', newVal);
-				this._checkShouldShowBackToTop(newVal, oldVal);
-				if (this.isIos) {
-					if (newVal > 5) {
-						this.wxsPageScrollTop = 6;
-					} else {
-						this.wxsPageScrollTop = 0;
-					}
-				} else {
-					this.wxsPageScrollTop = newVal;
-				}
-			}
-		},
-		defaultThemeStyle: {
-			handler(newVal) {
-				if (newVal.length) {
-					this.finalRefresherDefaultStyle = newVal;
-				}
-			},
-			immediate: true
-		},
-		usePageScroll: {
-			handler(newVal) {
-				this.$nextTick(() => {
-					this.renderPropUsePageScroll = newVal;
-				})
-				if (this.loaded && this.autoHeight) {
-					this._setAutoHeight(!newVal);
-				}
-			},
-			immediate: true
-		},
-		autoHeight(newVal, oldVal) {
-			if (this.loaded && !this.usePageScroll) {
-				this._setAutoHeight(newVal);
-			}
-		},
-		autoHeightAddition(newVal, oldVal) {
-			if (this.loaded && !this.usePageScroll && this.autoHeight) {
-				this._setAutoHeight(newVal);
-			}
-		},
-		refresherDefaultStyle: {
-			handler(newVal) {
-				if (newVal.length) {
-					this.finalRefresherDefaultStyle = newVal;
-				}
-			},
-			immediate: true
-		},
-		refresherStatus(newVal, oldVal) {
-			if (newVal !== oldVal) {
-				this.$emit('refresherStatusChange', newVal);
-				this.$emit('update:refresherStatus', newVal);
-			}
-		},
-		useChatRecordMode(newVal, oldVal) {
-			if (newVal) {
-				this.nLoadingMoreFixedHeight = false;
-			}
-		},
-		finalScrollTop(newVal, oldVal) {
-			if (!this.useChatRecordMode) {
-				if (newVal < 6) {
-					this.renderPropScrollTop = 0;
-				} else {
-					this.renderPropScrollTop = 10;
-				}
-			}
-		},
-		nIsFirstPageAndNoMore: {
-			handler(newVal) {
-				const cellStyle = !this.useChatRecordMode || newVal ? {} : {
-					transform: 'rotate(180deg)'
-				};
-				this.$emit('update:cellStyle', cellStyle);
-			},
-			immediate: true
-		}
-	},
-	computed: {
-		pageSize() {
-			return this.defaultPageSize;
-		},
-		pullDownDisTimeStamp() {
-			return 1000 / this.refresherFps;
-		},
-		finalRefresherEnabled() {
-			if (this.useChatRecordMode) {
-				return false;
-			}
-			if (this.privateRefresherEnabled === -1) {
-				return this.refresherEnabled;
-			}
-			return this.privateRefresherEnabled === 1;
-		},
-		finalScrollWithAnimation() {
-			if (this.privateScrollWithAnimation !== -1) {
-				const scrollWithAnimation = this.privateScrollWithAnimation === 1;
-				this.privateScrollWithAnimation = -1;
-				return scrollWithAnimation;
-			}
-			return this.scrollWithAnimation;
-		},
-		zPagingLoadMoreConfig() {
-			return {
-				status: this.loadingStatus,
-				defaultThemeStyle: this.finalLoadingMoreThemeStyle,
-				customStyle: this.loadingMoreCustomStyle,
-				iconCustomStyle: this.loadingMoreLoadingIconCustomStyle,
-				loadingIconType: this.loadingMoreLoadingIconType,
-				loadingIconCustomImage: this.loadingMoreLoadingIconCustomImage,
-				loadingAnimated: this.loadingMoreLoadingAnimated,
-				showNoMoreLine: this.showLoadingMoreNoMoreLine,
-				noMoreLineCustomStyle: this.loadingMoreNoMoreLineCustomStyle,
-				defaultText: this.finalLoadingMoreDefaultText,
-				loadingText: this.finalLoadingMoreLoadingText,
-				noMoreText: this.finalLoadingMoreNoMoreText,
-				failText: this.finalLoadingMoreFailText
-			};
-		},
-		zScopedSlots() {
-			return this.$scopedSlots;
-		},
-		finalNvueListIs() {
-			if (this.usePageScroll) {
-				return 'view';
-			}
-			const nvueListIsLowerCase = this.nvueListIs.toLowerCase();
-			if (nvueListIsLowerCase === 'list' || nvueListIsLowerCase === 'waterfall' || nvueListIsLowerCase ===
-				'scroller') {
-				return nvueListIsLowerCase;
-			}
-			return 'list';
-		},
-		finalNvueSuperListIs() {
-			if (this.usePageScroll) {
-				return 'view';
-			}
-			return 'scroller';
-		},
-		finalNvueRefresherEnabled() {
-			return this.finalNvueListIs !== 'view' && this.finalRefresherEnabled && !this.nShowRefresherReveal && !this.useChatRecordMode;
-		},
-		finalPagingStyle() {
-			let pagingStyle = this.pagingStyle;
-			if (!this.systemInfo) {
-				return pagingStyle;
-			}
-			const windowTop = this.systemInfo.windowTop;
-			const windowBottom = this.systemInfo.windowBottom;
-			if (!this.usePageScroll && this.fixed) {
-				if (windowTop && windowTop !== undefined && !pagingStyle.top) {
-					pagingStyle.top = windowTop + 'px';
-				}
-				if (!pagingStyle.bottom) {
-					let bottom = 0;
-					if (windowBottom && windowBottom !== undefined) {
-						bottom = windowBottom;
-					}
-					if (this.safeAreaInsetBottom) {
-						bottom += this.safeAreaBottom;
-					}
-					pagingStyle.bottom = bottom + 'px';
-				}
-			}
-			if (this.bgColor.length && !pagingStyle['background']) {
-				pagingStyle['background-color'] = this.bgColor;
-			}
-			if (this.height.length && !pagingStyle['height']) {
-				pagingStyle['height'] = this.height;
-			}
-			if (this.width.length && !pagingStyle['width']) {
-				pagingStyle['width'] = this.width;
-			}
-			return pagingStyle;
-		},
-		finalEnableBackToTop() {
-			if (this.usePageScroll) {
-				return false;
-			}
-			return this.enableBackToTop;
-		},
-		finalBackToTopThreshold() {
-			return zUtils.convertTextToPx(this.backToTopThreshold);
-		},
-		finalLowerThreshold() {
-			return zUtils.convertTextToPx(this.lowerThreshold);
-		},
-		finalRefresherThreshold() {
-			let refresherThreshold = this.refresherThreshold;
-			let idDefault = false;
-			if (refresherThreshold === '80rpx') {
-				idDefault = true;
-				if (this.showRefresherUpdateTime) {
-					refresherThreshold = '120rpx';
-				}
-			}
-			if (idDefault && this.customRefresherHeight > 0) {
-				return this.customRefresherHeight;
-			}
-			return zUtils.convertTextToPx(refresherThreshold);
-		},
-		finalRefresherFixedBacHeight() {
-			return zUtils.convertTextToPx(this.refresherFixedBacHeight);
-		},
-		finalScrollTop() {
-			if (this.usePageScroll) {
-				return this.pageScrollTop;
-			}
-			return this.oldScrollTop;
-		},
-		finalBackToTopStyle() {
-			let tempBackToTopStyle = this.backToTopStyle;
-			if (!tempBackToTopStyle.bottom) {
-				tempBackToTopStyle.bottom = this.windowBottom + zUtils.convertTextToPx(this.backToTopBottom) + 'px';
-			}
-			if(!tempBackToTopStyle.position){
-				tempBackToTopStyle.position = this.usePageScroll ? 'fixed': 'absolute';
-			}
-			return tempBackToTopStyle;
-		},
-		finalTempLanguage() {
-			if (this.language.length) {
-				return this.language;
-			}
-			return this.tempLanguage;
-		},
-		finalLanguage() {
-			let language = this.finalTempLanguage.toLowerCase();
-			return zI18n._getPrivateLanguage(language, this.followSystemLanguage);
-		},
-		finalRefresherDefaultText() {
-			return this._getI18nText('refresherDefaultText', this.refresherDefaultText);
-		},
-		finalRefresherPullingText() {
-			return this._getI18nText('refresherPullingText', this.refresherPullingText);
-		},
-		finalRefresherRefreshingText() {
-			return this._getI18nText('refresherRefreshingText', this.refresherRefreshingText);
-		},
-		finalRefresherCompleteText() {
-			return this._getI18nText('refresherCompleteText', this.refresherCompleteText);
-		},
-		finalLoadingMoreDefaultText() {
-			return this._getI18nText('loadingMoreDefaultText', this.loadingMoreDefaultText);
-		},
-		finalLoadingMoreLoadingText() {
-			return this._getI18nText('loadingMoreLoadingText', this.loadingMoreLoadingText);
-		},
-		finalLoadingMoreNoMoreText() {
-			return this._getI18nText('loadingMoreNoMoreText', this.loadingMoreNoMoreText);
-		},
-		finalLoadingMoreFailText() {
-			return this._getI18nText('loadingMoreFailText', this.loadingMoreFailText);
-		},
-		finalEmptyViewText() {
-			if (this.isLoadFailed) {
-				return this.finalEmptyViewErrorText;
-			} else {
-				return this._getI18nText('emptyViewText', this.emptyViewText);
-			}
-		},
-		finalEmptyViewReloadText() {
-			return this._getI18nText('emptyViewReloadText', this.emptyViewReloadText);
-		},
-		finalEmptyViewErrorText() {
-			return this._getI18nText('emptyViewErrorText', this.emptyViewErrorText);
-		},
-		finalEmptyViewImg() {
-			if (this.isLoadFailed) {
-				return this.emptyViewErrorImg;
-			} else {
-				return this.emptyViewImg;
-			}
-		},
-		finalShowEmptyViewReload() {
-			if (this.isLoadFailed) {
-				return this.showEmptyViewReloadWhenError;
-			} else {
-				return this.showEmptyViewReload;
-			}
-		},
-		finalRefresherThemeStyle() {
-			if (this.refresherThemeStyle.length) {
-				return this.refresherThemeStyle;
-			}
-			return this.defaultThemeStyle;
-		},
-		finalLoadingMoreThemeStyle() {
-			if (this.loadingMoreThemeStyle.length) {
-				return this.loadingMoreThemeStyle;
-			}
-			return this.defaultThemeStyle;
-		},
-		finalPagingContentStyle() {
-			if (this.contentZIndex != 1) {
-				this.pagingContentStyle['z-index'] = this.contentZIndex;
-				this.pagingContentStyle['position'] = 'relative';
-			}
-			return this.pagingContentStyle;
-		},
-		finalScrollViewStyle() {
-			if (this.superContentZIndex != 1) {
-				this.scrollViewStyle['z-index'] = this.superContentZIndex;
-				this.scrollViewStyle['position'] = 'relative';
-			}
-			return this.scrollViewStyle;
-		},
-		finalRefresherOutRate() {
-			if (this.refresherOutRate < 0) {
-				return 0;
-			}
-			if (this.refresherOutRate > 1) {
-				return 1;
-			}
-			return this.refresherOutRate;
-		},
-		finalRefresherTransform() {
-			if (this.refresherTransform === 'translateY(0px)') {
-				return 'none';
-			}
-			return this.refresherTransform;
-		},
-		finalConcat() {
-			return this.concat && this.privateConcat;
-		},
-		finalShowRefresherWhenReload() {
-			return this.showRefresherWhenReload || this.privateShowRefresherWhenReload;
-		},
-		finalRefresherTriggered() {
-			if(!(this.finalRefresherEnabled && !this.useCustomRefresher)){
-				return false;
-			}
-			return this.refresherTriggered;
-		},
-		showEmpty() {
-			if(this.refresherOnly || this.hideEmptyView || this.totalData.length){
-				return false;
-			}
-			if(this.autoHideEmptyViewWhenLoading){
-				if(this.isAddedData && !this.firstPageLoaded && !this.loading){
-					return true;
-				}
-			}else{
-				return true;
-			}
-			if(!this.autoHideEmptyViewWhenPull && !this.isUserReload){
-				return true;
-			}
-			return false;
-		},
-		showLoading() {
-			const showLoading = !this.firstPageLoaded && (this.autoHideLoadingAfterFirstLoaded ? (this
-				.fromEmptyViewReload ? true : !this.pagingLoaded) : true) && this.loading;
-			return showLoading;
-		},
-		tempLanguage() {
-			let systemLanguage = false;
-			const temp = this.tempLanguageUpdateKey;
-			if (this.followSystemLanguage) {
-				systemLanguage = systemInfo.language;
-			}
-			return uni.getStorageSync(i18nUpdateKey) || systemLanguage || 'zh-cn';
-		},
-		safeAreaBottom() {
-			if (!this.systemInfo) {
-				return 0;
-			}
-			let safeAreaBottom = 0;
-			// #ifdef MP-WEIXIN
-			safeAreaBottom = this.systemInfo.screenHeight - this.systemInfo.safeArea.bottom;
-			// #endif
-			// #ifdef APP-PLUS || H5
-			safeAreaBottom = this.systemInfo.safeAreaInsets.bottom || 0;
-			// #endif
-			return Math.abs(safeAreaBottom);
-		},
-		renderJsIgnore() {
-			if ((this.usePageScroll && this.useChatRecordMode) || !this.refresherEnabled || !this.useCustomRefresher) {
-				this.$nextTick(() => {
-					this.renderPropScrollTop = 10;
-				})
-			}
-			return 0;
-		},
-		windowHeight() {
-			if (!this.systemInfo) {
-				return 0;
-			}
-			return this.systemInfo.windowHeight;
-		},
-		windowTop() {
-			if (!this.systemInfo) {
-				return 0;
-			}
-			const windowTop = this.systemInfo.windowTop;
-			return windowTop || 0;
-		},
-		windowBottom() {
-			if (!this.systemInfo) {
-				return 0;
-			}
-			let windowBottom = this.systemInfo.windowBottom || 0;
-			if (this.safeAreaInsetBottom) {
-				windowBottom += this.safeAreaBottom;
-			}
-			return windowBottom;
-		},
-		showRefresher() {
-			const showRefresher = this.finalRefresherEnabled && this.useCustomRefresher && this.isTouchmoving;
-			// #ifndef APP-NVUE
-			if (this.customRefresherHeight === -1 && showRefresher) {
-				setTimeout(() => {
-					this.$nextTick(()=>{
-						this._updateCustomRefresherHeight();
-					})
-				}, 100)
-			}
-			// #endif
-			return showRefresher;
-		},
-		// #ifdef APP-NVUE
-		nWaterfallColumnCount() {
-			if (this.finalNvueListIs !== 'waterfall') {
-				return 0;
-			}
-			return this._getNvueWaterfallSingleConfig('column-count', 2);
-		},
-		nWaterfallColumnWidth() {
-			return this._getNvueWaterfallSingleConfig('column-width', 'auto');
-		},
-		nWaterfallColumnGap() {
-			return this._getNvueWaterfallSingleConfig('column-gap', 'normal');
-		},
-		nWaterfallLeftGap() {
-			return this._getNvueWaterfallSingleConfig('left-gap', 0);
-		},
-		nWaterfallRightGap() {
-			return this._getNvueWaterfallSingleConfig('right-gap', 0);
-		},
-		nViewIs() {
-			const finalNvueListIs = this.finalNvueListIs;
-			return finalNvueListIs === 'scroller' || finalNvueListIs === 'view' ? 'view' : finalNvueListIs ===
-				'waterfall' ? 'header' : 'cell';
-		},
-		nSafeAreaBottomHeight() {
-			return this.safeAreaInsetBottom ? this.safeAreaBottom : 0;
-		}
-		// #endif
-	},
-	methods: {
-		//请求结束(成功或者失败)调用此方法,将请求的结果传递给z-paging处理,第一个参数为请求结果数组,第二个参数为是否成功(默认是是)
-		complete(data, success = true) {
-			this.customNoMore = -1;
-			this.addData(data, success);
-		},
-		//简写,与complete完全相同
-		end(data, success = true) {
-			this.complete(data, success);
-		},
-		//【保证数据一致】请求结束(成功或者失败)调用此方法,将请求的结果传递给z-paging处理,第一个参数为请求结果数组,第二个参数为dataKey,需与:data-key绑定的一致,第三个参数为是否成功(默认为是)
-		completeByKey(data, dataKey = null, success = true) {
-			if (dataKey !== null && this.dataKey !== null && dataKey !== this.dataKey) {
-				return;
-			}
-			this.customNoMore = -1;
-			this.addData(data, success);
-		},
-		//简写,与completeByKey完全相同
-		endByKey(data, dataKey = null, success = true) {
-			this.completeByKey(data, dataKey, success);
-		},
-		//【通过totalCount判断是否有更多数据】请求结束(成功或者失败)调用此方法,将请求的结果传递给z-paging处理,第一个参数为请求结果数组,第二个参数为totalCount(列表总数),第三个参数为是否成功(默认为是)
-		completeByTotalCount(data, totalCount, success = true) {
-			if (totalCount == 'undefined') {
-				this.customNoMore = -1;
-			} else {
-				let dataTypeRes = this._checkDataType(data, success, false);
-				data = dataTypeRes.data;
-				success = dataTypeRes.success;
-				if (totalCount >= 0 && success) {
-					this.$nextTick(() => {
-						let nomore = true;
-						let realTotalDataCount = this.realTotalData.length;
-						if (this.pageNo == this.defaultPageNo) {
-							realTotalDataCount = 0;
-						}
-						let exceedCount = realTotalDataCount + data.length - totalCount;
-						if (exceedCount >= 0) {
-							nomore = false;
-							exceedCount = this.defaultPageSize - exceedCount;
-							if (exceedCount > 0 && exceedCount < data.length) {
-								data = data.splice(0, exceedCount);
-							}
-						}
-						this.completeByNoMore(data, nomore, success);
-					})
-					return;
-				}
-			}
-			this.addData(data, success);
-		},
-		//简写,与completeByTotalCount完全相同
-		completeByTotal(data, totalCount, success = true) {
-			this.completeByTotalCount(data, totalCount, success);
-		},
-		//简写,与completeByTotalCount完全相同
-		endByTotalCount(data, totalCount, success = true) {
-			this.completeByTotalCount(data, totalCount, success);
-		},
-		//简写,与completeByTotalCount完全相同
-		endByTotal(data, totalCount, success = true) {
-			this.completeByTotalCount(data, totalCount, success);
-		},
-		//【自行判断是否有更多数据】请求结束(成功或者失败)调用此方法,将请求的结果传递给z-paging处理,第一个参数为请求结果数组,第二个参数为是否有更多数据,第三个参数为是否成功(默认是是)
-		completeByNoMore(data, nomore, success = true) {
-			if (nomore != 'undefined') {
-				this.customNoMore = nomore == true ? 1 : 0;
-			}
-			this.addData(data, success);
-		},
-		//简写,与completeByNoMore完全相同
-		endByNoMore(data, nomore, success = true) {
-			this.completeByNoMore(data, nomore, success);
-		},
-		//与上方complete方法功能一致,新版本中设置服务端回调数组请使用complete方法
-		addData(data, success = true) {
-			const currentTimeStamp = Number((new Date()).getTime());
-			let addDataDalay = 0;
-			const disTime = currentTimeStamp - this.requestTimeStamp;
-			let minDelay = this.minDelay;
-			if(this.pageNo === this.defaultPageNo && this.finalShowRefresherWhenReload){
-				if(minDelay < 400){
-					minDelay = 400;
-				}
-			}
-			if(this.requestTimeStamp > 0 && disTime < minDelay){
-				addDataDalay = minDelay - disTime;
-			}
-			this.$nextTick(() => {
-				if (this.delay > 0) {
-					setTimeout(() => {
-						this._addData(data, success, false);
-					}, this.delay)
-				} else {
-					setTimeout(() => {
-						this._addData(data, success, false);
-					}, addDataDalay)
-				}
-			})
-		},
-		//设置i18n国际化语言
-		setI18n(language) {
-			zI18n.setLanguage(language);
-		},
-		//获取当前z-paging的语言
-		getLanguage() {
-			return this.finalLanguage;
-		},
-		//当前版本号
-		getVersion() {
-			return `z-paging ${currentVersion}`;
-		},
-		//添加聊天记录
-		addChatRecordData(data, toBottom = true, toBottomWithAnimate = true) {
-			let dataType = Object.prototype.toString.call(data);
-			if (dataType !== '[object Array]') {
-				data = [data];
-			}
-			if (!this.useChatRecordMode) {
-				return;
-			}
-			this.isTotalChangeFromAddData = true;
-			//#ifndef APP-NVUE
-			this.totalData = [...this.totalData, ...data];
-			//#endif
-			//#ifdef APP-NVUE
-			if (this.nIsFirstPageAndNoMore) {
-				this.totalData = [...this.totalData, ...data];
-			} else {
-				this.totalData = [...data, ...this.totalData];
-			}
-			//#endif
-			if (toBottom) {
-				setTimeout(() => {
-					//#ifndef APP-NVUE
-					this._scrollToBottom(toBottomWithAnimate);
-					//#endif
-					//#ifdef APP-NVUE
-					if (this.nIsFirstPageAndNoMore) {
-						this._scrollToBottom(toBottomWithAnimate);
-					} else {
-						this._scrollToTop(toBottomWithAnimate);
-					}
-					//#endif
-				}, commonDelayTime)
-			}
-		},
-		//从顶部添加数据,不会影响分页的pageNo和pageSize
-		addDataFromTop(data, toTop = true, toTopWithAnimate = true) {
-			let dataType = Object.prototype.toString.call(data);
-			if (dataType !== '[object Array]') {
-				data = [data];
-			}
-			this.totalData = [...data, ...this.totalData];
-			if (toTop) {
-				setTimeout(() => {
-					this._scrollToTop(toTopWithAnimate);
-				}, commonDelayTime)
-			}
-		},
-		//重新设置列表数据,调用此方法不会影响pageNo和pageSize,也不会触发请求。适用场景:当需要删除列表中某一项时,将删除对应项后的数组通过此方法传递给z-paging。(当出现类似的需要修改列表数组的场景时,请使用此方法,请勿直接修改page中:list.sync绑定的数组)
-		resetTotalData(data) {
-			if (data == undefined) {
-				if (this.showConsoleError) {
-					zUtils.consoleErr('方法resetTotalData参数缺失!');
-				}
-				return;
-			}
-			this.isTotalChangeFromAddData = true;
-			let dataType = Object.prototype.toString.call(data);
-			if (dataType !== '[object Array]') {
-				data = [data];
-			}
-			this.totalData = data;
-		},
-		//设置本地分页数据,请求结束(成功或者失败)调用此方法,将请求的结果传递给z-paging作分页处理(若调用了此方法,则上拉加载更多时内部会自动分页,不会触发@query所绑定的事件)
-		setLocalPaging(data, success = true) {
-			this.isLocalPaging = true;
-			this.$nextTick(() => {
-				this._addData(data, success, true);
-			})
-		},
-		//重新加载分页数据,pageNo会恢复为默认值,相当于下拉刷新的效果(animate为true时会展示下拉刷新动画,默认为false)
-		reload(animate = this.showRefresherWhenReload) {
-			if (animate) {
-				this.privateShowRefresherWhenReload = animate;
-				this.isUserPullDown = true;
-			}
-			this._preReload(animate, false);
-		},
-		//刷新列表数据,pageNo和pageSize不会重置,列表数据会重新从服务端获取。必须保证@query绑定的方法中的pageNo和pageSize和传给服务端的一致
-		refresh() {
-			if(!this.realTotalData.length){
-				this.reload();
-				return;
-			}
-			const disPageNo = this.pageNo - this.defaultPageNo + 1;
-			if (disPageNo >= 1) {
-				this.loading = true;
-				this.privateConcat = false;
-				const totalPageSize = disPageNo * this.pageSize;
-				this._emitQuery(this.defaultPageNo, totalPageSize);
-				this._callMyParentQuery(this.defaultPageNo, totalPageSize);
-			}
-		},
-		//清空分页数据
-		clean() {
-			this._reload(true);
-			this._addData([], true, false);
-		},
-		//手动触发滚动到顶部加载更多,聊天记录模式时有效
-		doChatRecordLoadMore() {
-			if (this.useChatRecordMode) {
-				this._onLoadingMore('click');
-			}
-		},
-		//手动触发上拉加载更多(非必须,可依据具体需求使用)
-		doLoadMore() {
-			this._onLoadingMore('toBottom');
-		},
-		//手动停止下拉刷新加载
-		endRefresh() {
-			this.refresherTriggered = false;
-		},
-		//滚动到顶部,animate为是否展示滚动动画,默认为是
-		scrollToTop(animate,checkReverse = true) {
-			// #ifdef APP-NVUE
-			if (checkReverse && this.useChatRecordMode) {
-				if(!this.nIsFirstPageAndNoMore){
-					this.scrollToBottom(animate, false);
-					return;
-				}
-			}
-			// #endif
-			this.$nextTick(() => {
-				this._scrollToTop(animate, false);
-				// #ifdef APP-NVUE
-				if (this.nvueFastScroll && animate) {
-					setTimeout(() => {
-						this._scrollToTop(false, false);
-					}, 150);
-				}
-				// #endif
-			})
-		},
-		//滚动到底部,animate为是否展示滚动动画,默认为是
-		scrollToBottom(animate,checkReverse = true) {
-			// #ifdef APP-NVUE
-			if (checkReverse && this.useChatRecordMode) {
-				if(!this.nIsFirstPageAndNoMore){
-					this.scrollToTop(animate, false);
-					return;
-				}
-			}
-			// #endif
-			this.$nextTick(() => {
-				this._scrollToBottom(animate);
-				// #ifdef APP-NVUE
-				if (this.nvueFastScroll && animate) {
-					setTimeout(() => {
-						this._scrollToBottom(false);
-					}, 150);
-				}
-				// #endif
-			})
-		},
-		//滚动到指定view(vue中有效)。sel为需要滚动的view的id值,不包含"#";offset为偏移量,单位为px;animate为是否展示滚动动画,默认为否
-		scrollIntoViewById(sel, offset, animate) {
-			this._scrollIntoView(sel, offset, animate);
-		},
-		//滚动到指定view(vue中有效)。nodeTop为需要滚动的view的top值(通过uni.createSelectorQuery()获取);offset为偏移量,单位为px;animate为是否展示滚动动画,默认为否
-		scrollIntoViewByNodeTop(nodeTop, offset, animate) {
-			this.scrollTop = this.oldScrollTop;
-			this.$nextTick(() => {
-				this._scrollIntoViewByNodeTop(nodeTop, offset, animate);
-			})
-		},
-		//滚动到指定view(nvue中有效)。index为需要滚动的view的index(第几个);offset为偏移量,单位为px;animate为是否展示滚动动画,默认为否
-		scrollIntoViewByIndex(index, offset, animate) {
-			this._scrollIntoView(index, offset, animate);
-		},
-		//滚动到指定view(nvue中有效)。view为需要滚动的view(通过`this.$refs.xxx`获取),不包含"#";offset为偏移量,单位为px;animate为是否展示滚动动画,默认为否
-		scrollIntoViewByView(view, offset, animate) {
-			this._scrollIntoView(view, offset, animate);
-		},
-		//当使用页面滚动并且自定义下拉刷新时,请在页面的onPageScroll中调用此方法,告知z-paging当前的pageScrollTop,否则会导致在任意位置都可以下拉刷新
-		updatePageScrollTop(value) {
-			if (value == undefined) {
-				//zUtils.consoleErr('updatePageScrollTop方法缺少参数,请将页面onPageScroll事件中的scrollTop传递给此方法');
-				return;
-			}
-			this.pageScrollTop = value;
-		},
-		//当使用页面滚动并且设置了slot="top"时,默认初次加载会自动获取其高度,并使内部容器下移,当slot="top"的view高度动态改变时,在其高度需要更新时调用此方法
-		updatePageScrollTopHeight() {
-			this._updatePageScrollTopOrBottomHeight('top');
-		},
-		//当使用页面滚动并且设置了slot="bottom"时,默认初次加载会自动获取其高度,并使内部容器下移,当slot="bottom"的view高度动态改变时,在其高度需要更新时调用此方法
-		updatePageScrollBottomHeight() {
-			this._updatePageScrollTopOrBottomHeight('bottom');
-		},
-		//更新z-paging内置scroll-view的scrollTop
-		updateScrollViewScrollTop(scrollTop, animate = true) {
-			this.privateScrollWithAnimation = animate ? 1 : 0;
-			this.scrollTop = this.oldScrollTop;
-			this.$nextTick(() => {
-				this.scrollTop = scrollTop;
-				this.oldScrollTop = this.scrollTop;
-			});
-		},
-		//设置nvue List的specialEffects
-		setSpecialEffects(args) {
-			this.setListSpecialEffects(args);
-		},
-		//与setSpecialEffects等效,兼容旧版本
-		setListSpecialEffects(args) {
-			this.nFixFreezing = args !== {};
-			if (this.isIos) {
-				this.privateRefresherEnabled = 0;
-			}
-			if (!this.usePageScroll) {
-				this.$refs['n-list'].setSpecialEffects(args);
-			}
-		},
-		handleRefresherStatusChanged(func) {
-			this.refresherStatusChangedFunc = func;
-		},
-		//------------------ 私有方法 -------------------
-		//reload之前的一些处理
-		_preReload(animate = this.showRefresherWhenReload, isFromMounted = true) {
-			this.isUserReload = true;
-			if (animate) {
-				this.privateShowRefresherWhenReload = animate;
-				// #ifndef APP-NVUE
-				if (this.useCustomRefresher) {
-					this._doRefresherRefreshAnimate();
-				} else {
-					this.refresherTriggered = true;
-				}
-				// #endif
-				// #ifdef APP-NVUE
-				this.refresherStatus = Enum.RefresherStatus.Loading;
-				this.refresherRevealStackCount++;
-				setTimeout(() => {
-					this._getNodeClientRect('zp-n-refresh-container', false).then((node) => {
-						if (node) {
-							let nodeHeight = node[0].height;
-							this.nShowRefresherReveal = true;
-							this.nShowRefresherRevealHeight = nodeHeight;
-							setTimeout(() => {
-								this._nDoRefresherEndAnimation(0, -nodeHeight, false, false);
-								setTimeout(() => {
-									this._nDoRefresherEndAnimation(nodeHeight, 0);
-								}, 10)
-							}, 10)
-							this._reload(false, isFromMounted);
-						} else {
-							this._reload(false, isFromMounted);
-						}
-					});
-				}, 10)
-				return;
-				// #endif
-			} else {
-				this._refresherEnd(false, false);
-			}
-			this._reload(false, isFromMounted);
-		},
-		//重新加载分页数据
-		_reload(isClean = false, isFromMounted = false) {
-			this.isAddedData = false;
-			this.cacheScrollNodeHeight = -1;
-			this.insideOfPaging = -1;
-			this.pageNo = this.defaultPageNo;
-			if (!isClean) {
-				this._startLoading(true);
-			}
-			this.firstPageLoaded = true;
-			this.isTotalChangeFromAddData = false;
-			this.totalData = [];
-			if (!isClean) {
-				this._emitQuery(this.pageNo, this.defaultPageSize);
-				let delay = 0;
-				// #ifdef MP-TOUTIAO
-				delay = 5;
-				// #endif
-				setTimeout(() => {
-					this._callMyParentQuery();
-				}, delay)
-				if (!isFromMounted && this.autoScrollToTopWhenReload) {
-					let checkedNRefresherLoading = true;
-					// #ifdef APP-NVUE
-					checkedNRefresherLoading = !this.nRefresherLoading;
-					// #endif
-					if (checkedNRefresherLoading) {
-						this._scrollToTop(false);
-					}
-				}
-				// #ifndef APP-NVUE
-				if (!this.usePageScroll && this.useChatRecordMode) {
-					if (this.showConsoleError) {
-						zUtils.consoleWarn('使用聊天记录模式时,建议使用页面滚动,可将usePageScroll设置为true以启用页面滚动!!');
-					}
-				}
-				// #endif
-			}
-			this.$nextTick(() => {
-				if (!this.realTotalData.length) {
-					// #ifdef APP-NVUE
-					this.nShowBottom = false;
-					// #endif
-				}
-			})
-		},
-		//处理服务端返回的数组
-		_addData(data, success, isLocal) {
-			this.isAddedData = true;
-			this.fromEmptyViewReload = false;
-			this.isTotalChangeFromAddData = true;
-			if (!this.useCustomRefresher) {
-				uni.stopPullDownRefresh();
-			}
-			// #ifdef APP-NVUE
-			if (this.usePageScroll) {
-				uni.stopPullDownRefresh();
-			}
-			// #endif
-			const tempIsUserPullDown = this.isUserPullDown;
-			if (this.finalShowRefresherWhenReload && this.pageNo === this.defaultPageNo) {
-				zUtils.setRefesrherTime((new Date()).getTime(), this.refresherUpdateTimeKey);
-				this.tempLanguageUpdateKey = (new Date()).getTime();
-				if (this.$refs.refresh) {
-					this.$refs.refresh.updateTime();
-				}
-			}
-			if (tempIsUserPullDown && this.pageNo === this.defaultPageNo) {
-				this.isUserPullDown = false;
-			}
-			let dataTypeRes = this._checkDataType(data, success, true);
-			data = dataTypeRes.data;
-			success = dataTypeRes.success;
-			if (this.refresherTriggered) {
-				this.refresherTriggered = false;
-			}
-			let delayTime = commonDelayTime;
-			// #ifdef APP-NVUE
-			if (this.useChatRecordMode) {
-				delayTime = 0
-			}
-			// #endif
-			setTimeout(() => {
-				this._refresherEnd(true, true, tempIsUserPullDown);
-				this.pagingLoaded = true;
-			}, delayTime)
-			if (this.pageNo === this.defaultPageNo) {
-				this.isLoadFailed = !success;
-			}
-			if (success) {
-				if (!(this.privateConcat === false && this.loadingStatus === Enum.LoadingMoreStatus.NoMore)) {
-					this.loadingStatus = Enum.LoadingMoreStatus.Default;
-				}
-				if (isLocal) {
-					this.totalLocalPagingList = data;
-					this._localPagingQueryList(this.defaultPageNo, this.defaultPageSize, 0, (res) => {
-						this.complete(res);
-					})
-				} else {
-					this._currentDataChange(data, this.currentData);
-				}
-			} else {
-				this._currentDataChange(data, this.currentData);
-				this.loadingStatus = Enum.LoadingMoreStatus.Fail;
-				if (this.loadingType === Enum.LoadingType.LoadingMore) {
-					this.pageNo--;
-				}
-			}
-		},
-		//当前数据改变时调用
-		_currentDataChange(newVal, oldVal) {
-			newVal = [...newVal];
-			// #ifndef APP-NVUE
-			if (this.useChatRecordMode) {
-				newVal.reverse();
-			}
-			// #endif
-			if (this.pageNo === this.defaultPageNo && this.finalConcat) {
-				this.totalData = [];
-			}
-			if (this.customNoMore !== -1) {
-				if (this.customNoMore === 0 || !newVal.length) {
-					this.loadingStatus = Enum.LoadingMoreStatus.NoMore;
-				}
-			} else {
-				if (!newVal.length ||
-					(newVal.length && newVal.length < this.defaultPageSize)) {
-					this.loadingStatus = Enum.LoadingMoreStatus.NoMore;
-				}
-			}
-			if (!this.totalData.length) {
-				if (this.finalConcat) {
-					// #ifdef APP-NVUE
-					if(this.useChatRecordMode && this.pageNo === this.defaultPageNo && this.loadingStatus === Enum.LoadingMoreStatus.NoMore){
-						newVal.reverse();
-					}
-					// #endif
-					this.totalData = newVal;
-				}
-				if (this.useChatRecordMode) {
-					// #ifndef APP-NVUE
-					this.$nextTick(() => {
-						this._scrollToBottom(false);
-					})
-					// #endif
-				}
-			} else {
-				if (this.useChatRecordMode) {
-					// #ifdef APP-NVUE
-					this.totalData = [...this.totalData, ...newVal];
-					// #endif
-					//#ifndef APP-NVUE
-					const idIndex = newVal.length;
-					let idIndexStr = `z-paging-${idIndex}`;
-					this.totalData = [...newVal, ...this.totalData];
-					if (this.pageNo !== this.defaultPageNo) {
-						this.privateScrollWithAnimation = 0;
-						let delayTime = 200;
-						//#ifdef H5
-						delayTime = 0;
-						//#endif
-						this.$emit('update:chatIndex', idIndex);
-						if (this.usePageScroll) {
-							this._scrollIntoView(idIndexStr, 30, false, () => {
-								this.$emit('update:chatIndex', 0);
-							});
-						} else {
-							setTimeout(() => {
-								this._scrollIntoView(idIndexStr, 30, false, () => {
-									this.$emit('update:chatIndex', 0);
-								});
-							}, delayTime)
-						}
-					} else {
-						this.$nextTick(() => {
-							this._scrollToBottom(false);
-						})
-					}
-					//#endif
-
-				} else {
-					if (this.finalConcat) {
-						this.totalData = [...this.totalData, ...newVal];
-					} else {
-						this.totalData = [...newVal];
-					}
-					
-				}
-			}
-			this.privateConcat = true;
-		},
-		//通过@scroll事件检测是否滚动到了底部
-		_checkScrolledToBottom(scrollDiff, checked = false) {
-			if (this.checkScrolledToBottomTimeOut) {
-				clearTimeout(this.checkScrolledToBottomTimeOut);
-				this.checkScrolledToBottomTimeOut = null;
-			}
-			if (this.cacheScrollNodeHeight === -1) {
-				this._getNodeClientRect('.zp-scroll-view').then((res) => {
-					if (res) {
-						let pageScrollNodeHeight = res[0].height;
-						this.cacheScrollNodeHeight = pageScrollNodeHeight;
-						if (scrollDiff - pageScrollNodeHeight <= this.finalLowerThreshold) {
-							this._onLoadingMore('toBottom');
-						}
-					}
-				});
-			} else {
-				if (scrollDiff - this.cacheScrollNodeHeight <= this.finalLowerThreshold) {
-					this._onLoadingMore('toBottom');
-				} else if (scrollDiff - this.cacheScrollNodeHeight <= 500 && !checked) {
-					this.checkScrolledToBottomTimeOut = setTimeout(() => {
-						this._getNodeClientRect('.zp-scroll-view', true, true).then((res) => {
-							this.oldScrollTop = res[0].scrollTop;
-							const newScrollDiff = res[0].scrollHeight - this.oldScrollTop;
-							this._checkScrolledToBottom(newScrollDiff, true);
-						})
-					}, 150)
-				}
-			}
-		},
-		//触发加载更多时调用,from:0-滑动到底部触发;1-点击加载更多触发
-		_onLoadingMore(from = 'click') {
-			if (from === 'toBottom') {
-				if (!this.scrollToBottomBounceEnabled) {
-					if (this.scrollEnable) {
-						this.scrollEnable = false;
-						this.$nextTick(() => {
-							this.scrollEnable = true;
-						})
-					}
-				}
-				//#ifdef APP-VUE || H5
-				if (this.isIos) {
-					this.renderPropUsePageScroll = -1;
-					this.$nextTick(() => {
-						this.renderPropUsePageScroll = this.usePageScroll;
-					})
-				}
-				//#endif
-			}
-			this.$emit('scrolltolower', from);
-			if (from === 'toBottom' && (!this.toBottomLoadingMoreEnabled || this.useChatRecordMode)) {
-				return;
-			}
-			if (this.refresherOnly || !this.loadingMoreEnabled || !(this.loadingStatus === Enum.LoadingMoreStatus
-					.Default || this.loadingStatus === Enum.LoadingMoreStatus.Fail) || this.loading)
-				return;
-			this._doLoadingMore();
-		},
-		//当滚动到顶部时
-		_scrollToUpper() {
-			this.$emit('scrolltoupper');
-			this.$emit('scrollTopChange', 0);
-			this.$nextTick(() => {
-				this.oldScrollTop = 0;
-			})
-			if (!this.useChatRecordMode) {
-				return;
-			}
-			if (this.loadingStatus === Enum.LoadingMoreStatus.NoMore) {
-				return;
-			}
-			this._onLoadingMore('click');
-		},
-		//点击返回顶部
-		_backToTopClick() {
-			if (!this.backToTopWithAnimate) {
-				this._checkShouldShowBackToTop(1, 0);
-			}
-			this.scrollToTop(this.backToTopWithAnimate);
-		},
-		//滚动到顶部
-		_scrollToTop(animate, isPrivate = true) {
-			// #ifdef APP-NVUE
-			const el = this.$refs['zp-n-list-top-tag'];
-			if (this.usePageScroll) {
-				this._getNodeClientRect('zp-page-scroll-top', false).then((node) => {
-					let nodeHeight = 0;
-					if (node) {
-						nodeHeight = node[0].height;
-					}
-					weexDom.scrollToElement(el, {
-						offset: -nodeHeight,
-						animated: animate
-					});
-				});
-			} else {
-				weexDom.scrollToElement(el, {
-					offset: 0,
-					animated: animate
-				});
-			}
-			return;
-			// #endif
-			if (this.usePageScroll) {
-				this.$nextTick(() => {
-					uni.pageScrollTo({
-						scrollTop: 0,
-						duration: animate ? 100 : 0,
-					});
-				});
-				return;
-			}
-			this.privateScrollWithAnimation = animate ? 1 : 0;
-			this.scrollTop = this.oldScrollTop;
-			this.$nextTick(() => {
-				this.scrollTop = 0;
-				this.oldScrollTop = this.scrollTop;
-			});
-		},
-		//滚动到底部
-		async _scrollToBottom(animate = true) {
-			// #ifdef APP-NVUE
-			const el = this.$refs['zp-n-list-bottom-tag'];
-			if (el) {
-				weexDom.scrollToElement(el, {
-					offset: 0,
-					animated: animate
-				});
-			} else {
-				zUtils.consoleErr('滚动到底部失败,因为您设置了hideNvueBottomTag为true');
-			}
-			return;
-			// #endif
-			if (this.usePageScroll) {
-				this.$nextTick(() => {
-					uni.pageScrollTo({
-						scrollTop: Number.MAX_VALUE,
-						duration: animate ? 100 : 0,
-					});
-				});
-				return;
-			}
-			try {
-				this.privateScrollWithAnimation = animate ? 1 : 0;
-				let pagingContainerH = 0;
-				let scrollViewH = 0;
-				const pagingContainerNode = await this._getNodeClientRect('.zp-paging-container');
-				const scrollViewNode = await this._getNodeClientRect('.zp-scroll-view');
-				if (pagingContainerNode) {
-					pagingContainerH = pagingContainerNode[0].height;
-				}
-				if (scrollViewNode) {
-					scrollViewH = scrollViewNode[0].height;
-				}
-				if (pagingContainerH > scrollViewH) {
-					this.scrollTop = this.oldScrollTop;
-					this.$nextTick(() => {
-						this.scrollTop = pagingContainerH - scrollViewH;
-						this.oldScrollTop = this.scrollTop;
-					});
-				}
-			} catch (e) {
-
-			}
-		},
-		//滚动到指定view
-		_scrollIntoView(sel, offset = 0, animate = false, finishCallback) {
-			try {
-				this.scrollTop = this.oldScrollTop;
-				this.$nextTick(() => {
-					// #ifdef APP-NVUE
-					const refs = this.$parent.$refs;
-					if (!refs) {
-						return;
-					}
-					const dataType = Object.prototype.toString.call(sel);
-					let el = null;
-					if (dataType === '[object Number]') {
-						const els = refs[`z-paging-${sel}`];
-						el = els ? els[0] : null;
-					} else if (dataType === '[object Array]') {
-						el = sel[0];
-					} else {
-						el = sel;
-					}
-					if (el) {
-						weexDom.scrollToElement(el, {
-							offset: -offset,
-							animated: animate
-						});
-					} else {
-						zUtils.consoleErr('在nvue中滚动到指定位置,cell必须设置 :ref="`z-paging-${index}`"');
-					}
-					return;
-					// #endif
-					if (sel.indexOf('#') != -1) {
-						sel = sel.replace('#', '');
-					}
-					this._getNodeClientRect('#' + sel, false).then((node) => {
-						if (node) {
-							let nodeTop = node[0].top;
-							this._scrollIntoViewByNodeTop(nodeTop, offset, animate);
-							if (finishCallback) {
-								finishCallback();
-							}
-						}
-					});
-				});
-			} catch (e) {
-
-			}
-		},
-		//通过nodeTop滚动到指定view
-		_scrollIntoViewByNodeTop(nodeTop, offset = 0, animate = false) {
-			this.privateScrollWithAnimation = animate ? 1 : 0;
-			if (this.usePageScroll) {
-				uni.pageScrollTo({
-					scrollTop: nodeTop - offset,
-					duration: animate ? 100 : 0
-				});
-			} else {
-				nodeTop = nodeTop + this.oldScrollTop;
-				this.scrollTop = nodeTop - offset;
-				this.oldScrollTop = this.scrollTop;
-			}
-		},
-		//是否要展示上拉加载更多view
-		_shouldShowLoadingMore(type) {
-			if (!(this.loadingStatus === Enum.LoadingMoreStatus.Default ? this.nShowBottom : true)) {
-				return false;
-			}
-			if (((!this.showLoadingMoreWhenReload || this.isUserPullDown || this.loadingStatus !== Enum
-						.LoadingMoreStatus.Loading) && !this
-					.showLoadingMore) || (!this.loadingMoreEnabled && (!this.showLoadingMoreWhenReload || this
-					.isUserPullDown || this.loadingStatus !== Enum.LoadingMoreStatus.Loading)) || this
-				.refresherOnly) {
-				return false;
-			}
-			
-			if (this.useChatRecordMode && type !== 'loadingMoreLoading') {
-				return false;
-			}
-			if (!this.$slots) {
-				return false;
-			}
-			if (type === 'loadingMoreDefault') {
-				const res = this.loadingStatus === Enum.LoadingMoreStatus.Default && this.$slots.loadingMoreDefault;
-				if (res) {
-					// #ifdef APP-NVUE
-					if (!this.isIos) {
-						this.nLoadingMoreFixedHeight = false;
-					}
-					//  #endif
-				}
-				return res;
-			} else if (type === 'loadingMoreLoading') {
-				const res = this.loadingStatus === Enum.LoadingMoreStatus.Loading && this.$slots.loadingMoreLoading;
-				if (res) {
-					// #ifdef APP-NVUE
-					if (!this.isIos) {
-						this.nLoadingMoreFixedHeight = false;
-					}
-					//  #endif
-				}
-				return res;
-			} else if (type === 'loadingMoreNoMore') {
-				const res = this.loadingStatus === Enum.LoadingMoreStatus.NoMore && this.$slots.loadingMoreNoMore &&
-					this.showLoadingMoreNoMoreView;
-				if (res) {
-					// #ifdef APP-NVUE
-					if (!this.isIos) {
-						this.nLoadingMoreFixedHeight = false;
-					}
-					//  #endif
-				}
-				return res;
-			} else if (type === 'loadingMoreFail') {
-				const res = this.loadingStatus === Enum.LoadingMoreStatus.Fail && this.$slots.loadingMoreFail;
-				if (res) {
-					// #ifdef APP-NVUE
-					if (!this.isIos) {
-						this.nLoadingMoreFixedHeight = false;
-					}
-					//  #endif
-				}
-				return res;
-			} else if (type === 'loadingMoreCustom') {
-				const res = this.showDefaultLoadingMoreText && !(this.loadingStatus === Enum.LoadingMoreStatus.NoMore &&
-					!this
-					.showLoadingMoreNoMoreView);
-				return res;
-			}
-			return false;
-		},
-		//处理开始加载更多状态
-		_startLoading(isReload = false) {
-			if ((this.showLoadingMoreWhenReload && !this.isUserPullDown) || !isReload) {
-				this.loadingStatus = Enum.LoadingMoreStatus.Loading;
-			}
-			this.loading = true;
-		},
-		//处理开始加载更多
-		_doLoadingMore() {
-			if (this.pageNo >= this.defaultPageNo && this.loadingStatus !== Enum.LoadingMoreStatus.NoMore) {
-				this.pageNo++;
-				this._startLoading(false);
-				if (this.isLocalPaging) {
-					this._localPagingQueryList(this.pageNo, this.defaultPageSize, this.localPagingLoadingTime, (
-						res) => {
-						this.addData(res);
-					})
-				} else {
-					this._emitQuery(this.pageNo, this.defaultPageSize);
-					this._callMyParentQuery();
-				}
-				this.loadingType = Enum.LoadingType.LoadingMore;
-			}
-		},
-		_scroll(e) {
-			this.$emit('scroll', e);
-			this.oldScrollTop = e.detail.scrollTop;
-			const scrollDiff = e.detail.scrollHeight - this.oldScrollTop;
-			if (!this.isIos) {
-				this._checkScrolledToBottom(scrollDiff);
-			}
-		},
-		_onRefresh(fromScrollView=false) {
-			if (fromScrollView){
-				if (!(this.finalRefresherEnabled && !this.useCustomRefresher)){
-					return;
-				}
-			}
-			this.$emit('onRefresh');
-			this.$emit('Refresh');
-			if (this.loading || this.isRefresherInComplete || this.nShowRefresherReveal) {
-				return;
-			}
-			this.isUserPullDown = true;
-			this.isUserReload = false;
-			this._startLoading(true);
-			this.refresherTriggered = true;
-			if (this.useChatRecordMode) {
-				this._onLoadingMore('click')
-			} else {
-				this._reload();
-			}
-			this.loadingType = Enum.LoadingType.Refresher;
-		},
-		//自定义下拉刷新被复位
-		_onRestore() {
-			this.refresherTriggered = 'restore';
-			this.$emit('onRestore');
-			this.$emit('Restore');
-		},
-		// #ifndef APP-VUE || MP-WEIXIN || MP-QQ || H5
-		//拖拽开始
-		_refresherTouchstart(e) {
-			if (this._getRefresherTouchDisabled()) {
-				return;
-			}
-			const touch = zUtils.getCommonTouch(e);
-			this._handleRefresherTouchstart(touch);
-		},
-		// #endif
-		//进一步处理拖拽开始结果
-		_handleRefresherTouchstart(touch) {
-			if (!this.loading && this.isTouchEnded) {
-				this.isTouchmoving = false;
-			}
-			this.isTouchEnded = false;
-			if (this.isIos13) {
-				this.refresherTransition = '';
-			} else {
-				this.refresherTransition = 'transform .1s linear';
-			}
-			this.refresherTouchstartY = touch.touchY;
-			this.$emit('refresherTouchstart', this.refresherTouchstartY);
-			this.lastRefresherTouchmove = touch;
-			this._cleanRefresherCompleteTimeout();
-		},
-		// #ifndef APP-VUE || MP-WEIXIN || MP-QQ || H5
-		//拖拽中
-		_refresherTouchmove(e) {
-			const currentTimeStamp = (new Date()).getTime();
-			if (this.pullDownTimeStamp && currentTimeStamp - this.pullDownTimeStamp <= this.pullDownDisTimeStamp) {
-				return;
-			}
-			if (this._getRefresherTouchDisabled()) {
-				return;
-			}
-			this.pullDownTimeStamp = Number(currentTimeStamp);
-			const touch = zUtils.getCommonTouch(e);
-			let refresherTouchmoveY = touch.touchY;
-			let moveDistance = refresherTouchmoveY - this.refresherTouchstartY;
-			if (moveDistance < 0) {
-				return;
-			}
-			if (this.refresherMaxAngle >= 0 && this.refresherMaxAngle <= 90 && this.lastRefresherTouchmove && this
-				.lastRefresherTouchmove.touchY <= refresherTouchmoveY) {
-				if (!moveDistance && !this.refresherAngleEnableChangeContinued && this.moveDistance < 1 && !this
-					.refresherReachMaxAngle) {
-					return;
-				}
-				const x = Math.abs(touch.touchX - this.lastRefresherTouchmove.touchX);
-				const y = Math.abs(refresherTouchmoveY - this.lastRefresherTouchmove.touchY);
-				const z = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
-				if ((x || y) && x > 1) {
-					const angle = Math.asin(y / z) / Math.PI * 180;
-					if (angle < this.refresherMaxAngle) {
-						this.lastRefresherTouchmove = touch;
-						this.refresherReachMaxAngle = false;
-						return;
-					}
-				}
-			}
-			moveDistance = this._getFinalRefresherMoveDistance(moveDistance);
-			this._handleRefresherTouchmove(moveDistance, touch);
-			if (!this.disabledBounce) {
-				this._handleScrollViewDisableBounce({
-					bounce: false
-				});
-				this.disabledBounce = true;
-			}
-		},
-		// #endif
-		//进一步处理拖拽中结果
-		_handleRefresherTouchmove(moveDistance, touch) {
-			this.refresherReachMaxAngle = true;
-			this.isTouchmoving = true;
-			//this.refresherTransition = '';
-			this.isTouchEnded = false;
-			if (moveDistance >= this.finalRefresherThreshold) {
-				this.refresherStatus = Enum.RefresherStatus.PullToRefresh;
-			} else {
-				this.refresherStatus = Enum.RefresherStatus.Default;
-			}
-			// #ifndef APP-VUE || MP-WEIXIN || MP-QQ  || H5
-			// this.scrollEnable = false;
-			this.refresherTransform = `translateY(${moveDistance}px)`;
-			this.lastRefresherTouchmove = touch;
-			// #endif
-			this.moveDistance = moveDistance;
-			this.$emit('refresherTouchmove', moveDistance);
-		},
-		// #ifndef APP-VUE || MP-WEIXIN || MP-QQ || H5
-		//拖拽结束
-		_refresherTouchend(e) {
-			if (this._getRefresherTouchDisabled() || !this.isTouchmoving) {
-				return;
-			}
-			const touch = zUtils.getCommonTouch(e);
-			let refresherTouchendY = touch.touchY;
-			let moveDistance = refresherTouchendY - this.refresherTouchstartY;
-			moveDistance = this._getFinalRefresherMoveDistance(moveDistance);
-			this._handleRefresherTouchend(moveDistance);
-			this._handleScrollViewDisableBounce({
-				bounce: true
-			});
-			this.disabledBounce = false;
-		},
-		// #endif
-		//进一步处理拖拽结束结果
-		_handleRefresherTouchend(moveDistance) {
-			// #ifndef APP-PLUS || H5 || MP-WEIXIN
-			if (!this.isTouchmoving) {
-				return;
-			}
-			// #endif
-			this.refresherReachMaxAngle = true;
-			if (moveDistance < 0 && this.usePageScroll && this.loadingMoreEnabled && this.useCustomRefresher && this
-				.pageScrollTop === -1) {
-				if (this.showConsoleError) {
-					zUtils.consoleErr(
-						'usePageScroll为true并且自定义下拉刷新时必须引入mixin或在page滚动时通过调用z-paging组件的updatePageScrollTop方法设置当前的scrollTop'
-					)
-				}
-			}
-			this.isTouchEnded = true;
-			if (moveDistance >= this.finalRefresherThreshold && this.refresherStatus === Enum.RefresherStatus
-				.PullToRefresh) {
-				// #ifndef APP-VUE || MP-WEIXIN || MP-QQ  || H5
-				this.refresherTransform = `translateY(${this.finalRefresherThreshold}px)`;
-				// #endif
-				this.moveDistance = this.finalRefresherThreshold;
-				this.refresherStatus = Enum.RefresherStatus.Loading;
-				this._doRefresherLoad();
-			} else {
-				this._refresherEnd(true, false);
-				setTimeout(() => {
-					this.isTouchmoving = false;
-				}, commonDelayTime);
-			}
-			this.scrollEnable = true;
-			this.refresherTransition = 'transform .1s linear';
-			this.$emit('refresherTouchend', moveDistance);
-		},
-		//处理scroll-view bounce是否生效
-		_handleScrollViewDisableBounce(e) {
-			if (!this.usePageScroll && !this.scrollToTopBounceEnabled) {
-				if (this.isIos13) {
-					this.refresherTransition = '';
-				}
-				if (!e.bounce) {
-					if (this.scrollEnable) {
-						this.scrollEnable = false;
-					}
-				} else {
-					this.scrollEnable = true;
-				}
-			}
-		},
-		//wxs正在下拉处理
-		_handleWxsOnPullingDown(onPullingDown) {
-			this.wxsOnPullingDown = onPullingDown;
-			if (onPullingDown) {
-				if (!this.useChatRecordMode) {
-					this.renderPropScrollTop = 0;
-				}
-			}
-		},
-		//下拉刷新结束
-		_refresherEnd(shouldEndLoadingDelay = true, fromAddData = false, isUserPullDown = false) {
-			let refresherCompleteDelay = 0;
-			if(fromAddData && isUserPullDown){
-				refresherCompleteDelay = this.refresherCompleteDelay;
-				if(this.refresherCompleteDuration > 700){
-					refresherCompleteDelay = 1;
-				}
-			}
-			const refresherStatus = refresherCompleteDelay > 0 ? Enum.RefresherStatus.Complete : Enum.RefresherStatus.Default;
-			// #ifndef APP-NVUE
-			if (this.finalShowRefresherWhenReload) {
-				const stackCount = this.refresherRevealStackCount;
-				this.refresherRevealStackCount--;
-				if (stackCount > 1) {
-					return;
-				}
-				this.refresherStatus = refresherStatus;
-			} else {
-				setTimeout(() => {
-					this.refresherStatus = refresherStatus;
-				}, commonDelayTime);
-			}
-			if (refresherCompleteDelay > 0) {
-				this.isRefresherInComplete = true;
-			}
-			// #endif
-			// #ifdef APP-NVUE
-			if (this.finalShowRefresherWhenReload) {
-				const stackCount = this.refresherRevealStackCount;
-				this.refresherRevealStackCount--;
-				if (stackCount > 1) {
-					return;
-				}
-				this.refresherStatus = refresherStatus;
-			} else {
-				setTimeout(() => {
-					this.refresherStatus = refresherStatus;
-				}, commonDelayTime);
-			}
-			// #endif
-			if (shouldEndLoadingDelay) {
-				setTimeout(() => {
-					this.loading = false;
-				}, commonDelayTime);
-			} else {
-				this.loading = false;
-			}
-			this._cleanRefresherCompleteTimeout();
-			this.refresherCompleteTimeout = setTimeout(() => {
-				let animateDuration = 1;
-				if (fromAddData) {
-					const animateType = this.refresherEndBounceEnabled ? 'cubic-bezier(0.19,1.64,0.42,0.72)' : 'linear';
-					animateDuration = this.refresherEndBounceEnabled ? this.refresherCompleteDuration / 1000 : this.refresherCompleteDuration / 3000;
-					this.refresherTransition = `transform ${animateDuration}s ${animateType}`;
-				}
-				// #ifndef APP-VUE || MP-WEIXIN || MP-QQ  || H5
-				this.refresherTransform = 'translateY(0px)';
-				// #endif
-				// #ifdef APP-VUE || MP-WEIXIN || MP-QQ || H5
-				this.wxsPropType = 'end' + (new Date()).getTime();
-				// #endif
-				// #ifdef APP-NVUE
-				this._nRefresherEnd();
-				// #endif
-				this.moveDistance = 0;
-				// #ifndef APP-NVUE
-				if (refresherStatus === Enum.RefresherStatus.Complete) {
-					if (this.refresherCompleteSubTimeout) {
-						clearTimeout(this.refresherCompleteSubTimeout);
-						this.refresherCompleteSubTimeout = null;
-					}
-					this.refresherCompleteSubTimeout = setTimeout(() => {
-						this.$nextTick(() => {
-							this.refresherStatus = Enum.RefresherStatus.Default;
-							this.isRefresherInComplete = false;
-						})
-					}, animateDuration * 800);
-				}
-				// #endif
-			}, refresherCompleteDelay);
-			this.$emit('onRestore');
-			this.$emit('Restore');
-		},
-		//模拟用户手动触发下拉刷新
-		_doRefresherRefreshAnimate() {
-			this._cleanRefresherCompleteTimeout();
-			// #ifndef APP-NVUE
-			const doRefreshAnimateAfter = !this.doRefreshAnimateAfter && (this.finalShowRefresherWhenReload) && this
-				.customRefresherHeight === -1 && this.refresherThreshold === '80rpx';
-			if (doRefreshAnimateAfter) {
-				this.doRefreshAnimateAfter = true;
-				return;
-			}
-			// #endif
-			this.refresherRevealStackCount++;
-			this.refresherTransform = `translateY(${this.finalRefresherThreshold}px)`;
-			// #ifdef APP-VUE || MP-WEIXIN || MP-QQ || H5
-			this.wxsPropType = 'begin' + (new Date()).getTime();
-			// #endif
-			this.moveDistance = this.finalRefresherThreshold;
-			this.refresherStatus = Enum.RefresherStatus.Loading;
-			this.isTouchmoving = true;
-		},
-		//触发下拉刷新
-		_doRefresherLoad() {
-			this._onRefresh();
-			this.loading = true;
-		},
-		//获取处理后的moveDistance
-		_getFinalRefresherMoveDistance(moveDistance) {
-			moveDistance = moveDistance * 0.85;
-			if (moveDistance >= this.finalRefresherThreshold) {
-				moveDistance = this.finalRefresherThreshold + (moveDistance - this.finalRefresherThreshold) * (1 - this
-					.finalRefresherOutRate);
-			}
-			return moveDistance;
-		},
-		//(预处理)判断当没有更多数据且分页内容未超出z-paging时是否显示没有更多数据的view
-		_preCheckShowLoadingMoreWhenNoMoreAndInsideOfPaging(newVal, scrollViewNode, pagingContainerNode) {
-			if (this.loadingStatus === Enum.LoadingMoreStatus.NoMore && this.hideLoadingMoreWhenNoMoreByLimit > 0 &&
-				newVal.length) {
-				this.showLoadingMore = newVal.length > this.hideLoadingMoreWhenNoMoreByLimit;
-			} else if ((this.loadingStatus === Enum.LoadingMoreStatus.NoMore && this
-					.hideLoadingMoreWhenNoMoreAndInsideOfPaging && newVal.length) || (this.insideMore && this
-					.insideOfPaging !== false && newVal.length)) {
-				this.$nextTick(() => {
-					this._checkShowLoadingMoreWhenNoMoreAndInsideOfPaging(newVal, scrollViewNode,
-						pagingContainerNode);
-				})
-				if (this.insideMore && this.insideOfPaging !== false &&
-					newVal.length) {
-					this.showLoadingMore = newVal.length;
-				}
-			} else {
-				this.showLoadingMore = newVal.length;
-			}
-		},
-		//判断当没有更多数据且分页内容未超出z-paging时是否显示没有更多数据的view
-		async _checkShowLoadingMoreWhenNoMoreAndInsideOfPaging(totalData, oldScrollViewNode, oldPagingContainerNode) {
-			try {
-				const scrollViewNode = oldScrollViewNode || await this._getNodeClientRect('.zp-scroll-view');
-				if (this.usePageScroll) {
-					if (scrollViewNode) {
-						const scrollViewTotalH = scrollViewNode[0].top + scrollViewNode[0].height;
-						this.insideOfPaging = scrollViewTotalH < this.windowHeight;
-						if (this.hideLoadingMoreWhenNoMoreAndInsideOfPaging) {
-							this.showLoadingMore = !this.insideOfPaging;
-						}
-						this._updateInsideOfPaging();
-					}
-				} else {
-					let pagingContainerH = 0;
-					let scrollViewH = 0;
-					const pagingContainerNode = oldPagingContainerNode || await this._getNodeClientRect(
-						'.zp-paging-container-content');
-					if (pagingContainerNode) {
-						pagingContainerH = pagingContainerNode[0].height;
-					}
-					if (scrollViewNode) {
-						scrollViewH = scrollViewNode[0].height;
-					}
-					this.insideOfPaging = pagingContainerH < scrollViewH;
-					if (this.hideLoadingMoreWhenNoMoreAndInsideOfPaging) {
-						this.showLoadingMore = !this.insideOfPaging;
-					}
-					this._updateInsideOfPaging();
-				}
-			} catch (e) {
-				this.insideOfPaging = !totalData.length;
-				if (this.hideLoadingMoreWhenNoMoreAndInsideOfPaging) {
-					this.showLoadingMore = !this.insideOfPaging;
-				}
-				this._updateInsideOfPaging();
-			}
-		},
-		//检测z-paging是否超出了页面高度
-		async _checkScrollViewOutOfPage() {
-			try {
-				const scrollViewNode = await this._getNodeClientRect('.zp-scroll-view');
-				if (scrollViewNode) {
-					const scrollViewTotalH = scrollViewNode[0].top + scrollViewNode[0].height;
-					if (scrollViewTotalH > this.windowHeight + 100) {
-						if (this.showConsoleError) {
-							zUtils.consoleWarn(
-								'检测到z-paging的高度超出页面高度,这将导致滚动或展示出现异常,请设置【:fixed="true"】或【确保z-paging有确定的高度(如果通过百分比设置z-paging的高度,请保证z-paging的所有父view已设置高度,同时确保page也设置了height:100%,如:page{height:100%}】,此时z-paging的百分比高度才能生效。详情参考demo或访问:https://ext.dcloud.net.cn/plugin?id=3935)'
-							);
-						}
-					}
-				}
-			} catch (e) {
-
-			}
-		},
-		//检测z-paging是否要全屏覆盖(当使用页面滚动并且不满全屏时,默认z-paging需要铺满全屏,避免数据过少时内部的empty-view无法正确展示)
-		async _checkScrollViewShouldFullHeight(callback) {
-			try {
-				const scrollViewNode = await this._getNodeClientRect('.zp-scroll-view');
-				const pagingContainerNode = await this._getNodeClientRect('.zp-paging-container-content');
-				if (!scrollViewNode || !pagingContainerNode) {
-					return;
-				}
-				const scrollViewHeight = pagingContainerNode[0].height;
-				const scrollViewTop = scrollViewNode[0].top;
-				if (this.isAddedData && scrollViewHeight + scrollViewTop <= this.windowHeight) {
-					this._setAutoHeight(true, scrollViewNode);
-					callback(scrollViewNode, pagingContainerNode);
-				} else {
-					this._setAutoHeight(false);
-					callback(null, null);
-				}
-			} catch (e) {
-				callback(null, null);
-			}
-		},
-		//设置z-paging高度
-		async _setAutoHeight(shouldFullHeight = true, scrollViewNode = null) {
-			let heightKey = 'height';
-			// #ifndef APP-NVUE
-			if (this.usePageScroll) {
-				heightKey = 'min-height';
-			}
-			// #endif
-			try {
-				if (shouldFullHeight) {
-					let finalScrollViewNode = scrollViewNode ? scrollViewNode : await this._getNodeClientRect(
-						'.scroll-view');
-					if (finalScrollViewNode) {
-						const scrollViewTop = finalScrollViewNode[0].top;
-						const scrollViewHeight = this.windowHeight - scrollViewTop;
-						let additionHeight = zUtils.convertTextToPx(this.autoHeightAddition);
-						this.$set(this.scrollViewStyle, heightKey, scrollViewHeight + additionHeight - (this
-							.insideMore ? 1 : 0) + 'px');
-						this.$set(this.scrollViewInStyle, heightKey, scrollViewHeight + additionHeight - (this
-							.insideMore ? 1 : 0) + 'px');
-					}
-				} else {
-					this.$delete(this.scrollViewStyle, heightKey);
-					this.$delete(this.scrollViewInStyle, heightKey);
-				}
-			} catch (e) {
-
-			}
-		},
-		//触发更新是否超出页面状态
-		_updateInsideOfPaging() {
-			if (this.insideMore && this.insideOfPaging === true) {
-				setTimeout(() => {
-					this.doLoadMore();
-				}, 200)
-			}
-		},
-		//获取节点尺寸
-		_getNodeClientRect(select, inThis = true, scrollOffset = false) {
-			// #ifdef APP-NVUE
-			select = select.replace('.', '').replace('#', '');
-			const ref = this.$refs[select];
-			if (ref) {
-				return new Promise((resolve, reject) => {
-					weexDom.getComponentRect(ref, option => {
-						if (option && option.result) {
-							resolve([option.size]);
-						} else {
-							resolve(false);
-						}
-					})
-				});
-			} else {
-				return new Promise((resolve, reject) => {
-					resolve(false);
-				});
-			}
-			return;
-			// #endif
-			let res = null;
-			if (inThis) {
-				res = uni.createSelectorQuery().in(this);
-			} else {
-				res = uni.createSelectorQuery();
-			}
-			//#ifdef MP-ALIPAY
-			res = uni.createSelectorQuery();
-			//#endif
-			if (scrollOffset) {
-				res.select(select).scrollOffset();
-			} else {
-				res.select(select).boundingClientRect();
-			}
-			return new Promise((resolve, reject) => {
-				res.exec(data => {
-					if (data && data != '' && data != undefined && data.length) {
-						resolve(data);
-					} else {
-						resolve(false);
-					}
-				});
-			});
-		},
-		//判断touch手势是否要触发
-		_getRefresherTouchDisabled() {
-			let checkOldScrollTop = this.oldScrollTop > 5;
-			const res = this.loading || this.isRefresherInComplete || this.useChatRecordMode || !this
-				.refresherEnabled || !this.useCustomRefresher ||
-				(
-					this.usePageScroll && this
-					.useCustomRefresher && this
-					.pageScrollTop > 10) || (!(this.usePageScroll && this.useCustomRefresher) && checkOldScrollTop);
-			return res;
-		},
-		//本地分页请求
-		_localPagingQueryList(pageNo, pageSize, localPagingLoadingTime, callback) {
-			pageNo = parseInt(pageNo);
-			pageSize = parseInt(pageSize);
-			if (pageNo < 0 || pageSize <= 0) {
-				callQueryResult(callback, []);
-				return;
-			}
-			if (pageNo == 0) {
-				pageNo = 1;
-			}
-			let totalPagingList = [...this.totalLocalPagingList];
-			let pageNoIndex = (pageNo - 1) * pageSize;
-			if (pageNoIndex + pageSize <= totalPagingList.length) {
-				this._localPagingQueryResult(callback, totalPagingList.splice(pageNoIndex, pageSize),
-					localPagingLoadingTime);
-			} else if (pageNoIndex < totalPagingList.length) {
-				this._localPagingQueryResult(callback, totalPagingList.splice(pageNoIndex, totalPagingList.length -
-						pageNoIndex),
-					localPagingLoadingTime);
-			} else {
-				this._localPagingQueryResult(callback, [], localPagingLoadingTime);
-			}
-		},
-		//本地分页请求回调
-		_localPagingQueryResult(callback, arg, localPagingLoadingTime) {
-			setTimeout(() => {
-				callback(arg);
-			}, localPagingLoadingTime)
-		},
-		//判断是否要显示返回顶部按钮
-		_checkShouldShowBackToTop(newVal, oldVal) {
-			if (!this.autoShowBackToTop) {
-				if (this.showBackToTopClass) {
-					this.showBackToTopClass = false;
-				}
-				return;
-			}
-			if (newVal !== oldVal) {
-				if (newVal > this.finalBackToTopThreshold) {
-					if (!this.showBackToTopClass) {
-						this.showBackToTopClass = true;
-						this.lastBackToTopShowTime = new Date().getTime();
-						setTimeout(() => {
-							this.backToTopClass = 'zp-back-to-top zp-back-to-top-show';
-						}, 300)
-					}
-				} else {
-					if (this.showBackToTopClass) {
-						const currentTime = new Date().getTime();
-						let dalayTime = 300;
-						if(currentTime - this.lastBackToTopShowTime < 500){
-							dalayTime = 0;
-						}
-						this.backToTopClass = 'zp-back-to-top zp-back-to-top-hide';
-						setTimeout(() => {
-							this.showBackToTopClass = false;
-						}, dalayTime)
-					}
-				}
-			}
-		},
-		_updatePageScrollTopOrBottomHeight(type) {
-			// #ifndef APP-NVUE
-			if (!this.usePageScroll) {
-				return;
-			}
-			// #endif
-			const node = `.zp-page-scroll-${type}`;
-			const marginText = `margin${type.slice(0,1).toUpperCase() + type.slice(1)}`;
-			let safeAreaInsetBottomAdd = this.safeAreaInsetBottom;
-			// #ifdef APP-NVUE
-			if (!this.usePageScroll) {
-				safeAreaInsetBottomAdd = false;
-			}
-			// #endif
-			this.$nextTick(() => {
-				let delayTime = 0;
-				// #ifdef MP-BAIDU
-				delayTime = 10;
-				// #endif
-				setTimeout(() => {
-					this._getNodeClientRect(node).then((res) => {
-						if (res) {
-							let pageScrollNodeHeight = res[0].height;
-							if (type === 'bottom') {
-								if (safeAreaInsetBottomAdd) {
-									pageScrollNodeHeight += this.safeAreaBottom;
-								}
-							}
-							this.$set(this.scrollViewStyle, marginText,
-								`${pageScrollNodeHeight}px`);
-						} else if (safeAreaInsetBottomAdd) {
-							this.$set(this.scrollViewStyle, marginText, `${this.safeAreaBottom}px`);
-						}
-					});
-				}, delayTime)
-			})
-		},
-		_updateCustomRefresherHeight() {
-			this._getNodeClientRect('.zp-custom-refresher-slot-view').then((res) => {
-				if (res) {
-					this.customRefresherHeight = res[0].height;
-					if (this.customRefresherHeight > 0) {
-						this.showCustomRefresher = true;
-					}
-				} else {
-					this.customRefresherHeight = 0;
-				}
-				if (this.doRefreshAnimateAfter) {
-					this.doRefreshAnimateAfter = false;
-					this._doRefresherRefreshAnimate();
-				}
-			});
-		},
-		//点击了空数据view重新加载按钮
-		_emptyViewReload() {
-			let callbacked = false;
-			this.$emit('emptyViewReload', (reload) => {
-				if (reload === undefined || reload === true) {
-					this.fromEmptyViewReload = true;
-					this.reload();
-				}
-				callbacked = true;
-			});
-			this.$nextTick(() => {
-				if (!callbacked) {
-					this.fromEmptyViewReload = true;
-					this.reload();
-				}
-			})
-		},
-		//获取国际化转换后的文本
-		_getI18nText(key, value) {
-			const dataType = Object.prototype.toString.call(value);
-			if (dataType === '[object Object]') {
-				const nextValue = value[this.finalLanguage];
-				if (nextValue) {
-					return nextValue;
-				}
-			} else if (dataType === '[object String]') {
-				return value;
-			}
-			return zI18n[key][this.finalLanguage];
-		},
-		//修改父view的list
-		_callMyParentList(newVal) {
-			if (this.autowireListName.length) {
-				const myParent = zUtils.getParent(this.$parent);
-				if (myParent && myParent[this.autowireListName]) {
-					myParent[this.autowireListName] = newVal;
-				}
-			}
-		},
-		//调用父view的query
-		_callMyParentQuery(customPageNo = 0, customPageSize = 0) {
-			if (this.autowireQueryName) {
-				if (this.myParentQuery === -1) {
-					const myParent = zUtils.getParent(this.$parent);
-					if (myParent && myParent[this.autowireQueryName]) {
-						this.myParentQuery = myParent[this.autowireQueryName];
-					}
-				}
-				if (this.myParentQuery !== -1) {
-					if (customPageSize > 0) {
-						this.myParentQuery(customPageNo, customPageSize);
-					} else {
-						this.myParentQuery(this.pageNo, this.defaultPageSize);
-					}
-				}
-			}
-		},
-        //发射query事件
-		_emitQuery(pageNo,pageSize){
-			this.requestTimeStamp = Number((new Date()).getTime());
-			this.$emit('query',pageNo,pageSize);
-		},
-		//清除refresherCompleteTimeout
-		_cleanRefresherCompleteTimeout() {
-			if (this.refresherCompleteTimeout) {
-				clearTimeout(this.refresherCompleteTimeout);
-				this.refresherCompleteTimeout = null;
-			}
-		},
-		//检查complete data的类型
-		_checkDataType(data, success, isLocal) {
-			const dataType = Object.prototype.toString.call(data);
-			if (dataType === '[object Boolean]') {
-				success = data;
-				data = [];
-			} else if (dataType !== '[object Array]') {
-				data = [];
-				let methodStr = isLocal ? 'setLocalPaging' : 'complete';
-				if (dataType !== '[object Undefined]') {
-					if (this.showConsoleError) {
-						zUtils.consoleErr(`${methodStr}参数类型不正确,第一个参数类型必须为Array!`);
-					}
-				}
-			}
-			return {
-				data,
-				success
-			};
-		},
-		// ------------nvue独有的方法----------------
-		// #ifdef APP-NVUE
-		//列表滚动时触发
-		_nOnScroll(e) {
-			const contentOffsetY = e.contentOffset.y;
-			this.$emit('scroll', e);
-			this.nListIsDragging = e.isDragging;
-			this._checkShouldShowBackToTop(-e.contentOffset.y, -e.contentOffset.y - 1);
-		},
-		//下拉刷新刷新中
-		_nOnRrefresh() {
-			this.nRefresherLoading = true;
-			if (this.nShowRefresherReveal) {
-				return;
-			}
-			this.refresherStatus = Enum.RefresherStatus.Loading;
-			this._doRefresherLoad();
-		},
-		//下拉刷新下拉中
-		_nOnPullingdown(e) {
-			if (this.refresherStatus === Enum.RefresherStatus.Loading || (this.isIos && !this.nListIsDragging)) {
-				return;
-			}
-			const viewHeight = e.viewHeight;
-			const pullingDistance = e.pullingDistance;
-			if (pullingDistance >= viewHeight) {
-				this.refresherStatus = Enum.RefresherStatus.PullToRefresh;
-			} else {
-				this.refresherStatus = Enum.RefresherStatus.Default;
-			}
-		},
-		//下拉刷新结束
-		_nRefresherEnd() {
-			this._nDoRefresherEndAnimation(0, -this.nShowRefresherRevealHeight);
-			if (!this.nShowBottom) {
-				setTimeout(() => {
-					this.$nextTick(() => {
-						this.nShowBottom = true;
-					})
-				}, 1000);
-			}
-			if (!this.usePageScroll) {
-				this.$refs["n-list"].resetLoadmore();
-			}
-			this.nRefresherLoading = false;
-		},
-		//执行主动触发下拉刷新动画
-		_nDoRefresherEndAnimation(height, translateY, animate = true, checkStack = true) {
-			this._cleanRefresherCompleteTimeout();
-			if (!this.finalShowRefresherWhenReload) {
-				setTimeout(() => {
-					this.refresherStatus = Enum.RefresherStatus.Default;
-				}, commonDelayTime);
-				return;
-			}
-			const stackCount = this.refresherRevealStackCount;
-			if (height === 0 && checkStack) {
-				this.refresherRevealStackCount--;
-				if (stackCount > 1) {
-					return;
-				}
-				this.refresherStatus = Enum.RefresherStatus.Default;
-			}
-			if (stackCount > 1) {
-				this.refresherStatus = Enum.RefresherStatus.Loading;
-			}
-			const duration = animate ? 120 : 0;
-			weexAnimation.transition(this.$refs['zp-n-list-refresher-reveal'], {
-				styles: {
-					height: `${height}px`,
-					transform: `translateY(${translateY}px)`,
-				},
-				duration: duration,
-				timingFunction: 'linear',
-				needLayout: true,
-				delay: 0
-			})
-			setTimeout(() => {
-				if (animate) {
-					this.nShowRefresherReveal = height > 0;
-				}
-			}, duration > 0 ? duration - 100 : 0);
-		},
-		//滚动到底部加载更多
-		_nOnLoadmore() {
-			if (this.nShowRefresherReveal || !this.totalData.length) {
-				return;
-			}
-			if (this.useChatRecordMode) {
-				this.doChatRecordLoadMore();
-			} else {
-				this._onLoadingMore('toBottom');
-			}
-		},
-		//获取nvue waterfall单项配置
-		_getNvueWaterfallSingleConfig(key, defaultValue) {
-			const value = this.nvueWaterfallConfig[key];
-			if (value) {
-				return value;
-			}
-			return defaultValue;
-		}
-		// #endif
-	},
-};

+ 0 - 32
uni_modules/z-paging/components/z-paging/js/z-paging-mixin.js

@@ -1,32 +0,0 @@
-// [z-paging]使用页面滚动时引入此mixin,用于监听和处理onPullDownRefresh等页面生命周期方法
-
-const ZPagingMixin = {
-	onPullDownRefresh() {
-		if (this.isPagingRefNotFound()) {
-			return;
-		}
-		this.$refs.paging.reload();
-	},
-	onPageScroll(e) {
-		if (this.isPagingRefNotFound()) {
-			return;
-		}
-		this.$refs.paging.updatePageScrollTop(e.scrollTop);
-		if (e.scrollTop < 10) {
-			this.$refs.paging.doChatRecordLoadMore();
-		}
-	},
-	onReachBottom() {
-		if (this.isPagingRefNotFound()) {
-			return;
-		}
-		this.$refs.paging.doLoadMore();
-	},
-	methods: {
-		isPagingRefNotFound() {
-			return !this.$refs.paging || this.$refs.paging === undefined;
-		}
-	}
-}
-
-export default ZPagingMixin;

文件差异内容过多而无法显示
+ 0 - 8
uni_modules/z-paging/components/z-paging/js/z-paging-static.js


+ 0 - 199
uni_modules/z-paging/components/z-paging/js/z-paging-utils.js

@@ -1,199 +0,0 @@
-// [z-paging]工具类
-
-import zI18n from './z-paging-i18n'
-
-const storageKey = 'Z-PAGING-REFRESHER-TIME-STORAGE-KEY'
-
-//判断两个数组是否相等
-function arrayIsEqual(arr1, arr2) {
-	if (arr1 === arr2) {
-		return true;
-	}
-	if (arr1.length !== arr2.length) {
-		return false;
-	}
-	for (let i = 0; i < arr1.length; i++) {
-		if (arr1[i] !== arr2[i]) {
-			return false;
-		}
-	}
-	return true;
-}
-
-//获取最终的touch位置
-function getCommonTouch(e) {
-	let touch = null;
-	if (e.touches && e.touches.length) {
-		touch = e.touches[0];
-	} else if (e.changedTouches && e.changedTouches.length) {
-		touch = e.changedTouches[0];
-	} else if (e.datail && e.datail !== {}) {
-		touch = e.datail;
-	} else {
-		return {
-			touchX: 0,
-			touchY: 0
-		}
-	}
-	return {
-		touchX: touch.clientX,
-		touchY: touch.clientY
-	};
-}
-
-//判断当前手势是否在z-paging内触发
-function getTouchFromZPaging(target) {
-	if (target && target.tagName && target.tagName !== 'BODY' && target.tagName !== 'UNI-PAGE-BODY') {
-		var classList = target.classList;
-		if (classList && classList.contains('zp-paging-touch-view')) {
-			return true;
-		} else {
-			return getTouchFromZPaging(target.parentNode);
-		}
-	} else {
-		return false;
-	}
-}
-
-//获取z-paging所在的parent
-function getParent(parent) {
-	if (!parent) {
-		return null;
-	}
-	if (parent.$refs.paging) {
-		return parent;
-	}
-	return getParent(parent.$parent);
-}
-
-//打印错误信息
-function consoleErr(err) {
-	console.error(`[z-paging]${err}`);
-}
-
-//打印警告信息
-function consoleWarn(warn) {
-	console.warn(`[z-paging]${warn}`);
-}
-
-//设置下拉刷新时间
-function setRefesrherTime(time, key) {
-	try {
-		let datas = getRefesrherTime();
-		if (!datas) {
-			datas = {};
-		}
-		datas[key] = time;
-		uni.setStorageSync(storageKey, datas);
-	} catch {}
-}
-
-//获取下拉刷新时间
-function getRefesrherTime() {
-	try {
-		const datas = uni.getStorageSync(storageKey);
-		return datas;
-	} catch {
-		return null;
-	}
-}
-
-//通过下拉刷新标识key获取下拉刷新时间
-function getRefesrherTimeByKey(key) {
-	const datas = getRefesrherTime();
-	if (datas) {
-		const data = datas[key];
-		if (data) {
-			return data;
-		}
-	}
-	return null;
-}
-
-//通过下拉刷新标识key获取下拉刷新时间(格式化之后)
-function getRefesrherFormatTimeByKey(key) {
-	const time = getRefesrherTimeByKey(key);
-	let timeText = zI18n['refresherUpdateTimeNoneText'][zI18n.getLanguage()];
-	if (time) {
-		timeText = _timeFormat(time);
-	}
-	return `${zI18n['refresherUpdateTimeText'][zI18n.getLanguage()]}${timeText}`;
-}
-
-//将文本的px或者rpx转为px的值
-function convertTextToPx(text) {
-	const dataType = Object.prototype.toString.call(text);
-	if (dataType === '[object Number]') {
-		return text;
-	}
-	let isRpx = false;
-	if (text.indexOf('rpx') !== -1 || text.indexOf('upx') !== -1) {
-		text = text.replace('rpx', '').replace('upx', '');
-		isRpx = true;
-	} else if (text.indexOf('px') !== -1) {
-		text = text.replace('px', '');
-	}
-	if (!isNaN(text)) {
-		if (isRpx) {
-			return Number(uni.upx2px(text));
-		}
-		return Number(text);
-	}
-	return 0;
-}
-
-//------------------ 私有方法 ------------------------
-function _timeFormat(time) {
-	const date = new Date(time);
-	const currentDate = new Date();
-	const dateDay = new Date(time).setHours(0, 0, 0, 0);
-	const currentDateDay = new Date().setHours(0, 0, 0, 0);
-	const disTime = dateDay - currentDateDay;
-	let dayStr = '';
-	const timeStr = _dateTimeFormat(date);
-	if (disTime === 0) {
-		dayStr = zI18n['refresherUpdateTimeTodayText'][zI18n.getLanguage()];
-	} else if (disTime === -86400000) {
-		dayStr = zI18n['refresherUpdateTimeYesterdayText'][zI18n.getLanguage()];
-	} else {
-		dayStr = _dateDayFormat(date, date.getFullYear() !== currentDate.getFullYear());
-	}
-	return `${dayStr} ${timeStr}`;
-}
-
-function _dateDayFormat(date, showYear = true) {
-	const year = date.getFullYear();
-	const month = date.getMonth() + 1;
-	const day = date.getDate();
-	if (showYear) {
-		return `${year}-${_fullZeroToTwo(month)}-${_fullZeroToTwo(day)}`;
-	} else {
-		return `${_fullZeroToTwo(month)}-${_fullZeroToTwo(day)}`;
-	}
-}
-
-function _dateTimeFormat(date) {
-	const hour = date.getHours();
-	const minute = date.getMinutes();
-	return `${_fullZeroToTwo(hour)}:${_fullZeroToTwo(minute)}`;
-}
-
-function _fullZeroToTwo(str) {
-	str = str.toString();
-	if (str.length === 1) {
-		return '0' + str;
-	}
-	return str;
-}
-
-module.exports = {
-	setRefesrherTime,
-	getRefesrherFormatTimeByKey,
-	arrayIsEqual,
-	getCommonTouch,
-	getTouchFromZPaging,
-	getParent,
-	convertTextToPx,
-	consoleErr,
-	consoleWarn
-};

+ 0 - 54
uni_modules/z-paging/components/z-paging/wxs/z-paging-renderjs.js

@@ -1,54 +0,0 @@
-// [z-paging]使用renderjs在app-vue和h5中对touchmove事件冒泡进行处理
-
-import zUtils from '../js/z-paging-utils'
-var data = {
-	renderScrollTop: 0,
-	renderUsePageScroll: false,
-	renderIsIos: uni.getSystemInfoSync().platform === 'ios',
-	startY: 0,
-	isTouchFromZPaging: false
-}
-
-export default {
-	mounted() {
-		this._handleTouch();
-	},
-	methods: {
-		//接收逻辑层发送的数据
-		renderPropScrollTopChange(newVal, oldVal, ownerVm, vm) {
-			data.renderScrollTop = newVal;
-		},
-		renderPropUsePageScrollChange(newVal, oldVal, ownerVm, vm) {
-			if(newVal !== -1){
-				data.renderUsePageScroll = newVal;
-			}
-		},
-		//拦截处理touch事件
-		_handleTouch() {
-			if (window && !window.$zPagingRenderJsInited) {
-				window.$zPagingRenderJsInited = true;
-				window.addEventListener('touchstart', this._handleTouchstart, {
-					passive: true
-				})
-				window.addEventListener('touchmove', this._handleTouchmove, {
-					passive: false
-				})
-			}
-		},
-		_handleTouchstart(e) {
-			const touch = zUtils.getCommonTouch(e);
-			data.startY = touch.touchY;
-			data.isTouchFromZPaging = zUtils.getTouchFromZPaging(e.target);
-		},
-		_handleTouchmove(e) {
-			const touch = zUtils.getCommonTouch(e);
-			var moveY = touch.touchY - data.startY;
-			if ((data.isTouchFromZPaging && data.renderScrollTop < 1 && moveY > 0) || (data.isTouchFromZPaging && data.renderIsIos && !data.renderUsePageScroll && moveY < 0)) {
-				if (e.cancelable && !e.defaultPrevented) {
-					e.preventDefault();
-				}
-			}
-		},
-
-	}
-};

+ 0 - 342
uni_modules/z-paging/components/z-paging/wxs/z-paging-wxs.wxs

@@ -1,342 +0,0 @@
-// [z-paging]微信小程序、QQ小程序、app-vue、h5上使用wxs实现自定义下拉刷新,降低逻辑层与视图层的通信折损,提升性能
-
-var currentMoveDistance = 0;
-
-function propObserver(newValue, oldValue, ownerInstance, instance) {
-	var state = ownerInstance.getState();
-	state.currentInstance = instance;
-	var dataset = instance.getDataset();
-	var loading = dataset.loading == true;
-	if (newValue.indexOf('end') != -1) {
-		_setTransform('translateY(0px)', instance, false)
-		state.moveDistance = 0;
-		state.oldMoveDistance = 0;
-		currentMoveDistance = 0;
-	} else if (newValue.indexOf('begin') != -1) {
-		var refresherThreshold = instance.getDataset().refresherthreshold
-		_setTransformValue(refresherThreshold, instance, state, false);
-	}
-}
-
-function touchstart(e, ownerInstance) {
-	var instance = ownerInstance.getState().currentInstance;
-	var state = instance.getState();
-	var dataset = instance.getDataset();
-	var isTouchEnded = state.isTouchEnded;
-	if (_getRefresherTouchDisabled(e, instance, 0)) {
-		return;
-	}
-	state.oldMoveDistance = 0;
-	var touch = _getCommonTouch(e);
-	var loading = _getIsTrue(dataset.loading);
-	state.startY = touch.touchY;
-	state.lastRefresherTouchmove = touch;
-	if (!loading && isTouchEnded) {
-		state.isTouchmoving = false;
-	}
-	state.isTouchEnded = false;
-	ownerInstance.callMethod('_handleRefresherTouchstart', touch);
-}
-
-function touchmove(e, ownerInstance) {
-	var touch = _getCommonTouch(e);
-	var instance = ownerInstance.getState().currentInstance;
-	var dataset = instance.getDataset();
-	var refresherThreshold = dataset.refresherthreshold;
-	var state = instance.getState();
-	if (_getRefresherTouchDisabled(e, instance, 1)) {
-		_handleTouchMovePullingDown(state, ownerInstance, false);
-		return true;
-	}
-	if (!_getAngleIsInRange(e, touch, state, dataset)) {
-		_handleTouchMovePullingDown(state, ownerInstance, false);
-		return true;
-	}
-	var moveDistanceObj = _getMoveDistance(e, instance);
-	var moveDistance = moveDistanceObj.currentMoveDistance;
-	var prevent = moveDistanceObj.isDown;
-	if (moveDistance < 0) {
-		_setTransformValue(0, instance, state, false);
-		_handleTouchMovePullingDown(state, ownerInstance, false);
-		return true;
-	}
-	if (prevent && !state.disabledBounce) {
-		ownerInstance.callMethod('_handleScrollViewDisableBounce', {
-			bounce: false
-		});
-		state.disabledBounce = true;
-		_handleTouchMovePullingDown(state, ownerInstance, prevent);
-		return !prevent;
-	}
-	_setTransformValue(moveDistance, instance, state, false);
-	var oldRefresherStatus = state.refresherStatus;
-	var dataset = instance.getDataset();
-	var oldIsTouchmoving = _getIsTrue(dataset.oldistouchmoving);
-	var isTouchmoving = state.isTouchmoving;
-	if (moveDistance >= refresherThreshold) {
-		state.refresherStatus = 1;
-	} else {
-		state.refresherStatus = 0;
-	}
-	if (!isTouchmoving) {
-		state.isTouchmoving = true;
-		isTouchmoving = true;
-	}
-	if (state.isTouchEnded) {
-		state.isTouchEnded = false;
-	}
-	if (oldRefresherStatus == undefined || oldRefresherStatus != state.refresherStatus || oldIsTouchmoving !=
-		isTouchmoving) {
-		ownerInstance.callMethod('_handleRefresherTouchmove', moveDistance, touch);
-	}
-	_handleTouchMovePullingDown(state, ownerInstance, prevent);
-	return !prevent;
-}
-
-function touchend(e, ownerInstance) {
-	var touch = _getCommonTouch(e);
-	var instance = ownerInstance.getState().currentInstance;
-	var dataset = instance.getDataset();
-	var state = instance.getState();
-	if (_getRefresherTouchDisabled(e, instance, 2)) {
-		return;
-	}
-	state.refresherReachMaxAngle = true;
-	state.hitReachMaxAngleCount = 0;
-	state.disabledBounce = false;
-	state.fixedIsTopHitCount = 0;
-	//ownerInstance.callMethod('_handleScrollViewDisableBounce', {bounce:true});
-	var isTouchmoving = state.isTouchmoving;
-	if (!isTouchmoving) {
-		return;
-	}
-	var oldRefresherStatus = state.refresherStatus;
-	var oldMoveDistance = state.moveDistance;
-	var refresherThreshold = instance.getDataset().refresherthreshold
-	var moveDistance = _getMoveDistance(e, instance).currentMoveDistance;
-	if (!(moveDistance >= refresherThreshold && oldRefresherStatus === 1)) {
-		state.isTouchmoving = false;
-	}
-	ownerInstance.callMethod('_handleRefresherTouchend', moveDistance);
-	state.isTouchEnded = true;
-	if (oldMoveDistance < refresherThreshold) {
-		return;
-	}
-	var animate = false;
-	if (moveDistance >= refresherThreshold) {
-		moveDistance = refresherThreshold;
-		var isIos13 = _getIsTrue(dataset.isios13);
-		if (isIos13) {
-			animate = true;
-		}
-	}
-	_setTransformValue(moveDistance, instance, state, animate);
-}
-
-// #ifdef H5
-function isPC() {
-	var userAgentInfo = navigator.userAgent;
-	var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"];
-	var flag = true;
-	for (var v = 0; v < Agents.length - 1; v++) {
-		if (userAgentInfo.indexOf(Agents[v]) > 0) {
-			flag = false;
-			break;
-		}
-	}
-	return flag;
-}
-
-var movable = false;
-
-function mousedown(e, ins) {
-	if (!isPC()) return;
-	touchstart(e, ins);
-	movable = true;
-}
-
-function mousemove(e, ins) {
-	if (!isPC()) return;
-	if (!movable) return;
-	touchmove(e, ins);
-}
-
-function mouseup(e, ins) {
-	if (!isPC()) return;
-	touchend(e, ins);
-	movable = false;
-}
-
-function mouseleave(e, ins) {
-	if (!isPC()) return;
-	movable = false;
-}
-// #endif
-
-
-function _setTransformValue(value, instance, state, animate) {
-	value = value || 0;
-	if (state.moveDistance == value) {
-		return;
-	}
-	state.moveDistance = value;
-	_setTransform('translateY(' + value + 'px)', instance, animate);
-}
-
-function _setTransform(transform, instance, animate) {
-	if (transform == 'translateY(0px)') {
-		transform = 'none';
-	}
-	instance.requestAnimationFrame(function() {
-		if (animate) {
-			instance.setStyle({
-				'transform': transform,
-				'transition': 'transform .1s linear',
-			})
-		} else {
-			instance.setStyle({
-				'transform': transform
-			})
-		}
-	})
-}
-
-function _getMoveDistance(e, instance) {
-	var state = instance.getState();
-	var refresherThreshold = instance.getDataset().refresherthreshold;
-	var refresherOutRate = instance.getDataset().refresheroutrate;
-	refresherThreshold = parseFloat(refresherThreshold);
-	refresherOutRate = parseFloat(refresherOutRate);
-	var touch = _getCommonTouch(e);
-	var moveDistance = touch.touchY - state.startY;
-	var oldMoveDistance = state.oldMoveDistance || 0;
-	state.oldMoveDistance = moveDistance;
-	var diffDis = moveDistance - oldMoveDistance;
-	if (diffDis > 0) {
-		diffDis = diffDis * 0.85;
-		if (currentMoveDistance > refresherThreshold) {
-			diffDis = diffDis * (1 - refresherOutRate);
-		}
-	}
-	currentMoveDistance += diffDis;
-	if (currentMoveDistance < 0) {
-		currentMoveDistance = 0;
-	}
-	return {
-		currentMoveDistance: currentMoveDistance,
-		isDown: diffDis > 0
-	};
-}
-
-function _getCommonTouch(e) {
-	var touch = null;
-	if (e.touches && e.touches.length) {
-		touch = e.touches[0];
-	} else if (e.changedTouches && e.changedTouches.length) {
-		touch = e.changedTouches[0];
-	} else if (e.datail && e.datail !== {}) {
-		touch = e.datail;
-	} else {
-		touch = e;
-	}
-	return {
-		touchX: touch.clientX,
-		touchY: touch.clientY
-	};
-}
-
-function _getRefresherTouchDisabled(e, instance, processTag) {
-	var dataset = instance.getDataset();
-	var state = instance.getState();
-	var loading = _getIsTrue(dataset.loading);
-	var useChatRecordMode = _getIsTrue(dataset.usechatrecordmode);
-	var refresherEnabled = _getIsTrue(dataset.refresherenabled);
-	var useCustomRefresher = _getIsTrue(dataset.usecustomrefresher);
-	var usePageScroll = _getIsTrue(dataset.usepagescroll);
-	var pageScrollTop = parseFloat(dataset.pagescrolltop);
-	var scrollTop = parseFloat(dataset.scrolltop);
-	var finalScrollTop = usePageScroll ? pageScrollTop : scrollTop;
-	var fixedIsTop = false;
-	var isIos = _getIsTrue(dataset.isios);
-	if (!isIos && finalScrollTop == (state.startScrollTop || 0) && finalScrollTop <= 105) {
-		fixedIsTop = true;
-	}
-	var fixedIsTopHitCount = state.fixedIsTopHitCount || 0;
-	if (fixedIsTop) {
-		fixedIsTopHitCount++;
-		if (fixedIsTopHitCount <= 3) {
-			fixedIsTop = false;
-		}
-		state.fixedIsTopHitCount = fixedIsTopHitCount;
-	} else {
-		state.fixedIsTopHitCount = 0;
-	}
-	if (!isIos && processTag === 0) {
-		state.startScrollTop = finalScrollTop || 0;
-	}
-	if (!isIos && processTag === 2) {
-		fixedIsTop = true;
-	}
-	var res = loading || useChatRecordMode || !refresherEnabled || !useCustomRefresher || ((
-		usePageScroll && useCustomRefresher && pageScrollTop > 5) && !fixedIsTop) || ((
-		!usePageScroll && useCustomRefresher && scrollTop > 5) && !fixedIsTop);
-	return res;
-}
-
-function _getAngleIsInRange(e, touch, state, dataset) {
-	var refresherMaxAngle = dataset.refreshermaxangle;
-	var refresherAecc = _getIsTrue(dataset.refresheraecc);
-	var lastRefresherTouchmove = state.lastRefresherTouchmove;
-	var refresherReachMaxAngle = state.refresherReachMaxAngle;
-	var moveDistance = state.oldMoveDistance;
-	if (!lastRefresherTouchmove) {
-		return true;
-	}
-	if (refresherMaxAngle >= 0 && refresherMaxAngle <= 90 && lastRefresherTouchmove) {
-		if ((!moveDistance || moveDistance < 1) && !refresherAecc && refresherReachMaxAngle != null && !
-			refresherReachMaxAngle) {
-			return false;
-		}
-		var x = Math.abs(touch.touchX - lastRefresherTouchmove.touchX);
-		var y = Math.abs(touch.touchY - lastRefresherTouchmove.touchY);
-		var z = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
-		if ((x || y) && x > 1) {
-			var angle = Math.asin(y / z) / Math.PI * 180;
-			if (angle < refresherMaxAngle) {
-				var hitReachMaxAngleCount = state.hitReachMaxAngleCount || 0;
-				state.hitReachMaxAngleCount = ++hitReachMaxAngleCount;
-				if (state.hitReachMaxAngleCount > 2) {
-					state.lastRefresherTouchmove = touch;
-					state.refresherReachMaxAngle = false;
-				}
-				return false;
-			}
-		}
-	}
-	state.lastRefresherTouchmove = touch;
-	return true;
-}
-
-function _handleTouchMovePullingDown(state, instance, onPullingDown) {
-	var oldOnPullingDown = state.onPullingDown || false;
-	if (oldOnPullingDown != onPullingDown) {
-		instance.callMethod('_handleWxsOnPullingDown', onPullingDown);
-	}
-	state.onPullingDown = onPullingDown;
-}
-
-function _getIsTrue(value) {
-	value = (typeof(value) === 'string' ? JSON.parse(value) : value) || false;
-	return value == true || value == 'true';
-}
-
-module.exports = {
-	touchstart: touchstart,
-	touchmove: touchmove,
-	touchend: touchend,
-	mousedown: mousedown,
-	mousemove: mousemove,
-	mouseup: mouseup,
-	mouseleave: mouseleave,
-	propObserver: propObserver
-}

+ 0 - 519
uni_modules/z-paging/components/z-paging/z-paging.vue

@@ -1,519 +0,0 @@
- <!--                        _             
-  ____     _ __   __ _  __ _(_)_ __   __ _ 
- |_  /____| '_ \ / _` |/ _` | | '_ \ / _` |
-  / /_____| |_) | (_| | (_| | | | | | (_| |
- /___|    | .__/ \__,_|\__, |_|_| |_|\__, |
-          |_|          |___/         |___/ 
-V2.0.9
-by ZXLee 2021-11-04
--- >
-<!-- API文档地址:http://z-paging.com -->
-<!-- github地址:https://github.com/SmileZXLee/uni-z-paging -->
-<!-- dcloud地址:https://ext.dcloud.net.cn/plugin?id=3935 -->
-<!-- 反馈QQ群:790460711 -->
-
-<template name="z-paging">
-	<!-- #ifndef APP-NVUE -->
-	<view :class="!usePageScroll&&fixed?'z-paging-content z-paging-content-fixed':'z-paging-content'"
-		:style="[finalPagingStyle]">
-		<!-- 顶部固定的slot -->
-		<slot v-if="!usePageScroll&&$slots.top" name="top"></slot>
-		<view class="zp-page-scroll-top" v-else-if="usePageScroll&&$slots.top" :style="[{'top':`${windowTop}px`,'z-index':topZIndex}]">
-			<slot name="top"></slot>
-		</view>
-		<view :class="{'zp-scroll-view-super':!usePageScroll}" :style="[finalScrollViewStyle]">
-			<scroll-view
-				:class="{'zp-scroll-view':true,'zp-scroll-view-absolute':!usePageScroll,'zp-scroll-view-hide-scrollbar':!showScrollbar}"
-				:scroll-top="scrollTop" :scroll-x="scrollX"
-				:scroll-y="scrollable&&!usePageScroll&&scrollEnable&&refresherStatus!==3" :enable-back-to-top="finalEnableBackToTop"
-				:show-scrollbar="showScrollbar" :scroll-with-animation="finalScrollWithAnimation"
-				:scroll-into-view="scrollIntoView" :lower-threshold="finalLowerThreshold" :upper-threshold="5"
-				:refresher-enabled="finalRefresherEnabled&&!useCustomRefresher" :refresher-threshold="finalRefresherThreshold"
-				:refresher-default-style="finalRefresherDefaultStyle" :refresher-background="refresherBackground"
-				:refresher-triggered="finalRefresherTriggered" @scroll="_scroll" @scrolltolower="_onLoadingMore('toBottom')"
-				@scrolltoupper="_scrollToUpper" @refresherrestore="_onRestore" @refresherrefresh="_onRefresh(true)"  
-				>	
-				<view class="zp-paging-touch-view"
-				<!-- #ifndef APP-VUE || MP-WEIXIN || MP-QQ  || H5 -->
-				@touchstart="_refresherTouchstart" @touchmove="_refresherTouchmove" @touchend="_refresherTouchend" @touchcancel="_refresherTouchend"
-				<!-- #endif -->
-				<!-- #ifdef APP-VUE || MP-WEIXIN || MP-QQ || H5 -->
-				@touchstart="pagingWxs.touchstart" @touchmove="pagingWxs.touchmove" @touchend="pagingWxs.touchend" @touchcancel="pagingWxs.touchend"
-				@mousedown="pagingWxs.mousedown" @mousemove="pagingWxs.mousemove" @mouseup="pagingWxs.mouseup" @mouseleave="pagingWxs.mouseleave"
-				<!-- #endif -->
-				>	
-					<view v-if="finalRefresherFixedBacHeight>0" class="zp-fixed-bac-view" :style="[{'background': refresherFixedBackground,'height': `${finalRefresherFixedBacHeight}px`}]"></view>
-					<view class="zp-paging-main" :style="[scrollViewInStyle,{'transform': finalRefresherTransform,'transition': refresherTransition}]"
-					<!-- #ifdef APP-VUE || MP-WEIXIN || MP-QQ || H5 -->
-					:change:prop="pagingWxs.propObserver" :prop="wxsPropType"
-					:data-refresherThreshold="finalRefresherThreshold" :data-isIos="isIos" :data-isIos13="isIos13"
-					:data-loading="loading||isRefresherInComplete" :data-useChatRecordMode="useChatRecordMode" 
-					:data-refresherEnabled="refresherEnabled" :data-useCustomRefresher="useCustomRefresher" :data-pageScrollTop="wxsPageScrollTop"
-					:data-scrollTop="wxsScrollTop" :data-refresherMaxAngle="refresherMaxAngle" 
-					:data-refresherAecc="refresherAngleEnableChangeContinued" :data-usePageScroll="usePageScroll"
-					:data-oldIsTouchmoving="isTouchmoving" :data-refresherOutRate="finalRefresherOutRate"
-					<!-- #endif -->
-					<!-- #ifdef APP-VUE || H5 -->
-					:change:renderPropScrollTop="pagingRenderjs.renderPropScrollTopChange" :renderPropScrollTop="renderPropScrollTop"
-					:change:renderPropUsePageScroll="pagingRenderjs.renderPropUsePageScrollChange" :renderPropUsePageScroll="renderPropUsePageScroll"
-					<!-- #endif -->
-					>	
-						<view v-if="showRefresher" class="zp-custom-refresher-view"
-							:style="[{'margin-top': `-${finalRefresherThreshold}px`,'background': refresherBackground}]">
-							<view class="zp-custom-refresher-container" :style="[{'height': `${finalRefresherThreshold}px`,'background': refresherBackground}]">
-								<!-- 下拉刷新view -->
-								<view class="zp-custom-refresher-slot-view">
-									<slot
-									<!-- #ifndef MP-QQ -->
-									:refresherStatus="refresherStatus"
-									<!-- #endif -->
-									name="refresher" />
-								</view>
-								<z-paging-refresh ref="refresh" v-if="!showCustomRefresher" :style="[{'height': `${finalRefresherThreshold}px`}]" :status="refresherStatus"
-									:defaultThemeStyle="finalRefresherThemeStyle" :defaultText="finalRefresherDefaultText"
-									:pullingText="finalRefresherPullingText" :refreshingText="finalRefresherRefreshingText" :completeText="finalRefresherCompleteText"
-									:showUpdateTime="showRefresherUpdateTime" :updateTimeKey="refresherUpdateTimeKey"
-									:imgStyle="refresherImgStyle" :titleStyle="refresherTitleStyle" :updateTimeStyle="refresherUpdateTimeStyle"></z-paging-refresh>
-							</view>
-						</view>
-						<view class="zp-paging-container">
-							<slot v-if="useChatRecordMode&&$slots.chatLoading&&loadingStatus!==2&&realTotalData.length"
-								name="chatLoading" />
-							<view v-else-if="useChatRecordMode&&loadingStatus!==2&&realTotalData.length"
-								class="zp-chat-record-loading-container">
-								<text v-if="loadingStatus!==1" @click="_scrollToUpper()"
-									:class="defaultThemeStyle==='white'?'zp-loading-more-text zp-loading-more-text-white':'zp-loading-more-text zp-loading-more-text-black'">{{chatRecordLoadingMoreText}}</text>
-								<image v-else :src="base64Flower" class="zp-chat-record-loading-custom-image">
-								</image>
-							</view>
-							<!-- 全屏Loading -->
-							<slot v-if="$slots.loading&&showLoading&&!loadingFullFixed" name="loading" />
-							<!-- 主体内容 -->
-							<view class="zp-paging-container-content" :style="[finalPagingContentStyle]">
-								<slot />
-								<!-- 上拉加载更多view -->
-								<!-- #ifndef MP-ALIPAY -->
-								<slot v-if="_shouldShowLoadingMore('loadingMoreDefault')" name="loadingMoreDefault" />
-								<slot v-else-if="_shouldShowLoadingMore('loadingMoreLoading')" name="loadingMoreLoading" />
-								<slot v-else-if="_shouldShowLoadingMore('loadingMoreNoMore')" name="loadingMoreNoMore" />
-								<slot v-else-if="_shouldShowLoadingMore('loadingMoreFail')" name="loadingMoreFail" />
-								<z-paging-load-more @click.native="_onLoadingMore('click')"
-									v-else-if="_shouldShowLoadingMore('loadingMoreCustom')" :zConfig="zPagingLoadMoreConfig">
-								</z-paging-load-more>
-								<!-- #endif -->
-								<!-- #ifdef MP-ALIPAY -->
-								<slot v-if="loadingStatus===0&&$slots.loadingMoreDefault&&showLoadingMore&&loadingMoreEnabled&&!useChatRecordMode"
-									name="loadingMoreDefault" />
-								<slot v-else-if="loadingStatus===1&&$slots.loadingMoreLoading&&showLoadingMore&&loadingMoreEnabled"
-									name="loadingMoreLoading" />
-								<slot v-else-if="loadingStatus===2&&$slots.loadingMoreNoMore&&showLoadingMore&&showLoadingMoreNoMoreView&&loadingMoreEnabled&&!useChatRecordMode"
-									name="loadingMoreNoMore" />
-								<slot v-else-if="loadingStatus===3&&$slots.loadingMoreFail&&showLoadingMore&&loadingMoreEnabled&&!useChatRecordMode"
-									name="loadingMoreFail" />
-								<z-paging-load-more @click.native="_onLoadingMore('click')" v-else-if="showLoadingMore&&showDefaultLoadingMoreText&&!(loadingStatus===2&&!showLoadingMoreNoMoreView)&&loadingMoreEnabled&&!useChatRecordMode" :zConfig="zPagingLoadMoreConfig">
-								</z-paging-load-more>
-								<!-- #endif -->
-							</view>
-							<!-- 空数据图 -->
-							<view :class="{'zp-empty-view':true,'zp-empty-view-center':emptyViewCenter}" :style="[{emptyViewSuperStyle}]" v-if="showEmpty">
-								<slot v-if="$slots.empty" name="empty" />
-								<z-paging-empty-view v-else :emptyViewImg="finalEmptyViewImg" :emptyViewText="finalEmptyViewText" :showEmptyViewReload="finalShowEmptyViewReload" 
-								:emptyViewReloadText="finalEmptyViewReloadText" :isLoadFailed="isLoadFailed" :emptyViewStyle="emptyViewStyle" :emptyViewTitleStyle="emptyViewTitleStyle" 
-								:emptyViewImgStyle="emptyViewImgStyle" :emptyViewReloadStyle="emptyViewReloadStyle" :emptyViewZIndex="emptyViewZIndex" :emptyViewFixed="emptyViewFixed" 
-								@reload="_emptyViewReload">
-								</z-paging-empty-view>
-							</view>
-						</view>
-					</view>
-				</view>
-			</scroll-view>
-		</view>
-		<!-- 底部固定的slot -->
-		<slot v-if="!usePageScroll&&$slots.bottom" name="bottom"></slot>
-		<view class="zp-page-scroll-bottom" v-else-if="usePageScroll&&$slots.bottom" :style="[{'bottom': `${windowBottom}px`}]">
-			<slot name="bottom"></slot>
-		</view>
-		<!-- 点击返回顶部view -->
-		<view v-if="showBackToTopClass" :class="backToTopClass" :style="[finalBackToTopStyle]" @click.stop="_backToTopClick">
-			<slot v-if="$slots.backToTop" name="backToTop" />
-			<image v-else class="zp-back-to-top-img" :src="backToTopImg.length?backToTopImg:base64BackToTop"></image>
-		</view>
-		<!-- 全屏Loading(铺满z-paging并固定) -->
-		<view v-if="$slots.loading&&showLoading&&loadingFullFixed" class="zp-loading-fixed">
-			<slot name="loading" />
-		</view>
-	</view>
-	<!-- #endif -->
-	<!-- #ifdef APP-NVUE -->
-	<view :is="finalNvueSuperListIs" :style="[finalPagingStyle]" :class="{'z-paging-content-fixed':fixed&&!usePageScroll}" :scrollable="false">
-		<!-- 顶部固定的slot -->
-		<view ref="zp-page-scroll-top" :is="nViewIs" class="zp-page-scroll-top" v-if="$slots.top" :style="[{'top':`${windowTop}px`,'z-index':topZIndex}]">
-			<slot name="top"></slot>
-		</view>
-		<view ref="n-list" :id="nvueListId" :style="[{'flex': 1},scrollViewStyle,useChatRecordMode ? {transform: nIsFirstPageAndNoMore?'rotate(0deg)':'rotate(180deg)'}:{}]" :is="finalNvueListIs" alwaysScrollableVertical="true"
-			:fixFreezing="nFixFreezing" :show-scrollbar="showScrollbar&&!useChatRecordMode" :loadmoreoffset="finalLowerThreshold" :enable-back-to-top="enableBackToTop"
-			:scrollable="scrollable&&scrollEnable&&refresherStatus!==3" :bounce="nvueBounce" :column-count="nWaterfallColumnCount" :column-width="nWaterfallColumnWidth"
-			:column-gap="nWaterfallColumnGap" :left-gap="nWaterfallLeftGap" :right-gap="nWaterfallRightGap"
-			@loadmore="_nOnLoadmore" @scroll="_nOnScroll">
-			<refresh class="zp-n-refresh" :style="[nvueRefresherStyle]" v-if="finalNvueRefresherEnabled" :display="nRefresherLoading?'show':'hide'" @refresh="_nOnRrefresh"
-				@pullingdown="_nOnPullingdown">
-				<view ref="zp-n-refresh-container" class="zp-n-refresh-container">
-					<!-- 下拉刷新view -->
-					<slot v-if="zScopedSlots.refresher" :refresherStatus="refresherStatus" name="refresher" />
-					<z-paging-refresh ref="refresh" v-else :status="refresherStatus" :defaultThemeStyle="finalRefresherThemeStyle"
-						:defaultText="finalRefresherDefaultText" :pullingText="finalRefresherPullingText" :refreshingText="finalRefresherRefreshingText" :completeText="finalRefresherCompleteText"
-						:showUpdateTime="showRefresherUpdateTime" :updateTimeKey="refresherUpdateTimeKey"
-						:imgStyle="refresherImgStyle" :titleStyle="refresherTitleStyle" :updateTimeStyle="refresherUpdateTimeStyle"></z-paging-refresh>
-				</view>
-			</refresh>
-			<view ref="zp-n-list-top-tag" class="zp-n-list-top-tag" :style="[{height:finalNvueRefresherEnabled&&isIos?'0px':'1px'}]" :is="nViewIs"></view>
-			<view v-if="nShowRefresherReveal" ref="zp-n-list-refresher-reveal" :style="[{transform:`translateY(-${nShowRefresherRevealHeight}px)`,height:'0px'}]" :is="nViewIs">
-				<slot v-if="zScopedSlots.refresher" :refresherStatus="refresherStatus" name="refresher" />
-				<z-paging-refresh ref="refresh" v-else :status="refresherStatus" :defaultThemeStyle="finalRefresherThemeStyle"
-					:defaultText="finalRefresherDefaultText" :pullingText="finalRefresherPullingText" :refreshingText="finalRefresherRefreshingText" :completeText="finalRefresherCompleteText" 
-					:showUpdateTime="showRefresherUpdateTime" :updateTimeKey="refresherUpdateTimeKey"
-					:imgStyle="refresherImgStyle" :titleStyle="refresherTitleStyle" :updateTimeStyle="refresherUpdateTimeStyle"></z-paging-refresh>
-			</view>
-			<slot />
-			<!-- 空数据图 -->
-			<view class="z-paging-empty-view" :class="{'z-paging-content-fixed':usePageScroll}" style="flex: 1;" :style="[scrollViewStyle,emptyViewSuperStyle,useChatRecordMode ? {transform: nIsFirstPageAndNoMore?'rotate(0deg)':'rotate(180deg)'}:{}]" v-if="showEmpty" :is="nViewIs">
-				<view :class="{'zp-empty-view':true,'zp-empty-view-center':emptyViewCenter}">
-					<slot v-if="$slots.empty" name="empty" />
-					<z-paging-empty-view v-else :emptyViewImg="finalEmptyViewImg" :emptyViewText="finalEmptyViewText" :showEmptyViewReload="finalShowEmptyViewReload" 
-					:emptyViewReloadText="finalEmptyViewReloadText" :isLoadFailed="isLoadFailed" :emptyViewStyle="emptyViewStyle" :emptyViewTitleStyle="emptyViewTitleStyle" 
-					:emptyViewImgStyle="emptyViewImgStyle" :emptyViewReloadStyle="emptyViewReloadStyle" :emptyViewZIndex="emptyViewZIndex" :emptyViewFixed="emptyViewFixed" 
-					@reload="_emptyViewReload">
-					</z-paging-empty-view>
-				</view>
-			</view>
-			<view v-if="!hideNvueBottomTag" ref="zp-n-list-bottom-tag" class="zp-n-list-bottom-tag" is="header"></view>
-			<!-- 全屏Loading -->
-			<view :class="{'z-paging-content-fixed':usePageScroll}" style="flex: 1;" :style="[scrollViewStyle,useChatRecordMode ? {transform: nIsFirstPageAndNoMore?'rotate(0deg)':'rotate(180deg)'}:{}]" v-if="$slots.loading&&showLoading&&!loadingFullFixed" :is="nViewIs">
-				<slot name="loading" />
-			</view>
-			<!-- 上拉加载更多view -->
-			<view :is="nViewIs" v-if="!refresherOnly&&loadingMoreEnabled">
-				<view v-if="useChatRecordMode">
-					<view v-if="loadingStatus!==2&&realTotalData.length">
-						<slot v-if="$slots.chatLoading"
-							name="chatLoading" />
-						<view v-else class="zp-chat-record-loading-container">
-							<text v-if="loadingStatus!==1" @click="_scrollToUpper()"
-								:class="defaultThemeStyle==='white'?'zp-loading-more-text zp-loading-more-text-white':'zp-loading-more-text zp-loading-more-text-black'">{{chatRecordLoadingMoreText}}</text>
-							<view>
-								<loading-indicator v-if="loadingStatus===1" :animating="true"
-									class="zp-line-loading-image">
-								</loading-indicator>
-							</view>
-						</view>
-					</view>
-				</view>
-				<view :style="nLoadingMoreFixedHeight?{height:loadingMoreCustomStyle&&loadingMoreCustomStyle.height?loadingMoreCustomStyle.height:'80rpx'}:{}">
-					<slot v-if="_shouldShowLoadingMore('loadingMoreDefault')" name="loadingMoreDefault" />
-					<slot v-else-if="_shouldShowLoadingMore('loadingMoreLoading')" name="loadingMoreLoading" />
-					<slot v-else-if="_shouldShowLoadingMore('loadingMoreNoMore')" name="loadingMoreNoMore" />
-					<slot v-else-if="_shouldShowLoadingMore('loadingMoreFail')" name="loadingMoreFail" />
-					<z-paging-load-more @click.native="_onLoadingMore('click')"
-						v-else-if="_shouldShowLoadingMore('loadingMoreCustom')" :zConfig="zPagingLoadMoreConfig">
-					</z-paging-load-more>
-				</view>
-			</view>
-		</view>
-		<!-- 底部固定的slot -->
-		<slot name="bottom"></slot>
-		<!-- 点击返回顶部view -->
-		<view v-if="showBackToTopClass" :class="backToTopClass" :style="[finalBackToTopStyle]" @click.stop="_backToTopClick">
-			<slot v-if="$slots.backToTop" name="backToTop" />
-			<image v-else class="zp-back-to-top-img" :src="backToTopImg.length?backToTopImg:base64BackToTop"></image>
-		</view>
-		<!-- 全屏Loading(铺满z-paging并固定) -->
-		<view v-if="$slots.loading&&showLoading&&loadingFullFixed" class="zp-loading-fixed">
-			<slot name="loading" />
-		</view>
-	</view>
-	<!-- #endif -->
-</template>
-<!-- #ifdef APP-VUE || MP-WEIXIN || MP-QQ || H5 -->
-<script
-    src="./wxs/z-paging-wxs.wxs"
-    module="pagingWxs"
-    lang="wxs"
-></script>
-<!-- #endif -->
-<script module="pagingRenderjs" lang="renderjs">
-	import pagingRenderjs from './wxs/z-paging-renderjs.js';
-	/**
-	 * z-paging 分页组件
-	 * @description 【uni-app自动分页器】超简单,低耦合!仅需两步轻松完成完整分页逻辑(下拉刷新、上拉加载更多),分页全自动处理。支持自定义加载更多的文字或整个view,自定义下拉刷新样式,自动管理空数据view等。
-	 * @tutorial http://z-paging.com
-	 * @property {Number|String} default-page-no 自定义pageNo,默认为1
-	 * @property {Number|String} default-page-size 自定义pageSize,默认为10
-	 * @property {Number|Object} data-key 为保证数据一致,设置当前tab切换时的标识key,并在complete中传递相同key,若二者不一致,则complete将不会生效
-	 * @property {String} autowire-list-name 【极简写法】自动注入的list名,可自动修改父view(包含ref="paging")中对应name的list值(z-paging标签必须设置`ref="paging"`)
-	 * @property {String} autowire-query-name 【极简写法】自动注入的query名,可自动调用父view(包含ref="paging")中的query方法(z-paging标签必须设置`ref="paging"`)
-	 * @property {Number|String} delay 调用complete后延迟处理的时间,单位为毫秒
-	 * @property {Number|String} min-delay 触发@query后最小延迟处理的时间,单位为毫秒,默认0毫秒,优先级低于delay(假设设置为300毫秒,若分页请求时间小于300毫秒,则在调用complete后延迟[300毫秒-请求时长];若请求时长大于300毫秒,则不延迟),当show-refresher-when-reload为true或reload(true)时,其最小值为400
-	 * @property {String} language i18n国际化设置语言,支持简体中文(zh-cn)、繁体中文(zh-hant-cn)和英文(en)
-	 * @property {Boolean} follow-system-language i18n国际化默认是否跟随系统语言,默认为是
-	 * @property {Object} paging-style 设置z-paging的style,部分平台(如微信小程序)无法直接修改组件的style,可使用此属性代替
-	 * @property {String} height z-paging的高度,优先级低于pagingStyle中设置的height,传字符串,如100px、100rpx、100%
-	 * @property {String} width z-paging的宽度,优先级低于pagingStyle中设置的width,传字符串,如100px、100rpx、100%
-	 * @property {String} bg-color z-paging的背景色,优先级低于pagingStyle中设置的background-color。传字符串,如"#ffffff"
-	 * @property {Object} paging-content-style 设置z-paging的容器(插槽的父view)的style
-	 * @property {Boolean} auto-height z-paging是否自动高度,若自动高度则会自动铺满屏幕,默认为否
-	 * @property {Number|String} auto-height-addition z-paging是否自动高度时,附加的高度,注意添加单位px或rpx,默认为px,若需要减少高度,请传负数
-	 * @property {String} default-theme-style loading(下拉刷新、上拉加载更多)的主题样式,支持black,white,默认black
-	 * @property {String} refresher-theme-style 下拉刷新的主题样式,支持black,white,默认black
-	 * @property {Object} refresher-img-style 自定义下拉刷新中左侧图标的样式
-	 * @property {Object} refresher-title-style 自定义下拉刷新中右侧状态描述文字的样式
-	 * @property {Object} refresher-update-time-style 自定义下拉刷新中右侧最后更新时间文字的样式(show-refresher-update-time为true时有效)
-	 * @property {String} loading-more-theme-style 底部加载更多的主题样式,支持black,white,默认black
-	 * @property {Boolean} refresher-only 是否只使用下拉刷新,设置为true后将关闭mounted自动请求数据、关闭滚动到底部加载更多,强制隐藏空数据图。默认为否
-	 * @property {Number|String} refresher-complete-delay 自定义下拉刷新结束以后延迟回弹的时间,单位为毫秒,默认为0
-	 * @property {Number|String} refresher-complete-duration 自定义下拉刷新结束回弹动画时间,单位为毫秒,默认为300毫秒(refresherEndBounceEnabled为false时,refresherCompleteDuration为设定值的1/3),nvue无效
-	 * @property {Boolean} use-page-scroll 使用页面滚动,默认为否,当设置为是时则使用页面的滚动而非此组件内部的scroll-view的滚动,使用页面滚动时z-paging无需设置确定的高度且对于长列表展示性能更高,但配置会略微繁琐
-	 * @property {Boolean} fixed z-paging是否使用fixed布局,若使用fixed布局,则z-paging的父view无需固定高度,z-paging高度默认为100%,默认为否(当使用内置scroll-view滚动时有效)
-	 * @property {Boolean} safe-area-inset-bottom 是否开启底部安全区域适配,默认为否
-	 * @property {Boolean} scrollable 是否可以滚动,使用内置scroll-view和nvue时有效,默认为是
-	 * @property {Boolean} auto [z-paging]mounted后是否自动调用reload方法(mounted后自动调用接口),默认为是
-	 * @property {Boolean} auto-scroll-to-top-when-reload reload时是否自动滚动到顶部,默认为是
-	 * @property {Boolean} auto-clean-list-when-reload reload时是否立即自动清空原list,默认为是,若立即自动清空,则在reload之后、请求回调之前页面是空白的
-	 * @property {Boolean} show-refresher-when-reload 调用reload方法时是否自动显示下拉刷新view,默认为否
-	 * @property {Boolean} show-loading-more-when-reload 调用reload方法时自动显示加载更多view,且为加载中状态(仅初始设置有效,不可动态修改)
-	 * @property {Boolean} refresher-update-time-key 如果需要区别不同页面的最后更新时间,请为不同页面的z-paging的`refresher-update-time-key`设置不同的字符串
-	 * @property {Boolean} use-custom-refresher 是否使用自定义的下拉刷新,默认为是,即使用z-paging的下拉刷新。设置为false即代表使用uni scroll-view自带的下拉刷新,h5、App、微信小程序以外的平台不支持uni scroll-view自带的下拉刷新
-	 * @property {Number|String} refresher-fps 自定义下拉刷新下拉帧率,默认为40,过高可能会出现抖动问题
-	 * @property {Number|String} refresher-max-angle 自定义下拉刷新允许触发的最大下拉角度,默认为40度,当下拉角度小于设定值时,自定义下拉刷新动画不会被触发
-	 * @property {Boolean} refresher-angle-enable-change-continued 自定义下拉刷新的角度由未达到最大角度变到达到最大角度时,是否继续下拉刷新手势,默认为否
-	 * @property {String|Object} refresher-default-text 自定义下拉刷新默认状态下的文字
-	 * @property {String|Object} refresher-pulling-text 自定义下拉刷新松手立即刷新状态下的文字
-	 * @property {String|Object} refresher-refreshing-text 自定义下拉刷新刷新中状态下的文字
-	 * @property {String|Object} refresher-complete-text 自定义下拉刷新刷新结束状态下的文字
-	 * @property {Boolean} refresher-end-bounce-enabled 是否开启自定义下拉刷新刷新结束回弹效果,默认为是
-	 * @property {Object} loading-more-custom-style 自定义底部加载更多样式
-	 * @property {Object} loading-more-loading-icon-custom-style 自定义底部加载更多加载中动画样式
-	 * @property {String} loading-more-loading-icon-type 自定义底部加载更多加载中动画图标类型,可选circle或flower,默认为circle
-	 * @property {String} loading-more-loading-icon-custom-image 自定义底部加载更多加载中动画图标图片
-	 * @property {Boolean} loading-more-loading-animated 底部加载更多加载中view是否展示旋转动画(loading-more-loading-icon-custom-image有值时有效,nvue无效)
-	 * @property {Boolean} loading-more-enabled 是否启用加载更多数据(含滑动到底部加载更多数据和点击加载更多数据),默认为是
-	 * @property {Boolean} to-bottom-loading-more-enabled 是否启用滑动到底部加载更多数据
-	 * @property {String|Object} loading-more-default-text 滑动到底部"默认"文字,默认为【点击加载更多】
-	 * @property {String|Object} loading-more-loading-text 滑动到底部"加载中"文字,默认为【正在加载...】
-	 * @property {String|Object} loading-more-no-more-text 滑动到底部"没有更多"文字,默认为【没有更多了】
-	 * @property {String|Object} loading-more-fail-text 滑动到底部"加载失败"文字,默认为【加载失败,点击重新加载】
-	 * @property {Boolean} hide-loading-more-when-no-more-and-inside-of-paging 当没有更多数据且分页内容未超出z-paging时是否隐藏没有更多数据的view,默认为是
-	 * @property {Boolean} hide-loading-more-when-no-more-and-inside-of-paging 当没有更多数据且分页内容未超出z-paging时是否隐藏没有更多数据的view,默认为是
-	 * @property {Boolean} inside-more 当分页未满一屏时,是否自动加载更多(nvue无效),默认为否
-	 * @property {Boolean} show-default-loading-more-text 是否显示默认的加载更多text,默认为是
-	 * @property {Boolean} show-loading-more-no-more-line 是否显示没有更多数据的分割线,默认为是
-	 * @property {Object} loading-more-no-more-line-custom-style 自定义底部没有更多数据的分割线样式
-	 * @property {Boolean} hide-empty-view 是否强制隐藏空数据图,默认为否
-	 * @property {String|Object} empty-view-text 空数据图描述文字,默认为“没有数据哦~”
-	 * @property {Boolean} show-empty-view-reload 是否显示空数据图重新加载按钮(无数据时),默认为否
-	 * @property {Boolean} show-empty-view-reload-when-error 加载失败时是否显示空数据图重新加载按钮,默认为是
-	 * @property {String} empty-view-img 空数据图图片,默认使用z-paging内置的图片
-	 * @property {String|Object} empty-view-reload-text 空数据图点击重新加载文字
-	 * @property {String|Object} empty-view-error-text 空数据图“加载失败”描述文字
-	 * @property {String} empty-view-error-img 空数据图“加载失败”图片,默认使用z-paging内置的图片(建议使用绝对路径)
-	 * @property {Object} empty-view-style 空数据图样式
-     * @property {Object} empty-view-super-style 空数据图容器样式
-	 * @property {Object} empty-view-img-style 空数据图img样式
-	 * @property {Object} empty-view-title-style 空数据图描述文字样式
-	 * @property {Object} empty-view-reload-style 空数据图重新加载按钮样式
-	 * @property {Boolean} empty-view-fixed 空数据图片是否铺满z-paging,默认为是。若设置为否,则为填充满z-paging的剩余部分
-	 * @property {Boolean} empty-view-center 空数据图片是否垂直居中,默认为是。emptyViewFixed为false时有效
-	 * @property {Boolean} auto-hide-empty-view-when-loading 加载中时是否自动隐藏空数据图,默认为是
-	 * @property {Boolean} auto-hide-empty-view-when-pull 用户下拉列表触发下拉刷新加载中时是否自动隐藏空数据图,默认为是
-	 * @property {Boolean} auto-hide-loading-after-first-loaded 第一次加载后是否自动隐藏loading slot,默认为是
-	 * @property {Boolean} loading-full-fixed loading slot是否铺满屏幕并固定,默认为否
-	 * @property {Boolean} auto-show-back-to-top 自动显示点击返回顶部按钮,默认为否
-	 * @property {Number|String} back-to-top-threshold 点击返回顶部按钮显示/隐藏的阈值(滚动距离),单位为px,默认为400rpx
-	 * @property {String} back-to-top-img 点击返回顶部按钮的自定义图片地址,默认使用z-paging内置的图片
-	 * @property {Boolean} back-to-top-with-animate 点击返回顶部按钮返回到顶部时是否展示过渡动画,默认为是
-	 * @property {Number|String} back-to-top-bottom 点击返回顶部按钮与底部的距离,注意添加单位px或rpx,默认为160rpx
-	 * @property {Object} back-to-top-style 点击返回顶部按钮的自定义样式
-	 * @property {Boolean} show-scrollbar 控制是否出现滚动条,默认为是
-	 * @property {Boolean} scroll-x 是否允许横向滚动,默认为否
-	 * @property {Boolean} scroll-to-top-bounce-enabled iOS设备上滚动到顶部时是否允许回弹效果,默认为否。关闭回弹效果后可使滚动到顶部与下拉刷新更连贯,但是有吸顶view时滚动到顶部时可能出现抖动。
-	 * @property {Boolean} scroll-with-animation 控制是否出现滚动条,默认为否
-	 * @property {String} scroll-into-view 值应为某子元素id(id不能以数字开头)。设置哪个方向可滚动,则在哪个方向滚动到该元素
-	 * @property {Number|String} lower-threshold 距底部/右边多远时(单位px),触发 scrolltolower 事件,默认为100rpx
-	 * @property {Boolean} enable-back-to-top iOS点击顶部状态栏、安卓双击标题栏时,滚动条返回顶部,只支持竖向,默认为是
-	 * @property {Boolean} refresher-enabled 是否开启自定义下拉刷新,默认为是
-	 * @property {Number|String} refresher-threshold 设置自定义下拉刷新阈值,默认为80rpx
-	 * @property {String} refresher-default-style 设置自定义下拉刷新默认样式,支持设置 black,white,none,none 表示不使用默认样式,默认为black
-	 * @property {String} refresher-background 设置自定义下拉刷新区域背景颜色
-	 * @property {Boolean} show-refresher-update-time 是否显示上次下拉刷新更新时间,默认为否
-	 * @property {String} refresher-update-time-key 上次下拉刷新更新时间的key,用于区别不同的上次更新时间
-	 * @property {Number|String} local-paging-loading-time 本地分页时上拉加载更多延迟时间,单位为毫秒,默认200毫秒
-	 * @property {Boolean} use-chat-record-mode 使用聊天记录模式,默认为否
-	 * @property {Number} top-z-index slot="top"的view的z-index,仅使用页面滚动时有效,默认为99
-	 * @property {Number} super-content-z-index z-paging内容容器父view的z-index,默认为1
-	 * @property {Number} content-z-index z-paging内容容器部分的z-index,默认为10
-	 * @property {Number} empty-view-z-index 空数据view的z-index,默认为9
-	 * @property {Boolean} auto-full-height 使用页面滚动时,是否在不满屏时自动填充满屏幕,默认为是
-	 * @property {Boolean} concat 自动拼接complete中传过来的数组(使用聊天记录模式时无效),默认为是
-	 * @property {String} nvue-list-is nvue中修改列表类型,可选值有list、waterfall和scroller,默认为list
-	 * @property {Object} nvue-waterfall-config nvue waterfall配置,仅在nvue中且nvueListIs=waterfall时有效,配置参数详情参见:https://uniapp.dcloud.io/component/waterfall
-	 * @property {Boolean} nvue-bounce nvue 控制是否回弹效果,iOS不支持动态修改(若禁用回弹效果,下拉刷新将失效),默认为是
-	 * @property {Boolean} nvue-fast-scroll nvue中通过代码滚动到顶部/底部时,是否加快动画效果(无滚动动画时无效),默认为否
-	 * @property {String} nvue-list-id nvue中list的id
-	 * @property {Object} nvue-refresher-style nvue中refresh组件的样式
-	 * @property {Boolean} hide-nvue-bottom-tag 是否隐藏nvue列表底部的tagView,此view用于标识滚动到底部位置,若隐藏则滚动到底部功能将失效,在nvue中实现吸顶+swiper功能时需将最外层z-paging的此属性设置为true。默认为否
-	 * @property {Boolean} show-console-error 是否将错误信息打印至控制台,默认为是
-	 * @event {Function} query 下拉刷新或滚动到底部时会自动触发此方法。z-paging加载时也会触发(若要禁止,请设置:auto="false")。pageNo和pageSize会自动计算好,直接传给服务器即可。
-	 * @event {Function} refresherStatusChange 自定义下拉刷新状态改变(use-custom-refresher为true时生效)【注:通过`:refresher-status.sync`绑定当前data中的指定变量亦可】
-	 * @event {Function} loadingStatusChange 上拉加载更多状态改变
-	 * @event {Function} refresherTouchstart 自定义下拉刷新下拉开始(use-custom-refresher为true时生效)【注:当需要更细致定制自定义下拉刷新时使用,如果只需监听下拉刷新各个状态改变,使用`refresherStatusChange`即可】
-	 * @event {Function} refresherTouchmove 自定义下拉刷新下拉中开始(use-custom-refresher为true时生效)【注:当需要更细致定制自定义下拉刷新时使用,如果只需监听下拉刷新各个状态改变,使用`refresherStatusChange`即可】
-	 * @event {Function} refresherTouchend 自定义下拉刷新下拉结束(use-custom-refresher为true时生效)【注:当需要更细致定制自定义下拉刷新时使用,如果只需监听下拉刷新各个状态改变,使用`refresherStatusChange`即可】
-	 * @event {Function} onRefresh 自定义下拉刷新被触发
-	 * @event {Function} onRestore 自定义下拉刷新被复位
-	 * @event {Function} scroll `z-paging`内置的scroll-view滚动时触发
-	 * @event {Function} scrollTopChange scrollTop改变时触发,使用点击返回顶部时需要获取scrollTop时可使用此事件【注:通过`:scroll-top.sync`绑定当前data中的指定变量亦可】(@scrolltoupper触发时,也会自动触发此方法,且scrollTop=0)
-	 * @event {Function} scrolltolower `z-paging`内置的scroll-view滚动底部时触发
-	 * @event {Function} scrolltoupper `z-paging`内置的scroll-view滚动顶部时触发
-	 * @event {Function} listChange 分页渲染的数组改变时触发
-	 * @event {Function} emptyViewReload 点击了空数据图中的重新加载按钮
-	 * @example <z-paging ref="paging" v-model="dataList" @query="queryList"></z-paging>
-	 */
-	export default {
-		name:"z-paging",
-		// #ifdef APP-VUE || H5
-		mixins: [pagingRenderjs],
-		// #endif
-		// 以下代码是为了欺骗编译器使props的代码提示功能生效,不会被编译到项目中
-		// #ifdef QUICKAPP-WEBVIEW-UNION
-		props: {
-			defaultPageNo: {type: [Number, String]},
-			defaultPageSize: {type: [Number, String]},
-			dataKey: {type: [Number, Object]},
-			autowireListName: {type: String},
-			autowireQueryName: {type: String},
-			delay: {type: [Number, String]},
-			minDelay: {type: [Number, String]},
-			language: {type: String},
-			followSystemLanguage: {type: Boolean},
-			pagingStyle: {type: Object},
-			height: {type: String},
-			width: {type: String},
-			bgColor: {type: String},
-			pagingContentStyle: {type: Object},
-			autoHeight: {type: Boolean},
-			autoHeightAddition: {type: [Number, String]},
-			defaultThemeStyle: {type: String},
-			refresherThemeStyle: {type: String},
-			refresherImgStyle: {type: Object},
-			refresherTitleStyle: {type: Object},
-			refresherUpdateTimeStyle: {type: Object},
-			loadingMoreThemeStyle: {type: String},
-			refresherOnly: {type: Boolean},
-			refresherCompleteDelay: {type: [Number, String]},
-			refresherCompleteDuration: {type: [Number, String]},
-			usePageScroll: {type: Boolean},
-			fixed: {type: Boolean},
-			safeAreaInsetBottom: {type: Boolean},
-			scrollable: {type: Boolean},
-			mountedAutoCallReload: {type: Boolean},
-			auto: {type: Boolean},
-			autoScrollToTopWhenReload: {type: Boolean},
-			autoCleanListWhenReload: {type: Boolean},
-			showRefresherWhenReload: {type: Boolean},
-			showLoadingMoreWhenReload: {type: Boolean},
-			useCustomRefresher: {type: Boolean},
-			refresherFps: {type: [Number, String]},
-			refresherMaxAngle: {type: [Number, String]},
-			refresherAngleEnableChangeContinued: {type: Boolean},
-			refresherDefaultText: {type: [String, Object]},
-			refresherPullingText: {type: [String, Object]},
-			refresherRefreshingText: {type: [String, Object]},
-			refresherCompleteText: {type: [String, Object]},
-			refresherEndBounceEnabled: {type: Boolean},
-			loadingMoreCustomStyle: {type: Object},
-			loadingMoreLoadingIconCustomStyle: {type: Object},
-			loadingMoreLoadingIconType: {type: String},
-			loadingMoreLoadingIconCustomImage: {type: String},
-			loadingMoreLoadingAnimated: {type: Boolean},
-			loadingMoreEnabled: {type: Boolean},
-			toBottomLoadingMoreEnabled: {type: Boolean},
-			loadingMoreDefaultText: {type: [String, Object]},
-			loadingMoreLoadingText: {type: [String, Object]},
-			loadingMoreNoMoreText: {type: [String, Object]},
-			loadingMoreFailText: {type: [String, Object]},
-			hideLoadingMoreWhenNoMoreAndInsideOfPaging: {type: Boolean},
-			hideLoadingMoreWhenNoMoreByLimit: {type: Number},
-			insideMore: {type: Boolean},
-			showDefaultLoadingMoreText: {type: Boolean},
-			showLoadingMoreNoMoreView: {type: Boolean},
-			showLoadingMoreNoMoreLine: {type: Boolean},
-			loadingMoreNoMoreLineCustomStyle: {type: Object},
-			hideEmptyView: {type: Boolean},
-			emptyViewText: {type: [String, Object]},
-			showEmptyViewReload: {type: Boolean},
-			showEmptyViewReloadWhenError: {type: Boolean},
-			emptyViewReloadText: {type: [String, Object]},
-			emptyViewImg: {type: String},
-			emptyViewErrorText: {type: [String, Object]},
-			emptyViewErrorImg: {type: String},
-			emptyViewStyle: {type: Object},
-            emptyViewSuperStyle: {type: Object},
-			emptyViewImgStyle: {type: Object},
-			emptyViewTitleStyle: {type: Object},
-			emptyViewReloadStyle: {type: Object},
-			emptyViewFixed: {type: Boolean},
-			emptyViewCenter: {type: Boolean},
-			autoHideEmptyViewWhenLoading: {type: Boolean},
-			autoHideEmptyViewWhenPull: {type: Boolean},
-			autoHideLoadingAfterFirstLoaded: {type: Boolean},
-			loadingFullFixed: {type: Boolean},
-			autoShowBackToTop: {type: Boolean},
-			backToTopThreshold: {type: [Number, String]},
-			backToTopImg: {type: String},
-			backToTopWithAnimate: {type: Boolean},
-			backToTopBottom: {type: [Number, String]},
-			backToTopStyle: {type: Object},
-			showScrollbar: {type: Boolean},
-			scrollX: {type: Boolean},
-			scrollToTopBounceEnabled: {type: Boolean},
-			scrollToBottomBounceEnabled: {type: Boolean},
-			scrollWithAnimation: {type: Boolean},
-			scrollIntoView: {type: String},
-			lowerThreshold: {type: [Number, String]},
-			enableBackToTop: {type: Boolean},
-			refresherEnabled: {type: Boolean},
-			refresherThreshold: {type: [Number, String]},
-			refresherDefaultStyle: {type: String},
-			refresherBackground: {type: String},
-			refresherFixedBackground: {type: String},
-			refresherFixedBacHeight: {type: [Number, String]},
-			refresherOutRate: {type: Number},
-			showRefresherUpdateTime: {type: Boolean},
-			refresherUpdateTimeKey: {type: String},
-			localPagingLoadingTime: {type: [Number, String]},
-			useChatRecordMode: {type: Boolean},
-			topZIndex: {type: Number},
-			superContentZIndex: {type: Number},
-			contentZIndex: {type: Number},
-			emptyViewZIndex: {type: Number},
-			autoFullHeight: {type: Boolean},
-			concat: {type: Boolean},
-			nvueListIs: {type: String},
-			nvueWaterfallConfig: {type: Object},
-			nvueBounce: {type: Boolean},
-			nvueFastScroll: {type: Boolean},
-			nvueListId: {type: String},
-			nvueRefresherStyle: {type: Object},
-			hideNvueBottomTag: {type: Boolean},
-			showConsoleError: {type: Boolean},
-			value: {type: Array}
-		}
-		// #endif
-	}
-</script>
-<script
-    src="./js/z-paging-main.js"></script>
-	
-<style scoped>
-	@import "./css/z-paging-main.css";
-	@import "./css/z-paging-static.css";
-</style>

+ 0 - 84
uni_modules/z-paging/package.json

@@ -1,84 +0,0 @@
-{
-  "id": "z-paging",
-  "displayName": "【z-paging下拉刷新、上拉加载更多】超简单、低耦合!仅需两步轻松完成完整分页逻辑",
-  "version": "2.0.9",
-  "description": "【支持nvue,使用wxs+renderjs实现】全平台兼容,支持自定义下拉刷新、上拉加载更多,支持自动管理空数据图、点击返回顶部,支持聊天分页、本地分页,支持展示最后更新时间,支持国际化等等",
-  "keywords": [
-    "下拉刷新",
-    "上拉加载",
-    "分页器",
-    "nvue",
-    "wxs"
-],
-  "repository": "https://github.com/SmileZXLee/uni-z-paging",
-  "engines": {
-    "HBuilderX": "^3.0.7"
-  },
-  "dcloudext": {
-    "category": [
-        "前端组件",
-        "通用组件"
-    ],
-    "sale": {
-      "regular": {
-        "price": "0.00"
-      },
-      "sourcecode": {
-        "price": "0.00"
-      }
-    },
-    "contact": {
-      "qq": "393727164"
-    },
-    "declaration": {
-      "ads": "无",
-      "data": "无",
-      "permissions": "无"
-    },
-    "npmurl": ""
-  },
-  "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"
-        },
-        "Vue": {
-            "vue2": "y",
-            "vue3": "u"
-        }
-      }
-    }
-  }
-}

+ 0 - 46
uni_modules/z-paging/readme.md

@@ -1,46 +0,0 @@
-# z-paging
-
-
-***  
-
-## 【注意】由V1.9.0起,fixed属性默认值为true,z-paging默认会铺满屏幕。老项目更新请注意,使用侧滑滚动切换选项卡或需要局部使用z-paging请设置:fixed="false"。如果您希望fixed属性默认为false,请参考文档:z-paging.com,将fixed默认值设置为false。
-*** 
-
-### API文档地址:[https://z-paging.com](http://z-paging.com)
-### 备用API文档地址:[https://www.zxlee.cn/z-paging/index.html](https://www.zxlee.cn/z-paging/index.html) 
-
-***  
-### 功能&特点
-* 【配置简单】仅需两步(绑定网络请求方法、绑定分页结果数组)轻松完成完整下拉刷新,上拉加载更多功能。
-* 【低耦合,低侵入】分页自动管理。在page中无需处理任何分页相关逻辑,无需在data中定义任何分页相关变量,全由z-paging内部处理。
-* 【超灵活,支持各种类型自定义】支持自定义下拉刷新,自定义上拉加载更多,自带自定义下拉刷新效果,及其他数十种自定义属性。
-* 【功能丰富】支持国际化,支持自定义且自动管理空数据图,支持主题模式切换,支持本地分页,支持聊天分页模式,支持展示最后更新时间,支持吸顶效果,支持内部scroll-view滚动与页面滚动,支持一键滚动到顶部等诸多功能。
-* 【多平台兼容,细致,流畅】支持nvue,支持h5、app及各家小程序;在app-vue、h5、微信小程序、QQ小程序上使用wxs实现下拉刷新,大幅提升性能。多处细节优化,给您精致流畅的体验。
-
-*** 
-### 反馈qq群(点击加群):[790460711](https://jq.qq.com/?_wv=1027&k=vU2fKZZH)
- 
-*** 
-#### 关于自动引入组件
-
-> `z-paging` 支持[easycom组件规范](https://uniapp.dcloud.io/component/README?id=easycom组件规范),无需引用和注册组件即可直接使用,在正在运行的项目中导入`z-paging`可能会提示:`Unknown custom element:<z-paging> - did you register the component corrently?... `,此时需要重新运行项目即可。
-
-### 预览
-
-***
-
-|                 自定义下拉刷新效果+分页演示                  |                      吸顶效果+分页演示                       |
-| :----------------------------------------------------------: | :----------------------------------------------------------: |
-| ![](http://www.zxlee.cn/github/uni-z-paging/uni-z-paging.gif) | ![](http://www.zxlee.cn/github/uni-z-paging/uni-z-paging2.gif) |
-
-|                   滑动切换选项卡+分页演示                    |                    聊天记录模式+分页演示                     |
-| :----------------------------------------------------------: | :----------------------------------------------------------: |
-| ![](http://www.zxlee.cn/github/uni-z-paging/z-paging-demo3.gif) | ![](http://www.zxlee.cn/github/uni-z-paging/z-paging-demo4.gif) |
-
-### 在线demo体验地址:
-
-* [http://www.zxlee.cn/github/uni-z-paging/demo/index.html](http://www.zxlee.cn/github/uni-z-paging/demo/index.html)
-
-| 扫码体验                                                     |
-| ------------------------------------------------------------ |
-| ![](http://www.zxlee.cn/github/uni-z-paging/z-paging-demo.png) |

+ 0 - 21
uview-ui/LICENSE

@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2020 www.uviewui.com
-
-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.

+ 0 - 105
uview-ui/README.md

@@ -1,105 +0,0 @@
-<p align="center">
-    <img alt="logo" src="https://uviewui.com/common/logo.png" width="120" height="120" style="margin-bottom: 10px;">
-</p>
-<h3 align="center" style="margin: 30px 0 30px;font-weight: bold;font-size:40px;">uView</h3>
-<h3 align="center">多平台快速开发的UI框架</h3>
-
-
-## 说明
-
-uView UI,是[uni-app](https://uniapp.dcloud.io/)生态优秀的UI框架,全面的组件和便捷的工具会让您信手拈来,如鱼得水
-
-## 特性
-
-- 兼容安卓,iOS,微信小程序,H5,QQ小程序,百度小程序,支付宝小程序,头条小程序
-- 60+精选组件,功能丰富,多端兼容,让您快速集成,开箱即用
-- 众多贴心的JS利器,让您飞镖在手,召之即来,百步穿杨
-- 众多的常用页面和布局,让您专注逻辑,事半功倍
-- 详尽的文档支持,现代化的演示效果
-- 按需引入,精简打包体积
-
-
-## 安装
-
-```bash
-# npm方式安装
-npm i uview-ui
-```
-
-## 快速上手
-
-1. `main.js`引入uView库
-```js
-// main.js
-import uView from 'uview-ui';
-Vue.use(uView);
-```
-
-2. `App.vue`引入基础样式(注意style标签需声明scss属性支持)
-```css
-/* App.vue */
-<style lang="scss">
-@import "uview-ui/index.scss";
-</style>
-```
-
-3. `uni.scss`引入全局scss变量文件
-```css
-/* uni.scss */
-@import "uview-ui/theme.scss";
-```
-
-4. `pages.json`配置easycom规则(按需引入)
-
-```js
-// pages.json
-{
-	"easycom": {
-		// npm安装的方式不需要前面的"@/",下载安装的方式需要"@/"
-		// npm安装方式
-		"^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
-		// 下载安装方式
-		// "^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue"
-	},
-	// 此为本身已有的内容
-	"pages": [
-		// ......
-	]
-}
-```
-
-请通过[快速上手](https://www.uviewui.com/components/quickstart.html)了解更详细的内容 
-
-## 使用方法
-配置easycom规则后,自动按需引入,无需`import`组件,直接引用即可。
-
-```html
-<template>
-	<u-button text="按钮"></u-button>
-</template>
-```
-
-请通过[快速上手](https://www.uviewui.com/components/quickstart.html)了解更详细的内容 
-
-## 链接
-
-- [官方文档](https://www.uviewui.com/)
-- [更新日志](https://www.www.uviewui.com/components/changelog.html)
-- [升级指南](https://www.uviewui.com/components/changelog.html)
-- [关于我们](https://www.uviewui.com/cooperation/about.html)
-
-## 预览
-
-您可以通过**微信**扫码,查看最佳的演示效果。
-<br>
-<br>
-<img src="https://uviewui.com/common/weixin_mini_qrcode.png" width="220" height="220" >
-
-## 捐赠uView的研发
-
-uView文档和源码全部开源免费,如果您认为uView帮到了您的开发工作,您可以捐赠uView的研发工作,捐赠无门槛,哪怕是一杯可乐也好(相信这比打赏主播更有意义)。
-
-<img src="https://uviewui.com/common/alipay.png" width="220" ><img style="margin-left: 100px;" src="https://uviewui.com/common/wechat.png" width="220" >
-
-## 版权信息
-uView遵循[MIT](https://en.wikipedia.org/wiki/MIT_License)开源协议,意味着您无需支付任何费用,也无需授权,即可将uView应用到您的产品中。

+ 0 - 139
uview-ui/changelog.md

@@ -1,139 +0,0 @@
-## 2.0.13(2021-12-14)
-## [点击加群交流反馈:364463526](https://jq.qq.com/?_chanwv=1027&k=mCxS3TGY)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 修复配置默认单位为rpx可能会导致自定义导航栏高度异常的问题
-## 2.0.12(2021-12-14)
-## [点击加群交流反馈:364463526](https://jq.qq.com/?_chanwv=1027&k=mCxS3TGY)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 修复tabs组件在vue环境下划线消失的问题
-2. 修复upload组件在安卓小程序无法选择视频的问题
-3. 添加uni.$u.config.unit配置,用于配置参数默认单位,详见:[默认单位配置](https://www.uviewui.com/components/setting.html#%E9%BB%98%E8%AE%A4%E5%8D%95%E4%BD%8D%E9%85%8D%E7%BD%AE)
-4. 修复textarea组件在没绑定v-model时,字符统计不生效问题
-5. 修复nvue下控制是否出现滚动条失效问题
-## 2.0.11(2021-12-13)
-## [点击加群交流反馈:364463526](https://jq.qq.com/?_chanwv=1027&k=mCxS3TGY)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. text组件align参数无效的问题
-2. subsection组件添加keyName参数
-3. upload组件无法判断[Object file]类型的问题
-4. 处理notify层级过低问题
-5. codeInput组件添加disabledDot参数
-6. 处理actionSheet组件round参数无效的问题
-7. calendar组件添加round参数用于控制圆角值
-8. 处理swipeAction组件在vue环境下默认被打开的问题
-9. button组件的throttleTime节流参数无效的问题
-10. 解决u-notify手动关闭方法close()无效的问题
-11. input组件readonly不生效问题
-12. tag组件type参数为info不生效问题
-## 2.0.10(2021-12-08)
-## [点击加群交流反馈:364463526](https://jq.qq.com/?_chanwv=1027&k=mCxS3TGY)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 修复button sendMessagePath属性不生效
-2. 修复DatetimePicker选择器title无效
-3. 修复u-toast设置loading=true不生效
-4. 修复u-text金额模式传0报错
-5. 修复u-toast组件的icon属性配置不生效
-6. button的icon在特殊场景下的颜色优化
-7. IndexList优化,增加#
-## 2.0.9(2021-12-01)
-## [点击加群交流反馈:232041042](https://jq.qq.com/?_wv=1027&k=KnbeceDU)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 优化swiper的height支持100%值(仅vue有效),修复嵌入视频时click事件无法触发的问题
-2. 优化tabs组件对list值为空的判断,或者动态变化list时重新计算相关尺寸的问题
-3. 优化datetime-picker组件逻辑,让其后续打开的默认值为上一次的选中值,需要通过v-model绑定值才有效
-4. 修复upload内嵌在其他组件中,选择图片可能不会换行的问题
-## 2.0.8(2021-12-01)
-## [点击加群交流反馈:232041042](https://jq.qq.com/?_wv=1027&k=KnbeceDU)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 修复toast的position参数无效问题
-2. 处理input在ios nvue上无法获得焦点的问题
-3. avatar-group组件添加extraValue参数,让剩余展示数量可手动控制
-4. tabs组件添加keyName参数用于配置从对象中读取的键名
-5. 处理text组件名字脱敏默认配置无效的问题
-6. 处理picker组件item文本太长换行问题
-## 2.0.7(2021-11-30)
-## [点击加群交流反馈:232041042](https://jq.qq.com/?_wv=1027&k=KnbeceDU)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 修复radio和checkbox动态改变v-model无效的问题。
-2. 优化form规则validator在微信小程序用法
-3. 修复backtop组件mode参数在微信小程序无效的问题
-4. 处理Album的previewFullImage属性无效的问题
-5. 处理u-datetime-picker组件mode='time'在选择改变时间时,控制台报错的问题
-## 2.0.6(2021-11-27)
-## [点击加群交流反馈:232041042](https://jq.qq.com/?_wv=1027&k=KnbeceDU)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. 处理tag组件在vue下边框无效的问题。
-2. 处理popup组件圆角参数可能无效的问题。
-3. 处理tabs组件lineColor参数可能无效的问题。
-4. propgress组件在值很小时,显示异常的问题。
-## 2.0.5(2021-11-25)
-## [点击加群交流反馈:232041042](https://jq.qq.com/?_wv=1027&k=KnbeceDU)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. calendar在vue下显示异常问题。 
-2. form组件labelPosition和errorType参数无效的问题
-3. input组件inputAlign无效的问题
-4. 其他一些修复
-## 2.0.4(2021-11-23)
-## [点击加群交流反馈:232041042](https://jq.qq.com/?_wv=1027&k=KnbeceDU)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-0. input组件缺失@confirm事件,以及subfix和prefix无效问题
-1. component.scss文件样式在vue下干扰全局布局问题
-2. 修复subsection在vue环境下表现异常的问题
-3. tag组件的bgColor等参数无效的问题
-4. upload组件不换行的问题
-5. 其他的一些修复处理
-## 2.0.3(2021-11-16)
-## [点击加群交流反馈:1129077272](https://jq.qq.com/?_wv=1027&k=KnbeceDU)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. uView2.0已实现全面兼容nvue
-2. uView2.0对1.x进行了架构重构,细节和性能都有极大提升
-3. 目前uView2.0为公测阶段,相关细节可能会有变动
-4. 我们写了一份与1.x的对比指南,详见[对比1.x](https://www.uviewui.com/components/diff1.x.html)
-5. 处理modal的confirm回调事件拼写错误问题
-6. 处理input组件@input事件参数错误问题
-7. 其他一些修复
-## 2.0.2(2021-11-16)
-## [点击加群交流反馈:1129077272](https://jq.qq.com/?_wv=1027&k=KnbeceDU)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. uView2.0已实现全面兼容nvue
-2. uView2.0对1.x进行了架构重构,细节和性能都有极大提升
-3. 目前uView2.0为公测阶段,相关细节可能会有变动
-4. 我们写了一份与1.x的对比指南,详见[对比1.x](https://www.uviewui.com/components/diff1.x.html)
-5. 修复input组件formatter参数缺失问题
-6. 优化loading-icon组件的scss写法问题,防止不兼容新版本scss
-## 2.0.0(2020-11-15)
-## [点击加群交流反馈:1129077272](https://jq.qq.com/?_wv=1027&k=KnbeceDU)
-
-# uView2.0重磅发布,利剑出鞘,一统江湖
-
-1. uView2.0已实现全面兼容nvue
-2. uView2.0对1.x进行了架构重构,细节和性能都有极大提升
-3. 目前uView2.0为公测阶段,相关细节可能会有变动
-4. 我们写了一份与1.x的对比指南,详见[对比1.x](https://www.uviewui.com/components/diff1.x.html)
-5. 修复input组件formatter参数缺失问题
-
-

+ 0 - 78
uview-ui/components/u--form/u--form.vue

@@ -1,78 +0,0 @@
-<template>
-	<uvForm
-		ref="uForm"
-		:model="model"
-		:rules="rules"
-		:errorType="errorType"
-		:borderBottom="borderBottom"
-		:labelPosition="labelPosition"
-		:labelWidth="labelWidth"
-		:labelAlign="labelAlign"
-		:labelStyle="labelStyle"
-		:customStyle="customStyle"
-	>
-		<slot />
-	</uvForm>
-</template>
-
-<script>
-	/**
-	 * 此组件存在的理由是,在nvue下,u-form被uni-app官方占用了,u-form在nvue中相当于form组件
-	 * 所以在nvue下,取名为u--form,内部其实还是u-form.vue,只不过做一层中转
-	 */
-	import uvForm from '../u-form/u-form.vue';
-	import props from '../u-form/props.js'
-	export default {
-		// #ifdef MP-WEIXIN
-		name: 'u-form',
-		// #endif
-		// #ifndef MP-WEIXIN
-		name: 'u--form',
-		// #endif
-		mixins: [uni.$u.mpMixin, props, uni.$u.mixin],
-		components: {
-			uvForm
-		},
-		created() {
-			this.children = []
-		},
-		methods: {
-			// 手动设置校验的规则,如果规则中有函数的话,微信小程序中会过滤掉,所以只能手动调用设置规则
-			setRules(rules) {
-				this.$refs.uForm.setRules(rules)
-			},
-			validate() {
-				/**
-				 * 在微信小程序中,通过this.$parent拿到的父组件是u--form,而不是其内嵌的u-form
-				 * 导致在u-form组件中,拿不到对应的children数组,从而校验无效,所以这里每次调用u-form组件中的
-				 * 对应方法的时候,在小程序中都先将u--form的children赋值给u-form中的children
-				 */
-				// #ifdef MP-WEIXIN
-				this.setMpData()
-				// #endif
-				return this.$refs.uForm.validate()
-			},
-			validateField(value, callback) {
-				// #ifdef MP-WEIXIN
-				this.setMpData()
-				// #endif
-				return this.$refs.uForm.validateField(value, callback)
-			},
-			resetFields() {
-				// #ifdef MP-WEIXIN
-				this.setMpData()
-				// #endif
-				return this.$refs.uForm.resetFields()
-			},
-			clearValidate(props) {
-				// #ifdef MP-WEIXIN
-				this.setMpData()
-				// #endif
-				return this.$refs.uForm.clearValidate(props)
-			},
-			setMpData() {
-				this.$refs.uForm.children = this.children
-			}
-		},
-	}
-</script>

+ 0 - 40
uview-ui/components/u--image/u--image.vue

@@ -1,40 +0,0 @@
-<template>
-	<uvImage 
-		:src="src"
-		:mode="mode"
-		:width="width"
-		:height="height"
-		:shape="shape"
-		:radius="radius"
-		:lazyLoad="lazyLoad"
-		:showMenuByLongpress="showMenuByLongpress"
-		:loadingIcon="loadingIcon"
-		:errorIcon="errorIcon"
-		:showLoading="showLoading"
-		:showError="showError"
-		:fade="fade"
-		:webp="webp"
-		:duration="duration"
-		:bgColor="bgColor"
-		:customStyle="customStyle"
-		@click="$emit('click')"
-		@error="$emit('error')"
-		@load="$emit('load')"
-	></uvImage>
-</template>
-
-<script>
-	/**
-	 * 此组件存在的理由是,在nvue下,u-image被uni-app官方占用了,u-image在nvue中相当于image组件
-	 * 所以在nvue下,取名为u--image,内部其实还是u-iamge.vue,只不过做一层中转
-	 */
-	import uvImage from '../u-image/u-image.vue';
-	import props from '../u-image/props.js';
-	export default {
-		name: 'u--image',
-		mixins: [uni.$u.mpMixin, props, uni.$u.mixin],
-		components: {
-			uvImage
-		},
-	}
-</script>

+ 0 - 72
uview-ui/components/u--input/u--input.vue

@@ -1,72 +0,0 @@
-<template>
-	<uvInput 
-		:value="value"
-		:type="type"
-		:fixed="fixed"
-		:disabled="disabled"
-		:disabledColor="disabledColor"
-		:clearable="clearable"
-		:password="password"
-		:maxlength="maxlength"
-		:placeholder="placeholder"
-		:placeholderClass="placeholderClass"
-		:placeholderStyle="placeholderStyle"
-		:showWordLimit="showWordLimit"
-		:confirmType="confirmType"
-		:confirmHold="confirmHold"
-		:holdKeyboard="holdKeyboard"
-		:focus="focus"
-		:autoBlur="autoBlur"
-		:disableDefaultPadding="disableDefaultPadding"
-		:cursor="cursor"
-		:cursorSpacing="cursorSpacing"
-		:selectionStart="selectionStart"
-		:selectionEnd="selectionEnd"
-		:adjustPosition="adjustPosition"
-		:inputAlign="inputAlign"
-		:fontSize="fontSize"
-		:color="color"
-		:prefixIcon="prefixIcon"
-		:suffixIcon="suffixIcon"
-		:suffixIconStyle="suffixIconStyle"
-		:prefixIconStyle="prefixIconStyle"
-		:border="border"
-		:readonly="readonly"
-		:shape="shape"
-		:customStyle="customStyle"
-		:formatter="formatter"
-		@focus="$emit('focus')"
-		@blur="$emit('blur')"
-		@keyboardheightchange="$emit('keyboardheightchange')"
-		@change="e => $emit('change', e)"
-		@input="e => $emit('input', e)"
-		@confirm="e => $emit('confirm', e)"
-		@clear="$emit('clear')"
-		@click="$emit('click')"
-	>
-		<!-- #ifdef MP -->
-		<slot name="prefix"></slot>
-		<slot name="suffix"></slot>
-		<!-- #endif -->
-		<!-- #ifndef MP -->
-		<slot name="prefix" slot="prefix"></slot>
-		<slot name="suffix" slot="suffix"></slot>
-		<!-- #endif -->
-	</uvInput>
-</template>
-
-<script>
-	/**
-	 * 此组件存在的理由是,在nvue下,u-input被uni-app官方占用了,u-input在nvue中相当于input组件
-	 * 所以在nvue下,取名为u--input,内部其实还是u-input.vue,只不过做一层中转
-	 */
-	import uvInput from '../u-input/u-input.vue';
-	import props from '../u-input/props.js'
-	export default {
-		name: 'u--input',
-		mixins: [uni.$u.mpMixin, props, uni.$u.mixin],
-		components: {
-			uvInput
-		},
-	}
-</script>

+ 0 - 43
uview-ui/components/u--text/u--text.vue

@@ -1,43 +0,0 @@
-<template>
-    <uvText
-        :type="type"
-        :show="show"
-        :text="text"
-        :prefixIcon="prefixIcon"
-        :suffixIcon="suffixIcon"
-        :mode="mode"
-        :href="href"
-        :format="format"
-        :call="call"
-        :openType="openType"
-        :bold="bold"
-        :block="block"
-        :lines="lines"
-        :color="color"
-        :size="size"
-        :iconStyle="iconStyle"
-        :margin="margin"
-        :lineHeight="lineHeight"
-        :align="align"
-        :wordWrap="wordWrap"
-        :customStyle="customStyle"
-        @click="$emit('click')"
-    ></uvText>
-</template>
-
-<script>
-/**
- * 此组件存在的理由是,在nvue下,u-text被uni-app官方占用了,u-text在nvue中相当于input组件
- * 所以在nvue下,取名为u--input,内部其实还是u-text.vue,只不过做一层中转
- * 不使用v-bind="$attrs",而是分开独立写传参,是因为微信小程序不支持此写法
- */
-import uvText from "../u-text/u-text.vue";
-import props from "../u-text/props.js";
-export default {
-    name: "u--text",
-    mixins: [uni.$u.mpMixin, props, uni.$u.mixin],
-    components: {
-        uvText,
-    },
-};
-</script>

+ 0 - 47
uview-ui/components/u--textarea/u--textarea.vue

@@ -1,47 +0,0 @@
-<template>
-	<uvTextarea
-		:value="value"
-		:placeholder="placeholder"
-		:height="height"
-		:confirmType="confirmType"
-		:disabled="disabled"
-		:count="count"
-		:focus="focus"
-		:autoHeight="autoHeight"
-		:fixed="fixed"
-		:cursorSpacing="cursorSpacing"
-		:cursor="cursor"
-		:showConfirmBar="showConfirmBar"
-		:selectionStart="selectionStart"
-		:selectionEnd="selectionEnd"
-		:adjustPosition="adjustPosition"
-		:disableDefaultPadding="disableDefaultPadding"
-		:holdKeyboard="holdKeyboard"
-		:maxlength="maxlength"
-		:border="border"
-		:customStyle="customStyle"
-		:formatter="formatter"
-		@focus="e => $emit('focus')"
-		@blur="e => $emit('blur')"
-		@linechange="e => $emit('linechange', e)"
-		@confirm="e => $emit('confirm')"
-		@input="e => $emit('input', e)"
-		@keyboardheightchange="e => $emit('keyboardheightchange')"
-	></uvTextarea>
-</template>
-
-<script>
-	/**
-	 * 此组件存在的理由是,在nvue下,u--textarea被uni-app官方占用了,u-textarea在nvue中相当于textarea组件
-	 * 所以在nvue下,取名为u--textarea,内部其实还是u-textarea.vue,只不过做一层中转
-	 */
-	import uvTextarea from '../u-textarea/u-textarea.vue';
-	import props from '../u-textarea/props.js'
-	export default {
-		name: 'u--textarea',
-		mixins: [uni.$u.mpMixin, props, uni.$u.mixin],
-		components: {
-			uvTextarea
-		},
-	}
-</script>

+ 0 - 54
uview-ui/components/u-action-sheet/props.js

@@ -1,54 +0,0 @@
-export default {
-    props: {
-        // 操作菜单是否展示 (默认false)
-        show: {
-            type: Boolean,
-            default: uni.$u.props.actionSheet.show
-        },
-        // 标题
-        title: {
-            type: String,
-            default: uni.$u.props.actionSheet.title
-        },
-        // 选项上方的描述信息
-        description: {
-            type: String,
-            default: uni.$u.props.actionSheet.description
-        },
-        // 数据
-        actions: {
-            type: Array,
-            default: uni.$u.props.actionSheet.actions
-        },
-        // 取消按钮的文字,不为空时显示按钮
-        cancelText: {
-            type: String,
-            default: uni.$u.props.actionSheet.cancelText
-        },
-        // 点击某个菜单项时是否关闭弹窗
-        closeOnClickAction: {
-            type: Boolean,
-            default: uni.$u.props.actionSheet.closeOnClickAction
-        },
-        // 处理底部安全区(默认true)
-        safeAreaInsetBottom: {
-            type: Boolean,
-            default: uni.$u.props.actionSheet.safeAreaInsetBottom
-        },
-        // 小程序的打开方式
-        openType: {
-            type: String,
-            default: uni.$u.props.actionSheet.openType
-        },
-        // 点击遮罩是否允许关闭 (默认true)
-        closeOnClickOverlay: {
-            type: Boolean,
-            default: uni.$u.props.actionSheet.closeOnClickOverlay
-        },
-        // 圆角值
-        round: {
-            type: [Boolean, String, Number],
-            default: uni.$u.props.actionSheet.round
-        }
-    }
-}

+ 0 - 275
uview-ui/components/u-action-sheet/u-action-sheet.vue

@@ -1,275 +0,0 @@
-
-<template>
-	<u-popup
-	    :show="show"
-	    mode="bottom"
-	    @close="close"
-	    :closeOnClickOverlay="closeOnClickOverlay"
-	    :safeAreaInsetBottom="safeAreaInsetBottom"
-	    :round="round"
-	>
-		<view class="u-action-sheet">
-			<view
-			    class="u-action-sheet__header"
-			    v-if="title"
-			>
-				<text class="u-action-sheet__header__title u-line-1">{{title}}</text>
-				<view
-				    class="u-action-sheet__header__icon-wrap"
-				    @tap.stop="close"
-				>
-					<u-icon
-					    name="close"
-					    size="17"
-					    color="#c8c9cc"
-					    bold
-					></u-icon>
-				</view>
-			</view>
-			<text
-			    class="u-action-sheet__description"
-				:style="[{
-					marginTop: `${title && description ? 0 : '18px'}`
-				}]"
-			    v-if="description"
-			>{{description}}</text>
-			<slot>
-				<u-line v-if="description"></u-line>
-				<view class="u-action-sheet__item-wrap">
-					<template v-for="(item, index) in actions">
-						<!-- #ifdef MP -->
-						<button
-						    :key="index"
-						    class="u-reset-button"
-						    :openType="item.openType"
-						    @getuserinfo="onGetUserInfo"
-						    @contact="onContact"
-						    @getphonenumber="onGetPhoneNumber"
-						    @error="onError"
-						    @launchapp="onLaunchApp"
-						    @opensetting="onOpenSetting"
-						    :lang="lang"
-						    :session-from="sessionFrom"
-						    :send-message-title="sendMessageTitle"
-						    :send-message-path="sendMessagePath"
-						    :send-message-img="sendMessageImg"
-						    :show-message-card="showMessageCard"
-						    :app-parameter="appParameter"
-						    @tap="selectHandler(index)"
-						    :hover-class="!item.disabled && !item.loading ? 'u-action-sheet--hover' : ''"
-						>
-							<!-- #endif -->
-							<view
-							    class="u-action-sheet__item-wrap__item"
-							    @tap.stop="selectHandler(index)"
-							    :hover-class="!item.disabled && !item.loading ? 'u-action-sheet--hover' : ''"
-							    :hover-stay-time="150"
-							>
-								<template v-if="!item.loading">
-									<text
-									    class="u-action-sheet__item-wrap__item__name"
-									    :style="[itemStyle(index)]"
-									>{{ item.name }}</text>
-									<text
-									    v-if="item.subname"
-									    class="u-action-sheet__item-wrap__item__subname"
-									>{{ item.subname }}</text>
-								</template>
-								<u-loading-icon
-								    v-else
-								    custom-class="van-action-sheet__loading"
-								    size="18"
-								    mode="circle"
-								/>
-							</view>
-							<!-- #ifdef MP -->
-						</button>
-						<!-- #endif -->
-						<u-line v-if="index !== actions.length - 1"></u-line>
-					</template>
-				</view>
-			</slot>
-			<u-gap
-			    bgColor="#eaeaec"
-			    height="6"
-			    v-if="cancelText"
-			></u-gap>
-			<view hover-class="u-action-sheet--hover">
-				<text
-				    @touchmove.stop.prevent
-				    :hover-stay-time="150"
-				    v-if="cancelText"
-				    class="u-action-sheet__cancel-text"
-				    @tap="close"
-				>{{cancelText}}</text>
-			</view>
-		</view>
-	</u-popup>
-</template>
-
-<script>
-	import openType from '../../libs/mixin/openType'
-	import button from '../../libs/mixin/button'
-	import props from './props.js';
-	/**
-	 * ActionSheet 操作菜单
-	 * @description 本组件用于从底部弹出一个操作菜单,供用户选择并返回结果。本组件功能类似于uni的uni.showActionSheetAPI,配置更加灵活,所有平台都表现一致。
-	 * @tutorial https://www.uviewui.com/components/actionSheet.html
-	 * 
-	 * @property {Boolean}			show				操作菜单是否展示 (默认 false )
-	 * @property {String}			title				操作菜单标题
-	 * @property {String}			description			选项上方的描述信息
-	 * @property {Array<Object>}	actions				按钮的文字数组,见官方文档示例
-	 * @property {String}			cancelText			取消按钮的提示文字,不为空时显示按钮
-	 * @property {Boolean}			closeOnClickAction	点击某个菜单项时是否关闭弹窗 (默认 true )
-	 * @property {Boolean}			safeAreaInsetBottom	处理底部安全区 (默认 true )
-	 * @property {String}			openType			小程序的打开方式 (contact | launchApp | getUserInfo | openSetting |getPhoneNumber |error )
-	 * @property {Boolean}			closeOnClickOverlay	点击遮罩是否允许关闭  (默认 true )
-	 * @property {Number|String}	round				圆角值,默认无圆角  (默认 0 )
-	 * @property {String}			lang				指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文
-	 * @property {String}			sessionFrom			会话来源,openType="contact"时有效
-	 * @property {String}			sendMessageTitle	会话内消息卡片标题,openType="contact"时有效
-	 * @property {String}			sendMessagePath		会话内消息卡片点击跳转小程序路径,openType="contact"时有效
-	 * @property {String}			sendMessageImg		会话内消息卡片图片,openType="contact"时有效
-	 * @property {Boolean}			showMessageCard		是否显示会话内消息卡片,设置此参数为 true,用户进入客服会话会在右下角显示"可能要发送的小程序"提示,用户点击后可以快速发送小程序消息,openType="contact"时有效 (默认 false )
-	 * @property {String}			appParameter		打开 APP 时,向 APP 传递的参数,openType=launchApp 时有效
-	 * 
-	 * @event {Function} select			点击ActionSheet列表项时触发 
-	 * @event {Function} close			点击取消按钮时触发
-	 * @event {Function} getuserinfo	用户点击该按钮时,会返回获取到的用户信息,回调的 detail 数据与 wx.getUserInfo 返回的一致,openType="getUserInfo"时有效
-	 * @event {Function} contact		客服消息回调,openType="contact"时有效
-	 * @event {Function} getphonenumber	获取用户手机号回调,openType="getPhoneNumber"时有效
-	 * @event {Function} error			当使用开放能力时,发生错误的回调,openType="error"时有效
-	 * @event {Function} launchapp		打开 APP 成功的回调,openType="launchApp"时有效
-	 * @event {Function} opensetting	在打开授权设置页后回调,openType="openSetting"时有效
-	 * @example <u-action-sheet :actions="list" :title="title" :show="show"></u-action-sheet>
-	 */
-	export default {
-		name: "u-action-sheet",
-		// 一些props参数和methods方法,通过mixin混入,因为其他文件也会用到
-		mixins: [openType, button, uni.$u.mixin, props],
-		data() {
-			return {
-
-			}
-		},
-		computed: {
-			// 操作项目的样式
-			itemStyle() {
-				return (index) => {
-					let style = {};
-					if (this.actions[index].color) style.color = this.actions[index].color
-					if (this.actions[index].fontSize) style.fontSize = uni.$u.addUnit(this.actions[index].fontSize)
-					// 选项被禁用的样式
-					if (this.actions[index].disabled) style.color = '#c0c4cc'
-					return style;
-				}
-			},
-		},
-		methods: {
-			close() {
-				// 允许点击遮罩关闭时,才发出close事件
-				if(this.closeOnClickOverlay) {
-					this.$emit('close')
-				}
-			},
-			selectHandler(index) {
-				const item = this.actions[index]
-				if (item && !item.disabled && !item.loading) {
-					this.$emit('select', item)
-					if (this.closeOnClickAction) {
-						this.$emit('close')
-					}
-				}
-			},
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	@import "../../libs/css/components.scss";
-	$u-action-sheet-reset-button-width:100% !default;
-	$u-action-sheet-title-font-size: 16px !default;
-	$u-action-sheet-title-padding: 12px 30px !default;
-	$u-action-sheet-title-color: $u-main-color !default;
-	$u-action-sheet-header-icon-wrap-right:15px !default;
-	$u-action-sheet-header-icon-wrap-top:15px !default;
-	$u-action-sheet-description-font-size:13px !default;
-	$u-action-sheet-description-color:14px !default;
-	$u-action-sheet-description-margin: 18px 15px !default;
-	$u-action-sheet-item-wrap-item-padding:15px !default;
-	$u-action-sheet-item-wrap-name-font-size:16px !default;
-	$u-action-sheet-item-wrap-subname-font-size:13px !default;
-	$u-action-sheet-item-wrap-subname-color: #c0c4cc !default;
-	$u-action-sheet-item-wrap-subname-margin-top:10px !default;
-	$u-action-sheet-cancel-text-font-size:16px !default;
-	$u-action-sheet-cancel-text-color:$u-content-color !default;
-	$u-action-sheet-cancel-text-font-size:15px !default;
-	$u-action-sheet-cancel-text-hover-background-color:rgb(242, 243, 245) !default;
-
-	.u-reset-button {
-		width: $u-action-sheet-reset-button-width;
-	}
-
-	.u-action-sheet {
-		text-align: center;
-		&__header {
-			position: relative;
-			padding: $u-action-sheet-title-padding;
-			&__title {
-				font-size: $u-action-sheet-title-font-size;
-				color: $u-action-sheet-title-color;
-				font-weight: bold;
-				text-align: center;
-			}
-
-			&__icon-wrap {
-				position: absolute;
-				right: $u-action-sheet-header-icon-wrap-right;
-				top: $u-action-sheet-header-icon-wrap-top;
-			}
-		}
-
-		&__description {
-			font-size: $u-action-sheet-description-font-size;
-			color: $u-tips-color;
-			margin: $u-action-sheet-description-margin;
-			text-align: center;
-		}
-
-		&__item-wrap {
-
-			&__item {
-				padding: $u-action-sheet-item-wrap-item-padding;
-				@include flex;
-				align-items: center;
-				justify-content: center;
-				flex-direction: column;
-
-				&__name {
-					font-size: $u-action-sheet-item-wrap-name-font-size;
-					color: $u-main-color;
-					text-align: center;
-				}
-
-				&__subname {
-					font-size: $u-action-sheet-item-wrap-subname-font-size;
-					color: $u-action-sheet-item-wrap-subname-color;
-					margin-top: $u-action-sheet-item-wrap-subname-margin-top;
-					text-align: center;
-				}
-			}
-		}
-
-		&__cancel-text {
-			font-size: $u-action-sheet-cancel-text-font-size;
-			color: $u-action-sheet-cancel-text-color;
-			text-align: center;
-			padding: $u-action-sheet-cancel-text-font-size;
-		}
-
-		&--hover {
-			background-color: $u-action-sheet-cancel-text-hover-background-color;
-		}
-	}
-</style>

+ 0 - 59
uview-ui/components/u-album/props.js

@@ -1,59 +0,0 @@
-export default {
-    props: {
-        // 图片地址,Array<String>|Array<Object>形式
-        urls: {
-            type: Array,
-            default: uni.$u.props.album.urls
-        },
-        // 指定从数组的对象元素中读取哪个属性作为图片地址
-        keyName: {
-            type: String,
-            default: uni.$u.props.album.keyName
-        },
-        // 单图时,图片长边的长度
-        singleSize: {
-            type: [String, Number],
-            default: uni.$u.props.album.singleSize
-        },
-        // 多图时,图片边长
-        multipleSize: {
-            type: [String, Number],
-            default: uni.$u.props.album.multipleSize
-        },
-        // 多图时,图片水平和垂直之间的间隔
-        space: {
-            type: [String, Number],
-            default: uni.$u.props.album.space
-        },
-        // 单图时,图片缩放裁剪的模式
-        singleMode: {
-            type: String,
-            default: uni.$u.props.album.singleMode
-        },
-        // 多图时,图片缩放裁剪的模式
-        multipleMode: {
-            type: String,
-            default: uni.$u.props.album.multipleMode
-        },
-        // 最多展示的图片数量,超出时最后一个位置将会显示剩余图片数量
-        maxCount: {
-            type: [String, Number],
-            default: uni.$u.props.album.maxCount
-        },
-        // 是否可以预览图片
-        previewFullImage: {
-            type: Boolean,
-            default: uni.$u.props.album.previewFullImage
-        },
-        // 每行展示图片数量,如设置,singleSize和multipleSize将会无效
-        rowCount: {
-            type: [String, Number],
-            default: uni.$u.props.album.rowCount
-        },
-        // 超出maxCount时是否显示查看更多的提示
-        showMore: {
-            type: Boolean,
-            default: uni.$u.props.album.showMore
-        }
-    }
-}

+ 0 - 259
uview-ui/components/u-album/u-album.vue

@@ -1,259 +0,0 @@
-<template>
-    <view class="u-album">
-        <view
-            class="u-album__row"
-            ref="u-album__row"
-            v-for="(arr, index) in showUrls"
-            :forComputedUse="albumWidth"
-            :key="index"
-        >
-            <view
-                class="u-album__row__wrapper"
-                v-for="(item, index1) in arr"
-                :key="index1"
-                :style="[imageStyle(index + 1, index1 + 1)]"
-                @tap="previewFullImage ? onPreviewTap(getSrc(item)) : ''"
-            >
-                <image
-                    :src="getSrc(item)"
-                    :mode="
-                        urls.length === 1
-                            ? imageHeight > 0
-                                ? singleMode
-                                : 'widthFix'
-                            : multipleMode
-                    "
-                    :style="[
-                        {
-                            width: imageWidth,
-                            height: imageHeight
-                        }
-                    ]"
-                ></image>
-                <view
-                    v-if="
-                        showMore &&
-                        urls.length > rowCount * showUrls.length &&
-                        index === showUrls.length - 1 &&
-                        index1 === showUrls[showUrls.length - 1].length - 1
-                    "
-                    class="u-album__row__wrapper__text"
-                >
-                    <u--text
-                        :text="`+${urls.length - maxCount}`"
-                        color="#fff"
-                        :size="multipleSize * 0.3"
-                        align="center"
-                        customStyle="justify-content: center"
-                    ></u--text>
-                </view>
-            </view>
-        </view>
-    </view>
-</template>
-
-<script>
-import props from './props.js'
-// #ifdef APP-NVUE
-// 由于weex为阿里的KPI业绩考核的产物,所以不支持百分比单位,这里需要通过dom查询组件的宽度
-const dom = uni.requireNativePlugin('dom')
-// #endif
-
-/**
- * Album 相册
- * @description 本组件提供一个类似相册的功能,让开发者开发起来更加得心应手。减少重复的模板代码
- * @tutorial https://www.uviewui.com/components/album.html
- *
- * @property {Array}           urls             图片地址列表 Array<String>|Array<Object>形式
- * @property {String}          keyName          指定从数组的对象元素中读取哪个属性作为图片地址
- * @property {String | Number} singleSize       单图时,图片长边的长度  (默认 180 )
- * @property {String | Number} multipleSize     多图时,图片边长 (默认 70 )
- * @property {String | Number} space            多图时,图片水平和垂直之间的间隔 (默认 6 )
- * @property {String}          singleMode       单图时,图片缩放裁剪的模式 (默认 'scaleToFill' )
- * @property {String}          multipleMode     多图时,图片缩放裁剪的模式 (默认 'aspectFill' )
- * @property {String | Number} maxCount         取消按钮的提示文字 (默认 9 )
- * @property {Boolean}         previewFullImage 是否可以预览图片 (默认 true )
- * @property {String | Number} rowCount         每行展示图片数量,如设置,singleSize和multipleSize将会无效	(默认 3 )
- * @property {Boolean}         showMore         超出maxCount时是否显示查看更多的提示 (默认 true )
- *
- * @event    {Function}        albumWidth       某些特殊的情况下,需要让文字与相册的宽度相等,这里事件的形式对外发送  (回调参数 width )
- * @example <u-album :urls="urls2" @albumWidth="width => albumWidth = width" multipleSize="68" ></u-album>
- */
-export default {
-    name: 'u-album',
-    mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
-    data() {
-        return {
-            // 单图的宽度
-            singleWidth: 0,
-            // 单图的高度
-            singleHeight: 0,
-            // 单图时,如果无法获取图片的尺寸信息,让图片宽度默认为容器的一定百分比
-            singlePercent: 0.6
-        }
-    },
-    watch: {
-        urls: {
-            immediate: true,
-            handler(newVal) {
-                if (newVal.length === 1) {
-                    this.getImageRect()
-                }
-            }
-        }
-    },
-    computed: {
-        imageStyle() {
-            return (index1, index2) => {
-                const { space, rowCount, multipleSize, urls } = this,
-                    { addUnit, addStyle } = uni.$u,
-                    rowLen = this.showUrls.length,
-                    allLen = this.urls.length
-                const style = {
-                    marginRight: addUnit(space),
-                    marginBottom: addUnit(space)
-                }
-                // 如果为最后一行,则每个图片都无需下边框
-                if (index1 === rowLen) style.marginBottom = 0
-                // 每行的最右边一张和总长度的最后一张无需右边框
-                if (
-                    index2 === rowCount ||
-                    (index1 === rowLen &&
-                        index2 === this.showUrls[index1 - 1].length)
-                )
-                    style.marginRight = 0
-                return style
-            }
-        },
-        // 将数组划分为二维数组
-        showUrls() {
-            const arr = []
-            this.urls.map((item, index) => {
-                // 限制最大展示数量
-                if (index + 1 <= this.maxCount) {
-                    // 计算该元素为第几个素组内
-                    const itemIndex = Math.floor(index / this.rowCount)
-                    // 判断对应的索引是否存在
-                    if (!arr[itemIndex]) {
-                        arr[itemIndex] = []
-                    }
-                    arr[itemIndex].push(item)
-                }
-            })
-            return arr
-        },
-        imageWidth() {
-            return this.$u.addUnit(
-                this.urls.length === 1 ? this.singleWidth : this.multipleSize
-            )
-        },
-        imageHeight() {
-            return this.$u.addUnit(
-                this.urls.length === 1 ? this.singleHeight : this.multipleSize
-            )
-        },
-        // 此变量无实际用途,仅仅是为了利用computed特性,让其在urls长度等变化时,重新计算图片的宽度
-        // 因为用户在某些特殊的情况下,需要让文字与相册的宽度相等,所以这里事件的形式对外发送
-        albumWidth() {
-            let width = 0
-            if (this.urls.length === 1) {
-                width = this.singleWidth
-            } else {
-                width =
-                    this.showUrls[0].length * this.multipleSize +
-                    this.space * (this.showUrls[0].length - 1)
-            }
-            this.$emit('albumWidth', width)
-            return width
-        }
-    },
-    methods: {
-        // 预览图片
-        onPreviewTap(url) {
-            const urls = this.urls.map((item) => {
-                return this.getSrc(item)
-            })
-            uni.previewImage({
-                current: url,
-                urls
-            })
-        },
-        // 获取图片的路径
-        getSrc(item) {
-            return uni.$u.test.object(item)
-                ? (this.keyName && item[this.keyName]) || item.src
-                : item
-        },
-        // 单图时,获取图片的尺寸
-        // 在小程序中,需要将网络图片的的域名添加到小程序的download域名才可能获取尺寸
-        // 在没有添加的情况下,让单图宽度默认为盒子的一定宽度(singlePercent)
-        getImageRect() {
-            const src = this.getSrc(this.urls[0])
-            uni.getImageInfo({
-                src,
-                success: (res) => {
-                    // 判断图片横向还是竖向展示方式
-                    const isHorizotal = res.width >= res.height
-                    this.singleWidth = isHorizotal
-                        ? this.singleSize
-                        : (res.width / res.height) * this.singleSize
-                    this.singleHeight = !isHorizotal
-                        ? this.singleSize
-                        : (res.height / res.width) * this.singleWidth
-                },
-                fail: () => {
-                    this.getComponentWidth()
-                }
-            })
-        },
-        // 获取组件的宽度
-        async getComponentWidth() {
-            // 延时一定时间,以获取dom尺寸
-            await uni.$u.sleep(30)
-            // #ifndef APP-NVUE
-            this.$uGetRect('.u-album__row').then((size) => {
-                this.singleWidth = size.width * this.singlePercent
-            })
-            // #endif
-
-            // #ifdef APP-NVUE
-            // 这里ref="u-album__row"所在的标签为通过for循环出来,导致this.$refs['u-album__row']是一个数组
-            const ref = this.$refs['u-album__row'][0]
-            ref &&
-                dom.getComponentRect(ref, (res) => {
-                    this.singleWidth = res.size.width * this.singlePercent
-                })
-            // #endif
-        }
-    }
-}
-</script>
-
-<style lang="scss" scoped>
-@import '../../libs/css/components.scss';
-
-.u-album {
-    @include flex(column);
-
-    &__row {
-        @include flex(row);
-        flex-wrap: wrap;
-
-        &__wrapper {
-            position: relative;
-
-            &__text {
-                position: absolute;
-                top: 0;
-                left: 0;
-                right: 0;
-                bottom: 0;
-                background-color: rgba(0, 0, 0, 0.3);
-                @include flex(row);
-                justify-content: center;
-                align-items: center;
-            }
-        }
-    }
-}
-</style>

+ 0 - 44
uview-ui/components/u-alert/props.js

@@ -1,44 +0,0 @@
-export default {
-    props: {
-        // 显示文字
-        title: {
-            type: String,
-            default: uni.$u.props.alert.title
-        },
-        // 主题,success/warning/info/error
-        type: {
-            type: String,
-            default: uni.$u.props.alert.type
-        },
-        // 辅助性文字
-        description: {
-            type: String,
-            default: uni.$u.props.alert.description
-        },
-        // 是否可关闭
-        closable: {
-            type: Boolean,
-            default: uni.$u.props.alert.closable
-        },
-        // 是否显示图标
-        showIcon: {
-            type: Boolean,
-            default: uni.$u.props.alert.showIcon
-        },
-        // 浅或深色调,light-浅色,dark-深色
-        effect: {
-            type: String,
-            default: uni.$u.props.alert.effect
-        },
-        // 文字是否居中
-        center: {
-            type: Boolean,
-            default: uni.$u.props.alert.center
-        },
-        // 字体大小
-        fontSize: {
-            type: [String, Number],
-            default: uni.$u.props.alert.fontSize
-        }
-    }
-}

+ 0 - 243
uview-ui/components/u-alert/u-alert.vue

@@ -1,243 +0,0 @@
-<template>
-	<u-transition
-	    mode="fade"
-	    :show="show"
-	>
-		<view
-		    class="u-alert"
-		    :class="[`u-alert--${type}--${effect}`]"
-		    @tap.stop="clickHandler"
-		    :style="[$u.addStyle(customStyle)]"
-		>
-			<view
-			    class="u-alert__icon"
-			    v-if="showIcon"
-			>
-				<u-icon
-				    :name="iconName"
-				    size="18"
-				    :color="iconColor"
-				></u-icon>
-			</view>
-			<view
-			    class="u-alert__content"
-			    :style="[{
-					paddingRight: closable ? '20px' : 0
-				}]"
-			>
-				<text
-				    class="u-alert__content__title"
-				    v-if="title"
-					:style="[{
-						fontSize: $u.addUnit(fontSize),
-						textAlign: center ? 'center' : 'left'
-					}]"
-				    :class="[effect === 'dark' ? 'u-alert__text--dark' : `u-alert__text--${type}--light`]"
-				>{{ title }}</text>
-				<text
-				    class="u-alert__content__desc"
-					v-if="description"
-					:style="[{
-						fontSize: $u.addUnit(fontSize),
-						textAlign: center ? 'center' : 'left'
-					}]"
-				    :class="[effect === 'dark' ? 'u-alert__text--dark' : `u-alert__text--${type}--light`]"
-				>{{ description }}</text>
-			</view>
-			<view
-			    class="u-alert__close"
-			    v-if="closable"
-			    @tap.stop="closeHandler"
-			>
-				<u-icon
-				    name="close"
-				    :color="iconColor"
-				    size="15"
-				></u-icon>
-			</view>
-		</view>
-	</u-transition>
-</template>
-
-<script>
-	import props from './props.js';
-	/**
-	 * Alert  警告提示
-	 * @description 警告提示,展现需要关注的信息。
-	 * @tutorial https://www.uviewui.com/components/alertTips.html
-	 * 
-	 * @property {String}			title       显示的文字 
-	 * @property {String}			type        使用预设的颜色  (默认 'warning' )
-	 * @property {String}			description 辅助性文字,颜色比title浅一点,字号也小一点,可选  
-	 * @property {Boolean}			closable    关闭按钮(默认为叉号icon图标)  (默认 false )
-	 * @property {Boolean}			showIcon    是否显示左边的辅助图标   ( 默认 false )
-	 * @property {String}			effect      多图时,图片缩放裁剪的模式  (默认 'light' )
-	 * @property {Boolean}			center		文字是否居中  (默认 false )
-	 * @property {String | Number}	fontSize    字体大小  (默认 14 )
-	 * @property {Object}			customStyle	定义需要用到的外部样式
-	 * @event    {Function}        click       点击组件时触发
-	 * @example  <u-alert :title="title"  type = "warning" :closable="closable" :description = "description"></u-alert>
-	 */
-	export default {
-		name: 'u-alert',
-		mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
-		data() {
-			return {
-				show: true
-			}
-		},
-		computed: {
-			iconColor() {
-				return this.effect === 'light' ? this.type : '#fff'
-			},
-			// 不同主题对应不同的图标
-			iconName() {
-				switch (this.type) {
-					case 'success':
-						return 'checkmark-circle-fill';
-						break;
-					case 'error':
-						return 'close-circle-fill';
-						break;
-					case 'warning':
-						return 'error-circle-fill';
-						break;
-					case 'info':
-						return 'info-circle-fill';
-						break;
-					case 'primary':
-						return 'more-circle-fill';
-						break;
-					default: 
-						return 'error-circle-fill';
-				}
-			}
-		},
-		methods: {
-			// 点击内容
-			clickHandler() {
-				this.$emit('click')
-			},
-			// 点击关闭按钮
-			closeHandler() {
-				this.show = false
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	@import "../../libs/css/components.scss";
-
-	.u-alert {
-		position: relative;
-		background-color: $u-primary;
-		padding: 8px 10px;
-		@include flex(row);
-		align-items: center;
-		border-top-left-radius: 4px;
-		border-top-right-radius: 4px;
-		border-bottom-left-radius: 4px;
-		border-bottom-right-radius: 4px;
-
-		&--primary--dark {
-			background-color: $u-primary;
-		}
-
-		&--primary--light {
-			background-color: #ecf5ff;
-		}
-
-		&--error--dark {
-			background-color: $u-error;
-		}
-
-		&--error--light {
-			background-color: #FEF0F0;
-		}
-
-		&--success--dark {
-			background-color: $u-success;
-		}
-
-		&--success--light {
-			background-color: #f5fff0;
-		}
-
-		&--warning--dark {
-			background-color: $u-warning;
-		}
-
-		&--warning--light {
-			background-color: #FDF6EC;
-		}
-
-		&--info--dark {
-			background-color: $u-info;
-		}
-
-		&--info--light {
-			background-color: #f4f4f5;
-		}
-
-		&__icon {
-			margin-right: 5px;
-		}
-
-		&__content {
-			@include flex(column);
-			flex: 1;
-
-			&__title {
-				color: $u-main-color;
-				font-size: 14px;
-				font-weight: bold;
-				color: #fff;
-				margin-bottom: 2px;
-			}
-
-			&__desc {
-				color: $u-main-color;
-				font-size: 14px;
-				flex-wrap: wrap;
-				color: #fff;
-			}
-		}
-
-		&__title--dark,
-		&__desc--dark {
-			color: #FFFFFF;
-		}
-
-		&__text--primary--light,
-		&__text--primary--light {
-			color: $u-primary;
-		}
-
-		&__text--success--light,
-		&__text--success--light {
-			color: $u-success;
-		}
-
-		&__text--warning--light,
-		&__text--warning--light {
-			color: $u-warning;
-		}
-
-		&__text--error--light,
-		&__text--error--light {
-			color: $u-error;
-		}
-
-		&__text--info--light,
-		&__text--info--light {
-			color: $u-info;
-		}
-
-		&__close {
-			position: absolute;
-			top: 11px;
-			right: 10px;
-		}
-	}
-</style>

+ 0 - 52
uview-ui/components/u-avatar-group/props.js

@@ -1,52 +0,0 @@
-export default {
-    props: {
-        // 头像图片组
-        urls: {
-            type: Array,
-            default: uni.$u.props.avatarGroup.urls
-        },
-        // 最多展示的头像数量
-        maxCount: {
-            type: [String, Number],
-            default: uni.$u.props.avatarGroup.maxCount
-        },
-        // 头像形状
-        shape: {
-            type: String,
-            default: uni.$u.props.avatarGroup.shape
-        },
-        // 图片裁剪模式
-        mode: {
-            type: String,
-            default: uni.$u.props.avatarGroup.mode
-        },
-        // 超出maxCount时是否显示查看更多的提示
-        showMore: {
-            type: Boolean,
-            default: uni.$u.props.avatarGroup.showMore
-        },
-        // 头像大小
-        size: {
-            type: [String, Number],
-            default: uni.$u.props.avatarGroup.size
-        },
-        // 指定从数组的对象元素中读取哪个属性作为图片地址
-        keyName: {
-            type: String,
-            default: uni.$u.props.avatarGroup.keyName
-        },
-		// 头像之间的遮挡比例
-        gap: {
-            type: [String, Number],
-            validator(value) {
-                return value >= 0 && value <= 1
-            },
-            default: uni.$u.props.avatarGroup.gap
-        },
-		// 需额外显示的值
-		extraValue: {
-			type: [Number, String],
-			default: uni.$u.props.avatarGroup.extraValue
-		}
-    }
-}

+ 0 - 103
uview-ui/components/u-avatar-group/u-avatar-group.vue

@@ -1,103 +0,0 @@
-<template>
-	<view class="u-avatar-group">
-		<view
-		    class="u-avatar-group__item"
-		    v-for="(item, index) in showUrl"
-		    :key="index"
-		    :style="{
-				marginLeft: index === 0 ? 0 : $u.addUnit(-size * gap)
-			}"
-		>
-			<u-avatar
-			    :size="size"
-			    :shape="shape"
-			    :mode="mode"
-			    :src="$u.test.object(item) ? keyName && item[keyName] || item.url : item"
-			></u-avatar>
-			<view
-			    class="u-avatar-group__item__show-more"
-			    v-if="showMore && index === showUrl.length - 1 && (urls.length > maxCount || extraValue > 0)"
-				@tap="clickHandler"
-			>
-				<u--text
-				    color="#ffffff"
-				    :size="size * 0.4"
-				    :text="`+${extraValue || urls.length - showUrl.length}`"
-					align="center"
-					customStyle="justify-content: center"
-				></u--text>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	import props from './props.js';
-	/**
-	 * AvatarGroup  头像组
-	 * @description 本组件一般用于展示头像的地方,如个人中心,或者评论列表页的用户头像展示等场所。
-	 * @tutorial https://www.uviewui.com/components/avatar.html
-	 * 
-	 * @property {Array}           urls     头像图片组 (默认 [] )
-	 * @property {String | Number} maxCount 最多展示的头像数量 ( 默认 5 )
-	 * @property {String}          shape    头像形状( 'circle' (默认) | 'square' )
-	 * @property {String}          mode     图片裁剪模式(默认 'scaleToFill' )
-	 * @property {Boolean}         showMore 超出maxCount时是否显示查看更多的提示 (默认 true )
-	 * @property {String | Number} size      头像大小 (默认 40 )
-	 * @property {String}          keyName  指定从数组的对象元素中读取哪个属性作为图片地址 
-	 * @property {String | Number} gap      头像之间的遮挡比例(0.4代表遮挡40%)  (默认 0.5 )
-	 * @property {String | Number} extraValue  需额外显示的值
-	 * @event    {Function}        showMore 头像组更多点击
-	 * @example  <u-avatar-group:urls="urls" size="35" gap="0.4" ></u-avatar-group:urls=>
-	 */
-	export default {
-		name: 'u-avatar-group',
-		mixins: [uni.$u.mpMixin, uni.$u.mixin, props],
-		data() {
-			return {
-
-			}
-		},
-		computed: {
-			showUrl() {
-				return this.urls.slice(0, this.maxCount)
-			}
-		},
-		methods: {
-			clickHandler() {
-				this.$emit('showMore')
-			}
-		},
-	}
-</script>
-
-<style lang="scss" scoped>
-	@import "../../libs/css/components.scss";
-
-	.u-avatar-group {
-		@include flex;
-
-		&__item {
-			margin-left: -10px;
-			position: relative;
-
-			&--no-indent {
-				// 如果你想质疑作者不会使用:first-child,说明你太年轻,因为nvue不支持
-				margin-left: 0;
-			}
-
-			&__show-more {
-				position: absolute;
-				top: 0;
-				bottom: 0;
-				left: 0;
-				right: 0;
-				background-color: rgba(0, 0, 0, 0.3);
-				@include flex;
-				align-items: center;
-				justify-content: center;
-				border-radius: 100px;
-			}
-		}
-	}
-</style>

部分文件因为文件数量过多而无法显示