Skip to content

Commit 3a5b693

Browse files
修复友情链接样式问题
1 parent 72a3cfc commit 3a5b693

File tree

7 files changed

+97
-126
lines changed

7 files changed

+97
-126
lines changed

admin/src/views/pages/link/components/Edit.vue

-5
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,6 @@
1313
<a-form-item field="url" label="链接">
1414
<a-input v-model="form.url" />
1515
</a-form-item>
16-
<a-form-item field="logo" label="LOGO">
17-
<image-upload v-model="form.logo" />
18-
</a-form-item>
1916
<a-form-item field="summary" label="描述">
2017
<a-textarea v-model="form.summary" allow-clear />
2118
</a-form-item>
@@ -30,8 +27,6 @@
3027
</template>
3128

3229
<script setup lang="ts">
33-
import ImageUpload from '@/components/ImageUpload.vue';
34-
3530
const emit = defineEmits(['ok']);
3631
3732
const appStore = useAppStore();

admin/src/views/pages/link/index.vue

-11
Original file line numberDiff line numberDiff line change
@@ -54,17 +54,6 @@
5454
<a-table-column title="编号" data-index="id"></a-table-column>
5555
<a-table-column title="标题" data-index="title"></a-table-column>
5656
<a-table-column title="链接" data-index="url"></a-table-column>
57-
<a-table-column title="LOGO" data-index="logo">
58-
<template #cell="{ record }">
59-
<a-image
60-
v-if="record.logo"
61-
width="60"
62-
height="60"
63-
fit="cover"
64-
:src="record.logo"
65-
/>
66-
</template>
67-
</a-table-column>
6857
<a-table-column title="描述" data-index="summary"></a-table-column>
6958
<a-table-column title="状态" data-index="status">
7059
<template #cell="{ record }">

server/internal/controllers/api/link_controller.go

+4-28
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66
"github.com/kataras/iris/v12"
77
"github.com/mlogclub/simple/sqls"
88
"github.com/mlogclub/simple/web"
9-
"github.com/mlogclub/simple/web/params"
109

1110
"bbs-go/internal/models"
1211
"bbs-go/internal/services"
@@ -16,60 +15,37 @@ type LinkController struct {
1615
Ctx iris.Context
1716
}
1817

19-
func (c *LinkController) GetBy(id int64) *web.JsonResult {
20-
link := services.LinkService.Get(id)
21-
if link == nil || link.Status == constants.StatusDeleted {
22-
return web.JsonErrorMsg("数据不存在")
23-
}
24-
return web.JsonData(c.buildLink(*link))
25-
}
26-
2718
// 列表
2819
func (c *LinkController) GetList() *web.JsonResult {
2920
links := services.LinkService.Find(sqls.NewCnd().
3021
Eq("status", constants.StatusOk).Asc("id"))
3122

32-
var itemList []map[string]interface{}
23+
var itemList []map[string]any
3324
for _, v := range links {
3425
itemList = append(itemList, c.buildLink(v))
3526
}
3627
return web.JsonData(itemList)
3728
}
3829

39-
// 列表
40-
func (c *LinkController) GetLinks() *web.JsonResult {
41-
page := params.FormValueIntDefault(c.Ctx, "page", 1)
42-
43-
links, paging := services.LinkService.FindPageByCnd(sqls.NewCnd().
44-
Eq("status", constants.StatusOk).Page(page, 20).Asc("id"))
45-
46-
var itemList []map[string]interface{}
47-
for _, v := range links {
48-
itemList = append(itemList, c.buildLink(v))
49-
}
50-
return web.JsonPageData(itemList, paging)
51-
}
52-
5330
// 前10个链接
5431
func (c *LinkController) GetToplinks() *web.JsonResult {
5532
links := services.LinkService.Find(sqls.NewCnd().
5633
Eq("status", constants.StatusOk).Limit(10).Asc("id"))
5734

58-
var itemList []map[string]interface{}
35+
var itemList []map[string]any
5936
for _, v := range links {
6037
itemList = append(itemList, c.buildLink(v))
6138
}
6239
return web.JsonData(itemList)
6340
}
6441

65-
func (c *LinkController) buildLink(link models.Link) map[string]interface{} {
66-
return map[string]interface{}{
42+
func (c *LinkController) buildLink(link models.Link) map[string]any {
43+
return map[string]any{
6744
"id": link.Id,
6845
"linkId": link.Id,
6946
"url": link.Url,
7047
"title": link.Title,
7148
"summary": link.Summary,
72-
"logo": link.Logo,
7349
"createTime": link.CreateTime,
7450
}
7551
}

server/internal/models/models.go

-1
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,6 @@ type Link struct {
209209
Url string `gorm:"not null;type:text" json:"url" form:"url"` // 链接
210210
Title string `gorm:"not null;size:128" json:"title" form:"title"` // 标题
211211
Summary string `gorm:"size:1024" json:"summary" form:"summary"` // 站点描述
212-
Logo string `gorm:"type:text" json:"logo" form:"logo"` // LOGO
213212
Status int `gorm:"type:int(11);not null" json:"status" form:"status"` // 状态
214213
CreateTime int64 `gorm:"not null" json:"createTime" form:"createTime"` // 创建时间
215214
}

site/src/components/FriendLinks.vue

+32-54
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,16 @@
99
<div class="widget-content">
1010
<ul class="links">
1111
<li v-for="link in links" :key="link.linkId" class="link">
12-
<div class="link-logo">
13-
<img v-if="link.logo" :src="link.logo" />
14-
<img v-if="!link.logo" src="~/assets/images/net.png" />
15-
</div>
16-
<div class="link-content">
17-
<a
18-
:href="link.url"
19-
:title="link.title"
20-
class="link-title"
21-
target="_blank"
22-
>{{ link.title }}</a
23-
>
24-
<p class="link-summary">
25-
{{ link.summary }}
26-
</p>
27-
</div>
12+
<a
13+
:href="link.url"
14+
:title="link.title"
15+
class="link-title"
16+
target="_blank"
17+
>{{ link.title }}</a
18+
>
19+
<p class="link-summary">
20+
{{ link.summary }}
21+
</p>
2822
</li>
2923
</ul>
3024
</div>
@@ -38,54 +32,38 @@ const { data: links } = useAsyncData(() => useMyFetch("/api/link/toplinks"));
3832
<style scoped lang="scss">
3933
.links {
4034
.link {
41-
display: flex;
35+
display: block;
4236
height: 62px;
4337
padding-top: 5px;
4438
4539
&:not(:last-child) {
4640
border-bottom: 1px solid var(--border-color4);
4741
}
4842
49-
.link-logo {
50-
display: inline-block;
51-
min-width: 50px;
52-
min-height: 50px;
53-
img {
54-
max-width: 50px;
55-
max-height: 50px;
56-
border-radius: 50%;
57-
}
58-
}
59-
60-
.link-content {
61-
display: block;
62-
margin-left: 5px;
43+
.link-title {
44+
font-size: 15px;
45+
font-weight: 500;
46+
color: var(--text-link-color);
6347
64-
.link-title {
65-
font-size: 15px;
66-
font-weight: 600;
67-
color: var(--text-link-color);
68-
69-
overflow: hidden;
70-
word-break: break-all;
71-
-webkit-line-clamp: 1;
72-
text-overflow: ellipsis;
73-
-webkit-box-orient: vertical;
74-
display: -webkit-box;
75-
}
48+
overflow: hidden;
49+
word-break: break-all;
50+
-webkit-line-clamp: 1;
51+
text-overflow: ellipsis;
52+
-webkit-box-orient: vertical;
53+
display: -webkit-box;
54+
}
7655
77-
.link-summary {
78-
font-size: 14px;
79-
margin-top: 3px;
80-
// font-weight: 500;
56+
.link-summary {
57+
font-size: 13px;
58+
margin-top: 3px;
59+
color: var(--text-color3);
8160
82-
overflow: hidden;
83-
word-break: break-all;
84-
-webkit-line-clamp: 1;
85-
text-overflow: ellipsis;
86-
-webkit-box-orient: vertical;
87-
display: -webkit-box;
88-
}
61+
overflow: hidden;
62+
word-break: break-all;
63+
-webkit-line-clamp: 1;
64+
text-overflow: ellipsis;
65+
-webkit-box-orient: vertical;
66+
display: -webkit-box;
8967
}
9068
}
9169
}

site/src/components/SearchInput.vue

+5-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
v-click-outside="onBlur"
66
:class="{ 'input-focus': data.inputFocus, 'show-histories': showHistories }"
77
>
8-
<div class="search-input">
8+
<form action="/search" method="GET" class="search-input">
99
<input
1010
v-model="data.keyword"
1111
name="q"
@@ -24,7 +24,7 @@
2424
<span @click="submitSearch">
2525
<i class="iconfont icon-search" />
2626
</span>
27-
</div>
27+
</form>
2828
<div class="histories">
2929
<ul>
3030
<li
@@ -73,7 +73,9 @@ onMounted(() => {
7373
loadAllHistories();
7474
});
7575
76-
const searchBoxOnEnter = () => {
76+
const searchBoxOnEnter = (e) => {
77+
e.stopPropagation();
78+
7779
// 如果选中了历史搜索记录,那么使用历史搜索记录
7880
if (
7981
data.selectedIndex >= 0 &&

site/src/pages/links.vue

+56-24
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,3 @@
1-
<script setup>
2-
useHead({
3-
title: "友情链接",
4-
});
5-
const links = await useHttpGet("/api/link/list");
6-
</script>
7-
81
<template>
92
<section class="main">
103
<div class="container">
@@ -13,22 +6,16 @@ const links = await useHttpGet("/api/link/list");
136
<div class="widget-content">
147
<ul v-if="links && links.length" class="links">
158
<li v-for="link in links" :key="link.id" class="link">
16-
<div class="link-logo">
17-
<img v-if="link.logo" :src="link.logo" />
18-
<img v-if="!link.logo" src="~/assets/images/net.png" />
19-
</div>
20-
<div class="link-content">
21-
<a
22-
:href="link.url"
23-
:title="link.title"
24-
class="link-title"
25-
target="_blank"
26-
>{{ link.title }}</a
27-
>
28-
<p class="link-summary">
29-
{{ link.summary }}
30-
</p>
31-
</div>
9+
<a
10+
:href="link.url"
11+
:title="link.title"
12+
class="link-title"
13+
target="_blank"
14+
>{{ link.title }}</a
15+
>
16+
<p class="link-summary">
17+
{{ link.summary }}
18+
</p>
3219
</li>
3320
</ul>
3421
<my-empty v-else />
@@ -37,5 +24,50 @@ const links = await useHttpGet("/api/link/list");
3724
</div>
3825
</section>
3926
</template>
27+
<script setup>
28+
useHead({
29+
title: "友情链接",
30+
});
31+
const links = await useHttpGet("/api/link/list");
32+
</script>
33+
34+
<style lang="scss" scoped>
35+
.links {
36+
padding: 10px 15px;
37+
.link {
38+
display: block;
39+
height: 62px;
40+
padding-top: 5px;
41+
42+
&:not(:last-child) {
43+
border-bottom: 1px solid var(--border-color4);
44+
}
45+
46+
.link-title {
47+
font-size: 15px;
48+
font-weight: 500;
49+
color: var(--text-link-color);
50+
51+
overflow: hidden;
52+
word-break: break-all;
53+
-webkit-line-clamp: 1;
54+
text-overflow: ellipsis;
55+
-webkit-box-orient: vertical;
56+
display: -webkit-box;
57+
}
58+
59+
.link-summary {
60+
font-size: 13px;
61+
margin-top: 3px;
62+
color: var(--text-color3);
4063
41-
<style lang="scss" scoped></style>
64+
overflow: hidden;
65+
word-break: break-all;
66+
-webkit-line-clamp: 1;
67+
text-overflow: ellipsis;
68+
-webkit-box-orient: vertical;
69+
display: -webkit-box;
70+
}
71+
}
72+
}
73+
</style>

0 commit comments

Comments
 (0)