@jx3box/jx3box-editor 1.0.7 → 1.1.1
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/assets/css/article.less +32 -25
- package/assets/css/article_markdown.less +14 -10
- package/assets/css/markdown/_.less +2 -0
- package/assets/css/markdown/macro.less +45 -0
- package/assets/css/markdown/talent.less +42 -0
- package/assets/css/markdown/video.less +25 -0
- package/assets/css/markdown.less +67 -24
- package/assets/css/module/buff.less +1 -1
- package/assets/css/module/item.less +0 -1
- package/assets/css/module/item_simple.less +43 -41
- package/assets/css/module/macro.less +71 -38
- package/assets/css/module/npc.less +224 -0
- package/assets/css/module/skill.less +1 -1
- package/assets/css/module/talent.less +424 -0
- package/assets/css/resource.less +4 -0
- package/assets/css/{module → tinymce}/_.less +1 -1
- package/assets/css/{module → tinymce}/a.less +1 -1
- package/assets/css/{module → tinymce}/code.less +1 -1
- package/assets/css/{module → tinymce}/fold.less +1 -1
- package/assets/css/{module → tinymce}/h.less +1 -1
- package/assets/css/{module → tinymce}/hr.less +1 -1
- package/assets/css/{module → tinymce}/img.less +1 -1
- package/assets/css/{module → tinymce}/imgpreview.less +0 -0
- package/assets/css/{module → tinymce}/latex.less +1 -1
- package/assets/css/{module → tinymce}/list.less +1 -1
- package/assets/css/tinymce/macro.less +40 -0
- package/assets/css/{module → tinymce}/nextpage.less +5 -0
- package/assets/css/{module → tinymce}/p.less +1 -1
- package/assets/css/{module → tinymce}/plugin.less +0 -0
- package/assets/css/{module → tinymce}/qixue.less +2 -1
- package/assets/css/{module → tinymce}/quote.less +1 -1
- package/assets/css/{module → tinymce}/table.less +2 -2
- package/assets/css/{module → tinymce}/video.less +2 -2
- package/assets/data/markdown_whitelist.json +6 -2
- package/assets/img/npc/attack.svg +69 -0
- package/assets/img/npc/buff.svg +20 -0
- package/assets/img/npc/energy.svg +1 -0
- package/assets/img/npc/miss.svg +1 -0
- package/assets/img/npc/npc.svg +1 -0
- package/assets/img/npc/radar.svg +45 -0
- package/assets/img/npc/shield.svg +1 -0
- package/assets/img/npc/sight.svg +1 -0
- package/assets/img/npc/skull.svg +15 -0
- package/assets/img/npc/target.svg +55 -0
- package/assets/js/macro.js +0 -1
- package/assets/js/qixue.js +0 -1
- package/package.json +1 -1
- package/service/database.js +12 -1
- package/src/Article.vue +2 -2
- package/src/ArticleMarkdown.vue +10 -2
- package/src/Markdown.vue +54 -11
- package/src/Npc.vue +214 -0
- package/src/Resource.vue +35 -0
- package/src/components/markdown/katex.vue +58 -0
- package/src/components/markdown/macro.vue +3 -5
- package/src/components/markdown/pz.vue +4 -6
- package/src/components/markdown/talent.vue +49 -0
- package/src/components/markdown/talent2.vue +48 -0
- package/src/components/markdown/video.vue +49 -0
- package/assets/css/markdown/common.less +0 -13
package/src/Npc.vue
ADDED
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="w-npc" v-if="data">
|
|
3
|
+
<div class="w-npc-wrapper">
|
|
4
|
+
<div class="w-npc-content">
|
|
5
|
+
<div class="u-npc">
|
|
6
|
+
<div class="u-title">
|
|
7
|
+
<span class="u-name">{{ data.Name }}</span>
|
|
8
|
+
<span class="u-name-add">
|
|
9
|
+
<span v-if="data.Title || data.Level"><</span>
|
|
10
|
+
<span class="u-nick" v-if="data.Title">
|
|
11
|
+
{{ data.Title }}
|
|
12
|
+
</span>
|
|
13
|
+
<span v-if="data.Title && data.Level">·</span>
|
|
14
|
+
<b class="u-level" v-if="data.Level">{{ data.Level }}</b>
|
|
15
|
+
<span v-if="data.Title || data.Level">></span>
|
|
16
|
+
</span>
|
|
17
|
+
<div class="u-base">
|
|
18
|
+
<span class="u-atmap" v-if="data.MapName">
|
|
19
|
+
{{ data.MapName }}
|
|
20
|
+
</span>
|
|
21
|
+
<span class="u-intensity" v-if="data.Intensity">
|
|
22
|
+
强度
|
|
23
|
+
{{ data.Intensity }}
|
|
24
|
+
</span>
|
|
25
|
+
</div>
|
|
26
|
+
</div>
|
|
27
|
+
<div class="u-primary">
|
|
28
|
+
<div class="u-life">
|
|
29
|
+
<img class="u-descicon u-descicon-life" svg-inline src="../assets/img/npc/energy.svg" />
|
|
30
|
+
<b>血量</b>
|
|
31
|
+
<em>MaxLife</em>
|
|
32
|
+
<strong>{{ data.MaxLife }}</strong>
|
|
33
|
+
</div>
|
|
34
|
+
<div class="u-mana">
|
|
35
|
+
<img class="u-descicon u-descicon-mana" svg-inline src="../assets/img/npc/energy.svg" />
|
|
36
|
+
<b>内力</b>
|
|
37
|
+
<em>MaxMana</em>
|
|
38
|
+
<strong>{{ data.MaxMana }}</strong>
|
|
39
|
+
</div>
|
|
40
|
+
<div class="u-touch" v-if="data.TouchRange">
|
|
41
|
+
<img class="u-descicon u-descicon-touch" svg-inline src="../assets/img/npc/radar.svg" />
|
|
42
|
+
<b>范围</b>
|
|
43
|
+
<em>TouchRange</em>
|
|
44
|
+
<strong>{{ data.TouchRange }}</strong>
|
|
45
|
+
</div>
|
|
46
|
+
<div class="u-sense" v-if="data.Sense">
|
|
47
|
+
<img class="u-descicon u-descicon-sense" svg-inline src="../assets/img/npc/sight.svg" />
|
|
48
|
+
<b>识破</b>
|
|
49
|
+
<em>Sense</em>
|
|
50
|
+
<strong>{{ data.Sense }}</strong>
|
|
51
|
+
</div>
|
|
52
|
+
<div class="u-dodge" v-if="data.Dodge">
|
|
53
|
+
<img class="u-descicon u-descicon-dodge" svg-inline src="../assets/img/npc/miss.svg" />
|
|
54
|
+
<b>闪避</b>
|
|
55
|
+
<em>Dodge</em>
|
|
56
|
+
<strong>{{ data.Dodge }}</strong>
|
|
57
|
+
</div>
|
|
58
|
+
<div class="u-dodge" v-if="data.Parry">
|
|
59
|
+
<img class="u-descicon u-descicon-dodge" svg-inline src="../assets/img/npc/miss.svg" />
|
|
60
|
+
<b>招架</b>
|
|
61
|
+
<em>Parry</em>
|
|
62
|
+
<strong>{{ data.ParryValue }}</strong>
|
|
63
|
+
</div>
|
|
64
|
+
<div class="u-shield">
|
|
65
|
+
<img class="u-descicon u-descicon-shield" svg-inline src="../assets/img/npc/shield.svg" />
|
|
66
|
+
<b>防御</b>
|
|
67
|
+
<em>Shield</em>
|
|
68
|
+
<span class="u-sitem">
|
|
69
|
+
外功防御
|
|
70
|
+
<em>PhysicsShieldBase</em>
|
|
71
|
+
<span class="u-value">{{ ~~data.PhysicsShieldBase }}</span>
|
|
72
|
+
</span>
|
|
73
|
+
<span class="u-sitem">
|
|
74
|
+
混元防御
|
|
75
|
+
<em>NeutralMagicDefence</em>
|
|
76
|
+
<span class="u-value">{{ ~~data.NeutralMagicDefence }}</span>
|
|
77
|
+
</span>
|
|
78
|
+
<span class="u-sitem">
|
|
79
|
+
阳性防御
|
|
80
|
+
<em>SolarMagicDefence</em>
|
|
81
|
+
<span class="u-value">{{ ~~data.SolarMagicDefence }}</span>
|
|
82
|
+
</span>
|
|
83
|
+
<span class="u-sitem">
|
|
84
|
+
阴性防御
|
|
85
|
+
<em>LunarMagicDefence</em>
|
|
86
|
+
<span class="u-value">{{ ~~data.LunarMagicDefence }}</span>
|
|
87
|
+
</span>
|
|
88
|
+
<span class="u-sitem">
|
|
89
|
+
毒性防御
|
|
90
|
+
<em>PoisonMagicDefence</em>
|
|
91
|
+
<span class="u-value">{{ ~~data.PoisonMagicDefence }}</span>
|
|
92
|
+
</span>
|
|
93
|
+
</div>
|
|
94
|
+
<div class="u-critical">
|
|
95
|
+
<img class="u-descicon u-descicon-attack" svg-inline src="../assets/img/npc/attack.svg" />
|
|
96
|
+
<b>会心</b>
|
|
97
|
+
<em>Critical</em>
|
|
98
|
+
<span class="u-sitem">
|
|
99
|
+
外功会心
|
|
100
|
+
<em>PhysicsCriticalStrike</em>
|
|
101
|
+
<span class="u-value">{{ ~~data.PhysicsCriticalStrike }}</span>
|
|
102
|
+
</span>
|
|
103
|
+
<span class="u-sitem">
|
|
104
|
+
混元会心
|
|
105
|
+
<em>NeutralCriticalStrike</em>
|
|
106
|
+
<span class="u-value">{{ ~~data.NeutralCriticalStrike }}</span>
|
|
107
|
+
</span>
|
|
108
|
+
<span class="u-sitem">
|
|
109
|
+
阳性会心
|
|
110
|
+
<em>SolarCriticalStrike</em>
|
|
111
|
+
<span class="u-value">{{ ~~data.SolarCriticalStrike }}</span>
|
|
112
|
+
</span>
|
|
113
|
+
<span class="u-sitem">
|
|
114
|
+
阴性会心
|
|
115
|
+
<em>LunarCriticalStrike</em>
|
|
116
|
+
<span class="u-value">{{ ~~data.LunarCriticalStrike }}</span>
|
|
117
|
+
</span>
|
|
118
|
+
<span class="u-sitem">
|
|
119
|
+
毒性会心
|
|
120
|
+
<em>PoisonCriticalStrike</em>
|
|
121
|
+
<span class="u-value">{{ ~~data.PoisonCriticalStrike }}</span>
|
|
122
|
+
</span>
|
|
123
|
+
</div>
|
|
124
|
+
<div class="u-attack">
|
|
125
|
+
<img class="u-descicon u-descicon-attack" svg-inline src="../assets/img/npc/target.svg" />
|
|
126
|
+
<b>命中</b>
|
|
127
|
+
<em>Attack</em>
|
|
128
|
+
<span class="u-sitem">
|
|
129
|
+
外功命中
|
|
130
|
+
<em>PhysicsAttackHit</em>
|
|
131
|
+
<span class="u-value">{{ ~~data.PhysicsAttackHit }}</span>
|
|
132
|
+
</span>
|
|
133
|
+
<span class="u-sitem">
|
|
134
|
+
混元命中
|
|
135
|
+
<em>NeutralMagicHit</em>
|
|
136
|
+
<span class="u-value">{{ ~~data.NeutralMagicHit }}</span>
|
|
137
|
+
</span>
|
|
138
|
+
<span class="u-sitem">
|
|
139
|
+
阳性命中
|
|
140
|
+
<em>SolarMagicHit</em>
|
|
141
|
+
<span class="u-value">{{ ~~data.SolarMagicHit }}</span>
|
|
142
|
+
</span>
|
|
143
|
+
<span class="u-sitem">
|
|
144
|
+
阴性命中
|
|
145
|
+
<em>LunarMagicHit</em>
|
|
146
|
+
<span class="u-value">{{ ~~data.LunarMagicHit }}</span>
|
|
147
|
+
</span>
|
|
148
|
+
<span class="u-sitem">
|
|
149
|
+
毒性命中
|
|
150
|
+
<em>PoisonMagicHit</em>
|
|
151
|
+
<span class="u-value">{{ ~~data.PoisonMagicHit }}</span>
|
|
152
|
+
</span>
|
|
153
|
+
</div>
|
|
154
|
+
</div>
|
|
155
|
+
<div class="u-id">
|
|
156
|
+
ID : {{id}}
|
|
157
|
+
</div>
|
|
158
|
+
</div>
|
|
159
|
+
</div>
|
|
160
|
+
</div>
|
|
161
|
+
</div>
|
|
162
|
+
</template>
|
|
163
|
+
|
|
164
|
+
<script>
|
|
165
|
+
import { getNpc } from "../service/database.js";
|
|
166
|
+
import { iconLink } from "@jx3box/jx3box-common/js/utils";
|
|
167
|
+
export default {
|
|
168
|
+
name: "Npc",
|
|
169
|
+
props: ["client", "id"],
|
|
170
|
+
data: () => ({
|
|
171
|
+
data: null,
|
|
172
|
+
}),
|
|
173
|
+
computed: {
|
|
174
|
+
params: function() {
|
|
175
|
+
return [this.client, this.id];
|
|
176
|
+
},
|
|
177
|
+
},
|
|
178
|
+
watch: {
|
|
179
|
+
params: {
|
|
180
|
+
immediate: true,
|
|
181
|
+
deep: true,
|
|
182
|
+
handler(val) {
|
|
183
|
+
if (val) {
|
|
184
|
+
let [client, id] = val;
|
|
185
|
+
// 读取本地数据
|
|
186
|
+
const cache = sessionStorage.getItem(`npc-${client}-${id}`);
|
|
187
|
+
if (cache) {
|
|
188
|
+
this.data = JSON.parse(cache);
|
|
189
|
+
// 没有缓存则发起请求获取数据
|
|
190
|
+
} else {
|
|
191
|
+
id &&
|
|
192
|
+
getNpc(...this.params).then((res) => {
|
|
193
|
+
let data = res.data?.list?.[0];
|
|
194
|
+
this.data = data;
|
|
195
|
+
|
|
196
|
+
// 将数据放入 sessionStorage
|
|
197
|
+
sessionStorage.setItem(`npc-${client}-${id}`, JSON.stringify(data));
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
},
|
|
203
|
+
},
|
|
204
|
+
methods: {
|
|
205
|
+
iconLink: function(id) {
|
|
206
|
+
return iconLink(id, this.client);
|
|
207
|
+
},
|
|
208
|
+
},
|
|
209
|
+
};
|
|
210
|
+
</script>
|
|
211
|
+
|
|
212
|
+
<style scoped lang="less">
|
|
213
|
+
@import "../assets/css/module/npc.less";
|
|
214
|
+
</style>
|
package/src/Resource.vue
CHANGED
|
@@ -109,6 +109,35 @@
|
|
|
109
109
|
</ul>
|
|
110
110
|
<el-alert v-if="!item.length && done" title="没有找到相关条目" type="info" show-icon></el-alert>
|
|
111
111
|
</el-tab-pane>
|
|
112
|
+
<el-tab-pane label="Npc" name="npc">
|
|
113
|
+
<span slot="label">
|
|
114
|
+
<img class="u-icon" svg-inline src="../assets/img/npc/skull.svg" />
|
|
115
|
+
<b>Npc</b>
|
|
116
|
+
<em class="u-count">{{ stat.npc }}</em>
|
|
117
|
+
</span>
|
|
118
|
+
<p v-if="npc.length && done" class="m-resource-count">
|
|
119
|
+
<i class="el-icon-s-data"></i> 共找到 <b>{{ npc.length }}</b> 条记录
|
|
120
|
+
</p>
|
|
121
|
+
<ul class="m-resource-list" v-if="npc.length">
|
|
122
|
+
<li v-for="(o, i) in npc" :key="i" class="u-item" :class="{ on: o.isSelected }" @click="selectNpc(o, i)" ref="item">
|
|
123
|
+
<span class="u-id">ID:{{ o.ID }}</span>
|
|
124
|
+
<img class="u-pic" :title="'IconID:' + o.IconID" :src="iconURL(o.IconID)" />
|
|
125
|
+
<span class="u-name">
|
|
126
|
+
{{ o.Name }}
|
|
127
|
+
<em v-if="o.Level">(等级:{{ o.Level }})</em>
|
|
128
|
+
</span>
|
|
129
|
+
<span class="u-content">
|
|
130
|
+
<span class="u-map">地图:{{ o.MapName }}</span>
|
|
131
|
+
<span class="u-life">血量:{{ o.MaxLife }}</span>
|
|
132
|
+
<span class="u-mana">内力:{{ o.MaxMana }}</span>
|
|
133
|
+
</span>
|
|
134
|
+
<span class="u-remark">
|
|
135
|
+
{{ o.Requirement }}
|
|
136
|
+
</span>
|
|
137
|
+
</li>
|
|
138
|
+
</ul>
|
|
139
|
+
<el-alert v-if="!npc.length && done" title="没有找到相关条目" type="info" show-icon></el-alert>
|
|
140
|
+
</el-tab-pane>
|
|
112
141
|
<el-tab-pane label="图标" name="icon">
|
|
113
142
|
<span slot="label">
|
|
114
143
|
<img class="u-icon" svg-inline src="../assets/img/icons.svg" />
|
|
@@ -192,6 +221,7 @@ export default {
|
|
|
192
221
|
buff: [],
|
|
193
222
|
item: [],
|
|
194
223
|
icon: [],
|
|
224
|
+
npc: [],
|
|
195
225
|
|
|
196
226
|
stat: {
|
|
197
227
|
skill: 0,
|
|
@@ -370,6 +400,11 @@ export default {
|
|
|
370
400
|
o.isSelected = true;
|
|
371
401
|
this.html = `<img class="e-jx3-icon" src="${__iconPath}${this.iconDir}/${o.iconID}.png" alt="${o.iconID}"/>`;
|
|
372
402
|
},
|
|
403
|
+
selectNpc: function (o, i){
|
|
404
|
+
this.resetItems()
|
|
405
|
+
o.isSelected = true
|
|
406
|
+
this.html = `<a data-type="npc" class="e-jx3-npc w-jx3-element" data-mode="" data-id="${o.ID}" data-client="${this.client}" target="_blank" href="${this.getLink("npc", this.client, o.ID, '')}">[${o.Name}]</a>`
|
|
407
|
+
},
|
|
373
408
|
resetItems: function() {
|
|
374
409
|
let data = this[this.type];
|
|
375
410
|
data.forEach((item) => {
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="c-editor-markdown-dialog">
|
|
3
|
+
<span class="c-markdown-toolbar-file c-markdown-toolbar-item u-katex" @click="handleClick" title="插入Latex">
|
|
4
|
+
Σ
|
|
5
|
+
</span>
|
|
6
|
+
|
|
7
|
+
<el-dialog :visible.sync="visible" title="插入数学公式" :modal-append-to-body="false">
|
|
8
|
+
<a class="u-help" href="/tool/16295" target="_blank">💙 查看帮助文档</a>
|
|
9
|
+
|
|
10
|
+
<el-input class="u-input u-input-katex" type="textarea" :rows="5" v-model="katex"></el-input>
|
|
11
|
+
|
|
12
|
+
<div slot="footer">
|
|
13
|
+
<el-button @click="cancel">取消</el-button>
|
|
14
|
+
<el-button type="primary" @click="insert">插入</el-button>
|
|
15
|
+
</div>
|
|
16
|
+
</el-dialog>
|
|
17
|
+
</div>
|
|
18
|
+
</template>
|
|
19
|
+
|
|
20
|
+
<script>
|
|
21
|
+
export default {
|
|
22
|
+
name: "markdown_katex",
|
|
23
|
+
data() {
|
|
24
|
+
return {
|
|
25
|
+
visible: false,
|
|
26
|
+
katex: "",
|
|
27
|
+
};
|
|
28
|
+
},
|
|
29
|
+
methods: {
|
|
30
|
+
handleClick() {
|
|
31
|
+
this.visible = true;
|
|
32
|
+
},
|
|
33
|
+
cancel() {
|
|
34
|
+
this.visible = false;
|
|
35
|
+
this.katex = "";
|
|
36
|
+
},
|
|
37
|
+
insert() {
|
|
38
|
+
const content = `<pre class="e-latex-area w-latex">${this.katex}</pre>`;
|
|
39
|
+
|
|
40
|
+
this.$emit("insert", content);
|
|
41
|
+
|
|
42
|
+
this.katex = "";
|
|
43
|
+
|
|
44
|
+
this.visible = false;
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
</script>
|
|
49
|
+
|
|
50
|
+
<style lang="less">
|
|
51
|
+
.c-markdown-toolbar-item.u-katex {
|
|
52
|
+
display: inline-flex;
|
|
53
|
+
justify-content: center;
|
|
54
|
+
align-content: center;
|
|
55
|
+
width: 26px;
|
|
56
|
+
height: 26px;
|
|
57
|
+
}
|
|
58
|
+
</style>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="c-editor-markdown-dialog
|
|
2
|
+
<div class="c-editor-markdown-dialog">
|
|
3
3
|
<span class="c-markdown-toolbar-file c-markdown-toolbar-item" @click="handleClick" title="插入宏">宏</span>
|
|
4
4
|
|
|
5
5
|
<el-dialog :visible.sync="visible" title="插入宏" :modal-append-to-body="false">
|
|
@@ -35,12 +35,10 @@ export default {
|
|
|
35
35
|
|
|
36
36
|
this.$emit('insert', content)
|
|
37
37
|
|
|
38
|
+
this.macro = ''
|
|
39
|
+
|
|
38
40
|
this.visible = false
|
|
39
41
|
}
|
|
40
42
|
}
|
|
41
43
|
}
|
|
42
44
|
</script>
|
|
43
|
-
|
|
44
|
-
<style lang="less">
|
|
45
|
-
@import '../../../assets/css/markdown/common.less';
|
|
46
|
-
</style>
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div class="
|
|
2
|
+
<div class="c-editor-markdown-dialog ">
|
|
3
3
|
<span class="c-markdown-toolbar-file c-markdown-toolbar-item" @click="handleClick" title="插入配装方案">装</span>
|
|
4
4
|
|
|
5
5
|
<el-dialog :visible.sync="visible" title="配装方案" :modal-append-to-body="false">
|
|
6
6
|
|
|
7
7
|
<p>👘 请填入魔盒配装方案的<a target="_blank" href="/tool/32032">【嵌入版】</a>编码</p>
|
|
8
8
|
|
|
9
|
-
<el-input class="
|
|
9
|
+
<el-input class="u-input" type="textarea" :rows="4" v-model="pzCode"></el-input>
|
|
10
10
|
|
|
11
11
|
<div slot="footer">
|
|
12
12
|
<el-button @click="cancel">取消</el-button>
|
|
@@ -38,12 +38,10 @@ export default {
|
|
|
38
38
|
|
|
39
39
|
this.$emit('insert', content)
|
|
40
40
|
|
|
41
|
+
this.pz = ''
|
|
42
|
+
|
|
41
43
|
this.visible = false
|
|
42
44
|
}
|
|
43
45
|
}
|
|
44
46
|
}
|
|
45
47
|
</script>
|
|
46
|
-
|
|
47
|
-
<style lang="less">
|
|
48
|
-
@import '../../../assets/css/markdown/common.less';
|
|
49
|
-
</style>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="c-editor-markdown-dialog">
|
|
3
|
+
<span class="c-markdown-toolbar-file c-markdown-toolbar-item" @click="handleClick" title="插入奇穴方案">
|
|
4
|
+
奇
|
|
5
|
+
</span>
|
|
6
|
+
|
|
7
|
+
<el-dialog :visible.sync="visible" title="插入奇穴方案" :modal-append-to-body="false">
|
|
8
|
+
<p>💙 请填入<a target="_blank" href="/app/talent">奇穴模拟器</a>生成的编码</p>
|
|
9
|
+
|
|
10
|
+
<el-input class="u-input u-input-macro" type="textarea" :rows="5" v-model="talent"></el-input>
|
|
11
|
+
|
|
12
|
+
<div slot="footer">
|
|
13
|
+
<el-button @click="cancel">取消</el-button>
|
|
14
|
+
<el-button type="primary" @click="insert">插入</el-button>
|
|
15
|
+
</div>
|
|
16
|
+
</el-dialog>
|
|
17
|
+
</div>
|
|
18
|
+
</template>
|
|
19
|
+
|
|
20
|
+
<script>
|
|
21
|
+
export default {
|
|
22
|
+
name: "markdown_talent",
|
|
23
|
+
data() {
|
|
24
|
+
return {
|
|
25
|
+
visible: false,
|
|
26
|
+
talent: "",
|
|
27
|
+
};
|
|
28
|
+
},
|
|
29
|
+
methods: {
|
|
30
|
+
handleClick() {
|
|
31
|
+
this.visible = true;
|
|
32
|
+
},
|
|
33
|
+
cancel() {
|
|
34
|
+
this.visible = false;
|
|
35
|
+
this.talent = "";
|
|
36
|
+
},
|
|
37
|
+
insert() {
|
|
38
|
+
const content = `<pre class="e-jx3qixue-area">${this.talent}</pre>`;
|
|
39
|
+
|
|
40
|
+
this.$emit("insert", content);
|
|
41
|
+
|
|
42
|
+
this.talent = "";
|
|
43
|
+
|
|
44
|
+
this.visible = false;
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
</script>
|
|
49
|
+
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="c-editor-markdown-dialog">
|
|
3
|
+
<span class="c-markdown-toolbar-file c-markdown-toolbar-item" @click="handleClick" title="插入镇派方案">
|
|
4
|
+
镇
|
|
5
|
+
</span>
|
|
6
|
+
|
|
7
|
+
<el-dialog :visible.sync="visible" title="插入镇派方案" :modal-append-to-body="false">
|
|
8
|
+
<p>💙 请填入<a target="_blank" href="/app/talent2">镇派模拟器</a>生成的编码</p>
|
|
9
|
+
|
|
10
|
+
<el-input class="u-input u-input-macro" type="textarea" :rows="5" v-model="talent"></el-input>
|
|
11
|
+
|
|
12
|
+
<div slot="footer">
|
|
13
|
+
<el-button @click="cancel">取消</el-button>
|
|
14
|
+
<el-button type="primary" @click="insert">插入</el-button>
|
|
15
|
+
</div>
|
|
16
|
+
</el-dialog>
|
|
17
|
+
</div>
|
|
18
|
+
</template>
|
|
19
|
+
|
|
20
|
+
<script>
|
|
21
|
+
export default {
|
|
22
|
+
name: "markdown_talent2",
|
|
23
|
+
data() {
|
|
24
|
+
return {
|
|
25
|
+
visible: false,
|
|
26
|
+
talent: "",
|
|
27
|
+
};
|
|
28
|
+
},
|
|
29
|
+
methods: {
|
|
30
|
+
handleClick() {
|
|
31
|
+
this.visible = true;
|
|
32
|
+
},
|
|
33
|
+
cancel() {
|
|
34
|
+
this.visible = false;
|
|
35
|
+
this.talent = "";
|
|
36
|
+
},
|
|
37
|
+
insert() {
|
|
38
|
+
const content = `<pre class="e-jx3talent2-area">${this.talent}</pre>`;
|
|
39
|
+
|
|
40
|
+
this.$emit("insert", content);
|
|
41
|
+
|
|
42
|
+
this.talent = "";
|
|
43
|
+
|
|
44
|
+
this.visible = false;
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
</script>
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="c-editor-markdown-dialog">
|
|
3
|
+
<span class="c-markdown-toolbar-video c-markdown-toolbar-item" @click="handleClick" title="插入视频">
|
|
4
|
+
<i class="el-icon-video-camera"></i>
|
|
5
|
+
</span>
|
|
6
|
+
|
|
7
|
+
<el-dialog :visible.sync="visible" title="插入视频" :modal-append-to-body="false">
|
|
8
|
+
<a class="u-help" href="/tool/686/" target="_blank">💙 点击查看如何获取视频地址</a>
|
|
9
|
+
|
|
10
|
+
<el-input class="u-input" type="textarea" :rows="4" v-model="videoUrl"></el-input>
|
|
11
|
+
|
|
12
|
+
<div slot="footer">
|
|
13
|
+
<el-button @click="cancel">取消</el-button>
|
|
14
|
+
<el-button type="primary" @click="insert">插入</el-button>
|
|
15
|
+
</div>
|
|
16
|
+
</el-dialog>
|
|
17
|
+
</div>
|
|
18
|
+
</template>
|
|
19
|
+
|
|
20
|
+
<script>
|
|
21
|
+
export default {
|
|
22
|
+
name: "markdown_video",
|
|
23
|
+
data() {
|
|
24
|
+
return {
|
|
25
|
+
visible: false,
|
|
26
|
+
videoUrl: "",
|
|
27
|
+
};
|
|
28
|
+
},
|
|
29
|
+
methods: {
|
|
30
|
+
handleClick() {
|
|
31
|
+
this.visible = true;
|
|
32
|
+
},
|
|
33
|
+
cancel() {
|
|
34
|
+
this.visible = false;
|
|
35
|
+
this.videoUrl = "";
|
|
36
|
+
},
|
|
37
|
+
insert() {
|
|
38
|
+
const content = `<div class="c-article-videox">${this.videoUrl}</div>`;
|
|
39
|
+
|
|
40
|
+
this.$emit("insert", content);
|
|
41
|
+
|
|
42
|
+
this.videoUrl = "";
|
|
43
|
+
|
|
44
|
+
this.visible = false;
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
};
|
|
48
|
+
</script>
|
|
49
|
+
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
.c-editor-markdown-macro {
|
|
2
|
-
display: inline-block;
|
|
3
|
-
|
|
4
|
-
.u-input {
|
|
5
|
-
.el-textarea__inner {
|
|
6
|
-
|
|
7
|
-
font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
.el-dialog__body {
|
|
11
|
-
padding-top: 0;
|
|
12
|
-
}
|
|
13
|
-
}
|