@jx3box/jx3box-editor 1.0.8 → 1.0.9
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_markdown.less +7 -5
- package/assets/css/markdown/_.less +38 -0
- package/assets/css/markdown/dialog.less +26 -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 +13 -30
- package/assets/css/module/buff.less +1 -1
- package/assets/css/module/macro.less +3 -2
- package/assets/css/module/npc.less +224 -0
- package/assets/css/module/qixue.less +2 -1
- package/assets/css/module/skill.less +1 -1
- package/assets/css/module/video.less +1 -1
- package/assets/css/resource.less +4 -0
- 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/package.json +1 -1
- package/service/database.js +12 -1
- package/src/Article.vue +1 -1
- package/src/ArticleMarkdown.vue +9 -1
- package/src/Markdown.vue +54 -11
- package/src/Npc.vue +214 -0
- package/src/Resource.vue +35 -0
- package/src/components/markdown/katex.vue +59 -0
- package/src/components/markdown/macro.vue +4 -2
- package/src/components/markdown/pz.vue +5 -3
- package/src/components/markdown/talent.vue +52 -0
- package/src/components/markdown/talent2.vue +52 -0
- package/src/components/markdown/video.vue +52 -0
- package/assets/css/markdown/common.less +0 -13
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
3
|
+
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
4
|
+
viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
|
|
5
|
+
<g>
|
|
6
|
+
<g>
|
|
7
|
+
<path d="M256,0C114.848,0,0,114.848,0,256s114.848,256,256,256s256-114.848,256-256S397.152,0,256,0z M256,320
|
|
8
|
+
c11.84,0,22.784-3.456,32.288-9.088l45.76,45.76C312.416,373.568,285.536,384,256,384c-70.592,0-128-57.408-128-128
|
|
9
|
+
s57.408-128,128-128c29.536,0,56.384,10.464,78.08,27.296l-45.792,45.76C278.784,195.456,267.84,192,256,192
|
|
10
|
+
c-35.296,0-64,28.704-64,64C192,291.296,220.704,320,256,320z M256,96c-88.224,0-160,71.776-160,160s71.776,160,160,160
|
|
11
|
+
c38.336,0,73.088-14.112,100.672-36.672l45.76,45.76C363.136,459.2,312,480,256,480C132.48,480,32,379.488,32,256
|
|
12
|
+
C32,132.48,132.48,32,256,32c56,0,107.136,20.8,146.464,54.912l-45.792,45.76C329.088,110.112,294.336,96,256,96z"/>
|
|
13
|
+
</g>
|
|
14
|
+
</g>
|
|
15
|
+
<g>
|
|
16
|
+
</g>
|
|
17
|
+
<g>
|
|
18
|
+
</g>
|
|
19
|
+
<g>
|
|
20
|
+
</g>
|
|
21
|
+
<g>
|
|
22
|
+
</g>
|
|
23
|
+
<g>
|
|
24
|
+
</g>
|
|
25
|
+
<g>
|
|
26
|
+
</g>
|
|
27
|
+
<g>
|
|
28
|
+
</g>
|
|
29
|
+
<g>
|
|
30
|
+
</g>
|
|
31
|
+
<g>
|
|
32
|
+
</g>
|
|
33
|
+
<g>
|
|
34
|
+
</g>
|
|
35
|
+
<g>
|
|
36
|
+
</g>
|
|
37
|
+
<g>
|
|
38
|
+
</g>
|
|
39
|
+
<g>
|
|
40
|
+
</g>
|
|
41
|
+
<g>
|
|
42
|
+
</g>
|
|
43
|
+
<g>
|
|
44
|
+
</g>
|
|
45
|
+
</svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg id="Capa_1" enable-background="new 0 0 512 512" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><g><path d="m121.472 166.116c2.024 24.213 6.672 57.38 17.189 92.205 22.336 73.956 61.794 126.543 117.339 156.427 55.545-29.884 95.003-82.471 117.338-156.427 10.517-34.822 15.164-67.99 17.19-92.205l-134.528-67.264z"/><path d="m481.854 119.657c-.28-5.394-3.44-10.221-8.271-12.636l-210.875-105.438c-4.223-2.111-9.193-2.111-13.416 0l-210.875 105.438c-4.831 2.415-7.991 7.242-8.271 12.636-.16 3.07-3.628 76.168 21.273 161.035 14.734 50.214 36.406 94.071 64.414 130.354 35.295 45.722 80.659 79.357 134.832 99.973 1.719.653 3.526.98 5.335.98s3.616-.327 5.335-.98c54.173-20.615 99.537-54.251 134.832-99.973 28.008-36.283 49.68-80.141 64.414-130.354 24.901-84.867 21.433-157.965 21.273-161.035zm-219.206 325.414c-2.095 1.036-4.372 1.554-6.648 1.554s-4.554-.518-6.648-1.554c-66.792-33.024-113.696-92.938-139.408-178.076-12.86-42.583-17.503-82.709-19.133-108.871-.375-6.008 2.879-11.657 8.263-14.349l150.219-75.109c4.223-2.11 9.193-2.111 13.416 0l150.22 75.109c5.384 2.691 8.638 8.342 8.263 14.35-1.631 26.164-6.274 66.291-19.134 108.87-25.714 85.137-72.618 145.051-139.41 178.076z"/></g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg id="Capa_1" enable-background="new 0 0 512 512" height="512" viewBox="0 0 512 512" width="512" xmlns="http://www.w3.org/2000/svg"><g><path d="m256 303.221c24.951 0 45.25-20.299 45.25-45.25s-20.299-45.25-45.25-45.25-45.25 20.299-45.25 45.25 20.299 45.25 45.25 45.25zm0-60.25c8.409 0 14.636 6.873 15 15 .363 8.101-7.154 15-15 15-8.409 0-14.636-6.873-15-15-.363-8.101 7.154-15 15-15z"/><path d="m508.175 247.964c-1.15-1.284-28.674-31.804-73.237-62.585-59.58-41.155-121.456-62.908-178.938-62.908s-119.357 21.753-178.938 62.908c-44.563 30.782-72.087 61.301-73.237 62.585-5.1 5.696-5.1 14.316 0 20.013 1.15 1.284 28.674 31.804 73.237 62.585 59.581 41.155 121.457 62.908 178.938 62.908s119.357-21.753 178.938-62.908c44.563-30.782 72.087-61.301 73.237-62.585 5.1-5.696 5.1-14.316 0-20.013zm-252.175-65.243c41.493 0 75.25 33.757 75.25 75.25s-33.757 75.25-75.25 75.25-75.25-33.757-75.25-75.25 33.757-75.25 75.25-75.25z"/><path d="m256 100.221c8.284 0 15-6.716 15-15v-50.25c0-8.284-6.716-15-15-15s-15 6.716-15 15v50.25c0 8.284 6.716 15 15 15z"/><path d="m151.813 106.585c2.894 4.318 7.64 6.651 12.474 6.651 2.871 0 5.773-.823 8.337-2.541 6.882-4.612 8.722-13.929 4.11-20.811l-28.774-42.935c-4.611-6.881-13.93-8.722-20.811-4.11-6.882 4.612-8.722 13.929-4.11 20.811z"/><path d="m339.376 110.695c2.564 1.719 5.466 2.541 8.337 2.541 4.834 0 9.581-2.333 12.475-6.651l28.773-42.935c4.611-6.882 2.771-16.199-4.11-20.811-6.882-4.613-16.199-2.772-20.812 4.11l-28.773 42.935c-4.612 6.882-2.772 16.199 4.11 20.811z"/><path d="m256 411.779c-8.284 0-15 6.716-15 15v50.25c0 8.284 6.716 15 15 15s15-6.716 15-15v-50.25c0-8.284-6.716-15-15-15z"/><path d="m360.187 405.415c-4.612-6.882-13.931-8.722-20.812-4.11-6.882 4.612-8.722 13.929-4.11 20.811l28.773 42.935c2.894 4.318 7.64 6.651 12.475 6.651 2.871 0 5.773-.823 8.337-2.541 6.882-4.612 8.722-13.929 4.11-20.811z"/><path d="m172.624 401.305c-6.881-4.612-16.198-2.772-20.811 4.11l-28.774 42.935c-4.612 6.882-2.772 16.199 4.11 20.811 2.564 1.719 5.466 2.541 8.337 2.541 4.834 0 9.581-2.333 12.474-6.651l28.774-42.935c4.613-6.882 2.772-16.199-4.11-20.811z"/></g></svg>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<!-- Generator: Adobe Illustrator 22.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
3
|
+
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
4
|
+
viewBox="0 0 833.7 833.7" style="enable-background:new 0 0 833.7 833.7;" xml:space="preserve">
|
|
5
|
+
<g>
|
|
6
|
+
<path d="M415.5,88.8C252.9,88.8,121,220.7,121,383.4v138.8c0,7.3,3.4,14.2,9.3,18.7L256.9,637v79.2c0,13,10.5,23.4,23.4,23.4h18.8
|
|
7
|
+
c13,0,23.4-10.5,23.4-23.4v-32.2c0-8.2,6.6-14.8,14.8-14.8l0,0c8.2,0,14.8,6.6,14.8,14.8v32.2c0,13,10.5,23.4,23.4,23.4h0.8
|
|
8
|
+
c13,0,23.4-10.5,23.4-23.4v-32.2c0-8.2,6.6-14.8,14.8-14.8h1.6c8.2,0,14.8,6.6,14.8,14.8v32.2c0,13,10.5,23.4,23.4,23.4h0.8
|
|
9
|
+
c13,0,23.4-10.5,23.4-23.4v-32.2c0-8.2,6.6-14.8,14.8-14.8l0,0c8.2,0,14.8,6.6,14.8,14.8v32.2c0,13,10.5,23.4,23.4,23.4h18.9
|
|
10
|
+
c13,0,23.4-10.5,23.4-23.4v-79.3l126.6-96.1c5.9-4.5,9.3-11.3,9.3-18.7V383.4C710,220.7,578.1,88.8,415.5,88.8z M292.4,524.5
|
|
11
|
+
c-44.8,0-81.2-36.4-81.2-81.2c0-44.8,36.4-81.2,81.2-81.2s81.2,36.4,81.2,81.2C373.6,488.2,337.2,524.5,292.4,524.5z M438.6,584.2
|
|
12
|
+
h-46.1c-10.7,0-17.5-11.5-12.3-20.8l23.1-41.9c5.3-9.7,19.3-9.7,24.6,0l23.1,41.9C456,572.8,449.2,584.2,438.6,584.2z M538.6,524.5
|
|
13
|
+
c-44.8,0-81.2-36.4-81.2-81.2c0-44.8,36.4-81.2,81.2-81.2c44.8,0,81.2,36.4,81.2,81.2C619.8,488.2,583.5,524.5,538.6,524.5z"/>
|
|
14
|
+
</g>
|
|
15
|
+
</svg>
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
|
3
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
4
|
+
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
5
|
+
width="953px" height="953px" viewBox="0 0 953 953" style="enable-background:new 0 0 953 953;" xml:space="preserve">
|
|
6
|
+
<g>
|
|
7
|
+
<g>
|
|
8
|
+
<path d="M430.589,953c236.6,0,428.401-191.801,428.401-428.4c0-72.799-18.102-141.299-50.102-201.299c-3.5,0.5-7.1,0.7-10.6,0.7
|
|
9
|
+
c-2,0-4.1-0.1-6.199-0.2l-54.5-4.2l-39.201,39.2c29.9,48.2,47.201,105,47.201,165.799c0,173.9-141,314.9-314.901,314.9
|
|
10
|
+
c-173.899,0-315-141-315-314.9c0-173.899,141-314.899,314.9-314.899c60.901,0,117.7,17.3,165.799,47.2l35.5-35.5l-4.799-62.5
|
|
11
|
+
c-0.4-5-0.301-10,0.199-14.9c-58.9-30.5-125.799-47.8-196.799-47.8c-236.5,0-428.3,191.8-428.3,428.399S193.989,953,430.589,953z"
|
|
12
|
+
/>
|
|
13
|
+
<path d="M430.589,413.9c2.8,0,5.6,0.101,8.4,0.3l79.1-79.1l1.699-1.7c-27.1-12.7-57.299-19.8-89.2-19.8
|
|
14
|
+
c-116.5,0-210.9,94.4-210.9,210.9c0,116.5,94.4,211,210.9,211c116.5,0,210.901-94.4,210.901-210.9
|
|
15
|
+
c0-31.9-7.102-62.099-19.801-89.2l-1.699,1.7l-79.102,79.099c0.201,2.801,0.301,5.602,0.301,8.4
|
|
16
|
+
c0,61.1-49.5,110.701-110.7,110.701c-61.2,0-110.601-49.602-110.601-110.701C319.889,463.5,369.489,413.9,430.589,413.9z"/>
|
|
17
|
+
<path d="M872.089,142.6l25.4-25.4c11.6-11.6,11.6-30.3,0-41.9l-17.602-17.7c-5.799-5.8-13.398-8.7-20.898-8.7
|
|
18
|
+
s-15.201,2.9-20.9,8.7l-29.1,29.1l-6-77.5c-0.4-5.7-5.102-9.2-10-9.2c-2.5,0-5,0.9-7,2.9l-114.5,114.5
|
|
19
|
+
c-10.301,10.3-15.602,24.6-14.5,39.2l0.299,4.5l5.5,71.7l-41.4,41.4l-74.5,74.5l-1.699,1.7l-72.1,72.101l-32,32
|
|
20
|
+
c-4.2,4.199-6.8,9.8-7.2,15.699l-2,25.101c-1.2,14.6,10.4,27,24.9,27c0.399,0,0.8,0,1.3,0l26.5-1.301
|
|
21
|
+
c6.199-0.301,12.1-2.9,16.4-7.301L532.689,482l72.1-72.1l1.701-1.7l74.5-74.5l45-45l65.398,5l2.9,0.2c1.301,0.1,2.6,0.1,3.801,0.1
|
|
22
|
+
c13.199,0,25.9-5.2,35.4-14.6L947.888,165c6-6,2.201-16.4-6.299-17L872.089,142.6z"/>
|
|
23
|
+
</g>
|
|
24
|
+
</g>
|
|
25
|
+
<g>
|
|
26
|
+
</g>
|
|
27
|
+
<g>
|
|
28
|
+
</g>
|
|
29
|
+
<g>
|
|
30
|
+
</g>
|
|
31
|
+
<g>
|
|
32
|
+
</g>
|
|
33
|
+
<g>
|
|
34
|
+
</g>
|
|
35
|
+
<g>
|
|
36
|
+
</g>
|
|
37
|
+
<g>
|
|
38
|
+
</g>
|
|
39
|
+
<g>
|
|
40
|
+
</g>
|
|
41
|
+
<g>
|
|
42
|
+
</g>
|
|
43
|
+
<g>
|
|
44
|
+
</g>
|
|
45
|
+
<g>
|
|
46
|
+
</g>
|
|
47
|
+
<g>
|
|
48
|
+
</g>
|
|
49
|
+
<g>
|
|
50
|
+
</g>
|
|
51
|
+
<g>
|
|
52
|
+
</g>
|
|
53
|
+
<g>
|
|
54
|
+
</g>
|
|
55
|
+
</svg>
|
package/package.json
CHANGED
package/service/database.js
CHANGED
|
@@ -94,4 +94,15 @@ function getSkill(client = "std", id, level) {
|
|
|
94
94
|
});
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
-
|
|
97
|
+
function getNpc(client = 'std', id) {
|
|
98
|
+
return $node().get('/npc/id/' + id, {
|
|
99
|
+
params: {
|
|
100
|
+
client,
|
|
101
|
+
strict: 0,
|
|
102
|
+
per: 10,
|
|
103
|
+
page: 1
|
|
104
|
+
}
|
|
105
|
+
})
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export { loadResource, loadStat, getIcons, getBuff, getSkill, getNpc };
|
package/src/Article.vue
CHANGED
package/src/ArticleMarkdown.vue
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="c-article-markdown">
|
|
3
|
-
<markdown-render id="c-article" class="c-markdown" ref="article" v-model="origin" @change="updateOrigin" :preRender="doReg"></markdown-render>
|
|
3
|
+
<markdown-render id="c-article" class="c-markdown c-article" ref="article" v-model="origin" @change="updateOrigin" :preRender="doReg" :xssOptions="xssOptions"></markdown-render>
|
|
4
4
|
<div class="w-jx3-element-pop" :style="jx3_element.style">
|
|
5
5
|
<jx3-item :item_id="item.id" :jx3ClientType="item.client" v-show="jx3_element.type == 'item'" />
|
|
6
6
|
<jx3-buff :client="buff.client" :id="buff.id" :level="buff.level" v-show="jx3_element.type == 'buff'" />
|
|
7
7
|
<jx3-skill :client="skill.client" :id="skill.id" :level="skill.level" v-show="jx3_element.type == 'skill'" />
|
|
8
|
+
<jx3-npc :client="npc.client" :id="npc.id" v-show="jx3_element.type === 'npc'"></jx3-npc>
|
|
8
9
|
</div>
|
|
9
10
|
</div>
|
|
10
11
|
</template>
|
|
@@ -30,6 +31,7 @@ import renderCode from "../assets/js/code";
|
|
|
30
31
|
import Item from "./Item";
|
|
31
32
|
import Buff from "./Buff";
|
|
32
33
|
import Skill from "./Skill";
|
|
34
|
+
import Npc from "./Npc";
|
|
33
35
|
import renderJx3Element from "../assets/js/jx3_element";
|
|
34
36
|
|
|
35
37
|
import {xssOptions} from '../assets/data/markdown_whitelist.json'
|
|
@@ -64,6 +66,11 @@ export default {
|
|
|
64
66
|
id: "",
|
|
65
67
|
level: "",
|
|
66
68
|
},
|
|
69
|
+
// NPC
|
|
70
|
+
npc: {
|
|
71
|
+
client: 'std',
|
|
72
|
+
id: ""
|
|
73
|
+
},
|
|
67
74
|
jx3_element: {
|
|
68
75
|
style: {
|
|
69
76
|
top: 0,
|
|
@@ -141,6 +148,7 @@ export default {
|
|
|
141
148
|
"jx3-item": Item,
|
|
142
149
|
"jx3-buff": Buff,
|
|
143
150
|
"jx3-skill": Skill,
|
|
151
|
+
"jx3-npc": Npc,
|
|
144
152
|
markdownRender,
|
|
145
153
|
},
|
|
146
154
|
};
|
package/src/Markdown.vue
CHANGED
|
@@ -5,17 +5,21 @@
|
|
|
5
5
|
|
|
6
6
|
<div class="c-editor-header">
|
|
7
7
|
<Upload v-if="attachmentEnable" @insert="insertAttachments" :enable="true" />
|
|
8
|
-
<Resource v-if="resourceEnable" @insert="insertResource" :enable="
|
|
8
|
+
<Resource v-if="resourceEnable" @insert="insertResource" :enable="true" />
|
|
9
9
|
</div>
|
|
10
10
|
|
|
11
11
|
<slot></slot>
|
|
12
12
|
|
|
13
|
-
<markdown-editor class="c-markdown" ref="md" v-model="data" @change="updateData" :subfield="false">
|
|
13
|
+
<markdown-editor class="c-markdown c-article" ref="md" v-model="data" @change="updateData" :subfield="false" :xssOptions="xssOptions">
|
|
14
14
|
<template slot="left-toolbar-after">
|
|
15
|
+
<markdown-katex @insert="insertKatex" />
|
|
15
16
|
<span class="c-markdown-toolbar-image c-markdown-toolbar-item" title="上传图片" @click="selectImages"><i class="el-icon-picture-outline-round"></i></span>
|
|
16
17
|
<span class="c-markdown-toolbar-file c-markdown-toolbar-item" title="上传附件" @click="selectFiles"><i class="el-icon-paperclip"></i></span>
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
<markdown-video @insert="insertVideo" />
|
|
19
|
+
<markdown-macro @insert="insertMacro" />
|
|
20
|
+
<markdown-pz @insert="insertPz" />
|
|
21
|
+
<markdown-talent @insert="insertTalent" />
|
|
22
|
+
<markdown-talent2 @insert="insertTalent2" />
|
|
19
23
|
</template>
|
|
20
24
|
</markdown-editor>
|
|
21
25
|
<input class="c-markdown-store-item" id="c-markdown-store-images" type="file" @change="uploadImages" ref="markdownImages" multiple :accept="allow_image_types" />
|
|
@@ -35,9 +39,12 @@ import Upload from "./Upload";
|
|
|
35
39
|
import Resource from "./Resource";
|
|
36
40
|
|
|
37
41
|
// jx3
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
42
|
+
import markdownMacro from './components/markdown/macro.vue'
|
|
43
|
+
import markdownPz from './components/markdown/pz.vue'
|
|
44
|
+
import markdownKatex from './components/markdown/katex.vue'
|
|
45
|
+
import markdownTalent from './components/markdown/talent.vue'
|
|
46
|
+
import markdownTalent2 from './components/markdown/talent2.vue'
|
|
47
|
+
import markdownVideo from './components/markdown/video.vue'
|
|
41
48
|
|
|
42
49
|
export default {
|
|
43
50
|
name: "Markdown",
|
|
@@ -67,8 +74,12 @@ export default {
|
|
|
67
74
|
Upload,
|
|
68
75
|
Resource,
|
|
69
76
|
|
|
70
|
-
|
|
71
|
-
|
|
77
|
+
markdownMacro,
|
|
78
|
+
markdownPz,
|
|
79
|
+
markdownKatex,
|
|
80
|
+
markdownTalent,
|
|
81
|
+
markdownTalent2,
|
|
82
|
+
markdownVideo,
|
|
72
83
|
},
|
|
73
84
|
data: function() {
|
|
74
85
|
return {
|
|
@@ -207,8 +218,12 @@ export default {
|
|
|
207
218
|
}
|
|
208
219
|
},
|
|
209
220
|
insertResource: function(data) {
|
|
210
|
-
|
|
211
|
-
|
|
221
|
+
console.log(data)
|
|
222
|
+
this.$md.insertText(this.$md.getTextareaDom(), {
|
|
223
|
+
prefix: data,
|
|
224
|
+
subfix: "",
|
|
225
|
+
str: "",
|
|
226
|
+
});
|
|
212
227
|
},
|
|
213
228
|
insertMacro(data) {
|
|
214
229
|
this.$md.insertText(this.$md.getTextareaDom(), {
|
|
@@ -223,6 +238,34 @@ export default {
|
|
|
223
238
|
subfix: "",
|
|
224
239
|
str: "",
|
|
225
240
|
});
|
|
241
|
+
},
|
|
242
|
+
insertKatex(data) {
|
|
243
|
+
this.$md.insertText(this.$md.getTextareaDom(), {
|
|
244
|
+
prefix: data,
|
|
245
|
+
subfix: "",
|
|
246
|
+
str: "",
|
|
247
|
+
});
|
|
248
|
+
},
|
|
249
|
+
insertTalent(data) {
|
|
250
|
+
this.$md.insertText(this.$md.getTextareaDom(), {
|
|
251
|
+
prefix: data,
|
|
252
|
+
subfix: "",
|
|
253
|
+
str: "",
|
|
254
|
+
});
|
|
255
|
+
},
|
|
256
|
+
insertTalent2(data) {
|
|
257
|
+
this.$md.insertText(this.$md.getTextareaDom(), {
|
|
258
|
+
prefix: data,
|
|
259
|
+
subfix: "",
|
|
260
|
+
str: "",
|
|
261
|
+
});
|
|
262
|
+
},
|
|
263
|
+
insertVideo(data) {
|
|
264
|
+
this.$md.insertText(this.$md.getTextareaDom(), {
|
|
265
|
+
prefix: data,
|
|
266
|
+
subfix: "",
|
|
267
|
+
str: "",
|
|
268
|
+
});
|
|
226
269
|
}
|
|
227
270
|
},
|
|
228
271
|
filters: {},
|
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,59 @@
|
|
|
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
|
+
@import "../../../assets/css/markdown/dialog.less";
|
|
52
|
+
.c-markdown-toolbar-item.u-katex {
|
|
53
|
+
display: inline-flex;
|
|
54
|
+
justify-content: center;
|
|
55
|
+
align-content: center;
|
|
56
|
+
width: 26px;
|
|
57
|
+
height: 26px;
|
|
58
|
+
}
|
|
59
|
+
</style>
|