Commit Graph
27 Commits
Author SHA1 Message Date
chenxing a05b0ded55 feat(svcitem): 事项库+办事大厅 R2 前端三页,并复用富文本组件消除双份实现
build / build (push) Successful in 3m14s
落地(依据《事项库与办事大厅详细设计 v1》§7)
- 路由:办事事项 modId=21 / 服务字典 modId=22 + 子站镜像(/sch/{code}/site/{siteCode}/svc/*)
  + 3 条 legacyRedirect 旧链兼容;SchoolLayout 菜单图标兜底
- ServiceItemList:三维筛选/关键字/分页/发布下架删除/跳转编辑
- ServiceItemEdit:三段富文本 + 封面 + 指南附件上传回显(attList)+「我要办理外链」提示
  + 部门选择器不可达时提示"可留空保存"
- ServiceDictManage:object/category 双 Tab,被引用键编辑锁定 + 删除引用守护提示
- api/类型:SvcItemApi/SvcDictApi 与 types/cms.ts 契约补齐;站点设置补 svc_hall_base 键

审计修复(docs/18)
- D3 接线:列表页新增 ServiceItemSortModal 拖拽排序(顺序源 selList,保存按下标重排 sort_no)
  与「同步部门名」按钮,此前后端 sort/syncDeptName 已备但前端无入口
- 附件场景拆分:封面与三个富文本编辑器改传 scene=svc_item_asset,指南附件保持 svc_item
  (内容资产由后端按内容派生归属,不再依赖前端收集上传 id——删除只写不读的 uploadedIds 记账)
- 部门组树:SvcDeptVo 增 children,前端 flattenDepts 缩进扁平化(后端改嵌套下发,交互不变)
- RichTextEditor 补 articleId/slateMinHeight prop 并去掉死状态 editorLoading;
  ArticleEdit 改为复用该组件(正文区最小高度按原口径传入,观感不变),消除双份 wangEditor 实现

测试与 mock
- mock 补 /api/svc/** 全量桩(事项分页/字典/部门树/排序/同步部门名/附件回显 + 站点 1、2 示例数据),
  dev:mock 下三页可用(实测 curl 各项响应正确)
- cms.spec 补 save/syncDeptName/selList/dict save+delete 契约;siteRouter.spec 补事项三条路由
  modId 与子站镜像 resolve 断言;新增 RichTextEditor.spec 5 例(上传参数三键/成功 emit/失败不 emit/工具栏排除项)
- vitest 127 用例全绿 + vite build 通过
2026-09-11 14:14:02 +08:00
chenxing 34733ec280 feat(cms): docs/16 站点设置整页化+首页布局编辑器- SiteSetting.vue整页7分区(基本信息/皮肤与外观/首页布局/基础展示/页脚信息/SEO与域名/扩展参数)锚点导航sticky+IntersectionObserver+分区卡片三段式每分区独立保存(configJson单一事实源+submitSection统一提交);创建模式仅①②可编辑其余锁定,创建成功原地replace到site/setting/:id;SiteWizard三步向导退役删除(门户预览收编portalPreviewUrl);SiteManage瘦身表格+行内编辑跳整页(adminPathOf子站带站点段);ImageAssetField图片双通道(上传+路径粘贴折叠);SiteConfigForm支持groups/showExtras/siteId+asset字段接ImageAssetField+三旧键表单不再展示(ABSORBED_LEGACY_KEYS静默保留);homeLayout三件套(homeLayout.ts模型parse/serialize/validate/genFromCategories一键生成+blockTypes.ts注册表showIf条件字段+HomeLayoutEditor.vue序列编辑增删显隐上移下移);routes site/new+site/setting/:id+legacy redirect;CategoryManage home_style提示改口指向首页布局;新增siteSetting.spec+homeLayout.spec,重写siteManage.spec,117用例全绿
build / build (push) Successful in 2m19s
2026-09-10 15:09:10 +08:00
chenxing 7c925cd4f2 ci修订:构建容器名唯一化(修复与同宿主其他仓并发构建时 exit 137 互杀)-runner 挂宿主 docker.sock,容器名在整个 daemon 上共享命名空间,固定名 frontbuild 在多仓/多 workflow 并发时会被对方的 docker rm -f 直接 SIGKILL(2026-09-10 三仓同推:本仓 build run#10 与 UserBase 两条 run 被打死、Notice 侥幸绿,本仓改动本身 vitest 99/99+build 已本地验证);改法 BUILD_CONTAINER=frontbuild-${GITHUB_RUN_ID}-${时间戳},run/exec/cp/rm 全步统一引用;YAML 解析与 step sh -n 通过
build / build (push) Successful in 2m24s
2026-09-10 12:17:01 +08:00
chenxing dfd2b89fbd feat(icons): 全量接入 ysch-icons 并统一首页入口-icons.css 由 build_mask_css.py 注入 105 个官方矢量(同名覆盖 apps/logout/category/browse/edit/ashbin/user-filling,异名保留 attachment/stop/saoba/print/word/excel/ppt/pdf1/txt/tupian1/yasuo/weizhi 12 个手绘稿,旧文件自动存 icons.css.bak);SchoolLayout 左侧菜单 Ionicons→iconfont 掩码类(wenzhang/liebiao/tupian/cshxd/sjlm/zhandian,page 与 modId 两分支同表,链接/附件库内无语义取近似)+菜单图标与文字间距 8px;面包屑补常驻首页段(超管 首页>学校列表>校名>站点>模块,校级无学校列表段),crumb-home 用 inline-flex 真居中并关掉压缩 layout.css 遗留的 .path-nav .icon-category{top:1px} 字体基线补偿(该补偿对 mask 的 1em 方块有害,不改压缩产物);头部「常用应用」改「返回首页」(icon-shouye+linkHomePage,面板 appList 原为硬编码 [] 属死入口,DOM 与 isPanel 保留仅失去入口);ArticleListPanel 发布按钮 icon-apps→icon-fasong 语义纠正;首页与全部应用链接 /BschHome→/userhome/front/index.html(线上 BschHome 实测 404,userhome 200 且 hash 含 /apps);登出路由 /cas/logout→/logout 与 Notice/UserhomeFront 统一(/cas/logout 在 SSO 侧无效);vitest 99/99+build 通过
build / build (push) Failing after 6s
2026-09-10 11:57:36 +08:00
chenxing 6ee9ab5684 feat(site-layer): 学校站点分层方案C落地(docs/13)+栏目管理增强+管理端三修复+首页视觉升级管理端+审计复检T1~T5(docs/15)整合批次-URL站点段/site/{siteCode}无component镜像层(去name防重名,router-view跳过推进渲染)+身份条SiteSwitcher自绘(徽章#577afb/#ff9900+分组下拉✓+path次级列+Esc/外点收起)+URL唯一事实源syncSiteFromRoute(非法/跨校/主站码当子站段告警打回同页主站,localStorage降级刷新首帧兜底)+菜单剥段高亮stripSiteSeg/withSiteSeg补段+menuRoute镜像层防重影+跳转收敛adminPathOf(工作台进入/全部站点总览/站点管理行进入管理纯URL切站);栏目管理-上级栏目可选可改(禁选自身及后代防成环)+批量添加BatchAddCategory(行序写排序号单行失败不中断)+单页wangEditor富文本预览字数分区+categoryIds契约前端/types/mock三处统一+SchoolLayout高度链.layout-wrap修复+ArticleListPanel fixed模式;管理端三修复-皮肤预览Modal全屏(ThemePreviewFrame可选fill prop)+SiteManage补themeUnregistered声明+长图文编辑器随内容增高;管理端视觉升级配套-SiteConfigForm 12新键+BannerManage gallery展示位切换+栏目homeStyle下拉+PortalPreview侧栏同步;审计复检-新增siteRouter.spec真实路由集成7用例(镜像层matched3层/守卫子站码定向主站前缀/越权回工作台/旧链带id重定向)+sitePath空白容错+siteLayer持久化round-trip与身份条次级入口(docs/15);vitest 99/99+build通过+S1~S10 GUI走查全过
build / build (push) Successful in 2m43s
2026-09-10 11:11:23 +08:00
chenxing 9ba4cb135a feat(theme): 皮肤包管理收敛平台级+命名表单-新顶层路由/theme-manage(meta.superOnly守卫+页面watch双兜底),ThemeManage升级全屏页复用新抽WorkbenchHeader(工作台同款深色顶栏backTo=/workbench),工作台超管工具行加皮肤包管理按钮,删SiteManage兜底按钮,旧/theme重定向新页;上传/添加皮肤包改表单弹窗(zip+显示名/描述;添加=源包+标识名+命名一步),内置包可改显示名/描述(无参数区+恢复默认名称);openEdit未注册主题保留原值并告警(themeEdit util,不再静默归一default);mock删modId=7菜单节点;SiteWizard预览内容源v-model对齐path语义(W4遗留);vitest 62/62+build通过
build / build (push) Successful in 2m17s
2026-09-08 20:25:57 +08:00
chenxing 604d77049b refactor(build): 产物直出 dist-去掉 dist/base 中间层(outDir 统一 dist,与 UserBase 同风格),CI zip 步骤回归 cd dist,根治上提交 4b93b13 的打包路径绕法,vitest 56/56+本地 build dist 根 index.html 实测
build / build (push) Successful in 3m16s
2026-09-08 18:37:44 +08:00
chenxing 4b93b131c5 fix(ci): zip 打包路径改 dist/base-vite outDir 即 dist/base,曾误打 dist/ 整层致 zip 根只有 base/ 目录无 index.html,projman 前端发布校验「zip 根目录缺少 html 文件」(初版即错,首次真走部署通道才暴露)
build / build (push) Successful in 2m39s
2026-09-08 17:40:10 +08:00
chenxing 198175975b feat(env-config): 运行时配置改造-index.html内联引导脚本同步XHR拉/{ctx}/api/env-config?target=admin写__APP_CONFIG__,host.config三级合并(运行时JSON>VITE_*(仅dev/mock)>同域推导),删.env.base/.env.prod产物零环境值,vitest 56/56+build产物零烧入
build / build (push) Successful in 2m21s
2026-09-08 17:18:35 +08:00
chenxing d8ac455428 feat(W1): 皮肤包管理页-卡片网格+上传/派生/编辑/删除,ThemeApi五方法,路由/入口/mock modId=7,ThemeVo增source/inUseCount/editable/usedBySiteNames,T-W1-21..24 绿56/56
build / build (push) Successful in 2m16s
2026-09-08 15:14:10 +08:00
chenxing dedd4a6a3a feat(W4): 站点path全链路-portalUrlOf/previewPortalUrl纯函数,站点列/向导地址预览/预览frame sitePath,store携带path,mock嵌套路由,T-W4-16..18 绿51/51 2026-09-08 15:14:10 +08:00
chenxing 7b99ec398d feat(W2): 栏目树修订-虚拟根(学校名/子站名)+工具栏收敛4按钮+高度链修复,T-W2-01..10 绿 44/44 2026-09-08 15:14:09 +08:00
chenxing 1e887906eb chore(W0): 测试基建-补 npm test/test:watch 脚本(vitest run),前端用例 32/32 绿 2026-09-08 15:14:09 +08:00
chenxing 2a077aa917 chore(收尾): mock 数据同步 B2 引用模型-附件 refType 场景引用/page unusedCount/upload scene 白名单 2026-09-08 15:14:09 +08:00
chenxing fc566eed8b feat(B5): 栏目工作台-树+类型化内容面板,ArticleList 组件化薄壳
- 新建 ArticleListPanel(props categoryId/fixedCategory):无props=全局检索行为不变(薄壳红线);
  固定栏目模式隐藏栏目下拉,watch categoryId 联动 reload(拖拽排序不触发,红线)
- CategoryManage 右侧:列表型=本栏目文章面板+新建文章(query.categoryId 预选)+预览;
  单页型=摘要+编辑内容+预览;外链型=URL+打开链接;空态引导;工具栏增树折叠(窄屏)
- ArticleEdit 支持 query.categoryId 新建态预选栏目
- 后端零改动(红线);vitest 32/32 绿(新增 categoryWorkbench.spec 7 例,手写挂载+vi.mock 桩)
2026-09-08 15:14:09 +08:00
chenxing e494a2d2d8 feat(B4): 友链分组改下拉选已有+允许新建(Select allow-create filterable)
- options=数据聚合的既有分组;仍落 groupName 字符串,后端零改动
- 拼错旧组名不再产生新脏分组;vitest 25/25 绿+build 成功
2026-09-08 15:14:08 +08:00
chenxing bb5c5e513f feat(B3): 站点编辑弹窗增自定义样式面板(config_json.custom_css)
- 折叠面板 textarea(等宽字体/10240计数/示例提示),面板为唯一编辑入口
- custom_css 入 RESERVED_SITE_CONFIG_KEYS(结构化表单保留键,不与扩展行重复编辑)
- vitest 25/25 绿(新增保留键往返用例)+build 成功
2026-09-08 15:14:08 +08:00
chenxing bcd639cfc2 feat(B2): 附件管理改"未使用"语义+用途列;banner/link 上传带 scene
- AttachmentManage: orphanCount→unusedCount(零残留),用途列(文章/轮播/友链/站点配置/未使用)
- BannerManage/LinkManage 上传 action 传 scene;ArticleList 删除提示文案同步
- types AttachmentVo 增 refType;vitest 24/24+build 绿
2026-09-08 15:14:07 +08:00
chenxing 3990811ed5 feat(B1): 校级建站入口-新建院系子站(向导锁定本校主站)+学校信息服务端继承
- SiteManage: 新建按钮校级显示"新建院系子站";编辑弹窗校级隐藏schId/schName(payload留空服务端继承)
- SiteWizard: lockParentId 锁定上级为本校主站禁改
- SchoolWorkbench: 副文案改自助创建口径
- vitest 24/24 绿 + build 成功
2026-09-08 15:14:07 +08:00
chenxing c77be8b5d8 chore: 前置快照-assetUrl前缀与学校切换收敛会话遗留(执行方案B1~B5前既有未提交变更) 2026-09-08 15:14:07 +08:00
admin 67a7164897 ci: 上传/webhook curl 加 -f 防静默失败 + 域名解析诊断
build / build (push) Successful in 2m18s
2026-09-07 10:08:29 +08:00
chenxing 506fae0097 fix(API基址): VITE_SERVICE_HOST /cms→/yschcms 对齐projman部署上下文;upload校验/菜单剥离兼容新旧前缀
build / build (push) Successful in 2m16s
2026-09-07 09:35:11 +08:00
chenxing 82eb067b19 merge projman injected files
build / build (push) Successful in 2m16s
2026-09-07 09:11:47 +08:00
chenxing a3a75c3680 init local code 2026-09-07 09:11:37 +08:00
admin cd1c8a79dd ci: init build workflow [skip ci] 2026-09-07 08:41:41 +08:00
admin 06b931dfac init: readme guide [skip ci] 2026-09-07 08:41:36 +08:00
admin 1ee32b759c Initial commit 2026-09-07 08:41:35 +08:00