cshenfu
2024-06-27 58aa6e282bb343503be3cb198948328ea3ed7b79
1
{"version":3,"sources":["webpack:////Users/mac/Desktop/UceEduFront/uni_modules/mp-html/components/mp-html/node/node.vue?fedc","webpack:////Users/mac/Desktop/UceEduFront/uni_modules/mp-html/components/mp-html/node/node.vue?0c97","webpack:////Users/mac/Desktop/UceEduFront/uni_modules/mp-html/components/mp-html/node/node.vue?1376","webpack:////Users/mac/Desktop/UceEduFront/uni_modules/mp-html/components/mp-html/node/node.vue?57db","uni-app:///uni_modules/mp-html/components/mp-html/node/node.vue","webpack:////Users/mac/Desktop/UceEduFront/uni_modules/mp-html/components/mp-html/node/node.vue?49ec","webpack:////Users/mac/Desktop/UceEduFront/uni_modules/mp-html/components/mp-html/node/node.vue?a06d","webpack:////Users/mac/Desktop/UceEduFront/uni_modules/mp-html/components/mp-html/node/node.vue?c79b","webpack:////Users/mac/Desktop/UceEduFront/uni_modules/mp-html/components/mp-html/node/node.vue?320e"],"names":["name","options","virtualHost","data","ctrl","props","attrs","type","default","childs","opts","components","node","mounted","beforeDestroy","methods","toJSON","play","flag","ctx","imgTap","uni","showmenu","current","urls","imgLongTap","imgLoad","linkTap","innerText","success","title","url","fail","mediaError","index","source","errMsg"],"mappings":";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA63B;AAC73B;AACwD;AACL;AACa;;;AAGhE;AACsN;AACtN,gBAAgB,iNAAU;AAC1B,EAAE,0EAAM;AACR,EAAE,21BAAM;AACR,EAAE,o2BAAe;AACjB;AACA;AACA;AACA;AACA;AACA,EAAE,+1BAAU;AACZ;AACA;;AAEA;AACgG;AAChG,WAAW,kHAAM,iBAAiB,0HAAM;;AAExC;AACe,gF;;;;;;;;;;;;AC3Bf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;ACAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACRA;AAAA;AAAA;AAAA;AAAg2B,CAAgB,kyBAAG,EAAC,C;;;;;;;;;;;;;;;;;;;;;;;gBCuGp3B;EACAA;EACAC;IAEAC;EAKA;EACAC;IACA;MACAC;IACA;EACA;EACAC;IACAL;IACAM;MACAC;MACAC;QACA;MACA;IACA;IACAC;IACAC;EACA;EACAC;IAGAC;EAEA;EACAC;IAAA;IACA;MACA;QAAA;MAAA;IACA;EAqBA;EACAC,yCAMA;EACAC;IAEAC;IAEA;AACA;AACA;AACA;IACAC;MACA;MAEA;QACA;QACA;QACA;UACA;YACAC;UACA;YACA;UACA;QACA;QACA;QACA;UACA,qCAEA,KAEA;UACAC;UACA;QACA;MACA;IAEA;IAEA;AACA;AACA;AACA;IACAC;MACA;MACA;QACA;QACA;MACA;MACA;MAIA;MACA;MACA;QACAC;UAEAC;UAMAC;UACAC;QACA;MACA;IACA;IAEA;AACA;AACA;IACAC,oCA6BA;IAEA;AACA;AACA;AACA;IACAC;MACA;MAEA;QACA;QACA;MACA;QACA;QACA;MACA;IACA;IAEA;AACA;AACA;AACA;IACAC;MACA;MACA;MACA;MACA;QACAC;MACA;MACA;QACA;UACA;UACA;QACA;UACA;UACA;YAKAP;cACAlB;cACA0B;gBAAA,OACAR;kBACAS;gBACA;cAAA;YACA;UAKA;QACA;UACA;UACAT;YACAU;YACAC;cACAX;gBACAU;gBACAC;cACA;YACA;UACA;QACA;MACA;IACA;IAEA;AACA;AACA;AACA;IACAC;MACA;MACA;MACA;MACA;QACA;QACA;UACAC;QACA;QACA;UACA;UACA;QACA;MACA;QAIA;QACA;UACA;QACA;MACA;MACA;QACA;UACAC;UACA7B;UAEA8B;QAEA;MACA;IACA;EACA;AACA;AAAA,4B;;;;;;;;;;;;;ACjXA;AAAA;AAAA;AAAA;AAAytC,CAAgB,+lCAAG,EAAC,C;;;;;;;;;;;ACA7uC;AACA,OAAO,KAAU,EAAE,kBAKd;;;;;;;;;;;;;ACNL;AAAA;AAAA,wCAAmmB,CAAgB,+lBAAG,EAAC,C;;;;;;;;;;;;ACAvnB;AAAe;AACf;AACA;AACA;;AAEA,M","file":"uni_modules/mp-html/components/mp-html/node/node.js","sourcesContent":["import { render, staticRenderFns, recyclableRender, components } from \"./node.vue?vue&type=template&id=35a45afb&filter-modules=eyJoYW5kbGVyIjp7InR5cGUiOiJzY3JpcHQiLCJjb250ZW50IjoiLy8g6KGM5YaF5qCH562%2B5YiX6KGoXG52YXIgaW5saW5lVGFncyA9IHtcbiAgYWJicjogdHJ1ZSxcbiAgYjogdHJ1ZSxcbiAgYmlnOiB0cnVlLFxuICBjb2RlOiB0cnVlLFxuICBkZWw6IHRydWUsXG4gIGVtOiB0cnVlLFxuICBpOiB0cnVlLFxuICBpbnM6IHRydWUsXG4gIGxhYmVsOiB0cnVlLFxuICBxOiB0cnVlLFxuICBzbWFsbDogdHJ1ZSxcbiAgc3BhbjogdHJ1ZSxcbiAgc3Ryb25nOiB0cnVlLFxuICBzdWI6IHRydWUsXG4gIHN1cDogdHJ1ZVxufVxuLyoqXG4gKiBAZGVzY3JpcHRpb24g5Yik5pat5piv5ZCm5Li66KGM5YaF5qCH562%2BXG4gKi9cbm1vZHVsZS5leHBvcnRzID0ge1xuICBpc0lubGluZTogZnVuY3Rpb24gKHRhZ05hbWUsIHN0eWxlKSB7XG4gICAgcmV0dXJuIGlubGluZVRhZ3NbdGFnTmFtZV0gfHwgKHN0eWxlIHx8ICcnKS5pbmRleE9mKCdkaXNwbGF5OmlubGluZScpICE9PSAtMVxuICB9XG59Iiwic3RhcnQiOjU2NTksImF0dHJzIjp7Im1vZHVsZSI6ImhhbmRsZXIiLCJsYW5nIjoid3hzIn0sImVuZCI6NjA5NX19&\"\nvar renderjs\nimport script from \"./node.vue?vue&type=script&lang=js&\"\nexport * from \"./node.vue?vue&type=script&lang=js&\"\nimport style0 from \"./node.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null,\n  false,\n  components,\n  renderjs\n)\n\n/* custom blocks */\nimport block0 from \"./node.vue?vue&type=custom&index=0&blockType=script&module=handler&lang=wxs\"\nif (typeof block0 === 'function') block0(component)\n\ncomponent.options.__file = \"uni_modules/mp-html/components/mp-html/node/node.vue\"\nexport default component.exports","export * from \"-!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--17-0!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./node.vue?vue&type=template&id=35a45afb&filter-modules=eyJoYW5kbGVyIjp7InR5cGUiOiJzY3JpcHQiLCJjb250ZW50IjoiLy8g6KGM5YaF5qCH562%2B5YiX6KGoXG52YXIgaW5saW5lVGFncyA9IHtcbiAgYWJicjogdHJ1ZSxcbiAgYjogdHJ1ZSxcbiAgYmlnOiB0cnVlLFxuICBjb2RlOiB0cnVlLFxuICBkZWw6IHRydWUsXG4gIGVtOiB0cnVlLFxuICBpOiB0cnVlLFxuICBpbnM6IHRydWUsXG4gIGxhYmVsOiB0cnVlLFxuICBxOiB0cnVlLFxuICBzbWFsbDogdHJ1ZSxcbiAgc3BhbjogdHJ1ZSxcbiAgc3Ryb25nOiB0cnVlLFxuICBzdWI6IHRydWUsXG4gIHN1cDogdHJ1ZVxufVxuLyoqXG4gKiBAZGVzY3JpcHRpb24g5Yik5pat5piv5ZCm5Li66KGM5YaF5qCH562%2BXG4gKi9cbm1vZHVsZS5leHBvcnRzID0ge1xuICBpc0lubGluZTogZnVuY3Rpb24gKHRhZ05hbWUsIHN0eWxlKSB7XG4gICAgcmV0dXJuIGlubGluZVRhZ3NbdGFnTmFtZV0gfHwgKHN0eWxlIHx8ICcnKS5pbmRleE9mKCdkaXNwbGF5OmlubGluZScpICE9PSAtMVxuICB9XG59Iiwic3RhcnQiOjU2NTksImF0dHJzIjp7Im1vZHVsZSI6ImhhbmRsZXIiLCJsYW5nIjoid3hzIn0sImVuZCI6NjA5NX19&\"","var components\nvar render = function () {\n  var _vm = this\n  var _h = _vm.$createElement\n  var _c = _vm._self._c || _h\n}\nvar recyclableRender = false\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns, recyclableRender, components }","import mod from \"-!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--13-1!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./node.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--13-1!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./node.vue?vue&type=script&lang=js&\"","<template>\r\n  <view :id=\"attrs.id\" :class=\"'_block _'+name+' '+attrs.class\" :style=\"attrs.style\">\r\n    <block v-for=\"(n, i) in childs\" v-bind:key=\"i\">\r\n      <!-- 图片 -->\r\n      <!-- 占位图 -->\r\n      <image v-if=\"n.name==='img'&&((opts[1]&&!ctrl[i])||ctrl[i]<0)\" class=\"_img\" :style=\"n.attrs.style\" :src=\"ctrl[i]<0?opts[2]:opts[1]\" mode=\"widthFix\" />\r\n      <!-- 显示图片 -->\r\n      <!-- #ifdef H5 || (APP-PLUS && VUE2) -->\r\n      <img v-if=\"n.name==='img'\" :id=\"n.attrs.id\" :class=\"'_img '+n.attrs.class\" :style=\"(ctrl[i]===-1?'display:none;':'')+n.attrs.style\" :src=\"n.attrs.src||(ctrl.load?n.attrs['data-src']:'')\" :data-i=\"i\" @load=\"imgLoad\" @error=\"mediaError\" @tap.stop=\"imgTap\" @longpress=\"imgLongTap\" />\r\n      <!-- #endif -->\r\n      <!-- #ifndef H5 || APP-PLUS -->\r\n      <image v-if=\"n.name==='img'\" :id=\"n.attrs.id\" :class=\"'_img '+n.attrs.class\" :style=\"(ctrl[i]===-1?'display:none;':'')+'width:'+(ctrl[i]||1)+'px;height:1px;'+n.attrs.style\" :src=\"n.attrs.src\" :mode=\"!n.h?'widthFix':(!n.w?'heightFix':'')\" :lazy-load=\"opts[0]\" :webp=\"n.webp\" :show-menu-by-longpress=\"opts[3]&&!n.attrs.ignore\" :image-menu-prevent=\"!opts[3]||n.attrs.ignore\" :data-i=\"i\" @load=\"imgLoad\" @error=\"mediaError\" @tap.stop=\"imgTap\" @longpress=\"imgLongTap\" />\r\n      <!-- #endif -->\r\n      <!-- #ifdef APP-PLUS && VUE3 -->\r\n      <image v-if=\"n.name==='img'\" :id=\"n.attrs.id\" :class=\"'_img '+n.attrs.class\" :style=\"(ctrl[i]===-1?'display:none;':'')+'width:'+(ctrl[i]||1)+'px;'+n.attrs.style\" :src=\"n.attrs.src||(ctrl.load?n.attrs['data-src']:'')\" :mode=\"!n.h?'widthFix':(!n.w?'heightFix':'')\" :data-i=\"i\" @load=\"imgLoad\" @error=\"mediaError\" @tap.stop=\"imgTap\" @longpress=\"imgLongTap\" />\r\n      <!-- #endif -->\r\n      <!-- 文本 -->\r\n      <!-- #ifndef MP-BAIDU || MP-ALIPAY || MP-TOUTIAO -->\r\n      <text v-else-if=\"n.text\" :user-select=\"n.us\" decode>{{n.text}}</text>\r\n      <!-- #endif -->\r\n      <text v-else-if=\"n.name==='br'\">\\n</text>\r\n      <!-- 链接 -->\r\n      <view v-else-if=\"n.name==='a'\" :id=\"n.attrs.id\" :class=\"(n.attrs.href?'_a ':'')+n.attrs.class\" hover-class=\"_hover\" :style=\"'display:inline;'+n.attrs.style\" :data-i=\"i\" @tap.stop=\"linkTap\">\r\n        <node name=\"span\" :childs=\"n.children\" :opts=\"opts\" style=\"display:inherit\" />\r\n      </view>\r\n      <!-- 视频 -->\r\n      <!-- #ifdef APP-PLUS -->\r\n      <view v-else-if=\"n.html\" :id=\"n.attrs.id\" :class=\"'_video '+n.attrs.class\" :style=\"n.attrs.style\" v-html=\"n.html\" @vplay.stop=\"play\" />\r\n      <!-- #endif -->\r\n      <!-- #ifndef APP-PLUS -->\r\n      <video v-else-if=\"n.name==='video'\" :id=\"n.attrs.id\" :class=\"n.attrs.class\" :style=\"n.attrs.style\" :autoplay=\"n.attrs.autoplay\" :controls=\"n.attrs.controls\" :loop=\"n.attrs.loop\" :muted=\"n.attrs.muted\" :object-fit=\"n.attrs['object-fit']\" :poster=\"n.attrs.poster\" :src=\"n.src[ctrl[i]||0]\" :data-i=\"i\" @play=\"play\" @error=\"mediaError\" />\r\n      <!-- #endif -->\r\n      <!-- #ifdef H5 || APP-PLUS -->\r\n      <iframe v-else-if=\"n.name==='iframe'\" :style=\"n.attrs.style\" :allowfullscreen=\"n.attrs.allowfullscreen\" :frameborder=\"n.attrs.frameborder\" :src=\"n.attrs.src\" />\r\n      <embed v-else-if=\"n.name==='embed'\" :style=\"n.attrs.style\" :src=\"n.attrs.src\" />\r\n      <!-- #endif -->\r\n      <!-- #ifndef MP-TOUTIAO || ((H5 || APP-PLUS) && VUE3) -->\r\n      <!-- 音频 -->\r\n      <audio v-else-if=\"n.name==='audio'\" :id=\"n.attrs.id\" :class=\"n.attrs.class\" :style=\"n.attrs.style\" :author=\"n.attrs.author\" :controls=\"n.attrs.controls\" :loop=\"n.attrs.loop\" :name=\"n.attrs.name\" :poster=\"n.attrs.poster\" :src=\"n.src[ctrl[i]||0]\" :data-i=\"i\" @play=\"play\" @error=\"mediaError\" />\r\n      <!-- #endif -->\r\n      <view v-else-if=\"(n.name==='table'&&n.c)||n.name==='li'\" :id=\"n.attrs.id\" :class=\"'_'+n.name+' '+n.attrs.class\" :style=\"n.attrs.style\">\r\n        <node v-if=\"n.name==='li'\" :childs=\"n.children\" :opts=\"opts\" />\r\n        <view v-else v-for=\"(tbody, x) in n.children\" v-bind:key=\"x\" :class=\"'_'+tbody.name+' '+tbody.attrs.class\" :style=\"tbody.attrs.style\">\r\n          <node v-if=\"tbody.name==='td'||tbody.name==='th'\" :childs=\"tbody.children\" :opts=\"opts\" />\r\n          <block v-else v-for=\"(tr, y) in tbody.children\" v-bind:key=\"y\">\r\n            <view v-if=\"tr.name==='td'||tr.name==='th'\" :class=\"'_'+tr.name+' '+tr.attrs.class\" :style=\"tr.attrs.style\">\r\n              <node :childs=\"tr.children\" :opts=\"opts\" />\r\n            </view>\r\n            <view v-else :class=\"'_'+tr.name+' '+tr.attrs.class\" :style=\"tr.attrs.style\">\r\n              <view v-for=\"(td, z) in tr.children\" v-bind:key=\"z\" :class=\"'_'+td.name+' '+td.attrs.class\" :style=\"td.attrs.style\">\r\n                <node :childs=\"td.children\" :opts=\"opts\" />\r\n              </view>\r\n            </view>\r\n          </block>\r\n        </view>\r\n      </view>\r\n      \r\n      <!-- 富文本 -->\r\n      <!-- #ifdef H5 || ((MP-WEIXIN || MP-QQ || APP-PLUS || MP-360) && VUE2) -->\r\n      <rich-text v-else-if=\"!n.c&&!handler.isInline(n.name, n.attrs.style)\" :id=\"n.attrs.id\" :style=\"n.f\" :nodes=\"[n]\" />\r\n      <!-- #endif -->\r\n      <!-- #ifndef H5 || ((MP-WEIXIN || MP-QQ || APP-PLUS || MP-360) && VUE2) -->\r\n      <rich-text v-else-if=\"!n.c\" :id=\"n.attrs.id\" :style=\"n.f+';display:inline'\" :preview=\"false\" :nodes=\"[n]\" />\r\n      <!-- #endif -->\r\n      <!-- 继续递归 -->\r\n      <view v-else-if=\"n.c===2\" :id=\"n.attrs.id\" :class=\"'_block _'+n.name+' '+n.attrs.class\" :style=\"n.f+';'+n.attrs.style\">\r\n        <node v-for=\"(n2, j) in n.children\" v-bind:key=\"j\" :style=\"n2.f\" :name=\"n2.name\" :attrs=\"n2.attrs\" :childs=\"n2.children\" :opts=\"opts\" />\r\n      </view>\r\n      <node v-else :style=\"n.f\" :name=\"n.name\" :attrs=\"n.attrs\" :childs=\"n.children\" :opts=\"opts\" />\r\n    </block>\r\n  </view>\r\n</template>\r\n<script module=\"handler\" lang=\"wxs\">\r\n// 行内标签列表\r\nvar inlineTags = {\r\n  abbr: true,\r\n  b: true,\r\n  big: true,\r\n  code: true,\r\n  del: true,\r\n  em: true,\r\n  i: true,\r\n  ins: true,\r\n  label: true,\r\n  q: true,\r\n  small: true,\r\n  span: true,\r\n  strong: true,\r\n  sub: true,\r\n  sup: true\r\n}\r\n/**\r\n * @description 判断是否为行内标签\r\n */\r\nmodule.exports = {\r\n  isInline: function (tagName, style) {\r\n    return inlineTags[tagName] || (style || '').indexOf('display:inline') !== -1\r\n  }\r\n}\r\n</script>\r\n<script>\r\n\r\nimport node from './node'\r\nexport default {\r\n  name: 'node',\r\n  options: {\r\n    // #ifdef MP-WEIXIN\r\n    virtualHost: true,\r\n    // #endif\r\n    // #ifdef MP-TOUTIAO\r\n    addGlobalClass: false\r\n    // #endif\r\n  },\r\n  data () {\r\n    return {\r\n      ctrl: {}\r\n    }\r\n  },\r\n  props: {\r\n    name: String,\r\n    attrs: {\r\n      type: Object,\r\n      default () {\r\n        return {}\r\n      }\r\n    },\r\n    childs: Array,\r\n    opts: Array\r\n  },\r\n  components: {\r\n\r\n    // #ifndef H5 && VUE3\r\n    node\r\n    // #endif\r\n  },\r\n  mounted () {\r\n    this.$nextTick(() => {\r\n      for (this.root = this.$parent; this.root.$options.name !== 'mp-html'; this.root = this.root.$parent);\r\n    })\r\n    // #ifdef H5 || APP-PLUS\r\n    if (this.opts[0]) {\r\n      let i\r\n      for (i = this.childs.length; i--;) {\r\n        if (this.childs[i].name === 'img') break\r\n      }\r\n      if (i !== -1) {\r\n        this.observer = uni.createIntersectionObserver(this).relativeToViewport({\r\n          top: 500,\r\n          bottom: 500\r\n        })\r\n        this.observer.observe('._img', res => {\r\n          if (res.intersectionRatio) {\r\n            this.$set(this.ctrl, 'load', 1)\r\n            this.observer.disconnect()\r\n          }\r\n        })\r\n      }\r\n    }\r\n    // #endif\r\n  },\r\n  beforeDestroy () {\r\n    // #ifdef H5 || APP-PLUS\r\n    if (this.observer) {\r\n      this.observer.disconnect()\r\n    }\r\n    // #endif\r\n  },\r\n  methods:{\r\n    // #ifdef MP-WEIXIN\r\n    toJSON () { },\r\n    // #endif\r\n    /**\r\n     * @description 播放视频事件\r\n     * @param {Event} e\r\n     */\r\n    play (e) {\r\n      this.root.$emit('play')\r\n      // #ifndef APP-PLUS\r\n      if (this.root.pauseVideo) {\r\n        let flag = false\r\n        const id = e.target.id\r\n        for (let i = this.root._videos.length; i--;) {\r\n          if (this.root._videos[i].id === id) {\r\n            flag = true\r\n          } else {\r\n            this.root._videos[i].pause() // 自动暂停其他视频\r\n          }\r\n        }\r\n        // 将自己加入列表\r\n        if (!flag) {\r\n          const ctx = uni.createVideoContext(id\r\n            // #ifndef MP-BAIDU\r\n            , this\r\n            // #endif\r\n          )\r\n          ctx.id = id\r\n          this.root._videos.push(ctx)\r\n        }\r\n      }\r\n      // #endif\r\n    },\r\n\r\n    /**\r\n     * @description 图片点击事件\r\n     * @param {Event} e\r\n     */\r\n    imgTap (e) {\r\n      const node = this.childs[e.currentTarget.dataset.i]\r\n      if (node.a) {\r\n        this.linkTap(node.a)\r\n        return\r\n      }\r\n      if (node.attrs.ignore) return\r\n      // #ifdef H5 || APP-PLUS\r\n      node.attrs.src = node.attrs.src || node.attrs['data-src']\r\n      // #endif\r\n      this.root.$emit('imgtap', node.attrs)\r\n      // 自动预览图片\r\n      if (this.root.previewImg) {\r\n        uni.previewImage({\r\n          // #ifdef MP-WEIXIN\r\n          showmenu: this.root.showImgMenu,\r\n          // #endif\r\n          // #ifdef MP-ALIPAY\r\n          enablesavephoto: this.root.showImgMenu,\r\n          enableShowPhotoDownload: this.root.showImgMenu,\r\n          // #endif\r\n          current: parseInt(node.attrs.i),\r\n          urls: this.root.imgList\r\n        })\r\n      }\r\n    },\r\n\r\n    /**\r\n     * @description 图片长按\r\n     */\r\n    imgLongTap (e) {\r\n      // #ifdef APP-PLUS\r\n      const attrs = this.childs[e.currentTarget.dataset.i].attrs\r\n      if (this.opts[3] && !attrs.ignore) {\r\n        uni.showActionSheet({\r\n          itemList: ['保存图片'],\r\n          success: () => {\r\n            const save = path => {\r\n              uni.saveImageToPhotosAlbum({\r\n                filePath: path,\r\n                success () {\r\n                  uni.showToast({\r\n                    title: '保存成功'\r\n                  })\r\n                }\r\n              })\r\n            }\r\n            if (this.root.imgList[attrs.i].startsWith('http')) {\r\n              uni.downloadFile({\r\n                url: this.root.imgList[attrs.i],\r\n                success: res => save(res.tempFilePath)\r\n              })\r\n            } else {\r\n              save(this.root.imgList[attrs.i])\r\n            }\r\n          }\r\n        })\r\n      }\r\n      // #endif\r\n    },\r\n\r\n    /**\r\n     * @description 图片加载完成事件\r\n     * @param {Event} e\r\n     */\r\n    imgLoad (e) {\r\n      const i = e.currentTarget.dataset.i\r\n      /* #ifndef H5 || (APP-PLUS && VUE2) */\r\n      if (!this.childs[i].w) {\r\n        // 设置原宽度\r\n        this.$set(this.ctrl, i, e.detail.width)\r\n      } else /* #endif */ if ((this.opts[1] && !this.ctrl[i]) || this.ctrl[i] === -1) {\r\n        // 加载完毕,取消加载中占位图\r\n        this.$set(this.ctrl, i, 1)\r\n      }\r\n    },\r\n\r\n    /**\r\n     * @description 链接点击事件\r\n     * @param {Event} e\r\n     */\r\n    linkTap (e) {\r\n      const node = e.currentTarget ? this.childs[e.currentTarget.dataset.i] : {}\r\n      const attrs = node.attrs || e\r\n      const href = attrs.href\r\n      this.root.$emit('linktap', Object.assign({\r\n        innerText: this.root.getText(node.children || []) // 链接内的文本内容\r\n      }, attrs))\r\n      if (href) {\r\n        if (href[0] === '#') {\r\n          // 跳转锚点\r\n          this.root.navigateTo(href.substring(1)).catch(() => { })\r\n        } else if (href.split('?')[0].includes('://')) {\r\n          // 复制外部链接\r\n          if (this.root.copyLink) {\r\n            // #ifdef H5\r\n            window.open(href)\r\n            // #endif\r\n            // #ifdef MP\r\n            uni.setClipboardData({\r\n              data: href,\r\n              success: () =>\r\n                uni.showToast({\r\n                  title: '链接已复制'\r\n                })\r\n            })\r\n            // #endif\r\n            // #ifdef APP-PLUS\r\n            plus.runtime.openWeb(href)\r\n            // #endif\r\n          }\r\n        } else {\r\n          // 跳转页面\r\n          uni.navigateTo({\r\n            url: href,\r\n            fail () {\r\n              uni.switchTab({\r\n                url: href,\r\n                fail () { }\r\n              })\r\n            }\r\n          })\r\n        }\r\n      }\r\n    },\r\n\r\n    /**\r\n     * @description 错误事件\r\n     * @param {Event} e\r\n     */\r\n    mediaError (e) {\r\n      const i = e.currentTarget.dataset.i\r\n      const node = this.childs[i]\r\n      // 加载其他源\r\n      if (node.name === 'video' || node.name === 'audio') {\r\n        let index = (this.ctrl[i] || 0) + 1\r\n        if (index > node.src.length) {\r\n          index = 0\r\n        }\r\n        if (index < node.src.length) {\r\n          this.$set(this.ctrl, i, index)\r\n          return\r\n        }\r\n      } else if (node.name === 'img') {\r\n        // #ifdef H5 && VUE3\r\n        if (this.opts[0] && !this.ctrl.load) return\r\n        // #endif\r\n        // 显示错误占位图\r\n        if (this.opts[2]) {\r\n          this.$set(this.ctrl, i, -1)\r\n        }\r\n      }\r\n      if (this.root) {\r\n        this.root.$emit('error', {\r\n          source: node.name,\r\n          attrs: node.attrs,\r\n          // #ifndef H5 && VUE3\r\n          errMsg: e.detail.errMsg\r\n          // #endif\r\n        })\r\n      }\r\n    }\r\n  }\r\n}\r\n</script>\r\n<style>\r\n/* a 标签默认效果 */\r\n._a {\r\n  padding: 1.5px 0 1.5px 0;\r\n  color: #366092;\r\n  word-break: break-all;\r\n}\r\n\r\n/* a 标签点击态效果 */\r\n._hover {\r\n  text-decoration: underline;\r\n  opacity: 0.7;\r\n}\r\n\r\n/* 图片默认效果 */\r\n._img {\r\n  max-width: 100%;\r\n  -webkit-touch-callout: none;\r\n}\r\n\r\n/* 内部样式 */\r\n\r\n._block {\r\n  display: block;\r\n}\r\n\r\n._b,\r\n._strong {\r\n  font-weight: bold;\r\n}\r\n\r\n._code {\r\n  font-family: monospace;\r\n}\r\n\r\n._del {\r\n  text-decoration: line-through;\r\n}\r\n\r\n._em,\r\n._i {\r\n  font-style: italic;\r\n}\r\n\r\n._h1 {\r\n  font-size: 2em;\r\n}\r\n\r\n._h2 {\r\n  font-size: 1.5em;\r\n}\r\n\r\n._h3 {\r\n  font-size: 1.17em;\r\n}\r\n\r\n._h5 {\r\n  font-size: 0.83em;\r\n}\r\n\r\n._h6 {\r\n  font-size: 0.67em;\r\n}\r\n\r\n._h1,\r\n._h2,\r\n._h3,\r\n._h4,\r\n._h5,\r\n._h6 {\r\n  display: block;\r\n  font-weight: bold;\r\n}\r\n\r\n._image {\r\n  height: 1px;\r\n}\r\n\r\n._ins {\r\n  text-decoration: underline;\r\n}\r\n\r\n._li {\r\n  display: list-item;\r\n}\r\n\r\n._ol {\r\n  list-style-type: decimal;\r\n}\r\n\r\n._ol,\r\n._ul {\r\n  display: block;\r\n  padding-left: 40px;\r\n  margin: 1em 0;\r\n}\r\n\r\n._q::before {\r\n  content: '\"';\r\n}\r\n\r\n._q::after {\r\n  content: '\"';\r\n}\r\n\r\n._sub {\r\n  font-size: smaller;\r\n  vertical-align: sub;\r\n}\r\n\r\n._sup {\r\n  font-size: smaller;\r\n  vertical-align: super;\r\n}\r\n\r\n._thead,\r\n._tbody,\r\n._tfoot {\r\n  display: table-row-group;\r\n}\r\n\r\n._tr {\r\n  display: table-row;\r\n}\r\n\r\n._td,\r\n._th {\r\n  display: table-cell;\r\n  vertical-align: middle;\r\n}\r\n\r\n._th {\r\n  font-weight: bold;\r\n  text-align: center;\r\n}\r\n\r\n._ul {\r\n  list-style-type: disc;\r\n}\r\n\r\n._ul ._ul {\r\n  margin: 0;\r\n  list-style-type: circle;\r\n}\r\n\r\n._ul ._ul ._ul {\r\n  list-style-type: square;\r\n}\r\n\r\n._abbr,\r\n._b,\r\n._code,\r\n._del,\r\n._em,\r\n._i,\r\n._ins,\r\n._label,\r\n._q,\r\n._span,\r\n._strong,\r\n._sub,\r\n._sup {\r\n  display: inline;\r\n}\r\n\r\n/* #ifdef APP-PLUS */\r\n._video {\r\n  width: 300px;\r\n  height: 225px;\r\n}\r\n/* #endif */\r\n</style>","import mod from \"-!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--6-oneOf-1-2!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-3!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./node.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--6-oneOf-1-2!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-3!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./node.vue?vue&type=style&index=0&lang=css&\"","// extracted by mini-css-extract-plugin\n    if(module.hot) {\n      // 1712134289699\n      var cssReload = require(\"/Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"../../\",\"locals\":false});\n      module.hot.dispose(cssReload);\n      module.hot.accept(undefined, cssReload);\n    }\n  ","import mod from \"-!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-filter-loader/index.js!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./node.vue?vue&type=custom&index=0&blockType=script&module=handler&lang=wxs\"; export default mod; export * from \"-!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-filter-loader/index.js!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../../../../../../Applications/HBuilderX.app/Contents/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./node.vue?vue&type=custom&index=0&blockType=script&module=handler&lang=wxs\"","export default function (Component) {\n       if(!Component.options.wxsCallMethods){\n         Component.options.wxsCallMethods = []\n       }\n       \n     }"],"sourceRoot":""}