diff --git a/packages/uni-template-compiler/lib/index.js b/packages/uni-template-compiler/lib/index.js index 424594a307849fc296976835ee915209d45955a1..9c4f61d62861b7e239bf16648ce28f6758f153a5 100644 --- a/packages/uni-template-compiler/lib/index.js +++ b/packages/uni-template-compiler/lib/index.js @@ -19,6 +19,7 @@ const generateTemplate = require('./template/generate') const compilerModule = require('./module') const compilerAlipayModule = require('./module-alipay') +const compilerToutiaoModule = require('./module-toutiao') const generateCodeFrame = require('./codeframe') @@ -75,6 +76,8 @@ module.exports = { if (options.mp.platform === 'mp-alipay') { options.modules.push(compilerAlipayModule) + } else if (options.mp.platform === 'mp-toutiao') { + options.modules.push(compilerToutiaoModule) } const res = compileTemplate(source, Object.assign(options, { @@ -254,4 +257,4 @@ at ${resourcePath}.vue:1`) ssrCompile, ssrCompileToFunctions, generateCodeFrame -} +} diff --git a/packages/uni-template-compiler/lib/module-toutiao.js b/packages/uni-template-compiler/lib/module-toutiao.js new file mode 100644 index 0000000000000000000000000000000000000000..b609253d69fdcef965841dc729f05a79a99a0d67 --- /dev/null +++ b/packages/uni-template-compiler/lib/module-toutiao.js @@ -0,0 +1,24 @@ +module.exports = { + postTransformNode (el) { + if (el.tag === 'swiper') { + const attrsMap = el.attrsMap + let touchable + if (attrsMap[':disable-touch']) { + touchable = `!(${attrsMap[':disable-touch']})` + } else if ('disable-touch' in attrsMap) { + touchable = 'false' + } + if (touchable) { + const attr = el.attrs.find(attr => attr.name === ':touchable') + if (attr) { + attr.value = touchable + } else { + el.attrs.push({ + name: ':touchable', + value: touchable + }) + } + } + } + } +}