1
0

2 Коміти d1f3415fdd ... eff726633b

Автор SHA1 Опис Дата
  sixian eff726633b 添加2路86开关扫码的 1 рік тому
  sixian 3c03c7ef61 最新版本 1 рік тому
100 змінених файлів з 525 додано та 2 видалено
  1. 4 2
      api/device.js
  2. 1 0
      miniprogram_npm/lin-ui/action-sheet/index.js
  3. 1 0
      miniprogram_npm/lin-ui/action-sheet/index.json
  4. 21 0
      miniprogram_npm/lin-ui/action-sheet/index.wxml
  5. 1 0
      miniprogram_npm/lin-ui/action-sheet/index.wxss
  6. 1 0
      miniprogram_npm/lin-ui/album/index.js
  7. 1 0
      miniprogram_npm/lin-ui/album/index.json
  8. 12 0
      miniprogram_npm/lin-ui/album/index.wxml
  9. 79 0
      miniprogram_npm/lin-ui/album/index.wxs
  10. 1 0
      miniprogram_npm/lin-ui/album/index.wxss
  11. 1 0
      miniprogram_npm/lin-ui/arc-popup/index.js
  12. 1 0
      miniprogram_npm/lin-ui/arc-popup/index.json
  13. 10 0
      miniprogram_npm/lin-ui/arc-popup/index.wxml
  14. 1 0
      miniprogram_npm/lin-ui/arc-popup/index.wxss
  15. 1 0
      miniprogram_npm/lin-ui/avatar/index.js
  16. 1 0
      miniprogram_npm/lin-ui/avatar/index.json
  17. 12 0
      miniprogram_npm/lin-ui/avatar/index.wxml
  18. 1 0
      miniprogram_npm/lin-ui/avatar/index.wxss
  19. 1 0
      miniprogram_npm/lin-ui/badge/index.js
  20. 1 0
      miniprogram_npm/lin-ui/badge/index.json
  21. 7 0
      miniprogram_npm/lin-ui/badge/index.wxml
  22. 1 0
      miniprogram_npm/lin-ui/badge/index.wxss
  23. 1 0
      miniprogram_npm/lin-ui/behaviors/computeOffset.js
  24. 1 0
      miniprogram_npm/lin-ui/behaviors/countdown.js
  25. 1 0
      miniprogram_npm/lin-ui/behaviors/hover.js
  26. 1 0
      miniprogram_npm/lin-ui/behaviors/rules.js
  27. 1 0
      miniprogram_npm/lin-ui/behaviors/scrollCenter.js
  28. 1 0
      miniprogram_npm/lin-ui/behaviors/transition.js
  29. 1 0
      miniprogram_npm/lin-ui/behaviors/validator.js
  30. 1 0
      miniprogram_npm/lin-ui/behaviors/watchShow.js
  31. 1 0
      miniprogram_npm/lin-ui/behaviors/zIndex.js
  32. 1 0
      miniprogram_npm/lin-ui/button/index.js
  33. 1 0
      miniprogram_npm/lin-ui/button/index.json
  34. 16 0
      miniprogram_npm/lin-ui/button/index.wxml
  35. 1 0
      miniprogram_npm/lin-ui/button/index.wxss
  36. 14 0
      miniprogram_npm/lin-ui/calendar/calendar.wxml
  37. 1 0
      miniprogram_npm/lin-ui/calendar/components/day/index.js
  38. 1 0
      miniprogram_npm/lin-ui/calendar/components/day/index.json
  39. 6 0
      miniprogram_npm/lin-ui/calendar/components/day/index.wxml
  40. 27 0
      miniprogram_npm/lin-ui/calendar/components/day/index.wxs
  41. 1 0
      miniprogram_npm/lin-ui/calendar/components/day/index.wxss
  42. 1 0
      miniprogram_npm/lin-ui/calendar/components/header/index.js
  43. 1 0
      miniprogram_npm/lin-ui/calendar/components/header/index.json
  44. 18 0
      miniprogram_npm/lin-ui/calendar/components/header/index.wxml
  45. 1 0
      miniprogram_npm/lin-ui/calendar/components/header/index.wxss
  46. 1 0
      miniprogram_npm/lin-ui/calendar/components/mounth/index.js
  47. 1 0
      miniprogram_npm/lin-ui/calendar/components/mounth/index.json
  48. 12 0
      miniprogram_npm/lin-ui/calendar/components/mounth/index.wxml
  49. 12 0
      miniprogram_npm/lin-ui/calendar/components/mounth/index.wxs
  50. 1 0
      miniprogram_npm/lin-ui/calendar/components/mounth/index.wxss
  51. 1 0
      miniprogram_npm/lin-ui/calendar/config.js
  52. 1 0
      miniprogram_npm/lin-ui/calendar/dete.js
  53. 1 0
      miniprogram_npm/lin-ui/calendar/index.js
  54. 1 0
      miniprogram_npm/lin-ui/calendar/index.json
  55. 7 0
      miniprogram_npm/lin-ui/calendar/index.wxml
  56. 37 0
      miniprogram_npm/lin-ui/calendar/index.wxs
  57. 1 0
      miniprogram_npm/lin-ui/calendar/index.wxss
  58. 1 0
      miniprogram_npm/lin-ui/calendar/util.js
  59. 24 0
      miniprogram_npm/lin-ui/calendar/utils.wxs
  60. BIN
      miniprogram_npm/lin-ui/capsule-bar/icons/capsule-left-black.png
  61. BIN
      miniprogram_npm/lin-ui/capsule-bar/icons/capsule-left-white.png
  62. BIN
      miniprogram_npm/lin-ui/capsule-bar/icons/capsule-right-black.png
  63. BIN
      miniprogram_npm/lin-ui/capsule-bar/icons/capsule-right-white.png
  64. 1 0
      miniprogram_npm/lin-ui/capsule-bar/index.js
  65. 1 0
      miniprogram_npm/lin-ui/capsule-bar/index.json
  66. 36 0
      miniprogram_npm/lin-ui/capsule-bar/index.wxml
  67. 1 0
      miniprogram_npm/lin-ui/capsule-bar/index.wxss
  68. 1 0
      miniprogram_npm/lin-ui/card/index.js
  69. 1 0
      miniprogram_npm/lin-ui/card/index.json
  70. 22 0
      miniprogram_npm/lin-ui/card/index.wxml
  71. 1 0
      miniprogram_npm/lin-ui/card/index.wxss
  72. 1 0
      miniprogram_npm/lin-ui/checkbox-group/index.js
  73. 1 0
      miniprogram_npm/lin-ui/checkbox-group/index.json
  74. 4 0
      miniprogram_npm/lin-ui/checkbox-group/index.wxml
  75. 1 0
      miniprogram_npm/lin-ui/checkbox-group/index.wxss
  76. 1 0
      miniprogram_npm/lin-ui/checkbox/index.js
  77. 1 0
      miniprogram_npm/lin-ui/checkbox/index.json
  78. 7 0
      miniprogram_npm/lin-ui/checkbox/index.wxml
  79. 1 0
      miniprogram_npm/lin-ui/checkbox/index.wxss
  80. 1 0
      miniprogram_npm/lin-ui/circle/index.js
  81. 1 0
      miniprogram_npm/lin-ui/circle/index.json
  82. 10 0
      miniprogram_npm/lin-ui/circle/index.wxml
  83. 1 0
      miniprogram_npm/lin-ui/circle/index.wxss
  84. 1 0
      miniprogram_npm/lin-ui/collapse-item/index.js
  85. 1 0
      miniprogram_npm/lin-ui/collapse-item/index.json
  86. 12 0
      miniprogram_npm/lin-ui/collapse-item/index.wxml
  87. 1 0
      miniprogram_npm/lin-ui/collapse-item/index.wxss
  88. 1 0
      miniprogram_npm/lin-ui/collapse/index.js
  89. 1 0
      miniprogram_npm/lin-ui/collapse/index.json
  90. 3 0
      miniprogram_npm/lin-ui/collapse/index.wxml
  91. 0 0
      miniprogram_npm/lin-ui/collapse/index.wxss
  92. 1 0
      miniprogram_npm/lin-ui/combined-tabs/index.js
  93. 1 0
      miniprogram_npm/lin-ui/combined-tabs/index.json
  94. 44 0
      miniprogram_npm/lin-ui/combined-tabs/index.wxml
  95. 1 0
      miniprogram_npm/lin-ui/combined-tabs/index.wxss
  96. 1 0
      miniprogram_npm/lin-ui/common/async-validator/index.js
  97. 1 0
      miniprogram_npm/lin-ui/common/async-validator/messages.js
  98. 1 0
      miniprogram_npm/lin-ui/common/async-validator/rule/enum.js
  99. 1 0
      miniprogram_npm/lin-ui/common/async-validator/rule/index.js
  100. 0 0
      miniprogram_npm/lin-ui/common/async-validator/rule/pattern.js

+ 4 - 2
api/device.js

@@ -9,11 +9,13 @@ module.exports = {
   //删除设备
   delDevice: (Device) => request('/devices?id=' + Device,'DELETE'),
   //获取回路参数
-  getloop:(Device) => request('/devices/relays?deviceId=' + Device,'GET'),
+  getloop:(Device) => request('/devices/relays?device_id=' + Device,'GET'),
   //配置回路参数
   postloop:(params) => request('/devices/relays','POST',params),
   //控制回路开关
   loopSwitch:(params) => request('/devices/operation','POST',params),
   //获取回路的开关状态
-  loopSwitchstate:(Device) => request('/devices/relays/status?deviceId='+ Device,'GET')
+  loopSwitchstate:(Device) => request('/devices/relays/status?device_id='+ Device,'GET'),
+  //获取回路的光照度列表
+  looplightlist:() => request('/illuminance','GET')
 }

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/action-sheet/index.js


+ 1 - 0
miniprogram_npm/lin-ui/action-sheet/index.json

@@ -0,0 +1 @@
+{"component":true,"usingComponents":{"l-icon":"../icon/index","l-popup":"../popup/index","l-button":"../button/index"}  }

+ 21 - 0
miniprogram_npm/lin-ui/action-sheet/index.wxml

@@ -0,0 +1,21 @@
+<l-popup show="{{show}}" showMask="{{true}}" contentAlign="bottom" locked="{{locked}}" bind:lintap="handleClickPopUp" z-index="{{zIndex}}">
+    <view class="l-action-sheet">
+        <view class="l-item-button l-class-title l-title-class" wx:if="{{title}}">
+            {{ title }}
+        </view>
+        <view wx:for="{{ itemList }}" wx:key="name" hover-class="{{isHover?'list-hover':''}}">
+            <l-button bind:lintap="handleClickItem" data-index="{{ index }}" data-item="{{ item }}" open-type="{{ item.openType }}" icon="{{ item.icon }}" type="default" size="large" special="{{true}}" long>
+                <view style="{{ item.color ? 'color: ' + item.color : '' }}" class="l-item-button l-class-item l-item-class {{item.image || item.icon ? 'l-image-button':''}}">
+                    <image wx:if="{{item.image}}" class="l-button-image" src="{{item.image}}" style="{{item.imageStyle}}"/>
+                    <l-icon wx:elif="{{ item.icon }}" name="{{ item.icon }}" l-class="l-item-button" size="{{ item.iconSize }}" color="{{item.iconColor?item.iconColor:item.color}}"></l-icon>
+                    <text class="l-button-text">{{ item.name }}</text>
+                </view>
+            </l-button>
+        </view>
+        <view class="l-cancel l-class-cancel l-cancel-class {{isIphoneX ? 'l-cancel-x':''}}" wx:if="{{ showCancel }}" hover-class="{{isHover?'list-hover':''}}">
+            <l-button type="default" size="large" long="true" bind:lintap="handleClickCancel" special="{{true}}">
+                <view class="l-item-button l-cancel-button">{{ cancelText }}</view>
+            </l-button>
+        </view>
+    </view>
+</l-popup>

+ 1 - 0
miniprogram_npm/lin-ui/action-sheet/index.wxss

@@ -0,0 +1 @@
+.l-action-sheet{background:#f7f7f7}.l-item-button{height:88rpx;line-height:88rpx;text-align:center;background:#fff;border-bottom:2rpx solid #f3f3f3;font-size:28rpx;color:#45526b;display:flex;align-items:center;justify-content:center;width:100%;overflow:hidden}.l-cancel{margin-top:12rpx}.l-cancel-x .l-item-button{padding-bottom:44rpx}.l-image-button>.l-button-text{margin-left:20rpx}.list-hover{opacity:.8}

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/album/index.js


+ 1 - 0
miniprogram_npm/lin-ui/album/index.json

@@ -0,0 +1 @@
+{"component":true,"usingComponents":{}}

+ 12 - 0
miniprogram_npm/lin-ui/album/index.wxml

@@ -0,0 +1,12 @@
+<wxs src="index.wxs" module="album"></wxs>
+
+<view class="l-class" style="display:flex">
+  <view style="{{album.gridStyle(gapRow, gapColumn, multipleSize, everyRowNumber)}}">
+    <block wx:for="{{showUrls}}" wx:key="index" class="child">
+      <view class="imageContainer {{album.dimBack(isLong, index, maxNumber, previewFullImage)}}" style="{{album.blockStyle(urls, horizontalScreen, shortSideValue, singleSize, multipleSize)}}">
+        <image class="{{album.blockClass(urls, horizontalScreen) + ' ' + album.dim(isLong, index, maxNumber, previewFullImage)}}" id="{{index}}" bind:tap="onPreviewTap" style="{{album.blockStyle(urls, horizontalScreen, shortSideValue, singleSize, multipleSize)}}" src="{{newType?item[key]:item}}" mode="{{urls.length === 1?singleMode:multipleMode}}"/>
+        <view wx:if="{{album.image(isLong, index, maxNumber, previewFullImage)}}" class="text">+{{urls.length-maxNumber}}</view>
+      </view>
+    </block>
+  </view>
+</view>

+ 79 - 0
miniprogram_npm/lin-ui/album/index.wxs

@@ -0,0 +1,79 @@
+var containerStyle = function (urls, multipleSize, gapRow, gapColumn) {
+    if (urls.length === 2 || urls.length === 4) {
+        return 'width:' + (2 * multipleSize + gapRow) + 'rpx; grid-row-gap:' + gapColumn + 'rpx; grid-column-gap:' + gapRow + 'rpx;grid-template-columns:repeat(auto-fit, ' + multipleSize + 'rpx);'
+    } else {
+        return 'width:' + (3 * multipleSize + 2 * gapRow) + 'rpx; grid-row-gap:' + gapColumn + 'rpx; grid-column-gap:' + gapRow + 'rpx;grid-template-columns:repeat(auto-fit, ' + multipleSize + 'rpx);'
+    }
+
+}
+
+var blockClass = function (urls, horizontalScreen) {
+    if (urls.length === 1) {
+        if (horizontalScreen) {
+            return 'l-single-image-class'
+        } else {
+            return 'vertical l-single-image-class'
+        }
+    } else {
+        return 'l-multi-image-class'
+    }
+}
+
+var blockStyle = function (urls, horizontalScreen, shortSideValue, singleSize, multipleSize) {
+    if (urls.length === 1) {
+        if (horizontalScreen) {
+            return 'height:' + shortSideValue + 'rpx;width:' + singleSize + 'rpx;'
+        } else {
+            return 'width:' + shortSideValue + 'rpx;height:' + singleSize + 'rpx;'
+        }
+    } else {
+        return 'height:' + multipleSize + 'rpx;width:' + multipleSize + 'rpx;'
+    }
+}
+
+var gridStyle = function (gapRow, gapColumn, multipleSize, everyRowNumber) {
+    return 'display:inline-grid;grid-template-columns: repeat(' + everyRowNumber + ',' + multipleSize + 'rpx);grid-row-gap:' + gapRow + 'rpx;grid-column-gap:' + gapColumn + 'rpx;'
+}
+
+var dimBack = function (isLong, index, maxNumber, previewFullImage) {
+    if (previewFullImage) {
+        if (isLong) {
+            if (index == maxNumber - 1) {
+                return 'dimback'
+            }
+        }
+    }
+    return ''
+}
+
+var dim = function (isLong, index, maxNumber, previewFullImage) {
+    if (previewFullImage) {
+        if (isLong) {
+            if (index == maxNumber - 1) {
+                return 'dim'
+            }
+        }
+    }
+    return ''
+}
+
+var image = function (isLong, index, maxNumber, previewFullImage) {
+    if (previewFullImage) {
+        if (isLong) {
+            if (index == maxNumber - 1) {
+                return true
+            }
+        }
+    }
+    return false
+}
+
+module.exports = {
+    containerStyle: containerStyle,
+    blockClass: blockClass,
+    blockStyle: blockStyle,
+    gridStyle: gridStyle,
+    dimBack: dimBack,
+    dim: dim,
+    image: image,
+}

+ 1 - 0
miniprogram_npm/lin-ui/album/index.wxss

@@ -0,0 +1 @@
+.container{display:grid}.vertical{height:360rpx}.parent{display:inline-grid;grid-template-columns:repeat(auto-fill)}.child{box-sizing:border-box;background-color:#fff;flex:0 0 44%;height:100px;border:1px solid red;margin-top:4%;margin-left:2%;margin-right:2%}.dimback{background:#000}.dim{opacity:.6}.imageContainer{position:relative}.imageContainer:last-child>.text{color:#fff;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:larger}

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/arc-popup/index.js


+ 1 - 0
miniprogram_npm/lin-ui/arc-popup/index.json

@@ -0,0 +1 @@
+{"component":true,"usingComponents":{"l-popup":"../popup/index"}}

+ 10 - 0
miniprogram_npm/lin-ui/arc-popup/index.wxml

@@ -0,0 +1,10 @@
+<l-popup show="{{show}}" contentAlign="{{direction}}" transition="{{transition}}" opacity="{{opacity}}" locked="{{locked}}" z-index="{{zIndex}}" l-class="l-class" l-bg-class="l-bg-class" bind:lintap="onArcPopupTap">
+  <scroll-view scroll-y="true" class="arc-popup l-panel-class" style="{{arcStyle}}">
+    <view class="header-popup {{headerFixed ? 'fixed' : ''}} l-header-class">
+      <slot name="header"/>
+    </view>
+    <view class="content-arc-popup">
+      <slot/>
+    </view>
+  </scroll-view>
+</l-popup>

+ 1 - 0
miniprogram_npm/lin-ui/arc-popup/index.wxss

@@ -0,0 +1 @@
+.container-arc-popup{width:100%}.arc-popup{overflow:hidden;width:100%;background:#fff}.content-arc-popup{padding:30rpx;box-sizing:border-box}.header-popup{width:100%;z-index:999}.header-popup.fixed{position:sticky;top:0;background-color:#fff}

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/avatar/index.js


+ 1 - 0
miniprogram_npm/lin-ui/avatar/index.json

@@ -0,0 +1 @@
+{"component":true,"usingComponents":{"l-icon":"../icon/index"}  }

+ 12 - 0
miniprogram_npm/lin-ui/avatar/index.wxml

@@ -0,0 +1,12 @@
+
+<view class="l-avatar {{text||_isHaveUserNickName?'l-placement-'+placement:''}}" mut-bind:tap="tapAvatar">
+    <view class="l-avatar-image {{shape?'l-'+shape:''}} l-class" wx:if="{{_isHaveUserAvatarUrl||icon||src}}" style="width:{{size}}rpx;height:{{size}}rpx;min-width:{{size}}rpx;min-height:{{size}}rpx;">
+        <open-data class="open-data" wx:if="{{_isHaveUserAvatarUrl}}" type="userAvatarUrl"/>
+        <l-icon wx:elif="{{icon}}" size="{{iconSize || size*0.6}}" color="{{iconColor||'#ffffff'}}" name="{{icon}}"/>
+        <image wx:elif="{{src}}" src="{{src}}" mode="{{mode}}" style="width:{{size}}rpx;height:{{size}}rpx"/>
+    </view>
+    <view class="l-avatar-text l-class-text l-text-class" wx:if="{{text||_isHaveUserNickName}}">
+        <open-data class="open-data" wx:if="{{_isHaveUserNickName}}" type="userNickName"/>
+        <text class="l-avatar-text-text" wx:elif="{{text}}">{{text}}</text>
+    </view>
+</view>

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/avatar/index.wxss


Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/badge/index.js


+ 1 - 0
miniprogram_npm/lin-ui/badge/index.json

@@ -0,0 +1 @@
+{"component":true,"usingComponents":{}}

+ 7 - 0
miniprogram_npm/lin-ui/badge/index.wxml

@@ -0,0 +1,7 @@
+<view class="l-badge" mut-bind:tap="handleTap">
+  <slot/>
+  <block wx:if="{{show}}">
+    <view wx:if="{{dot}}" class="l-badge-dot l-class l-class-self l-self-class"></view>
+    <view wx:else class="{{'l-badge-content-'+shape}} l-badge-content l-class l-class-self l-self-class">{{finalCount}}</view>
+  </block>
+</view>

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/badge/index.wxss


+ 1 - 0
miniprogram_npm/lin-ui/behaviors/computeOffset.js

@@ -0,0 +1 @@
+export default Behavior({behaviors:[],properties:{},data:{distance:0},attached(){this.offsetMargin()},methods:{offsetMargin(){const{windowHeight:t,screenHeight:e}=wx.getSystemInfoSync();this.setData({distance:e-t})}}});

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/behaviors/countdown.js


+ 1 - 0
miniprogram_npm/lin-ui/behaviors/hover.js

@@ -0,0 +1 @@
+export default Behavior({behaviors:[],properties:{isHover:{type:Boolean,value:!0}}});

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/behaviors/rules.js


Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/behaviors/scrollCenter.js


Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/behaviors/transition.js


+ 1 - 0
miniprogram_npm/lin-ui/behaviors/validator.js

@@ -0,0 +1 @@
+export default Behavior({definitionFilter(e){const{properties:o}=e;Object.keys(o).forEach(e=>{const{options:t}=o[e];t&&(o[e].observer=function(o){!t.includes(o)&&o&&console.error(`${e}: ${o} must be in the [${t}]`)})})}});

+ 1 - 0
miniprogram_npm/lin-ui/behaviors/watchShow.js

@@ -0,0 +1 @@
+export default Behavior({observers:{show:function(t){t&&this.changeStatus(),t||this.setData({status:t})}},methods:{changeStatus(){this.setData({status:!0}),this.data.timer&&clearTimeout(this.data.timer),this.data.timer=setTimeout(()=>{this.setData({status:!1}),this.data.success&&this.data.success(),this.data.timer=null},this.properties.duration)}}});

+ 1 - 0
miniprogram_npm/lin-ui/behaviors/zIndex.js

@@ -0,0 +1 @@
+export default Behavior({behaviors:[],properties:{zIndex:{type:Number,value:777}}});

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/button/index.js


+ 1 - 0
miniprogram_npm/lin-ui/button/index.json

@@ -0,0 +1 @@
+{"component":true,"usingComponents":{"l-icon":"../icon/index"}}

Різницю між файлами не показано, бо вона завелика
+ 16 - 0
miniprogram_npm/lin-ui/button/index.wxml


Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/button/index.wxss


+ 14 - 0
miniprogram_npm/lin-ui/calendar/calendar.wxml

@@ -0,0 +1,14 @@
+<wxs src="./index.wxs" module="computed"></wxs>
+
+<template name="calendar">
+  <view class="calendar-container">
+    <header showTitle="{{ showTitle }}" showSubtitle="{{ showSubtitle }}" title="{{ title }}" subTitle="{{ subTitle }}"></header>
+    <scroll-view class="calendar-body-wrap" scroll-y scroll-into-view="{{ scrollIntoViewIndex }}">
+      <mounth wx:for="{{ computed.getMonths(minDate, maxDate) }}" wx:key="index" id="month{{ index }}" class="month" data-date="{{ item }}" date="{{ item }}" minDate="{{ minDate }}" maxDate="{{ maxDate }}" currentDate="{{ currentDate }}" type="{{ type }}" bind:clickDay="clickDay" showMonthTitle="{{ index !== 0 }}" formatter="{{ formatter }}" color="{{ color }}">
+      </mounth>
+    </scroll-view>
+    <view>
+      <l-button type="default" l-class="bottom-button" size="long" bind:lintap="onClickConfirm" bg-color="{{ color }}">{{confirmText}}</l-button>
+    </view>
+  </view>
+</template>

+ 1 - 0
miniprogram_npm/lin-ui/calendar/components/day/index.js

@@ -0,0 +1 @@
+Component({data:{},properties:{text:null,topInfo:null,bottomInfo:null,type:null,color:{type:String,value:""}},methods:{}});

+ 1 - 0
miniprogram_npm/lin-ui/calendar/components/day/index.json

@@ -0,0 +1 @@
+{"component":true}

+ 6 - 0
miniprogram_npm/lin-ui/calendar/components/day/index.wxml

@@ -0,0 +1,6 @@
+<wxs src="./index.wxs" module="computed"></wxs>
+<view class="calendar-day-container {{ type }}" style="{{ computed.getDayStyle(type, color) }}">
+  <view class="top">{{ topInfo }}</view>
+  <view class="text">{{ text }}</view>
+  <view class="bottom">{{ bottomInfo }}</view>
+</view>

+ 27 - 0
miniprogram_npm/lin-ui/calendar/components/day/index.wxs

@@ -0,0 +1,27 @@
+function getDayStyle(type, color) {
+  var style = [];
+
+  if (color) {
+    if (
+      type === 'start' ||
+      type === 'end' ||
+      type === 'selected'
+    ) {
+      style.push(['background', color]);
+    } else if (type === 'middle') {
+      style.push(['color', color]);
+      // style.push(['background', color]);
+      // style.push(['opacity', '0.1']);
+    }
+  }
+
+  return style
+    .map(function(item) {
+      return item.join(':');
+    })
+    .join(';');
+}
+
+module.exports = {
+  getDayStyle: getDayStyle,
+};

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/calendar/components/day/index.wxss


+ 1 - 0
miniprogram_npm/lin-ui/calendar/components/header/index.js

@@ -0,0 +1 @@
+Component({data:{weekdays:["日","一","二","三","四","五","六"]},properties:{title:{type:String,value:"日期选择"},subTitle:String,showTitle:Boolean,showSubtitle:Boolean},methods:{}});

+ 1 - 0
miniprogram_npm/lin-ui/calendar/components/header/index.json

@@ -0,0 +1 @@
+{"component":true}

+ 18 - 0
miniprogram_npm/lin-ui/calendar/components/header/index.wxml

@@ -0,0 +1,18 @@
+<view class="calendar-header-container">
+  <block wx:if="{{ showTitle }}">
+    
+   <view class="calendar-header-container_title">
+      {{ title }}
+    </view>
+  </block>
+
+  <view wx:if="{{ showSubtitle }}" class="calendar-header-container_subtitle">
+    {{ subTitle }}
+  </view>
+
+  <view class="calendar-header__weekdays">
+    <view wx:for="{{ weekdays }}" wx:key="index" class="calendar-header__weekday">
+      {{ item }}
+    </view>
+  </view>
+</view>

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/calendar/components/header/index.wxss


Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/calendar/components/mounth/index.js


+ 1 - 0
miniprogram_npm/lin-ui/calendar/components/mounth/index.json

@@ -0,0 +1 @@
+{"component":true,"usingComponents":{"day":"../day/index"}}

+ 12 - 0
miniprogram_npm/lin-ui/calendar/components/mounth/index.wxml

@@ -0,0 +1,12 @@
+<wxs src="./index.wxs" module="computed"></wxs>
+
+<view class="calendar-mounth-container">
+  <view class="title" wx:if="{{ showMonthTitle }}">
+    {{ computed.formatMonthTitle(date) }}
+  </view>
+  <view class="calendar-day-container">
+    <view class="calendar-day-wrap" wx:for="{{ days }}" wx:key="index">
+      <day bind:tap="onClick" data-item="{{ item }}" wx:if="{{ item.type !== 'empty' }}" text="{{ item.text }}" topInfo="{{ item.topInfo }}" bottomInfo="{{ item.bottomInfo }}" type="{{ item.type }}" color=" {{ color }}"/>
+    </view>
+  </view>
+</view>

+ 12 - 0
miniprogram_npm/lin-ui/calendar/components/mounth/index.wxs

@@ -0,0 +1,12 @@
+/* eslint-disable */
+
+function formatMonthTitle(date) {
+  date = getDate(date);
+  return date.getFullYear() + '年' + (date.getMonth() + 1) + '月';
+}
+
+
+
+module.exports = {
+  formatMonthTitle: formatMonthTitle
+};

+ 1 - 0
miniprogram_npm/lin-ui/calendar/components/mounth/index.wxss

@@ -0,0 +1 @@
+.calendar-mounth-container{color:#333;display:flex;flex-direction:column}.calendar-mounth-container .title{text-align:center;font-weight:800}.calendar-mounth-container .calendar-day-container{display:flex;flex-wrap:wrap}.calendar-mounth-container .calendar-day-container .calendar-day-wrap{width:14.285%}

+ 1 - 0
miniprogram_npm/lin-ui/calendar/config.js

@@ -0,0 +1 @@
+export const TYPE_SINGLE="single";export const TYPE_RANGE="range";export const TYPE_MULTIPLE="multiple";

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/calendar/dete.js


Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/calendar/index.js


+ 1 - 0
miniprogram_npm/lin-ui/calendar/index.json

@@ -0,0 +1 @@
+{"component":true,"usingComponents":{"header":"./components/header/index","mounth":"./components/mounth/index","l-toast":"../toast/index","l-popup":"../popup/index","l-button":"../button/index"}}

+ 7 - 0
miniprogram_npm/lin-ui/calendar/index.wxml

@@ -0,0 +1,7 @@
+<import src="./calendar.wxml"/>
+
+<l-popup content-align="bottom" show="{{ show }}" bind:lintap="closePicker">
+  <template is="calendar" data="{{ currentDate, type, color, defaultDate, format, formatter, minDate, maxDate, minSelect, maxSelect, showConfirm, confirmText, maxLimitMessage, minLimitMessage, showTitle, showSubtitle, title, subTitle, scrollIntoViewIndex, color }}"/>
+</l-popup>
+
+<l-toast></l-toast>

+ 37 - 0
miniprogram_npm/lin-ui/calendar/index.wxs

@@ -0,0 +1,37 @@
+/* eslint-disable */
+var utils = require('./utils.wxs');
+
+function getMonths(minDate, maxDate) {
+  var months = [];
+  var cursor = getDate(minDate);
+
+  cursor.setDate(1);
+
+  do {
+    months.push(cursor.getTime());
+    cursor.setMonth(cursor.getMonth() + 1);
+  } while (utils.compareMonth(cursor, getDate(maxDate)) !== 1);
+
+  return months;
+}
+
+function getButtonDisabled(type, currentDate) {
+  if (currentDate == null) {
+    return true;
+  }
+
+  if (type === 'range') {
+    return !currentDate[0] || !currentDate[1];
+  }
+
+  if (type === 'multiple') {
+    return !currentDate.length;
+  }
+
+  return !currentDate;
+}
+
+module.exports = {
+  getMonths: getMonths,
+  getButtonDisabled: getButtonDisabled
+};

+ 1 - 0
miniprogram_npm/lin-ui/calendar/index.wxss

@@ -0,0 +1 @@
+.calendar-container{display:flex;height:1000rpx;flex-direction:column;background-color:#fff}.calendar-container .calendar-body-wrap{flex:1;overflow:auto;padding:0 20rpx;width:auto}.bottom-button{padding:0!important;padding-bottom:constant(safe-area-inset-bottom)!important;padding-bottom:env(safe-area-inset-bottom)!important;box-sizing:content-box!important}

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/calendar/util.js


+ 24 - 0
miniprogram_npm/lin-ui/calendar/utils.wxs

@@ -0,0 +1,24 @@
+/* eslint-disable */
+function getMonthEndDay(year, month) {
+  return getDate(year, month - 1, 0).getDate();
+}
+function compareMonth(date1, date2) {
+  date1 = getDate(date1);
+  date2 = getDate(date2);
+
+  var year1 = date1.getFullYear();
+  var year2 = date2.getFullYear();
+  var month1 = date1.getMonth();
+  var month2 = date2.getMonth();
+
+  if (year1 === year2) {
+    return month1 === month2 ? 0 : month1 > month2 ? 1 : -1;
+  }
+
+  return year1 > year2 ? 1 : -1;
+}
+
+module.exports = {
+  getMonthEndDay: getMonthEndDay,
+  compareMonth: compareMonth
+};

BIN
miniprogram_npm/lin-ui/capsule-bar/icons/capsule-left-black.png


BIN
miniprogram_npm/lin-ui/capsule-bar/icons/capsule-left-white.png


BIN
miniprogram_npm/lin-ui/capsule-bar/icons/capsule-right-black.png


BIN
miniprogram_npm/lin-ui/capsule-bar/icons/capsule-right-white.png


Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/capsule-bar/index.js


+ 1 - 0
miniprogram_npm/lin-ui/capsule-bar/index.json

@@ -0,0 +1 @@
+{"component":true}

+ 36 - 0
miniprogram_npm/lin-ui/capsule-bar/index.wxml

@@ -0,0 +1,36 @@
+
+
+<view class="container" style="padding-top: {{hasPadding?titleBarHeight+statusBarHeight:'0'}}rpx">
+  
+  <cover-view class="capsule-bar" style="background-color: {{bgColor}};">
+    
+    
+    <cover-view class="status-bar" style="height: {{statusBarHeight+4}}rpx;background-color: {{statusBarColor}};"></cover-view>
+
+    
+    <cover-view class="title-bar" style="height: {{titleBarHeight}}rpx;background-color: {{titleBarColor}};">
+      <cover-view wx:if="{{!hiddenTitle}}" class="title l-title-class" style="color: {{titleColor}};">{{title}}</cover-view>
+      <slot name="title"/>
+    </cover-view>
+
+    
+    <cover-view wx:if="{{!hiddenCapsule}}" class="capsule-button" style="border-color: rgba({{capsuleColor==='black'?'0,0,0,0.1':'255,255,255,0.25'}});background-color: rgba({{capsuleColor==='black'?'255,255,255,0.6':'0,0,0,0.15'}});width: {{capsuleButtonInfo.width}}px;height: {{capsuleButtonInfo.height}}px;left: {{capsuleButtonInfo.left}}px;top: {{capsuleButtonInfo.top}}px;">
+      
+      <cover-view mut-bind:tap="onTapLeftButton" catch:longpress="onLongPressLeftButton" hover-class="icon-wrapper-hover-{{capsuleColor}}" class="icon-wrapper" style="width: {{capsuleButtonInfo.width/2}}px;height: {{capsuleButtonInfo.height}}px;">
+        <cover-image class="icon-left" style="width:{{capsuleLeftIconWidth?capsuleLeftIconWidth+'rpx':''}};height:{{capsuleLeftIconHeight?capsuleLeftIconHeight+'rpx':''}};" src="{{capsuleLeftIconPath?capsuleLeftIconPath:'icons/capsule-left-'+capsuleColor+'.png'}}"></cover-image>
+      </cover-view>
+
+      
+      <cover-view class="line"></cover-view>
+
+      
+      <cover-view mut-bind:tap="onTapRightButton" catch:longpress="onLongPressRightButton" hover-class="icon-wrapper-hover-{{capsuleColor}}" class="icon-wrapper" style="width: {{capsuleButtonInfo.width/2}}px;height: {{capsuleButtonInfo.height}}px;">
+        <cover-image class="icon-right" style="width:{{capsuleRightIconWidth?capsuleRightIconWidth+'rpx':''}};height:{{capsuleRightIconHeight?capsuleRightIconHeight+'rpx':''}}" src="{{capsuleRightIconPath?capsuleRightIconPath:'icons/capsule-right-'+capsuleColor+'.png'}}"></cover-image>
+      </cover-view>
+    </cover-view>
+  </cover-view>
+
+  <view class="content-container">
+    <slot></slot>
+  </view>
+</view>

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/capsule-bar/index.wxss


+ 1 - 0
miniprogram_npm/lin-ui/card/index.js

@@ -0,0 +1 @@
+import validator from"../behaviors/validator";Component({externalClasses:["l-class","l-img-class","l-title-class"],options:{multipleSlots:!0},behaviors:[validator],properties:{image:String,title:String,describe:String,plaintext:Boolean,full:Boolean,position:{type:String,value:"left",options:["left","right"]},type:{type:String,value:"primary",options:["primary","avatar","cover"]},imageMode:{type:String,value:"scaleToFill"}},data:{},methods:{}});

+ 1 - 0
miniprogram_npm/lin-ui/card/index.json

@@ -0,0 +1 @@
+{"component":true,"usingComponents":{}}

+ 22 - 0
miniprogram_npm/lin-ui/card/index.wxml

@@ -0,0 +1,22 @@
+<view class="l-class card-container {{'card-container-' + type}} {{'card-container-' + type + '-' + position}} {{full?'card-container-full':'card-container-unfull'}}">
+  <block wx:if="{{type ==='primary' || type ==='cover'}}">
+    <image wx:if="{{!plaintext}}" class="l-img-class {{full?'cover-img-full':'cover-img-unfull'}} {{ 'card-img-' + type }} {{ 'card-img-' + type + '-' + position }}" mode="{{imageMode}}" lazy-load src="{{image}}"></image>
+    <view class="card-content">
+      <text class="l-title-class card-title {{'card-title-' + type}}">{{title}}</text>
+      <slot/>
+    </view>
+  </block>
+  <block wx:if="{{type ==='avatar'}}">
+    <view class="card-avatar-top">
+      <view class="card-avatar-left">
+        <image mode="aspectFill" class="l-img-class {{ 'card-img-' + type }}" src="{{image}}" mode="{{imageMode}}" lazy-load></image>
+        <view class="card-avatar">
+          <text class="l-title-class card-title {{'card-title-' + type}}">{{title}}</text>
+          <text class="describe">{{describe}}</text>
+        </view>
+      </view>
+      <slot name="more"/>
+    </view>
+    <slot/>
+  </block>
+</view>

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/card/index.wxss


Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/checkbox-group/index.js


+ 1 - 0
miniprogram_npm/lin-ui/checkbox-group/index.json

@@ -0,0 +1 @@
+{"component":true,"usingComponents":{"l-error-tip":"../error-tip/index","l-checkbox":"../checkbox/index"}}

+ 4 - 0
miniprogram_npm/lin-ui/checkbox-group/index.wxml

@@ -0,0 +1,4 @@
+<view class="l-class checkbox-group checkbox-group-{{placement}}">
+  <slot></slot> 
+</view>
+  <l-error-tip l-error-text-class="l-error-text l-error-text-class" errorText="{{errorText}}" wx:if="{{errorText}}"/>

+ 1 - 0
miniprogram_npm/lin-ui/checkbox-group/index.wxss

@@ -0,0 +1 @@
+.checkbox-group{flex-wrap:wrap}.checkbox-group-row{display:flex;flex-direction:row}.checkbox-group-column{display:flex;flex-direction:column}

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/checkbox/index.js


+ 1 - 0
miniprogram_npm/lin-ui/checkbox/index.json

@@ -0,0 +1 @@
+{"component":true,"usingComponents":{"l-button":"../button/index"}}

+ 7 - 0
miniprogram_npm/lin-ui/checkbox/index.wxml

@@ -0,0 +1,7 @@
+<view mut-bind:lintap="onCheckboxChangeTap" mut-bind:tap="onCheckboxChangeTap" class="label label-{{placement}} label-placement-{{parentPlacement}} {{disabled ? 'label-disabled l-disabled-class' : 'l-class'}}">
+        <view class="checkbox-{{placement}} l-icon-class" style="color:{{checked ? selectColor : (disabled ? disabledColor : color)}};font-size: {{size}}">
+            <slot wx:if="{{custom}}" name="icon"/>
+            <view wx:else class="iconfont {{checked? 'icon-select': 'icon-unselect'}}"></view>
+        </view>
+        <slot/>
+</view>

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/checkbox/index.wxss


Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/circle/index.js


+ 1 - 0
miniprogram_npm/lin-ui/circle/index.json

@@ -0,0 +1 @@
+{"component":true,"usingComponents":{}}

+ 10 - 0
miniprogram_npm/lin-ui/circle/index.wxml

@@ -0,0 +1,10 @@
+<view class="sector {{((displayPercent < 50 && displayPercent !== 0) || displayPercent === 100) ? 'sector1' : 'sector2'}}" style="height:{{outerDiameter}}rpx;width:{{outerDiameter}}rpx;{{((displayPercent < 50 && displayPercent !== 0) || displayPercent === 100) ?activeColor?'background:'+activeColor:'':'background:'+backgroundColor}}">
+    <view wx:if="{{displayPercent !== 0 && displayPercent !== 100}}" class="sx1" style="height:{{outerDiameter}}rpx;width:{{outerDiameter}}rpx;clip: rect(0rpx, {{outerDiameter/2}}rpx, {{outerDiameter}}rpx, 0rpx);background:{{((displayPercent < 50 && displayPercent !== 0) || displayPercent === 100) ?backgroundColor:activeColor?activeColor:''}}"></view>
+    <view wx:if="{{displayPercent !== 50 && displayPercent !== 0 && displayPercent !== 100}}" class="sx2" style="transform: rotate({{displayPercent < 50 ? ((360 * displayPercent / 100) - 180):(360 * (displayPercent - 100) / 100)}}deg);height:{{outerDiameter}}rpx;width:{{outerDiameter}}rpx;clip: rect(0rpx, {{outerDiameter/2}}rpx, {{outerDiameter}}rpx, 0rpx);background:{{((displayPercent < 50 && displayPercent !== 0) || displayPercent === 100) ?backgroundColor:activeColor}}"></view>
+    <view class="sx_t" style="width:{{innerDiameter}}rpx;height:{{innerDiameter}}rpx;background:{{innerColor}}">
+        <view wx:if="{{showValue}}" class="l-value-class" style="color:{{valueColor?valueColor:''}};font-size:{{valueSize}}rpx">
+            {{displayPercent}}%
+        </view>
+        <slot></slot>
+    </view>
+</view>

+ 1 - 0
miniprogram_npm/lin-ui/circle/index.wxss

@@ -0,0 +1 @@
+.sector{position:relative;border-radius:50%;overflow:hidden;display:flex;justify-content:center;align-items:center}.sx1,.sx2{position:absolute;top:0;left:0}.sx1{z-index:1}.sx2{z-index:2}.sx_t{border-radius:50%;z-index:3;display:flex;flex-direction:row;justify-content:center;align-items:center}.sector1{background:#3963bc}.sector2 .sx1,.sector2 .sx2{background:#3963bc;transform:rotate(180deg)}

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/collapse-item/index.js


+ 1 - 0
miniprogram_npm/lin-ui/collapse-item/index.json

@@ -0,0 +1 @@
+{"component":true,"usingComponents":{"l-list":"../list/index","l-icon":"../icon/index"}}

+ 12 - 0
miniprogram_npm/lin-ui/collapse-item/index.wxml

@@ -0,0 +1,12 @@
+<view class="container l-class">
+  <view mut-bind:tap="onTapTitle" class="container-title l-title-class">
+    <view style="{{disable?'color:#DEE2E6':''}}" wx:if="{{!customTitle}}">{{title}}</view>
+    <l-icon class="container-title-icon" wx:if="{{!customTitle}}" style="{{isExpandContent?'transform:rotate(-180deg);':''}}" name="down" size="28" color="{{disable?'#DEE2E6':'#333'}}"></l-icon>
+    <slot name="title"></slot>
+  </view>
+  <view catch:transitionend="onTransitionend" class="container-body" style="height:{{bodyHeight}};transition-duration:{{animationTime}}s">
+    <view class="container-body-wrapper l-body-class">
+      <slot></slot>
+    </view>
+  </view>
+</view>

+ 1 - 0
miniprogram_npm/lin-ui/collapse-item/index.wxss

@@ -0,0 +1 @@
+.container{display:flex;flex-direction:column;width:100%;box-sizing:border-box}.container-title{display:flex;justify-content:space-between;padding:10rpx;align-items:center;font-size:32rpx;color:#333}.container-title-l-icon{transition:.3s}.container-body{width:100%;color:#888;box-sizing:border-box;font-size:28rpx;transition:height .3s ease-in-out;overflow:hidden}.container-body-wrapper{position:relative;padding:10rpx}

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/collapse/index.js


+ 1 - 0
miniprogram_npm/lin-ui/collapse/index.json

@@ -0,0 +1 @@
+{"component":true,"usingComponents":{}}

+ 3 - 0
miniprogram_npm/lin-ui/collapse/index.wxml

@@ -0,0 +1,3 @@
+<view class="container">
+  <slot></slot>
+</view>

+ 0 - 0
miniprogram_npm/lin-ui/collapse/index.wxss


Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/combined-tabs/index.js


+ 1 - 0
miniprogram_npm/lin-ui/combined-tabs/index.json

@@ -0,0 +1 @@
+{"component":true,"usingComponents":{"l-icon":"../icon/index","l-badge":"../badge/index"}}

+ 44 - 0
miniprogram_npm/lin-ui/combined-tabs/index.wxml

@@ -0,0 +1,44 @@
+
+<view class="l-tabs l-placement-top l-tabs-horizontal {{aminmated ? 'l-aminmated' :''}} {{scrollable ? 'l-tabs-scroll':''}}">
+    <template is="tab-header" data="{{tab:tabList,placemanet,scrollable,transformY,transformX,activeKey,hasLine,activeColor,inactiveColor,headerType:'tab'}}"></template>
+    <view class="l-tabs l-sub-placement-left l-tabs-vertical {{aminmated ? 'l-aminmated' :''}} {{scrollable ? 'l-tabs-scroll':''}}">
+        <template is="tab-header" wx:if="{{tabList[currentIndex].subTabs.length}}" data="{{tab:tabList[currentIndex].subTabs,placemanet,scrollable,transformY,transformX,activeKey:tabList[currentIndex].activeSubKey,hasLine,activeColor,inactiveColor,headerType:'subTab'}}"></template>
+        <view class="l-tabs-main">
+            <view wx:if="{{!swipeable}}" class="l-tabpanel-content l-content-class">
+                <view class="l-tabpanel {{item.key===activeKey?'l-tabpanel-active':'l-tabpanel-inactive'}}" wx:for="{{tabList}}" wx:key="key" style="{{placement=='left'||placement=='right' ? 'position:absolute;width:100%;height:100%;transform:translate(0,'+ 100 * index +'%) translateZ(0px);':''}}">
+                    <view class="l-subpanel-content" wx:if="{{item.subTabs.length>0}}" style="{{'transform:translate(0,'+ -100 * item.subCurrentIndex +'%) translateZ(0px);'}}">
+                        <view class="l-subpanel" wx:for="{{item.subTabs}}" wx:for-item="tab" wx:key="key">
+                            <slot name="{{tab.key}}"></slot>
+                        </view>
+                    </view>
+                    <slot name="{{item.key}}" wx:else></slot>
+                </view>
+            </view>
+            <swiper wx:else class="l-tabpanel-content l-content-class" bindchange="swiperChange" current="{{currentIndex}}">
+                <swiper-item class="l-tabpanel {{item.key===activeKey?'l-tabpanel-active':''}}" wx:for="{{tabList}}" wx:key="key">
+                    <view wx:if="{{item.subTabs.length>0}}">
+                        <swiper class="" vertical bindchange="subSwiperChange" current="{{item.subCurrentIndex}}">
+                            <swiper-item wx:for="{{item.subTabs}}" wx:for-item="tab" wx:key="key">
+                                <slot name="{{tab.key}}"></slot>
+                            </swiper-item>
+                        </swiper>
+
+                    </view>
+                      <slot name="{{item.key}}" wx:else></slot>
+                </swiper-item>
+            </swiper>
+        </view>
+    </view>
+</view>
+<template name="tab-header">
+    <scroll-view scroll-x="{{headerType==='tab' && scrollable}}" scroll-y="{{headerType==='subTab' && scrollable}}" scroll-top="{{transformY}}" scroll-left="{{transformX}}" scroll-with-animation class="l-tabsscroll">
+        <view class="l-tabs-header l-class-header l-header-class {{hasLine?'l-tabs-header-line':''}}">
+            <view id="{{item.key}}" class="l-tabs-item {{item.key===activeKey ?'l-class-active l-active-class l-tabs-active':'l-class-inactive l-inactive-class l-tabs-inactive'}} {{'l-tab-image-placement-'+item.image.placement}}" style="color:{{item.key===activeKey?activeColor:inactiveColor}}" wx:for="{{tab}}" wx:key="key" data-key="{{item.key}}" data-index="{{index}}" data-header-type="{{headerType}}" mut-bind:tap="handleChange">
+                <image wx:if="{{ item.image.activeImage || item.image.defaultImage }}" src="{{item.key===activeKey? item.image.activeImage:item.image.defaultImage}}" class="l-tab-image l-class-tabimage l-tabimage-class"/>
+                <l-icon wx:if="{{item.icon}}" l-class="{{item.key===activeKey ? 'l-icon-active':'l-icon-inactive'}}" name="{{item.icon}}" size="28" color="{{item.key===activeKey?activeColor:inactiveColor}}"/>
+                {{item.tab}}
+                <view class="l-tab-line l-class-line l-line-class" wx:if="{{hasLine && item.key===activeKey}}" style="background:{{item.key===activeKey?activeColor:inactiveColor}}"></view>
+            </view>
+        </view>
+    </scroll-view>
+</template>

Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/combined-tabs/index.wxss


Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/common/async-validator/index.js


Різницю між файлами не показано, бо вона завелика
+ 1 - 0
miniprogram_npm/lin-ui/common/async-validator/messages.js


+ 1 - 0
miniprogram_npm/lin-ui/common/async-validator/rule/enum.js

@@ -0,0 +1 @@
+import*as util from"../util";const ENUM="enum";function enumerable(e,u,n,m,r){e.enum=Array.isArray(e.enum)?e.enum:[],-1===e.enum.indexOf(u)&&m.push(util.format(r.messages.enum,e.fullField,e.enum.join(", ")))}export default enumerable;

+ 1 - 0
miniprogram_npm/lin-ui/common/async-validator/rule/index.js

@@ -0,0 +1 @@
+import required from"./required.js";import whitespace from"./whitespace.js";import type from"./type.js";import range from"./range.js";import enumRule from"./enum.js";import pattern from"./pattern.js";export default{required:required,whitespace:whitespace,type:type,range:range,enum:enumRule,pattern:pattern};

+ 0 - 0
miniprogram_npm/lin-ui/common/async-validator/rule/pattern.js


Деякі файли не було показано, через те що забагато файлів було змінено