Files
electronTs-ks-demo/dist/core/utils/index.utils.js
2024-09-27 01:23:51 +08:00

159 lines
7.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var path_1 = require("path");
var Index_config_1 = __importDefault(require("@config/Index.config"));
var electron_1 = require("electron");
var fs_1 = require("fs");
var jade_1 = require("jade");
var Windows_model_1 = __importDefault(require("@model/Windows.model"));
var Utils = /** @class */ (function () {
function Utils() {
}
Utils.CheckAjaxUrl = function () {
return Index_config_1.default.ApiUrl.BaseUrl;
};
/**
* 返回相对路径
* @param path 路径
* @constructor
*/
Utils.GetFilePath = function (path) {
return path_1.join(__dirname, path);
};
/**
* 根据配置返回对应的controller类require后的类
* @constructor
*/
Utils.GetController = function () {
return require("../controller/" + (Index_config_1.default.StartPage.split("/"))[0] + ".js");
};
/**
* Home.controller 拆分为数组然后controller的首字母C大写
* 然后返回 HomeController 的类名
*/
Utils.toUpperCase = function (cont) {
var Controller = cont.split(".");
return Controller[0] + Controller[1].charAt(0).toUpperCase() + Controller[1].slice(1);
};
/**
* 系统通知
* @param parmas
* @constructor
*/
Utils.Notification = function (parmas) {
new electron_1.Notification(parmas).show();
};
/**
* 下载资源
* @param url 需要下载的资源地址
* @param path 下载后需要保存的路径
* @constructor
*/
Utils.DownFile = function (url, path) {
Windows_model_1.default.CurrentBrowserWindow.webContents.downloadURL(url);
Windows_model_1.default.CurrentBrowserWindow.webContents.session.on("will-download", function (event, item, webContents) {
item.setSavePath(path + "/" + item.getFilename());
item.once('done', function (event, state) {
if (state === 'completed') {
// 下载成功后显示通知
Utils.Notification({
title: '下载完成',
body: "\u60A8\u7684\u89C6\u9891 " + item.getFilename() + " \u5DF2\u6210\u529F\u4E0B\u8F7D\uFF01",
silent: true,
});
}
});
});
};
/**
* 创建文件夹
* @param name 文件夹
* @param html html
*/
Utils.mkdir = function (name, html) {
var path = path_1.join(__dirname, "../../application/page/" + name);
fs_1.existsSync(path) ? null : fs_1.mkdirSync(path);
Utils.mkFile(path, name, html);
};
/**
* 生成文件并写入数据
* @param path 路径
* @param name html文件名
* @param html html数据
*/
Utils.mkFile = function (path, name, html) {
fs_1.writeFileSync(path + "/" + name + ".html", html);
};
/**
* 创建启动窗口
* @param target
* @param name
*/
Utils.startWindows = function (target, name, params) {
return __awaiter(this, void 0, void 0, function () {
var data, Dom;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, target[name](params)];
case 1:
data = _a.sent(), Dom = jade_1.renderFile(Utils.GetFilePath("../../../src/application/page/" + name + "/" + name + ".jade"), Object.assign(Index_config_1.default.jadeCompile0ptions, data));
// 在dist/ 创建并生成对应的html文件
Utils.mkdir(name, Dom);
try {
// @ts-ignore
Windows_model_1.default.CurrentBrowserWindow = new electron_1.BrowserWindow(Index_config_1.default.PageSize[name]);
// @ts-ignore
Windows_model_1.default.CurrentBrowserWindow.loadFile(Index_config_1.default.PagePath[name]).then(function (r) { });
Windows_model_1.default.CurrentBrowserWindow.show();
}
catch (e) {
throw new Error("创建窗体失败请检查配置文件窗体的html路径是否正确");
}
return [2 /*return*/];
}
});
});
};
return Utils;
}());
exports.default = Utils;
//# sourceMappingURL=Index.utils.js.map