123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214 |
- <template>
- <view class="uni-swipe">
- <!-- #ifndef APP-PLUS || MP-WEIXIN || H5 -->
- <view class="uni-swipe_content">
- <view ref="selector-button-hock" class="uni-swipe_button-group selector-query-hock move-hock">
- <view v-for="(item,index) in options" :data-button="btn" :key="index" :style="{
- backgroundColor: item.style && item.style.backgroundColor ? item.style.backgroundColor : '#C7C6CD',
- fontSize: item.style && item.style.fontSize ? item.style.fontSize : '16px'
- }" class="uni-swipe_button button-hock" @click.stop="onClick(index,item)">
- <!-- <text class="uni-swipe_button-text" :style="{color: item.style && item.style.color ? item.style.color : '#FFFFFF',}">{{ item.text }}</text> -->
- <block v-if="item.bShowDeleteIcon">
- <view style="width: 100rpx;">
- <view class="cuIcon-delete text-white text-center"></view>
- </view>
- </block>
- <block v-else>
- <text class="uni-swipe_button-text" :style="{color: item.style && item.style.color ? item.style.color : '#FFFFFF',}">{{ item.text }}</text>
- </block>
- </view>
- </view>
- <view ref='selector-content-hock' class="selector-query-hock" @touchstart="touchstart" @touchmove="touchmove" @touchend="touchend">
- <view class="uni-swipe_move-box" :class="{'ani':uniShow}" :style="{transform:moveLeft}">
- <view class="uni-swipe_box">
- <slot />
- </view>
- </view>
- </view>
- </view>
- <!-- #endif -->
- <!-- #ifdef APP-VUE|| MP-WEIXIN||H5 -->
- <view class="uni-swipe_content">
- <view :data-disabled="disabled" :data-position="pos" :change:prop="swipe.sizeReady" :prop="pos" class="uni-swipe_move-box selector-query-hock move-hock" @touchstart="swipe.touchstart" @touchmove="swipe.touchmove" @touchend="swipe.touchend" @change="change">
- <view class="uni-swipe_box">
- <slot />
- </view>
- <view ref="selector-button-hock" class="uni-swipe_button-group selector-query-hock move-hock">
- <view v-for="(item,index) in options" :data-button="btn" :key="index" :style="{
- backgroundColor: item.style && item.style.backgroundColor ? item.style.backgroundColor : '#C7C6CD',
- fontSize: item.style && item.style.fontSize ? item.style.fontSize : '16px'
- }" class="uni-swipe_button button-hock" @click.stop="onClick(index,item)">
-
- <block v-if="item.bShowDeleteIcon">
- <view style="width: 100rpx;">
- <view class="cuIcon-delete text-white text-center"></view>
- </view>
- </block>
- <block v-else>
- <text class="uni-swipe_button-text" :style="{color: item.style && item.style.color ? item.style.color : '#FFFFFF',}">{{ item.text }}</text>
- </block>
- </view>
- </view>
- </view>
- </view>
- <!-- #endif -->
- <!-- #ifdef APP-NVUE -->
- <view ref="selector-box-hock" class="uni-swipe_content" @horizontalpan="touchstart" @touchend="touchend">
- <view ref="selector-button-hock" class="uni-swipe_button-group selector-query-hock move-hock" :style="{width:right+'px'}">
- <view ref="button-hock" v-for="(item,index) in options" :key="index" :style="{
- backgroundColor: item.style && item.style.backgroundColor ? item.style.backgroundColor : '#C7C6CD',
- fontSize: item.style && item.style.fontSize ? item.style.fontSize : '16px',left: right+'px'
- }" class="uni-swipe_button " @click.stop="onClick(index,item)">
- <!-- <text class="uni-swipe_button-text" :style="{color: item.style && item.style.color ? item.style.color : '#FFFFFF',}">{{ item.text }}</text> -->
- <block v-if="item.bShowDeleteIcon">
- <view style="width: 100rpx;">
- <view class="cuIcon-delete text-white text-center"></view>
- </view>
- </block>
- <block v-else>
- <text class="uni-swipe_button-text" :style="{color: item.style && item.style.color ? item.style.color : '#FFFFFF',}">{{ item.text }}</text>
- </block>
- </view>
- </view>
- <view ref='selector-content-hock' class="uni-swipe_move-box selector-query-hock">
- <view class="uni-swipe_box">
- <slot />
- </view>
- </view>
- </view>
- <!-- #endif -->
- </view>
- </template>
- <script src="./index.wxs" module="swipe" lang="wxs"></script>
- <script>
- // #ifndef APP-PLUS|| MP-WEIXIN || H5
- import mixins from './mpother'
- // #endif
- // #ifdef APP-VUE|| MP-WEIXIN||H5
- import mp from './mp'
- // #endif
- // #ifdef APP-NVUE
- import bindingx from './bindingx.js'
- // #endif
- export default {
- // #ifdef APP-VUE|| MP-WEIXIN||H5
- mixins: [mp],
- // #endif
- // #ifdef APP-NVUE
- mixins: [bindingx],
- // #endif
- // #ifndef APP-PLUS|| MP-WEIXIN || H5
- mixins: [mixins],
- // #endif
- props: {
- /**
- * 按钮内容
- */
- options: {
- type: Array,
- default () {
- return []
- }
- },
- /**
- * 禁用
- */
- disabled: {
- type: Boolean,
- default: false
- },
- /**
- * 变量控制开关
- */
- show: {
- type: Boolean,
- default: false
- },
- /**
- * 是否自动关闭
- */
- autoClose: {
- type: Boolean,
- default: true
- }
- }
- }
- </script>
- <style scoped>
- .uni-swipe {
- overflow: hidden;
- }
- .uni-swipe_content {
- flex: 1;
- position: relative;
- }
- .uni-swipe_move-box {
- /* #ifndef APP-NVUE */
- display: flex;
- /* #endif */
- position: relative;
- flex-direction: row;
- }
- .uni-swipe_box {
- /* #ifndef APP-NVUE */
- width: 100%;
- flex-shrink: 0;
- /* #endif */
- /* #ifdef APP-NVUE */
- flex: 1;
- /* #endif */
- font-size: 14px;
- /* background-color: #fff; */
- }
- .uni-swipe_button-group {
- /* #ifndef APP-VUE|| MP-WEIXIN||H5 */
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- z-index: 0;
- /* #endif */
- /* #ifndef APP-NVUE */
- display: flex;
- flex-shrink: 0;
- /* #endif */
- flex-direction: row;
- }
- .uni-swipe_button {
- /* #ifdef APP-NVUE */
- position: absolute;
- left: 0;
- top: 0;
- bottom: 0;
- /* #endif */
- /* #ifndef APP-NVUE */
- display: flex;
- /* #endif */
- flex-direction: row;
- justify-content: center;
- align-items: center;
- padding: 0 20px;
- }
- .uni-swipe_button-text {
- /* #ifndef APP-NVUE */
- flex-shrink: 0;
- /* #endif */
- font-size: 14px;
- }
- .ani {
- transition-property: transform;
- transition-duration: 0.3s;
- transition-timing-function: cubic-bezier(0.165, 0.84, 0.44, 1);
- }
- </style>
|