| | |
| | | </view> |
| | | </view> |
| | | </view> |
| | | |
| | | |
| | | |
| | | <!-- <view class="right-container rowCen borderBox" v-if="!showtar || platform!='iOS'"> |
| | | <view class="leftsharebox btnbox colCenCen" @tap="goPath()"> |
| | |
| | | <u-popup v-model="inviterShow" mode="center" border-radius="32" v-if="inviterShow" :mask-close-able='true'> |
| | | <inviter-model ref='invitermodel' @rewrite='rewriteCode' @setInvite='setCodebtn'></inviter-model> |
| | | </u-popup> |
| | | <uni-popup ref="popup_pddtip" type="center"> |
| | | <view class="pdd_pop_contant"> |
| | | <view class="pdd_pop_title">æ¯ä»·è®¢å</view> |
| | | <view class="pdd_pop_text">æ¬æ¬¡èªè´æ¶åæ¯ä»·è¡ä¸ºï¼èªè´æ¶ç为0ï¼å»ºè®®å
æ¶è该ååï¼2å°æ¶åéè¿å¤§è¿å®appè´ä¹°ï¼å¯æ£å¸¸è·åå¯¹åºæ¶çã</view> |
| | | </view> |
| | | </uni-popup> |
| | | </view> |
| | | </template> |
| | | |
| | |
| | | inviteCodeShow: false, |
| | | inviterShow: false, |
| | | frompage:'', |
| | | isshowpdd:false |
| | | }; |
| | | }, |
| | | onPageScroll(e) { |
| | |
| | | getApp().bcInit(); |
| | | } |
| | | }, |
| | | onReady(){ |
| | | if(this.isshowpdd) |
| | | { |
| | | this.$refs.popup_pddtip.open(); |
| | | } |
| | | }, |
| | | onLoad(options) { |
| | | this.appinfo = utils.getCacheSync('appInfo') |
| | | // #ifdef APP-PLUS |
| | |
| | | this.optionsInfo = JSON.parse(options.info); |
| | | this.pageInfo = JSON.parse(options.info); |
| | | } |
| | | |
| | | |
| | | this.pageType = this.optionsInfo.sourceType; |
| | | if (!this.optionsInfo.faction) { |
| | | if (this.pageType == 'tb' || this.pageType == 'tm' || this.pageType == 'tmshop') this.faction = 't'; |
| | | if (this.pageType == 'jd') this.faction = 'j'; |
| | | if (this.pageType == 'pdd') this.faction = 'p'; |
| | | if (this.pageType == 'pdd') |
| | | { |
| | | this.faction = 'p'; |
| | | if(options.proform&&options.proform=="clipboard") |
| | | {//æ¥èªåªè´´æ¿ |
| | | this.isshowpdd=true; |
| | | } |
| | | } |
| | | if (this.pageType == 'wph') this.faction = 'w'; |
| | | if (this.pageType == 'dy') this.faction = 'd'; |
| | | } else { |
| | |
| | | } |
| | | </style> |
| | | <style lang="scss" scoped> |
| | | .pdd_pop_contant{ |
| | | background-color: rgb(255, 255, 255); |
| | | padding: 40rpx; |
| | | width: 80%; |
| | | margin:0 auto; |
| | | border-radius: 20rpx; |
| | | .pdd_pop_title |
| | | { |
| | | text-align: center; |
| | | margin-bottom: 30rpx; |
| | | font-size: 18px; |
| | | } |
| | | .pdd_pop_text |
| | | { |
| | | margin-bottom: 30rpx; |
| | | color: #868080; |
| | | } |
| | | } |
| | | .container { |
| | | .flexbox { |
| | | position: fixed; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | ## 1.8.3ï¼2023-04-17ï¼ |
| | | - ä¿®å¤ uni-popup é夿弿¶ç bug |
| | | ## 1.8.2ï¼2023-02-02ï¼ |
| | | - uni-popup-dialog ç»ä»¶æ°å¢ inputType 屿§ |
| | | ## 1.8.1ï¼2022-12-01ï¼ |
| | | - ä¿®å¤ nvue ä¸ v-show æ¥é |
| | | ## 1.8.0ï¼2022-11-29ï¼ |
| | | - ä¼å 䏻颿 ·å¼ |
| | | ## 1.7.9ï¼2022-04-02ï¼ |
| | | - ä¿®å¤ å¼¹åºå±å
鍿 æ³æ»å¨çbug |
| | | ## 1.7.8ï¼2022-03-28ï¼ |
| | | - ä¿®å¤ å°ç¨åºä¸é«åº¦é误çbug |
| | | ## 1.7.7ï¼2022-03-17ï¼ |
| | | - ä¿®å¤ å¿«éè°ç¨openåºç°é®é¢çBug |
| | | ## 1.7.6ï¼2022-02-14ï¼ |
| | | - ä¿®å¤ safeArea 屿§ä¸è½è®¾ç½®ä¸ºfalseçbug |
| | | ## 1.7.5ï¼2022-01-19ï¼ |
| | | - ä¿®å¤ isMaskClick 失æçbug |
| | | ## 1.7.4ï¼2022-01-19ï¼ |
| | | - æ°å¢ cancelText \ confirmText 屿§ ï¼å¯èªå®ä¹ææ¬ |
| | | - æ°å¢ maskBackgroundColor 屿§ ï¼å¯ä»¥ä¿®æ¹èçé¢è² |
| | | - ä¼å maskClick屿§ æ´æ°ä¸º isMaskClick ï¼è§£å³å¾®ä¿¡å°ç¨åºè¦åçé®é¢ |
| | | ## 1.7.3ï¼2022-01-13ï¼ |
| | | - ä¿®å¤ è®¾ç½® safeArea 屿§ä¸çæçbug |
| | | ## 1.7.2ï¼2021-11-26ï¼ |
| | | - ä¼å ç»ä»¶ç¤ºä¾ |
| | | ## 1.7.1ï¼2021-11-26ï¼ |
| | | - ä¿®å¤ vuedoc æåé误 |
| | | ## 1.7.0ï¼2021-11-19ï¼ |
| | | - ä¼å ç»ä»¶UIï¼å¹¶æä¾è®¾è®¡èµæºï¼è¯¦è§:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) |
| | | - ææ¡£è¿ç§»ï¼è¯¦è§:[https://uniapp.dcloud.io/component/uniui/uni-popup](https://uniapp.dcloud.io/component/uniui/uni-popup) |
| | | ## 1.6.2ï¼2021-08-24ï¼ |
| | | - æ°å¢ æ¯æå½é
å |
| | | ## 1.6.1ï¼2021-07-30ï¼ |
| | | - ä¼å vue3ä¸äºä»¶è¦åçé®é¢ |
| | | ## 1.6.0ï¼2021-07-13ï¼ |
| | | - ç»ä»¶å
¼å®¹ vue3ï¼å¦ä½å建vue3项ç®ï¼è¯¦è§ [uni-app é¡¹ç®æ¯æ vue3 ä»ç»](https://ask.dcloud.net.cn/article/37834) |
| | | ## 1.5.0ï¼2021-06-23ï¼ |
| | | - æ°å¢ mask-click é®ç½©å±ç¹å»äºä»¶ |
| | | ## 1.4.5ï¼2021-06-22ï¼ |
| | | - ä¿®å¤ nvue å¹³å°ä¸é´å¼¹åºåï¼ç¹å»å
容ï¼åç¹å»é®ç½©æ æ³å
³éçBug |
| | | ## 1.4.4ï¼2021-06-18ï¼ |
| | | - ä¿®å¤ H5å¹³å°ä¸é´å¼¹åºåï¼ç¹å»å
容ï¼åç¹å»é®ç½©æ æ³å
³éçBug |
| | | ## 1.4.3ï¼2021-06-08ï¼ |
| | | - ä¿®å¤ é误ç watch åæ®µ |
| | | - ä¿®å¤ safeArea 屿§ä¸çæçé®é¢ |
| | | - ä¿®å¤ ç¹å»å
容ï¼åç¹å»é®ç½©æ æ³å
³éçBug |
| | | ## 1.4.2ï¼2021-05-12ï¼ |
| | | - æ°å¢ ç»ä»¶ç¤ºä¾å°å |
| | | ## 1.4.1ï¼2021-04-29ï¼ |
| | | - ä¿®å¤ ç»ä»¶å
æ¾ç½® input ãtextarea ç»ä»¶ï¼æ æ³èç¦çé®é¢ |
| | | ## 1.4.0 ï¼2021-04-29ï¼ |
| | | - æ°å¢ type 屿§ç left\right å¼ï¼æ¯æå·¦å³å¼¹åº |
| | | - æ°å¢ open(String:type) æ¹æ³åæ° ï¼å¯ä»¥çç¥ type 屿§ ï¼ç´æ¥ä¼ å
¥ç±»åæå¼æå®å¼¹çª |
| | | - æ°å¢ backgroundColor 屿§ï¼å¯å®ä¹ä¸»çªå£èæ¯è²,é»è®¤ä¸æ¾ç¤ºèæ¯è² |
| | | - æ°å¢ safeArea 屿§ï¼æ¯å¦éé
åºé¨å®å
¨åº |
| | | - ä¿®å¤ App\h5\微信å°ç¨åºåºé¨å®å
¨åºå ä½ä¸å¯¹çBug |
| | | - ä¿®å¤ App 端弹åºçå¾
çBug |
| | | - ä¼å æåä½é
è®¾å¤æ§è½ï¼ä¼åå¨ç»å¡é¡¿é®é¢ |
| | | - ä¼å æ´ç®åçç»ä»¶èªå®ä¹æ¹å¼ |
| | | ## 1.2.9ï¼2021-02-05ï¼ |
| | | - ä¼å ç»ä»¶å¼ç¨å
³ç³»ï¼éè¿uni_moduleså¼ç¨ç»ä»¶ |
| | | ## 1.2.8ï¼2021-02-05ï¼ |
| | | - è°æ´ä¸ºuni_modulesç®å½è§è |
| | | ## 1.2.7ï¼2021-02-05ï¼ |
| | | - è°æ´ä¸ºuni_modulesç®å½è§è |
| | | - æ°å¢ æ¯æ PC 端 |
| | | - æ°å¢ uni-popup-message ãuni-popup-dialogæ©å±ç»ä»¶æ¯æ PC 端 |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // #ifdef H5 |
| | | export default { |
| | | name: 'Keypress', |
| | | props: { |
| | | disable: { |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | }, |
| | | mounted () { |
| | | const keyNames = { |
| | | esc: ['Esc', 'Escape'], |
| | | tab: 'Tab', |
| | | enter: 'Enter', |
| | | space: [' ', 'Spacebar'], |
| | | up: ['Up', 'ArrowUp'], |
| | | left: ['Left', 'ArrowLeft'], |
| | | right: ['Right', 'ArrowRight'], |
| | | down: ['Down', 'ArrowDown'], |
| | | delete: ['Backspace', 'Delete', 'Del'] |
| | | } |
| | | const listener = ($event) => { |
| | | if (this.disable) { |
| | | return |
| | | } |
| | | const keyName = Object.keys(keyNames).find(key => { |
| | | const keyName = $event.key |
| | | const value = keyNames[key] |
| | | return value === keyName || (Array.isArray(value) && value.includes(keyName)) |
| | | }) |
| | | if (keyName) { |
| | | // é¿å
åå
¶ä»æé®äºä»¶å²çª |
| | | setTimeout(() => { |
| | | this.$emit(keyName, {}) |
| | | }, 0) |
| | | } |
| | | } |
| | | document.addEventListener('keyup', listener) |
| | | this.$once('hook:beforeDestroy', () => { |
| | | document.removeEventListener('keyup', listener) |
| | | }) |
| | | }, |
| | | render: () => {} |
| | | } |
| | | // #endif |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="uni-popup-dialog"> |
| | | <view class="uni-dialog-title"> |
| | | <text class="uni-dialog-title-text" :class="['uni-popup__'+dialogType]">{{titleText}}</text> |
| | | </view> |
| | | <view v-if="mode === 'base'" class="uni-dialog-content"> |
| | | <slot> |
| | | <text class="uni-dialog-content-text">{{content}}</text> |
| | | </slot> |
| | | </view> |
| | | <view v-else class="uni-dialog-content"> |
| | | <slot> |
| | | <input class="uni-dialog-input" v-model="val" :type="inputType" :placeholder="placeholderText" :focus="focus" > |
| | | </slot> |
| | | </view> |
| | | <view class="uni-dialog-button-group"> |
| | | <view class="uni-dialog-button" @click="closeDialog"> |
| | | <text class="uni-dialog-button-text">{{closeText}}</text> |
| | | </view> |
| | | <view class="uni-dialog-button uni-border-left" @click="onOk"> |
| | | <text class="uni-dialog-button-text uni-button-color">{{okText}}</text> |
| | | </view> |
| | | </view> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import popup from '../uni-popup/popup.js' |
| | | import { |
| | | initVueI18n |
| | | } from '@dcloudio/uni-i18n' |
| | | import messages from '../uni-popup/i18n/index.js' |
| | | const { t } = initVueI18n(messages) |
| | | /** |
| | | * PopUp å¼¹åºå±-å¯¹è¯æ¡æ ·å¼ |
| | | * @description å¼¹åºå±-å¯¹è¯æ¡æ ·å¼ |
| | | * @tutorial https://ext.dcloud.net.cn/plugin?id=329 |
| | | * @property {String} value input 模å¼ä¸çé»è®¤å¼ |
| | | * @property {String} placeholder input 模å¼ä¸è¾å
¥æç¤º |
| | | * @property {String} type = [success|warning|info|error] 䏻颿 ·å¼ |
| | | * @value success æå |
| | | * @value warning æç¤º |
| | | * @value info æ¶æ¯ |
| | | * @value error é误 |
| | | * @property {String} mode = [base|input] 模å¼ã |
| | | * @value base åºç¡å¯¹è¯æ¡ |
| | | * @value input å¯è¾å
¥å¯¹è¯æ¡ |
| | | * @property {String} content å¯¹è¯æ¡å
容 |
| | | * @property {Boolean} beforeClose æ¯å¦æ¦æªåæ¶äºä»¶ |
| | | * @event {Function} confirm ç¹å»ç¡®è®¤æé®è§¦å |
| | | * @event {Function} close ç¹å»åæ¶æé®è§¦å |
| | | */ |
| | | |
| | | export default { |
| | | name: "uniPopupDialog", |
| | | mixins: [popup], |
| | | emits:['confirm','close'], |
| | | props: { |
| | | inputType:{ |
| | | type: String, |
| | | default: 'text' |
| | | }, |
| | | value: { |
| | | type: [String, Number], |
| | | default: '' |
| | | }, |
| | | placeholder: { |
| | | type: [String, Number], |
| | | default: '' |
| | | }, |
| | | type: { |
| | | type: String, |
| | | default: 'error' |
| | | }, |
| | | mode: { |
| | | type: String, |
| | | default: 'base' |
| | | }, |
| | | title: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | content: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | beforeClose: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | cancelText:{ |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | confirmText:{ |
| | | type: String, |
| | | default: '' |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | dialogType: 'error', |
| | | focus: false, |
| | | val: "" |
| | | } |
| | | }, |
| | | computed: { |
| | | okText() { |
| | | return this.confirmText || t("uni-popup.ok") |
| | | }, |
| | | closeText() { |
| | | return this.cancelText || t("uni-popup.cancel") |
| | | }, |
| | | placeholderText() { |
| | | return this.placeholder || t("uni-popup.placeholder") |
| | | }, |
| | | titleText() { |
| | | return this.title || t("uni-popup.title") |
| | | } |
| | | }, |
| | | watch: { |
| | | type(val) { |
| | | this.dialogType = val |
| | | }, |
| | | mode(val) { |
| | | if (val === 'input') { |
| | | this.dialogType = 'info' |
| | | } |
| | | }, |
| | | value(val) { |
| | | this.val = val |
| | | } |
| | | }, |
| | | created() { |
| | | // å¯¹è¯æ¡é®ç½©ä¸å¯ç¹å» |
| | | this.popup.disableMask() |
| | | // this.popup.closeMask() |
| | | if (this.mode === 'input') { |
| | | this.dialogType = 'info' |
| | | this.val = this.value |
| | | } else { |
| | | this.dialogType = this.type |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.focus = true |
| | | }, |
| | | methods: { |
| | | /** |
| | | * ç¹å»ç¡®è®¤æé® |
| | | */ |
| | | onOk() { |
| | | if (this.mode === 'input'){ |
| | | this.$emit('confirm', this.val) |
| | | }else{ |
| | | this.$emit('confirm') |
| | | } |
| | | if(this.beforeClose) return |
| | | this.popup.close() |
| | | }, |
| | | /** |
| | | * ç¹å»åæ¶æé® |
| | | */ |
| | | closeDialog() { |
| | | this.$emit('close') |
| | | if(this.beforeClose) return |
| | | this.popup.close() |
| | | }, |
| | | close(){ |
| | | this.popup.close() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" > |
| | | .uni-popup-dialog { |
| | | width: 300px; |
| | | border-radius: 11px; |
| | | background-color: #fff; |
| | | } |
| | | |
| | | .uni-dialog-title { |
| | | /* #ifndef APP-NVUE */ |
| | | display: flex; |
| | | /* #endif */ |
| | | flex-direction: row; |
| | | justify-content: center; |
| | | padding-top: 25px; |
| | | } |
| | | |
| | | .uni-dialog-title-text { |
| | | font-size: 16px; |
| | | font-weight: 500; |
| | | } |
| | | |
| | | .uni-dialog-content { |
| | | /* #ifndef APP-NVUE */ |
| | | display: flex; |
| | | /* #endif */ |
| | | flex-direction: row; |
| | | justify-content: center; |
| | | align-items: center; |
| | | padding: 20px; |
| | | } |
| | | |
| | | .uni-dialog-content-text { |
| | | font-size: 14px; |
| | | color: #6C6C6C; |
| | | } |
| | | |
| | | .uni-dialog-button-group { |
| | | /* #ifndef APP-NVUE */ |
| | | display: flex; |
| | | /* #endif */ |
| | | flex-direction: row; |
| | | border-top-color: #f5f5f5; |
| | | border-top-style: solid; |
| | | border-top-width: 1px; |
| | | } |
| | | |
| | | .uni-dialog-button { |
| | | /* #ifndef APP-NVUE */ |
| | | display: flex; |
| | | /* #endif */ |
| | | |
| | | flex: 1; |
| | | flex-direction: row; |
| | | justify-content: center; |
| | | align-items: center; |
| | | height: 45px; |
| | | } |
| | | |
| | | .uni-border-left { |
| | | border-left-color: #f0f0f0; |
| | | border-left-style: solid; |
| | | border-left-width: 1px; |
| | | } |
| | | |
| | | .uni-dialog-button-text { |
| | | font-size: 16px; |
| | | color: #333; |
| | | } |
| | | |
| | | .uni-button-color { |
| | | color: #007aff; |
| | | } |
| | | |
| | | .uni-dialog-input { |
| | | flex: 1; |
| | | font-size: 14px; |
| | | border: 1px #eee solid; |
| | | height: 40px; |
| | | padding: 0 10px; |
| | | border-radius: 5px; |
| | | color: #555; |
| | | } |
| | | |
| | | .uni-popup__success { |
| | | color: #4cd964; |
| | | } |
| | | |
| | | .uni-popup__warn { |
| | | color: #f0ad4e; |
| | | } |
| | | |
| | | .uni-popup__error { |
| | | color: #dd524d; |
| | | } |
| | | |
| | | .uni-popup__info { |
| | | color: #909399; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="uni-popup-message"> |
| | | <view class="uni-popup-message__box fixforpc-width" :class="'uni-popup__'+type"> |
| | | <slot> |
| | | <text class="uni-popup-message-text" :class="'uni-popup__'+type+'-text'">{{message}}</text> |
| | | </slot> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import popup from '../uni-popup/popup.js' |
| | | /** |
| | | * PopUp å¼¹åºå±-æ¶æ¯æç¤º |
| | | * @description å¼¹åºå±-æ¶æ¯æç¤º |
| | | * @tutorial https://ext.dcloud.net.cn/plugin?id=329 |
| | | * @property {String} type = [success|warning|info|error] 䏻颿 ·å¼ |
| | | * @value success æå |
| | | * @value warning æç¤º |
| | | * @value info æ¶æ¯ |
| | | * @value error é误 |
| | | * @property {String} message æ¶æ¯æç¤ºæå |
| | | * @property {String} duration æ¾ç¤ºæ¶é´ï¼è®¾ç½®ä¸º 0 åä¸ä¼èªå¨å
³é |
| | | */ |
| | | |
| | | export default { |
| | | name: 'uniPopupMessage', |
| | | mixins:[popup], |
| | | props: { |
| | | /** |
| | | * ä¸»é¢ success/warning/info/error é»è®¤ success |
| | | */ |
| | | type: { |
| | | type: String, |
| | | default: 'success' |
| | | }, |
| | | /** |
| | | * æ¶æ¯æå |
| | | */ |
| | | message: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | /** |
| | | * æ¾ç¤ºæ¶é´ï¼è®¾ç½®ä¸º 0 åä¸ä¼èªå¨å
³é |
| | | */ |
| | | duration: { |
| | | type: Number, |
| | | default: 3000 |
| | | }, |
| | | maskShow:{ |
| | | type:Boolean, |
| | | default:false |
| | | } |
| | | }, |
| | | data() { |
| | | return {} |
| | | }, |
| | | created() { |
| | | this.popup.maskShow = this.maskShow |
| | | this.popup.messageChild = this |
| | | }, |
| | | methods: { |
| | | timerClose(){ |
| | | if(this.duration === 0) return |
| | | clearTimeout(this.timer) |
| | | this.timer = setTimeout(()=>{ |
| | | this.popup.close() |
| | | },this.duration) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="scss" > |
| | | .uni-popup-message { |
| | | /* #ifndef APP-NVUE */ |
| | | display: flex; |
| | | /* #endif */ |
| | | flex-direction: row; |
| | | justify-content: center; |
| | | } |
| | | |
| | | .uni-popup-message__box { |
| | | background-color: #e1f3d8; |
| | | padding: 10px 15px; |
| | | border-color: #eee; |
| | | border-style: solid; |
| | | border-width: 1px; |
| | | flex: 1; |
| | | } |
| | | |
| | | @media screen and (min-width: 500px) { |
| | | .fixforpc-width { |
| | | margin-top: 20px; |
| | | border-radius: 4px; |
| | | flex: none; |
| | | min-width: 380px; |
| | | /* #ifndef APP-NVUE */ |
| | | max-width: 50%; |
| | | /* #endif */ |
| | | /* #ifdef APP-NVUE */ |
| | | max-width: 500px; |
| | | /* #endif */ |
| | | } |
| | | } |
| | | |
| | | .uni-popup-message-text { |
| | | font-size: 14px; |
| | | padding: 0; |
| | | } |
| | | |
| | | .uni-popup__success { |
| | | background-color: #e1f3d8; |
| | | } |
| | | |
| | | .uni-popup__success-text { |
| | | color: #67C23A; |
| | | } |
| | | |
| | | .uni-popup__warn { |
| | | background-color: #faecd8; |
| | | } |
| | | |
| | | .uni-popup__warn-text { |
| | | color: #E6A23C; |
| | | } |
| | | |
| | | .uni-popup__error { |
| | | background-color: #fde2e2; |
| | | } |
| | | |
| | | .uni-popup__error-text { |
| | | color: #F56C6C; |
| | | } |
| | | |
| | | .uni-popup__info { |
| | | background-color: #F2F6FC; |
| | | } |
| | | |
| | | .uni-popup__info-text { |
| | | color: #909399; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view class="uni-popup-share"> |
| | | <view class="uni-share-title"><text class="uni-share-title-text">{{shareTitleText}}</text></view> |
| | | <view class="uni-share-content"> |
| | | <view class="uni-share-content-box"> |
| | | <view class="uni-share-content-item" v-for="(item,index) in bottomData" :key="index" @click.stop="select(item,index)"> |
| | | <image class="uni-share-image" :src="item.icon" mode="aspectFill"></image> |
| | | <text class="uni-share-text">{{item.text}}</text> |
| | | </view> |
| | | |
| | | </view> |
| | | </view> |
| | | <view class="uni-share-button-box"> |
| | | <button class="uni-share-button" @click="close">{{cancelText}}</button> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import popup from '../uni-popup/popup.js' |
| | | import { |
| | | initVueI18n |
| | | } from '@dcloudio/uni-i18n' |
| | | import messages from '../uni-popup/i18n/index.js' |
| | | const { t } = initVueI18n(messages) |
| | | export default { |
| | | name: 'UniPopupShare', |
| | | mixins:[popup], |
| | | emits:['select'], |
| | | props: { |
| | | title: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | beforeClose: { |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | bottomData: [{ |
| | | text: '微信', |
| | | icon: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/c2b17470-50be-11eb-b680-7980c8a877b8.png', |
| | | name: 'wx' |
| | | }, |
| | | { |
| | | text: 'æ¯ä»å®', |
| | | icon: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/d684ae40-50be-11eb-8ff1-d5dcf8779628.png', |
| | | name: 'wx' |
| | | }, |
| | | { |
| | | text: 'QQ', |
| | | icon: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/e7a79520-50be-11eb-b997-9918a5dda011.png', |
| | | name: 'qq' |
| | | }, |
| | | { |
| | | text: 'æ°æµª', |
| | | icon: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/0dacdbe0-50bf-11eb-8ff1-d5dcf8779628.png', |
| | | name: 'sina' |
| | | }, |
| | | // { |
| | | // text: 'ç¾åº¦', |
| | | // icon: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/1ec6e920-50bf-11eb-8a36-ebb87efcf8c0.png', |
| | | // name: 'copy' |
| | | // }, |
| | | // { |
| | | // text: 'å
¶ä»', |
| | | // icon: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/2e0fdfe0-50bf-11eb-b997-9918a5dda011.png', |
| | | // name: 'more' |
| | | // } |
| | | ] |
| | | } |
| | | }, |
| | | created() {}, |
| | | computed: { |
| | | cancelText() { |
| | | return t("uni-popup.cancel") |
| | | }, |
| | | shareTitleText() { |
| | | return this.title || t("uni-popup.shareTitle") |
| | | } |
| | | }, |
| | | methods: { |
| | | /** |
| | | * éæ©å
容 |
| | | */ |
| | | select(item, index) { |
| | | this.$emit('select', { |
| | | item, |
| | | index |
| | | }) |
| | | this.close() |
| | | |
| | | }, |
| | | /** |
| | | * å
³éçªå£ |
| | | */ |
| | | close() { |
| | | if(this.beforeClose) return |
| | | this.popup.close() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="scss" > |
| | | .uni-popup-share { |
| | | background-color: #fff; |
| | | border-top-left-radius: 11px; |
| | | border-top-right-radius: 11px; |
| | | } |
| | | .uni-share-title { |
| | | /* #ifndef APP-NVUE */ |
| | | display: flex; |
| | | /* #endif */ |
| | | flex-direction: row; |
| | | align-items: center; |
| | | justify-content: center; |
| | | height: 40px; |
| | | } |
| | | .uni-share-title-text { |
| | | font-size: 14px; |
| | | color: #666; |
| | | } |
| | | .uni-share-content { |
| | | /* #ifndef APP-NVUE */ |
| | | display: flex; |
| | | /* #endif */ |
| | | flex-direction: row; |
| | | justify-content: center; |
| | | padding-top: 10px; |
| | | } |
| | | |
| | | .uni-share-content-box { |
| | | /* #ifndef APP-NVUE */ |
| | | display: flex; |
| | | /* #endif */ |
| | | flex-direction: row; |
| | | flex-wrap: wrap; |
| | | width: 360px; |
| | | } |
| | | |
| | | .uni-share-content-item { |
| | | width: 90px; |
| | | /* #ifndef APP-NVUE */ |
| | | display: flex; |
| | | /* #endif */ |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | padding: 10px 0; |
| | | align-items: center; |
| | | } |
| | | |
| | | .uni-share-content-item:active { |
| | | background-color: #f5f5f5; |
| | | } |
| | | |
| | | .uni-share-image { |
| | | width: 30px; |
| | | height: 30px; |
| | | } |
| | | |
| | | .uni-share-text { |
| | | margin-top: 10px; |
| | | font-size: 14px; |
| | | color: #3B4144; |
| | | } |
| | | |
| | | .uni-share-button-box { |
| | | /* #ifndef APP-NVUE */ |
| | | display: flex; |
| | | /* #endif */ |
| | | flex-direction: row; |
| | | padding: 10px 15px; |
| | | } |
| | | |
| | | .uni-share-button { |
| | | flex: 1; |
| | | border-radius: 50px; |
| | | color: #666; |
| | | font-size: 16px; |
| | | } |
| | | |
| | | .uni-share-button::after { |
| | | border-radius: 50px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "uni-popup.cancel": "cancel", |
| | | "uni-popup.ok": "ok", |
| | | "uni-popup.placeholder": "pleace enter", |
| | | "uni-popup.title": "Hint", |
| | | "uni-popup.shareTitle": "Share to" |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import en from './en.json' |
| | | import zhHans from './zh-Hans.json' |
| | | import zhHant from './zh-Hant.json' |
| | | export default { |
| | | en, |
| | | 'zh-Hans': zhHans, |
| | | 'zh-Hant': zhHant |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "uni-popup.cancel": "åæ¶", |
| | | "uni-popup.ok": "ç¡®å®", |
| | | "uni-popup.placeholder": "请è¾å
¥", |
| | | "uni-popup.title": "æç¤º", |
| | | "uni-popup.shareTitle": "å享å°" |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "uni-popup.cancel": "åæ¶", |
| | | "uni-popup.ok": "確å®", |
| | | "uni-popup.placeholder": "è«è¼¸å
¥", |
| | | "uni-popup.title": "æç¤º", |
| | | "uni-popup.shareTitle": "å享å°" |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // #ifdef H5 |
| | | export default { |
| | | name: 'Keypress', |
| | | props: { |
| | | disable: { |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | }, |
| | | mounted () { |
| | | const keyNames = { |
| | | esc: ['Esc', 'Escape'], |
| | | tab: 'Tab', |
| | | enter: 'Enter', |
| | | space: [' ', 'Spacebar'], |
| | | up: ['Up', 'ArrowUp'], |
| | | left: ['Left', 'ArrowLeft'], |
| | | right: ['Right', 'ArrowRight'], |
| | | down: ['Down', 'ArrowDown'], |
| | | delete: ['Backspace', 'Delete', 'Del'] |
| | | } |
| | | const listener = ($event) => { |
| | | if (this.disable) { |
| | | return |
| | | } |
| | | const keyName = Object.keys(keyNames).find(key => { |
| | | const keyName = $event.key |
| | | const value = keyNames[key] |
| | | return value === keyName || (Array.isArray(value) && value.includes(keyName)) |
| | | }) |
| | | if (keyName) { |
| | | // é¿å
åå
¶ä»æé®äºä»¶å²çª |
| | | setTimeout(() => { |
| | | this.$emit(keyName, {}) |
| | | }, 0) |
| | | } |
| | | } |
| | | document.addEventListener('keyup', listener) |
| | | // this.$once('hook:beforeDestroy', () => { |
| | | // document.removeEventListener('keyup', listener) |
| | | // }) |
| | | }, |
| | | render: () => {} |
| | | } |
| | | // #endif |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | |
| | | } |
| | | }, |
| | | created(){ |
| | | this.popup = this.getParent() |
| | | }, |
| | | methods:{ |
| | | /** |
| | | * è·åç¶å
ç´ å®ä¾ |
| | | */ |
| | | getParent(name = 'uniPopup') { |
| | | let parent = this.$parent; |
| | | let parentName = parent.$options.name; |
| | | while (parentName !== name) { |
| | | parent = parent.$parent; |
| | | if (!parent) return false |
| | | parentName = parent.$options.name; |
| | | } |
| | | return parent; |
| | | }, |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <view v-if="showPopup" class="uni-popup" :class="[popupstyle, isDesktop ? 'fixforpc-z-index' : '']"> |
| | | <view @touchstart="touchstart"> |
| | | <uni-transition key="1" v-if="maskShow" name="mask" mode-class="fade" :styles="maskClass" |
| | | :duration="duration" :show="showTrans" @click="onTap" /> |
| | | <uni-transition key="2" :mode-class="ani" name="content" :styles="transClass" :duration="duration" |
| | | :show="showTrans" @click="onTap"> |
| | | <view class="uni-popup__wrapper" :style="{ backgroundColor: bg }" :class="[popupstyle]" @click="clear"> |
| | | <slot /> |
| | | </view> |
| | | </uni-transition> |
| | | </view> |
| | | <!-- #ifdef H5 --> |
| | | <keypress v-if="maskShow" @esc="onTap" /> |
| | | <!-- #endif --> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | // #ifdef H5 |
| | | import keypress from './keypress.js' |
| | | // #endif |
| | | |
| | | /** |
| | | * PopUp å¼¹åºå± |
| | | * @description å¼¹åºå±ç»ä»¶ï¼ä¸ºäºè§£å³é®ç½©å¼¹å±çé®é¢ |
| | | * @tutorial https://ext.dcloud.net.cn/plugin?id=329 |
| | | * @property {String} type = [top|center|bottom|left|right|message|dialog|share] å¼¹åºæ¹å¼ |
| | | * @value top é¡¶é¨å¼¹åº |
| | | * @value center ä¸é´å¼¹åº |
| | | * @value bottom åºé¨å¼¹åº |
| | | * @value left å·¦ä¾§å¼¹åº |
| | | * @value right å³ä¾§å¼¹åº |
| | | * @value message æ¶æ¯æç¤º |
| | | * @value dialog å¯¹è¯æ¡ |
| | | * @value share åºé¨åäº«ç¤ºä¾ |
| | | * @property {Boolean} animation = [true|false] æ¯å¦å¼å¯å¨ç» |
| | | * @property {Boolean} maskClick = [true|false] èçç¹å»æ¯å¦å
³éå¼¹çª(åºå¼) |
| | | * @property {Boolean} isMaskClick = [true|false] èçç¹å»æ¯å¦å
³éå¼¹çª |
| | | * @property {String} backgroundColor 主çªå£èæ¯è² |
| | | * @property {String} maskBackgroundColor èçé¢è² |
| | | * @property {Boolean} safeArea æ¯å¦éé
åºé¨å®å
¨åº |
| | | * @event {Function} change æå¼å
³éå¼¹çªè§¦åï¼e={show: false} |
| | | * @event {Function} maskClick ç¹å»é®ç½©è§¦å |
| | | */ |
| | | |
| | | export default { |
| | | name: 'uniPopup', |
| | | components: { |
| | | // #ifdef H5 |
| | | keypress |
| | | // #endif |
| | | }, |
| | | emits: ['change', 'maskClick'], |
| | | props: { |
| | | // å¼å¯å¨ç» |
| | | animation: { |
| | | type: Boolean, |
| | | default: true |
| | | }, |
| | | // å¼¹åºå±ç±»åï¼å¯éå¼ï¼top: é¡¶é¨å¼¹åºå±ï¼bottomï¼åºé¨å¼¹åºå±ï¼centerï¼å
¨å±å¼¹åºå± |
| | | // message: æ¶æ¯æç¤º ; dialog : å¯¹è¯æ¡ |
| | | type: { |
| | | type: String, |
| | | default: 'center' |
| | | }, |
| | | // maskClick |
| | | isMaskClick: { |
| | | type: Boolean, |
| | | default: null |
| | | }, |
| | | // TODO 2 ä¸ªçæ¬ååºå¼å±æ§ ï¼ä½¿ç¨ isMaskClick |
| | | maskClick: { |
| | | type: Boolean, |
| | | default: null |
| | | }, |
| | | backgroundColor: { |
| | | type: String, |
| | | default: 'none' |
| | | }, |
| | | safeArea: { |
| | | type: Boolean, |
| | | default: true |
| | | }, |
| | | maskBackgroundColor: { |
| | | type: String, |
| | | default: 'rgba(0, 0, 0, 0.4)' |
| | | }, |
| | | }, |
| | | |
| | | watch: { |
| | | /** |
| | | * çå¬typeç±»å |
| | | */ |
| | | type: { |
| | | handler: function(type) { |
| | | if (!this.config[type]) return |
| | | this[this.config[type]](true) |
| | | }, |
| | | immediate: true |
| | | }, |
| | | isDesktop: { |
| | | handler: function(newVal) { |
| | | if (!this.config[newVal]) return |
| | | this[this.config[this.type]](true) |
| | | }, |
| | | immediate: true |
| | | }, |
| | | /** |
| | | * çå¬é®ç½©æ¯å¦å¯ç¹å» |
| | | * @param {Object} val |
| | | */ |
| | | maskClick: { |
| | | handler: function(val) { |
| | | this.mkclick = val |
| | | }, |
| | | immediate: true |
| | | }, |
| | | isMaskClick: { |
| | | handler: function(val) { |
| | | this.mkclick = val |
| | | }, |
| | | immediate: true |
| | | }, |
| | | // H5 ä¸ç¦æ¢åºé¨æ»å¨ |
| | | showPopup(show) { |
| | | // #ifdef H5 |
| | | // fix by mehaotian å¤ç h5 æ»å¨ç©¿éçé®é¢ |
| | | document.getElementsByTagName('body')[0].style.overflow = show ? 'hidden' : 'visible' |
| | | // #endif |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | duration: 300, |
| | | ani: [], |
| | | showPopup: false, |
| | | showTrans: false, |
| | | popupWidth: 0, |
| | | popupHeight: 0, |
| | | config: { |
| | | top: 'top', |
| | | bottom: 'bottom', |
| | | center: 'center', |
| | | left: 'left', |
| | | right: 'right', |
| | | message: 'top', |
| | | dialog: 'center', |
| | | share: 'bottom' |
| | | }, |
| | | maskClass: { |
| | | position: 'fixed', |
| | | bottom: 0, |
| | | top: 0, |
| | | left: 0, |
| | | right: 0, |
| | | backgroundColor: 'rgba(0, 0, 0, 0.4)' |
| | | }, |
| | | transClass: { |
| | | position: 'fixed', |
| | | left: 0, |
| | | right: 0 |
| | | }, |
| | | maskShow: true, |
| | | mkclick: true, |
| | | popupstyle: this.isDesktop ? 'fixforpc-top' : 'top' |
| | | } |
| | | }, |
| | | computed: { |
| | | isDesktop() { |
| | | return this.popupWidth >= 500 && this.popupHeight >= 500 |
| | | }, |
| | | bg() { |
| | | if (this.backgroundColor === '' || this.backgroundColor === 'none') { |
| | | return 'transparent' |
| | | } |
| | | return this.backgroundColor |
| | | } |
| | | }, |
| | | mounted() { |
| | | const fixSize = () => { |
| | | const { |
| | | windowWidth, |
| | | windowHeight, |
| | | windowTop, |
| | | safeArea, |
| | | screenHeight, |
| | | safeAreaInsets |
| | | } = uni.getSystemInfoSync() |
| | | this.popupWidth = windowWidth |
| | | this.popupHeight = windowHeight + (windowTop || 0) |
| | | // TODO fix by mehaotian æ¯å¦éé
åºé¨å®å
¨åº ,ç®å微信ios ãå app ios è®¡ç®æå·®å¼ï¼éè¦æ¡æ¶ä¿®å¤ |
| | | if (safeArea && this.safeArea) { |
| | | // #ifdef MP-WEIXIN |
| | | this.safeAreaInsets = screenHeight - safeArea.bottom |
| | | // #endif |
| | | // #ifndef MP-WEIXIN |
| | | this.safeAreaInsets = safeAreaInsets.bottom |
| | | // #endif |
| | | } else { |
| | | this.safeAreaInsets = 0 |
| | | } |
| | | } |
| | | fixSize() |
| | | // #ifdef H5 |
| | | // window.addEventListener('resize', fixSize) |
| | | // this.$once('hook:beforeDestroy', () => { |
| | | // window.removeEventListener('resize', fixSize) |
| | | // }) |
| | | // #endif |
| | | }, |
| | | // #ifndef VUE3 |
| | | // TODO vue2 |
| | | destroyed() { |
| | | this.setH5Visible() |
| | | }, |
| | | // #endif |
| | | // #ifdef VUE3 |
| | | // TODO vue3 |
| | | unmounted() { |
| | | this.setH5Visible() |
| | | }, |
| | | // #endif |
| | | created() { |
| | | // this.mkclick = this.isMaskClick || this.maskClick |
| | | if (this.isMaskClick === null && this.maskClick === null) { |
| | | this.mkclick = true |
| | | } else { |
| | | this.mkclick = this.isMaskClick !== null ? this.isMaskClick : this.maskClick |
| | | } |
| | | if (this.animation) { |
| | | this.duration = 300 |
| | | } else { |
| | | this.duration = 0 |
| | | } |
| | | // TODO å¤ç message ç»ä»¶çå½å¨æå¼å¸¸çé®é¢ |
| | | this.messageChild = null |
| | | // TODO è§£å³å¤´æ¡å泡çé®é¢ |
| | | this.clearPropagation = false |
| | | this.maskClass.backgroundColor = this.maskBackgroundColor |
| | | }, |
| | | methods: { |
| | | setH5Visible() { |
| | | // #ifdef H5 |
| | | // fix by mehaotian å¤ç h5 æ»å¨ç©¿éçé®é¢ |
| | | document.getElementsByTagName('body')[0].style.overflow = 'visible' |
| | | // #endif |
| | | }, |
| | | /** |
| | | * å
¬ç¨æ¹æ³ï¼ä¸æ¾ç¤ºé®ç½©å± |
| | | */ |
| | | closeMask() { |
| | | this.maskShow = false |
| | | }, |
| | | /** |
| | | * å
¬ç¨æ¹æ³ï¼é®ç½©å±ç¦æ¢ç¹å» |
| | | */ |
| | | disableMask() { |
| | | this.mkclick = false |
| | | }, |
| | | // TODO nvue åæ¶åæ³¡ |
| | | clear(e) { |
| | | // #ifndef APP-NVUE |
| | | e.stopPropagation() |
| | | // #endif |
| | | this.clearPropagation = true |
| | | }, |
| | | |
| | | open(direction) { |
| | | // fix by mehaotian å¤çå¿«éæå¼å
³éçæ
åµ |
| | | if (this.showPopup) { |
| | | return |
| | | } |
| | | let innerType = ['top', 'center', 'bottom', 'left', 'right', 'message', 'dialog', 'share'] |
| | | if (!(direction && innerType.indexOf(direction) !== -1)) { |
| | | direction = this.type |
| | | } |
| | | if (!this.config[direction]) { |
| | | console.error('缺å°ç±»åï¼', direction) |
| | | return |
| | | } |
| | | this[this.config[direction]]() |
| | | this.$emit('change', { |
| | | show: true, |
| | | type: direction |
| | | }) |
| | | }, |
| | | close(type) { |
| | | this.showTrans = false |
| | | this.$emit('change', { |
| | | show: false, |
| | | type: this.type |
| | | }) |
| | | clearTimeout(this.timer) |
| | | // // èªå®ä¹å
³éäºä»¶ |
| | | // this.customOpen && this.customClose() |
| | | this.timer = setTimeout(() => { |
| | | this.showPopup = false |
| | | }, 300) |
| | | }, |
| | | // TODO å¤çåæ³¡äºä»¶ï¼å¤´æ¡çåæ³¡äºä»¶æé®é¢ ï¼å
è¿æ ·å
¼å®¹ |
| | | touchstart() { |
| | | this.clearPropagation = false |
| | | }, |
| | | |
| | | onTap() { |
| | | if (this.clearPropagation) { |
| | | // fix by mehaotian å
¼å®¹ nvue |
| | | this.clearPropagation = false |
| | | return |
| | | } |
| | | this.$emit('maskClick') |
| | | if (!this.mkclick) return |
| | | this.close() |
| | | }, |
| | | /** |
| | | * é¡¶é¨å¼¹åºæ ·å¼å¤ç |
| | | */ |
| | | top(type) { |
| | | this.popupstyle = this.isDesktop ? 'fixforpc-top' : 'top' |
| | | this.ani = ['slide-top'] |
| | | this.transClass = { |
| | | position: 'fixed', |
| | | left: 0, |
| | | right: 0, |
| | | backgroundColor: this.bg |
| | | } |
| | | // TODO å
¼å®¹ type 屿§ ï¼åç»ä¼åºå¼ |
| | | if (type) return |
| | | this.showPopup = true |
| | | this.showTrans = true |
| | | this.$nextTick(() => { |
| | | if (this.messageChild && this.type === 'message') { |
| | | this.messageChild.timerClose() |
| | | } |
| | | }) |
| | | }, |
| | | /** |
| | | * åºé¨å¼¹åºæ ·å¼å¤ç |
| | | */ |
| | | bottom(type) { |
| | | this.popupstyle = 'bottom' |
| | | this.ani = ['slide-bottom'] |
| | | this.transClass = { |
| | | position: 'fixed', |
| | | left: 0, |
| | | right: 0, |
| | | bottom: 0, |
| | | paddingBottom: this.safeAreaInsets + 'px', |
| | | backgroundColor: this.bg |
| | | } |
| | | // TODO å
¼å®¹ type 屿§ ï¼åç»ä¼åºå¼ |
| | | if (type) return |
| | | this.showPopup = true |
| | | this.showTrans = true |
| | | }, |
| | | /** |
| | | * ä¸é´å¼¹åºæ ·å¼å¤ç |
| | | */ |
| | | center(type) { |
| | | this.popupstyle = 'center' |
| | | this.ani = ['zoom-out', 'fade'] |
| | | this.transClass = { |
| | | position: 'fixed', |
| | | /* #ifndef APP-NVUE */ |
| | | display: 'flex', |
| | | flexDirection: 'column', |
| | | /* #endif */ |
| | | bottom: 0, |
| | | left: 0, |
| | | right: 0, |
| | | top: 0, |
| | | justifyContent: 'center', |
| | | alignItems: 'center' |
| | | } |
| | | // TODO å
¼å®¹ type 屿§ ï¼åç»ä¼åºå¼ |
| | | if (type) return |
| | | this.showPopup = true |
| | | this.showTrans = true |
| | | }, |
| | | left(type) { |
| | | this.popupstyle = 'left' |
| | | this.ani = ['slide-left'] |
| | | this.transClass = { |
| | | position: 'fixed', |
| | | left: 0, |
| | | bottom: 0, |
| | | top: 0, |
| | | backgroundColor: this.bg, |
| | | /* #ifndef APP-NVUE */ |
| | | display: 'flex', |
| | | flexDirection: 'column' |
| | | /* #endif */ |
| | | } |
| | | // TODO å
¼å®¹ type 屿§ ï¼åç»ä¼åºå¼ |
| | | if (type) return |
| | | this.showPopup = true |
| | | this.showTrans = true |
| | | }, |
| | | right(type) { |
| | | this.popupstyle = 'right' |
| | | this.ani = ['slide-right'] |
| | | this.transClass = { |
| | | position: 'fixed', |
| | | bottom: 0, |
| | | right: 0, |
| | | top: 0, |
| | | backgroundColor: this.bg, |
| | | /* #ifndef APP-NVUE */ |
| | | display: 'flex', |
| | | flexDirection: 'column' |
| | | /* #endif */ |
| | | } |
| | | // TODO å
¼å®¹ type 屿§ ï¼åç»ä¼åºå¼ |
| | | if (type) return |
| | | this.showPopup = true |
| | | this.showTrans = true |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="scss"> |
| | | .uni-popup { |
| | | position: fixed; |
| | | /* #ifndef APP-NVUE */ |
| | | z-index: 99; |
| | | |
| | | /* #endif */ |
| | | &.top, |
| | | &.left, |
| | | &.right { |
| | | /* #ifdef H5 */ |
| | | top: var(--window-top); |
| | | /* #endif */ |
| | | /* #ifndef H5 */ |
| | | top: 0; |
| | | /* #endif */ |
| | | } |
| | | |
| | | .uni-popup__wrapper { |
| | | /* #ifndef APP-NVUE */ |
| | | display: block; |
| | | /* #endif */ |
| | | position: relative; |
| | | |
| | | /* iphonex çå®å
¨åºè®¾ç½®ï¼åºé¨å®å
¨åºéé
*/ |
| | | /* #ifndef APP-NVUE */ |
| | | // padding-bottom: constant(safe-area-inset-bottom); |
| | | // padding-bottom: env(safe-area-inset-bottom); |
| | | /* #endif */ |
| | | &.left, |
| | | &.right { |
| | | /* #ifdef H5 */ |
| | | padding-top: var(--window-top); |
| | | /* #endif */ |
| | | /* #ifndef H5 */ |
| | | padding-top: 0; |
| | | /* #endif */ |
| | | flex: 1; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .fixforpc-z-index { |
| | | /* #ifndef APP-NVUE */ |
| | | z-index: 999; |
| | | /* #endif */ |
| | | } |
| | | |
| | | .fixforpc-top { |
| | | top: 0; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "id": "uni-popup", |
| | | "displayName": "uni-popup å¼¹åºå±", |
| | | "version": "1.8.3", |
| | | "description": " Popup ç»ä»¶ï¼æä¾å¸¸ç¨çå¼¹å±", |
| | | "keywords": [ |
| | | "uni-ui", |
| | | "å¼¹åºå±", |
| | | "å¼¹çª", |
| | | "popup", |
| | | "å¼¹æ¡" |
| | | ], |
| | | "repository": "https://github.com/dcloudio/uni-ui", |
| | | "engines": { |
| | | "HBuilderX": "" |
| | | }, |
| | | "directories": { |
| | | "example": "../../temps/example_temps" |
| | | }, |
| | | "dcloudext": { |
| | | "sale": { |
| | | "regular": { |
| | | "price": "0.00" |
| | | }, |
| | | "sourcecode": { |
| | | "price": "0.00" |
| | | } |
| | | }, |
| | | "contact": { |
| | | "qq": "" |
| | | }, |
| | | "declaration": { |
| | | "ads": "æ ", |
| | | "data": "æ ", |
| | | "permissions": "æ " |
| | | }, |
| | | "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", |
| | | "type": "component-vue" |
| | | }, |
| | | "uni_modules": { |
| | | "dependencies": [ |
| | | "uni-scss", |
| | | "uni-transition" |
| | | ], |
| | | "encrypt": [], |
| | | "platforms": { |
| | | "cloud": { |
| | | "tcb": "y", |
| | | "aliyun": "y" |
| | | }, |
| | | "client": { |
| | | "App": { |
| | | "app-vue": "y", |
| | | "app-nvue": "y" |
| | | }, |
| | | "H5-mobile": { |
| | | "Safari": "y", |
| | | "Android Browser": "y", |
| | | "微信æµè§å¨(Android)": "y", |
| | | "QQæµè§å¨(Android)": "y" |
| | | }, |
| | | "H5-pc": { |
| | | "Chrome": "y", |
| | | "IE": "y", |
| | | "Edge": "y", |
| | | "Firefox": "y", |
| | | "Safari": "y" |
| | | }, |
| | | "å°ç¨åº": { |
| | | "微信": "y", |
| | | "é¿é": "y", |
| | | "ç¾åº¦": "y", |
| | | "åèè·³å¨": "y", |
| | | "QQ": "y" |
| | | }, |
| | | "å¿«åºç¨": { |
| | | "å为": "u", |
| | | "èç": "u" |
| | | }, |
| | | "Vue": { |
| | | "vue2": "y", |
| | | "vue3": "y" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | |
| | | ## Popup å¼¹åºå± |
| | | > **ç»ä»¶åï¼uni-popup** |
| | | > 代ç åï¼ `uPopup` |
| | | > å
³èç»ä»¶ï¼`uni-transition` |
| | | |
| | | |
| | | å¼¹åºå±ç»ä»¶ï¼å¨åºç¨ä¸å¼¹åºä¸ä¸ªæ¶æ¯æç¤ºçªå£ãæç¤ºæ¡ç |
| | | |
| | | ### [æ¥çææ¡£](https://uniapp.dcloud.io/component/uniui/uni-popup) |
| | | #### å¦ä½¿ç¨è¿ç¨ä¸æä»»ä½é®é¢ï¼æè
æ¨å¯¹uni-uiæä¸äºå¥½çå»ºè®®ï¼æ¬¢è¿å å
¥ uni-ui 交æµç¾¤ï¼871950839 |
| | | |
| | | |
| | | |
| | | |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | ## 1.0.3ï¼2022-01-21ï¼ |
| | | - ä¼å ç»ä»¶ç¤ºä¾ |
| | | ## 1.0.2ï¼2021-11-22ï¼ |
| | | - ä¿®å¤ / 符å·å¨ vue ä¸åçæ¬å
¼å®¹é®é¢å¼èµ·çæ¥éé®é¢ |
| | | ## 1.0.1ï¼2021-11-22ï¼ |
| | | - ä¿®å¤ vue3ä¸scssè¯æ³å
¼å®¹é®é¢ |
| | | ## 1.0.0ï¼2021-11-18ï¼ |
| | | - init |
¶Ô±ÈÐÂÎļþ |
| | |
| | | @import './styles/index.scss'; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "id": "uni-scss", |
| | | "displayName": "uni-scss è¾
婿 ·å¼", |
| | | "version": "1.0.3", |
| | | "description": "uni-sassæ¯uni-uiæä¾çä¸å¥å
¨å±æ ·å¼ ï¼éè¿ä¸äºç®åçç±»ååsassåéï¼å®ç°ç®åç页é¢å¸å±æä½ï¼æ¯å¦é¢è²ãè¾¹è·ãåè§çã", |
| | | "keywords": [ |
| | | "uni-scss", |
| | | "uni-ui", |
| | | "è¾
婿 ·å¼" |
| | | ], |
| | | "repository": "https://github.com/dcloudio/uni-ui", |
| | | "engines": { |
| | | "HBuilderX": "^3.1.0" |
| | | }, |
| | | "dcloudext": { |
| | | "category": [ |
| | | "JS SDK", |
| | | "éç¨ SDK" |
| | | ], |
| | | "sale": { |
| | | "regular": { |
| | | "price": "0.00" |
| | | }, |
| | | "sourcecode": { |
| | | "price": "0.00" |
| | | } |
| | | }, |
| | | "contact": { |
| | | "qq": "" |
| | | }, |
| | | "declaration": { |
| | | "ads": "æ ", |
| | | "data": "æ ", |
| | | "permissions": "æ " |
| | | }, |
| | | "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" |
| | | }, |
| | | "uni_modules": { |
| | | "dependencies": [], |
| | | "encrypt": [], |
| | | "platforms": { |
| | | "cloud": { |
| | | "tcb": "y", |
| | | "aliyun": "y" |
| | | }, |
| | | "client": { |
| | | "App": { |
| | | "app-vue": "y", |
| | | "app-nvue": "u" |
| | | }, |
| | | "H5-mobile": { |
| | | "Safari": "y", |
| | | "Android Browser": "y", |
| | | "微信æµè§å¨(Android)": "y", |
| | | "QQæµè§å¨(Android)": "y" |
| | | }, |
| | | "H5-pc": { |
| | | "Chrome": "y", |
| | | "IE": "y", |
| | | "Edge": "y", |
| | | "Firefox": "y", |
| | | "Safari": "y" |
| | | }, |
| | | "å°ç¨åº": { |
| | | "微信": "y", |
| | | "é¿é": "y", |
| | | "ç¾åº¦": "y", |
| | | "åèè·³å¨": "y", |
| | | "QQ": "y" |
| | | }, |
| | | "å¿«åºç¨": { |
| | | "å为": "n", |
| | | "èç": "n" |
| | | }, |
| | | "Vue": { |
| | | "vue2": "y", |
| | | "vue3": "y" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | `uni-sass` æ¯ `uni-ui`æä¾çä¸å¥å
¨å±æ ·å¼ ï¼éè¿ä¸äºç®åçç±»åå`sass`åéï¼å®ç°ç®åç页é¢å¸å±æä½ï¼æ¯å¦é¢è²ãè¾¹è·ãåè§çã |
| | | |
| | | ### [æ¥çææ¡£](https://uniapp.dcloud.io/component/uniui/uni-sass) |
| | | #### å¦ä½¿ç¨è¿ç¨ä¸æä»»ä½é®é¢ï¼æè
æ¨å¯¹uni-uiæä¸äºå¥½çå»ºè®®ï¼æ¬¢è¿å å
¥ uni-ui 交æµç¾¤ï¼871950839 |
¶Ô±ÈÐÂÎļþ |
| | |
| | | @import './setting/_variables.scss'; |
| | | @import './setting/_border.scss'; |
| | | @import './setting/_color.scss'; |
| | | @import './setting/_space.scss'; |
| | | @import './setting/_radius.scss'; |
| | | @import './setting/_text.scss'; |
| | | @import './setting/_styles.scss'; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | .uni-border { |
| | | border: 1px $uni-border-1 solid; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | // TODO ææ¶ä¸éè¦ class ï¼éè¦ç¨æ·ä½¿ç¨åéå®ç° ï¼å¦æä½¿ç¨ç±»åå
¶å®å¹¶ä¸æ¨è |
| | | // @mixin get-styles($k,$c) { |
| | | // @if $k == size or $k == weight{ |
| | | // font-#{$k}:#{$c} |
| | | // }@else{ |
| | | // #{$k}:#{$c} |
| | | // } |
| | | // } |
| | | $uni-ui-color:( |
| | | // ä¸»è² |
| | | primary: $uni-primary, |
| | | primary-disable: $uni-primary-disable, |
| | | primary-light: $uni-primary-light, |
| | | // è¾
å©è² |
| | | success: $uni-success, |
| | | success-disable: $uni-success-disable, |
| | | success-light: $uni-success-light, |
| | | warning: $uni-warning, |
| | | warning-disable: $uni-warning-disable, |
| | | warning-light: $uni-warning-light, |
| | | error: $uni-error, |
| | | error-disable: $uni-error-disable, |
| | | error-light: $uni-error-light, |
| | | info: $uni-info, |
| | | info-disable: $uni-info-disable, |
| | | info-light: $uni-info-light, |
| | | // 䏿§è² |
| | | main-color: $uni-main-color, |
| | | base-color: $uni-base-color, |
| | | secondary-color: $uni-secondary-color, |
| | | extra-color: $uni-extra-color, |
| | | // èæ¯è² |
| | | bg-color: $uni-bg-color, |
| | | // è¾¹æ¡é¢è² |
| | | border-1: $uni-border-1, |
| | | border-2: $uni-border-2, |
| | | border-3: $uni-border-3, |
| | | border-4: $uni-border-4, |
| | | // é»è² |
| | | black:$uni-black, |
| | | // ç½è² |
| | | white:$uni-white, |
| | | // éæ |
| | | transparent:$uni-transparent |
| | | ) !default; |
| | | @each $key, $child in $uni-ui-color { |
| | | .uni-#{"" + $key} { |
| | | color: $child; |
| | | } |
| | | .uni-#{"" + $key}-bg { |
| | | background-color: $child; |
| | | } |
| | | } |
| | | .uni-shadow-sm { |
| | | box-shadow: $uni-shadow-sm; |
| | | } |
| | | .uni-shadow-base { |
| | | box-shadow: $uni-shadow-base; |
| | | } |
| | | .uni-shadow-lg { |
| | | box-shadow: $uni-shadow-lg; |
| | | } |
| | | .uni-mask { |
| | | background-color:$uni-mask; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | @mixin radius($r,$d:null ,$important: false){ |
| | | $radius-value:map-get($uni-radius, $r) if($important, !important, null); |
| | | // Key exists within the $uni-radius variable |
| | | @if (map-has-key($uni-radius, $r) and $d){ |
| | | @if $d == t { |
| | | border-top-left-radius:$radius-value; |
| | | border-top-right-radius:$radius-value; |
| | | }@else if $d == r { |
| | | border-top-right-radius:$radius-value; |
| | | border-bottom-right-radius:$radius-value; |
| | | }@else if $d == b { |
| | | border-bottom-left-radius:$radius-value; |
| | | border-bottom-right-radius:$radius-value; |
| | | }@else if $d == l { |
| | | border-top-left-radius:$radius-value; |
| | | border-bottom-left-radius:$radius-value; |
| | | }@else if $d == tl { |
| | | border-top-left-radius:$radius-value; |
| | | }@else if $d == tr { |
| | | border-top-right-radius:$radius-value; |
| | | }@else if $d == br { |
| | | border-bottom-right-radius:$radius-value; |
| | | }@else if $d == bl { |
| | | border-bottom-left-radius:$radius-value; |
| | | } |
| | | }@else{ |
| | | border-radius:$radius-value; |
| | | } |
| | | } |
| | | |
| | | @each $key, $child in $uni-radius { |
| | | @if($key){ |
| | | .uni-radius-#{"" + $key} { |
| | | @include radius($key) |
| | | } |
| | | }@else{ |
| | | .uni-radius { |
| | | @include radius($key) |
| | | } |
| | | } |
| | | } |
| | | |
| | | @each $direction in t, r, b, l,tl, tr, br, bl { |
| | | @each $key, $child in $uni-radius { |
| | | @if($key){ |
| | | .uni-radius-#{"" + $direction}-#{"" + $key} { |
| | | @include radius($key,$direction,false) |
| | | } |
| | | }@else{ |
| | | .uni-radius-#{$direction} { |
| | | @include radius($key,$direction,false) |
| | | } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | @mixin fn($space,$direction,$size,$n) { |
| | | @if $n { |
| | | #{$space}-#{$direction}: #{$size*$uni-space-root}px |
| | | } @else { |
| | | #{$space}-#{$direction}: #{-$size*$uni-space-root}px |
| | | } |
| | | } |
| | | @mixin get-styles($direction,$i,$space,$n){ |
| | | @if $direction == t { |
| | | @include fn($space, top,$i,$n); |
| | | } |
| | | @if $direction == r { |
| | | @include fn($space, right,$i,$n); |
| | | } |
| | | @if $direction == b { |
| | | @include fn($space, bottom,$i,$n); |
| | | } |
| | | @if $direction == l { |
| | | @include fn($space, left,$i,$n); |
| | | } |
| | | @if $direction == x { |
| | | @include fn($space, left,$i,$n); |
| | | @include fn($space, right,$i,$n); |
| | | } |
| | | @if $direction == y { |
| | | @include fn($space, top,$i,$n); |
| | | @include fn($space, bottom,$i,$n); |
| | | } |
| | | @if $direction == a { |
| | | @if $n { |
| | | #{$space}:#{$i*$uni-space-root}px; |
| | | } @else { |
| | | #{$space}:#{-$i*$uni-space-root}px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | @each $orientation in m,p { |
| | | $space: margin; |
| | | @if $orientation == m { |
| | | $space: margin; |
| | | } @else { |
| | | $space: padding; |
| | | } |
| | | @for $i from 0 through 16 { |
| | | @each $direction in t, r, b, l, x, y, a { |
| | | .uni-#{$orientation}#{$direction}-#{$i} { |
| | | @include get-styles($direction,$i,$space,true); |
| | | } |
| | | .uni-#{$orientation}#{$direction}-n#{$i} { |
| | | @include get-styles($direction,$i,$space,false); |
| | | } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /* #ifndef APP-NVUE */ |
| | | |
| | | $-color-white:#fff; |
| | | $-color-black:#000; |
| | | @mixin base-style($color) { |
| | | color: #fff; |
| | | background-color: $color; |
| | | border-color: mix($-color-black, $color, 8%); |
| | | &:not([hover-class]):active { |
| | | background: mix($-color-black, $color, 10%); |
| | | border-color: mix($-color-black, $color, 20%); |
| | | color: $-color-white; |
| | | outline: none; |
| | | } |
| | | } |
| | | @mixin is-color($color) { |
| | | @include base-style($color); |
| | | &[loading] { |
| | | @include base-style($color); |
| | | &::before { |
| | | margin-right:5px; |
| | | } |
| | | } |
| | | &[disabled] { |
| | | &, |
| | | &[loading], |
| | | &:not([hover-class]):active { |
| | | color: $-color-white; |
| | | border-color: mix(darken($color,10%), $-color-white); |
| | | background-color: mix($color, $-color-white); |
| | | } |
| | | } |
| | | |
| | | } |
| | | @mixin base-plain-style($color) { |
| | | color:$color; |
| | | background-color: mix($-color-white, $color, 90%); |
| | | border-color: mix($-color-white, $color, 70%); |
| | | &:not([hover-class]):active { |
| | | background: mix($-color-white, $color, 80%); |
| | | color: $color; |
| | | outline: none; |
| | | border-color: mix($-color-white, $color, 50%); |
| | | } |
| | | } |
| | | @mixin is-plain($color){ |
| | | &[plain] { |
| | | @include base-plain-style($color); |
| | | &[loading] { |
| | | @include base-plain-style($color); |
| | | &::before { |
| | | margin-right:5px; |
| | | } |
| | | } |
| | | &[disabled] { |
| | | &, |
| | | &:active { |
| | | color: mix($-color-white, $color, 40%); |
| | | background-color: mix($-color-white, $color, 90%); |
| | | border-color: mix($-color-white, $color, 80%); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | .uni-btn { |
| | | margin: 5px; |
| | | color: #393939; |
| | | border:1px solid #ccc; |
| | | font-size: 16px; |
| | | font-weight: 200; |
| | | background-color: #F9F9F9; |
| | | // TODO ææ¶å¤çè¾¹æ¡éèä¸è¾¹çé®é¢ |
| | | overflow: visible; |
| | | &::after{ |
| | | border: none; |
| | | } |
| | | |
| | | &:not([type]),&[type=default] { |
| | | color: #999; |
| | | &[loading] { |
| | | background: none; |
| | | &::before { |
| | | margin-right:5px; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | &[disabled]{ |
| | | color: mix($-color-white, #999, 60%); |
| | | &, |
| | | &[loading], |
| | | &:active { |
| | | color: mix($-color-white, #999, 60%); |
| | | background-color: mix($-color-white,$-color-black , 98%); |
| | | border-color: mix($-color-white, #999, 85%); |
| | | } |
| | | } |
| | | |
| | | &[plain] { |
| | | color: #999; |
| | | background: none; |
| | | border-color: $uni-border-1; |
| | | &:not([hover-class]):active { |
| | | background: none; |
| | | color: mix($-color-white, $-color-black, 80%); |
| | | border-color: mix($-color-white, $-color-black, 90%); |
| | | outline: none; |
| | | } |
| | | &[disabled]{ |
| | | &, |
| | | &[loading], |
| | | &:active { |
| | | background: none; |
| | | color: mix($-color-white, #999, 60%); |
| | | border-color: mix($-color-white, #999, 85%); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | &:not([hover-class]):active { |
| | | color: mix($-color-white, $-color-black, 50%); |
| | | } |
| | | |
| | | &[size=mini] { |
| | | font-size: 16px; |
| | | font-weight: 200; |
| | | border-radius: 8px; |
| | | } |
| | | |
| | | |
| | | |
| | | &.uni-btn-small { |
| | | font-size: 14px; |
| | | } |
| | | &.uni-btn-mini { |
| | | font-size: 12px; |
| | | } |
| | | |
| | | &.uni-btn-radius { |
| | | border-radius: 999px; |
| | | } |
| | | &[type=primary] { |
| | | @include is-color($uni-primary); |
| | | @include is-plain($uni-primary) |
| | | } |
| | | &[type=success] { |
| | | @include is-color($uni-success); |
| | | @include is-plain($uni-success) |
| | | } |
| | | &[type=error] { |
| | | @include is-color($uni-error); |
| | | @include is-plain($uni-error) |
| | | } |
| | | &[type=warning] { |
| | | @include is-color($uni-warning); |
| | | @include is-plain($uni-warning) |
| | | } |
| | | &[type=info] { |
| | | @include is-color($uni-info); |
| | | @include is-plain($uni-info) |
| | | } |
| | | } |
| | | /* #endif */ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | @mixin get-styles($k,$c) { |
| | | @if $k == size or $k == weight{ |
| | | font-#{$k}:#{$c} |
| | | }@else{ |
| | | #{$k}:#{$c} |
| | | } |
| | | } |
| | | |
| | | @each $key, $child in $uni-headings { |
| | | /* #ifndef APP-NVUE */ |
| | | .uni-#{$key} { |
| | | @each $k, $c in $child { |
| | | @include get-styles($k,$c) |
| | | } |
| | | } |
| | | /* #endif */ |
| | | /* #ifdef APP-NVUE */ |
| | | .container .uni-#{$key} { |
| | | @each $k, $c in $child { |
| | | @include get-styles($k,$c) |
| | | } |
| | | } |
| | | /* #endif */ |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // @use "sass:math"; |
| | | @import '../tools/functions.scss'; |
| | | // é´è·åºç¡åæ° |
| | | $uni-space-root: 2 !default; |
| | | // è¾¹æ¡åå¾é»è®¤å¼ |
| | | $uni-radius-root:5px !default; |
| | | $uni-radius: () !default; |
| | | // è¾¹æ¡åå¾æç¹ |
| | | $uni-radius: map-deep-merge( |
| | | ( |
| | | 0: 0, |
| | | // TODO å½åçæ¬ææ¶ä¸æ¯æ sm 屿§ |
| | | // 'sm': math.div($uni-radius-root, 2), |
| | | null: $uni-radius-root, |
| | | 'lg': $uni-radius-root * 2, |
| | | 'xl': $uni-radius-root * 6, |
| | | 'pill': 9999px, |
| | | 'circle': 50% |
| | | ), |
| | | $uni-radius |
| | | ); |
| | | // åä½å®¶æ |
| | | $body-font-family: 'Roboto', sans-serif !default; |
| | | // ææ¬ |
| | | $heading-font-family: $body-font-family !default; |
| | | $uni-headings: () !default; |
| | | $letterSpacing: -0.01562em; |
| | | $uni-headings: map-deep-merge( |
| | | ( |
| | | 'h1': ( |
| | | size: 32px, |
| | | weight: 300, |
| | | line-height: 50px, |
| | | // letter-spacing:-0.01562em |
| | | ), |
| | | 'h2': ( |
| | | size: 28px, |
| | | weight: 300, |
| | | line-height: 40px, |
| | | // letter-spacing: -0.00833em |
| | | ), |
| | | 'h3': ( |
| | | size: 24px, |
| | | weight: 400, |
| | | line-height: 32px, |
| | | // letter-spacing: normal |
| | | ), |
| | | 'h4': ( |
| | | size: 20px, |
| | | weight: 400, |
| | | line-height: 30px, |
| | | // letter-spacing: 0.00735em |
| | | ), |
| | | 'h5': ( |
| | | size: 16px, |
| | | weight: 400, |
| | | line-height: 24px, |
| | | // letter-spacing: normal |
| | | ), |
| | | 'h6': ( |
| | | size: 14px, |
| | | weight: 500, |
| | | line-height: 18px, |
| | | // letter-spacing: 0.0125em |
| | | ), |
| | | 'subtitle': ( |
| | | size: 12px, |
| | | weight: 400, |
| | | line-height: 20px, |
| | | // letter-spacing: 0.00937em |
| | | ), |
| | | 'body': ( |
| | | font-size: 14px, |
| | | font-weight: 400, |
| | | line-height: 22px, |
| | | // letter-spacing: 0.03125em |
| | | ), |
| | | 'caption': ( |
| | | 'size': 12px, |
| | | 'weight': 400, |
| | | 'line-height': 20px, |
| | | // 'letter-spacing': 0.03333em, |
| | | // 'text-transform': false |
| | | ) |
| | | ), |
| | | $uni-headings |
| | | ); |
| | | |
| | | |
| | | |
| | | // ä¸»è² |
| | | $uni-primary: #2979ff !default; |
| | | $uni-primary-disable:lighten($uni-primary,20%) !default; |
| | | $uni-primary-light: lighten($uni-primary,25%) !default; |
| | | |
| | | // è¾
å©è² |
| | | // é¤äºä¸»è²å¤çåºæ¯è²ï¼éè¦å¨ä¸åçåºæ¯ä¸ä½¿ç¨ï¼ä¾å¦å±é©è²è¡¨ç¤ºå±é©çæä½ï¼ã |
| | | $uni-success: #18bc37 !default; |
| | | $uni-success-disable:lighten($uni-success,20%) !default; |
| | | $uni-success-light: lighten($uni-success,25%) !default; |
| | | |
| | | $uni-warning: #f3a73f !default; |
| | | $uni-warning-disable:lighten($uni-warning,20%) !default; |
| | | $uni-warning-light: lighten($uni-warning,25%) !default; |
| | | |
| | | $uni-error: #e43d33 !default; |
| | | $uni-error-disable:lighten($uni-error,20%) !default; |
| | | $uni-error-light: lighten($uni-error,25%) !default; |
| | | |
| | | $uni-info: #8f939c !default; |
| | | $uni-info-disable:lighten($uni-info,20%) !default; |
| | | $uni-info-light: lighten($uni-info,25%) !default; |
| | | |
| | | // 䏿§è² |
| | | // 䏿§è²ç¨äºææ¬ãèæ¯åè¾¹æ¡é¢è²ãéè¿è¿ç¨ä¸åç䏿§è²ï¼æ¥è¡¨ç°å±æ¬¡ç»æã |
| | | $uni-main-color: #3a3a3a !default; // ä¸»è¦æå |
| | | $uni-base-color: #6a6a6a !default; // å¸¸è§æå |
| | | $uni-secondary-color: #909399 !default; // æ¬¡è¦æå |
| | | $uni-extra-color: #c7c7c7 !default; // è¾
å©è¯´æ |
| | | |
| | | // è¾¹æ¡é¢è² |
| | | $uni-border-1: #F0F0F0 !default; |
| | | $uni-border-2: #EDEDED !default; |
| | | $uni-border-3: #DCDCDC !default; |
| | | $uni-border-4: #B9B9B9 !default; |
| | | |
| | | // 常è§è² |
| | | $uni-black: #000000 !default; |
| | | $uni-white: #ffffff !default; |
| | | $uni-transparent: rgba($color: #000000, $alpha: 0) !default; |
| | | |
| | | // èæ¯è² |
| | | $uni-bg-color: #f7f7f7 !default; |
| | | |
| | | /* æ°´å¹³é´è· */ |
| | | $uni-spacing-sm: 8px !default; |
| | | $uni-spacing-base: 15px !default; |
| | | $uni-spacing-lg: 30px !default; |
| | | |
| | | // é´å½± |
| | | $uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5) !default; |
| | | $uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2) !default; |
| | | $uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5) !default; |
| | | |
| | | // èç |
| | | $uni-mask: rgba($color: #000000, $alpha: 0.4) !default; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // åå¹¶ map |
| | | @function map-deep-merge($parent-map, $child-map){ |
| | | $result: $parent-map; |
| | | @each $key, $child in $child-map { |
| | | $parent-has-key: map-has-key($result, $key); |
| | | $parent-value: map-get($result, $key); |
| | | $parent-type: type-of($parent-value); |
| | | $child-type: type-of($child); |
| | | $parent-is-map: $parent-type == map; |
| | | $child-is-map: $child-type == map; |
| | | |
| | | @if (not $parent-has-key) or ($parent-type != $child-type) or (not ($parent-is-map and $child-is-map)){ |
| | | $result: map-merge($result, ( $key: $child )); |
| | | }@else { |
| | | $result: map-merge($result, ( $key: map-deep-merge($parent-value, $child) )); |
| | | } |
| | | } |
| | | @return $result; |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // é´è·åºç¡åæ° |
| | | $uni-space-root: 2; |
| | | // è¾¹æ¡åå¾é»è®¤å¼ |
| | | $uni-radius-root:5px; |
| | | // ä¸»è² |
| | | $uni-primary: #2979ff; |
| | | // è¾
å©è² |
| | | $uni-success: #4cd964; |
| | | // è¦åè² |
| | | $uni-warning: #f0ad4e; |
| | | // éè¯¯è² |
| | | $uni-error: #dd524d; |
| | | // æè¿°è² |
| | | $uni-info: #909399; |
| | | // 䏿§è² |
| | | $uni-main-color: #303133; |
| | | $uni-base-color: #606266; |
| | | $uni-secondary-color: #909399; |
| | | $uni-extra-color: #C0C4CC; |
| | | // èæ¯è² |
| | | $uni-bg-color: #f5f5f5; |
| | | // è¾¹æ¡é¢è² |
| | | $uni-border-1: #DCDFE6; |
| | | $uni-border-2: #E4E7ED; |
| | | $uni-border-3: #EBEEF5; |
| | | $uni-border-4: #F2F6FC; |
| | | |
| | | // 常è§è² |
| | | $uni-black: #000000; |
| | | $uni-white: #ffffff; |
| | | $uni-transparent: rgba($color: #000000, $alpha: 0); |
¶Ô±ÈÐÂÎļþ |
| | |
| | | @import './styles/setting/_variables.scss'; |
| | | // é´è·åºç¡åæ° |
| | | $uni-space-root: 2; |
| | | // è¾¹æ¡åå¾é»è®¤å¼ |
| | | $uni-radius-root:5px; |
| | | |
| | | // ä¸»è² |
| | | $uni-primary: #2979ff; |
| | | $uni-primary-disable:mix(#fff,$uni-primary,50%); |
| | | $uni-primary-light: mix(#fff,$uni-primary,80%); |
| | | |
| | | // è¾
å©è² |
| | | // é¤äºä¸»è²å¤çåºæ¯è²ï¼éè¦å¨ä¸åçåºæ¯ä¸ä½¿ç¨ï¼ä¾å¦å±é©è²è¡¨ç¤ºå±é©çæä½ï¼ã |
| | | $uni-success: #18bc37; |
| | | $uni-success-disable:mix(#fff,$uni-success,50%); |
| | | $uni-success-light: mix(#fff,$uni-success,80%); |
| | | |
| | | $uni-warning: #f3a73f; |
| | | $uni-warning-disable:mix(#fff,$uni-warning,50%); |
| | | $uni-warning-light: mix(#fff,$uni-warning,80%); |
| | | |
| | | $uni-error: #e43d33; |
| | | $uni-error-disable:mix(#fff,$uni-error,50%); |
| | | $uni-error-light: mix(#fff,$uni-error,80%); |
| | | |
| | | $uni-info: #8f939c; |
| | | $uni-info-disable:mix(#fff,$uni-info,50%); |
| | | $uni-info-light: mix(#fff,$uni-info,80%); |
| | | |
| | | // 䏿§è² |
| | | // 䏿§è²ç¨äºææ¬ãèæ¯åè¾¹æ¡é¢è²ãéè¿è¿ç¨ä¸åç䏿§è²ï¼æ¥è¡¨ç°å±æ¬¡ç»æã |
| | | $uni-main-color: #3a3a3a; // ä¸»è¦æå |
| | | $uni-base-color: #6a6a6a; // å¸¸è§æå |
| | | $uni-secondary-color: #909399; // æ¬¡è¦æå |
| | | $uni-extra-color: #c7c7c7; // è¾
å©è¯´æ |
| | | |
| | | // è¾¹æ¡é¢è² |
| | | $uni-border-1: #F0F0F0; |
| | | $uni-border-2: #EDEDED; |
| | | $uni-border-3: #DCDCDC; |
| | | $uni-border-4: #B9B9B9; |
| | | |
| | | // 常è§è² |
| | | $uni-black: #000000; |
| | | $uni-white: #ffffff; |
| | | $uni-transparent: rgba($color: #000000, $alpha: 0); |
| | | |
| | | // èæ¯è² |
| | | $uni-bg-color: #f7f7f7; |
| | | |
| | | /* æ°´å¹³é´è· */ |
| | | $uni-spacing-sm: 8px; |
| | | $uni-spacing-base: 15px; |
| | | $uni-spacing-lg: 30px; |
| | | |
| | | // é´å½± |
| | | $uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5); |
| | | $uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2); |
| | | $uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5); |
| | | |
| | | // èç |
| | | $uni-mask: rgba($color: #000000, $alpha: 0.4); |
¶Ô±ÈÐÂÎļþ |
| | |
| | | ## 1.3.2ï¼2023-05-04ï¼ |
| | | - ä¿®å¤ NVUE 平尿¥éçé®é¢ |
| | | ## 1.3.1ï¼2021-11-23ï¼ |
| | | - ä¿®å¤ init æ¹æ³åå§åé®é¢ |
| | | ## 1.3.0ï¼2021-11-19ï¼ |
| | | - ä¼å ç»ä»¶UIï¼å¹¶æä¾è®¾è®¡èµæºï¼è¯¦è§:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) |
| | | - ææ¡£è¿ç§»ï¼è¯¦è§:[https://uniapp.dcloud.io/component/uniui/uni-transition](https://uniapp.dcloud.io/component/uniui/uni-transition) |
| | | ## 1.2.1ï¼2021-09-27ï¼ |
| | | - ä¿®å¤ init æ¹æ³ä¸çæç Bug |
| | | ## 1.2.0ï¼2021-07-30ï¼ |
| | | - ç»ä»¶å
¼å®¹ vue3ï¼å¦ä½å建 vue3 项ç®ï¼è¯¦è§ [uni-app é¡¹ç®æ¯æ vue3 ä»ç»](https://ask.dcloud.net.cn/article/37834) |
| | | ## 1.1.1ï¼2021-05-12ï¼ |
| | | - æ°å¢ 示ä¾å°å |
| | | - ä¿®å¤ ç¤ºä¾é¡¹ç®ç¼ºå°ç»ä»¶ç Bug |
| | | ## 1.1.0ï¼2021-04-22ï¼ |
| | | - æ°å¢ éè¿æ¹æ³èªå®ä¹å¨ç» |
| | | - æ°å¢ custom-class é NVUE 平尿¯æèªå®ä¹ class å®å¶æ ·å¼ |
| | | - ä¼å å¨ç»è§¦åé»è¾ï¼ä½¿å¨ç»æ´æµç
|
| | | - ä¼å æ¯æåç¬çå¨ç»ç±»å |
| | | - ä¼å ææ¡£ç¤ºä¾ |
| | | ## 1.0.2ï¼2021-02-05ï¼ |
| | | - è°æ´ä¸º uni_modules ç®å½è§è |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // const defaultOption = { |
| | | // duration: 300, |
| | | // timingFunction: 'linear', |
| | | // delay: 0, |
| | | // transformOrigin: '50% 50% 0' |
| | | // } |
| | | // #ifdef APP-NVUE |
| | | const nvueAnimation = uni.requireNativePlugin('animation') |
| | | // #endif |
| | | class MPAnimation { |
| | | constructor(options, _this) { |
| | | this.options = options |
| | | // å¨iOS10+QQå°ç¨åºå¹³å°ä¸ï¼ä¼ ç»åçç对象ä¸å®æ¯ä¸ªæ®é对象è䏿¯Proxy对象ï¼å¦å伿¥parameter should be Object instead of ProxyObjectçé误 |
| | | this.animation = uni.createAnimation({ |
| | | ...options |
| | | }) |
| | | this.currentStepAnimates = {} |
| | | this.next = 0 |
| | | this.$ = _this |
| | | |
| | | } |
| | | |
| | | _nvuePushAnimates(type, args) { |
| | | let aniObj = this.currentStepAnimates[this.next] |
| | | let styles = {} |
| | | if (!aniObj) { |
| | | styles = { |
| | | styles: {}, |
| | | config: {} |
| | | } |
| | | } else { |
| | | styles = aniObj |
| | | } |
| | | if (animateTypes1.includes(type)) { |
| | | if (!styles.styles.transform) { |
| | | styles.styles.transform = '' |
| | | } |
| | | let unit = '' |
| | | if(type === 'rotate'){ |
| | | unit = 'deg' |
| | | } |
| | | styles.styles.transform += `${type}(${args+unit}) ` |
| | | } else { |
| | | styles.styles[type] = `${args}` |
| | | } |
| | | this.currentStepAnimates[this.next] = styles |
| | | } |
| | | _animateRun(styles = {}, config = {}) { |
| | | let ref = this.$.$refs['ani'].ref |
| | | if (!ref) return |
| | | return new Promise((resolve, reject) => { |
| | | nvueAnimation.transition(ref, { |
| | | styles, |
| | | ...config |
| | | }, res => { |
| | | resolve() |
| | | }) |
| | | }) |
| | | } |
| | | |
| | | _nvueNextAnimate(animates, step = 0, fn) { |
| | | let obj = animates[step] |
| | | if (obj) { |
| | | let { |
| | | styles, |
| | | config |
| | | } = obj |
| | | this._animateRun(styles, config).then(() => { |
| | | step += 1 |
| | | this._nvueNextAnimate(animates, step, fn) |
| | | }) |
| | | } else { |
| | | this.currentStepAnimates = {} |
| | | typeof fn === 'function' && fn() |
| | | this.isEnd = true |
| | | } |
| | | } |
| | | |
| | | step(config = {}) { |
| | | // #ifndef APP-NVUE |
| | | this.animation.step(config) |
| | | // #endif |
| | | // #ifdef APP-NVUE |
| | | this.currentStepAnimates[this.next].config = Object.assign({}, this.options, config) |
| | | this.currentStepAnimates[this.next].styles.transformOrigin = this.currentStepAnimates[this.next].config.transformOrigin |
| | | this.next++ |
| | | // #endif |
| | | return this |
| | | } |
| | | |
| | | run(fn) { |
| | | // #ifndef APP-NVUE |
| | | this.$.animationData = this.animation.export() |
| | | this.$.timer = setTimeout(() => { |
| | | typeof fn === 'function' && fn() |
| | | }, this.$.durationTime) |
| | | // #endif |
| | | // #ifdef APP-NVUE |
| | | this.isEnd = false |
| | | let ref = this.$.$refs['ani'] && this.$.$refs['ani'].ref |
| | | if(!ref) return |
| | | this._nvueNextAnimate(this.currentStepAnimates, 0, fn) |
| | | this.next = 0 |
| | | // #endif |
| | | } |
| | | } |
| | | |
| | | |
| | | const animateTypes1 = ['matrix', 'matrix3d', 'rotate', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scale3d', |
| | | 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'translate', 'translate3d', 'translateX', 'translateY', |
| | | 'translateZ' |
| | | ] |
| | | const animateTypes2 = ['opacity', 'backgroundColor'] |
| | | const animateTypes3 = ['width', 'height', 'left', 'right', 'top', 'bottom'] |
| | | animateTypes1.concat(animateTypes2, animateTypes3).forEach(type => { |
| | | MPAnimation.prototype[type] = function(...args) { |
| | | // #ifndef APP-NVUE |
| | | this.animation[type](...args) |
| | | // #endif |
| | | // #ifdef APP-NVUE |
| | | this._nvuePushAnimates(type, args) |
| | | // #endif |
| | | return this |
| | | } |
| | | }) |
| | | |
| | | export function createAnimation(option, _this) { |
| | | if(!_this) return |
| | | clearTimeout(_this.timer) |
| | | return new MPAnimation(option, _this) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <!-- #ifndef APP-NVUE --> |
| | | <view v-show="isShow" ref="ani" :animation="animationData" :class="customClass" :style="transformStyles" @click="onClick"><slot></slot></view> |
| | | <!-- #endif --> |
| | | <!-- #ifdef APP-NVUE --> |
| | | <view v-if="isShow" ref="ani" :animation="animationData" :class="customClass" :style="transformStyles" @click="onClick"><slot></slot></view> |
| | | <!-- #endif --> |
| | | </template> |
| | | |
| | | <script> |
| | | import { createAnimation } from './createAnimation' |
| | | |
| | | /** |
| | | * Transition è¿æ¸¡å¨ç» |
| | | * @description ç®åè¿æ¸¡å¨ç»ç»ä»¶ |
| | | * @tutorial https://ext.dcloud.net.cn/plugin?id=985 |
| | | * @property {Boolean} show = [false|true] æ§å¶ç»ä»¶æ¾ç¤ºæéè |
| | | * @property {Array|String} modeClass = [fade|slide-top|slide-right|slide-bottom|slide-left|zoom-in|zoom-out] è¿æ¸¡å¨ç»ç±»å |
| | | * @value fade æ¸éæ¸åºè¿æ¸¡ |
| | | * @value slide-top ç±ä¸è³ä¸è¿æ¸¡ |
| | | * @value slide-right ç±å³è³å·¦è¿æ¸¡ |
| | | * @value slide-bottom ç±ä¸è³ä¸è¿æ¸¡ |
| | | * @value slide-left ç±å·¦è³å³è¿æ¸¡ |
| | | * @value zoom-in ç±å°å°å¤§è¿æ¸¡ |
| | | * @value zoom-out ç±å¤§å°å°è¿æ¸¡ |
| | | * @property {Number} duration è¿æ¸¡å¨ç»æç»æ¶é´ |
| | | * @property {Object} styles ç»ä»¶æ ·å¼ï¼å css æ ·å¼ï¼æ³¨æå¸¦â-âè¿æ¥ç¬¦ç屿§éè¦ä½¿ç¨å°é©¼å³°åæ³å¦ï¼`backgroundColor:red` |
| | | */ |
| | | export default { |
| | | name: 'uniTransition', |
| | | emits:['click','change'], |
| | | props: { |
| | | show: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | modeClass: { |
| | | type: [Array, String], |
| | | default() { |
| | | return 'fade' |
| | | } |
| | | }, |
| | | duration: { |
| | | type: Number, |
| | | default: 300 |
| | | }, |
| | | styles: { |
| | | type: Object, |
| | | default() { |
| | | return {} |
| | | } |
| | | }, |
| | | customClass:{ |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | onceRender:{ |
| | | type:Boolean, |
| | | default:false |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | | isShow: false, |
| | | transform: '', |
| | | opacity: 1, |
| | | animationData: {}, |
| | | durationTime: 300, |
| | | config: {} |
| | | } |
| | | }, |
| | | watch: { |
| | | show: { |
| | | handler(newVal) { |
| | | if (newVal) { |
| | | this.open() |
| | | } else { |
| | | // é¿å
䏿¥å°±æ§è¡ close,导è´å¨ç»éä¹± |
| | | if (this.isShow) { |
| | | this.close() |
| | | } |
| | | } |
| | | }, |
| | | immediate: true |
| | | } |
| | | }, |
| | | computed: { |
| | | // çææ ·å¼æ°æ® |
| | | stylesObject() { |
| | | let styles = { |
| | | ...this.styles, |
| | | 'transition-duration': this.duration / 1000 + 's' |
| | | } |
| | | let transform = '' |
| | | for (let i in styles) { |
| | | let line = this.toLine(i) |
| | | transform += line + ':' + styles[i] + ';' |
| | | } |
| | | return transform |
| | | }, |
| | | // åå§åå¨ç»æ¡ä»¶ |
| | | transformStyles() { |
| | | return 'transform:' + this.transform + ';' + 'opacity:' + this.opacity + ';' + this.stylesObject |
| | | } |
| | | }, |
| | | created() { |
| | | // å¨ç»é»è®¤é
ç½® |
| | | this.config = { |
| | | duration: this.duration, |
| | | timingFunction: 'ease', |
| | | transformOrigin: '50% 50%', |
| | | delay: 0 |
| | | } |
| | | this.durationTime = this.duration |
| | | }, |
| | | methods: { |
| | | /** |
| | | * ref 触å åå§åå¨ç» |
| | | */ |
| | | init(obj = {}) { |
| | | if (obj.duration) { |
| | | this.durationTime = obj.duration |
| | | } |
| | | this.animation = createAnimation(Object.assign(this.config, obj),this) |
| | | }, |
| | | /** |
| | | * ç¹å»ç»ä»¶è§¦ååè° |
| | | */ |
| | | onClick() { |
| | | this.$emit('click', { |
| | | detail: this.isShow |
| | | }) |
| | | }, |
| | | /** |
| | | * ref 触å å¨ç»åç» |
| | | * @param {Object} obj |
| | | */ |
| | | step(obj, config = {}) { |
| | | if (!this.animation) return |
| | | for (let i in obj) { |
| | | try { |
| | | if(typeof obj[i] === 'object'){ |
| | | this.animation[i](...obj[i]) |
| | | }else{ |
| | | this.animation[i](obj[i]) |
| | | } |
| | | } catch (e) { |
| | | console.error(`æ¹æ³ ${i} ä¸åå¨`) |
| | | } |
| | | } |
| | | this.animation.step(config) |
| | | return this |
| | | }, |
| | | /** |
| | | * ref è§¦å æ§è¡å¨ç» |
| | | */ |
| | | run(fn) { |
| | | if (!this.animation) return |
| | | this.animation.run(fn) |
| | | }, |
| | | // å¼å§è¿åº¦å¨ç» |
| | | open() { |
| | | clearTimeout(this.timer) |
| | | this.transform = '' |
| | | this.isShow = true |
| | | let { opacity, transform } = this.styleInit(false) |
| | | if (typeof opacity !== 'undefined') { |
| | | this.opacity = opacity |
| | | } |
| | | this.transform = transform |
| | | // ç¡®ä¿å¨ææ ·å¼å·²ç»çæåï¼æ§è¡å¨ç»ï¼å¦æä¸å nextTick ï¼ä¼å¯¼è´ wx å¨ç»æ§è¡å¼å¸¸ |
| | | this.$nextTick(() => { |
| | | // TODO 宿¶å¨ä¿è¯å¨ç»å®å
¨æ§è¡ï¼ç®åæäºé®é¢ï¼åé¢ä¼åæ¶å®æ¶å¨ |
| | | this.timer = setTimeout(() => { |
| | | this.animation = createAnimation(this.config, this) |
| | | this.tranfromInit(false).step() |
| | | this.animation.run() |
| | | this.$emit('change', { |
| | | detail: this.isShow |
| | | }) |
| | | }, 20) |
| | | }) |
| | | }, |
| | | // å
³éè¿åº¦å¨ç» |
| | | close(type) { |
| | | if (!this.animation) return |
| | | this.tranfromInit(true) |
| | | .step() |
| | | .run(() => { |
| | | this.isShow = false |
| | | this.animationData = null |
| | | this.animation = null |
| | | let { opacity, transform } = this.styleInit(false) |
| | | this.opacity = opacity || 1 |
| | | this.transform = transform |
| | | this.$emit('change', { |
| | | detail: this.isShow |
| | | }) |
| | | }) |
| | | }, |
| | | // å¤çå¨ç»å¼å§åçé»è®¤æ ·å¼ |
| | | styleInit(type) { |
| | | let styles = { |
| | | transform: '' |
| | | } |
| | | let buildStyle = (type, mode) => { |
| | | if (mode === 'fade') { |
| | | styles.opacity = this.animationType(type)[mode] |
| | | } else { |
| | | styles.transform += this.animationType(type)[mode] + ' ' |
| | | } |
| | | } |
| | | if (typeof this.modeClass === 'string') { |
| | | buildStyle(type, this.modeClass) |
| | | } else { |
| | | this.modeClass.forEach(mode => { |
| | | buildStyle(type, mode) |
| | | }) |
| | | } |
| | | return styles |
| | | }, |
| | | // å¤çå
ç½®ç»åå¨ç» |
| | | tranfromInit(type) { |
| | | let buildTranfrom = (type, mode) => { |
| | | let aniNum = null |
| | | if (mode === 'fade') { |
| | | aniNum = type ? 0 : 1 |
| | | } else { |
| | | aniNum = type ? '-100%' : '0' |
| | | if (mode === 'zoom-in') { |
| | | aniNum = type ? 0.8 : 1 |
| | | } |
| | | if (mode === 'zoom-out') { |
| | | aniNum = type ? 1.2 : 1 |
| | | } |
| | | if (mode === 'slide-right') { |
| | | aniNum = type ? '100%' : '0' |
| | | } |
| | | if (mode === 'slide-bottom') { |
| | | aniNum = type ? '100%' : '0' |
| | | } |
| | | } |
| | | this.animation[this.animationMode()[mode]](aniNum) |
| | | } |
| | | if (typeof this.modeClass === 'string') { |
| | | buildTranfrom(type, this.modeClass) |
| | | } else { |
| | | this.modeClass.forEach(mode => { |
| | | buildTranfrom(type, mode) |
| | | }) |
| | | } |
| | | |
| | | return this.animation |
| | | }, |
| | | animationType(type) { |
| | | return { |
| | | fade: type ? 1 : 0, |
| | | 'slide-top': `translateY(${type ? '0' : '-100%'})`, |
| | | 'slide-right': `translateX(${type ? '0' : '100%'})`, |
| | | 'slide-bottom': `translateY(${type ? '0' : '100%'})`, |
| | | 'slide-left': `translateX(${type ? '0' : '-100%'})`, |
| | | 'zoom-in': `scaleX(${type ? 1 : 0.8}) scaleY(${type ? 1 : 0.8})`, |
| | | 'zoom-out': `scaleX(${type ? 1 : 1.2}) scaleY(${type ? 1 : 1.2})` |
| | | } |
| | | }, |
| | | // å
ç½®å¨ç»ç±»åä¸å®é
å¨ç»å¯¹åºåå
¸ |
| | | animationMode() { |
| | | return { |
| | | fade: 'opacity', |
| | | 'slide-top': 'translateY', |
| | | 'slide-right': 'translateX', |
| | | 'slide-bottom': 'translateY', |
| | | 'slide-left': 'translateX', |
| | | 'zoom-in': 'scale', |
| | | 'zoom-out': 'scale' |
| | | } |
| | | }, |
| | | // é©¼å³°è½¬ä¸æ¨ªçº¿ |
| | | toLine(name) { |
| | | return name.replace(/([A-Z])/g, '-$1').toLowerCase() |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style></style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "id": "uni-transition", |
| | | "displayName": "uni-transition è¿æ¸¡å¨ç»", |
| | | "version": "1.3.2", |
| | | "description": "å
ç´ çç®åè¿æ¸¡å¨ç»", |
| | | "keywords": [ |
| | | "uni-ui", |
| | | "uniui", |
| | | "å¨ç»", |
| | | "è¿æ¸¡", |
| | | "è¿æ¸¡å¨ç»" |
| | | ], |
| | | "repository": "https://github.com/dcloudio/uni-ui", |
| | | "engines": { |
| | | "HBuilderX": "" |
| | | }, |
| | | "directories": { |
| | | "example": "../../temps/example_temps" |
| | | }, |
| | | "dcloudext": { |
| | | "sale": { |
| | | "regular": { |
| | | "price": "0.00" |
| | | }, |
| | | "sourcecode": { |
| | | "price": "0.00" |
| | | } |
| | | }, |
| | | "contact": { |
| | | "qq": "" |
| | | }, |
| | | "declaration": { |
| | | "ads": "æ ", |
| | | "data": "æ ", |
| | | "permissions": "æ " |
| | | }, |
| | | "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", |
| | | "type": "component-vue" |
| | | }, |
| | | "uni_modules": { |
| | | "dependencies": ["uni-scss"], |
| | | "encrypt": [], |
| | | "platforms": { |
| | | "cloud": { |
| | | "tcb": "y", |
| | | "aliyun": "y" |
| | | }, |
| | | "client": { |
| | | "App": { |
| | | "app-vue": "y", |
| | | "app-nvue": "y" |
| | | }, |
| | | "H5-mobile": { |
| | | "Safari": "y", |
| | | "Android Browser": "y", |
| | | "微信æµè§å¨(Android)": "y", |
| | | "QQæµè§å¨(Android)": "y" |
| | | }, |
| | | "H5-pc": { |
| | | "Chrome": "y", |
| | | "IE": "y", |
| | | "Edge": "y", |
| | | "Firefox": "y", |
| | | "Safari": "y" |
| | | }, |
| | | "å°ç¨åº": { |
| | | "微信": "y", |
| | | "é¿é": "y", |
| | | "ç¾åº¦": "y", |
| | | "åèè·³å¨": "y", |
| | | "QQ": "y" |
| | | }, |
| | | "å¿«åºç¨": { |
| | | "å为": "u", |
| | | "èç": "u" |
| | | }, |
| | | "Vue": { |
| | | "vue2": "y", |
| | | "vue3": "y" |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | |
| | | ## Transition è¿æ¸¡å¨ç» |
| | | > **ç»ä»¶åï¼uni-transition** |
| | | > 代ç åï¼ `uTransition` |
| | | |
| | | |
| | | å
ç´ è¿æ¸¡å¨ç» |
| | | |
| | | ### [æ¥çææ¡£](https://uniapp.dcloud.io/component/uniui/uni-transition) |
| | | #### å¦ä½¿ç¨è¿ç¨ä¸æä»»ä½é®é¢ï¼æè
æ¨å¯¹uni-uiæä¸äºå¥½çå»ºè®®ï¼æ¬¢è¿å å
¥ uni-ui 交æµç¾¤ï¼871950839 |
| | |
| | | import request from './http.js' |
| | | import utils from './utils.js' |
| | | import clipboard from "../js_sdk/dc-clipboard/clipboard.js" |
| | | |
| | | |
| | | |
| | | function getclick(callback) { |
| | | |
| | | //è·ååªè´´æ¿å
容 |
| | | uni.getClipboardData({ |
| | | success: res => { |
| | | console.log(res, '======================================================'); |
| | |
| | | }) |
| | | }else{ |
| | | getApp().globalData.hasMode = false |
| | | console.log('å
é¨å¤å¶'); |
| | | } |
| | | } |
| | | }) |
| | |
| | | function updatePopup(dataInfo) { |
| | | var data = dataInfo.goods; |
| | | // å¼¹çªé®ç½©å± |
| | | let maskLayers = new plus.nativeObj.View("maskLayers", { //å
å建é®ç½©å± |
| | | var maskLayers = new plus.nativeObj.View("maskLayers", { //å
å建é®ç½©å± |
| | | top: '0px', |
| | | left: '0px', |
| | | height: '100%', |
| | |
| | | let popupViewHeight = popupViewWidth + uni.upx2px(390); |
| | | sLeft = (data.originalPrice.toString().length + 1) * uni.upx2px(30); |
| | | // å¼¹çªå
容 |
| | | var clipViews = new plus.nativeObj.View("clipViews", { //å建åºé¨å¾æ èå |
| | | let clipViews = new plus.nativeObj.View("clipViews", { //å建åºé¨å¾æ èå |
| | | tag: "rect", |
| | | top: (screenHeight - popupViewHeight) / 2 + "px", |
| | | left: (screenWidth - popupViewWidth) / 2 + "px", |
| | |
| | | }) |
| | | }else{ |
| | | uni.navigateTo({ |
| | | url: '/pages/goods/goodsDetail?info=' + encodeURIComponent(JSON.stringify(data)) |
| | | url: '/pages/goods/goodsDetail?proform=clipboard&info=' + encodeURIComponent(JSON.stringify(data)) |
| | | }) |
| | | } |
| | | getApp().globalData.hasMode = false |