commit cb0af8c38467791958d3a0a6e912c8a4a493da6c Author: JaylenTech <350683609@qq.com> Date: Wed Dec 29 11:14:34 2021 +0800 图鸟UI V1.0.0 版本提交 diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/.DS_Store differ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9e6ceeb --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/unpackage/dist/* +/node_modules/* +/.idea/* \ No newline at end of file diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json new file mode 100644 index 0000000..32f4dc5 --- /dev/null +++ b/.hbuilderx/launch.json @@ -0,0 +1,20 @@ +{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/ + // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数 + "version": "0.0", + "configurations": [{ + "default" : + { + "launchtype" : "local" + }, + "h5" : + { + "launchtype" : "local" + }, + "mp-weixin" : + { + "launchtype" : "local" + }, + "type" : "uniCloud" + } + ] +} diff --git a/App.vue b/App.vue new file mode 100644 index 0000000..1329aa4 --- /dev/null +++ b/App.vue @@ -0,0 +1,91 @@ + + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..f70ba41 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +

Tuniao UI

+

炫酷且可以快速开发UI框架

+ diff --git a/basicPage/avatar/avatar.vue b/basicPage/avatar/avatar.vue new file mode 100644 index 0000000..7db362f --- /dev/null +++ b/basicPage/avatar/avatar.vue @@ -0,0 +1,272 @@ + + + + + diff --git a/basicPage/badge/badge.vue b/basicPage/badge/badge.vue new file mode 100644 index 0000000..e1a2afe --- /dev/null +++ b/basicPage/badge/badge.vue @@ -0,0 +1,200 @@ + + + + + diff --git a/basicPage/border/border.vue b/basicPage/border/border.vue new file mode 100644 index 0000000..303a649 --- /dev/null +++ b/basicPage/border/border.vue @@ -0,0 +1,139 @@ + + + + + diff --git a/basicPage/button/button.vue b/basicPage/button/button.vue new file mode 100644 index 0000000..01d67a9 --- /dev/null +++ b/basicPage/button/button.vue @@ -0,0 +1,230 @@ + + + + + diff --git a/basicPage/color/color.vue b/basicPage/color/color.vue new file mode 100644 index 0000000..f9fc54f --- /dev/null +++ b/basicPage/color/color.vue @@ -0,0 +1,710 @@ + + + + + diff --git a/basicPage/flex-layout/flex-layout.vue b/basicPage/flex-layout/flex-layout.vue new file mode 100644 index 0000000..5bbc5a2 --- /dev/null +++ b/basicPage/flex-layout/flex-layout.vue @@ -0,0 +1,574 @@ + + + + + diff --git a/basicPage/grid-layout/grid-layout.vue b/basicPage/grid-layout/grid-layout.vue new file mode 100644 index 0000000..fb3bd5e --- /dev/null +++ b/basicPage/grid-layout/grid-layout.vue @@ -0,0 +1,169 @@ + + + + + diff --git a/basicPage/icon/icon.vue b/basicPage/icon/icon.vue new file mode 100644 index 0000000..6664aa0 --- /dev/null +++ b/basicPage/icon/icon.vue @@ -0,0 +1,168 @@ + + + + + diff --git a/basicPage/icon/iconfont.js b/basicPage/icon/iconfont.js new file mode 100644 index 0000000..a7e78ea --- /dev/null +++ b/basicPage/icon/iconfont.js @@ -0,0 +1,3 @@ +export default { + data: [{name: "font"}, {name: "chemistry"}, {name: "biology"}, {name: "level"}, {name: "deploy"}, {name: "server"}, {name: "cube"}, {name: "organizatio"}, {name: "company"}, {name: "pharmacy"}, {name: "medical"}, {name: "wheelchair"}, {name: "my-add"}, {name: "my"}, {name: "my-fill"}, {name: "trust"}, {name: "trust-fill"}, {name: "moon"}, {name: "moon-fill"}, {name: "funds"}, {name: "funds-fill"}, {name: "signpost"}, {name: "signpost-fill"}, {name: "vip"}, {name: "vip-fill"}, {name: "hardware"}, {name: "hardware-fill"}, {name: "honor"}, {name: "honor-fill"}, {name: "count"}, {name: "count-fill"}, {name: "discover-planet"}, {name: "discover-planet-fill"}, {name: "discover"}, {name: "discover-fill"}, {name: "home"}, {name: "home-fill"}, {name: "home-vertical"}, {name: "home-vertical-fill"}, {name: "home-smile"}, {name: "home-smile-fill"}, {name: "home-capsule"}, {name: "home-capsule-fill"}, {name: "cross-fill"}, {name: "focus"}, {name: "all"}, {name: "assort-fill"}, {name: "assort"}, {name: "menu-list"}, {name: "menu-sorts"}, {name: "menu-sort"}, {name: "menu-more"}, {name: "menu"}, {name: "menu-circle"}, {name: "search-menu"}, {name: "search-list"}, {name: "search"}, {name: "brand"}, {name: "link"}, {name: "code"}, {name: "computer"}, {name: "computer-fill"}, {name: "ipad"}, {name: "ipad-fill"}, {name: "phone"}, {name: "phone-fill"}, {name: "tel"}, {name: "tel-circle-fill"}, {name: "tel-circle"}, {name: "watercup"}, {name: "gloves-fill"}, {name: "gloves"}, {name: "covid-19"}, {name: "sport-jog"}, {name: "sport-run"}, {name: "sport-swim"}, {name: "sport-cycle"}, {name: "airplane"}, {name: "train"}, {name: "steamship"}, {name: "bus"}, {name: "balancecar"}, {name: "electromobile"}, {name: "zodiac-zhu"}, {name: "zodiac-gou"}, {name: "zodiac-ji"}, {name: "zodiac-hou"}, {name: "zodiac-yang"}, {name: "zodiac-ma"}, {name: "zodiac-she"}, {name: "zodiac-long"}, {name: "zodiac-tu"}, {name: "zodiac-hu"}, {name: "zodiac-niu"}, {name: "zodiac-shu"}, {name: "lucky-money"}, {name: "lucky-money-fill"}, {name: "prize"}, {name: "gift"}, {name: "pay"}, {name: "refund"}, {name: "money"}, {name: "power"}, {name: "fingerprint"}, {name: "qr-beibei"}, {name: "qr-code"}, {name: "qr-barcode"}, {name: "scan"}, {name: "revoke"}, {name: "filter"}, {name: "upload"}, {name: "download"}, {name: "fork"}, {name: "relation"}, {name: "master"}, {name: "facebook"}, {name: "google"}, {name: "linkedin"}, {name: "twitter"}, {name: "logo-tuniao"}, {name: "sina"}, {name: "taobao"}, {name: "gitee"}, {name: "github"}, {name: "dingtalk"}, {name: "alipay"}, {name: "qq"}, {name: "moments"}, {name: "wechat"}, {name: "wechat-fill"}, {name: "service"}, {name: "service-fill"}, {name: "team"}, {name: "team-fill"}, {name: "emoji-sad"}, {name: "emoji-sad-fill"}, {name: "emoji-general"}, {name: "emoji-general-fill"}, {name: "emoji-good"}, {name: "emoji-good-fill"}, {name: "clock"}, {name: "clock-fill"}, {name: "time-fill"}, {name: "time"}, {name: "footprint"}, {name: "delete"}, {name: "delete-fill"}, {name: "clear"}, {name: "set"}, {name: "set-fill"}, {name: "keyboard-circle"}, {name: "keyboard"}, {name: "wifi-no"}, {name: "wifi"}, {name: "creative-stop"}, {name: "creative-stop-fill"}, {name: "creative-fill"}, {name: "creative"}, {name: "trophy-fill"}, {name: "trophy"}, {name: "game-fill"}, {name: "game"}, {name: "tag-fill"}, {name: "tag"}, {name: "logistics"}, {name: "taxi-fill"}, {name: "taxi"}, {name: "flag"}, {name: "flag-fill"}, {name: "baby"}, {name: "baby-fill"}, {name: "shop"}, {name: "shop-fill"}, {name: "commissary"}, {name: "coupon-fill"}, {name: "coupon"}, {name: "shopbag-fill"}, {name: "shopbag"}, {name: "basket-fill"}, {name: "basket"}, {name: "cart-fill"}, {name: "cart"}, {name: "ticket"}, {name: "ticket-fill"}, {name: "receipt"}, {name: "receipt-fill"}, {name: "cardbag"}, {name: "cardbag-fill"}, {name: "bankcard-fill"}, {name: "bankcard"}, {name: "identity"}, {name: "identity-fill"}, {name: "calendar"}, {name: "calendar-fill"}, {name: "order"}, {name: "order-fill"}, {name: "image"}, {name: "image-fill"}, {name: "image-text"}, {name: "image-text-fill"}, {name: "data"}, {name: "data-fill"}, {name: "statistics"}, {name: "statistics-fill"}, {name: "trusty-fill"}, {name: "trusty"}, {name: "safe-fill"}, {name: "safe"}, {name: "edit"}, {name: "edit-form"}, {name: "edit-write"}, {name: "write-fill"}, {name: "write"}, {name: "eye-hide"}, {name: "eye-close"}, {name: "eye"}, {name: "eye-fill"}, {name: "unlock"}, {name: "lock"}, {name: "sex"}, {name: "sex-female"}, {name: "sex-male"}, {name: "circle-lack"}, {name: "circle-arrow"}, {name: "circle-fill"}, {name: "circle"}, {name: "copy-fill"}, {name: "copy"}, {name: "square"}, {name: "open"}, {name: "group-double"}, {name: "group-square"}, {name: "group-triangle"}, {name: "group-circle"}, {name: "group-null"}, {name: "share-triangle"}, {name: "share-square"}, {name: "share-circle"}, {name: "share"}, {name: "send-fill"}, {name: "send"}, {name: "light-fill"}, {name: "light"}, {name: "praise-fill"}, {name: "praise"}, {name: "star-fill"}, {name: "star"}, {name: "caring"}, {name: "caring-fill"}, {name: "fire"}, {name: "fire-fill"}, {name: "topic"}, {name: "topics"}, {name: "topics-fill"}, {name: "like-break"}, {name: "like-lack"}, {name: "like"}, {name: "like-fill"}, {name: "reply"}, {name: "reply-fill"}, {name: "comment-fill"}, {name: "comment"}, {name: "message-fill"}, {name: "message"}, {name: "flower-fill"}, {name: "flower"}, {name: "location-fill"}, {name: "location"}, {name: "map-fill"}, {name: "map"}, {name: "camera"}, {name: "camera-fill"}, {name: "live-stream"}, {name: "live-stream-fill"}, {name: "sing"}, {name: "music-fill"}, {name: "music-stop"}, {name: "video-fill"}, {name: "video"}, {name: "voice-fill"}, {name: "voice"}, {name: "previous-fill"}, {name: "next-fill"}, {name: "play-fill"}, {name: "stop"}, {name: "backspace"}, {name: "backspace-fill"}, {name: "sound-close-fill"}, {name: "sound-close"}, {name: "sound-fill"}, {name: "sound"}, {name: "sound-reduce-fill"}, {name: "sound-reduce"}, {name: "sound-add"}, {name: "sound-add-fill"}, {name: "sequence-vertical"}, {name: "sequence"}, {name: "align-center"}, {name: "align-right"}, {name: "align-left"}, {name: "align"}, {name: "title"}, {name: "sort"}, {name: "more-vertical"}, {name: "more-horizontal"}, {name: "more-circle"}, {name: "more-circle-fill"}, {name: "warning"}, {name: "warning-fill"}, {name: "zoom-out"}, {name: "zoom-out-fill"}, {name: "zoom-in-fill"}, {name: "zoom-in"}, {name: "success-square"}, {name: "success-circle-fill"}, {name: "success-circle"}, {name: "success-square-fill"}, {name: "success"}, {name: "close-fill"}, {name: "close"}, {name: "close-circle"}, {name: "help"}, {name: "help-fill"}, {name: "tips"}, {name: "tip-fill"}, {name: "left"}, {name: "left-triangle"}, {name: "left-fill"}, {name: "left-double"}, {name: "left-circle"}, {name: "left-arrow"}, {name: "down"}, {name: "down-arrow"}, {name: "down-circle"}, {name: "down-double"}, {name: "down-fill"}, {name: "down-triangle"}, {name: "right"}, {name: "right-fill"}, {name: "right-arrow"}, {name: "right-double"}, {name: "right-triangle"}, {name: "right-circle"}, {name: "up"}, {name: "up-arrow"}, {name: "up-circle"}, {name: "up-triangle"}, {name: "up-double"}, {name: "up-fill"}, {name: "add-circle"}, {name: "add"}, {name: "add-fill"}, {name: "reduce"}, {name: "reduce-square-fill"}, {name: "reduce-square"}, {name: "reduce-circle"}, {name: "reduce-circle-fill"}] +} \ No newline at end of file diff --git a/basicPage/shadow/shadow.vue b/basicPage/shadow/shadow.vue new file mode 100644 index 0000000..82e56ca --- /dev/null +++ b/basicPage/shadow/shadow.vue @@ -0,0 +1,118 @@ + + + + + diff --git a/basicPage/tag/tag.vue b/basicPage/tag/tag.vue new file mode 100644 index 0000000..cc431cf --- /dev/null +++ b/basicPage/tag/tag.vue @@ -0,0 +1,259 @@ + + + + + + + diff --git a/basicPage/test/test.vue b/basicPage/test/test.vue new file mode 100644 index 0000000..418dcda --- /dev/null +++ b/basicPage/test/test.vue @@ -0,0 +1,245 @@ + + + + + diff --git a/componentsPage/action-sheet/action-sheet.vue b/componentsPage/action-sheet/action-sheet.vue new file mode 100644 index 0000000..94ba0f7 --- /dev/null +++ b/componentsPage/action-sheet/action-sheet.vue @@ -0,0 +1,139 @@ + + + + + diff --git a/componentsPage/calendar/calendar.vue b/componentsPage/calendar/calendar.vue new file mode 100644 index 0000000..ae38add --- /dev/null +++ b/componentsPage/calendar/calendar.vue @@ -0,0 +1,213 @@ + + + + + diff --git a/componentsPage/collapse/collapse.vue b/componentsPage/collapse/collapse.vue new file mode 100644 index 0000000..7801b13 --- /dev/null +++ b/componentsPage/collapse/collapse.vue @@ -0,0 +1,194 @@ + + + + + diff --git a/componentsPage/count-down/count-down.vue b/componentsPage/count-down/count-down.vue new file mode 100644 index 0000000..d0845a6 --- /dev/null +++ b/componentsPage/count-down/count-down.vue @@ -0,0 +1,168 @@ + + + + + diff --git a/componentsPage/count-scroll/count-scroll.vue b/componentsPage/count-scroll/count-scroll.vue new file mode 100644 index 0000000..e10cf8c --- /dev/null +++ b/componentsPage/count-scroll/count-scroll.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/componentsPage/count-to/count-to.vue b/componentsPage/count-to/count-to.vue new file mode 100644 index 0000000..3fe03fb --- /dev/null +++ b/componentsPage/count-to/count-to.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/componentsPage/form/form.vue b/componentsPage/form/form.vue new file mode 100644 index 0000000..3ae1d16 --- /dev/null +++ b/componentsPage/form/form.vue @@ -0,0 +1,523 @@ + + + + + diff --git a/componentsPage/image-upload/image-upload.vue b/componentsPage/image-upload/image-upload.vue new file mode 100644 index 0000000..42e8986 --- /dev/null +++ b/componentsPage/image-upload/image-upload.vue @@ -0,0 +1,273 @@ + + + + + diff --git a/componentsPage/index-list/index-list.vue b/componentsPage/index-list/index-list.vue new file mode 100644 index 0000000..9fa4f94 --- /dev/null +++ b/componentsPage/index-list/index-list.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/componentsPage/keyboard/keyboard.vue b/componentsPage/keyboard/keyboard.vue new file mode 100644 index 0000000..cd4fd46 --- /dev/null +++ b/componentsPage/keyboard/keyboard.vue @@ -0,0 +1,324 @@ + + + + + diff --git a/componentsPage/list/list.vue b/componentsPage/list/list.vue new file mode 100644 index 0000000..8f3ca99 --- /dev/null +++ b/componentsPage/list/list.vue @@ -0,0 +1,306 @@ + + + + + diff --git a/componentsPage/loading/loading.vue b/componentsPage/loading/loading.vue new file mode 100644 index 0000000..a24ce86 --- /dev/null +++ b/componentsPage/loading/loading.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/componentsPage/mock/index.list.js b/componentsPage/mock/index.list.js new file mode 100644 index 0000000..7e0f5ed --- /dev/null +++ b/componentsPage/mock/index.list.js @@ -0,0 +1,585 @@ +module.exports = { + list: [{ + "letter": "A", + "data": [{ + "name": "阿拉斯加", + "mobile": "13588889999", + "keyword": "阿拉斯加ABA13588889999" + }, + { + "name": "阿克苏", + "mobile": "0551-4386721", + "keyword": "阿克苏AKESU0551-4386721" + }, + { + "name": "阿拉善", + "mobile": "4008009100", + "keyword": "阿拉善ALASHAN4008009100" + }, + { + "name": "阿勒泰", + "mobile": "13588889999", + "keyword": "阿勒泰ALETAI13588889999" + }, + { + "name": "阿里", + "mobile": "13588889999", + "keyword": "阿里ALI13588889999" + }, + { + "name": "安阳", + "mobile": "13588889999", + "keyword": "13588889999安阳ANYANG" + } + ] + }, + { + "letter": "B", + "data": [{ + "name": "白城", + "mobile": "该主子没有留电话~", + "keyword": "白城BAICHENG" + }, + { + "name": "白山", + "mobile": "13588889999", + "keyword": "白山BAISHAN13588889999" + }, + { + "name": "白银", + "mobile": "13588889999", + "keyword": "白银BAIYIN13588889999" + }, + { + "name": "保定", + "mobile": "13588889999", + "keyword": "保定BAODING13588889999" + } + ] + }, + { + "letter": "C", + "data": [{ + "name": "沧州", + "mobile": "13588889999", + "keyword": "沧州CANGZHOU13588889999" + }, + { + "name": "长春", + "mobile": "13588889999", + "keyword": "长春CHANGCHUN13588889999" + } + ] + }, + { + "letter": "D", + "data": [{ + "name": "大理", + "mobile": "13588889999", + "keyword": "大理DALI13588889999" + }, + { + "name": "大连", + "mobile": "13588889999", + "keyword": "大连DALIAN13588889999" + } + ] + }, + { + "letter": "E", + "data": [{ + "name": "鄂尔多斯", + "mobile": "13588889999", + "keyword": "鄂尔多斯EERDUOSI13588889999" + }, + { + "name": "恩施", + "mobile": "13588889999", + "keyword": "恩施ENSHI13588889999" + }, + { + "name": "鄂州", + "mobile": "13588889999", + "keyword": "鄂州EZHOU13588889999" + } + ] + }, + { + "letter": "F", + "data": [{ + "name": "防城港", + "mobile": "该主子没有留电话~", + "keyword": "防城港FANGCHENGGANG" + }, + { + "name": "抚顺", + "mobile": "13588889999", + "keyword": "抚顺FUSHUN13588889999" + }, + { + "name": "阜新", + "mobile": "13588889999", + "keyword": "阜新FUXIN13588889999" + }, + { + "name": "阜阳", + "mobile": "13588889999", + "keyword": "阜阳FUYANG13588889999" + }, + { + "name": "抚州", + "mobile": "13588889999", + "keyword": "抚州FUZHOU13588889999" + }, + { + "name": "福州", + "mobile": "13588889999", + "keyword": "福州FUZHOU13588889999" + } + ] + }, + { + "letter": "G", + "data": [{ + "name": "甘南", + "mobile": "13588889999", + "keyword": "甘南GANNAN13588889999" + }, + { + "name": "赣州", + "mobile": "13588889999", + "keyword": "赣州GANZHOU13588889999" + }, + { + "name": "甘孜", + "mobile": "13588889999", + "keyword": "甘孜GANZI13588889999" + } + ] + }, + { + "letter": "H", + "data": [{ + "name": "哈尔滨", + "mobile": "13588889999", + "keyword": "哈尔滨HAERBIN13588889999" + }, + { + "name": "海北", + "mobile": "13588889999", + "keyword": "海北HAIBEI13588889999" + }, + { + "name": "海东", + "mobile": "13588889999", + "keyword": "海东HAIDONG13588889999" + }, + { + "name": "海口", + "mobile": "13588889999", + "keyword": "海口HAIKOU13588889999" + } + ] + }, + { + "letter": "I", + "data": [{ + "name": "ice", + "mobile": "13588889999", + "keyword": "佳木斯JIAMUSI13588889999" + }] + }, + { + "letter": "J", + "data": [{ + "name": "佳木斯", + "mobile": "13588889999", + "keyword": "佳木斯JIAMUSI13588889999" + }, + { + "name": "吉安", + "mobile": "13588889999", + "keyword": "吉安JIAN13588889999" + }, + { + "name": "江门", + "mobile": "13588889999", + "keyword": "江门JIANGMEN13588889999" + } + ] + }, + { + "letter": "K", + "data": [{ + "name": "开封", + "mobile": "13588889999", + "keyword": "开封KAIFENG13588889999" + }, + { + "name": "喀什", + "mobile": "13588889999", + "keyword": "喀什KASHI13588889999" + }, + { + "name": "克拉玛依", + "mobile": "13588889999", + "keyword": "克拉玛依KELAMAYI13588889999" + } + ] + }, + { + "letter": "L", + "data": [{ + "name": "来宾", + "mobile": "13588889999", + "keyword": "来宾LAIBIN13588889999" + }, + { + "name": "兰州", + "mobile": "13588889999", + "keyword": "兰州LANZHOU13588889999" + }, + { + "name": "拉萨", + "mobile": "13588889999", + "keyword": "拉萨LASA13588889999" + }, + { + "name": "乐山", + "mobile": "13588889999", + "keyword": "乐山LESHAN13588889999" + }, + { + "name": "凉山", + "mobile": "13588889999", + "keyword": "凉山LIANGSHAN13588889999" + }, + { + "name": "连云港", + "mobile": "13588889999", + "keyword": "连云港LIANYUNGANG13588889999" + }, + { + "name": "聊城", + "mobile": "18322223333", + "keyword": "聊城LIAOCHENG18322223333" + }, + { + "name": "辽阳", + "mobile": "18322223333", + "keyword": "辽阳LIAOYANG18322223333" + }, + { + "name": "辽源", + "mobile": "18322223333", + "keyword": "辽源LIAOYUAN18322223333" + }, + { + "name": "丽江", + "mobile": "18322223333", + "keyword": "丽江LIJIANG18322223333" + }, + { + "name": "临沧", + "mobile": "18322223333", + "keyword": "临沧LINCANG18322223333" + }, + { + "name": "临汾", + "mobile": "18322223333", + "keyword": "临汾LINFEN18322223333" + }, + { + "name": "临夏", + "mobile": "18322223333", + "keyword": "临夏LINXIA18322223333" + }, + { + "name": "临沂", + "mobile": "18322223333", + "keyword": "临沂LINYI18322223333" + }, + { + "name": "林芝", + "mobile": "18322223333", + "keyword": "林芝LINZHI18322223333" + }, + { + "name": "丽水", + "mobile": "18322223333", + "keyword": "丽水LISHUI18322223333" + } + ] + }, + { + "letter": "M", + "data": [{ + "name": "眉山", + "mobile": "15544448888", + "keyword": "眉山MEISHAN15544448888" + }, + { + "name": "梅州", + "mobile": "15544448888", + "keyword": "梅州MEIZHOU15544448888" + }, + { + "name": "绵阳", + "mobile": "15544448888", + "keyword": "绵阳MIANYANG15544448888" + }, + { + "name": "牡丹江", + "mobile": "15544448888", + "keyword": "牡丹江MUDANJIANG15544448888" + } + ] + }, + { + "letter": "N", + "data": [{ + "name": "南昌", + "mobile": "15544448888", + "keyword": "南昌NANCHANG15544448888" + }, + { + "name": "南充", + "mobile": "15544448888", + "keyword": "南充NANCHONG15544448888" + }, + { + "name": "南京", + "mobile": "15544448888", + "keyword": "南京NANJING15544448888" + }, + { + "name": "南宁", + "mobile": "15544448888", + "keyword": "南宁NANNING15544448888" + }, + { + "name": "南平", + "mobile": "15544448888", + "keyword": "南平NANPING15544448888" + } + ] + }, + { + "letter": "O", + "data": [{ + "name": "欧阳", + "mobile": "15544448888", + "keyword": "欧阳ouyang15544448888" + }] + }, + { + "letter": "P", + "data": [{ + "name": "盘锦", + "mobile": "15544448888", + "keyword": "盘锦PANJIN15544448888" + }, + { + "name": "攀枝花", + "mobile": "15544448888", + "keyword": "攀枝花PANZHIHUA15544448888" + }, + { + "name": "平顶山", + "mobile": "15544448888", + "keyword": "平顶山PINGDINGSHAN15544448888" + }, + { + "name": "平凉", + "mobile": "15544448888", + "keyword": "平凉PINGLIANG15544448888" + }, + { + "name": "萍乡", + "mobile": "15544448888", + "keyword": "萍乡PINGXIANG15544448888" + }, + { + "name": "普洱", + "mobile": "15544448888", + "keyword": "普洱PUER15544448888" + }, + { + "name": "莆田", + "mobile": "15544448888", + "keyword": "莆田PUTIAN15544448888" + }, + { + "name": "濮阳", + "mobile": "15544448888", + "keyword": "濮阳PUYANG15544448888" + } + ] + }, + { + "letter": "Q", + "data": [{ + "name": "黔东南", + "mobile": "15544448888", + "keyword": "黔东南QIANDONGNAN15544448888" + }, + { + "name": "黔南", + "mobile": "15544448888", + "keyword": "黔南QIANNAN15544448888" + }, + { + "name": "黔西南", + "mobile": "15544448888", + "keyword": "黔西南QIANXINAN15544448888" + } + ] + }, + { + "letter": "R", + "data": [{ + "name": "日喀则", + "mobile": "15544448888", + "keyword": "日喀则RIKAZE15544448888" + }, + { + "name": "日照", + "mobile": "15544448888", + "keyword": "日照RIZHAO15544448888" + } + ] + }, + { + "letter": "S", + "data": [{ + "name": "三门峡", + "mobile": "15544448888", + "keyword": "三门峡SANMENXIA15544448888" + }, + { + "name": "三明", + "mobile": "15544448888", + "keyword": "三明SANMING15544448888" + }, + { + "name": "三沙", + "mobile": "15544448888", + "keyword": "三沙SANSHA15544448888" + } + ] + }, + { + "letter": "T", + "data": [{ + "name": "塔城", + "mobile": "15544448888", + "keyword": "塔城TACHENG15544448888" + }, + { + "name": "漯河", + "mobile": "15544448888", + "keyword": "漯河TAHE15544448888" + }, + { + "name": "泰安", + "mobile": "15544448888", + "keyword": "泰安TAIAN15544448888" + } + ] + }, + { + "letter": "W", + "data": [{ + "name": "潍坊", + "mobile": "15544448888", + "keyword": "潍坊WEIFANG15544448888" + }, + { + "name": "威海", + "mobile": "15544448888", + "keyword": "威海WEIHAI15544448888" + }, + { + "name": "渭南", + "mobile": "15544448888", + "keyword": "渭南WEINAN15544448888" + }, + { + "name": "文山", + "mobile": "15544448888", + "keyword": "文山WENSHAN15544448888" + } + ] + }, + { + "letter": "X", + "data": [{ + "name": "厦门", + "mobile": "15544448888", + "keyword": "厦门XIAMEN15544448888" + }, + { + "name": "西安", + "mobile": "15544448888", + "keyword": "西安XIAN15544448888" + }, + { + "name": "湘潭", + "mobile": "15544448888", + "keyword": "湘潭XIANGTAN15544448888" + } + ] + }, + { + "letter": "Y", + "data": [{ + "name": "雅安", + "mobile": "15544448888", + "keyword": "雅安YAAN15544448888" + }, + { + "name": "延安", + "mobile": "15544448888", + "keyword": "延安YANAN15544448888" + }, + { + "name": "延边", + "mobile": "15544448888", + "keyword": "延边YANBIAN15544448888" + }, + { + "name": "盐城", + "mobile": "15544448888", + "keyword": "盐城YANCHENG15544448888" + } + ] + }, + { + "letter": "Z", + "data": [{ + "name": "枣庄", + "mobile": "15544448888", + "keyword": "枣庄ZAOZHUANG15544448888" + }, + { + "name": "张家界", + "mobile": "15544448888", + "keyword": "张家界ZHANGJIAJIE15544448888" + }, + { + "name": "张家口", + "mobile": "15544448888", + "keyword": "张家口ZHANGJIAKOU15544448888" + } + ] + }, + { + "letter": "#", + "data": [{ + "name": "其他.", + "mobile": "16666666666", + "keyword": "echo16666666666" + }] + } + ] +} diff --git a/componentsPage/modal/modal.vue b/componentsPage/modal/modal.vue new file mode 100644 index 0000000..f2aaa52 --- /dev/null +++ b/componentsPage/modal/modal.vue @@ -0,0 +1,277 @@ + + + + + + + diff --git a/componentsPage/nav-bar/nav-bar.vue b/componentsPage/nav-bar/nav-bar.vue new file mode 100644 index 0000000..4dc8809 --- /dev/null +++ b/componentsPage/nav-bar/nav-bar.vue @@ -0,0 +1,148 @@ + + + + + diff --git a/componentsPage/notice-bar/notice-bar.vue b/componentsPage/notice-bar/notice-bar.vue new file mode 100644 index 0000000..9389e22 --- /dev/null +++ b/componentsPage/notice-bar/notice-bar.vue @@ -0,0 +1,292 @@ + + + + + diff --git a/componentsPage/number-box/number-box.vue b/componentsPage/number-box/number-box.vue new file mode 100644 index 0000000..b098e9d --- /dev/null +++ b/componentsPage/number-box/number-box.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/componentsPage/picker/picker.vue b/componentsPage/picker/picker.vue new file mode 100644 index 0000000..8c50188 --- /dev/null +++ b/componentsPage/picker/picker.vue @@ -0,0 +1,303 @@ + + + + + diff --git a/componentsPage/popup/popup.vue b/componentsPage/popup/popup.vue new file mode 100644 index 0000000..5e21202 --- /dev/null +++ b/componentsPage/popup/popup.vue @@ -0,0 +1,240 @@ + + + + + diff --git a/componentsPage/progress/progress.vue b/componentsPage/progress/progress.vue new file mode 100644 index 0000000..278f7fe --- /dev/null +++ b/componentsPage/progress/progress.vue @@ -0,0 +1,204 @@ + + + + + diff --git a/componentsPage/rate/rate.vue b/componentsPage/rate/rate.vue new file mode 100644 index 0000000..d129053 --- /dev/null +++ b/componentsPage/rate/rate.vue @@ -0,0 +1,177 @@ + + + + + diff --git a/componentsPage/read-more/read-more.vue b/componentsPage/read-more/read-more.vue new file mode 100644 index 0000000..15318de --- /dev/null +++ b/componentsPage/read-more/read-more.vue @@ -0,0 +1,179 @@ + + + + + diff --git a/componentsPage/scroll-list/scroll-list.vue b/componentsPage/scroll-list/scroll-list.vue new file mode 100644 index 0000000..c246e17 --- /dev/null +++ b/componentsPage/scroll-list/scroll-list.vue @@ -0,0 +1,148 @@ + + + + + diff --git a/componentsPage/select/select.vue b/componentsPage/select/select.vue new file mode 100644 index 0000000..f195f46 --- /dev/null +++ b/componentsPage/select/select.vue @@ -0,0 +1,377 @@ + + + + + diff --git a/componentsPage/sign-board/sign-board.vue b/componentsPage/sign-board/sign-board.vue new file mode 100644 index 0000000..0def203 --- /dev/null +++ b/componentsPage/sign-board/sign-board.vue @@ -0,0 +1,134 @@ + + + + + diff --git a/componentsPage/slider/slider.vue b/componentsPage/slider/slider.vue new file mode 100644 index 0000000..71cd61a --- /dev/null +++ b/componentsPage/slider/slider.vue @@ -0,0 +1,198 @@ + + + + + diff --git a/componentsPage/steps/steps.vue b/componentsPage/steps/steps.vue new file mode 100644 index 0000000..8b31143 --- /dev/null +++ b/componentsPage/steps/steps.vue @@ -0,0 +1,142 @@ + + + + + diff --git a/componentsPage/sticky/sticky.vue b/componentsPage/sticky/sticky.vue new file mode 100644 index 0000000..0201776 --- /dev/null +++ b/componentsPage/sticky/sticky.vue @@ -0,0 +1,89 @@ + + + + + diff --git a/componentsPage/swipe-action/swipe-action.vue b/componentsPage/swipe-action/swipe-action.vue new file mode 100644 index 0000000..6c192a4 --- /dev/null +++ b/componentsPage/swipe-action/swipe-action.vue @@ -0,0 +1,226 @@ + + + + + diff --git a/componentsPage/swiper/swiper.vue b/componentsPage/swiper/swiper.vue new file mode 100644 index 0000000..d0019d1 --- /dev/null +++ b/componentsPage/swiper/swiper.vue @@ -0,0 +1,224 @@ + + + + + diff --git a/componentsPage/switch/switch.vue b/componentsPage/switch/switch.vue new file mode 100644 index 0000000..b86b55a --- /dev/null +++ b/componentsPage/switch/switch.vue @@ -0,0 +1,131 @@ + + + + + diff --git a/componentsPage/tabs/tabs.vue b/componentsPage/tabs/tabs.vue new file mode 100644 index 0000000..15f43de --- /dev/null +++ b/componentsPage/tabs/tabs.vue @@ -0,0 +1,251 @@ + + + + + diff --git a/componentsPage/time-line/time-line.vue b/componentsPage/time-line/time-line.vue new file mode 100644 index 0000000..8f58f9a --- /dev/null +++ b/componentsPage/time-line/time-line.vue @@ -0,0 +1,223 @@ + + + + + diff --git a/componentsPage/tips/tips.vue b/componentsPage/tips/tips.vue new file mode 100644 index 0000000..b91a815 --- /dev/null +++ b/componentsPage/tips/tips.vue @@ -0,0 +1,133 @@ + + + + + diff --git a/componentsPage/toast/toast.vue b/componentsPage/toast/toast.vue new file mode 100644 index 0000000..e60956c --- /dev/null +++ b/componentsPage/toast/toast.vue @@ -0,0 +1,139 @@ + + + + + diff --git a/componentsPage/verification-code/verification-code.vue b/componentsPage/verification-code/verification-code.vue new file mode 100644 index 0000000..9a23681 --- /dev/null +++ b/componentsPage/verification-code/verification-code.vue @@ -0,0 +1,158 @@ + + + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..b61f63e --- /dev/null +++ b/index.html @@ -0,0 +1,14 @@ + + + + + + + + + + +
+ + + diff --git a/libs/components/dynamic-demo-template.vue b/libs/components/dynamic-demo-template.vue new file mode 100644 index 0000000..d3e26b3 --- /dev/null +++ b/libs/components/dynamic-demo-template.vue @@ -0,0 +1,680 @@ + + + + + diff --git a/libs/components/nav-index-button.vue b/libs/components/nav-index-button.vue new file mode 100644 index 0000000..2af5a14 --- /dev/null +++ b/libs/components/nav-index-button.vue @@ -0,0 +1,169 @@ + + + + + diff --git a/libs/mixin/dynamic_demo_mixin.js b/libs/mixin/dynamic_demo_mixin.js new file mode 100644 index 0000000..66ff992 --- /dev/null +++ b/libs/mixin/dynamic_demo_mixin.js @@ -0,0 +1,52 @@ +/** + * 动态参数演示mixin + */ +module.exports = { + data() { + return { + // 效果显示框top的值 + contentContainerTop: '0px', + contentContainerIsTop: false, + + // 参数显示框top的值 + sectionContainerTop: '0px' + } + }, + onReady() { + this.updateSectionContainerTop() + }, + methods: { + // 处理演示效果框的位置 + async _handleContentConatinerPosition() { + // 获取效果演示框的节点信息 + const contentContainer = await this._tGetRect('#content_container') + // 获取参数框的节点信息 + this._tGetRect('#section_container').then((res) => { + // 判断参数框是否在移动,如果是则更新效果框的位置 + // 如果效果框的顶部已经触控到顶部导航栏就停止跟随 + if (res.top - contentContainer.bottom != 15) { + const newTop = res.top - (contentContainer.height + uni.upx2px(20)) + const minTop = this.vuex_custom_bar_height + 1 + if (newTop < minTop) { + this.contentContainerTop = minTop + 'px' + this.contentContainerIsTop = true + } else { + this.contentContainerTop = newTop + 'px' + this.contentContainerIsTop = false + } + } + }) + }, + // 更新状态切换栏位置信息 + updateSectionContainerTop() { + this._tGetRect('#content_container').then((res) => { + this.contentContainerTop = (this.vuex_custom_bar_height + 148) + 'px' + this.sectionContainerTop = (res.height + 20) + 'px' + }) + } + }, + // 监听页面滚动 + onPageScroll() { + this._handleContentConatinerPosition() + } +} diff --git a/libs/mixin/template_page_mixin.js b/libs/mixin/template_page_mixin.js new file mode 100644 index 0000000..4efd9dc --- /dev/null +++ b/libs/mixin/template_page_mixin.js @@ -0,0 +1,33 @@ +/** + * 演示页面mixin + */ +module.exports = { + data() { + return { + + } + }, + methods: { + // 点击左上角返回按钮时触发事件 + goBack() { + // 通过判断当前页面的页面栈信息,是否有上一页进行返回,如果没有则跳转到首页 + const pages = getCurrentPages() + if (pages && pages.length > 0) { + const firstPage = pages[0] + if (!firstPage.route || firstPage.route != 'pages/index/index') { + uni.reLaunch({ + url: '/pages/index/index' + }) + } else { + uni.navigateBack({ + delta: 1 + }) + } + } else { + uni.reLaunch({ + url: '/pages/index/index' + }) + } + } + } +} \ No newline at end of file diff --git a/main.js b/main.js new file mode 100644 index 0000000..ac7021b --- /dev/null +++ b/main.js @@ -0,0 +1,24 @@ +import App from './App' +import store from './store' + +import Vue from 'vue' +Vue.config.productionTip = false +App.mpType = 'app' + +// 引入全局TuniaoUI +import TuniaoUI from 'tuniao-ui' +Vue.use(TuniaoUI) + +// 引入TuniaoUI提供的vuex简写方法 +let vuexStore = require('@/store/$t.mixin.js') +Vue.mixin(vuexStore) + +// 引入TuniaoUI对小程序分享的mixin封装 +let mpShare = require('tuniao-ui/libs/mixin/mpShare.js') +Vue.mixin(mpShare) + +const app = new Vue({ + store, + ...App +}) +app.$mount() \ No newline at end of file diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..7de6724 --- /dev/null +++ b/manifest.json @@ -0,0 +1,86 @@ +{ + "name" : "TuniaoUI_UniApp_Opensource", + "appid" : "__UNI__C82400B", + "description" : "TuniaoUI 开源版本", + "versionName" : "1.0.0", + "versionCode" : "100", + "transformPx" : false, + /* 5+App特有相关 */ + "app-plus" : { + "usingComponents" : true, + "nvueStyleCompiler" : "uni-app", + "compilerVersion" : 3, + "splashscreen" : { + "alwaysShowBeforeRender" : true, + "waiting" : true, + "autoclose" : true, + "delay" : 0 + }, + /* 模块配置 */ + "modules" : {}, + /* 应用发布信息 */ + "distribute" : { + /* android打包配置 */ + "android" : { + "permissions" : [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + /* ios打包配置 */ + "ios" : {}, + /* SDK配置 */ + "sdkConfigs" : {} + } + }, + /* 快应用特有相关 */ + "quickapp" : {}, + /* 小程序特有相关 */ + "mp-weixin" : { + "appid" : "wxf3d81a452b88ff4b", + "setting" : { + "urlCheck" : false, + "es6" : true + }, + "usingComponents" : true, + "optimization" : { + "subPackages" : true + } + }, + "mp-alipay" : { + "usingComponents" : true + }, + "mp-baidu" : { + "usingComponents" : true + }, + "mp-toutiao" : { + "usingComponents" : true + }, + "uniStatistics" : { + "enable" : false + }, + "vueVersion" : "2", + "h5" : { + "template" : "template.h5.html", + "title" : "Tuniao UI", + "router" : { + "mode" : "hash" + }, + "sdkConfigs" : { + "maps" : {} + } + } +} diff --git a/mock/basic_page.js b/mock/basic_page.js new file mode 100644 index 0000000..ea564ae --- /dev/null +++ b/mock/basic_page.js @@ -0,0 +1,57 @@ +/** + * 页面展示列表数据 + */ +export default { + data: [ + { + icon: 'menu-more', + title: 'Flex布局', + url: '/basicPage/flex-layout/flex-layout' + }, + { + icon: 'menu-circle', + title: 'Grid布局', + url: '/basicPage/grid-layout/grid-layout' + }, + { + icon: 'gloves', + title: '配色', + url: '/basicPage/color/color' + }, + { + icon: 'topics', + title: '图标', + url: '/basicPage/icon/icon' + }, + { + icon: 'circle-fill', + title: '按钮', + url: '/basicPage/button/button' + }, + { + icon: 'tag', + title: '标签', + url: '/basicPage/tag/tag' + }, + { + icon: 'square', + title: '边框', + url: '/basicPage/border/border' + }, + { + icon: 'copy-fill', + title: '阴影', + url: '/basicPage/shadow/shadow' + }, + { + icon: 'moon', + title: '微标', + url: '/basicPage/badge/badge' + }, + { + icon: 'emoji-good', + title: '头像', + url: '/basicPage/avatar/avatar' + } + ] +} \ No newline at end of file diff --git a/mock/components_page.js b/mock/components_page.js new file mode 100644 index 0000000..ffd2965 --- /dev/null +++ b/mock/components_page.js @@ -0,0 +1,206 @@ +/** + * 页面展示列表数据 + */ +export default { + data: [ + { + title: '基础组件', + backgroundColor: 'tn-cool-bg-color-1', + list: [ + { + icon: 'signpost', + title: '列表', + url: '/componentsPage/list/list' + }, + { + icon: 'circle-arrow', + title: 'Loading加载', + url: '/componentsPage/loading/loading' + }, + { + icon: 'share', + title: 'tabs标签', + url: '/componentsPage/tabs/tabs' + }, + { + icon: 'receipt', + title: 'sticky吸顶', + url: '/componentsPage/sticky/sticky' + }, + { + icon: 'all', + title: 'navBar导航栏', + url: '/componentsPage/nav-bar/nav-bar' + }, + { + icon: 'sound', + title: 'noticeBar通知栏', + url: '/componentsPage/notice-bar/notice-bar' + }, + { + icon: 'image', + title: 'swiper轮播图', + url: '/componentsPage/swiper/swiper' + }, + { + icon: 'server', + title: 'collapse折叠面板', + url: '/componentsPage/collapse/collapse' + }, + { + icon: 'more-circle', + title: 'readMore查看更多', + url: '/componentsPage/read-more/read-more' + }, + { + icon: 'success-square', + title: 'steps步骤条', + url: '/componentsPage/steps/steps' + }, + { + icon: 'clock', + title: 'timeLine时间轴', + url: '/componentsPage/time-line/time-line' + }, + { + icon: 'level', + title: 'indexList索引列表', + url: '/componentsPage/index-list/index-list' + }, + { + icon: 'group-square', + title: 'scrollList横向滚动', + url: '/componentsPage/scroll-list/scroll-list' + }, + { + icon: 'star', + title: 'swipeAction滑动菜单', + url: '/componentsPage/swipe-action/swipe-action' + } + ] + }, + { + title: '弹框组件', + backgroundColor: 'tn-cool-bg-color-1', + list: [ + { + icon: 'prize', + title: '弹出层', + url: '/componentsPage/popup/popup' + }, + { + icon: 'bankcard', + title: '模态框', + url: '/componentsPage/modal/modal' + }, + { + icon: 'comment', + title: 'Toast', + url: '/componentsPage/toast/toast' + }, + { + icon: 'creative', + title: '提示信息框', + url: '/componentsPage/tips/tips' + }, + ] + }, + { + title: '表单组件', + backgroundColor: 'tn-cool-bg-color-1', + list: [ + { + icon: 'image-text', + title: 'Form表单', + url: '/componentsPage/form/form' + }, + { + icon: 'ticket', + title: 'ActionSheet操作菜单', + url: '/componentsPage/action-sheet/action-sheet' + }, + { + icon: 'deploy', + title: 'Picker选择器', + url: '/componentsPage/picker/picker' + }, + { + icon: 'organizatio', + title: 'Select列选择器', + url: '/componentsPage/select/select' + }, + { + icon: 'data', + title: '验证码倒计时', + url: '/componentsPage/verification-code/verification-code' + }, + { + icon: 'power', + title: 'Switch开关', + url: '/componentsPage/switch/switch' + }, + { + icon: 'upload', + title: '图片上传', + url: '/componentsPage/image-upload/image-upload' + }, + { + icon: 'calendar', + title: '日历', + url: '/componentsPage/calendar/calendar' + }, + { + icon: 'edit-write', + title: '签名板', + url: '/componentsPage/sign-board/sign-board' + }, + ] + }, + { + title: '数据组件', + backgroundColor: 'tn-cool-bg-color-1', + list: [ + { + icon: 'watercup', + title: 'Progress进度条', + url: '/componentsPage/progress/progress' + }, + { + icon: 'star', + title: 'rate评分', + url: '/componentsPage/rate/rate' + }, + { + icon: 'light', + title: 'slider滑动条', + url: '/componentsPage/slider/slider' + }, + { + icon: 'statistics', + title: 'numberBox步进输入', + url: '/componentsPage/number-box/number-box' + }, + { + icon: 'keyboard-circle', + title: 'keyboard键盘', + url: '/componentsPage/keyboard/keyboard' + }, + { + icon: 'time', + title: 'countDown倒计时', + url: '/componentsPage/count-down/count-down' + }, + { + icon: 'group-circle', + title: 'countTo数字跳转', + url: '/componentsPage/count-to/count-to' + }, + { + icon: 'sequence-vertical', + title: 'countScroll数字滚动', + url: '/componentsPage/count-scroll/count-scroll' + } + ] + } + ] +} \ No newline at end of file diff --git a/mock/template_page.js b/mock/template_page.js new file mode 100644 index 0000000..194913f --- /dev/null +++ b/mock/template_page.js @@ -0,0 +1,107 @@ +/** + * 页面展示列表数据 + */ +export default { + data: [ + { + title: '登录注册', + backgroundColor: 'tn-cool-bg-color-1', + list: [ + { + icon: 'order', + title: '火箭登录', + url: '/templatePage/login/demo1/demo1' + }, + { + icon: 'order', + title: '粒子登录', + url: '/templatePage/login/demo2/demo2' + } + ] + }, + { + title: '常用首页', + backgroundColor: 'tn-cool-bg-color-1', + list: [ + { + icon: 'order', + title: '音乐首页', + url: '/templatePage/home/music/music' + }, + { + icon: 'order', + title: '课程首页', + url: '/templatePage/home/course/course' + }, + { + icon: 'order', + title: '设计首页', + url: '/templatePage/home/design/design' + }, + { + icon: 'order', + title: '招聘首页', + url: '/templatePage/home/job/job' + }, + { + icon: 'order', + title: '投屏首页', + url: '/templatePage/home/screen/screen' + }, + { + icon: 'order', + title: '壁纸首页', + url: '/templatePage/home/wallpaper/wallpaper' + }, + ] + }, + { + title: '其他页面', + backgroundColor: 'tn-cool-bg-color-1', + list: [ + { + icon: 'order', + title: '健康码', + url: '/templatePage/health/qrcode/qrcode' + }, + + { + icon: 'order', + title: '全屏轮播', + url: '/templatePage/life/fullpage/fullpage' + }, + { + icon: 'order', + title: '浏览器', + url: '/templatePage/life/browser/browser' + } + ] + }, + { + title: '动效元素', + backgroundColor: 'tn-cool-bg-color-1', + list: [ + { + icon: 'order', + title: '加载动画', + url: '/templatePage/animate/loading/loading' + }, + { + icon: 'order', + title: '随机粒子', + url: '/templatePage/animate/particle/particle' + }, + { + icon: 'order', + title: '相册图集', + url: '/templatePage/animate/photo/photo' + }, + { + icon: 'order', + title: '镂空效果', + url: '/templatePage/animate/hollow/hollow' + } + ] + } + ] +} \ No newline at end of file diff --git a/pages.json b/pages.json new file mode 100644 index 0000000..af19c93 --- /dev/null +++ b/pages.json @@ -0,0 +1,418 @@ +{ + "easycom": { + "^tn-(.*)": "@/tuniao-ui/components/tn-$1/tn-$1.vue" + }, + "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages + { + "path": "pages/index/index", + "style": { + "navigationBarTitleText": "Tuniao UI", + "enablePullDownRefresh": false + } + } + ], + "subPackages": [{ + "root": "basicPage", + "pages": [ + { + "path": "test/test", + "style": { + "navigationStyle":"default", + "navigationBarTitleText": "测试页面", + "enablePullDownRefresh": false + } + }, + { + "path": "flex-layout/flex-layout", + "style": { + "navigationBarTitleText": "Flex布局", + "enablePullDownRefresh": false + } + }, { + "path": "grid-layout/grid-layout", + "style": { + "navigationBarTitleText": "Grid布局", + "enablePullDownRefresh": false + } + }, { + "path": "color/color", + "style": { + "navigationBarTitleText": "配色", + "enablePullDownRefresh": false + } + }, { + "path": "icon/icon", + "style": { + "navigationBarTitleText": "图标", + "enablePullDownRefresh": false + } + }, { + "path": "button/button", + "style": { + "navigationBarTitleText": "按钮", + "enablePullDownRefresh": false + } + }, { + "path": "tag/tag", + "style": { + "navigationBarTitleText": "标签", + "enablePullDownRefresh": false + } + }, { + "path": "border/border", + "style": { + "navigationBarTitleText": "边框", + "enablePullDownRefresh": false + } + }, { + "path": "shadow/shadow", + "style": { + "navigationBarTitleText": "阴影", + "enablePullDownRefresh": false + } + }, { + "path": "badge/badge", + "style": { + "navigationBarTitleText": "微标", + "enablePullDownRefresh": false + } + }, { + "path": "avatar/avatar", + "style": { + "navigationBarTitleText": "头像", + "enablePullDownRefresh": false + } + } + ] + },{ + "root": "componentsPage", + "pages": [ + { + "path": "list/list", + "style": { + "navigationBarTitleText": "列表", + "enablePullDownRefresh": false + } + }, { + "path": "popup/popup", + "style": { + "navigationBarTitleText": "弹出层", + "enablePullDownRefresh": false + } + }, { + "path": "modal/modal", + "style": { + "navigationBarTitleText": "模态框", + "enablePullDownRefresh": false + } + }, { + "path": "toast/toast", + "style": { + "navigationBarTitleText": "Toast", + "enablePullDownRefresh": false + } + }, { + "path": "tips/tips", + "style": { + "navigationBarTitleText": "提示信息", + "enablePullDownRefresh": false + } + }, { + "path": "form/form", + "style": { + "navigationBarTitleText": "Form表单", + "enablePullDownRefresh": false + } + }, { + "path": "action-sheet/action-sheet", + "style": { + "navigationBarTitleText": "操作菜单", + "enablePullDownRefresh": false + } + }, { + "path": "picker/picker", + "style": { + "navigationBarTitleText": "Picker选择器", + "enablePullDownRefresh": false + } + }, { + "path": "select/select", + "style": { + "navigationBarTitleText": "Select列选择器", + "enablePullDownRefresh": false + } + }, { + "path": "verification-code/verification-code", + "style": { + "navigationBarTitleText": "验证码倒计时", + "enablePullDownRefresh": false + } + }, { + "path": "loading/loading", + "style": { + "navigationBarTitleText": "Loading加载", + "enablePullDownRefresh": false + } + }, { + "path": "switch/switch", + "style": { + "navigationBarTitleText": "Switch开关", + "enablePullDownRefresh": false + } + }, { + "path": "progress/progress", + "style": { + "navigationBarTitleText": "Progress进度条", + "enablePullDownRefresh": false + } + }, { + "path": "image-upload/image-upload", + "style": { + "navigationBarTitleText": "图片上传", + "enablePullDownRefresh": false + } + }, { + "path": "rate/rate", + "style": { + "navigationBarTitleText": "rate评分", + "enablePullDownRefresh": false + } + }, { + "path": "slider/slider", + "style": { + "navigationBarTitleText": "slider滑动条", + "enablePullDownRefresh": false + } + }, { + "path": "number-box/number-box", + "style": { + "navigationBarTitleText": "numberBox步进输入", + "enablePullDownRefresh": false + } + }, { + "path": "keyboard/keyboard", + "style": { + "navigationBarTitleText": "keyboard键盘", + "enablePullDownRefresh": false + } + }, { + "path": "tabs/tabs", + "style": { + "navigationBarTitleText": "tabs标签", + "enablePullDownRefresh": false + } + }, { + "path": "count-down/count-down", + "style": { + "navigationBarTitleText": "countDown倒计时", + "enablePullDownRefresh": false + } + }, { + "path": "count-to/count-to", + "style": { + "navigationBarTitleText": "countTo数字跳转", + "enablePullDownRefresh": false + } + }, { + "path": "count-scroll/count-scroll", + "style": { + "navigationBarTitleText": "countTo数字滚动", + "enablePullDownRefresh": false + } + }, { + "path": "sticky/sticky", + "style": { + "navigationBarTitleText": "sticky吸顶", + "enablePullDownRefresh": false + } + }, { + "path": "nav-bar/nav-bar", + "style": { + "navigationBarTitleText": "navBar导航栏", + "enablePullDownRefresh": false + } + }, { + "path": "notice-bar/notice-bar", + "style": { + "navigationBarTitleText": "noticeBar通知栏", + "enablePullDownRefresh": false + } + }, { + "path": "swiper/swiper", + "style": { + "navigationBarTitleText": "swiper轮播图", + "enablePullDownRefresh": false + } + }, { + "path": "collapse/collapse", + "style": { + "navigationBarTitleText": "collapse折叠面板", + "enablePullDownRefresh": false + } + }, { + "path": "read-more/read-more", + "style": { + "navigationBarTitleText": "readMore查看更多", + "enablePullDownRefresh": false + } + }, { + "path": "steps/steps", + "style": { + "navigationBarTitleText": "steps步骤条", + "enablePullDownRefresh": false + } + }, { + "path": "time-line/time-line", + "style": { + "navigationBarTitleText": "timeLine时间轴", + "enablePullDownRefresh": false + } + }, { + "path": "index-list/index-list", + "style": { + "navigationBarTitleText": "indexList索引列表", + "enablePullDownRefresh": false + } + }, { + "path": "calendar/calendar", + "style": { + "navigationBarTitleText": "calendar日历", + "enablePullDownRefresh": false + } + }, { + "path": "scroll-list/scroll-list", + "style": { + "navigationBarTitleText": "scrollList横向滚动", + "enablePullDownRefresh": false + } + }, { + "path": "swipe-action/swipe-action", + "style": { + "navigationBarTitleText": "swipeAction滑动菜单", + "enablePullDownRefresh": false + } + }, { + "path": "sign-board/sign-board", + "style": { + "navigationBarTitleText": "signBoard签名板", + "enablePullDownRefresh": false + // "pageOrientation": "landscape" + } + } + ] + },{ + "root":"templatePage", + "pages": [ + { + "path": "login/demo1/demo1", + "style": { + "navigationBarTitleText": "火箭登录", + "enablePullDownRefresh": false + } + },{ + "path": "login/demo2/demo2", + "style": { + "navigationBarTitleText": "粒子登录", + "enablePullDownRefresh": false + } + }, { + "path": "health/qrcode/qrcode", + "style": { + "navigationBarTitleText": "健康码", + "enablePullDownRefresh": false + } + }, { + "path": "home/course/course", + "style": { + "navigationBarTitleText": "课程首页", + "enablePullDownRefresh": false + } + }, { + "path": "home/music/music", + "style": { + "navigationBarTitleText": "音乐首页", + "enablePullDownRefresh": false + } + },{ + "path": "home/design/design", + "style": { + "navigationBarTitleText": "设计首页", + "enablePullDownRefresh": false + } + }, { + "path": "home/job/job", + "style": { + "navigationBarTitleText": "招聘首页", + "enablePullDownRefresh": false + } + }, { + "path": "home/screen/screen", + "style": { + "navigationBarTitleText": "投屏首页", + "enablePullDownRefresh": false + } + }, { + "path": "home/wallpaper/wallpaper", + "style": { + "navigationBarTitleText": "壁纸首页", + "enablePullDownRefresh": false + } + }, { + "path": "life/fullpage/fullpage", + "style": { + "navigationBarTitleText": "全屏轮播", + "enablePullDownRefresh": false + } + },{ + "path": "life/plus/plus", + "style": { + "navigationBarTitleText": "会员协议", + "enablePullDownRefresh": false + } + },{ + "path": "life/browser/browser", + "style": { + "navigationBarTitleText": "浏览器", + "enablePullDownRefresh": false + } + },{ + "path": "animate/loading/loading", + "style": { + "navigationBarTitleText": "加载动效", + "enablePullDownRefresh": false + } + }, { + "path": "animate/particle/particle", + "style": { + "navigationBarTitleText": "随机粒子", + "enablePullDownRefresh": false + } + }, { + "path": "animate/photo/photo", + "style": { + "navigationBarTitleText": "相册图集", + "enablePullDownRefresh": false + } + }, { + "path": "animate/hollow/hollow", + "style": { + "navigationBarTitleText": "镂空效果", + "enablePullDownRefresh": false + } + } + ] + }], + "preloadRule": { + "pages/index/index": { + "network":"all", + "packages": ["basicPage","componentsPage","templatePage"] + } + }, + "globalStyle": { + "navigationStyle": "custom", + "navigationBarTextStyle": "black", + "navigationBarTitleText": "Tuniao UI", + "navigationBarBackgroundColor": "#F8F8F8", + "backgroundColor": "#F8F8F8" + } +} diff --git a/pages/basic/basic.vue b/pages/basic/basic.vue new file mode 100644 index 0000000..9adcb66 --- /dev/null +++ b/pages/basic/basic.vue @@ -0,0 +1,157 @@ + + + + + diff --git a/pages/components/components.vue b/pages/components/components.vue new file mode 100644 index 0000000..c9506c2 --- /dev/null +++ b/pages/components/components.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/pages/index/index.vue b/pages/index/index.vue new file mode 100644 index 0000000..1620282 --- /dev/null +++ b/pages/index/index.vue @@ -0,0 +1,116 @@ + + + + + diff --git a/pages/template/template.vue b/pages/template/template.vue new file mode 100644 index 0000000..5072026 --- /dev/null +++ b/pages/template/template.vue @@ -0,0 +1,167 @@ + + + + + diff --git a/pages/tuniao/tuniao.vue b/pages/tuniao/tuniao.vue new file mode 100644 index 0000000..1155990 --- /dev/null +++ b/pages/tuniao/tuniao.vue @@ -0,0 +1,336 @@ + + + + + diff --git a/static/css/components/demo_page_common.scss b/static/css/components/demo_page_common.scss new file mode 100644 index 0000000..f40b136 --- /dev/null +++ b/static/css/components/demo_page_common.scss @@ -0,0 +1,193 @@ +/* 顶部 start */ +.header { + padding: 80rpx 60rpx 40rpx 60rpx; + + .title { + font-size: 36rpx; + color: $tn-font-color; + font-weight: bold; + } + + .sub-title { + font-size: 28rpx; + color: $tn-content-color; + padding-top: 18rpx; + } + + .tips-title { + font-size: 24rpx; + color: $tn-font-sub-color; + padding-top: 5rpx; + } +} +/* 顶部 end */ + +/* 展示内容容器 start */ +.show-content-container { + + /* 标题容器 start */ + .title-container { + display: flex; + position: relative; + align-items: center; + justify-content: space-between; + min-height: 100rpx; + + // 标题样式 + .title { + height: 100%; + max-width: 100%; + margin: 0 20rpx; + font-size: 30rpx; + display: flex; + align-items: center; + justify-content: center; + + // 标题前面小点 + &:before { + content: " "; + background-color: $tn-main-color; + width: 15rpx; + height: 15rpx; + border-radius: 10rpx; + margin-right: 18rpx; + } + } + } + /* 标题容器 end */ + + /* 内容 start */ + .content { + padding: 20rpx; + } + /* 内容 end */ + +} +/* 展示内容容器 end */ + +/* 内容容器 start */ +.demo-content-container { + border: 1rpx dashed $tn-main-color; + margin: 20rpx; + margin-top: 0rpx; + + position: fixed; + width: 95%; + z-index: 10; + + transition: all 0.15s ease-out; + + &.top { + width: 100%; + margin: 0; + } + + &.no-fixed { + position: relative !important; + } + + /* 标题容器 start */ + .title-container { + display: flex; + position: relative; + align-items: center; + justify-content: center; + min-height: 100rpx; + + // 标题样式 + .title { + height: 100%; + max-width: 100%; + margin: 0 30rpx; + font-size: 30rpx; + display: flex; + align-items: center; + justify-content: center; + } + } + /* 标题容器 end */ + + /* 内容 start */ + .content { + padding: 30rpx; + display: flex; + align-items: center; + justify-content: center; + } + /* 内容 end */ + +} +/* 内容容器 end */ + +/* 可选项内容容器 start */ +.demo-section-container { + margin: 20rpx; + height: 100%; + + /* 标题容器 start */ + .title-container { + display: flex; + position: relative; + align-items: center; + justify-content: center; + min-height: 100rpx; + margin-bottom: 10rpx; + + // 标题样式 + .title { + height: 100%; + max-width: 100%; + margin: 0 30rpx; + font-size: 30rpx; + display: flex; + align-items: center; + justify-content: center; + } + + &::after { + content: " "; + box-sizing: border-box; + width: 90%; + height: 100%; + position: absolute; + top: 0; + left: 50%; + transform: translateX(-50%); + border-bottom: 1rpx solid $tn-border-solid-color; + } + } + /* 标题容器 end */ + + /* 参数内容 start*/ + .content { + padding: 0 20rpx 10rpx 20rpx; + + // 标题样式 + .title { + padding-left: 20rpx; + height: 100%; + position: relative; + + &::before { + content: " "; + position: absolute; + top: 50%; + left: 0; + width: 4rpx; + height: 90%; + background-color: $tn-main-color; + border-radius: 6rpx; + transform: translateY(-50%); + } + } + + // 参数样式 + .section { + margin-top: 15rpx; + margin-bottom: 20rpx; + } + } + /* 参数内容 end*/ + +} +/* 可选项内容容器 end */ \ No newline at end of file diff --git a/static/css/templatePage/custom_nav_bar.scss b/static/css/templatePage/custom_nav_bar.scss new file mode 100644 index 0000000..7cc0960 --- /dev/null +++ b/static/css/templatePage/custom_nav_bar.scss @@ -0,0 +1,38 @@ +.tn-custom-nav-bar__back { + width: 100%; + height: 100%; + position: relative; + display: flex; + justify-content: space-evenly; + align-items: center; + box-sizing: border-box; + background-color: rgba(0, 0, 0, 0.15); + border-radius: 1000rpx; + border: 1rpx solid rgba(255, 255, 255, 0.5); + color: #FFFFFF; + font-size: 18px; + + .icon { + display: block; + flex: 1; + margin: auto; + text-align: center; + } + + &:before { + content: " "; + width: 1rpx; + height: 110%; + position: absolute; + top: 22.5%; + left: 0; + right: 0; + margin: auto; + transform: scale(0.5); + transform-origin: 0 0; + pointer-events: none; + box-sizing: border-box; + opacity: 0.7; + background-color: #FFFFFF; + } +} \ No newline at end of file diff --git a/static/favicon.ico b/static/favicon.ico new file mode 100644 index 0000000..7bf9037 Binary files /dev/null and b/static/favicon.ico differ diff --git a/store/$t.mixin.js b/store/$t.mixin.js new file mode 100644 index 0000000..831b7f9 --- /dev/null +++ b/store/$t.mixin.js @@ -0,0 +1,28 @@ +import { mapState } from 'vuex' +import store from '@/store' + +// 尝试将用户在根目录中的store/index.js的vuex的state变量加载到全局变量中 +let $tStoreKey = [] +try { + $tStoreKey = store.state ? Object.keys(store.state) : [] +} catch(e) { + +} + +module.exports = { + beforeCreate() { + // 将vuex方法挂在在$t中 + // 使用方法: + // 修改vuex的state中的user.name变量为图鸟小菜 => this.$t.vuex('user.name', '图鸟小菜') + // 修改vuexde state中的version变量为1.0.1 => this.$t.vuex('version', 1.0.1) + this.$t.vuex = (name, value) => { + this.$store.commit('$tStore', { + name, value + }) + } + }, + computed: { + // 将vuex的state中的变量结构到全局混入mixin中 + ...mapState($tStoreKey) + } +} \ No newline at end of file diff --git a/store/index.js b/store/index.js new file mode 100644 index 0000000..828212c --- /dev/null +++ b/store/index.js @@ -0,0 +1,75 @@ +import Vue from 'vue' +import Vuex from 'vuex' + +Vue.use(Vuex) + +let lifeData = {} + +// 尝试获取本地是否存在lifeData变量,第一次启动时不存在 +try { + lifeData = uni.getStorageSync('lifeData') +} catch(e) { + +} + +// 标记需要永久存储的变量,在每次启动时取出,在state中的变量名 +let saveStateKeys = ['vuex_user'] + +// 保存变量到本地存储 +const saveLifeData = function(key, value) { + // 判断变量是否在存储数组中 + if (saveStateKeys.indexOf(key) != -1) { + // 获取本地存储的lifeData对象,将变量添加到对象中 + let tmpLifeData = uni.getStorageSync('lifeData') + // 第一次启动时不存在,则放一个空对象 + tmpLifeData = tmpLifeData ? tmpLifeData : {}, + tmpLifeData[key] = value + // 将变量再次放回本地存储中 + uni.setStorageSync('lifeData', tmpLifeData) + } +} + +const store = new Vuex.Store({ + state: { + // 如果上面从本地获取的lifeData对象下有对应的属性,就赋值给state中对应的变量 + // 加上vuex_前缀,是防止变量名冲突,也让人一目了然 + vuex_user: lifeData.vuex_user ? lifeData.vuex_user : {name: '图鸟'}, + + // 如果vuex_version无需保存到本地永久存储,无需lifeData.vuex_version方式 + // app版本 + vuex_version: "1.0.0", + // 是否使用自定义导航栏 + vuex_custom_nav_bar: true, + // 状态栏高度 + vuex_status_bar_height: 0, + // 自定义导航栏的高度 + vuex_custom_bar_height: 0 + }, + mutations: { + $tStore(state, payload) { + // 判断是否多层调用,state中为对象存在的情况,例如user.info.score = 1 + let nameArr = payload.name.split('.') + let saveKey = '' + let len = nameArr.length + if (len >= 2) { + let obj = state[nameArr[0]] + for (let i= 1; i < len - 1; i++) { + obj = obj[nameArr[i]] + } + obj[nameArr[len - 1]] = payload.value + saveKey = nameArr[0] + } else { + // 单层级变量 + state[payload.name] = payload.value + saveKey = payload.name + } + + // 保存变量到本地中 + saveLifeData(saveKey, state[saveKey]) + } + }, + actions: { + } +}) + +export default store \ No newline at end of file diff --git a/template.h5.html b/template.h5.html new file mode 100644 index 0000000..974e4db --- /dev/null +++ b/template.h5.html @@ -0,0 +1,38 @@ + + + + + + + + + <%= htmlWebpackPlugin.options.title %> + + + + + + + + + + + +
+ + + + diff --git a/templatePage/animate/hollow/hollow.vue b/templatePage/animate/hollow/hollow.vue new file mode 100644 index 0000000..8e08820 --- /dev/null +++ b/templatePage/animate/hollow/hollow.vue @@ -0,0 +1,148 @@ + + + + + diff --git a/templatePage/animate/loading/loading.vue b/templatePage/animate/loading/loading.vue new file mode 100644 index 0000000..73893da --- /dev/null +++ b/templatePage/animate/loading/loading.vue @@ -0,0 +1,265 @@ + + + + + diff --git a/templatePage/animate/particle/particle.vue b/templatePage/animate/particle/particle.vue new file mode 100644 index 0000000..5a261b4 --- /dev/null +++ b/templatePage/animate/particle/particle.vue @@ -0,0 +1,149 @@ + + + + + diff --git a/templatePage/animate/photo/photo.vue b/templatePage/animate/photo/photo.vue new file mode 100644 index 0000000..1676e52 --- /dev/null +++ b/templatePage/animate/photo/photo.vue @@ -0,0 +1,264 @@ + + + + + diff --git a/templatePage/health/qrcode/qrcode.vue b/templatePage/health/qrcode/qrcode.vue new file mode 100644 index 0000000..2c77876 --- /dev/null +++ b/templatePage/health/qrcode/qrcode.vue @@ -0,0 +1,519 @@ + + + + + diff --git a/templatePage/home/course/course.vue b/templatePage/home/course/course.vue new file mode 100644 index 0000000..0c842c8 --- /dev/null +++ b/templatePage/home/course/course.vue @@ -0,0 +1,647 @@ + + + + + diff --git a/templatePage/home/design/design.vue b/templatePage/home/design/design.vue new file mode 100644 index 0000000..1f02e2b --- /dev/null +++ b/templatePage/home/design/design.vue @@ -0,0 +1,527 @@ + + + + + diff --git a/templatePage/home/job/job.vue b/templatePage/home/job/job.vue new file mode 100644 index 0000000..78c4a0e --- /dev/null +++ b/templatePage/home/job/job.vue @@ -0,0 +1,439 @@ + + + + + diff --git a/templatePage/home/music/music.vue b/templatePage/home/music/music.vue new file mode 100644 index 0000000..833b46d --- /dev/null +++ b/templatePage/home/music/music.vue @@ -0,0 +1,704 @@ + + + + + diff --git a/templatePage/home/screen/screen.vue b/templatePage/home/screen/screen.vue new file mode 100644 index 0000000..380efb6 --- /dev/null +++ b/templatePage/home/screen/screen.vue @@ -0,0 +1,604 @@ + + + + + diff --git a/templatePage/home/wallpaper/wallpaper.vue b/templatePage/home/wallpaper/wallpaper.vue new file mode 100644 index 0000000..2cf33aa --- /dev/null +++ b/templatePage/home/wallpaper/wallpaper.vue @@ -0,0 +1,534 @@ + + + + + diff --git a/templatePage/life/browser/browser.vue b/templatePage/life/browser/browser.vue new file mode 100644 index 0000000..67badfe --- /dev/null +++ b/templatePage/life/browser/browser.vue @@ -0,0 +1,238 @@ + + + + + diff --git a/templatePage/life/fullpage/fullpage.vue b/templatePage/life/fullpage/fullpage.vue new file mode 100644 index 0000000..b999414 --- /dev/null +++ b/templatePage/life/fullpage/fullpage.vue @@ -0,0 +1,159 @@ + + + + + diff --git a/templatePage/life/plus/plus.vue b/templatePage/life/plus/plus.vue new file mode 100644 index 0000000..2323831 --- /dev/null +++ b/templatePage/life/plus/plus.vue @@ -0,0 +1,150 @@ + + + + + diff --git a/templatePage/login/demo1/demo1.vue b/templatePage/login/demo1/demo1.vue new file mode 100644 index 0000000..fc8f7e6 --- /dev/null +++ b/templatePage/login/demo1/demo1.vue @@ -0,0 +1,414 @@ + + + + + diff --git a/templatePage/login/demo2/demo2.vue b/templatePage/login/demo2/demo2.vue new file mode 100644 index 0000000..6192ac1 --- /dev/null +++ b/templatePage/login/demo2/demo2.vue @@ -0,0 +1,495 @@ + + + + + diff --git a/tuniao-ui/README.md b/tuniao-ui/README.md new file mode 100644 index 0000000..ccb9fcb --- /dev/null +++ b/tuniao-ui/README.md @@ -0,0 +1,4 @@ +TuniaoUi for uniApp v1.0.0 | by 图鸟 2021-09-01 +仅供开发,如作它用所承受的法律责任一概与作者无关 + +*使用TuniaoUi开发扩展与插件时,请注明基于tuniao字眼 \ No newline at end of file diff --git a/tuniao-ui/components/tn-action-sheet/tn-action-sheet.vue b/tuniao-ui/components/tn-action-sheet/tn-action-sheet.vue new file mode 100644 index 0000000..577b437 --- /dev/null +++ b/tuniao-ui/components/tn-action-sheet/tn-action-sheet.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/tuniao-ui/components/tn-avatar-group/tn-avatar-group.vue b/tuniao-ui/components/tn-avatar-group/tn-avatar-group.vue new file mode 100644 index 0000000..848c1b2 --- /dev/null +++ b/tuniao-ui/components/tn-avatar-group/tn-avatar-group.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/tuniao-ui/components/tn-avatar/tn-avatar.vue b/tuniao-ui/components/tn-avatar/tn-avatar.vue new file mode 100644 index 0000000..fb28d48 --- /dev/null +++ b/tuniao-ui/components/tn-avatar/tn-avatar.vue @@ -0,0 +1,298 @@ + + + + + diff --git a/tuniao-ui/components/tn-badge/tn-badge.vue b/tuniao-ui/components/tn-badge/tn-badge.vue new file mode 100644 index 0000000..a7c73cf --- /dev/null +++ b/tuniao-ui/components/tn-badge/tn-badge.vue @@ -0,0 +1,172 @@ + + + + + diff --git a/tuniao-ui/components/tn-button/tn-button.vue b/tuniao-ui/components/tn-button/tn-button.vue new file mode 100644 index 0000000..2910988 --- /dev/null +++ b/tuniao-ui/components/tn-button/tn-button.vue @@ -0,0 +1,298 @@ + + + + + diff --git a/tuniao-ui/components/tn-calendar/tn-calendar.vue b/tuniao-ui/components/tn-calendar/tn-calendar.vue new file mode 100644 index 0000000..e0711e8 --- /dev/null +++ b/tuniao-ui/components/tn-calendar/tn-calendar.vue @@ -0,0 +1,707 @@ + + + + + diff --git a/tuniao-ui/components/tn-car-keyboard/tn-car-keyboard.vue b/tuniao-ui/components/tn-car-keyboard/tn-car-keyboard.vue new file mode 100644 index 0000000..f92559c --- /dev/null +++ b/tuniao-ui/components/tn-car-keyboard/tn-car-keyboard.vue @@ -0,0 +1,320 @@ + + + + + diff --git a/tuniao-ui/components/tn-checkbox-group/tn-checkbox-group.vue b/tuniao-ui/components/tn-checkbox-group/tn-checkbox-group.vue new file mode 100644 index 0000000..5472ad5 --- /dev/null +++ b/tuniao-ui/components/tn-checkbox-group/tn-checkbox-group.vue @@ -0,0 +1,134 @@ + + + + + diff --git a/tuniao-ui/components/tn-checkbox/tn-checkbox.vue b/tuniao-ui/components/tn-checkbox/tn-checkbox.vue new file mode 100644 index 0000000..89dd311 --- /dev/null +++ b/tuniao-ui/components/tn-checkbox/tn-checkbox.vue @@ -0,0 +1,328 @@ + + + + + diff --git a/tuniao-ui/components/tn-circle-progress/tn-circle-progress.vue b/tuniao-ui/components/tn-circle-progress/tn-circle-progress.vue new file mode 100644 index 0000000..6788c5d --- /dev/null +++ b/tuniao-ui/components/tn-circle-progress/tn-circle-progress.vue @@ -0,0 +1,223 @@ + + + + + diff --git a/tuniao-ui/components/tn-collapse-item/tn-collapse-item.vue b/tuniao-ui/components/tn-collapse-item/tn-collapse-item.vue new file mode 100644 index 0000000..05763b2 --- /dev/null +++ b/tuniao-ui/components/tn-collapse-item/tn-collapse-item.vue @@ -0,0 +1,232 @@ + + + + + diff --git a/tuniao-ui/components/tn-collapse/tn-collapse.vue b/tuniao-ui/components/tn-collapse/tn-collapse.vue new file mode 100644 index 0000000..00ec9a2 --- /dev/null +++ b/tuniao-ui/components/tn-collapse/tn-collapse.vue @@ -0,0 +1,98 @@ + + + + + diff --git a/tuniao-ui/components/tn-color-icon/tn-color-icon.vue b/tuniao-ui/components/tn-color-icon/tn-color-icon.vue new file mode 100644 index 0000000..c7ad83b --- /dev/null +++ b/tuniao-ui/components/tn-color-icon/tn-color-icon.vue @@ -0,0 +1,318 @@ + + + + + diff --git a/tuniao-ui/components/tn-column-notice/tn-column-notice.vue b/tuniao-ui/components/tn-column-notice/tn-column-notice.vue new file mode 100644 index 0000000..e4ec36a --- /dev/null +++ b/tuniao-ui/components/tn-column-notice/tn-column-notice.vue @@ -0,0 +1,251 @@ + + + + + diff --git a/tuniao-ui/components/tn-count-down/tn-count-down.vue b/tuniao-ui/components/tn-count-down/tn-count-down.vue new file mode 100644 index 0000000..b601de7 --- /dev/null +++ b/tuniao-ui/components/tn-count-down/tn-count-down.vue @@ -0,0 +1,314 @@ + + + + + diff --git a/tuniao-ui/components/tn-count-scroll/tn-count-scroll.vue b/tuniao-ui/components/tn-count-scroll/tn-count-scroll.vue new file mode 100644 index 0000000..de208c8 --- /dev/null +++ b/tuniao-ui/components/tn-count-scroll/tn-count-scroll.vue @@ -0,0 +1,171 @@ + + + + + diff --git a/tuniao-ui/components/tn-count-to/tn-count-to.vue b/tuniao-ui/components/tn-count-to/tn-count-to.vue new file mode 100644 index 0000000..c3d8854 --- /dev/null +++ b/tuniao-ui/components/tn-count-to/tn-count-to.vue @@ -0,0 +1,231 @@ + + + + + diff --git a/tuniao-ui/components/tn-form-item/tn-form-item.vue b/tuniao-ui/components/tn-form-item/tn-form-item.vue new file mode 100644 index 0000000..c5a58ef --- /dev/null +++ b/tuniao-ui/components/tn-form-item/tn-form-item.vue @@ -0,0 +1,457 @@ + + + + + diff --git a/tuniao-ui/components/tn-form/tn-form.vue b/tuniao-ui/components/tn-form/tn-form.vue new file mode 100644 index 0000000..ec23599 --- /dev/null +++ b/tuniao-ui/components/tn-form/tn-form.vue @@ -0,0 +1,139 @@ + + + + + diff --git a/tuniao-ui/components/tn-grid-item/tn-grid-item.vue b/tuniao-ui/components/tn-grid-item/tn-grid-item.vue new file mode 100644 index 0000000..2837bc2 --- /dev/null +++ b/tuniao-ui/components/tn-grid-item/tn-grid-item.vue @@ -0,0 +1,114 @@ + + + + + diff --git a/tuniao-ui/components/tn-grid/tn-grid.vue b/tuniao-ui/components/tn-grid/tn-grid.vue new file mode 100644 index 0000000..f5487c6 --- /dev/null +++ b/tuniao-ui/components/tn-grid/tn-grid.vue @@ -0,0 +1,111 @@ + + + + + diff --git a/tuniao-ui/components/tn-image-upload/tn-image-upload.vue b/tuniao-ui/components/tn-image-upload/tn-image-upload.vue new file mode 100644 index 0000000..50fa434 --- /dev/null +++ b/tuniao-ui/components/tn-image-upload/tn-image-upload.vue @@ -0,0 +1,644 @@ + + + + + diff --git a/tuniao-ui/components/tn-index-anchor/tn-index-anchor.vue b/tuniao-ui/components/tn-index-anchor/tn-index-anchor.vue new file mode 100644 index 0000000..97bef6e --- /dev/null +++ b/tuniao-ui/components/tn-index-anchor/tn-index-anchor.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/tuniao-ui/components/tn-index-list/tn-index-list.vue b/tuniao-ui/components/tn-index-list/tn-index-list.vue new file mode 100644 index 0000000..91fc639 --- /dev/null +++ b/tuniao-ui/components/tn-index-list/tn-index-list.vue @@ -0,0 +1,361 @@ + + + + + diff --git a/tuniao-ui/components/tn-input/tn-input.vue b/tuniao-ui/components/tn-input/tn-input.vue new file mode 100644 index 0000000..eaa22a1 --- /dev/null +++ b/tuniao-ui/components/tn-input/tn-input.vue @@ -0,0 +1,427 @@ +