diff --git a/uni_modules/uni-calendar/changelog.md b/uni_modules/uni-calendar/changelog.md
index 0a62d48ee4342f9526b4d052db8572bd80a17d48..0160b692f4e0aaffad8a52ddb4f3b84120d189f4 100644
--- a/uni_modules/uni-calendar/changelog.md
+++ b/uni_modules/uni-calendar/changelog.md
@@ -1,12 +1,20 @@
-## 1.4.3(2021-09-22)
-- 修复 startDate、 endDate 属性失效的 bug
-## 1.4.2(2021-08-24)
-- 新增 支持国际化
-## 1.4.1(2021-08-05)
-- 修复 弹出层被 tabbar 遮盖 bug
-## 1.4.0(2021-07-30)
-- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
-## 1.3.16(2021-05-12)
-- 新增 组件示例地址
-## 1.3.15(2021-02-04)
-- 调整为uni_modules目录规范
+## 1.4.7(2022-09-16)
+- 可以使用 uni-scss 控制主题色
+## 1.4.6(2022-09-08)
+- fix: 表头年月切换,导致改变当前日期为选择月1号,且未触发change事件
+## 1.4.5(2022-02-25)
+- 修复 条件编译 nvue 不支持的 css 样式
+## 1.4.4(2022-02-25)
+- 修复 条件编译 nvue 不支持的 css 样式
+## 1.4.3(2021-09-22)
+- 修复 startDate、 endDate 属性失效的 bug
+## 1.4.2(2021-08-24)
+- 新增 支持国际化
+## 1.4.1(2021-08-05)
+- 修复 弹出层被 tabbar 遮盖 bug
+## 1.4.0(2021-07-30)
+- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
+## 1.3.16(2021-05-12)
+- 新增 组件示例地址
+## 1.3.15(2021-02-04)
+- 调整为uni_modules目录规范
diff --git a/uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue b/uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue
index cd5863d5c92f5b447ed38e1abbbf983d711bb39f..d29ead547191049076a0afe510538c42a8de2cf2 100644
--- a/uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue
+++ b/uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue
@@ -96,6 +96,13 @@
diff --git a/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-picker.js b/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-picker.js
index 555d2c5ce3619278c62831f5cbe51b82451b7555..c12fd54b3a76a218c743f16eea3be583d7a64994 100644
--- a/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-picker.js
+++ b/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-picker.js
@@ -1,563 +1,563 @@
-export default {
- props: {
- localdata: {
- type: [Array, Object],
- default () {
- return []
- }
- },
- spaceInfo: {
- type: Object,
- default () {
- return {}
- }
- },
- collection: {
- type: String,
- default: ''
- },
- action: {
- type: String,
- default: ''
- },
- field: {
- type: String,
- default: ''
- },
- orderby: {
- type: String,
- default: ''
- },
- where: {
- type: [String, Object],
- default: ''
- },
- pageData: {
- type: String,
- default: 'add'
- },
- pageCurrent: {
- type: Number,
- default: 1
- },
- pageSize: {
- type: Number,
- default: 20
- },
- getcount: {
- type: [Boolean, String],
- default: false
- },
- getone: {
- type: [Boolean, String],
- default: false
- },
- gettree: {
- type: [Boolean, String],
- default: false
- },
- manual: {
- type: Boolean,
- default: false
- },
- value: {
- type: [Array, String, Number],
- default () {
- return []
- }
- },
- modelValue: {
- type: [Array, String, Number],
- default () {
- return []
- }
- },
- preload: {
- type: Boolean,
- default: false
- },
- stepSearh: {
- type: Boolean,
- default: true
- },
- selfField: {
- type: String,
- default: ''
- },
- parentField: {
- type: String,
- default: ''
- },
- multiple: {
- type: Boolean,
- default: false
- },
- map: {
- type: Object,
- default() {
- return {
- text: "text",
- value: "value"
- }
- }
- }
- },
- data() {
- return {
- loading: false,
- errorMessage: '',
- loadMore: {
- contentdown: '',
- contentrefresh: '',
- contentnomore: ''
- },
- dataList: [],
- selected: [],
- selectedIndex: 0,
- page: {
- current: this.pageCurrent,
- size: this.pageSize,
- count: 0
- }
- }
- },
- computed: {
- isLocaldata() {
- return !this.collection.length
- },
- postField() {
- let fields = [this.field];
- if (this.parentField) {
- fields.push(`${this.parentField} as parent_value`);
- }
- return fields.join(',');
- },
- dataValue() {
- let isModelValue = Array.isArray(this.modelValue) ? (this.modelValue.length > 0) : (this.modelValue !== null || this.modelValue !== undefined)
- return isModelValue ? this.modelValue : this.value
- },
- hasValue() {
- if (typeof this.dataValue === 'number') {
- return true
- }
- return (this.dataValue != null) && (this.dataValue.length > 0)
- }
- },
- created() {
- this.$watch(() => {
- var al = [];
- ['pageCurrent',
- 'pageSize',
- 'spaceInfo',
- 'value',
- 'modelValue',
- 'localdata',
- 'collection',
- 'action',
- 'field',
- 'orderby',
- 'where',
- 'getont',
- 'getcount',
- 'gettree'
- ].forEach(key => {
- al.push(this[key])
- });
- return al
- }, (newValue, oldValue) => {
- let needReset = false
- for (let i = 2; i < newValue.length; i++) {
- if (newValue[i] != oldValue[i]) {
- needReset = true
- break
- }
- }
- if (newValue[0] != oldValue[0]) {
- this.page.current = this.pageCurrent
- }
- this.page.size = this.pageSize
-
- this.onPropsChange()
- })
- this._treeData = []
- },
- methods: {
- onPropsChange() {
- this._treeData = []
- },
- getCommand(options = {}) {
- /* eslint-disable no-undef */
- let db = uniCloud.database(this.spaceInfo)
-
- const action = options.action || this.action
- if (action) {
- db = db.action(action)
- }
-
- const collection = options.collection || this.collection
- db = db.collection(collection)
-
- const where = options.where || this.where
- if (!(!where || !Object.keys(where).length)) {
- db = db.where(where)
- }
-
- const field = options.field || this.field
- if (field) {
- db = db.field(field)
- }
-
- const orderby = options.orderby || this.orderby
- if (orderby) {
- db = db.orderBy(orderby)
- }
-
- const current = options.pageCurrent !== undefined ? options.pageCurrent : this.page.current
- const size = options.pageSize !== undefined ? options.pageSize : this.page.size
- const getCount = options.getcount !== undefined ? options.getcount : this.getcount
- const getTree = options.gettree !== undefined ? options.gettree : this.gettree
-
- const getOptions = {
- getCount,
- getTree
- }
- if (options.getTreePath) {
- getOptions.getTreePath = options.getTreePath
- }
-
- db = db.skip(size * (current - 1)).limit(size).get(getOptions)
-
- return db
- },
- getNodeData(callback) {
- if (this.loading) {
- return
- }
- this.loading = true
- this.getCommand({
- field: this.postField,
- where: this._pathWhere()
- }).then((res) => {
- this.loading = false
- this.selected = res.result.data
- callback && callback()
- }).catch((err) => {
- this.loading = false
- this.errorMessage = err
- })
- },
- getTreePath(callback) {
- if (this.loading) {
- return
- }
- this.loading = true
-
- this.getCommand({
- field: this.postField,
- getTreePath: {
- startWith: `${this.selfField}=='${this.dataValue}'`
- }
- }).then((res) => {
- this.loading = false
- let treePath = []
- this._extractTreePath(res.result.data, treePath)
- this.selected = treePath
- callback && callback()
- }).catch((err) => {
- this.loading = false
- this.errorMessage = err
- })
- },
- loadData() {
- if (this.isLocaldata) {
- this._processLocalData()
- return
- }
-
- if (this.dataValue != null) {
- this._loadNodeData((data) => {
- this._treeData = data
- this._updateBindData()
- this._updateSelected()
- })
- return
- }
-
- if (this.stepSearh) {
- this._loadNodeData((data) => {
- this._treeData = data
- this._updateBindData()
- })
- } else {
- this._loadAllData((data) => {
- this._treeData = []
- this._extractTree(data, this._treeData, null)
- this._updateBindData()
- })
- }
- },
- _loadAllData(callback) {
- if (this.loading) {
- return
- }
- this.loading = true
-
- this.getCommand({
- field: this.postField,
- gettree: true,
- startwith: `${this.selfField}=='${this.dataValue}'`
- }).then((res) => {
- this.loading = false
- callback(res.result.data)
- this.onDataChange()
- }).catch((err) => {
- this.loading = false
- this.errorMessage = err
- })
- },
- _loadNodeData(callback, pw) {
- if (this.loading) {
- return
- }
- this.loading = true
-
- this.getCommand({
- field: this.postField,
- where: pw || this._postWhere(),
- pageSize: 500
- }).then((res) => {
- this.loading = false
- callback(res.result.data)
- this.onDataChange()
- }).catch((err) => {
- this.loading = false
- this.errorMessage = err
- })
- },
- _pathWhere() {
- let result = []
- let where_field = this._getParentNameByField();
- if (where_field) {
- result.push(`${where_field} == '${this.dataValue}'`)
- }
-
- if (this.where) {
- return `(${this.where}) && (${result.join(' || ')})`
- }
-
- return result.join(' || ')
- },
- _postWhere() {
- let result = []
- let selected = this.selected
- let parentField = this.parentField
- if (parentField) {
- result.push(`${parentField} == null || ${parentField} == ""`)
- }
- if (selected.length) {
- for (var i = 0; i < selected.length - 1; i++) {
- result.push(`${parentField} == '${selected[i].value}'`)
- }
- }
-
- let where = []
- if (this.where) {
- where.push(`(${this.where})`)
- }
- if (result.length) {
- where.push(`(${result.join(' || ')})`)
- }
-
- return where.join(' && ')
- },
- _nodeWhere() {
- let result = []
- let selected = this.selected
- if (selected.length) {
- result.push(`${this.parentField} == '${selected[selected.length - 1].value}'`)
- }
-
- if (this.where) {
- return `(${this.where}) && (${result.join(' || ')})`
- }
-
- return result.join(' || ')
- },
- _getParentNameByField() {
- const fields = this.field.split(',');
- let where_field = null;
- for (let i = 0; i < fields.length; i++) {
- const items = fields[i].split('as');
- if (items.length < 2) {
- continue;
- }
- if (items[1].trim() === 'value') {
- where_field = items[0].trim();
- break;
- }
- }
- return where_field
- },
- _isTreeView() {
- return (this.parentField && this.selfField)
- },
- _updateSelected() {
- var dl = this.dataList
- var sl = this.selected
- let textField = this.map.text
- let valueField = this.map.value
- for (var i = 0; i < sl.length; i++) {
- var value = sl[i].value
- var dl2 = dl[i]
- for (var j = 0; j < dl2.length; j++) {
- var item2 = dl2[j]
- if (item2[valueField] === value) {
- sl[i].text = item2[textField]
- break
- }
- }
- }
- },
- _updateBindData(node) {
- const {
- dataList,
- hasNodes
- } = this._filterData(this._treeData, this.selected)
-
- let isleaf = this._stepSearh === false && !hasNodes
-
- if (node) {
- node.isleaf = isleaf
- }
-
- this.dataList = dataList
- this.selectedIndex = dataList.length - 1
-
- if (!isleaf && this.selected.length < dataList.length) {
- this.selected.push({
- value: null,
- text: "请选择"
- })
- }
-
- return {
- isleaf,
- hasNodes
- }
- },
- _filterData(data, paths) {
- let dataList = []
- let hasNodes = true
-
- dataList.push(data.filter((item) => {
- return (item.parent_value === null || item.parent_value === undefined || item.parent_value === '')
- }))
- for (let i = 0; i < paths.length; i++) {
- var value = paths[i].value
- var nodes = data.filter((item) => {
- return item.parent_value === value
- })
-
- if (nodes.length) {
- dataList.push(nodes)
- } else {
- hasNodes = false
- }
- }
-
- return {
- dataList,
- hasNodes
- }
- },
- _extractTree(nodes, result, parent_value) {
- let list = result || []
- let valueField = this.map.value
- for (let i = 0; i < nodes.length; i++) {
- let node = nodes[i]
-
- let child = {}
- for (let key in node) {
- if (key !== 'children') {
- child[key] = node[key]
- }
- }
- if (parent_value !== null && parent_value !== undefined && parent_value !== '') {
- child.parent_value = parent_value
- }
- result.push(child)
-
- let children = node.children
- if (children) {
- this._extractTree(children, result, node[valueField])
- }
- }
- },
- _extractTreePath(nodes, result) {
- let list = result || []
- for (let i = 0; i < nodes.length; i++) {
- let node = nodes[i]
-
- let child = {}
- for (let key in node) {
- if (key !== 'children') {
- child[key] = node[key]
- }
- }
- result.push(child)
-
- let children = node.children
- if (children) {
- this._extractTreePath(children, result)
- }
- }
- },
- _findNodePath(key, nodes, path = []) {
- let textField = this.map.text
- let valueField = this.map.value
- for (let i = 0; i < nodes.length; i++) {
- let node = nodes[i]
- let children = node.children
- let text = node[textField]
- let value = node[valueField]
-
- path.push({
- value,
- text
- })
-
- if (value === key) {
- return path
- }
-
- if (children) {
- const p = this._findNodePath(key, children, path)
- if (p.length) {
- return p
- }
- }
-
- path.pop()
- }
- return []
- },
- _processLocalData() {
- this._treeData = []
- this._extractTree(this.localdata, this._treeData)
-
- var inputValue = this.dataValue
- if (inputValue === undefined) {
- return
- }
-
- if (Array.isArray(inputValue)) {
- inputValue = inputValue[inputValue.length - 1]
- if (typeof inputValue === 'object' && inputValue[this.map.value]) {
- inputValue = inputValue[this.map.value]
- }
- }
-
- this.selected = this._findNodePath(inputValue, this.localdata)
- }
- }
-}
+export default {
+ props: {
+ localdata: {
+ type: [Array, Object],
+ default () {
+ return []
+ }
+ },
+ spaceInfo: {
+ type: Object,
+ default () {
+ return {}
+ }
+ },
+ collection: {
+ type: String,
+ default: ''
+ },
+ action: {
+ type: String,
+ default: ''
+ },
+ field: {
+ type: String,
+ default: ''
+ },
+ orderby: {
+ type: String,
+ default: ''
+ },
+ where: {
+ type: [String, Object],
+ default: ''
+ },
+ pageData: {
+ type: String,
+ default: 'add'
+ },
+ pageCurrent: {
+ type: Number,
+ default: 1
+ },
+ pageSize: {
+ type: Number,
+ default: 20
+ },
+ getcount: {
+ type: [Boolean, String],
+ default: false
+ },
+ getone: {
+ type: [Boolean, String],
+ default: false
+ },
+ gettree: {
+ type: [Boolean, String],
+ default: false
+ },
+ manual: {
+ type: Boolean,
+ default: false
+ },
+ value: {
+ type: [Array, String, Number],
+ default () {
+ return []
+ }
+ },
+ modelValue: {
+ type: [Array, String, Number],
+ default () {
+ return []
+ }
+ },
+ preload: {
+ type: Boolean,
+ default: false
+ },
+ stepSearh: {
+ type: Boolean,
+ default: true
+ },
+ selfField: {
+ type: String,
+ default: ''
+ },
+ parentField: {
+ type: String,
+ default: ''
+ },
+ multiple: {
+ type: Boolean,
+ default: false
+ },
+ map: {
+ type: Object,
+ default() {
+ return {
+ text: "text",
+ value: "value"
+ }
+ }
+ }
+ },
+ data() {
+ return {
+ loading: false,
+ errorMessage: '',
+ loadMore: {
+ contentdown: '',
+ contentrefresh: '',
+ contentnomore: ''
+ },
+ dataList: [],
+ selected: [],
+ selectedIndex: 0,
+ page: {
+ current: this.pageCurrent,
+ size: this.pageSize,
+ count: 0
+ }
+ }
+ },
+ computed: {
+ isLocaldata() {
+ return !this.collection.length
+ },
+ postField() {
+ let fields = [this.field];
+ if (this.parentField) {
+ fields.push(`${this.parentField} as parent_value`);
+ }
+ return fields.join(',');
+ },
+ dataValue() {
+ let isModelValue = Array.isArray(this.modelValue) ? (this.modelValue.length > 0) : (this.modelValue !== null || this.modelValue !== undefined)
+ return isModelValue ? this.modelValue : this.value
+ },
+ hasValue() {
+ if (typeof this.dataValue === 'number') {
+ return true
+ }
+ return (this.dataValue != null) && (this.dataValue.length > 0)
+ }
+ },
+ created() {
+ this.$watch(() => {
+ var al = [];
+ ['pageCurrent',
+ 'pageSize',
+ 'spaceInfo',
+ 'value',
+ 'modelValue',
+ 'localdata',
+ 'collection',
+ 'action',
+ 'field',
+ 'orderby',
+ 'where',
+ 'getont',
+ 'getcount',
+ 'gettree'
+ ].forEach(key => {
+ al.push(this[key])
+ });
+ return al
+ }, (newValue, oldValue) => {
+ let needReset = false
+ for (let i = 2; i < newValue.length; i++) {
+ if (newValue[i] != oldValue[i]) {
+ needReset = true
+ break
+ }
+ }
+ if (newValue[0] != oldValue[0]) {
+ this.page.current = this.pageCurrent
+ }
+ this.page.size = this.pageSize
+
+ this.onPropsChange()
+ })
+ this._treeData = []
+ },
+ methods: {
+ onPropsChange() {
+ this._treeData = []
+ },
+ getCommand(options = {}) {
+ /* eslint-disable no-undef */
+ let db = uniCloud.database(this.spaceInfo)
+
+ const action = options.action || this.action
+ if (action) {
+ db = db.action(action)
+ }
+
+ const collection = options.collection || this.collection
+ db = db.collection(collection)
+
+ const where = options.where || this.where
+ if (!(!where || !Object.keys(where).length)) {
+ db = db.where(where)
+ }
+
+ const field = options.field || this.field
+ if (field) {
+ db = db.field(field)
+ }
+
+ const orderby = options.orderby || this.orderby
+ if (orderby) {
+ db = db.orderBy(orderby)
+ }
+
+ const current = options.pageCurrent !== undefined ? options.pageCurrent : this.page.current
+ const size = options.pageSize !== undefined ? options.pageSize : this.page.size
+ const getCount = options.getcount !== undefined ? options.getcount : this.getcount
+ const getTree = options.gettree !== undefined ? options.gettree : this.gettree
+
+ const getOptions = {
+ getCount,
+ getTree
+ }
+ if (options.getTreePath) {
+ getOptions.getTreePath = options.getTreePath
+ }
+
+ db = db.skip(size * (current - 1)).limit(size).get(getOptions)
+
+ return db
+ },
+ getNodeData(callback) {
+ if (this.loading) {
+ return
+ }
+ this.loading = true
+ this.getCommand({
+ field: this.postField,
+ where: this._pathWhere()
+ }).then((res) => {
+ this.loading = false
+ this.selected = res.result.data
+ callback && callback()
+ }).catch((err) => {
+ this.loading = false
+ this.errorMessage = err
+ })
+ },
+ getTreePath(callback) {
+ if (this.loading) {
+ return
+ }
+ this.loading = true
+
+ this.getCommand({
+ field: this.postField,
+ getTreePath: {
+ startWith: `${this.selfField}=='${this.dataValue}'`
+ }
+ }).then((res) => {
+ this.loading = false
+ let treePath = []
+ this._extractTreePath(res.result.data, treePath)
+ this.selected = treePath
+ callback && callback()
+ }).catch((err) => {
+ this.loading = false
+ this.errorMessage = err
+ })
+ },
+ loadData() {
+ if (this.isLocaldata) {
+ this._processLocalData()
+ return
+ }
+
+ if (this.dataValue != null) {
+ this._loadNodeData((data) => {
+ this._treeData = data
+ this._updateBindData()
+ this._updateSelected()
+ })
+ return
+ }
+
+ if (this.stepSearh) {
+ this._loadNodeData((data) => {
+ this._treeData = data
+ this._updateBindData()
+ })
+ } else {
+ this._loadAllData((data) => {
+ this._treeData = []
+ this._extractTree(data, this._treeData, null)
+ this._updateBindData()
+ })
+ }
+ },
+ _loadAllData(callback) {
+ if (this.loading) {
+ return
+ }
+ this.loading = true
+
+ this.getCommand({
+ field: this.postField,
+ gettree: true,
+ startwith: `${this.selfField}=='${this.dataValue}'`
+ }).then((res) => {
+ this.loading = false
+ callback(res.result.data)
+ this.onDataChange()
+ }).catch((err) => {
+ this.loading = false
+ this.errorMessage = err
+ })
+ },
+ _loadNodeData(callback, pw) {
+ if (this.loading) {
+ return
+ }
+ this.loading = true
+
+ this.getCommand({
+ field: this.postField,
+ where: pw || this._postWhere(),
+ pageSize: 500
+ }).then((res) => {
+ this.loading = false
+ callback(res.result.data)
+ this.onDataChange()
+ }).catch((err) => {
+ this.loading = false
+ this.errorMessage = err
+ })
+ },
+ _pathWhere() {
+ let result = []
+ let where_field = this._getParentNameByField();
+ if (where_field) {
+ result.push(`${where_field} == '${this.dataValue}'`)
+ }
+
+ if (this.where) {
+ return `(${this.where}) && (${result.join(' || ')})`
+ }
+
+ return result.join(' || ')
+ },
+ _postWhere() {
+ let result = []
+ let selected = this.selected
+ let parentField = this.parentField
+ if (parentField) {
+ result.push(`${parentField} == null || ${parentField} == ""`)
+ }
+ if (selected.length) {
+ for (var i = 0; i < selected.length - 1; i++) {
+ result.push(`${parentField} == '${selected[i].value}'`)
+ }
+ }
+
+ let where = []
+ if (this.where) {
+ where.push(`(${this.where})`)
+ }
+ if (result.length) {
+ where.push(`(${result.join(' || ')})`)
+ }
+
+ return where.join(' && ')
+ },
+ _nodeWhere() {
+ let result = []
+ let selected = this.selected
+ if (selected.length) {
+ result.push(`${this.parentField} == '${selected[selected.length - 1].value}'`)
+ }
+
+ if (this.where) {
+ return `(${this.where}) && (${result.join(' || ')})`
+ }
+
+ return result.join(' || ')
+ },
+ _getParentNameByField() {
+ const fields = this.field.split(',');
+ let where_field = null;
+ for (let i = 0; i < fields.length; i++) {
+ const items = fields[i].split('as');
+ if (items.length < 2) {
+ continue;
+ }
+ if (items[1].trim() === 'value') {
+ where_field = items[0].trim();
+ break;
+ }
+ }
+ return where_field
+ },
+ _isTreeView() {
+ return (this.parentField && this.selfField)
+ },
+ _updateSelected() {
+ var dl = this.dataList
+ var sl = this.selected
+ let textField = this.map.text
+ let valueField = this.map.value
+ for (var i = 0; i < sl.length; i++) {
+ var value = sl[i].value
+ var dl2 = dl[i]
+ for (var j = 0; j < dl2.length; j++) {
+ var item2 = dl2[j]
+ if (item2[valueField] === value) {
+ sl[i].text = item2[textField]
+ break
+ }
+ }
+ }
+ },
+ _updateBindData(node) {
+ const {
+ dataList,
+ hasNodes
+ } = this._filterData(this._treeData, this.selected)
+
+ let isleaf = this._stepSearh === false && !hasNodes
+
+ if (node) {
+ node.isleaf = isleaf
+ }
+
+ this.dataList = dataList
+ this.selectedIndex = dataList.length - 1
+
+ if (!isleaf && this.selected.length < dataList.length) {
+ this.selected.push({
+ value: null,
+ text: "请选择"
+ })
+ }
+
+ return {
+ isleaf,
+ hasNodes
+ }
+ },
+ _filterData(data, paths) {
+ let dataList = []
+ let hasNodes = true
+
+ dataList.push(data.filter((item) => {
+ return (item.parent_value === null || item.parent_value === undefined || item.parent_value === '')
+ }))
+ for (let i = 0; i < paths.length; i++) {
+ var value = paths[i].value
+ var nodes = data.filter((item) => {
+ return item.parent_value === value
+ })
+
+ if (nodes.length) {
+ dataList.push(nodes)
+ } else {
+ hasNodes = false
+ }
+ }
+
+ return {
+ dataList,
+ hasNodes
+ }
+ },
+ _extractTree(nodes, result, parent_value) {
+ let list = result || []
+ let valueField = this.map.value
+ for (let i = 0; i < nodes.length; i++) {
+ let node = nodes[i]
+
+ let child = {}
+ for (let key in node) {
+ if (key !== 'children') {
+ child[key] = node[key]
+ }
+ }
+ if (parent_value !== null && parent_value !== undefined && parent_value !== '') {
+ child.parent_value = parent_value
+ }
+ result.push(child)
+
+ let children = node.children
+ if (children) {
+ this._extractTree(children, result, node[valueField])
+ }
+ }
+ },
+ _extractTreePath(nodes, result) {
+ let list = result || []
+ for (let i = 0; i < nodes.length; i++) {
+ let node = nodes[i]
+
+ let child = {}
+ for (let key in node) {
+ if (key !== 'children') {
+ child[key] = node[key]
+ }
+ }
+ result.push(child)
+
+ let children = node.children
+ if (children) {
+ this._extractTreePath(children, result)
+ }
+ }
+ },
+ _findNodePath(key, nodes, path = []) {
+ let textField = this.map.text
+ let valueField = this.map.value
+ for (let i = 0; i < nodes.length; i++) {
+ let node = nodes[i]
+ let children = node.children
+ let text = node[textField]
+ let value = node[valueField]
+
+ path.push({
+ value,
+ text
+ })
+
+ if (value === key) {
+ return path
+ }
+
+ if (children) {
+ const p = this._findNodePath(key, children, path)
+ if (p.length) {
+ return p
+ }
+ }
+
+ path.pop()
+ }
+ return []
+ },
+ _processLocalData() {
+ this._treeData = []
+ this._extractTree(this.localdata, this._treeData)
+
+ var inputValue = this.dataValue
+ if (inputValue === undefined) {
+ return
+ }
+
+ if (Array.isArray(inputValue)) {
+ inputValue = inputValue[inputValue.length - 1]
+ if (typeof inputValue === 'object' && inputValue[this.map.value]) {
+ inputValue = inputValue[this.map.value]
+ }
+ }
+
+ this.selected = this._findNodePath(inputValue, this.localdata)
+ }
+ }
+}
diff --git a/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue b/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue
index 44b72ca3d2cc072a562d12d19fbfc419916ba0e8..e6c187a70bbcdc87ebf8fb51baac973cae4c635a 100644
--- a/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue
+++ b/uni_modules/uni-data-picker/components/uni-data-pickerview/uni-data-pickerview.vue
@@ -5,16 +5,16 @@
+ v-if="item.text" @click="handleSelect(index)">
{{item.text}}
-
+
-
{{item[map.text]}}
@@ -177,7 +177,9 @@
}
}
-
diff --git a/uni_modules/uni-data-select/package.json b/uni_modules/uni-data-select/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..f156d5007866f27033f66eab523878853234a6d8
--- /dev/null
+++ b/uni_modules/uni-data-select/package.json
@@ -0,0 +1,85 @@
+{
+ "id": "uni-data-select",
+ "displayName": "uni-data-select 下拉框选择器",
+ "version": "0.1.9",
+ "description": "通过数据驱动的下拉框选择器",
+ "keywords": [
+ "uni-ui",
+ "select",
+ "uni-data-select",
+ "下拉框",
+ "下拉选"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": "^3.1.1"
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+"dcloudext": {
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
+ "type": "component-vue"
+ },
+ "uni_modules": {
+ "dependencies": ["uni-load-more"],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "u",
+ "app-nvue": "n"
+ },
+ "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",
+ "阿里": "u",
+ "百度": "u",
+ "字节跳动": "u",
+ "QQ": "u",
+ "京东": "u"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
+}
diff --git a/uni_modules/uni-data-select/readme.md b/uni_modules/uni-data-select/readme.md
new file mode 100644
index 0000000000000000000000000000000000000000..eb58de300fdd78e33341356bdbc437da7f15b566
--- /dev/null
+++ b/uni_modules/uni-data-select/readme.md
@@ -0,0 +1,8 @@
+## DataSelect 下拉框选择器
+> **组件名:uni-data-select**
+> 代码块: `uDataSelect`
+
+当选项过多时,使用下拉菜单展示并选择内容
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-data-select)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
diff --git a/uni_modules/uni-datetime-picker/changelog.md b/uni_modules/uni-datetime-picker/changelog.md
index 401063eb65740fb1838f1705727121d24f7f6e0d..9f09862943608f919c4937cc85f818d9f2e4003d 100644
--- a/uni_modules/uni-datetime-picker/changelog.md
+++ b/uni_modules/uni-datetime-picker/changelog.md
@@ -1,85 +1,103 @@
-## 2.2.2(2021-12-10)
-- 修复 clear-icon 属性在小程序平台不生效的 bug
-## 2.2.1(2021-12-10)
-- 修复 日期范围选在小程序平台,必须多点击一次才能取消选中状态的 bug
-## 2.2.0(2021-11-19)
-- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
-- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-datetime-picker](https://uniapp.dcloud.io/component/uniui/uni-datetime-picker)
-## 2.1.5(2021-11-09)
-- 新增 提供组件设计资源,组件样式调整
-## 2.1.4(2021-09-10)
-- 修复 hide-second 在移动端的 bug
-- 修复 单选赋默认值时,赋值日期未高亮的 bug
-- 修复 赋默认值时,移动端未正确显示时间的 bug
-## 2.1.3(2021-09-09)
-- 新增 hide-second 属性,支持只使用时分,隐藏秒
-## 2.1.2(2021-09-03)
-- 优化 取消选中时(范围选)直接开始下一次选择, 避免多点一次
-- 优化 移动端支持清除按钮,同时支持通过 ref 调用组件的 clear 方法
-- 优化 调整字号大小,美化日历界面
-- 修复 因国际化导致的 placeholder 失效的 bug
-## 2.1.1(2021-08-24)
-- 新增 支持国际化
-- 优化 范围选择器在 pc 端过宽的问题
-## 2.1.0(2021-08-09)
-- 新增 适配 vue3
-## 2.0.19(2021-08-09)
-- 新增 支持作为 uni-forms 子组件相关功能
-- 修复 在 uni-forms 中使用时,选择时间报 NAN 错误的 bug
-## 2.0.18(2021-08-05)
-- 修复 type 属性动态赋值无效的 bug
-- 修复 ‘确认’按钮被 tabbar 遮盖 bug
-- 修复 组件未赋值时范围选左、右日历相同的 bug
-## 2.0.17(2021-08-04)
-- 修复 范围选未正确显示当前值的 bug
-- 修复 h5 平台(移动端)报错 'cale' of undefined 的 bug
-## 2.0.16(2021-07-21)
-- 新增 return-type 属性支持返回 date 日期对象
-## 2.0.15(2021-07-14)
-- 修复 单选日期类型,初始赋值后不在当前日历的 bug
-- 新增 clearIcon 属性,显示框的清空按钮可配置显示隐藏(仅 pc 有效)
-- 优化 移动端移除显示框的清空按钮,无实际用途
-## 2.0.14(2021-07-14)
-- 修复 组件赋值为空,界面未更新的 bug
-- 修复 start 和 end 不能动态赋值的 bug
-- 修复 范围选类型,用户选择后再次选择右侧日历(结束日期)显示不正确的 bug
-## 2.0.13(2021-07-08)
-- 修复 范围选择不能动态赋值的 bug
-## 2.0.12(2021-07-08)
-- 修复 范围选择的初始时间在一个月内时,造成无法选择的bug
-## 2.0.11(2021-07-08)
-- 优化 弹出层在超出视窗边缘定位不准确的问题
-## 2.0.10(2021-07-08)
-- 修复 范围起始点样式的背景色与今日样式的字体前景色融合,导致日期字体看不清的 bug
-- 优化 弹出层在超出视窗边缘被遮盖的问题
-## 2.0.9(2021-07-07)
-- 新增 maskClick 事件
-- 修复 特殊情况日历 rpx 布局错误的 bug,rpx -> px
-- 修复 范围选择时清空返回值不合理的bug,['', ''] -> []
-## 2.0.8(2021-07-07)
-- 新增 日期时间显示框支持插槽
-## 2.0.7(2021-07-01)
-- 优化 添加 uni-icons 依赖
-## 2.0.6(2021-05-22)
-- 修复 图标在小程序上不显示的 bug
-- 优化 重命名引用组件,避免潜在组件命名冲突
-## 2.0.5(2021-05-20)
-- 优化 代码目录扁平化
-## 2.0.4(2021-05-12)
-- 新增 组件示例地址
-## 2.0.3(2021-05-10)
-- 修复 ios 下不识别 '-' 日期格式的 bug
-- 优化 pc 下弹出层添加边框和阴影
-## 2.0.2(2021-05-08)
-- 修复 在 admin 中获取弹出层定位错误的bug
-## 2.0.1(2021-05-08)
-- 修复 type 属性向下兼容,默认值从 date 变更为 datetime
-## 2.0.0(2021-04-30)
-- 支持日历形式的日期+时间的范围选择
- > 注意:此版本不向后兼容,不再支持单独时间选择(type=time)及相关的 hide-second 属性(时间选可使用内置组件 picker)
-## 1.0.6(2021-03-18)
-- 新增 hide-second 属性,时间支持仅选择时、分
-- 修复 选择跟显示的日期不一样的 bug
-- 修复 chang事件触发2次的 bug
-- 修复 分、秒 end 范围错误的 bug
-- 优化 更好的 nvue 适配
+## 2.2.11(2022-09-19)
+- 修复,支付宝小程序样式错乱,[详情](https://github.com/dcloudio/uni-app/issues/3861)
+## 2.2.10(2022-09-19)
+- 修复,反向选择日期范围,日期显示异常,[详情](https://ask.dcloud.net.cn/question/153401?item_id=212892&rf=false)
+## 2.2.9(2022-09-16)
+- 可以使用 uni-scss 控制主题色
+## 2.2.8(2022-09-08)
+- 修复 close事件无效的 bug
+## 2.2.7(2022-09-05)
+- 修复 移动端 maskClick 无效的 bug,详见:[https://ask.dcloud.net.cn/question/140824?item_id=209458&rf=false](https://ask.dcloud.net.cn/question/140824?item_id=209458&rf=false)
+## 2.2.6(2022-06-30)
+- 优化 组件样式,调整了组件图标大小、高度、颜色等,与uni-ui风格保持一致
+## 2.2.5(2022-06-24)
+- 修复 日历顶部年月及底部确认未国际化 bug
+## 2.2.4(2022-03-31)
+- 修复 Vue3 下动态赋值,单选类型未响应的 bug
+## 2.2.3(2022-03-28)
+- 修复 Vue3 下动态赋值未响应的 bug
+## 2.2.2(2021-12-10)
+- 修复 clear-icon 属性在小程序平台不生效的 bug
+## 2.2.1(2021-12-10)
+- 修复 日期范围选在小程序平台,必须多点击一次才能取消选中状态的 bug
+## 2.2.0(2021-11-19)
+- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource)
+- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-datetime-picker](https://uniapp.dcloud.io/component/uniui/uni-datetime-picker)
+## 2.1.5(2021-11-09)
+- 新增 提供组件设计资源,组件样式调整
+## 2.1.4(2021-09-10)
+- 修复 hide-second 在移动端的 bug
+- 修复 单选赋默认值时,赋值日期未高亮的 bug
+- 修复 赋默认值时,移动端未正确显示时间的 bug
+## 2.1.3(2021-09-09)
+- 新增 hide-second 属性,支持只使用时分,隐藏秒
+## 2.1.2(2021-09-03)
+- 优化 取消选中时(范围选)直接开始下一次选择, 避免多点一次
+- 优化 移动端支持清除按钮,同时支持通过 ref 调用组件的 clear 方法
+- 优化 调整字号大小,美化日历界面
+- 修复 因国际化导致的 placeholder 失效的 bug
+## 2.1.1(2021-08-24)
+- 新增 支持国际化
+- 优化 范围选择器在 pc 端过宽的问题
+## 2.1.0(2021-08-09)
+- 新增 适配 vue3
+## 2.0.19(2021-08-09)
+- 新增 支持作为 uni-forms 子组件相关功能
+- 修复 在 uni-forms 中使用时,选择时间报 NAN 错误的 bug
+## 2.0.18(2021-08-05)
+- 修复 type 属性动态赋值无效的 bug
+- 修复 ‘确认’按钮被 tabbar 遮盖 bug
+- 修复 组件未赋值时范围选左、右日历相同的 bug
+## 2.0.17(2021-08-04)
+- 修复 范围选未正确显示当前值的 bug
+- 修复 h5 平台(移动端)报错 'cale' of undefined 的 bug
+## 2.0.16(2021-07-21)
+- 新增 return-type 属性支持返回 date 日期对象
+## 2.0.15(2021-07-14)
+- 修复 单选日期类型,初始赋值后不在当前日历的 bug
+- 新增 clearIcon 属性,显示框的清空按钮可配置显示隐藏(仅 pc 有效)
+- 优化 移动端移除显示框的清空按钮,无实际用途
+## 2.0.14(2021-07-14)
+- 修复 组件赋值为空,界面未更新的 bug
+- 修复 start 和 end 不能动态赋值的 bug
+- 修复 范围选类型,用户选择后再次选择右侧日历(结束日期)显示不正确的 bug
+## 2.0.13(2021-07-08)
+- 修复 范围选择不能动态赋值的 bug
+## 2.0.12(2021-07-08)
+- 修复 范围选择的初始时间在一个月内时,造成无法选择的bug
+## 2.0.11(2021-07-08)
+- 优化 弹出层在超出视窗边缘定位不准确的问题
+## 2.0.10(2021-07-08)
+- 修复 范围起始点样式的背景色与今日样式的字体前景色融合,导致日期字体看不清的 bug
+- 优化 弹出层在超出视窗边缘被遮盖的问题
+## 2.0.9(2021-07-07)
+- 新增 maskClick 事件
+- 修复 特殊情况日历 rpx 布局错误的 bug,rpx -> px
+- 修复 范围选择时清空返回值不合理的bug,['', ''] -> []
+## 2.0.8(2021-07-07)
+- 新增 日期时间显示框支持插槽
+## 2.0.7(2021-07-01)
+- 优化 添加 uni-icons 依赖
+## 2.0.6(2021-05-22)
+- 修复 图标在小程序上不显示的 bug
+- 优化 重命名引用组件,避免潜在组件命名冲突
+## 2.0.5(2021-05-20)
+- 优化 代码目录扁平化
+## 2.0.4(2021-05-12)
+- 新增 组件示例地址
+## 2.0.3(2021-05-10)
+- 修复 ios 下不识别 '-' 日期格式的 bug
+- 优化 pc 下弹出层添加边框和阴影
+## 2.0.2(2021-05-08)
+- 修复 在 admin 中获取弹出层定位错误的bug
+## 2.0.1(2021-05-08)
+- 修复 type 属性向下兼容,默认值从 date 变更为 datetime
+## 2.0.0(2021-04-30)
+- 支持日历形式的日期+时间的范围选择
+ > 注意:此版本不向后兼容,不再支持单独时间选择(type=time)及相关的 hide-second 属性(时间选可使用内置组件 picker)
+## 1.0.6(2021-03-18)
+- 新增 hide-second 属性,时间支持仅选择时、分
+- 修复 选择跟显示的日期不一样的 bug
+- 修复 chang事件触发2次的 bug
+- 修复 分、秒 end 范围错误的 bug
+- 优化 更好的 nvue 适配
diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue
index 8d68d0f8e22b3e7de0de6e56eb8ffb9973c4e8fa..222030d165ae8afd70370950aff3f885b285818d 100644
--- a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue
+++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar-item.vue
@@ -12,10 +12,10 @@
'uni-calendar-item--multiple': weeks.multiple,
'uni-calendar-item--after-checked':weeks.afterMultiple,
'uni-calendar-item--disable':weeks.disable,
- }">
+ }">
{{weeks.date}}
-
+
@@ -61,7 +61,9 @@
}
-
diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue
index fc16928b1f15a1ce5dc4bcb5b60e185b5dbea72b..49e2b1b48a3cbfbe5bd70b93f61194cb34854d9c 100644
--- a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue
+++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/calendar.vue
@@ -1,7 +1,7 @@
+ @click="clean();maskClick()">
+ class="uni-calendar__header-text">{{ (nowDate.year||'') + yearText + ( nowDate.month||'') + monthText}}
- {{monText}}
+ {{MONText}}
{{TUEText}}
@@ -73,8 +73,10 @@
+
+
+
-
{{tempRange.after ? tempRange.after : endDateText}}
-->
- 确认
+ {{confirmText}}
@@ -332,7 +334,13 @@
okText() {
return t("uni-datetime-picker.ok")
},
- monText() {
+ yearText() {
+ return t("uni-datetime-picker.year")
+ },
+ monthText() {
+ return t("uni-datetime-picker.month")
+ },
+ MONText() {
return t("uni-calender.MON")
},
TUEText() {
@@ -353,6 +361,9 @@
SUNText() {
return t("uni-calender.SUN")
},
+ confirmText() {
+ return t("uni-calender.confirm")
+ },
},
created() {
// 获取日历方法实例
@@ -402,6 +413,11 @@
this.close()
},
+ // 蒙版点击事件
+ maskClick() {
+ this.$emit('maskClose')
+ },
+
clearCalender() {
if (this.range) {
this.timeRange.startTime = ''
@@ -529,16 +545,24 @@
* 选择天触发
* @param {Object} weeks
*/
- choiceDate(weeks) {
+ choiceDate(weeks) {
if (weeks.disable) return
this.calendar = weeks
this.calendar.userChecked = true
// 设置多选
this.cale.setMultiple(this.calendar.fullDate, true)
this.weeks = this.cale.weeks
- this.tempSingleDate = this.calendar.fullDate
- this.tempRange.before = this.cale.multipleStatus.before
- this.tempRange.after = this.cale.multipleStatus.after
+ this.tempSingleDate = this.calendar.fullDate
+ const beforeStatus = this.cale.multipleStatus.before
+ const beforeDate = new Date(this.cale.multipleStatus.before).getTime()
+ const afterDate = new Date(this.cale.multipleStatus.after).getTime()
+ if (beforeDate > afterDate && afterDate) {
+ this.tempRange.before = this.cale.multipleStatus.after
+ this.tempRange.after = this.cale.multipleStatus.before
+ } else {
+ this.tempRange.before = this.cale.multipleStatus.before
+ this.tempRange.after = this.cale.multipleStatus.after
+ }
this.change()
},
/**
@@ -594,7 +618,9 @@
}
-
+
diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json
index 75b3754659e76dcd68801802c44a7bd617d4338d..6541733c2edfe0c56a50bfd0c778109f5ccd17e0 100644
--- a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json
+++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/en.json
@@ -3,17 +3,20 @@
"uni-datetime-picker.selectTime": "select time",
"uni-datetime-picker.selectDateTime": "select datetime",
"uni-datetime-picker.startDate": "start date",
- "uni-datetime-picker.endDate": "end date",
- "uni-datetime-picker.startTime": "start time",
+ "uni-datetime-picker.endDate": "end date",
+ "uni-datetime-picker.startTime": "start time",
"uni-datetime-picker.endTime": "end time",
"uni-datetime-picker.ok": "ok",
- "uni-datetime-picker.clear": "clear",
- "uni-datetime-picker.cancel": "cancel",
+ "uni-datetime-picker.clear": "clear",
+ "uni-datetime-picker.cancel": "cancel",
+ "uni-datetime-picker.year": "-",
+ "uni-datetime-picker.month": "",
"uni-calender.MON": "MON",
"uni-calender.TUE": "TUE",
"uni-calender.WED": "WED",
"uni-calender.THU": "THU",
"uni-calender.FRI": "FRI",
"uni-calender.SAT": "SAT",
- "uni-calender.SUN": "SUN"
-}
+ "uni-calender.SUN": "SUN",
+ "uni-calender.confirm": "confirm"
+}
diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json
index 1a885e4178f113a45cf9ab3b55080fd1f5f4a03f..d2df5e722a1f07d23cf2662af22c84d3aa02375a 100644
--- a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json
+++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hans.json
@@ -1,19 +1,22 @@
-{
- "uni-datetime-picker.selectDate": "选择日期",
- "uni-datetime-picker.selectTime": "选择时间",
- "uni-datetime-picker.selectDateTime": "选择日期时间",
- "uni-datetime-picker.startDate": "开始日期",
+{
+ "uni-datetime-picker.selectDate": "选择日期",
+ "uni-datetime-picker.selectTime": "选择时间",
+ "uni-datetime-picker.selectDateTime": "选择日期时间",
+ "uni-datetime-picker.startDate": "开始日期",
"uni-datetime-picker.endDate": "结束日期",
"uni-datetime-picker.startTime": "开始时间",
- "uni-datetime-picker.endTime": "结束时间",
- "uni-datetime-picker.ok": "确定",
+ "uni-datetime-picker.endTime": "结束时间",
+ "uni-datetime-picker.ok": "确定",
"uni-datetime-picker.clear": "清除",
"uni-datetime-picker.cancel": "取消",
+ "uni-datetime-picker.year": "年",
+ "uni-datetime-picker.month": "月",
"uni-calender.SUN": "日",
"uni-calender.MON": "一",
"uni-calender.TUE": "二",
"uni-calender.WED": "三",
"uni-calender.THU": "四",
"uni-calender.FRI": "五",
- "uni-calender.SAT": "六"
-}
+ "uni-calender.SAT": "六",
+ "uni-calender.confirm": "确认"
+}
\ No newline at end of file
diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json
index de50ff02d93c7bcaed3af6d88c86cd56bd2fca19..d23fa3c39e4c7c2cb08298f0493be5178f682e00 100644
--- a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json
+++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/i18n/zh-Hant.json
@@ -1,19 +1,22 @@
-{
- "uni-datetime-picker.selectDate": "選擇日期",
- "uni-datetime-picker.selectTime": "選擇時間",
- "uni-datetime-picker.selectDateTime": "選擇日期時間",
- "uni-datetime-picker.startDate": "開始日期",
- "uni-datetime-picker.endDate": "結束日期",
- "uni-datetime-picker.startTime": "開始时间",
- "uni-datetime-picker.endTime": "結束时间",
- "uni-datetime-picker.ok": "確定",
- "uni-datetime-picker.clear": "清除",
- "uni-datetime-picker.cancel": "取消",
- "uni-calender.SUN": "日",
- "uni-calender.MON": "一",
- "uni-calender.TUE": "二",
- "uni-calender.WED": "三",
- "uni-calender.THU": "四",
- "uni-calender.FRI": "五",
- "uni-calender.SAT": "六"
-}
+{
+ "uni-datetime-picker.selectDate": "選擇日期",
+ "uni-datetime-picker.selectTime": "選擇時間",
+ "uni-datetime-picker.selectDateTime": "選擇日期時間",
+ "uni-datetime-picker.startDate": "開始日期",
+ "uni-datetime-picker.endDate": "結束日期",
+ "uni-datetime-picker.startTime": "開始时间",
+ "uni-datetime-picker.endTime": "結束时间",
+ "uni-datetime-picker.ok": "確定",
+ "uni-datetime-picker.clear": "清除",
+ "uni-datetime-picker.cancel": "取消",
+ "uni-datetime-picker.year": "年",
+ "uni-datetime-picker.month": "月",
+ "uni-calender.SUN": "日",
+ "uni-calender.MON": "一",
+ "uni-calender.TUE": "二",
+ "uni-calender.WED": "三",
+ "uni-calender.THU": "四",
+ "uni-calender.FRI": "五",
+ "uni-calender.SAT": "六",
+ "uni-calender.confirm": "確認"
+}
\ No newline at end of file
diff --git a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue
index 9e799a4bf398f8071cdff25ade8f4699dc4252a6..cc75a49a5bf1bda350cdbb82ba80685a022e6eda 100644
--- a/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue
+++ b/uni_modules/uni-datetime-picker/components/uni-datetime-picker/time-picker.vue
@@ -770,7 +770,9 @@
}
-
+
diff --git a/uni_modules/uni-datetime-picker/package.json b/uni_modules/uni-datetime-picker/package.json
index d2959e51b43b2e2b397adb8d686bf250c2fbc1ac..f7a2e6aae5b0573a2fe94c7c69a468ca1e89bce2 100644
--- a/uni_modules/uni-datetime-picker/package.json
+++ b/uni_modules/uni-datetime-picker/package.json
@@ -1,90 +1,87 @@
-{
- "id": "uni-datetime-picker",
- "displayName": "uni-datetime-picker 日期选择器",
- "version": "2.2.2",
- "description": "uni-datetime-picker 日期时间选择器,支持日历,支持范围选择",
- "keywords": [
- "uni-datetime-picker",
- "uni-ui",
- "uniui",
- "日期时间选择器",
- "日期时间"
-],
- "repository": "https://github.com/dcloudio/uni-ui",
- "engines": {
- "HBuilderX": ""
- },
- "directories": {
- "example": "../../temps/example_temps"
- },
- "dcloudext": {
- "category": [
- "前端组件",
- "通用组件"
- ],
- "sale": {
- "regular": {
- "price": "0.00"
- },
- "sourcecode": {
- "price": "0.00"
- }
- },
- "contact": {
- "qq": ""
- },
- "declaration": {
- "ads": "无",
- "data": "无",
- "permissions": "无"
- },
- "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
- },
- "uni_modules": {
- "dependencies": [
- "uni-scss",
- "uni-icons"
- ],
- "encrypt": [],
- "platforms": {
- "cloud": {
- "tcb": "y",
- "aliyun": "y"
- },
- "client": {
- "App": {
- "app-vue": "y",
- "app-nvue": "n"
- },
- "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": "y"
- }
- }
- }
- }
-}
+{
+ "id": "uni-datetime-picker",
+ "displayName": "uni-datetime-picker 日期选择器",
+ "version": "2.2.11",
+ "description": "uni-datetime-picker 日期时间选择器,支持日历,支持范围选择",
+ "keywords": [
+ "uni-datetime-picker",
+ "uni-ui",
+ "uniui",
+ "日期时间选择器",
+ "日期时间"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": ""
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+"dcloudext": {
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
+ "type": "component-vue"
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uni-scss",
+ "uni-icons"
+ ],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "n"
+ },
+ "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": "y"
+ }
+ }
+ }
+ }
+}
diff --git a/uni_modules/uni-easyinput/changelog.md b/uni_modules/uni-easyinput/changelog.md
index 1e8c6f91be4e19a739cd4935c8615387bd746db6..74b726905f322327c6177022afd5c893e7192f48 100644
--- a/uni_modules/uni-easyinput/changelog.md
+++ b/uni_modules/uni-easyinput/changelog.md
@@ -1,3 +1,5 @@
+## 1.1.1(2022-09-19)
+- 修复,输入后回车,change 事件触发两次,[详情](https://ask.dcloud.net.cn/question/152149)
## 1.1.0(2022-06-30)
- 新增 在 uni-forms 1.4.0 中使用可以在 blur 时校验内容
- 新增 clear 事件,点击右侧叉号图标触发
diff --git a/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue b/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue
index d129ce15b9d366ee17004cbab51964cb5437c752..a1250dd6f523b80f1528817a8c6221a40b67697a 100644
--- a/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue
+++ b/uni_modules/uni-easyinput/components/uni-easyinput/uni-easyinput.vue
@@ -202,7 +202,8 @@
showClearIcon: false,
showPassword: false,
focusShow: false,
- localMsg: ''
+ localMsg: '',
+ isEnter: false // 用于判断当前是否是使用回车操作
};
},
computed: {
@@ -371,8 +372,10 @@
let value = event.detail.value;
this.focusShow = false
this.$emit('blur', event);
- // 根据类型返回值,在event中获取的值理论上讲都是string
- this.$emit('change', this.val)
+ // 根据类型返回值,在event中获取的值理论上讲都是string
+ if (this.isEnter === false) {
+ this.$emit('change', this.val)
+ }
// 失去焦点时参与表单校验
if (this.form && this.formItem) {
const {
@@ -389,8 +392,12 @@
* @param {Object} e
*/
onConfirm(e) {
- this.$emit('confirm', this.val);
- this.$emit('change', this.val)
+ this.$emit('confirm', this.val);
+ this.isEnter = true;
+ this.$emit('change', this.val)
+ this.$nextTick(() => {
+ this.isEnter = false
+ })
},
/**
diff --git a/uni_modules/uni-easyinput/package.json b/uni_modules/uni-easyinput/package.json
index 3cc793e6132002e2fd4aceb5567e2ca34d54c58d..a11be70ca9ead15fb7b792a2d632026fe419271c 100644
--- a/uni_modules/uni-easyinput/package.json
+++ b/uni_modules/uni-easyinput/package.json
@@ -1,7 +1,7 @@
{
"id": "uni-easyinput",
"displayName": "uni-easyinput 增强输入框",
- "version": "1.1.0",
+ "version": "1.1.1",
"description": "Easyinput 组件是对原生input组件的增强",
"keywords": [
"uni-ui",
@@ -17,11 +17,7 @@
"directories": {
"example": "../../temps/example_temps"
},
- "dcloudext": {
- "category": [
- "前端组件",
- "通用组件"
- ],
+"dcloudext": {
"sale": {
"regular": {
"price": "0.00"
@@ -38,7 +34,8 @@
"data": "无",
"permissions": "无"
},
- "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
+ "type": "component-vue"
},
"uni_modules": {
"dependencies": [
diff --git a/uni_modules/uni-fab/changelog.md b/uni_modules/uni-fab/changelog.md
index 24e26b1671be9fdec8bff65c3a7895f31719aace..0048ff9279f93d6e5354c8d3b2a593413251cea1 100644
--- a/uni_modules/uni-fab/changelog.md
+++ b/uni_modules/uni-fab/changelog.md
@@ -1,3 +1,7 @@
+## 1.2.4(2022-09-07)
+小程序端由于 style 使用了对象导致报错,[详情](https://ask.dcloud.net.cn/question/152790?item_id=211778&rf=false)
+## 1.2.3(2022-09-05)
+- 修复 nvue 环境下,具有 tabBar 时,fab 组件下部位置无法正常获取 --window-bottom 的bug,详见:[https://ask.dcloud.net.cn/question/110638?notification_id=826310](https://ask.dcloud.net.cn/question/110638?notification_id=826310)
## 1.2.2(2021-12-29)
- 更新 组件依赖
## 1.2.1(2021-11-19)
diff --git a/uni_modules/uni-fab/components/uni-fab/uni-fab.vue b/uni_modules/uni-fab/components/uni-fab/uni-fab.vue
index 6143a0552a6eedb00697954dde93bf595ab6426c..037385e23076e5ed8f13d12c868f3c7b50a5ba62 100644
--- a/uni_modules/uni-fab/components/uni-fab/uni-fab.vue
+++ b/uni_modules/uni-fab/components/uni-fab/uni-fab.vue
@@ -5,7 +5,9 @@
'uni-fab--rightBottom': rightBottom,
'uni-fab--leftTop': leftTop,
'uni-fab--rightTop': rightTop
- }" class="uni-fab">
+ }" class="uni-fab"
+ :style="nvueBottom"
+ >
+ }" class="uni-fab__circle uni-fab__plus" :style="{ 'background-color': styles.buttonColor, 'bottom': nvueBottom }" @click="_onClick">
+
+
+
+
@@ -16,8 +26,7 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/uni_modules/uni-table/components/uni-th/uni-th.vue b/uni_modules/uni-table/components/uni-th/uni-th.vue
index d87f1e821ae34e945ec7e2064959cfae3f60613a..121e13cb3abed2652b6c28cb7e402e3fbca06c3d 100644
--- a/uni_modules/uni-table/components/uni-th/uni-th.vue
+++ b/uni_modules/uni-table/components/uni-th/uni-th.vue
@@ -1,6 +1,6 @@
-
+ |
@@ -14,17 +14,19 @@
|
-
+
-
diff --git a/uni_modules/uni-tooltip/package.json b/uni_modules/uni-tooltip/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..b626efb8ab36101f8398b75adce4f24a2109f828
--- /dev/null
+++ b/uni_modules/uni-tooltip/package.json
@@ -0,0 +1,83 @@
+{
+ "id": "uni-tooltip",
+ "displayName": "uni-tooltip",
+ "version": "0.2.1",
+ "description": "Tooltip 提示文字",
+ "keywords": [
+ "uni-tooltip",
+ "uni-ui",
+ "tooltip",
+ "tip",
+ "文字提示"
+],
+ "repository": "",
+"engines": {
+ },
+ "dcloudext": {
+ "category": [
+ "前端组件",
+ "通用组件"
+ ],
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无 ",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": ""
+ },
+ "uni_modules": {
+ "dependencies": [],
+ "encrypt": [],
+ "platforms": {
+ "cloud": {
+ "tcb": "y",
+ "aliyun": "y"
+ },
+ "client": {
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ },
+ "App": {
+ "app-vue": "y",
+ "app-nvue": "u"
+ },
+ "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",
+ "阿里": "u",
+ "百度": "u",
+ "字节跳动": "u",
+ "QQ": "u"
+ },
+ "快应用": {
+ "华为": "u",
+ "联盟": "u"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/uni_modules/uni-tooltip/readme.md b/uni_modules/uni-tooltip/readme.md
new file mode 100644
index 0000000000000000000000000000000000000000..faafa2ecbc9649dbaed4d173640c74b097f8890f
--- /dev/null
+++ b/uni_modules/uni-tooltip/readme.md
@@ -0,0 +1,8 @@
+## Badge 数字角标
+> **组件名:uni-tooltip**
+> 代码块: `uTooltip`
+
+数字角标一般和其它控件(列表、9宫格等)配合使用,用于进行数量提示,默认为实心灰色背景,
+
+### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-tooltip)
+#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839
diff --git a/uni_modules/uni-ui/changelog.md b/uni_modules/uni-ui/changelog.md
index 37fd767f8ff7f37846777725b00d8ff20c989254..5a068cdd97c9fee70b4ebd0df98bf531d8c8e22d 100644
--- a/uni_modules/uni-ui/changelog.md
+++ b/uni_modules/uni-ui/changelog.md
@@ -1,3 +1,112 @@
+## 1.4.22(2022-09-19)
+- 优化 部分组件适配 uni-scss 主题色
+- uni-badge 修复 当 text 超过 max-num 时,badge 的宽度计算是根据 text 的长度计算,更改为 css 计算实际展示宽度,详见:[https://ask.dcloud.net.cn/question/150473](https://ask.dcloud.net.cn/question/150473)
+- uni-calendar 修复 表头年月切换,导致改变当前日期为选择月1号,且未触发change事件
+- uni-data-select 修复 微信小程序下拉框出现后选择会点击到蒙板后面的输入框
+- uni-data-select 修复 点击的位置不准确
+- uni-data-select 新增 支持 disabled 属性
+- uni-datetime-picker 修复,反向选择日期范围,日期显示异常,[详情](https://ask.dcloud.net.cn/question/153401?item_id=212892&rf=false)
+- uni-datetime-picker 修复 close事件无效的 bug
+- uni-datetime-picker 修复 移动端 maskClick 无效的 bug,详见:[https://ask.dcloud.net.cn/question/140824?item_id=209458&rf=false](https://ask.dcloud.net.cn/question/140824?item_id=209458&rf=false)
+- uni-fab 修复 小程序端由于 style 使用了对象导致报错,[详情](https://ask.dcloud.net.cn/question/152790?item_id=211778&rf=false)
+- uni-fab 修复 nvue 环境下,具有 tabBar 时,fab 组件下部位置无法正常获取 --window-bottom 的bug,详见:[https://ask.dcloud.net.cn/question/110638?notification_id=826310](https://ask.dcloud.net.cn/question/110638?notification_id=826310)
+- uni-forms 优化 根据 rules 自动添加 required 的问题
+- uni-forms 修复 item 未设置 require 属性,rules 设置 require 后,星号也显示的 bug,详见:[https://ask.dcloud.net.cn/question/151540](https://ask.dcloud.net.cn/question/151540)
+- uni-nav-bar 修复 nvue 环境下 fixed 为 true 的情况下,无法置顶的 bug
+- uni-notice-bar 新增 属性 fontSize,可修改文字大小。
+- uni-pagination 修复,未对主题色设置默认色,导致未引入 uni-scss 变量文件报错。
+- uni-pagination 修复,未对移动端当前页文字做主题色适配。
+- uni-pagination 修复 es 语言 i18n 错误
+## 1.4.21(2022-09-19)
+- 修复,安装时未导入 uni-data-select 和 uni-tooltip 的问题。
+## 1.4.20(2022-07-25)
+- uni-section 新增组件
+- uni-forms 修复 model 需要校验的值没有声明对应字段时,导致第一次不触发校验的bug
+
+## 1.4.19(2022-07-07)
+- uni-data-picker 优化 pc端图标位置不正确的问题
+- uni-data-select 修复 pc端宽度异常的bug
+## 1.4.18(2022-07-06)
+- uni-forms 【重要】组件逻辑重构,部分用法旧版本不兼容,请注意兼容问题
+- uni-forms 【重要】组件使用 Provide/Inject 方式注入依赖,提供了自定义表单组件调用 uni-forms 校验表单的能力
+- uni-forms 新增 更多表单示例
+- uni-forms 新增 model 属性,等同于原 value/modelValue 属性,旧属性即将废弃
+- uni-forms 新增 validateTrigger 属性的 blur 值,仅 uni-easyinput 生效
+- uni-forms 新增 onFieldChange 方法,可以对子表单进行校验,可替代binddata方法
+- uni-forms 新增 子表单的 setRules 方法,配合自定义校验函数使用
+- uni-forms 新增 uni-forms-item 的 setRules 方法,配置动态表单使用可动态更新校验规则
+- uni-forms 修复 由 1.4.0 引发的 label 插槽不生效的bug
+- uni-forms 修复 子组件找不到 setValue 报错的bug
+- uni-forms 修复 uni-data-picker 在 uni-forms-item 中报错的bug
+- uni-forms 修复 uni-data-picker 在 uni-forms-item 中宽度不正确的bug
+- uni-forms 修复 表单校验顺序无序问题
+- uni-forms 优化 子表单组件uni-datetime-picker、uni-data-select、uni-data-picker的显示样式
+- uni-forms 优化 动态表单校验方式,废弃拼接name的方式
+- uni-breadcrumb 修复 微信小程序 separator 不显示问题
+- uni-data-checkbox 优化 在 uni-forms 中的依赖注入方式
+- uni-data-picker 修复 uni-data-picker 在 uni-forms-item 中宽度不正确的bug
+- uni-data-picker 优化 显示样式
+- uni-data-select 优化 显示样式
+- uni-datetime-picker 修复 日历顶部年月及底部确认未国际化 bug
+- uni-datetime-picker 优化 组件样式,调整了组件图标大小、高度、颜色等,与uni-ui风格保持一致
+- uni-easyinput 新增 在 uni-forms 1.4.0 中使用可以在 blur 时校验内容
+- uni-easyinput 新增 clear 事件,点击右侧叉号图标触发
+- uni-easyinput 新增 change 事件 ,仅在输入框失去焦点或用户按下回车时触发
+- uni-easyinput 优化 组件样式,组件获取焦点时高亮显示,图标颜色调整等
+- uni-easyinput 优化 clearable 显示策略
+- uni-file-picker 修复 在uni-forms下样式不生效的bug
+- uni-nav-bar 修复 组件示例中插槽用法无法显示内容的bug
+- uni-swipe-action 修复 vue3 下使用组件不能正常运行的Bug
+- uni-swipe-action 修复 h5端点击click触发两次的Bug
+- uni-table 修复 微信小程序存在无使用组件的问题
+## 1.4.17(2022-06-30)
+- 支持 ios 安全区
+## 1.4.16(2022-06-06)
+- uni-breadcrumb 新增 支持 uni.scss 修改颜色
+- uni-data-select 修复 localdata 赋值不生效的 bug
+- uni-data-select 新增 支持选项禁用(数据选项设置 disabled: true 即禁用)
+- uni-data-select 修复 当 value 为 0 时选择不生效的 bug
+- uni-easyinput 修复 关闭图标某些情况下无法取消的bug
+- uni-fav 新增 stat 属性 ,是否开启uni统计功能
+- uni-goods-nav 新增 stat属性,是否开启uni统计功能
+- uni-group 新增 stat属性,是否开启uni统计功能
+- uni-nav-bar 新增 stat 属性 ,可开启统计 title 上报 ,仅使用了title 属性且项目开启了uni统计生效
+- uni-search-bar 新增 readonly 属性,组件只读
+- uni-swipe-action 修复 isPC 找不到的Bug
+- uni-swipe-action 修复 在 nvue 下 disabled 失效的bug
+- uni-tooltip 修复 content 为空时仍然弹出的bug
+## 1.4.15(2022-05-07)
+- uni-data-picker 修复 字节小程序 本地数据无法选择下一级的Bug
+- uni-data-select 新增 记住上次的选项(仅 collection 存在时有效)
+- uni-search-bar 修复 vue3 input 事件不生效的bug
+- uni-search-bar 修复 多余代码导致的bug
+- uni-tooltip 更新 text 属性变更为 content
+- uni-tooltip 更新 移除 width 属性
+- uni-tooltip 修复 组件根 text 嵌套组件 warning
+## 1.4.14(2022-04-18)
+- uni-datetime-picker 修复 Vue3 下动态赋值,单选类型未响应的 bug
+- uni-easyinput 修复 默认值不生效的bug
+## 1.4.13(2022-04-02)
+- uni-calendar 修复 条件编译 nvue 不支持的 css 样式
+- uni-calendar 修复 startDate、 endDate 属性失效的 bug
+- uni-data-picker 修复 nvue 不支持的 v-show 的 bug
+- uni-data-picker 修复 条件编译 nvue 不支持的 css 样式
+- uni-datetime-picker 修复 Vue3 下动态赋值未响应的 bug
+- uni-easyinput 修复 value不能为0的bug
+- uni-popup 修复 弹出层内部无法滚动的bug
+- uni-popup 修复 小程序中高度错误的bug
+- uni-popup 修复 快速调用open出现问题的Bug
+- uni-rate 修复 条件判断 `NaN` 错误的 bug
+- uni-swipe-action 修复 按钮字体大小不能设置的bug
+- uni-swipe-action 修复 h5和app端下报el错误的bug
+- uni-swipe-action 修复 HBuilderX 1.4.X 版本中,h5和app端下报错的bug
+## 1.4.12(2022-02-19)
+- uni-collapse 修复 初始化的时候 ,open 属性失效的bug
+- uni-data-checkbox 修复 multiple 为 true 时,v-model 的值为 null 报错的 bug
+- uni-icons 优化 size 属性可以传入不带单位的字符串数值
+- uni-icons 优化 size 支持其他单位
+- uni-nav-bar 新增 left-width/right-width属性 ,可修改左右两侧的宽度
+- uni-popup 修复 safeArea 属性不能设置为false的bug
## 1.4.11(2022-01-21)
- uni-collapse 修复 微信小程序resize后组件收起的bug
- uni-countdown 修复 在微信小程序中样式不生效的bug
@@ -47,7 +156,7 @@
- uni-badge 修改 type 属性,默认值调整为 error,info 替换 default
- uni-badge 修复 在字节小程序上样式不生效的 bug
- uni-calendar 修复 弹出层被 tabbar 遮盖 bug
-- uni-card 重构插槽的用法 ,header 替换为 title
+- uni-card 重构插槽的用法 ,header 替换为 title
- uni-card 新增 actions 插槽
- uni-card 新增 cover 封面图属性和插槽
- uni-card 新增 padding 内容默认内边距离
@@ -100,7 +209,7 @@
- uni-search-bar 修复 value 属性与 modelValue 属性不兼容的Bug
- uni-swipe-action 新增 close-all 方法,关闭所有已打开的组件
- uni-swipe-action 新增 resize() 方法,在非微信小程序、h5、app-vue端出现不能滑动的问题的时候,重置组件
-- uni-swipe-action 修复 app 端偶尔出现类似 Page[x][-x,xx;-x,xx,x,x-x] 的问题
+- uni-swipe-action 修复 app 端偶尔出现类似 Page[x][-x,xx;-x,xx,x,x-x] 的问题
- uni-swipe-action 优化 微信小程序、h5、app-vue 滑动逻辑,避免出现动态新增组件后不能滑动的问题
- uni-tag 新增 提供组件设计资源,组件样式调整
- uni-tag 移除 插槽
@@ -117,7 +226,7 @@
- uni-file-picker 修复 v-model 值设为 null 报错的Bug
- uni-swipe-action 新增 close-all 方法,关闭所有已打开的组件
- uni-swipe-action 新增 resize() 方法,在非微信小程序、h5、app-vue端出现不能滑动的问题的时候,重置组件
-- uni-swipe-action 修复 app 端偶尔出现类似 Page[x][-x,xx;-x,xx,x,x-x] 的问题
+- uni-swipe-action 修复 app 端偶尔出现类似 Page[x][-x,xx;-x,xx,x,x-x] 的问题
- uni-swipe-action 优化 微信小程序、h5、app-vue 滑动逻辑,避免出现动态新增组件后不能滑动的问题
## 1.4.0(2021-08-13)
- uni-calendar 修复 弹出层被 tabbar 遮盖 bug
@@ -317,21 +426,21 @@
- uni-data-picker 修复 本地数据概率无法回显时问题
- uni-table 新增 sortable 属性,是否开启单列排序
- uni-table 优化 表格多选逻辑
-## 1.2.12(2021-03-23)
-- uni-ui 新增 uni-datetime-picker 的 hide-second 属性、border 属性;
-- uni-ui 修复 uni-datetime-picker 选择跟显示的日期不一样的 bug,
-- uni-ui 修复 uni-datetime-picker change事件触发2次的 bug
-- uni-ui 修复 uni-datetime-picker 分、秒 end 范围错误的 bug
-- uni-ui 新增 uni-tr selectable 属性,用于 type=selection 时,设置某行是否可由全选按钮控制
-- uni-ui 新增 uni-data-checkbox 新增 disabled属性,支持nvue
-- uni-ui 优化 uni-data-checkbox 无选项时提示“暂无数据”
-- uni-ui 优化 uni-data-checkbox 默认颜色显示
-- uni-ui 新增 uni-link href 属性支持 tel:|mailto:
-- uni-ui 新增 uni-table 示例demo
-- uni-ui 修复 uni-data-picker 微信小程序某些情况下无法选择的问题,事件无法触发的问题
-- uni-ui 修复 uni-nav-bar easycom 下,找不到 uni-status-bar 的bug
-- uni-ui 修复 uni-easyinput 示例在 qq 小程序上的bug
-- uni-ui 修复 uni-forms 动态显示uni-forms-item的情况下,submit 方法获取值错误的Bug
+## 1.2.12(2021-03-23)
+- uni-ui 新增 uni-datetime-picker 的 hide-second 属性、border 属性;
+- uni-ui 修复 uni-datetime-picker 选择跟显示的日期不一样的 bug,
+- uni-ui 修复 uni-datetime-picker change事件触发2次的 bug
+- uni-ui 修复 uni-datetime-picker 分、秒 end 范围错误的 bug
+- uni-ui 新增 uni-tr selectable 属性,用于 type=selection 时,设置某行是否可由全选按钮控制
+- uni-ui 新增 uni-data-checkbox 新增 disabled属性,支持nvue
+- uni-ui 优化 uni-data-checkbox 无选项时提示“暂无数据”
+- uni-ui 优化 uni-data-checkbox 默认颜色显示
+- uni-ui 新增 uni-link href 属性支持 tel:|mailto:
+- uni-ui 新增 uni-table 示例demo
+- uni-ui 修复 uni-data-picker 微信小程序某些情况下无法选择的问题,事件无法触发的问题
+- uni-ui 修复 uni-nav-bar easycom 下,找不到 uni-status-bar 的bug
+- uni-ui 修复 uni-easyinput 示例在 qq 小程序上的bug
+- uni-ui 修复 uni-forms 动态显示uni-forms-item的情况下,submit 方法获取值错误的Bug
- uni-ui 调整 cli 项目 建议使用 easycom 方式引用组件,如使用按需引用,需手动维护组件内部引用
## 1.2.11(2021-02-24)
diff --git a/uni_modules/uni-ui/package.json b/uni_modules/uni-ui/package.json
index bae59578deef185b89308720043f9382bf2e48ae..d16c594df9eb5f6934be95505b810ff7c55b8067 100644
--- a/uni_modules/uni-ui/package.json
+++ b/uni_modules/uni-ui/package.json
@@ -1,128 +1,129 @@
-{
- "id": "uni-ui",
- "displayName": "uni-ui",
- "version": "1.4.11",
- "description": "uni-ui 是一个基于uni-app全端兼容的高性能UI框架",
- "keywords": [
- "uni-ui",
- "uniui",
- "UI组件库",
- "ui框架",
- "ui库"
-],
- "repository": "https://github.com/dcloudio/uni-ui",
- "engines": {
- "HBuilderX": "^3.2.10"
- },
- "directories": {
- "example": "../../temps/example_temps"
- },
- "dcloudext": {
- "category": [
- "前端组件",
- "通用组件"
- ],
- "sale": {
- "regular": {
- "price": "0.00"
- },
- "sourcecode": {
- "price": "0.00"
- }
- },
- "contact": {
- "qq": ""
- },
- "declaration": {
- "ads": "无",
- "data": "无",
- "permissions": "无"
- },
- "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
- },
- "uni_modules": {
- "dependencies": [
- "uni-badge",
- "uni-calendar",
- "uni-card",
- "uni-collapse",
- "uni-combox",
- "uni-countdown",
- "uni-data-checkbox",
- "uni-data-picker",
- "uni-dateformat",
- "uni-datetime-picker",
- "uni-drawer",
- "uni-easyinput",
- "uni-fab",
- "uni-fav",
- "uni-file-picker",
- "uni-forms",
- "uni-goods-nav",
- "uni-grid",
- "uni-group",
- "uni-icons",
- "uni-indexed-list",
- "uni-link",
- "uni-list",
- "uni-load-more",
- "uni-nav-bar",
- "uni-notice-bar",
- "uni-number-box",
- "uni-pagination",
- "uni-popup",
- "uni-rate",
- "uni-row",
- "uni-search-bar",
- "uni-segmented-control",
- "uni-steps",
- "uni-swipe-action",
- "uni-swiper-dot",
- "uni-table",
- "uni-tag",
- "uni-title",
- "uni-transition"
- ],
- "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": "y"
- }
- }
- }
- }
+{
+ "id": "uni-ui",
+ "displayName": "uni-ui",
+ "version": "1.4.22",
+ "description": "uni-ui 是基于uni-app的、全端兼容的、高性能UI框架",
+ "keywords": [
+ "uni-ui",
+ "uniui",
+ "UI组件库",
+ "ui框架",
+ "ui库"
+],
+ "repository": "https://github.com/dcloudio/uni-ui",
+ "engines": {
+ "HBuilderX": "^3.2.10"
+ },
+ "directories": {
+ "example": "../../temps/example_temps"
+ },
+ "dcloudext": {
+ "sale": {
+ "regular": {
+ "price": "0.00"
+ },
+ "sourcecode": {
+ "price": "0.00"
+ }
+ },
+ "contact": {
+ "qq": ""
+ },
+ "declaration": {
+ "ads": "无",
+ "data": "无",
+ "permissions": "无"
+ },
+ "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui",
+ "type": "component-vue"
+ },
+ "uni_modules": {
+ "dependencies": [
+ "uni-badge",
+ "uni-calendar",
+ "uni-card",
+ "uni-collapse",
+ "uni-combox",
+ "uni-countdown",
+ "uni-data-checkbox",
+ "uni-data-picker",
+ "uni-data-select",
+ "uni-dateformat",
+ "uni-datetime-picker",
+ "uni-drawer",
+ "uni-easyinput",
+ "uni-fab",
+ "uni-fav",
+ "uni-file-picker",
+ "uni-forms",
+ "uni-goods-nav",
+ "uni-grid",
+ "uni-group",
+ "uni-icons",
+ "uni-indexed-list",
+ "uni-link",
+ "uni-list",
+ "uni-load-more",
+ "uni-nav-bar",
+ "uni-notice-bar",
+ "uni-number-box",
+ "uni-pagination",
+ "uni-popup",
+ "uni-rate",
+ "uni-row",
+ "uni-search-bar",
+ "uni-section",
+ "uni-segmented-control",
+ "uni-steps",
+ "uni-swipe-action",
+ "uni-swiper-dot",
+ "uni-table",
+ "uni-tag",
+ "uni-title",
+ "uni-tooltip",
+ "uni-transition"
+ ],
+ "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",
+ "联盟": "u"
+ },
+ "Vue": {
+ "vue2": "y",
+ "vue3": "y"
+ }
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/uni_modules/uni-ui/readme.md b/uni_modules/uni-ui/readme.md
index e37fb7996c888f9a7014fb5497942a092e342675..23f8456872f45ab29ae0ebf87d1c9baada1ac181 100644
--- a/uni_modules/uni-ui/readme.md
+++ b/uni_modules/uni-ui/readme.md
@@ -1,248 +1,247 @@
-> 当前插件不包含示例页面 ,如需示例请在 HBuiderX 中新建 `hello uni-app > 扩展组件` 中查看
->
-> 代码示例地址 :[https://ext.dcloud.net.cn/plugin?id=4941](https://ext.dcloud.net.cn/plugin?id=4941)
->
-> 组件演示地址:[https://hellouniapp.dcloud.net.cn](https://hellouniapp.dcloud.net.cn/pages/extUI/badge/badge)
->
-> 组件文档地址:[https://uniapp.dcloud.io/component/uniui/uni-ui](https://uniapp.dcloud.io/component/uniui/uni-ui)
-
-# uni-ui 介绍
-
-## uni-ui产品特点
-
-### 1. 高性能
-
-目前为止,在小程序和混合app领域,暂时还没有比 `uni-ui` 更高性能的框架。
-- 自动差量更新数据
-
-虽然uni-app支持小程序自定义组件,所有小程序的ui库都可以用。但小程序自定义组件的ui库都需要使用setData手动更新数据,在大数据量时、或高频更新数据时,很容易产生性能问题。
-
-而 `uni-ui` 属于vue组件,uni-app引擎底层自动diff更新数据。当然其实插件市场里众多vue组件都具备这个特点。
-- 优化逻辑层和视图层通讯折损
-
-非H5,不管是小程序还是App,不管是app的webview渲染还是原生渲染,全都是逻辑层和视图层分离的。这里就有一个逻辑层和视图层通讯的折损问题。
-比如在视图层拖动一个可跟手的组件,由于通讯的损耗,用js监听很难做到实时跟手。
-
-这时就需要使用css动画以及平台底层提供的wxs、bindingx等技术。不过这些技术都比较复杂,所以 `uni-ui` 里做了封装,在需要跟手式操作的ui组件,比如swiperaction列表项左滑菜单,就在底层使用了这些技术,实现了高性能的交互体验
-- 背景停止
-
-很多ui组件是会一直动的,比如轮播图、跑马灯。即便这个窗体被新窗体挡住,它在背景层仍然在消耗着硬件资源。在Android的webview版本为chrome66以上,背景操作ui会引发很严重的性能问题,造成前台界面明显卡顿。
-
-而 `uni-ui` 的组件,会自动判断自己的显示状态,在组件不再可见时,不会再消耗硬件资源。
-
-### 2. 全端
-
- `uni-ui` 的组件都是多端自适应的,底层会抹平很多小程序平台的差异或bug。
-
-比如导航栏navbar组件,会自动处理不同端的状态栏。
-比如swiperaction组件,在app和微信小程序上会使用交互体验更好的wxs技术,但在不支持wxs的其他小程序端会使用js模拟类似效果。
-
- `uni-ui` 还支持nvue原生渲染,[详见](https://github.com/dcloudio/uni-ui/tree/nvue-uni-ui)
-
-未来 `uni-ui` 还会支持pc等大屏设备。
-
-### 3. 与uni统计自动集成实现免打点
-
-uni统计是优秀的多端统计平台,见[tongji.dcloud.net.cn](https://tongji.dcloud.net.cn)。
-
-除了一张报表看全端,它的另一个重要特点是免打点。
-比如使用 `uni-ui` 的navbar标题栏、收藏、购物车等组件,均可实现自动打点,统计页面标题等各种行为数据。
-当然你也可以关闭uni统计,这不是强制的。
-
-### 4. 主题扩展
-
- `uni-ui` 支持[uni.scss](https://uniapp.dcloud.io/collocation/uni-scss),可以方便的切换App的风格。
-
-ui是一种需求非常发散的产品,DCloud官方也无意用 `uni-ui` 压制第三方ui插件的空间,但官方有义务在性能和多端方面提供一个开源的标杆给大家。
-
-我们欢迎更多优秀的ui组件出现,也欢迎更多人贡献 `uni-ui` 的主题风格,满足更多用户的需求。
-
-
-# 快速开始
-
-## 方式一:使用 uni_modules 安装(推荐)
-
-使用 `uni_modules` 方式安装组件库,可以直接通过插件市场导入,通过右键菜单快速更新组件,不需要引用、注册,直接在页面中使用 `uni-ui` 组件。[点击安装 uni-ui 组件库](https://ext.dcloud.net.cn/plugin?id=55)
-
-**注意:下载最新的组件目前仅支持 uni_modules ,非 uni_modules 版本最高支持到组件的1.2.10版本**
-
-如不能升级到 `uni_modules` 版本,可以使用 `uni_modules` 安装好对应组件,将组件拷贝到对应目录。
-
-例如需更新 `uni-list`和`uni-badge` ,将 `uni_modules>uni-list>components`和`uni_modules>uni-badege>components`下所有目录拷贝到如下目录即可:
-
-**目录示例**
-```json {2,3,4,5,6,7}
-┌─components 组件目录
-│ ├─uni-list list 列表目录
-│ │ └─uni-list.vue list 组件文件
-│ ├─uni-list-item list-item 列表目录
-│ │ └─uni-list-item.vue list 组件文件
-│ ├─uni-badge badge 角标目录
-│ │ └─uni-badge.vue badge 组件文件
-│ └─ //.... 更多组件文件
-├─pages 业务页面文件存放的目录
-│ ├─index
-│ │ └─index.vue index示例页面
-├─main.js Vue初始化入口文件
-├─App.vue 应用配置,用来配置App全局样式以及监听 应用生命周期
-├─manifest.json 配置应用名称、appid、logo、版本等打包信息,详见
-└─pages.json 配置页
-
-```
-
-
-## 方式二:使用 npm 安装
-
-在 `vue-cli` 项目中可以使用 `npm` 安装 `uni-ui` 库 ,或者直接在 `HBuilderX` 项目中使用 `npm` 。(不推荐后一种方式)
-
-> **注意**
-> cli 项目默认是不编译 `node_modules` 下的组件的,导致条件编译等功能失效 ,导致组件异常
-> 需要在根目录创建 `vue.config.js` 文件 ,增加 `@dcloudio/uni-ui` 包的编译即可正常
-> ```javascript
-> // vue.config.js
-> module.exports = {
-> transpileDependencies:['@dcloudio/uni-ui']
-> }
-> ```
-
-
-
-**准备 sass**
-
-`vue-cli` 项目请先安装 sass 及 sass-loader,如在 HBuliderX 中使用,可跳过此步。
-
-- 安装 sass
-```
- npm i sass -D 或 yarn add sass -D
-```
-
-- 安装 sass-loader
-```
-npm i sass-loader@10.1.1 -D 或 yarn add sass-loader@10.1.1 -D
-```
-
-> sass-loader 请使用低于 @11.0.0 的版本,[sass-loader@11.0.0 不支持 vue@2.6.12 ](https://stackoverflow.com/questions/66082397/typeerror-this-getoptions-is-not-a-function)
-
-
-**安装 uni-ui**
-
-```
-npm i @dcloudio/uni-ui 或 yarn add @dcloudio/uni-ui
-```
-
-
-
-在 ``script`` 中引用组件:
-
-```javascript
-import {uniBadge} from '@dcloudio/uni-ui'
-//import uniBadge from '@dcloudio/uni-ui/lib/uni-badge/uni-badge.vue' //也可使用此方式引入组件
-export default {
- components: {uniBadge}
-}
-```
-
-
-在 ``template`` 中使用组件:
-
-```html
-
-
-
-```
-> **注意**
-> - `CLI` 引用方式, `H5` 端不支持在 `main.js` 中全局注册组件,如有需求请使用([easyCom](https://uniapp.dcloud.io/collocation/pages?id=easycom)) 的方式引用组件
-> - 使用 npm 安装的组件,默认情况下 babel-loader 会忽略所有 node_modules 中的文件 ,导致条件编译失效,需要通过配置 `vue.config.js` 解决:
-> ```javascript
-> // 在根目录创建 vue.config.js 文件,并配置如下
-> module.exports = {
-> transpileDependencies: ['@dcloudio/uni-ui']
-> }
-> ```
-
-
-## 使用 npm + easycom
-
-使用 `npm` 安装好 `uni-ui` 之后,需要配置 `easycom` 规则,让 `npm` 安装的组件支持 `easycom`
-
-打开项目根目录下的 `pages.json` 并添加 `easycom` 节点:
-
-```javascript {8}
-// pages.json
-
-{
- "easycom": {
- "autoscan": true,
- "custom": {
- // uni-ui 规则如下配置
- "^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue"
- }
- },
-
- // 其他内容
- pages:[
- // ...
- ]
-}
-
-```
-
-### uni-ui 已支持的组件列表
-|组件名|组件说明|
-|---|---|
-|uni-badge|[数字角标](https://ext.dcloud.net.cn/plugin?name=uni-badge)|
-|uni-calendar|[日历](https://ext.dcloud.net.cn/plugin?name=uni-calendar)|
-|uni-card|[卡片](https://ext.dcloud.net.cn/plugin?name=uni-card)|
-|uni-collapse|[折叠面板](https://ext.dcloud.net.cn/plugin?name=uni-collapse)|
-|uni-combox|[组合框](https://ext.dcloud.net.cn/plugin?name=uni-combox)|
-|uni-countdown|[倒计时](https://ext.dcloud.net.cn/plugin?name=uni-countdown)|
-|uni-data-checkbox|[数据选择器](https://ext.dcloud.net.cn/plugin?name=uni-data-checkbox)|
-|uni-data-picker|[数据驱动的picker选择器](https://ext.dcloud.net.cn/plugin?name=uni-data-picker)|
-|uni-dateformat|[日期格式化](https://ext.dcloud.net.cn/plugin?name=uni-dateformat)|
-|uni-datetime-picker|[日期选择器](https://ext.dcloud.net.cn/plugin?name=uni-datetime-picker)|
-|uni-drawer|[抽屉](https://ext.dcloud.net.cn/plugin?name=uni-drawer)|
-|uni-easyinput|[增强输入框](https://ext.dcloud.net.cn/plugin?name=uni-easyinput)|
-|uni-fab|[悬浮按钮](https://ext.dcloud.net.cn/plugin?name=uni-fab)|
-|uni-fav|[收藏按钮](https://ext.dcloud.net.cn/plugin?name=uni-fav)|
-|uni-file-picker|[文件选择上传](https://ext.dcloud.net.cn/plugin?name=uni-file-picker)|
-|uni-forms|[表单](https://ext.dcloud.net.cn/plugin?name=uni-forms)|
-|uni-goods-nav|[商品导航](https://ext.dcloud.net.cn/plugin?name=uni-goods-nav)|
-|uni-grid|[宫格](https://ext.dcloud.net.cn/plugin?name=uni-grid)|
-|uni-group|[分组](https://ext.dcloud.net.cn/plugin?name=uni-group)|
-|uni-icons|[图标](https://ext.dcloud.net.cn/plugin?name=uni-icons)|
-|uni-indexed-list|[索引列表](https://ext.dcloud.net.cn/plugin?name=uni-indexed-list)|
-|uni-link|[超链接](https://ext.dcloud.net.cn/plugin?name=uni-link)|
-|uni-list|[列表](https://ext.dcloud.net.cn/plugin?name=uni-list)|
-|uni-load-more|[加载更多](https://ext.dcloud.net.cn/plugin?name=uni-load-more)|
-|uni-nav-bar|[自定义导航栏](https://ext.dcloud.net.cn/plugin?name=uni-nav-bar)|
-|uni-notice-bar|[通告栏](https://ext.dcloud.net.cn/plugin?name=uni-notice-bar)|
-|uni-number-box|[数字输入框](https://ext.dcloud.net.cn/plugin?name=uni-number-box)|
-|uni-pagination|[分页器](https://ext.dcloud.net.cn/plugin?name=uni-pagination)|
-|uni-popup|[弹出层](https://ext.dcloud.net.cn/plugin?name=uni-popup)|
-|uni-rate|[评分](https://ext.dcloud.net.cn/plugin?name=uni-rate)|
-|uni-row|[布局-行](https://ext.dcloud.net.cn/plugin?name=uni-row)|
-|uni-search-bar|[搜索栏](https://ext.dcloud.net.cn/plugin?name=uni-search-bar)|
-|Section|[标题栏](https://ext.dcloud.net.cn/plugin?name=uni-section)|
-|uni-segmented-control|[分段器](https://ext.dcloud.net.cn/plugin?name=uni-segmented-control)|
-|uni-steps|[步骤条](https://ext.dcloud.net.cn/plugin?name=uni-steps)|
-|uni-swipe-action|[滑动操作](https://ext.dcloud.net.cn/plugin?name=uni-swipe-action)|
-|uni-swiper-dot|[轮播图指示点](https://ext.dcloud.net.cn/plugin?name=uni-swiper-dot)|
-|uni-table|[表格](https://ext.dcloud.net.cn/plugin?name=uni-table)|
-|uni-tag|[标签](https://ext.dcloud.net.cn/plugin?name=uni-tag)|
-|uni-title|[章节标题](https://ext.dcloud.net.cn/plugin?name=uni-title)|
-|uni-transition|[过渡动画](https://ext.dcloud.net.cn/plugin?name=uni-transition)|
-
-
-### 其他
-
-- uni-ui 是全端兼容的基于flex布局的、无dom的ui库
-- uni-ui 是uni-app内置组件的扩展。注意与web开发不同,uni-ui不包括基础组件,它是基础组件的补充。web开发中有的开发者习惯用一个ui库完成所有开发,但在uni-app体系中,推荐开发者首先使用性能更高的基础组件,然后按需引入必要的扩展组件。
-
-
-> **注意**
-> - `uni-ui` 不支持使用 `Vue.use()` 的方式安装
-
-
-
-### 贡献代码
+> 当前插件不包含示例页面 ,如需示例请在 HBuiderX 中新建 `hello uni-app > 扩展组件` 中查看
+>
+> 代码示例地址 :[https://ext.dcloud.net.cn/plugin?id=4941](https://ext.dcloud.net.cn/plugin?id=4941)
+>
+> 组件演示地址:[https://hellouniapp.dcloud.net.cn](https://hellouniapp.dcloud.net.cn/pages/extUI/badge/badge)
+>
+> 组件文档地址:[https://uniapp.dcloud.io/component/uniui/uni-ui](https://uniapp.dcloud.io/component/uniui/uni-ui)
+
+# uni-ui 介绍
+
+## uni-ui产品特点
+
+### 1. 高性能
+
+目前为止,在小程序和混合app领域,暂时还没有比 `uni-ui` 更高性能的框架。
+- 自动差量更新数据
+
+虽然uni-app支持小程序自定义组件,所有小程序的ui库都可以用。但小程序自定义组件的ui库都需要使用setData手动更新数据,在大数据量时、或高频更新数据时,很容易产生性能问题。
+
+而 `uni-ui` 属于vue组件,uni-app引擎底层自动diff更新数据。当然其实插件市场里众多vue组件都具备这个特点。
+- 优化逻辑层和视图层通讯折损
+
+非H5,不管是小程序还是App,不管是app的webview渲染还是原生渲染,全都是逻辑层和视图层分离的。这里就有一个逻辑层和视图层通讯的折损问题。
+比如在视图层拖动一个可跟手的组件,由于通讯的损耗,用js监听很难做到实时跟手。
+
+这时就需要使用css动画以及平台底层提供的wxs、bindingx等技术。不过这些技术都比较复杂,所以 `uni-ui` 里做了封装,在需要跟手式操作的ui组件,比如swiperaction列表项左滑菜单,就在底层使用了这些技术,实现了高性能的交互体验
+- 背景停止
+
+很多ui组件是会一直动的,比如轮播图、跑马灯。即便这个窗体被新窗体挡住,它在背景层仍然在消耗着硬件资源。在Android的webview版本为chrome66以上,背景操作ui会引发很严重的性能问题,造成前台界面明显卡顿。
+
+而 `uni-ui` 的组件,会自动判断自己的显示状态,在组件不再可见时,不会再消耗硬件资源。
+
+### 2. 全端
+
+ `uni-ui` 的组件都是多端自适应的,底层会抹平很多小程序平台的差异或bug。
+
+比如导航栏navbar组件,会自动处理不同端的状态栏。
+比如swiperaction组件,在app和微信小程序上会使用交互体验更好的wxs技术,但在不支持wxs的其他小程序端会使用js模拟类似效果。
+
+ `uni-ui` 还支持nvue原生渲染,[详见](https://github.com/dcloudio/uni-ui/tree/nvue-uni-ui)
+
+未来 `uni-ui` 还会支持pc等大屏设备。
+
+### 3. 与uni统计自动集成实现免打点
+
+uni统计是优秀的多端统计平台,见[tongji.dcloud.net.cn](https://tongji.dcloud.net.cn)。
+
+除了一张报表看全端,它的另一个重要特点是免打点。
+比如使用 `uni-ui` 的navbar标题栏、收藏、购物车等组件,均可实现自动打点,统计页面标题等各种行为数据。
+当然你也可以关闭uni统计,这不是强制的。
+
+### 4. 主题扩展
+
+ `uni-ui` 支持[uni.scss](https://uniapp.dcloud.io/collocation/uni-scss),可以方便的切换App的风格。
+
+ui是一种需求非常发散的产品,DCloud官方也无意用 `uni-ui` 压制第三方ui插件的空间,但官方有义务在性能和多端方面提供一个开源的标杆给大家。
+
+我们欢迎更多优秀的ui组件出现,也欢迎更多人贡献 `uni-ui` 的主题风格,满足更多用户的需求。
+
+
+## 快速开始
+
+uni-ui支持 HBuilderX直接新建项目模板、npm安装和单独导入个别组件等多种使用方式
+
+### 在HBuilderX 新建uni-app项目的模板中,选择uni-ui模板
+![HBuilderX内创建uni-ui项目](https://img.cdn.aliyun.dcloud.net.cn/uni-app/doc/create-uni-ui-project.jpg)
+
+由于uni-app独特的[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)技术,可以免引用、注册,直接使用各种符合规则的vue组件。
+
+在代码区键入`u`,拉出各种内置或uni-ui的组件列表,选择其中一个,即可使用该组件。
+
+光标放在组件名称上,按F1,可以查阅组件的文档。
+
+![uni-ui代码块](https://img.cdn.aliyun.dcloud.net.cn/uni-app/doc/uni-ui-snippet.jpg)
+
+### 通过 uni_modules 单独安装组件
+如果你没有创建uni-ui项目模板,也可以在你的工程里,通过 uni_modules 单独安装需要的某个组件。下表为uni-ui的扩展组件清单,点击每个组件在详情页面可以导入组件到项目下,导入后直接使用即可,无需import和注册。
+
+|组件名|组件说明|
+|---|---|
+|uni-badge|[数字角标](https://ext.dcloud.net.cn/plugin?name=uni-badge)|
+|uni-calendar|[日历](https://ext.dcloud.net.cn/plugin?name=uni-calendar)|
+|uni-card|[卡片](https://ext.dcloud.net.cn/plugin?name=uni-card)|
+|uni-collapse|[折叠面板](https://ext.dcloud.net.cn/plugin?name=uni-collapse)|
+|uni-combox|[组合框](https://ext.dcloud.net.cn/plugin?name=uni-combox)|
+|uni-countdown|[倒计时](https://ext.dcloud.net.cn/plugin?name=uni-countdown)|
+|uni-data-checkbox|[数据选择器](https://ext.dcloud.net.cn/plugin?name=uni-data-checkbox)|
+|uni-data-picker|[数据驱动的picker选择器](https://ext.dcloud.net.cn/plugin?name=uni-data-picker)|
+|uni-dateformat|[日期格式化](https://ext.dcloud.net.cn/plugin?name=uni-dateformat)|
+|uni-datetime-picker|[日期选择器](https://ext.dcloud.net.cn/plugin?name=uni-datetime-picker)|
+|uni-drawer|[抽屉](https://ext.dcloud.net.cn/plugin?name=uni-drawer)|
+|uni-easyinput|[增强输入框](https://ext.dcloud.net.cn/plugin?name=uni-easyinput)|
+|uni-fab|[悬浮按钮](https://ext.dcloud.net.cn/plugin?name=uni-fab)|
+|uni-fav|[收藏按钮](https://ext.dcloud.net.cn/plugin?name=uni-fav)|
+|uni-file-picker|[文件选择上传](https://ext.dcloud.net.cn/plugin?name=uni-file-picker)|
+|uni-forms|[表单](https://ext.dcloud.net.cn/plugin?name=uni-forms)|
+|uni-goods-nav|[商品导航](https://ext.dcloud.net.cn/plugin?name=uni-goods-nav)|
+|uni-grid|[宫格](https://ext.dcloud.net.cn/plugin?name=uni-grid)|
+|uni-group|[分组](https://ext.dcloud.net.cn/plugin?name=uni-group)|
+|uni-icons|[图标](https://ext.dcloud.net.cn/plugin?name=uni-icons)|
+|uni-indexed-list|[索引列表](https://ext.dcloud.net.cn/plugin?name=uni-indexed-list)|
+|uni-link|[超链接](https://ext.dcloud.net.cn/plugin?name=uni-link)|
+|uni-list|[列表](https://ext.dcloud.net.cn/plugin?name=uni-list)|
+|uni-load-more|[加载更多](https://ext.dcloud.net.cn/plugin?name=uni-load-more)|
+|uni-nav-bar|[自定义导航栏](https://ext.dcloud.net.cn/plugin?name=uni-nav-bar)|
+|uni-notice-bar|[通告栏](https://ext.dcloud.net.cn/plugin?name=uni-notice-bar)|
+|uni-number-box|[数字输入框](https://ext.dcloud.net.cn/plugin?name=uni-number-box)|
+|uni-pagination|[分页器](https://ext.dcloud.net.cn/plugin?name=uni-pagination)|
+|uni-popup|[弹出层](https://ext.dcloud.net.cn/plugin?name=uni-popup)|
+|uni-rate|[评分](https://ext.dcloud.net.cn/plugin?name=uni-rate)|
+|uni-row|[布局-行](https://ext.dcloud.net.cn/plugin?name=uni-row)|
+|uni-search-bar|[搜索栏](https://ext.dcloud.net.cn/plugin?name=uni-search-bar)|
+|uni-segmented-control|[分段器](https://ext.dcloud.net.cn/plugin?name=uni-segmented-control)|
+|uni-steps|[步骤条](https://ext.dcloud.net.cn/plugin?name=uni-steps)|
+|uni-swipe-action|[滑动操作](https://ext.dcloud.net.cn/plugin?name=uni-swipe-action)|
+|uni-swiper-dot|[轮播图指示点](https://ext.dcloud.net.cn/plugin?name=uni-swiper-dot)|
+|uni-table|[表格](https://ext.dcloud.net.cn/plugin?name=uni-table)|
+|uni-tag|[标签](https://ext.dcloud.net.cn/plugin?name=uni-tag)|
+|uni-title|[章节标题](https://ext.dcloud.net.cn/plugin?name=uni-title)|
+|uni-transition|[过渡动画](https://ext.dcloud.net.cn/plugin?name=uni-transition)|
+
+
+使用 `uni_modules` 方式安装组件库,可以直接通过插件市场导入,通过右键菜单快速更新组件,不需要引用、注册,直接在页面中使用 `uni-ui` 组件。[点击安装 uni-ui 组件库](https://ext.dcloud.net.cn/plugin?id=55)
+
+**注意:下载最新的组件目前仅支持 uni_modules ,非 uni_modules 版本最高支持到组件的1.2.10版本**
+
+如不能升级到 `uni_modules` 版本,可以使用 `uni_modules` 安装好对应组件,将组件拷贝到对应目录。
+
+例如需更新 `uni-list`和`uni-badge` ,将 `uni_modules>uni-list>components`和`uni_modules>uni-badege>components`下所有目录拷贝到如下目录即可:
+
+
+**目录示例**
+
+```json
+┌─components 组件目录
+│ ├─uni-list list 列表目录
+│ │ └─uni-list.vue list 组件文件
+│ ├─uni-list-item list-item 列表目录
+│ │ └─uni-list-item.vue list 组件文件
+│ ├─uni-badge badge 角标目录
+│ │ └─uni-badge.vue badge 组件文件
+│ └─ //.... 更多组件文件
+├─pages 业务页面文件存放的目录
+│ ├─index
+│ │ └─index.vue index示例页面
+├─main.js Vue初始化入口文件
+├─App.vue 应用配置,用来配置App全局样式以及监听 应用生命周期
+├─manifest.json 配置应用名称、appid、logo、版本等打包信息,详见
+└─pages.json 配置页
+
+```
+
+### 通过 `uni_modules` 导入全部组件
+如果想一次把所有uni-ui组件导入到项目中,只需要导入一个 `uni-ui` 组件即可 [点击去导入](https://ext.dcloud.net.cn/plugin?id=55)。
+
+如果没有自动导入其他组件,可以在 uni-ui 组件目录上右键选择 `安装三方插件依赖` 即可。
+
+
+
+### npm安装
+在 `vue-cli` 项目中可以使用 `npm` 安装 `uni-ui` 库 ,或者直接在 `HBuilderX` 项目中使用 `npm` 。
+
+> **注意**
+> cli 项目默认是不编译 `node_modules` 下的组件的,导致条件编译等功能失效 ,导致组件异常
+> 需要在根目录创建 `vue.config.js` 文件 ,增加 `@dcloudio/uni-ui` 包的编译即可正常
+> ```javascript
+> // vue.config.js
+> module.exports = {
+> transpileDependencies:['@dcloudio/uni-ui']
+> }
+> ```
+
+
+
+**准备 sass**
+
+`vue-cli` 项目请先安装 sass 及 sass-loader,如在 HBuliderX 中使用,可跳过此步。
+
+- 安装 sass
+```
+ npm i sass -D 或 yarn add sass -D
+```
+
+- 安装 sass-loader
+```
+npm i sass-loader@10.1.1 -D 或 yarn add sass-loader@10.1.1 -D
+```
+
+> 如果 `node` 版本小于 16 ,sass-loader 请使用低于 @11.0.0 的版本,[sass-loader@11.0.0 不支持 vue@2.6.12 ](https://stackoverflow.com/questions/66082397/typeerror-this-getoptions-is-not-a-function)
+> 如果 `node` 版本大于 16 , `sass-loader` 建议使用 `v8.x` 版本
+
+**安装 uni-ui**
+
+```
+npm i @dcloudio/uni-ui 或 yarn add @dcloudio/uni-ui
+```
+
+
+
+**配置easycom**
+
+使用 `npm` 安装好 `uni-ui` 之后,需要配置 `easycom` 规则,让 `npm` 安装的组件支持 `easycom`
+
+打开项目根目录下的 `pages.json` 并添加 `easycom` 节点:
+
+```javascript
+// pages.json
+{
+ "easycom": {
+ "autoscan": true,
+ "custom": {
+ // uni-ui 规则如下配置
+ "^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue"
+ }
+ },
+
+ // 其他内容
+ pages:[
+ // ...
+ ]
+}
+
+```
+
+在 ``template`` 中使用组件:
+
+```html
+
+
+
+```
+
+ **注意**
+ - uni-ui 现在只推荐使用 `easycom` ,如自己引用组件,可能会出现组件找不到的问题
+ - 使用 npm 安装的组件,默认情况下 babel-loader 会忽略所有 node_modules 中的文件 ,导致条件编译失效,需要通过配置 `vue.config.js` 解决:
+ ```javascript
+ // 在根目录创建 vue.config.js 文件,并配置如下
+ module.exports = {
+ transpileDependencies: ['@dcloudio/uni-ui']
+ }
+ ```
+ - uni-ui 是uni-app内置组件的扩展。注意与web开发不同,uni-ui不包括基础组件,它是基础组件的补充。web开发中有的开发者习惯用一个ui库完成所有开发,但在uni-app体系中,推荐开发者首先使用性能更高的基础组件,然后按需引入必要的扩展组件。
+ - `uni-ui` 不支持使用 `Vue.use()` 的方式安装
+
+
+### 贡献代码
在使用 `uni-ui` 中,如遇到无法解决的问题,请提 [Issues](https://github.com/dcloudio/uni-ui/issues) 给我们,假如您有更好的点子或更好的实现方式,也欢迎给我们提交 [PR](https://github.com/dcloudio/uni-ui/pulls)
\ No newline at end of file
diff --git a/uni_modules/uni-upgrade-center-app/changelog.md b/uni_modules/uni-upgrade-center-app/changelog.md
index 53fda7ed1014490a046a97a6f9ab31ff054bac04..6804a9a8fc05937e8d1d1cb1a82f6ebd7e760e37 100644
--- a/uni_modules/uni-upgrade-center-app/changelog.md
+++ b/uni_modules/uni-upgrade-center-app/changelog.md
@@ -1,24 +1,35 @@
-## 0.3.2(2022-01-12)
-- 优化显示逻辑
-## 0.3.1(2021-11-24)
-- 修复 vue3 上图片不显示的Bug
-## 0.3.0(2021-11-18)
-- 移除 wgt 安装成功后提示,防止重启过快弹框不消失
-## 0.2.2(2021-08-25)
-- 兼容vue3.0
-## 0.2.1(2021-07-26)
-- 修复 使用腾讯云并手动填写地址时,导致下载链接失效的bug
-## 0.2.0(2021-07-13)
-- 更新文档 关于报错local_storage_key 为空,请不要将页面路径设置为pages.json中第一项
-## 0.1.9(2021-06-28)
-- 更新文档
-- 修复 wgt安装失败时,按钮状态不对
-## 0.1.8(2021-06-16)
-- 修复 跳转安装时,导致上次下载的apk还没安装就被删掉的bug
-## 0.1.7(2021-06-03)
-- 修改 移除static中的图片
-## 0.1.6(2021-06-03)
-- 修改 下载更新按钮使用CSS渐变色
+## 0.6.1(2022-08-17)
+- 修复 后台添加应用市场,但都没有启用的情况下报错的Bug (需要 uni-admin 1.9.3+)
+## 0.6.0(2022-07-19)
+- 新增 支持多应用商店配置(需要 uni-admin 1.9.3+)
+## 0.4.1(2022-05-27)
+- 修复 上版引出的报错问题
+## 0.4.0(2022-05-27)
+- 新增 Android 支持跳转手机自带商店,填写升级包地址时请填写跳转商店链接
+- 新增 改为云对象调用方式,使用更直观
+## 0.3.3(2022-04-14)
+- 修复 调用 check-update,当 code 为 0 时没有回调
+## 0.3.2(2022-01-12)
+- 优化显示逻辑
+## 0.3.1(2021-11-24)
+- 修复 vue3 上图片不显示的Bug
+## 0.3.0(2021-11-18)
+- 移除 wgt 安装成功后提示,防止重启过快弹框不消失
+## 0.2.2(2021-08-25)
+- 兼容vue3.0
+## 0.2.1(2021-07-26)
+- 修复 使用腾讯云并手动填写地址时,导致下载链接失效的bug
+## 0.2.0(2021-07-13)
+- 更新文档 关于报错local_storage_key 为空,请不要将页面路径设置为pages.json中第一项
+## 0.1.9(2021-06-28)
+- 更新文档
+- 修复 wgt安装失败时,按钮状态不对
+## 0.1.8(2021-06-16)
+- 修复 跳转安装时,导致上次下载的apk还没安装就被删掉的bug
+## 0.1.7(2021-06-03)
+- 修改 移除static中的图片
+## 0.1.6(2021-06-03)
+- 修改 下载更新按钮使用CSS渐变色
## 0.1.5(2021-04-22)
- 更新check-update函数。现在返回一个Promise,有更新时成功回调,其他情况错误回调
## 0.1.4(2021-04-13)
diff --git a/uni_modules/uni-upgrade-center-app/package.json b/uni_modules/uni-upgrade-center-app/package.json
index eeb501a8d219374c36586b7d2b2438635aea1872..8ccd6196671f5f4f2c77a98d84fb19a3fa8e0a35 100644
--- a/uni_modules/uni-upgrade-center-app/package.json
+++ b/uni_modules/uni-upgrade-center-app/package.json
@@ -1,7 +1,7 @@
{
"id": "uni-upgrade-center-app",
"displayName": "升级中心 uni-upgrade-center - App",
- "version": "0.3.2",
+ "version": "0.6.1",
"description": "uni升级中心 - 客户端检查更新",
"keywords": [
"uniCloud",
@@ -13,11 +13,7 @@
"engines": {
"HBuilderX": "^3.1.0"
},
- "dcloudext": {
- "category": [
- "uniCloud",
- "云端一体页面模板"
- ],
+"dcloudext": {
"sale": {
"regular": {
"price": "0.00"
@@ -34,7 +30,8 @@
"data": "插件不采集任何数据",
"permissions": "无"
},
- "npmurl": ""
+ "npmurl": "",
+ "type": "unicloud-template-page"
},
"uni_modules": {
"dependencies": [],
@@ -67,7 +64,8 @@
"阿里": "u",
"百度": "u",
"字节跳动": "u",
- "QQ": "u"
+ "QQ": "u",
+ "京东": "u"
},
"快应用": {
"华为": "u",
diff --git a/uni_modules/uni-upgrade-center-app/pages/upgrade-popup.vue b/uni_modules/uni-upgrade-center-app/pages/upgrade-popup.vue
index 3399bb0b06c4d3da721263eb781f2494199c1135..cc33c1d97fc9e9bd7d5bd21a426cdc6f84957727 100644
--- a/uni_modules/uni-upgrade-center-app/pages/upgrade-popup.vue
+++ b/uni_modules/uni-upgrade-center-app/pages/upgrade-popup.vue
@@ -20,7 +20,7 @@
@@ -62,9 +62,10 @@