提交 c3c096ec 编写于 作者: Y yangxiaolu3

feat: popup

上级 99c0f6f5
function Classes(data) {
console.log(data)
var prefixCls = 'nut-divider'
var defaultClassesObj = [prefixCls]
if (data.direction === 'horizontal') {
if (data.useSlot) defaultClassesObj.push(prefixCls + '-center')
if (data.contentPosition === 'center') defaultClassesObj.push(prefixCls + '-center')
if (data.contentPosition === 'left') defaultClassesObj.push(prefixCls + '-left')
if (data.contentPosition === 'right') defaultClassesObj.push(prefixCls + '-right')
if (data.dashed) defaultClassesObj.push(prefixCls + '-dashed')
......
......@@ -280,7 +280,7 @@ var _relation = __webpack_require__(2);
square: false,
border: true,
reverse: false,
direction: 'horizontal',
direction: 'vertical',
clickable: false
},
iconProps: {
......@@ -289,7 +289,6 @@ var _relation = __webpack_require__(2);
},
methods: {
updateParent: function updateParent() {
console.log('更新地址', this.parent.data);
var that = this;
this.setData({
parent: that.parent.data
......
......@@ -206,12 +206,27 @@ var _component = __webpack_require__(0);
type: String,
value: 'center'
},
overlayStyle: String
overlayStyle: String,
closeable: {
type: Boolean,
value: false
},
closeIconPosition: {
type: String,
value: 'top-right'
},
closeIcon: {
type: String,
value: 'close'
}
},
methods: {
onClickOverlay: function onClickOverlay() {
console.log('点击');
this.$emit('clickOverlay');
},
onClickCloseIcon: function onClickCloseIcon() {
this.$emit('clickCloseIcon');
}
}
});
......
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/common/component.ts","webpack:///./src/mixins/basic.ts","webpack:///./src/packages/popup/index.ts"],"names":[],"mappings":"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","file":"packages/popup/index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 14);\n","import { basic } from '../mixins/basic.ts';\nimport { NutComponentOptions } from '../definitions/index.ts';\n\nfunction mapKeys(\n source: Record<string, any>,\n target: Record<string, any>,\n map: Record<string, any>\n) {\n Object.keys(map).forEach((key) => {\n if (source[key]) {\n target[map[key]] = source[key];\n }\n });\n}\n\nfunction NutComponent<\n Data extends WechatMiniprogram.Component.DataOption,\n Props extends WechatMiniprogram.Component.PropertyOption,\n Methods extends WechatMiniprogram.Component.MethodOption\n>(NutOptions: NutComponentOptions<Data, Props, Methods>): void {\n const options: WechatMiniprogram.Component.Options<Data, Props, Methods> = {};\n\n mapKeys(NutOptions, options, {\n data: 'data',\n props: 'properties',\n mixins: 'behaviors',\n methods: 'methods',\n beforeCreate: 'created',\n created: 'attached',\n mounted: 'ready',\n destroyed: 'detached',\n classes: 'externalClasses',\n observers: 'observers'\n });\n\n // add default externalClasses\n options.externalClasses = options.externalClasses || [];\n options.externalClasses.push('custom-class');\n\n // add default behaviors\n options.behaviors = options.behaviors || [];\n options.behaviors.push(basic);\n\n // add relations\n const { relation } = NutOptions;\n if (relation) {\n options.relations = relation.relations;\n options.behaviors.push(relation.mixin);\n }\n \n // map field to form-field behavior\n if (NutOptions.field) {\n options.behaviors.push('wx://form-field');\n }\n\n // 添加默认 选项\n options.options = {\n multipleSlots: true,\n addGlobalClass: true,\n };\n\n Component(options);\n}\n\n\nmodule.exports = { NutComponent };\n","export const basic = Behavior({\n methods: {\n $emit(\n name: string,\n detail?: Record<string, unknown>,\n options?: WechatMiniprogram.Component.TriggerEventOption\n ) {\n this.triggerEvent(name, detail, options);\n },\n \n set(data: Record<string, unknown>) {\n this.setData(data);\n \n return new Promise((resolve) => wx.nextTick(resolve));\n },\n },\n });\n ","import { NutComponent } from './../../common/component.ts'\r\n\r\nNutComponent({\r\n props: {\r\n show: {\r\n type: Boolean,\r\n value: false\r\n },\r\n zIndex: {\r\n type: [Number, String],\r\n value: 2000\r\n },\r\n duration: {\r\n type: [Number, String],\r\n value: 300\r\n },\r\n popStyle: String,\r\n popClass: {\r\n type: String,\r\n value: ''\r\n },\r\n round: {\r\n type: Boolean,\r\n value: false\r\n },\r\n overlay: {\r\n type: Boolean,\r\n value: true\r\n },\r\n position: {\r\n type: String,\r\n value: 'center'\r\n },\r\n overlayStyle: String,\r\n },\r\n\r\n methods: {\r\n onClickOverlay(){\r\n console.log('点击')\r\n\r\n this.$emit('clickOverlay')\r\n }\r\n },\r\n});\r\n"],"sourceRoot":""}
\ No newline at end of file
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/common/component.ts","webpack:///./src/mixins/basic.ts","webpack:///./src/packages/popup/index.ts"],"names":[],"mappings":";;QAAA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;;;;;;;AC/EA,SAAS,OAAT,CACE,MADF,EAEE,MAFF,EAGE,GAHF,EAG0B;AAExB,WAAO,IAAP,CAAY,GAAZ,EAAiB,OAAjB,CAAyB,UAAC,GAAD,EAAQ;AAC/B,YAAI,OAAO,GAAP,CAAJ,EAAiB;AACf,mBAAO,IAAI,GAAJ,CAAP,IAAmB,OAAO,GAAP,CAAnB;AACD;AACF,KAJD;AAKD;AAED,SAAS,YAAT,CAIE,UAJF,EAIuD;AACrD,QAAM,UAAqE,EAA3E;AAEA,YAAQ,UAAR,EAAoB,OAApB,EAA6B;AAC3B,cAAM,MADqB;AAE3B,eAAO,YAFoB;AAG3B,gBAAQ,WAHmB;AAI3B,iBAAS,SAJkB;AAK3B,sBAAc,SALa;AAM3B,iBAAS,UANkB;AAO3B,iBAAS,OAPkB;AAQ3B,mBAAW,UARgB;AAS3B,iBAAS,iBATkB;AAU3B,mBAAW;AAVgB,KAA7B;AAaA;AACA,YAAQ,eAAR,GAA0B,QAAQ,eAAR,IAA2B,EAArD;AACA,YAAQ,eAAR,CAAwB,IAAxB,CAA6B,cAA7B;AAEA;AACA,YAAQ,SAAR,GAAoB,QAAQ,SAAR,IAAqB,EAAzC;AACA,YAAQ,SAAR,CAAkB,IAAlB,CAAuB,YAAvB;AAEA;AAxBqD,QAyB7C,QAzB6C,GAyBhC,UAzBgC,CAyB7C,QAzB6C;;AA0BrD,QAAI,QAAJ,EAAc;AACZ,gBAAQ,SAAR,GAAoB,SAAS,SAA7B;AACA,gBAAQ,SAAR,CAAkB,IAAlB,CAAuB,SAAS,KAAhC;AACD;AAED;AACA,QAAI,WAAW,KAAf,EAAsB;AACpB,gBAAQ,SAAR,CAAkB,IAAlB,CAAuB,iBAAvB;AACD;AAED;AACA,YAAQ,OAAR,GAAkB;AAChB,uBAAe,IADC;AAEhB,wBAAgB;AAFA,KAAlB;AAKA,cAAU,OAAV;AACD;AAGD,OAAO,OAAP,GAAiB,EAAE,0BAAF,EAAjB,C;;;;;;;;;;;ACjEO,IAAM,wBAAQ,SAAS;AAC1B,aAAS;AACP,aADO,iBAEL,IAFK,EAGL,MAHK,EAIL,OAJK,EAImD;AAExD,iBAAK,YAAL,CAAkB,IAAlB,EAAwB,MAAxB,EAAgC,OAAhC;AACD,SAPM;AASP,WATO,eASH,IATG,EAS0B;AAC/B,iBAAK,OAAL,CAAa,IAAb;AAEA,mBAAO,IAAI,OAAJ,CAAY,UAAC,OAAD;AAAA,uBAAa,GAAG,QAAH,CAAY,OAAZ,CAAb;AAAA,aAAZ,CAAP;AACD;AAbM;AADiB,CAAT,CAAd,C;;;;;;;;;;;;ACEP,6BAAa;AACX,WAAO;AACL,cAAM;AACJ,kBAAM,OADF;AAEJ,mBAAO;AAFH,SADD;AAKL,gBAAQ;AACN,kBAAM,CAAC,MAAD,EAAS,MAAT,CADA;AAEN,mBAAO;AAFD,SALH;AASL,kBAAU;AACR,kBAAM,CAAC,MAAD,EAAS,MAAT,CADE;AAER,mBAAO;AAFC,SATL;AAaL,kBAAU,MAbL;AAcL,kBAAU;AACR,kBAAM,MADE;AAER,mBAAO;AAFC,SAdL;AAkBL,eAAO;AACL,kBAAM,OADD;AAEL,mBAAO;AAFF,SAlBF;AAsBL,iBAAS;AACP,kBAAM,OADC;AAEP,mBAAO;AAFA,SAtBJ;AA0BL,kBAAU;AACR,kBAAM,MADE;AAER,mBAAO;AAFC,SA1BL;AA8BL,sBAAc,MA9BT;AAgCL,mBAAW;AACT,kBAAM,OADG;AAET,mBAAO;AAFE,SAhCN;AAoCL,2BAAmB;AACjB,kBAAM,MADW;AAEjB,mBAAO;AAFU,SApCd;AAwCL,mBAAW;AACT,kBAAM,MADG;AAET,mBAAO;AAFE;AAxCN,KADI;AAiDX,aAAS;AACP,sBADO,4BACO;AACZ,oBAAQ,GAAR,CAAY,IAAZ;AAEA,iBAAK,KAAL,CAAW,cAAX;AACD,SALM;AAOP,wBAPO,8BAOS;AACd,iBAAK,KAAL,CAAW,gBAAX;AACD;AATM;AAjDE,CAAb,E","file":"packages/popup/index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 14);\n","import { basic } from '../mixins/basic.ts';\nimport { NutComponentOptions } from '../definitions/index.ts';\n\nfunction mapKeys(\n source: Record<string, any>,\n target: Record<string, any>,\n map: Record<string, any>\n) {\n Object.keys(map).forEach((key) => {\n if (source[key]) {\n target[map[key]] = source[key];\n }\n });\n}\n\nfunction NutComponent<\n Data extends WechatMiniprogram.Component.DataOption,\n Props extends WechatMiniprogram.Component.PropertyOption,\n Methods extends WechatMiniprogram.Component.MethodOption\n>(NutOptions: NutComponentOptions<Data, Props, Methods>): void {\n const options: WechatMiniprogram.Component.Options<Data, Props, Methods> = {};\n\n mapKeys(NutOptions, options, {\n data: 'data',\n props: 'properties',\n mixins: 'behaviors',\n methods: 'methods',\n beforeCreate: 'created',\n created: 'attached',\n mounted: 'ready',\n destroyed: 'detached',\n classes: 'externalClasses',\n observers: 'observers'\n });\n\n // add default externalClasses\n options.externalClasses = options.externalClasses || [];\n options.externalClasses.push('custom-class');\n\n // add default behaviors\n options.behaviors = options.behaviors || [];\n options.behaviors.push(basic);\n\n // add relations\n const { relation } = NutOptions;\n if (relation) {\n options.relations = relation.relations;\n options.behaviors.push(relation.mixin);\n }\n \n // map field to form-field behavior\n if (NutOptions.field) {\n options.behaviors.push('wx://form-field');\n }\n\n // 添加默认 选项\n options.options = {\n multipleSlots: true,\n addGlobalClass: true,\n };\n\n Component(options);\n}\n\n\nmodule.exports = { NutComponent };\n","export const basic = Behavior({\n methods: {\n $emit(\n name: string,\n detail?: Record<string, unknown>,\n options?: WechatMiniprogram.Component.TriggerEventOption\n ) {\n this.triggerEvent(name, detail, options);\n },\n \n set(data: Record<string, unknown>) {\n this.setData(data);\n \n return new Promise((resolve) => wx.nextTick(resolve));\n },\n },\n });\n ","import { NutComponent } from './../../common/component.ts'\r\n\r\nNutComponent({\r\n props: {\r\n show: {\r\n type: Boolean,\r\n value: false\r\n },\r\n zIndex: {\r\n type: [Number, String],\r\n value: 2000\r\n },\r\n duration: {\r\n type: [Number, String],\r\n value: 300\r\n },\r\n popStyle: String,\r\n popClass: {\r\n type: String,\r\n value: ''\r\n },\r\n round: {\r\n type: Boolean,\r\n value: false\r\n },\r\n overlay: {\r\n type: Boolean,\r\n value: true\r\n },\r\n position: {\r\n type: String,\r\n value: 'center'\r\n },\r\n overlayStyle: String,\r\n\r\n closeable: {\r\n type: Boolean,\r\n value: false\r\n },\r\n closeIconPosition: {\r\n type: String,\r\n value: 'top-right'\r\n },\r\n closeIcon: {\r\n type: String,\r\n value: 'close'\r\n },\r\n\r\n // lockScroll:{}\r\n },\r\n\r\n methods: {\r\n onClickOverlay(){\r\n console.log('点击')\r\n\r\n this.$emit('clickOverlay')\r\n },\r\n\r\n onClickCloseIcon(){\r\n this.$emit('clickCloseIcon')\r\n }\r\n },\r\n});\r\n"],"sourceRoot":""}
\ No newline at end of file
<wxs src="./index.wxs" module="computed" />
<nut-overlay
show="{{ overlay && show }}"
wx:if="{{ overlay }}"
show="{{ show }}"
zIndex="{{zIndex}}"
duration="{{duration}}"
overlay-style="{{overlayStyle}}"
......@@ -9,22 +10,23 @@
/>
<nut-transition
name="fade"
name="{{ computed.animationName({position})}}"
show='{{ show }}'
custom-class="nut-overlay custom-class"
custom-style='z-index:{{zIndex}};{{overlayStyle}}'
custom-class="{{computed.classes({position,popClass,round})}}"
custom-style='z-index:{{zIndex}};{{popStyle}}'
bind:tap='onClick'
duration='{{duration}}'>
<view wx:if="{{show}}" class="{{computed.classes({position,popClass,round})}}" style="z-index:{{zIndex}};transitionDuration:{{duration}}s;{{popStyle}}" >
<slot></slot>
<view
wx:if="{{show}}"
bindtap="onClickCloseIcon"
class="nut-popup__close-icon"
>
<!-- <nut-icon name='close'></nut-icon> -->
</view>
</view>
<slot></slot>
<view
wx:if="{{closeable}}"
bindtap="onClickCloseIcon"
class="nut-popup__close-icon {{'nut-popup__close-icon--' + closeIconPosition}}"
>
<nut-icon name="{{closeIcon}}"></nut-icon>
<!-- <slot name="close-icon">
<Close height="12px"></Close>
</slot> -->
</view>
</nut-transition>
\ No newline at end of file
......@@ -8,7 +8,7 @@ function Classes(data) {
var prefixCls = 'nut-popup'
var classes = [prefixCls,prefixCls + '--' + data.position,data.popClass]
var classes = [prefixCls,prefixCls + '--' + data.position, data.popClass]
if (data.round) {
classes.push('round')
......@@ -31,7 +31,16 @@ function Styled(data) {
return style([styley]);
}
function AnimationName(data){
console.log(data)
if( data.position == 'center') return 'fade'
if( data.position == 'top') return 'fade-down'
if( data.position == 'bottom') return 'fade-up'
return 'fade-'+data.position
}
module.exports = {
classes: Classes,
styled: Styled
styled: Styled,
animationName:AnimationName
};
......@@ -4,8 +4,14 @@ Component({
data:{
show:false,
positionShow: false,
position:'top',
positionLRShow:false,
positionLR:'left',
styleShow:false,
timeShow:false
roundPopopShow:false,
iconPopopShow:false,
closeIconPosition:'top-right',
customIconPopopShow:false
},
methods: {
......@@ -25,11 +31,49 @@ Component({
this.setData({ show:tag });
},
onClickPositionShow(){
this.setData({positionShow:true})
onClickPositionShow(e){
var posi = e.target.dataset.position
this.setData({
position:posi,
positionShow:true
})
},
onClickPositionLRShow(e){
var posi = e.target.dataset.position
this.setData({
positionLR:posi,
positionLRShow:true
})
},
onClickPositionHide(){
this.setData({positionShow:false})
}
this.setData({
positionLRShow:false,
positionShow:false})
},
onClickRoundHide(){
this.setData({ roundPopopShow:false });
},
onClickRoundShow(){
this.setData({ roundPopopShow:true });
},
onClickIconShow(e){
var posi = e.target.dataset.position
if(posi){
this.setData({
closeIconPosition:posi
})
}
this.setData({ iconPopopShow:true });
},
onClickIconHide(){
this.setData({ iconPopopShow:false });
},
onClickCustomIconShow(e){
this.setData({ customIconPopopShow:true });
},
onClickCustomIconHide(){
this.setData({ customIconPopopShow:false });
},
}
})
......@@ -2,21 +2,29 @@
<h2>基础用法</h2>
<nut-cell title="展示弹出层" bind:click='onClickShow'></nut-cell>
<nut-popup pop-style="padding:30px 50px" show='{{ show }}' bind:clickOverlay="onClickOverlay">正文</nut-popup>
<nut-popup pop-style="padding:30px 50px" show='{{ show }}' bind:clickOverlay="onClickOverlay"><view>正文</view></nut-popup>
<h2>弹出位置</h2>
<nut-cell title="顶部弹出" bind:click='onClickPositionShow'></nut-cell>
<nut-cell title="底部弹出" bind:click='onClickShow'></nut-cell>
<nut-cell title="左侧弹出" bind:click='onClickShow'></nut-cell>
<nut-cell title="右侧弹出" bind:click='onClickShow'></nut-cell>
<nut-popup position="top" pop-style="height:20%" show='{{ positionShow }}' bind:clickOverlay="onClickPositionHide"></nut-popup>
<nut-grid>
<nut-grid-item icon="rect-up" text="顶部弹出" data-position='top' bindtap='onClickPositionShow'></nut-grid-item>
<nut-grid-item icon="rect-down" text="底部弹出" data-position='bottom' bindtap='onClickPositionShow'></nut-grid-item>
<nut-grid-item icon="rect-left" text="左侧弹出" data-position='left' bindtap='onClickPositionLRShow'></nut-grid-item>
<nut-grid-item icon="rect-right" text="右侧弹出" data-position='right' bindtap='onClickPositionLRShow'></nut-grid-item>
</nut-grid>
<nut-popup position="{{ position }}" pop-style="height:20%" show='{{ positionShow }}' bind:clickOverlay="onClickPositionHide"></nut-popup>
<nut-popup position="{{ positionLR }}" pop-style="height:100%;width:20%" show='{{ positionLRShow }}' bind:clickOverlay="onClickPositionHide"></nut-popup>
<h2>关闭图标</h2>
<nut-cell title="关闭图标" bind:click='onClickShow'></nut-cell>
<nut-cell title="自定义图标" bind:click='onClickShow'></nut-cell>
<nut-cell title="图标位置" bind:click='onClickShow'></nut-cell>
<nut-cell title="关闭图标" bind:click='onClickIconShow'></nut-cell>
<nut-cell title="自定义图标" bind:click='onClickCustomIconShow'></nut-cell>
<nut-cell title="图标位置" data-position="top-left" bind:click='onClickIconShow'></nut-cell>
<nut-popup position="bottom" round="true" closeable="true" closeIconPosition='{{closeIconPosition}}' pop-style="height:20%" show='{{ iconPopopShow }}' bind:clickOverlay="onClickIconHide" bind:clickCloseIcon='onClickIconHide'></nut-popup>
<nut-popup position="bottom" round="true" closeable="true" closeIcon="heart-fill-n" pop-style="height:20%" show='{{ customIconPopopShow }}' bind:clickOverlay="onClickCustomIconHide" bind:clickCloseIcon='onClickCustomIconHide'></nut-popup>
<h2>圆角弹框</h2>
<nut-cell title="圆角弹框" bind:click='onClickRoundShow'></nut-cell>
<nut-popup position="bottom" round="true" pop-style="height:20%" show='{{ roundPopopShow }}' bind:clickOverlay="onClickRoundHide"></nut-popup>
<h2>圆角弹框</h2>
<nut-cell title="圆角弹框" bind:click='onClickShow'></nut-cell>
</view>
.demo-button-row {
margin-bottom: 20px;
}
.demo-button-row2 {
margin-bottom: 10px;
}
.demo-button-row3{
margin-bottom: 10px;
display:block
}
.nut-button {
margin-right: 15px;
}
.block {
position: fixed;
top: 50%;
left: 50%;
width: 100px;
height: 100px;
margin: -50px 0 0 -50px;
.demoContent {
background-color: #1989fa;
}
\ No newline at end of file
......@@ -9,7 +9,6 @@ Component({
methods: {
onClickFade() {
console.log('点击')
this.trigger('fade');
},
......@@ -48,9 +47,9 @@ Component({
onClickCustom() {
this.setData({ showCustom: true });
setTimeout(()=>{
this.setData({ showCustom: false });
}, 1000)
// setTimeout(()=>{
// this.setData({ showCustom: false });
// }, 1000)
},
trigger(name){
......
......@@ -23,7 +23,7 @@ NutComponent({
square:false,
border:true,
reverse:false,
direction:'horizontal',
direction:'vertical',
clickable:false
},
iconProps:{
......@@ -34,7 +34,6 @@ NutComponent({
methods: {
updateParent:function(){
console.log('更新地址',this.parent.data)
const that = this
this.setData({
parent:that.parent.data
......
......@@ -32,6 +32,21 @@ NutComponent({
value: 'center'
},
overlayStyle: String,
closeable: {
type: Boolean,
value: false
},
closeIconPosition: {
type: String,
value: 'top-right'
},
closeIcon: {
type: String,
value: 'close'
},
// lockScroll:{}
},
methods: {
......@@ -39,6 +54,10 @@ NutComponent({
console.log('点击')
this.$emit('clickOverlay')
},
onClickCloseIcon(){
this.$emit('clickCloseIcon')
}
},
});
<wxs src="./index.wxs" module="computed" />
<nut-overlay
show="{{ overlay && show }}"
wx:if="{{ overlay }}"
show="{{ show }}"
zIndex="{{zIndex}}"
duration="{{duration}}"
overlay-style="{{overlayStyle}}"
......@@ -9,22 +10,23 @@
/>
<nut-transition
name="fade"
name="{{ computed.animationName({position})}}"
show='{{ show }}'
custom-class="nut-overlay custom-class"
custom-style='z-index:{{zIndex}};{{overlayStyle}}'
custom-class="{{computed.classes({position,popClass,round})}}"
custom-style='z-index:{{zIndex}};{{popStyle}}'
bind:tap='onClick'
duration='{{duration}}'>
<view wx:if="{{show}}" class="{{computed.classes({position,popClass,round})}}" style="z-index:{{zIndex}};transitionDuration:{{duration}}s;{{popStyle}}" >
<slot></slot>
<view
wx:if="{{show}}"
bindtap="onClickCloseIcon"
class="nut-popup__close-icon"
>
<!-- <nut-icon name='close'></nut-icon> -->
</view>
</view>
<slot></slot>
<view
wx:if="{{closeable}}"
bindtap="onClickCloseIcon"
class="nut-popup__close-icon {{'nut-popup__close-icon--' + closeIconPosition}}"
>
<nut-icon name="{{closeIcon}}"></nut-icon>
<!-- <slot name="close-icon">
<Close height="12px"></Close>
</slot> -->
</view>
</nut-transition>
\ No newline at end of file
......@@ -31,7 +31,16 @@ function Styled(data) {
return style([styley]);
}
function AnimationName(data){
console.log(data)
if( data.position == 'center') return 'fade'
if( data.position == 'top') return 'fade-down'
if( data.position == 'bottom') return 'fade-up'
return 'fade-'+data.position
}
module.exports = {
classes: Classes,
styled: Styled
styled: Styled,
animationName:AnimationName
};
......@@ -4,8 +4,14 @@ Component({
data:{
show:false,
positionShow: false,
position:'top',
positionLRShow:false,
positionLR:'left',
styleShow:false,
timeShow:false
roundPopopShow:false,
iconPopopShow:false,
closeIconPosition:'top-right',
customIconPopopShow:false
},
methods: {
......@@ -25,11 +31,49 @@ Component({
this.setData({ show:tag });
},
onClickPositionShow(){
this.setData({positionShow:true})
onClickPositionShow(e){
var posi = e.target.dataset.position
this.setData({
position:posi,
positionShow:true
})
},
onClickPositionLRShow(e){
var posi = e.target.dataset.position
this.setData({
positionLR:posi,
positionLRShow:true
})
},
onClickPositionHide(){
this.setData({positionShow:false})
}
this.setData({
positionLRShow:false,
positionShow:false})
},
onClickRoundHide(){
this.setData({ roundPopopShow:false });
},
onClickRoundShow(){
this.setData({ roundPopopShow:true });
},
onClickIconShow(e){
var posi = e.target.dataset.position
if(posi){
this.setData({
closeIconPosition:posi
})
}
this.setData({ iconPopopShow:true });
},
onClickIconHide(){
this.setData({ iconPopopShow:false });
},
onClickCustomIconShow(e){
this.setData({ customIconPopopShow:true });
},
onClickCustomIconHide(){
this.setData({ customIconPopopShow:false });
},
}
})
......@@ -2,21 +2,29 @@
<h2>基础用法</h2>
<nut-cell title="展示弹出层" bind:click='onClickShow'></nut-cell>
<nut-popup pop-style="padding:30px 50px" show='{{ show }}' bind:clickOverlay="onClickOverlay">正文</nut-popup>
<nut-popup pop-style="padding:30px 50px" show='{{ show }}' bind:clickOverlay="onClickOverlay"><view>正文</view></nut-popup>
<h2>弹出位置</h2>
<nut-cell title="顶部弹出" bind:click='onClickPositionShow'></nut-cell>
<nut-cell title="底部弹出" bind:click='onClickShow'></nut-cell>
<nut-cell title="左侧弹出" bind:click='onClickShow'></nut-cell>
<nut-cell title="右侧弹出" bind:click='onClickShow'></nut-cell>
<nut-popup position="top" pop-style="height:20%" show='{{ positionShow }}' bind:clickOverlay="onClickPositionHide"></nut-popup>
<nut-grid>
<nut-grid-item icon="rect-up" text="顶部弹出" data-position='top' bindtap='onClickPositionShow'></nut-grid-item>
<nut-grid-item icon="rect-down" text="底部弹出" data-position='bottom' bindtap='onClickPositionShow'></nut-grid-item>
<nut-grid-item icon="rect-left" text="左侧弹出" data-position='left' bindtap='onClickPositionLRShow'></nut-grid-item>
<nut-grid-item icon="rect-right" text="右侧弹出" data-position='right' bindtap='onClickPositionLRShow'></nut-grid-item>
</nut-grid>
<nut-popup position="{{ position }}" pop-style="height:20%" show='{{ positionShow }}' bind:clickOverlay="onClickPositionHide"></nut-popup>
<nut-popup position="{{ positionLR }}" pop-style="height:100%;width:20%" show='{{ positionLRShow }}' bind:clickOverlay="onClickPositionHide"></nut-popup>
<h2>关闭图标</h2>
<nut-cell title="关闭图标" bind:click='onClickShow'></nut-cell>
<nut-cell title="自定义图标" bind:click='onClickShow'></nut-cell>
<nut-cell title="图标位置" bind:click='onClickShow'></nut-cell>
<nut-cell title="关闭图标" bind:click='onClickIconShow'></nut-cell>
<nut-cell title="自定义图标" bind:click='onClickCustomIconShow'></nut-cell>
<nut-cell title="图标位置" data-position="top-left" bind:click='onClickIconShow'></nut-cell>
<nut-popup position="bottom" round="true" closeable="true" closeIconPosition='{{closeIconPosition}}' pop-style="height:20%" show='{{ iconPopopShow }}' bind:clickOverlay="onClickIconHide" bind:clickCloseIcon='onClickIconHide'></nut-popup>
<nut-popup position="bottom" round="true" closeable="true" closeIcon="heart-fill-n" pop-style="height:20%" show='{{ customIconPopopShow }}' bind:clickOverlay="onClickCustomIconHide" bind:clickCloseIcon='onClickCustomIconHide'></nut-popup>
<h2>圆角弹框</h2>
<nut-cell title="圆角弹框" bind:click='onClickRoundShow'></nut-cell>
<nut-popup position="bottom" round="true" pop-style="height:20%" show='{{ roundPopopShow }}' bind:clickOverlay="onClickRoundHide"></nut-popup>
<h2>圆角弹框</h2>
<nut-cell title="圆角弹框" bind:click='onClickShow'></nut-cell>
</view>
.demo-button-row {
margin-bottom: 20px;
}
.demo-button-row2 {
margin-bottom: 10px;
}
.demo-button-row3{
margin-bottom: 10px;
display:block
}
.nut-button {
margin-right: 15px;
}
.block {
position: fixed;
top: 50%;
left: 50%;
width: 100px;
height: 100px;
margin: -50px 0 0 -50px;
.demoContent {
background-color: #1989fa;
}
\ No newline at end of file
......@@ -9,7 +9,6 @@ Component({
methods: {
onClickFade() {
console.log('点击')
this.trigger('fade');
},
......@@ -48,9 +47,9 @@ Component({
onClickCustom() {
this.setData({ showCustom: true });
setTimeout(()=>{
this.setData({ showCustom: false });
}, 1000)
// setTimeout(()=>{
// this.setData({ showCustom: false });
// }, 1000)
},
trigger(name){
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册