// components/ellipsis-text/index.js const $$ = require('../../utils/util'); Component({ /** * 组件的属性列表 */ properties: { content: { type: String, value: '', }, fontsize: { type: String, value: '28', }, line: { type: String, value: 1, }, suffixVisible: Boolean, // 是否有省略后缀操作 }, /** * 组件的初始数据 */ data: { lineHeight: null, }, lifetimes: { ready: function () { if (!this.data.suffixVisible) { this.setData({ lineHeight: this.data.fontsize === '24' ? '40rpx' : '' }); return; } let that = this; wx.getSystemInfoAsync({ success: (res1) => { const query = this.createSelectorQuery(); query.select('#ellipsis-text').boundingClientRect(); query.exec(function (res) { let clientWidth = res[0].width; let ratio = 750 / (res1.windowWidth || 375); let allNum = parseInt(parseInt(clientWidth) / (parseInt(that.data.fontsize) / ratio)); if (that.data.content.length > allNum * parseInt(that.data.line)) { that.setData({ lineHeight: that.data.fontsize === '24' ? '40rpx' : '' }); } }); }, }); }, }, /** * 组件的方法列表 */ methods: { // 点击查看隐藏内容 _handleShow() { if (this.data.suffixVisible) { $$.showModal({ title: '', content: this.data.content, showCancel: false }); } }, }, });