@jx3box/jx3box-editor 2.2.7 → 2.2.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/.vscode/settings.json +5 -0
- package/assets/css/combo.less +97 -64
- package/assets/js/combo.js +2 -2
- package/package.json +1 -1
- package/service/node.js +21 -9
- package/src/components/SkillMartial.vue +244 -73
package/assets/css/combo.less
CHANGED
|
@@ -260,17 +260,17 @@
|
|
|
260
260
|
cursor: pointer;
|
|
261
261
|
// .none;
|
|
262
262
|
|
|
263
|
-
background-color
|
|
263
|
+
background-color: #c00;
|
|
264
264
|
.size(12px);
|
|
265
265
|
.r(50%);
|
|
266
266
|
.db;
|
|
267
|
-
i{
|
|
268
|
-
color
|
|
267
|
+
i {
|
|
268
|
+
color: #fff;
|
|
269
269
|
.fz(12px);
|
|
270
270
|
.db;
|
|
271
271
|
}
|
|
272
272
|
&:hover {
|
|
273
|
-
background-color
|
|
273
|
+
background-color: #f00;
|
|
274
274
|
}
|
|
275
275
|
}
|
|
276
276
|
.u-remove-icon_small {
|
|
@@ -288,8 +288,8 @@
|
|
|
288
288
|
.r(50%);
|
|
289
289
|
.db;
|
|
290
290
|
|
|
291
|
-
i{
|
|
292
|
-
color
|
|
291
|
+
i {
|
|
292
|
+
color: #fff;
|
|
293
293
|
.fz(12px);
|
|
294
294
|
.db;
|
|
295
295
|
}
|
|
@@ -349,74 +349,107 @@
|
|
|
349
349
|
|
|
350
350
|
.m-pvp-martial {
|
|
351
351
|
display: flex;
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
.m-martial-skills {
|
|
357
|
-
flex: 1;
|
|
358
|
-
}
|
|
359
|
-
.m-martial-skill {
|
|
360
|
-
.u-title {
|
|
361
|
-
// 竖体显示
|
|
362
|
-
writing-mode: tb-rl;
|
|
363
|
-
letter-spacing: 1px;
|
|
364
|
-
display: flex;
|
|
365
|
-
align-items: center;
|
|
366
|
-
justify-content: center;
|
|
367
|
-
}
|
|
368
|
-
.u-title-name {
|
|
369
|
-
z-index: 1;
|
|
370
|
-
color: #fff;
|
|
371
|
-
font-size: 12px;
|
|
372
|
-
}
|
|
373
|
-
.u-title-img {
|
|
374
|
-
width: 24px;
|
|
375
|
-
height: 71px;
|
|
376
|
-
position: absolute;
|
|
377
|
-
}
|
|
378
|
-
margin-bottom: 20px;
|
|
352
|
+
gap: 10px;
|
|
353
|
+
|
|
354
|
+
.u-platform-select {
|
|
355
|
+
.size(30px, 400px);
|
|
379
356
|
display: flex;
|
|
380
|
-
|
|
381
|
-
gap:
|
|
382
|
-
|
|
383
|
-
padding: 4px 0;
|
|
384
|
-
position: relative;
|
|
357
|
+
flex-direction: column;
|
|
358
|
+
gap: 10px;
|
|
359
|
+
}
|
|
385
360
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
361
|
+
.u-platform-option {
|
|
362
|
+
.pointer;
|
|
363
|
+
flex-grow: 1;
|
|
364
|
+
color: white;
|
|
365
|
+
background-color: #1a2b22;
|
|
366
|
+
writing-mode: vertical-rl; /* 或者使用 vertical-lr */
|
|
367
|
+
text-orientation: upright;
|
|
368
|
+
text-align: center;
|
|
369
|
+
line-height: 32px;
|
|
370
|
+
border-radius: 6px;
|
|
371
|
+
transition: all 0.2s;
|
|
395
372
|
}
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
flex-
|
|
400
|
-
align-items: center;
|
|
373
|
+
|
|
374
|
+
.u-platform-option.is-select {
|
|
375
|
+
background-color: #2a9998;
|
|
376
|
+
flex-grow: 3;
|
|
401
377
|
}
|
|
402
378
|
|
|
403
|
-
.
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
justify-content: center;
|
|
407
|
-
cursor: pointer;
|
|
379
|
+
.u-skill-list {
|
|
380
|
+
flex-grow: 1;
|
|
381
|
+
width: 0;
|
|
408
382
|
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
383
|
+
display: flex;
|
|
384
|
+
background: #1a2b22;
|
|
385
|
+
padding: 20px;
|
|
386
|
+
border-radius: 8px;
|
|
387
|
+
flex-direction: column;
|
|
388
|
+
.m-martial-skills {
|
|
389
|
+
flex: 1;
|
|
412
390
|
}
|
|
391
|
+
.m-martial-skill {
|
|
392
|
+
.u-title {
|
|
393
|
+
// 竖体显示
|
|
394
|
+
writing-mode: tb-rl;
|
|
395
|
+
letter-spacing: 1px;
|
|
396
|
+
display: flex;
|
|
397
|
+
align-items: center;
|
|
398
|
+
justify-content: center;
|
|
399
|
+
}
|
|
400
|
+
.u-title-name {
|
|
401
|
+
z-index: 1;
|
|
402
|
+
color: #fff;
|
|
403
|
+
font-size: 12px;
|
|
404
|
+
}
|
|
405
|
+
.u-title-img {
|
|
406
|
+
width: 24px;
|
|
407
|
+
height: 71px;
|
|
408
|
+
position: absolute;
|
|
409
|
+
}
|
|
410
|
+
margin-bottom: 20px;
|
|
411
|
+
display: flex;
|
|
412
|
+
align-items: center;
|
|
413
|
+
gap: 20px;
|
|
414
|
+
// border: 1px solid rgb(40,107,113);
|
|
415
|
+
padding: 4px 0;
|
|
416
|
+
position: relative;
|
|
413
417
|
|
|
414
|
-
.u-skill.active {
|
|
415
418
|
.u-name {
|
|
416
|
-
|
|
417
|
-
|
|
419
|
+
display: block;
|
|
420
|
+
color: #fff;
|
|
421
|
+
font-size: 12px;
|
|
422
|
+
text-align: center;
|
|
423
|
+
// overflow: hidden;
|
|
424
|
+
white-space: nowrap;
|
|
425
|
+
width: 48px;
|
|
418
426
|
}
|
|
419
427
|
}
|
|
420
|
-
|
|
428
|
+
.m-skills {
|
|
429
|
+
display: flex;
|
|
430
|
+
gap: 20px;
|
|
431
|
+
flex-wrap: wrap;
|
|
432
|
+
align-items: center;
|
|
433
|
+
}
|
|
421
434
|
|
|
435
|
+
.m-skill {
|
|
436
|
+
position: relative;
|
|
437
|
+
display: flex;
|
|
438
|
+
flex-direction: column;
|
|
439
|
+
justify-content: center;
|
|
440
|
+
cursor: pointer;
|
|
441
|
+
|
|
442
|
+
.u-skill-icon {
|
|
443
|
+
box-sizing: border-box;
|
|
444
|
+
border: 2px solid #1a2b22;
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
.u-skill.active {
|
|
448
|
+
.u-name {
|
|
449
|
+
color: #a5ffd0;
|
|
450
|
+
text-shadow: 0 0 3px #2ffbb2;
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
}
|
|
422
455
|
}
|
package/assets/js/combo.js
CHANGED
|
@@ -16,7 +16,7 @@ function renderCombo(selector = ".e-skill-combo") {
|
|
|
16
16
|
const [id, name, icon, extend] = url.split(/,(?![^{]*\})/);
|
|
17
17
|
|
|
18
18
|
const _extend = extend ? JSON.parse(extend) : {};
|
|
19
|
-
const { gcd, n = '', c, fz=12, fw='normal',client='std',iconSize='large',underline=0 } = _extend;
|
|
19
|
+
const { gcd, n = '', c, fz=12, fw='normal',client='std',iconSize='large', underline=0 } = _extend;
|
|
20
20
|
|
|
21
21
|
// 渲染
|
|
22
22
|
let code = `
|
|
@@ -24,7 +24,7 @@ function renderCombo(selector = ".e-skill-combo") {
|
|
|
24
24
|
<span class="u-skill-icon w-jx3-element">
|
|
25
25
|
<img class="u-skill-icon_${iconSize}" src="${iconLink(icon)}" alt="${icon}" data-type="skill" data-id="${id}" data-client="${client}" />
|
|
26
26
|
</span>
|
|
27
|
-
<span class="u-skill-name u-skill-name_underline" title="${name}">${name}</span>
|
|
27
|
+
<span class="u-skill-name ${underline ? 'u-skill-name_underline' : ''}" title="${name}">${name}</span>
|
|
28
28
|
<span class="u-skill-note" title="${n}" style="color:${c};font-size:${fz}px;font-weight:${fw}">${n}</span>
|
|
29
29
|
<i class="u-gcd-icon ${gcd == 0 ? 'is-show' : ''}" title="无GCD技能">
|
|
30
30
|
<i class="el-icon-time"></i>
|
package/package.json
CHANGED
package/service/node.js
CHANGED
|
@@ -2,19 +2,22 @@ import { $node, axios } from "@jx3box/jx3box-common/js/https";
|
|
|
2
2
|
|
|
3
3
|
function getSkill(query, params) {
|
|
4
4
|
let condition = isNaN(query) ? "name" : "id";
|
|
5
|
-
return $node()
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
return $node()
|
|
6
|
+
.get(`/skill/${condition}/${query}`, {
|
|
7
|
+
params: params,
|
|
8
|
+
})
|
|
9
|
+
.then(res => {
|
|
10
|
+
return res.data;
|
|
11
|
+
})
|
|
12
|
+
.catch(err => {
|
|
13
|
+
console.log(err);
|
|
14
|
+
});
|
|
12
15
|
}
|
|
13
16
|
|
|
14
17
|
function getSkillList(params) {
|
|
15
18
|
return $node().get(`/skill`, {
|
|
16
19
|
params: params,
|
|
17
|
-
})
|
|
20
|
+
});
|
|
18
21
|
}
|
|
19
22
|
|
|
20
23
|
import JX3BOX from "@jx3box/jx3box-common/data/jx3box.json";
|
|
@@ -39,4 +42,13 @@ async function getTalents2() {
|
|
|
39
42
|
return res.data;
|
|
40
43
|
}
|
|
41
44
|
|
|
42
|
-
export
|
|
45
|
+
export function getMobileForceSkillList(force_id) {
|
|
46
|
+
return $node().get("/v2/kungfu/panel", {
|
|
47
|
+
params: {
|
|
48
|
+
mount_id: force_id,
|
|
49
|
+
client: 'wujie'
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export { getSkill, getSkillList, getSkills, getTalents, getTalents2 };
|
|
@@ -1,68 +1,184 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="m-pvp-martial">
|
|
3
|
-
<div
|
|
4
|
-
<div
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
3
|
+
<div class="u-platform-select" v-if="client == 'std'">
|
|
4
|
+
<div
|
|
5
|
+
class="u-platform-option"
|
|
6
|
+
:class="{ 'is-select': platform == 1 }"
|
|
7
|
+
@click="platform = 1"
|
|
8
|
+
>旗舰端</div
|
|
9
|
+
>
|
|
10
|
+
<div
|
|
11
|
+
class="u-platform-option"
|
|
12
|
+
:class="{ 'is-select': platform == 2 }"
|
|
13
|
+
@click="platform = 2"
|
|
14
|
+
>无界端</div
|
|
15
|
+
>
|
|
16
|
+
</div>
|
|
17
|
+
<div class="u-skill-list">
|
|
18
|
+
<!-- 旗舰端技能列表 -->
|
|
19
|
+
<template v-if="platform == 1">
|
|
20
|
+
<div
|
|
21
|
+
v-for="kungfu in kungfus"
|
|
22
|
+
:key="kungfu"
|
|
23
|
+
class="m-martial-skill">
|
|
24
|
+
<div class="u-title">
|
|
25
|
+
<span class="u-title-name">{{
|
|
26
|
+
showKungfuName(kungfu)
|
|
27
|
+
}}</span>
|
|
11
28
|
<img
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
29
|
+
src="../../assets/img/skillset.png"
|
|
30
|
+
class="u-title-img"
|
|
31
|
+
alt="" />
|
|
32
|
+
</div>
|
|
33
|
+
<div class="m-skills" v-if="kungfusSkills[kungfu]">
|
|
34
|
+
<div
|
|
35
|
+
class="m-skill"
|
|
36
|
+
v-for="(skill, index) in formatSkill(
|
|
37
|
+
kungfusSkills[kungfu]
|
|
38
|
+
)"
|
|
39
|
+
:key="index"
|
|
40
|
+
@click="selectSkill(skill)">
|
|
41
|
+
<div class="u-skill" v-if="skill && skill.IconID">
|
|
42
|
+
<img
|
|
43
|
+
class="u-skill-icon"
|
|
44
|
+
:src="iconLink(skill.IconID)"
|
|
45
|
+
:alt="skill.IconID" />
|
|
46
|
+
<span class="u-name" :title="skill.Name">{{
|
|
47
|
+
skill.Name
|
|
48
|
+
}}</span>
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
17
51
|
</div>
|
|
18
52
|
</div>
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
<img src="../../assets/img/skillset.png" class="u-title-img" alt="" />
|
|
26
|
-
</div>
|
|
27
|
-
<div class="m-skills">
|
|
28
|
-
<div class="m-skill" v-for="(skill, index) in talentSkills" :key="index" @click="selectSkill(skill)">
|
|
29
|
-
<div class="u-skill" v-if="skill && skill.IconID">
|
|
53
|
+
<!-- 奇穴技能 -->
|
|
54
|
+
<div
|
|
55
|
+
class="m-martial-skill"
|
|
56
|
+
v-if="talentSkills && talentSkills.length">
|
|
57
|
+
<div class="u-title">
|
|
58
|
+
<span class="u-title-name">奇穴技能</span>
|
|
30
59
|
<img
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
60
|
+
src="../../assets/img/skillset.png"
|
|
61
|
+
class="u-title-img"
|
|
62
|
+
alt="" />
|
|
63
|
+
</div>
|
|
64
|
+
<div class="m-skills">
|
|
65
|
+
<div
|
|
66
|
+
class="m-skill"
|
|
67
|
+
v-for="(skill, index) in talentSkills"
|
|
68
|
+
:key="index"
|
|
69
|
+
@click="selectSkill(skill)">
|
|
70
|
+
<div class="u-skill" v-if="skill && skill.IconID">
|
|
71
|
+
<img
|
|
72
|
+
class="u-skill-icon"
|
|
73
|
+
:src="iconLink(skill.IconID)"
|
|
74
|
+
:alt="skill.IconID" />
|
|
75
|
+
<span class="u-name" :title="skill.Name">{{
|
|
76
|
+
skill.Name
|
|
77
|
+
}}</span>
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
36
80
|
</div>
|
|
37
81
|
</div>
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
<div class="m-martial-skill">
|
|
43
|
-
<div class="u-title">
|
|
44
|
-
<span class="u-title-name">江湖轻功</span>
|
|
45
|
-
<img src="../../assets/img/skillset.png" class="u-title-img" alt="" />
|
|
46
|
-
</div>
|
|
47
|
-
<div class="m-skills">
|
|
48
|
-
<div class="m-skill" v-for="(skill, index) in commonSkills" :key="index" @click="selectSkill(skill)">
|
|
49
|
-
<div class="u-skill" v-if="skill && skill.IconID">
|
|
82
|
+
<!-- 江湖轻功 -->
|
|
83
|
+
<div class="m-martial-skill">
|
|
84
|
+
<div class="u-title">
|
|
85
|
+
<span class="u-title-name">江湖轻功</span>
|
|
50
86
|
<img
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
87
|
+
src="../../assets/img/skillset.png"
|
|
88
|
+
class="u-title-img"
|
|
89
|
+
alt="" />
|
|
90
|
+
</div>
|
|
91
|
+
<div class="m-skills">
|
|
92
|
+
<div
|
|
93
|
+
class="m-skill"
|
|
94
|
+
v-for="(skill, index) in commonSkills"
|
|
95
|
+
:key="index"
|
|
96
|
+
@click="selectSkill(skill)">
|
|
97
|
+
<div class="u-skill" v-if="skill && skill.IconID">
|
|
98
|
+
<img
|
|
99
|
+
class="u-skill-icon"
|
|
100
|
+
:src="iconLink(skill.IconID)"
|
|
101
|
+
:alt="skill.IconID" />
|
|
102
|
+
<span class="u-name" :title="skill.Name">{{
|
|
103
|
+
skill.Name
|
|
104
|
+
}}</span>
|
|
105
|
+
</div>
|
|
106
|
+
</div>
|
|
56
107
|
</div>
|
|
57
108
|
</div>
|
|
58
|
-
</
|
|
109
|
+
</template>
|
|
110
|
+
<!-- 无界端技能列表 -->
|
|
111
|
+
<template v-else-if="platform == 2">
|
|
112
|
+
<!-- 门派技能 -->
|
|
113
|
+
<div class="m-martial-skill" v-if="wujie_data.mount.length">
|
|
114
|
+
<div class="u-title">
|
|
115
|
+
<span class="u-title-name">门派技能</span>
|
|
116
|
+
<img
|
|
117
|
+
src="../../assets/img/skillset.png"
|
|
118
|
+
class="u-title-img"
|
|
119
|
+
alt="" />
|
|
120
|
+
</div>
|
|
121
|
+
<div class="m-skills">
|
|
122
|
+
<div
|
|
123
|
+
class="m-skill"
|
|
124
|
+
v-for="(skill, index) in formatSkill(
|
|
125
|
+
wujie_data.mount
|
|
126
|
+
)"
|
|
127
|
+
:key="index"
|
|
128
|
+
@click="selectSkill(skill)">
|
|
129
|
+
<div class="u-skill" v-if="skill && skill.IconID">
|
|
130
|
+
<img
|
|
131
|
+
class="u-skill-icon"
|
|
132
|
+
:src="iconLink(skill.IconID)"
|
|
133
|
+
:alt="skill.IconID" />
|
|
134
|
+
<span class="u-name" :title="skill.Name">{{
|
|
135
|
+
skill.Name
|
|
136
|
+
}}</span>
|
|
137
|
+
</div>
|
|
138
|
+
</div>
|
|
139
|
+
</div>
|
|
140
|
+
</div>
|
|
141
|
+
<!-- 通用技能 -->
|
|
142
|
+
<div class="m-martial-skill">
|
|
143
|
+
<div class="u-title">
|
|
144
|
+
<span class="u-title-name">通用技能</span>
|
|
145
|
+
<img
|
|
146
|
+
src="../../assets/img/skillset.png"
|
|
147
|
+
class="u-title-img"
|
|
148
|
+
alt="" />
|
|
149
|
+
</div>
|
|
150
|
+
<div class="m-skills">
|
|
151
|
+
<div
|
|
152
|
+
class="m-skill"
|
|
153
|
+
v-for="(skill, index) in formatSkill(
|
|
154
|
+
wujie_data.common
|
|
155
|
+
)"
|
|
156
|
+
:key="index"
|
|
157
|
+
@click="selectSkill(skill)">
|
|
158
|
+
<div class="u-skill" v-if="skill && skill.IconID">
|
|
159
|
+
<img
|
|
160
|
+
class="u-skill-icon"
|
|
161
|
+
:src="iconLink(skill.IconID)"
|
|
162
|
+
:alt="skill.IconID" />
|
|
163
|
+
<span class="u-name" :title="skill.Name">{{
|
|
164
|
+
skill.Name
|
|
165
|
+
}}</span>
|
|
166
|
+
</div>
|
|
167
|
+
</div>
|
|
168
|
+
</div>
|
|
169
|
+
</div>
|
|
170
|
+
</template>
|
|
59
171
|
</div>
|
|
60
172
|
</div>
|
|
61
173
|
</template>
|
|
62
174
|
|
|
63
175
|
<script>
|
|
64
176
|
import xfmap from "@jx3box/jx3box-data/data/xf/xf.json";
|
|
65
|
-
import {
|
|
177
|
+
import {
|
|
178
|
+
getSkills,
|
|
179
|
+
getTalents,
|
|
180
|
+
getMobileForceSkillList,
|
|
181
|
+
} from "../../service/node";
|
|
66
182
|
import kungfumap_std from "@jx3box/jx3box-data/data/martial/kungfu_std.json";
|
|
67
183
|
import kungfumap_origin from "@jx3box/jx3box-data/data/martial/kungfu_origin.json";
|
|
68
184
|
import { flattenDeep, uniqBy } from "lodash";
|
|
@@ -83,8 +199,14 @@ export default {
|
|
|
83
199
|
emits: [],
|
|
84
200
|
data() {
|
|
85
201
|
return {
|
|
202
|
+
platform: 1,
|
|
86
203
|
talents: [],
|
|
87
204
|
data: [],
|
|
205
|
+
|
|
206
|
+
wujie_data: {
|
|
207
|
+
common: [],
|
|
208
|
+
mount: [],
|
|
209
|
+
},
|
|
88
210
|
loading: false,
|
|
89
211
|
};
|
|
90
212
|
},
|
|
@@ -93,10 +215,16 @@ export default {
|
|
|
93
215
|
return xfmap[this.subtype]?.id;
|
|
94
216
|
},
|
|
95
217
|
skillIds() {
|
|
96
|
-
return flattenDeep(
|
|
218
|
+
return flattenDeep(
|
|
219
|
+
Object.values(this.kungfumap?.[this.mountId]?.["skills"])
|
|
220
|
+
);
|
|
97
221
|
},
|
|
98
222
|
ids() {
|
|
99
|
-
return [
|
|
223
|
+
return [
|
|
224
|
+
...this.skillIds,
|
|
225
|
+
...this.talentSkillIds,
|
|
226
|
+
...this.commonIds,
|
|
227
|
+
].join(",");
|
|
100
228
|
},
|
|
101
229
|
kungfumap() {
|
|
102
230
|
return this.client == "origin" ? kungfumap_origin : kungfumap_std;
|
|
@@ -109,7 +237,9 @@ export default {
|
|
|
109
237
|
},
|
|
110
238
|
// 奇穴id std
|
|
111
239
|
talentSkillIds() {
|
|
112
|
-
return
|
|
240
|
+
return (
|
|
241
|
+
flattenDeep(this.mountId && this.talents?.[this.mountId]) || []
|
|
242
|
+
);
|
|
113
243
|
},
|
|
114
244
|
// 手动写死
|
|
115
245
|
commonIds() {
|
|
@@ -119,12 +249,16 @@ export default {
|
|
|
119
249
|
// 门派技能数据
|
|
120
250
|
kungfusSkills: function () {
|
|
121
251
|
const obj = {};
|
|
122
|
-
Object.entries(this.kungfumap[this.mountId]["skills"]).forEach(
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
252
|
+
Object.entries(this.kungfumap[this.mountId]["skills"]).forEach(
|
|
253
|
+
([key, value]) => {
|
|
254
|
+
obj[key] = value.map(SkillID => {
|
|
255
|
+
const currentSkill = this.data.find(
|
|
256
|
+
d => d.SkillID == SkillID
|
|
257
|
+
);
|
|
258
|
+
return currentSkill;
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
);
|
|
128
262
|
return obj;
|
|
129
263
|
},
|
|
130
264
|
// 门派技能套路id
|
|
@@ -132,21 +266,34 @@ export default {
|
|
|
132
266
|
return this.kungfumap[this.mountId]["kungfus"];
|
|
133
267
|
},
|
|
134
268
|
talentSkills() {
|
|
135
|
-
return this.talentSkillIds
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
269
|
+
return this.talentSkillIds
|
|
270
|
+
.map(SkillID => {
|
|
271
|
+
const currentSkill = this.data.find(
|
|
272
|
+
d => d.SkillID == SkillID
|
|
273
|
+
);
|
|
274
|
+
return currentSkill;
|
|
275
|
+
})
|
|
276
|
+
.filter(item => item && item.IsPassiveSkill == 0);
|
|
139
277
|
},
|
|
140
278
|
commonSkills() {
|
|
141
|
-
return this.commonIds
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
279
|
+
return this.commonIds
|
|
280
|
+
.map(SkillID => {
|
|
281
|
+
const currentSkill = this.data.find(
|
|
282
|
+
d => d.SkillID == SkillID
|
|
283
|
+
);
|
|
284
|
+
return currentSkill;
|
|
285
|
+
})
|
|
286
|
+
.filter(Boolean);
|
|
287
|
+
},
|
|
146
288
|
},
|
|
147
289
|
async mounted() {
|
|
148
290
|
this.talents = await getTalents();
|
|
149
291
|
await this.loadSkills();
|
|
292
|
+
getMobileForceSkillList(0).then(res => {
|
|
293
|
+
this.wujie_data.common = res.data.data
|
|
294
|
+
?.map(s => s.skill)
|
|
295
|
+
.filter(Boolean);
|
|
296
|
+
});
|
|
150
297
|
},
|
|
151
298
|
watch: {
|
|
152
299
|
mountId: {
|
|
@@ -154,13 +301,39 @@ export default {
|
|
|
154
301
|
this.loadSkills();
|
|
155
302
|
},
|
|
156
303
|
},
|
|
304
|
+
subtype: {
|
|
305
|
+
handler() {
|
|
306
|
+
if (this.client != "std") return;
|
|
307
|
+
const force_id = xfmap[this.subtype]?.force;
|
|
308
|
+
if (!force_id) return;
|
|
309
|
+
getMobileForceSkillList(force_id).then(res => {
|
|
310
|
+
this.wujie_data.mount = res.data.data
|
|
311
|
+
?.map(s => s.skill)
|
|
312
|
+
.filter(Boolean);
|
|
313
|
+
});
|
|
314
|
+
},
|
|
315
|
+
immediate: true,
|
|
316
|
+
},
|
|
317
|
+
client(val) {
|
|
318
|
+
if (val == "origin") {
|
|
319
|
+
this.platform = 1;
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
const force_id = xfmap[this.subtype]?.force;
|
|
323
|
+
if (!force_id) return;
|
|
324
|
+
getMobileForceSkillList(force_id).then(res => {
|
|
325
|
+
this.wujie_data.mount = res.data.data
|
|
326
|
+
?.map(s => s.skill)
|
|
327
|
+
.filter(Boolean);
|
|
328
|
+
});
|
|
329
|
+
},
|
|
157
330
|
},
|
|
158
331
|
methods: {
|
|
159
332
|
iconLink,
|
|
160
333
|
async loadSkills() {
|
|
161
334
|
this.loading = true;
|
|
162
335
|
return getSkills(this.params)
|
|
163
|
-
.then(
|
|
336
|
+
.then(res => {
|
|
164
337
|
this.data = uniqBy(res.data, "Name");
|
|
165
338
|
})
|
|
166
339
|
.finally(() => {
|
|
@@ -172,15 +345,13 @@ export default {
|
|
|
172
345
|
return kungfus[val];
|
|
173
346
|
},
|
|
174
347
|
selectSkill(skill) {
|
|
175
|
-
this.$emit(
|
|
348
|
+
this.$emit("selectSkill", skill);
|
|
176
349
|
},
|
|
177
350
|
formatSkill(arr) {
|
|
178
|
-
return arr.filter(item => item?.SkillID)
|
|
179
|
-
}
|
|
351
|
+
return arr.filter(item => item?.SkillID);
|
|
352
|
+
},
|
|
180
353
|
},
|
|
181
354
|
};
|
|
182
355
|
</script>
|
|
183
356
|
|
|
184
|
-
<style lang="less">
|
|
185
|
-
|
|
186
|
-
</style>
|
|
357
|
+
<style lang="less"></style>
|