From 38430ddb8612fce15a2f1c940f9bd57d4da3e70b Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期四, 16 九月 2021 11:59:39 +0800 Subject: [PATCH] add new key --- components/uni-swipe-action-item/index.wxs | 400 ++++++++++++++++++++++++++++---------------------------- 1 files changed, 200 insertions(+), 200 deletions(-) diff --git a/components/uni-swipe-action-item/index.wxs b/components/uni-swipe-action-item/index.wxs index 79c6f9e..24c94bb 100644 --- a/components/uni-swipe-action-item/index.wxs +++ b/components/uni-swipe-action-item/index.wxs @@ -1,204 +1,204 @@ -/** - * 鐩戝惉椤甸潰鍐呭�肩殑鍙樺寲,涓昏鐢ㄤ簬鍔ㄦ�佸紑鍏硈wipe-action - * @param {Object} newValue - * @param {Object} oldValue - * @param {Object} ownerInstance - * @param {Object} instance - */ -function sizeReady(newValue, oldValue, ownerInstance, instance) { - var state = instance.getState() - state.position = JSON.parse(newValue) - if (!state.position || state.position.length === 0) return - var show = state.position[0].show - state.left = state.left || state.position[0].left; - // 閫氳繃鐢ㄦ埛鍙橀噺,寮�鍚垨鍏抽棴 - if (show) { - openState(true, instance, ownerInstance) - } else { - openState(false, instance, ownerInstance) - } -} - -/** - * 寮�濮嬭Е鎽告搷浣� - * @param {Object} e - * @param {Object} ins - */ -function touchstart(e, ins) { - var instance = e.instance; - var state = instance.getState(); - var pageX = e.touches[0].pageX; - // 寮�濮嬭Е鎽告椂绉婚櫎鍔ㄧ敾绫� - instance.removeClass('ani'); - var owner = ins.selectAllComponents('.button-hock') - for (var i = 0; i < owner.length; i++) { - owner[i].removeClass('ani'); - } - // state.position = JSON.parse(instance.getDataset().position); - state.left = state.left || state.position[0].left; - // 鑾峰彇鏈�缁堟寜閽粍鐨勫搴� - state.width = pageX - state.left; - ins.callMethod('closeSwipe') -} - -/** - * 寮�濮嬫粦鍔ㄦ搷浣� - * @param {Object} e - * @param {Object} ownerInstance - */ -function touchmove(e, ownerInstance) { - var instance = e.instance; - var disabled = instance.getDataset().disabled - var state = instance.getState() - // fix by mehaotian, TODO 鍏煎 app-vue 鑾峰彇dataset涓哄瓧绗︿覆 , h5 鑾峰彇 涓� undefined 鐨勯棶棰�,寰呮鏋朵慨澶� - disabled = (typeof(disabled) === 'string' ? JSON.parse(disabled) : disabled) || false; - - if (disabled) return - var pageX = e.touches[0].pageX; - move(pageX - state.width, instance, ownerInstance) -} - -/** - * 缁撴潫瑙︽懜鎿嶄綔 - * @param {Object} e - * @param {Object} ownerInstance - */ -function touchend(e, ownerInstance) { - var instance = e.instance; - var disabled = instance.getDataset().disabled - var state = instance.getState() - - // fix by mehaotian, TODO 鍏煎 app-vue 鑾峰彇dataset涓哄瓧绗︿覆 , h5 鑾峰彇 涓� undefined 鐨勯棶棰�,寰呮鏋朵慨澶� - disabled = (typeof(disabled) === 'string' ? JSON.parse(disabled) : disabled) || false; - - if (disabled) return +/** + * 鐩戝惉椤甸潰鍐呭�肩殑鍙樺寲,涓昏鐢ㄤ簬鍔ㄦ�佸紑鍏硈wipe-action + * @param {Object} newValue + * @param {Object} oldValue + * @param {Object} ownerInstance + * @param {Object} instance + */ +function sizeReady(newValue, oldValue, ownerInstance, instance) { + var state = instance.getState() + state.position = JSON.parse(newValue) + if (!state.position || state.position.length === 0) return + var show = state.position[0].show + state.left = state.left || state.position[0].left; + // 閫氳繃鐢ㄦ埛鍙橀噺,寮�鍚垨鍏抽棴 + if (show) { + openState(true, instance, ownerInstance) + } else { + openState(false, instance, ownerInstance) + } +} + +/** + * 寮�濮嬭Е鎽告搷浣� + * @param {Object} e + * @param {Object} ins + */ +function touchstart(e, ins) { + var instance = e.instance; + var state = instance.getState(); + var pageX = e.touches[0].pageX; + // 寮�濮嬭Е鎽告椂绉婚櫎鍔ㄧ敾绫� + instance.removeClass('ani'); + var owner = ins.selectAllComponents('.button-hock') + for (var i = 0; i < owner.length; i++) { + owner[i].removeClass('ani'); + } + // state.position = JSON.parse(instance.getDataset().position); + state.left = state.left || state.position[0].left; + // 鑾峰彇鏈�缁堟寜閽粍鐨勫搴� + state.width = pageX - state.left; + ins.callMethod('closeSwipe') +} + +/** + * 寮�濮嬫粦鍔ㄦ搷浣� + * @param {Object} e + * @param {Object} ownerInstance + */ +function touchmove(e, ownerInstance) { + var instance = e.instance; + var disabled = instance.getDataset().disabled + var state = instance.getState() + // fix by mehaotian, TODO 鍏煎 app-vue 鑾峰彇dataset涓哄瓧绗︿覆 , h5 鑾峰彇 涓� undefined 鐨勯棶棰�,寰呮鏋朵慨澶� + disabled = (typeof(disabled) === 'string' ? JSON.parse(disabled) : disabled) || false; + + if (disabled) return + var pageX = e.touches[0].pageX; + move(pageX - state.width, instance, ownerInstance) +} + +/** + * 缁撴潫瑙︽懜鎿嶄綔 + * @param {Object} e + * @param {Object} ownerInstance + */ +function touchend(e, ownerInstance) { + var instance = e.instance; + var disabled = instance.getDataset().disabled + var state = instance.getState() + + // fix by mehaotian, TODO 鍏煎 app-vue 鑾峰彇dataset涓哄瓧绗︿覆 , h5 鑾峰彇 涓� undefined 鐨勯棶棰�,寰呮鏋朵慨澶� + disabled = (typeof(disabled) === 'string' ? JSON.parse(disabled) : disabled) || false; + + if (disabled) return // 婊戝姩杩囩▼涓Е鎽哥粨鏉�,閫氳繃闃欏�煎垽鏂槸寮�鍚繕鏄叧闂� // fixed by mehaotian 瀹氭椂鍣ㄨВ鍐崇偣鍑绘寜閽紝touchend 瑙﹀彂姣� click 浜嬩欢鏃舵満鏃╃殑闂 锛屼富瑕佹槸 ios13 moveDirection(state.left, -40, instance, ownerInstance) -} - -/** - * 璁剧疆绉诲姩璺濈 - * @param {Object} value - * @param {Object} instance - * @param {Object} ownerInstance - */ -function move(value, instance, ownerInstance) { - var state = instance.getState() - // 鑾峰彇鍙粦鍔ㄨ寖鍥� - var x = Math.max(-state.position[1].width, Math.min((value), 0)); - state.left = x; - instance.setStyle({ - transform: 'translateX(' + x + 'px)', - '-webkit-transform': 'translateX(' + x + 'px)' - }) - // 鎶樺彔鎸夐挳鍔ㄧ敾 - buttonFold(x, instance, ownerInstance) -} - -/** - * 绉诲姩鏂瑰悜鍒ゆ柇 - * @param {Object} left - * @param {Object} value - * @param {Object} ownerInstance - * @param {Object} ins - */ -function moveDirection(left, value, ins, ownerInstance) { - var state = ins.getState() - var position = state.position - var isopen = state.isopen - if (!position[1].width) { - openState(false, ins, ownerInstance) - return - } - // 濡傛灉宸茬粡鏄墦寮�鐘舵��,杩涜鍒ゆ柇鏄惁鍏抽棴,杩樻槸淇濈暀鎵撳紑鐘舵�� - if (isopen) { - if (-left <= position[1].width) { - openState(false, ins, ownerInstance) - } else { - openState(true, ins, ownerInstance) - } - return - } - // 濡傛灉鏄叧闂姸鎬�,杩涜鍒ゆ柇鏄惁鎵撳紑,杩樻槸淇濈暀鍏抽棴鐘舵�� - if (left <= value) { - openState(true, ins, ownerInstance) - } else { - openState(false, ins, ownerInstance) - } -} - -/** - * 璁剧疆鎸夐挳绉诲姩璺濈 - * @param {Object} value - * @param {Object} instance - * @param {Object} ownerInstance - */ -function buttonFold(value, instance, ownerInstance) { - var ins = ownerInstance.selectAllComponents('.button-hock'); - var state = instance.getState(); - var position = state.position; - var arr = []; - var w = 0; - for (var i = 0; i < ins.length; i++) { - if (!ins[i].getDataset().button) return - var btnData = JSON.parse(ins[i].getDataset().button) - - // fix by mehaotian TODO 鍦� app-vue 涓�,瀛楃涓茶浆瀵硅薄,闇�瑕佽浆涓ゆ,杩欓噷鍏堣繖涔堝吋瀹� - if (typeof(btnData) === 'string') { - btnData = JSON.parse(btnData) - } - - var button = btnData[i] && btnData[i].width || 0 - w += button - arr.push(-w) - // 鍔ㄦ�佽绠楁寜閽粍姣忎釜鎸夐挳鐨勬姌鍙犲姩鐢荤Щ鍔ㄨ窛绂� - var distance = arr[i - 1] + value * (arr[i - 1] / position[1].width) - if (i != 0) { - ins[i].setStyle({ - transform: 'translateX(' + distance + 'px)', - }) - } - } -} - -/** - * 寮�鍚姸鎬� - * @param {Boolean} type - * @param {Object} ins - * @param {Object} ownerInstance - */ -function openState(type, ins, ownerInstance) { - var state = ins.getState() - var position = state.position - if (state.isopen === undefined) { - state.isopen = false - } - // 鍙湁鐘舵�佹湁鏀瑰彉鎵嶄細閫氱煡椤甸潰鏀瑰彉鐘舵�� - if (state.isopen !== type) { - // 閫氱煡椤甸潰,宸茬粡鎵撳紑 - ownerInstance.callMethod('change', { - open: type - }) - } - // 璁剧疆鎵撳紑鍜岀Щ鍔ㄧ姸鎬� - state.isopen = type - - - // 娣诲姞鍔ㄧ敾绫� - ins.addClass('ani'); - var owner = ownerInstance.selectAllComponents('.button-hock') - for (var i = 0; i < owner.length; i++) { - owner[i].addClass('ani'); - } - // 璁剧疆鏈�缁堢Щ鍔ㄤ綅缃� - move(type ? -position[1].width : 0, ins, ownerInstance) - -} - -module.exports = { - sizeReady: sizeReady, - touchstart: touchstart, - touchmove: touchmove, - touchend: touchend +} + +/** + * 璁剧疆绉诲姩璺濈 + * @param {Object} value + * @param {Object} instance + * @param {Object} ownerInstance + */ +function move(value, instance, ownerInstance) { + var state = instance.getState() + // 鑾峰彇鍙粦鍔ㄨ寖鍥� + var x = Math.max(-state.position[1].width, Math.min((value), 0)); + state.left = x; + instance.setStyle({ + transform: 'translateX(' + x + 'px)', + '-webkit-transform': 'translateX(' + x + 'px)' + }) + // 鎶樺彔鎸夐挳鍔ㄧ敾 + buttonFold(x, instance, ownerInstance) +} + +/** + * 绉诲姩鏂瑰悜鍒ゆ柇 + * @param {Object} left + * @param {Object} value + * @param {Object} ownerInstance + * @param {Object} ins + */ +function moveDirection(left, value, ins, ownerInstance) { + var state = ins.getState() + var position = state.position + var isopen = state.isopen + if (!position[1].width) { + openState(false, ins, ownerInstance) + return + } + // 濡傛灉宸茬粡鏄墦寮�鐘舵��,杩涜鍒ゆ柇鏄惁鍏抽棴,杩樻槸淇濈暀鎵撳紑鐘舵�� + if (isopen) { + if (-left <= position[1].width) { + openState(false, ins, ownerInstance) + } else { + openState(true, ins, ownerInstance) + } + return + } + // 濡傛灉鏄叧闂姸鎬�,杩涜鍒ゆ柇鏄惁鎵撳紑,杩樻槸淇濈暀鍏抽棴鐘舵�� + if (left <= value) { + openState(true, ins, ownerInstance) + } else { + openState(false, ins, ownerInstance) + } +} + +/** + * 璁剧疆鎸夐挳绉诲姩璺濈 + * @param {Object} value + * @param {Object} instance + * @param {Object} ownerInstance + */ +function buttonFold(value, instance, ownerInstance) { + var ins = ownerInstance.selectAllComponents('.button-hock'); + var state = instance.getState(); + var position = state.position; + var arr = []; + var w = 0; + for (var i = 0; i < ins.length; i++) { + if (!ins[i].getDataset().button) return + var btnData = JSON.parse(ins[i].getDataset().button) + + // fix by mehaotian TODO 鍦� app-vue 涓�,瀛楃涓茶浆瀵硅薄,闇�瑕佽浆涓ゆ,杩欓噷鍏堣繖涔堝吋瀹� + if (typeof(btnData) === 'string') { + btnData = JSON.parse(btnData) + } + + var button = btnData[i] && btnData[i].width || 0 + w += button + arr.push(-w) + // 鍔ㄦ�佽绠楁寜閽粍姣忎釜鎸夐挳鐨勬姌鍙犲姩鐢荤Щ鍔ㄨ窛绂� + var distance = arr[i - 1] + value * (arr[i - 1] / position[1].width) + if (i != 0) { + ins[i].setStyle({ + transform: 'translateX(' + distance + 'px)', + }) + } + } +} + +/** + * 寮�鍚姸鎬� + * @param {Boolean} type + * @param {Object} ins + * @param {Object} ownerInstance + */ +function openState(type, ins, ownerInstance) { + var state = ins.getState() + var position = state.position + if (state.isopen === undefined) { + state.isopen = false + } + // 鍙湁鐘舵�佹湁鏀瑰彉鎵嶄細閫氱煡椤甸潰鏀瑰彉鐘舵�� + if (state.isopen !== type) { + // 閫氱煡椤甸潰,宸茬粡鎵撳紑 + ownerInstance.callMethod('change', { + open: type + }) + } + // 璁剧疆鎵撳紑鍜岀Щ鍔ㄧ姸鎬� + state.isopen = type + + + // 娣诲姞鍔ㄧ敾绫� + ins.addClass('ani'); + var owner = ownerInstance.selectAllComponents('.button-hock') + for (var i = 0; i < owner.length; i++) { + owner[i].addClass('ani'); + } + // 璁剧疆鏈�缁堢Щ鍔ㄤ綅缃� + move(type ? -position[1].width : 0, ins, ownerInstance) + +} + +module.exports = { + sizeReady: sizeReady, + touchstart: touchstart, + touchmove: touchmove, + touchend: touchend } -- Gitblit v1.8.0