UNPKG

w-component-vue

Version:
218 lines (204 loc) 10.5 kB
<!doctype html> <html xmlns="http://www.w3.org/1999/xhtml" lang="zh-tw"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>w-component-vue</title> <!-- @babel/polyfill --> <script nomodule src="https://cdn.jsdelivr.net/npm/@babel/polyfill/dist/polyfill.min.js" ></script> <!-- vue --> <script src="https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.min.js"></script> <!-- extractHtml已自動添加@babel/polyfill與vue --> <!-- vuetify --> <link href="https://cdn.jsdelivr.net/npm/vuetify@2.6.14/dist/vuetify.min.css" rel="stylesheet" /> <script src="https://cdn.jsdelivr.net/npm/vuetify@2.6.14/dist/vuetify.min.js" ></script> <!-- fontawesome --> <link href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.4.2/css/all.min.css" rel="stylesheet" /> <!-- mdi, 各組件使用mdi/js會於轉單頁時改為mdi icon, 故需引用mdi/css --> <link href="https://cdn.jsdelivr.net/npm/@mdi/font@7.4.47/css/materialdesignicons.min.css" rel="stylesheet" /> <!-- google, 各組件使用mdi/js故不需引用 --> <link _href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900" rel="stylesheet" /> <link _href="https://fonts.googleapis.com/css?family=Material+Icons" rel="stylesheet" /> <!-- data --> <script src="https://cdn.jsdelivr.net/npm/w-demores@1.0.27/res/data/dataAAPL.js" ></script> <script src="https://cdn.jsdelivr.net/npm/w-demores@1.0.27/res/data/dataUSD2EUR.js" ></script> <script src="https://cdn.jsdelivr.net/npm/w-demores@1.0.27/res/data/dataTemperature.js" ></script> <script src="https://cdn.jsdelivr.net/npm/w-demores@1.0.27/res/data/dataHousePriceArea.js" ></script> <script src="https://cdn.jsdelivr.net/npm/w-demores@1.0.27/res/data/dataFlare.js" ></script> <script src="https://cdn.jsdelivr.net/npm/w-demores@1.0.27/res/data/dataRain.js" ></script> <script src="https://cdn.jsdelivr.net/npm/w-demores@1.0.27/res/data/dataRainClip.js" ></script> <script src="https://cdn.jsdelivr.net/npm/w-demores@1.0.27/res/data/dataCivilSoilCodeIcon.js" ></script> <!-- w-component-vue --> <script src="https://cdn.jsdelivr.net/npm/w-component-vue@2.4.27/dist/w-component-vue.umd.js"></script> <style> .v-application--wrap { /* width與max-width fix for IE11, 其外不能使用padding或margin避免失效 */ width: 100svw; max-width: 100svw; font-family: inherit; background: #fff; } /* 組件所須全域樣式 */ .item { /* 因item位於demolink, 提取各範例html後會刪除demolink, 故得額外補上 */ border-left: 3px solid #ffba75; margin: 5px 5px 8px 0px; padding: 3px 3px 5px 10px; font-size: 0.9rem; display: flex; justify-content: flex-start; align-items: center; } .head1 { padding: 0px 0px 20px 0px; font-size: 2.5rem; } .bkh { /* 寬 */ padding: 20px; } @media screen and (max-width: 800px) { /* 中 */ .bkh { padding: 10px; } } @media screen and (max-width: 400px) { /* 窄 */ .bkh { padding: 5px; } } .bk { /* 寬 */ display: inline-block; vertical-align: top; padding: 0px 80px 60px 0px; } @media screen and (max-width: 1000px) { /* 中窄 */ .bk { display: block; padding: 0px 0px 50px 0px; } } .cpitem { transition: all 0.3s; padding: 5px 15px; cursor: pointer; } .cpitem-white { background: #fff; } .cpitem-white:hover { background: #eee; } .cpitem-black { background: #333; } .cpitem-black:hover { background: #555; } </style> </head> <body style="font-family:'Microsoft JhengHei','Avenir','Helvetica'; padding:0px; margin:0px;" > <v-app id="app" class="bkh" style="font-family:inherit;"> <div class="head1"> <span style="cursor:pointer;" title="open for copy link to view component" onclick="window.open('//yuda-lyu.github.io/w-component-vue/examples/app.html?cmp='+this.innerText,'_blank')" >w-panel-avatar</span> </div> <div class="bk"> <div class="item">slot avatar &amp; avatarBackgroundColor</div> <div style="display:inline-block; padding:40px; background:#bbb;"> <w-panel-avatar :sub-header-text="WPanelAvatar.subTitle" :header-text="WPanelAvatar.title" :avatar-background-color="'rgba(120,120,190,0.4)'" > <template v-slot:avatar> <div> <img style="width:80px; height:80px;" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/PjxzdmcgZGF0YS1uYW1lPSJMYXllciAxIiBpZD0iTGF5ZXJfMSIgdmlld0JveD0iMCAwIDY0IDY0IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDojNjVjOGQwO30uY2xzLTJ7ZmlsbDojZmNkZDdjO30uY2xzLTN7ZmlsbDojYmE5YmM5O30uY2xzLTR7ZmlsbDojODM4YmM1O30uY2xzLTV7ZmlsbDojZTc2ODVkO30uY2xzLTZ7ZmlsbDojZjRlY2NlO308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik00NywxMy42NWE2LDYsMCwxLDAtNCwwIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNDMsMjJWMTBhMiwyLDAsMCwxLDItMmgwYTIsMiwwLDAsMSwyLDJWMjIiLz48cG9seWxpbmUgY2xhc3M9ImNscy0xIiBwb2ludHM9IjExIDIyIDExIDE0IDE1IDE0IDE1IDIyIi8+PHBvbHlsaW5lIGNsYXNzPSJjbHMtMSIgcG9pbnRzPSIxOSAyMiAxOSAxNCAyMyAxNCAyMyAyMiIvPjxwb2x5bGluZSBjbGFzcz0iY2xzLTMiIHBvaW50cz0iNDkgMjggNTUgMjggNTUgMzQgNDkgMzQiLz48cG9seWxpbmUgY2xhc3M9ImNscy0zIiBwb2ludHM9IjQ5IDUwIDU1IDUwIDU1IDU2IDQ5IDU2Ii8+PHJlY3QgY2xhc3M9ImNscy00IiBoZWlnaHQ9IjQwIiB3aWR0aD0iNDAiIHg9IjkiIHk9IjIyIi8+PHBvbHlsaW5lIGNsYXNzPSJjbHMtNSIgcG9pbnRzPSI0MCA1MSA0NCA1MSA0NCA1NSA0MCA1NSIvPjxwb2x5bGluZSBjbGFzcz0iY2xzLTMiIHBvaW50cz0iMTggNjIgMTggNDMgNDAgNDMgNDAgNjIiLz48cG9seWdvbiBjbGFzcz0iY2xzLTIiIHBvaW50cz0iMzYgNTggMjIgNTggMjkgNDcgMzYgNTgiLz48cmVjdCBjbGFzcz0iY2xzLTUiIGhlaWdodD0iNCIgd2lkdGg9IjIiIHg9IjI4IiB5PSI1MiIvPjxyZWN0IGNsYXNzPSJjbHMtNSIgaGVpZ2h0PSIyIiB3aWR0aD0iNCIgeD0iMTQiIHk9IjQ2Ii8+PHJlY3QgY2xhc3M9ImNscy01IiBoZWlnaHQ9IjIiIHdpZHRoPSI0IiB4PSIxNCIgeT0iNTYiLz48cmVjdCBjbGFzcz0iY2xzLTIiIGhlaWdodD0iNCIgd2lkdGg9IjYiIHg9IjEzIiB5PSIyNiIvPjxyZWN0IGNsYXNzPSJjbHMtMiIgaGVpZ2h0PSI0IiB3aWR0aD0iNiIgeD0iMTMiIHk9IjM0Ii8+PHJlY3QgY2xhc3M9ImNscy02IiBoZWlnaHQ9IjIiIHdpZHRoPSI4IiB4PSIyMiIgeT0iMjciLz48cmVjdCBjbGFzcz0iY2xzLTEiIGhlaWdodD0iMiIgd2lkdGg9IjgiIHg9IjIyIiB5PSIzNSIvPjxjaXJjbGUgY2xhc3M9ImNscy0xIiBjeD0iMzUiIGN5PSIyOCIgcj0iMiIvPjxjaXJjbGUgY2xhc3M9ImNscy0xIiBjeD0iNDMiIGN5PSIyOCIgcj0iMiIvPjxyZWN0IGNsYXNzPSJjbHMtMSIgaGVpZ2h0PSIyIiB3aWR0aD0iMiIgeD0iMzIiIHk9IjM1Ii8+PHJlY3QgY2xhc3M9ImNscy0xIiBoZWlnaHQ9IjIiIHdpZHRoPSIyIiB4PSIzNiIgeT0iMzUiLz48cmVjdCBjbGFzcz0iY2xzLTEiIGhlaWdodD0iMiIgd2lkdGg9IjIiIHg9IjQwIiB5PSIzNSIvPjxyZWN0IGNsYXNzPSJjbHMtMSIgaGVpZ2h0PSIyIiB3aWR0aD0iMiIgeD0iNDQiIHk9IjM1Ii8+PHJlY3QgY2xhc3M9ImNscy0yIiBoZWlnaHQ9IjQiIHdpZHRoPSIyIiB4PSIyMCIgeT0iMTAiLz48cmVjdCBjbGFzcz0iY2xzLTIiIGhlaWdodD0iNCIgd2lkdGg9IjIiIHg9IjEyIiB5PSIxMCIvPjwvc3ZnPg==" /> </div> </template> <template v-slot> <div style="padding:20px;" v-html="WPanelAvatar.table"></div> </template> </w-panel-avatar> </div> </div> </v-app> <script> //install Vue.use(window["w-component-vue"]); //initialize new Vue({ el: "#app", vuetify: new Vuetify(), data: function() { return { WPanelAvatar: { table: '\n<div style="margin-bottom:10px; padding:0px 10px;">\n <span>A data table</span>\n </div>\n\n <table style="width:100%; font-size:0.7rem; border-collapse:collapse;">\n <thead>\n <tr>\n <th style="padding:2px 8px; text-align:left;">Dessert</th>\n <th style="padding:2px 8px; text-align:left;">Calories</th>\n <th style="padding:2px 8px; text-align:left;">Fat</th>\n <th style="padding:2px 8px; text-align:left;">Carbs</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td style="padding:2px 8px; border-top:1px solid #ddd;">Frozen Yogurt</td>\n <td style="padding:2px 8px; border-top:1px solid #ddd;">159</td>\n <td style="padding:2px 8px; border-top:1px solid #ddd;">6</td>\n <td style="padding:2px 8px; border-top:1px solid #ddd;">24</td>\n </tr>\n <tr>\n <td style="padding:2px 8px; border-top:1px solid #ddd;">Ice cream sandwich</td>\n <td style="padding:2px 8px; border-top:1px solid #ddd;">237</td>\n <td style="padding:2px 8px; border-top:1px solid #ddd;">9</td>\n <td style="padding:2px 8px; border-top:1px solid #ddd;">37</td>\n </tr>\n <tr>\n <td style="padding:2px 8px; border-top:1px solid #ddd;">Eclair</td>\n <td style="padding:2px 8px; border-top:1px solid #ddd;">262</td>\n <td style="padding:2px 8px; border-top:1px solid #ddd;">16</td>\n <td style="padding:2px 8px; border-top:1px solid #ddd;">23</td>\n </tr>\n </tbody>\n </table>\n', title: "52/128", subTitle: "Recovery rate" }, actions: [] }; }, mounted: function() { return {}; }, computed: {}, methods: {} }); </script> </body> </html>