tiny-vue
tiny-vue copied to clipboard
TinyVue is an enterprise-class UI component library of OpenTiny community, support both Vue.js 2 and Vue.js 3, as well as PC and mobile.
### Version latest ### Vue Version latest ### Link to minimal reproduction ``` 与现实生活一致:与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念; 在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。 控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作; 页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。 简化流程:设计简洁直观的操作流程; 清晰明确:语言表达清晰且表意明确,让用户快速理解进而作出决策; 帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。 用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策; 结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。 click import { ref } from 'vue' import...
### Version 3.11.2 ### Vue Version 3.3.4 ### Link to minimal reproduction ```vue import { ref } from "vue"; import { Grid as TinyGrid, GridColumn as TinyGridColumn } from "@opentiny/vue";...
### Version latest ### Vue Version latest ### Link to minimal reproduction https://opentiny.design/vue-playground?cmpId=tree-menu&fileName=filter-node-method.vue&apiMode=Composition&mode=pc&theme=default ### Step to reproduce :filter-node-method过滤不起作用,即使直接返回false,也无法控制显示和隐藏 ### What is expected :filter-node-method为false隐藏 ### What is actually happening :filter-node-method为false不隐藏 ###...
### Version 3.12 ### Vue Version 3.3 ### Link to minimal reproduction ```bash https://opentiny.design/vue-playground?mode=pc&theme=default#3.12|eyJzcmMvQXBwLnZ1ZSI6IjxzY3JpcHQgbGFuZz1cInRzeFwiPlxyXG4vLyDlvJXlhaUgQG9wZW50aW55L3Z1ZSDnu4Tku7ZcclxuaW1wb3J0IHsgQnV0dG9uLCBMaW5rIH0gZnJvbSAnQG9wZW50aW55L3Z1ZSdcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBjb21wb25lbnRzOiB7XHJcbiAgICBUaW55QnV0dG9uOiBCdXR0b24sXHJcbiAgICBUaW55TGluazogTGlua1xyXG4gIH0sXHJcbiAgZGF0YSgpIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG1zZzogJ2hlbGxvIHdvcmxkISdcclxuICAgIH1cclxuICB9XHJcbn1cclxuPC9zY3JpcHQ+XHJcblxyXG48dGVtcGxhdGU+XHJcbiAgPFRpbnlCdXR0b24+56Gu5a6aPC9UaW55QnV0dG9uPlxyXG4gIDxoMT57eyBtc2cgfX08L2gxPlxyXG4gIDxkaXYgY2xhc3M9XCJ0aW55dnVlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGlueXZ1ZS1wYWdlXCI+XHJcbiAgICAgIHRpbnl2dWVcclxuICAgICAgPHRpbnktbGluayB0eXBlPVwic3VjY2Vzc1wiIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS9vcGVudGlueS90aW55LXZ1ZSc+XHJcbiAgICAgICAgdGlueXZ1ZVxyXG4gICAgICA8L3RpbnktbGluaz5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L3RlbXBsYXRlPlxyXG5cclxuPHN0eWxlIGxhbmc9XCJsZXNzXCIgc2NvcGVkPlxyXG4gIGgxe1xyXG4gICAgY29sb3I6IzVlN2NlMDtcclxuICB9XHJcbiAgLnRpbnl2dWV7XHJcbiAgICBmb250LXNpemU6IDE4eHA7XHJcbiAgICAmLXBhZ2V7XHJcbiAgICAgIGNvbG9yOiM1ZTdjZTA7XHJcbiAgICB9XHJcbiAgfVxyXG48L3N0eWxlPlxyXG4iLCIiOiJ7XCJpbXBvcnRzXCI6e1wiQG9wZW50aW55L3Z1ZVwiOlwiaHR0cHM6Ly9ucG0ub25taWNyb3NvZnQuY24vQG9wZW50aW55L3Z1ZUAzLjEyL3J1bnRpbWUvdGlueS12dWUubWpzXCIsXCJAb3BlbnRpbnkvdnVlLWljb25cIjpcImh0dHBzOi8vbnBtLm9ubWljcm9zb2Z0LmNuL0BvcGVudGlueS92dWVAMy4xMi9ydW50aW1lL3RpbnktdnVlLWljb24ubWpzXCIsXCJAb3BlbnRpbnkvdnVlLWxvY2FsZVwiOlwiaHR0cHM6Ly9ucG0ub25taWNyb3NvZnQuY24vQG9wZW50aW55L3Z1ZUAzLjEyL3J1bnRpbWUvdGlueS12dWUtbG9jYWxlLm1qc1wiLFwiQG9wZW50aW55L3Z1ZS1jb21tb25cIjpcImh0dHBzOi8vbnBtLm9ubWljcm9zb2Z0LmNuL0BvcGVudGlueS92dWVAMy4xMi9ydW50aW1lL3RpbnktdnVlLWNvbW1vbi5tanNcIixcIkBvcGVudGlueS92dWUtdGhlbWUvXCI6XCJodHRwczovL25wbS5vbm1pY3Jvc29mdC5jbi9Ab3BlbnRpbnkvdnVlLXRoZW1lQDMuMTIvXCIsXCJzb3J0YWJsZWpzXCI6XCJodHRwczovL25wbS5vbm1pY3Jvc29mdC5jbi9zb3J0YWJsZWpzQDEuMTUuMC9tb2R1bGFyL3NvcnRhYmxlLmVzbS5qc1wifX0iLCJ0c2NvbmZpZy5qc29uIjoie1xyXG4gIFwiY29tcGlsZXJPcHRpb25zXCI6IHtcclxuICAgIFwiYWxsb3dKc1wiOiB0cnVlLFxyXG4gICAgXCJjaGVja0pzXCI6IHRydWUsXHJcbiAgICBcImpzeFwiOiBcInByZXNlcnZlXCIsXHJcbiAgICBcInRhcmdldFwiOiBcIkVTTmV4dFwiLFxyXG4gICAgXCJtb2R1bGVcIjogXCJFU05leHRcIixcclxuICAgIFwibW9kdWxlUmVzb2x1dGlvblwiOiBcIkJ1bmRsZXJcIixcclxuICAgIFwiYWxsb3dJbXBvcnRpbmdUc0V4dGVuc2lvbnNcIjogdHJ1ZVxyXG4gIH0sXHJcbiAgXCJ2dWVDb21waWxlck9wdGlvbnNcIjoge1xyXG4gICAgXCJ0YXJnZXRcIjogMy4zXHJcbiAgfVxyXG59XHJcbiIsIm9wZXJhdGlvbi1jb2x1bW4vY3VzdG9tLW9wZXJhdGlvbi1jb2x1bW4udnVlIjoiPHRlbXBsYXRlPlxuICA8dGlueS1ncmlkIDpkYXRhPVwidGFibGVEYXRhXCI+XG4gICAgPHRpbnktZ3JpZC1jb2x1bW4gdHlwZT1cImluZGV4XCIgd2lkdGg9XCI2MFwiPjwvdGlueS1ncmlkLWNvbHVtbj5cbiAgICA8dGlueS1ncmlkLWNvbHVtbiB0eXBlPVwic2VsZWN0aW9uXCIgd2lkdGg9XCI2MFwiPjwvdGlueS1ncmlkLWNvbHVtbj5cbiAgICA8dGlueS1ncmlkLWNvbHVtbiBmaWVsZD1cIm5hbWVcIiB0aXRsZT1cIuWQjeensFwiPjwvdGlueS1ncmlkLWNvbHVtbj5cbiAgICA8dGlueS1ncmlkLWNvbHVtbiBmaWVsZD1cImFyZWFcIiB0aXRsZT1cIuaJgOWxnuWMuuWfn1wiPjwvdGlueS1ncmlkLWNvbHVtbj5cbiAgICA8dGlueS1ncmlkLWNvbHVtbiBmaWVsZD1cImFkZHJlc3NcIiB0aXRsZT1cIuWcsOWdgFwiPjwvdGlueS1ncmlkLWNvbHVtbj5cbiAgICA8dGlueS1ncmlkLWNvbHVtbiBmaWVsZD1cImludHJvZHVjdGlvblwiIHRpdGxlPVwi5YWs5Y+4566A5LuLXCIgc2hvdy1vdmVyZmxvdz48L3RpbnktZ3JpZC1jb2x1bW4+XG4gICAgPHRpbnktZ3JpZC1jb2x1bW4gdGl0bGU9XCLmk43kvZxcIiB3aWR0aD1cIjEwMFwiPlxuICAgICAgPHRlbXBsYXRlICNkZWZhdWx0PVwiZGF0YVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVtby1jdXN0b20tY29sdW1uXCI+PCEtLSDlnKjmraTlhYPntKDliqDkuIogdi1pZj1cImRhdGEucm93Ll9fYWN0aW9uX19cIiDlj6/op6PlhrMgLS0+XG4gICAgICAgICAgPHRpbnktYnV0dG9uIDpkaXNhYmxlZD1cImRhdGEucm93Ll9fYWN0aW9uX18uc2VhcmNoLmRpc2FibGVkXCI+XG4gICAgICAgICAgICA8dGlueS1pY29uLXNlYXJjaCBjbGFzcz1cInRpbnktc3ZnLXNpemVcIiBAY2xpY2s9XCJjbGlja0hhbmRsZXIoZGF0YS5yb3cpXCI+PC90aW55LWljb24tc2VhcmNoPlxuICAgICAgICAgICAge3tkYXRhLnJvdy5fX2FjdGlvbl9fLnNlYXJjaC5sYWJlbH19XG4gICAgICAgICAgPC90aW55LWJ1dHRvbj5cbiAgICAgICAgICA8dGlueS1idXR0b24gOmRpc2FibGVkPVwiZGF0YS5yb3cuX19hY3Rpb25fXy5lZGl0LmRpc2FibGVkXCI+XG4gICAgICAgICAgICA8dGlueS1pY29uLWVkaXQgY2xhc3M9XCJ0aW55LXN2Zy1zaXplXCIgQGNsaWNrPVwiY2xpY2tIYW5kbGVyKGRhdGEucm93KVwiPjwvdGlueS1pY29uLWVkaXQ+XG4gICAgICAgICAgICB7e2RhdGEucm93Ll9fYWN0aW9uX18uZWRpdC5sYWJlbH19XG4gICAgICAgICAgICA8IS0t5o+S5qe95Lit5Y+q6IO95L2/55SoIGRhdGEucm93Lnh4eCAtLT5cbiAgICAgICAgICAgIDwhLS1cbiAgICAgICAgICAgICAg5bGC57qn5pu05rex5aaCIGRhdGEucm93Lnh4eC55eXnjgIFkYXRhLnJvdy54eHgueXl5Lnp6elxuICAgICAgICAgICAgICDlnKjmlbDmja7mupDkuLrnqbrml7bvvIjlpoLpppbmrKHlvILmraXliqDovb3mlbDmja7mnJ/pl7TvvIlcbiAgICAgICAgICAgICAg5o6n5Yi25Y+w5Lya6K2m5ZGK77yaW3RpbnktZ3JpZF0g5YiX55qE6buY6K6k5o+S5qe95Lit5a2Y5Zyo6K+t5rOV6ZSZ6K+v77yM6K+35qOA5p+l44CCXG4gICAgICAgICAgICAtLT5cbiAgICAgICAgICA8L3RpbnktYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvdGVtcGxhdGU+XG4gICAgPC90aW55LWdyaWQtY29sdW1uPlxuICA8L3RpbnktZ3JpZD5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQgc2V0dXAgbGFuZz1cImpzeFwiPlxuICBpbXBvcnQgeyByZWYgfSBmcm9tICd2dWUnXG4gIGltcG9ydCB7IEdyaWQgYXMgVGlueUdyaWQsIEJ1dHRvbiBhcyBUaW55QnV0dG9uLCBHcmlkQ29sdW1uIGFzIFRpbnlHcmlkQ29sdW1uLCBNb2RhbCB9IGZyb20gJ0BvcGVudGlueS92dWUnXG4gIGltcG9ydCB7IGljb25FZGl0LCBpY29uU2VhcmNoIH0gZnJvbSAnQG9wZW50aW55L3Z1ZS1pY29uJ1xuXG4gIGxldCBkYXRhID0gW1xuICAgIHtcbiAgICAgIGlkOiAnMScsXG4gICAgICBuYW1lOiAnR0ZE56eR5oqAWVjlhazlj7gnLFxuICAgICAgYXJlYTogJ+WNjuS4nOWMuicsXG4gICAgICBhZGRyZXNzOiAn56aP5beeJyxcbiAgICAgIGludHJvZHVjdGlvbjogJ+WFrOWPuOaKgOacr+WSjOeglOWPkeWunuWKm+mbhOWOmu+8jOaYr+WbveWutjg2M+mhueebrueahOWPguS4juiAhe+8jOW5tuiiq+aUv+W6nOiupOWumuS4uuKAnOmrmOaWsOaKgOacr+S8geS4muKAneOAgicsXG4gICAgICBfX2FjdGlvbl9fOiB7XG4gICAgICAgIHNlYXJjaDogeyBsYWJlbDogJ+aQnOe0oicsIGRpc2FibGVkOiBmYWxzZSB9LFxuICAgICAgICBlZGl0OiB7IGxhYmVsOiAn57yW6L6RJywgZGlzYWJsZWQ6IHRydWUgfVxuICAgICAgfVxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6ICcyJyxcbiAgICAgIG5hbWU6ICdXV1dX56eR5oqAWVjlhazlj7gnLFxuICAgICAgYXJlYTogJ+WNjuWNl+WMuicsXG4gICAgICBhZGRyZXNzOiAn5rex5Zyz56aP55Sw5Yy6JyxcbiAgICAgIGludHJvZHVjdGlvbjogJ+WFrOWPuOaKgOacr+WSjOeglOWPkeWunuWKm+mbhOWOmu+8jOaYr+WbveWutjg2M+mhueebrueahOWPguS4juiAhe+8jOW5tuiiq+aUv+W6nOiupOWumuS4uuKAnOmrmOaWsOaKgOacr+S8geS4muKAneOAgicsXG4gICAgICBfX2FjdGlvbl9fOiB7XG4gICAgICAgIHNlYXJjaDogeyBsYWJlbDogJ+aQnOe0oicsIGRpc2FibGVkOiBmYWxzZSB9LFxuICAgICAgICBlZGl0OiB7IGxhYmVsOiAn57yW6L6RJywgZGlzYWJsZWQ6IGZhbHNlIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiAnMycsXG4gICAgICBuYW1lOiAnUkZW5pyJ6ZmQ6LSj5Lu75YWs5Y+4JyxcbiAgICAgIGFyZWE6ICfljY7ljZfljLonLFxuICAgICAgYWRkcmVzczogJ+S4reWxseW4gicsXG4gICAgICBpbnRyb2R1Y3Rpb246ICflhazlj7jmioDmnK/lkoznoJTlj5Hlrp7lipvpm4TljprvvIzmmK/lm73lrrY4NjPpobnnm67nmoTlj4LkuI7ogIXvvIzlubbooqvmlL/lupzorqTlrprkuLrigJzpq5jmlrDmioDmnK/kvIHkuJrigJ3jgIInLFxuICAgICAgX19hY3Rpb25fXzoge1xuICAgICAgICBzZWFyY2g6IHsgbGFiZWw6ICfmkJzntKInLCBkaXNhYmxlZDogdHJ1ZSB9LFxuICAgICAgICBlZGl0OiB7IGxhYmVsOiAn57yW6L6RJywgZGlzYWJsZWQ6IGZhbHNlIH1cbiAgICAgIH1cbiAgICB9LFxuICBdO1xuXG4gIC8vIGNvbnN0IHRhYmxlRGF0YSA9IHJlZihkYXRhKTsgLy/nm7TmjqXnu5HlrprvvIzmraPluLhcblxuICAvL+aooeaLn+aVsOaNruivt+axguW7tui/n1xuICBjb25zdCB0YWJsZURhdGEgPSByZWYoW10pO1xuICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICB0YWJsZURhdGEudmFsdWUgPSBkYXRhO1xuICB9LCA1MDApO1xuXG4gIGNvbnN0IFRpbnlJY29uRWRpdCA9IGljb25FZGl0KClcbiAgY29uc3QgVGlueUljb25TZWFyY2ggPSBpY29uU2VhcmNoKClcblxuICBmdW5jdGlvbiBjbGlja0hhbmRsZXIocm93KSB7XG4gICAgTW9kYWwubWVzc2FnZSh7IG1lc3NhZ2U6IEpTT04uc3RyaW5naWZ5KHJvdyksIHN0YXR1czogJ3N1Y2Nlc3MnIH0pXG4gIH1cbjwvc2NyaXB0PlxuXG48c3R5bGUgc2NvcGVkPlxuICAuZGVtby1jdXN0b20tY29sdW1uIHtcbiAgICBmb250LXNpemU6IDA7XG4gIH1cblxuICAuZGVtby1jdXN0b20tY29sdW1uIHN2ZyB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZpbGw6IHZhcigtLXRpLWNvbW1vbi1jb2xvci1saW5lLWFjdGl2ZSk7XG4gIH1cblxuICAuZGVtby1jdXN0b20tY29sdW1uIHN2Zzpob3ZlciB7XG4gICAgZmlsbDogIzQwYTlmZjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAuZGVtby1jdXN0b20tY29sdW1uIHN2Zzpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgfVxuPC9zdHlsZT4iLCJfbyI6e319 ``` ### Step to reproduce ```html {{data.row.__action__.search.label}} {{data.row.__action__.edit.label}} import { ref } from 'vue' import {...
### Version latest ### Vue Version latest ### Link to minimal reproduction see this demo:https://opentiny.design/tiny-vue/zh-CN/os-theme/components/time-select#basic-usage  ### Step to reproduce 输入09后,按下回车,会发现内容仅仅是09,认为可以格式化为初始时间 ### What is expected 输入09后,按下回车,应该要自动格式化为初始时间比较好一点 ### What is actually...
### Version 3.12 ### Vue Version 3.3.7 ### Link to minimal reproduction https://opentiny.design/vue-playground?cmpId=select&fileName=optimization.vue&apiMode=Composition&mode=pc&theme=default ### Step to reproduce add `filterable` ### What is expected There will be no blank ### What...
### Version latest ### Vue Version latest ### Link to minimal reproduction see this demo:https://opentiny.design/tiny-vue/zh-CN/os-theme/components/dialog-box#draggable  ### Step to reproduce 点击关闭图标 ### What is expected 是否不应该触发拖拽结束事件? ### What is actually...
const common = new window.TDCommon(['#footer'], {}) common.renderFooter()请问一下这个TDCommon在哪里定义的呀,如何修改
const common = new window.TDCommon(['#footer'], {}) common.renderFooter()请问一下这个TDCommon在哪里定义的呀,如何修改
### What problem does this feature solve 假如有10列,要默认隐藏其中不重要的列。 ## 手动隐藏显示列 colGrid.hideColumn(column)、colGrid.showColumn(column) ## 服务端存储 调用接口获取到个性化的数据后需手动调用 reloadCustoms 感觉这两种方法都太繁琐了,不想用服务端存储,也不想去遍历列根据列名去判断是否隐藏。 如果grid-column能加个配置 `visible` : true | false,直接控制默认是否显示,就简单多了。 ### What does the proposed API look like...
### Version 3 ### Vue Version 3.2.45 ### Link to minimal reproduction https://opentiny.design/tiny-vue/zh-CN/os-theme/components/toggle-menu#get-menu-data-async ### Step to reproduce 修改实例代码中的数据,甚至把数据以及`:get-menu-data-async="getMenuDataAsync"`全删掉,显示数据无变化,猜测是get-menu-data-async未执行,使用了默认数据。 ```vue function getMenuDataAsync() { console.log("getMenuDataAsync") } ``` 在`console.log("getMenuDataAsync")`未打印,打断点也不会触发 ### What is expected...