- components/widgets:widgetRegistry(defineAsyncComponent 按需加载)+ EvaluateWidget/SyllabusWidget/WeekplanWidget,props widgetId、emit loaded、内部自行取数、ResizeObserver 自报真实高度;呈现只保留语义不逐像素复刻旧 html - views/index.vue:iframe 单分支改三分支(内置组件 / compType=2 走 :srcdoc + sandbox="allow-scripts allow-same-origin allow-forms"(不给 allow-top-navigation)/ 兜底「该小工具暂不可用」不白屏);:src="item.url" 与候选池 url 依赖删除;postMessage 身份下发只服务片段分支,高度统一收口 find.height - utils/widgetFragment.ts:wrapFragment 两段注入——取数桥在 head(早于片段自身脚本,否则 yhWidget undefined)、高度上报在 body 之后;</script> 拆拼防提前闭合门户脚本;节流用 setTimeout 尾沿 + 300/1200ms 兜底(iframe 隐藏期子文档不出动画帧,rAF 会把上报永久吞掉、帧高卡 min-height 撑出内层滚动);桥 URL 走 serviceHost 且自行解平台信封 data - views/Settings.vue:新增 admin pane「widget」(ADMIN_PANES/ALL_PANES/「系统」组导航项/v-else-if 链分支),普通用户导航隐藏且 URL 直达落 no-perm 黄条 - views/widget/WidgetManage.vue:双卡管理页(内置/自定义分组列表 + 名称/键/类型/data_code/排序/启用/sch_id 表单 + CodeMirror + 上传 .html 走 FileReader 填编辑器,不落地文件不产生 URL;内置条目 content 只读) - _widget.scss:--wg-* 六令牌 + 深玻璃 blur(18px) saturate(140%) + 描边 + 投影;拖拽态加深 blur(22px) 不再翻白;空态与 +/− 前景改走 token(配套 widget-add/sub/empty.svg 由硬编码色改 currentColor,widget-empty 原为内嵌 PNG 无法着色故换线性版);.widget-item 浅底深字保持不动 - UserSettingApi.ts:getWidgetData / getWidgetContent / GetWidgetCatalogList / SaveWidgetCatalog - 另含 src/store/index.ts 的 getWidgetAppIds 未配置态 .reverse()(非本会话所写,按用户确认一并提交:与 getWidgetAppList 降序比较器对齐,使未配置态按 widget_catalog.sort 正序渲染)
This commit is contained in:
@@ -92,6 +92,28 @@ class UserSettings extends Abstract {
|
||||
const url = path + "/sortUserDesktopApp";
|
||||
return this.postRequest<any>({ url, data: { ids: ids.join(",") } });
|
||||
}
|
||||
|
||||
/** 小组件统一取数:params 为 urlencoded 查询串(对齐旧 otherParams 口径) */
|
||||
getWidgetData(code: string, params: string) {
|
||||
const url = path + "/getWidgetData";
|
||||
return this.getRequest<any>({ url, params: { code: code, params: params } });
|
||||
}
|
||||
|
||||
/** 仅 comp_type=2:按需取自定义片段内容 */
|
||||
getWidgetContent(code: string) {
|
||||
const url = path + "/getWidgetContent";
|
||||
return this.getRequest<any>({ url, params: { code: code } });
|
||||
}
|
||||
|
||||
getWidgetCatalogList() {
|
||||
const url = path + "/GetWidgetCatalogList";
|
||||
return this.getRequest<any[]>({ url });
|
||||
}
|
||||
|
||||
saveWidgetCatalog(catalog: Record<string, any>) {
|
||||
const url = path + "/SaveWidgetCatalog";
|
||||
return this.postRequest<any>({ url, data: catalog });
|
||||
}
|
||||
}
|
||||
|
||||
export default new UserSettings();
|
||||
|
||||
Reference in New Issue
Block a user