From 310fe75d9068feeecf8d0e7b83479b270d77be41 Mon Sep 17 00:00:00 2001 From: linju <8432241+linjuDcloud@user.noreply.gitee.com> Date: Wed, 7 Apr 2021 11:40:46 +0800 Subject: [PATCH] 123 --- common/appInit.js | 2 + components/uni-badge/uni-badge.vue | 153 ------ components/uni-clientdb/license.md | 30 -- components/uni-clientdb/uni-clientdb.vue | 377 --------------- components/uni-forms-item/uni-forms-item.vue | 437 ----------------- components/uni-forms/uni-forms.vue | 420 ----------------- components/uni-forms/validate.js | 442 ------------------ components/uni-icons/icons.js | 132 ------ components/uni-icons/uni-icons.vue | 67 --- components/uni-list-item/uni-list-item.vue | 440 ----------------- components/uni-list/uni-list.vue | 106 ----- components/uni-list/uni-refresh.vue | 65 --- components/uni-list/uni-refresh.wxs | 87 ---- components/uni-load-more/config.json | 10 - components/uni-load-more/readme.md | 48 -- components/uni-load-more/uni-load-more.vue | 359 -------------- components/uni-popup/message.js | 22 - components/uni-popup/popup.js | 25 - components/uni-popup/share.js | 16 - components/uni-popup/uni-popup.vue | 296 ------------ components/uni-section/config.json | 12 - components/uni-section/readme.md | 30 -- components/uni-section/uni-section.vue | 136 ------ components/uni-transition/uni-transition.vue | 279 ----------- manifest.json | 68 +-- pages/grid/grid.nvue | 8 +- pages/list-news/list-news.vue | 6 +- pages/list/detail.vue | 8 +- pages/list/list.nvue | 6 +- .../uni-analyse-searchhot/index.js | 98 ++-- .../uni-analyse-searchhot/package.json | 28 +- .../cloudfunctions/user-center/index.js | 418 ++++++++--------- .../user-center/package-lock.json | 36 +- uniCloud-aliyun/cloudfunctions/user/index.js | 188 ++++++++ .../cloudfunctions/user/package-lock.json | 58 +++ .../cloudfunctions/user/package.json | 16 + .../cloudfunctions/user/user.param.json | 14 + uni_modules/login-page/readme.md | 1 - .../login-page/static/login/img/qq.png | Bin 9416 -> 0 bytes .../login-page/static/login/img/sinaweibo.png | Bin 13509 -> 0 bytes .../login-page/static/login/img/weixin.png | Bin 5286 -> 0 bytes uni_modules/uni-clientDB/package.json | 6 +- uni_modules/uni-clientDB/readme.md | 14 +- .../common/uni-config-center/index.js | 1 + .../common/uni-config-center/package.json | 9 + uni_modules/uni-data-picker/readme.md | 2 +- .../cloudfunctions/common/uni-id/LICENSE.md | 402 ++++++++-------- .../cloudfunctions/common/uni-id/config.json | 9 +- .../cloudfunctions/common/uni-id/index.js | 2 +- .../common/uni-id/package-lock.json | 28 ++ .../cloudfunctions/common/uni-id/package.json | 9 +- uni_modules/uni-list-detail/package.json | 2 +- uni_modules/uni-list-detail/readme.md | 2 +- .../uni-list-news-title-image/package.json | 2 +- .../uni-list-news-title-image/readme.md | 4 +- .../changelog.md | 0 .../common/myStyle.css | 0 .../components/auth-btn/auth-btn.vue | 0 .../login-action-sheet/login-action-sheet.vue | 0 .../components/login-ikonw/login-ikonw.vue | 0 .../login-short-code/login-short-code.vue | 0 .../package.json | 8 +- .../uni-login-page/pages/index/index--.nvue | 128 +++++ .../pages/index/index.nvue | 0 .../pages/index/phone-login.nvue | 0 .../pages/index/pwd-login.nvue | 0 .../pages/index/pwd-retrieve.nvue | 0 uni_modules/uni-login-page/readme.md | 1 + .../static/login/img/apple.png | Bin .../uni-login-page/static/login/img/home.png | Bin 0 -> 2637 bytes .../static/login/img/homeHL.png | Bin 0 -> 2196 bytes .../uni-login-page/static/login/img/logo.png | Bin 0 -> 4577 bytes .../uni-login-page/static/login/img/more.png | Bin 0 -> 3037 bytes .../uni-login-page/static/login/img/qq.png | Bin 0 -> 62363 bytes .../static/login/img/sinaweibo.png | Bin 0 -> 4513 bytes .../static/login/img/univerify.png | Bin .../uni-login-page/static/login/img/user.png | Bin 0 -> 4793 bytes .../static/login/img/userHL.png | Bin 0 -> 4214 bytes .../static/login/img/weixin.png | Bin 0 -> 2421 bytes .../check-version/check-version.param.json | 16 +- .../cloudfunctions/check-version/index.js | 212 ++++----- 81 files changed, 1148 insertions(+), 4653 deletions(-) delete mode 100644 components/uni-badge/uni-badge.vue delete mode 100644 components/uni-clientdb/license.md delete mode 100644 components/uni-clientdb/uni-clientdb.vue delete mode 100644 components/uni-forms-item/uni-forms-item.vue delete mode 100644 components/uni-forms/uni-forms.vue delete mode 100644 components/uni-forms/validate.js delete mode 100644 components/uni-icons/icons.js delete mode 100644 components/uni-icons/uni-icons.vue delete mode 100644 components/uni-list-item/uni-list-item.vue delete mode 100644 components/uni-list/uni-list.vue delete mode 100644 components/uni-list/uni-refresh.vue delete mode 100644 components/uni-list/uni-refresh.wxs delete mode 100644 components/uni-load-more/config.json delete mode 100644 components/uni-load-more/readme.md delete mode 100644 components/uni-load-more/uni-load-more.vue delete mode 100644 components/uni-popup/message.js delete mode 100644 components/uni-popup/popup.js delete mode 100644 components/uni-popup/share.js delete mode 100644 components/uni-popup/uni-popup.vue delete mode 100644 components/uni-section/config.json delete mode 100644 components/uni-section/readme.md delete mode 100644 components/uni-section/uni-section.vue delete mode 100644 components/uni-transition/uni-transition.vue create mode 100644 uniCloud-aliyun/cloudfunctions/user/index.js create mode 100644 uniCloud-aliyun/cloudfunctions/user/package-lock.json create mode 100644 uniCloud-aliyun/cloudfunctions/user/package.json create mode 100644 uniCloud-aliyun/cloudfunctions/user/user.param.json delete mode 100644 uni_modules/login-page/readme.md delete mode 100644 uni_modules/login-page/static/login/img/qq.png delete mode 100644 uni_modules/login-page/static/login/img/sinaweibo.png delete mode 100644 uni_modules/login-page/static/login/img/weixin.png create mode 100644 uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/index.js create mode 100644 uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/package.json create mode 100644 uni_modules/uni-id/uniCloud/cloudfunctions/common/uni-id/package-lock.json rename uni_modules/{login-page => uni-login-page}/changelog.md (100%) rename uni_modules/{login-page => uni-login-page}/common/myStyle.css (100%) rename uni_modules/{login-page => uni-login-page}/components/auth-btn/auth-btn.vue (100%) rename uni_modules/{login-page => uni-login-page}/components/login-action-sheet/login-action-sheet.vue (100%) rename uni_modules/{login-page => uni-login-page}/components/login-ikonw/login-ikonw.vue (100%) rename uni_modules/{login-page => uni-login-page}/components/login-short-code/login-short-code.vue (100%) rename uni_modules/{login-page => uni-login-page}/package.json (91%) create mode 100644 uni_modules/uni-login-page/pages/index/index--.nvue rename uni_modules/{login-page => uni-login-page}/pages/index/index.nvue (100%) rename uni_modules/{login-page => uni-login-page}/pages/index/phone-login.nvue (100%) rename uni_modules/{login-page => uni-login-page}/pages/index/pwd-login.nvue (100%) rename uni_modules/{login-page => uni-login-page}/pages/index/pwd-retrieve.nvue (100%) create mode 100644 uni_modules/uni-login-page/readme.md rename uni_modules/{login-page => uni-login-page}/static/login/img/apple.png (100%) create mode 100644 uni_modules/uni-login-page/static/login/img/home.png create mode 100644 uni_modules/uni-login-page/static/login/img/homeHL.png create mode 100644 uni_modules/uni-login-page/static/login/img/logo.png create mode 100644 uni_modules/uni-login-page/static/login/img/more.png create mode 100644 uni_modules/uni-login-page/static/login/img/qq.png create mode 100644 uni_modules/uni-login-page/static/login/img/sinaweibo.png rename uni_modules/{login-page => uni-login-page}/static/login/img/univerify.png (100%) create mode 100644 uni_modules/uni-login-page/static/login/img/user.png create mode 100644 uni_modules/uni-login-page/static/login/img/userHL.png create mode 100644 uni_modules/uni-login-page/static/login/img/weixin.png diff --git a/common/appInit.js b/common/appInit.js index b6d2054..9a78c28 100644 --- a/common/appInit.js +++ b/common/appInit.js @@ -9,6 +9,7 @@ export default function (){ } function initAppVersion(){ + // #ifdef APP-NVUE let appid = plus.runtime.appid; plus.runtime.getProperty(appid ,(wgtInfo) => { wgtInfo.version @@ -20,4 +21,5 @@ function initAppVersion(){ finall:appVersion.versionCode > wgtInfo.versionCode ? appVersion : wgtInfo } }); + // #endif } \ No newline at end of file diff --git a/components/uni-badge/uni-badge.vue b/components/uni-badge/uni-badge.vue deleted file mode 100644 index 4291fbc..0000000 --- a/components/uni-badge/uni-badge.vue +++ /dev/null @@ -1,153 +0,0 @@ - - - - - diff --git a/components/uni-clientdb/license.md b/components/uni-clientdb/license.md deleted file mode 100644 index 2b0e438..0000000 --- a/components/uni-clientdb/license.md +++ /dev/null @@ -1,30 +0,0 @@ -# clientDB使用许可协议 -本协议是数字天堂(北京)网络技术有限公司(以下称“DCloud”)与您之间达成的关于clientDB框架(以下简称本框架)的协议。 -本协议签订地点为中华人民共和国北京市海淀区。 -您使用本框架即视为您已阅读并同意受本协议的约束。 - -## 知识产权及使用授权 -您可以自由下载、使用、复制本框架而不需要向DCloud付费。 -DCloud所拥有的知识产权,包括但不限于商标、专利、著作权、商业秘密、专有数据、源码,并不发生转移或共享。 -您使用本框架开发的代码及输出物,包括但不限于网站、移动应用,其知识产权归属您所有。 -本框架未包含第三方软件或技术,不涉及额外遵循第三方软件的授权协议问题。 - -## 您的义务 -您不得破解、反编译、逆向工程本框架,不得破解或劫持本框架网络请求,不得对DCloud服务进行网络攻击,不得利用DCloud系统漏洞谋利或侵害DCloud利益,不得替换、删改本框架自带的非用户自定义文件。 -未经书面许可您不可利用DCloud产品的全部或部分文件、模块、组件来制作与DCloud争夺用户的产品(通过DCloud插件市场服务开发者不属于此范围)。 -如果您违反您的义务,DCloud将有权停止您使用本框架,造成的损失由您自行承担。 -如果您给DCloud造成重大损失,或者在接收到DCloud的停止违约通知后拒不改正,DCloud将有权停止对您的DCloud所有产品和服务的使用授权,冻结您在DCloud所有产品服务中的预付款项和应收款项,因此造成的损失由您自行承担。 -如果您的行为产生法律问题,DCloud有权追责您的法律责任。 - -## 隐私条款 -本框架未进行任何数据采集、发送等涉及数据隐私的行为。 - -## 安全 -您理解并同意,本框架同其他软件一样,无法承诺绝对的安全性。 -当DCloud发现本框架的任何安全漏洞时,将及时在[社区](https://ask.dcloud.net.cn/explore/)发送公告,并将及时发布紧急更新补丁和升级推送通知。 - -## 免责声明 -DCloud不因开发者使用本框架而承担任何法律责任。 - -## 协议修订 -根据发展,DCloud可能会对本协议进行修改。修改时,DCloud会在产品或者网页中显著的位置发布相关信息以便及时通知到用户。如果您选择继续使用本框架,即表示您同意接受这些修改。 diff --git a/components/uni-clientdb/uni-clientdb.vue b/components/uni-clientdb/uni-clientdb.vue deleted file mode 100644 index dea1ac4..0000000 --- a/components/uni-clientdb/uni-clientdb.vue +++ /dev/null @@ -1,377 +0,0 @@ - - - diff --git a/components/uni-forms-item/uni-forms-item.vue b/components/uni-forms-item/uni-forms-item.vue deleted file mode 100644 index cb91412..0000000 --- a/components/uni-forms-item/uni-forms-item.vue +++ /dev/null @@ -1,437 +0,0 @@ - - - - - diff --git a/components/uni-forms/uni-forms.vue b/components/uni-forms/uni-forms.vue deleted file mode 100644 index 5065cde..0000000 --- a/components/uni-forms/uni-forms.vue +++ /dev/null @@ -1,420 +0,0 @@ - - - - - diff --git a/components/uni-forms/validate.js b/components/uni-forms/validate.js deleted file mode 100644 index e369abb..0000000 --- a/components/uni-forms/validate.js +++ /dev/null @@ -1,442 +0,0 @@ - -var pattern = { - email: /^\S+?@\S+?\.\S+?$/, - url: new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$", 'i') -}; - -const FORMAT_MAPPING = { - "int": 'number', - "bool": 'boolean', - "double": 'number', - "long": 'number', - "password": 'string' -} - -function formatMessage(args, resources) { - var defaultMessage = ['label'] - defaultMessage.forEach((item) => { - if (args[item] === undefined) { - args[item] = '' - } - }) - - let str = resources - for (let key in args) { - let reg = new RegExp('{' + key + '}') - str = str.replace(reg, args[key]) - } - return str -} - -function isEmptyValue(value, type) { - if (value === undefined || value === null) { - return true; - } - - if (typeof value === 'string' && !value) { - return true; - } - - if (Array.isArray(value) && !value.length) { - return true; - } - - if (type === 'object' && !Object.keys(value).length) { - return true; - } - - return false; -} - -const types = { - integer(value) { - return types.number(value) && parseInt(value, 10) === value; - }, - string(value) { - return typeof value === 'string'; - }, - number(value) { - if (isNaN(value)) { - return false; - } - return typeof value === 'number'; - }, - "boolean": function (value) { - return typeof value === 'boolean'; - }, - "float": function (value) { - return types.number(value) && !types.integer(value); - }, - array(value) { - return Array.isArray(value); - }, - object(value) { - return typeof value === 'object' && !types.array(value); - }, - date(value) { - var v - if (value instanceof Date) { - v = value; - } else { - v = new Date(value); - } - return typeof v.getTime === 'function' && typeof v.getMonth === 'function' && typeof v.getYear === 'function' && !isNaN(v.getTime()); - }, - timestamp(value) { - if (!this.integer(value) || Math.abs(value).toString().length > 16) { - return false - } - - return this.date(value); - }, - email(value) { - return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255; - }, - url(value) { - return typeof value === 'string' && !!value.match(pattern.url); - }, - pattern(reg, value) { - try { - return new RegExp(reg).test(value); - } catch (e) { - return false; - } - }, - method(value) { - return typeof value === 'function'; - } -} - -class RuleValidator { - - constructor(message) { - this._message = message - } - - async validateRule(key, value, data, allData) { - var result = null - - let rules = key.rules - - let hasRequired = rules.findIndex((item) => { - return item.required - }) - if (hasRequired < 0) { - if (value === null || value === undefined) { - return result - } - if (typeof value === 'string' && !value.length) { - return result - } - } - - var message = this._message - - if (rules === undefined) { - return message['default'] - } - - for (var i = 0; i < rules.length; i++) { - let rule = rules[i] - let vt = this._getValidateType(rule) - - if (key.label !== undefined) { - Object.assign(rule, { - label: key.label - }) - } - - if (RuleValidatorHelper[vt]) { - result = RuleValidatorHelper[vt](rule, value, message) - if (result != null) { - break - } - } - - if (rule.validateExpr) { - let now = Date.now() - let resultExpr = rule.validateExpr(value, allData, now) - if (resultExpr === false) { - result = this._getMessage(rule, rule.errorMessage || this._message['default']) - break - } - } - - if (rule.validateFunction) { - result = await this.validateFunction(rule, value, data, allData, vt) - if (result !== null) { - break - } - } - } - - return result - } - - async validateFunction(rule, value, data, allData, vt) { - let result = null - try { - let callbackMessage = null - const res = await rule.validateFunction(rule, value, allData || data, (message) => { - callbackMessage = message - }) - if (callbackMessage || (typeof res === 'string' && res) || res === false) { - result = this._getMessage(rule, callbackMessage || res, vt) - } - } catch (e) { - result = this._getMessage(rule, e.message, vt) - } - return result - } - - _getMessage(rule, message, vt) { - return formatMessage(rule, message || rule.errorMessage || this._message[vt] || message['default']) - } - - _getValidateType(rule) { - // TODO - var result = '' - if (rule.required) { - result = 'required' - } else if (rule.format) { - result = 'format' - } else if (rule.range) { - result = 'range' - } else if (rule.maximum || rule.minimum) { - result = 'rangeNumber' - } else if (rule.maxLength || rule.minLength) { - result = 'rangeLength' - } else if (rule.pattern) { - result = 'pattern' - } - return result - } -} - -const RuleValidatorHelper = { - required(rule, value, message) { - if (rule.required && isEmptyValue(value, rule.format || typeof value)) { - return formatMessage(rule, rule.errorMessage || message.required); - } - - return null - }, - - range(rule, value, message) { - const { range, errorMessage } = rule; - - let list = new Array(range.length); - for (let i = 0; i < range.length; i++) { - const item = range[i]; - if (types.object(item) && item.value !== undefined) { - list[i] = item.value; - } else { - list[i] = item; - } - } - - let result = false - if (Array.isArray(value)) { - result = (new Set(value.concat(list)).size === list.length); - } else { - if (list.indexOf(value) > -1) { - result = true; - } - } - - if (!result) { - return formatMessage(rule, errorMessage || message['enum']); - } - - return null - }, - - rangeNumber(rule, value, message) { - if (!types.number(value)) { - return formatMessage(rule, rule.errorMessage || message.pattern.mismatch); - } - - let { minimum, maximum, exclusiveMinimum, exclusiveMaximum } = rule; - let min = exclusiveMinimum ? value <= minimum : value < minimum; - let max = exclusiveMaximum ? value >= maximum : value > maximum; - - if (minimum !== undefined && min) { - return formatMessage(rule, rule.errorMessage || message['number'].min) - } else if (maximum !== undefined && max) { - return formatMessage(rule, rule.errorMessage || message['number'].max) - } else if (minimum !== undefined && maximum !== undefined && (min || max)) { - return formatMessage(rule, rule.errorMessage || message['number'].range) - } - - return null - }, - - rangeLength(rule, value, message) { - if (!types.string(value) && !types.array(value)) { - return formatMessage(rule, rule.errorMessage || message.pattern.mismatch); - } - - let min = rule.minLength; - let max = rule.maxLength; - let val = value.length; - - if (min !== undefined && val < min) { - return formatMessage(rule, rule.errorMessage || message['length'].min) - } else if (max !== undefined && val > max) { - return formatMessage(rule, rule.errorMessage || message['length'].max) - } else if (min !== undefined && max !== undefined && (val < min || val > max)) { - return formatMessage(rule, rule.errorMessage || message['length'].range) - } - - return null - }, - - pattern(rule, value, message) { - if (!types['pattern'](rule.pattern, value)) { - return formatMessage(rule, rule.errorMessage || message.pattern.mismatch); - } - - return null - }, - - format(rule, value, message) { - var customTypes = Object.keys(types); - var format = FORMAT_MAPPING[rule.format] ? FORMAT_MAPPING[rule.format] : rule.format; - - if (customTypes.indexOf(format) > -1) { - if (!types[format](value)) { - return formatMessage(rule, rule.errorMessage || message.types[format]); - } - } - - return null - } -} - -class SchemaValidator extends RuleValidator { - - constructor(schema, options) { - super(SchemaValidator.message); - - this._schema = schema - this._options = options || null - } - - updateSchema(schema) { - this._schema = schema - } - - async validate(data, allData) { - let result = this._checkFieldInSchema(data) - if (!result) { - result = await this.invokeValidate(data, false, allData) - } - return result.length ? result[0] : null - } - - async validateAll(data, allData) { - let result = this._checkFieldInSchema(data) - if (!result) { - result = await this.invokeValidate(data, true, allData) - } - return result - } - - async validateUpdate(data, allData) { - let result = this._checkFieldInSchema(data) - if (!result) { - result = await this.invokeValidateUpdate(data, false, allData) - } - return result.length ? result[0] : null - } - - async invokeValidate(data, all, allData) { - let result = [] - let schema = this._schema - for (let key in schema) { - let value = schema[key] - let errorMessage = await this.validateRule(value, data[key], data, allData) - if (errorMessage != null) { - result.push({ - key, - errorMessage - }) - if (!all) break - } - } - return result - } - - async invokeValidateUpdate(data, all, allData) { - let result = [] - for (let key in data) { - let errorMessage = await this.validateRule(this._schema[key], data[key], data, allData) - if (errorMessage != null) { - result.push({ - key, - errorMessage - }) - if (!all) break - } - } - return result - } - - _checkFieldInSchema(data) { - var keys = Object.keys(data) - var keys2 = Object.keys(this._schema) - if (new Set(keys.concat(keys2)).size === keys2.length) { - return '' - } - return [{ - key: 'invalid', - errorMessage: SchemaValidator.message['defaultInvalid'] - }] - } -} - -function Message() { - return { - default: '验证错误', - defaultInvalid: '字段超出范围', - required: '{label}必填', - 'enum': '{label}超出范围', - whitespace: '{label}不能为空', - date: { - format: '{label}日期{value}格式无效', - parse: '{label}日期无法解析,{value}无效', - invalid: '{label}日期{value}无效' - }, - types: { - string: '{label}类型无效', - array: '{label}类型无效', - object: '{label}类型无效', - number: '{label}类型无效', - date: '{label}类型无效', - boolean: '{label}类型无效', - integer: '{label}类型无效', - float: '{label}类型无效', - regexp: '{label}无效', - email: '{label}类型无效', - url: '{label}类型无效' - }, - length: { - min: '{label}长度不能少于{minLength}', - max: '{label}长度不能超过{maxLength}', - range: '{label}必须介于{minLength}和{maxLength}之间' - }, - number: { - min: '{label}不能小于{minimum}', - max: '{label}不能大于{maximum}', - range: '{label}必须介于{minimum}and{maximum}之间' - }, - pattern: { - mismatch: '{label}格式不匹配' - } - }; -} - - -SchemaValidator.message = new Message(); - -export default SchemaValidator diff --git a/components/uni-icons/icons.js b/components/uni-icons/icons.js deleted file mode 100644 index 60b7332..0000000 --- a/components/uni-icons/icons.js +++ /dev/null @@ -1,132 +0,0 @@ -export default { - "pulldown": "\ue588", - "refreshempty": "\ue461", - "back": "\ue471", - "forward": "\ue470", - "more": "\ue507", - "more-filled": "\ue537", - "scan": "\ue612", - "qq": "\ue264", - "weibo": "\ue260", - "weixin": "\ue261", - "pengyouquan": "\ue262", - "loop": "\ue565", - "refresh": "\ue407", - "refresh-filled": "\ue437", - "arrowthindown": "\ue585", - "arrowthinleft": "\ue586", - "arrowthinright": "\ue587", - "arrowthinup": "\ue584", - "undo-filled": "\ue7d6", - "undo": "\ue406", - "redo": "\ue405", - "redo-filled": "\ue7d9", - "bars": "\ue563", - "chatboxes": "\ue203", - "camera": "\ue301", - "chatboxes-filled": "\ue233", - "camera-filled": "\ue7ef", - "cart-filled": "\ue7f4", - "cart": "\ue7f5", - "checkbox-filled": "\ue442", - "checkbox": "\ue7fa", - "arrowleft": "\ue582", - "arrowdown": "\ue581", - "arrowright": "\ue583", - "smallcircle-filled": "\ue801", - "arrowup": "\ue580", - "circle": "\ue411", - "eye-filled": "\ue568", - "eye-slash-filled": "\ue822", - "eye-slash": "\ue823", - "eye": "\ue824", - "flag-filled": "\ue825", - "flag": "\ue508", - "gear-filled": "\ue532", - "reload": "\ue462", - "gear": "\ue502", - "hand-thumbsdown-filled": "\ue83b", - "hand-thumbsdown": "\ue83c", - "hand-thumbsup-filled": "\ue83d", - "heart-filled": "\ue83e", - "hand-thumbsup": "\ue83f", - "heart": "\ue840", - "home": "\ue500", - "info": "\ue504", - "home-filled": "\ue530", - "info-filled": "\ue534", - "circle-filled": "\ue441", - "chat-filled": "\ue847", - "chat": "\ue263", - "mail-open-filled": "\ue84d", - "email-filled": "\ue231", - "mail-open": "\ue84e", - "email": "\ue201", - "checkmarkempty": "\ue472", - "list": "\ue562", - "locked-filled": "\ue856", - "locked": "\ue506", - "map-filled": "\ue85c", - "map-pin": "\ue85e", - "map-pin-ellipse": "\ue864", - "map": "\ue364", - "minus-filled": "\ue440", - "mic-filled": "\ue332", - "minus": "\ue410", - "micoff": "\ue360", - "mic": "\ue302", - "clear": "\ue434", - "smallcircle": "\ue868", - "close": "\ue404", - "closeempty": "\ue460", - "paperclip": "\ue567", - "paperplane": "\ue503", - "paperplane-filled": "\ue86e", - "person-filled": "\ue131", - "contact-filled": "\ue130", - "person": "\ue101", - "contact": "\ue100", - "images-filled": "\ue87a", - "phone": "\ue200", - "images": "\ue87b", - "image": "\ue363", - "image-filled": "\ue877", - "location-filled": "\ue333", - "location": "\ue303", - "plus-filled": "\ue439", - "plus": "\ue409", - "plusempty": "\ue468", - "help-filled": "\ue535", - "help": "\ue505", - "navigate-filled": "\ue884", - "navigate": "\ue501", - "mic-slash-filled": "\ue892", - "search": "\ue466", - "settings": "\ue560", - "sound": "\ue590", - "sound-filled": "\ue8a1", - "spinner-cycle": "\ue465", - "download-filled": "\ue8a4", - "personadd-filled": "\ue132", - "videocam-filled": "\ue8af", - "personadd": "\ue102", - "upload": "\ue402", - "upload-filled": "\ue8b1", - "starhalf": "\ue463", - "star-filled": "\ue438", - "star": "\ue408", - "trash": "\ue401", - "phone-filled": "\ue230", - "compose": "\ue400", - "videocam": "\ue300", - "trash-filled": "\ue8dc", - "download": "\ue403", - "chatbubble-filled": "\ue232", - "chatbubble": "\ue202", - "cloud-download": "\ue8e4", - "cloud-upload-filled": "\ue8e5", - "cloud-upload": "\ue8e6", - "cloud-download-filled": "\ue8e9", - "headphones":"\ue8bf", - "shop":"\ue609" -} diff --git a/components/uni-icons/uni-icons.vue b/components/uni-icons/uni-icons.vue deleted file mode 100644 index 5f303e4..0000000 --- a/components/uni-icons/uni-icons.vue +++ /dev/null @@ -1,67 +0,0 @@ - - - - - diff --git a/components/uni-list-item/uni-list-item.vue b/components/uni-list-item/uni-list-item.vue deleted file mode 100644 index 7688e64..0000000 --- a/components/uni-list-item/uni-list-item.vue +++ /dev/null @@ -1,440 +0,0 @@ - - - - - diff --git a/components/uni-list/uni-list.vue b/components/uni-list/uni-list.vue deleted file mode 100644 index d478729..0000000 --- a/components/uni-list/uni-list.vue +++ /dev/null @@ -1,106 +0,0 @@ - - - - diff --git a/components/uni-list/uni-refresh.vue b/components/uni-list/uni-refresh.vue deleted file mode 100644 index 3b4c5a2..0000000 --- a/components/uni-list/uni-refresh.vue +++ /dev/null @@ -1,65 +0,0 @@ - - - - - diff --git a/components/uni-list/uni-refresh.wxs b/components/uni-list/uni-refresh.wxs deleted file mode 100644 index 818a6b7..0000000 --- a/components/uni-list/uni-refresh.wxs +++ /dev/null @@ -1,87 +0,0 @@ -var pullDown = { - threshold: 95, - maxHeight: 200, - callRefresh: 'onrefresh', - callPullingDown: 'onpullingdown', - refreshSelector: '.uni-refresh' -}; - -function ready(newValue, oldValue, ownerInstance, instance) { - var state = instance.getState() - state.canPullDown = newValue; - // console.log(newValue); -} - -function touchStart(e, instance) { - var state = instance.getState(); - state.refreshInstance = instance.selectComponent(pullDown.refreshSelector); - state.canPullDown = (state.refreshInstance != null && state.refreshInstance != undefined); - if (!state.canPullDown) { - return - } - - // console.log("touchStart"); - - state.height = 0; - state.touchStartY = e.touches[0].pageY || e.changedTouches[0].pageY; - state.refreshInstance.setStyle({ - 'height': 0 - }); - state.refreshInstance.callMethod("onchange", true); -} - -function touchMove(e, ownerInstance) { - var instance = e.instance; - var state = instance.getState(); - if (!state.canPullDown) { - return - } - - var oldHeight = state.height; - var endY = e.touches[0].pageY || e.changedTouches[0].pageY; - var height = endY - state.touchStartY; - if (height > pullDown.maxHeight) { - return; - } - - var refreshInstance = state.refreshInstance; - refreshInstance.setStyle({ - 'height': height + 'px' - }); - - height = height < pullDown.maxHeight ? height : pullDown.maxHeight; - state.height = height; - refreshInstance.callMethod(pullDown.callPullingDown, { - height: height - }); -} - -function touchEnd(e, ownerInstance) { - var state = e.instance.getState(); - if (!state.canPullDown) { - return - } - - state.refreshInstance.callMethod("onchange", false); - - var refreshInstance = state.refreshInstance; - if (state.height > pullDown.threshold) { - refreshInstance.callMethod(pullDown.callRefresh); - return; - } - - refreshInstance.setStyle({ - 'height': 0 - }); -} - -function propObserver(newValue, oldValue, instance) { - pullDown = newValue; -} - -module.exports = { - touchmove: touchMove, - touchstart: touchStart, - touchend: touchEnd, - propObserver: propObserver -} diff --git a/components/uni-load-more/config.json b/components/uni-load-more/config.json deleted file mode 100644 index 12c5226..0000000 --- a/components/uni-load-more/config.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "id": "29", - "name": "LoadMore", - "desc": "加载更多", - "url": "load-more", - "type": "功能组件", - "edition": "1.1.5", - "path": "https://ext.dcloud.net.cn/plugin?id=29", - "update_log": "- 新增 颜色大小等配置项" -} diff --git a/components/uni-load-more/readme.md b/components/uni-load-more/readme.md deleted file mode 100644 index 7dc215a..0000000 --- a/components/uni-load-more/readme.md +++ /dev/null @@ -1,48 +0,0 @@ -### LoadMore 加载更多 -*已经支持在nvue页面中使用* - -用于列表中,做滚动加载使用,展示 loading 的各种状态,组件名:``uni-load-more``,代码块: uLoadMore。 - -### 使用方式 - -在 ``script`` 中引用组件 - -```javascript -import uniLoadMore from '@/components/uni-load-more/uni-load-more.vue' -export default { - components: {uniLoadMore} -} -``` - -在 ``template`` 中使用组件 - -```html - -``` - - -### 属性说明 - -|属性名 |类型 |默认值 |说明 | -|--- |---- |--- |--- | -|iconSize |Number |24 |指定图标大小 | -|status |String |more |loading 的状态,可选值:more(loading前)、loading(loading中)、noMore(没有更多了) | -|showIcon |Boolean|true |是否显示 loading 图标 | -|iconType |String |auto |指定图标样式,可选值:snow(ios雪花加载样式)、circle(安卓环形加载样式)、auto(根据平台自动选择加载样式)。**注意:**APP-NVUE不支持此选项| -|color |String |#777777 |图标和文字颜色 | -|contentText |Object |`{contentdown: "上拉显示更多",contentrefresh: "正在加载...",contentnomore: "没有更多数据了"}` |各状态文字说明 | - -**说明** - -- `iconType`为`snow`时,在`APP-NVUE`平台不可设置大小,在非`APP-NVUE`平台不可设置颜色 - - -### 事件说明 - -|事件名 |说明 |返回值 | -|--- |--- |--- | -|clickLoadMore |点击加载更多时触发 |e.detail={status:'loading'}| - -### 插件预览地址 - -[https://uniapp.dcloud.io/h5/pages/extUI/load-more/load-more](https://uniapp.dcloud.io/h5/pages/extUI/load-more/load-more) \ No newline at end of file diff --git a/components/uni-load-more/uni-load-more.vue b/components/uni-load-more/uni-load-more.vue deleted file mode 100644 index 9430321..0000000 --- a/components/uni-load-more/uni-load-more.vue +++ /dev/null @@ -1,359 +0,0 @@ - - - - - diff --git a/components/uni-popup/message.js b/components/uni-popup/message.js deleted file mode 100644 index 0ff9a02..0000000 --- a/components/uni-popup/message.js +++ /dev/null @@ -1,22 +0,0 @@ -export default { - created() { - if (this.type === 'message') { - // 不显示遮罩 - this.maskShow = false - // 获取子组件对象 - this.childrenMsg = null - } - }, - methods: { - customOpen() { - if (this.childrenMsg) { - this.childrenMsg.open() - } - }, - customClose() { - if (this.childrenMsg) { - this.childrenMsg.close() - } - } - } -} diff --git a/components/uni-popup/popup.js b/components/uni-popup/popup.js deleted file mode 100644 index 14d4b77..0000000 --- a/components/uni-popup/popup.js +++ /dev/null @@ -1,25 +0,0 @@ -import message from './message.js'; -// 定义 type 类型:弹出类型:top/bottom/center -const config = { - // 顶部弹出 - top:'top', - // 底部弹出 - bottom:'bottom', - // 居中弹出 - center:'center', - // 消息提示 - message:'top', - // 对话框 - dialog:'center', - // 分享 - share:'bottom', -} - -export default { - data(){ - return { - config:config - } - }, - mixins: [message] -} diff --git a/components/uni-popup/share.js b/components/uni-popup/share.js deleted file mode 100644 index 462bb83..0000000 --- a/components/uni-popup/share.js +++ /dev/null @@ -1,16 +0,0 @@ -export default { - created() { - if (this.type === 'share') { - // 关闭点击 - this.mkclick = false - } - }, - methods: { - customOpen() { - console.log('share 打开了'); - }, - customClose() { - console.log('share 关闭了'); - } - } -} diff --git a/components/uni-popup/uni-popup.vue b/components/uni-popup/uni-popup.vue deleted file mode 100644 index 0a509c5..0000000 --- a/components/uni-popup/uni-popup.vue +++ /dev/null @@ -1,296 +0,0 @@ - - - - \ No newline at end of file diff --git a/components/uni-section/config.json b/components/uni-section/config.json deleted file mode 100644 index 43d5d01..0000000 --- a/components/uni-section/config.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "id": "99999", - "name": "Section", - "desc": "标题栏", - "edition": "0.0.1", - "url": "section", - "type": "布局组件", - "path": "https://ext.dcloud.net.cn/plugin?id=", - "hidden": true, - "test":true, - "update_log": [] -} diff --git a/components/uni-section/readme.md b/components/uni-section/readme.md deleted file mode 100644 index c5998fa..0000000 --- a/components/uni-section/readme.md +++ /dev/null @@ -1,30 +0,0 @@ -### Section 标题栏 - -标题栏,用于显示标题,组件名:``uni-section``,代码块: uSection。 - -### 使用方式 - -在 ``script`` 中引用组件 - -```javascript -import uniSection from "@/components/uni-section/uni-section.vue" -export default { - components: {uniSection} -} -``` - -在 ``template`` 中使用组件 - -```html - - - -``` - -### 属性说明 - -|属性名 |类型 |默认值 |说明 | -|--- |---- |--- |--- | -|type |String |- |标题装饰类型 ,可选值:line(竖线)、circle(圆形)| -|title |String |- |主标题 | -|sub-title |String |- |副标题 | diff --git a/components/uni-section/uni-section.vue b/components/uni-section/uni-section.vue deleted file mode 100644 index 52a1567..0000000 --- a/components/uni-section/uni-section.vue +++ /dev/null @@ -1,136 +0,0 @@ - - - - diff --git a/components/uni-transition/uni-transition.vue b/components/uni-transition/uni-transition.vue deleted file mode 100644 index ad1cb55..0000000 --- a/components/uni-transition/uni-transition.vue +++ /dev/null @@ -1,279 +0,0 @@ - - - - - \ No newline at end of file diff --git a/manifest.json b/manifest.json index b268147..621b041 100644 --- a/manifest.json +++ b/manifest.json @@ -1,24 +1,24 @@ { "name" : "云端一体搜索模板", "appid" : "__UNI__BC54A00", - "description": "", - "versionName": "1.0.0", - "versionCode": "100", - "transformPx": false, - "app-plus": { - "usingComponents": true, - "nvueCompiler": "uni-app", - "compilerVersion": 3, - "splashscreen": { - "alwaysShowBeforeRender": true, - "waiting": true, - "autoclose": true, - "delay": 0 + "description" : "", + "versionName" : "1.0.0", + "versionCode" : "100", + "transformPx" : false, + "app-plus" : { + "usingComponents" : true, + "nvueCompiler" : "uni-app", + "compilerVersion" : 3, + "splashscreen" : { + "alwaysShowBeforeRender" : true, + "waiting" : true, + "autoclose" : true, + "delay" : 0 }, - "modules": {}, - "distribute": { - "android": { - "permissions": [ + "modules" : {}, + "distribute" : { + "android" : { + "permissions" : [ "", "", "", @@ -36,28 +36,28 @@ "" ] }, - "ios": {}, - "sdkConfigs": {} + "ios" : {}, + "sdkConfigs" : {} } }, - "quickapp": {}, - "mp-weixin": { - "appid": "", - "setting": { - "urlCheck": false + "quickapp" : {}, + "mp-weixin" : { + "appid" : "", + "setting" : { + "urlCheck" : false }, - "usingComponents": true + "usingComponents" : true }, - "mp-alipay": { - "usingComponents": true + "mp-alipay" : { + "usingComponents" : true }, - "mp-baidu": { - "usingComponents": true + "mp-baidu" : { + "usingComponents" : true }, - "mp-toutiao": { - "usingComponents": true + "mp-toutiao" : { + "usingComponents" : true }, - "uniStatistics": { - "enable": false + "uniStatistics" : { + "enable" : false } -} \ No newline at end of file +} diff --git a/pages/grid/grid.nvue b/pages/grid/grid.nvue index ebc1b82..f6f4fe1 100644 --- a/pages/grid/grid.nvue +++ b/pages/grid/grid.nvue @@ -7,7 +7,7 @@ disabled /> - @@ -19,7 +19,7 @@ - + @@ -35,7 +35,7 @@ - + + \ No newline at end of file diff --git a/uni_modules/login-page/pages/index/index.nvue b/uni_modules/uni-login-page/pages/index/index.nvue similarity index 100% rename from uni_modules/login-page/pages/index/index.nvue rename to uni_modules/uni-login-page/pages/index/index.nvue diff --git a/uni_modules/login-page/pages/index/phone-login.nvue b/uni_modules/uni-login-page/pages/index/phone-login.nvue similarity index 100% rename from uni_modules/login-page/pages/index/phone-login.nvue rename to uni_modules/uni-login-page/pages/index/phone-login.nvue diff --git a/uni_modules/login-page/pages/index/pwd-login.nvue b/uni_modules/uni-login-page/pages/index/pwd-login.nvue similarity index 100% rename from uni_modules/login-page/pages/index/pwd-login.nvue rename to uni_modules/uni-login-page/pages/index/pwd-login.nvue diff --git a/uni_modules/login-page/pages/index/pwd-retrieve.nvue b/uni_modules/uni-login-page/pages/index/pwd-retrieve.nvue similarity index 100% rename from uni_modules/login-page/pages/index/pwd-retrieve.nvue rename to uni_modules/uni-login-page/pages/index/pwd-retrieve.nvue diff --git a/uni_modules/uni-login-page/readme.md b/uni_modules/uni-login-page/readme.md new file mode 100644 index 0000000..b97c7e2 --- /dev/null +++ b/uni_modules/uni-login-page/readme.md @@ -0,0 +1 @@ +# uni-login-page \ No newline at end of file diff --git a/uni_modules/login-page/static/login/img/apple.png b/uni_modules/uni-login-page/static/login/img/apple.png similarity index 100% rename from uni_modules/login-page/static/login/img/apple.png rename to uni_modules/uni-login-page/static/login/img/apple.png diff --git a/uni_modules/uni-login-page/static/login/img/home.png b/uni_modules/uni-login-page/static/login/img/home.png new file mode 100644 index 0000000000000000000000000000000000000000..3d9412aaf1dc1d5ad9823a875a4cd55a8cfa290b GIT binary patch literal 2637 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 M+PT?Q*DdjrX@u*4OGxl_ya_xREUZc5JW;z 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 LNkvXXu0mjfThfl& literal 0 HcmV?d00001 diff --git a/uni_modules/uni-login-page/static/login/img/more.png b/uni_modules/uni-login-page/static/login/img/more.png new file mode 100644 index 0000000000000000000000000000000000000000..cdfe39223017f5ed522e36b30d80f22f80c9bf8e GIT binary patch literal 3037 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 V3Flfy&hhyH+Uf>sl`3}6{sRV>9E$(| literal 0 HcmV?d00001 diff --git a/uni_modules/uni-login-page/static/login/img/userHL.png b/uni_modules/uni-login-page/static/login/img/userHL.png new file mode 100644 index 0000000000000000000000000000000000000000..ffcb4fc0dbb112b9e13867b61e64f4ea3a65fe94 GIT binary patch literal 4214 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 LRIgFTDeiv&xhWP7 literal 0 HcmV?d00001 diff --git a/uni_modules/uni-login-page/static/login/img/weixin.png b/uni_modules/uni-login-page/static/login/img/weixin.png new file mode 100644 index 0000000000000000000000000000000000000000..c6f6076260e3688aaefaa3ce1ebe3ee3498d3ef9 GIT binary patch literal 2421 zcmbVOX;c$g77qKOhyg?plrkWSP4)zmNR%Z+5CUO`MwFsbArZ2W1PRziP#Q!)pb<=? z2(B!~w78&6WDv0h8=YXg0wUl>GYTz=O^b7If{HUgJpE(poT~Tkd-uEdyW2Tczz$h& zVZOv1fk0RU1~9^PD=_<-8tcB&tgK1hVlVTLl|_iSvJ6lHBYZfbBp3)3fXQ$;401Bl zuESmkgn^VF87qrr1=Apr00YkIVB`X^4vj!~t&@vECNJsslX+r^g4jmOk zX5m<3KbXf4$dbSjSs{^7RtiMrpw_JgyyP^U0Rb!n0l6SmD5c5isE>AOy8Y}i76p7% zk)_a4pGd{B*npo%0s~|W84cm^B*2r3!ISYM3f>(c;P6B&j)=t*(Rcz4N2TG(z~=|0 z^CsbNY2gg!XJ0yrj^fE=Vj32kk&%JPAYw$4WGtRarDAaeEP;U5X`rQ$MjPO0x^sA#jsHNIZ?WlVdbD0i^t%w0>NxtAGM{j zaQMG8zN#&a%oM}ea9Aozmq5CDaGmGCy4?M}qgh2A8(OG@uPX|e$`C>60$3;uWYAH% z8w`ifp%Fk3hog`wXdHz@L6bmFE*j)eh-jjx2S_5~VLXvan6vXWyg$>I=}TZx@dP3R zkM}3}l5q@wUn+s==Rx)*P?>YsK%rCy3L$vTH(%%bGnVqVSel;%24x~iq)3!H*9B~z zNG6i#S9#%&RJKHJ$(>ZfTx^|r1ewhQE@MV%

BL6 zx;bf4$aN!Tqzq*EM9TXf#-yZ{N7*T~8KbR}@iEaJTb**d9{{usq_X~fPOdJsyq$?h zT#gi&6|DLT>cS~~IM;W-f?SN9!;E)a4p#oo0hHO!rAWP-59}zve`_aGjZG(LN2oQe zL(y?Dic)!19er?{P&@SxZKl@kxAdilxZsf6{<@Itqnk|+pDWg2?~c6jQYB{A!*;D! z_^zO=zJNQ%_e&G~hD z9c7C7CsOsgO7$M*+wXed<>Y^@P8T!# zEn8o)x}ACyuelFhcOAQic!TWeQ6em5WZwT=cFrlx7wh*1xXM zzlXD_)cABjlqtymP`CnFI$+FU=k;+5o53}pz7v>)RaAyI0{y6g9a>$B#o(D0$Ihy#huNT@VWR=Swc7ckhk{!J+_qiOcrA8C>;9i0sq zIIZ={^IpH+#F3h1ST!}aD-owW7cXc&Pg-r(+b}42ncC8y-+u*}n(C&iGkF_+r~ySq zqPNyr+o1qW2Q@EyU>p#*;^IzSE?;Z5rr~`TduDTfSrjhDeK4VwwaO<&GLY35v~x8m z*IcyUbFd;Xp5mA{Gow&arCdV0*SG4a$?PFX`_t>?PGqQVz=J=T7W_>_jML=y;Zr>^ zsNCWkm!%}>annnW2NpyfS`jL{4i`boz&0s{r|) ztSfO*31htz@6?NaS+OE$BPND?UB)=Qd&LGz|0~1mpr+Ww4T>2Ft)Bbnp__r?1N*m* z-Wjq+I<@JF^`xoPifw6wj9eJ3y`HAsb3e$f`Obapi*Zfnbij+LvrnLi&a`Wa9akeR z?8+#A>nmEer?9-(;Fp{y0l7t4=na6YdQ+Tr*OAj{`uj>ND@ { /** * 检测升级 使用说明 @@ -9,129 +9,129 @@ exports.main = async (event, context) => { * 4. 使用上步取出的版本包的版本号 和传参 appVersion、wgtVersion 来检测是否有更新,必须同时大于这两项,否则返回暂无更新 * 5. 如果库中 wgt包 版本大于传参 appVersion,但是不满足 min_uni_version < appVersion,则不会使用wgt更新,会接着判断库中 app包version 是否大于 appVersion */ - - let { - appid, - appVersion, - wgtVersion, - } = event; - - const platform_Android = 'Android'; + + let { + appid, + appVersion, + wgtVersion, + } = event; + + const platform_Android = 'Android'; const platform_iOS = 'iOS'; const package_app = 'native_app'; const package_wgt = 'wgt'; - const app_version_db_name = 'opendb-app-versions' - - let platform = platform_Android; - - // 云函数URL化请求 - if (event.headers) { - let body; - try { - if (event.httpMethod.toLocaleLowerCase() === 'get') { - body = event.queryStringParameters; - } else { - body = JSON.parse(event.body); - } - } catch (e) { - return { - code: 500, - msg: '请求错误' - }; - } - - appid = body.appid; - appVersion = body.appVersion; - wgtVersion = body.wgtVersion; - - platform = /iPhone|iPad/.test(event.headers) ? platform_iOS : platform_Android; - } else if (context.OS) { + const app_version_db_name = 'opendb-app-versions' + + let platform = platform_Android; + + // 云函数URL化请求 + if (event.headers) { + let body; + try { + if (event.httpMethod.toLocaleLowerCase() === 'get') { + body = event.queryStringParameters; + } else { + body = JSON.parse(event.body); + } + } catch (e) { + return { + code: 500, + msg: '请求错误' + }; + } + + appid = body.appid; + appVersion = body.appVersion; + wgtVersion = body.wgtVersion; + + platform = /iPhone|iPad/.test(event.headers) ? platform_iOS : platform_Android; + } else if (context.OS) { platform = context.OS === 'android' ? platform_Android : context.OS === 'ios' ? platform_iOS - : platform_Android; - } - - if (appid && appVersion && wgtVersion && platform) { - const collection = uniCloud.database().collection(app_version_db_name); - - const record = await collection.where({ - appid, - platform, - stable_publish: true - }) - .orderBy('create_date', 'desc') - .get(); - - if (record && record.data && record.data.length > 0) { - const appVersionInDb = record.data.find(item => item.type === package_app) || {}; + : platform_Android; + } + + if (appid && appVersion && wgtVersion && platform) { + const collection = uniCloud.database().collection(app_version_db_name); + + const record = await collection.where({ + appid, + platform, + stable_publish: true + }) + .orderBy('create_date', 'desc') + .get(); + + if (record && record.data && record.data.length > 0) { + const appVersionInDb = record.data.find(item => item.type === package_app) || {}; const wgtVersionInDb = record.data.find(item => item.type === package_wgt) || {}; const hasAppPackage = !!Object.keys(appVersionInDb).length; const hasWgtPackage = !!Object.keys(wgtVersionInDb).length; - - // 取两个版本中版本号最大的包,版本一样,使用wgt包 + + // 取两个版本中版本号最大的包,版本一样,使用wgt包 let stablePublishDb = hasAppPackage ? hasWgtPackage ? compare(wgtVersionInDb.version, appVersionInDb.version) >= 0 ? wgtVersionInDb : appVersionInDb : appVersionInDb - : wgtVersionInDb; - - const { - version, - min_uni_version - } = stablePublishDb; - - // 库中的version必须满足同时大于appVersion和wgtVersion才行,因为上次更新可能是wgt更新 - const appUpdate = compare(version, appVersion) === 1; // app包可用更新 + : wgtVersionInDb; + + const { + version, + min_uni_version + } = stablePublishDb; + + // 库中的version必须满足同时大于appVersion和wgtVersion才行,因为上次更新可能是wgt更新 + const appUpdate = compare(version, appVersion) === 1; // app包可用更新 const wgtUpdate = compare(version, wgtVersion) === 1; // wgt包可用更新 - - if (Object.keys(stablePublishDb).length && appUpdate && wgtUpdate) { - // 判断是否可用wgt更新 - if (min_uni_version && compare(min_uni_version, appVersion) < 1) { - return { - code: 101, - message: 'wgt更新', - ...stablePublishDb - }; - } else if (hasAppPackage && compare(appVersionInDb.version, appVersion) === 1) { - return { - code: 102, - message: '整包更新', - ...appVersionInDb - }; - } - } - - return { - code: 0, - message: '当前版本已经是最新的,不需要更新' - }; - } - - return { - code: -101, - message: '暂无更新或检查appid是否填写正确' - }; + + if (Object.keys(stablePublishDb).length && appUpdate && wgtUpdate) { + // 判断是否可用wgt更新 + if (min_uni_version && compare(min_uni_version, appVersion) < 1) { + return { + code: 101, + message: 'wgt更新', + ...stablePublishDb + }; + } else if (hasAppPackage && compare(appVersionInDb.version, appVersion) === 1) { + return { + code: 102, + message: '整包更新', + ...appVersionInDb + }; + } + } + + return { + code: 0, + message: '当前版本已经是最新的,不需要更新' + }; + } + + return { + code: -101, + message: '暂无更新或检查appid是否填写正确' + }; } - - return { - code: -102, - message: '请检查传参是否填写正确' - }; -}; - -/** - * 对比版本号,如需要,请自行修改判断规则 - * @param {Object} v1 - * @param {Object} v2 - * v1 > v2 return 1 - * v1 < v2 return -1 - * v1 == v2 return 0 - */ + + return { + code: -102, + message: '请检查传参是否填写正确' + }; +}; + +/** + * 对比版本号,如需要,请自行修改判断规则 + * @param {Object} v1 + * @param {Object} v2 + * v1 > v2 return 1 + * v1 < v2 return -1 + * v1 == v2 return 0 + */ function compare(v1 = 0, v2 = 0) { // '1.2.5' > '1.2.4' 类似的版本号可以直接对比 - return v1 > v2 ? 1 : v1 < v2 ? -1 : 0; + return v1 > v2 ? 1 : v1 < v2 ? -1 : 0; } -- GitLab