diff --git a/src/platforms/mp-alipay/service/api/protocols.js b/src/platforms/mp-alipay/service/api/protocols.js index b0a90c7959db3c9b03dd7cf05e841f59cf812457..d770544d1e38db27890cf52ac8f72fb3360d483e 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 1bb1bd35dda13eedd3bf5c494e474d38099b8d56..f0ab8b7c3ed51179cc7c09ad1a60444f5242a088 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 0f99ee949ff99fea3a57304d72cc95a4a3635995..02d03284213d391f2b514450df91ca2025ab1780 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 93855999bfb1dc2cd64ca3cfd3b75bd78e9e942d..fae8acac6620b79e907be181b5242e0e0f14faff 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 = []