This commit is contained in:
Putoo
2026-05-22 09:07:38 +08:00
parent 784bc66ef6
commit 0016ef7e83
22 changed files with 666 additions and 62 deletions

View File

@@ -4,26 +4,53 @@
<Abar href="/news">*更新内容早知道</Abar>
</div>
<div class="title">
<Acheak @click="BindData('')" :on-value="type" on-cheak="">公共</Acheak>.
<Acheak @click="BindData('0')" :on-value="type" on-cheak="0">公共</Acheak>.
<Acheak @click="BindData('1')" :on-value="type" on-cheak="1">队伍</Acheak>.
<Acheak @click="BindData('2')" :on-value="type" on-cheak="2">帮派</Acheak>.
<Acheak @click="BindData('3')" :on-value="type" on-cheak="3">全区</Acheak>.
<Acheak @click="BindData('4')" :on-value="type" on-cheak="4">系统</Acheak>.
<Acheak @click="BindData('5')" :on-value="type" on-cheak="5">全服</Acheak>
<Acheak @click="BindData('4')" :on-value="type" on-cheak="4">全服</Acheak>.
<Acheak @click="BindData('5')" :on-value="type" on-cheak="5">系统</Acheak>
</div>
<div class="chat">
<div class="item">
暂无发言.
<div class="content">
<GameChat :data="data" :show-time="1"></GameChat>
<span v-if="data.length == 0">暂无发言.</span>
</div>
<div class="content">
<Pagination :currentPage="currentPage" :limit="10" :total="total" @pageChange="handlePageChange" />
</div>
<div class="content" v-if="type != '5'">
<span>请输入聊天信息:</span><br>
<div v-if="goodsName != ''">
{{ goodsName }}{{ goodsCount }} <span style="font-size: 18px;">(每次发言需要1个哦)</span>
</div>
<div>
<textarea name="sign" id="sign" rows="2" cols="20" maxlength="80" class="ipt emojiTxt"
v-model="sign"></textarea>
</div>
<div>
<input type="submit" value="发言" class="btn btn-danger" @click="SendChat" />.
<Abutton @click="Refresh">刷新</Abutton>
</div>
</div>
<div class="content">
<Abar href="/">*公聊频道发言规范</Abar><br />
<Abar href="/">*游戏用户守则规范</Abar>
</div>
</template>
<script setup lang="ts">
definePageMeta({
layout: layout.default,
middleware: 'page-loading'
})
const type = ref('');
const type = ref('0');
const currentPage = ref<number>(1);
const total = ref<number>(0);
const data = ref<Array<any>>([]);
const goodsCount = ref(0);
const goodsName = ref('');
const sign = ref('');
onMounted(async () => {
try {
@@ -38,6 +65,16 @@ const BindData = async (typeid: string): Promise<void> => {
if (type.value != typeid) {
type.value = typeid;
}
let result = await ChatService.GetChatData(Number(typeid), currentPage.value);
if (result.code == 0) {
data.value = result.data.data;
goodsCount.value = result.data.sendGoodsCount
goodsName.value = result.data.sendGoodsName
total.value = result.data.total;
}
else {
MessageExtend.ShowDialog("提示", result.msg);
}
};
/**刷新 */
@@ -48,4 +85,35 @@ const Refresh = async (): Promise<void> => {
MessageExtend.Notify("刷新成功!", "success");
PageExtend.ScrollToTop();
}
/**翻页 */
const handlePageChange = async (page: number): Promise<void> => {
currentPage.value = page;
await BindData(type.value);
};
/**发送消息 */
let send = true;
const SendChat = async (): Promise<void> => {
if (sign.value == '' || sign.value == null) {
MessageExtend.ShowToast('聊天内容不能为空!');
return;
}
if (send) {
send = false;
//发送消息请求
let result = await ChatService.SendChat(Number(type.value), sign.value);
send = true;
if (result.code == 0) {
sign.value = '';
await BindData(type.value);
PageExtend.ScrollToTop();
}
else {
MessageExtend.ShowDialog("提示", result.msg);
}
}
}
</script>

View File

@@ -10,26 +10,7 @@
</div>
<div class="notification">
<div class="chat">
<div class="item">
[公共]
<span><img src='http://gree.pccsh.com/res/badge/9001.gif' class='user-head' alt='头像' /><a
class='a-nodec' href='/User/Index/Home/250822?sid=W6Wg8iH9gY7wIBNSEdtFcQ3KbI5YiKDo'><span
class='Nick-Gold'>   航海百曉生    </span></a><img src='http://gree.pccsh.com/res/badge/9001.gif'
alt='vip' class='vip' />&nbsp;<span class='icon-cry'><i
class='icon-crystal liangHao'></i></span><img src='http://gree.pccsh.com/res/badge/9001.gif'
alt='心愿星河' class='badge' />&nbsp;</span>
:
<span class=''>出身上天魔套15复仇8白副手10块白四象5块4级审判20一套5级房子材料20</span>
</div>
<div class="item">
[公共]
<span><a class='a-nodec'
href='/User/Index/Home/14637160?sid=W6Wg8iH9gY7wIBNSEdtFcQ3KbI5YiKDo'>长剑小苍穹失散多年的亲爹</a></span>
:
<span class=''><img src='http://r.kexunkeji.cn/em/unit/1.png' alt='嘟嘴' class='em' /></span>
</div>
</div>
<GameChat :data="chatData" :show-time="0"></GameChat>
</div>
<div class="content">
您看到:
@@ -38,8 +19,8 @@
</div>
<div class="content">
<div class="item" v-for="item in npcData">
<Abar href="">{{item.npcName}}{{item.tips}}</Abar>
</div>
<Abar href="">{{ item.npcName }}{{ item.tips }}</Abar>
</div>
</div>
<div class="content">
</div>
@@ -73,6 +54,7 @@ definePageMeta({
const mapInfo = ref<any>({});
const cityInfo = ref<any>({});
const npcData = ref<Array<any>>([]);
const chatData = ref<Array<any>>([]);
onMounted(async () => {
try {
@@ -90,6 +72,7 @@ const BindData = async (map: string): Promise<void> => {
mapInfo.value = result.data.mapInfo;
cityInfo.value = result.data.cityInfo;
npcData.value = result.data.npcData;
chatData.value = result.data.chatData;
MapVent(result.data.mapInfo.near);
console.log(result.data);