uview-plus组件库全面升级更新,订单结算判断支付方式是否可用代码调整,公众号关注二维码修改
This commit is contained in:
@@ -10,13 +10,19 @@
|
||||
<!-- #endif -->
|
||||
<!-- #ifndef H5 || (APP-PLUS && VUE2) -->
|
||||
<!-- 表格中的图片,使用 rich-text 防止大小不正确 -->
|
||||
<rich-text v-if="n.name==='img'&&n.t" :style="'display:'+n.t" :nodes="'<img class=\'_img\' style=\''+n.attrs.style+'\' src=\''+n.attrs.src+'\'>'" :data-i="i" @tap.stop="imgTap" />
|
||||
<rich-text v-if="n.name==='img'&&n.t" :style="'display:'+n.t" :nodes="[{attrs:{style:n.attrs.style||'',src:n.attrs.src},name:'img'}]" :data-i="i" @tap.stop="imgTap" />
|
||||
<!-- #endif -->
|
||||
<!-- #ifndef H5 || APP-PLUS -->
|
||||
<image v-else-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" />
|
||||
<!-- #ifdef APP-HARMONY -->
|
||||
<image v-else-if="n.name==='img'" :id="n.attrs.id" :class="'_img '+n.attrs.class" :style="(ctrl[i]===-1?'display:none;':'')+'width:'+ctrl[i]+'px;'+n.attrs.style" :src="n.attrs.src||(ctrl.load?n.attrs['data-src']:'')" :mode="!n.h?'widthFix':(!n.w?'heightFix':(n.m||'scaleToFill'))" :data-i="i" @load="imgLoad" @error="mediaError" @tap.stop="imgTap" @longpress="imgLongTap" />
|
||||
<!-- #endif -->
|
||||
<!-- #ifndef H5 || APP-PLUS || MP-KUAISHOU -->
|
||||
<image v-else-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':(n.m||'scaleToFill'))" :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" />
|
||||
<!-- #endif -->
|
||||
<!-- #ifdef MP-KUAISHOU -->
|
||||
<image v-else-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" :lazy-load="opts[0]" :data-i="i" @load="imgLoad" @error="mediaError" @tap.stop="imgTap"></image>
|
||||
<!-- #endif -->
|
||||
<!-- #ifdef APP-PLUS && VUE3 -->
|
||||
<image v-else-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" />
|
||||
<image v-else-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':(n.m||''))" :data-i="i" @load="imgLoad" @error="mediaError" @tap.stop="imgTap" @longpress="imgLongTap" />
|
||||
<!-- #endif -->
|
||||
<!-- 文本 -->
|
||||
<!-- #ifdef MP-WEIXIN -->
|
||||
@@ -25,14 +31,14 @@
|
||||
<!-- #ifndef MP-WEIXIN || MP-BAIDU || MP-ALIPAY || MP-TOUTIAO -->
|
||||
<text v-else-if="n.text" decode>{{n.text}}</text>
|
||||
<!-- #endif -->
|
||||
<text v-else-if="n.name==='br'">\n</text>
|
||||
<text v-else-if="n.name==='br'">{{'\n'}}</text>
|
||||
<!-- 链接 -->
|
||||
<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">
|
||||
<node name="span" :childs="n.children" :opts="opts" style="display:inherit" />
|
||||
</view>
|
||||
<!-- 视频 -->
|
||||
<!-- #ifdef APP-PLUS -->
|
||||
<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" />
|
||||
<view v-else-if="n.html" :id="n.attrs.id" :class="'_video '+n.attrs.class" :style="n.attrs.style" v-html="n.html" :data-i="i" @vplay.stop="play" />
|
||||
<!-- #endif -->
|
||||
<!-- #ifndef APP-PLUS -->
|
||||
<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" />
|
||||
@@ -61,13 +67,13 @@
|
||||
</block>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- insert -->
|
||||
<!-- 富文本 -->
|
||||
<!-- #ifdef H5 || ((MP-WEIXIN || MP-QQ || APP-PLUS || MP-360) && VUE2) -->
|
||||
<rich-text v-else-if="!n.c&&!handler.isInline(n.name, n.attrs.style)" :id="n.attrs.id" :style="n.f" :user-select="opts[4]" :nodes="[n]" />
|
||||
<!-- #endif -->
|
||||
<!-- #ifndef H5 || ((MP-WEIXIN || MP-QQ || APP-PLUS || MP-360) && VUE2) -->
|
||||
<rich-text v-else-if="!n.c" :id="n.attrs.id" :style="n.f+';display:inline'" :preview="false" :selectable="opts[4]" :user-select="opts[4]" :nodes="[n]" />
|
||||
<rich-text v-else-if="!n.c" :id="n.attrs.id" :style="'display:inline;'+n.f" :preview="false" :selectable="opts[4]" :user-select="opts[4]" :nodes="[n]" />
|
||||
<!-- #endif -->
|
||||
<!-- 继续递归 -->
|
||||
<view v-else-if="n.c===2" :id="n.attrs.id" :class="'_block _'+n.name+' '+n.attrs.class" :style="n.f+';'+n.attrs.style">
|
||||
@@ -106,7 +112,6 @@ module.exports = {
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
|
||||
import node from './node'
|
||||
export default {
|
||||
name: 'node',
|
||||
@@ -122,7 +127,7 @@ export default {
|
||||
return {
|
||||
ctrl: {},
|
||||
// #ifdef MP-WEIXIN
|
||||
isiOS: uni.getDeviceInfo().system.includes('iOS')
|
||||
isiOS: uni.getSystemInfoSync().system.includes('iOS')
|
||||
// #endif
|
||||
}
|
||||
},
|
||||
@@ -138,14 +143,14 @@ export default {
|
||||
opts: Array
|
||||
},
|
||||
components: {
|
||||
|
||||
// #ifndef (H5 || APP-PLUS) && VUE3
|
||||
// #ifndef ((H5 || APP-PLUS) && VUE3) || APP-HARMONY
|
||||
node
|
||||
// #endif
|
||||
},
|
||||
mounted () {
|
||||
this.$nextTick(() => {
|
||||
for (this.root = this.$parent; this.root.$options.name !== 'u-parse'; this.root = this.root.$parent);
|
||||
// 修复可能导致死循环的问题
|
||||
for (this.root = this?.$parent; this.root && this.root?.$options.name !== 'up-parse'; this.root = this.root?.$parent);
|
||||
})
|
||||
// #ifdef H5 || APP-PLUS
|
||||
if (this.opts[0]) {
|
||||
@@ -168,14 +173,15 @@ export default {
|
||||
}
|
||||
// #endif
|
||||
},
|
||||
beforeUnmount () {
|
||||
beforeDestroy () {
|
||||
// #ifdef H5 || APP-PLUS
|
||||
if (this.observer) {
|
||||
this.observer.disconnect()
|
||||
}
|
||||
// #endif
|
||||
},
|
||||
methods:{
|
||||
emits: ['linktap', 'imgtap', 'play', 'ready', 'error'],
|
||||
methods: {
|
||||
// #ifdef MP-WEIXIN
|
||||
toJSON () { return this },
|
||||
// #endif
|
||||
@@ -184,7 +190,15 @@ export default {
|
||||
* @param {Event} e
|
||||
*/
|
||||
play (e) {
|
||||
this.root.$emit('play')
|
||||
const i = e.currentTarget.dataset.i
|
||||
const node = this.childs[i]
|
||||
this.root.$emit('play', {
|
||||
source: node.name,
|
||||
attrs: {
|
||||
...node.attrs,
|
||||
src: node.src[this.ctrl[i] || 0]
|
||||
}
|
||||
})
|
||||
// #ifndef APP-PLUS
|
||||
if (this.root.pauseVideo) {
|
||||
let flag = false
|
||||
@@ -227,7 +241,14 @@ export default {
|
||||
// #ifdef H5 || APP-PLUS
|
||||
node.attrs.src = node.attrs.src || node.attrs['data-src']
|
||||
// #endif
|
||||
this.root.$emit('imgTap', node.attrs)
|
||||
// #ifndef APP-HARMONY
|
||||
this.root.$emit('imgtap', node.attrs)
|
||||
// #endif
|
||||
// #ifdef APP-HARMONY
|
||||
this.root.$emit('imgtap', {
|
||||
...node.attrs
|
||||
})
|
||||
// #endif
|
||||
// 自动预览图片
|
||||
if (this.root.previewImg) {
|
||||
uni.previewImage({
|
||||
@@ -299,7 +320,7 @@ export default {
|
||||
* @description 检查是否所有图片加载完毕
|
||||
*/
|
||||
checkReady () {
|
||||
if (!this.root.lazyLoad) {
|
||||
if (this.root && !this.root.lazyLoad) {
|
||||
this.root._unloadimgs -= 1
|
||||
if (!this.root._unloadimgs) {
|
||||
setTimeout(() => {
|
||||
@@ -321,7 +342,7 @@ export default {
|
||||
const node = e.currentTarget ? this.childs[e.currentTarget.dataset.i] : {}
|
||||
const attrs = node.attrs || e
|
||||
const href = attrs.href
|
||||
this.root.$emit('linkTap', Object.assign({
|
||||
this.root.$emit('linktap', Object.assign({
|
||||
innerText: this.root.getText(node.children || []) // 链接内的文本内容
|
||||
}, attrs))
|
||||
if (href) {
|
||||
@@ -346,6 +367,9 @@ export default {
|
||||
// #ifdef APP-PLUS
|
||||
plus.runtime.openWeb(href)
|
||||
// #endif
|
||||
// #ifdef APP-HARMONY
|
||||
plus.runtime.openURL(href)
|
||||
// #endif
|
||||
}
|
||||
} else {
|
||||
// 跳转页面
|
||||
@@ -407,9 +431,7 @@ export default {
|
||||
._a {
|
||||
padding: 1.5px 0 1.5px 0;
|
||||
color: #366092;
|
||||
/* #ifndef APP-NVUE */
|
||||
word-break: break-all;
|
||||
/* #endif */
|
||||
}
|
||||
|
||||
/* a 标签点击态效果 */
|
||||
@@ -427,9 +449,7 @@ export default {
|
||||
/* 内部样式 */
|
||||
|
||||
._block {
|
||||
/* #ifndef APP-NVUE */
|
||||
display: block;
|
||||
/* #endif */
|
||||
}
|
||||
|
||||
._b,
|
||||
@@ -476,9 +496,7 @@ export default {
|
||||
._h4,
|
||||
._h5,
|
||||
._h6 {
|
||||
/* #ifndef APP-NVUE */
|
||||
display: block;
|
||||
/* #endif */
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@@ -500,9 +518,7 @@ export default {
|
||||
|
||||
._ol,
|
||||
._ul {
|
||||
/* #ifndef APP-NVUE */
|
||||
display: block;
|
||||
/* #endif */
|
||||
padding-left: 40px;
|
||||
margin: 1em 0;
|
||||
}
|
||||
@@ -581,4 +597,4 @@ export default {
|
||||
height: 225px;
|
||||
}
|
||||
/* #endif */
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
/*
|
||||
* @Author : LQ
|
||||
* @Author : jry
|
||||
* @Description :
|
||||
* @version : 1.0
|
||||
* @version : 3.0
|
||||
* @Date : 2021-08-20 16:44:21
|
||||
* @LastAuthor : LQ
|
||||
* @lastTime : 2021-08-20 17:17:33
|
||||
* @FilePath : /u-view2.0/uview-ui/libs/config/props/parse.js
|
||||
* @LastAuthor : jry
|
||||
* @lastTime : 2025-05-17 17:17:33
|
||||
* @FilePath : /uview-plus/libs/config/props/parse.js
|
||||
*/
|
||||
export default {
|
||||
// parse
|
||||
|
||||
@@ -71,19 +71,23 @@ const config = {
|
||||
viewbox: 'viewBox',
|
||||
attributename: 'attributeName',
|
||||
repeatcount: 'repeatCount',
|
||||
repeatdur: 'repeatDur'
|
||||
repeatdur: 'repeatDur',
|
||||
foreignobject: 'foreignObject'
|
||||
}
|
||||
}
|
||||
const tagSelector={}
|
||||
// #ifdef APP || H5 || MP-WEIXIN
|
||||
const { windowWidth } = uni.getWindowInfo()
|
||||
const { system } = uni.getDeviceInfo()
|
||||
const tagSelector = {}
|
||||
let windowWidth, system
|
||||
// #ifdef MP-WEIXIN
|
||||
if (uni.canIUse('getWindowInfo')) {
|
||||
windowWidth = uni.getWindowInfo().windowWidth
|
||||
system = uni.getDeviceInfo().system
|
||||
} else {
|
||||
// #endif
|
||||
// #ifndef APP || H5 || MP-WEIXIN
|
||||
const {
|
||||
windowWidth,
|
||||
system
|
||||
} = uni.getSystemInfoSync()
|
||||
const systemInfo = uni.getSystemInfoSync()
|
||||
windowWidth = systemInfo.windowWidth
|
||||
// #ifdef MP-WEIXIN
|
||||
system = systemInfo.system
|
||||
}
|
||||
// #endif
|
||||
const blankChar = makeMap(' ,\r,\n,\t,\f')
|
||||
let idIndex = 0
|
||||
@@ -325,6 +329,7 @@ Parser.prototype.onTagName = function (name) {
|
||||
this.tagName = this.xml ? name : name.toLowerCase()
|
||||
if (this.tagName === 'svg') {
|
||||
this.xml = (this.xml || 0) + 1 // svg 标签内大小写敏感
|
||||
config.ignoreTags.style = undefined // svg 标签内 style 可用
|
||||
}
|
||||
}
|
||||
|
||||
@@ -335,12 +340,18 @@ Parser.prototype.onTagName = function (name) {
|
||||
*/
|
||||
Parser.prototype.onAttrName = function (name) {
|
||||
name = this.xml ? name : name.toLowerCase()
|
||||
// #ifdef (VUE3 && (H5 || APP-PLUS)) || APP-PLUS-NVUE
|
||||
if (name.includes('?') || name.includes(';')) {
|
||||
this.attrName = undefined
|
||||
return
|
||||
}
|
||||
// #endif
|
||||
if (name.substr(0, 5) === 'data-') {
|
||||
if (name === 'data-src' && !this.attrs.src) {
|
||||
// data-src 自动转为 src
|
||||
this.attrName = 'src'
|
||||
} else if (this.tagName === 'img' || this.tagName === 'a') {
|
||||
// a 和 img 标签保留 data- 的属性,可以在 imgTap 和 linkTap 事件中使用
|
||||
// a 和 img 标签保留 data- 的属性,可以在 imgtap 和 linktap 事件中使用
|
||||
this.attrName = name
|
||||
} else {
|
||||
// 剩余的移除以减小大小
|
||||
@@ -461,7 +472,7 @@ Parser.prototype.onOpenTag = function (selfClose) {
|
||||
node.webp = 'T'
|
||||
}
|
||||
// data url 图片如果没有设置 original-src 默认为不可预览的小图片
|
||||
if (attrs.src.includes('data:') && !attrs['original-src']) {
|
||||
if (attrs.src.includes('data:') && this.options.previewImg !== 'all' && !attrs['original-src']) {
|
||||
attrs.ignore = 'T'
|
||||
}
|
||||
if (!attrs.ignore || node.webp || attrs.src.includes('cloud://')) {
|
||||
@@ -555,6 +566,13 @@ Parser.prototype.onOpenTag = function (selfClose) {
|
||||
if (!isNaN(parseInt(styleObj.height)) && (!styleObj.height.includes('%') || (parent && (parent.attrs.style || '').includes('height')))) {
|
||||
node.h = 'T'
|
||||
}
|
||||
if (node.w && node.h && styleObj['object-fit']) {
|
||||
if (styleObj['object-fit'] === 'contain') {
|
||||
node.m = 'aspectFit'
|
||||
} else if (styleObj['object-fit'] === 'cover') {
|
||||
node.m = 'aspectFill'
|
||||
}
|
||||
}
|
||||
} else if (node.name === 'svg') {
|
||||
siblings.push(node)
|
||||
this.stack.push(node)
|
||||
@@ -681,11 +699,19 @@ Parser.prototype.popNode = function () {
|
||||
return
|
||||
}
|
||||
const name = config.svgDict[node.name] || node.name
|
||||
if (name === 'foreignObject') {
|
||||
for (const child of (node.children || [])) {
|
||||
if (child.attrs && !child.attrs.xmlns) {
|
||||
child.attrs.xmlns = 'http://www.w3.org/1999/xhtml'
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
src += '<' + name
|
||||
for (const item in node.attrs) {
|
||||
const val = node.attrs[item]
|
||||
if (val) {
|
||||
src += ` ${config.svgDict[item] || item}="${val}"`
|
||||
src += ` ${config.svgDict[item] || item}="${val.replace(/"/g, '')}"`
|
||||
}
|
||||
}
|
||||
if (!node.children) {
|
||||
@@ -707,6 +733,7 @@ Parser.prototype.popNode = function () {
|
||||
node.children = undefined
|
||||
// #endif
|
||||
this.xml = false
|
||||
config.ignoreTags.style = true
|
||||
return
|
||||
}
|
||||
|
||||
@@ -843,6 +870,10 @@ Parser.prototype.popNode = function () {
|
||||
if (node.flag && node.c) {
|
||||
// 有 colspan 或 rowspan 且含有链接的表格通过 grid 布局实现
|
||||
styleObj.display = 'grid'
|
||||
if (styleObj['border-collapse'] === 'collapse') {
|
||||
styleObj['border-collapse'] = undefined
|
||||
spacing = 0
|
||||
}
|
||||
if (spacing) {
|
||||
styleObj['grid-gap'] = spacing + 'px'
|
||||
styleObj.padding = spacing + 'px'
|
||||
@@ -860,6 +891,23 @@ Parser.prototype.popNode = function () {
|
||||
for (let i = 0; i < nodes.length; i++) {
|
||||
if (nodes[i].name === 'tr') {
|
||||
trList.push(nodes[i])
|
||||
} else if (nodes[i].name === 'colgroup') {
|
||||
let colI = 1
|
||||
for (const col of (nodes[i].children || [])) {
|
||||
if (col.name === 'col') {
|
||||
const style = col.attrs.style || ''
|
||||
const start = style.indexOf('width') ? style.indexOf(';width') : 0
|
||||
// 提取出宽度
|
||||
if (start !== -1) {
|
||||
let end = style.indexOf(';', start + 6)
|
||||
if (end === -1) {
|
||||
end = style.length
|
||||
}
|
||||
width[colI] = style.substring(start ? start + 7 : 6, end)
|
||||
}
|
||||
colI += 1
|
||||
}
|
||||
}
|
||||
} else {
|
||||
traversal(nodes[i].children || [])
|
||||
}
|
||||
@@ -986,11 +1034,26 @@ Parser.prototype.popNode = function () {
|
||||
node.children = [table]
|
||||
attrs = table.attrs
|
||||
}
|
||||
} else if ((node.name === 'tbody' || node.name === 'tr') && node.flag && node.c) {
|
||||
node.flag = undefined;
|
||||
(function traversal (nodes) {
|
||||
for (let i = 0; i < nodes.length; i++) {
|
||||
if (nodes[i].name === 'td') {
|
||||
// 颜色样式设置给单元格避免丢失
|
||||
for (const style of ['color', 'background', 'background-color']) {
|
||||
if (styleObj[style]) {
|
||||
nodes[i].attrs.style = style + ':' + styleObj[style] + ';' + (nodes[i].attrs.style || '')
|
||||
}
|
||||
}
|
||||
} else {
|
||||
traversal(nodes[i].children || [])
|
||||
}
|
||||
}
|
||||
})(children)
|
||||
} else if ((node.name === 'td' || node.name === 'th') && (attrs.colspan || attrs.rowspan)) {
|
||||
for (let i = this.stack.length; i--;) {
|
||||
if (this.stack[i].name === 'table') {
|
||||
if (this.stack[i].name === 'table' || this.stack[i].name === 'tbody' || this.stack[i].name === 'tr') {
|
||||
this.stack[i].flag = 1 // 指示含有合并单元格
|
||||
break
|
||||
}
|
||||
}
|
||||
} else if (node.name === 'ruby') {
|
||||
|
||||
@@ -42,7 +42,13 @@ export const props = defineMixin({
|
||||
type: Boolean,
|
||||
default: () => defProps.parse.showImgMenu
|
||||
},
|
||||
tagStyle: Object,
|
||||
useAnchor: null
|
||||
}
|
||||
tagStyle: {
|
||||
type: Object,
|
||||
default: () => {}
|
||||
},
|
||||
useAnchor: {
|
||||
type: Boolean,
|
||||
default: null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
<script>
|
||||
/**
|
||||
* mp-html v2.4.1
|
||||
* mp-html v2.5.1
|
||||
* @description 富文本组件
|
||||
* @tutorial https://github.com/jin-yufeng/mp-html
|
||||
* @property {String} container-style 容器的样式
|
||||
@@ -32,8 +32,8 @@
|
||||
* @property {Boolean | Number} use-anchor 是否使用锚点链接
|
||||
* @event {Function} load dom 结构加载完毕时触发
|
||||
* @event {Function} ready 所有图片加载完毕时触发
|
||||
* @event {Function} imgTap 图片被点击时触发
|
||||
* @event {Function} linkTap 链接被点击时触发
|
||||
* @event {Function} imgtap 图片被点击时触发
|
||||
* @event {Function} linktap 链接被点击时触发
|
||||
* @event {Function} play 音视频播放时触发
|
||||
* @event {Function} error 媒体加载出错时触发
|
||||
*/
|
||||
@@ -46,7 +46,7 @@ const plugins = []
|
||||
const dom = weex.requireModule('dom')
|
||||
// #endif
|
||||
export default {
|
||||
name: 'u-parse',
|
||||
name: 'up-parse',
|
||||
data() {
|
||||
return {
|
||||
nodes: [],
|
||||
@@ -103,7 +103,7 @@ export default {
|
||||
useAnchor: [Boolean, Number]
|
||||
},
|
||||
// #ifdef VUE3
|
||||
emits: ['load', 'ready', 'imgTap', 'linkTap', 'play', 'error'],
|
||||
emits: ['load', 'ready', 'imgtap', 'linktap', 'play', 'error'],
|
||||
// #endif
|
||||
// #ifndef APP-PLUS-NVUE
|
||||
components: {
|
||||
@@ -410,7 +410,7 @@ export default {
|
||||
break
|
||||
// 图片点击
|
||||
case 'onImgTap':
|
||||
this.$emit('imgTap', message.attrs)
|
||||
this.$emit('imgtap', message.attrs)
|
||||
if (this.previewImg) {
|
||||
uni.previewImage({
|
||||
current: parseInt(message.attrs.i),
|
||||
@@ -421,7 +421,7 @@ export default {
|
||||
// 链接点击
|
||||
case 'onLinkTap': {
|
||||
const href = message.attrs.href
|
||||
this.$emit('linkTap', message.attrs)
|
||||
this.$emit('linktap', message.attrs)
|
||||
if (href) {
|
||||
// 锚点跳转
|
||||
if (href[0] === '#') {
|
||||
@@ -433,7 +433,12 @@ export default {
|
||||
} else if (href.includes('://')) {
|
||||
// 打开外链
|
||||
if (this.copyLink) {
|
||||
plus.runtime.openWeb(href)
|
||||
// #ifdef APP-PLUS
|
||||
plus.runtime.openWeb(href)
|
||||
// #endif
|
||||
// #ifdef APP-HARMONY
|
||||
plus.runtime.openURL(href)
|
||||
// #endif
|
||||
}
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
|
||||
Reference in New Issue
Block a user