This commit is contained in:
Putoo
2026-06-13 18:07:39 +08:00
parent a68368d227
commit 404af92f96
6 changed files with 188 additions and 71 deletions

View File

@@ -129,6 +129,18 @@ public class EquController : ControllerBase
}
}
/// <summary>
/// 获取用户穿戴的装备
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<IPoAction> GetUserOnEqu()
{
string userId = StateHelper.userId;
var data = await _equService.GetUserOnEqu(userId);
return PoAction.Ok(data);
}
/// <summary>
/// 穿/卸装备
/// </summary>
@@ -248,4 +260,6 @@ public class EquController : ControllerBase
}
}
}
}

View File

@@ -75,12 +75,12 @@ a:link {
margin: 3px 4px 3px 4px;
}
a:hover,
/* a:hover,
a:active,
a:focus {
color: #FFFFFF;
background: #1e5494;
}
} */
.a-nomargin {
margin: 0;

View File

@@ -4,4 +4,6 @@
export class BaseConfig {
public static BaseUrl:string="https://localhost:7198";
public static BaseMediaUrl:string="https://localhost:7198";
// public static BaseUrl:string="http://kx.iyba.cn:5291";
// public static BaseMediaUrl:string="http://kx.iyba.cn:5291";
}

View File

@@ -1,78 +1,78 @@
<template>
<div class="content">
<img src="/images/logo.png" class="logo" />
</div>
<div class="content">
<div class="common">
<div class="input">
昵称:<input name="nick" placeholder="输入昵称(1-12个长度字符)" maxlength="12" class="ipt" type="text"
v-model="nick" />
</div>
<div class="input">
性别:<select name="sex" class="ipt" v-model="sex">
<option value="0"></option>
<option value="1"></option>
</select>
</div>
<div class="input" v-if="isNeedCode">
激活码:<input name="nick" placeholder="联系客服获取激活码" maxlength="50" class="ipt" type="text" v-model="code" />
</div>
<div class="input">
<input type="button"" class=" btn btn-danger" value="注册角色" @click="SubRegInfo" />.
<Abar href="/">返回首页</Abar>
</div>
</div>
</div>
<div class="content">
<img src="/images/logo.png" class="logo" />
</div>
<div class="content">
<div class="common">
<div class="input">
昵称:<input name="nick" placeholder="输入昵称(1-12个长度字符)" maxlength="12" class="ipt" type="text"
v-model="nick" />
</div>
<div class="input">
性别:<select name="sex" class="ipt" v-model="sex">
<option value="0"></option>
<option value="1"></option>
</select>
</div>
<div class="input" v-if="isNeedCode">
激活码:<input name="nick" placeholder="联系客服获取激活码" maxlength="50" class="ipt" type="text" v-model="code" />
</div>
<div class="input">
<input type="button" class=" btn btn-danger" value="注册角色" @click="SubRegInfo" />.
<Abar href="/">返回首页</Abar>
</div>
</div>
</div>
</template>
<script setup lang="ts">
definePageMeta({
layout: layout.empty,
middleware: middleware.loading
})
definePageMeta({
layout: layout.empty,
middleware: middleware.loading
})
const nick = ref('');
const sex = ref(0);
const code = ref('');
const isNeedCode = ref(false);
const data = ref<any>({});
const nick = ref('');
const sex = ref(0);
const code = ref('');
const isNeedCode = ref(false);
const data = ref<any>({});
const SubRegInfo = async () : Promise<void> => {
if (nick.value == null || nick.value == '') {
MessageExtend.ShowToast("昵称不能为空!", "default");
return;
}
MessageExtend.LoadingToast("注册中...");
let result = await LoginService.RegisterInfo(nick.value, sex.value, code.value);
MessageExtend.LoadingClose();
if (result.code == 0) {
PageExtend.Redirect("/map");
}
else {
MessageExtend.ShowDialog("注册角色", result.msg);
}
}
const SubRegInfo = async (): Promise<void> => {
if (nick.value == null || nick.value == '') {
MessageExtend.ShowToast("昵称不能为空!", "default");
return;
}
MessageExtend.LoadingToast("注册中...");
let result = await LoginService.RegisterInfo(nick.value, sex.value, code.value);
MessageExtend.LoadingClose();
if (result.code == 0) {
PageExtend.Redirect("/map");
}
else {
MessageExtend.ShowDialog("注册角色", result.msg);
}
}
onMounted(async () => {
try {
}
finally {
PageLoading.Close();
}
})
onMounted(async () => {
try {
await BindData();
}
finally {
PageLoading.Close();
}
})
const BindData = async () => {
let result = await PubService.GetOnAreaInfo();
if (result.code == 0) {
data.value = result.data;
isNeedCode.value = result.data.isNeedCode == 1;
}
else {
MessageExtend.ShowDialogEvent("提示", result.msg, () => {
PageExtend.RedirectTo('/');
});
}
const BindData = async () => {
let result = await PubService.GetOnAreaInfo();
if (result.code == 0) {
data.value = result.data;
isNeedCode.value = result.data.isNeedCode == 1;
}
else {
MessageExtend.ShowDialogEvent("提示", result.msg, () => {
PageExtend.RedirectTo('/');
});
}
}
}
</script>

View File

@@ -1,37 +1,130 @@
<template>
<div class="content">
手持: <Abutton>[+]</Abutton>
<div class="item" v-for="item in Hold">
<Abar :href='"/prop/equ?ue=" + item.ueId'>{{ item.equName }}({{ item.lev }})</Abar>[<Abutton
@click="DownEqu(item.ueId)">卸下</Abutton>]
</div>
</div>
<div class="content">
副手: <Abutton>[+]</Abutton>
<div class="item" v-for="item in Vice">
<Abar :href='"/prop/equ?ue=" + item.ueId'>{{ item.equName }}({{ item.lev }})</Abar>[<Abutton
@click="DownEqu(item.ueId)">卸下</Abutton>]
</div>
</div>
<div class="content">
头戴: <Abutton>[+]</Abutton>
<div class="item" v-for="item in Head">
<Abar :href='"/prop/equ?ue=" + item.ueId'>{{ item.equName }}({{ item.lev }})</Abar>[<Abutton
@click="DownEqu(item.ueId)">卸下</Abutton>]
</div>
</div>
<div class="content">
身穿: <Abutton>[+]</Abutton>
<div class="item" v-for="item in Wear">
<Abar :href='"/prop/equ?ue=" + item.ueId'>{{ item.equName }}({{ item.lev }})</Abar>[<Abutton
@click="DownEqu(item.ueId)">卸下</Abutton>]
</div>
</div>
<div class="content">
腰带: <Abutton>[+]</Abutton>
<div class="item" v-for="item in Waist">
<Abar :href='"/prop/equ?ue=" + item.ueId'>{{ item.equName }}({{ item.lev }})</Abar>[<Abutton
@click="DownEqu(item.ueId)">卸下</Abutton>]
</div>
</div>
<div class="content">
脚穿: <Abutton>[+]</Abutton>
<div class="item" v-for="item in Foot">
<Abar :href='"/prop/equ?ue=" + item.ueId'>{{ item.equName }}({{ item.lev }})</Abar>[<Abutton
@click="DownEqu(item.ueId)">卸下</Abutton>]
</div>
</div>
<div class="content">
佩戴: <Abutton>[+]</Abutton>
<div class="item" v-for="item in Ornaments">
<Abar :href='"/prop/equ?ue=" + item.ueId'>{{ item.equName }}({{ item.lev }})</Abar>[<Abutton
@click="DownEqu(item.ueId)">卸下</Abutton>]
</div>
</div>
<div class="content">
时装: <Abutton>[+]</Abutton>
<div class="item" v-for="item in Fashion">
<Abar :href='"/prop/equ?ue=" + item.ueId'>{{ item.equName }}({{ item.lev }})</Abar>[<Abutton
@click="DownEqu(item.ueId)">卸下</Abutton>]
</div>
</div>
<div class="content">
羽翼: <Abutton>[+]</Abutton>
<div class="item" v-for="item in Wing">
<Abar :href='"/prop/equ?ue=" + item.ueId'>{{ item.equName }}({{ item.lev }})</Abar>[<Abutton
@click="DownEqu(item.ueId)">卸下</Abutton>]
</div>
</div>
<div class="content">
装饰: <Abutton>[+]</Abutton>
<div class="item" v-for="item in Decorate">
<Abar :href='"/prop/equ?ue=" + item.ueId'>{{ item.equName }}({{ item.lev }})</Abar>[<Abutton
@click="DownEqu(item.ueId)">卸下</Abutton>]
</div>
</div>
<div class="content">
<Abar href="/">我的九宫牌</Abar><br>
<Abar href="/">我的圣痕</Abar><br>
<Abar href="/user/bag">装备物品</Abar>
</div>
</template>
</template>
<script setup lang="ts">
definePageMeta({
layout: layout.default,
middleware: middleware.loading
})
const data = ref<Array<any>>([]);
const Hold = ref<Array<any>>([]);
const Vice = ref<Array<any>>([]);
const Head = ref<Array<any>>([]);
const Wear = ref<Array<any>>([]);
const Waist = ref<Array<any>>([]);
const Foot = ref<Array<any>>([]);
const Ornaments = ref<Array<any>>([]);
const Fashion = ref<Array<any>>([]);
const Wing = ref<Array<any>>([]);
const Decorate = ref<Array<any>>([]);
const BindData = async (): Promise<void> => {
let result = await EquService.GetUserOnEqu();
if (result.code == 0) {
data.value = result.data;
Hold.value = data.value.filter(it => it.code == 'Hold');
Vice.value = data.value.filter(it => it.code == 'Vice');
Head.value = data.value.filter(it => it.code == 'Head');
Wear.value = data.value.filter(it => it.code == 'Wear');
Waist.value = data.value.filter(it => it.code == 'Waist');
Foot.value = data.value.filter(it => it.code == 'Foot');
Ornaments.value = data.value.filter(it => it.code == 'Ornaments');
Fashion.value = data.value.filter(it => it.code == 'Fashion');
Wing.value = data.value.filter(it => it.code == 'Wing');
Decorate.value = data.value.filter(it => it.code == 'Decorate');
}
else {
MessageExtend.ShowDialog("我的装备", result.msg);
}
}
onMounted(async () => {
try {
await BindData();
}
finally {
PageLoading.Close();
}
})
const DownEqu = async (ueId: string) => {
alert(ueId);
}
</script>

View File

@@ -23,6 +23,14 @@ export class EquService {
return await ApiService.Request("get", "/Equ/EquLock", { ueId });
}
/**
* 获取用户穿戴的装备
* GET /Equ/GetUserOnEqu
*/
static async GetUserOnEqu() {
return await ApiService.Request("get", "/Equ/GetUserOnEqu");
}
/**
* 穿/卸装备
* GET /Equ/DownOrUpEqu