zydx-plus 1.11.44 → 1.12.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -37,9 +37,9 @@ export default defineComponent({
|
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
},
|
|
40
|
-
onInputChange({ event, accept =
|
|
40
|
+
onInputChange({ event, accept = [], file_size = 2, cb, disabled }) {
|
|
41
|
+
if (disabled) return
|
|
41
42
|
let file = event.target.files[0]
|
|
42
|
-
let accept_list = accept.split(',')
|
|
43
43
|
if (file.size > file_size * 1024 * 1024) {
|
|
44
44
|
this.$messages({
|
|
45
45
|
title: '提示',
|
|
@@ -48,10 +48,10 @@ export default defineComponent({
|
|
|
48
48
|
})
|
|
49
49
|
return
|
|
50
50
|
}
|
|
51
|
-
if (!
|
|
51
|
+
if (accept.length && !accept.includes(file.type)) {
|
|
52
52
|
this.$messages({
|
|
53
53
|
title: '提示',
|
|
54
|
-
promptContent: `请选择${
|
|
54
|
+
promptContent: `请选择${accept.join('、')}格式的文件`,
|
|
55
55
|
cancelShow: false,
|
|
56
56
|
})
|
|
57
57
|
return
|
|
@@ -83,9 +83,11 @@ export default defineComponent({
|
|
|
83
83
|
{this.active_state[idx] ? active_name : name}
|
|
84
84
|
</button>
|
|
85
85
|
case 'file':
|
|
86
|
-
return <label class=
|
|
86
|
+
return <label class={disabled ? 'z-button disabled' : 'z-button'} >
|
|
87
87
|
<span>{name}</span>
|
|
88
|
-
|
|
88
|
+
{
|
|
89
|
+
disabled ? null : <input type="file" class="hidden" onClick={(e) => e.target.value = null} onChange={(e) => onInputChange({ event: e, accept, file_size, cb: onClick, disabled })}></input>
|
|
90
|
+
}
|
|
89
91
|
</label>
|
|
90
92
|
case 'search':
|
|
91
93
|
return is_show_search
|
|
@@ -157,6 +159,12 @@ export default defineComponent({
|
|
|
157
159
|
box-sizing: border-box;
|
|
158
160
|
}
|
|
159
161
|
|
|
162
|
+
.z-button.disabled {
|
|
163
|
+
background-color: #ffffff;
|
|
164
|
+
color: #717171;
|
|
165
|
+
border: #717171 1px solid;
|
|
166
|
+
}
|
|
167
|
+
|
|
160
168
|
.search_container {
|
|
161
169
|
width: 180px;
|
|
162
170
|
height: 20px;
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="page">
|
|
3
|
+
<div class="page-content" v-for="(item,index) in pages" :key="index" v-html="item"></div>
|
|
4
|
+
</div>
|
|
5
|
+
</template>
|
|
6
|
+
|
|
7
|
+
<script>
|
|
8
|
+
export default {
|
|
9
|
+
name: "zydx-word",
|
|
10
|
+
data() {
|
|
11
|
+
return {
|
|
12
|
+
perPage: 38,
|
|
13
|
+
pages: [],
|
|
14
|
+
imgList: [], // 图片列表
|
|
15
|
+
strNum: 76, // 每行字符数
|
|
16
|
+
pagesText: '', // 每页内容
|
|
17
|
+
start: 0,
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
props: {
|
|
21
|
+
content: {
|
|
22
|
+
type: String,
|
|
23
|
+
default: ''
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
mounted() {
|
|
27
|
+
this.splitHtml(this.content, this.perPage)
|
|
28
|
+
},
|
|
29
|
+
methods: {
|
|
30
|
+
getImgHeight(imgs) {
|
|
31
|
+
// 获取img标签里的图片地址
|
|
32
|
+
imgs = imgs.join('')
|
|
33
|
+
imgs = imgs.match(/<img.*?>/g)
|
|
34
|
+
if (imgs === null) return
|
|
35
|
+
for (let i = 0; i < imgs.length; i++) {
|
|
36
|
+
// 获取图片地址
|
|
37
|
+
imgs[i] = imgs[i].match(/src=".*?"/g)[0].replace(/src="|"/g, '')
|
|
38
|
+
const img = new Image()
|
|
39
|
+
img.src = imgs[i]
|
|
40
|
+
img.onload = () => {
|
|
41
|
+
let height = img.height
|
|
42
|
+
let width = img.width
|
|
43
|
+
// 计算图片比例
|
|
44
|
+
const scale = height / width
|
|
45
|
+
// 计算图片高度整数
|
|
46
|
+
height = Math.floor(693 * scale)
|
|
47
|
+
this.imgList.push({
|
|
48
|
+
src: imgs[i],
|
|
49
|
+
height: height,
|
|
50
|
+
width: width,
|
|
51
|
+
index: i
|
|
52
|
+
})
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
resetData() {
|
|
57
|
+
this.start = 0
|
|
58
|
+
this.pages.push(this.pagesText)
|
|
59
|
+
this.pagesText = ''
|
|
60
|
+
},
|
|
61
|
+
splitHtml(html, perPage) {
|
|
62
|
+
const arr = html.split('</p>')
|
|
63
|
+
this.getImgHeight(arr)
|
|
64
|
+
setTimeout(() => {
|
|
65
|
+
// 重新排序
|
|
66
|
+
this.imgList.sort((a, b) => {
|
|
67
|
+
return a.index - b.index
|
|
68
|
+
})
|
|
69
|
+
let imgIndex = 0
|
|
70
|
+
// 筛选出标签里的内容
|
|
71
|
+
for (let i = 0; i < arr.length; i++) {
|
|
72
|
+
// 判断是否是最后一个
|
|
73
|
+
if (arr.length - 1 === i) {
|
|
74
|
+
this.pagesText += `${arr[i]}`
|
|
75
|
+
this.resetData()
|
|
76
|
+
break
|
|
77
|
+
}
|
|
78
|
+
if (this.start >= perPage) this.resetData()
|
|
79
|
+
// 判断是否是img标签
|
|
80
|
+
if (arr[i].indexOf('<img') > -1) {
|
|
81
|
+
const h = this.imgList[imgIndex].height
|
|
82
|
+
const w = this.imgList[imgIndex].width
|
|
83
|
+
const src = this.imgList[imgIndex].src
|
|
84
|
+
const hNum = Math.ceil(h / 27)
|
|
85
|
+
if ((perPage - this.start) < hNum) this.resetData()
|
|
86
|
+
this.start += hNum
|
|
87
|
+
this.pagesText += `<p style="text-align: center;"><img style="width: ${(w < 693) ? w : 693}px;height: ${(h > 1020) ? 1020 : h}px;vertical-align: middle;padding: 14px 0" src="${src}" alt="" /></p>`
|
|
88
|
+
imgIndex += 1
|
|
89
|
+
} else {
|
|
90
|
+
// 判断标签是否是h1-h6
|
|
91
|
+
if (arr[i].indexOf('<h') > -1) {
|
|
92
|
+
arr[i] = arr[i].replace(/<h[1-6]>/g, '<p style="font-size: 18px;font-weight: bold;">')
|
|
93
|
+
arr[i] = arr[i].replace(/<\/h[1-6]>/g, '</p>')
|
|
94
|
+
}
|
|
95
|
+
const text = arr[i].replace(/<[^>]+>/g, '')
|
|
96
|
+
const lenNum = Math.ceil(this.thatLenText(text,0).len / this.strNum)
|
|
97
|
+
if ((perPage - this.start) < lenNum) {
|
|
98
|
+
const { st, end, surplus } = this.thatLenText(text,(perPage - this.start),lenNum)
|
|
99
|
+
this.pagesText += `<p>${st}</p>`
|
|
100
|
+
this.resetData()
|
|
101
|
+
this.start = surplus
|
|
102
|
+
this.pagesText = `<p>${end}</p>`
|
|
103
|
+
}else {
|
|
104
|
+
this.start += (lenNum <= 0) ? 1 : lenNum
|
|
105
|
+
this.pagesText += `${arr[i]}`
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}, 200)
|
|
110
|
+
},
|
|
111
|
+
// 计算每行字符数
|
|
112
|
+
thatLenText(data,num,lenNum) {
|
|
113
|
+
let len = 0
|
|
114
|
+
let st = ''
|
|
115
|
+
let end = ''
|
|
116
|
+
for(let i= 0; i < data.length; i++) {
|
|
117
|
+
if(data[i].replace(/[^\u4e00-\u9fa5]/g, '')) {
|
|
118
|
+
len += 2
|
|
119
|
+
}else if(data[i].match(/[\u3002|\uff1f|\uff01|\uff0c|\u3001|\uff1b|\uff1a|\u201c|\u201d|\u2018|\u2019|\uff08|\uff09|\u300a|\u300b|\u3008|\u3009|\u3010|\u3011|\u300e|\u300f|\u2014|\u2026|\u2013]/g)) {
|
|
120
|
+
len += 2
|
|
121
|
+
}else if(data[i].match(/[a-zA-Z]/g)) {
|
|
122
|
+
len += 1
|
|
123
|
+
}else {
|
|
124
|
+
len += 1
|
|
125
|
+
}
|
|
126
|
+
if(len <= num*this.strNum) {
|
|
127
|
+
st += data[i]
|
|
128
|
+
}else {
|
|
129
|
+
end += data[i]
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return {st, end, len, row: num-1, surplus: lenNum - num}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
</script>
|
|
137
|
+
|
|
138
|
+
<style scoped>
|
|
139
|
+
.page {
|
|
140
|
+
text-align: center;
|
|
141
|
+
width: 100%;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.page-content {
|
|
145
|
+
width: 793px;
|
|
146
|
+
height: 1122px;
|
|
147
|
+
background-color: #fff;
|
|
148
|
+
padding: 50px;
|
|
149
|
+
display: inline-block;
|
|
150
|
+
box-sizing: border-box;
|
|
151
|
+
white-space: pre-wrap;
|
|
152
|
+
text-align: left;
|
|
153
|
+
box-shadow: 0 0 5px rgba(0, 0, 0, .5);
|
|
154
|
+
margin-bottom: 30px;
|
|
155
|
+
font-size: 18px;
|
|
156
|
+
line-height: 1.5;
|
|
157
|
+
page-break-after: always;
|
|
158
|
+
position: relative;
|
|
159
|
+
}
|
|
160
|
+
</style>
|
package/src/index.js
CHANGED
|
@@ -14,6 +14,7 @@ import treeList from './components/treeList/index';
|
|
|
14
14
|
import flip from './components/flip/index';
|
|
15
15
|
import editor from './components/editor/index';
|
|
16
16
|
import tab from './components/tab/index';
|
|
17
|
+
import word from './components/word/index';
|
|
17
18
|
|
|
18
19
|
const components = [
|
|
19
20
|
Calendar,
|
|
@@ -29,7 +30,8 @@ const components = [
|
|
|
29
30
|
treeList,
|
|
30
31
|
flip,
|
|
31
32
|
editor,
|
|
32
|
-
tab
|
|
33
|
+
tab,
|
|
34
|
+
word
|
|
33
35
|
];
|
|
34
36
|
|
|
35
37
|
function install(app) {
|
|
@@ -41,7 +43,7 @@ function install(app) {
|
|
|
41
43
|
}
|
|
42
44
|
|
|
43
45
|
export default {
|
|
44
|
-
version: '1.
|
|
46
|
+
version: '1.12.45',
|
|
45
47
|
install,
|
|
46
48
|
Calendar,
|
|
47
49
|
Message,
|
|
@@ -58,6 +60,7 @@ export default {
|
|
|
58
60
|
treeList,
|
|
59
61
|
flip,
|
|
60
62
|
editor,
|
|
61
|
-
tab
|
|
63
|
+
tab,
|
|
64
|
+
word
|
|
62
65
|
};
|
|
63
66
|
|