Files
ulthon_admin/extend/base/admin/view/common/_require.html
augushong f3ac7189f2 refactor(component): tagInput/propertyInput/tableData 模板改为懒加载异步获取
原实现三个组件在 JS 顶层用 $.ajax({async:false}) 同步拉取 .html 模板,
每个页面打开固定发 3 个同步请求(阻塞主线程,与组件是否被使用无关),
且路径硬编码 /static/ 与 __STATIC__(OSS 部署)脱节,模板 URL 无版本
参数存在与 js 缓存不同步的漂移问题,请求失败时静默渲染空白。

改造内容:
- 模板改为首次 render() 时异步获取,Deferred 缓存供同页多实例共享,
  失败不缓存并在下次 render 自动重试,失败时 console.error + 提示
- 模板 URL 取 CONFIG.STATIC + CONFIG.STATIC_VERSION,layout 的
  window.CONFIG 新增这两项注入;无注入时逐级回退 /static 与 VERSION,
  兼容下游覆盖 layout 的旧页面
- 组件 CSS 由 _require.html 直接 link 引入(__STATIC__ + 版本键),
  替代原 JS 动态注入
- render() 返回 Promise(resolve Vue 实例);仓库内调用均为
  fire-and-forget,无兼容影响
2026-10-05 14:08:03 +00:00

59 lines
4.3 KiB
PHP

<!--[if lt IE 9]>
<script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
<script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
{:event_view_content('AdminLayoutRequireBefore')}
<link rel="stylesheet" href="//layui.ulthon.com/cdn/layui-ul.css">
<link rel="stylesheet" href="__STATIC__/admin/css/public.css?t={:get_site_version_key()}" media="all">
<link rel="stylesheet" href="__STATIC__/common/css/theme/index.css?t={:get_site_version_key()}">
<link rel="stylesheet" href="__STATIC__/plugs/wangeditor/style.css">
<link rel="stylesheet" href="__STATIC__/plugs/lay-module/tagInput/tagInput.css?t={:get_site_version_key()}">
<link rel="stylesheet" href="__STATIC__/plugs/lay-module/propertyInput/propertyInput.css?t={:get_site_version_key()}">
<link rel="stylesheet" href="__STATIC__/plugs/lay-module/tableData/tableData.css?t={:get_site_version_key()}">
<!-- 基础js -->
<script src="__STATIC__/plugs/jquery-3.4.1/jquery-3.4.1.min.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/common/js/app.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/layui-v2.10.1/layui.js?t={:get_site_version_key()}" charset="utf-8"></script>
<script src="__STATIC__/plugs/vue-2.6.10/vue.min.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/Sortable.min.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/vuedraggable.umd.min.js?t={:get_site_version_key()}"></script>
<!-- 地图 -->
<link rel="stylesheet" href="//cdn.ul7.top/Leaflet/Leaflet/v1.9.4/leaflet.css">
<script src="//cdn.ul7.top/Leaflet/Leaflet/v1.9.4/leaflet.js"></script>
<script src="//cdn.ul7.top/htoooth/Leaflet.ChineseTmsProviders/2022-7-8/src/leaflet.ChineseTmsProviders.js"></script>
<!-- 其他js -->
<script src="__STATIC__/plugs/htmx-v2.0.4/htmx.min.js"></script>
<script src="__STATIC__/plugs/jq-module/jquery.particleground.min.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/echarts/echarts.min.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/echarts/echarts-theme.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/lay-module/layuimini/miniMenu.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/lay-module/layuimini/miniTab.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/lay-module/layuimini/miniTheme.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/lay-module/layuimini/miniAdmin.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/lay-module/treetable-lay/treetable.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/lay-module/tableData/tableData.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/lay-module/tagInput/tagInput.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/lay-module/propertyInput/propertyInput.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/lay-module/iconPicker/iconPickerFa.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/lay-module/autocomplete/autocomplete.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/mapLocation/mapLocation.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/wangeditor/index.js"></script>
<script src="__STATIC__/plugs/jq-module/city-picker/js/city-picker.data.min.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/jq-module/city-picker/js/city-picker.min.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/clipboard.js/clipboard.min.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/ulthon-admin/admin-core.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/ulthon-admin/admin-utils.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/ulthon-admin/admin-table-store.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/ulthon-admin/admin-table.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/ulthon-admin/admin-api.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/ulthon-admin/admin-listen.js?t={:get_site_version_key()}"></script>
<script src="__STATIC__/plugs/ulthon-admin/ulthon-admin.js?t={:get_site_version_key()}"></script>
{:event_view_content('AdminLayoutRequireAfter')}