永久会员与模板库后台化:预览门控、轻量首页与 Admin CRUD

- 会员改为永久激活方案;云端文件不再拦截非会员;预览弹窗内导出/打印才校验
- 首页最近文件支持本地记录,登录后与云端合并;移除独立会员页与订阅页
- 模板库入库管理:soon_templates 表、Admin 上传 CRUD、/templates 轻量列表与按需下载

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
24kycj
2026-06-08 23:52:56 +08:00
parent 152228d41f
commit ebe191b06d
45 changed files with 1616 additions and 1259 deletions
+8 -2
View File
@@ -1355,7 +1355,6 @@ $("#open").click(function () {
OpenDialog();
});
function OpenDialog() {
if (typeof window.soonRequireLogin === 'function' && !window.soonRequireLogin('打开文件')) return;
var dialogApi = (typeof dialog !== 'undefined' && dialog) ? dialog : (window.platformBridge && window.platformBridge.showOpenDialog ? { showOpenDialog: function(opts) { return window.platformBridge.showOpenDialog(opts); } } : null);
if (!dialogApi) return;
dialogApi.showOpenDialog({
@@ -1376,6 +1375,14 @@ $("#open").click(function () {
}
}
function importAndOpen(j, fileName) {
var tok = typeof window.soonGetAccessToken === 'function'
? window.soonGetAccessToken()
: (localStorage.getItem('soon_access') || '');
if (!tok && typeof window.soonPutSoonSession === 'function') {
var localKey = window.soonPutSoonSession(j, fileName || 'design.soon');
if (localKey) openWithKey(localKey, j);
return;
}
if (!window.platformBridge || !window.platformBridge.importSoonFile) return;
window.platformBridge.importSoonFile(fileName || 'design.soon', j).then(function(res) {
if (res && res.fileKey) openWithKey(res.fileKey, j);
@@ -2365,7 +2372,6 @@ $("#help").click(function() {
// ===========================================================
$('#display').on('click', function () {
if (typeof window.soonGuardMemberPreview === 'function' && !window.soonGuardMemberPreview()) return;
// 类型改变
fabric.Image.fromURL(soonAsset('front_bg') + bg_version + '_1.png', function (i1) {
i1.left = background_image.left;