From b37146e06d2c16c92f462c6512b5339e123af6ed Mon Sep 17 00:00:00 2001 From: xiaoyucoding Date: Tue, 7 May 2019 20:49:33 +0800 Subject: [PATCH] =?UTF-8?q?feat(mp):=20=E5=B0=8F=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=E5=B9=B3=E5=8F=B0=20previewImage=20=E5=8F=82=E6=95=B0=20curren?= =?UTF-8?q?t=20=E6=94=AF=E6=8C=81=E4=BC=A0=E5=85=A5=E7=B4=A2=E5=BC=95?= =?UTF-8?q?=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/platforms/mp-alipay/service/api/protocols.js | 11 ++++++++--- src/platforms/mp-baidu/service/api/protocols.js | 16 +++++++++++++--- .../mp-toutiao/service/api/protocols.js | 16 +++++++++++++--- src/platforms/mp-weixin/service/api/protocols.js | 15 ++++++++++++++- 4 files changed, 48 insertions(+), 10 deletions(-) diff --git a/src/platforms/mp-alipay/service/api/protocols.js b/src/platforms/mp-alipay/service/api/protocols.js index b0a90c795..d770544d1 100644 --- a/src/platforms/mp-alipay/service/api/protocols.js +++ b/src/platforms/mp-alipay/service/api/protocols.js @@ -215,9 +215,14 @@ const protocols = { // 需要做转换的 API 列表 previewImage: { args (fromArgs) { // 支付宝小程序的 current 是索引值,而非图片地址。 - if (fromArgs.current && Array.isArray(fromArgs.urls)) { - const index = fromArgs.urls.indexOf(fromArgs.current) - fromArgs.current = ~index ? index : 0 + const currentIndex = Number(fromArgs.current) + if (isNaN(currentIndex)) { + if (fromArgs.current && Array.isArray(fromArgs.urls)) { + const index = fromArgs.urls.indexOf(fromArgs.current) + fromArgs.current = ~index ? index : 0 + } + } else { + fromArgs.current = currentIndex } return { indicator: false, diff --git a/src/platforms/mp-baidu/service/api/protocols.js b/src/platforms/mp-baidu/service/api/protocols.js index 1bb1bd35d..f0ab8b7c3 100644 --- a/src/platforms/mp-baidu/service/api/protocols.js +++ b/src/platforms/mp-baidu/service/api/protocols.js @@ -59,9 +59,19 @@ const protocols = { } }, previewImage: { - args: { - indicator: false, - loop: false + args (fromArgs) { + // 处理传入索引值的情况 + const currentIndex = Number(fromArgs.current) + if (!isNaN(currentIndex)) { + const urls = fromArgs.urls && Array.isArray(fromArgs.urls) ? fromArgs.urls.concat() : [] + fromArgs.urls = urls.filter((item, index) => { + return index < currentIndex ? item !== urls[currentIndex] : true + }) + } + return { + indicator: false, + loop: false + } } }, getRecorderManager: { diff --git a/src/platforms/mp-toutiao/service/api/protocols.js b/src/platforms/mp-toutiao/service/api/protocols.js index 0f99ee949..02d032842 100644 --- a/src/platforms/mp-toutiao/service/api/protocols.js +++ b/src/platforms/mp-toutiao/service/api/protocols.js @@ -92,9 +92,19 @@ const protocols = { } }, previewImage: { - args: { - indicator: false, - loop: false + args (fromArgs) { + // 处理传入索引值的情况 + const currentIndex = Number(fromArgs.current) + if (!isNaN(currentIndex)) { + const urls = fromArgs.urls && Array.isArray(fromArgs.urls) ? fromArgs.urls.concat() : [] + fromArgs.urls = urls.filter((item, index) => { + return index < currentIndex ? item !== urls[currentIndex] : true + }) + } + return { + indicator: false, + loop: false + } } }, connectSocket: { diff --git a/src/platforms/mp-weixin/service/api/protocols.js b/src/platforms/mp-weixin/service/api/protocols.js index 93855999b..fae8acac6 100644 --- a/src/platforms/mp-weixin/service/api/protocols.js +++ b/src/platforms/mp-weixin/service/api/protocols.js @@ -1,3 +1,16 @@ -export const protocols = {} +export const protocols = { + previewImage: { + args (fromArgs) { + // 处理传入索引值的情况 + const currentIndex = Number(fromArgs.current) + if (!isNaN(currentIndex)) { + const urls = fromArgs.urls && Array.isArray(fromArgs.urls) ? fromArgs.urls.concat() : [] + fromArgs.urls = urls.filter((item, index) => { + return index < currentIndex ? item !== urls[currentIndex] : true + }) + } + } + } +} export const todos = [] export const canIUses = [] -- GitLab