Commit b23aa49d authored by 李智书's avatar 李智书

提交更新

parent 3535b1ce
Pipeline #187 failed with stages
.DS_Store
node_modules/
unpackage/
dist/
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Editor directories and files
.project
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw*
{ // 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": [{
"type": "uniCloud",
"default": {
"launchtype": "remote"
}
}
]
}
<script>
export default {
onLaunch: function() {
console.log('App Launch')
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
}
}
</script>
<style>
/*每个页面公共css */
@import url("./common/css/weui.min.css");
</style>
/*!
* WeUI v2.0.1 (https://github.com/weui/weui)
* Copyright 2019 Tencent, Inc.
* Licensed under the MIT license
*/html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{line-height:1.6;font-family:-apple-system-font,Helvetica Neue,sans-serif}*{margin:0;padding:0}a img{border:0}a{text-decoration:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}input,textarea{caret-color:#07c160}@font-face{font-weight:400;font-style:normal;font-family:weui;src:url("data:application/octet-stream;base64,AAEAAAALAIAAAwAwR1NVQrD+s+0AAAE4AAAAQk9TLzJAKEx8AAABfAAAAFZjbWFw65cFHQAAAhwAAAJQZ2x5Zp+UEEcAAASUAAAIvGhlYWQUqc7xAAAA4AAAADZoaGVhB/YD+wAAALwAAAAkaG10eEJoAAAAAAHUAAAASGxvY2EUxhJeAAAEbAAAACZtYXhwASEAQwAAARgAAAAgbmFtZeNcHtgAAA1QAAAB5nBvc3T6OoZLAAAPOAAAAOYAAQAAA+gAAABaA+gAAAAAA7MAAQAAAAAAAAAAAAAAAAAAABIAAQAAAAEAAMCU2KdfDzz1AAsD6AAAAADY7EUUAAAAANjsRRQAAAAAA7MD5AAAAAgAAgAAAAAAAAABAAAAEgA3AAUAAAAAAAIAAAAKAAoAAAD/AAAAAAAAAAEAAAAKAB4ALAABREZMVAAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAAAAQOwAZAABQAIAnoCvAAAAIwCegK8AAAB4AAxAQIAAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA6gHqEQPoAAAAWgPoAAAAAAABAAAAAAAAAAAAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAA+gAAAPoAAAD6AAAAAAABQAAAAMAAAAsAAAABAAAAXQAAQAAAAAAbgADAAEAAAAsAAMACgAAAXQABABCAAAABAAEAAEAAOoR//8AAOoB//8AAAABAAQAAAABAAIAAwAEAAUABgAHAAgACQAKAAsADAANAA4ADwAQABEAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAANwAAAAAAAAAEQAA6gEAAOoBAAAAAQAA6gIAAOoCAAAAAgAA6gMAAOoDAAAAAwAA6gQAAOoEAAAABAAA6gUAAOoFAAAABQAA6gYAAOoGAAAABgAA6gcAAOoHAAAABwAA6ggAAOoIAAAACAAA6gkAAOoJAAAACQAA6goAAOoKAAAACgAA6gsAAOoLAAAACwAA6gwAAOoMAAAADAAA6g0AAOoNAAAADQAA6g4AAOoOAAAADgAA6g8AAOoPAAAADwAA6hAAAOoQAAAAEAAA6hEAAOoRAAAAEQAAAAAARACKAMQBEgFgAZIB4gH6AioCeAK0AwwDZAOiA9wEEAReAAAAAgAAAAADlQOVABQAKQAAJSInJicmNDc2NzYyFxYXFhQHBgcGJzI3Njc2NCcmJyYiBwYHBhQXFhcWAfRxYV83OTk3X2HiYV83OTk3X2FxZFVTMTIyMVNVyFVTMTIyMVNVUzk3X2HiYV83OTk3X2HiYV83OTIyMVNVyFVTMTIyMVNVyFVTMTIAAAIAAAAAA7MDswAXAC0AAAEiBwYHBhUUFxYXFjMyNzY3NjU0JyYnJhMHBiIvASY2OwERNDY7ATIWFREzMhYB7nZnZDs9PTtkZ3Z8amY7Pj47Zmkhdg4oDnYODRddCwcmBwtdFw0Dsz47Zmp8dmdkOz09O2Rndn1pZjs+/fCaEhKaEhoBFwgLCwj+6RoAAwAAAAADlQOVABQAGAAhAAAlIicmJyY0NzY3NjIXFhcWFAcGBwYDETMRJzI2NCYiBhQWAfRxYV83OTk3X2HiYV83OTk3X2GQPh8RGRkiGRlTOTdfYeJhXzc5OTdfYeJhXzc5AfT+3QEjKhgjGBgjGAAAAAACAAAAAAOxA+QAFwAsAAABBgcGDwERFBcWFxYXNjc2NzY1EScmJyYTAQYvASY/ATYyHwEWNjclNjIfARYB9WlsP3A3Rz5sXmxsXW09SDdwQGuP/tUEBIoDAxIBBQFxAQUCARICBQERBAPjFyASJBL+rI51ZUg/HBw/SGV1jgFUEiQSIP66/tkDA48EBBkCAVYCAQHlAQIQBAAAAAADAAAAAAOxA+QAFwAmAC8AAAEGBwYPAREUFxYXFhc2NzY3NjURJyYnJgczMhYVAxQGKwEiJwM0NhMiJjQ2MhYUBgH1aWtAcDdHPmxebGxdbT1IN3BAa4M0BAYMAwImBQELBh4PFhYeFRUD5BggEiQS/q2PdWRJPh0dPklkdY8BUxIkEiD4BgT+xgIDBQE6BAb+QBUfFRUfFQAAAAACAAAAAAOVA5UAFAAaAAAlIicmJyY0NzY3NjIXFhcWFAcGBwYDJwcXAScB9HFhXzc5OTdfYeJhXzc5OTdfYaJzLJ8BFi1TOTdfYeJhXzc5OTdfYeJhXzc5AUhzLJ8BFSwAAAAAAwAAAAADlQOVABQAKQAvAAAlIicmJyY0NzY3NjIXFhcWFAcGBwYnMjc2NzY0JyYnJiIHBgcGFBcWFxYTNxcBJzcB9HFhXzc5OTdfYeJhXzc5OTdfYXFkVVMxMjIxU1XIVVMxMjIxU1Uz8iT+6p8jUzk3X2HiYV83OTk3X2HiYV83OTIyMVNVyFVTMTIyMVNVyFVTMTIBBPIj/uufJAAAAAEAAAAAA5kDGAAHAAAlATcXARcBBgGF/vg7zgHYOv3vAcsBCTvPAdg7/e4BAAAAAAIAAAAAA5UDlQAFABoAAAE1IxUXNwMiJyYnJjQ3Njc2MhcWFxYUBwYHBgITPrEsvnFhXzc5OTdfYeJhXzc5OTdfYQIO4PqxLP7kOTdfYeJhXzc5OTdfYeJhXzc5AAAAAAMAAAAAA5UDlQAFABoALwAAARcHJzUzAyInJicmNDc2NzYyFxYXFhQHBgcGJzI3Njc2NCcmJyYiBwYHBhQXFhcWAg2iI7EyGXFhXzc5OTdfYeJhXzc5OTdfYXFkVVMxMjIxU1XIVVMxMjIxU1UCCaIksfr9ZTk3X2HiYV83OTk3X2HiYV83OTIyMVNVyFVTMTIyMVNVyFVTMTIAAAMAAAAAA5UDlQAUABgAIQAAJSInJicmNDc2NzYyFxYXFhQHBgcGAxMzEwMyNjQmIg4BFgH0cWFfNzk5N19h4mFfNzk5N19hkQU2BSAQFRUgFQEWUzk3X2HiYV83OTk3X2HiYV83OQKV/sQBPP43Fh8VFR8WAAAAAAQAAAAAA5UDlQAUACkALQA2AAAlIicmJyY0NzY3NjIXFhcWFAcGBwYnMjc2NzY0JyYnJiIHBgcGFBcWFxYTMxEjEyImNDYyFhQGAfRxYV83OTk3X2HiYV83OTk3X2FxZFVTMTIyMVNVyFVTMTIyMVNVSzIyGREZGSIZGVM5N19h4mFfNzk5N19h4mFfNzkyMjFTVchVUzEyMjFTVchVUzEyAcL+3QFNGCMYGCMYAAAAAwAAAAADlQOVABQAKQA1AAAlIicmJyY0NzY3NjIXFhcWFAcGBwYnMjc2NzY0JyYnJiIHBgcGFBcWFxYTFwcnByc3JzcXNxcB9HFhXzc5OTdfYeJhXzc5OTdfYXFkVVMxMjIxU1XIVVMxMjIxU1WHgiOCgiOCgiOCgiNTOTdfYeJhXzc5OTdfYeJhXzc5MjIxU1XIVVMxMjIxU1XIVVMxMgFvgiOCgiOCgiOCgiMAAAACAAAAAANUA0IAGAAlAAABFwcnDgEjIicmJyY0NzY3NjIXFhcWFRQGJzQuASIOARQeATI+AQKoqyOsJ180T0RCJycnJ0JEn0RCJiglDUFvg29BQW+Db0EBYKwjrCAjKCZCRJ9EQicnJydCRE82YZdBb0FBb4NvQUFvAAAAAgAAAAADlQOVAAsAIAAAATcnBycHFwcXNxc3AyInJicmNDc2NzYyFxYXFhQHBgcGAiB9LH19LH19LH19LKlxYV83OTk3X2HiYV83OTk3X2EB9H0sfX0sfX0sfX0s/tw5N19h4mFfNzk5N19h4mFfNzkAAAACAAAAAAOVA5UAFAAcAAAlIicmJyY0NzY3NjIXFhcWFAcGBwYDJzcnBwYfAQH0cWFfNzk5N19h4mFfNzk5N19hHoqKK7UBAbVTOTdfYeJhXzc5OTdfYeJhXzc5ARKPjy27AQG6AAAAAAUAAAAAA1cDbAAJAB0AJwArAC8AAAETHgEzITI2NxMzAw4BIyEiJicDIzU0NjMhMhYdASUyFh0BIzU0NjMHMxMjEzMDIwEaIgETDQEuDRMBIjIiAjAh/tIhMAIiVgwJApoJDP7xCQzQDAkVMhUyiTIVMgLd/cgOEhIOAjj9xSEuLiECOx4IDAwIHo4MCR0dCQz6/okBd/6JAAAAAAAAEADGAAEAAAAAAAEABAAAAAEAAAAAAAIABwAEAAEAAAAAAAMABAALAAEAAAAAAAQABAAPAAEAAAAAAAUACwATAAEAAAAAAAYABAAeAAEAAAAAAAoAKwAiAAEAAAAAAAsAEwBNAAMAAQQJAAEACABgAAMAAQQJAAIADgBoAAMAAQQJAAMACAB2AAMAAQQJAAQACAB+AAMAAQQJAAUAFgCGAAMAAQQJAAYACACcAAMAAQQJAAoAVgCkAAMAAQQJAAsAJgD6d2V1aVJlZ3VsYXJ3ZXVpd2V1aVZlcnNpb24gMS4wd2V1aUdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAHcAZQB1AGkAUgBlAGcAdQBsAGEAcgB3AGUAdQBpAHcAZQB1AGkAVgBlAHIAcwBpAG8AbgAgADEALgAwAHcAZQB1AGkARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETAAZjaXJjbGUIZG93bmxvYWQEaW5mbwxzYWZlLXN1Y2Nlc3MJc2FmZS13YXJuB3N1Y2Nlc3MOc3VjY2Vzcy1jaXJjbGURc3VjY2Vzcy1uby1jaXJjbGUHd2FpdGluZw53YWl0aW5nLWNpcmNsZQR3YXJuC2luZm8tY2lyY2xlBmNhbmNlbAZzZWFyY2gFY2xlYXIEYmFjawZkZWxldGUAAAAA") format("truetype")}[class*=" weui-icon-"],[class^=weui-icon-]{display:inline-block;vertical-align:middle;font:normal normal normal 14px/1 weui;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased}[class*=" weui-icon-"]:before,[class^=weui-icon-]:before{display:inline-block;margin-left:.2em;margin-right:.2em}.weui-icon-circle:before{content:"\EA01"}.weui-icon-download:before{content:"\EA02"}.weui-icon-info:before{content:"\EA03"}.weui-icon-safe-success:before{content:"\EA04"}.weui-icon-safe-warn:before{content:"\EA05"}.weui-icon-success:before{content:"\EA06"}.weui-icon-success-circle:before{content:"\EA07"}.weui-icon-success-no-circle:before{content:"\EA08"}.weui-icon-waiting:before{content:"\EA09"}.weui-icon-waiting-circle:before{content:"\EA0A"}.weui-icon-warn:before{content:"\EA0B"}.weui-icon-info-circle:before{content:"\EA0C"}.weui-icon-cancel:before{content:"\EA0D"}.weui-icon-search:before{content:"\EA0E"}.weui-icon-clear:before{content:"\EA0F"}.weui-icon-back:before{content:"\EA10"}.weui-icon-delete:before{content:"\EA11"}[class*=" weui-icon_"]:before,[class^=weui-icon_]:before{margin:0}.weui-icon-success{font-size:23px;color:#07c160}.weui-icon-waiting{font-size:23px;color:#10aeff}.weui-icon-warn{font-size:23px;color:#fa5151}.weui-icon-info{font-size:23px;color:#10aeff}.weui-icon-success-circle,.weui-icon-success-no-circle{font-size:23px;color:#07c160}.weui-icon-waiting-circle{font-size:23px;color:#10aeff}.weui-icon-circle{font-size:23px;color:#c9c9c9}.weui-icon-download,.weui-icon-info-circle{font-size:23px;color:#07c160}.weui-icon-safe-success{color:#07c160}.weui-icon-safe-warn{color:#ffbe00}.weui-icon-cancel{color:#fa5151;font-size:22px}.weui-icon-search{color:rgba(0,0,0,.5);font-size:18px}.weui-icon-search:before{margin-right:0}.weui-icon-clear{color:#b2b2b2;font-size:14px}.weui-icon-delete.weui-icon_gallery-delete{color:#fff;font-size:22px}.weui-icon_msg{font-size:64px}.weui-icon_msg.weui-icon-warn{color:#fa5151}.weui-icon_msg-primary{font-size:64px}.weui-icon_msg-primary.weui-icon-warn{color:rgba(0,0,0,.3)}.weui-btn{position:relative;display:block;width:184px;margin-left:auto;margin-right:auto;padding:8px 24px;box-sizing:border-box;font-weight:700;font-size:17px;text-align:center;text-decoration:none;color:#fff;line-height:1.41176471;border-radius:4px;-webkit-tap-highlight-color:rgba(0,0,0,0);overflow:hidden}.weui-btn_block{width:auto}.weui-btn_inline{display:inline-block}.weui-btn_default{color:#06ae56;background-color:#f2f2f2}.weui-btn_default:not(.weui-btn_disabled):visited{color:#06ae56}.weui-btn_default:not(.weui-btn_disabled):active{color:#06ae56;background-color:#d9d9d9}.weui-btn_primary{background-color:#07c160}.weui-btn_primary:not(.weui-btn_disabled):visited{color:#fff}.weui-btn_primary:not(.weui-btn_disabled):active{color:#fff;background-color:#06ad56}.weui-btn_warn{color:#fa5151;background-color:#f2f2f2}.weui-btn_warn:not(.weui-btn_disabled):visited{color:#fa5151}.weui-btn_warn:not(.weui-btn_disabled):active{color:#fa5151;background-color:#d9d9d9}.weui-btn_disabled{color:rgba(0,0,0,.18);background-color:#fafafa}.weui-btn_loading .weui-loading{margin:-.2em .34em 0 0}.weui-btn_loading.weui-btn_primary{color:#fff}.weui-btn_loading.weui-btn_default{background-color:#d9d9d9}.weui-btn_loading.weui-btn_primary{background-color:#06ad56}.weui-btn_loading.weui-btn_warn{background-color:#d9d9d9}.weui-btn_plain-primary{color:#07c160;border:1px solid #1aad19}.weui-btn_plain-primary:not(.weui-btn_plain-disabled):active{color:#06ae56;border-color:#179c16;background-color:rgba(0,0,0,.1)}.weui-btn_plain-primary:after{border-width:0}.weui-btn_plain-default{color:#353535;border:1px solid #353535}.weui-btn_plain-default:not(.weui-btn_plain-disabled):active{color:#323232;border-color:#323232;background-color:rgba(0,0,0,.1)}.weui-btn_plain-default:after{border-width:0}.weui-btn_plain-disabled{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}.weui-btn_cell{position:relative;display:block;margin-left:auto;margin-right:auto;box-sizing:border-box;font-weight:700;font-size:17px;text-align:center;text-decoration:none;color:#fff;line-height:1.41176471;padding:16px;-webkit-tap-highlight-color:rgba(0,0,0,0);overflow:hidden;background-color:#fff}.weui-btn_cell+.weui-btn_cell{margin-top:16px}.weui-btn_cell:active{background-color:#ececec}.weui-btn_cell__icon{display:inline-block;vertical-align:middle;width:24px;height:24px;margin:-.2em .34em 0 0}.weui-btn_cell-default{color:rgba(0,0,0,.9)}.weui-btn_cell-primary{color:#576b95}.weui-btn_cell-warn{color:#fa5151}button.weui-btn,input.weui-btn{border-width:0;outline:0;-webkit-appearance:none}button.weui-btn:focus,input.weui-btn:focus{outline:0}button.weui-btn_inline,button.weui-btn_mini,input.weui-btn_inline,input.weui-btn_mini{width:auto}button.weui-btn_plain-default,button.weui-btn_plain-primary,input.weui-btn_plain-default,input.weui-btn_plain-primary{border-width:1px;background-color:transparent}.weui-btn_mini{display:inline-block;width:auto;padding:0 .75em;line-height:2;font-size:16px}.weui-btn+.weui-btn{margin-top:16px}.weui-btn.weui-btn_inline+.weui-btn.weui-btn_inline{margin-top:auto;margin-left:16px}.weui-btn-area{margin:48px 16px 8px}.weui-btn-area_inline{display:-webkit-box;display:-webkit-flex;display:flex}.weui-btn-area_inline .weui-btn{margin-top:auto;margin-right:16px;width:100%;-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-btn-area_inline .weui-btn:last-child{margin-right:0}.weui-cells{margin-top:8px;background-color:#fff;line-height:1.41176471;font-size:17px;overflow:hidden;position:relative}.weui-cells:before{top:0;border-top:1px solid rgba(0,0,0,.1);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-cells:after,.weui-cells:before{content:" ";position:absolute;left:0;right:0;height:1px;color:rgba(0,0,0,.1);z-index:2}.weui-cells:after{bottom:0;border-bottom:1px solid rgba(0,0,0,.1);-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-cells__title{margin-top:16px;margin-bottom:3px;padding-left:16px;padding-right:16px;color:rgba(0,0,0,.5);font-size:14px;line-height:1.4}.weui-cells__title+.weui-cells{margin-top:0}.weui-cells__tips{margin-top:.3em;color:rgba(0,0,0,.5);padding-left:16px;padding-right:16px;font-size:14px}.weui-cell{padding:16px;position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-cell:before{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1px solid rgba(0,0,0,.1);color:rgba(0,0,0,.1);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5);left:16px;z-index:2}.weui-cell:first-child:before{display:none}.weui-cell_primary{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start}.weui-cell__bd{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-cell__ft{text-align:right;color:rgba(0,0,0,.5)}.weui-cell_swiped{display:block;padding:0}.weui-cell_swiped>.weui-cell__bd{position:relative;z-index:1;background-color:#fff}.weui-cell_swiped>.weui-cell__ft{position:absolute;right:0;top:0;bottom:0;display:-webkit-box;display:-webkit-flex;display:flex;color:#fff}.weui-swiped-btn{display:block;padding:16px 1em;line-height:1.41176471;color:inherit}.weui-swiped-btn_default{background-color:#ededed}.weui-swiped-btn_warn{background-color:#fa5151}.weui-cell_access{-webkit-tap-highlight-color:rgba(0,0,0,0);color:inherit}.weui-cell_access:active{background-color:#ececec}.weui-cell_access .weui-cell__ft{padding-right:16px;position:relative}.weui-cell_access .weui-cell__ft:after{content:" ";display:inline-block;height:8px;width:8px;border-width:2px 2px 0 0;border-color:#b2b2b2;border-style:solid;-webkit-transform:matrix(.71,.71,-.71,.71,0,0);transform:matrix(.71,.71,-.71,.71,0,0);position:relative;top:-2px;position:absolute;top:50%;margin-top:-5px;right:0}.weui-cell_link{color:#576b95;font-size:17px}.weui-cell_link:first-child:before{display:block}.weui-check__label{-webkit-tap-highlight-color:rgba(0,0,0,0)}.weui-check__label:active{background-color:#ececec}.weui-check{position:absolute;left:-9999em}.weui-cells_radio .weui-cell__ft{padding-left:16px}.weui-cells_radio .weui-check+.weui-icon-checked{min-width:16px}.weui-cells_radio .weui-check+.weui-icon-checked:before{margin:0}.weui-cells_radio .weui-check:checked+.weui-icon-checked:before{display:block;content:"\EA08";color:#07c160;font-size:16px}.weui-cells_checkbox .weui-check__label:before{left:55px}.weui-cells_checkbox .weui-cell__hd{padding-right:16px}.weui-cells_checkbox .weui-icon-checked:before{content:"\EA01";color:rgba(0,0,0,.3);font-size:23px;display:block;margin:0}.weui-cells_checkbox .weui-check:checked+.weui-icon-checked:before{content:"\EA06";color:#07c160}.weui-label{display:block;width:105px;word-wrap:break-word;word-break:break-all}.weui-input{width:100%;border:0;outline:0;-webkit-appearance:none;background-color:transparent;font-size:inherit;color:inherit;height:1.41176471em;line-height:1.41176471}.weui-input::-webkit-inner-spin-button,.weui-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.weui-textarea{display:block;border:0;resize:none;width:100%;color:inherit;font-size:1em;line-height:inherit;outline:0}.weui-textarea-counter{color:rgba(0,0,0,.3);text-align:right}.weui-cell_warn .weui-textarea-counter{color:#fa5151}.weui-toptips{display:none;position:fixed;-webkit-transform:translateZ(0);transform:translateZ(0);top:0;left:0;right:0;padding:5px;font-size:14px;text-align:center;color:#fff;z-index:5000;word-wrap:break-word;word-break:break-all}.weui-toptips_warn{background-color:#fa5151}.weui-cells_form .weui-cell__ft{font-size:0}.weui-cells_form .weui-icon-warn{display:none}.weui-cells_form input,.weui-cells_form label[for],.weui-cells_form textarea{-webkit-tap-highlight-color:rgba(0,0,0,0)}.weui-cell_warn{color:#fa5151}.weui-cell_warn .weui-icon-warn{display:inline-block}.weui-form-preview{position:relative;background-color:#fff}.weui-form-preview:before{top:0;border-top:1px solid rgba(0,0,0,.1);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-form-preview:after,.weui-form-preview:before{content:" ";position:absolute;left:0;right:0;height:1px;color:rgba(0,0,0,.1)}.weui-form-preview:after{bottom:0;border-bottom:1px solid rgba(0,0,0,.1);-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-form-preview__hd{position:relative;padding:16px;text-align:right;line-height:2.5em}.weui-form-preview__hd:after{content:" ";position:absolute;left:0;bottom:0;right:0;height:1px;border-bottom:1px solid rgba(0,0,0,.1);color:rgba(0,0,0,.1);-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5);left:16px}.weui-form-preview__hd .weui-form-preview__value{font-style:normal;font-size:1.6em}.weui-form-preview__bd{padding:16px;font-size:.9em;text-align:right;color:rgba(0,0,0,.5);line-height:2}.weui-form-preview__ft{position:relative;line-height:50px;display:-webkit-box;display:-webkit-flex;display:flex}.weui-form-preview__ft:before{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1px solid rgba(0,0,0,.1);color:rgba(0,0,0,.1);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-form-preview__item{overflow:hidden}.weui-form-preview__label{float:left;margin-right:1em;min-width:4em;color:rgba(0,0,0,.5);text-align:justify;text-align-last:justify}.weui-form-preview__value{display:block;overflow:hidden;word-break:normal;word-wrap:break-word}.weui-form-preview__btn{position:relative;display:block;-webkit-box-flex:1;-webkit-flex:1;flex:1;color:#576b95;text-align:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}button.weui-form-preview__btn{background-color:transparent;border:0;outline:0;line-height:inherit;font-size:inherit}.weui-form-preview__btn:active{background-color:#ececec}.weui-form-preview__btn:after{content:" ";position:absolute;left:0;top:0;width:1px;bottom:0;border-left:1px solid rgba(0,0,0,.1);color:rgba(0,0,0,.1);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.5);transform:scaleX(.5)}.weui-form-preview__btn:first-child:after{display:none}.weui-form-preview__btn_default{color:rgba(0,0,0,.9)}.weui-form-preview__btn_primary{color:#576b95}.weui-cell_select{padding:0}.weui-cell_select .weui-select{padding-right:30px}.weui-cell_select .weui-cell__bd:after{content:" ";display:inline-block;height:8px;width:8px;border-width:2px 2px 0 0;border-color:#b2b2b2;border-style:solid;-webkit-transform:matrix(.71,.71,-.71,.71,0,0);transform:matrix(.71,.71,-.71,.71,0,0);position:relative;top:-2px;position:absolute;top:50%;right:16px;margin-top:-5px}.weui-select{-webkit-appearance:none;border:0;outline:0;background-color:transparent;width:100%;font-size:inherit;height:56px;line-height:56px;position:relative;z-index:1;padding-left:16px}.weui-cell_select-before{padding-right:16px}.weui-cell_select-before .weui-select{width:105px;box-sizing:border-box}.weui-cell_select-before .weui-cell__hd{position:relative}.weui-cell_select-before .weui-cell__hd:after{content:" ";position:absolute;right:0;top:0;width:1px;bottom:0;border-right:1px solid rgba(0,0,0,.1);color:rgba(0,0,0,.1);-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(.5);transform:scaleX(.5)}.weui-cell_select-before .weui-cell__hd:before{content:" ";display:inline-block;height:8px;width:8px;border-width:2px 2px 0 0;border-color:#b2b2b2;border-style:solid;-webkit-transform:matrix(.71,.71,-.71,.71,0,0);transform:matrix(.71,.71,-.71,.71,0,0);position:relative;top:-2px;position:absolute;top:50%;right:16px;margin-top:-5px}.weui-cell_select-before .weui-cell__bd{padding-left:16px}.weui-cell_select-before .weui-cell__bd:after{display:none}.weui-cell_select-after{padding-left:16px}.weui-cell_select-after .weui-select{padding-left:0}.weui-cell_vcode{padding-top:0;padding-right:0;padding-bottom:0}.weui-vcode-btn,.weui-vcode-img{margin-left:5px;height:56px;vertical-align:middle}.weui-vcode-btn{display:inline-block;padding:0 .6em 0 .7em;line-height:56px;font-size:17px;color:#576b95;position:relative}.weui-vcode-btn:before{content:" ";position:absolute;left:0;top:0;width:1px;bottom:0;border-left:1px solid rgba(0,0,0,.1);color:rgba(0,0,0,.1);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.5);transform:scaleX(.5)}button.weui-vcode-btn{background-color:transparent;border:0;outline:0}.weui-vcode-btn:active{color:#767676}.weui-gallery{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background-color:#000;z-index:1000}.weui-gallery__img{top:constant(safe-area-inset-top);top:env(safe-area-inset-top);bottom:calc(60px + constant(safe-area-inset-bottom));bottom:calc(60px + env(safe-area-inset-bottom));background:50% no-repeat;background-size:contain}.weui-gallery__img,.weui-gallery__opr{position:absolute;right:constant(safe-area-inset-right);right:env(safe-area-inset-right);left:constant(safe-area-inset-left);left:env(safe-area-inset-left)}.weui-gallery__opr{bottom:constant(safe-area-inset-bottom);bottom:env(safe-area-inset-bottom);background-color:#0d0d0d;color:#fff;line-height:60px;text-align:center}.weui-gallery__del{display:block}.weui-cell_switch{padding-top:12px;padding-bottom:12px}.weui-switch{-webkit-appearance:none;appearance:none}.weui-switch,.weui-switch-cp__box{position:relative;width:52px;height:32px;border:1px solid rgba(0,0,0,.1);outline:0;border-radius:16px;box-sizing:border-box;background-color:rgba(0,0,0,.1);-webkit-transition:background-color .1s,border .1s;transition:background-color .1s,border .1s}.weui-switch-cp__box:before,.weui-switch:before{content:" ";position:absolute;top:0;left:0;width:50px;height:30px;border-radius:15px;background-color:#fdfdfd;-webkit-transition:-webkit-transform .35s cubic-bezier(.45,1,.4,1);transition:-webkit-transform .35s cubic-bezier(.45,1,.4,1);transition:transform .35s cubic-bezier(.45,1,.4,1);transition:transform .35s cubic-bezier(.45,1,.4,1),-webkit-transform .35s cubic-bezier(.45,1,.4,1)}.weui-switch-cp__box:after,.weui-switch:after{content:" ";position:absolute;top:0;left:0;width:30px;height:30px;border-radius:15px;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4);-webkit-transition:-webkit-transform .35s cubic-bezier(.4,.4,.25,1.35);transition:-webkit-transform .35s cubic-bezier(.4,.4,.25,1.35);transition:transform .35s cubic-bezier(.4,.4,.25,1.35);transition:transform .35s cubic-bezier(.4,.4,.25,1.35),-webkit-transform .35s cubic-bezier(.4,.4,.25,1.35)}.weui-switch-cp__input:checked~.weui-switch-cp__box,.weui-switch:checked{border-color:#07c160;background-color:#07c160}.weui-switch-cp__input:checked~.weui-switch-cp__box:before,.weui-switch:checked:before{-webkit-transform:scale(0);transform:scale(0)}.weui-switch-cp__input:checked~.weui-switch-cp__box:after,.weui-switch:checked:after{-webkit-transform:translateX(20px);transform:translateX(20px)}.weui-switch-cp__input{position:absolute;left:-9999px}.weui-switch-cp__box{display:block}.weui-uploader__hd{display:-webkit-box;display:-webkit-flex;display:flex;padding-bottom:16px;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-uploader__title{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-uploader__info{color:rgba(0,0,0,.3)}.weui-uploader__bd{margin-bottom:-8px;margin-right:-8px;overflow:hidden}.weui-uploader__files{list-style:none}.weui-uploader__file{float:left;margin-right:8px;margin-bottom:8px;width:96px;height:96px;background:no-repeat 50%;background-size:cover}.weui-uploader__file_status{position:relative}.weui-uploader__file_status:before{content:" ";position:absolute;top:0;right:0;bottom:0;left:0;background-color:rgba(0,0,0,.5)}.weui-uploader__file_status .weui-uploader__file-content{display:block}.weui-uploader__file-content{display:none;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);color:#fff}.weui-uploader__file-content .weui-icon-warn{display:inline-block}.weui-uploader__input-box{float:left;position:relative;margin-right:8px;margin-bottom:8px;width:96px;height:96px;box-sizing:border-box;background-color:#ededed}.weui-uploader__input-box:after,.weui-uploader__input-box:before{content:" ";position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);background-color:#a3a3a3}.weui-uploader__input-box:before{width:2px;height:32px}.weui-uploader__input-box:after{width:32px;height:2px}.weui-uploader__input-box:active{border-color:#8b8b8b}.weui-uploader__input-box:active:after,.weui-uploader__input-box:active:before{background-color:#8b8b8b}.weui-uploader__input{position:absolute;z-index:1;top:0;left:0;width:100%;height:100%;opacity:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}.weui-msg{padding-top:48px;padding:calc(48px + constant(safe-area-inset-top)) constant(safe-area-inset-right) constant(safe-area-inset-bottom) constant(safe-area-inset-left);padding:calc(48px + env(safe-area-inset-top)) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);text-align:center;line-height:1.4;min-height:100%;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;background-color:#fff}.weui-msg a:not(.weui-btn){color:#576b95;display:inline-block;vertical-align:baseline}.weui-msg__icon-area{margin-bottom:32px}.weui-msg__text-area{margin-bottom:32px;padding:0 32px;-webkit-box-flex:1;-webkit-flex:1;flex:1;line-height:1.6}.weui-msg__text-area:first-child{padding-top:96px}.weui-msg__title{font-weight:700;font-size:22px}.weui-msg__desc,.weui-msg__title{margin-bottom:16px;word-wrap:break-word;word-break:break-all}.weui-msg__desc{font-size:17px;color:rgba(0,0,0,.9)}.weui-msg__desc-primary{font-size:14px;color:rgba(0,0,0,.5);word-wrap:break-word;word-break:break-all;margin-bottom:16px}.weui-msg__opr-area{margin-bottom:16px}.weui-msg__opr-area .weui-btn-area{margin:0}.weui-msg__opr-area .weui-btn+.weui-btn{margin-bottom:16px}.weui-msg__opr-area:last-child{margin-bottom:96px}.weui-msg__opr-area+.weui-msg__extra-area{margin-top:48px}.weui-msg__tips-area{margin-bottom:16px;padding:0 40px}.weui-msg__opr-area+.weui-msg__tips-area{margin-bottom:48px}.weui-msg__tips-area:last-child{margin-bottom:64px}.weui-msg__extra-area,.weui-msg__tips{font-size:12px;color:rgba(0,0,0,.5)}.weui-msg__extra-area{margin-bottom:24px}.weui-msg__extra-area a{color:#576b95}.weui-article{padding:24px 16px;padding:24px calc(16px + constant(safe-area-inset-right)) calc(24px + constant(safe-area-inset-bottom)) calc(16px + constant(safe-area-inset-left));padding:24px calc(16px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left));font-size:17px;color:rgba(0,0,0,.9)}.weui-article section{margin-bottom:1.5em}.weui-article h1{font-size:22px;font-weight:700;margin-bottom:.9em;line-height:1.4}.weui-article h2{font-size:17px}.weui-article h2,.weui-article h3{font-weight:700;margin-bottom:.34em;line-height:1.4}.weui-article h3{font-size:15px}.weui-article *{max-width:100%;box-sizing:border-box;word-wrap:break-word}.weui-article p{margin:0 0 .8em}.weui-tabbar{display:-webkit-box;display:-webkit-flex;display:flex;position:relative;z-index:500;background-color:#f7f7f7}.weui-tabbar:before{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1px solid rgba(0,0,0,.1);color:rgba(0,0,0,.1);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-tabbar__item{display:block;-webkit-box-flex:1;-webkit-flex:1;flex:1;padding:8px 0;padding-bottom:calc(8px + constant(safe-area-inset-bottom));padding-bottom:calc(8px + env(safe-area-inset-bottom));font-size:0;color:rgba(0,0,0,.5);text-align:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}.weui-tabbar__item:first-child{padding-left:constant(safe-area-inset-left);padding-left:env(safe-area-inset-left)}.weui-tabbar__item:last-child{padding-right:constant(safe-area-inset-right);padding-right:env(safe-area-inset-right)}.weui-tabbar__item.weui-bar__item_on .weui-tabbar__icon,.weui-tabbar__item.weui-bar__item_on .weui-tabbar__icon>i,.weui-tabbar__item.weui-bar__item_on .weui-tabbar__label{color:#07c160}.weui-tabbar__icon{display:inline-block;width:28px;height:28px;margin-bottom:2px}.weui-tabbar__icon>i,i.weui-tabbar__icon{font-size:24px;color:rgba(0,0,0,.5)}.weui-tabbar__icon img{width:100%;height:100%}.weui-tabbar__label{color:rgba(0,0,0,.9);font-size:10px;line-height:1.4}.weui-navbar{display:-webkit-box;display:-webkit-flex;display:flex;position:relative;z-index:500;background-color:#fff;padding-top:constant(safe-area-inset-top);padding-top:env(safe-area-inset-top)}.weui-navbar:after{content:" ";position:absolute;left:0;bottom:0;right:0;height:1px;border-bottom:1px solid rgba(0,0,0,.1);color:rgba(0,0,0,.1);-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-navbar+.weui-tab__panel{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.weui-navbar__item{position:relative;display:block;-webkit-box-flex:1;-webkit-flex:1;flex:1;padding:16px 0;padding-top:calc(16px + constant(safe-area-inset-top));padding-top:calc(16px + env(safe-area-inset-top));text-align:center;font-size:17px;line-height:1.41176471;-webkit-tap-highlight-color:rgba(0,0,0,0)}.weui-navbar__item.weui-bar__item_on,.weui-navbar__item:active{background-color:#ececec}.weui-navbar__item:after{content:" ";position:absolute;right:0;top:0;width:1px;bottom:0;border-right:1px solid rgba(0,0,0,.1);color:rgba(0,0,0,.1);-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(.5);transform:scaleX(.5)}.weui-navbar__item:first-child{padding-left:constant(safe-area-inset-left);padding-left:env(safe-area-inset-left)}.weui-navbar__item:last-child{padding-right:constant(safe-area-inset-right);padding-right:env(safe-area-inset-right)}.weui-navbar__item:last-child:after{display:none}.weui-tab{display:-webkit-box;display:-webkit-flex;display:flex;height:100%;box-sizing:border-box;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column}.weui-tab__panel{box-sizing:border-box;-webkit-box-flex:1;-webkit-flex:1;flex:1;overflow:auto;-webkit-overflow-scrolling:touch}.weui-tab__content{display:none}.weui-progress{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-progress__bar{background-color:#ededed;height:3px;-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-progress__inner-bar{width:0;height:100%;background-color:#07c160}.weui-progress__opr{display:block;margin-left:15px;font-size:0}.weui-panel{background-color:#fff;margin-top:10px;position:relative;overflow:hidden}.weui-panel:first-child{margin-top:0}.weui-panel:before{top:0;border-top:1px solid rgba(0,0,0,.1);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-panel:after,.weui-panel:before{content:" ";position:absolute;left:0;right:0;height:1px;color:rgba(0,0,0,.1)}.weui-panel:after{bottom:0;border-bottom:1px solid rgba(0,0,0,.1);-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-panel__hd{padding:16px 16px 13px;color:rgba(0,0,0,.9);font-size:15px;font-weight:700;position:relative}.weui-panel__hd:after{content:" ";position:absolute;left:0;bottom:0;right:0;height:1px;border-bottom:1px solid rgba(0,0,0,.1);color:rgba(0,0,0,.1);-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5);left:15px}.weui-media-box{padding:16px;position:relative}.weui-media-box:before{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1px solid rgba(0,0,0,.1);color:rgba(0,0,0,.1);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5);left:16px}.weui-media-box:first-child:before{display:none}a.weui-media-box{color:#000;-webkit-tap-highlight-color:rgba(0,0,0,0)}a.weui-media-box:active{background-color:#ececec}.weui-media-box__title{font-weight:400;font-size:17px;color:rgba(0,0,0,.9);width:auto;white-space:nowrap;word-wrap:normal;word-wrap:break-word;word-break:break-all}.weui-media-box__desc,.weui-media-box__title{line-height:1.4;overflow:hidden;text-overflow:ellipsis}.weui-media-box__desc{color:rgba(0,0,0,.3);font-size:14px;padding-top:4px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.weui-media-box__info{margin-top:16px;padding-bottom:4px;font-size:13px;color:#cecece;line-height:1em;list-style:none;overflow:hidden}.weui-media-box__info__meta{float:left;padding-right:1em}.weui-media-box__info__meta_extra{padding-left:1em;border-left:1px solid #cecece}.weui-media-box_appmsg{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-media-box_appmsg .weui-media-box__hd{margin-right:16px;width:60px;height:60px;line-height:60px;text-align:center}.weui-media-box_appmsg .weui-media-box__thumb{width:100%;max-height:100%;vertical-align:top}.weui-media-box_appmsg .weui-media-box__bd{-webkit-box-flex:1;-webkit-flex:1;flex:1;min-width:0}.weui-media-box_small-appmsg{padding:0}.weui-media-box_small-appmsg .weui-cells{margin-top:0}.weui-media-box_small-appmsg .weui-cells:before{display:none}.weui-grids{position:relative;overflow:hidden}.weui-grids:before{right:0;height:1px;border-top:1px solid #d9d9d9;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-grids:after,.weui-grids:before{content:" ";position:absolute;left:0;top:0;color:#d9d9d9}.weui-grids:after{width:1px;bottom:0;border-left:1px solid #d9d9d9;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.5);transform:scaleX(.5)}.weui-grid{position:relative;float:left;padding:20px 10px;width:33.33333333%;box-sizing:border-box}.weui-grid:before{top:0;width:1px;border-right:1px solid #d9d9d9;-webkit-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:scaleX(.5);transform:scaleX(.5)}.weui-grid:after,.weui-grid:before{content:" ";position:absolute;right:0;bottom:0;color:#d9d9d9}.weui-grid:after{left:0;height:1px;border-bottom:1px solid #d9d9d9;-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-grid:active{background-color:#ececec}.weui-grid__icon{width:28px;height:28px;margin:0 auto}.weui-grid__icon img{display:block;width:100%;height:100%}.weui-grid__icon+.weui-grid__label{margin-top:4px}.weui-grid__label{display:block;color:rgba(0,0,0,.9);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.weui-footer,.weui-grid__label{text-align:center;font-size:14px}.weui-footer{color:rgba(0,0,0,.3);line-height:1.4}.weui-footer a{color:#576b95}.weui-footer_fixed-bottom{position:fixed;bottom:16px;left:0;right:0}.weui-footer__links{font-size:0}.weui-footer__link{display:inline-block;vertical-align:top;margin:0 8px;position:relative;font-size:14px}.weui-footer__link:before{content:" ";position:absolute;left:0;top:0;width:1px;bottom:0;border-left:1px solid #c7c7c7;color:#c7c7c7;-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.5);transform:scaleX(.5);left:-8px;top:.36em;bottom:.36em}.weui-footer__link:first-child:before{display:none}.weui-footer__text{padding:0 16px;font-size:12px}.weui-flex{display:-webkit-box;display:-webkit-flex;display:flex}.weui-flex__item{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-dialog{position:fixed;z-index:5000;top:50%;left:16px;right:16px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background-color:#fff;text-align:center;border-radius:3px;overflow:hidden}.weui-dialog__hd{padding:32px 24px 16px}.weui-dialog__title{font-weight:700;font-size:17px;line-height:1.4}.weui-dialog__bd{padding:0 24px 32px;min-height:40px;font-size:17px;line-height:1.4;word-wrap:break-word;word-break:break-all;color:rgba(0,0,0,.5)}.weui-dialog__bd:first-child{padding:32px 24px;color:rgba(0,0,0,.9)}.weui-dialog__ft{position:relative;line-height:64px;font-size:17px;display:-webkit-box;display:-webkit-flex;display:flex}.weui-dialog__ft:after{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1px solid rgba(0,0,0,.1);color:rgba(0,0,0,.1);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-dialog__btn{display:block;-webkit-box-flex:1;-webkit-flex:1;flex:1;color:#576b95;font-weight:700;text-decoration:none;-webkit-tap-highlight-color:rgba(0,0,0,0);position:relative}.weui-dialog__btn:active{background-color:#ececec}.weui-dialog__btn:after{content:" ";position:absolute;left:0;top:0;width:1px;bottom:0;border-left:1px solid rgba(0,0,0,.1);color:rgba(0,0,0,.1);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleX(.5);transform:scaleX(.5)}.weui-dialog__btn:first-child:after{display:none}.weui-dialog__btn_default{color:rgba(0,0,0,.9)}.weui-skin_android .weui-dialog{text-align:left;box-shadow:0 6px 30px 0 rgba(0,0,0,.1)}.weui-skin_android .weui-dialog__title{font-size:22px;line-height:1.4}.weui-skin_android .weui-dialog__hd{text-align:left}.weui-skin_android .weui-dialog__bd{color:rgba(0,0,0,.5);font-size:17px;text-align:left}.weui-skin_android .weui-dialog__bd:first-child{color:rgba(0,0,0,.9)}.weui-skin_android .weui-dialog__ft{display:block;text-align:right;line-height:40px;padding:0 24px 16px}.weui-skin_android .weui-dialog__ft:after{display:none}.weui-skin_android .weui-dialog__btn{display:inline-block;vertical-align:top;padding:0 .8em}.weui-skin_android .weui-dialog__btn:after{display:none}.weui-skin_android .weui-dialog__btn:last-child{margin-right:-.8em}.weui-skin_android .weui-dialog__btn_default{color:rgba(0,0,0,.9)}@media screen and (min-width:1024px){.weui-dialog{width:35%}}.weui-half-screen-dialog{position:fixed;left:0;right:0;bottom:0;max-height:75%;z-index:5000;line-height:1.4;background-color:#fff;border-top-left-radius:12px;border-top-right-radius:12px;overflow:hidden;padding:0 calc(24px + constant(safe-area-inset-right)) constant(safe-area-inset-bottom) calc(24px + constant(safe-area-inset-left));padding:0 calc(24px + env(safe-area-inset-right)) env(safe-area-inset-bottom) calc(24px + env(safe-area-inset-left))}.weui-half-screen-dialog__hd{font-size:8px;height:8em;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-half-screen-dialog__hd .weui-icon-btn{position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.weui-half-screen-dialog__hd__side{position:relative}.weui-half-screen-dialog__hd__main{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-half-screen-dialog__hd__side+.weui-half-screen-dialog__hd__main{text-align:center;padding:0 40px}.weui-half-screen-dialog__hd__main+.weui-half-screen-dialog__hd__side .weui-icon-btn{right:0}.weui-half-screen-dialog__title{display:block;color:rgba(0,0,0,.9);font-weight:700;font-size:15px}.weui-half-screen-dialog__subtitle{display:block;color:rgba(0,0,0,.5);font-size:10px}.weui-half-screen-dialog__bd{word-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;overflow-y:auto}.weui-half-screen-dialog__desc{padding-top:4px;font-size:17px;color:rgba(0,0,0,.9);line-height:1.4}.weui-half-screen-dialog__tips{padding-top:16px;font-size:14px;color:rgba(0,0,0,.3);line-height:1.4}.weui-half-screen-dialog__ft{padding:40px 24px 32px;text-align:center}.weui-half-screen-dialog__ft .weui-btn{display:inline-block;vertical-align:top;margin:0 8px;width:120px}.weui-icon-btn{background-color:transparent;background-repeat:no-repeat;background-position:50% 50%;background-size:100%;border:0;outline:0;font-size:0}.weui-icon-btn_goback{width:12px;height:24px;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='24' viewBox='0 0 12 24'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath fill='%23FFF' d='M-16-8c0-6.627 5.367-12 12-12h390c6.628 0 12 5.374 12 12v52H-16V-8z'/%3E%3Cpath fill='%23000' fill-opacity='.9' d='M10 19.438L8.955 20.5l-7.666-7.79a1.02 1.02 0 0 1 0-1.42L8.955 3.5 10 4.563 2.682 12 10 19.438z'/%3E%3C/g%3E%3C/svg%3E")}.weui-icon-btn_close{width:24px;height:24px;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='24' height='24' viewBox='0 0 24 24'%3E%3Cdefs%3E%3Cpath id='a' d='M8 6.943L1.807.75.75 1.807 6.943 8 .75 14.193l1.057 1.057L8 9.057l6.193 6.193 1.057-1.057L9.057 8l6.193-6.193L14.193.75z'/%3E%3C/defs%3E%3Cg fill='none' fill-rule='evenodd' transform='translate(-16 -20)'%3E%3Cpath fill='%23FFF' d='M0 12C0 5.373 5.367 0 12 0h390c6.628 0 12 5.374 12 12v52H0V12z'/%3E%3Cuse fill='%23000' fill-opacity='.9' transform='translate(20 24)' xlink:href='%23a'/%3E%3C/g%3E%3C/svg%3E")}.weui-icon-btn_more{width:24px;height:24px;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath fill='%23FFF' d='M-374-8c0-6.627 5.367-12 12-12H28c6.628 0 12 5.374 12 12v52h-414V-8z'/%3E%3Cpath fill='%23000' fill-opacity='.9' d='M6.75 12a1.75 1.75 0 1 1-3.5 0 1.75 1.75 0 0 1 3.5 0zM12 10.25a1.75 1.75 0 1 1 0 3.5 1.75 1.75 0 0 1 0-3.5zm7 0a1.75 1.75 0 1 1 0 3.5 1.75 1.75 0 0 1 0-3.5z'/%3E%3C/g%3E%3C/svg%3E")}.weui-toast{position:fixed;z-index:5000;width:7.6em;min-height:7.6em;top:180px;left:50%;margin-left:-3.8em;background:hsla(0,0%,7%,.7);text-align:center;border-radius:5px;color:#fff}.weui-icon_toast{margin:24px 0 0;display:block}.weui-icon_toast.weui-icon-success-no-circle:before{color:#fff;font-size:55px}.weui-icon_toast.weui-loading{margin:32px 0 0;width:38px;height:38px;vertical-align:baseline}.weui-toast__content{margin:0 0 16px;font-size:14px}.weui-mask{background:rgba(0,0,0,.6)}.weui-mask,.weui-mask_transparent{position:fixed;z-index:1000;top:0;right:0;left:0;bottom:0}.weui-actionsheet{position:fixed;left:0;bottom:0;-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:5000;width:100%;background-color:#ededed;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.weui-actionsheet__title{position:relative;height:56px;padding:0 24px;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;flex-direction:column;text-align:center;font-size:14px;color:rgba(0,0,0,.5);line-height:1.4;background:#fff}.weui-actionsheet__title:before{content:" ";position:absolute;left:0;bottom:0;right:0;height:1px;border-bottom:1px solid rgba(0,0,0,.1);color:rgba(0,0,0,.1);-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-actionsheet__title .weui-actionsheet__title-text{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.weui-actionsheet__menu{background-color:#fff}.weui-actionsheet__action{margin-top:6px;background-color:#fff;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.weui-actionsheet__cell{position:relative;padding:16px;text-align:center;font-size:17px;line-height:1.41176471}.weui-actionsheet__cell:before{content:" ";position:absolute;left:0;top:0;right:0;height:1px;border-top:1px solid rgba(0,0,0,.1);color:rgba(0,0,0,.1);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-actionsheet__cell:active{background-color:#ececec}.weui-actionsheet__cell:first-child:before{display:none}.weui-skin_android .weui-actionsheet{position:fixed;left:50%;top:50%;bottom:auto;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:274px;box-sizing:border-box;-webkit-backface-visibility:hidden;backface-visibility:hidden;background:transparent;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.weui-skin_android .weui-actionsheet__action{display:none}.weui-skin_android .weui-actionsheet__menu{border-radius:2px;box-shadow:0 6px 30px 0 rgba(0,0,0,.1)}.weui-skin_android .weui-actionsheet__cell{padding:16px;font-size:17px;line-height:1.41176471;color:rgba(0,0,0,.9);text-align:left}.weui-skin_android .weui-actionsheet__cell:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.weui-skin_android .weui-actionsheet__cell:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.weui-actionsheet_toggle{-webkit-transform:translate(0);transform:translate(0)}.weui-loadmore{width:65%;margin:1.5em auto;line-height:1.6em;font-size:14px;text-align:center}.weui-loadmore__tips{display:inline-block;vertical-align:middle;color:rgba(0,0,0,.9)}.weui-loadmore_line{border-top:1px solid rgba(0,0,0,.1);margin-top:2.4em}.weui-loadmore_line .weui-loadmore__tips{position:relative;top:-.9em;padding:0 .55em;background-color:#fff;color:rgba(0,0,0,.5)}.weui-loadmore_dot .weui-loadmore__tips{padding:0 .16em}.weui-loadmore_dot .weui-loadmore__tips:before{content:" ";width:4px;height:4px;border-radius:50%;background-color:rgba(0,0,0,.1);display:inline-block;position:relative;vertical-align:0;top:-.16em}.weui-badge{display:inline-block;padding:.15em .4em;min-width:8px;border-radius:18px;background-color:#fa5151;color:#fff;line-height:1.2;text-align:center;font-size:12px;vertical-align:middle}.weui-badge_dot{padding:.4em;min-width:0}.weui-search-bar{position:relative;padding:8px;display:-webkit-box;display:-webkit-flex;display:flex;box-sizing:border-box;background-color:#ededed;-webkit-text-size-adjust:100%;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-search-bar.weui-search-bar_focusing .weui-search-bar__cancel-btn{display:block}.weui-search-bar.weui-search-bar_focusing .weui-search-bar__label{display:none}.weui-search-bar__form{position:relative;-webkit-box-flex:1;-webkit-flex:auto;flex:auto;background-color:#fff;border-radius:4px}.weui-search-bar__box{position:relative;padding-left:32px;padding-right:32px;height:100%;width:100%;box-sizing:border-box;z-index:1}.weui-search-bar__box .weui-search-bar__input{padding:8px 0;width:100%;height:1.14285714em;border:0;font-size:14px;line-height:1.14285714em;box-sizing:content-box;background:transparent;caret-color:#07c160}.weui-search-bar__box .weui-search-bar__input:focus{outline:none}.weui-search-bar__box .weui-icon-search{position:absolute;top:50%;left:8px;margin-top:-14px;line-height:28px}.weui-search-bar__box .weui-icon-clear{position:absolute;top:50%;right:0;margin-top:-14px;padding:0 8px;line-height:28px}.weui-search-bar__label{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;font-size:0;border-radius:4px;line-height:32px;text-align:center;color:rgba(0,0,0,.5);background:#fff}.weui-search-bar__label span{display:inline-block;font-size:14px;vertical-align:middle}.weui-search-bar__label .weui-icon-search{margin-right:4px}.weui-search-bar__cancel-btn{display:none;margin-left:8px;line-height:28px;color:#576b95;white-space:nowrap}.weui-search-bar__input:not(:valid)~.weui-icon-clear{display:none}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{display:none}.weui-picker{position:fixed;width:100%;box-sizing:border-box;left:0;bottom:0;z-index:5000;background-color:#fff;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.weui-picker__hd{display:-webkit-box;display:-webkit-flex;display:flex;padding:16px;padding:16px calc(16px + constant(safe-area-inset-right)) 16px calc(16px + constant(safe-area-inset-left));padding:16px calc(16px + env(safe-area-inset-right)) 16px calc(16px + env(safe-area-inset-left));position:relative;text-align:center;font-size:17px;line-height:1.4}.weui-picker__hd:after{content:" ";position:absolute;left:0;bottom:0;right:0;height:1px;border-bottom:1px solid rgba(0,0,0,.1);color:rgba(0,0,0,.1);-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-picker__bd{display:-webkit-box;display:-webkit-flex;display:flex;position:relative;background-color:#fff;height:240px;overflow:hidden}.weui-picker__group{-webkit-box-flex:1;-webkit-flex:1;flex:1;position:relative;height:100%}.weui-picker__group:first-child .weui-picker__item{padding-left:constant(safe-area-inset-left);padding-left:env(safe-area-inset-left)}.weui-picker__group:last-child .weui-picker__item{padding-right:constant(safe-area-inset-right);padding-right:env(safe-area-inset-right)}.weui-picker__mask{top:0;height:100%;margin:0 auto;background:-webkit-linear-gradient(top,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6)),-webkit-linear-gradient(bottom,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6));background:linear-gradient(180deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6)),linear-gradient(0deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6));background-position:top,bottom;background-size:100% 92px;background-repeat:no-repeat;-webkit-transform:translateZ(0);transform:translateZ(0)}.weui-picker__indicator,.weui-picker__mask{position:absolute;left:0;width:100%;z-index:3}.weui-picker__indicator{height:56px;top:92px}.weui-picker__indicator:before{top:0;border-top:1px solid rgba(0,0,0,.1);-webkit-transform-origin:0 0;transform-origin:0 0;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-picker__indicator:after,.weui-picker__indicator:before{content:" ";position:absolute;left:0;right:0;height:1px;color:rgba(0,0,0,.1)}.weui-picker__indicator:after{bottom:0;border-bottom:1px solid rgba(0,0,0,.1);-webkit-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.weui-picker__content{position:absolute;top:0;left:0;width:100%}.weui-picker__item{height:48px;line-height:48px;text-align:center;color:rgba(0,0,0,.9);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.weui-picker__item_disabled{color:rgba(0,0,0,.5)}@-webkit-keyframes a{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes a{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.weui-animate-slide-up{-webkit-animation:a ease .3s forwards;animation:a ease .3s forwards}@-webkit-keyframes b{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes b{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.weui-animate-slide-down{-webkit-animation:b ease .3s forwards;animation:b ease .3s forwards}@-webkit-keyframes c{0%{opacity:0}to{opacity:1}}@keyframes c{0%{opacity:0}to{opacity:1}}.weui-animate-fade-in{-webkit-animation:c ease .3s forwards;animation:c ease .3s forwards}@-webkit-keyframes d{0%{opacity:1}to{opacity:0}}@keyframes d{0%{opacity:1}to{opacity:0}}.weui-animate-fade-out{-webkit-animation:d ease .3s forwards;animation:d ease .3s forwards}.weui-agree{display:block;padding:.5em 15px;font-size:13px}.weui-agree a{color:#576b95}.weui-agree__text{color:rgba(0,0,0,.5)}.weui-agree__checkbox{-webkit-appearance:none;appearance:none;outline:0;font-size:0;border:1px solid rgba(0,0,0,.3);background-color:#fff;border-radius:3px;width:13px;height:13px;position:relative;vertical-align:0;top:2px}.weui-agree__checkbox:checked:before{font-family:weui;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-align:center;speak:none;display:inline-block;vertical-align:middle;text-decoration:inherit;content:"\EA08";color:#09bb07;font-size:13px;position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-48%) scale(.73);transform:translate(-50%,-48%) scale(.73)}.weui-agree__checkbox:disabled{background-color:#e1e1e1}.weui-agree__checkbox:disabled:before{color:#adadad}.weui-loading{width:20px;height:20px;display:inline-block;vertical-align:middle;-webkit-animation:e 1s steps(12) infinite;animation:e 1s steps(12) infinite;background:transparent url("data:image/svg+xml;charset=utf8, %3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 100 100'%3E%3Cpath fill='none' d='M0 0h100v100H0z'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23E9E9E9' rx='5' ry='5' transform='translate(0 -30)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23989697' rx='5' ry='5' transform='rotate(30 105.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%239B999A' rx='5' ry='5' transform='rotate(60 75.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23A3A1A2' rx='5' ry='5' transform='rotate(90 65 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23ABA9AA' rx='5' ry='5' transform='rotate(120 58.66 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23B2B2B2' rx='5' ry='5' transform='rotate(150 54.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23BAB8B9' rx='5' ry='5' transform='rotate(180 50 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23C2C0C1' rx='5' ry='5' transform='rotate(-150 45.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23CBCBCB' rx='5' ry='5' transform='rotate(-120 41.34 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23D2D2D2' rx='5' ry='5' transform='rotate(-90 35 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23DADADA' rx='5' ry='5' transform='rotate(-60 24.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='%23E2E2E2' rx='5' ry='5' transform='rotate(-30 -5.98 65)'/%3E%3C/svg%3E") no-repeat;background-size:100%}.weui-btn_loading.weui-btn_primary .weui-loading,.weui-loading.weui-loading_transparent{background-image:url("data:image/svg+xml;charset=utf8, %3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 100 100'%3E%3Cpath fill='none' d='M0 0h100v100H0z'/%3E%3Crect xmlns='http://www.w3.org/2000/svg' width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.56)' rx='5' ry='5' transform='translate(0 -30)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.5)' rx='5' ry='5' transform='rotate(30 105.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.43)' rx='5' ry='5' transform='rotate(60 75.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.38)' rx='5' ry='5' transform='rotate(90 65 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.32)' rx='5' ry='5' transform='rotate(120 58.66 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.28)' rx='5' ry='5' transform='rotate(150 54.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.25)' rx='5' ry='5' transform='rotate(180 50 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.2)' rx='5' ry='5' transform='rotate(-150 45.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.17)' rx='5' ry='5' transform='rotate(-120 41.34 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.14)' rx='5' ry='5' transform='rotate(-90 35 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.1)' rx='5' ry='5' transform='rotate(-60 24.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.03)' rx='5' ry='5' transform='rotate(-30 -5.98 65)'/%3E%3C/svg%3E")}@-webkit-keyframes e{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes e{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.weui-slider{padding:15px 18px;-webkit-user-select:none;user-select:none}.weui-slider__inner{position:relative;height:2px;background-color:rgba(0,0,0,.1)}.weui-slider__track{height:2px;background-color:#07c160;width:0}.weui-slider__handler{position:absolute;left:0;top:50%;width:28px;height:28px;margin-left:-14px;margin-top:-14px;border-radius:50%;background-color:#fff;box-shadow:0 0 4px rgba(0,0,0,.2)}.weui-slider-box{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-slider-box .weui-slider{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-slider-box__value{margin-left:.5em;min-width:24px;color:rgba(0,0,0,.5);text-align:center;font-size:14px}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
const baseUrl = 'https://szcf.superbest.wang/API' //稳定版本环境
let UrlReg = /^http:\/\/.*/i
let UrlReg2 = /^https:\/\/.*/i
function uploadFile(params) {
var _this = this,
url = params.url,
filePath = params.filePath,
name = params.name ? params.name : 'file',
data = params.data;
console.log('uploadFile', params)
//fileType String 见平台差异说明 文件类型,image/video/audio
uni.uploadFile({
url: url, //仅为示例,非真实的接口地址
filePath: filePath,
name: name,
formData: data,
success: (uploadFileRes) => {
if (params.success) {
console.log("uploadFile成功", uploadFileRes)
params.success(uploadFileRes)
}
}
});
}
function downloadFile(params) {
uni.downloadFile({
url: 'https://www.example.com/file/test', //仅为示例,并非真实的资源
success: (res) => {
if (res.statusCode === 200) {
console.log('下载成功');
}
}
});
}
/**
* 方法说明
* @url 请求地址
* @method 请求方式
* @dataType 请求类型
* @data 参数
* @header {参数类型} 额外头部信息
* @return {返回值类型} 返回值说明
*
*/
function request(params, data) {
return new Promise((resolve, reject) => {
uni.request({
url: (UrlReg.test(params.url) || UrlReg2.test(params.url)) ? params.url : baseUrl + params.url,
method: params.method,
dataType: params.dataType,
data,
header: Object.assign({
"Content-Type": "application/json;charset=utf-8",
}, params.header),
success: function(res) {
resolve(res)
},
fail: function(fail) {
reject(fail)
}
});
})
}
/**
* 方法说明
* @url 请求地址
* @parms 参数
* @header {参数类型} 额外头部信息
* @return {返回值类型} 返回值说明
*
*/
function postRequest(params, data = {}) {
return new Promise((resolve, reject) => {
uni.showLoading({
title: params.Ltitle ? params.Ltitle : "加载中..."
});
try {
//登录错误提示
let duration;
if(params.url == '/user/login/pwd'){
duration = 20000
}else{
duration = 3000
}
//token
let token = uni.getStorageSync("token")
//用户id
let userId = uni.getStorageSync("userId")
data.userId = data.userId || userId;
params.header = {
"token": token || ""
};
params.method = "POST";
params.dataType = "JSON"
if (!params.url) {
uni.showToast({
icon: "none",
title: "url不能为空",
duration
})
uni.hideLoading();
reject("url不能为空")
}
request(params, data).then(reslt => {
try {
reslt.data = JSON.parse(reslt.data)
} catch (e) {
reslt.data = reslt.data
//TODO handle the exception
}
if (reslt.data.code != 200) {
//token失效或者错误 ----401
//账号已在其他地方登录! -----1006
if (reslt.data.code == 401 || reslt.data.code == 1006) {
uni.showToast({
icon: "none",
title: reslt.data.message,
duration
})
uni.hideLoading();
//401跳转登录
uni.redirectTo({
// url: "/pages/notecheck/notecheck?phone=13428967050",
// url: "/pages/notecheck/notecheck",
url: "/pages/login/login"
})
reject(reslt.data.message)
}
uni.showToast({
icon: "none",
title: reslt.data.message,
duration
})
uni.hideLoading();
reject(reslt.data.message)
}
console.log(reslt);
uni.hideLoading();
resolve(reslt.data)
}).catch(e => {
reject(e.message)
})
} catch (e) {
console.log(e);
uni.hideLoading();
reject(e.message)
//TODO handle the exception
}
})
}
/**
* 方法说明
* @url 请求地址
* @parms 参数
* @header {参数类型} 额外头部信息
* @return {返回值类型} 返回值说明
*
*/
function getRequest(params, data) {
return new Promise((resolve, reject) => {
uni.showLoading({
title: params.Ltitle ? params.Ltitle : "加载中..."
});
try {
//token
let token = uni.getStorageSync("token")
//用户id
let userId = uni.getStorageSync("userId")
data.userId = data.userId || userId;
params.header = {
"token": token || ""
};
params.method = "GET";
params.dataType = "JSON"
if (!params.url) {
uni.showToast({
icon: "none",
title: "url不能为空",
duration:3000
})
uni.hideLoading();
reject("url不能为空")
}
request(params, data).then(reslt => {
try {
reslt.data = JSON.parse(reslt.data)
} catch (e) {
reslt.data = reslt.data
//TODO handle the exception
}
if (reslt.data.code != 200) {
//token失效或者错误
if (reslt.data.code == 401) {
uni.showToast({
icon: "none",
title: reslt.data.message,
duration:3000
})
uni.hideLoading();
//401跳转登录
uni.redirectTo({
// url: "/pages/notecheck/notecheck?phone=13428967050",
// url: "/pages/notecheck/notecheck",
url: "/pages/login/login"
})
reject(reslt.data.message)
}
uni.showToast({
icon: "none",
title: reslt.data.message,
duration:3000
})
uni.hideLoading();
reject(reslt.data.message)
}
console.log(reslt);
uni.hideLoading();
resolve(reslt.data)
}).catch(e => {
reject(e.message)
})
} catch (e) {
console.log(e);
uni.hideLoading();
reject(e.message)
//TODO handle the exception
}
})
}
/**
* 方法说明
* @url 请求地址
* @parms 参数
* @header {参数类型} 额外头部信息
* @return {返回值类型} 返回值说明
*
*/
async function Login(params, data) {
try {
await uni.showLoading({
title: params.Ltitle ? params.Ltitle : "加载中..."
});
params.method = "POST";
params.dataType = "JSON"
if (!params.url) {
await uni.showToast({
icon: "none",
title: "url不能为空",
duration:3000
})
await uni.hideLoading();
throw Error("url不能为空")
}
//获取验证码
let [err, reslt] = await request(params, data);
try {
reslt.data = JSON.parse(reslt.data)
} catch (e) {
reslt.data = reslt.data
//TODO handle the exception
}
if (err) {
await uni.showToast({
icon: "none",
title: JSON.stringify(err),
duration:3000
})
await uni.hideLoading();
throw Error(JSON.stringify(err))
}
if (reslt.data.code != 200) {
await uni.showToast({
icon: "none",
title: reslt.data.message,
duration:3000
})
await uni.hideLoading();
throw Error(reslt.data.message)
}
//获取token 用户信息
let [LoginErr, LoginInfo] = await request({
method: "POST",
url: '/user/login/to_login'
}, {
phone: reslt.data.data.phone,
verifyCode: reslt.data.data.verifyCode
});
try {
reslt.data = JSON.parse(reslt.data)
} catch (e) {
reslt.data = reslt.data
//TODO handle the exception
}
if (LoginErr) {
await uni.showToast({
icon: "none",
title: JSON.stringify(LoginErr),
duration:3000
})
await uni.hideLoading();
throw Error(JSON.stringify(LoginErr))
}
if (LoginInfo.data.code != 200) {
await uni.showToast({
icon: "none",
title: LoginInfo.data.message,
duration:3000
})
await uni.hideLoading();
throw Error(LoginInfo.data.message)
}
//缓存用户信息
uni.setStorageSync("token", LoginInfo.data.data.token)
uni.setStorageSync("userId", LoginInfo.data.data.userId)
await uni.hideLoading();
return true
} catch (e) {
console.log(e);
await uni.hideLoading();
throw Error(e)
//TODO handle the exception
}
}
module.exports = {
post: postRequest,
get: getRequest,
upload: uploadFile,
download: downloadFile,
Login,
//接口地址
baseUrl
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>本地网页</title>
<style type="text/css">
.btn {
display: block;
margin: 20px auto;
padding: 5px;
background-color: #007aff;
border: 0;
color: #ffffff;
height: 40px;
width: 200px;
}
.btn-red {
background-color: #dd524d;
}
.btn-yellow {
background-color: #f0ad4e;
}
.desc {
padding: 10px;
color: #999999;
}
</style>
</head>
<body>
<p class="desc">web-view 组件加载本地 html 示例,仅在 App 环境下生效。点击下列按钮,跳转至其它页面。</p>
<div class="btn-list">
<button class="btn" type="button" data-action="navigateTo">navigateTo</button>
<button class="btn" type="button" data-action="redirectTo">redirectTo</button>
<button class="btn" type="button" data-action="navigateBack">navigateBack</button>
<button class="btn" type="button" data-action="reLaunch">reLaunch</button>
<button class="btn" type="button" data-action="switchTab">switchTab</button>
</div>
<p class="desc">网页向应用发送消息。注意:小程序端应用会在此页面后退时接收到消息。</p>
<div class="btn-list">
<button class="btn btn-red" type="button" id="postMessage">postMessage</button>
</div>
<!-- uni 的 SDK -->
<script type="text/javascript" src="https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js"></script>
<script type="text/javascript">
document.addEventListener('UniAppJSBridgeReady', function() {
document.querySelector('.btn-list').addEventListener('click', function(evt) {
var target = evt.target;
if (target.tagName === 'BUTTON') {
var action = target.getAttribute('data-action');
switch (action) {
case 'switchTab':
uni.switchTab({
url: '/pages/tabBar/API/API'
});
break;
case 'reLaunch':
uni.reLaunch({
url: '/pages/tabBar/API/API'
});
break;
case 'navigateBack':
uni.navigateBack({
delta: 1
});
break;
default:
uni[action]({
url: '/pages/component/button/button'
});
break;
}
}
});
document.querySelector("#postMessage").addEventListener('click', function() {
uni.postMessage({
data: {
action: 'message'
}
});
})
});
</script>
</body>
</html>
<!--
THIS EXAMPLE WAS DOWNLOADED FROM https://echarts.apache.org/examples/zh/editor.html?c=pie-doughnut
-->
<!DOCTYPE html>
<html style="height: 100%">
<head>
<meta charset="utf-8">
<meta name=viewport
content="width=device-width,user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1">
</head>
<body style="height: 100%; margin: 0">
<div id="container" style="height: 100%"></div>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5/dist/echarts.min.js"></script>
<!-- Uncomment this line if you want to dataTool extension
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5/dist/extension/dataTool.min.js"></script>
-->
<!-- Uncomment this line if you want to use gl extension
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-gl@2/dist/echarts-gl.min.js"></script>
-->
<!-- Uncomment this line if you want to echarts-stat extension
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-stat@latest/dist/ecStat.min.js"></script>
-->
<!-- Uncomment this line if you want to use map
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5/map/js/china.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5/map/js/world.js"></script>
-->
<!-- Uncomment these two lines if you want to use bmap extension
<script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=<Your Key Here>"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@5/dist/extension/bmap.min.js"></script>
-->
<script type="text/javascript">
var dom = document.getElementById("container");
var myChart = echarts.init(dom);
var app = {};
var option;
option = {
tooltip: {
trigger: 'item'
},
legend: {
top: '5%',
left: 'center'
},
series: [{
name: '访问来源',
type: 'pie',
radius: ['40%', '70%'],
avoidLabelOverlap: false,
label: {
show: false,
position: 'center'
},
emphasis: {
label: {
show: true,
fontSize: '40',
fontWeight: 'bold'
}
},
labelLine: {
show: false
},
data: [{
value: 1048,
name: '搜索引擎'
},
{
value: 735,
name: '直接访问'
},
{
value: 580,
name: '邮件营销'
},
{
value: 484,
name: '联盟广告'
},
{
value: 300,
name: '视频广告'
}
]
}]
};
if (option && typeof option === 'object') {
myChart.setOption(option);
}
</script>
</body>
</html>
import Vue from 'vue'
import App from './App'
// OSS静态资源
Vue.prototype.$iImgUrl = 'https://szcf.superbest.wang/xcxImages/'
//http请求
import http from '@/common/js/http.js'
Vue.prototype.$http = http
// 时间处理模块
import dayjs from 'dayjs'
Vue.prototype.$day = dayjs
// #ifdef H5
// echarts图标
// var echarts = require('echarts')
// Vue.prototype.$echarts = echarts
// console.log(echarts);
// 微信JSSDK
// import jweixin from 'jweixin-module'
// Vue.prototype.$jweixin = jweixin
// console.log(jweixin);
//加载es5>>js
function loadJs(path, callback) {
let secScript = document.createElement("script");
secScript.setAttribute("src", path);
secScript.setAttribute("async", "async");
document.body.insertBefore(secScript, document.body.lastChild);
secScript.onload = callback;
if (secScript.readyState) {
// IE
secScript.onreadystatechange = function() {
if (secScript.readyState === 'loaded' || secScript.readyState === 'complete') {
secScript.onreadystatechange = null;
callback();
}
};
} else {
//其他浏览器
secScript.onload = callback;
}
}
// //JQ
// loadJs("//s1.pstatp.com/cdn/expire-1-M/jquery/1.8.0/jquery-1.8.0.min.js")
// // 微信-WEUI框架
// loadJs("//res.wx.qq.com/open/libs/weuijs/1.2.1/weui.min.js")
// // 公众号js-sdk
// loadJs("//res.wx.qq.com/open/js/jweixin-1.6.0.js")
// // 二维码生成
// loadJs("//static.runoob.com/assets/qrcode/qrcode.min.js")
// #endif
Vue.config.productionTip = false
App.mpType = 'app'
const app = new Vue({
...App
})
app.$mount()
{
"name" : "az-wechat-web",
"appid" : "__UNI__6500A3F",
"description" : "",
"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" : [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
/* ios打包配置 */
"ios" : {},
/* SDK配置 */
"sdkConfigs" : {}
},
"uniStatistics" : {
"enable" : true
}
},
/* 快应用特有相关 */
"quickapp" : {},
/* 小程序特有相关 */
"mp-weixin" : {
"appid" : "",
"setting" : {
"urlCheck" : false
},
"usingComponents" : true,
"uniStatistics" : {
"enable" : true
}
},
"mp-alipay" : {
"usingComponents" : true,
"uniStatistics" : {
"enable" : true
}
},
"mp-baidu" : {
"usingComponents" : true,
"uniStatistics" : {
"enable" : true
}
},
"mp-toutiao" : {
"usingComponents" : true,
"uniStatistics" : {
"enable" : true
}
},
"uniStatistics" : {
"enable" : true
},
"h5" : {
"router" : {
"mode" : "hash",
"base" : "/"
},
"title" : "安智教育",
"optimization" : {
"treeShaking" : {
"enable" : false
}
},
"uniStatistics" : {
"enable" : true
},
"template" : "template.h5.html"
},
"mp-qq" : {
"uniStatistics" : {
"enable" : true
}
}
}
{
"name": "az-wechat-web",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"dayjs": {
"version": "1.10.4",
"resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.4.tgz",
"integrity": "sha512-RI/Hh4kqRc1UKLOAf/T5zdMMX5DQIlDxwUe3wSyMMnEbGunnpENCdbUgM+dW7kXidZqCttBrmw7BhN4TMddkCw=="
},
"echarts": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/echarts/-/echarts-5.1.0.tgz",
"integrity": "sha512-/X2nnN5BXW2tuA/Hv9YY279rDfwcXaBAjK9Azi//llshbKyUXXxBknsug21GJRpwTmLZbE8rjjbhchdm01bZtw==",
"requires": {
"tslib": "2.0.3",
"zrender": "5.1.0"
}
},
"jweixin-module": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/jweixin-module/-/jweixin-module-1.6.0.tgz",
"integrity": "sha512-dGk9cf+ipipHmtzYmKZs5B2toX+p4hLyllGLF6xuC8t+B05oYxd8fYoaRz0T30U2n3RUv8a4iwvjhA+OcYz52w=="
},
"tslib": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
"integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ=="
},
"zrender": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/zrender/-/zrender-5.1.0.tgz",
"integrity": "sha512-c+8VRx52ycbmqwHeHLlo/BAfIHBl/JZNLM6cfDQFgzIH05yb+f5J9F/fbRsP+zGc8dW9XHuhdt8/iqukgMZSeg==",
"requires": {
"tslib": "2.0.3"
}
}
}
}
{
"name": "az-wechat-web",
"version": "1.0.0",
"description": "",
"main": "main.js",
"dependencies": {
"dayjs": "^1.10.4",
"echarts": "^5.1.0",
"jweixin-module": "^1.6.0"
},
"devDependencies": {},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
{
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "校智付电子校园卡",
"navigationStyle": "custom",
"usingComponents": {
},
"h5": {
"titleNView": "transparent"
}
}
}, {
"path": "pages/WxworkTearch/WxworkTearch",
"style": {
"navigationBarTitleText": "企业微信教职工采集签约助手",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}, {
"path": "pages/wxWorkAuth/wxWorkAuth",
"style": {
"navigationBarTitleText": "校智付",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}, {
"path": "pages/assignDeposit/assignDeposit",
"style": {
"navigationBarTitleText": "电子校园卡",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}, {
"path": "pages/confirmQrCode/confirmQrCode",
"style": {
"navigationBarTitleText": "识别二维码确认采集信息",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}, {
"path": "pages/CreditRefund/CreditRefund",
"style": {
"navigationBarTitleText": "信用金退款",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}, {
"path": "pages/ClsWeekReport/ClsWeekReport",
"style": {
"navigationBarTitleText": "周消费报告",
"enablePullDownRefresh": false,
"navigationStyle": "custom",
"usingComponents": {
},
"h5": {
"titleNView": "transparent"
}
}
}
],
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "校智付",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8"
}
}
<template>
<view class="container">
<view class="bgmbox">
<!-- 头部背景图 -->
<view class="headerImg">
<image src="../../static/images/header.png" mode="aspectFit"></image>
</view>
<!-- 班级汇总选择切换 -->
<picker class="classpicker" @change="bindPickerChange" :value="index" :range="array">
<view class="selectClass" @click="selectReport">
<view>{{array[index]}}</view>
<image src="../../static/images/Triangle.png" mode="aspectFit"></image>
</view>
</picker>
<!-- 日期展示 -->
<view class="huizong">
<image src="../../static/images/message_1.png" mode="aspectFit"></image>
<view class="huizongTime">4月1日-4月7日</view>
</view>
<!-- 列表数据 -->
<view class="dataBox">
<view class="listitem" v-for="(item,index) in [1,2,3]" :key="index">
<view class="labelbox">
<image src="../../static/images/Group.png" mode="aspectFit"></image>
<view class="labeltext">{{['每周要点','每周消费趋势','每周消费偏好区域'][index]}}</view>
<image @click="doubtTips" style="width: 32rpx;height: 32rpx;" v-if="index==2"
src="../../static/images/wenhao.png" mode="aspectFit"></image>
</view>
<!-- 展示内容区 -->
<view class="content">
<view class="content1" v-if="index==0">
<view>
本周班级人均消费金额低于/高于/等于本周年级人均消费金额;
</view>
<view>
本周总共消费{xxx}元,相比上周增加/减少{xxx}元/持平;
</view>
<view>
本周有{xxx}人、总计{xxx}次未就餐
</view>
</view>
<view class="content2" v-if="index==1">
<!-- 折线图 -->
<view ref="zhexian" id="zhexian" style="width: 100%;height: 600rpx;">
</view>
</view>
<view class="content3" v-if="index==2">
<!-- 饼状图 -->
<view ref="mychars" id="mychars" style="width: 100%;height: 500rpx;">
</view>
</view>
</view>
</view>
</view>
</view>
<!-- 就餐情况表格 -->
<view class="bgmbox2">
AZSd
</view>
</view>
</template>
<script>
var option;
let myChartzhexian, myChart;
var gHost = "https://" + window.location.host;
if (window.location.protocol != "https:") {
gHost = "https://fpdev.xiaopay.net";
}
export default {
name: "ClsWeekReport",
data() {
return {
title: 'picker',
array: ['101班周消费报告', '102班周消费报告', '103班周消费报告', '104班周消费报告'],
index: 0,
time: '12:01',
token: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJwZW5nemhpbG9uZyIsImNvcnBJZCI6Ind3NGY1ZjRkMzgwYjYwYjMzNCIsInNjaG9vbElkIjoxLCJ1c2VyVHlwZSI6MSwiZXhwIjoxNzA1NzI3MDI3LCJpc3MiOiJhZG1pbiIsIm5iZiI6MTYxOTMyNjAyN30.fCjz_vrol6T1jdsZedLyyBRbrqdngW2JrBw--G0t0Eg',
weekid: -1,
}
},
onLoad() {
},
created: function() {
// console.log(this.$echarts);
},
methods: {
// 点击问好提示
async doubtTips() {
uni.showModal({
title: "系统提示",
showCancel: false,
content: "统计周期为上周一至上周五",
})
},
bindPickerChange: function(e) {
console.log('picker发送选择改变,携带值为', e.target.value)
this.index = e.target.value
},
// 切换班级选择汇总
async selectReport() {
console.log(111);
},
// 微信JS-SDK鉴权
async js_sdk_init() {
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '', // 必填,公众号的唯一标识
timestamp: '', // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '', // 必填,签名
jsApiList: [] // 必填,需要使用的JS接口列表
});
wx.ready(function() {
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
});
wx.error(function(res) {
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
uni.showToast({
icon: "none",
title: JSON.stringify(res)
})
});
},
// 二维码加密内容转tokenqrcode2Token
async tokenqrcode2Token(){
}
},
mounted: function() {
let this_ = this;
$.ajax({
url: gHost + '/qyapp/qrcode2Token',
type: "POST",
timeout: 8000,
contentType: "application/x-www-form-urlencoded",
data: {
hex: "sdfSDfsdfSAdfdfsdfasd"
},
success: function(res) {
},
error: function() {
}
})
// return
option = {
//设置主副标题
title: {
show: true,
text: "企业数量", //主标题
left: "auto",
top: "40%",
z: 0,
zlevel: 100,
textStyle: { //设置主标题的 样式
textAlign: "center",
color: '#29B38E',
fontSize: 14
}
},
grid: {
show: false,
containLabel: false,
},
tooltip: {
show: false,
triggerOn: 'none',
trigger: 'item',
appendToBody: true
},
legend: {
top: '30%',
right: '10',
orient: 'vertical',
formatter: function(name) {
console.log(name);
return 'Legend ' + name;
},
textStyle: {
fontWeight: 'bold'
},
itemWidth: 8, // 图例图形宽度
itemHeight: 8, // 图例图形高度
// icon: 'image:// data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAAKCAYAAAC5Sw6hAAABe0lEQVQoU32SPyxkURTGv+8+TGRCYgtRKAjFPJ1K1IoVCSpUWjqRjcgmmomWmYhClJstCM2uGRESFUIUFBJs/C02CqIxJoY38+4nb5IR2Z2Z053z/fLLybmXCEpiJBkfITkiqA1iisSWZzF93f/tKkBaf8+20dClVR0ceiT++qby6KpnLBXkDCTu+twyoKG89FMJSAHs9n2FHaOW/3LS82xm47Z/6p6RRGyU5OK/UKEX8GChaSPkijLk85/MwQrdROwYZHspUTC3wgKhk1LMm6PN4DYvBKrLiQT9grBVivF9/5CRRPyeRH15EZYg7ZRichXapZuM/wQwXOZGVlZREg/FGB+S/5pbYctavLXS4IhAbTFQ5A9JO5SqiuUWOr3om9hjEEaSM52kswSh6eO1JEvDxfO78Hhzw+OXkKnuglRTyINNCJxdHKf3EY3avCj/4TbmQ47NfjWAC5gUlN0+7528/NhidcBpDnc0Vni2TiHj2XTu7mbw+1MhfwfutKIPjPKX9gAAAABJRU5ErkJggg=='
data: [{
name: '食堂',
// 强制设置图形为圆。
icon: 'image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAh0lEQVQoU2NkYGBg0Njaq8bwl7GdgZHBBcRn+M+wh4H5f+UN7+JbjCBJxn8MJxgYGAXBknDw//1/JgYLRo1NfWsZGRmCGBj+b/jxjzkDJM/B9HcGAwNjwP//DOsYNTb3fWRkYOD78Y9J4r5/wUuQAsWNE8Q5mP69+M/A8IkIBQStIORIQt4EAOTOTgf3b2UWAAAAAElFTkSuQmCC',
// 设置文本为红色
textStyle: {
itemStyle: {
// color: "#aa0000"
}
}
},
{
name: '超市',
// 强制设置图形为圆。
icon: 'image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAhUlEQVQoU2NkYGBgCHz9RI35P0M7A+N/FxCf4T/jnr+MDJXrRWVuMYIlGRhOMDAwCIIlEeD9XwYGC8aQV0/WMjAyBP1nZNzw+y9LBkielfnPDMb//wMY/jOsYwx5/fgjAwMj369/rBKbxMVfghT4vXwpzsb0+wUDw/9PRCggZAVBRxLyJgBtFlJZuXamlAAAAABJRU5ErkJggg==',
// 设置文本为红色
textStyle: {
itemStyle: {
itemStyle: {
// color: "#4fb331"
}
}
}
},
{
name: '其它',
// 强制设置图形为圆。
icon: 'image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAe0lEQVQoU4WPvQnCUACEv3u1BKy0VnAGB3AAcYqs4ARZIUskOEAGcAbBpNVK8rB+Fx42du+64477EcDT8RCgMZwyFwwJrntVD2VRcAfWWfzDx3DU5NgZLoKbCfUvIbWGs6DX6DgDFYTtTqt3Noz+biC9gFg2FCuKI0s3F9F1Rmtx2vOzAAAAAElFTkSuQmCC',
// 设置文本为红色
textStyle: {
itemStyle: {
// color: "#4fb331"
}
}
}
]
},
series: [{
name: '访问来源',
type: 'pie',
// 设置成相对的百分比
center: ['30%', '45%'],
radius: ['40%', '70%'],
avoidLabelOverlap: false,
legendHoverLink: false, //移入leged不显示在中间
textAlign: "center",
label: {
show: false,
fontSize: '15',
fontWeight: 'bold',
formatter: '{b}: {@name}',
position: 'center',
color: '#29B38E',
itemStyle: {
}
},
emphasis: {
itemStyle: {},
label: {
show: false,
fontSize: '15',
fontWeight: 'bold'
}
},
select: {
label: {
show: true
},
labelLine: {},
itemStyle: {
color: '#29B38E'
}
},
labelLine: {
show: false
},
data: [{
value: 1048,
name: '食堂',
itemStyle: {
normal: {
color: "#29B38E"
}
}
},
{
value: 735,
name: '超市',
itemStyle: {
normal: {
color: "#54EBE4"
}
}
},
{
value: 580,
name: '其它',
itemStyle: {
normal: {
color: "#DEFFF2"
}
}
}
]
}]
};
let option2 = {
//设置主副标题
title: {
show: true,
text: "企业数量", //主标题
subtext: "sadf", //副标题:企业数量值,此处用标题方式来显示
left: "center",
top: "40%",
z: 0,
zlevel: 100,
textStyle: { //设置主标题的 样式
textAlign: "center",
color: "rgba(145,213,255,0.85)",
fontSize: 14
},
subtextStyle: { //设置副标题的样式
textAlign: "center",
color: "#fff",
fontSize: 30,
fontWeight: 600
}
},
tooltip: {
show: false, //需要关闭默认的鼠标悬浮显示样式
},
//图例
legend: {
show: false
},
//设置图表撑满整个画布
grid: {
left: "0%",
right: "0%",
bottom: "0%",
containLabel: true
},
series: [{
name: "企业数量",
type: "pie",
//自定义颜色
color: "#54EBE4",
radius: ["60%", "90%"], //饼图大小
avoidLabelOverlap: false,
legendHoverLink: false, //移入leged不显示在中间
textAlign: "center",
label: {
normal: {
show: true,
position: "center", //文字显示在中间
align: "center",
verticalAlign: "middle",
textStyle: {
//设置文字样式
fontSize: "0"
}
},
emphasis: {
show: true, //文字至于中间时,这里需为true
textStyle: {
//设置文字样式
fontSize: "14",
color: "rgba(145,213,255,0.85)"
},
formatter: function({
data
}) {
//此处重点,其中定义的 b,c,d 是用于下面的 rich来单独设置样式,因为这里不支持 HTML标签
let html =
`{b| ${data.name}} \n {c|${data.value}} {d|${data.percent}}`;
return html;
},
//样式设置
rich: {
b: {
//name 文字样式
lineHeight: 20,
fontSize: 14,
textAlign: "center",
color: "rgba(145,213,255,0.85)"
},
c: {
//value 文字样式
lineHeight: 36,
color: "#fff",
fontSize: 30,
fontWeight: 600
},
d: {
//百分比样式
fontSize: 12,
color: "rgba(145,213,255,0.85)"
}
}
}
},
itemStyle: {
borderWidth: 2,
borderColor: "#2E3E62"
},
labelLine: {
show: false
},
data: [{
name: "sd",
value: "value",
percent: "244"
}, {
name: "sd",
value: "value",
percent: "244"
}, {
name: "sd",
value: "value",
percent: "244"
}, {
name: "sd",
value: "value",
percent: "244"
}, {
name: "sd",
value: "value",
percent: "244"
}, {
name: "sd",
value: "value",
percent: "244"
}]
}]
};
this.$nextTick(function() {
let zhexianchartDom = document.getElementById('zhexian');
console.log(zhexianchartDom);
myChartzhexian = echarts.init(zhexianchartDom);
myChartzhexian.setOption({
grid: {
left: "12%",
containLabel: false,
},
legend: {
},
// 高亮样式。
emphasis: {
itemStyle: {},
label: {
show: false,
// 高亮时标签的文字
formatter: '高亮时显示的标签内容'
}
},
tooltip: {
trigger: 'axis',
formatter: function(name) {
console.log(name[0].data);
return name[0].data.name + ' ' + name[0].value + '';
},
textStyle: {
fontWeight: 'bold'
},
axisPointer: { //坐标轴指示器,坐标轴触发有效,
type: 'shadow', //默认为line,line直线,cross十字准星,shadow阴影
shadowStyle: {
color: {
type: 'linear',
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [{
offset: 0,
color: '#E4F6EF' // 0% 处的颜色
}, {
offset: 1,
color: '#34e7b5' // 100% 处的颜色
}],
global: false // 缺省为 false
},
opacity: 0.5
}
}
},
xAxis: {
type: 'category',
data: ['15日', '16日', '17日', '18日', '19日', '20日', '21日']
},
yAxis: {
type: 'value'
},
series: [{
itemStyle: {
normal: {
lineStyle: {
color: '#29B38E'
}
}
},
data: [{
name: "4/15",
value: 820,
itemStyle: {
normal: {
color: "#29B38E"
}
}
}, {
name: "4/15",
value: 932,
itemStyle: {
normal: {
color: "#29B38E"
}
}
}, {
name: "4/15",
value: 901,
itemStyle: {
normal: {
color: "#29B38E"
}
}
}, {
name: "4/15",
value: 934,
itemStyle: {
normal: {
color: "#29B38E"
}
}
}, {
name: "4/15",
value: 500,
itemStyle: {
normal: {
color: "#29B38E"
}
}
}, {
name: "4/15",
value: 820,
itemStyle: {
normal: {
color: "#29B38E"
}
}
}, {
name: "4/15",
value: 900,
itemStyle: {
normal: {
color: "#29B38E"
}
}
}],
type: 'line',
smooth: true
}],
media: {
minHeight: 200
}
});
// console.log(this_.$jweixin);
let chartDom = document.getElementById('mychars');
console.log(chartDom);
myChart = echarts.init(chartDom);
myChart.setOption(option);
})
window.addEventListener('resize', () => {
this.$nextTick(function() {
myChartzhexian.resize()
myChart.resize()
})
})
setTimeout(function() {
this_.js_sdk_init()
}, 2000)
}
}
</script>
<style scoped>
page {
background: #FFFFFF;
height: 100%;
}
canvas {
display: block;
margin: 0 auto;
border: 1px solid red;
}
.container {
padding-top: 26rpx;
padding-bottom: 268rpx;
}
.container image {
position: relative;
}
.headerImg {
height: 206rpx;
}
.headerImg image {
width: 100%;
height: 100%;
position: relative;
}
.selectClass {
width: 60%;
height: 50rpx;
font-size: 36rpx;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #FFFFFF;
line-height: 50rpx;
text-shadow: 0rpx 4rpx 8rpx rgba(0, 0, 0, 0.5);
margin: 0 auto;
display: flex;
justify-content: center;
}
.classpicker {
position: relative;
top: -130rpx;
}
.selectClass image {
width: 40rpx;
height: 30rpx;
position: relative;
top: 12rpx;
}
.bgmbox {
width: 670rpx;
/* height: 1352rpx; */
background-image: url(../../static/images/Slice.png);
background-repeat: no-repeat;
background-size: 100% 100%;
background-attachment: fixed;
box-shadow: 0rpx 12rpx 14rpx 0rpx rgba(0, 171, 207, 0.58);
margin: 0 auto;
padding-bottom: 50rpx;
}
.bgmbox2 {
width: 670rpx;
height: 718rpx;
box-shadow: 0rpx 12rpx 14rpx 0rpx rgba(0, 171, 207, 0.58);
margin: 0 auto;
}
.huizong {
display: flex;
justify-content: flex-end;
align-items: center;
padding-right: 20rpx;
margin-top: -50rpx;
}
.huizongTime {
width: 204rpx;
height: 42rpx;
font-size: 30rpx;
font-family: PingFang-SC-Regular, PingFang-SC;
font-weight: 400;
color: #6F747A;
line-height: 42rpx;
}
.listitem {
margin-top: 56rpx;
}
.huizong image {
width: 32rpx;
height: 32rpx;
padding-right: 10rpx;
}
.labelbox {
display: flex;
align-items: center;
justify-content: flex-start;
margin-left: 24rpx;
}
.labelbox .labeltext {
height: 44rpx;
font-size: 32rpx;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 600;
color: #3D3D3D;
line-height: 44rpx;
margin-left: 10rpx;
}
.labelbox image {
width: 36rpx;
height: 20rpx;
}
.content1 {
height: 280rpx;
}
.content1,
.content2,
.content3 {
width: 626rpx;
margin: 0 auto;
}
.content1 {
font-size: 28rpx;
font-family: PingFang-SC-Regular, PingFang-SC;
font-weight: 400;
color: #3D3D3D;
line-height: 40rpx;
}
.content1 view:first-child {
margin-top: 20rpx;
}
.content1 view:not(:first-child) {
margin-top: 40rpx;
}
</style>
<template>
<view class="container">
<div class="weui-tab__content" id="smb_view" style="display: block;display: none;">
<div style="margin-top: 50px;">
<div class=" weui-cells_form" style="border:none !important;">
<img style="width: 30vw;margin: 0vh 30vw;" src="/mpwechat/img/success.png" alt="" srcset="">
<div style="font-size: 20px;margin: 30px 0 20vh 0;">
<label id="smbcontext"></label>
</div>
<div class="weui-btn-area"> <a onclick="knowCloseWindow()" href="javascript:"
class="weui-btn weui-btn_primary">知道了</a></div>
</div>
</div>
</div>
<div class="weui-tab__content" id="form_checkuser" style="display: block;display: none;">
<div style="margin-top: 50px;">
<div class="weui-cells weui-cells_form">
<div class="weui-cell">
<div class="weui-cell__hd"><label class="weui-label">姓名</label></div>
<div class="weui-cell__bd"> <input id="stuname" class="weui-input" type="text" required=""
pattern="REG_IDNUM" maxlength="18" placeholder="请输入孩子/老师姓名" style="text-align:right;"
emptytips="请输入孩子/老师姓名" notmatchtips="请输入孩子/老师姓名">
</div>
<div class="weui-cell__ft"> <i class="weui-icon-warn"></i> </div>
</div>
<div class="weui-cell">
<div class="weui-cell__hd"><label class="weui-label">手机号</label></div>
<div class="weui-cell__bd"> <input id="phonenumber" class="weui-input" type="tel" required=""
pattern="^\d{11}$" maxlength="11" placeholder="请输入签约手机号" style="text-align:right;"
emptytips="请输入签约手机号" notmatchtips="请输入签约手机号">
</div>
<div class="weui-cell__ft"> <i class="weui-icon-warn"></i> </div>
</div>
<div class="weui-cell">
<div class="weui-cell__hd"><label style="width: 69px;" class="weui-label">验证码</label></div>
<div class="weui-cell__bd"> <input id="checkcode" style="width:100%;text-align: right;"
class="weui-input" maxlength="6" type="number" required="" pattern="REG_VCODE"
placeholder="输入验证码" tips="输入验证码"> </div>
<div class="weui-cell__ft"> <i class="weui-icon-warn"> </i><a id="sendcodebtn"
href="javascript:;" onclick="sendsmscode(this)"
style="font-size: 15px;margin-left: 10px;">获取验证码</a>
</div>
</div>
</div>
<div class="weui-btn-area"> <a id="formSubmitBtn" onclick="subcheckuser(this)" href="javascript:"
class="weui-btn weui-btn_primary">立即验证</a>
</div>
</div>
</div>
<div class="weui-tab__content" id="credit_view" style="display: block;display: none;">
<div style="margin-top: 20px;padding-bottom:50px;">
<div class="weui-cells">
<div class="weui-cell">
<div class="weui-cell__hd"><label class="weui-label">学校</label></div>
<div class="weui-cell__bd">
<label id="schname"></label>
</div>
</div>
<div class="weui-cell">
<div class="weui-cell__hd"><label class="weui-label">姓名</label></div>
<div class="weui-cell__bd">
<label id="username"></label>
</div>
</div>
<div class="weui-cell">
<div class="weui-cell__hd"><label class="weui-label">用户类型</label></div>
<div class="weui-cell__bd">
<label id="usertype"></label>
</div>
</div>
<div class="weui-cell" id="gcinfo_dev" style="display: none;">
<div class="weui-cell__hd"><label class="weui-label">年级/班级</label></div>
<div class="weui-cell__bd">
<label id="gcinfo"></label>
</div>
</div>
<div class="weui-cell">
<div class="weui-cell__hd"><label class="weui-label">信用金金额</label></div>
<div class="weui-cell__bd">
<label id="amount"></label>
</div>
</div>
<div class="weui-cell">
<div class="weui-cell__hd"><label class="weui-label">缴费方式</label></div>
<div class="weui-cell__bd">
<label id="soutype"></label>
</div>
</div>
<div class="weui-cell">
<div class="weui-cell__hd"><label class="weui-label">缴费时间</label></div>
<div class="weui-cell__bd">
<label id="paytime"></label>
</div>
</div>
<div class="weui-cell" id="outno_dev" style="display: none;flex-wrap: wrap;">
<div class="weui-cell__hd"><label class="weui-label" style="width:65px;">商户单号</label></div>
<div class="weui-cell__bd" style="font-size:11px;">
<label id="outno"></label>
</div>
</div>
<div class="weui-cell" id="wxno_dev" style="display: none;flex-wrap: wrap;">
<div class="weui-cell__hd"><label class="weui-label" style="width:65px;">微信单号</label></div>
<div class="weui-cell__bd" style="font-size:11px;">
<label id="wxno"></label>
</div>
</div>
</div>
<div class="weui-btn-area">
<a id="applyrefoundbtn" href="javascript:" onclick="subrefund(this)"
class="weui-btn weui-btn_primary">申请退款</a>
</div>
<div id="norftext" class="weui-btn-area" style="display: none;">
<a id="applyrefoundbtn" href="javascript:" onclick="norefound(this)"
style="color:#348FF6;display: block;font-size:14px;position: fixed;text-align: center;bottom: 3vh;width: 100%;left: 0;">为什么我无法申请退款?</a>
</div>
</div>
</div>
</view>
</template>
<script>
//公共参数
let gHost = "https://" + window.location.host;
if (window.location.protocol != "https:") {
gHost = "http://" + window.location.host;
}
let sessionid = "";
let binduserid = 0;
let msgid = "";
let curCount = 60;
export default {
name:"CreditRefund",
data() {
return {
}
},
created: function() {
console.log("created");
},
mounted: function() {
let this_ = this
this_.$nextTick(function() {
let loading = weui.loading('玩命加载中.');
let params = this_.parseUrl();
if (!params.code || params.code == "" || !params.state || params.state == "") {
loading.hide();
weui.alert('请通过微信扫一扫学校退款二维码打开!', function() {
console.log('ok');
}, {
title: '提示'
});
return;
}
let ua = navigator.userAgent.toLowerCase();
if (ua.indexOf('micromessenger') == -1) {
// 非微信浏览器H5支付
loading.hide();
weui.alert('请通过微信浏览器打开!', function() {
console.log('ok');
}, {
title: '错误'
});
return;
}
console.log(params);
$.ajax({
url: gHost + '/mp_wechat/x/access_token',
type: "POST",
dataType: "json",
contentType: "application/x-www-form-urlencoded",
async: false,
data: params,
success: function(resp1) {
if (resp1.code != "10000") {
loading.hide();
weui.alert(resp1.message, function() {
console.log('ok');
wx.closeWindow();
}, {
title: '错误'
});
} else {
sessionid = resp1.results
//查询联合关联关系
$.ajax({
url: gHost + '/mp_wechat/svmpwechat/QueryBindInfoByUnionid',
type: "POST",
dataType: "json",
contentType: "application/x-www-form-urlencoded",
async: false,
data: {
"mp_session_id": sessionid
},
success: function(resp2) {
console.log(resp2)
if (resp2.code != "10000") {
loading.hide();
weui.alert(resp2.message, function() {
console.log('ok');
wx.closeWindow();
}, {
title: '提示'
});
} else {
if (resp2.results.islist) { //多人
var myArray=new Array();
for ( var i = 0; i <resp2.results.bindlist.length; i++){
var item = new Object();
item.label = resp2.results.bindlist[i].username;
item.value = resp2.results.bindlist[i].userid;
myArray.push(item);
}
loading.hide();
weui.picker(myArray, {
defaultValue: [0],
className: 'custom-classname',
onChange: function onChange(result) {
//console.log(item, index);
//console.log(result[0].value);
},
onConfirm: function onConfirm(result) {
console.log('confirm');
console.log(result[0].value);
binduserid = result[0].value;
var loading2 = weui.loading('玩命加载中.');
//查询待退款的信用金信息
$.ajax({
url: gHost + '/mp_wechat/svmpwechat/QueryCreditInfo',
type: "POST",
dataType: "json",
contentType: "application/x-www-form-urlencoded",
async: false,
data: {
"mp_session_id": sessionid,
"userid": binduserid
},
success: function(resp3) {
console.log(resp3)
if (resp3.code != "10000") {
loading2.hide();
weui.alert(resp3.message, function() {
console.log('ok');
wx.closeWindow();
}, {
title: '提示'
});
} else {
if (resp3.results.status == 1) {
loading2.hide();
$("#smbcontext").text("退款申请已提交,审核通过后,预计1-7个工作日通过商户退款或现金红包形式退款到当前微信账户!")
$("#smb_view").show()
} else {
$("#schname").text(resp3.results.schoolname)
$("#username").text(resp3.results.username)
var utstr = resp3.results.usertype == "1" ? "学生" : "教职工";
$("#usertype").text(utstr);
if (resp3.results.usertype == "1") {
$("#gcinfo_dev").show();
$("#gcinfo").text(resp3.results.gradename + "/" + resp3.results.classname)
}
$("#amount").text("" + (resp3.results.amount / 100).toFixed(2))
var soustr = resp3.results.sourcetype == "1" ? "现金缴纳" : resp3.results.sourcetype == "2" ?
"微信支付" : resp3.results.sourcetype == "3" ? "生活费抵扣" : "免交信用金"
$("#soutype").text(soustr)
$("#paytime").text(resp3.results.paytime)
if (resp3.results.sourcetype != "2") {
$("#applyrefoundbtn").css("opacity", "0.3");
$("#applyrefoundbtn").css("pointer-events", "none");
$("#norftext").show();
}
if (resp3.results.outno != "") {
$("#outno").text(resp3.results.outno)
$("#outno_dev").show()
}
if (resp3.results.wxno != "") {
$("#wxno").text(resp3.results.wxno)
$("#wxno_dev").show()
}
loading2.hide();
$("#credit_view").show();
}
}
},
error: function(err3) {
loading2.hide();
weui.alert(err3.toString(), function() {
console.log('ok');
wx.closeWindow();
}, {
title: 'ERROR'
});
}
});
},
id: 'picker',
title: '当前手机号存在多个关联用户,请选择其中一个'
});
return
} else { //单人
if (resp2.results.bindflag) {
binduserid = resp2.results.userid;
//查询待退款的信用金信息
$.ajax({
url: gHost + '/mp_wechat/svmpwechat/QueryCreditInfo',
type: "POST",
dataType: "json",
contentType: "application/x-www-form-urlencoded",
async: false,
data: {
"mp_session_id": sessionid,
"userid": binduserid
},
success: function(resp3) {
console.log(resp3)
if (resp3.code != "10000") {
loading.hide();
weui.alert(resp3.message, function() {
console.log('ok');
wx.closeWindow();
}, {
title: '提示'
});
} else {
if (resp3.results.status == 1) {
loading.hide();
$("#smbcontext").text("退款申请已提交,审核通过后,预计1-7个工作日通过商户退款或现金红包形式退款到当前微信账户!")
$("#smb_view").show()
} else {
$("#schname").text(resp3.results.schoolname)
$("#username").text(resp3.results.username)
var utstr = resp3.results.usertype == "1" ? "学生" : "教职工";
$("#usertype").text(utstr);
if (resp3.results.usertype == "1") {
$("#gcinfo_dev").show();
$("#gcinfo").text(resp3.results.gradename + "/" + resp3.results.classname)
}
$("#amount").text("" + (resp3.results.amount / 100).toFixed(2))
var soustr = resp3.results.sourcetype == "1" ? "现金缴纳" : resp3.results.sourcetype == "2" ?
"微信支付" : resp3.results.sourcetype == "3" ? "生活费抵扣" : "免交信用金"
$("#soutype").text(soustr)
$("#paytime").text(resp3.results.paytime)
if (resp3.results.sourcetype != "2") {
$("#applyrefoundbtn").css("opacity", "0.3");
$("#applyrefoundbtn").css("pointer-events", "none");
$("#norftext").show();
}
if (resp3.results.outno != "") {
$("#outno").text(resp3.results.outno)
$("#outno_dev").show()
}
if (resp3.results.wxno != "") {
$("#wxno").text(resp3.results.wxno)
$("#wxno_dev").show()
}
loading.hide();
$("#credit_view").show();
}
}
},
error: function(err3) {
loading.hide();
weui.alert(err3.toString(), function() {
console.log('ok');
wx.closeWindow();
}, {
title: 'ERROR'
});
}
});
} else {
loading.hide();
//没有任何绑定的人
weui.confirm('此微信不是绑定该学生(教师)的微信,需要验证后进行退款!', function() {
console.log('yes');
$("#form_checkuser").show();
}, function() {
console.log('no');
wx.closeWindow();
}, {
title: '提示'
});
}
}
}
},
error: function(err2) {
loading.hide();
weui.alert(err2.toString(), function() {
console.log('ok');
wx.closeWindow();
}, {
title: 'ERROR'
});
}
});
}
},
error: function(err) {
loading.hide();
weui.alert(err.toString(), function() {
console.log('ok');
}, {
title: 'ERROR'
});
}
});
})
console.log("mounted");
},
methods: {
//获取验证码
sendsmscode(self) {
curCount = 60;
var phonestr = $("#phonenumber").val()
if (phonestr == "") {
weui.topTips('手机号码不能为空', {
duration: 3000,
className: "custom-classname",
callback: function callback() {
console.log('close');
}
});
return;
}
if (!isPoneAvailable(phonestr)) {
weui.topTips('手机号码格式不正确', {
duration: 3000,
className: "custom-classname",
callback: function callback() {
console.log('close');
}
});
return;
}
var loading = weui.loading('请稍后');
$.ajax({
url: gHost + '/mp_wechat/svmpwechat/SendSMSAuthCode',
type: "POST",
dataType: "json",
contentType: "application/x-www-form-urlencoded",
async: false,
data: {
"mp_session_id": sessionid,
"phone": phonestr
},
success: function(resp3) {
console.log(resp3)
if (resp3.code != "10000") {
loading.hide();
weui.alert(resp3.message, function() {
console.log('ok');
wx.closeWindow();
}, {
title: '提示'
});
} else {
loading.hide();
$("#sendcodebtn").css("pointer-events", "none");
$("#sendcodebtn").css("color", "dimgrey");
$("#sendcodebtn").html(curCount + "秒后重新获取");
msgid = resp3.message;
InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次
}
},
error: function(err3) {
loading.hide();
weui.alert(err3.toString(), function() {
console.log('ok');
wx.closeWindow();
}, {
title: 'ERROR'
});
}
});
},
//验证信息
subcheckuser(self) {
var phonestr = $("#phonenumber").val()
if (phonestr == "") {
weui.topTips('手机号码不能为空', {
duration: 3000,
className: "custom-classname",
callback: function callback() {
console.log('close');
}
});
return;
}
if (!isPoneAvailable(phonestr)) {
weui.topTips('手机号码格式不正确', {
duration: 3000,
className: "custom-classname",
callback: function callback() {
console.log('close');
}
});
return;
}
var checkcode = $("#checkcode").val()
if (checkcode == "") {
weui.topTips('验证码不能为空', {
duration: 3000,
className: "custom-classname",
callback: function callback() {
console.log('close');
}
});
return;
}
var stuname = $("#stuname").val()
if (stuname == "") {
weui.topTips('姓名不能为空', {
duration: 3000,
className: "custom-classname",
callback: function callback() {
console.log('close');
}
});
return;
}
if (msgid == "") {
weui.topTips('请先获取验证码', {
duration: 3000,
className: "custom-classname",
callback: function callback() {
console.log('close');
}
});
return;
}
var loading = weui.loading('请稍后');
$.ajax({
url: gHost + '/mp_wechat/svmpwechat/CheckSMSAuthCode',
type: "POST",
dataType: "json",
contentType: "application/x-www-form-urlencoded",
async: false,
data: {
"mp_session_id": sessionid,
"phone": phonestr,
"msgid": msgid,
"code": checkcode,
},
success: function(resp3) {
console.log(resp3)
if (resp3.code != "10000") {
loading.hide();
weui.alert(resp3.message, function() {
console.log('ok');
wx.closeWindow();
}, {
title: '提示'
});
} else {
//验证通过,查询人
$.ajax({
url: gHost + '/mp_wechat/svmpwechat/QueryUserIDByPhone',
type: "POST",
dataType: "json",
contentType: "application/x-www-form-urlencoded",
async: false,
data: {
"mp_session_id": sessionid,
"phone": phonestr,
"username": stuname,
},
success: function(resp4) {
console.log(resp4)
if (resp4.code != "10000") {
loading.hide();
weui.alert(resp4.message, function() {
console.log('ok');
wx.closeWindow();
}, {
title: '提示'
});
} else {
if (resp4.results.bindflag) {
binduserid = resp4.results.userid;
//查询待退款的信用金信息
$.ajax({
url: gHost + '/mp_wechat/svmpwechat/QueryCreditInfo',
type: "POST",
dataType: "json",
contentType: "application/x-www-form-urlencoded",
async: false,
data: {
"mp_session_id": sessionid,
"userid": binduserid
},
success: function(resp5) {
console.log(resp5)
if (resp5.code != "10000") {
loading.hide();
weui.alert(resp5.message, function() {
console.log('ok');
wx.closeWindow();
}, {
title: '提示'
});
} else {
$("#form_checkuser").hide();
if (resp5.results.status == 1) {
loading.hide();
$("#smbcontext").text("退款申请已提交,审核通过后,预计1-7个工作日通过商户退款或现金红包形式退款到当前微信账户!")
$("#smb_view").show()
} else {
$("#schname").text(resp5.results.schoolname)
$("#username").text(resp5.results.username)
var utstr = resp5.results.usertype == "1" ? "学生" : "教职工";
$("#usertype").text(utstr);
if (resp5.results.usertype == "1") {
$("#gcinfo_dev").show();
$("#gcinfo").text(resp5.results.gradename + "/" + resp5.results.classname)
}
$("#amount").text("" + (resp5.results.amount / 100).toFixed(2))
var soustr = resp5.results.sourcetype == "1" ? "现金缴纳" : resp5.results.sourcetype == "2" ?
"线上支付" : resp5.results.sourcetype == "3" ? "钱包抵扣" : "免交信用金"
$("#soutype").text(soustr)
$("#paytime").text(resp5.results.paytime)
if (resp5.results.sourcetype != "2") {
$("#applyrefoundbtn").css("opacity", "0.3");
$("#applyrefoundbtn").css("pointer-events", "none");
$("#norftext").show();
}
if (resp5.results.outno != "") {
$("#outno").text(resp5.results.outno)
$("#outno_dev").show()
}
if (resp5.results.wxno != "") {
$("#wxno").text(resp5.results.wxno)
$("#wxno_dev").show()
}
$("#credit_view").show();
}
loading.hide();
}
},
error: function(err5) {
loading.hide();
weui.alert(err5.toString(), function() {
console.log('ok');
wx.closeWindow();
}, {
title: 'ERROR'
});
}
});
} else {
loading.hide();
weui.alert("验证信息有误,请核实后重新进行验证!", function() {
console.log('ok');
wx.closeWindow();
}, {
title: '提示'
});
}
}
},
error: function(err4) {
loading.hide();
weui.alert(err4.toString(), function() {
console.log('ok');
wx.closeWindow();
}, {
title: 'ERROR'
});
}
});
}
},
error: function(err3) {
loading.hide();
weui.alert(err3.toString(), function() {
console.log('ok');
wx.closeWindow();
}, {
title: 'ERROR'
});
}
});
},
//申请退款
subrefund(self) {
if (binduserid < 1) {
weui.alert("非法请求", function() {
console.log('ok');
wx.closeWindow();
}, {
title: '错误'
});
return
}
let loading = weui.loading('请稍后');
$.ajax({
url: gHost + '/mp_wechat/svmpwechat/ApplyCreditRefund',
type: "POST",
dataType: "json",
contentType: "application/x-www-form-urlencoded",
async: false,
data: {
"mp_session_id": sessionid,
"userid": binduserid,
},
success: function(resp) {
console.log(resp)
if (resp.code != "10000") {
loading.hide();
weui.alert(resp.message, function() {
console.log('ok');
wx.closeWindow();
}, {
title: '提示'
});
} else {
loading.hide();
$("#credit_view").hide();
$("#smbcontext").text("退款申请已提交,审核通过后,预计1-7个工作日通过商户退款或现金红包形式退款到当前微信账户!")
$("#smb_view").show()
}
},
error: function(err) {
loading.hide();
weui.alert(err.toString(), function() {
console.log('ok');
wx.closeWindow();
}, {
title: 'ERROR'
});
}
});
},
//timer处理函数
SetRemainTime() {
if (curCount == 0) {
window.clearInterval(InterValObj); //停止计时器
$("#sendcodebtn").css("pointer-events", "");
$("#sendcodebtn").css("color", "");
$("#sendcodebtn").html("获取验证码");
} else {
curCount--;
$("#sendcodebtn").html(curCount + "秒后重新获取");
}
},
norefound(self) {
weui.alert("信用金缴纳方式为现金缴纳的,仅支持线下现金退款,请联系学校管理员!", function() {
console.log('ok');
wx.closeWindow();
}, {
title: '无法申请退款'
});
},
parseUrl() {
var searchHref = window.location.search.replace('?', '');
var params = searchHref.split('&');
var returnParam = {};
params.forEach(function(param) {
var paramSplit = param.split('=');
returnParam[paramSplit[0]] = paramSplit[1];
});
return returnParam;
},
// 判断是否为手机号
isPoneAvailable(pone) {
var myreg = /^[1][3,4,5,6,7,8,9][0-9]{9}$/;
if (!myreg.test(pone)) {
return false;
} else {
return true;
}
},
//关闭窗口
knowCloseWindow() {
wx.closeWindow();
}
}
}
</script>
<style scoped>
.weui-tab__content {
width: 86vw;
margin-left: 7vw;
}
.weui-label,
.weui-input {
font-size: 15px;
}
.weui-btn {
font-size: 17px !important;
width: 60vw !important;
z-index: 999;
letter-spacing: 2px;
line-height: 50px;
height: 50px;
padding: 0;
position: fixed;
bottom: 8vh;
left: 20vw;
margin: 0 !important;
}
.weui-icon-btn_close {
display: none;
}
.weui-cell:before {
left: 0;
}
#weui-picker-confirm {
bottom: 20px !important;
}
.weui-cell {
padding: 16px 0;
}
.weui-cell__bd {
font-size: 14px;
text-align: right;
color: gray;
}
</style>
<template>
<view class="container">
<view>
<image style="width: 100%;display: none;" src="../../static/img/123456.png" mode="aspectFit"></image>
</view>
<view id="showTips">
<image src="../../static/img/shareImg.png" mode="aspectFit"></image>
</view>
<view id="qrcode" ref="qrcode">
<image class="bg" src="../../static/img/qrcode_bg.png" mode="aspectFill">
</image>
<view class="main">
<h5 id="school_name">安智教育学校</h5>
<view class="info" style="padding-top: 50rpx;">
<view class="top_tip">(二维码仅限教职工使用)</view>
<view class="class_name">企业微信教职工采集签约助手</view>
<view class="qrcode_box">
<view id="comFirmCode"></view>
<image src="../../static/img/logo.png" class="sub" mode="aspectFit"></image>
</view>
<view class="tip">扫码或长按识别二维码<br />登录校智付小程序</view>
<view class="top_tip" id="DateTime">过期</view>
</view>
</view>
</view>
</view>
</template>
<script>
console.log(location.href)
var HOST = location.host;
var fromApp = ''; //校智付还是光海 wxwork / ghwxwork
export default {
name: "WxworkTearch",
data() {
return {
}
},
created: function() {
},
mounted: function() {
let {
screenHeight
} = uni.getSystemInfoSync()
console.log(screenHeight / 750);
if (this.WxWordBro()) { //企微
$('#showTips').css('display', 'block');
weui.topTips('请在微信中打开');
return
}
if (!this.getQueryParams('hex')) {
weui.topTips('跳转参数hex不能为空');
return
}
if (!this.getQueryParams('app')) {
weui.topTips('跳转参数app不能为空');
return
}
let this_ = this;
this.$nextTick(function() {
$('#qrcode').css('display', 'block');
$('#school_name').html(decodeURI(this_.getQueryParams('schoolname')));
fromApp = this_.getQueryParams('app');
setTimeout(function() {
this_.CreateQrCode(screenHeight / 750);
this_.getDate();
}, 300)
})
},
methods: {
//获取参数
getQueryParams(params) {
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (pair[0] == params) {
return pair[1];
}
}
return (false);
},
//生成二维码
CreateQrCode(pit) {
var qrCode = new QRCode(document.getElementById("comFirmCode"), {
width: 201 * pit,
height: 201 * pit
})
var url = `https://${HOST}/wechat/qr/${fromApp}?hex=${this.getQueryParams('hex')}&et=123456`;
console.log('url = ' + url)
qrCode.makeCode(url);
},
//判断是否企微浏览器
WxWordBro() {
var agent = navigator.userAgent.toLowerCase();
if (agent.match(/WxWork/i) == "wxwork") {
return true;
} else {
return false;
}
},
//设置二维码有效期为1个月
getDate() {
let addZero = (num) => (num < 10 ? '0' + num : num),
date = new Date(),
m = date.getMonth();
date.setMonth(m + 1);
let endTime = date.getFullYear() + '' + addZero(date.getMonth() + 1) + '' + addZero(date.getDate()) +
'';
document.getElementById('DateTime').innerText = endTime + '过期';
}
}
}
</script>
<style scoped lang="scss">
body {
margin: 0;
overflow: hidden;
}
#qrcode {
top: 20vh;
display: none;
position: relative;
text-align: center;
}
.top_tip {
color: #AAAAAA;
font-size: 14rpx;
margin-top: 5rpx;
}
#showTips {
text-align: center;
display: none;
overflow: hidden;
width: 100vw;
height: 100vh;
background: #F9F9F9;
}
#showTips>image {
margin-top: 40rpx;
}
.qrcode_box {
position: relative;
}
.class_name {
font-size: 14rpx;
margin-bottom: 10rpx;
}
.main {
position: absolute;
top: 0;
width: 70vw;
margin-left: 15vw;
}
.bg {
width: 70%;
height: 750rpx;
}
.tip {
margin: 10rpx 0;
font-size: 14rpx;
}
#comFirmCode {
margin-left: 80rpx;
}
.sub {
position: absolute;
width: 50rpx;
height: 50rpx;
left: 31vw;
top: 20vw;
}
#school_name {
font-size: 25rpx;
line-height: 47rpx;
color: #FFFFFF;
white-space: nowrap;
text-overflow: ellipsis;
margin-top: 30rpx;
}
@media screen and (min-width: 900rpx) {
#qrcode {
top: 0;
position: relative;
margin: 10vh auto;
}
.bg {
width: 360rpx;
height: 490rpx;
margin: 0;
}
#school_name {
line-height: 65rpx;
}
.top_tip {
color: #AAAAAA;
font-size: 16rpx;
margin: 10rpx 5rpx;
}
.main {
width: 360rpx;
margin-left: 0;
left: calc(50vw - 180rpx);
}
.sub {
position: absolute;
width: 40rpx;
height: 40rpx;
left: 160rpx;
top: 80rpx;
}
}
</style>
<template>
<view class="container">
<div id="AssginBox">
<!-- <p class="TitleHeader"></p>-->
<p id="ReturnBox" @click="BackToMini('personalCenter')">
<img src="../../static/img/return.png" class="returnImgBox" alt="">
<span style="vertical-align: middle;">返回</span>
</p>
<!-- 充值 -->
<div id="DepositBox">
<div class="ImgContent">
<img mode='widthFix'
src="https://xiaopay2020.oss-cn-shenzhen.aliyuncs.com/static/weapp/images/xiaopaycard (31).png"
alt="">
<div class="contentDiv">
<p>
<span class="schoolNameTx"
style="font-size:17px;font-weight:700;width: 50vw;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;"></span>
<span class="IconCls">电子校园卡</span>
</p>
<p class="HidenText" style="margin-top:17vw;">
<span style="font-size:13px;">姓名:<span class="userNameTx"></span></span>
<span class="StudentCls" style="font-size:13px;text-align:right;display: none;">班级:<span
class="ClsNameTx"></span></span>
<span class='TeacherCls' style="font-size:13px;text-align:right;display: none;">教职工</span>
</p>
<p style="font-size:15px;color:#fff;font-weight:700;margin-top: 10px;">
<span>余额:¥<span class="cardBalanceTx"></span></span>
<span @click="ToWalletTx">余额提现<img class='ImgIcon1' mode='widthFix'
src="https://xiaopay2020.oss-cn-shenzhen.aliyuncs.com/static/weapp/images/xiaopaycard (17).png"
alt=""></span>
</p>
</div>
</div>
<div style="font-size:14px;color:#268EF8;text-decoration:underline;text-align:center;margin:10px 0;">
<span @click="BackToMini('purchaseDetail')">账户明细</span>
</div>
<div class="depositBox">
<p class="inputTitle">充值金额</p>
<div id="MoneyBox">
<div class="depotMoney" @click="depotMoney(500)">500</div>
<div class="depotMoney" @click="depotMoney(1000)">1000</div>
<div class="depotMoney" @click="depotMoney(1500)">1500</div>
</div>
<div>
<span
style="font-size:17px;font-weight:bold;position: absolute;left: 5px;bottom: -1px;"></span>
<input class="depositTx" v-model="Money" type="number" @input="inputControl" @blur="ReturnToTop"
maxlength="4" style="width:90%;" placeholder="请输入其他金额,最低3元" />
</div>
<p>
<img mode='widthFix' class="depositImg" src="../../static/img/depositIcon.png" alt="">
<span style="vertical-align:middle;font-size:14px;">最大可充值金额:<span style="color:red;"><span
class="canDepositTx">{{RechargeMax}}</span></span></span>
</p>
</div>
<div class="accountBox1">
<div class="AcountTitle">付款账户</div>
<div class="bankNameClass" @click="queryBindCardList"></div>
<img @click="queryBindCardList" src="../../static/img/8.png" alt="">
</div>
<button class="bottomDetail bottom1 DisaBledBtn DepositID" style="margin-top: 400rpx;"
@click="toDeposit(0)">充值生活费</button>
<div class="changeCardBox">
<span @click="BackToMini('AssignAddCard')">我要换银行卡支付</span>
</div>
</div>
<!-- 提现 -->
<div id='TxWalletBox'>
<div class="TopBox">
<p>提现金额</p>
<div class="changeCardBox dayTips">每日可提现一次</div>
</div>
<div class="TxDiv">
<span style="font-size:17px;font-weight:bold;position: absolute;left: 5px;bottom: -1px;"></span>
<input style="width:50%;padding-right:40%;" type="number" v-model="ReflectMoney" class="TxClsTx"
@blur="ReturnToTop" maxlength="4" placeholder="输入提现金额" @input="inputControl">
<span style="position:absolute;right:20px;font-weight:700;font-size:14px;color:#129A5E;"
@click="TxAllFun">全部</span>
</div>
<div class="accountBox1">
<div class="AcountTitle">提现至</div>
<div class="bankNameClass1"></div>
</div>
<div class="payCardEndNo"
style="width:90vw;text-align:right;font-weight:700;font-size:15px;margin-top: 5px;"></div>
<button class="bottomDetail bottom2" @click="toDeposit(1)">提现</button>
<div class="changeCardBox">
<span @click="BackToMini('TxHistory')">提现记录</span>
</div>
</div>
<!-- 切换绑定的一类卡列表 -->
<div class="BgCoverBox showBindCardList PhoneConfirmBox" style="display: none;"></div>
<div class="BankClass showBindCardList" style="display: none;">
<div class="choiceBox">选择付款账户</div>
<div class="hideListCover">
</div>
<div class="bottomDiv" @click="HideHTML('showBindCardList',0)">取消</div>
</div>
<!-- 手机号验证 -->
<div class="PhoneConfirmBox MyPhoneCls" style="display: none;">
<img src="../../static/img/close.png" class="closePhoneBox" alt="" @click="hidePhoneBox">
<p style='text-align:center;font-size:18px;font-weight:bold;margin-bottom:30px;'>验证开卡手机号</p>
<p class="myPhoneP">
<span class="title1">手机号:</span>
<span style="flex: 1;" class="myPhoneTx"></span>
<span class="changPhone" @click="BackToMini('AssignChangPhone')">变更手机号</span>
</p>
<div class="myPhoneDiv">
<span class="title1">验证码:</span>
<div style="flex: 1;">
<input class="VerifyCode" v-model="VerifyCode" @blur="ReturnToTop" type="text" maxlength="6"
placeholder="验证码" />
</div>
<span class="CodeMsg" @click="SendMsg">{{CodeMsg}}</span>
</div>
<button class="doBtnTx" @click="DoNextStep">充值</button>
</div>
<!-- 20210421 -->
<div class="RechargeException" style="display: none;">
<div class="tiptext">您在银行预留的身份信息已过期,请更新身份信息后再继续交易</div>
<div class="weui-form">
<div class="weui-form__control-area">
<div class="weui-cells__group weui-cells__group_form">
<div
class="weui-cell weui-cell_active weui-cell_access weui-cell_select weui-cell_select-after">
<div class="weui-cell__hd"><label class="weui-label">所属职业</label></div>
<div class="weui-cell__bd" id="showPicker"
style="color: #A1A4A8;text-align: center;overflow: hidden;text-overflow: ellipsis; white-space: nowrap;">
请选择职业类型</div>
</div>
<div class="weui-cell weui-cell_active weui-cell_access weui-cell_select weui-cell_select-after"
id="showCityPicker3">
<div class="weui-cell__hd"><label class="weui-label" id="city3-label">家庭地址</label></div>
<div class="weui-cell__bd" id="homeAddress"
style="color: #A1A4A8;text-align: center;overflow: hidden;text-overflow: ellipsis; white-space: nowrap;">
请选择家庭地址</div>
</div>
<div class="weui-cell weui-cell_active weui-cell_access ">
<div class="weui-cell__hd"><label class="weui-label">所在街道</label></div>
<div class="weui-cell__bd weui-flex">
<input class="weui-input" style="text-align: right;padding-right: 17px;" type="text"
@input="StreetInformation" placeholder="请输入具体街道和门牌号">
</div>
</div>
<div class="">
<div class="weui-cell__hd"><label class="weui-label">身份证照片</label></div>
<div class="weui-cell__bd">
<div class="liDiv">
<div class="imgBox">
<img src="../../static/img/idCardBg1.png" alt="" class="idCardPhoto1">
<div class="positionCam">
<input class="weui-uploader__input" type="file" accept="image/*"
multiple="" onchange="uploaderInput(this,1)">
【点击可上传】
</div>
<!-- <img class="idCardPhoto1" src="ss" alt="" style=""> -->
</div>
<div class="imgBox">
<img src="../../static/img/idCardBg0.png" alt="" class="idCardPhoto2">
<div class="positionCam">
<input class="weui-uploader__input" type="file" accept="image/*"
multiple="" d onchange="uploaderInput(this,2)">
【点击可上传】
</div>
<!-- <img class="idCardPhoto2" src="1" alt=""> -->
</div>
</div>
</div>
</div>
<button class="bottomDetail" @click="UpdateRechargeException">立即更新</button>
</div>
</div>
</div>
</div>
</div>
</view>
</template>
<script>
import cityData from "@/common/js/city.js"
console.log(cityData);
var gHost = "https://" + window.location.host;
if (window.location.protocol != "https:") {
gHost = "https://fpdev.xiaopay.net";
}
let times = 0;
var limitClick = false; //禁止重复点击
var sessionID = '',
userID = '';
var payCardNumber = ''; //一类卡号
var orderSerialNo = ''; //提现结果查询 指令号
var businessNo = '',
otpOrderNo = '',
mobileNo = '';
var msCount = 60; //定时器
var MyTimer = null;
var fromType = 0; //0转账 1提现
var opeType = 0; //0充值 1提现 手机号验证
var bankInfo = {
acctNoArray: '',
idNo: '',
schoolId: '',
trueName: '',
userId: '',
sessionid: '',
wechattype: 1
}
// 20210422 充值账户异常资料补充参数
var acctErrorUpdateParms = {
backSideImgId: '', //反面身份证图片Id
frontSideImgId: '', //正面身份证图片Id
homeAddress: '', //家庭住址
occupation: '', //职业代码
StreetInformation: '', //街道
businessNo: ''
}
// /wefile/wefileId
// 获取上传影像的Token接口
let wefileId = {}
// bizCode: "000000"
// bizMsg: "获取上传影像token成功"
// businessNo: "OB89d5ed802cRA202104226389071452"
// expiredTime: 1619072725503
// project: "BOBS-OBP"
// uuid: "8238f256d8f54209a0e9a2a3b25e7393"
// wefileToken: "QplB0tfvjtzOU+tWgKI2+L+4B9HE8kbpJVREUTwXZCsVqXcUwyDxHAbTU3bW8ziGb4hKAaWiLQXAyZUbYRB9hBKhSt1VVvoFl5qOCR4GT+X1KpcQgBlhKYi/NYPkmsjeZO/qn9YXGDp/1sGmxazv6T05y8EbU9HXreRhF/jh8G1HtUCwprFoaulGFShvV819EUBdHifDF5IjpPekLtgzIm8C/kYYX8xproKvxV4maRji5p1Krkyv/U1K3C18/TyjHwPpC4KlOEqA6QpFujR8yZ42qvLZqfqgUkRFZ4WC27/nN3+do9VNpNbK4MAMSLTRaxdGmKe2wStKbZ5OQ+1WFA=="
// wefileUrl: "https://bfiles-stg.pingan.com.cn/brcp/secfile/sec_wefiles_udmp_upload.do"
export default {
name: "assignDeposit",
data() {
return {
Money: '', //选择金额
RechargeMax: '2000', //最大充值限制
ReflectMoney: '', //提现金额
VerifyCode: '', //验证码
cardBalanceTx: '0', //余额
CodeMsg: "获取验证码"
}
},
created: function() {
},
mounted: function() {
let this_ = this
this.$nextTick(function() {
// $(".RechargeException").siblings().hide()
// $(".RechargeException").show()
//快捷充值按钮
$('.depotMoney').click(function() {
console.log(this);
$(this).addClass('choiceClass');
$(this).siblings().removeClass('choiceClass');
$('.depositTx')[0].value = $(this)[0].innerHTML;
$('.DepositID').removeClass('DisaBledBtn');
})
// 家庭住址
$('#homeAddress').on('click', function() {
weui.picker(cityData, {
defaultValue: [110000, 110000, 110101],
depth: 3,
onChange: function(result) {
console.log(result);
},
onConfirm: function(result) {
console.log(result);
console.log(result);
acctErrorUpdateParms.homeAddress = result[0].label + '/' +
result[1].label + '/' +
result[2].label
$("#homeAddress")[0].innerText = result[0].label + '/' +
result[1].label + '/' +
result[2].label
$("#homeAddress").css("color", "#000");
},
title: '家庭地址'
});
});
// 选择职业
$('#showPicker').on('click', function() {
// 获取职业信息
this_.getOccupationList().then(OccupationList => {
let data = OccupationList.map(v => {
return {
label: v.comment,
value: v.code
}
})
weui.picker(data, {
onChange: function(result) {
console.log(result);
},
onConfirm: function(result) {
console.log(result[0].value);
acctErrorUpdateParms.occupation = result[0].value
$("#showPicker")[0].innerText = result[0].label
$("#showPicker").css("color", "#000");
},
title: '职业信息选择'
});
}).catch(err => {
weui.topTips("获取职业信息列表失败");
})
});
// 初始化
userID = this_.getQueryParams('userID');
sessionID = this_.getQueryParams('seesionID');
fromType = this_.getQueryParams('fromType');
let windowHeight = window.innerHeight;
if (this_.getQueryParams('tabbar')) { //usermain打开加返回按钮
$('#ReturnBox').css('display', 'block');
$('.bottom2').css('margin-top', (windowHeight - 370 < 0 ? 30 : windowHeight -
370) + 'px');
$('.bottom1').css('margin-top', (windowHeight - 570 < 0 ? 30 : windowHeight -
570) + 'px');
} else {
$('.bottom2').css('margin-top', (windowHeight - 320 < 0 ? 30 : windowHeight -
320) + 'px');
$('.bottom1').css('margin-top', (windowHeight - 590 < 0 ? 30 : windowHeight -
590) + 'px');
}
bankInfo.sessionid = sessionID;
this_.QueryUserInfo();
$('#AssginBox').css('display', 'block');
if (fromType == 0) {
// $('.TitleHeader').html('电子账户充值');
} else {
this_.ToWalletTx();
}
setTimeout(function() {
this_.getWefileId()
}, 500)
})
},
methods: {
async depotMoney(value) {
this.Money = parseInt(value)
},
//定时器
IntervalFun() {
if (msCount == 1) {
window.clearInterval(MyTimer); //停止计时器
$('.CodeMsg').css('color', '#01BC73');
this.CodeMsg = "获取验证码"
msCount = 60;
} else {
msCount--;
$('.CodeMsg').css('color', 'gray');
this.CodeMsg = (msCount + "s后获取")
}
},
//按钮操作
HideHTML(dom, type) {
if (type == 0) {
$('.' + dom).css('display', 'none');
} else {
$('.' + dom).css('display', 'block');
}
},
//切换到提现
ToWalletTx() {
$('#DepositBox').css('display', 'none');
$('#TxWalletBox').css('display', 'block');
// $('.TitleHeader').html('电子账户提现');
$('.doBtnTx').html('提现');
opeType = 1;
},
//全部提现
TxAllFun() {
this.ReflectMoney = this.cardBalanceTx * 1
// $('.TxClsTx').val($('.cardBalanceTx')[0].textContent * 1);
},
//隐藏验证码弹框
hidePhoneBox() {
$('.PhoneConfirmBox').css('display', 'none');
// $('.VerifyCode').val('');
this.VerifyCode = ''
orderSerialNo = '';
businessNo = '';
otpOrderNo = '';
},
//返回小程序 跳转指定页面
BackToMini(page) {
if (page == 'UserMain' || page == 'personalCenter') {
wx.miniProgram.switchTab({
url: `/pages/${page}/main`,
});
} else {
wx.miniProgram.redirectTo({
url: `/pages/${page}/main`,
});
}
},
// 输入限制
inputControl(obj, val) {
console.log(obj, val);
obj.value = obj.target.value
obj.value = obj.value.replace(/[^\d.]/g, ""); //清除"数字"和"."以外的字符
obj.value = obj.value.replace(/^\./g, ""); //验证第一个字符是数字而不是.
obj.value = obj.value.replace(/\.{2,}/g, "."); //只保留第一个. 清除多余的.
obj.value = obj.value.replace(".", "$#$").replace(/\./g, "").replace("$#$", "."); //只允许输入一个小数点
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //只能输入两个小数
obj.value = obj.value * 1 > 2000 ? 2000 : obj.value;
this.Money = obj.value + '';
this.ReflectMoney = obj.value + '';
if (obj.value == '' || obj.value * 1 < 3) {
$('.DepositID').addClass('DisaBledBtn');
} else {
$('.DepositID').removeClass('DisaBledBtn');
}
},
//input键盘弹起不会弹
ReturnToTop() {
document.scrollingElement.scrollTo(0, this.scrollTop);
},
//提现结果查询
transferResults() {
let this_ = this;
times++;
let loading = weui.loading('请稍后');
let params = {
accountNo: bankInfo.acctNoArray,
businessNo: businessNo,
orderSerialNo: orderSerialNo, //提现指令号
schoolId: bankInfo.schoolId,
userId: userID,
sessionid: sessionID,
wechattype: 1,
}
$.ajax({
url: gHost + '/bank-wechat/transfer/query',
type: "POST",
contentType: "application/x-www-form-urlencoded",
data: params,
success: function(res7) {
if (res7.code == "10000") {
if (res7.results.status == 0 || res7.results.status ==
1) { //status 状态 0:失败;1:成功;2:处理中 返回处理中,需要调用“提现(提现)结果查询”接口查结果
loading.hide();
if (res7.results.status == 0) {
weui.topTips(res7.results.bizMsg)
} else {
weui.toast('提现成功!', 1500);
}
setTimeout(() => {
location.reload();
}, 2000)
} else {
if (times == 3) {
loading.hide();
weui.topTips('当前提现人数过多,请至我的账户中查看余额');
setTimeout(() => {
this_.BackToMini('UserMain');
}, 1500)
} else {
setTimeout(res => {
this_.transferResults();
}, 2000)
}
}
} else {
loading.hide();
weui.topTips(res7.message)
}
},
error: function(err) {
loading.hide();
},
});
},
//充值结果查询
depositResults() {
let this_ = this;
times++;
let loading = weui.loading('请稍后');
let params = {
businessNo: businessNo,
schoolId: bankInfo.schoolId,
userId: userID,
sessionid: sessionID,
wechattype: 1,
}
$.ajax({
url: gHost + '/bank-wechat/recharge/query',
type: "POST",
contentType: "application/x-www-form-urlencoded",
data: params,
success: function(res8) {
if (res8.code == "10000") {
if (res8.results.orderStatus == 3 || res8.results.orderStatus ==
4) { //orderStatus 0:初始值,1:已提交,2:未知,3:失败,4:成功,5:成功未打款
loading.hide();
if (res8.results.orderStatus == 3) {
weui.topTips(res8.results.errMsg)
} else {
weui.toast('充值成功!', 1500);
}
setTimeout(() => {
location.reload();
}, 2000)
} else {
if (times == 3) {
loading.hide();
weui.topTips('当前充值人数过多,请至我的账户中查看余额');
setTimeout(() => {
this_.BackToMini('UserMain');
}, 1500)
} else {
setTimeout(res => {
this_.depositResults();
}, 2000)
}
}
} else {
loading.hide();
weui.topTips(res8.message);
}
},
error: function(err) {
loading.hide();
},
});
},
//充值/提现方法
DoNextStep() {
let this_ = this;
console.log('请填写验证码');
if (this_.VerifyCode == '') {
weui.topTips('请填写验证码')
return
};
if (limitClick) {
return
} else {
limitClick = true;
setTimeout(() => {
limitClick = false;
}, 3000);
}
let loading = weui.loading('请稍后');
times = 0;
if (opeType == 0) { //充值
let params = {
businessNo: businessNo,
otpOrderNo: otpOrderNo,
fromAccNo: payCardNumber, //付款账户
otpValue: $('.VerifyCode')[0].value, //验证码
transAmt: $('.depositTx')[0].value * 1, //交易金额
schoolId: bankInfo.schoolId,
userId: userID,
sessionid: sessionID,
wechattype: 1,
}
$.ajax({
url: gHost + '/bank-wechat/recharge',
type: "POST",
contentType: "application/x-www-form-urlencoded",
data: params,
success: function(res5) {
if (res5.code == "10000") {
if (res5.errCode && res5.errCode == 'TI009') {
loading.hide();
weui.topTips(res5.results.errMsg);
setTimeout(function() {
$(".RechargeException").siblings().hide()
$(".RechargeException").show()
})
return
};
if (res5.results.orderStatus == 3 || res5.results.orderStatus ==
4) { //orderStatus 0:初始值,1:已提交,2:未知,3:失败,4:成功,5:成功未打款
if (res5.results.orderStatus == 3) {
loading.hide();
weui.topTips(res5.results.errMsg);
} else {
loading.hide();
weui.toast('充值成功!', 1500);
}
setTimeout(() => {
location.reload();
}, 2000)
} else {
setTimeout(() => {
// loading.hide();
this_.depositResults();
}, 2000)
}
} else {
loading.hide();
weui.topTips(res5.message)
}
},
error: function(err) {
loading.hide();
},
});
} else if (opeType == 1) { //提现
let params = {
accountName: bankInfo.trueName,
amount: $('.TxClsTx')[0].value * 1,
businessNo: businessNo,
fromAccountName: bankInfo.trueName,
fromAccountNo: bankInfo.acctNoArray,
otpOrderNo: otpOrderNo,
otpValue: $('.VerifyCode')[0].value, //验证码
toAccountNo: payCardNumber,
schoolId: bankInfo.schoolId,
userId: userID,
sessionid: sessionID,
wechattype: 1,
}
$.ajax({
url: gHost + '/bank-wechat/transfer/withdrawal',
type: "POST",
contentType: "application/x-www-form-urlencoded",
data: params,
success: function(res6) {
if (res6.code == "10000") {
orderSerialNo = res6.results.orderSerialNo;
if (res6.results.status == 1 || res6.results.status ==
0) { //状态 0:失败;1:成功;2:处理中 返回处理中,需要调用“提现(转账)结果查询”接口查结果
if (res6.results.status == 0) {
loading.hide();
weui.topTips(res6.results.bizMsg)
} else {
loading.hide();
weui.toast('提现成功!', 1500);
}
setTimeout(() => {
location.reload();
}, 2000)
} else {
setTimeout(() => {
// loading.hide();
transferResults();
}, 2000)
}
} else {
loading.hide();
weui.topTips(res6.message)
}
},
error: function(err) {
loading.hide();
},
});
}
},
//充值/提现判断
toDeposit(type) { //type 0充值 1提现
let this_ = this;
businessNo = '';
otpOrderNo = '';
opeType = type;
if (type == 0) {
if ($('.DepositID').hasClass('DisaBledBtn'));
if (this.Money * 1 < 3) {
weui.topTips('充值金额必须大于3元');
return
}
if (this.Money * 1 > this.RechargeMax * 1) {
weui.topTips(`充值金额不能大于${this.RechargeMax*1}元`);
return
}
} else {
if ($('.TxClsTx')[0].value * 1 < 0.01) {
weui.topTips('提现金额须大于等于0.01元');
return
}
if ($('.TxClsTx')[0].value * 1 > this.RechargeMax * 1) {
weui.topTips(
`提现金额不可大于账户余额`);
return
}
}
$('.PhoneConfirmBox').css('display', 'block');
},
//发送验证码
SendMsg() {
let this_ = this;
if (this_.CodeMsg != '获取验证码') return false;
let loading = weui.loading('发送中');
if (opeType == 0) { //充值
let params = {
fromAccNo: payCardNumber, //付款账户,
transAmt: $('.depositTx')[0].value * 1, //交易金额
schoolId: bankInfo.schoolId,
userId: userID,
sessionid: sessionID,
wechattype: 1,
}
$.ajax({
url: gHost + '/bank-wechat/otp/send/recharge',
type: "POST",
contentType: "application/x-www-form-urlencoded",
data: params,
success: function(res5) {
loading.hide();
if (res5.code == "10000") {
otpOrderNo = res5.results.otpOrderNo;
businessNo = res5.results.businessNo;
weui.toast('验证码已发送,请注意查收!', 1000);
this_.IntervalFun();
MyTimer = window.setInterval(IntervalFun, 1000);
} else {
weui.topTips(res5.message)
}
},
error: function(err) {
loading.hide();
},
});
} else if (opeType == 1) { //提现
let params = {
accountNo: bankInfo.acctNoArray, //银行卡号
mobileNo: mobileNo, //手机号
'transferAccountBizKeyVO.accountName': bankInfo.trueName, //收款方户名
'transferAccountBizKeyVO.amount': $('.TxClsTx')[0].value * 1, //提现金额
'transferAccountBizKeyVO.fromAccountName': bankInfo.trueName, //转出户名
'transferAccountBizKeyVO.fromAccountNo': bankInfo.acctNoArray, //转出卡号(互联网账户卡号)
'transferAccountBizKeyVO.toAccountNo': payCardNumber, //收款方卡号(绑定卡卡号)
schoolId: bankInfo.schoolId,
userId: userID,
sessionid: sessionID,
wechattype: 1,
}
$.ajax({
url: gHost + '/bank-wechat/otp/send/transfer/account',
type: "POST",
contentType: "application/x-www-form-urlencoded",
data: params,
success: function(res5) {
loading.hide();
if (res5.code == "10000") {
otpOrderNo = res5.results.otpOrderNo;
businessNo = res5.results.businessNo;
weui.toast('验证码已发送,请注意查收!', 1000);
this_.IntervalFun();
MyTimer = window.setInterval(this_.IntervalFun, 1000);
} else {
weui.topTips(res5.message)
}
},
error: function(err) {
loading.hide(res5.message);
},
});
}
},
//换绑卡
ChangeCardPay(bankName, bindCard) {
let this_ = this;
if (bindCard == payCardNumber) {
return
}
var loading = weui.loading('请稍后');
$.ajax({
url: gHost + '/bank-wechat/user/bank/change/bind',
type: "POST",
contentType: "application/x-www-form-urlencoded",
data: {
schoolId: bankInfo.schoolId,
userId: userID,
sessionid: sessionID,
wechattype: 1,
accountName: bankName,
accountNo: bindCard,
},
success: function(res5) {
loading.hide();
if (res5.code == "10000") {
this_.HideHTML('showBindCardList', 0);
this_.queryUserBankInfo();
} else {
weui.topTips(res5.message)
}
},
error: function(err) {
loading.hide();
},
});
},
//查询一类卡绑定列表
queryBindCardList() {
let this_ = this;
let loading = weui.loading('请稍后');
$.ajax({
url: gHost + '/bank-wechat/query/account',
type: "POST",
contentType: "application/x-www-form-urlencoded",
data: {
schoolId: bankInfo.schoolId,
userId: userID,
sessionid: sessionID,
wechattype: 1
},
success: function(res4) {
loading.hide();
if (res4.code == "10000") {
var divList = '';
var choiceIndex = 0;
for (let i = 0; i < res4.results.accountList[0].bindcardList.length; i++) {
divList += `<div onclick=ChangeCardPay('${res4.results.accountList[0].bindcardList[i].bankName}','${res4.results.accountList[0].bindcardList[i].bindCardNo}')>
<p>${res4.results.accountList[0].bindcardList[i].bankName}</p>
<p>${res4.results.accountList[0].bindcardList[i].bindCardNo.substr(0,4)+" **** **** "+res4.results.accountList[0].bindcardList[i].bindCardNo.substr(-4)}</p>
<img class='myImg${i} BankListImg' src='img/choiceBank.png'>
</div>`
if (res4.results.accountList[0].bindcardList[i].bindCardNo == payCardNumber) {
choiceIndex = i;
}
}
$('.hideListCover').html(divList);
$(`.myImg${choiceIndex}`).css('display', 'block');
$('.showBindCardList').css('display', 'block');
} else {
weui.topTips(res4.message)
}
},
error: function(err) {
loading.hide();
},
});
},
//获取银行余额
queryBankInfo() {
let this_ = this;
let loading = weui.loading('请稍后');
$.ajax({
url: gHost + '/bank-wechat/query/balance',
type: "POST",
timeout: 8000,
contentType: "application/x-www-form-urlencoded",
data: bankInfo,
success: function(res3) {
loading.hide();
if (res3.code == "10000") {
if (res3.results.acctInfoList == null) {
weui.topTips("账户信息为空,余额查询失败");
} else {
this_.cardBalanceTx = ((res3.results.acctInfoList[0].hqBalanceDTOList[0]
.balance *
1).toFixed(2));
$('.TxClsTx').attr('placeholder',
`可提现金额${(res3.results.acctInfoList[0].hqBalanceDTOList[0].balance*1).toFixed(2)}元`
)
this_.RechargeMax = ((2000 - ((res3.results.acctInfoList[0]
.hqBalanceDTOList[0]
.balance * 1).toFixed(2) * 1)).toFixed(2));
}
} else {
weui.topTips(res3.message)
}
},
error: function(err) {
loading.hide();
},
complete: function(XMLHttpRequest, status) {
loading.hide();
if (status == 'timeout') {
weui.topTips("请求超时,余额查询失败");
}
}
})
},
//获取用户已填写银行信息
queryUserBankInfo() {
let this_ = this;
let loading = weui.loading('请稍后');
$.ajax({
url: gHost + '/bank-wechat/user/bank/get',
type: "POST",
contentType: "application/x-www-form-urlencoded",
data: {
schoolId: bankInfo.schoolId,
userId: userID,
sessionid: sessionID,
wechattype: 1
},
success: function(res2) {
if (res2.code == "10000") {
bankInfo.acctNoArray = res2.results.accountNo;
bankInfo.idNo = res2.results.idNo;
bankInfo.trueName = res2.results.trueName;
payCardNumber = res2.results.bindCardNo;
$('.bankNameClass').html(
`${res2.results.bindCardName}(${res2.results.bindCardNo.substr(-4)})`);
$('.bankNameClass1').html(res2.results.bindCardName + '(储蓄卡)');
$('.payCardEndNo').html('尾号' + res2.results.bindCardNo.substr(-4));
$('.myPhoneTx').html(res2.results.mobileNo);
mobileNo = res2.results.mobileNo;
this_.queryBankInfo();
} else {
weui.topTips(res2.message)
}
},
error: function(err) {
loading.hide();
},
});
},
//查询用户信息
QueryUserInfo() {
let this_ = this;
let loading = weui.loading('请稍后');
$.ajax({
url: gHost + '/wechat/svweapp/QueryPersonalInfo',
type: "POST",
contentType: "application/x-www-form-urlencoded",
data: {
userid: userID,
sessionid: sessionID,
wechattype: 1
},
success: function(res1) {
loading.hide();
if (res1.code == "10000") {
bankInfo.schoolId = res1.results.schoolid;
bankInfo.userId = res1.results.id;
$('.userNameTx').html(res1.results.name);
$('.schoolNameTx').html(res1.results.schoolname);
$('.ClsNameTx').html(res1.results.gradename + res1.results.classname);
if (res1.results.usertype == 1) {
$('.StudentCls').css('display', 'block');
$('.TeacherCls').css('display', 'none');
} else {
$('.StudentCls').css('display', 'none');
$('.TeacherCls').css('display', 'block');
}
this_.queryUserBankInfo();
} else {
weui.topTips(res1.message);
setTimeout(() => {
this_.BackToMini('UserMain');
}, 1500)
}
},
error: function(err) {
loading.hide();
},
});
},
// 充值账户异常资料补充
// recharge/acctErrorUpdateResource
acctErrorUpdateResource() {
acctErrorUpdateParms.businessNo = wefileId.businessNo; //业务流水号
acctErrorUpdateParms.schoolId = bankInfo.schoolId;
acctErrorUpdateParms.userId = userID;
acctErrorUpdateParms.homeAddress = acctErrorUpdateParms.homeAddress + acctErrorUpdateParms
.StreetInformation
let {
backSideImgId,
frontSideImgId,
homeAddress,
occupation
} = acctErrorUpdateParms
acctErrorUpdateParms.sessionid = sessionID
acctErrorUpdateParms.wechattype = 1
if (!occupation) {
weui.topTips("请选择职业信息");
return
}
if (!homeAddress) {
weui.topTips("请选择家庭住址");
return
}
if (!backSideImgId) {
weui.topTips("请上传反面身份证图片");
return
}
if (!frontSideImgId) {
weui.topTips("请上传正面身份证图片");
return
}
let loading = weui.loading('信息更新中,请稍后');
return new Promise((resolve, reject) => {
$.ajax({
url: gHost + '/bank-wechat/recharge/acctErrorUpdateResource',
type: "POST",
contentType: "application/x-www-form-urlencoded",
data: acctErrorUpdateParms,
timeout: 8000, //超时时间设置,单位毫秒
success: function(res) {
loading.hide();
if (res.code == '000000') {
weui.topTips("信息更新成功", {
duration: 3000, //3秒后消失
className: 'weui-toptips_success', //自定义类名
callback: function() {
//回调函数
console.log('close')
window.location.reload()
}
});
resolve(res)
} else {
weui.topTips("信息更新失败," + res.message);
loading.hide();
reject(res.message)
}
},
error: function(err) {
loading.hide();
reject(err)
},
})
})
},
//点击上传文件
uploaderInput(e, CredType) {
let fileInfo = e.files[0];
let fileTypeList = fileInfo.name.split(".");
let fileType = fileTypeList[fileTypeList.length - 1];
if (!(fileType == "jpg" || fileType == "png")) {
weui.topTips("不符合的文件格式,请重新选择");
return;
}
let reads = new FileReader();
reads.readAsDataURL(fileInfo);
reads.onload = function(e) {
$(`.idCardPhoto${CredType}`).attr('src', this.result)
};
// console.log(fileInfo, fileType)
// console.log(wefileId);
let formData = new FormData();
formData.append("project", wefileId.project)
formData.append("file", fileInfo)
formData.append("fileName", fileInfo.name)
formData.append("expiredTime", wefileId.expiredTime)
formData.append("uuid", wefileId.uuid)
formData.append("wefileToken", wefileId.wefileToken)
formData.append("wefileUrl", wefileId.wefileUrl)
formData.append("sessionid", sessionID)
formData.append("wechattype", 1)
this.UploadIDCardInfo(wefileId.wefileUrl, formData, CredType)
},
// 【获取上传影像token接口】中已经返回了请求地址
UploadIDCardInfo(url, formData, type) {
let loading = weui.loading('请稍后,正在上传');
return new Promise((resolve, reject) => {
$.ajax({
url: gHost +
`/bank-wechat-server/wefile/upload?wechattype=1&sessionid=${sessionID}`,
type: "post",
data: formData,
processData: false,
contentType: false,
success: function(res) {
console.log(res);
if (res.code == '10000') {
if (type == 1) {
acctErrorUpdateParms.frontSideImgId = res.results;
} else {
acctErrorUpdateParms.backSideImgId = res.results;
}
weui.topTips("上传成功", {
duration: 3000, //3秒后消失
className: 'weui-toptips_success', //自定义类名
callback: function() {}
});
loading.hide();
resolve(res)
} else {
weui.topTips(res.message);
loading.hide();
reject(res.message)
}
// setTimeout(function() {
// loading.hide();
// resolve(res)
// }, 3000)
},
error: function(err) {
loading.hide();
weui.topTips("上传失败!请检查");
reject(err)
},
})
})
},
getWefileId(fileType = 'jpg/png/jpeg') {
let loading = weui.loading('请稍后');
return new Promise((resolve, reject) => {
$.ajax({
url: gHost + '/bank-wechat/wefile/wefileId',
type: "post",
data: {
Authorization: this.getQueryParams('seesionID'),
businessNo: businessNo,
fileType: fileType, //jpg/png/doc/docx/txt/pdf/ppt/xls/xlsx/pptx/jpeg
schoolId: bankInfo.schoolId,
userId: userID,
sessionid: sessionID,
wechattype: 1
},
success: function(res) {
loading.hide();
if (res.code == "10000") {
wefileId = res.results
resolve(res.results)
} else {
reject(res.message)
}
},
error: function(err) {
loading.hide();
reject(err)
},
})
})
},
//街道信息
StreetInformation(e) {
let value = $(e)[0].value;
console.log(value);
acctErrorUpdateParms.StreetInformation = value
},
//立即更新
UpdateRechargeException() {
this.acctErrorUpdateResource()
},
// query/getOccupationList职业信息接口
getOccupationList() {
let loading = weui.loading('请稍后');
return new Promise((resolve, reject) => {
$.ajax({
url: gHost + '/bank-wechat/query/getOccupationList',
type: "post",
data: {
sessionid: sessionID,
wechattype: 1
},
headers: {
'Authorization': getQueryParams('seesionID'),
},
success: function(res) {
loading.hide();
if (res.code == "10000") {
resolve(res.results)
} else {
reject(res.message)
}
},
error: function(err) {
loading.hide();
reject(err)
},
})
})
},
//获取参数
getQueryParams(params) {
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (pair[0] == params) {
return pair[1];
}
}
return (false);
}
}
}
</script>
<style scoped lang="scss">
.RechargeException {
padding-top: 0.63rem;
}
.weui-label {
width: 118px;
height: 42px;
font-size: 40rpx;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #3D3D3D;
line-height: 42px;
font-weight: bold;
}
.tiptext {
/* width: 24.5rem; */
height: 1.06rem;
font-size: 0.75rem;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #03BC73;
line-height: 1.06rem;
margin-bottom: 0.625rem;
text-align: center;
}
.RechargeException input::placeholder {
color: #A1A4A8;
}
.RechargeException .weui-cell {
height: 4rem;
/* line-height: 4rem; */
padding: 0 !important;
}
.RechargeException .liDiv .imgBox {
width: 15.13rem;
/* height: 10rem; */
margin: 0 auto;
/* margin-top: 0.88rem; */
text-align: center;
}
.imgBox img {
width: 100%;
}
.imgBox .positionCam {
height: 1rem;
font-size: 0.69rem;
font-family: PingFang-SC-Medium, PingFang-SC;
font-weight: 500;
color: #6D7278;
line-height: 1rem;
text-align: center;
position: relative;
top: -2.0625rem;
}
.idCardPhoto1,
.idCardPhoto2 {
width: auto !important;
height: auto;
max-width: 100%;
max-height: 100%;
}
.weui-toptips_success {
background-color: #03BC73 !important
}
html,
body {
/* -webkit-overflow-scrolling:none; */
}
#MoneyBox {
display: flex;
border: none !important;
justify-content: space-between;
margin-bottom: 25px !important;
}
.DisaBledBtn {
background: #e6e6e6 !important;
color: gray;
}
.choiceClass {
background: #01BC73 !important;
;
color: #fff !important;
}
#MoneyBox>div {
width: 28% !important;
height: 40px !important;
line-height: 40px !important;
border-radius: 5px;
font-size: 15px;
text-align: center;
}
.TopBox>.dayTips {
color: #888888;
text-decoration: none;
display: inline-block;
width: 48vw;
font-size: 13px;
text-align: right;
}
.changPhone {
font-size: 14px;
color: #39F;
text-align: right;
}
.TopBox>p {
font-size: 17px;
font-weight: bold;
width: 40vw;
display: inline-block;
}
.myPhoneDiv {
height: 50px;
display: flex;
align-items: center;
border-bottom: 1px solid #eeeeee;
}
body,
p {
margin: 0;
}
input {
outline: none;
}
button {
border: none;
}
#TxWalletBox {
display: none;
margin-top: 30px;
}
.title1 {
display: inline-block;
width: 30%;
}
.closePhoneBox {
position: absolute;
top: 10px;
right: 10px;
width: 20px;
height: 20px;
}
#ReturnBox {
font-size: 15px;
display: none;
margin: 10px 0;
}
.returnImgBox {
width: 15px;
height: 15px;
vertical-align: middle;
}
.TxDiv {
width: 90vw;
height: 48px;
line-height: 48px;
position: relative;
margin: 10px 0;
border-radius: 5px;
border: 1px solid #EEEEEE;
}
.accountBox1 {
margin-top: 20px;
font-weight: bold;
position: relative;
}
.accountBox1 .AcountTitle {
font-size: 14px;
display: inline-block;
color: #888;
}
.accountBox1 .bankNameClass1 {
font-size: 15px;
float: right;
position: absolute;
right: 0;
bottom: 3px;
top: 2px;
}
.accountBox1 img {
width: 8px;
height: 13px;
position: absolute;
right: 0;
bottom: 5px;
}
.TxClsTx {
width: 50%;
padding-right: 40%;
display: inline-block;
vertical-align: bottom;
/* border: 1px solid #EEEEEE; */
border: none;
padding-left: 25px;
outline: none;
height: 48px;
font-size: 15px;
}
#AssginBox {
width: 90vw;
padding: 0 5vw;
/* height:100vh; */
overflow-y: auto;
display: none;
padding-top: 20rpx;
}
.MyPhoneCls {
position: fixed;
width: 70vw;
font-size: 15px;
left: 10vw;
padding: 20px 5vw;
top: 20vh;
background: #fff;
border-radius: 5px;
z-index: 20;
display: flex;
justify-content: space-between;
}
.doBtnTx {
border: none;
width: 60vw;
margin-left: 5vw;
height: 41px;
margin-top: 60px;
line-height: 40px;
font-size: 16px;
background: #01BC73;
color: #fff;
border-radius: 5px;
outline: none;
}
.MyPhoneCls input {
width: 21vw;
border: none;
outline: none;
}
.CodeMsg {
color: #01BC73;
border-radius: 5px;
background: #EBEBEB;
font-size: 13px;
padding: 2%;
}
.myPhoneP {
border-bottom: 1px solid #eeeeee;
font-size: 14px;
display: flex;
}
.VerifyCode {
font-size: 14px;
/* color: #888888; */
}
.MyPhoneCls p {
height: 50px;
line-height: 50px;
}
.TitleHeader {
font-size: 15px;
text-align: center;
height: 60px;
line-height: 60px;
}
.centerBox {
position: absolute;
font-weight: bold;
color: #fff;
width: 80vw;
left: 13vw;
top: 5vw;
}
.BankClass {
width: 100vw;
position: fixed;
bottom: 0;
left: 0;
z-index: 15;
max-height: 60vh;
background: #F2F2F2;
overflow-y: auto;
text-align: center;
border-top-left-radius: 20px;
border-top-right-radius: 20px;
}
.hideListCover>div {
border-bottom: 1px solid #e6e6e6;
padding: 10px 0;
background: #fff;
font-size: 14px;
position: relative;
}
.BankListImg {
position: absolute;
display: none;
right: 50px;
width: 15px;
top: 25px;
}
.BankClass>p {
height: 25px;
line-height: 25px;
}
.choiceBox {
font-weight: bold;
height: 50px;
line-height: 50px;
border-bottom: 1px solid #e6e6e6;
}
.HidenText span {
width: 40vw;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
.IconCls {
font-size: 12px;
background: #20946D;
border-radius: 15px;
text-align: center;
padding: 1vw 2vw;
}
.ImgIcon1 {
display: inline-block;
width: 8px !important;
margin-left: 5px;
margin-top: -2px;
vertical-align: middle;
}
.ImgContent {
position: relative;
/* margin-left: 5vw; */
}
.ImgContent>img {
width: 90vw;
}
.contentDiv {
position: absolute;
top: 0;
color: #fff;
padding: 5vw;
}
.contentDiv>p {
width: 80vw;
display: flex;
justify-content: space-between;
}
.contentDiv>span {
color: #fff;
}
.depositBox {
width: 90vw;
margin-top: 20px;
}
.AllCharge {
padding: 0 5px;
border-radius: 20px;
font-size: 15px;
width: 25%;
text-align: center;
height: 40px;
position: absolute;
line-height: 40px;
color: #fff;
background: #A5876B;
top: 5px;
right: 0;
}
.depositImg {
width: 14px;
vertical-align: middle;
margin-right: 8px;
}
.inputTitle {
font-size: 17px;
font-weight: bold;
}
.depositBox div {
width: 90vw;
height: 46px;
line-height: 46px;
margin: 10px 0;
border-radius: 5px;
position: relative;
border: 1px solid #EEEEEE;
}
.depositBox>div>input {
display: inline-block;
// vertical-align: bottom;
border: none;
padding-left: 25px;
height: 46px;
outline: none;
font-size: 15px;
}
.BgCoverBox {
width: 100vw;
height: 100vh;
position: fixed;
left: 0;
top: 0;
z-index: 10;
background: #000000;
opacity: 0.5;
}
.hideListCover {
max-height: 50vh;
overflow-y: auto;
padding: 0;
}
.bottomDiv {
font-weight: bold;
height: 50px;
line-height: 50px;
border-bottom: 1px solid #e6e6e6;
}
.accountBox {
margin: 40px 0 12px 0;
font-weight: bold;
position: relative;
}
.accountBox>img {
width: 8px;
height: 13px;
position: absolute;
right: 0;
bottom: 4px;
}
.AcountTitle {
font-size: 14px;
display: inline-block;
color: #888;
}
.bankNameClass {
font-size: 15px;
float: right;
margin-right: 18px;
position: absolute;
right: 0;
bottom: 0;
}
.changeCardBox {
font-size: 15px;
color: #268EF8;
text-align: center;
text-decoration: underline;
width: 90vw;
bottom: 40px;
}
.bottomDetail {
background: #01BC73;
color: #fff;
width: 86vw;
height: 45px;
outline: none;
line-height: 45px;
font-size: 17px;
text-align: center;
bottom: 70px;
margin: 20vh 0 10px 2vw;
border: none;
border-radius: 5px;
}
.depositTx div {
position: absolute;
border: none;
}
</style>
<template>
<view class="container">
<view id="comFirmCode"></view>
<p>请使用微信扫码识别二维码,确认采集信息</p>
</view>
</template>
<script>
export default {
name:"confirmQrCode",
data() {
return {
}
},
created: function() {
},
mounted: function() {
let this_ = this;
this.$nextTick(function() {
setTimeout(function() {
var qrCode = new QRCode(document.getElementById("comFirmCode"), {
width: 201,
height: 201
})
console.log(location.href)
var myCode = location.href.split('mpwechat/confirmQrCode.html?');
var url = `${myCode[0]}wechat/qr/qrreacquire?${myCode[1]}`;
console.log('url = ' + url)
qrCode.makeCode(url.replace("invitation", "main"));
$("#comFirmCode").find('img').css({
"width": "50vw",
"height": "50vw",
"padding": "3vw",
"border": "4px solid #39ddb0"
})
}, 100)
})
},
methods: {
}
}
</script>
<style scoped>
body {
margin: 0;
}
#comFirmCode {
width: 50vw;
height: 50vw;
margin: 10vh 0 0 21vw;
}
img {
width: 50vw;
height: 50vw;
padding: 3vw;
border: 4px solid #39ddb0;
}
p {
font-size: 14px;
color: gray;
margin-top: 50px;
text-align: center;
}
</style>
<template>
<view class="container">
</view>
</template>
<script>
export default {
data() {
return {
}
},
onLoad() {
uni.showLoading({
mask: true,
title: "请稍后......."
})
uni.navigateTo({
url: "/pages/ClsWeekReport/ClsWeekReport",
success: function() {
uni.hideLoading()
}
})
},
created: function() {
// console.log(this.$echarts);
},
methods: {
},
mounted: function() {}
}
</script>
<style scoped>
</style>
<template>
<view class="container">
<view class="logonBox" id="Login1">
<p>请确认是否登录【校智付平台】</p>
<view id="inputDiv" onclick="InputClick()">
点击上传通讯录
</view>
<input id="inputBox" type="file" @input="upload(this)" accept=".txt" />
<button onclick="LoginTo()">登录</button>
</view>
<view id="Login2">
<p>API同步设置<img class="imgBox" src="../../static/img/question.png" title="通过API同步通讯录可获取到应用中的通讯录可见范围内全部数据"
alt=""></p>
<view style="display: flex;justify-content: space-between;margin:30rpx 0;">
<view style="line-height: 40rpx;">
<span style="color: red;font-size: 18rpx;">*</span>
<span>secret:</span>
</view>
<input id="inputBox2" onkeyup="this.value=this.value.replace(/\s+/g,'')" type="text" />
</view>
<view class="btngroup" style='display:flex;width: 60%;margin-left: 20%;justify-content: space-between;'>
<view class="cancel" @click='windowClose'>取消</view>
<view class="enture" @click="handleSecret">确定</view>
</view>
</view>
<view class="copyRight">
<p>湖南校智付网络科技有限公司All Rights Reserved 湘ICP备 17004139号-1 Copyright ©<span id="NowYear"></span></p>
</view>
</view>
</template>
<script>
let Host = '',
Token = '',
authUrl = '',
JsonList = [],
upLoadSuccess = false,
syncMode = 1; //采集流程区分
let AuthCode, HostService;
export default {
name:"wxWorkAuth",
data() {
return {
}
},
created: function() {
},
mounted: function() {
let this_ = this;
AuthCode = this_.getQueryParams('auth_code');
HostService = this_.getQueryParams('app');
this.$nextTick(function() {
if (AuthCode === undefined || AuthCode == '') {
uni.showToast({
icon: "none",
title: "auth_code参数确失"
})
return
};
$('#NowYear').html(new Date().getFullYear())
this_.wxLogin();
$("#inputDiv").click(function() {
$("#inputBox").click();
});
})
},
methods: {
//获取参数
getQueryParams(params) {
let href = window.location.href
let query = href.substring(href.indexOf('?') + 1);
let vars = query.split("&");
for (var i = 0; i < vars.length; i++) {
let pair = vars[i].split("=");
if (pair[0] == params) {
return pair[1];
}
}
return (false);
},
//企微单点登录
wxLogin() {
// $('#Login2').css('display', 'block');
// Token = "res.results.token";
// syncMode = 2;
// return
$.ajax({
url: `${Host}/${HostService}/admin/code2Token`,
data: JSON.stringify({
authCode: AuthCode
}),
type: "POST",
// contentType: "application/json",
dataType: "json",
success: function(res) {
if (res.code == 10000) {
if (res.results.syncMode == 2) { //secret 流程2
$('#Login2').css('display', 'block');
Token = res.results.token;
syncMode = 2;
} else { //默认流程
syncMode = 1;
$('#Login1').css('display', 'block');
Token = res.results.token;
getTxtUrl();
}
} else {
alert(res.message);
}
}
})
},
//提交secret
handleSecret() {
if ($('#inputBox2').val() == '') {
alert('请先填写secret')
return
}
$.ajax({
url: `${Host}/${HostService}/admin/SubmitContactSecret`,
data: JSON.stringify({
secret: $('#inputBox2').val()
}),
type: "POST",
// contentType: "application/json",
dataType: "json",
success: function(res) {
if (res.code == 10000) {
alert('提交成功');
window.location = location.href.split('mpwechat/wxWorkAuth.html')[0];
} else {
alert(res.msg);
}
},
beforeSend: function(xhr) {
xhr.setRequestHeader("token", Token);
}
})
},
//获取转义后的下载地址
getTxtUrl() {
$.ajax({
url: `${Host}/${HostService}/admin/getIdTranslateFileUrl`,
data: {},
type: "GET",
contentType: "application/json",
dataType: "json",
success: function(res) {
if (res.code == 10000) {
authUrl = res.results.url;
download()
// alert('链接='+authUrl)
} else {
alert(res.message);
}
},
beforeSend: function(xhr) {
xhr.setRequestHeader("token", Token);
}
})
},
//下载
download() {
this.$nextTick(function() {
let a = document.createElement('a');
let event = new MouseEvent('click');
a.href = authUrl;
console.log('导出路径 = ' + authUrl)
a.dispatchEvent(event);
})
},
//上传转义内容
sendTXTContent() {
console.log(JsonList);
if (JsonList && JSON.parse(JsonList) != '' && JSON.parse(JsonList).length && JSON.parse(JsonList)[0]
.corp_id) {} else {
$("#inputDiv").html('点击上传通讯录');
return alert('上传文件有误,请重新上传');
}
$.ajax({
url: `${Host}/${HostService}/admin/uploadIdTranslateFileContent`,
data: JSON.stringify({
fileContent: JsonList
}),
contentType: "application/json",
type: "POST",
dataType: "json",
success: function(res) {
if (res.code == 10000) {
upLoadSuccess = true;
} else {
upLoadSuccess = false;
alert(res.message);
}
},
beforeSend: function(xhr) {
xhr.setRequestHeader("token", Token);
}
})
},
//跳转
LoginTo() {
if (!upLoadSuccess) {
alert('通讯录未导入,请导入通讯录!');
return
}
window.location = location.href.split('mpwechat/wxWorkAuth.html')[0];
},
windowClose() {
window.close();
},
//本地文件的内容
upload(input) { //支持chrome IE10
if (window.FileReader) {
var file = input.files[0];
event.target.value = ''; //解决同一个文件不能二次上传
$("#inputDiv").html(file.name);
filename = file.name.split(".")[0];
var reader = new FileReader();
reader.onload = function() {
JsonList = this.result;
sendTXTContent()
// alert(this.result);
}
reader.readAsText(file);
}
//支持IE 7 8 9 10
else if (typeof window.ActiveXObject != 'undefined') {
var xmlDoc;
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.load(input.value);
JsonList = xmlDoc.xml;
sendTXTContent()
// alert(xmlDoc.xml);
}
// //支持FF
else if (document.implementation && document.implementation.createDocument) {
var xmlDoc;
xmlDoc = document.implementation.createDocument("", "", null);
xmlDoc.async = false;
xmlDoc.load(input.value);
JsonList = xmlDoc.xml;
sendTXTContent()
// alert(xmlDoc.xml);
} else {
alert('error');
}
console.log(JsonList)
}
}
}
</script>
<style scoped>
page {
width: 100vw;
height: 100vh;
margin: 0;
padding: 0;
background-image: url(../../static/img/loginBg.png);
}
.imgBox {
display: inline-block;
width: 17rpx;
margin-left: 5rpx;
vertical-align: middle;
}
.logonBox {
margin: 20vh auto;
text-align: center;
background: #fff;
width: 300rpx;
display: none;
border-radius: 5rpx;
padding: 20rpx 50rpx 30rpx 50rpx;
}
#Login2 {
margin: 20vh auto;
text-align: center;
background: #fff;
width: 100%;
display: none;
border-radius: 5rpx;
padding: 20rpx 20rpx 30rpx 20rpx;
}
#Login2>p {
text-align: left;
margin: 0;
padding-bottom: 10rpx;
border-bottom: 1rpx solid #e6e6e6;
}
#inputBox2 {
height: 40rpx;
border: 1rpx solid #e6e6e6;
width: 75%;
padding: 0 2%;
outline: none;
}
#Login2>div>button {
width: 45% !important;
height: 40rpx !important;
cursor: pointer;
font-size: 15rpx;
}
#Login2>div>button:hover {
opacity: 0.8;
}
.btngroup view{
width: 300rpx;
height: 60rpx;
text-align: center;
line-height: 60rpx;
margin: 0 auto;
border: 2rpx solid #ccc;
}
.cancel {
background: #fff;
color: #888;
}
.enture {
background: linear-gradient(to top, #0BC5B7, #2FDE97);
}
.logonBox>p {
font-size: 18rpx;
font-weight: bold;
}
button {
width: 90%;
height: 45rpx;
outline: none;
border-radius: 5rpx;
margin-top: 15rpx;
border: none;
line-height: 0;
color: #fff;
font-size: 20rpx;
background: -webkit-linear-gradient(left, #0BC5B7, #2FDE97);
}
.copyRight {
position: fixed;
bottom: 20rpx;
}
.copyRight>p {
text-align: center;
font-size: 14rpx;
width: 100vw;
color: #3BBDB1;
}
#inputBox {
height: 100%;
width: 100%;
opacity: 0;
}
#inputDiv {
background: #fff;
border: 1rpx dashed #2FDE97;
text-align: center;
width: 200rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
font-size: 15rpx;
color: #2FDE97;
height: 35rpx;
margin-left: 50rpx;
border-radius: 2rpx;
line-height: 35rpx;
margin-top: 30rpx;
}
</style>
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
/*
* desc
* CreateTime
* Copyright @zilvzsy
* author @zilvzsy
*/
import Vue from 'vue'
import Vuex from 'vuex'
//挂载Vuex
Vue.use(Vuex)
//创建VueX对象
const store = new Vuex.Store({
state: {
//存放的键值对就是所要管理的状态
dialogPramas:{
cancelText:'',
confirmText:'',
content:'',
titleText:'',
showDialog:false,
showCancel:true,
showBtnT:0,
toastStyle:'',
toastStatus:null,
toastTime:2000,
countDown:null,
confirmTip:'',
fail(){},
success(){},
},
showModel:null
},
mutations: {
//es6语法,等同edit:funcion(){...}
handleDialog(state,res){
state.showModel = res
//在点击事件处理增加
// 要改变就
// store.commit("hadleDialog",要改变的参数)
// store.commit("hadleDialog",res)
}
},
actions: {
},
// modules:{
// utils:{
// state:{
// showModel:null,
// }
// }
// }
})
export default store
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<title>
<%= htmlWebpackPlugin.options.title %>
</title>
<script src="//s1.pstatp.com/cdn/expire-1-M/jquery/1.8.0/jquery-1.8.0.min.js" async="async"></script>
<script src="//res.wx.qq.com/open/libs/weuijs/1.2.1/weui.min.js" async="async"></script>
<script src="//res.wx.qq.com/open/js/jweixin-1.6.0.js" async="async"></script>
<script src="//static.runoob.com/assets/qrcode/qrcode.min.js" async="async"></script>
<script type="text/javascript" src="//cdn.jsdelivr.net/npm/echarts@5/dist/echarts.min.js"></script>
<script>
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS
.supports('top: constant(a)'))
document.write(
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<link rel="stylesheet" href="<%= BASE_URL %>static/index.<%= VUE_APP_INDEX_CSS_HASH %>.css" />
</head>
<body>
<noscript>
<strong>Please enable JavaScript to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
$uni-color-primary: #007aff;
$uni-color-success: #4cd964;
$uni-color-warning: #f0ad4e;
$uni-color-error: #dd524d;
/* 文字基本颜色 */
$uni-text-color:#333;//基本色
$uni-text-color-inverse:#fff;//反色
$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
$uni-text-color-placeholder: #808080;
$uni-text-color-disable:#c0c0c0;
/* 背景颜色 */
$uni-bg-color:#ffffff;
$uni-bg-color-grey:#f8f8f8;
$uni-bg-color-hover:#f1f1f1;//点击状态颜色
$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
/* 边框颜色 */
$uni-border-color:#c8c7cc;
/* 尺寸变量 */
/* 文字尺寸 */
$uni-font-size-sm:24rpx;
$uni-font-size-base:28rpx;
$uni-font-size-lg:32rpx;
/* 图片尺寸 */
$uni-img-size-sm:40rpx;
$uni-img-size-base:52rpx;
$uni-img-size-lg:80rpx;
/* Border Radius */
$uni-border-radius-sm: 4rpx;
$uni-border-radius-base: 6rpx;
$uni-border-radius-lg: 12rpx;
$uni-border-radius-circle: 50%;
/* 水平间距 */
$uni-spacing-row-sm: 10px;
$uni-spacing-row-base: 20rpx;
$uni-spacing-row-lg: 30rpx;
/* 垂直间距 */
$uni-spacing-col-sm: 8rpx;
$uni-spacing-col-base: 16rpx;
$uni-spacing-col-lg: 24rpx;
/* 透明度 */
$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
/* 文章场景相关 */
$uni-color-title: #2C405A; // 文章标题颜色
$uni-font-size-title:40rpx;
$uni-color-subtitle: #555555; // 二级标题颜色
$uni-font-size-subtitle:36rpx;
$uni-color-paragraph: #3F536E; // 文章段落颜色
$uni-font-size-paragraph:30rpx;
\ No newline at end of file
import { VantComponent } from '../common/component';
import { button } from '../mixins/button';
import { openType } from '../mixins/open-type';
VantComponent({
mixins: [button, openType],
classes: ['hover-class', 'loading-class'],
data: {
style: ''
},
props: {
icon: String,
plain: Boolean,
block: Boolean,
round: Boolean,
square: Boolean,
loading: Boolean,
hairline: Boolean,
disabled: Boolean,
loadingText: String,
customStyle: String,
loadingType: {
type: String,
value: 'circular'
},
type: {
type: String,
value: 'default'
},
size: {
type: String,
value: 'normal'
},
loadingSize: {
type: String,
value: '20px'
},
color: {
type: String,
observer(color) {
let style = '';
if (color) {
style += `color: ${this.data.plain ? color : 'white'};`;
if (!this.data.plain) {
// Use background instead of backgroundColor to make linear-gradient work
style += `background: ${color};`;
}
// hide border when color is linear-gradient
if (color.indexOf('gradient') !== -1) {
style += 'border: 0;';
}
else {
style += `border-color: ${color};`;
}
}
if (style !== this.data.style) {
this.setData({ style });
}
}
}
},
methods: {
onClick() {
if (!this.data.disabled && !this.data.loading) {
this.$emit('click');
}
}
}
});
{
"component": true,
"usingComponents": {
"van-icon": "../icon/index",
"van-loading": "../loading/index"
}
}
<template>
<uni-shadow-root class="vant-button-index"><button :id="id" :class="'custom-class '+(utils.bem('button', [type, size, { block, round, plain, square, loading, disabled, hairline, unclickable: disabled || loading }]))+' '+(hairline ? 'van-hairline--surround' : '')" hover-class="van-button--active hover-class" :lang="lang" :style="(style)+' '+(customStyle)" :open-type="openType" :business-id="businessId" :session-from="sessionFrom" :send-message-title="sendMessageTitle" :send-message-path="sendMessagePath" :send-message-img="sendMessageImg" :show-message-card="showMessageCard" :app-parameter="appParameter" :aria-label="ariaLabel" @click="onClick" @getuserinfo="bindGetUserInfo" @contact="bindContact" @getphonenumber="bindGetPhoneNumber" @error="bindError" @launchapp="bindLaunchApp" @opensetting="bindOpenSetting">
<block v-if="loading">
<van-loading custom-class="loading-class" :size="loadingSize" :type="loadingType" :color="type === 'default' ? '#c9c9c9' : 'white'"></van-loading>
<view v-if="loadingText" class="van-button__loading-text">
{{ loadingText }}
</view>
</block>
<block v-else>
<van-icon v-if="icon" size="1.2em" :name="icon" class="van-button__icon" custom-style="line-height: inherit;"></van-icon>
<view class="van-button__text">
<slot></slot>
</view>
</block>
</button></uni-shadow-root>
</template>
<wxs src="../wxs/utils.wxs" module="utils"></wxs>
<script>
import VanIcon from '../icon/index.vue'
import VanLoading from '../loading/index.vue'
global['__wxVueOptions'] = {components:{'van-icon': VanIcon,'van-loading': VanLoading}}
global['__wxRoute'] = 'vant/button/index'
import { VantComponent } from '../common/component';
import { button } from '../mixins/button';
import { openType } from '../mixins/open-type';
VantComponent({
mixins: [button, openType],
classes: ['hover-class', 'loading-class'],
data: {
style: ''
},
props: {
icon: String,
plain: Boolean,
block: Boolean,
round: Boolean,
square: Boolean,
loading: Boolean,
hairline: Boolean,
disabled: Boolean,
loadingText: String,
customStyle: String,
loadingType: {
type: String,
value: 'circular'
},
type: {
type: String,
value: 'default'
},
size: {
type: String,
value: 'normal'
},
loadingSize: {
type: String,
value: '20px'
},
color: {
type: String,
observer(color) {
let style = '';
if (color) {
style += `color: ${this.data.plain ? color : 'white'};`;
if (!this.data.plain) {
// Use background instead of backgroundColor to make linear-gradient work
style += `background: ${color};`;
}
// hide border when color is linear-gradient
if (color.indexOf('gradient') !== -1) {
style += 'border: 0;';
}
else {
style += `border-color: ${color};`;
}
}
if (style !== this.data.style) {
this.setData({ style });
}
}
}
},
methods: {
onClick() {
if (!this.data.disabled && !this.data.loading) {
this.$emit('click');
}
}
}
});
export default global['__wxComponents']['vant/button/index']
</script>
<style platform="mp-weixin">
@import '../common/index.css';.van-button{position:relative;display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;box-sizing:border-box;padding:0;line-height:20px;text-align:center;vertical-align:middle;-webkit-appearance:none;-webkit-text-size-adjust:100%;height:44px;height:var(--button-default-height,44px);font-size:16px;font-size:var(--button-default-font-size,16px);transition:opacity .2s;transition:opacity var(--animation-duration-fast,.2s);border-radius:2px;border-radius:var(--button-border-radius,2px)}.van-button:before{position:absolute;top:50%;left:50%;width:100%;height:100%;border:inherit;border-radius:inherit;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);opacity:0;content:" ";background-color:#000;background-color:var(--black,#000);border-color:#000;border-color:var(--black,#000)}.van-button:after{border-width:0}.van-button--active:before{opacity:.15}.van-button--unclickable:after{display:none}.van-button--default{color:#323233;color:var(--button-default-color,#323233);background-color:#fff;background-color:var(--button-default-background-color,#fff);border:1px solid #ebedf0;border:1px solid var(--button-default-border-color,#ebedf0)}.van-button--primary{color:#fff;color:var(--button-primary-color,#fff);background-color:#07c160;background-color:var(--button-primary-background-color,#07c160);border:1px solid #07c160;border:1px solid var(--button-primary-border-color,#07c160)}.van-button--info{color:#fff;color:var(--button-info-color,#fff);background-color:#1989fa;background-color:var(--button-info-background-color,#1989fa);border:1px solid #1989fa;border:1px solid var(--button-info-border-color,#1989fa)}.van-button--danger{color:#fff;color:var(--button-danger-color,#fff);background-color:#ee0a24;background-color:var(--button-danger-background-color,#ee0a24);border:1px solid #ee0a24;border:1px solid var(--button-danger-border-color,#ee0a24)}.van-button--warning{color:#fff;color:var(--button-warning-color,#fff);background-color:#ff976a;background-color:var(--button-warning-background-color,#ff976a);border:1px solid #ff976a;border:1px solid var(--button-warning-border-color,#ff976a)}.van-button--plain{background-color:#fff;background-color:var(--button-plain-background-color,#fff)}.van-button--plain.van-button--primary{color:#07c160;color:var(--button-primary-background-color,#07c160)}.van-button--plain.van-button--info{color:#1989fa;color:var(--button-info-background-color,#1989fa)}.van-button--plain.van-button--danger{color:#ee0a24;color:var(--button-danger-background-color,#ee0a24)}.van-button--plain.van-button--warning{color:#ff976a;color:var(--button-warning-background-color,#ff976a)}.van-button--large{width:100%;height:50px;height:var(--button-large-height,50px)}.van-button--normal{padding:0 15px;font-size:14px;font-size:var(--button-normal-font-size,14px)}.van-button--small{min-width:60px;min-width:var(--button-small-min-width,60px);height:30px;height:var(--button-small-height,30px);padding:0 8px;padding:0 var(--padding-xs,8px);font-size:12px;font-size:var(--button-small-font-size,12px)}.van-button--mini{display:inline-block;min-width:50px;min-width:var(--button-mini-min-width,50px);height:22px;height:var(--button-mini-height,22px);font-size:10px;font-size:var(--button-mini-font-size,10px)}.van-button--mini+.van-button--mini{margin-left:5px}.van-button--block{display:-webkit-flex;display:flex;width:100%}.van-button--round{border-radius:999px;border-radius:var(--button-round-border-radius,999px)}.van-button--square{border-radius:0}.van-button--disabled{opacity:.5;opacity:var(--button-disabled-opacity,.5)}.van-button__text{display:inline}.van-button__icon+.van-button__text:not(:empty),.van-button__loading-text{margin-left:4px}.van-button__icon{min-width:1em;line-height:inherit!important;vertical-align:top}.van-button--hairline{padding-top:1px;border-width:0}.van-button--hairline:after{border-color:inherit;border-width:1px;border-radius:4px;border-radius:calc(var(--button-border-radius, 2px)*2)}.van-button--hairline.van-button--round:after{border-radius:999px;border-radius:var(--button-round-border-radius,999px)}.van-button--hairline.van-button--square:after{border-radius:0}
</style>
\ No newline at end of file
<wxs src="../wxs/utils.wxs" module="utils" />
<button
id="{{ id }}"
class="custom-class {{ utils.bem('button', [type, size, { block, round, plain, square, loading, disabled, hairline, unclickable: disabled || loading }]) }} {{ hairline ? 'van-hairline--surround' : '' }}"
hover-class="van-button--active hover-class"
lang="{{ lang }}"
style="{{ style }} {{ customStyle }}"
open-type="{{ openType }}"
business-id="{{ businessId }}"
session-from="{{ sessionFrom }}"
send-message-title="{{ sendMessageTitle }}"
send-message-path="{{ sendMessagePath }}"
send-message-img="{{ sendMessageImg }}"
show-message-card="{{ showMessageCard }}"
app-parameter="{{ appParameter }}"
aria-label="{{ ariaLabel }}"
bindtap="onClick"
bindgetuserinfo="bindGetUserInfo"
bindcontact="bindContact"
bindgetphonenumber="bindGetPhoneNumber"
binderror="bindError"
bindlaunchapp="bindLaunchApp"
bindopensetting="bindOpenSetting"
>
<block wx:if="{{ loading }}">
<van-loading
custom-class="loading-class"
size="{{ loadingSize }}"
type="{{ loadingType }}"
color="{{ type === 'default' ? '#c9c9c9' : 'white' }}"
/>
<view
wx:if="{{ loadingText }}"
class="van-button__loading-text"
>
{{ loadingText }}
</view>
</block>
<block wx:else>
<van-icon
wx:if="{{ icon }}"
size="1.2em"
name="{{ icon }}"
class="van-button__icon"
custom-style="line-height: inherit;"
/>
<view class="van-button__text">
<slot />
</view>
</block>
</button>
@import '../common/index.wxss';.van-button{position:relative;display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;box-sizing:border-box;padding:0;line-height:20px;text-align:center;vertical-align:middle;-webkit-appearance:none;-webkit-text-size-adjust:100%;height:44px;height:var(--button-default-height,44px);font-size:16px;font-size:var(--button-default-font-size,16px);transition:opacity .2s;transition:opacity var(--animation-duration-fast,.2s);border-radius:2px;border-radius:var(--button-border-radius,2px)}.van-button:before{position:absolute;top:50%;left:50%;width:100%;height:100%;border:inherit;border-radius:inherit;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);opacity:0;content:" ";background-color:#000;background-color:var(--black,#000);border-color:#000;border-color:var(--black,#000)}.van-button:after{border-width:0}.van-button--active:before{opacity:.15}.van-button--unclickable:after{display:none}.van-button--default{color:#323233;color:var(--button-default-color,#323233);background-color:#fff;background-color:var(--button-default-background-color,#fff);border:1px solid #ebedf0;border:1px solid var(--button-default-border-color,#ebedf0)}.van-button--primary{color:#fff;color:var(--button-primary-color,#fff);background-color:#07c160;background-color:var(--button-primary-background-color,#07c160);border:1px solid #07c160;border:1px solid var(--button-primary-border-color,#07c160)}.van-button--info{color:#fff;color:var(--button-info-color,#fff);background-color:#1989fa;background-color:var(--button-info-background-color,#1989fa);border:1px solid #1989fa;border:1px solid var(--button-info-border-color,#1989fa)}.van-button--danger{color:#fff;color:var(--button-danger-color,#fff);background-color:#ee0a24;background-color:var(--button-danger-background-color,#ee0a24);border:1px solid #ee0a24;border:1px solid var(--button-danger-border-color,#ee0a24)}.van-button--warning{color:#fff;color:var(--button-warning-color,#fff);background-color:#ff976a;background-color:var(--button-warning-background-color,#ff976a);border:1px solid #ff976a;border:1px solid var(--button-warning-border-color,#ff976a)}.van-button--plain{background-color:#fff;background-color:var(--button-plain-background-color,#fff)}.van-button--plain.van-button--primary{color:#07c160;color:var(--button-primary-background-color,#07c160)}.van-button--plain.van-button--info{color:#1989fa;color:var(--button-info-background-color,#1989fa)}.van-button--plain.van-button--danger{color:#ee0a24;color:var(--button-danger-background-color,#ee0a24)}.van-button--plain.van-button--warning{color:#ff976a;color:var(--button-warning-background-color,#ff976a)}.van-button--large{width:100%;height:50px;height:var(--button-large-height,50px)}.van-button--normal{padding:0 15px;font-size:14px;font-size:var(--button-normal-font-size,14px)}.van-button--small{min-width:60px;min-width:var(--button-small-min-width,60px);height:30px;height:var(--button-small-height,30px);padding:0 8px;padding:0 var(--padding-xs,8px);font-size:12px;font-size:var(--button-small-font-size,12px)}.van-button--mini{display:inline-block;min-width:50px;min-width:var(--button-mini-min-width,50px);height:22px;height:var(--button-mini-height,22px);font-size:10px;font-size:var(--button-mini-font-size,10px)}.van-button--mini+.van-button--mini{margin-left:5px}.van-button--block{display:-webkit-flex;display:flex;width:100%}.van-button--round{border-radius:999px;border-radius:var(--button-round-border-radius,999px)}.van-button--square{border-radius:0}.van-button--disabled{opacity:.5;opacity:var(--button-disabled-opacity,.5)}.van-button__text{display:inline}.van-button__icon+.van-button__text:not(:empty),.van-button__loading-text{margin-left:4px}.van-button__icon{min-width:1em;line-height:inherit!important;vertical-align:top}.van-button--hairline{padding-top:1px;border-width:0}.van-button--hairline:after{border-color:inherit;border-width:1px;border-radius:4px;border-radius:calc(var(--button-border-radius, 2px)*2)}.van-button--hairline.van-button--round:after{border-radius:999px;border-radius:var(--button-round-border-radius,999px)}.van-button--hairline.van-button--square:after{border-radius:0}
\ No newline at end of file
export declare const RED = "#ee0a24";
export declare const BLUE = "#1989fa";
export declare const WHITE = "#fff";
export declare const GREEN = "#07c160";
export declare const ORANGE = "#ff976a";
export declare const GRAY = "#323233";
export declare const GRAY_DARK = "#969799";
export const RED = '#ee0a24';
export const BLUE = '#1989fa';
export const WHITE = '#fff';
export const GREEN = '#07c160';
export const ORANGE = '#ff976a';
export const GRAY = '#323233';
export const GRAY_DARK = '#969799';
import { VantComponentOptions, CombinedComponentInstance } from '../definitions/index';
declare function VantComponent<Data, Props, Methods>(vantOptions?: VantComponentOptions<Data, Props, Methods, CombinedComponentInstance<Data, Props, Methods>>): void;
export { VantComponent };
import { basic } from '../mixins/basic';
import { observe } from '../mixins/observer/index';
function mapKeys(source, target, map) {
Object.keys(map).forEach(key => {
if (source[key]) {
target[map[key]] = source[key];
}
});
}
function VantComponent(vantOptions = {}) {
const options = {};
mapKeys(vantOptions, options, {
data: 'data',
props: 'properties',
mixins: 'behaviors',
methods: 'methods',
beforeCreate: 'created',
created: 'attached',
mounted: 'ready',
relations: 'relations',
destroyed: 'detached',
classes: 'externalClasses'
});
const { relation } = vantOptions;
if (relation) {
options.relations = Object.assign(options.relations || {}, {
[`../${relation.name}/index`]: relation
});
}
// add default externalClasses
options.externalClasses = options.externalClasses || [];
options.externalClasses.push('custom-class');
// add default behaviors
options.behaviors = options.behaviors || [];
options.behaviors.push(basic);
// map field to form-field behavior
if (vantOptions.field) {
options.behaviors.push('wx://form-field');
}
// add default options
options.options = {
multipleSlots: true,
addGlobalClass: true
};
observe(vantOptions, options);
Component(options);
}
export { VantComponent };
.van-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.van-multi-ellipsis--l2,.van-multi-ellipsis--l3{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical}.van-multi-ellipsis--l3{-webkit-line-clamp:3}.van-clearfix:after{display:table;clear:both;content:""}.van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,.van-hairline--top-bottom{position:relative}.van-hairline--bottom:after,.van-hairline--left:after,.van-hairline--right:after,.van-hairline--surround:after,.van-hairline--top-bottom:after,.van-hairline--top:after,.van-hairline:after{position:absolute;box-sizing:border-box;-webkit-transform-origin:center;transform-origin:center;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid #eee;-webkit-transform:scale(.5);transform:scale(.5)}.van-hairline--top:after{border-top-width:1px}.van-hairline--left:after{border-left-width:1px}.van-hairline--right:after{border-right-width:1px}.van-hairline--bottom:after{border-bottom-width:1px}.van-hairline--top-bottom:after{border-width:1px 0}.van-hairline--surround:after{border-width:1px}
\ No newline at end of file
.van-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.van-multi-ellipsis--l2,.van-multi-ellipsis--l3{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical}.van-multi-ellipsis--l3{-webkit-line-clamp:3}.van-clearfix:after{display:table;clear:both;content:""}.van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,.van-hairline--top-bottom{position:relative}.van-hairline--bottom:after,.van-hairline--left:after,.van-hairline--right:after,.van-hairline--surround:after,.van-hairline--top-bottom:after,.van-hairline--top:after,.van-hairline:after{position:absolute;box-sizing:border-box;-webkit-transform-origin:center;transform-origin:center;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid #eee;-webkit-transform:scale(.5);transform:scale(.5)}.van-hairline--top:after{border-top-width:1px}.van-hairline--left:after{border-left-width:1px}.van-hairline--right:after{border-right-width:1px}.van-hairline--bottom:after{border-bottom-width:1px}.van-hairline--top-bottom:after{border-width:1px 0}.van-hairline--surround:after{border-width:1px}
\ No newline at end of file
.van-clearfix:after{display:table;clear:both;content:""}
\ No newline at end of file
.van-clearfix:after{display:table;clear:both;content:""}
\ No newline at end of file
.van-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.van-multi-ellipsis--l2,.van-multi-ellipsis--l3{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical}.van-multi-ellipsis--l3{-webkit-line-clamp:3}
\ No newline at end of file
.van-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.van-multi-ellipsis--l2{-webkit-line-clamp:2}.van-multi-ellipsis--l2,.van-multi-ellipsis--l3{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical}.van-multi-ellipsis--l3{-webkit-line-clamp:3}
\ No newline at end of file
.van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,.van-hairline--top-bottom{position:relative}.van-hairline--bottom:after,.van-hairline--left:after,.van-hairline--right:after,.van-hairline--surround:after,.van-hairline--top-bottom:after,.van-hairline--top:after,.van-hairline:after{position:absolute;box-sizing:border-box;-webkit-transform-origin:center;transform-origin:center;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid #eee;-webkit-transform:scale(.5);transform:scale(.5)}.van-hairline--top:after{border-top-width:1px}.van-hairline--left:after{border-left-width:1px}.van-hairline--right:after{border-right-width:1px}.van-hairline--bottom:after{border-bottom-width:1px}.van-hairline--top-bottom:after{border-width:1px 0}.van-hairline--surround:after{border-width:1px}
\ No newline at end of file
.van-hairline,.van-hairline--bottom,.van-hairline--left,.van-hairline--right,.van-hairline--surround,.van-hairline--top,.van-hairline--top-bottom{position:relative}.van-hairline--bottom:after,.van-hairline--left:after,.van-hairline--right:after,.van-hairline--surround:after,.van-hairline--top-bottom:after,.van-hairline--top:after,.van-hairline:after{position:absolute;box-sizing:border-box;-webkit-transform-origin:center;transform-origin:center;content:" ";pointer-events:none;top:-50%;right:-50%;bottom:-50%;left:-50%;border:0 solid #eee;-webkit-transform:scale(.5);transform:scale(.5)}.van-hairline--top:after{border-top-width:1px}.van-hairline--left:after{border-left-width:1px}.van-hairline--right:after{border-right-width:1px}.van-hairline--bottom:after{border-bottom-width:1px}.van-hairline--top-bottom:after{border-width:1px 0}.van-hairline--surround:after{border-width:1px}
\ No newline at end of file
/// <reference types="miniprogram-api-typings" />
export declare function isDef(value: any): boolean;
export declare function isObj(x: any): boolean;
export declare function isNumber(value: any): boolean;
export declare function range(num: number, min: number, max: number): number;
export declare function nextTick(fn: Function): void;
export declare function getSystemInfoSync(): WechatMiniprogram.GetSystemInfoSuccessCallbackResult;
export declare function addUnit(value?: string | number): string | undefined;
export function isDef(value) {
return value !== undefined && value !== null;
}
export function isObj(x) {
const type = typeof x;
return x !== null && (type === 'object' || type === 'function');
}
export function isNumber(value) {
return /^\d+(\.\d+)?$/.test(value);
}
export function range(num, min, max) {
return Math.min(Math.max(num, min), max);
}
export function nextTick(fn) {
setTimeout(() => {
fn();
}, 1000 / 30);
}
let systemInfo = null;
export function getSystemInfoSync() {
if (systemInfo == null) {
systemInfo = wx.getSystemInfoSync();
}
return systemInfo;
}
export function addUnit(value) {
if (!isDef(value)) {
return undefined;
}
value = String(value);
return isNumber(value) ? `${value}px` : value;
}
import { VantComponent } from '../common/component';
import { addUnit } from '../common/utils';
VantComponent({
props: {
dot: Boolean,
info: null,
size: {
type: null,
observer: 'setSizeWithUnit'
},
color: String,
customStyle: String,
classPrefix: {
type: String,
value: 'van-icon'
},
name: {
type: String,
observer(val) {
this.setData({
isImageName: val.indexOf('/') !== -1
});
}
}
},
data: {
sizeWithUnit: null,
},
methods: {
onClick() {
this.$emit('click');
},
setSizeWithUnit(size) {
this.setData({
sizeWithUnit: addUnit(size)
});
}
}
});
{
"component": true,
"usingComponents": {
"van-info": "../info/index"
}
}
<template>
<uni-shadow-root class="vant-icon-index"><view :class="'custom-class '+(classPrefix)+' '+(isImageName ? 'van-icon--image' : classPrefix + '-' + name)" :style="(color ? 'color: ' + color + ';' : '')+(size ? 'font-size: ' + sizeWithUnit + ';' : '')+(customStyle)" @click="onClick">
<van-info v-if="info !== null || dot" :dot="dot" :info="info" custom-class="van-icon__info"></van-info>
<image v-if="isImageName" :src="name" mode="aspectFit" class="van-icon__image"></image>
</view></uni-shadow-root>
</template>
<script>
import VanInfo from '../info/index.vue'
global['__wxVueOptions'] = {components:{'van-info': VanInfo}}
global['__wxRoute'] = 'vant/icon/index'
import { VantComponent } from '../common/component';
import { addUnit } from '../common/utils';
VantComponent({
props: {
dot: Boolean,
info: null,
size: {
type: null,
observer: 'setSizeWithUnit'
},
color: String,
customStyle: String,
classPrefix: {
type: String,
value: 'van-icon'
},
name: {
type: String,
observer(val) {
this.setData({
isImageName: val.indexOf('/') !== -1
});
}
}
},
data: {
sizeWithUnit: null,
},
methods: {
onClick() {
this.$emit('click');
},
setSizeWithUnit(size) {
this.setData({
sizeWithUnit: addUnit(size)
});
}
}
});
export default global['__wxComponents']['vant/icon/index']
</script>
<style platform="mp-weixin">
@import '../common/index.css';
@font-face {
font-weight: 400;
font-family: vant-icon;
font-style: normal;
font-display: auto;
src: url(https://img.yzcdn.cn/vant/vant-icon-d3825a.woff2) format("woff2"), url(https://img.yzcdn.cn/vant/vant-icon-d3825a.woff) format("woff"), url(https://img.yzcdn.cn/vant/vant-icon-d3825a.ttf) format("truetype")
}
.van-icon {
position: relative;
font: normal normal normal 14px/1 vant-icon;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased
}
.van-icon,
.van-icon:before {
display: inline-block
}
.van-icon-add-o:before {
content: "\F000"
}
.van-icon-add-square:before {
content: "\F001"
}
.van-icon-add:before {
content: "\F002"
}
.van-icon-after-sale:before {
content: "\F003"
}
.van-icon-aim:before {
content: "\F004"
}
.van-icon-alipay:before {
content: "\F005"
}
.van-icon-apps-o:before {
content: "\F006"
}
.van-icon-arrow-down:before {
content: "\F007"
}
.van-icon-arrow-left:before {
content: "\F008"
}
.van-icon-arrow-up:before {
content: "\F009"
}
.van-icon-arrow:before {
content: "\F00A"
}
.van-icon-ascending:before {
content: "\F00B"
}
.van-icon-audio:before {
content: "\F00C"
}
.van-icon-award-o:before {
content: "\F00D"
}
.van-icon-award:before {
content: "\F00E"
}
.van-icon-bag-o:before {
content: "\F00F"
}
.van-icon-bag:before {
content: "\F010"
}
.van-icon-balance-list-o:before {
content: "\F011"
}
.van-icon-balance-list:before {
content: "\F012"
}
.van-icon-balance-o:before {
content: "\F013"
}
.van-icon-balance-pay:before {
content: "\F014"
}
.van-icon-bar-chart-o:before {
content: "\F015"
}
.van-icon-bars:before {
content: "\F016"
}
.van-icon-bell:before {
content: "\F017"
}
.van-icon-bill-o:before {
content: "\F018"
}
.van-icon-bill:before {
content: "\F019"
}
.van-icon-birthday-cake-o:before {
content: "\F01A"
}
.van-icon-bookmark-o:before {
content: "\F01B"
}
.van-icon-bookmark:before {
content: "\F01C"
}
.van-icon-browsing-history-o:before {
content: "\F01D"
}
.van-icon-browsing-history:before {
content: "\F01E"
}
.van-icon-brush-o:before {
content: "\F01F"
}
.van-icon-bulb-o:before {
content: "\F020"
}
.van-icon-bullhorn-o:before {
content: "\F021"
}
.van-icon-calender-o:before {
content: "\F022"
}
.van-icon-card:before {
content: "\F023"
}
.van-icon-cart-circle-o:before {
content: "\F024"
}
.van-icon-cart-circle:before {
content: "\F025"
}
.van-icon-cart-o:before {
content: "\F026"
}
.van-icon-cart:before {
content: "\F027"
}
.van-icon-cash-back-record:before {
content: "\F028"
}
.van-icon-cash-on-deliver:before {
content: "\F029"
}
.van-icon-cashier-o:before {
content: "\F02A"
}
.van-icon-certificate:before {
content: "\F02B"
}
.van-icon-chart-trending-o:before {
content: "\F02C"
}
.van-icon-chat-o:before {
content: "\F02D"
}
.van-icon-chat:before {
content: "\F02E"
}
.van-icon-checked:before {
content: "\F02F"
}
.van-icon-circle:before {
content: "\F030"
}
.van-icon-clear:before {
content: "\F031"
}
.van-icon-clock-o:before {
content: "\F032"
}
.van-icon-clock:before {
content: "\F033"
}
.van-icon-close:before {
content: "\F034"
}
.van-icon-closed-eye:before {
content: "\F035"
}
.van-icon-cluster-o:before {
content: "\F036"
}
.van-icon-cluster:before {
content: "\F037"
}
.van-icon-column:before {
content: "\F038"
}
.van-icon-comment-circle-o:before {
content: "\F039"
}
.van-icon-comment-circle:before {
content: "\F03A"
}
.van-icon-comment-o:before {
content: "\F03B"
}
.van-icon-comment:before {
content: "\F03C"
}
.van-icon-completed:before {
content: "\F03D"
}
.van-icon-contact:before {
content: "\F03E"
}
.van-icon-coupon-o:before {
content: "\F03F"
}
.van-icon-coupon:before {
content: "\F040"
}
.van-icon-credit-pay:before {
content: "\F041"
}
.van-icon-cross:before {
content: "\F042"
}
.van-icon-debit-pay:before {
content: "\F043"
}
.van-icon-delete:before {
content: "\F044"
}
.van-icon-descending:before {
content: "\F045"
}
.van-icon-description:before {
content: "\F046"
}
.van-icon-desktop-o:before {
content: "\F047"
}
.van-icon-diamond-o:before {
content: "\F048"
}
.van-icon-diamond:before {
content: "\F049"
}
.van-icon-discount:before {
content: "\F04A"
}
.van-icon-down:before {
content: "\F04B"
}
.van-icon-ecard-pay:before {
content: "\F04C"
}
.van-icon-edit:before {
content: "\F04D"
}
.van-icon-ellipsis:before {
content: "\F04E"
}
.van-icon-empty:before {
content: "\F04F"
}
.van-icon-envelop-o:before {
content: "\F050"
}
.van-icon-exchange:before {
content: "\F051"
}
.van-icon-expand-o:before {
content: "\F052"
}
.van-icon-expand:before {
content: "\F053"
}
.van-icon-eye-o:before {
content: "\F054"
}
.van-icon-eye:before {
content: "\F055"
}
.van-icon-fail:before {
content: "\F056"
}
.van-icon-failure:before {
content: "\F057"
}
.van-icon-filter-o:before {
content: "\F058"
}
.van-icon-fire-o:before {
content: "\F059"
}
.van-icon-fire:before {
content: "\F05A"
}
.van-icon-flag-o:before {
content: "\F05B"
}
.van-icon-flower-o:before {
content: "\F05C"
}
.van-icon-free-postage:before {
content: "\F05D"
}
.van-icon-friends-o:before {
content: "\F05E"
}
.van-icon-friends:before {
content: "\F05F"
}
.van-icon-gem-o:before {
content: "\F060"
}
.van-icon-gem:before {
content: "\F061"
}
.van-icon-gift-card-o:before {
content: "\F062"
}
.van-icon-gift-card:before {
content: "\F063"
}
.van-icon-gift-o:before {
content: "\F064"
}
.van-icon-gift:before {
content: "\F065"
}
.van-icon-gold-coin-o:before {
content: "\F066"
}
.van-icon-gold-coin:before {
content: "\F067"
}
.van-icon-good-job-o:before {
content: "\F068"
}
.van-icon-good-job:before {
content: "\F069"
}
.van-icon-goods-collect-o:before {
content: "\F06A"
}
.van-icon-goods-collect:before {
content: "\F06B"
}
.van-icon-graphic:before {
content: "\F06C"
}
.van-icon-home-o:before {
content: "\F06D"
}
.van-icon-hot-o:before {
content: "\F06E"
}
.van-icon-hot-sale-o:before {
content: "\F06F"
}
.van-icon-hot-sale:before {
content: "\F070"
}
.van-icon-hot:before {
content: "\F071"
}
.van-icon-hotel-o:before {
content: "\F072"
}
.van-icon-idcard:before {
content: "\F073"
}
.van-icon-info-o:before {
content: "\F074"
}
.van-icon-info:before {
content: "\F075"
}
.van-icon-invition:before {
content: "\F076"
}
.van-icon-label-o:before {
content: "\F077"
}
.van-icon-label:before {
content: "\F078"
}
.van-icon-like-o:before {
content: "\F079"
}
.van-icon-like:before {
content: "\F07A"
}
.van-icon-live:before {
content: "\F07B"
}
.van-icon-location-o:before {
content: "\F07C"
}
.van-icon-location:before {
content: "\F07D"
}
.van-icon-lock:before {
content: "\F07E"
}
.van-icon-logistics:before {
content: "\F07F"
}
.van-icon-manager-o:before {
content: "\F080"
}
.van-icon-manager:before {
content: "\F081"
}
.van-icon-map-marked:before {
content: "\F082"
}
.van-icon-medal-o:before {
content: "\F083"
}
.van-icon-medal:before {
content: "\F084"
}
.van-icon-more-o:before {
content: "\F085"
}
.van-icon-more:before {
content: "\F086"
}
.van-icon-music-o:before {
content: "\F087"
}
.van-icon-music:before {
content: "\F088"
}
.van-icon-new-arrival-o:before {
content: "\F089"
}
.van-icon-new-arrival:before {
content: "\F08A"
}
.van-icon-new-o:before {
content: "\F08B"
}
.van-icon-new:before {
content: "\F08C"
}
.van-icon-newspaper-o:before {
content: "\F08D"
}
.van-icon-notes-o:before {
content: "\F08E"
}
.van-icon-orders-o:before {
content: "\F08F"
}
.van-icon-other-pay:before {
content: "\F090"
}
.van-icon-paid:before {
content: "\F091"
}
.van-icon-passed:before {
content: "\F092"
}
.van-icon-pause-circle-o:before {
content: "\F093"
}
.van-icon-pause-circle:before {
content: "\F094"
}
.van-icon-pause:before {
content: "\F095"
}
.van-icon-peer-pay:before {
content: "\F096"
}
.van-icon-pending-payment:before {
content: "\F097"
}
.van-icon-phone-circle-o:before {
content: "\F098"
}
.van-icon-phone-circle:before {
content: "\F099"
}
.van-icon-phone-o:before {
content: "\F09A"
}
.van-icon-phone:before {
content: "\F09B"
}
.van-icon-photo-o:before {
content: "\F09C"
}
.van-icon-photo:before {
content: "\F09D"
}
.van-icon-photograph:before {
content: "\F09E"
}
.van-icon-play-circle-o:before {
content: "\F09F"
}
.van-icon-play-circle:before {
content: "\F0A0"
}
.van-icon-play:before {
content: "\F0A1"
}
.van-icon-plus:before {
content: "\F0A2"
}
.van-icon-point-gift-o:before {
content: "\F0A3"
}
.van-icon-point-gift:before {
content: "\F0A4"
}
.van-icon-points:before {
content: "\F0A5"
}
.van-icon-printer:before {
content: "\F0A6"
}
.van-icon-qr-invalid:before {
content: "\F0A7"
}
.van-icon-qr:before {
content: "\F0A8"
}
.van-icon-question-o:before {
content: "\F0A9"
}
.van-icon-question:before {
content: "\F0AA"
}
.van-icon-records:before {
content: "\F0AB"
}
.van-icon-refund-o:before {
content: "\F0AC"
}
.van-icon-replay:before {
content: "\F0AD"
}
.van-icon-scan:before {
content: "\F0AE"
}
.van-icon-search:before {
content: "\F0AF"
}
.van-icon-send-gift-o:before {
content: "\F0B0"
}
.van-icon-send-gift:before {
content: "\F0B1"
}
.van-icon-service-o:before {
content: "\F0B2"
}
.van-icon-service:before {
content: "\F0B3"
}
.van-icon-setting-o:before {
content: "\F0B4"
}
.van-icon-setting:before {
content: "\F0B5"
}
.van-icon-share:before {
content: "\F0B6"
}
.van-icon-shop-collect-o:before {
content: "\F0B7"
}
.van-icon-shop-collect:before {
content: "\F0B8"
}
.van-icon-shop-o:before {
content: "\F0B9"
}
.van-icon-shop:before {
content: "\F0BA"
}
.van-icon-shopping-cart-o:before {
content: "\F0BB"
}
.van-icon-shopping-cart:before {
content: "\F0BC"
}
.van-icon-shrink:before {
content: "\F0BD"
}
.van-icon-sign:before {
content: "\F0BE"
}
.van-icon-smile-comment-o:before {
content: "\F0BF"
}
.van-icon-smile-comment:before {
content: "\F0C0"
}
.van-icon-smile-o:before {
content: "\F0C1"
}
.van-icon-smile:before {
content: "\F0C2"
}
.van-icon-star-o:before {
content: "\F0C3"
}
.van-icon-star:before {
content: "\F0C4"
}
.van-icon-stop-circle-o:before {
content: "\F0C5"
}
.van-icon-stop-circle:before {
content: "\F0C6"
}
.van-icon-stop:before {
content: "\F0C7"
}
.van-icon-success:before {
content: "\F0C8"
}
.van-icon-thumb-circle-o:before {
content: "\F0C9"
}
.van-icon-thumb-circle:before {
content: "\F0CA"
}
.van-icon-todo-list-o:before {
content: "\F0CB"
}
.van-icon-todo-list:before {
content: "\F0CC"
}
.van-icon-tosend:before {
content: "\F0CD"
}
.van-icon-tv-o:before {
content: "\F0CE"
}
.van-icon-umbrella-circle:before {
content: "\F0CF"
}
.van-icon-underway-o:before {
content: "\F0D0"
}
.van-icon-underway:before {
content: "\F0D1"
}
.van-icon-upgrade:before {
content: "\F0D2"
}
.van-icon-user-circle-o:before {
content: "\F0D3"
}
.van-icon-user-o:before {
content: "\F0D4"
}
.van-icon-video-o:before {
content: "\F0D5"
}
.van-icon-video:before {
content: "\F0D6"
}
.van-icon-vip-card-o:before {
content: "\F0D7"
}
.van-icon-vip-card:before {
content: "\F0D8"
}
.van-icon-volume-o:before {
content: "\F0D9"
}
.van-icon-volume:before {
content: "\F0DA"
}
.van-icon-wap-home-o:before {
content: "\F0DB"
}
.van-icon-wap-home:before {
content: "\F0DC"
}
.van-icon-wap-nav:before {
content: "\F0DD"
}
.van-icon-warn-o:before {
content: "\F0DE"
}
.van-icon-warning-o:before {
content: "\F0DF"
}
.van-icon-warning:before {
content: "\F0E0"
}
.van-icon-weapp-nav:before {
content: "\F0E1"
}
.van-icon-wechat:before {
content: "\F0E2"
}
.van-icon-youzan-shield:before {
content: "\F0E3"
}
.vant-icon-index {
display: -webkit-inline-flex;
display: inline-flex;
-webkit-align-items: center;
align-items: center;
-webkit-justify-content: center;
justify-content: center
}
.van-icon--image {
width: 1em;
height: 1em
}
.van-icon__image {
width: 100%;
height: 100%
}
.van-icon__info {
z-index: 1
}
</style>
\ No newline at end of file
<view
class="custom-class {{ classPrefix }} {{ isImageName ? 'van-icon--image' : classPrefix + '-' + name }}"
style="{{ color ? 'color: ' + color + ';' : '' }}{{ size ? 'font-size: ' + sizeWithUnit + ';' : '' }}{{ customStyle }}"
bind:tap="onClick"
>
<van-info
wx:if="{{ info !== null || dot }}"
dot="{{ dot }}"
info="{{ info }}"
custom-class="van-icon__info"
/>
<image
wx:if="{{ isImageName }}"
src="{{ name }}"
mode="aspectFit"
class="van-icon__image"
/>
</view>
@import '../common/index.wxss';
@font-face {
font-weight: 400;
font-family: vant-icon;
font-style: normal;
font-display: auto;
src: url(https://img.yzcdn.cn/vant/vant-icon-d3825a.woff2) format("woff2"), url(https://img.yzcdn.cn/vant/vant-icon-d3825a.woff) format("woff"), url(https://img.yzcdn.cn/vant/vant-icon-d3825a.ttf) format("truetype")
}
.van-icon {
position: relative;
font: normal normal normal 14px/1 vant-icon;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased
}
.van-icon,
.van-icon:before {
display: inline-block
}
.van-icon-add-o:before {
content: "\F000"
}
.van-icon-add-square:before {
content: "\F001"
}
.van-icon-add:before {
content: "\F002"
}
.van-icon-after-sale:before {
content: "\F003"
}
.van-icon-aim:before {
content: "\F004"
}
.van-icon-alipay:before {
content: "\F005"
}
.van-icon-apps-o:before {
content: "\F006"
}
.van-icon-arrow-down:before {
content: "\F007"
}
.van-icon-arrow-left:before {
content: "\F008"
}
.van-icon-arrow-up:before {
content: "\F009"
}
.van-icon-arrow:before {
content: "\F00A"
}
.van-icon-ascending:before {
content: "\F00B"
}
.van-icon-audio:before {
content: "\F00C"
}
.van-icon-award-o:before {
content: "\F00D"
}
.van-icon-award:before {
content: "\F00E"
}
.van-icon-bag-o:before {
content: "\F00F"
}
.van-icon-bag:before {
content: "\F010"
}
.van-icon-balance-list-o:before {
content: "\F011"
}
.van-icon-balance-list:before {
content: "\F012"
}
.van-icon-balance-o:before {
content: "\F013"
}
.van-icon-balance-pay:before {
content: "\F014"
}
.van-icon-bar-chart-o:before {
content: "\F015"
}
.van-icon-bars:before {
content: "\F016"
}
.van-icon-bell:before {
content: "\F017"
}
.van-icon-bill-o:before {
content: "\F018"
}
.van-icon-bill:before {
content: "\F019"
}
.van-icon-birthday-cake-o:before {
content: "\F01A"
}
.van-icon-bookmark-o:before {
content: "\F01B"
}
.van-icon-bookmark:before {
content: "\F01C"
}
.van-icon-browsing-history-o:before {
content: "\F01D"
}
.van-icon-browsing-history:before {
content: "\F01E"
}
.van-icon-brush-o:before {
content: "\F01F"
}
.van-icon-bulb-o:before {
content: "\F020"
}
.van-icon-bullhorn-o:before {
content: "\F021"
}
.van-icon-calender-o:before {
content: "\F022"
}
.van-icon-card:before {
content: "\F023"
}
.van-icon-cart-circle-o:before {
content: "\F024"
}
.van-icon-cart-circle:before {
content: "\F025"
}
.van-icon-cart-o:before {
content: "\F026"
}
.van-icon-cart:before {
content: "\F027"
}
.van-icon-cash-back-record:before {
content: "\F028"
}
.van-icon-cash-on-deliver:before {
content: "\F029"
}
.van-icon-cashier-o:before {
content: "\F02A"
}
.van-icon-certificate:before {
content: "\F02B"
}
.van-icon-chart-trending-o:before {
content: "\F02C"
}
.van-icon-chat-o:before {
content: "\F02D"
}
.van-icon-chat:before {
content: "\F02E"
}
.van-icon-checked:before {
content: "\F02F"
}
.van-icon-circle:before {
content: "\F030"
}
.van-icon-clear:before {
content: "\F031"
}
.van-icon-clock-o:before {
content: "\F032"
}
.van-icon-clock:before {
content: "\F033"
}
.van-icon-close:before {
content: "\F034"
}
.van-icon-closed-eye:before {
content: "\F035"
}
.van-icon-cluster-o:before {
content: "\F036"
}
.van-icon-cluster:before {
content: "\F037"
}
.van-icon-column:before {
content: "\F038"
}
.van-icon-comment-circle-o:before {
content: "\F039"
}
.van-icon-comment-circle:before {
content: "\F03A"
}
.van-icon-comment-o:before {
content: "\F03B"
}
.van-icon-comment:before {
content: "\F03C"
}
.van-icon-completed:before {
content: "\F03D"
}
.van-icon-contact:before {
content: "\F03E"
}
.van-icon-coupon-o:before {
content: "\F03F"
}
.van-icon-coupon:before {
content: "\F040"
}
.van-icon-credit-pay:before {
content: "\F041"
}
.van-icon-cross:before {
content: "\F042"
}
.van-icon-debit-pay:before {
content: "\F043"
}
.van-icon-delete:before {
content: "\F044"
}
.van-icon-descending:before {
content: "\F045"
}
.van-icon-description:before {
content: "\F046"
}
.van-icon-desktop-o:before {
content: "\F047"
}
.van-icon-diamond-o:before {
content: "\F048"
}
.van-icon-diamond:before {
content: "\F049"
}
.van-icon-discount:before {
content: "\F04A"
}
.van-icon-down:before {
content: "\F04B"
}
.van-icon-ecard-pay:before {
content: "\F04C"
}
.van-icon-edit:before {
content: "\F04D"
}
.van-icon-ellipsis:before {
content: "\F04E"
}
.van-icon-empty:before {
content: "\F04F"
}
.van-icon-envelop-o:before {
content: "\F050"
}
.van-icon-exchange:before {
content: "\F051"
}
.van-icon-expand-o:before {
content: "\F052"
}
.van-icon-expand:before {
content: "\F053"
}
.van-icon-eye-o:before {
content: "\F054"
}
.van-icon-eye:before {
content: "\F055"
}
.van-icon-fail:before {
content: "\F056"
}
.van-icon-failure:before {
content: "\F057"
}
.van-icon-filter-o:before {
content: "\F058"
}
.van-icon-fire-o:before {
content: "\F059"
}
.van-icon-fire:before {
content: "\F05A"
}
.van-icon-flag-o:before {
content: "\F05B"
}
.van-icon-flower-o:before {
content: "\F05C"
}
.van-icon-free-postage:before {
content: "\F05D"
}
.van-icon-friends-o:before {
content: "\F05E"
}
.van-icon-friends:before {
content: "\F05F"
}
.van-icon-gem-o:before {
content: "\F060"
}
.van-icon-gem:before {
content: "\F061"
}
.van-icon-gift-card-o:before {
content: "\F062"
}
.van-icon-gift-card:before {
content: "\F063"
}
.van-icon-gift-o:before {
content: "\F064"
}
.van-icon-gift:before {
content: "\F065"
}
.van-icon-gold-coin-o:before {
content: "\F066"
}
.van-icon-gold-coin:before {
content: "\F067"
}
.van-icon-good-job-o:before {
content: "\F068"
}
.van-icon-good-job:before {
content: "\F069"
}
.van-icon-goods-collect-o:before {
content: "\F06A"
}
.van-icon-goods-collect:before {
content: "\F06B"
}
.van-icon-graphic:before {
content: "\F06C"
}
.van-icon-home-o:before {
content: "\F06D"
}
.van-icon-hot-o:before {
content: "\F06E"
}
.van-icon-hot-sale-o:before {
content: "\F06F"
}
.van-icon-hot-sale:before {
content: "\F070"
}
.van-icon-hot:before {
content: "\F071"
}
.van-icon-hotel-o:before {
content: "\F072"
}
.van-icon-idcard:before {
content: "\F073"
}
.van-icon-info-o:before {
content: "\F074"
}
.van-icon-info:before {
content: "\F075"
}
.van-icon-invition:before {
content: "\F076"
}
.van-icon-label-o:before {
content: "\F077"
}
.van-icon-label:before {
content: "\F078"
}
.van-icon-like-o:before {
content: "\F079"
}
.van-icon-like:before {
content: "\F07A"
}
.van-icon-live:before {
content: "\F07B"
}
.van-icon-location-o:before {
content: "\F07C"
}
.van-icon-location:before {
content: "\F07D"
}
.van-icon-lock:before {
content: "\F07E"
}
.van-icon-logistics:before {
content: "\F07F"
}
.van-icon-manager-o:before {
content: "\F080"
}
.van-icon-manager:before {
content: "\F081"
}
.van-icon-map-marked:before {
content: "\F082"
}
.van-icon-medal-o:before {
content: "\F083"
}
.van-icon-medal:before {
content: "\F084"
}
.van-icon-more-o:before {
content: "\F085"
}
.van-icon-more:before {
content: "\F086"
}
.van-icon-music-o:before {
content: "\F087"
}
.van-icon-music:before {
content: "\F088"
}
.van-icon-new-arrival-o:before {
content: "\F089"
}
.van-icon-new-arrival:before {
content: "\F08A"
}
.van-icon-new-o:before {
content: "\F08B"
}
.van-icon-new:before {
content: "\F08C"
}
.van-icon-newspaper-o:before {
content: "\F08D"
}
.van-icon-notes-o:before {
content: "\F08E"
}
.van-icon-orders-o:before {
content: "\F08F"
}
.van-icon-other-pay:before {
content: "\F090"
}
.van-icon-paid:before {
content: "\F091"
}
.van-icon-passed:before {
content: "\F092"
}
.van-icon-pause-circle-o:before {
content: "\F093"
}
.van-icon-pause-circle:before {
content: "\F094"
}
.van-icon-pause:before {
content: "\F095"
}
.van-icon-peer-pay:before {
content: "\F096"
}
.van-icon-pending-payment:before {
content: "\F097"
}
.van-icon-phone-circle-o:before {
content: "\F098"
}
.van-icon-phone-circle:before {
content: "\F099"
}
.van-icon-phone-o:before {
content: "\F09A"
}
.van-icon-phone:before {
content: "\F09B"
}
.van-icon-photo-o:before {
content: "\F09C"
}
.van-icon-photo:before {
content: "\F09D"
}
.van-icon-photograph:before {
content: "\F09E"
}
.van-icon-play-circle-o:before {
content: "\F09F"
}
.van-icon-play-circle:before {
content: "\F0A0"
}
.van-icon-play:before {
content: "\F0A1"
}
.van-icon-plus:before {
content: "\F0A2"
}
.van-icon-point-gift-o:before {
content: "\F0A3"
}
.van-icon-point-gift:before {
content: "\F0A4"
}
.van-icon-points:before {
content: "\F0A5"
}
.van-icon-printer:before {
content: "\F0A6"
}
.van-icon-qr-invalid:before {
content: "\F0A7"
}
.van-icon-qr:before {
content: "\F0A8"
}
.van-icon-question-o:before {
content: "\F0A9"
}
.van-icon-question:before {
content: "\F0AA"
}
.van-icon-records:before {
content: "\F0AB"
}
.van-icon-refund-o:before {
content: "\F0AC"
}
.van-icon-replay:before {
content: "\F0AD"
}
.van-icon-scan:before {
content: "\F0AE"
}
.van-icon-search:before {
content: "\F0AF"
}
.van-icon-send-gift-o:before {
content: "\F0B0"
}
.van-icon-send-gift:before {
content: "\F0B1"
}
.van-icon-service-o:before {
content: "\F0B2"
}
.van-icon-service:before {
content: "\F0B3"
}
.van-icon-setting-o:before {
content: "\F0B4"
}
.van-icon-setting:before {
content: "\F0B5"
}
.van-icon-share:before {
content: "\F0B6"
}
.van-icon-shop-collect-o:before {
content: "\F0B7"
}
.van-icon-shop-collect:before {
content: "\F0B8"
}
.van-icon-shop-o:before {
content: "\F0B9"
}
.van-icon-shop:before {
content: "\F0BA"
}
.van-icon-shopping-cart-o:before {
content: "\F0BB"
}
.van-icon-shopping-cart:before {
content: "\F0BC"
}
.van-icon-shrink:before {
content: "\F0BD"
}
.van-icon-sign:before {
content: "\F0BE"
}
.van-icon-smile-comment-o:before {
content: "\F0BF"
}
.van-icon-smile-comment:before {
content: "\F0C0"
}
.van-icon-smile-o:before {
content: "\F0C1"
}
.van-icon-smile:before {
content: "\F0C2"
}
.van-icon-star-o:before {
content: "\F0C3"
}
.van-icon-star:before {
content: "\F0C4"
}
.van-icon-stop-circle-o:before {
content: "\F0C5"
}
.van-icon-stop-circle:before {
content: "\F0C6"
}
.van-icon-stop:before {
content: "\F0C7"
}
.van-icon-success:before {
content: "\F0C8"
}
.van-icon-thumb-circle-o:before {
content: "\F0C9"
}
.van-icon-thumb-circle:before {
content: "\F0CA"
}
.van-icon-todo-list-o:before {
content: "\F0CB"
}
.van-icon-todo-list:before {
content: "\F0CC"
}
.van-icon-tosend:before {
content: "\F0CD"
}
.van-icon-tv-o:before {
content: "\F0CE"
}
.van-icon-umbrella-circle:before {
content: "\F0CF"
}
.van-icon-underway-o:before {
content: "\F0D0"
}
.van-icon-underway:before {
content: "\F0D1"
}
.van-icon-upgrade:before {
content: "\F0D2"
}
.van-icon-user-circle-o:before {
content: "\F0D3"
}
.van-icon-user-o:before {
content: "\F0D4"
}
.van-icon-video-o:before {
content: "\F0D5"
}
.van-icon-video:before {
content: "\F0D6"
}
.van-icon-vip-card-o:before {
content: "\F0D7"
}
.van-icon-vip-card:before {
content: "\F0D8"
}
.van-icon-volume-o:before {
content: "\F0D9"
}
.van-icon-volume:before {
content: "\F0DA"
}
.van-icon-wap-home-o:before {
content: "\F0DB"
}
.van-icon-wap-home:before {
content: "\F0DC"
}
.van-icon-wap-nav:before {
content: "\F0DD"
}
.van-icon-warn-o:before {
content: "\F0DE"
}
.van-icon-warning-o:before {
content: "\F0DF"
}
.van-icon-warning:before {
content: "\F0E0"
}
.van-icon-weapp-nav:before {
content: "\F0E1"
}
.van-icon-wechat:before {
content: "\F0E2"
}
.van-icon-youzan-shield:before {
content: "\F0E3"
}
:host {
display: -webkit-inline-flex;
display: inline-flex;
-webkit-align-items: center;
align-items: center;
-webkit-justify-content: center;
justify-content: center
}
.van-icon--image {
width: 1em;
height: 1em
}
.van-icon__image {
width: 100%;
height: 100%
}
.van-icon__info {
z-index: 1
}
import { VantComponent } from '../common/component';
VantComponent({
props: {
dot: Boolean,
info: null,
customStyle: String
}
});
<template>
<uni-shadow-root class="vant-info-index"><view v-if="info !== null && info !== '' || dot" :class="'custom-class van-info '+(utils.bem('info', { dot }))" :style="customStyle">{{ dot ? '' : info }}</view></uni-shadow-root>
</template>
<wxs src="../wxs/utils.wxs" module="utils"></wxs>
<script>
global['__wxRoute'] = 'vant/info/index'
import { VantComponent } from '../common/component';
VantComponent({
props: {
dot: Boolean,
info: null,
customStyle: String
}
});
export default global['__wxComponents']['vant/info/index']
</script>
<style platform="mp-weixin">
@import '../common/index.css';.van-info{position:absolute;top:0;right:0;box-sizing:border-box;white-space:nowrap;text-align:center;-webkit-transform:translate(50%,-50%);transform:translate(50%,-50%);-webkit-transform-origin:100%;transform-origin:100%;min-width:16px;min-width:var(--info-size,16px);padding:0 3px;padding:var(--info-padding,0 3px);color:#fff;color:var(--info-color,#fff);font-weight:500;font-weight:var(--info-font-weight,500);font-size:12px;font-size:var(--info-font-size,12px);font-family:PingFang SC,Helvetica Neue,Arial,sans-serif;font-family:var(--info-font-family,PingFang SC,Helvetica Neue,Arial,sans-serif);line-height:14px;line-height:calc(var(--info-size, 16px) - var(--info-border-width, 1px)*2);background-color:#ee0a24;background-color:var(--info-background-color,#ee0a24);border:1px solid #fff;border:var(--info-border-width,1px) solid var(--white,#fff);border-radius:16px;border-radius:var(--info-size,16px)}.van-info--dot{min-width:0;border-radius:100%;width:8px;width:var(--info-dot-size,8px);height:8px;height:var(--info-dot-size,8px);background-color:#ee0a24;background-color:var(--info-dot-color,#ee0a24)}
</style>
\ No newline at end of file
<wxs src="../wxs/utils.wxs" module="utils" />
<view
wx:if="{{ info !== null && info !== '' || dot }}"
class="custom-class van-info {{ utils.bem('info', { dot }) }}"
style="{{ customStyle }}"
>{{ dot ? '' : info }}</view>
@import '../common/index.wxss';.van-info{position:absolute;top:0;right:0;box-sizing:border-box;white-space:nowrap;text-align:center;-webkit-transform:translate(50%,-50%);transform:translate(50%,-50%);-webkit-transform-origin:100%;transform-origin:100%;min-width:16px;min-width:var(--info-size,16px);padding:0 3px;padding:var(--info-padding,0 3px);color:#fff;color:var(--info-color,#fff);font-weight:500;font-weight:var(--info-font-weight,500);font-size:12px;font-size:var(--info-font-size,12px);font-family:PingFang SC,Helvetica Neue,Arial,sans-serif;font-family:var(--info-font-family,PingFang SC,Helvetica Neue,Arial,sans-serif);line-height:14px;line-height:calc(var(--info-size, 16px) - var(--info-border-width, 1px)*2);background-color:#ee0a24;background-color:var(--info-background-color,#ee0a24);border:1px solid #fff;border:var(--info-border-width,1px) solid var(--white,#fff);border-radius:16px;border-radius:var(--info-size,16px)}.van-info--dot{min-width:0;border-radius:100%;width:8px;width:var(--info-dot-size,8px);height:8px;height:var(--info-dot-size,8px);background-color:#ee0a24;background-color:var(--info-dot-color,#ee0a24)}
\ No newline at end of file
import { VantComponent } from '../common/component';
import { addUnit } from '../common/utils';
VantComponent({
props: {
color: String,
vertical: Boolean,
type: {
type: String,
value: 'circular'
},
size: {
type: String,
observer: 'setSizeWithUnit'
},
textSize: {
type: String,
observer: 'setTextSizeWithUnit'
}
},
methods: {
setSizeWithUnit(size) {
this.setData({
sizeWithUnit: addUnit(size)
});
},
setTextSizeWithUnit(size) {
this.set({
textSizeWithUnit: addUnit(size)
});
}
}
});
{
"component": true
}
\ No newline at end of file
<template>
<uni-shadow-root class="vant-loading-index"><view :class="'custom-class van-loading '+(vertical ? 'van-loading--vertical' : '')">
<view :class="'van-loading__spinner van-loading__spinner--'+(type)" :style="'color: '+(color)+'; width: '+(sizeWithUnit)+'; height: '+(sizeWithUnit)">
<view v-for="(item,index) in ('item in 12')" :key="item.index" v-if="type === 'spinner'" class="van-loading__dot"></view>
</view>
<view class="van-loading__text" :style="'font-size: '+(textSizeWithUnit)+';'">
<slot></slot>
</view>
</view></uni-shadow-root>
</template>
<script>
global['__wxRoute'] = 'vant/loading/index'
import { VantComponent } from '../common/component';
import { addUnit } from '../common/utils';
VantComponent({
props: {
color: String,
vertical: Boolean,
type: {
type: String,
value: 'circular'
},
size: {
type: String,
observer: 'setSizeWithUnit'
},
textSize: {
type: String,
observer: 'setTextSizeWithUnit'
}
},
methods: {
setSizeWithUnit(size) {
this.setData({
sizeWithUnit: addUnit(size)
});
},
setTextSizeWithUnit(size) {
this.set({
textSizeWithUnit: addUnit(size)
});
}
}
});
export default global['__wxComponents']['vant/loading/index']
</script>
<style platform="mp-weixin">
@import '../common/index.css';.vant-loading-index{font-size:0;line-height:1}.van-loading{display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;color:#c8c9cc;color:var(--loading-spinner-color,#c8c9cc)}.van-loading__spinner{position:relative;box-sizing:border-box;width:30px;width:var(--loading-spinner-size,30px);max-width:100%;max-height:100%;height:30px;height:var(--loading-spinner-size,30px);-webkit-animation:van-rotate .8s linear infinite;animation:van-rotate .8s linear infinite;-webkit-animation:van-rotate var(--loading-spinner-animation-duration,.8s) linear infinite;animation:van-rotate var(--loading-spinner-animation-duration,.8s) linear infinite}.van-loading__spinner--spinner{-webkit-animation-timing-function:steps(12);animation-timing-function:steps(12)}.van-loading__spinner--circular{border:1px solid transparent;border-top-color:initial;border-radius:100%}.van-loading__text{margin-left:8px;margin-left:var(--padding-xs,8px);color:#969799;color:var(--loading-text-color,#969799);font-size:14px;font-size:var(--loading-text-font-size,14px);line-height:20px;line-height:var(--loading-text-line-height,20px)}.van-loading__text:empty{display:none}.van-loading--vertical{-webkit-flex-direction:column;flex-direction:column}.van-loading--vertical .van-loading__text{margin:8px 0 0;margin:var(--padding-xs,8px) 0 0}.van-loading__dot{position:absolute;top:0;left:0;width:100%;height:100%}.van-loading__dot:before{display:block;width:2px;height:25%;margin:0 auto;background-color:currentColor;border-radius:40%;content:" "}.van-loading__dot:first-of-type{-webkit-transform:rotate(30deg);transform:rotate(30deg);opacity:1}.van-loading__dot:nth-of-type(2){-webkit-transform:rotate(60deg);transform:rotate(60deg);opacity:.9375}.van-loading__dot:nth-of-type(3){-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:.875}.van-loading__dot:nth-of-type(4){-webkit-transform:rotate(120deg);transform:rotate(120deg);opacity:.8125}.van-loading__dot:nth-of-type(5){-webkit-transform:rotate(150deg);transform:rotate(150deg);opacity:.75}.van-loading__dot:nth-of-type(6){-webkit-transform:rotate(180deg);transform:rotate(180deg);opacity:.6875}.van-loading__dot:nth-of-type(7){-webkit-transform:rotate(210deg);transform:rotate(210deg);opacity:.625}.van-loading__dot:nth-of-type(8){-webkit-transform:rotate(240deg);transform:rotate(240deg);opacity:.5625}.van-loading__dot:nth-of-type(9){-webkit-transform:rotate(270deg);transform:rotate(270deg);opacity:.5}.van-loading__dot:nth-of-type(10){-webkit-transform:rotate(300deg);transform:rotate(300deg);opacity:.4375}.van-loading__dot:nth-of-type(11){-webkit-transform:rotate(330deg);transform:rotate(330deg);opacity:.375}.van-loading__dot:nth-of-type(12){-webkit-transform:rotate(1turn);transform:rotate(1turn);opacity:.3125}@-webkit-keyframes van-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes van-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}
</style>
\ No newline at end of file
<view class="custom-class van-loading {{ vertical ? 'van-loading--vertical' : '' }}">
<view
class="van-loading__spinner van-loading__spinner--{{ type }}"
style="color: {{ color }}; width: {{ sizeWithUnit }}; height: {{ sizeWithUnit }}"
>
<view
wx:if="{{ type === 'spinner' }}"
wx:for="item in 12"
wx:key="index"
class="van-loading__dot"
/>
</view>
<view class="van-loading__text" style="font-size: {{ textSizeWithUnit }};">
<slot />
</view>
</view>
@import '../common/index.wxss';:host{font-size:0;line-height:1}.van-loading{display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;color:#c8c9cc;color:var(--loading-spinner-color,#c8c9cc)}.van-loading__spinner{position:relative;box-sizing:border-box;width:30px;width:var(--loading-spinner-size,30px);max-width:100%;max-height:100%;height:30px;height:var(--loading-spinner-size,30px);-webkit-animation:van-rotate .8s linear infinite;animation:van-rotate .8s linear infinite;-webkit-animation:van-rotate var(--loading-spinner-animation-duration,.8s) linear infinite;animation:van-rotate var(--loading-spinner-animation-duration,.8s) linear infinite}.van-loading__spinner--spinner{-webkit-animation-timing-function:steps(12);animation-timing-function:steps(12)}.van-loading__spinner--circular{border:1px solid transparent;border-top-color:initial;border-radius:100%}.van-loading__text{margin-left:8px;margin-left:var(--padding-xs,8px);color:#969799;color:var(--loading-text-color,#969799);font-size:14px;font-size:var(--loading-text-font-size,14px);line-height:20px;line-height:var(--loading-text-line-height,20px)}.van-loading__text:empty{display:none}.van-loading--vertical{-webkit-flex-direction:column;flex-direction:column}.van-loading--vertical .van-loading__text{margin:8px 0 0;margin:var(--padding-xs,8px) 0 0}.van-loading__dot{position:absolute;top:0;left:0;width:100%;height:100%}.van-loading__dot:before{display:block;width:2px;height:25%;margin:0 auto;background-color:currentColor;border-radius:40%;content:" "}.van-loading__dot:first-of-type{-webkit-transform:rotate(30deg);transform:rotate(30deg);opacity:1}.van-loading__dot:nth-of-type(2){-webkit-transform:rotate(60deg);transform:rotate(60deg);opacity:.9375}.van-loading__dot:nth-of-type(3){-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:.875}.van-loading__dot:nth-of-type(4){-webkit-transform:rotate(120deg);transform:rotate(120deg);opacity:.8125}.van-loading__dot:nth-of-type(5){-webkit-transform:rotate(150deg);transform:rotate(150deg);opacity:.75}.van-loading__dot:nth-of-type(6){-webkit-transform:rotate(180deg);transform:rotate(180deg);opacity:.6875}.van-loading__dot:nth-of-type(7){-webkit-transform:rotate(210deg);transform:rotate(210deg);opacity:.625}.van-loading__dot:nth-of-type(8){-webkit-transform:rotate(240deg);transform:rotate(240deg);opacity:.5625}.van-loading__dot:nth-of-type(9){-webkit-transform:rotate(270deg);transform:rotate(270deg);opacity:.5}.van-loading__dot:nth-of-type(10){-webkit-transform:rotate(300deg);transform:rotate(300deg);opacity:.4375}.van-loading__dot:nth-of-type(11){-webkit-transform:rotate(330deg);transform:rotate(330deg);opacity:.375}.van-loading__dot:nth-of-type(12){-webkit-transform:rotate(1turn);transform:rotate(1turn);opacity:.3125}@-webkit-keyframes van-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes van-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}
\ No newline at end of file
export declare const basic: string;
export const basic = Behavior({
methods: {
$emit(...args) {
this.triggerEvent(...args);
},
getRect(selector, all) {
return new Promise(resolve => {
wx.createSelectorQuery()
.in(this)[all ? 'selectAll' : 'select'](selector)
.boundingClientRect(rect => {
if (all && Array.isArray(rect) && rect.length) {
resolve(rect);
}
if (!all && rect) {
resolve(rect);
}
})
.exec();
});
}
}
});
export declare const button: string;
export const button = Behavior({
externalClasses: ['hover-class'],
properties: {
id: String,
lang: {
type: String,
value: 'en'
},
businessId: Number,
sessionFrom: String,
sendMessageTitle: String,
sendMessagePath: String,
sendMessageImg: String,
showMessageCard: Boolean,
appParameter: String,
ariaLabel: String
}
});
export declare const link: string;
export const link = Behavior({
properties: {
url: String,
linkType: {
type: String,
value: 'navigateTo'
}
},
methods: {
jumpLink(urlKey = 'url') {
const url = this.data[urlKey];
if (url) {
wx[this.data.linkType]({ url });
}
}
}
});
export declare const behavior: string;
export const behavior = Behavior({
methods: {
set(data, callback) {
return new Promise(resolve => {
this.setData(data, () => {
if (callback && typeof callback === 'function') {
callback.call(this);
}
resolve();
});
});
}
}
});
export declare function observe(vantOptions: any, options: any): void;
import { behavior } from './behavior';
export function observe(vantOptions, options) {
const { watch } = vantOptions;
options.behaviors.push(behavior);
if (watch) {
const props = options.properties || {};
Object.keys(watch).forEach(key => {
if (key in props) {
let prop = props[key];
if (prop === null || !('type' in prop)) {
prop = { type: prop };
}
prop.observer = watch[key];
props[key] = prop;
}
});
options.properties = props;
}
}
export declare const openType: string;
export const openType = Behavior({
properties: {
openType: String
},
methods: {
bindGetUserInfo(event) {
this.$emit('getuserinfo', event.detail);
},
bindContact(event) {
this.$emit('contact', event.detail);
},
bindGetPhoneNumber(event) {
this.$emit('getphonenumber', event.detail);
},
bindError(event) {
this.$emit('error', event.detail);
},
bindLaunchApp(event) {
this.$emit('launchapp', event.detail);
},
bindOpenSetting(event) {
this.$emit('opensetting', event.detail);
},
}
});
export declare const touch: string;
const MIN_DISTANCE = 10;
function getDirection(x, y) {
if (x > y && x > MIN_DISTANCE) {
return 'horizontal';
}
if (y > x && y > MIN_DISTANCE) {
return 'vertical';
}
return '';
}
export const touch = Behavior({
methods: {
resetTouchStatus() {
this.direction = '';
this.deltaX = 0;
this.deltaY = 0;
this.offsetX = 0;
this.offsetY = 0;
},
touchStart(event) {
this.resetTouchStatus();
const touch = event.touches[0];
this.startX = touch.clientX;
this.startY = touch.clientY;
},
touchMove(event) {
const touch = event.touches[0];
this.deltaX = touch.clientX - this.startX;
this.deltaY = touch.clientY - this.startY;
this.offsetX = Math.abs(this.deltaX);
this.offsetY = Math.abs(this.deltaY);
this.direction = this.direction || getDirection(this.offsetX, this.offsetY);
}
}
});
export declare const transition: (showDefaultValue: boolean) => any;
import { isObj } from '../common/utils';
const getClassNames = (name) => ({
enter: `van-${name}-enter van-${name}-enter-active enter-class enter-active-class`,
'enter-to': `van-${name}-enter-to van-${name}-enter-active enter-to-class enter-active-class`,
leave: `van-${name}-leave van-${name}-leave-active leave-class leave-active-class`,
'leave-to': `van-${name}-leave-to van-${name}-leave-active leave-to-class leave-active-class`
});
const nextTick = () => new Promise(resolve => setTimeout(resolve, 1000 / 30));
export const transition = function (showDefaultValue) {
return Behavior({
properties: {
customStyle: String,
// @ts-ignore
show: {
type: Boolean,
value: showDefaultValue,
observer: 'observeShow'
},
// @ts-ignore
duration: {
type: null,
value: 300,
observer: 'observeDuration'
},
name: {
type: String,
value: 'fade'
}
},
data: {
type: '',
inited: false,
display: false
},
attached() {
if (this.data.show) {
this.enter();
}
},
methods: {
observeShow(value) {
value ? this.enter() : this.leave();
},
enter() {
const { duration, name } = this.data;
const classNames = getClassNames(name);
const currentDuration = isObj(duration) ? duration.enter : duration;
this.status = 'enter';
this.$emit('before-enter');
Promise.resolve()
.then(nextTick)
.then(() => {
this.checkStatus('enter');
this.$emit('enter');
this.setData({
inited: true,
display: true,
classes: classNames.enter,
currentDuration
});
})
.then(nextTick)
.then(() => {
this.checkStatus('enter');
this.transitionEnded = false;
this.setData({
classes: classNames['enter-to']
});
})
.catch(() => { });
},
leave() {
if (!this.data.display) {
return;
}
const { duration, name } = this.data;
const classNames = getClassNames(name);
const currentDuration = isObj(duration) ? duration.leave : duration;
this.status = 'leave';
this.$emit('before-leave');
Promise.resolve()
.then(nextTick)
.then(() => {
this.checkStatus('leave');
this.$emit('leave');
this.setData({
classes: classNames.leave,
currentDuration
});
})
.then(nextTick)
.then(() => {
this.checkStatus('leave');
this.transitionEnded = false;
setTimeout(() => this.onTransitionEnd(), currentDuration);
this.setData({
classes: classNames['leave-to']
});
})
.catch(() => { });
},
checkStatus(status) {
if (status !== this.status) {
throw new Error(`incongruent status: ${status}`);
}
},
onTransitionEnd() {
if (this.transitionEnded) {
return;
}
this.transitionEnded = true;
this.$emit(`after-${this.status}`);
const { show, display } = this.data;
if (!show && display) {
this.setData({ display: false });
}
}
}
});
};
function isArray(array) {
return array && (array.constructor === 'Array' || (typeof Array !== 'undefined' && Array.isArray(array)));
}
module.exports.isArray = isArray;
var array = require('./array.wxs');
var object = require('./object.wxs');
var PREFIX = 'van-';
function join(name, mods) {
name = PREFIX + name;
mods = mods.map(function(mod) {
return name + '--' + mod;
});
mods.unshift(name);
return mods.join(' ');
}
function traversing(mods, conf) {
if (!conf) {
return;
}
if (typeof conf === 'string' || typeof conf === 'number') {
mods.push(conf);
} else if (array.isArray(conf)) {
conf.forEach(function(item) {
traversing(mods, item);
});
} else if (typeof conf === 'object') {
object.keys(conf).forEach(function(key) {
conf[key] && mods.push(key);
});
}
}
function bem(name, conf) {
var mods = [];
traversing(mods, conf);
return join(name, mods);
}
module.exports.bem = bem;
/**
* Simple memoize
* wxs doesn't support fn.apply, so this memoize only support up to 2 args
*/
function isPrimitive(value) {
var type = typeof value;
return (
type === 'boolean' ||
type === 'number' ||
type === 'string' ||
type === 'undefined' ||
value === null
);
}
// mock simple fn.call in wxs
function call(fn, args) {
if (args.length === 2) {
return fn(args[0], args[1]);
}
if (args.length === 1) {
return fn(args[0]);
}
return fn();
}
function serializer(args) {
if (args.length === 1 && isPrimitive(args[0])) {
return args[0];
}
var obj = {};
for (var i = 0; i < args.length; i++) {
obj['key' + i] = args[i];
}
return JSON.stringify(obj);
}
function memoize(fn) {
var cache = {};
return function() {
var key = serializer(arguments);
if (cache[key] === undefined) {
cache[key] = call(fn, arguments);
}
return cache[key];
};
}
module.exports.memoize = memoize;
/* eslint-disable */
var REGEXP = getRegExp('{|}|"', 'g');
function keys(obj) {
return JSON.stringify(obj)
.replace(REGEXP, '')
.split(',')
.map(function(item) {
return item.split(':')[0];
});
}
module.exports.keys = keys;
var bem = require('./bem.wxs').bem;
var memoize = require('./memoize.wxs').memoize;
module.exports = {
bem: memoize(bem),
memoize: memoize
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment