diff --git a/src/pages/callback.astro b/src/pages/callback.astro
index 4f85f8d..e8a4260 100644
--- a/src/pages/callback.astro
+++ b/src/pages/callback.astro
@@ -2,22 +2,29 @@
diff --git a/src/pages/posts/ForagingGuide1.1.md b/src/pages/posts/ForagingGuide1.3.md
similarity index 55%
rename from src/pages/posts/ForagingGuide1.1.md
rename to src/pages/posts/ForagingGuide1.3.md
index c66cc3a..778c78e 100644
--- a/src/pages/posts/ForagingGuide1.1.md
+++ b/src/pages/posts/ForagingGuide1.3.md
@@ -1,442 +1,478 @@
----
-layout: "../../layouts/MarkdownPost.astro"
-title: "宁波理工学院觅食指南ver1.1"
-pubDate: 2024-09-16
-description: "好饿...."
-author: "星璃,I_e_d_"
-cover:
- url: "https://oss.nbtca.space/blog/clas/LwYtOGPxEFNUpji-vexMSQ.jpeg?x-oss-process=image/resize,h_512,m_lfit"
- square: ""
- alt: "cover"
-tags: ["生活", "吃饭", "介绍", "觅食指南", "攻略"]
-theme: "white"
-featured: true
----
-
-# 目录
-
-- [前言以及须知](#前言以及须知)
-- [校内部分](#校内部分)
- - [老食堂一楼](#老食堂一楼)
- - [老食堂二楼](#老食堂二楼)
- - [新食堂一楼](#新食堂一楼)
- - [新食堂二楼](#新食堂二楼)
- - [其他](#其他)
- - [图书馆部分(感谢Ineedi编辑的此部分)](#图书馆部分感谢ineedi编辑的此部分)
- - [新楼楼下的商业街](#新楼楼下的商业街)
-- [校外篇](#校外篇)
- - [商业街](#商业街)
- - [小推车](#小推车)
- - [附近走走就能到的东裕夜市](#附近走走就能到的东裕夜市)
- - [后记](#后记)
- - [v1.0后记](#v10后记)
- - [v1.1后记](#v11后记)
-
-# 前言以及须知
-
-本指南意在分享一些本人在宁理吃过的好吃的美食和一些需要避开的店家;
-
-食客:StarLink-Sora,Ineedi
-
-余打广东而来,平时吃的重口不多,比较好清淡,
-
-重口爱好的可能不太可以用来当做参考;
-
-这里是2号食客,坐标浙江吃辣区的衢州,但本人不吃辣(笑),略微偏咸口,不吃葱蒜辣,所以一些比较浓重口感的菜可能需要自己去尝试
-
-没提过的店家就是没吃过;
-
-所有评测皆为本人主观意见,采取十分制,仅供参考;
-
-如果以上都OK的话那就正式开始吧
-
-# 校内部分
-
-我们学校目前在开的有两个食堂,我为了习惯会叫老食堂和新食堂,即24幢旁边的为老食堂,微校园旁边的为新食堂;
-
-另外有两条商业街,即30幢附近的那一条和新楼(即四期)底下的两条,另外还有隐藏的小吃店——SC一楼的烘焙店(真的还活着吗)和26幢附近的炒饭店。以及——图书馆楼下的那一小片美食区。
-
-## 老食堂一楼
-
-### 1.大众窗口
-
-并没有吃过几次,但是印象很深的是他那个葱油鸡,还不错;省钱的可以去这里吃,缺点好像是不能手机支付;
-
-**主观评分:8.0**
-
-### 2.黄焖鸡米饭
-
-旧一我觉得最神中神的一个窗口,即使我吃微辣都觉得辣的要死还是会爱吃这个,喜欢重口的更不用说,一定要去试一试;
-
-**主观评分:9.5**
-
-### 3.孔明村香锅
-
-种类可以,香锅的味道也很不错,偶尔会有小吃送(砂糖桔什么的),如果新二没有同类型的店的话我吃香锅一般都会去这里吃,但是新二有了;
-
-**主观评分:9.0**
-
-### 4.兰州拉面
-
-拉面和刀削面都做的很好,面汤的味道很浓厚啊,有个水饺也很喜欢吃,10块钱就能买到一碗确实带几块牛肉面还好吃的牛肉面要什么自行车.jpg;
-
-**主观评分:8.5**
-
-### 5.蜜雪冰城
-
-看客流量便知,顺带一提奶茶真的很甜,我会选择五分糖甚至三分糖或者不要糖;
-
-**主观评分:9.0**
-
-**其他没怎么吃过也没印象的直接跳过,欢迎补充;**
-
-## 老食堂二楼
-
-### 1.盖浇饭
-
-在我心目中老食堂的唯一真神,一肉一素8.8还能加饭,然后他最牛逼的是你可以点半份菜,也就是说完全可以点四种不同的半份菜然后吃得种类丰富还不怎么花钱。
-我大一上还在24幢的时候就天天靠吃这个省钱,一个月伙食只需600块即可,而且辣子鸡质量在线,就是偶尔会被辣到,总之神。
-
-**主观评分:9.5**
-
-### 2.自选窗口
-
-和隔壁盖浇饭一样的价格一样的内容,只不过用碟子装,所以很容易凉。平时盖浇饭人多了又不想排队的话就去自选好了,人少会快一点;
-
-**主观评分:8.5**
-
-### 3.小兔子
-
-图一个方便,10块钱一个香辣鸡腿堡和一杯可乐,如果不是十二点十五下课急着吃午饭或者偶尔心血来潮会吃的话我一般不会吃这个,但味道确实不错;
-
-**主观评分:8.5**
-
-### 4.重庆小面
-
-15块的牛肉拌面很好吃。其他的话,青菜荷包蛋面也还行;
-
-**主观评分:8.5**
-
-### 5.盖浇饭那里的烤鱼
-
-香的,额外能加小菜也很不错。缺点就是得凑齐三个人或者四个人去吃,而且鱼骨很多,得细嚼慢咽,冬天可以每周去吃一两次解解馋;
-
-**主观评分:8.5**
-
-### 6.后面那个隔间饭店
-
-校内想多人聚餐貌似也只能去那里了,菜品还可以吧,没什么印象;
-
-**主观评分:8.0**
-
-### 7.小王烧烤
-
-校内烧烤好像就这间了,缺点也是贵,其他都很好;
-**主观评分:8.5**
-
-## 新食堂一楼
-
-### 1.大伙
-
-新一省钱的神,每周一到周五中午都会有一个纯肉菜和肉素菜打折,而且饭可以二两二两的打,省钱吃的可以去这里吃,抛开钱的问题本身饭菜质量也还过得去,依旧是葱油鸡做的还可以,豆角炒肉也还不错,辣子鸡和旧二的相比起来就差很多,因为他这个鸡是油炸的,所以我吃起来不太喜欢;
-
-**主观评分:8.5**
-
-### ~~2.炒菜机器人:~~
-
-新一我最不推荐的一个窗口。炒出来的粉和饭油都多的要死,调味也是完全没有的感觉,吃一次我都感觉自己要变成机器人了xD;
-
-~~2024.6月增补:好似~~
-
-**主观评分:5.0**
-
-### 3.面食
-
-中规中矩,价格也还可以,味道和重庆小面比的话会差一点;
-
-**主观评分:8.0**
-
-### 4.甜品粥铺
-
-鸡蛋饼就像是我妈妈做的一样,好吃。还有粥有饺子什么的,偶尔会去吃一下;
-
-**主观评分8.5**
-
-### 5.自选
-
-味道很不错,我喜欢的是豆角炒肉和青菜豆腐,这两个菜吃起来有种回到家的感觉。然后蜜汁鸡腿和肉丸也比较合我的口味,喜欢辣的可以试试小炒肉和那个辣椒牛柳,我是被辣到了;
-
-**主观评分:9.0**
-
-### 6.库迪咖啡
-
-和外面的是一样的,有米的时候偶尔回去喝一喝,还算可以;
-
-**主观评分: 8.5**
-
-## 新食堂二楼
-
-**关于新二的一些提醒:新二是我们学校迭代最快的食堂,很多摊位可能一个学期过去就似了,所以这部分还烦请各位自己去验证。**
-
-### 1.黑哥麻辣香锅
-
-曾经我以为旧一的香锅就已经是最好的了,直到新二来了个黑哥。咳咳,说回正题,黑哥强在种类的丰富,他这里的白肠是我最喜欢吃的一个肉菜,肥瘦的参杂刚刚好,还有不少旧一没有的种类,我们新式的黑哥已经爆杀了老式的孔明,在这里,一顿14块的香锅完全能做到有肉有菜还能吃得饱,算是性价比战神了。想尝试辣的也可以自己加,他放在自助的那个辣椒油奇辣无比。我试一次就已经不敢试了。
-
-**主观评分:9.5**
-
-### ~~2.维卡斯:~~
-
-我是没想到这个似了的东西还能回来。是的孩子们,我回来了。吃过一次,感觉味道不如小兔子,这一点就仁者见仁智者见智了;
-
-**2024年9月增补:不是我放个暑假回来你又似了???**
-
-**主观评分:8.0**
-
-### 3.缙云烧饼
-
-豆腐脑很好吃,摊主会问你加酱油还是加糖,小汤圆和饺子都很不错,我心里最清淡的那一档,想家的时候就会去吃;
-
-**主观评分:8.5**
-
-### 4.有家面馆
-
-只吃过鸡蛋拌面和麻酱拌面,都挺不错,就是很快凉掉,所以要快点吃;
-
-**主观评分:8.0**
-
-### 5.鸡香记烤肉饭
-
-都还可以,我比较常吃的是那个沙姜鸡,汁用来拌饭很好吃,烤肉饭也尚且出于过得去的说法,但是和其他比就稍逊一色;
-
-**主观评分:8.0**
-
-### ~~6.韩式烤肉拌饭:~~
-
-......量大管饱,但是那个窗口还挺重口的,所以我不怎么去;
-
-2024年9月增补:你怎么也似了
-
-**主观评分:8.0**
-
-### 7.嵊州小吃
-
-相当于沙县,但东西很多,炒面炒粉都很不错,油再稍微少一点点就好了。粥也很好,我生病的时候就喜欢喊别人帮忙去那里打碗粥带回来给我喝;
-
-**主观评分:8.5**
-
-### 8.板煮演艺
-
-这个窗口确实挺好吃的,但是科技味也很明显,比如说那个鸡肉就完全吃不出鸡肉的味道,抛开吃不出食材本身的味道不谈的话调味还是非常不错的,我要吃的话一般只吃他那里的铁板饭,意大利面什么的就算了吧;
-
-**主观评分:8.5**
-
-### 9.铁锅炖
-
-又一个量大管饱的......但是食材种类会多很多,14块里头蟹棒,土豆粉还有一堆东西,可以吃的很饱很饱,但是有忌口的话就还是建议慎点吧,不然就浪费了....;
-
-**主观评分:7.5**
-
-## 其他
-
-其他几个新开的例如浓汁浇米饭,~~宁海麦饼(似了),港式烧腊饭(似了)~~ 都还没吃过,故此不提;
-
-### 30幢的商业街
-
-在去年的时候去过一次,有家快餐店卖的鸡排饭还不错,就是地理位置太过于偏远,所以一般不怎么去;其他的话完全没有吃过,所以略;
-
-2024年9月增补:前几天去看了一眼,现在好像都是以做外卖为主了,店里甚至没地方做???
-
-### 26幢的炒饭铺子,~~鱼粉(似了)~~
-
-以前在24幢的时候经常去,鱼粉吃过一两次,汤很好喝,炒饭的话不会油腻而且分量足,是我喜欢的那一档。但是因为离得太远现在也很少去了。(主要还是那里有一家我最喜欢的店似了————————但是以另外一种形式打赢了复活赛,关于这一家店我会在校外篇进行详细的说明)
-
-2024年9月增补:开了一家一鸣真鲜奶,连锁店,没什么好说的;
-
-**主观评价:9.0**
-
-## 图书馆部分(感谢Ineedi编辑的此部分)
-
-提示:图书馆的餐饮座位区有吉祥馄饨店内的座椅,妞·斯达特门口的一组桌椅以及十足边上的目测50人左右的餐饮区,有米内部有两张双人桌也算。如果你下午第一第二节课的时间段没有课再考虑坐在餐饮区用餐,否则推荐打包或者外卖,因为你不一定能抢到位置。
-星巴克外面的桌椅属于星巴克店铺,不归于图书馆
-
-### 1.京面
-
-菜品是面和抄手(所以别想着去那里吃饭因为真没有饭)。碗大量足,面口感也可以,出餐快。之前如果有去那里兼职可以享受9折折扣,当然价格也不是很贵,一碗普通的面13块拿下
-**个人评分:8.8**
-
-### 2.熊厉害温州瘦肉丸
-
-如店铺名所示,
-**个人评分**
-
-### 3.芙蓉树下
-
-火锅类,不是两个人一起点尽量不要去
-**个人评分:**
-
-### 4.春哥小吃
-
-一个店面分的两家不同的摊,左边的肠粉是被广东佬点名批评的不正宗(既然写了是广式石磨肠粉就别给我默认加酸豆角和炸黄豆.jpg——星璃附.),右边的卷饼出餐速度不是很快,尽量把握好时间
-**个人评分:8.0**
-
-### 5.妞·斯达特烘焙
-
-图书馆楼下的面包店,面包做出来还行,不会甜的发腻,店员的态度可能会不太好,要小心
-**个人评分:8.0**
-
-### 6.有米UMI:
-
-是新开的店,卖的卷饼/小吃/酸辣粉/粥,把原来的粥铺顶掉了(被顶掉的那家是最喜欢去吃的,老板娘人很好,可惜现在见不着了)
-**新店由于还没吃过暂时不做评价**
-
-### 7.吉祥馄饨
-
-2023年顶掉了之前的CoCo,但说实话做的还行,碗大小适中,馄饨量足(馅多汤少),所有菜品均价22,算是能接受的范围。味道不会特别咸
-**个人评分:8.8**
-
-### 8.十足+9.星巴克
-
-这两个地方什么样子就不用我多说了
-以上就是图书馆楼下店铺的相关信息
-
-## 新楼楼下的商业街
-
-去年新开的商业街,这里有许多种类不同的饭馆,而且在外面也有许多座椅能够就坐,共同特点都是贵,在这里吃饭一般就不要想着个位数能够吃饱这件事了,怎么说都得10块甚至12块起步;
-
-### 1.美兹美名厨
-
-新楼算是比较便宜的那一档了,一肉两素12块,吃起来还行,不少人都喜欢去那里吃的,我不喜欢的原因主要是不够清淡;
-**主观评分:8.5**
-
-### 2.希食东
-
-神秘的名字,但是真的很好吃,我喜欢吃他那个咖喱土豆饼蛋包饭,味道很好,咖喱不会辣,和饭拌匀了之后很好吃,炸土豆饼端上来的时候还很热,小心烫嘴。蛋包饭的蛋也很滑嫩,总的来说算是一分钱一分货的典范;
-**主观评分:9.0**
-
-### ~~3.螺蛳粉:~~
-
-我没有吃过他的螺蛳粉,但是他的肠粉很好吃,很滑很嫩,不会像图书馆那样只是挂这个广东石磨肠粉的名号做出来的其实是宁波肠粉,其他没吃过;
-**2024.6月增补:似了,我还想吃他家的肠粉呢**
-**主观评分:8.5**
-
-### 4.天天小吃
-
-宵夜首选,5块钱的手抓饼还挺好吃的,能够让老板娘多加生菜和酱料(都是免费的),杂粮煎饼太脆了,没有那么喜欢;
-**主观评分:8.5**
-
-### 5.嗨一锅
-
-贵,自从点了一份三十块的麻辣烫就再也不想去吃第二次;\*_主观评分:8.0_
-
-### 6.伊佳基
-
-微信小程序注册一个会员再下单,累积积分可以减免。这个也没什么好说的,快餐,但是挺便宜,13块可以买两个汉堡也可以买一个汉堡一个鸡腿一杯可乐,有时候早上五节课加上下午还有课的时候就好吃这个来省时间;
-**主观评分:8.5**
-
-### 7.上海生煎
-
-偶尔想吃一顿好的早餐的时候会去,喜欢奶黄包和南瓜馒头。午晚饭可以吃他们家的炒粉面饭,都很好吃,油不算特别多,十块钱的价格还挺便宜;
-**主观评分:8.5**
-
-### 8.原来新二的麻辣香锅麻辣烫
-
-香锅油太多了,不喜欢,麻辣烫还好,但是价格和黑哥一比就是寄;
-**主观评分:8.0**
-
-### 9.西北楼
-
-又一个一分钱一分货的典范,吃这个起码15块起步,所以我很少吃,但确实挺不错。
-**主观评分8.5**
-
-### 10.卤a卤
-
-算是还不错的卤品和面馆,时不时会有一些优惠套餐啥的,吃起来还不错,我也只吃过一两次所以略
-
-### 11.炸鸡腿店(就是靠近米诺剪发的那一家)
-
-只买炸鸡腿鸡翅啥的,10块钱两个鸡腿还挺好吃
-**主观评分8.5**
-
-### 2024年9月补充
-
-暑假回来后新楼楼下开了几间新店:重庆小面,沙县小吃,吉祥馄饨啥的,没吃过所以略
-
-# 校外篇
-
-## 商业街
-
-**学校目前的校外主要是新楼附近的一排商业商铺,已经开了不少店铺了,种类很多,但是价格普遍比较贵,笔者也只是偶尔去吃了一下,所以这一段的话欢迎有能者来补充。**
-
-### 1.金拱门
-
-就很普通的麦,和朋友去过不少次,挺好的(喜欢麦的有福了)
-
-### 2.霸王茶姬
-
-贵但是好喝,偶尔心情好的时候会去点;
-
-### 3.铜炉鸡锅
-
-和朋友聚餐可以吃这个,有点辣,但是很好吃,饭可以无限加,因为菜真的很下饭
-
-### 以下是我没吃过的,所以只简单报一下
-
-韩式烤肉自助,managercoffee,乌鸡米线,一间忘了名字的朝鲜菜,面包店,酒吧啥的,特别多.....欢迎大家自己去探索......
-
-## 小推车
-
-学校的小推车集中于17幢和东门两个地方,一般在晚上11点之后出摊,但地点也不一定是这里,但会以这里为范围活动,想吃宵夜可以去碰碰运气,以下是我吃过的。
-
-### 1.UU炒饭
-
-油比较多,味道挺香的,10块钱起步,炒年糕方便面米线炒饭都有
-
-### 2.东门的烤冷面
-
-烤冷面真好吃啊。
-
-可惜这个阿姨不卖肠粉了。
-狼牙土豆和铁板豆腐双拼也很不错啊。
-
-可惜这个阿姨不卖肠粉了。
-但我还是喜欢去她那里吃烤冷面。
-
-### 以下是没有吃过的,我会列出来,种类也很多
-
-鸡柳炸串,鸡蛋汉堡,烤肠烤串,还有烧烤和另一家烤冷面啥的,多的时候5,6辆小推车,一般都能找得到你想吃的宵夜的)
-
-## 附近走走就能到的东裕夜市
-
-这个地方能吃的东西也是巨多,我目前只在那边吃过自助烤肉和东北菜,从北门出去一直往北走就能到,十几分钟的路程,这个也烦请自己组队去尝试吧。
-
-# 后记
-
-## v1.0后记
-
-终于大概的把这个东西写完了....
-
-但是我们学校吃的地方和馆子实在是太多,我没有精力和金钱去一个一个的尝试,但至少校内的两个食堂和新楼楼下的店(目前开着的)都稍微试过了一下,便把想写的写出来了。再一次感受到了我们学校吃饭是有多么种类丰富Orz
-
-**总之**,这个指南是以纯粹的个人主观感受写出来的,然后的话,学校的餐馆变化还是蛮快的,可能每个学期都会有点不一样,那就还请其他人来接手把这篇指南继续写下去了。
-
-署名:Starlink-Sora
-
-于浙大宁波理工学院
-
-2024年07月23日
-
-## v1.1后记
-
-为什么我一个暑假回来又多了这么多店啊!!!!??????????
-
-Ied学长要毕业了,所以现在这篇文档就只有我在撰写了,如果有错误的话还烦请指出,谢谢。
-
-~~真好。~~
-
-增补了一些东西,如果后人想接手的话可以直接QQ私讯我问我要原1.0的doc和1.1的markdown
-
-署名:Starlink-Sora
-
-于浙大宁波理工学院
-
-2024年09月16日
+---
+layout: "../../layouts/MarkdownPost.astro"
+title: "宁波理工学院觅食指南ver1.3"
+pubDate: 2025-05-13
+description: "好饿...."
+author: "星璃,I_e_d_"
+cover:
+ url: "https://oss.nbtca.space/blog/clas/LwYtOGPxEFNUpji-vexMSQ.jpeg?x-oss-process=image/resize,h_512,m_lfit"
+ square: ""
+ alt: "cover"
+tags: ["生活", "吃饭", "介绍", "觅食指南", "攻略"]
+theme: "white"
+featured: true
+---
+
+# 目录
+
+- [前言以及须知](#前言以及须知)
+- [校内部分](#校内部分)
+ - [老食堂一楼](#老食堂一楼)
+ - [老食堂二楼](#老食堂二楼)
+ - [新食堂一楼](#新食堂一楼)
+ - [新食堂二楼](#新食堂二楼)
+ - ~~[图书馆部分(感谢Ineedi编辑的此部分)](#图书馆部分感谢ineedi编辑的此部分)~~
+ - [新楼楼下的商业街](#新楼楼下的商业街)
+- [校外篇](#校外篇)
+ - [商业街](#商业街)
+ - [小推车](#小推车)
+ - [附近走走就能到的东裕夜市](#附近走走就能到的东裕夜市)
+- [后记](#后记)
+ - [v1.0后记](#v10后记)
+ - [v1.1后记](#v11后记)
+ - [v1.2后记](#v12后记)
+ - [v1.3后记](#v13后记)
+
+# 前言以及须知:
+ 本指南意在分享一些本人在宁理吃过的好吃的美食和一些需要避开的店家;
+
+余打广东而来,平时吃的重口不多,比较好清淡,
+
+重口爱好的可能不太可以用来当做参考;
+
+这里是2号食客,坐标浙江吃辣区的衢州,但本人不吃辣(笑),略微偏咸口,不吃葱蒜辣,所以一些比较浓重口感的菜可能需要自己去尝试
+
+没提过的店家就是没吃过;
+
+所有评测皆为本人主观意见,采取十分制,仅供参考;
+
+如果以上都OK的话那就正式开始吧
+
+# 校内部分:
+ 我们学校目前在开的有两个食堂,我为了习惯会叫老食堂和新食堂,即24幢旁边的为老食堂,微校园旁边的为新食堂;
+
+ 另外有两条商业街,即30幢附近的那一条和新楼(即四期)底下的两条,另外还有隐藏的小吃店——SC一楼的烘焙店(真的还活着吗)和26幢附近的炒饭店。以及——图书馆楼下的那一小片美食区。
+## 老食堂一楼:
+### 1.大众窗口:
+并没有吃过几次,但是印象很深的是他那个葱油鸡,还不错;省钱的可以去这里吃,缺点好像是不能手机支付;
+
+**主观评分:8.0**
+
+### 2.黄焖鸡米饭:
+旧一我觉得最神中神的一个窗口,即使我吃微辣都觉得辣的要死还是会爱吃这个,喜欢重口的更不用说,一定要去试一试;
+
+**主观评分:9.5**
+
+### 3.孔明村香锅:
+种类可以,香锅的味道也很不错,偶尔会有小吃送(砂糖桔什么的),如果新二没有同类型的店的话我吃香锅一般都会去这里吃,但是新二有了;
+
+**主观评分:9.0**
+
+### 4.兰州拉面:
+拉面和刀削面都做的很好,面汤的味道很浓厚啊,有个水饺也很喜欢吃,10块钱就能买到一碗确实带几块牛肉面还好吃的牛肉面要什么自行车.jpg;
+
+**主观评分:8.5**
+
+### 5.蜜雪冰城:
+看客流量便知,顺带一提奶茶真的很甜,我会选择五分糖甚至三分糖或者不要糖;
+
+**主观评分:9.0**
+
+**其他没怎么吃过也没印象的直接跳过,欢迎补充;**
+
+## 老食堂二楼:
+
+### 1.盖浇饭:
+在我心目中老食堂的唯一真神,一肉一素8.8还能加饭,然后他最牛逼的是你可以点半份菜,也就是说完全可以点四种不同的半份菜然后吃得种类丰富还不怎么花钱。
+
+我大一上还在24幢的时候就天天靠吃这个省钱,一个月伙食只需600块即可,而且辣子鸡质量在线,就是偶尔会被辣到,总之神。
+
+**主观评分:9.5**
+
+### 2.自选窗口:
+和隔壁盖浇饭一样的价格一样的内容,只不过用碟子装,所以很容易凉。平时盖浇饭人多了又不想排队的话就去自选好了,人少会快一点;
+
+**主观评分:8.5**
+
+### 3.小兔子:
+图一个方便,10块钱一个香辣鸡腿堡和一杯可乐,如果不是十二点十五下课急着吃午饭或者偶尔心血来潮会吃的话我一般不会吃这个,但味道确实不错;
+
+**主观评分:8.5**
+
+### ~~4.重庆小面:~~
+15块的牛肉拌面很好吃。其他的话,青菜荷包蛋面也还行;
+
+2025年3月11日增补:你怎么似了
+
+### ~~4.啫啫煲:~~
+~~这学期校内新开的的铺子,吃过一两次,没有水汪汪(因为煲的时候不加水),还可以,量不少的,但因为没有加水所以吃到最后会特别特别腻,但还好他有那个竹蔗茅根水,所以也不会算特别腻~~
+
+2025年5月13日增补:你怎么半个学期都没活下来
+
+**主观评分:9.0**
+
+### 5.盖浇饭那里的烤鱼:
+香的,额外能加小菜也很不错。缺点就是得凑齐三个人或者四个人去吃,而且鱼骨很多,得细嚼慢咽,冬天可以每周去吃一两次解解馋;
+
+**主观评分:8.5**
+
+### 6.后面那个隔间饭店:
+校内想多人聚餐貌似也只能去那里了,菜品还可以吧,没什么印象;
+
+2025.03.11增补:铁板豆腐好吃
+
+**主观评分:8.0**
+
+### 7.小王烧烤:
+校内烧烤好像就这间了,缺点也是贵,其他都很好;
+**主观评分:8.5**
+
+## 新食堂一楼:
+### 1.大伙:
+新一省钱的神,每周一到周五中午都会有一个纯肉菜和肉素菜打折,而且饭可以二两二两的打,省钱吃的可以去这里吃,抛开钱的问题本身饭菜质量也还过得去,依旧是葱油鸡做的还可以,豆角炒肉也还不错,辣子鸡和旧二的相比起来就差很多,因为他这个鸡是油炸的,所以我吃起来不太喜欢;
+
+**主观评分:8.5**
+
+### ~~2.炒菜机器人:~~
+新一我最不推荐的一个窗口。炒出来的粉和饭油都多的要死,调味也是完全没有的感觉,吃一次我都感觉自己要变成机器人了xD;
+
+2024.6月增补:好似
+
+**主观评分:5.0**
+
+### 3.面食:
+中规中矩,价格也还可以,味道和重庆小面比的话会差一点;
+
+**主观评分:8.0**
+
+### ~~4.甜品粥铺:~~
+鸡蛋饼就像是我妈妈做的一样,好吃。还有粥有饺子什么的,偶尔会去吃一下;
+
+2025年5月13日增补:你怎么也似了
+
+**主观评分8.5**
+
+
+### 5.自选:
+味道很不错,我喜欢的是豆角炒肉和青菜豆腐,这两个菜吃起来有种回到家的感觉。然后蜜汁鸡腿和肉丸也比较合我的口味,喜欢辣的可以试试小炒肉和那个辣椒牛柳,我是被辣到了;
+
+**主观评分:9.0**
+
+### 6.库迪咖啡:
+和外面的是一样的,有米的时候偶尔回去喝一喝,还算可以;
+
+**主观评分: 8.5**
+
+## 新食堂二楼:
+**关于新二的一些提醒:新二是我们学校迭代最快的食堂,很多摊位可能一个学期(甚至可能半个学期)过去就似了,所以这部分还烦请各位自己去验证。**
+
+### 1.黑哥麻辣香锅:
+曾经我以为旧一的香锅就已经是最好的了,直到新二来了个黑哥。咳咳,说回正题,黑哥强在种类的丰富,他这里的白肠是我最喜欢吃的一个肉菜,肥瘦的参杂刚刚好,还有不少旧一没有的种类,我们新式的黑哥已经爆杀了老式的孔明,在这里,一顿14块的香锅完全能做到有肉有菜还能吃得饱,算是性价比战神了。想尝试辣的也可以自己加,他放在自助的那个辣椒油奇辣无比。我试一次就已经不敢试了。
+
+**主观评分:9.5**
+
+### ~~2.维卡斯:~~
+我是没想到这个似了的东西还能回来。是的孩子们,我回来了。吃过一次,感觉味道不如小兔子,这一点就仁者见仁智者见智了;
+
+**2024年9月增补:不是我放个暑假回来你又似了???**
+
+
+**主观评分:8.0**
+
+### 3.缙云烧饼:
+豆腐脑很好吃,摊主会问你加酱油还是加糖,小汤圆和饺子都很不错,我心里最清淡的那一档,想家的时候就会去吃;
+
+**主观评分:8.5**
+
+### 4.有家面馆:
+只吃过鸡蛋拌面和麻酱拌面,都挺不错,就是很快凉掉,所以要快点吃;
+
+**主观评分:8.0**
+
+### 5.鸡香记烤肉饭:
+都还可以,我比较常吃的是那个沙姜鸡,汁用来拌饭很好吃,烤肉饭也尚且出于过得去的说法,但是和其他比就稍逊一色;
+
+**主观评分:8.0**
+
+### ~~6.韩式烤肉拌饭:~~
+......量大管饱,但是那个窗口还挺重口的,所以我不怎么去;
+
+2024年9月增补:你怎么也似了
+
+**主观评分:8.0**
+
+### 7.嵊州小吃:
+相当于沙县,但东西很多,炒面炒粉都很不错,油再稍微少一点点就好了。粥也很好,我生病的时候就喜欢喊别人帮忙去那里打碗粥带回来给我喝;
+
+**主观评分:8.5**
+
+### 8.板煮演艺:
+这个窗口确实挺好吃的,但是科技味也很明显,比如说那个鸡肉就完全吃不出鸡肉的味道,抛开吃不出食材本身的味道不谈的话调味还是非常不错的,我要吃的话一般只吃他那里的铁板饭,意大利面什么的就算了吧;
+
+**主观评分:8.5**
+
+### ~~~~9.铁锅炖:~~
+
+又一个量大管饱的......但是食材种类会多很多,14块里头蟹棒,土豆粉还有一堆东西,可以吃的很饱很饱,但是有忌口的话就还是建议慎点吧,不然就浪费了....;
+
+2025年5月13日增补:似了
+
+**主观评分:7.5**
+
+### 10.浓汁浇米饭:
+汁好多。感觉可以叫汤了。味道也还过得去,偶尔会来吃一下,拿个肉片饭也不算特别贵,13块就能吃得饱。算是中规中矩吧。
+**主观评分:8.5**
+
+### 11.比奇堡(有点忘了是不是叫这个名字)
+24年末新开的店,主要是买披萨,之前吃过一两回,他那个小份的我吃就刚好饱,但是对一般人来说份量其实有点少,大份的话一个人吃又可能多了,两个人吃又可能少了,但无论怎么说还是挺好吃的,不过他那个披萨种类有些算是意大利人看了会震怒的那种(我也不爱吃所以我算不算是意大利原教旨披萨主义者?开玩笑的),反正偶尔还是可以吃一下的。
+**主观评分:8.0**
+
+### 12.妈妈味道卤肉饭
+也是新开的店,卤味挺足饭量挺多,因为汁都沉底了所以吃到最后可能会很腻,不是很适合我这种吃淡口的。
+**主观评分:8.0**
+
+### 其他:
+其他几个新开的例如黄焖鸡,~~宁海麦饼(似了),港式烧腊饭(似了)~~ 都还没吃过,故此不提;
+
+## 30幢的商业街:
+在去年的时候去过一次,有家快餐店卖的鸡排饭还不错,就是地理位置太过于偏远,所以一般不怎么去;其他的话完全没有吃过,所以略;
+
+#### 2024年9月增补:
+前几天去看了一眼,现在好像都是以做外卖为主了,店里甚至没地方坐???
+
+## ~~26幢的炒饭铺子,鱼粉(似了)~~:
+
+~~以前在24幢的时候经常去,鱼粉吃过一两次,汤很好喝,炒饭的话不会油腻而且分量足,是我喜欢的那一档。但是因为离得太远现在也很少去了。(主要还是那里有一家我最喜欢的店似了————————但是以另外一种形式打赢了复活赛,关于这一家店我会在校外篇进行详细的说明)~~
+
+2024年9月增补:开了一家一鸣真鲜奶,连锁店,没什么好说的;
+
+**主观评价:9.0**
+
+## ~~图书馆部分(感谢Ineedi编辑的此部分):~~
+
+~~提示:图书馆的餐饮座位区有吉祥馄饨店内的座椅,妞·斯达特门口的一组桌椅以及十足边上的目测50人左右的餐饮区,有米内部有两张双人桌也算。如果你下午第一第二节课的时间段没有课再考虑坐在餐饮区用餐,否则推荐打包或者外卖,因为你不一定能抢到位置。~~
+~~星巴克外面的桌椅属于星巴克店铺,不归于图书馆~~
+### ~~1.京面:~~
+~~菜品是面和抄手(所以别想着去那里吃饭因为真没有饭)。碗大量足,面口感也可以,出餐快。之前如果有去那里兼职可以享受9折折扣,当然价格也不是很贵,一碗普通的面13块拿下~~
+
+**~~个人评分:8.8~~**
+### ~~2.熊厉害温州瘦肉丸:~~
+~~如店铺名所示,~~
+
+**~~个人评分~~**
+### ~~3.芙蓉树下:~~
+~~火锅类,不是两个人一起点尽量不要去~~
+
+**~~个人评分:~~**
+### ~~4.春哥小吃~~
+
+~~一个店面分的两家不同的摊,左边的肠粉是被广东佬点名批评的不正宗(既然写了是广式石磨肠粉就别给我默认加酸豆角和炸黄豆.jpg——星璃附.),右边的卷饼出餐速度不是很快,尽量把握好时间~~
+
+**~~~~个人评分:8.0~~**
+
+### ~~5.妞·斯达特烘焙~~
+~~图书馆楼下的面包店,面包做出来还行,不会甜的发腻,店员的态度可能会不太好,要小心~~
+
+**~~个人评分:8.0~~**
+
+### ~~6.有米UMI:~~
+~~是新开的店,卖的卷饼/小吃/酸辣粉/粥,把原来的粥铺顶掉了(被顶掉的那家是最喜欢去吃的,老板娘人很好,可惜现在见不着了)~~
+
+**~~新店由于还没吃过暂时不做评价~~**
+### ~~7.吉祥馄饨~~
+~~2023年顶掉了之前的CoCo,但说实话做的还行,碗大小适中,馄饨量足(馅多汤少),所有菜品均价22,算是能接受的范围。味道不会特别咸~~
+
+**~~个人评分:8.8~~**
+
+### ~~8.十足+9.星巴克~~
+~~这两个地方什么样子就不用我多说了~~
+
+~~以上就是图书馆楼下店铺的相关信息~~
+
+### 2025.03.11增补:
+去年学校不知道搞什么鬼东西把图书馆楼下这一片全关了,只留下了星巴克,所以这一部分就没有了,不知道日后这一片会用来干什么。
+
+## 新楼楼下的商业街:
+去年新开的商业街,这里有许多种类不同的饭馆,而且在外面也有许多座椅能够就坐,共同特点都是贵,在这里吃饭一般就不要想着个位数能够吃饱这件事了,怎么说都得10块甚至12块起步;
+### 1.美兹美名厨:
+新楼算是比较便宜的那一档了,一肉两素12块,吃起来还行,不少人都喜欢去那里吃的,我不喜欢的原因主要是不够清淡;
+
+**主观评分:8.5**
+### 2.希食东:
+神秘的名字,但是真的很好吃,我喜欢吃他那个咖喱土豆饼蛋包饭,味道很好,咖喱不会辣,和饭拌匀了之后很好吃,炸土豆饼端上来的时候还很热,小心烫嘴。蛋包饭的蛋也很滑嫩,总的来说算是一分钱一分货的典范;
+
+**主观评分:9.0**
+### ~~3.螺蛳粉:~~
+~~我没有吃过他的螺蛳粉,但是他的肠粉很好吃,很滑很嫩,不会像图书馆那样只是挂这个广东石磨肠粉的名号做出来的其实是宁波肠粉,其他没吃过;~~
+
+**2024.6月增补:似了,我还想吃他家的肠粉呢**
+
+**主观评分:8.5**
+### 4.天天小吃:
+宵夜首选,5块钱的手抓饼还挺好吃的,能够让老板娘多加生菜和酱料(都是免费的),杂粮煎饼太脆了,没有那么喜欢;
+
+**主观评分:8.5**
+### ~~5.嗨一锅:~~
+~~贵,自从点了一份三十块的麻辣烫就再也不想去吃第二次;~~
+
+2025.03.11增补:好似,叫你卖恁贵
+
+**~~主观评分:8.0~~**
+### 6.伊佳基:
+微信小程序注册一个会员再下单,累积积分可以减免。这个也没什么好说的,快餐,但是挺便宜,13块可以买两个汉堡也可以买一个汉堡一个鸡腿一杯可乐,有时候早上五节课加上下午还有课的时候就好吃这个来省时间;
+
+**主观评分:8.5**
+### 7.上海生煎:
+偶尔想吃一顿好的早餐的时候会去,喜欢奶黄包和南瓜馒头。午晚饭可以吃他们家的炒粉面饭,都很好吃,油不算特别多,十块钱的价格还挺便宜;
+
+**主观评分:8.5**
+### 8.原来新二的麻辣香锅麻辣烫:
+香锅油太多了,不喜欢,麻辣烫还好,但是价格和黑哥一比就是寄;
+
+**主观评分:8.0**
+
+### 9.西北楼:
+又一个一分钱一分货的典范,吃这个起码12块起步,所以我很少吃,但确实挺不错。量超级多,我每次都要让他少加面和饭,不然会吃得很饱
+
+**主观评分8.5**
+### 10.卤a卤:
+算是还不错的卤品和面馆,时不时会有一些优惠套餐啥的,吃起来还不错,我也只吃过一两次所以略
+### 11.炸鸡腿店(就是靠近米诺剪发的那一家):
+只买炸鸡腿鸡翅啥的,10块钱两个鸡腿还挺好吃
+**主观评分8.5**
+### 12.重庆小面:
+这家可比原来老食堂那家的份量多的去了。但也是一分钱一分货,量大,好吃,还可以。我比较喜欢吃。
+
+**主观评分:8.0**
+
+### 13.葛胖家肉夹馍
+虽然店名叫肉夹馍,也确实卖肉夹馍,但是我一般是去吃他那里的油泼面,13一份,还挺好吃,别的没吃过,可以点点套餐啥的,不过这样就要15块以上一餐了。
+
+**主观评分:9.0**
+
+### 14.沪上阿姨
+明明每天看着好像也没什么客流量的说但是为什么你还能活着不过我也没喝过一两次所以也就不怎么评价了。对他的唯一印象是很贵,喝杯东西10块钱以上起步
+
+### 15.重庆小面
+麻酱拌面好吃捏
+
+**主观评分:8.5**
+
+### 16.南京灌汤包
+好清淡好清淡,最爱吃馄饨,其次是灌汤包,他家的肉粽也很不错
+
+**主观评分:9.0**
+
+### 17.塔斯汀
+和外面的连锁店一样,略。
+
+**主观评分:9.0**
+
+### 2024年9月补充:
+暑假回来后新楼楼下开了几间新店:重庆小面,沙县小吃,吉祥馄饨啥的,没吃过所以略
+### 2025年3月补充:
+一个寒假回来之后这里变动又有很多,笔者依旧没有全吃完,所以在本文中没有提到的店(如烧鸭面,闽味小吃啥的)就要烦请读者自行尝试了。
+
+# 校外篇
+
+**学校目前的校外主要是新楼附近的一排商业商铺,已经开了不少店铺了,种类很多,但是价格普遍比较贵,笔者也只是偶尔去吃了一下,所以这一段的话欢迎有能者来补充。**
+## 商业街:
+小北门多了超级多的商业铺子!根本吃不完!!
+### 1.金拱门:
+就很普通的麦,和朋友去过不少次,挺好的(喜欢麦的有福了)
+### 2.霸王茶姬:
+贵但是好喝,偶尔心情好的时候会去点;
+### 3.铜炉鸡锅:
+和朋友聚餐可以吃这个,有点辣,但是很好吃,饭可以无限加,因为菜真的很下饭
+### 4.KFC
+学校也有kfc了,好!
+但是还在装修
+### 以下是我没吃过的,所以只简单报一下
+韩式烤肉自助,managercoffee,乌鸡米线,潜水艇三明治,锅包肉,菠萝包,一间忘了名字的朝鲜菜,面包店,酒吧啥的,特别多.....欢迎大家自己去探索......
+## 小推车:
+
+学校的小推车集中于17幢和东门两个地方,一般在晚上11点之后出摊,但地点也不一定是这里,但会以这里为范围活动,想吃宵夜可以去碰碰运气,以下是我吃过的。
+
+#### 2025.03.11增补:
+ 现在出摊时间会变早了,可能六七点就能看见他们出摊
+### 1.UU炒饭:
+油比较多,味道挺香的,10块钱起步,炒年糕方便面米线炒饭都有
+### 2.东门的烤冷面:
+烤冷面真好吃啊。
+
+可惜这个阿姨不卖肠粉了。
+
+狼牙土豆和铁板豆腐双拼也很不错啊。
+
+可惜这个阿姨不卖肠粉了。
+
+但我还是喜欢去她那里吃烤冷面。
+### 3.后街鸡柳
+
+这个大叔买的鸡柳和蘑菇都很好吃,除了这俩之外还有炸虾,炸鸡翅啥的,但是感觉就没有鸡柳和蘑菇那么好吃了
+### 以下是没有吃过的,我会列出来,种类也很多
+鸡蛋汉堡,烤肠烤串,还有烧烤和另一家烤冷面啥的,多的时候5,6辆小推车,一般都能找得到你想吃的宵夜的)
+## 附近走走就能到的东裕夜市
+
+这个地方能吃的东西也是巨多,我目前只在那边吃过自助烤肉和东北菜,从北门出去一直往北走就能到,十几分钟的路程,这个也烦请自己组队去尝试吧。
+
+# 后记
+
+## v1.0后记
+
+终于大概的把这个东西写完了....
+
+但是我们学校吃的地方和馆子实在是太多,我没有精力和金钱去一个一个的尝试,但至少校内的两个食堂和新楼楼下的店(目前开着的)都稍微试过了一下,便把想写的写出来了。再一次感受到了我们学校吃饭是有多么种类丰富Orz
+
+**总之**,这个指南是以纯粹的个人主观感受写出来的,然后的话,学校的餐馆变化还是蛮快的,可能每个学期都会有点不一样,那就还请其他人来接手把这篇指南继续写下去了。
+
+署名:Starlink-Sora
+
+于浙大宁波理工学院
+
+2024年07月23日
+
+## v1.1后记
+
+为什么我一个暑假回来又多了这么多店啊!!!!??????????
+
+Ied学长要毕业了,所以现在这篇文档就只有我在撰写了,如果有错误的话还烦请指出,谢谢。
+
+~~真好。~~
+
+增补了一些东西,如果后人想接手的话可以直接QQ私讯我问我要原1.0的doc和1.1的markdown
+
+署名:Starlink-Sora
+
+于浙大宁波理工学院
+
+2024年09月16日
+
+## V1.2后记
+
+一个寒假回来之后又多了不少没见过的店,而且由于小北门的商业又扩大了不少,所以今后会多出很多很多店铺,这下子我们宁理学子有有更多种类的饭菜可以吃了,赢!
+
+同上,增补以及修改了一些错字和别的什么的,依旧是如果后人想接手的话可以问我要源markdown。
+
+我才发现自己没留QQ号码wwwwww
+
+不过还是加入计协交流群吧,可以在那里找到我
+
+计协交流群:906370401
+
+署名:Starlink-Sora
+
+于浙大宁波理工学院
+
+2025年03月11日
+
+## v1.3后记
+2个月!!,两个月又多了一万家铺子!(并没有那么多lol)
+
+根本评鉴不完!!!
+
+署名:Starlink-Sora
+
+于浙大宁波理工学院
+
+2025年05月13日
\ No newline at end of file
diff --git a/src/pages/posts/MGfake.md b/src/pages/posts/MGfake.md
index bda0049..d6ca976 100644
--- a/src/pages/posts/MGfake.md
+++ b/src/pages/posts/MGfake.md
@@ -28,7 +28,7 @@ tags: ["随笔"]
# 计算机协会纲要
> 既欲伸张理想于天地,则必先有方寸
-> [📖](https://github.com/nbtca/documents/blob/main/%E6%A1%A3%E6%A1%88/%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%8D%8F%E4%BC%9A%E7%BA%B2%E8%A6%81)
+> [📖](https://github.com/nbtca/documents/blob/main/archived/2024/计算机协会纲要.md)
# 路在何方
diff --git a/src/pages/posts/blogs/Tech/Linux/getArch_speedrun.md b/src/pages/posts/blogs/Tech/Linux/getArch_speedrun.md
new file mode 100644
index 0000000..3d58bae
--- /dev/null
+++ b/src/pages/posts/blogs/Tech/Linux/getArch_speedrun.md
@@ -0,0 +1,105 @@
+---
+layout: "../../../../../layouts/MarkdownPost.astro"
+title: "Install the Archlinux (SpeedRun Version)"
+pubDate: 2025-03-28
+description: "arch速通纪录,请在专业人士指导下操作XD"
+author: "小明"
+cover:
+ url: "https://www.svgrepo.com/show/349296/arch-linux.svg"
+ alt: "cover"
+tags: ["技术"]
+---
+
+# 🚀 Arch Linux Dual Boot Guide (Speedrun Version)
+
+## **1. Prepare Windows**
+- **Shrink Windows Partition**
+ - Open `diskmgmt.msc`, shrink `C:` by **50GB+** (Unallocated Space).
+- **Check Boot Mode**
+ - Press `Win + R`, type `msinfo32`, check **BIOS Mode**:
+ - **UEFI** → Continue with UEFI
+ - **Legacy (MBR)** → Use MBR installation
+
+---
+
+## **2. Boot into Arch Live USB**
+- Create USB:
+ ```sh
+ dd if=archlinux.iso of=/dev/sdX bs=4M status=progress
+ ```
+- Boot from USB in BIOS.
+
+---
+
+## **3. Partition the Disk**
+```sh
+lsblk # Identify your disk (e.g., /dev/nvme0n1)
+cfdisk /dev/nvme0n1
+```
+- **Keep Windows partitions**
+- Create **Linux Root Partition** (`ext4`, **50GB+**)
+- **(Optional)** Create Swap Partition (8GB)
+
+---
+
+## **4. Format & Mount**
+```sh
+mkfs.ext4 /dev/nvme0n1p3
+mount /dev/nvme0n1p3 /mnt
+mkdir -p /mnt/boot/efi
+mount /dev/nvme0n1p1 /mnt/boot/efi # Use Windows' EFI partition
+```
+*(If Swap)*
+```sh
+mkswap /dev/nvme0n1p4
+swapon /dev/nvme0n1p4
+```
+
+---
+
+## **5. Install Arch**
+```sh
+pacstrap /mnt base linux linux-firmware vim
+genfstab -U /mnt >> /mnt/etc/fstab
+arch-chroot /mnt
+```
+
+---
+
+## **6. Basic Config**
+```sh
+ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
+hwclock --systohc
+echo "LANG=en_US.UTF-8" > /etc/locale.conf
+echo "archlinux" > /etc/hostname
+passwd # Set root password
+```
+
+---
+
+## **7. Install & Configure GRUB**
+```sh
+pacman -S grub efibootmgr os-prober
+grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB
+os-prober
+grub-mkconfig -o /boot/grub/grub.cfg
+```
+
+---
+
+## **8. Finish Installation**
+```sh
+exit
+umount -R /mnt
+reboot
+```
+- **Select Arch Linux from GRUB** 🎉
+- If Windows is missing from GRUB:
+ ```sh
+ os-prober
+ grub-mkconfig -o /boot/grub/grub.cfg
+ ```
+
+---
+
+## **Done!** 🚀
diff --git a/src/pages/repair/EventDetail.tsx b/src/pages/repair/EventDetail.tsx
new file mode 100644
index 0000000..829f82b
--- /dev/null
+++ b/src/pages/repair/EventDetail.tsx
@@ -0,0 +1,164 @@
+import { useEffect, useState } from "react"
+import type { components } from "../../types/saturday"
+import { saturdayClient } from "../../utils/client"
+import { Textarea, Input, Chip } from "@heroui/react"
+import type { PublicMember } from "../../store/member"
+import dayjs from "dayjs"
+import { EventStatus, UserEventAction } from "../../types/event"
+
+type PublicEvent = components["schemas"]["PublicEvent"]
+type EventLog = components["schemas"]["EventLog"]
+
+function EventLogItem(props: {
+ eventLog: EventLog
+ actor?: PublicMember
+}) {
+ return (
+
+ {/*
+
*/}
+
+
+
+ {
+ UserEventAction.find(v => v.action === props.eventLog.action)?.text || props.eventLog.action
+ }
+
+
+ {
+ props.actor?.avatar
+ ?

+ : <>>
+ }
+
+ {
+ props.actor ? props.actor.alias : ""
+ }
+
+
+
+
+ {dayjs(props.eventLog.gmtCreate).format("YYYY-MM-DD HH:mm")}
+
+
+
+
+ )
+}
+
+function EventStatusChip(props: {
+ status: string
+}) {
+ switch (props.status) {
+ case EventStatus.open:
+ return
未开始
+ case EventStatus.accepted:
+ return
维修中
+ case EventStatus.committed:
+ return
维修中
+ case EventStatus.closed:
+ return
已完成
+ case EventStatus.cancelled:
+ return
已取消
+ }
+}
+
+const filterEventLog = (event: PublicEvent) => {
+ const eventLogs = event.logs
+ const filteredLogs: (EventLog & { actor?: PublicMember })[] = []
+ // find the first log that action is "create"
+ const createLog = eventLogs.find(log => log.action === "create")
+ filteredLogs.push(createLog)
+ // find the first log that action is "cancel"
+ const cancelLog = eventLogs.find(log => log.action === "cancel")
+ if (cancelLog) {
+ filteredLogs.push(cancelLog)
+ return filteredLogs
+ }
+ // find the last log that action is "accept"
+ const acceptLog = eventLogs.findLast(log => log.action === "accept")
+ if (acceptLog) {
+ filteredLogs.push({
+ ...acceptLog,
+ actor: event.member,
+ })
+ }
+ // find the last log that action is "close"
+ const closeLog = eventLogs.findLast(log => log.action === "close")
+ if (closeLog) {
+ filteredLogs.push({
+ ...closeLog,
+ actor: event.closedBy,
+ })
+ }
+ return filteredLogs
+}
+
+export default function EventDetail(props: {
+ eventId?: number
+}) {
+ const [event, setEvent] = useState
()
+ const fetchAndSetEvent = async (eventId: number) => {
+ const { data } = await saturdayClient.GET("/events/{EventId}", {
+ params: {
+ path: {
+ EventId: eventId,
+ },
+ },
+ })
+ setEvent(data)
+ }
+ useEffect(() => {
+ const url = new URL(window.location.href)
+ const eventId = props.eventId ?? url.searchParams.get("eventId")
+ if (!eventId) {
+ return
+ }
+ fetchAndSetEvent(eventId as unknown as number)
+ }, [])
+
+ return (
+ event
+ ? (
+
+
+
维修详情
+
+
+ #{event.eventId}
+
+
+
+
+
+
+
+
+
+
+ 维修记录
+
+ {
+ filterEventLog(event).map((v, index) => {
+ return (
+
+ )
+ })
+ }
+
+
+
+ )
+ :
+ )
+}
diff --git a/src/pages/repair/TicketForm.tsx b/src/pages/repair/TicketForm.tsx
new file mode 100644
index 0000000..038d05e
--- /dev/null
+++ b/src/pages/repair/TicketForm.tsx
@@ -0,0 +1,238 @@
+import { SITE_URL } from "../../consts"
+import { useEffect, useState } from "react"
+import { makeLogtoClient } from "../../utils/auth"
+import type { UserInfoResponse } from "@logto/browser"
+import { Alert, Form, Input, Button, Textarea } from "@heroui/react"
+import { saturdayClient } from "../../utils/client"
+import type { components } from "../../types/saturday"
+import QRCode from "qrcode"
+import EventDetail from "./EventDetail"
+
+type TicketFormData = {
+ model?: string
+ phone?: string
+ qq?: string
+ description?: string
+}
+
+function LoginHintAlert(props: {
+ onLogin: () => void
+}) {
+ return (
+
+
+
+ 登入
+
+ )}
+ >
+ 登入账号来跟踪你的维修进度
+
+
+
+ )
+}
+
+function TicketForm(props: {
+ userInfo?: UserInfoResponse
+ onSubmit: (form: TicketFormData) => Promise
+}) {
+ const [loading, setLoading] = useState()
+ const [formData, setFormData] = useState({})
+ const onSubmit = async (e: React.FormEvent) => {
+ e.preventDefault()
+ setLoading(true)
+ await props.onSubmit(formData)
+ setLoading(false)
+ }
+
+ const onLogin = async () => {
+ makeLogtoClient().signIn({
+ redirectUri: import.meta.env.PUBLIC_LOGTO_CALLBACK_URL,
+ postRedirectUri: window.location.pathname,
+ })
+ }
+
+ return (
+
+ {
+ props.userInfo?.sub
+ ? <>>
+ :
+ }
+
+
预约维修
+
+ 在你填写表单之后,我们会尽快联系你,确认维修时间和地点。
+
+
+
+
+ )
+}
+type PublicEvent = components["schemas"]["PublicEvent"]
+function TicketFormCreated(props: {
+ event: PublicEvent
+}) {
+ const [svg, setSvg] = useState()
+
+ useEffect(() => {
+ const url = new URL(`/repair/ticket-detail`, SITE_URL)
+ url.searchParams.append("eventId", props.event.eventId.toString())
+ QRCode.toString(url.toString()).then((res) => {
+ setSvg(res)
+ })
+ })
+ return (
+
+
+
+
+
+
+
+
+
+ 保存二维码
+
+
+ 跟踪维修进度
+
+
+
+
+
+
+
+
+
+ )
+}
+
+export default function App() {
+ const [userInfo, setUserInfo] = useState()
+ const [event, setEvent] = useState()
+
+ useEffect(() => {
+ const check = async () => {
+ const createRepairPath = "/repair/create-ticket"
+ const authenticated = await makeLogtoClient().isAuthenticated()
+ if (!authenticated) {
+ window.location.href = `/repair/login-hint?redirectUrl=${createRepairPath}`
+ return
+ }
+ const res = await makeLogtoClient().getIdTokenClaims()
+ setUserInfo(res)
+ }
+ check()
+ }, [])
+
+ const onSubmit = async (formData: TicketFormData) => {
+ const logtoToken = await makeLogtoClient().getAccessToken()
+ try {
+ const res = await saturdayClient.POST("/client/event", {
+ headers: {
+ Authorization: `Bearer ${logtoToken}`,
+ },
+ body: {
+ Problem: formData.description,
+ model: formData.model,
+ phone: formData.phone,
+ qq: formData.qq,
+ },
+ })
+ setEvent(res.data as unknown as PublicEvent)
+ }
+ catch (error) {
+ console.log(error)
+ }
+ }
+
+ return (
+ <>
+ {
+ event?.eventId
+ ?
+ :
+ }
+ >
+ )
+}
diff --git a/src/pages/repair/create-ticket.astro b/src/pages/repair/create-ticket.astro
new file mode 100644
index 0000000..a8f96ae
--- /dev/null
+++ b/src/pages/repair/create-ticket.astro
@@ -0,0 +1,12 @@
+---
+import BaseLayout from "../../layouts/BaseLayout.astro"
+import RepairHeader from "../../components/header/RepairHeader.astro"
+import TicketForm from "./TicketForm"
+---
+
+
+
+
+
+
+
diff --git a/src/pages/repair/index.astro b/src/pages/repair/index.astro
new file mode 100644
index 0000000..a3e3800
--- /dev/null
+++ b/src/pages/repair/index.astro
@@ -0,0 +1,83 @@
+---
+import BaseLayout from "../../layouts/BaseLayout.astro"
+import hayasaka from "../_assets/hayasaka.jpg"
+import repairDayOnSite from "../_assets/repair_day_on_site.jpeg"
+import { Button } from "@heroui/react"
+import RepairHeader from "../../components/header/RepairHeader.astro"
+
+---
+
+
+
+
+
+
+
+
+

+
我们提供免费的电脑维修服务
+
+
+ 从清理磁盘到加装硬件再到环境配置,
+
+
+ 我们都帮你搞定。
+
+
+
+
+
+
+
+
+
+
+

+
+
+
+
+ 在接受预约之外,我们每月举办 理工维修日,定时定点提供维修。
+
+
+
+
+
+
+
+
+
diff --git a/src/pages/repair/login-hint.astro b/src/pages/repair/login-hint.astro
new file mode 100644
index 0000000..727b3d0
--- /dev/null
+++ b/src/pages/repair/login-hint.astro
@@ -0,0 +1,47 @@
+---
+import BaseLayout from "../../layouts/BaseLayout.astro"
+import RepairHeader from "../../components/header/RepairHeader.astro"
+import { Button } from "@heroui/react"
+---
+
+
+
+
+
+
+
+
+
+
登入账号后继续操作
+
+ 前往 auth.app.nbtca.space
+
+
+
+
为了验证身份以及记录维修信息,请在登入帐号之后继续操作。
+
你也可以点击下方登入按钮后注册账户。
+
+
+
+
+
+
+
+
diff --git a/src/pages/repair/mini-program.astro b/src/pages/repair/mini-program.astro
deleted file mode 100644
index 04d55f5..0000000
--- a/src/pages/repair/mini-program.astro
+++ /dev/null
@@ -1,23 +0,0 @@
----
-import BaseLayout from "../../layouts/BaseLayout.astro"
-import RepairMiniProgramQRCode from "../_assets/repair_mini_program_qr_code.jpg"
----
-
-
-
-
-
- NBT 电脑维修小程序
-
-
-
- 微信扫码
-
-
- 获取免费维修
-
-
-

-
-
-
diff --git a/src/pages/repair/ticket-detail.astro b/src/pages/repair/ticket-detail.astro
new file mode 100644
index 0000000..ef10f30
--- /dev/null
+++ b/src/pages/repair/ticket-detail.astro
@@ -0,0 +1,12 @@
+---
+import BaseLayout from "../../layouts/BaseLayout.astro"
+import RepairHeader from "../../components/header/RepairHeader.astro"
+import EventDetail from "./EventDetail"
+---
+
+
+
+
+
+
+
diff --git a/src/types/event.ts b/src/types/event.ts
new file mode 100644
index 0000000..5f17fea
--- /dev/null
+++ b/src/types/event.ts
@@ -0,0 +1,78 @@
+export interface Status {
+ status: string
+ text: string
+ icon: string
+}
+
+export interface Action {
+ action: string
+ text: string
+ icon: string
+}
+
+export enum EventStatus {
+ open = "open",
+ accepted = "accepted",
+ committed = "committed",
+ closed = "closed",
+ cancelled = "cancelled",
+}
+
+export const UserEventStatus: Status[] = [
+ {
+ status: EventStatus.open,
+ text: "待处理",
+ icon: "status_initial.svg",
+ },
+ {
+ status: EventStatus.accepted,
+ text: "维修中",
+ icon: "status_ongoing.svg",
+ },
+ {
+ status: EventStatus.committed,
+ text: "维修中",
+ icon: "status_ongoing.svg",
+ },
+ {
+ status: EventStatus.closed,
+ text: "已完成",
+ icon: "status_complete.svg",
+ },
+ {
+ status: EventStatus.cancelled,
+ text: "已取消",
+ icon: "status_cancelled.svg",
+ },
+]
+
+export enum EventAction {
+ create = "create",
+ accept = "accept",
+ commit = "commit",
+ close = "close",
+ cancel = "cancel",
+}
+
+export const UserEventAction: Action[] = [
+ {
+ action: EventAction.create,
+ text: "事件创建",
+ icon: "event_create.svg",
+ },
+ {
+ action: EventAction.accept,
+ text: "维修开始",
+ icon: "status_ongoing.svg",
+ },
+ {
+ action: EventAction.close,
+ text: "维修完成",
+ icon: "status_complete.svg",
+ },
+ {
+ action: EventAction.cancel,
+ text: "事件取消",
+ icon: "status_cancelled.svg",
+ },
+]
diff --git a/src/utils/auth.ts b/src/utils/auth.ts
index 445db32..f45d2b9 100644
--- a/src/utils/auth.ts
+++ b/src/utils/auth.ts
@@ -1,7 +1,14 @@
import LogtoClient from "@logto/browser"
-export const makeLogtoClient = () =>
- new LogtoClient({
- endpoint: import.meta.env.PUBLIC_LOGTO_ENDPOINT,
- appId: import.meta.env.PUBLIC_LOGTO_APP_ID,
- })
+let logtoClient: LogtoClient | undefined = undefined
+
+export const makeLogtoClient = () => {
+ if (logtoClient === undefined) {
+ logtoClient = new LogtoClient({
+ endpoint: import.meta.env.PUBLIC_LOGTO_ENDPOINT,
+ appId: import.meta.env.PUBLIC_LOGTO_APP_ID,
+ scopes: ["email", "custom_data", "roles"],
+ })
+ }
+ return logtoClient
+}
diff --git a/src/utils/client.ts b/src/utils/client.ts
index d53731f..858f920 100644
--- a/src/utils/client.ts
+++ b/src/utils/client.ts
@@ -1,15 +1,13 @@
import createClient from "openapi-fetch"
import type { paths as saturdayPaths } from "../types/saturday"
-// import type { paths as activePaths } from "../types/active"
import { ApiClient } from "./active"
+
export const saturdayClient = createClient({
- baseUrl: "https://api.nbtca.space/v2/",
+ baseUrl: import.meta.env.PROD ? "https://api.nbtca.space/v2/" : "/saturday",
})
-// export const activeClient = createClient({
-// baseUrl: "https://active.nbtca.space/",
-// })
+
export const activeClient = new ApiClient({
BASE: "https://active.nbtca.space",
- // BASE: "/active",
})
+
export * from "./active/types.gen"
diff --git a/tailwind.config.mjs b/tailwind.config.mjs
index d7832b3..2258176 100644
--- a/tailwind.config.mjs
+++ b/tailwind.config.mjs
@@ -1,11 +1,14 @@
import { heroui } from "@heroui/react"
/** @type {import('tailwindcss').Config} */
export default {
- content: [
- "./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}",
- "./node_modules/@heroui/theme/dist/**/*.{js,ts,jsx,tsx}",
- ],
+ content: ["./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}", "./node_modules/@heroui/theme/dist/**/*.{js,ts,jsx,tsx}"],
theme: {
+ screens: {
+ xs: "416px",
+ sm: "734px",
+ md: "1068px",
+ lg: "1441px",
+ },
extend: {
colors: {
brand: "#004b86",