refactor: 删除 unplugin-vue-components 插件

This commit is contained in:
unanmed 2025-09-02 13:23:03 +08:00
parent f0551d163f
commit b34de95c06
19 changed files with 133 additions and 191 deletions

18
components.d.ts vendored
View File

@ -1,18 +0,0 @@
// generated by unplugin-vue-components
// We suggest you to commit this file into source control
// Read more: https://github.com/vuejs/core/pull/3399
import '@vue/runtime-core'
export {}
declare module '@vue/runtime-core' {
export interface GlobalComponents {
ADivider: typeof import('ant-design-vue/es')['Divider']
AInput: typeof import('ant-design-vue/es')['Input']
AProgress: typeof import('ant-design-vue/es')['Progress']
ASelect: typeof import('ant-design-vue/es')['Select']
ASelectOption: typeof import('ant-design-vue/es')['SelectOption']
ASlider: typeof import('ant-design-vue/es')['Slider']
ASwitch: typeof import('ant-design-vue/es')['Switch']
}
}

View File

@ -62,7 +62,8 @@
"compressing": "^1.10.1", "compressing": "^1.10.1",
"concurrently": "^9.1.2", "concurrently": "^9.1.2",
"eslint": "^9.22.0", "eslint": "^9.22.0",
"eslint-plugin-prettier": "^5.5.0", "eslint-config-prettier": "^10.1.8",
"eslint-plugin-prettier": "^5.5.4",
"eslint-plugin-react": "^7.37.5", "eslint-plugin-react": "^7.37.5",
"eslint-plugin-vue": "^9.33.0", "eslint-plugin-vue": "^9.33.0",
"express": "^5.1.0", "express": "^5.1.0",
@ -82,7 +83,6 @@
"tsx": "^4.20.5", "tsx": "^4.20.5",
"typescript": "^5.9.2", "typescript": "^5.9.2",
"typescript-eslint": "^8.27.0", "typescript-eslint": "^8.27.0",
"unplugin-vue-components": "^0.22.12",
"vite": "^6.3.5", "vite": "^6.3.5",
"vite-plugin-dts": "^4.5.4", "vite-plugin-dts": "^4.5.4",
"vitepress": "^1.6.3", "vitepress": "^1.6.3",

View File

@ -9,12 +9,12 @@
<Scroll class="column-left" :id="`column-left-${id}`"> <Scroll class="column-left" :id="`column-left-${id}`">
<slot name="left"></slot> <slot name="left"></slot>
</Scroll> </Scroll>
<a-divider <Divider
class="divider" class="divider"
dashed dashed
style="border-color: #ddd4" style="border-color: #ddd4"
:type="isMobile ? 'horizontal' : 'vertical'" :type="isMobile ? 'horizontal' : 'vertical'"
></a-divider> ></Divider>
<Scroll class="column-right" :id="`column-right-${id}`" <Scroll class="column-right" :id="`column-right-${id}`"
><slot name="right"></slot ><slot name="right"></slot
></Scroll> ></Scroll>
@ -25,6 +25,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { onMounted, onUpdated } from 'vue'; import { onMounted, onUpdated } from 'vue';
import { LeftOutlined } from '@ant-design/icons-vue'; import { LeftOutlined } from '@ant-design/icons-vue';
import { Divider } from 'ant-design-vue';
import Scroll from './scroll.vue'; import Scroll from './scroll.vue';
import { isMobile, requireUniqueSymbol } from '../use'; import { isMobile, requireUniqueSymbol } from '../use';
import { isNil } from 'lodash-es'; import { isNil } from 'lodash-es';

View File

@ -27,11 +27,11 @@
</div> </div>
<div class="special-text" v-else>无属性</div> <div class="special-text" v-else>无属性</div>
</div> </div>
<a-divider <Divider
type="vertical" type="vertical"
dashed dashed
style="height: 100%; margin: 0 3% 0 1%; border-color: #ddd4" style="height: 100%; margin: 0 3% 0 1%; border-color: #ddd4"
></a-divider> ></Divider>
<div class="rightbar"> <div class="rightbar">
<div class="detail"> <div class="detail">
<div class="detail-info"> <div class="detail-info">
@ -76,7 +76,6 @@
}}</span }}</span
> >
</div> </div>
<div class="detail-info"> <div class="detail-info">
<span style="color: lightsalmon" <span style="color: lightsalmon"
>临界&nbsp;&nbsp;&nbsp;&nbsp;{{ >临界&nbsp;&nbsp;&nbsp;&nbsp;{{
@ -110,6 +109,7 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { Divider } from 'ant-design-vue';
import BoxAnimate from '../components/boxAnimate.vue'; import BoxAnimate from '../components/boxAnimate.vue';
import { isMobile } from '../use'; import { isMobile } from '../use';
import { ToShowEnemy } from '../tools/book'; import { ToShowEnemy } from '../tools/book';

View File

@ -5,11 +5,11 @@
<canvas ref="critical" class="chart"></canvas> <canvas ref="critical" class="chart"></canvas>
<div class="slider-div"> <div class="slider-div">
<span>加攻次数&nbsp;&nbsp;&nbsp;&nbsp;{{ addAtk }}</span> <span>加攻次数&nbsp;&nbsp;&nbsp;&nbsp;{{ addAtk }}</span>
<a-slider <Slider
class="slider" class="slider"
v-model:value="addAtk" v-model:value="addAtk"
:max="ceil((originCri.at(-1)?.[0] ?? 2) / ratio) - 1" :max="ceil((originCri.at(-1)?.[0] ?? 2) / ratio) - 1"
></a-slider> ></Slider>
<span <span
>最大值&nbsp;&nbsp;&nbsp;&nbsp;{{ >最大值&nbsp;&nbsp;&nbsp;&nbsp;{{
ceil((originCri.at(-1)?.[0] ?? 2) / ratio) - 1 ceil((originCri.at(-1)?.[0] ?? 2) / ratio) - 1
@ -17,20 +17,20 @@
> >
</div> </div>
</div> </div>
<a-divider <Divider
dashed dashed
style="width: 100%; border-color: #ddd4; margin: 1vh 0 1vh 0" style="width: 100%; border-color: #ddd4; margin: 1vh 0 1vh 0"
></a-divider> ></Divider>
<div id="def"> <div id="def">
<div class="des">加防伤害</div> <div class="des">加防伤害</div>
<canvas ref="def" class="chart"></canvas> <canvas ref="def" class="chart"></canvas>
<div class="slider-div"> <div class="slider-div">
<span>加防次数&nbsp;&nbsp;&nbsp;&nbsp;{{ addDef }}</span> <span>加防次数&nbsp;&nbsp;&nbsp;&nbsp;{{ addDef }}</span>
<a-slider <Slider
class="slider" class="slider"
v-model:value="addDef" v-model:value="addDef"
:max="ceil((originDef.at(-1)?.[0] ?? 2) / ratio) - 1" :max="ceil((originDef.at(-1)?.[0] ?? 2) / ratio) - 1"
></a-slider> ></Slider>
<span <span
>最大值&nbsp;&nbsp;&nbsp;&nbsp;{{ >最大值&nbsp;&nbsp;&nbsp;&nbsp;{{
ceil((originDef.at(-1)?.[0] ?? 2) / ratio) - 1 ceil((originDef.at(-1)?.[0] ?? 2) / ratio) - 1
@ -93,6 +93,7 @@
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { Slider, Divider } from 'ant-design-vue';
import { computed, onMounted, ref, watch } from 'vue'; import { computed, onMounted, ref, watch } from 'vue';
import { detailInfo, getCriticalDamage, getDefDamage } from '../tools/book'; import { detailInfo, getCriticalDamage, getDefDamage } from '../tools/book';
import Chart, { ChartConfiguration } from 'chart.js/auto'; import Chart, { ChartConfiguration } from 'chart.js/auto';

View File

@ -5,10 +5,10 @@
<component :is="info"></component> <component :is="info"></component>
</div> </div>
</Scroll> </Scroll>
<a-divider <Divider
dashed dashed
style="margin: 2vh 0 2vh 0; border-color: #ddd4" style="margin: 2vh 0 2vh 0; border-color: #ddd4"
></a-divider> ></Divider>
<div id="critical"> <div id="critical">
<div style="font-size: 2.5vh; width: 100%; text-align: center"> <div style="font-size: 2.5vh; width: 100%; text-align: center">
临界表 临界表
@ -31,6 +31,7 @@
import { isMobile } from '../use'; import { isMobile } from '../use';
import { detailInfo, getSpecialHint } from '../tools/book'; import { detailInfo, getSpecialHint } from '../tools/book';
import Scroll from '../components/scroll.vue'; import Scroll from '../components/scroll.vue';
import { Divider } from 'ant-design-vue';
const props = defineProps<{ const props = defineProps<{
fromBook?: boolean; fromBook?: boolean;

View File

@ -23,10 +23,10 @@
@select="select(e, i)" @select="select(e, i)"
@hover="selected = i" @hover="selected = i"
></EnemyOne> ></EnemyOne>
<a-divider <Divider
dashed dashed
style="width: 100%; border-color: #ddd4" style="width: 100%; border-color: #ddd4"
></a-divider> ></Divider>
</div> </div>
</Scroll> </Scroll>
</div> </div>
@ -50,6 +50,7 @@ import { mainSetting } from '../preset/settingIns';
import { isMobile } from '../use'; import { isMobile } from '../use';
import { IMountedVBind } from '../interface'; import { IMountedVBind } from '../interface';
import { isNil } from 'lodash-es'; import { isNil } from 'lodash-es';
import { Divider } from 'ant-design-vue';
const props = defineProps<IMountedVBind>(); const props = defineProps<IMountedVBind>();

View File

@ -8,10 +8,10 @@
</div> </div>
<div id="info" :style="{ top: `${top}px` }"> <div id="info" :style="{ top: `${top}px` }">
<EnemyOne :enemy="enemy!"></EnemyOne> <EnemyOne :enemy="enemy!"></EnemyOne>
<a-divider <Divider
dashed dashed
style="margin: 2vh 0 2vh 0; border-color: #ddd4; width: 100%" style="margin: 2vh 0 2vh 0; border-color: #ddd4; width: 100%"
></a-divider> ></Divider>
</div> </div>
<Transition name="detail"> <Transition name="detail">
<EnemySpecial <EnemySpecial
@ -78,6 +78,7 @@ import { LeftOutlined, RightOutlined } from '@ant-design/icons-vue';
import EnemyCritical from '../panel/enemyCritical.vue'; import EnemyCritical from '../panel/enemyCritical.vue';
import { detailInfo } from '../tools/book'; import { detailInfo } from '../tools/book';
import { gameKey } from '@motajs/system-action'; import { gameKey } from '@motajs/system-action';
import { Divider } from 'ant-design-vue';
const props = defineProps<{ const props = defineProps<{
fromBook?: boolean; fromBook?: boolean;

View File

@ -29,14 +29,14 @@
<meh-outlined /> <meh-outlined />
</span> </span>
<div id="danmaku-input-div"> <div id="danmaku-input-div">
<a-input <Input
id="danmaku-input-input" id="danmaku-input-input"
:max-length="200"
v-model:value="inputValue" v-model:value="inputValue"
:max-length="200"
placeholder="请在此输入弹幕,显示中括号请使用\[或\]" placeholder="请在此输入弹幕,显示中括号请使用\[或\]"
autocomplete="off" autocomplete="off"
@change="input(inputValue)" @change="input(inputValue)"
@pressEnter="inputEnter()" @press-enter="inputEnter()"
/> />
</div> </div>
<span <span
@ -50,14 +50,14 @@
<Transition name="danmaku"> <Transition name="danmaku">
<div v-if="cssOpened" id="danmaku-css"> <div v-if="cssOpened" id="danmaku-css">
<span id="danmaku-css-hint">编辑弹幕的 CSS 样式</span> <span id="danmaku-css-hint">编辑弹幕的 CSS 样式</span>
<a-input <Input
id="danmaku-css-input" id="danmaku-css-input"
:max-length="300"
v-model:value="cssInfo" v-model:value="cssInfo"
:max-length="300"
placeholder="请在此输入样式" placeholder="请在此输入样式"
autocomplete="off" autocomplete="off"
@blur="inputCSS(cssInfo)" @blur="inputCSS(cssInfo)"
@pressEnter="inputCSS(cssInfo)" @press-enter="inputCSS(cssInfo)"
/> />
<span v-if="cssError" id="danmaku-css-error">{{ <span v-if="cssError" id="danmaku-css-error">{{
cssError cssError
@ -113,7 +113,7 @@
></span> ></span>
</div> </div>
</Scroll> </Scroll>
<a-input <Input
id="danmaku-color-input" id="danmaku-color-input"
:max-length="100" :max-length="100"
v-model:value="nowColor" v-model:value="nowColor"
@ -121,7 +121,7 @@
autocomplete="off" autocomplete="off"
@blur="inputColor(nowColor)" @blur="inputColor(nowColor)"
@pressEnter="inputColor(nowColor)" @pressEnter="inputColor(nowColor)"
></a-input> ></Input>
</div> </div>
</Transition> </Transition>
<Transition name="danmaku-icon"> <Transition name="danmaku-icon">
@ -168,6 +168,7 @@ import Scroll from '../components/scroll.vue';
import BoxAnimate from '../components/boxAnimate.vue'; import BoxAnimate from '../components/boxAnimate.vue';
import { IMountedVBind } from '../interface'; import { IMountedVBind } from '../interface';
import { tip } from '../use'; import { tip } from '../use';
import { Input } from 'ant-design-vue';
const props = defineProps<IMountedVBind>(); const props = defineProps<IMountedVBind>();

View File

@ -11,19 +11,17 @@
<div id="equipbox-main"> <div id="equipbox-main">
<div id="equip-list"> <div id="equip-list">
<div id="filter"> <div id="filter">
<a-select v-model:value="norm" class="select"> <Select v-model:value="norm" class="select">
<a-select-option v-for="t of normList" :value="t">{{ <SelectOption v-for="t of normList" :value="t">{{
t === 'none' ? '所有' : getStatusLabel(t) t === 'none' ? '所有' : getStatusLabel(t)
}}</a-select-option> }}</SelectOption>
</a-select> </Select>
<a-divider type="vertical" class="divider"></a-divider> <Divider type="vertical" class="divider"></Divider>
<a-select v-model:value="sType" class="select"> <Select v-model:value="sType" class="select">
<a-select-option value="value">数值</a-select-option> <SelectOption value="value">数值</SelectOption>
<a-select-option value="percentage" <SelectOption value="percentage">百分比</SelectOption>
>百分比</a-select-option </Select>
> <Divider type="vertical" class="divider"></Divider>
</a-select>
<a-divider type="vertical" class="divider"></a-divider>
<span <span
@click="changeSort()" @click="changeSort()"
class="button-text" class="button-text"
@ -35,10 +33,10 @@
<span v-else><sort-descending-outlined /></span> <span v-else><sort-descending-outlined /></span>
</span> </span>
</div> </div>
<a-divider <Divider
dashed dashed
style="border-color: #ddd4; margin: 1vh 0 1vh 0" style="border-color: #ddd4; margin: 1vh 0 1vh 0"
></a-divider> ></Divider>
<Scroll id="equip-scroll" <Scroll id="equip-scroll"
><div ><div
class="equip selectable" class="equip selectable"
@ -62,12 +60,12 @@
> >
</div> </div>
<div id="equip-status"> <div id="equip-status">
<a-divider <Divider
class="divider" class="divider"
:type="isMobile ? 'horizontal' : 'vertical'" :type="isMobile ? 'horizontal' : 'vertical'"
dashed dashed
style="border-color: #ddd4" style="border-color: #ddd4"
></a-divider> ></Divider>
<div id="equip-status-main"> <div id="equip-status-main">
<div id="equip-now"> <div id="equip-now">
<Scroll <Scroll
@ -94,10 +92,10 @@
</div> </div>
</Scroll> </Scroll>
</div> </div>
<a-divider <Divider
dashed dashed
style="border-color: #ddd4; margin: 1vh 0 1vh 0" style="border-color: #ddd4; margin: 1vh 0 1vh 0"
></a-divider> ></Divider>
<div id="equip-hero" v-if="!isMobile"> <div id="equip-hero" v-if="!isMobile">
<div id="hero-icon"> <div id="hero-icon">
<BoxAnimate <BoxAnimate
@ -112,21 +110,21 @@
</div> </div>
</div> </div>
</div> </div>
<a-divider <Divider
v-if="!isMobile" v-if="!isMobile"
class="divider" class="divider"
type="vertical" type="vertical"
dashed dashed
style="border-color: #ddd4" style="border-color: #ddd4"
></a-divider> ></Divider>
</div> </div>
<div id="equip-desc"> <div id="equip-desc">
<div id="equip-icon"> <div id="equip-icon">
<BoxAnimate <BoxAnimate
:id=" :id="
isCol isCol
? equiped[selected] ?? 'none' ? (equiped[selected] ?? 'none')
: toShow[selected]?.[0] ?? 'none' : (toShow[selected]?.[0] ?? 'none')
" "
></BoxAnimate> ></BoxAnimate>
<span>{{ equip.name }}</span> <span>{{ equip.name }}</span>
@ -134,20 +132,20 @@
<div id="equip-type"> <div id="equip-type">
<span>装备孔{{ equip.equip?.type }}</span> <span>装备孔{{ equip.equip?.type }}</span>
</div> </div>
<a-divider <Divider
dashed dashed
style="border-color: #ddd4; margin: 1vh 0 1vh 0" style="border-color: #ddd4; margin: 1vh 0 1vh 0"
></a-divider> ></Divider>
<div id="equip-add"> <div id="equip-add">
<span id="title">增减属性</span> <span id="title">增减属性</span>
<Scroll style="width: 100%; height: 100%"> <Scroll style="width: 100%; height: 100%">
<component :is="addStatus"></component> <component :is="addStatus"></component>
</Scroll> </Scroll>
</div> </div>
<a-divider <Divider
dashed dashed
style="border-color: #ddd4; margin: 1vh 0 1vh 0" style="border-color: #ddd4; margin: 1vh 0 1vh 0"
></a-divider> ></Divider>
<div id="equip-desc-text"> <div id="equip-desc-text">
<span id="title">装备介绍</span> <span id="title">装备介绍</span>
<Scroll id="desc-text" style="height: 100%; width: 100%"> <Scroll id="desc-text" style="height: 100%; width: 100%">
@ -189,6 +187,7 @@ import { hyper } from 'mutate-animate';
import { gameKey } from '@motajs/system-action'; import { gameKey } from '@motajs/system-action';
import { IMountedVBind } from '../interface'; import { IMountedVBind } from '../interface';
import { isNil } from 'lodash-es'; import { isNil } from 'lodash-es';
import { Divider, Select, SelectOption } from 'ant-design-vue';
const props = defineProps<IMountedVBind>(); const props = defineProps<IMountedVBind>();

View File

@ -8,21 +8,21 @@
<div id="fly-settings"> <div id="fly-settings">
<div id="fly-border"> <div id="fly-border">
<span>无边框模式</span> <span>无边框模式</span>
<a-switch <Switch
class="fly-settings" class="fly-settings"
v-model:checked="noBorder" v-model:checked="noBorder"
checked-children="ON" checked-children="ON"
un-checked-children="OFF" un-checked-children="OFF"
></a-switch> ></Switch>
</div> </div>
<div v-if="!isMobile" id="fly-tradition"> <div v-if="!isMobile" id="fly-tradition">
<span>传统按键模式</span> <span>传统按键模式</span>
<a-switch <Switch
class="fly-settings" class="fly-settings"
v-model:checked="tradition" v-model:checked="tradition"
checked-children="ON" checked-children="ON"
un-checked-children="OFF" un-checked-children="OFF"
></a-switch> ></Switch>
</div> </div>
<span <span
v-if="!isMobile" v-if="!isMobile"
@ -45,16 +45,16 @@
> >
</div></Scroll </div></Scroll
> >
<a-divider type="vertical" dashed id="divider-left"></a-divider> <Divider type="vertical" dashed id="divider-left"></Divider>
<div id="fly-map-div"> <div id="fly-map-div">
<canvas id="fly-map" @click="click"></canvas> <canvas id="fly-map" @click="click"></canvas>
</div> </div>
</div> </div>
<a-divider <Divider
id="divider-right" id="divider-right"
dashed dashed
:type="isMobile ? 'horizontal' : 'vertical'" :type="isMobile ? 'horizontal' : 'vertical'"
></a-divider> ></Divider>
<div id="fly-right"> <div id="fly-right">
<canvas id="fly-thumbnail" @click="fly" @wheel="wheel"></canvas> <canvas id="fly-thumbnail" @click="fly" @wheel="wheel"></canvas>
<div id="fly-tools"> <div id="fly-tools">
@ -104,6 +104,7 @@ import { createChangable } from '../tools/common';
import { mainSetting } from '../preset/settingIns'; import { mainSetting } from '../preset/settingIns';
import { GameStorage } from '@motajs/legacy-system'; import { GameStorage } from '@motajs/legacy-system';
import { IMountedVBind } from '../interface'; import { IMountedVBind } from '../interface';
import { Divider, Switch } from 'ant-design-vue';
const props = defineProps<IMountedVBind>(); const props = defineProps<IMountedVBind>();
@ -580,7 +581,10 @@ onUnmounted(() => {
max-width: 50%; max-width: 50%;
text-overflow: ellipsis; text-overflow: ellipsis;
overflow: hidden; overflow: hidden;
text-shadow: 1px 1px 1px black, 1px -1px 1px black, -1px 1px 1px black, text-shadow:
1px 1px 1px black,
1px -1px 1px black,
-1px 1px 1px black,
-1px -1px 1px black; -1px -1px 1px black;
} }

View File

@ -1,6 +1,6 @@
<template> <template>
<div id="load"> <div id="load">
<a-progress <Progress
class="task-progress" class="task-progress"
type="circle" type="circle"
:percent="(loading / totalTask) * 100" :percent="(loading / totalTask) * 100"
@ -9,17 +9,17 @@
<template #format> <template #format>
<span>{{ loaded }} / {{ totalTask }}</span> <span>{{ loaded }} / {{ totalTask }}</span>
</template> </template>
</a-progress> </Progress>
<div class="byte-div"> <div class="byte-div">
<span class="byte-progress-tip" <span class="byte-progress-tip"
>{{ formatSize(loadedByte) }} / >{{ formatSize(loadedByte) }} /
{{ formatSize(totalByte) }}</span {{ formatSize(totalByte) }}</span
> >
<a-progress <Progress
class="byte-progress" class="byte-progress"
type="line" type="line"
:percent="loadedPercent" :percent="loadedPercent"
></a-progress> ></Progress>
</div> </div>
</div> </div>
</template> </template>
@ -35,6 +35,7 @@ import { formatSize } from '../utils';
import { logger } from '@motajs/common'; import { logger } from '@motajs/common';
import { sleep } from 'mutate-animate'; import { sleep } from 'mutate-animate';
import { IMountedVBind } from '../interface'; import { IMountedVBind } from '../interface';
import { Progress } from 'ant-design-vue';
const props = defineProps<IMountedVBind>(); const props = defineProps<IMountedVBind>();

View File

@ -37,11 +37,11 @@
</div> </div>
</div> </div>
</Scroll> </Scroll>
<a-divider <Divider
class="display-divider" class="display-divider"
:type="isMobile ? 'horizontal' : 'vertical'" :type="isMobile ? 'horizontal' : 'vertical'"
dashed dashed
></a-divider> ></Divider>
</div> </div>
</TransitionGroup> </TransitionGroup>
</div> </div>
@ -54,7 +54,7 @@
" "
></div> ></div>
</Scroll> </Scroll>
<a-divider class="info-divider" dashed></a-divider> <Divider class="info-divider" dashed></Divider>
<div class="info-editor" v-if="!!selectedItem"> <div class="info-editor" v-if="!!selectedItem">
<div class="editor-custom"> <div class="editor-custom">
<component <component
@ -86,6 +86,7 @@ import Scroll from '../components/scroll.vue';
import { isMobile } from '../use'; import { isMobile } from '../use';
import { gameKey } from '@motajs/system-action'; import { gameKey } from '@motajs/system-action';
import { IMountedVBind } from '../interface'; import { IMountedVBind } from '../interface';
import { Divider } from 'ant-design-vue';
const props = defineProps<IMountedVBind>(); const props = defineProps<IMountedVBind>();

View File

@ -6,17 +6,17 @@
> >
</div> </div>
<span id="item-name">{{ info.name }}</span> <span id="item-name">{{ info.name }}</span>
<a-divider dashed style="border-color: #ddd4" id="divider"></a-divider> <Divider dashed style="border-color: #ddd4" id="divider"></Divider>
<div id="item-info"> <div id="item-info">
<Scroll id="item-desc" :no-scroll="true"> <Scroll id="item-desc" :no-scroll="true">
<span v-html="desc"></span> <span v-html="desc"></span>
</Scroll> </Scroll>
</div> </div>
<a-divider <Divider
dashed dashed
style="border-color: #ddd4" style="border-color: #ddd4"
id="divider-split" id="divider-split"
></a-divider> ></Divider>
<div id="shop-bottom"> <div id="shop-bottom">
<div id="item-list"> <div id="item-list">
<Scroll style="width: 100%; height: 100%"> <Scroll style="width: 100%; height: 100%">
@ -43,12 +43,12 @@
</div> </div>
</Scroll> </Scroll>
</div> </div>
<a-divider <Divider
dashed dashed
style="border-color: #ddd4" style="border-color: #ddd4"
type="vertical" type="vertical"
id="divider-vertical" id="divider-vertical"
></a-divider> ></Divider>
<div id="item-sell-info"> <div id="item-sell-info">
<div id="shop-mode"> <div id="shop-mode">
<span <span
@ -57,12 +57,12 @@
@click="mode = 'buy'" @click="mode = 'buy'"
>购买</span >购买</span
> >
<a-divider <Divider
dashed dashed
type="vertical" type="vertical"
id="divider-vertical" id="divider-vertical"
style="border-color: #ddd4" style="border-color: #ddd4"
></a-divider> ></Divider>
<span <span
class="button-text mode-button" class="button-text mode-button"
:active="mode === 'sell'" :active="mode === 'sell'"
@ -71,11 +71,11 @@
>售出</span >售出</span
> >
</div> </div>
<a-divider <Divider
dashed dashed
style="border-color: #ddd4" style="border-color: #ddd4"
id="divider-mode" id="divider-mode"
></a-divider> ></Divider>
<div <div
class="item-sell-info" class="item-sell-info"
:style="{ :style="{
@ -105,11 +105,11 @@
<span>拥有</span> <span>拥有</span>
<span>{{ cnt(item.id) }}</span> <span>{{ cnt(item.id) }}</span>
</div> </div>
<a-divider <Divider
dashed dashed
style="border-color: #ddd4" style="border-color: #ddd4"
id="divider-mode" id="divider-mode"
></a-divider> ></Divider>
<div id="sell-count"> <div id="sell-count">
<span>{{ mode === 'buy' ? '购买' : '售出' }}数量</span> <span>{{ mode === 'buy' ? '购买' : '售出' }}数量</span>
<div id="sell-count-select"> <div id="sell-count-select">
@ -126,10 +126,10 @@
/> />
</div> </div>
</div> </div>
<a-divider <Divider
dashed dashed
style="border-color: #ddd4; margin: 2vh 0 2vh 0" style="border-color: #ddd4; margin: 2vh 0 2vh 0"
></a-divider> ></Divider>
<div id="sell-confirm"> <div id="sell-confirm">
<span <span
id="sell-total" id="sell-total"
@ -175,6 +175,7 @@ import BoxAnimate from '../components/boxAnimate.vue';
import { gameKey } from '@motajs/system-action'; import { gameKey } from '@motajs/system-action';
import { IMountedVBind } from '../interface'; import { IMountedVBind } from '../interface';
import { tip } from '../use'; import { tip } from '../use';
import { Divider } from 'ant-design-vue';
const props = defineProps<IMountedVBind>(); const props = defineProps<IMountedVBind>();

View File

@ -6,7 +6,7 @@
> >
</div> </div>
<span id="skill-title">{{ skill.title }}</span> <span id="skill-title">{{ skill.title }}</span>
<a-divider dashed style="border-color: #ddd4" id="divider"></a-divider> <Divider dashed style="border-color: #ddd4" id="divider"></Divider>
<div id="skill-info"> <div id="skill-info">
<Scroll id="skill-desc" :no-scroll="true"> <Scroll id="skill-desc" :no-scroll="true">
<span v-html="desc"></span> <span v-html="desc"></span>
@ -16,25 +16,25 @@
<span v-if="level < skill.max" v-html="effect[1]"></span> <span v-if="level < skill.max" v-html="effect[1]"></span>
</div> </div>
</div> </div>
<a-divider <Divider
dashed dashed
style="border-color: #ddd4" style="border-color: #ddd4"
id="divider-split" id="divider-split"
></a-divider> ></Divider>
<div id="skill-bottom"> <div id="skill-bottom">
<canvas id="skill-canvas"></canvas> <canvas id="skill-canvas"></canvas>
<a-divider <Divider
dashed dashed
style="border-color: #ddd4" style="border-color: #ddd4"
:type="isMobile ? 'horizontal' : 'vertical'" :type="isMobile ? 'horizontal' : 'vertical'"
id="divider-vertical" id="divider-vertical"
></a-divider> ></Divider>
<div id="skill-upgrade-info"> <div id="skill-upgrade-info">
<div id="skill-upgrade-up"> <div id="skill-upgrade-up">
<span id="skill-level" <span id="skill-level"
>当前等级{{ level }} / {{ skill.max }}</span >当前等级{{ level }} / {{ skill.max }}</span
> >
<a-divider dashed class="upgrade-divider"></a-divider> <Divider dashed class="upgrade-divider"></Divider>
<span <span
v-if="level < skill.max" v-if="level < skill.max"
id="skill-consume" id="skill-consume"
@ -44,7 +44,7 @@
<span v-else id="skill-consume" style="color: gold" <span v-else id="skill-consume" style="color: gold"
>已满级</span >已满级</span
> >
<a-divider dashed class="upgrade-divider"></a-divider> <Divider dashed class="upgrade-divider"></Divider>
<Scroll id="front-scroll" :no-scroll="true" <Scroll id="front-scroll" :no-scroll="true"
><div id="skill-front"> ><div id="skill-front">
<span>前置技能</span> <span>前置技能</span>
@ -59,7 +59,7 @@
> >
</div> </div>
<div id="skill-upgrade-bottom"> <div id="skill-upgrade-bottom">
<a-divider dashed class="upgrade-divider"></a-divider> <Divider dashed class="upgrade-divider"></Divider>
<div id="skill-chapter"> <div id="skill-chapter">
<span class="button-text" @click="selectChapter(-1)" <span class="button-text" @click="selectChapter(-1)"
><LeftOutlined ><LeftOutlined
@ -87,6 +87,7 @@ import { sleep } from 'mutate-animate';
import { gameKey } from '@motajs/system-action'; import { gameKey } from '@motajs/system-action';
import { IMountedVBind } from '../interface'; import { IMountedVBind } from '../interface';
import { isNil } from 'lodash-es'; import { isNil } from 'lodash-es';
import { Divider } from 'ant-design-vue';
const props = defineProps<IMountedVBind>(); const props = defineProps<IMountedVBind>();

View File

@ -21,11 +21,11 @@
:selected="mode === 'tools'" :selected="mode === 'tools'"
>消耗道具</span >消耗道具</span
> >
<a-divider <Divider
dashed dashed
style="border-color: #ddd4; height: 100%" style="border-color: #ddd4; height: 100%"
type="vertical" type="vertical"
></a-divider> ></Divider>
<span <span
class="button-text" class="button-text"
@click="mode = 'constants'" @click="mode = 'constants'"
@ -33,10 +33,10 @@
>永久道具</span >永久道具</span
> >
</div> </div>
<a-divider <Divider
dashed dashed
style="margin: 1vh 0 1vh 0; border-color: #ddd4" style="margin: 1vh 0 1vh 0; border-color: #ddd4"
></a-divider> ></Divider>
<Scroll class="item-list"> <Scroll class="item-list">
<div <div
class="item selectable" class="item selectable"
@ -62,12 +62,12 @@
</div> </div>
</Scroll> </Scroll>
</div> </div>
<a-divider <Divider
dashed dashed
:type="isMobile ? 'horizontal' : 'vertical'" :type="isMobile ? 'horizontal' : 'vertical'"
class="divider" class="divider"
style="border-color: #ddd4; margin: 1%" style="border-color: #ddd4; margin: 1%"
></a-divider> ></Divider>
</div> </div>
<div id="detail"> <div id="detail">
<div id="info"> <div id="info">
@ -85,13 +85,13 @@
<span>{{ <span>{{
selected === 'none' selected === 'none'
? '永久道具' ? '永久道具'
: getClsName(all[selected].cls as ItemMode) ?? : (getClsName(all[selected].cls as ItemMode) ??
'永久道具' '永久道具')
}}</span> }}</span>
</div> </div>
</div> </div>
<span style="margin-top: 2vh">点击该物品以使用</span> <span style="margin-top: 2vh">点击该物品以使用</span>
<a-divider dashed style="border-color: #ddd4"></a-divider> <Divider dashed style="border-color: #ddd4"></Divider>
<div id="desc"> <div id="desc">
<span>道具描述</span> <span>道具描述</span>
<Scroll id="desc-text"> <Scroll id="desc-text">
@ -115,7 +115,7 @@ import { getClsName, getItems } from '../tools/toolbox';
import { isMobile } from '../use'; import { isMobile } from '../use';
import { type } from '../utils'; import { type } from '../utils';
import { hyper } from 'mutate-animate'; import { hyper } from 'mutate-animate';
import { message } from 'ant-design-vue'; import { Divider, message } from 'ant-design-vue';
import { gameKey } from '@motajs/system-action'; import { gameKey } from '@motajs/system-action';
import { IMountedVBind } from '../interface'; import { IMountedVBind } from '../interface';
import { isNil } from 'lodash-es'; import { isNil } from 'lodash-es';

View File

@ -138,9 +138,12 @@ importers:
eslint: eslint:
specifier: ^9.22.0 specifier: ^9.22.0
version: 9.34.0 version: 9.34.0
eslint-config-prettier:
specifier: ^10.1.8
version: 10.1.8(eslint@9.34.0)
eslint-plugin-prettier: eslint-plugin-prettier:
specifier: ^5.5.0 specifier: ^5.5.4
version: 5.5.4(eslint@9.34.0)(prettier@3.6.2) version: 5.5.4(eslint-config-prettier@10.1.8(eslint@9.34.0))(eslint@9.34.0)(prettier@3.6.2)
eslint-plugin-react: eslint-plugin-react:
specifier: ^7.37.5 specifier: ^7.37.5
version: 7.37.5(eslint@9.34.0) version: 7.37.5(eslint@9.34.0)
@ -198,9 +201,6 @@ importers:
typescript-eslint: typescript-eslint:
specifier: ^8.27.0 specifier: ^8.27.0
version: 8.41.0(eslint@9.34.0)(typescript@5.9.2) version: 8.41.0(eslint@9.34.0)(typescript@5.9.2)
unplugin-vue-components:
specifier: ^0.22.12
version: 0.22.12(@babel/parser@7.28.3)(rollup@4.49.0)(vue@3.5.20(typescript@5.9.2))
vite: vite:
specifier: ^6.3.5 specifier: ^6.3.5
version: 6.3.5(@types/node@18.19.123)(less@4.4.1)(terser@5.43.1)(tsx@4.20.5) version: 6.3.5(@types/node@18.19.123)(less@4.4.1)(terser@5.43.1)(tsx@4.20.5)
@ -651,9 +651,6 @@ packages:
'@antfu/install-pkg@1.1.0': '@antfu/install-pkg@1.1.0':
resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==}
'@antfu/utils@0.7.10':
resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==}
'@antfu/utils@8.1.1': '@antfu/utils@8.1.1':
resolution: {integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==} resolution: {integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==}
@ -3611,6 +3608,12 @@ packages:
engines: {node: '>=6.0'} engines: {node: '>=6.0'}
hasBin: true hasBin: true
eslint-config-prettier@10.1.8:
resolution: {integrity: sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==}
hasBin: true
peerDependencies:
eslint: '>=7.0.0'
eslint-plugin-prettier@5.5.4: eslint-plugin-prettier@5.5.4:
resolution: {integrity: sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==} resolution: {integrity: sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==}
engines: {node: ^14.18.0 || >=16.0.0} engines: {node: ^14.18.0 || >=16.0.0}
@ -4420,10 +4423,6 @@ packages:
lie@3.3.0: lie@3.3.0:
resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==} resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
local-pkg@0.4.3:
resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==}
engines: {node: '>=14'}
local-pkg@1.1.2: local-pkg@1.1.2:
resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==} resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==}
engines: {node: '>=14'} engines: {node: '>=14'}
@ -4480,10 +4479,6 @@ packages:
typescript: typescript:
optional: true optional: true
magic-string@0.27.0:
resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==}
engines: {node: '>=12'}
magic-string@0.30.18: magic-string@0.30.18:
resolution: {integrity: sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==} resolution: {integrity: sha512-yi8swmWbO17qHhwIBNeeZxTceJMeBvWJaId6dyvTSOwTipqeHhMhOrz6513r1sOKnpvQ7zkhlG8tPrpilwTxHQ==}
@ -5859,20 +5854,6 @@ packages:
resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
engines: {node: '>= 0.8'} engines: {node: '>= 0.8'}
unplugin-vue-components@0.22.12:
resolution: {integrity: sha512-FxyzsuBvMCYPIk+8cgscGBQ345tvwVu+qY5IhE++eorkyvA4Z1TiD/HCiim+Kbqozl10i4K+z+NCa2WO2jexRA==}
engines: {node: '>=14'}
peerDependencies:
'@babel/parser': ^7.15.8
vue: 2 || 3
peerDependenciesMeta:
'@babel/parser':
optional: true
unplugin@1.16.1:
resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==}
engines: {node: '>=14.0.0'}
update-browserslist-db@1.1.3: update-browserslist-db@1.1.3:
resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
hasBin: true hasBin: true
@ -6095,9 +6076,6 @@ packages:
webidl-conversions@3.0.1: webidl-conversions@3.0.1:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
webpack-virtual-modules@0.6.2:
resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==}
whatwg-url@5.0.0: whatwg-url@5.0.0:
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
@ -6337,8 +6315,6 @@ snapshots:
package-manager-detector: 1.3.0 package-manager-detector: 1.3.0
tinyexec: 1.0.1 tinyexec: 1.0.1
'@antfu/utils@0.7.10': {}
'@antfu/utils@8.1.1': {} '@antfu/utils@8.1.1': {}
'@babel/cli@7.28.3(@babel/core@7.28.3)': '@babel/cli@7.28.3(@babel/core@7.28.3)':
@ -9712,12 +9688,18 @@ snapshots:
optionalDependencies: optionalDependencies:
source-map: 0.6.1 source-map: 0.6.1
eslint-plugin-prettier@5.5.4(eslint@9.34.0)(prettier@3.6.2): eslint-config-prettier@10.1.8(eslint@9.34.0):
dependencies:
eslint: 9.34.0
eslint-plugin-prettier@5.5.4(eslint-config-prettier@10.1.8(eslint@9.34.0))(eslint@9.34.0)(prettier@3.6.2):
dependencies: dependencies:
eslint: 9.34.0 eslint: 9.34.0
prettier: 3.6.2 prettier: 3.6.2
prettier-linter-helpers: 1.0.0 prettier-linter-helpers: 1.0.0
synckit: 0.11.11 synckit: 0.11.11
optionalDependencies:
eslint-config-prettier: 10.1.8(eslint@9.34.0)
eslint-plugin-react@7.37.5(eslint@9.34.0): eslint-plugin-react@7.37.5(eslint@9.34.0):
dependencies: dependencies:
@ -10618,8 +10600,6 @@ snapshots:
dependencies: dependencies:
immediate: 3.0.6 immediate: 3.0.6
local-pkg@0.4.3: {}
local-pkg@1.1.2: local-pkg@1.1.2:
dependencies: dependencies:
mlly: 1.8.0 mlly: 1.8.0
@ -10680,10 +10660,6 @@ snapshots:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
magic-string@0.27.0:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
magic-string@0.30.18: magic-string@0.30.18:
dependencies: dependencies:
'@jridgewell/sourcemap-codec': 1.5.5 '@jridgewell/sourcemap-codec': 1.5.5
@ -12281,30 +12257,6 @@ snapshots:
unpipe@1.0.0: {} unpipe@1.0.0: {}
unplugin-vue-components@0.22.12(@babel/parser@7.28.3)(rollup@4.49.0)(vue@3.5.20(typescript@5.9.2)):
dependencies:
'@antfu/utils': 0.7.10
'@rollup/pluginutils': 5.2.0(rollup@4.49.0)
chokidar: 3.6.0
debug: 4.4.1
fast-glob: 3.3.3
local-pkg: 0.4.3
magic-string: 0.27.0
minimatch: 5.1.6
resolve: 1.22.10
unplugin: 1.16.1
vue: 3.5.20(typescript@5.9.2)
optionalDependencies:
'@babel/parser': 7.28.3
transitivePeerDependencies:
- rollup
- supports-color
unplugin@1.16.1:
dependencies:
acorn: 8.15.0
webpack-virtual-modules: 0.6.2
update-browserslist-db@1.1.3(browserslist@4.25.3): update-browserslist-db@1.1.3(browserslist@4.25.3):
dependencies: dependencies:
browserslist: 4.25.3 browserslist: 4.25.3
@ -12559,8 +12511,6 @@ snapshots:
webidl-conversions@3.0.1: {} webidl-conversions@3.0.1: {}
webpack-virtual-modules@0.6.2: {}
whatwg-url@5.0.0: whatwg-url@5.0.0:
dependencies: dependencies:
tr46: 0.0.3 tr46: 0.0.3

View File

@ -2,8 +2,8 @@
"compilerOptions": { "compilerOptions": {
"target": "ESNext", "target": "ESNext",
"composite": true, "composite": true,
"module": "ESNext", "module": "nodenext",
"moduleResolution": "Node", "moduleResolution": "nodenext",
"allowSyntheticDefaultImports": true, "allowSyntheticDefaultImports": true,
"strict": true "strict": true
}, },

View File

@ -1,7 +1,5 @@
import { defineConfig } from 'vite'; import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue'; import vue from '@vitejs/plugin-vue';
import components from 'unplugin-vue-components/vite';
import { AntDesignVueResolver } from 'unplugin-vue-components/resolvers';
import vuejsx from '@vitejs/plugin-vue-jsx'; import vuejsx from '@vitejs/plugin-vue-jsx';
import path from 'path'; import path from 'path';
import postcssPresetEnv from 'postcss-preset-env'; import postcssPresetEnv from 'postcss-preset-env';
@ -39,8 +37,7 @@ export default defineConfig({
isCustomElement: tag => { isCustomElement: tag => {
return custom.includes(tag) || tag.startsWith('g-'); return custom.includes(tag) || tag.startsWith('g-');
} }
}), })
components({ resolvers: [AntDesignVueResolver()] })
], ],
base: `./`, base: `./`,
resolve: { resolve: {