mirror of
https://github.com/wmn1525/grasscutterTools.git
synced 2024-11-25 09:27:27 +00:00
:add 在线人员快捷操作 代码生成去除/ 默认添加uid@
This commit is contained in:
parent
141fad05a7
commit
dc19669a78
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@ -140,5 +140,8 @@
|
|||||||
],
|
],
|
||||||
"[javascript]": {
|
"[javascript]": {
|
||||||
"editor.defaultFormatter": "vscode.typescript-language-features"
|
"editor.defaultFormatter": "vscode.typescript-language-features"
|
||||||
|
},
|
||||||
|
"[json]": {
|
||||||
|
"editor.defaultFormatter": "vscode.json-language-features"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
2
src/components.d.ts
vendored
2
src/components.d.ts
vendored
@ -9,12 +9,14 @@ declare module '@vue/runtime-core' {
|
|||||||
ACascader: typeof import('@arco-design/web-vue')['Cascader']
|
ACascader: typeof import('@arco-design/web-vue')['Cascader']
|
||||||
ACheckbox: typeof import('@arco-design/web-vue')['Checkbox']
|
ACheckbox: typeof import('@arco-design/web-vue')['Checkbox']
|
||||||
ADescriptions: typeof import('@arco-design/web-vue')['Descriptions']
|
ADescriptions: typeof import('@arco-design/web-vue')['Descriptions']
|
||||||
|
ADrawer: typeof import('@arco-design/web-vue')['Drawer']
|
||||||
AInput: typeof import('@arco-design/web-vue')['Input']
|
AInput: typeof import('@arco-design/web-vue')['Input']
|
||||||
AInputNumber: typeof import('@arco-design/web-vue')['InputNumber']
|
AInputNumber: typeof import('@arco-design/web-vue')['InputNumber']
|
||||||
ALink: typeof import('@arco-design/web-vue')['Link']
|
ALink: typeof import('@arco-design/web-vue')['Link']
|
||||||
AMenu: typeof import('@arco-design/web-vue')['Menu']
|
AMenu: typeof import('@arco-design/web-vue')['Menu']
|
||||||
AMenuItem: typeof import('@arco-design/web-vue')['MenuItem']
|
AMenuItem: typeof import('@arco-design/web-vue')['MenuItem']
|
||||||
ASelect: typeof import('@arco-design/web-vue')['Select']
|
ASelect: typeof import('@arco-design/web-vue')['Select']
|
||||||
|
ASpace: typeof import('@arco-design/web-vue')['Space']
|
||||||
ASubMenu: typeof import('@arco-design/web-vue')['SubMenu']
|
ASubMenu: typeof import('@arco-design/web-vue')['SubMenu']
|
||||||
ATable: typeof import('@arco-design/web-vue')['Table']
|
ATable: typeof import('@arco-design/web-vue')['Table']
|
||||||
ATooltip: typeof import('@arco-design/web-vue')['Tooltip']
|
ATooltip: typeof import('@arco-design/web-vue')['Tooltip']
|
||||||
|
@ -7,11 +7,11 @@ import { Message } from '@arco-design/web-vue'
|
|||||||
const { text, isSupported, copy } = useClipboard()
|
const { text, isSupported, copy } = useClipboard()
|
||||||
|
|
||||||
var value2 = ref(223)
|
var value2 = ref(223)
|
||||||
var uid = ref('')
|
var uid = ref('@')
|
||||||
var num = ref(1000)
|
var num = ref(1000)
|
||||||
|
|
||||||
const value = computed(() => {
|
const value = computed(() => {
|
||||||
return `/give ${uid.value} ${value2.value} ${num.value}`
|
return `give ${uid.value} ${value2.value} ${num.value}`
|
||||||
})
|
})
|
||||||
const options = reactive([
|
const options = reactive([
|
||||||
{
|
{
|
||||||
|
@ -8,7 +8,7 @@ import holyrelicx from './json/holyrelicnx.json'
|
|||||||
import { Message } from '@arco-design/web-vue'
|
import { Message } from '@arco-design/web-vue'
|
||||||
const { text, isSupported, copy } = useClipboard()
|
const { text, isSupported, copy } = useClipboard()
|
||||||
|
|
||||||
var uid = ref('')
|
var uid = ref('@')
|
||||||
var holyrelicnamevalue = ref('')
|
var holyrelicnamevalue = ref('')
|
||||||
var holyrelicnmainvalue = ref('')
|
var holyrelicnmainvalue = ref('')
|
||||||
|
|
||||||
@ -23,7 +23,7 @@ const value = computed(() => {
|
|||||||
xct = xct + ` ${k.value},${k.num}`
|
xct = xct + ` ${k.value},${k.num}`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return `/giveart ${uid.value} ${holyrelicnamevalue.value} ${holyrelicnmainvalue.value}${xct} ${
|
return `giveart ${uid.value} ${holyrelicnamevalue.value} ${holyrelicnmainvalue.value}${xct} ${
|
||||||
grade.value + 1
|
grade.value + 1
|
||||||
}`
|
}`
|
||||||
})
|
})
|
||||||
|
@ -2,266 +2,111 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"label": "生命值",
|
"label": "生命值",
|
||||||
"value": 10001
|
"value": "hp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "生命值百分比",
|
"label": "最大生命值",
|
||||||
"value": 10002
|
"value": "maxhp"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "攻击力",
|
"label": "攻击力",
|
||||||
"value": 10003
|
"value": "atk"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "攻击力百分比",
|
"label": "元素精通",
|
||||||
"value": 10004
|
"value": "em"
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "防御力",
|
|
||||||
"value": 10005
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "防御力百分比",
|
|
||||||
"value": 10006
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "元素充能效率",
|
"label": "元素充能效率",
|
||||||
"value": 10007
|
"value": "er"
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "元素精通",
|
|
||||||
"value": 10008
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "火元素抗性",
|
|
||||||
"value": 10009
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "雷元素抗性",
|
|
||||||
"value": 10010
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "冰元素抗性",
|
|
||||||
"value": 10011
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "水元素抗性",
|
|
||||||
"value": 10012
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "风元素抗性",
|
|
||||||
"value": 10013
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "岩元素抗性",
|
|
||||||
"value": 10014
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "草元素抗性",
|
|
||||||
"value": 10015
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "攻击力",
|
|
||||||
"value": 12001
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "生命值",
|
|
||||||
"value": 13001
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "生命值百分比",
|
|
||||||
"value": 13002
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "攻击力",
|
|
||||||
"value": 13003
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "攻击力百分比",
|
|
||||||
"value": 13004
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "防御力",
|
|
||||||
"value": 13005
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "防御力百分比",
|
|
||||||
"value": 13006
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "暴击率",
|
"label": "暴击率",
|
||||||
"value": 13007
|
"value": "crate"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "暴击伤害",
|
"label": "暴击伤害",
|
||||||
"value": 13008
|
"value": "cdmg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "冷却缩减",
|
||||||
|
"value": "cdr"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "治疗加成",
|
"label": "治疗加成",
|
||||||
"value": 13009
|
"value": "heal"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "元素精通",
|
"label": "受治疗加成",
|
||||||
"value": 13010
|
"value": "heali"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "生命值",
|
"label": "护盾强效",
|
||||||
"value": 14001
|
"value": "shield"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "生命值",
|
"label": "无视防御",
|
||||||
"value": 15001
|
"value": "defi"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "生命值百分比",
|
"label": "元素增伤 火",
|
||||||
"value": 15002
|
"value": "epyro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "攻击力",
|
"label": "元素增伤 冰",
|
||||||
"value": 15003
|
"value": "ecryo"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "攻击力百分比",
|
"label": "元素增伤 水",
|
||||||
"value": 15004
|
"value": "ehydro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "防御力",
|
"label": "元素增伤 岩",
|
||||||
"value": 15005
|
"value": "egeo"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "防御力百分比",
|
"label": "元素增伤 草",
|
||||||
"value": 15006
|
"value": "edendro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "元素精通",
|
"label": "元素增伤 雷",
|
||||||
"value": 15007
|
"value": "eelectro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "火元素伤害加成",
|
"label": "元素增伤 物理",
|
||||||
"value": 15008
|
"value": "ephys"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "雷元素伤害加成",
|
"label": "元素增伤 草",
|
||||||
"value": 15009
|
"value": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "冰元素伤害加成",
|
"label": "元素抗性 火",
|
||||||
"value": 15010
|
"value": "respyro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "水元素伤害加成",
|
"label": "元素抗性 冰",
|
||||||
"value": 15011
|
"value": "rescryo"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "风元素伤害加成",
|
"label": "元素抗性 水",
|
||||||
"value": 15012
|
"value": "reshydro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "岩元素伤害加成",
|
"label": "元素抗性 岩",
|
||||||
"value": 15013
|
"value": "resgeo"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "草元素伤害加成",
|
"label": "元素抗性 草",
|
||||||
"value": 15014
|
"value": "resdendro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "物理伤害加成",
|
"label": "元素抗性 雷",
|
||||||
"value": 15015
|
"value": "reselectro"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "攻击力百分比",
|
"label": "元素抗性 物理",
|
||||||
"value": 10990
|
"value": "resphys"
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "生命值百分比",
|
|
||||||
"value": 10980
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "防御力百分比",
|
|
||||||
"value": 10970
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "元素充能效率",
|
|
||||||
"value": 10960
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "元素精通",
|
|
||||||
"value": 10950
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "攻击力百分比",
|
|
||||||
"value": 30990
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "生命值百分比",
|
|
||||||
"value": 30980
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "防御力百分比",
|
|
||||||
"value": 30970
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "暴击率",
|
|
||||||
"value": 30960
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "暴击伤害",
|
|
||||||
"value": 30950
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "治疗加成",
|
|
||||||
"value": 30940
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "元素精通",
|
|
||||||
"value": 30930
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "攻击力百分比",
|
|
||||||
"value": 50990
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "生命值百分比",
|
|
||||||
"value": 50980
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "防御力百分比",
|
|
||||||
"value": 50970
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "火元素伤害加成",
|
|
||||||
"value": 50960
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "雷元素伤害加成",
|
|
||||||
"value": 50950
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "冰元素伤害加成",
|
|
||||||
"value": 50940
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "水元素伤害加成",
|
|
||||||
"value": 50930
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "风元素伤害加成",
|
|
||||||
"value": 50920
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "岩元素伤害加成",
|
|
||||||
"value": 50910
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "草元素伤害加成",
|
|
||||||
"value": 50900
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "物理伤害加成",
|
|
||||||
"value": 50890
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "元素精通",
|
|
||||||
"value": 50880
|
|
||||||
}
|
}
|
||||||
|
|
||||||
]
|
]
|
@ -10,9 +10,10 @@ const { text, isSupported, copy } = useClipboard()
|
|||||||
var value2 = ref(21010101)
|
var value2 = ref(21010101)
|
||||||
var grade = ref(80)
|
var grade = ref(80)
|
||||||
var num = ref(10)
|
var num = ref(10)
|
||||||
|
var uid = ref('@')
|
||||||
|
|
||||||
const value = computed(() => {
|
const value = computed(() => {
|
||||||
return `/spawn ${value2.value} ${num.value} ${grade.value}`
|
return `spawn ${uid.value} ${value2.value} ${num.value} ${grade.value}`
|
||||||
})
|
})
|
||||||
const options = reactive(monster)
|
const options = reactive(monster)
|
||||||
const message = Message
|
const message = Message
|
||||||
@ -27,29 +28,21 @@ function copyvalue() {
|
|||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="commuse">
|
<div class="commuse">
|
||||||
|
<div class="commuse-item">
|
||||||
|
<div class="text-slate-900 dark:text-slate-100"> UID: </div>
|
||||||
|
<a-input v-model="uid" placeholder="请输入UID" allow-clear />
|
||||||
|
</div>
|
||||||
<div class="commuse-item">
|
<div class="commuse-item">
|
||||||
<div class="text-slate-900 dark:text-slate-100"> 怪物: </div>
|
<div class="text-slate-900 dark:text-slate-100"> 怪物: </div>
|
||||||
<a-cascader allow-search v-model="value2" :options="options" placeholder="" filterable />
|
<a-cascader allow-search v-model="value2" :options="options" placeholder="" filterable />
|
||||||
</div>
|
</div>
|
||||||
<div class="commuse-item">
|
<div class="commuse-item">
|
||||||
<div class="text-slate-900 dark:text-slate-100"> 等级: </div>
|
<div class="text-slate-900 dark:text-slate-100"> 等级: </div>
|
||||||
<a-input-number
|
<a-input-number v-model="grade" placeholder="请输入数量" mode="button" size="large" class="input-demo" />
|
||||||
v-model="grade"
|
|
||||||
placeholder="请输入数量"
|
|
||||||
mode="button"
|
|
||||||
size="large"
|
|
||||||
class="input-demo"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="commuse-item">
|
<div class="commuse-item">
|
||||||
<div class="text-slate-900 dark:text-slate-100"> 数量: </div>
|
<div class="text-slate-900 dark:text-slate-100"> 数量: </div>
|
||||||
<a-input-number
|
<a-input-number v-model="num" placeholder="请输入数量" mode="button" size="large" class="input-demo" />
|
||||||
v-model="num"
|
|
||||||
placeholder="请输入数量"
|
|
||||||
mode="button"
|
|
||||||
size="large"
|
|
||||||
class="input-demo"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="generate">
|
<div class="generate">
|
||||||
<a-input v-model="value" placeholder="" />
|
<a-input v-model="value" placeholder="" />
|
||||||
@ -70,7 +63,7 @@ function copyvalue() {
|
|||||||
color: #000;
|
color: #000;
|
||||||
margin: 18px 0;
|
margin: 18px 0;
|
||||||
|
|
||||||
> div {
|
>div {
|
||||||
&:nth-child(1) {
|
&:nth-child(1) {
|
||||||
width: 150px;
|
width: 150px;
|
||||||
text-align: right;
|
text-align: right;
|
||||||
|
86
src/pages/start/components/operation.json
Normal file
86
src/pages/start/components/operation.json
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"label": "给予指定玩家全部物品",
|
||||||
|
"value": [
|
||||||
|
"giveall @"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "60级",
|
||||||
|
"value": [
|
||||||
|
"give @ 102 1880200"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "世界8",
|
||||||
|
"value": [
|
||||||
|
"setworldlevel @ 8"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "1000000原石",
|
||||||
|
"value": [
|
||||||
|
"give @ 201 1000000"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "1000000纠缠之缘",
|
||||||
|
"value": [
|
||||||
|
"give @ 223 1880200"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "1000000相遇之缘",
|
||||||
|
"value": [
|
||||||
|
"give @ 224 1000000"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "1000000魔拉",
|
||||||
|
"value": [
|
||||||
|
"give @ 202 1000000"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "1000000创世结晶",
|
||||||
|
"value": [
|
||||||
|
"give @ 203 1000000"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "1000000创世结晶",
|
||||||
|
"value": [
|
||||||
|
"give @ 102 1000000"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "50只120级丘丘人",
|
||||||
|
"value": [
|
||||||
|
"spawn @ 21010101 50 120"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "治疗队伍中所有角色",
|
||||||
|
"value": [
|
||||||
|
"heal @"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "当前角色普攻满级",
|
||||||
|
"value": [
|
||||||
|
"talent @ n 10"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "当前角色Q满级",
|
||||||
|
"value": [
|
||||||
|
"talent @ q 10"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "当前角色E满级",
|
||||||
|
"value": [
|
||||||
|
"talent @ e 10"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
@ -9,38 +9,32 @@ const { text, isSupported, copy } = useClipboard()
|
|||||||
const options = reactive([
|
const options = reactive([
|
||||||
{
|
{
|
||||||
title: '治疗队伍中所有角色',
|
title: '治疗队伍中所有角色',
|
||||||
isuse: '仅客户端',
|
value: 'heal',
|
||||||
value: '/heal',
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '列出在线玩家',
|
title: '列出在线玩家',
|
||||||
isuse: '均可使用',
|
value: 'list',
|
||||||
value: '/list',
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '获取当前坐标',
|
title: '获取当前坐标',
|
||||||
isuse: '仅客户端',
|
value: 'position',
|
||||||
value: '/position',
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '重载服务器配置',
|
title: '重载服务器配置',
|
||||||
isuse: '均可使用',
|
value: 'reload',
|
||||||
value: '/reload',
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '重启服务端',
|
title: '重启服务端',
|
||||||
isuse: '均可使用',
|
isuse: '均可使用',
|
||||||
value: '/restart',
|
value: 'restart',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '停止服务器',
|
title: '停止服务器',
|
||||||
isuse: '均可使用',
|
value: 'stop',
|
||||||
value: '/stop',
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '世界等级8',
|
title: '世界等级8',
|
||||||
isuse: '仅客户端',
|
value: 'setworldlevel 8',
|
||||||
value: '/setworldlevel 8',
|
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
const message = Message
|
const message = Message
|
||||||
|
@ -1,15 +1,40 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="personnel">
|
<div class="personnel">
|
||||||
<a-table :columns="columns" :data="data">
|
<a-space direction="vertical">
|
||||||
<template #optional="{ record }">
|
<a-button type="outline" @click="updatePlayerList">刷新</a-button>
|
||||||
<a-button @click="$modal.info({ title: 'Name', content: record.name })">操作</a-button>
|
<a-table :columns="columns" :data="appStore.PlayerList">
|
||||||
</template>
|
<template #optional="{ record }">
|
||||||
</a-table>
|
<a-button @click="handle(record)">操作</a-button>
|
||||||
|
</template>
|
||||||
|
</a-table>
|
||||||
|
</a-space>
|
||||||
</div>
|
</div>
|
||||||
|
<a-drawer :width="500" :visible="visible" placement="right" @ok="handleOk" @cancel="handleCancel" unmountOnClose>
|
||||||
|
<template #title>
|
||||||
|
操作 UID @{{ handleUid }}
|
||||||
|
</template>
|
||||||
|
<div class="personnel-drawer">
|
||||||
|
<a-space direction="vertical" fill>
|
||||||
|
<div>
|
||||||
|
一键操作
|
||||||
|
</div>
|
||||||
|
<a-space wrap>
|
||||||
|
<a-button v-for="(item, index) in operationData" type="outline" :key="index" @click="handleOP(item.value)">{{
|
||||||
|
item.label
|
||||||
|
}}</a-button>
|
||||||
|
</a-space>
|
||||||
|
</a-space>
|
||||||
|
</div>
|
||||||
|
</a-drawer>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { reactive, ref, computed } from 'vue'
|
import { reactive, ref, onMounted } from 'vue'
|
||||||
|
import { useAppStore } from '@/store/modules/app'
|
||||||
|
import operationdata from './operation.json'
|
||||||
|
const appStore = useAppStore()
|
||||||
|
function updatePlayerList() {
|
||||||
|
appStore.socketSend("{\"type\":\"Player\",\"data\":\"0\"}");
|
||||||
|
}
|
||||||
const data = ref([])
|
const data = ref([])
|
||||||
const columns = [
|
const columns = [
|
||||||
{
|
{
|
||||||
@ -38,9 +63,48 @@ const columns = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '操作',
|
title: '操作',
|
||||||
dataIndex: 'Optional',
|
slotName: 'optional'
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
const operationData = ref(operationdata)
|
||||||
|
const handleUid = ref(1)
|
||||||
|
const handle = (record: any) => {
|
||||||
|
handleUid.value = record.uid
|
||||||
|
visible.value = true;
|
||||||
|
}
|
||||||
|
const handleOP = (valueList: string[]) => {
|
||||||
|
for (let index = 0; index < valueList.length; index++) {
|
||||||
|
const element = valueList[index];
|
||||||
|
var i = element.search("@") + 1
|
||||||
|
send(insertStr(element, i))
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
function send(cmd: string) {
|
||||||
|
const send_msg = {
|
||||||
|
type: 'CMD',
|
||||||
|
data: cmd,
|
||||||
|
}
|
||||||
|
const send_msg_str = JSON.stringify(send_msg)
|
||||||
|
appStore.socketSend(send_msg_str)
|
||||||
|
}
|
||||||
|
function insertStr(soure: string, start: number, newStr = handleUid.value) {
|
||||||
|
return soure.slice(0, start) + newStr + soure.slice(start);
|
||||||
|
}
|
||||||
|
const handleOk = () => {
|
||||||
|
visible.value = false;
|
||||||
|
}
|
||||||
|
const handleCancel = () => {
|
||||||
|
visible.value = false;
|
||||||
|
}
|
||||||
|
const visible = ref(false);
|
||||||
|
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
updatePlayerList()
|
||||||
|
})
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
.personnel {
|
.personnel {
|
||||||
@ -48,4 +112,11 @@ const columns = [
|
|||||||
width: 700px;
|
width: 700px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
<style lang="less" >
|
||||||
|
.personnel-drawer {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
@ -8,11 +8,12 @@ import role from './json/role.json'
|
|||||||
|
|
||||||
const { text, isSupported, copy } = useClipboard()
|
const { text, isSupported, copy } = useClipboard()
|
||||||
|
|
||||||
var value2 = ref()
|
var value2 = ref("hp")
|
||||||
var num = ref()
|
var num = ref()
|
||||||
|
var uid = ref("@")
|
||||||
|
|
||||||
const value = computed(() => {
|
const value = computed(() => {
|
||||||
return `/setstats ${value2.value} ${num.value}`
|
return `setstats ${uid.value} ${value2.value} ${num.value}`
|
||||||
})
|
})
|
||||||
const options = reactive(role)
|
const options = reactive(role)
|
||||||
const message = Message
|
const message = Message
|
||||||
@ -28,6 +29,10 @@ function copyvalue() {
|
|||||||
<template>
|
<template>
|
||||||
<div class="commuse">
|
<div class="commuse">
|
||||||
<div class="title"> 直接修改当前角色的面板 </div>
|
<div class="title"> 直接修改当前角色的面板 </div>
|
||||||
|
<div class="commuse-item">
|
||||||
|
<div class="text-slate-900 dark:text-slate-100"> UID: </div>
|
||||||
|
<a-input v-model="uid" placeholder="请输入UID" allow-clear />
|
||||||
|
</div>
|
||||||
<div class="commuse-item">
|
<div class="commuse-item">
|
||||||
<div class="text-slate-900 dark:text-slate-100"> 属性: </div>
|
<div class="text-slate-900 dark:text-slate-100"> 属性: </div>
|
||||||
<a-cascader allow-search v-model="value2" :options="options" placeholder="" filterable />
|
<a-cascader allow-search v-model="value2" :options="options" placeholder="" filterable />
|
||||||
|
@ -8,7 +8,7 @@ const { text, isSupported, copy } = useClipboard()
|
|||||||
|
|
||||||
var value2 = ref()
|
var value2 = ref()
|
||||||
var value3 = ref('/give')
|
var value3 = ref('/give')
|
||||||
var uid = ref()
|
var uid = ref("@")
|
||||||
var num = ref()
|
var num = ref()
|
||||||
|
|
||||||
const value = computed(() => {
|
const value = computed(() => {
|
||||||
|
@ -6,14 +6,14 @@ import { Message } from '@arco-design/web-vue'
|
|||||||
import weapon from './json/weapon.json'
|
import weapon from './json/weapon.json'
|
||||||
const { text, isSupported, copy } = useClipboard()
|
const { text, isSupported, copy } = useClipboard()
|
||||||
|
|
||||||
var uid = ref(1)
|
var uid = ref("@")
|
||||||
var value2 = ref(12510)
|
var value2 = ref(12510)
|
||||||
var num = ref(5)
|
var num = ref(5)
|
||||||
var grade = ref(90)
|
var grade = ref(90)
|
||||||
var refined = ref(5)
|
var refined = ref(5)
|
||||||
|
|
||||||
const value = computed(() => {
|
const value = computed(() => {
|
||||||
return `/give ${uid.value} ${value2.value} ${num.value} ${grade.value} ${refined.value}`
|
return `give ${uid.value} ${value2.value} ${num.value} ${grade.value} ${refined.value}`
|
||||||
})
|
})
|
||||||
const options = reactive(weapon)
|
const options = reactive(weapon)
|
||||||
|
|
||||||
|
@ -57,7 +57,8 @@ export const useAppStore = defineStore(
|
|||||||
send: (data: string | ArrayBuffer | Blob, useBuffer?: boolean | undefined) => { },
|
send: (data: string | ArrayBuffer | Blob, useBuffer?: boolean | undefined) => { },
|
||||||
close: () => { },
|
close: () => { },
|
||||||
open: () => { },
|
open: () => { },
|
||||||
mesgData: [""]
|
mesgData: [""],
|
||||||
|
PlayerList: []
|
||||||
}),
|
}),
|
||||||
getters: {},
|
getters: {},
|
||||||
actions: {
|
actions: {
|
||||||
@ -117,7 +118,7 @@ export const useAppStore = defineStore(
|
|||||||
var label = ""
|
var label = ""
|
||||||
if (key == "getAllocatedMemory") {
|
if (key == "getAllocatedMemory") {
|
||||||
label = "系统内存"
|
label = "系统内存"
|
||||||
element = (element/1024/1024).toFixed(2) + "M"
|
element = (element / 1024 / 1024).toFixed(2) + "M"
|
||||||
}
|
}
|
||||||
if (key == "playerCount") {
|
if (key == "playerCount") {
|
||||||
label = "在线玩家数量"
|
label = "在线玩家数量"
|
||||||
@ -131,7 +132,7 @@ export const useAppStore = defineStore(
|
|||||||
}
|
}
|
||||||
if (key == "getFreeMemory") {
|
if (key == "getFreeMemory") {
|
||||||
label = "已用内存"
|
label = "已用内存"
|
||||||
element = (element/1024/1024).toFixed(2) + "M"
|
element = (element / 1024 / 1024).toFixed(2) + "M"
|
||||||
}
|
}
|
||||||
data.push({
|
data.push({
|
||||||
label: label,
|
label: label,
|
||||||
@ -175,8 +176,11 @@ export const useAppStore = defineStore(
|
|||||||
|
|
||||||
case "cmd_msg":
|
case "cmd_msg":
|
||||||
this.mesgData.push(parse.data)
|
this.mesgData.push(parse.data)
|
||||||
|
Message.info(parse.data)
|
||||||
|
break;
|
||||||
|
case "PlayerList":
|
||||||
|
this.PlayerList = parse.data
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user