From e5e7d345b78db007d72dc4fe77139ea3b4c5d602 Mon Sep 17 00:00:00 2001
From: huliyong <2783385703@qq.com>
Date: Fri, 23 May 2025 17:31:28 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E4=B9=A6=E7=B1=8D?=
=?UTF-8?q?=E5=88=97=E8=A1=A8=E9=A1=B5=E9=9D=A2=E5=8F=8A=E5=A4=9A=E9=A1=B9?=
=?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 新增书籍列表页面 `/pages_order/novel/bookList.vue`
- 优化书籍项组件 `novelItem.vue` 的样式和逻辑
- 新增删除作品章节和批量删除作品的功能接口
- 调整登录页面样式和交互
- 修复书籍管理页面中的删除逻辑和样式问题
---
api/model/my_book.js | 12 ++
components/novel/bookshelfItem.vue | 211 +++++++++++++++++++++++++++++++++
components/novel/novelItem.vue | 28 ++---
components/novel/workItem.vue | 8 +-
pages.json | 3 +
pages/chapter/index.vue | 160 -------------------------
pages/index/bookshelf.vue | 85 ++++++++++---
pages/index/category.vue | 64 +++++-----
pages/index/center.vue | 32 +++--
pages/index/index.vue | 28 ++---
pages_order/auth/Modifyinformation.vue | 19 ++-
pages_order/auth/wxLogin.vue | 10 +-
pages_order/auth/wxUserInfo.vue | 10 +-
pages_order/author/chapterList.vue | 97 ++++++++++++---
pages_order/author/createNovel.vue | 107 +++++++++++++----
pages_order/novel/bookList.vue | 58 +++++++++
static/image/center/headImage.png | Bin 0 -> 8465 bytes
17 files changed, 618 insertions(+), 314 deletions(-)
create mode 100644 components/novel/bookshelfItem.vue
delete mode 100644 pages/chapter/index.vue
create mode 100644 pages_order/novel/bookList.vue
create mode 100644 static/image/center/headImage.png
diff --git a/api/model/my_book.js b/api/model/my_book.js
index d46fae7..9348b5a 100644
--- a/api/model/my_book.js
+++ b/api/model/my_book.js
@@ -28,6 +28,18 @@ const api = {
method: 'POST',
auth: true,
},
+ // 删除作品章节
+ deleteMyNovel : {
+ url: '/my_book/deleteMyNovel',
+ method: 'POST',
+ auth: true,
+ },
+ // 多选删除我的作品
+ deleteMyShopList : {
+ url: '/my_book/deleteMyShopList',
+ method: 'POST',
+ auth: true,
+ },
}
export default api
\ No newline at end of file
diff --git a/components/novel/bookshelfItem.vue b/components/novel/bookshelfItem.vue
new file mode 100644
index 0000000..5af1517
--- /dev/null
+++ b/components/novel/bookshelfItem.vue
@@ -0,0 +1,211 @@
+
+
+
+
+ {{book.name}}
+ {{book.author}}
+ {{book.details || '暂无简介'}}
+
+
+
+ {{tag}}
+
+
+
+
+
+
+ {{ statusText }}
+
+
+ {{ item.service || '大家都在读' }}
+
+
+
+
+
+
+
+
+
diff --git a/components/novel/novelItem.vue b/components/novel/novelItem.vue
index 527c756..1ec5345 100644
--- a/components/novel/novelItem.vue
+++ b/components/novel/novelItem.vue
@@ -4,14 +4,14 @@
&& book.image.split(',')[0]" mode="aspectFill">
{{book.name}}
- {{book.author}}
- {{book.desc || '暂无简介'}}
+ {{book.author || '暂无作者昵称'}}
+ {{book.details || '暂无简介'}}
-
+
@@ -37,7 +37,7 @@
horizontal: {
type: Boolean,
default: false
- }
+ },
},
computed: {
statusClass() {
@@ -76,9 +76,9 @@
}
.book-cover {
- width: 160rpx;
- height: 210rpx;
- border-radius: 8rpx;
+ width: 150rpx;
+ height: 196rpx;
+ border-radius: 16rpx;
margin-right: 20rpx;
box-shadow: 0 4rpx 8rpx rgba(0,0,0,0.1);
}
@@ -96,14 +96,14 @@
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
- flex: 1;
- margin-right: 10rpx;
+ margin-bottom: 6rpx;
}
.book-author {
font-size: 24rpx;
- color: #666;
- margin-bottom: 10rpx;
+ color: #999;
+ margin-bottom: 6rpx;
+ flex: 1;
}
.book-desc {
@@ -114,13 +114,13 @@
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
- margin-bottom: 10rpx;
+ margin-bottom: 6rpx;
}
.content-row {
display: flex;
align-items: center;
- margin-bottom: 10rpx;
+ margin-bottom: 6rpx;
}
.book-tags {
diff --git a/components/novel/workItem.vue b/components/novel/workItem.vue
index 18f4698..64fd837 100644
--- a/components/novel/workItem.vue
+++ b/components/novel/workItem.vue
@@ -1,5 +1,5 @@
-
+
原创
@@ -63,7 +63,6 @@
},
statusText() {
const textMap = {
- // '0': '新建',
'0': '连载中',
'1': '已完结'
};
@@ -104,11 +103,14 @@
},
methods: {
handleClick() {
+ console.log('handleClick called, isManaging:', this.isManaging);
+ // 在编辑模式下,只触发选中事件
if (this.isManaging) {
this.$emit('click');
return;
}
- // 跳转到章节列表页面
+
+ // 非编辑模式下,跳转到章节列表页面
uni.navigateTo({
url: '/pages_order/author/chapterList?id=' + this.work.id
});
diff --git a/pages.json b/pages.json
index 824dfcf..d436db1 100644
--- a/pages.json
+++ b/pages.json
@@ -109,6 +109,9 @@
{
"path": "novel/Translation"
},
+ {
+ "path": "novel/bookList"
+ },
{
"path": "auth/Modifyinformation"
}
diff --git a/pages/chapter/index.vue b/pages/chapter/index.vue
deleted file mode 100644
index 52c8b4d..0000000
--- a/pages/chapter/index.vue
+++ /dev/null
@@ -1,160 +0,0 @@
-
-
-
-
-
-
-
- 章节名
- 第{{index + 1}}章
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pages/index/bookshelf.vue b/pages/index/bookshelf.vue
index 662f076..d103946 100644
--- a/pages/index/bookshelf.vue
+++ b/pages/index/bookshelf.vue
@@ -51,7 +51,8 @@
v-for="work in list"
:key="work.id"
:work="work"
- @click="toWorkDetail(work.id)"
+ :isManaging="isEditMode"
+ @click="toggleSelect(work, 'work')"
@longpress="enterEditMode"
/>
@@ -101,10 +102,22 @@
class="work-item-wrapper"
v-for="work in list"
:key="work.id"
- @click="toggleSelect(work, 'work')"
>
+
+
+
+
+
+
+
+
+
+
+
@@ -139,7 +152,7 @@
+
+
diff --git a/static/image/center/headImage.png b/static/image/center/headImage.png
new file mode 100644
index 0000000000000000000000000000000000000000..65d23e628a32aa6b8205f0930ed3bb14cb749e68
GIT binary patch
literal 8465
zcmV+sA@1IZP)
zh=*y}AcS5>{jBb;%9#5_WLD)PZbW2Oc6W(0A1A3+X2#8k$Q$<+HzE~%hoQAz;h&fI
z!0&U}?}_Y}3cppX7JeUQzc;hrRi)H*`i?@;cLdqXe~pieWSQV4+FxAHjz8k}yTT-o
zEkiH^V5EZqev$p2pu@!~SqAw7AJ>>cR_QUsW5o~|6I|xwRX#4!Y~vaq@6cn+95V}M
zgiCz9rypPZo{!h)F~H192yLaoule{dI(&7|6;}DUN;51qW{x4cWP~&&+S?@>4ec-f
zjlXdKBmTEe>*e}=?wEuq$&UWK{hgb)2mYQC@Lb;I_B87mTnoz>C+kJFpBe
z9CqJ4%_RFhqIqVF`6HG=7LL#~c$;R3F=m1xm>GUUEf@hKerrS1V2fyX*FD<1ZlZQj
zgfuzAOmSq!l5ukrXIiu(Uvz}J{VzpOOgbJGRaLkSf^w=YCP|SXtG-3MY>LewVCar7JV->P|q7h@fNtQ7l(gEN=7(&~5hW9AKR*)q^
zt0$Ag1f(tzk_-~S7$?s}tCCedUO5OAGQCF~05iku{PO_?m|@70;NER*j&7KNk)+ff
zk!8Kypv5aA(_TnH+x7rf`1pYP@-po+_Ekb;?&OuweH&|<)*kwd#l}x2f750w9)~~|
z?29MjobD_8>7MRe&oDE1+TxnvjfmfWzO@J_3cm!-8M)OH+nn
z@jsVfZL2&cfEqdTbd;<5CNsqwv=8W|QDWXpU}h@9Y860!HVt<>0Ld
zegCR!W3$s<$(RAgqnMn6z!HqcjkQYI@d%7OpVeHA-@mpu>OPmzk+hUR%U7ma4}O-e
zcVjNRTr}aNB&nYkRLJpD6aw-uUg?r4I%9|!W`K%#a7UYYhS|VuN{JkiDx_1U=)}v2
zVFoY(JcueY=!WlPa=-Qu-C`NBl{(@%IU=7$E!re_L%Ams@Iuh%?`7{`YIHJ0kN`rS
zF!W$c(}R0m+Y4P`wxt9By88-b{G0^Yr}inrOdON3R5veVcOaWFarWFInd`S)(ObVw2&%t
znaW!?T%d${#c{4Hj2)zrw(EBEWq>IzXYZsnTFc8UY9?}Il^Gh-PeRP#nLSV=<872j
zsLJ9KNr{3gUT*{`9w9^WNFqxU>WJc}P6y{gF0=Z0hgzUj?XtNEgrl8?3~UC7xM>g(
zD$0JF%sn3N^!W6ls|k(MXT3HBJdT&!%zZSLT?LQA$qdG|6eNRBTU4)wJ5EtO+NiU?
zl<*AIpayZ!p7YJy6h=-1(%0j@n|IX4^Jt^Yprck?7xD=z$(v{rM{JHRy1TpD?YF$i
z4NZ?rxbOvn0_GOZ5sC1`({p-LZ#Hwa#NGQoez
zs^eXXM0DLlISr2<)WgwHbg2zPP@__s4L~JMNL6XgHdDB02g2O2CoaTBGMlIjQB`1~
zs>}@WnpH)Wsg_XQd+Q~7&imYUNHe%f?5Biq(MI2I%7Zb_UyVW(Lu9Jrvg;aj*jkDA
zgc%)j8(Nc^2-!`I0v8#L#C5(*R(_SC=cNu>U7@`VgLmMuCtk}k+=GZ}4io!=1nE$=
z8}gUh#C!~uiJ=vuVXvFUn$=h=Gx#4Pon~jt5~IfgB^_DAElqtCX9uVc)`q~I5P*Fx
zE>Hl$RE#Y0wc@&lY3vCz}-*c*=0s%7>h>%EF=zi?j%C)dF@I
zjl|}oLUjna6f68Lk!^K_Jn&}(dJIX3r#rXw0Zdr68;cm_2_Nh0DLs1FqxG$nMx(^8
z*Hrd!208iMV4K^wH(3kXn@gE7h@N_q74pf1h9he1O&t`_z9-L#Q|3VfGsF-uMlQRq
zAw_;`D<)N~Krc&sbGd--P&JRtWXR`x(X_w_ICJm5rn?U?sg{_$f<)!z0%i$R$xzeI
zmNHB9#?Rw2yL;&9Aw7LIp>yXIrA!P1qdB`amkbhI{kGs&9anu)LTpPW9lmf~gJ?nk
zYF2=nB;1twc};ijYPx-w8H0yPuSc!1xi0(mV1f~gk7u7r>D)7Yv$%MyN@fIL2qDGa
zDZYz^!|u#i`1+JpE$iz|FqMu{fWtQVo5Qg=P&eFjoNdwfHqP>k`R|jn7k^*
z926`oN9-UekIptTzIJ5RX%#U)M|9(Jo=khh%&MLV61nbH7Eb^@5
zojZ!IUmw!ZqmFxo=Sqn@xIg^p)Jp^Kq#uY5z5hPPGvSMy$XoU_~Y?2sFIyDF(+G3jsN$g~>MG6v*=rW>Ewjt>c^=E)v3
z?olwB(-sJ{31#|Rw-5eDn~`bNj*6<`q`!O(^EY}z!_vlk^Q?^fjkiX6vKwp-P#0Bb
zWt}Y*S=n(p3QLBn4PipFY&3rQIT?S@Yq;gTqJ{J0e;3YIIaAxnWsP*@-&zQ6v9h5L
z|1#nzrzZy6K`5e5qt3COJj_egB$_I@ORiGzyPZUJJ1;|=TPh;WXlHUCuH~(7IIO&z
zMA!^*BXV2^^lIhJVq{0{HYc>B$7MG+d-TtnLt2m~2)c;!)@al#jqR6G`B|5JrJd?x
zcc6uoF#nqg1O&Zh6pczx8SwnW-Fqr>&!!6X7OC54F$~Jw)6j8GDgkcr&42c3u$MM2
z8^WZY!m#^tiI-n3{$pasSaos9RRY8g-j|p>5ka5To9N&uf6PlO8Z0qPaB2!y0Yw+t
z4ZZO@BfRqqWQX54HamjTz)J1NTIBafLk#Qu^eZLk;R?FDG5}tj;yhK`E%iw*-
z)e)IbWC*t__cbeu^LPnRK
zwwqS3r_9_$f6j5SE3sw5DcVVYx~QY2xnLxmHg-_6lHJ0iHhz)+QDg|`Lfvgy)NrNU
zscEupF`08#l`@pkDs}{nx(5&J)K#sA+(u1yO)wsPaJmc58^gDZuc>i~bl77XXjC$Y
z!@cCb))pSMQI-&_L-McA)BsT<_Gig0Qo_tSa@=O8bTG`2dbl;MMB~!>C@Kv+4eUkB`lt6ZSJE6^OUoM1PQTa+7Ei>d&
zZ;BDG(*?!ZRkE=)qz)hvMeD6iGZDf{d1vd7Zl+lPYffcv5IBi%`H4CQZ6qUEfw
zgGMBuosd7Nf^UF=WfBwEk>@JRqS?q$
zpQOoDF5e|uIvoCPk`#_MJ-V+<23Lq?)zWfMqh_$Qc4Z0iQjw~YA;3*>Q?Y(jlUhpG
zgm&%jjc8}j;kf!NuITz?f4D-{HN-wlP6EnDvk9>6D3eel)QqM_#dfH?KaU+@86q<%
zYseE!C*0~noGq+$B6=Q@q~6&|oU@Hevf3Izc|z9C%0wZdn2#dR@iW3Z&0Ad`+Kr2Hw#xs;ZG9EZU`8xdQZ!uE}7L06?o`*gYxwD3%+
zjhLj}3}jXLq_P&;o(6ZNu_GzqZM+0+w&J=X8I9pH;hEDg62h5GtG&Co=Fb{YH-=F40mi^_UsFD7zKpa~PsjNh?aD|jJf>+fi!`c@
zgpd}D=4Bgosg!Ih+cus>!N-Ft!-bNS-ifPJeSngK2ij-NmoXvH6V6v@m!+8r#OB=7
zR4b7z8513t18LNy87D*}%H;JL1#Ac>#x?{6&BGvk?UP1B)#cQ&qq=mh&Z!u
z1$mk2M0#VyLZoRz6Fv3zu#BsB8O^}@D=
zI-*Pz%3C2KQaSw#Y$v%)9RfDQ6p(srBwVfcu&U59QaZIc1iCVJW(#P!8u{qXi57<8
z9y9onKK6;kD)37As@D~
zn}2dN3e)kw&KUv~?=_+Az6NIamz9(jj#^dp<*gB|t@S2Jv>6kORSVz0e0)UDobQ>_
z8ylKF{7Xvn3-RN}l2gvM9X)Ed6qrQ>Tj=Lj<-A*qQ!`Zsq)Atj!c0e|HV4r;ikvDY
zzou&UV5FZs$;`knb9YzK&JNMJ?XuM5$kjoHC17qfHgA5~+Y8RJ6IRy_Yb~M@0_cKj(U~-0b06I;kH-
z>^w)3wDf=`;BfBZv4dacR}g?+hzy|$)~j0%5Y?O28<%mzWka~{#{Lcq3$EC&i>$}2
z7qI#!O0p)a-u+A-dNW@_ZvF*cZcZb~tuUr%v9hCW)e
z>bwxs&f3m#-N};SNYnA-x^4hc+DLAiErKwaRG9o3?P*pU$}G%HE9wR3&ON0{zB+hm
zeUnN%%EY)VRihFCp);qo*{-NuNs31jI`1~+i}2)QthVwp#`PBxWaKjwc@ydb*bgU{
zmDvrhOe%@zyX+y@TntMQ#}ZB1UFLrLBk1$g7%iF~xO6O~pZplis7fTT`Nm%LC5BUH
zsJdBd%1nOxbgyRRHwi?E(=fuiP?v=F4R-L#Dmh{iNb|xd$ye*i+TH;?Fs;;zeMoH=
zJw^|R-kf56o0{c&W`qmzV`<;0JbMxQNPKl$(Tgu6W(8QTPe(j~cK)2sIxR8x4~G-A
zhW|sgeE89by`JeDGSE7HJf*pQkKNcNrIgUdymdm!@%>dP?qvugA)E`wbFrctyuci)
zs+{u=l{BPyViaBhyw
z%SN(FFR=@Wv6J22j;8+vU2cKsY%0jNw%#&o8(yUvjA(Pyh*
zhLnR&WcH`RYaejXYI_HpiQ{GVjoNI^40$7Luft0^a~iwiHnAPD>Sm2{ekj({U$(3q
z#i$vSs|nMgQ_#(<^c*lW73;;#t%UABNa!9P
z8%XTs7umzNv0BgaBvc&5Lv~|d_?N_NtK1Y|1Sw@Ml%ON_GkK-|Y9f7?31UU^SLFnm
z=5HouCmApSJc8$*v&_*YOzK5K<1LR(wz;#jrOAhiPN!^i5>{$ydhy4$?omOfsiqpG
zM49qCF}wOo3*3~to?r4xiCV$@8670Zghux`r9mTRkkHvPY3NJ0Q&h&foys}2DJAMA
zRT9RAfqHoM`y)EehGZIPW4HMvWwjn5o5CXSg*))rMqqvzv>ZcV3T*IfI
zO6d5pk)16RXr&F$=Sen@5O8se{2-=ZdX|yy4)H0)AwBzSKgw?KO9sInYv{@4eLpX6
zTvB2PK|)9$ISoOHXQ!cszXt39Jo8+So;V^)3NgCt3HYO4HgsL7doVIsuIUcf=>!L$
zUi@L7jo`Q;y?N_O6AS{;-V~;3UaFUb*!|};eBYN>i94g;-RBH<9IH8ew
z9@2Hs`-1JT5F;Tn!_pbC^u{CdxONq3ifG9(}ecM!^_GRE*82i$Z2p
zv?Q~!hOI5lDq=`K_(6}2N#TV}XKrOQ0)6X|HXdfc*LF%O1NejM&idD5i=*75luIS@
zGRkqyU8cATUHQJrSK5eYgFsHi)JdmLe$(>zP5%*-Vuhi*6$
zjUmXkNo;CEUNbD(J#lhK|M8#7e3Ai+n+~dXn!>~%WC`(Z@jioWYr1b;cjIFz`PM?N
z2G`HqGt&KTG%Zse6ZjX@8={The64AH%Wg3ovm6kaS(|GrDi{Sxf~4D%$2DDeUU8ID
z8BZcA&Oq%MCcf|82z+JdLLQGAho1251ZIkB*@88w*@DZ78Df8(iwS+l-p8I*d#6qlo&P>k{1P)au{*<3p@_vL@zS+o
zaIzYUgdK6IPE66-LtQgi+*ScF*>5R~oQjLL*ZchT&z~py-uE(og_Cr;oSU~Jv&QgEUwzQ!?aC9z*(
znbBiVz9T-zr#8$-*DCuQh9+2im^41mwU;Nvyh|}C3`8FLeVcl>yJOwM;SSF}?xiLZ
zdoWN&ZD6C)IkrbI*>&^?rrnkKO;h`^wWhX7Q%G%f-phe0<%~tt*$UF(u{8>n>89e`+Y6r;VLTt
zwX$;=+A;tbC{M9cs?dbuZ|(VUsP5=%UvtCjH?TSxPG>3d|p
z9GLV{I>W>4>^Y(*mJ+`6{RpacIP3>u4naD&02_O-oznBqr*!UI-_DYD&=oTKz|#{`$9}`Dk0^iR7+_Y&JtO
z_&f`V8BBf11D}+DVfoE1?cJQrL)jQ~AAf3HyJVjk0WcBCU8LCWKjXCp;vYS>SpV&1
zWtJbb0hs-%b7DU1Dj%=-7{bf%J}H3*E}sx42RsQfn)M|zu|ED74qu%a+NQsS%3wZX
zcVL-8ADX&Iz2|$0^{C$eQ(DSH@!1enEG>H%^S1RLh+hm(aW&k5R{fv0o8F#26wu^oxT{wBh
zHEmpWO}=y#Xgl`TJl{`ACK1ibnEs|SX){yyL`f{Dqu*yO%Z6)-;ff{yi4e|@|M;i2hEm6YCW#*GhRuf2$o+Rdnmxhf
zK`tb8kVW8w|#T5O$92t}GU(J6D~GOE%2rVPUDtU4Y%N=x=O{zhL1?1r~uRmG%^4Uxqr
zJ|MyCKpNZK+mraj+=8Z0KT)P-rZHW55Dt3Ah~&`pa92f3hZynSBzdJsx81Zjs^
zVmB1gI#iSCCeeCDJpI_RqRkD}=mmH`sVLUPhSGPo;*7{PqdgXWX_GWMU!(=e@aSQW
zmRMmQlV>r3t4-~Oa7`k?557W`tlc8O6hHZC95O5`}c@Gy+NJt>yS$Ze6T*5inV7O2u%ItBGK8W
zytg68;g>Wex?%`;9$<=>qlh$83JIYSRrd{u7vJ=#LfQf
z6T3SLf=$3-CdJChfXzFvSO)3=M&rp-QAJlNkR00;4y>y)WAh3H?1~&;vC;X(r(|*p
zy>zo*=S%a9V(BGIv_gnukkovU4-z4g5dfqcTY#{xW!#&Gp&neA8HUJFV2oEO5W5Hgfi5rx4(y4&
zk^SO4eg_VQF`rz@mI@#?fCEbho;Ys*1_QK^09DK!BjlJlhRBgI#wBWKW6U^amJuE+
zFmt@d$M5yyi}(1rM2`VxRzkR-CsN~e@?>bu2(FRc2=?vANg6y>3{gaZIbdrb|6+v>
z7kKH2AN-MQI@@EZ5*}NIsDc>;Oo8JP9~a4!q|*_uX9qql@a{p(GaLlIGYsKE#w06+
z<2kaP%Sv|3icoa5@QaatGy5CI_3z5dcj5m4Owp9s**OPh00000NkvXXu0mjf^|d=i
literal 0
HcmV?d00001