first commit

This commit is contained in:
编码猿
2024-09-27 01:23:51 +08:00
commit 72ab70b6fd
212 changed files with 30296 additions and 0 deletions

16
.gitignore vendored Normal file
View File

@@ -0,0 +1,16 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/npm-debug.log*
/yarn-error.log
/yarn.lock
/package-lock.json
# misc
.DS_Store
# umi
/src/.umi/
/.env.local
.idea/

2
.npmrc Normal file
View File

@@ -0,0 +1,2 @@
ELECTRON_MIRROR=https://npm.taobao.org/mirrors/electron/
ELECTRON_BUILDER_BINARIES_MIRROR=http://npm.taobao.org/mirrors/electron-builder-binaries/

1
.pydio Normal file
View File

@@ -0,0 +1 @@
41337cef-2173-4411-ab62-8070dcb36fc0

252
README.md Normal file
View File

@@ -0,0 +1,252 @@
## electronTs
> 这个项目大致作用就是:前端有 electron-vue那熟悉 nodejstypescript 的同学也是时候该有个能开箱即用的electron框架了项目正在开发完善中请保持每天多次拉取代码的习惯
需要一说的是这个项目开发了大量的装饰器做到了代码的编写风格优雅化和定制化同时也更加类似java的springboot框架更采用了约定大于配置的原则所以也要求阅读代码的同学对ts的掌握度稍微高点同时更加详细的使用文档还没时间写下面的文档将就看看主要还是推荐看代码代码里面基本有详细的注释
忘记说了本项目基于nodejstypescriptelectronjadegulp.jslesstypescript 装饰器等实现!!
## 1项目结构说明
这边重点介绍`src/`目录,因为`src/`才是我们项目开发的源码目录!而`dist/`目录是项目上线后使用的。所以不关心!!
```text
|-src
|____core 核心TS逻辑的源码
| |____types 一些自动以的类型声明
| |____net 网络请求的封装
| |____config 项目的整体配置文件
| |____annotation 存放自定义装饰器
| |____utils 项目的工具函数
| |____controller 项目的控制器,主要在这里控制页面的显示,记住每个桌面端页面都是一个控制器!
| |____model Typescript的存取器这里主要存放当前启动主窗口的实例
| |____interactive 各种系统界面的ui例如菜单弹窗进度条图标等
| |____ipc 渲染进程和主进程的ipc监听
| | |____application.ipc.ts 程序系统核心级别的ipc监听
| | |____components.ipc.ts 具体到默写页面级别的ipc监听
| |____run 程序真正的入口启动类
|____App.ts 程序的开始类,主要初始化 run
|____application 应用程序页面
| |____page 每个controller都对应这里的一个页面
| |____layout 页面的公共布局
| |____components 存放页面的公共复用组件
| |____assets 静态资源
| | |____less css样式
| | |____js
| | | |____page 这里存放对应page页面的js
| | | |____lib 存放js公共库例如jquery等
| | |____img 存放图片
```
## 2源码分析
### 2.1:核心装饰器间调用思路
- 第一步:`Init.run.ts``@AutoLoadWindow()` 装饰器首先被运行,然后会自动加载启动类`Home.controller.ts`
- 第二步:这一步首先运行类属性上的装饰器`@Inject()``@Inject()`会去实例化被装饰属性的类型,赋值给被装饰的属性!
- 第三步:`@Inject()`运行完后,会紧接着运行类的方法上的装饰器,先后顺序为:`@Render()``@Ipc()`,但是实际运行的效果却是 `@Ipc()``@Render()`之前,主要原因是`@Render()`中有`await`导致的,这其中`@Render()`是最核心的装饰器之一。主要作用是:获取方法传给模板的数据,根据`jade`模板&数据生成`html`页面,载入`html`然后创建窗口!
- 第四步:前面三步走完后,用户已经可以看到窗口了,而`@Ipc()`装饰器的主要作用在于自动调用传入类中的所有方法实现`ipc`监听。
**注意:当然上面的步骤只是核心装饰器的运行流程,还有很多其他装饰器也是同步执行的,这里没详细介绍!可以阅读源码~~**
### 2.2:渲染进程创建窗口思路
- 1`Init.run.ts`类上有个装饰器`@CreateApplicationIpc()`,该装饰器也继承`Run`类,之后内部实例化`ApplicationIpc()`类,这其中会通过` ipcMain.on`去监听前端的事件`openWindow`
- 2创建窗口分为三种情况
- 1独立窗口
- 2依附在主窗口上的父子窗口
- 3依附在非主窗口上的父子窗口
- 3前端`js`通过使用:`ipcRenderer.sendSync('openWindow', ['Home.controller/Setting', true])` 发起通知,让主进程创建窗口!这其中参数:`Home.controller/Setting`,表示调用`Home.controller.ts`里面的`Setting`方法创建窗口!
### 2.3:已提供的装饰器
- @AutoLoadWindow()
- 作用根据配置文件自动引入主controller文件
- 使用:仅限启动类`Run`
- 参数:无
- 注意:无
- @Render(templateName?:string)
- 作用:根据配置文件自动创建窗口
- 使用:用在`controller/` 文件夹下的控制器类方法中
- 参数templateName要渲染的模板名称选填
- 未填写参数:自动使用被装饰的方法名去寻找路径`src/application/page/**/*.jade`路径下的模块文件,并自动读取`Index.config.ts`对应的`PageSize``PagePath`
- 已填写参数:同上,只不过使用传入的名称去寻找模板和配置文件等信息
- 注意:被装饰的方法的名字需要和模板名称,配置文件中`PageSize``PagePath`都相同!!!
- @Ipc(IpcParams: { new (...args: any[]): {}; }[])
- 作用:自动注册窗口相关的局部 IPC
- 使用:用在`controller/` 文件夹下的控制器类方法中
- 参数IpcParams需要被注册的未实例化的类数组
- 注意:参数必须填写未实例化的类,构成数组,例如:`@Ipc([ Application, TestIpc ])`
- @CreateIpc(IpcParams: { new (...args: any[]): {}; }[])
- 作用:自动注册程序公共的全局 IPC
- 使用仅限启动类Run
- 参数IpcParams需要被注册的未实例化的类数组
- 注意:参数必须填写未实例化的类,构成数组,例如:`@CreateApplicationIpc([ Application, TestIpc ])`
- @Injectable()
- 作用:依赖收集,主要用来存储被装饰的类到存取器
- 使用:用在类上
- 参数:无
- 注意:和 `@Inject()` 搭配使用
- @Inject()
- 作用:依赖注入,将`@Injectable()`中存的类取出并实例化到类属性上
- 使用:用在类的属性上
- 参数:无
- 注意:和 `@Injectable()` 搭配使用
- @GET(RequestParams?: { url?: string, useHandle?: boolean })
- 作用:发送`GET`请求
- 使用:用在`service`层类的方法上
- 参数:
- url如果不传参数将自动依据方法名作为对象的key去寻找`Config.ApiUrl.ApiList[方法名]`的接口地址,如果传参数,使用传入的参数作为接口请求地址
- useHandle如果接口返回的数据需要做特殊处理那么可以设置 `useHandle``true`,中间被`@GET`注解的方法将会获得ajax请求的结果如果为`flase`方法将不会获得任何参数!
- 注意:不填写参数时,请保持方法名和 `Config.ApiUrl.ApiList[key]`中的key名称一致
- 【设计中..】@POST(RequestParams?: string)
- 作用:暂无描述
- 使用:暂无描述
- 参数:暂无描述
- 注意:暂无描述
- 【设计中..】@DELETE(RequestParams?: string)
- 作用:暂无描述
- 使用:暂无描述
- 参数:暂无描述
- 注意:暂无描述
- 【设计中..】@PUT(RequestParams?: string)
- 作用:暂无描述
- 使用:暂无描述
- 参数:暂无描述
- 注意:暂无描述
- @CreateApplicationMenu()
- 作用:创建程序的顶部菜单!
- 使用:仅限启动类`Run`
- 参数:无
- 注意:无
- @CreateTouchbar()
- 作用:创建`MacOs`系统上的`Touchbar`
- 使用:仅限启动类`Run`
- 参数:无
- 注意:仅限`MacOs`系统有效,如果是`windows`可删除该装饰器
- @CreateTray()
- 作用:创建`MacOs`系统上顶部全局菜单的图标!
- 使用:仅限启动类`Run`
- 参数:无
- 注意:仅限`MacOs`系统有效,如果是`windows`可删除该装饰器
**更多的请自行阅读源码!!**
## 3注意事项
### 3.1 解决下载electron缓慢的问题
~~在项目初始的时候`npm i``node`会去下载`electron`,因为被墙的原因你可能需要四五个小时都不一定能把`electron`依赖下载完成。所以请自行参考这篇文章手动修改,跳过程序的`node install.js`的过程,加快速度!!~~
~~教程地址:[假装这里有链接](假装这里有链接)~~
---
**PS如果上面的方案不能解决你的问题亲测无效那么请先删除项目的`node_modules`依赖,然后重新 `npm i`,当看到终端在下载`electron`的时候,请强制停止终端。然后从这个地址:**
> [https://npm.taobao.org/mirrors/electron/](https://npm.taobao.org/mirrors/electron/)
下载对应你系统的`electron`包。
**MacOs系统**
我这边下载的是`Macos`系统的`9.1.0`最新版`electron`,文件名:`electron-v9.1.0-darwin-x64.zip`
下载完成后解压压缩包,然后将文件夹中的`Electron.app`复制到`应用程序`中,然后修改`package.json`中的命令`el``/Applications/Electron.app/Contents/MacOS/Electron .`
即可!!
示例配置文件为:
```json
"scripts": {
"el": "/Applications/Electron.app/Contents/MacOS/Electron ."
}
```
**Windows系统**
如果你是`Windows`系统,那么你可以下载 [electron-v9.1.0-win32-x64.zip](https://npm.taobao.org/mirrors/electron/9.1.0/electron-v9.1.0-win32-x64.zip) 的包!也是解压然后将解压后的文件移动到没有中文名和空格的路径中,然后使用`electron.exe`去运行项目即可!
示例配置文件为:
```json
"scripts": {
"el": "C:\\electron-v9.1.0-win32-x64\\electron.exe ."
}
```
### 3.2 修改jade插件
因为 `jade` 插件支持的参数 `globals` 只支持数组!所在再把`config/Index.config.ts`中的`jadeCompile0ptions`传给模板`application/layout/index.jade`的时候不好分开遍历`css``js`
所以需要修改`globals`的数组为对象:
- 修改后的效果如下:
```typescript
// jade 模板引擎配置,更多参数自行阅读声明文件
public static jadeCompile0ptions: JadeOptions = {
pretty: true, // 编译输出后是否保留源码格式true 保持
globals: {
css: [
'http://mdui-aliyun.cdn.w3cbus.com/source/dist/css/mdui.min.css',
'http://at.alicdn.com/t/font_1934749_6mfzbfby21d.css',
],
js: [
'https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js',
'http://mdui-aliyun.cdn.w3cbus.com/source/dist/js/mdui.min.js'
]
}
}
```
修改步骤
1打开文件`node_modules/@types/jade/index.d.ts`,找到接口`JadeOptions`,修改原先的`globals`为下面类型:
```typescript
...
globals?: {
css: string[],
js: string[]
};
...
```
2打开文件`node_modules/jade/lib/index.js`,找到第`133`行 ~ `141`行,注释这些代码即可。实例如下:
```typescript
...
var globals = [];
// 下面这些注释掉
// if (options.globals) {
// globals = options.globals.slice();
// }
// globals.push('jade');
// globals.push('jade_mixins');
// globals.push('jade_interp');
// globals.push('jade_debug');
// globals.push('buf');
// 上面这些注释掉
var body = ''
...
```
重新运行项目即可!!

1
dist/.pydio vendored Normal file
View File

@@ -0,0 +1 @@
b88e1b20-4836-4795-a122-8b7cdba3fca1

14
dist/App.js vendored Normal file
View File

@@ -0,0 +1,14 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
require('module-alias/register');
var electron_1 = require("electron");
var Init_run_1 = require("@run/Init.run");
electron_1.app.on('ready', function () {
new Init_run_1.Run();
});
electron_1.app.on('window-all-closed', function () {
if (process.platform !== 'darwin') {
electron_1.app.quit();
}
});
//# sourceMappingURL=App.js.map

1
dist/App.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"App.js","sourceRoot":"","sources":["../src/App.ts"],"names":[],"mappings":";;AAAA,OAAO,CAAC,uBAAuB,CAAC,CAAA;AAChC,qCAA+B;AAC/B,0CAAoC;AACpC,cAAG,CAAC,EAAE,CAAC,OAAO,EAAE;IACZ,IAAI,cAAG,EAAE,CAAA;AACb,CAAC,CAAC,CAAC;AAEH,cAAG,CAAC,EAAE,CAAC,mBAAmB,EAAE;IACxB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;QAC/B,cAAG,CAAC,IAAI,EAAE,CAAA;KACb;AACL,CAAC,CAAC,CAAC"}

46
dist/Ioc.annotation.js vendored Normal file
View File

@@ -0,0 +1,46 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Inject = exports.Injectable = void 0;
require("reflect-metadata");
var Ioc_model_1 = __importDefault(require("@model/Ioc.model"));
/**
* 收集类依赖
* @constructor
*/
function Injectable() {
return function (_constructor) {
if (Ioc_model_1.default.classPool.indexOf(_constructor) !== -1) {
throw new Error('无需重复收集类');
}
else {
//注册
Ioc_model_1.default.classPool = [_constructor];
}
};
}
exports.Injectable = Injectable;
/**
* 将类依赖实例化然后注入到被装饰的属性中
* @constructor
*/
function Inject() {
return function (target, propertyName) {
/**
* 使用 reflect-metadata 提供的内置 类型元数据键 design:type 通过反射拿到被装饰属性的类型
* 也就是 类属性要实例化 的 service 类
*/
var propertyType = Reflect.getMetadata('design:type', target, propertyName);
if (Ioc_model_1.default.classPool.indexOf(propertyType) == -1) {
throw new Error('被装饰的属性所属的变量类型类,没有被装饰器@Injectable()注入,请检查!');
}
else {
// 从存取器的数组中通过下标取出被装饰属性对应的service类然后实例化这个类在放入被装饰的属性中
target[propertyName] = new (Ioc_model_1.default.classPool[Ioc_model_1.default.classPool.indexOf(propertyType)])();
}
};
}
exports.Inject = Inject;
//# sourceMappingURL=Ioc.annotation.js.map

1
dist/Ioc.annotation.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"Ioc.annotation.js","sourceRoot":"","sources":["../src/Ioc.annotation.ts"],"names":[],"mappings":";;;;;;AAAA,4BAA0B;AAC1B,+DAAwC;AAExC;;;GAGG;AACH,SAAgB,UAAU;IACtB,OAAO,UAAC,YAA4C;QAChD,IAAG,mBAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE;YAChD,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;SAC9B;aAAM;YACH,IAAI;YACJ,mBAAQ,CAAC,SAAS,GAAG,CAAC,YAAY,CAAC,CAAA;SACtC;IACL,CAAC,CAAA;AACL,CAAC;AATD,gCASC;AAED;;;GAGG;AACH,SAAgB,MAAM;IAClB,OAAO,UAAU,MAAW,EAAE,YAAoB;QAC9C;;;WAGG;QACH,IAAM,YAAY,GAAQ,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QACnF,IAAI,mBAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE;YAChD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;SAChE;aAAM;YACH,qDAAqD;YACrD,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,mBAAQ,CAAC,SAAS,CAAC,mBAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAA;SAC9F;IACL,CAAC,CAAA;AACL,CAAC;AAdD,wBAcC"}

27
dist/Ioc.model.js vendored Normal file
View File

@@ -0,0 +1,27 @@
"use strict";
var __spreadArrays = (this && this.__spreadArrays) || function () {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++)
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
r[k] = a[j];
return r;
};
Object.defineProperty(exports, "__esModule", { value: true });
var IocModel = /** @class */ (function () {
function IocModel() {
this._classPool = [];
}
Object.defineProperty(IocModel.prototype, "classPool", {
get: function () {
return this._classPool;
},
set: function (value) {
this._classPool = __spreadArrays(value, this._classPool);
},
enumerable: false,
configurable: true
});
return IocModel;
}());
exports.default = new IocModel();
//# sourceMappingURL=Ioc.model.js.map

1
dist/Ioc.model.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"Ioc.model.js","sourceRoot":"","sources":["../src/Ioc.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA;IAAA;QACY,eAAU,GAAyC,EAAE,CAAC;IASlE,CAAC;IAPG,sBAAI,+BAAS;aAAb;YACI,OAAO,IAAI,CAAC,UAAU,CAAC;QAC3B,CAAC;aAED,UAAc,KAAyC;YACnD,IAAI,CAAC,UAAU,kBAAO,KAAK,EAAK,IAAI,CAAC,UAAU,CAAC,CAAA;QACpD,CAAC;;;OAJA;IAKL,eAAC;AAAD,CAAC,AAVD,IAUC;AAED,kBAAe,IAAI,QAAQ,EAAE,CAAC"}

1
dist/application/.pydio vendored Normal file
View File

@@ -0,0 +1 @@
27c22e44-7b85-44f8-bbaa-d3a1f2fcbc6a

1
dist/application/assets/.pydio vendored Normal file
View File

@@ -0,0 +1 @@
f5f6fd42-2689-4c35-a3e9-00645202d27f

1
dist/application/assets/css/.pydio vendored Normal file
View File

@@ -0,0 +1 @@
787f2667-a007-4f3c-b1e6-9314a335cf60

67
dist/application/assets/css/Home.css vendored Normal file
View File

@@ -0,0 +1,67 @@
.Home ul {
display: flex;
flex-wrap: wrap;
}
.Home ul li {
margin-left: 15px;
width: 15%;
margin-bottom: 18px;
}
.Home ul li .abbreviation_f {
width: 100%;
height: 178px;
position: relative;
text-align: center;
overflow: hidden;
}
.Home ul li .abbreviation_f .zz {
position: absolute;
width: 100%;
height: 100%;
z-index: 2;
background: #000;
filter: blur(10px);
}
.Home ul li .abbreviation_f .thumbnailUrl {
width: 103px;
height: 178px;
position: absolute;
z-index: 3;
left: 50%;
margin-left: -51.5px;
}
.Home ul li .abbreviation_f .tips {
position: absolute;
z-index: 99;
color: #fff;
padding: 2px 5px;
right: 0;
bottom: 0;
font-size: 13px;
}
.Home ul li .abbreviation_f .red {
background: red;
}
.Home ul li .abbreviation_f .green {
background: green;
}
.Home ul li .info {
display: flex;
width: 100%;
justify-content: flex-start;
align-items: center;
}
.Home ul li .info img {
width: 25px;
height: 25px;
border-radius: 100%;
}
.Home ul li .info p {
font-size: 13px;
width: 93%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
margin-left: 10px;
color: #bababa;
}

View File

@@ -0,0 +1,126 @@
html,
body,
.PlayVideo,
#my-video {
background: #000;
width: 100%;
height: 100%;
outline: none !important;
}
.swiper-container {
width: 100%;
height: 100%;
}
.swiper-container .swiper-slide {
text-align: center;
}
.swiper-container img {
height: 100%;
}
.PlayVideo {
position: fixed;
}
.PlayVideo .title {
width: 100%;
height: 45px;
text-align: center;
line-height: 45px;
color: #fff;
position: fixed;
z-index: 99;
}
.PlayVideo .title i {
position: absolute;
right: 20px;
font-size: 25px;
cursor: pointer;
}
.PlayVideo .title i:before {
cursor: pointer;
}
.PlayVideo .title .down_video {
right: 60px;
}
.PlayVideo .title .down_comment {
cursor: pointer;
right: 20px;
top: 2px;
font-size: 22px;
}
.PlayVideo .comment_list {
position: absolute;
right: -256px;
z-index: 90;
width: 256px;
background: #202020;
height: calc(100% - 32px);
top: 0;
overflow-y: scroll;
padding-top: 32px;
}
.PlayVideo .comment_list .showComment {
display: none;
}
.PlayVideo .comment_list .showComment .sub_comment {
padding: 0 !important;
margin-top: 15px;
border-bottom: none !important;
}
.PlayVideo .comment_list .showComment .sub_comment img {
width: 24px !important;
height: 24px !important;
}
.PlayVideo .comment_list .showComment .sub_comment .list_item {
margin-left: 8px !important;
}
.PlayVideo .comment_list .showComment .sub_comment .item_content {
font-size: 13px !important;
}
.PlayVideo .comment_list .item_comment {
display: flex;
justify-content: space-between;
padding: 15px;
box-sizing: border-box;
border-bottom: 1px solid #303030;
}
.PlayVideo .comment_list .item_comment:hover {
background: #2d2b2b;
cursor: pointer;
}
.PlayVideo .comment_list .item_comment img {
width: 30px;
height: 30px;
border-radius: 100%;
}
.PlayVideo .comment_list .item_comment .list_item {
margin-left: 13px;
width: 100%;
}
.PlayVideo .comment_list .item_comment .list_item .item_title {
margin-top: 6px;
color: #576b95;
margin-bottom: 10px;
}
.PlayVideo .comment_list .item_comment .list_item .item_content {
color: #909090;
font-size: 14px;
margin-bottom: 8px;
}
.PlayVideo .comment_list .item_comment .list_item .icon-like {
color: #606060;
font-size: 13px;
}
.PlayVideo .comment_list .item_comment .list_item .icon-like .numbe {
margin-left: 4px;
}
.PlayVideo .comment_list .item_comment .list_item .icon-like .view_other {
margin-left: 12px;
}
.PlayVideo .comment_list .item_comment .list_item .icon-like .view_other .icon-cc-down {
margin-left: 3px;
}
.PlayVideo .comment_list .item_comment .list_item .icon-like .view_other span,
.PlayVideo .comment_list .item_comment .list_item .icon-like .view_other .icon-cc-down {
color: #909090;
font-size: 12px;
}

0
dist/application/assets/css/bav.css vendored Normal file
View File

22
dist/application/assets/css/clear.css vendored Normal file
View File

@@ -0,0 +1,22 @@
html,
body {
width: 100%;
height: 100%;
background: #fff;
-webkit-app-region: drag;
}
ul,
li {
padding: 0;
margin: 0;
list-style: none;
}
.content {
float: left;
width: calc(100% - 200px);
margin-left: 200px;
margin-top: 50px;
}
a {
text-decoration: none;
}

44
dist/application/assets/css/header.css vendored Normal file
View File

@@ -0,0 +1,44 @@
.action {
width: 100%;
height: 50px;
position: fixed;
left: 0;
top: 0;
right: 0;
z-index: 999;
}
.action .left_action {
width: 200px;
height: 100%;
background: #f6f6f6;
float: left;
display: flex;
align-items: center;
justify-content: flex-end;
padding-right: 6px;
box-sizing: border-box;
}
.action .left_action .icon-houtui {
margin-right: 15px;
}
.action .right_menu {
width: calc(100% - 200px);
height: 100%;
background: #f9f9f9;
float: left;
display: flex;
align-items: center;
justify-content: space-between;
}
.action .right_menu .menu_text {
font-weight: 500;
font-size: 15px;
margin-left: 32px;
}
.action .right_menu .menu_action i {
margin-right: 20px;
font-size: 22px;
}
.action .right_menu .menu_action .icon-yifu {
font-size: 20px;
}

32
dist/application/assets/css/nav.css vendored Normal file
View File

@@ -0,0 +1,32 @@
.nav_menu {
width: 200px;
height: calc(100% - 50px);
background: #ededed;
float: left;
position: fixed;
left: 0;
top: 50px;
}
.nav_menu .title {
margin-left: 20px;
color: #888888;
margin-bottom: 7px;
padding-top: 20px;
font-size: 14px;
}
.nav_menu .item_menu {
height: 40px;
line-height: 40px;
padding-left: 20px;
cursor: pointer;
}
.nav_menu .item_menu:hover {
background: #e1e1e1;
}
.nav_menu .item_menu .icon-ziyuan {
font-size: 15px;
}
.nav_menu .item_menu span {
color: #2f2f2f;
margin-left: 9px;
}

1
dist/application/assets/img/.pydio vendored Normal file
View File

@@ -0,0 +1 @@
80d1eff3-5375-4e2f-af48-ac95ceae5dda

BIN
dist/application/assets/img/pug.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 859 B

1
dist/application/assets/js/.pydio vendored Normal file
View File

@@ -0,0 +1 @@
e411047a-6633-45a0-a9ed-cf463f0d96b8

13
dist/application/assets/js/Home.js vendored Normal file
View File

@@ -0,0 +1,13 @@
const { ipcRenderer } = require('electron');
class Home {
constructor() {
console.log(process.argv)
$(".home").click(()=> {
// 渲染进程发起ipc让主进程创建窗体
ipcRenderer.sendSync('openWindow', ['PlayVideo.controller', true])
})
}
}
new Home();

1
dist/application/assets/js/lib/.pydio vendored Normal file
View File

@@ -0,0 +1 @@
220499cf-96d3-4f32-a87a-281f91de008c

62
dist/application/assets/js/lib/http.js vendored Normal file
View File

@@ -0,0 +1,62 @@
class Utils {
/**
* 发送GET 请求
* @param URL 地址
* @param params 参数
* @param callback 回调
* @constructor
*/
Http(URL, params,callback) {
$.ajax({
url: `http://www.bmycode.com:3000/api${URL}`,
type: 'GET',
data: params,
success: (res)=> {
callback(res)
}
})
}
/**
* 根据时间戳返回多久之前的时间
* @param timespan 时间戳
* @returns {string}
*/
formatTime (timespan) {
var dateTime = new Date(timespan);
var year = dateTime.getFullYear();
var month = dateTime.getMonth() + 1;
var day = dateTime.getDate();
var hour = dateTime.getHours();
var minute = dateTime.getMinutes();
var second = dateTime.getSeconds();
var now = new Date();
var now_new = Date.parse(now.toDateString()); //typescript转换写法
var milliseconds = 0;
var timeSpanStr;
milliseconds = now_new - timespan;
if (milliseconds <= 1000 * 60 * 1) {
timeSpanStr = '刚刚';
}
else if (1000 * 60 * 1 < milliseconds && milliseconds <= 1000 * 60 * 60) {
timeSpanStr = Math.round((milliseconds / (1000 * 60))) + '分钟前';
}
else if (1000 * 60 * 60 * 1 < milliseconds && milliseconds <= 1000 * 60 * 60 * 24) {
timeSpanStr = Math.round(milliseconds / (1000 * 60 * 60)) + '小时前';
}
else if (1000 * 60 * 60 * 24 < milliseconds && milliseconds <= 1000 * 60 * 60 * 24 * 15) {
timeSpanStr = Math.round(milliseconds / (1000 * 60 * 60 * 24)) + '天前';
}
else if (milliseconds > 1000 * 60 * 60 * 24 * 15 && year == now.getFullYear()) {
timeSpanStr = month + '月' + day + '号' + hour + ':' + minute;
} else {
timeSpanStr = year + '年' + month + '月' + day + '号' + hour + ':' + minute;
}
return timeSpanStr;
};
}
window.$Utils = new Utils()

10872
dist/application/assets/js/lib/jquery.js vendored Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1 @@
273b55bb-5bfc-40e5-a839-b6b577ae395d

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
ced54523-ebdb-4d02-bd4f-dd82588095b7

108
dist/application/assets/js/page/Home.js vendored Normal file
View File

@@ -0,0 +1,108 @@
const { ipcRenderer } = require('electron');
class Home {
constructor() {
this.playVideo()
this.GotoList()
this.page = $(".video_list").attr("page")
this.loadMore()
}
/**
* 点击播放视频发送ipc通知主进程创建独立的 PlayVideo 窗口
* 然后向 PlayVideo 方法传入 datat 参数
*/
playVideo() {
$(".abbreviation_f").off("click").on('click',function (e) {
if ($(this).attr("workType") == "video") {
ipcRenderer.send('openWindow', {
action: 'Home.controller/PlayVideo',
data: {
principalId: $(this).attr("principalId"),
photoId: $(this).attr("photoId")
}
});
} else {
ipcRenderer.send('openWindow', {
action: 'Home.controller/PlayVideo',
data: {
caption: $(this).next().text(),
list: JSON.parse( $(this).find(".imgUrls").text() )
}
});
}
return false;
});
}
/**
* 点击使用默认浏览器打开主播主页
* @constructor
*/
GotoList() {
$(".info").off("click").on('click',function (e) {
ipcRenderer.send('openExternal', {
url: `https://live.kuaishou.com/profile/${$(this).prev().attr("principalId")}`
})
})
}
/**
* 滚动加载更多数据
*/
loadMore() {
let self = this;
$(window).scroll(function () {
let scrollTop = $(this).scrollTop();
let scrollHeight = $(document).height();
let windowHeight = $(this).height();
if (scrollTop + windowHeight == scrollHeight) {
self.getVideoList()
}
});
}
/**
* 滚动到底部后发送请求获取数据
*/
getVideoList() {
$Utils.Http("/list", { page: this.page }, res=> {
let MMList = res.data;
// 更新页面上的page页码
$(".video_list").attr({ page: MMList.pcursor })
// 保存页面到变量
this.page = $(".video_list").attr("page")
// 遍历新数据到页面
MMList.list.forEach(function (val,index) {
$(".video_list").append(`
<li>
<div class="abbreviation_f" principalId="${val.user.id}" photoId="${val.id}" workType="${val.workType}">
<div style="background:url('${val.thumbnailUrl}');background-position: center center;" class="zz"></div>
<img src="${val.thumbnailUrl}" class="thumbnailUrl" />
<div class="${val.workType == 'video' ? 'tips red':'tips green'}">
${val.workType == 'video' ? '视频':'图片'}
${
val.imgUrls.length != 0
? `<div class="imgUrls" style="display:none">${JSON.stringify(val.imgUrls)}</div>`
: ''
}
</div>
</div>
<div class="info">
<img src="${val.user.avatar}" />
<p>${val.caption}</p>
</div>
</li>
`);
});
this.playVideo()
this.GotoList()
// 因为页面数据变多了所以为所有的dom重新监听点击播放进入主页事件
})
}
}
new Home();

View File

@@ -0,0 +1,84 @@
const { ipcRenderer } = require('electron');
class PlayVideo {
constructor() {
this.isShowMenu = false
this.downVideo()
this.initSwiper()
this.ShowComment()
this.ShowCommentList()
this.SwiperIndex = 0;
}
initSwiper() {
let self = this;
new Swiper ('.swiper-container', {
direction: 'horizontal', // 垂直切换选项
loop: false, // 循环模式选项
// 如果需要分页器
pagination: {
el: '.swiper-pagination',
},
// 如果需要前进后退按钮
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
on: {
slideChange: function () {
self.SwiperIndex = this.realIndex;
},
}
})
}
downVideo() {
let self = this;
$(".down_video").click(function () {
// 当前播放的是图片
if ($("#my-video").length == 0) {
let allImg = $(".swiper-wrapper .swiper-slide img").eq(self.SwiperIndex)
ipcRenderer.send('SaveFile', {
url: allImg.attr("src")
})
// 当前播放的是视频
} else {
console.log("下载视频")
ipcRenderer.send('SaveFile', {
url: $("#my-video").attr("src")
})
}
})
}
/**
* 展开评论弹窗
* @constructor
*/
ShowComment() {
$(".down_comment").click(() => {
if (this.isShowMenu) {
$(".comment_list").animate({ right: '-256px'})
this.isShowMenu = false
} else {
$(".comment_list").animate({ right: 0})
this.isShowMenu = true
}
})
}
/**
* 查看更多评论
* @constructor
*/
ShowCommentList() {
$(".view_other").click(function () {
$(this).next().toggle({
'display': 'block'
})
})
}
}
new PlayVideo();

1
dist/application/page/.pydio vendored Normal file
View File

@@ -0,0 +1 @@
0090f9d9-fdfc-4ba3-8b45-ee96e9f430c3

1
dist/application/page/Home/.pydio vendored Normal file
View File

@@ -0,0 +1 @@
afd5fac5-84a9-4d37-b6bd-6ee992f52227

452
dist/application/page/Home/Home.html vendored Normal file
View File

@@ -0,0 +1,452 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="renderer" content="webkit">
<meta http-equiv="Cache-Control" content="no-siteapp">
<link rel="stylesheet" href="../../assets/css/header.css">
<link rel="stylesheet" href="../../assets/css/nav.css">
<script src="../../assets/js/lib/http.js"></script>
<!-- - 从 Index.config.ts 中渲染公共 css 和 js-->
<link rel="stylesheet" href="http://mdui-aliyun.cdn.w3cbus.com/source/dist/css/mdui.min.css">
<link rel="stylesheet" href="http://at.alicdn.com/t/font_1934749_hhc110df87a.css">
<script src="http://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
<script src="http://mdui-aliyun.cdn.w3cbus.com/source/dist/js/mdui.min.js"></script>
<script>
if (typeof module === 'object') {
window.jQuery = window.$ = module.exports;
};
</script>
<title>首页页面窗口-测试传给模板的数据</title>
<link rel="stylesheet" href="../../assets/css/clear.css">
<link rel="stylesheet" href="../../assets/css/Home.css">
</head>
<body>
<div class="action">
<div class="left_action"><i class="iconfont icon-houtui"></i><i class="iconfont icon-qianjin"></i></div>
<div class="right_menu">
<div class="menu_text">iTunes 音乐</div>
<div class="menu_action"><i class="iconfont icon-iconzhengli_youjian"></i><i class="iconfont icon-yifu"></i><i class="iconfont icon-shezhi"></i></div>
</div>
</div>
<div class="nav_menu">
<div class="title">我的音乐</div>
<div class="item_menu"><i class="iconfont icon-yinle"></i><span>iTunes音乐</span></div>
<div class="item_menu"><i class="iconfont icon-changyongicon-"></i><span>下载管理</span></div>
<div class="item_menu"><i class="iconfont icon-yun"></i><span>我的音乐盘</span></div>
<div class="item_menu"><i class="iconfont icon-shoucang"></i><span>我的收藏</span></div>
<div class="title">我的云盘</div>
<div class="item_menu"><i class="iconfont icon-tupian"></i><span>精彩照片</span></div>
<div class="item_menu"><i class="iconfont icon-shipin1"></i><span>视频记忆</span></div>
<div class="item_menu"><i class="iconfont icon-wenjianjia1"></i><span>重要文件</span></div>
<div class="item_menu"><i class="iconfont icon-qita"></i><span>其他资料</span></div>
<div class="title">在线娱乐</div>
<div class="item_menu"><i class="iconfont icon-ziyuan"></i><span>短视频</span></div>
<div class="item_menu"><i class="iconfont icon-zhibo"></i><span>娱乐直播</span></div>
<div class="item_menu"><i class="iconfont icon-xinwen"></i><span>新闻资讯</span></div>
</div>
<div class="content">
<div class="Home">
<ul page="1.602093681999E12" class="video_list">
<li>
<div principalId="Nx277777" photoId="3xjtvq5zs879b82" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/10/19/BMjAyMDEwMTAxOTI2NDhfMjQ0NzAyMDZfMzc0OTM0OTAyNDJfMV8z_Bd18a518d1e87e6096a4b0d66207abe23.jpg?clientCacheKey=3xjtvq5zs879b82.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/10/19/BMjAyMDEwMTAxOTI2NDhfMjQ0NzAyMDZfMzc0OTM0OTAyNDJfMV8z_Bd18a518d1e87e6096a4b0d66207abe23.jpg?clientCacheKey=3xjtvq5zs879b82.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/08/17/09/BMjAyMDA4MTcwOTM2MDNfMjQ0NzAyMDZfMV9oZDM4Nl8xODU=_s.jpg">
<p>……抱歉大家 我胖的没腰了</p>
</div>
</li>
<li>
<div principalId="3xa4rtvfb34wimq" photoId="3xjfu7x83a6yasg" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/14/17/BMjAyMDEwMTQxNzE1MDBfMjEwNzc1MDUwNl8zNzY3Nzk1OTQ2MF8yXzM=_Be15bad27660839ce7b659bf71ba9203a.jpg?clientCacheKey=3xjfu7x83a6yasg.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/14/17/BMjAyMDEwMTQxNzE1MDBfMjEwNzc1MDUwNl8zNzY3Nzk1OTQ2MF8yXzM=_Be15bad27660839ce7b659bf71ba9203a.jpg?clientCacheKey=3xjfu7x83a6yasg.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/10/09/13/BMjAyMDEwMDkxMzA1MDlfMjEwNzc1MDUwNl8yX2hkOTNfODg2_s.jpg">
<p>秋意浓 #大长腿美女 #辣妹</p>
</div>
</li>
<li>
<div principalId="H411365242" photoId="3xm36pzkzemtck9" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/13/19/BMjAyMDEwMTMxOTQ2NTdfNDExMzY1MjQyXzM3NjQxNzM2MDYyXzFfMw==_Baf4c24bd5bcf98725a9179ed090bbe40.jpg?clientCacheKey=3xm36pzkzemtck9.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/13/19/BMjAyMDEwMTMxOTQ2NTdfNDExMzY1MjQyXzM3NjQxNzM2MDYyXzFfMw==_Baf4c24bd5bcf98725a9179ed090bbe40.jpg?clientCacheKey=3xm36pzkzemtck9.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/09/02/15/BMjAyMDA5MDIxNTA1NTVfNDExMzY1MjQyXzJfaGQ4MF8yNjQ=_s.jpg">
<p>听说女生打出“xx”都是嘻嘻男生打出是…#热</p>
</div>
</li>
<li>
<div principalId="zllzxezht" photoId="3xi89bk2uqhneis" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/15/11/BMjAyMDEwMTUxMTAwMTVfNTg2MzgwOTU3XzM3NzA5MDc1NTYwXzFfMw==_B08b73cc4bf04fd07524515e94be10247.jpg?clientCacheKey=3xi89bk2uqhneis.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/15/11/BMjAyMDEwMTUxMTAwMTVfNTg2MzgwOTU3XzM3NzA5MDc1NTYwXzFfMw==_B08b73cc4bf04fd07524515e94be10247.jpg?clientCacheKey=3xi89bk2uqhneis.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/06/03/11/BMjAyMDA2MDMxMTIwMDlfNTg2MzgwOTU3XzFfaGQyNjJfODI2_s.jpg">
<p>#凭实力单身</p>
</div>
</li>
<li>
<div principalId="zllzxezht" photoId="3xujnr8cmr4shs4" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/14/18/BMjAyMDEwMTQxODIzMTlfNTg2MzgwOTU3XzM3NjgwOTExMTU0XzFfMw==_B97e4c697aa9e592dee5d2c83c587bfb1.jpg?clientCacheKey=3xujnr8cmr4shs4.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/14/18/BMjAyMDEwMTQxODIzMTlfNTg2MzgwOTU3XzM3NjgwOTExMTU0XzFfMw==_B97e4c697aa9e592dee5d2c83c587bfb1.jpg?clientCacheKey=3xujnr8cmr4shs4.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/06/03/11/BMjAyMDA2MDMxMTIwMDlfNTg2MzgwOTU3XzFfaGQyNjJfODI2_s.jpg">
<p>#凭实力单身</p>
</div>
</li>
<li>
<div principalId="zllzxezht" photoId="3x6xesh5e2iuprk" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/11/11/BMjAyMDEwMTExMTAxMDRfNTg2MzgwOTU3XzM3NTIxODg4MzkyXzFfMw==_B79cace044c211c55efa1545d309bbe3c.jpg?clientCacheKey=3x6xesh5e2iuprk.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/11/11/BMjAyMDEwMTExMTAxMDRfNTg2MzgwOTU3XzM3NTIxODg4MzkyXzFfMw==_B79cace044c211c55efa1545d309bbe3c.jpg?clientCacheKey=3x6xesh5e2iuprk.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/06/03/11/BMjAyMDA2MDMxMTIwMDlfNTg2MzgwOTU3XzFfaGQyNjJfODI2_s.jpg">
<p>乍见之欢不如久处不厌</p>
</div>
</li>
<li>
<div principalId="3xnehjvkvw75qvi" photoId="3xb77ex6iuinj84" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/14/10/BMjAyMDEwMTQxMDU2MzNfNTc2NjMyNF8zNzY2MzM0ODY0NV8xXzM=_Bc36b573cbfa0859aa39f6d18b64b9c1d.jpg?clientCacheKey=3xb77ex6iuinj84.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/14/10/BMjAyMDEwMTQxMDU2MzNfNTc2NjMyNF8zNzY2MzM0ODY0NV8xXzM=_Bc36b573cbfa0859aa39f6d18b64b9c1d.jpg?clientCacheKey=3xb77ex6iuinj84.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/06/26/15/BMjAyMDA2MjYxNTA1NTRfNTc2NjMyNF8xX2hkNjM2XzMwMw==_s.jpg">
<p>#元气少女 #作品推广 #小蛮腰 老天爷保佑🙏让我这么可爱的善良的性感的女孩子上个热门吧</p>
</div>
</li>
<li>
<div principalId="3xnehjvkvw75qvi" photoId="3xjvytm5x2ts9sa" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/14/10/BMjAyMDEwMTQxMDMxMTJfNTc2NjMyNF8zNzY2MjQ1NzU3Ml8xXzM=_B51bf98589bdaab175ac21f690ee24a31.jpg?clientCacheKey=3xjvytm5x2ts9sa.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/14/10/BMjAyMDEwMTQxMDMxMTJfNTc2NjMyNF8zNzY2MjQ1NzU3Ml8xXzM=_B51bf98589bdaab175ac21f690ee24a31.jpg?clientCacheKey=3xjvytm5x2ts9sa.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/06/26/15/BMjAyMDA2MjYxNTA1NTRfNTc2NjMyNF8xX2hkNjM2XzMwMw==_s.jpg">
<p>#身材管理 #作品推广 嘻嘻最近回老家了想多陪陪家里人,外婆奶萌萌发都白了好多看着真的挺心疼的。记得想我哦❤️</p>
</div>
</li>
<li>
<div principalId="yexiaomiao" photoId="3xsqiha45uu73cs" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/14/19/BMjAyMDEwMTQxOTU2NTNfMTkzMDcyMTVfMzc2ODYzMzQzMjJfMl8z_Beac3c2d48b76e1c65a2018853cf738cd.jpg?clientCacheKey=3xsqiha45uu73cs.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/14/19/BMjAyMDEwMTQxOTU2NTNfMTkzMDcyMTVfMzc2ODYzMzQzMjJfMl8z_Beac3c2d48b76e1c65a2018853cf738cd.jpg?clientCacheKey=3xsqiha45uu73cs.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/08/20/11/BMjAyMDA4MjAxMTE4MDhfMTkzMDcyMTVfMl9oZDUyOF82MTk=_s.jpg">
<p>有点饿又有点想你 想去饿了么点你</p>
</div>
</li>
<li>
<div principalId="XIAMEI199" photoId="3xew4psfunwvvju" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/12/18/BMjAyMDEwMTIxODM0MDFfMTE0MzM3NzA0MF8zNzU5MzU2MzU1Nl8yXzM=_B7213493b2f01aed9d4771ff8fb5586a5.jpg?clientCacheKey=3xew4psfunwvvju.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/12/18/BMjAyMDEwMTIxODM0MDFfMTE0MzM3NzA0MF8zNzU5MzU2MzU1Nl8yXzM=_B7213493b2f01aed9d4771ff8fb5586a5.jpg?clientCacheKey=3xew4psfunwvvju.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/10/12/21/BMjAyMDEwMTIyMTA1MTVfMTE0MzM3NzA0MF8yX2hkNjRfNzM=_s.jpg">
<p>#人生旅途许多的风景只适合贵州小姐姐你喜欢 吗 #支持快手传播正能量 哈哈😄旁边好多人看着尴尬了😂</p>
</div>
</li>
<li>
<div principalId="XIAMEI199" photoId="3xgkmfbmevvq7kw" workType="vertical" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/13/21/BMjAyMDEwMTMyMTA5MDRfMTE0MzM3NzA0MF8zNzY0Njk1ODI2N18yXzY=_Bc80f295fce9255e4848c7015b869b3c7.jpg?clientCacheKey=3xgkmfbmevvq7kw.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/13/21/BMjAyMDEwMTMyMTA5MDRfMTE0MzM3NzA0MF8zNzY0Njk1ODI2N18yXzY=_Bc80f295fce9255e4848c7015b869b3c7.jpg?clientCacheKey=3xgkmfbmevvq7kw.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips green">图片
<div style="display:none" class="imgUrls">[&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzODUzMDgyNzUzNjMzMzc4OV8xNjAyNTk0NTQ3ODI4_0.webp&quot;,&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzODUzMDgyNzUzNjMzMzc4OV8xNjAyNTk0NTQ3ODI4_1.webp&quot;,&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzODUzMDgyNzUzNjMzMzc4OV8xNjAyNTk0NTQ3ODI4_2.webp&quot;,&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzODUzMDgyNzUzNjMzMzc4OV8xNjAyNTk0NTQ3ODI4_3.webp&quot;,&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzODUzMDgyNzUzNjMzMzc4OV8xNjAyNTk0NTQ3ODI4_4.webp&quot;,&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzODUzMDgyNzUzNjMzMzc4OV8xNjAyNTk0NTQ3ODI4_5.webp&quot;,&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzODUzMDgyNzUzNjMzMzc4OV8xNjAyNTk0NTQ3ODI4_6.webp&quot;,&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzODUzMDgyNzUzNjMzMzc4OV8xNjAyNTk0NTQ3ODI4_7.webp&quot;,&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzODUzMDgyNzUzNjMzMzc4OV8xNjAyNTk0NTQ3ODI4_8.webp&quot;,&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzODUzMDgyNzUzNjMzMzc4OV8xNjAyNTk0NTQ3ODI4_9.webp&quot;,&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzODUzMDgyNzUzNjMzMzc4OV8xNjAyNTk0NTQ3ODI4_10.webp&quot;,&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzODUzMDgyNzUzNjMzMzc4OV8xNjAyNTk0NTQ3ODI4_11.webp&quot;]</div>
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/10/12/21/BMjAyMDEwMTIyMTA1MTVfMTE0MzM3NzA0MF8yX2hkNjRfNzM=_s.jpg">
<p>#贵州小姐姐你喜欢吗 #作品推广 : 小时候,我以为生活就是:事事如意,年年有余。长大后,我发现生活就是:事事如意料之外,年年有余额不足。</p>
</div>
</li>
<li>
<div principalId="XIAMEI199" photoId="3xvym7x2d23gv3q" workType="vertical" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/15/00/BMjAyMDEwMTUwMDUxMDJfMTE0MzM3NzA0MF8zNzY5ODMyNDYwMF8yXzY=_Bfcad4fd3dcfe71026d0501327d32f318.jpg?clientCacheKey=3xvym7x2d23gv3q.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/15/00/BMjAyMDEwMTUwMDUxMDJfMTE0MzM3NzA0MF8zNzY5ODMyNDYwMF8yXzY=_Bfcad4fd3dcfe71026d0501327d32f318.jpg?clientCacheKey=3xvym7x2d23gv3q.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips green">图片
<div style="display:none" class="imgUrls">[&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzNTQzNDYwMzcwNTE2ODM1MV8xNjAyNjk0MjY1MDA2_0.webp&quot;,&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzNTQzNDYwMzcwNTE2ODM1MV8xNjAyNjk0MjY1MDA2_1.webp&quot;,&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzNTQzNDYwMzcwNTE2ODM1MV8xNjAyNjk0MjY1MDA2_2.webp&quot;,&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzNTQzNDYwMzcwNTE2ODM1MV8xNjAyNjk0MjY1MDA2_3.webp&quot;,&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzNTQzNDYwMzcwNTE2ODM1MV8xNjAyNjk0MjY1MDA2_4.webp&quot;,&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzNTQzNDYwMzcwNTE2ODM1MV8xNjAyNjk0MjY1MDA2_5.webp&quot;,&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzNTQzNDYwMzcwNTE2ODM1MV8xNjAyNjk0MjY1MDA2_6.webp&quot;,&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzNTQzNDYwMzcwNTE2ODM1MV8xNjAyNjk0MjY1MDA2_7.webp&quot;,&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzNTQzNDYwMzcwNTE2ODM1MV8xNjAyNjk0MjY1MDA2_8.webp&quot;,&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzNTQzNDYwMzcwNTE2ODM1MV8xNjAyNjk0MjY1MDA2_9.webp&quot;,&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzNTQzNDYwMzcwNTE2ODM1MV8xNjAyNjk0MjY1MDA2_10.webp&quot;,&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzNTQzNDYwMzcwNTE2ODM1MV8xNjAyNjk0MjY1MDA2_11.webp&quot;,&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzNTQzNDYwMzcwNTE2ODM1MV8xNjAyNjk0MjY1MDA2_12.webp&quot;,&quot;http://tx2.a.yximgs.com/ufile/atlas/NTIzNTQzNDYwMzcwNTE2ODM1MV8xNjAyNjk0MjY1MDA2_13.webp&quot;]</div>
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/10/12/21/BMjAyMDEwMTIyMTA1MTVfMTE0MzM3NzA0MF8yX2hkNjRfNzM=_s.jpg">
<p>#作品推广 总有那么一瞬间 半夜醒来 对自己摇摇头 可笑从来不需要任何人疼 抗下所有不得不承认时间真的改变了很多很多十几岁的年纪我连自己的快乐都给不了自己 生活过于平静 没有惊喜 更没有意外我承受不了那种生活太累了</p>
</div>
</li>
<li>
<div principalId="xiaoyanzichaoguai" photoId="3xhzdv82wqxkfme" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/14/17/BMjAyMDEwMTQxNzAzNDFfMTMyNTEwMjAzMl8zNzY3NzMyNzUxOF8xXzM=_B3e7340fb0b428c9c7fc43e32a2cc7eb4.jpg?clientCacheKey=3xhzdv82wqxkfme.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/14/17/BMjAyMDEwMTQxNzAzNDFfMTMyNTEwMjAzMl8zNzY3NzMyNzUxOF8xXzM=_B3e7340fb0b428c9c7fc43e32a2cc7eb4.jpg?clientCacheKey=3xhzdv82wqxkfme.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2019/06/25/18/BMjAxOTA2MjUxODUwMTZfMTMyNTEwMjAzMl8xX2hkMzk3XzQwMA==_s.jpg">
<p>打出wnx就知道你纯不纯洁了😂</p>
</div>
</li>
<li>
<div principalId="3xd2fucwifn37ge" photoId="3xhuidgfkif2xf6" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/13/22/BMjAyMDEwMTMyMjU4MjlfMTc5Mzc2OTc5XzM3NjUyMjk0ODAxXzFfMw==_Bce4fffa3ddbea9b80217dc28485f5cc4.jpg?clientCacheKey=3xhuidgfkif2xf6.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/13/22/BMjAyMDEwMTMyMjU4MjlfMTc5Mzc2OTc5XzM3NjUyMjk0ODAxXzFfMw==_Bce4fffa3ddbea9b80217dc28485f5cc4.jpg?clientCacheKey=3xhuidgfkif2xf6.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/05/10/21/BMjAyMDA1MTAyMTA1NTRfMTc5Mzc2OTc5XzFfaGQ4ODdfNzIz_s.jpg">
<p>...</p>
</div>
</li>
<li>
<div principalId="3xd2fucwifn37ge" photoId="3xmg35tqcmuf3ge" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/11/23/BMjAyMDEwMTEyMzM3NDRfMTc5Mzc2OTc5XzM3NTY0Nzk4MTUxXzFfMw==_B3e080a39900894080c5dcecdc28e5dec.jpg?clientCacheKey=3xmg35tqcmuf3ge.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/11/23/BMjAyMDEwMTEyMzM3NDRfMTc5Mzc2OTc5XzM3NTY0Nzk4MTUxXzFfMw==_B3e080a39900894080c5dcecdc28e5dec.jpg?clientCacheKey=3xmg35tqcmuf3ge.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/05/10/21/BMjAyMDA1MTAyMTA1NTRfMTc5Mzc2OTc5XzFfaGQ4ODdfNzIz_s.jpg">
<p>...</p>
</div>
</li>
<li>
<div principalId="kx6888999" photoId="3x47kssvmt4vyak" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/11/19/BMjAyMDEwMTExOTUxNTVfMTg4NjYyMjQxNF8zNzU1MTk2MjA5MV8yXzM=_B0e77ac33ed9f5057260f37cf0e480cdc.jpg?clientCacheKey=3x47kssvmt4vyak.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/11/19/BMjAyMDEwMTExOTUxNTVfMTg4NjYyMjQxNF8zNzU1MTk2MjA5MV8yXzM=_B0e77ac33ed9f5057260f37cf0e480cdc.jpg?clientCacheKey=3x47kssvmt4vyak.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/08/06/13/BMjAyMDA4MDYxMzEwMzFfMTg4NjYyMjQxNF8yX2hkOTg4Xzk0Nw==_s.jpg">
<p>Be who you are and love you naturally. 做你自己,爱你的人自然爱你. #背影杀手</p>
</div>
</li>
<li>
<div principalId="WanZan1234789" photoId="3x622acx8mvvkki" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/09/22/23/BMjAyMDA5MjIyMzU0MjNfMTI5MDUzMDg5Nl8zNjQ3NjY3NzEzMl8xXzM=_B1481c4dcb06727d86c3a2ffa391503ac.jpg?clientCacheKey=3x622acx8mvvkki.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/09/22/23/BMjAyMDA5MjIyMzU0MjNfMTI5MDUzMDg5Nl8zNjQ3NjY3NzEzMl8xXzM=_B1481c4dcb06727d86c3a2ffa391503ac.jpg?clientCacheKey=3x622acx8mvvkki.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/08/11/21/BMjAyMDA4MTEyMTIzMzRfMTI5MDUzMDg5Nl8xX2hkNzVfMjc3_s.jpg">
<p>好像今年很流行这样牛仔裤?@快手时尚(O40300089) @快手创作者激励计划(O792200110) #街拍美女</p>
</div>
</li>
<li>
<div principalId="YYBK1234" photoId="3xegz88jsp5yu5e" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/12/15/BMjAyMDEwMTIxNTU3MTRfMTU4OTcxMzU0XzM3NTg2NTYwNzMwXzFfMw==_Baf639d59af3ad56f52841cd192545e3b.jpg?clientCacheKey=3xegz88jsp5yu5e.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/12/15/BMjAyMDEwMTIxNTU3MTRfMTU4OTcxMzU0XzM3NTg2NTYwNzMwXzFfMw==_Baf639d59af3ad56f52841cd192545e3b.jpg?clientCacheKey=3xegz88jsp5yu5e.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/08/13/11/BMjAyMDA4MTMxMTE3NDhfMTU4OTcxMzU0XzFfaGQ0NjJfNzcy_s.jpg">
<p>收一个关门弟子 只教关门 现在报名还教关灯和关窗 傻的来 不傻的别来 我骂不过你</p>
</div>
</li>
<li>
<div principalId="3x8qsgfihiz54e2" photoId="3xmxy4k2bbyrzs4" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/12/07/BMjAyMDEwMTIwNzI2MzdfOTk5MDE1ODlfMzc1NjkyNjY0MzNfMV8z_B7fe56172f4c78e4b0e341b58ca89751e.jpg?clientCacheKey=3xmxy4k2bbyrzs4.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/12/07/BMjAyMDEwMTIwNzI2MzdfOTk5MDE1ODlfMzc1NjkyNjY0MzNfMV8z_B7fe56172f4c78e4b0e341b58ca89751e.jpg?clientCacheKey=3xmxy4k2bbyrzs4.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2019/10/05/13/BMjAxOTEwMDUxMzQ0MThfOTk5MDE1ODlfMV9oZDE1MV8zNjM=_s.jpg">
<p>#小蛮腰 #好身材练起来 #牛仔裤 早</p>
</div>
</li>
<li>
<div principalId="3xn7kaqnehdjckk" photoId="3xxa7djaf9zag2i" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/11/15/BMjAyMDEwMTExNTU4NTRfMTg0NTA3Nzk2Nl8zNzUzNzk5MTA0Nl8xXzM=_B5cb505b80c6e06c7327325c13c7dc307.jpg?clientCacheKey=3xxa7djaf9zag2i.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/11/15/BMjAyMDEwMTExNTU4NTRfMTg0NTA3Nzk2Nl8zNzUzNzk5MTA0Nl8xXzM=_B5cb505b80c6e06c7327325c13c7dc307.jpg?clientCacheKey=3xxa7djaf9zag2i.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/06/20/21/BMjAyMDA2MjAyMTIwMTdfMTg0NTA3Nzk2Nl8xX2hkNDUwXzYz_s.jpg">
<p>@有田✨本人(O1961694739)</p>
</div>
</li>
<li>
<div principalId="cc0001551" photoId="3xi39df8h7jjetm" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/11/14/BMjAyMDEwMTExNDI5MzRfMjAwNzgzMDA0Ml8zNzUzMzAxNDE4MF8xXzM=_B632a19c1873f425c1639da7ade50fd37.jpg?clientCacheKey=3xi39df8h7jjetm.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/11/14/BMjAyMDEwMTExNDI5MzRfMjAwNzgzMDA0Ml8zNzUzMzAxNDE4MF8xXzM=_B632a19c1873f425c1639da7ade50fd37.jpg?clientCacheKey=3xi39df8h7jjetm.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/09/09/13/BMjAyMDA5MDkxMzAyMDJfMjAwNzgzMDA0Ml8xX2hkNjgyXzkxNw==_s.jpg">
<p>据说打出“今晚”一直点下去后面的字就能看出你渣不渣,不信你试试~ #作品推广 #jk制服</p>
</div>
</li>
<li>
<div principalId="xiongxiaobao520" photoId="3xb4v2kwpim6iac" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/08/18/BMjAyMDEwMDgxODUxMjRfNDI1MTExNDQ5XzM3Mzk4NTc4OTYyXzFfMw==_B46121c2fda2272fb21b1641c975db17e.jpg?clientCacheKey=3xb4v2kwpim6iac.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/08/18/BMjAyMDEwMDgxODUxMjRfNDI1MTExNDQ5XzM3Mzk4NTc4OTYyXzFfMw==_B46121c2fda2272fb21b1641c975db17e.jpg?clientCacheKey=3xb4v2kwpim6iac.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/01/05/15/BMjAyMDAxMDUxNTQ4MzFfNDI1MTExNDQ5XzFfaGQyNTNfNzc=_s.jpg">
<p>没有男友 姐妹来凑#男友力 #姐妹成对快乐加倍ʕ</p>
</div>
</li>
<li>
<div principalId="tzxy99999" photoId="3x6qjfw7awai6zu" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/08/19/17/BMjAyMDA4MTkxNzM0MzJfMTc5MjQ3MTI3Nl8zNDYyNjYyNzA4M18wXzM=_Bafab0be57b40cea9e3bf870fd6764d4d.jpg?clientCacheKey=3x6qjfw7awai6zu.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/08/19/17/BMjAyMDA4MTkxNzM0MzJfMTc5MjQ3MTI3Nl8zNDYyNjYyNzA4M18wXzM=_Bafab0be57b40cea9e3bf870fd6764d4d.jpg?clientCacheKey=3x6qjfw7awai6zu.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/02/25/23/BMjAyMDAyMjUyMzM2NDdfMTc5MjQ3MTI3Nl8xX2hkNTg1XzMyMw==_s.jpg">
<p>哎呀...   </p>
</div>
</li>
<li>
<div principalId="tzxy99999" photoId="3xrefpbn4bxpmjq" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/08/22/19/BMjAyMDA4MjIxOTIyMzRfMTc5MjQ3MTI3Nl8zNDgxMDE5ODE0OV8xXzM=_B3cba68470e14d342ece3aff03f866c87.jpg?clientCacheKey=3xrefpbn4bxpmjq.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/08/22/19/BMjAyMDA4MjIxOTIyMzRfMTc5MjQ3MTI3Nl8zNDgxMDE5ODE0OV8xXzM=_B3cba68470e14d342ece3aff03f866c87.jpg?clientCacheKey=3xrefpbn4bxpmjq.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/02/25/23/BMjAyMDAyMjUyMzM2NDdfMTc5MjQ3MTI3Nl8xX2hkNTg1XzMyMw==_s.jpg">
<p>来呀 带你嗨皮🥳#治愈系笑容 #主播中心 #快手创作者中心</p>
</div>
</li>
<li>
<div principalId="zlw002629" photoId="3xyveiknv5ek3ai" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/09/20/18/BMjAyMDA5MjAxODQ0NTVfODAwNjczODlfMzYzNjczNDI1MjFfMV8z_B22fcdb102d7c35a930653ec4c6e889f2.jpg?clientCacheKey=3xyveiknv5ek3ai.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/09/20/18/BMjAyMDA5MjAxODQ0NTVfODAwNjczODlfMzYzNjczNDI1MjFfMV8z_B22fcdb102d7c35a930653ec4c6e889f2.jpg?clientCacheKey=3xyveiknv5ek3ai.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/10/07/03/BMjAyMDEwMDcwMzI4MjlfODAwNjczODlfMV9oZDE2Nl8yNDk=_s.jpg">
<p>我妈为什么生我 还不是怕你找不到老婆</p>
</div>
</li>
<li>
<div principalId="xrgll6688" photoId="3xiugv4qvnz43yq" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/01/18/BMjAyMDEwMDExODM1MzJfMTAwNzYyNzAwXzM2OTI5NDYzNDUxXzFfMw==_Be8170dcb58e6a4f7c730aeeea7c59089.jpg?clientCacheKey=3xiugv4qvnz43yq.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/01/18/BMjAyMDEwMDExODM1MzJfMTAwNzYyNzAwXzM2OTI5NDYzNDUxXzFfMw==_Be8170dcb58e6a4f7c730aeeea7c59089.jpg?clientCacheKey=3xiugv4qvnz43yq.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/10/03/19/BMjAyMDEwMDMxOTI1MTdfMTAwNzYyNzAwXzFfaGQ4NzJfMjc1_s.jpg">
<p>离开你们太久了、中秋见一面吧🙉 #快味中秋</p>
</div>
</li>
<li>
<div principalId="xrgll6688" photoId="3xzxcrssg6rsq94" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/02/18/BMjAyMDEwMDIxODQwNDlfMTAwNzYyNzAwXzM3MDEzMzIzNDI0XzBfMw==_B2970eab9180c8003fcb9f7d4de60ff02.jpg?clientCacheKey=3xzxcrssg6rsq94.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/02/18/BMjAyMDEwMDIxODQwNDlfMTAwNzYyNzAwXzM3MDEzMzIzNDI0XzBfMw==_B2970eab9180c8003fcb9f7d4de60ff02.jpg?clientCacheKey=3xzxcrssg6rsq94.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/10/03/19/BMjAyMDEwMDMxOTI1MTdfMTAwNzYyNzAwXzFfaGQ4NzJfMjc1_s.jpg">
<p>即使没有人为你鼓掌,也要优雅的谢幕   #主播中心</p>
</div>
</li>
<li>
<div principalId="xrgll6688" photoId="3xsr7p76y9hn3rm" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/03/16/BMjAyMDEwMDMxNjU1MzFfMTAwNzYyNzAwXzM3MDc0NTc2NDAyXzBfMw==_Ba6b290872b25235560962d2dba48130a.jpg?clientCacheKey=3xsr7p76y9hn3rm.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/03/16/BMjAyMDEwMDMxNjU1MzFfMTAwNzYyNzAwXzM3MDc0NTc2NDAyXzBfMw==_Ba6b290872b25235560962d2dba48130a.jpg?clientCacheKey=3xsr7p76y9hn3rm.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/10/03/19/BMjAyMDEwMDMxOTI1MTdfMTAwNzYyNzAwXzFfaGQ4NzJfMjc1_s.jpg">
<p>你们是要遗弃我吗?🐶 </p>
</div>
</li>
<li>
<div principalId="xrgll6688" photoId="3xe2h5qnp7vvkui" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/05/15/BMjAyMDEwMDUxNTQxMjZfMTAwNzYyNzAwXzM3MjAxNTAxMzUxXzBfMw==_B5b1d1665a13eeb12f3f01894057faab8.jpg?clientCacheKey=3xe2h5qnp7vvkui.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/05/15/BMjAyMDEwMDUxNTQxMjZfMTAwNzYyNzAwXzM3MjAxNTAxMzUxXzBfMw==_B5b1d1665a13eeb12f3f01894057faab8.jpg?clientCacheKey=3xe2h5qnp7vvkui.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/10/03/19/BMjAyMDEwMDMxOTI1MTdfMTAwNzYyNzAwXzFfaGQ4NzJfMjc1_s.jpg">
<p>我学的对不对吖? #今日份的自拍</p>
</div>
</li>
<li>
<div principalId="3xgazf9hhdebuam" photoId="3xti76twypvyxq4" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/03/17/BMjAyMDEwMDMxNzQ3MzdfMTM4NDE1Mzk5NV8zNzA3ODE4NDM1MF8xXzM=_B815b47fb28b5e3649f7bc223e27f3387.jpg?clientCacheKey=3xti76twypvyxq4.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/03/17/BMjAyMDEwMDMxNzQ3MzdfMTM4NDE1Mzk5NV8zNzA3ODE4NDM1MF8xXzM=_B815b47fb28b5e3649f7bc223e27f3387.jpg?clientCacheKey=3xti76twypvyxq4.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/07/07/22/BMjAyMDA3MDcyMjU4MzFfMTM4NDE1Mzk5NV8xX2hkNjUwXzQ1Ng==_s.jpg">
<p>双击么么哒 #清纯美女 #快味中秋</p>
</div>
</li>
<li>
<div principalId="done-911" photoId="3xs3szbm5k93vbu" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/09/27/16/BMjAyMDA5MjcxNjM5MjRfMjA3NDI4NDYwMV8zNjcwMTE5Mzk1N18wXzM=_Bcc9d4f660ccc21250b7d6ad45c145b1e.jpg?clientCacheKey=3xs3szbm5k93vbu.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/09/27/16/BMjAyMDA5MjcxNjM5MjRfMjA3NDI4NDYwMV8zNjcwMTE5Mzk1N18wXzM=_Bcc9d4f660ccc21250b7d6ad45c145b1e.jpg?clientCacheKey=3xs3szbm5k93vbu.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/09/01/18/BMjAyMDA5MDExODUyMTdfMjA3NDI4NDYwMV8xX2hkMTk5XzMzNg==_s.jpg">
<p>北京三里屯,牛仔裤穿搭</p>
</div>
</li>
<li>
<div principalId="3xwcugkmdpgi6hk" photoId="3xccwqwz7aa2pu6" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/06/10/18/BMjAyMDA2MTAxODM4MThfMTIwMDA3ODMxMl8zMDIzODAxMzU0N18xXzM=_B2e6808de9c6835e14d9d862fe948235c.jpg?clientCacheKey=3xccwqwz7aa2pu6.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/06/10/18/BMjAyMDA2MTAxODM4MThfMTIwMDA3ODMxMl8zMDIzODAxMzU0N18xXzM=_B2e6808de9c6835e14d9d862fe948235c.jpg?clientCacheKey=3xccwqwz7aa2pu6.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/03/21/19/BMjAyMDAzMjExOTI3NDdfMTIwMDA3ODMxMl8xX2hkMTkyXzYxNA==_s.jpg">
<p>我很中意你,你鸡母鸡呀!</p>
</div>
</li>
<li>
<div principalId="3x7d7ymb274278w" photoId="3xg8st3ajmz2uxy" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/09/29/06/BMjAyMDA5MjkwNjM0NTlfOTM4MDE0NzAzXzM2NzcxNDAxMjcyXzJfMw==_Ba9b2de2f4d6b78c1bb62f6ce7da6709c.jpg?clientCacheKey=3xg8st3ajmz2uxy.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/09/29/06/BMjAyMDA5MjkwNjM0NTlfOTM4MDE0NzAzXzM2NzcxNDAxMjcyXzJfMw==_Ba9b2de2f4d6b78c1bb62f6ce7da6709c.jpg?clientCacheKey=3xg8st3ajmz2uxy.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/07/28/11/BMjAyMDA3MjgxMTA1MTRfOTM4MDE0NzAzXzJfaGQ0NjVfNjQ4_s.jpg">
<p>#街拍 #穿搭</p>
</div>
</li>
<li>
<div principalId="3x9ivqzjsm5szqc" photoId="3xa6752kuumvm99" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/08/16/11/BMjAyMDA4MTYxMTM5NDZfMTc3MDc0Mjc1OF8zNDQyNDA1ODQxOF8xXzM=_Bcae5fc332f4d12c66fedc27289b2771b.jpg?clientCacheKey=3xa6752kuumvm99.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/08/16/11/BMjAyMDA4MTYxMTM5NDZfMTc3MDc0Mjc1OF8zNDQyNDA1ODQxOF8xXzM=_Bcae5fc332f4d12c66fedc27289b2771b.jpg?clientCacheKey=3xa6752kuumvm99.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/02/09/11/BMjAyMDAyMDkxMTE1NTFfMTc3MDc0Mjc1OF8xX2hkODE3XzM5Ng==_s.jpg">
<p>#最美街拍 #支持原创作品</p>
</div>
</li>
<li>
<div principalId="3xf4nbak25r2ffc" photoId="3x8xs4kiqz5mauc" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/08/18/BMjAyMDEwMDgxODI1MTlfMTU2Mjg3MTgwNl8zNzM5NzIxNDM3OV8yXzM=_B231942dc5e8cc0c516d0fd8d54a0f8a1.jpg?clientCacheKey=3x8xs4kiqz5mauc.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/08/18/BMjAyMDEwMDgxODI1MTlfMTU2Mjg3MTgwNl8zNzM5NzIxNDM3OV8yXzM=_B231942dc5e8cc0c516d0fd8d54a0f8a1.jpg?clientCacheKey=3x8xs4kiqz5mauc.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/05/13/17/BMjAyMDA1MTMxNzI0MzZfMTU2Mjg3MTgwNl8xX2hkNTQ2XzMyMw==_s.jpg">
<p>...</p>
</div>
</li>
<li>
<div principalId="Xixixi12345" photoId="3xrhdd5f98xqjr9" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/08/25/21/BMjAyMDA4MjUyMTI1NDNfODk1MTUwNDAxXzM1MDA5MDczMjM2XzFfMw==_Bcf0e71db62fdec77ca8ab846781a43e2.jpg?clientCacheKey=3xrhdd5f98xqjr9.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/08/25/21/BMjAyMDA4MjUyMTI1NDNfODk1MTUwNDAxXzM1MDA5MDczMjM2XzFfMw==_Bcf0e71db62fdec77ca8ab846781a43e2.jpg?clientCacheKey=3xrhdd5f98xqjr9.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2018/11/04/19/BMjAxODExMDQxOTEzMjRfODk1MTUwNDAxXzFfaGQ0MF85OTI=_s.jpg">
<p>#卡点舞</p>
</div>
</li>
<li>
<div principalId="LS20201212" photoId="3xixpr82xrtjf5k" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/09/20/14/BMjAyMDA5MjAxNDIwMThfMTY0OTc3ODE2MV8zNjM1MTAxNDUxMV8xXzM=_B6a520fb231f14ad5d5f042ccf899207b.jpg?clientCacheKey=3xixpr82xrtjf5k.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/09/20/14/BMjAyMDA5MjAxNDIwMThfMTY0OTc3ODE2MV8zNjM1MTAxNDUxMV8xXzM=_B6a520fb231f14ad5d5f042ccf899207b.jpg?clientCacheKey=3xixpr82xrtjf5k.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/09/29/14/BMjAyMDA5MjkxNDE5MTVfMTY0OTc3ODE2MV8xX2hkOTAxXzg3OA==_s.jpg">
<p>#街拍女神 #街拍小伟</p>
</div>
</li>
<li>
<div principalId="ZVstar_23" photoId="3xpyf5ypvu6xpta" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/10/03/18/BMjAyMDEwMDMxODI2NTdfMTE2Mzg3ODUzXzM3MDgxMjQ0ODQ5XzFfMw==_B1e456a76959553d361688e52cc72d11e.jpg?clientCacheKey=3xpyf5ypvu6xpta.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/10/03/18/BMjAyMDEwMDMxODI2NTdfMTE2Mzg3ODUzXzM3MDgxMjQ0ODQ5XzFfMw==_B1e456a76959553d361688e52cc72d11e.jpg?clientCacheKey=3xpyf5ypvu6xpta.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/07/31/23/BMjAyMDA3MzEyMzQ0MzBfMTE2Mzg3ODUzXzFfaGQ3MjRfNDM5_s.jpg">
<p>这就是你们逗猫猫的乐趣吗?#母女闺蜜照</p>
</div>
</li>
<li>
<div principalId="Hello_mm1" photoId="3xbdkgas28hpyww" workType="video" class="abbreviation_f">
<div style="background: url(https://tx2.a.yximgs.com/upic/2020/09/13/14/BMjAyMDA5MTMxNDEwNDZfNjcxNDg4MTg0XzM1OTc0MjI3NDk0XzFfMw==_B532d396a16a4ad904dbfc40ba6e660f1.jpg?clientCacheKey=3xbdkgas28hpyww.jpg&amp;di=7543a846&amp;bp=14214);background-position: center center;" class="zz"></div><img src="https://tx2.a.yximgs.com/upic/2020/09/13/14/BMjAyMDA5MTMxNDEwNDZfNjcxNDg4MTg0XzM1OTc0MjI3NDk0XzFfMw==_B532d396a16a4ad904dbfc40ba6e660f1.jpg?clientCacheKey=3xbdkgas28hpyww.jpg&amp;di=7543a846&amp;bp=14214" class="thumbnailUrl">
<div class="tips red">视频
</div>
</div>
<div class="info"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/07/14/18/BMjAyMDA3MTQxODExNTBfNjcxNDg4MTg0XzJfaGQzMzdfMjc3_s.jpg">
<p>宝宝们喜欢看哪种风格呀,马上给上。
@梅美baby🍀直播号(O1033261492)</p>
</div>
</li>
</ul>
</div>
</div>
<script src="../../assets/js/page/Home.js"></script>
</body>
</html>

View File

@@ -0,0 +1 @@
62bf4e8c-ba12-4f93-9a9e-12489cbf3c5c

View File

@@ -0,0 +1,158 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="renderer" content="webkit">
<meta http-equiv="Cache-Control" content="no-siteapp">
<link rel="stylesheet" href="../../assets/css/header.css">
<link rel="stylesheet" href="../../assets/css/nav.css">
<script src="../../assets/js/lib/http.js"></script>
<!-- - 从 Index.config.ts 中渲染公共 css 和 js-->
<link rel="stylesheet" href="http://mdui-aliyun.cdn.w3cbus.com/source/dist/css/mdui.min.css">
<link rel="stylesheet" href="http://at.alicdn.com/t/font_1934749_hhc110df87a.css">
<script src="http://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
<script src="http://mdui-aliyun.cdn.w3cbus.com/source/dist/js/mdui.min.js"></script>
<script>
if (typeof module === 'object') {
window.jQuery = window.$ = module.exports;
};
</script>
<title>播放页面</title>
<link rel="stylesheet" href="../../assets/css/clear.css">
<link rel="stylesheet" href="../../assets/css/PlayVideo.css">
<link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/Swiper/5.4.5/css/swiper.min.css">
</head>
<body>
<div class="PlayVideo">
<div class="title"><span>@快手粉条(O40300047) #主播中心 #快手创作者服务中心 #作品推广 #智能推广</span><i class="iconfont down_video icon-changyongicon-"></i><i class="iconfont down_comment icon-comment"></i></div>
<div class="comment_list">
<div class="item_comment"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/10/15/11/BMjAyMDEwMTUxMTQyMzVfMzI0MzgzMTE2XzFfaGQ3NjlfNjU3_s.jpg">
<div class="list_item">
<div class="item_title">浪里个浪利郎</div>
<div class="item_content">真的清纯的话就不会在快手拍这些东西了[笑哭]</div><i class="iconfont icon-like"><span class="numbe">1</span><span class="view_other"></span>
<div class="showComment">
</div></i>
</div>
</div>
<div class="item_comment"><img src="https://tx2.a.yximgs.com/uhead/AB/2019/12/15/18/BMjAxOTEyMTUxODA5MzNfNTY5NjE2NjU3XzJfaGQxNTRfMTQw_s.jpg">
<div class="list_item">
<div class="item_title">核桃✔☞</div>
<div class="item_content">[赞]</div><i class="iconfont icon-like"><span class="numbe">0</span><span class="view_other"></span>
<div class="showComment">
</div></i>
</div>
</div>
<div class="item_comment"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/06/14/20/BMjAyMDA2MTQyMDU5NDJfMTExNDQ5MzkxNV8yX2hkODUxXzYxMQ==_s.jpg">
<div class="list_item">
<div class="item_title">知音5125</div>
<div class="item_content">后面宽厂好使</div><i class="iconfont icon-like"><span class="numbe">0</span><span class="view_other"></span>
<div class="showComment">
</div></i>
</div>
</div>
<div class="item_comment"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/06/26/20/BMjAyMDA2MjYyMDMwNTZfMTAzMDQ5Mjg5OV8yX2hkNzMxXzY5NA==_s.jpg">
<div class="list_item">
<div class="item_title">平安符🐒🐒李今🌅</div>
<div class="item_content">大宝真美[玫瑰][色]</div><i class="iconfont icon-like"><span class="numbe">0</span><span class="view_other"></span>
<div class="showComment">
</div></i>
</div>
</div>
<div class="item_comment"><img src="https://tx2.a.yximgs.com/uhead/AB/2018/02/19/10/BMjAxODAyMTkxMDQ0NTlfNTQ2NDk4ODk1XzFfaGQ4MTBfNzcy_s.jpg">
<div class="list_item">
<div class="item_title">尖叫的师太</div>
<div class="item_content">美确实美,纯不纯在不知道</div><i class="iconfont icon-like"><span class="numbe">1</span><span class="view_other"></span>
<div class="showComment">
</div></i>
</div>
</div>
<div class="item_comment"><img src="https://tx2.a.yximgs.com/uhead/AB/2018/08/17/09/BMjAxODA4MTcwOTUwMDhfNTM0NjI4OTgwXzJfaGQ1NjNfNzg2_s.jpg">
<div class="list_item">
<div class="item_title">空山灵雨559</div>
<div class="item_content">[赞]</div><i class="iconfont icon-like"><span class="numbe">0</span><span class="view_other"></span>
<div class="showComment">
</div></i>
</div>
</div>
<div class="item_comment"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/08/24/13/BMjAyMDA4MjQxMzQxMjJfMjA2NTQ3ODEyM18xX2hkMzU4XzM0NA==_s.jpg">
<div class="list_item">
<div class="item_title">我哦让我</div>
<div class="item_content">这个第一胎就是儿子</div><i class="iconfont icon-like"><span class="numbe">1</span><span class="view_other"></span>
<div class="showComment">
</div></i>
</div>
</div>
<div class="item_comment"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/10/13/23/BMjAyMDEwMTMyMzM0MDNfMTM2Mjc2NzUzN18yX2hkMzgxXzc2_s.jpg">
<div class="list_item">
<div class="item_title">黑白🔥年代🌴</div>
<div class="item_content">毕美[奸笑]</div><i class="iconfont icon-like"><span class="numbe">2</span><span class="view_other"></span>
<div class="showComment">
</div></i>
</div>
</div>
<div class="item_comment"><img src="https://tx2.a.yximgs.com/uhead/AB/2019/05/24/16/BMjAxOTA1MjQxNjMxMjdfNjY1NTYyMjk2XzJfaGQ0OF83Mjk=_s.jpg">
<div class="list_item">
<div class="item_title">霸★✔军</div>
<div class="item_content">漂亮</div><i class="iconfont icon-like"><span class="numbe">1</span><span class="view_other"></span>
<div class="showComment">
</div></i>
</div>
</div>
<div class="item_comment"><img src="https://tx2.a.yximgs.com/uhead/AB/2019/06/02/09/BMjAxOTA2MDIwOTQ1MDVfMjk2NTc1MTNfMV9oZDY2Xzg1OA==_s.jpg">
<div class="list_item">
<div class="item_title">刘占友(快乐的小二 b</div>
<div class="item_content">[笑哭]</div><i class="iconfont icon-like"><span class="numbe">1</span><span class="view_other"></span>
<div class="showComment">
</div></i>
</div>
</div>
<div class="item_comment"><img src="https://tx2.a.yximgs.com/uhead/AB/2019/07/13/12/BMjAxOTA3MTMxMjMyNDJfMzMxNzY3NDM3XzJfaGQzMDhfNDg5_s.jpg">
<div class="list_item">
<div class="item_title">THY•̀෴•</div>
<div class="item_content">@'Pride .(O562979729) 清纯</div><i class="iconfont icon-like"><span class="numbe">1</span><span class="view_other"></span>
<div class="showComment">
</div></i>
</div>
</div>
<div class="item_comment"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/05/07/13/BMjAyMDA1MDcxMzU1NTZfMTkxMzcwNTU3M18yX2hkMTYzXzQ0Ng==_s.jpg">
<div class="list_item">
<div class="item_title">天浪</div>
<div class="item_content">香香</div><i class="iconfont icon-like"><span class="numbe">1</span><span class="view_other"></span>
<div class="showComment">
</div></i>
</div>
</div>
<div class="item_comment"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/09/08/11/BMjAyMDA5MDgxMTIyMjZfNDMzMTg4MjUxXzJfaGQyMTBfOTU4_s.jpg">
<div class="list_item">
<div class="item_title">☆逍遥公子☆。</div>
<div class="item_content">[大哥]</div><i class="iconfont icon-like"><span class="numbe">0</span><span class="view_other"></span>
<div class="showComment">
</div></i>
</div>
</div>
<div class="item_comment"><img src="https://tx2.a.yximgs.com/uhead/AB/2017/09/24/18/BMjAxNzA5MjQxODIzNTVfNjY0MTM3NzAxXzFfaGQ5NzJfMjky_s.jpg">
<div class="list_item">
<div class="item_title">Pires.</div>
<div class="item_content">清香肥美</div><i class="iconfont icon-like"><span class="numbe">2</span><span class="view_other"></span>
<div class="showComment">
</div></i>
</div>
</div>
<div class="item_comment"><img src="https://tx2.a.yximgs.com/uhead/AB/2020/09/24/22/BMjAyMDA5MjQyMjMyMDZfNTY5MDM5Mzk1XzJfaGQyNTJfODUx_s.jpg">
<div class="list_item">
<div class="item_title">不良@帅😎️</div>
<div class="item_content">得夺[笑哭]</div><i class="iconfont icon-like"><span class="numbe">0</span><span class="view_other"></span>
<div class="showComment">
</div></i>
</div>
</div>
</div>
<video id="my-video" controlsList="nodownload" loop controls autoplay poster="https://tx2.a.yximgs.com/upic/2020/08/15/12/BMjAyMDA4MTUxMjMwNDlfMTk2NTkxOTYyNl8zNDM2NDg1MDIxNl8yXzM=_Bf28873daa8efa88221b9a4e5605b7e1c.jpg?clientCacheKey=3xukhx96tvyva5c.jpg&amp;di=7543a846&amp;bp=13804" src="https://txmov2.a.yximgs.com/bs2/newWatermark/MzQzNjQ4NTAyMTY_zh_4.mp4"></video>
</div>
<script src="https://cdn.bootcdn.net/ajax/libs/Swiper/5.4.5/js/swiper.min.js"></script>
<script src="../../assets/js/page/PlayVideo.js"></script>
</body>
</html>

1
dist/application/page/Setting/.pydio vendored Normal file
View File

@@ -0,0 +1 @@
2b2e8b0b-d3f7-4f9a-a0a2-5f249281bf31

View File

@@ -0,0 +1,36 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="renderer" content="webkit">
<meta http-equiv="Cache-Control" content="no-siteapp">
<link rel="stylesheet" href="../../assets/css/header.css">
<link rel="stylesheet" href="../../assets/css/nav.css">
<!-- - 从 Index.config.ts 中渲染公共 css 和 js-->
<link rel="stylesheet" href="http://mdui-aliyun.cdn.w3cbus.com/source/dist/css/mdui.min.css">
<link rel="stylesheet" href="http://at.alicdn.com/t/font_1934749_sryayjjvf6.css">
<script src="http://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
<script src="http://mdui-aliyun.cdn.w3cbus.com/source/dist/js/mdui.min.js"></script>
<script>
if (typeof module === 'object') {
window.jQuery = window.$ = module.exports;
};
</script>
<title>设置页面</title>
<link rel="stylesheet" href="./assets/less/setting.less">
<link rel="stylesheet" href="./assets/js/lib/animate/animate.min.less">
<link rel="stylesheet" href="./assets/js/lib/syalert/syalert.min.less">
<script src="./assets/js/lib/syalert/syalert.min.js"></script>
</head>
<body>
<div class="content">
<div class="setting">
<h2>播放地址https://txmov2.a.yximgs.com/bs2/newWatermark/MzIwNzQ2MTQ5MTI_zh_3.mp4</h2>
</div>
</div>
<script src="../../assets/js/page/Home.js"></script>
</body>
</html>

1
dist/application/page/Test/.pydio vendored Normal file
View File

@@ -0,0 +1 @@
ab664193-f231-4f34-b241-7f37b883fd06

1
dist/core/.pydio vendored Normal file
View File

@@ -0,0 +1 @@
ee122929-9866-4e3d-b2cb-9866f2479dd9

1
dist/core/annotation/.pydio vendored Normal file
View File

@@ -0,0 +1 @@
39248b24-b5d5-42f2-bf62-d312254ad586

68
dist/core/annotation/AutoController.js vendored Normal file
View File

@@ -0,0 +1,68 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.CreateApplicationIpc = exports.CreateTray = exports.CreateTouchbar = exports.CreateApplicationMenu = exports.AutoController = void 0;
const tslib_1 = require("tslib");
const index_utils_1 = tslib_1.__importDefault(require("@utils/index.utils"));
const ApplicationMenu_interactive_1 = require("@interactive/ApplicationMenu.interactive");
const Touchbar_interactive_1 = require("@interactive/Touchbar.interactive");
const Tray_interactive_1 = require("@interactive/Tray.interactive");
const application_ipc_1 = require("@ipc/application.ipc");
function AutoController() {
return (_constructor) => {
return class extends _constructor {
constructor() {
new (index_utils_1.default.GetController());
super();
}
};
};
}
exports.AutoController = AutoController;
function CreateApplicationMenu() {
return (_constructor) => {
return class extends _constructor {
constructor() {
// 创建顶部菜单
new ApplicationMenu_interactive_1.ApplicationMenu();
super();
}
};
};
}
exports.CreateApplicationMenu = CreateApplicationMenu;
function CreateTouchbar() {
return (_constructor) => {
return class extends _constructor {
constructor() {
// 创建Touchbar
new Touchbar_interactive_1.Touchbar();
super();
}
};
};
}
exports.CreateTouchbar = CreateTouchbar;
function CreateTray() {
return (_constructor) => {
return class extends _constructor {
constructor() {
// 创建Mac系统顶部图标
new Tray_interactive_1.TrayInteractive();
super();
}
};
};
}
exports.CreateTray = CreateTray;
function CreateApplicationIpc() {
return (_constructor) => {
return class extends _constructor {
constructor() {
// 开启应用级ipc监听
new application_ipc_1.ApplicationIpc();
super();
}
};
};
}
exports.CreateApplicationIpc = CreateApplicationIpc;

View File

@@ -0,0 +1,69 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Render = exports.CreateApplicationIpc = exports.Ipc = void 0;
var Index_config_1 = __importDefault(require("@config/Index.config"));
var Index_utils_1 = __importDefault(require("@utils/Index.utils"));
/**
* @Ipc()
* 实现居中IPC的注册用在controller方法上
* @param IpcParams 传入需要被注册的ipc类
* @constructor
*/
function Ipc(IpcParams) {
return function (target, propertyKey, descriptor) {
/**
* 因为TS没有提供像java那种可以直接提取某个类中所有方法的系统方法
* 这边原本使用 Object.getOwnPropertyNames 能够正常提取类中方法,但是如果类中有被 @Inject() 依赖注入的属性
* 那么这个属性也会被 (new IpcParams())[val](),这样是肯定报错的,所以做下面约定!
* 在IPC 类中,如果在类的属性上使用 @Inject() 注入。那么请在类的属性名前加上 _例如:
* @Inject()
* private readonly _Net!: Http;
*/
IpcParams.forEach(function (val) {
Object.getOwnPropertyNames(val.prototype).splice(1)
.filter(function (f) { return !f.includes("_"); })
.forEach(function (v) { return (new val())[v](); });
});
};
}
exports.Ipc = Ipc;
/**
* @CreateApplicationIpc()
* 实现全局IPC的注册
* 能够自动实例化传入的类数组中的所有类,并自动调用类中的所有的方法
* @param IpcParams 类数组,实例:[ classIpc1, classIpc2, classIpc3 ]
* @constructor
*/
function CreateApplicationIpc(IpcParams) {
return function (_constructor) {
IpcParams.forEach(function (val) {
Object.getOwnPropertyNames(val.prototype).splice(1)
.filter(function (f) { return !f.includes("_"); })
.forEach(function (v) { return (new val())[v](); });
});
};
}
exports.CreateApplicationIpc = CreateApplicationIpc;
/**
* @Render()
* 创建窗口
* @param templateName 要渲染的模板名称
* @constructor
*/
function Render(templateName) {
return function (target, propertyKey, descriptor) {
/**
* 如果被打上注解的类中某个方法是配置文件中的默认启动窗口,那么调用这个方法来创建窗体
* 其他的方法一律不管由js前端渲染进程触发ipc创建
*/
if (propertyKey.includes((Index_config_1.default.StartPage.split("/"))[1])) {
// 如果没有传参数,那么采用方法名来创建窗体!
templateName == undefined ? Index_utils_1.default.startWindows(target, propertyKey) : Index_utils_1.default.startWindows(target, templateName);
}
};
}
exports.Render = Render;
//# sourceMappingURL=Creted.annotation.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Creted.annotation.js","sourceRoot":"","sources":["../../../src/core/annotation/Creted.annotation.ts"],"names":[],"mappings":";;;;;;AAAA,sEAA0C;AAC1C,mEAAuC;AAGvC;;;;;GAKG;AACH,SAAgB,GAAG,CAAC,SAA0C;IAC1D,OAAO,UAAU,MAAW,EAAE,WAAmB,EAAE,UAA8B;QAC7E;;;;;;;WAOG;QACH,SAAS,CAAC,OAAO,CAAC,UAAC,GAAqB;YACpC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;iBAC9C,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAhB,CAAgB,CAAC;iBAC7B,OAAO,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAhB,CAAgB,CAAC,CAAA;QACvC,CAAC,CAAC,CAAA;IACN,CAAC,CAAA;AACL,CAAC;AAhBD,kBAgBC;AAED;;;;;;GAMG;AACH,SAAgB,oBAAoB,CAAC,SAA0C;IAC3E,OAAQ,UAAC,YAA2C;QAChD,SAAS,CAAC,OAAO,CAAC,UAAC,GAAqB;YACpC,MAAM,CAAC,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;iBAC9C,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAhB,CAAgB,CAAC;iBAC7B,OAAO,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAhB,CAAgB,CAAC,CAAA;QACvC,CAAC,CAAC,CAAA;IACN,CAAC,CAAA;AACL,CAAC;AARD,oDAQC;AAED;;;;;GAKG;AACH,SAAgB,MAAM,CAAC,YAAqB;IACxC,OAAO,UAAC,MAAW,EAAE,WAAmB,EAAE,UAA8B;QACpE;;;WAGG;QACH,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,sBAAM,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;YACxD,wBAAwB;YACxB,YAAY,IAAI,SAAS,CAAC,CAAC,CAAC,qBAAK,CAAC,YAAY,CAAC,MAAM,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,qBAAK,CAAC,YAAY,CAAC,MAAM,EAAC,YAAY,CAAC,CAAA;SAC/G;IACL,CAAC,CAAA;AACL,CAAC;AAXD,wBAWC"}

25
dist/core/annotation/Creted.js vendored Normal file
View File

@@ -0,0 +1,25 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Creted = void 0;
const tslib_1 = require("tslib");
const Windows_model_1 = tslib_1.__importDefault(require("@model/Windows.model"));
const electron_1 = require("electron");
const index_config_1 = tslib_1.__importDefault(require("@config/index.config"));
function Creted() {
return (_constructor) => {
let ControllerName = _constructor.name.split("Controller")[0];
let ConfigName = `${ControllerName}Config`;
let PathName = `${ControllerName}Path`;
try {
// @ts-ignore
Windows_model_1.default.CurrentBrowserWindow = new electron_1.BrowserWindow(index_config_1.default.PageSize[ConfigName]);
// @ts-ignore
Windows_model_1.default.CurrentBrowserWindow.loadFile(index_config_1.default.PagePath[PathName]).then(r => { });
}
catch (e) {
console.log("controller不存在请检查命名示例AboutController。");
}
Windows_model_1.default.CurrentBrowserWindow.show();
};
}
exports.Creted = Creted;

93
dist/core/annotation/Http.annotation.js vendored Normal file
View File

@@ -0,0 +1,93 @@
"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 });
exports.GET = void 0;
var Index_config_1 = __importDefault(require("@config/Index.config"));
var Http_net_1 = require("@net/Http.net");
/**
* @GET()
* 用在service类的方法上。
* 如果不传参数将自动根据方法名获取接口请求的地址
* 如果传参了,那么使用用户传入的地址去发送网络请求
*
* 如果 useHandle 为 true 那么方法将获得ajax请求的数据
* 否则 不会将数据给方法
* @param RequestParams
* @constructor
*/
function GET(RequestParams) {
return function (target, propertyKey, descriptor) {
var _this = this;
var url = Index_config_1.default.ApiUrl.ApiList[propertyKey], handle = false, header = {};
(RequestParams && RequestParams.url)
? url = RequestParams.url
: (RequestParams && RequestParams.useHandle)
? handle = RequestParams.useHandle
: (RequestParams && RequestParams.header)
? header = RequestParams.header
: '';
var OldMethods = descriptor.value;
if (handle) {
descriptor.value = function (data) { return __awaiter(_this, void 0, void 0, function () { var _a, _b, _c; return __generator(this, function (_d) {
switch (_d.label) {
case 0:
_b = (_a = OldMethods).apply;
_c = [target];
return [4 /*yield*/, (new Http_net_1.Http).GET({ url: url, data: data, header: header })];
case 1: return [4 /*yield*/, _b.apply(_a, _c.concat([[_d.sent()]]))];
case 2: return [2 /*return*/, _d.sent()];
}
}); }); };
return descriptor;
}
else {
descriptor.value = function (data) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, (new Http_net_1.Http).GET({ url: url, data: data, header: header })];
case 1: return [2 /*return*/, _a.sent()];
}
}); }); };
return descriptor;
}
};
}
exports.GET = GET;
//# sourceMappingURL=Http.annotation.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Http.annotation.js","sourceRoot":"","sources":["../../../src/core/annotation/Http.annotation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sEAA0C;AAC1C,0CAAmC;AAEnC;;;;;;;;;;GAUG;AACH,SAAgB,GAAG,CAAE,aAAwF;IACzG,OAAO,UAAU,MAAW,EAAE,WAAmB,EAAE,UAA8B;QAA1E,iBAuBN;QAtBG,IAAI,GAAG,GAAW,sBAAM,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAChD,MAAM,GAAY,KAAK,EACvB,MAAM,GAAW,EAAE,CAAC;QAExB,CAAC,aAAa,IAAI,aAAa,CAAC,GAAG,CAAC;YAChC,CAAC,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG;YACzB,CAAC,CAAC,CAAC,aAAa,IAAI,aAAa,CAAC,SAAS,CAAC;gBACxC,CAAC,CAAC,MAAM,GAAG,aAAa,CAAC,SAAS;gBAClC,CAAC,CAAC,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,CAAC;oBACrC,CAAC,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM;oBAC/B,CAAC,CAAC,EAAE,CAAC;QAEjB,IAAI,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC;QAClC,IAAI,MAAM,EAAE;YACR,UAAU,CAAC,KAAK,GAAG,UAAO,IAA2B;;;wBAC3C,KAAA,CAAA,KAAA,UAAU,CAAA,CAAC,KAAK,CAAA;8BAAC,MAAM;wBAAI,qBAAM,CAAC,IAAI,eAAI,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAA;4BAA/F,qBAAM,yBAA2B,SAA8D,IAAG,EAAA;4BAAlG,sBAAA,SAAkG,EAAA;;qBAAA,CAAA;YACtG,OAAO,UAAU,CAAA;SACpB;aAAM;YACH,UAAU,CAAC,KAAK,GAAG,UAAO,IAA2B;;4BACjD,qBAAM,CAAC,IAAI,eAAI,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAA;4BAA9D,sBAAA,SAA8D,EAAA;;qBAAA,CAAA;YAClE,OAAO,UAAU,CAAA;SACpB;IACL,CAAC,CAAA;AACL,CAAC;AAzBD,kBAyBC"}

49
dist/core/annotation/Ioc.annotation.js vendored Normal file
View File

@@ -0,0 +1,49 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Inject = exports.Injectable = void 0;
require("reflect-metadata");
var Ioc_model_1 = __importDefault(require("@model/Ioc.model"));
/**
* 收集类依赖
* @constructor
*/
function Injectable() {
return function (_constructor) {
if (Ioc_model_1.default.classPool.indexOf(_constructor) !== -1) {
throw new Error('无需重复收集类');
}
else {
//注册
Ioc_model_1.default.classPool = [_constructor];
}
};
}
exports.Injectable = Injectable;
/**
* 将类依赖实例化然后注入到被装饰的属性中
* @constructor
*/
function Inject() {
return function (target, propertyName) {
console.log("target: ", target);
console.log("propertyName: ", propertyName);
/**
* 使用 reflect-metadata 提供的内置 类型元数据键 design:type 通过反射拿到被装饰属性的类型
* 也就是 类属性要实例化 的 service 类
*/
var propertyType = Reflect.getMetadata('design:type', target, propertyName);
console.log("类属性要实例化 propertyType: ", propertyType);
if (Ioc_model_1.default.classPool.indexOf(propertyType) == -1) {
throw new Error('被装饰的属性所属的变量类型类,没有被装饰器@Injectable()注入,请检查!');
}
else {
// 从存取器的数组中通过下标取出被装饰属性对应的service类然后实例化这个类在放入被装饰的属性中
target[propertyName] = new (Ioc_model_1.default.classPool[Ioc_model_1.default.classPool.indexOf(propertyType)])();
}
};
}
exports.Inject = Inject;
//# sourceMappingURL=Ioc.annotation.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Ioc.annotation.js","sourceRoot":"","sources":["../../../src/core/annotation/Ioc.annotation.ts"],"names":[],"mappings":";;;;;;AAAA,4BAA0B;AAC1B,+DAAwC;AAExC;;;GAGG;AACH,SAAgB,UAAU;IACtB,OAAO,UAAC,YAA4C;QAChD,IAAG,mBAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE;YAChD,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;SAC9B;aAAM;YACH,IAAI;YACJ,mBAAQ,CAAC,SAAS,GAAG,CAAC,YAAY,CAAC,CAAA;SACtC;IACL,CAAC,CAAA;AACL,CAAC;AATD,gCASC;AAED;;;GAGG;AACH,SAAgB,MAAM;IAClB,OAAO,UAAU,MAAW,EAAE,YAAoB;QAC9C,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;QAC/B,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAA;QAC3C;;;WAGG;QACH,IAAM,YAAY,GAAQ,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QACnF,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,YAAY,CAAC,CAAA;QAEnD,IAAI,mBAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE;YAChD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;SAChE;aAAM;YACH,qDAAqD;YACrD,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,mBAAQ,CAAC,SAAS,CAAC,mBAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAA;SAC9F;IACL,CAAC,CAAA;AACL,CAAC;AAlBD,wBAkBC"}

8
dist/core/annotation/Open.js vendored Normal file
View File

@@ -0,0 +1,8 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
function Open() {
// @ts-ignore
return (target, propertyKey, descriptor) => {
};
}
exports.default = Open;

View File

@@ -0,0 +1 @@
{"version":3,"file":"Run.annotation.js","sourceRoot":"","sources":["../../../src/core/annotation/Run.annotation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,mEAAuC;AACvC,wFAAyE;AACzE,0EAA2D;AAC3D,kEAA8D;AAG9D,SAAgB,cAAc;IAC1B,OAAQ,UAAC,YAAqC;QAC1C;YAAqB,2BAAY;YAC7B;gBAAA,iBAIC;gBAHG,oCAAoC;gBACpC,qBAAK,CAAC,aAAa,EAAE,CAAA;gBACrB,QAAA,iBAAO,SAAC;;YACZ,CAAC;YACL,cAAC;QAAD,CAAC,AANM,CAAc,YAAY,GAMhC;IACL,CAAC,CAAA;AACL,CAAC;AAVD,wCAUC;AAED,SAAgB,qBAAqB;IACjC,OAAQ,UAAC,YAAqC;QAC1C;YAAqB,2BAAY;YAC7B;gBAAA,iBAIC;gBAHG,SAAS;gBACT,IAAI,6CAAe,EAAE,CAAA;gBACrB,QAAA,iBAAO,SAAC;;YACZ,CAAC;YACL,cAAC;QAAD,CAAC,AANM,CAAc,YAAY,GAMhC;IACL,CAAC,CAAA;AACL,CAAC;AAVD,sDAUC;AAED,SAAgB,cAAc;IAC1B,OAAQ,UAAC,YAAqC;QAC1C;YAAqB,2BAAY;YAC7B;gBAAA,iBAmBC;gBAlBG;;;;;;;;;;;;;;;mBAeG;gBACH,UAAU,CAAC,cAAK,OAAA,IAAI,+BAAQ,EAAE,EAAd,CAAc,EAAC,IAAI,CAAC,CAAA;gBACpC,QAAA,iBAAO,SAAC;;YACZ,CAAC;YACL,cAAC;QAAD,CAAC,AArBM,CAAc,YAAY,GAqBhC;IACL,CAAC,CAAA;AACL,CAAC;AAzBD,wCAyBC;AAED,SAAgB,UAAU;IACtB,OAAQ,UAAC,YAAqC;QAC1C;YAAsB,2BAAY;YAC9B;gBAAA,iBAIC;gBAHG,cAAc;gBACd,IAAI,kCAAe,EAAE,CAAA;gBACrB,QAAA,iBAAO,SAAC;;YACZ,CAAC;YACL,cAAC;QAAD,CAAC,AANM,CAAe,YAAY,GAMjC;IACL,CAAC,CAAA;AACL,CAAC;AAVD,gCAUC;AAED,gDAAgD;AAChD,2DAA2D;AAC3D,8CAA8C;AAC9C,8BAA8B;AAC9B,gCAAgC;AAChC,oCAAoC;AACpC,2BAA2B;AAC3B,gBAAgB;AAChB,YAAY;AACZ,QAAQ;AACR,IAAI"}

114
dist/core/annotation/run.annotation.js vendored Normal file
View File

@@ -0,0 +1,114 @@
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CreateTray = exports.CreateTouchbar = exports.CreateApplicationMenu = exports.AutoLoadWindow = void 0;
var Index_utils_1 = __importDefault(require("@utils/Index.utils"));
var ApplicationMenu_interactive_1 = require("@interactive/ApplicationMenu.interactive");
var Touchbar_interactive_1 = require("@interactive/Touchbar.interactive");
var Tray_interactive_1 = require("@interactive/Tray.interactive");
function AutoLoadWindow() {
return function (_constructor) {
return /** @class */ (function (_super) {
__extends(class_1, _super);
function class_1() {
var _this = this;
// 这里只要动态 require 导入类即可,然后类上的装饰器就会运行
Index_utils_1.default.GetController();
_this = _super.call(this) || this;
return _this;
}
return class_1;
}(_constructor));
};
}
exports.AutoLoadWindow = AutoLoadWindow;
function CreateApplicationMenu() {
return function (_constructor) {
return /** @class */ (function (_super) {
__extends(class_2, _super);
function class_2() {
var _this = this;
// 创建顶部菜单
new ApplicationMenu_interactive_1.ApplicationMenu();
_this = _super.call(this) || this;
return _this;
}
return class_2;
}(_constructor));
};
}
exports.CreateApplicationMenu = CreateApplicationMenu;
function CreateTouchbar() {
return function (_constructor) {
return /** @class */ (function (_super) {
__extends(class_3, _super);
function class_3() {
var _this = this;
/**
* 创建Touchbar
* 这边做延时300毫秒的原因解释起来有点复杂
* 1因为我设计了 @Inject() 和 @Injectable() 注解,而在 controller 中
* 被注解的属性 VideoImplService 存放的是 请求中间层而请求中间层是调用的Http请求方法GET而这个方法
* 为了拿到返回值所以设计成async异步的这就导致使用请求中间层的controller方法也是async。
* 2而使用的方法如果是 async 那么就会导致 注解 @Render() 内部 也就是 startWindows 方法内,在自动调用方法
* 获取传递给模板的方法返回数值的时候必须 await也就变成了await target[name]()。
* 而这个注解 @CreateTouchbar() 运行时间 和 注解 @AutoLoadWindow() 基本同时间跑,
* 所以会导致 @CreateTouchbar() 运行的时候太快了,尼玛币 await target[name]() 还没跑完,所以导致
* 存取器里面Windows.CurrentBrowserWindow 没有数值,所以 @CreateTouchbar() 所依赖的 Windows.CurrentBrowserWindow
* 为空所以touchbar菜单无法 setTouchBar 上。
* 3这里等300毫秒是等 await target[name]() 完成,窗口也创建完成,然后 Windows.CurrentBrowserWindow
* 再去创建 touchbar菜单。
* 好了,说完了....同学不要睡了!
*/
setTimeout(function () { return new Touchbar_interactive_1.Touchbar(); }, 3000);
_this = _super.call(this) || this;
return _this;
}
return class_3;
}(_constructor));
};
}
exports.CreateTouchbar = CreateTouchbar;
function CreateTray() {
return function (_constructor) {
return /** @class */ (function (_super) {
__extends(class_4, _super);
function class_4() {
var _this = this;
// 创建Mac系统顶部图标
new Tray_interactive_1.TrayInteractive();
_this = _super.call(this) || this;
return _this;
}
return class_4;
}(_constructor));
};
}
exports.CreateTray = CreateTray;
// export function CreateApplicationIpc(): any {
// return (_constructor: {new(...args:any[]):{}}) => {
// return class extends _constructor {
// constructor() {
// // 开启应用级ipc监听
// new Application()
// super();
// }
// }
// }
// }
//# sourceMappingURL=Run.annotation.js.map

1
dist/core/config/.pydio vendored Normal file
View File

@@ -0,0 +1 @@
69b8c07b-090c-4e32-88e5-bbee314a181b

1
dist/core/config/Index.config.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"Index.config.js","sourceRoot":"","sources":["../../../src/core/config/Index.config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,qCAAwH;AACxH,6EAAiD;AACzC,IAAA,aAAa,GAAoC,mBAAQ,cAA5C,EAAE,cAAc,GAAoB,mBAAQ,eAA5B,EAAC,cAAc,GAAK,mBAAQ,eAAb,CAAc;AAClE,6BAA4B;AAG5B;IAAA;IAwNA,CAAC;IAvNG;;;;OAIG;IACW,gBAAS,GAAW,sBAAsB,CAAC;IAEzD,QAAQ;IACM,wBAAiB,GAAW,OAAO,CAAC;IAElD,WAAW;IACG,YAAK,GAAY,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC;IAE/C,eAAQ,GAAW,gBAAgB,CAAC;IAElD,YAAY;IACE,aAAM,GAAiB;QACjC,OAAO,EAAE,iCAAiC;QAC1C,OAAO,EAAE;YACL,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,OAAO;YAClB,YAAY,EAAE,cAAc;SAC/B;KACJ,CAAC;IAEF,2BAA2B;IACb,yBAAkB,GAAgB;QAC5C,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE;YACL,GAAG,EAAE;gBACD,gEAAgE;gBAChE,qDAAqD;aACxD;YACD,EAAE,EAAE;gBACA,yDAAyD;gBACzD,8DAA8D;aACjE;SACJ;KACJ,CAAC;IAEF,wBAAwB;IACV,eAAQ,GAAa;QAC/B,IAAI,EAAE,WAAI,CAAC,SAAS,EAAE,uCAAuC,CAAC;QAC9D,SAAS,EAAE,WAAI,CAAC,SAAS,EAAE,iDAAiD,CAAC;KAChF,CAAC;IAEF,WAAW;IACG,eAAQ,GAAa;QAC/B,IAAI,EAAE;YACF,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,KAAK;YACZ,eAAe,EAAE,MAAM;YACvB,aAAa,EAAE,aAAa;YAC5B,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE;gBACZ,WAAW,EAAE,KAAK;gBAClB,eAAe,EAAE,IAAI;gBACrB,UAAU,EAAE,IAAI;aACnB;SACJ;QACD,SAAS,EAAE;YACP,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,KAAK;YACZ,eAAe,EAAE,MAAM;YACvB,aAAa,EAAE,QAAQ;YACvB,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,IAAI;YACf,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE;gBACZ,WAAW,EAAE,KAAK;gBAClB,eAAe,EAAE,IAAI;gBACrB,UAAU,EAAE,IAAI;aACnB;SACJ;KACJ,CAAC;IAEF,mBAAmB;IACL,iBAAU,GAAe;QACnC,iBAAiB,EAAE,WAAI,CAAC,SAAS,EAAE,sCAAsC,CAAC;QAC1E,oBAAoB,EAAC;YACjB;gBACI,KAAK,EAAE,OAAO;gBACd,KAAK,EAAE;oBACH,uBAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;gBACxC,CAAC;aACJ;YACD;gBACI,IAAI,EAAE,WAAI,CAAC,SAAS,EAAE,sCAAsC,CAAC;gBAC7D,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,UAAC,QAAa,EAAE,aAAkB;oBACrC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;gBACxC,CAAC;aACJ;YACD;gBACI,KAAK,EAAE,IAAI;gBACX,OAAO,EAAE;oBACL;wBACI,KAAK,EAAE,MAAM;qBAChB;oBACD;wBACI,KAAK,EAAE,MAAM;qBAChB;iBACJ;aACJ;YACD;gBACI,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI;aACd;SACJ;QACD,gBAAgB,EAAE,MAAM;KAC3B,CAAC;IAEF,sBAAsB;IACR,mBAAY,GAAoD;QAC1E;YACI,KAAK,EAAE,cAAG,CAAC,IAAI;YACf,OAAO,EAAE;gBACL,EAAE,KAAK,EAAE,kBAAM,cAAG,CAAC,IAAM,EAAE,IAAI,EAAE,OAAO,EAAE;gBAC1C,EAAE,IAAI,EAAE,WAAW,EAAE;gBACrB,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE;gBACjC,EAAE,IAAI,EAAE,WAAW,EAAE;gBACrB,EAAE,KAAK,EAAE,kBAAM,cAAG,CAAC,IAAM,EAAE,IAAI,EAAE,MAAM,EAAE;gBACzC,EAAE,IAAI,EAAE,YAAY,EAAE;gBACtB,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACjC,EAAE,IAAI,EAAE,WAAW,EAAE;gBACrB,EAAE,KAAK,EAAE,iBAAK,cAAG,CAAC,IAAM,EAAE,IAAI,EAAE,MAAM,EAAE;aAC3C;SACJ;QACD;YACI,KAAK,EAAE,IAAI;SACd;QACD;YACI,KAAK,EAAE,IAAI;YACX,OAAO,EAAE;gBACL,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC7B,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC7B,EAAC,IAAI,EAAE,WAAW,EAAE;gBACpB,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE;gBAC5B,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC7B,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;gBAC9B,EAAC,IAAI,EAAE,WAAW,EAAE;gBACpB,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,oBAAoB,EAAE;gBAC/C,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC/B,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE;gBAClC,EAAE,IAAI,EAAE,WAAW,EAAE;gBACrB;oBACI,KAAK,EAAE,IAAI;oBACX,OAAO,EAAE;wBACL,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE;wBACxC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;qBAC1C;iBACJ;aACJ;SACJ;QACD;YACI,KAAK,EAAE,IAAI;YACX,OAAO,EAAE;gBACL,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC/B,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE;gBAClC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;gBAC/B,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;gBAChC,EAAE,IAAI,EAAE,WAAW,EAAE;gBACrB,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE;gBACzC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,EAAE;aAChD;SACJ;QACD;YACI,KAAK,EAAE,IAAI;YACX,OAAO,EAAE;gBACL,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE;gBAClC,EAAE,KAAK,EAAE,KAAK,EAAC,IAAI,EAAE,MAAM,EAAE;gBAC7B,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE;aACjC;SACJ;QACD;YACI,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACL;oBACI,KAAK,EAAE,MAAM;oBACb,KAAK,EAAE;;;wCACH,qBAAM,gBAAK,CAAC,YAAY,CAAC,wBAAwB,CAAC,EAAA;;oCAAlD,SAAkD,CAAA;;;;yBACrD;iBACJ;gBACD;oBACI,KAAK,EAAE,UAAU;oBACjB,KAAK,EAAE;;;;yBACN;iBACJ;aACJ;SACJ;KACJ,CAAC;IAEF,kBAAkB;IACJ,qBAAc,GAA+B;QACvD,KAAK,EAAE;YACH,IAAI,cAAc,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YACrC,IAAI,cAAc,CAAC;gBACf,KAAK,EAAE,KAAK;gBACZ,eAAe,EAAE,SAAS;gBAC1B,KAAK,EAAE,cAAO,CAAC;aAClB,CAAC;YACF,IAAI,cAAc,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;YACrC,IAAI,cAAc,CAAC;gBACf,KAAK,EAAE,KAAK;gBACZ,eAAe,EAAE,SAAS;gBAC1B,KAAK,EAAE,cAAO,CAAC;aAClB,CAAC;SACL;KACJ,CAAC;IACN,aAAC;CAAA,AAxND,IAwNC;kBAxNoB,MAAM"}

6
dist/core/config/api.config.js vendored Normal file
View File

@@ -0,0 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ApiConfig = void 0;
class ApiConfig {
}
exports.ApiConfig = ApiConfig;

267
dist/core/config/index.config.js vendored Normal file
View File

@@ -0,0 +1,267 @@
"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 electron_1 = require("electron");
var Windows_model_1 = __importDefault(require("@/core/model/Windows.model"));
var TouchBarLabel = electron_1.TouchBar.TouchBarLabel, TouchBarButton = electron_1.TouchBar.TouchBarButton, TouchBarSpacer = electron_1.TouchBar.TouchBarSpacer;
var path_1 = require("path");
var Config = /** @class */ (function () {
function Config() {
}
/**
* 启动页面默认为 Home.controller/Home
* 程序内部根据这个配置自动载入Home.controller.ts文件并自动调用类里面的Home()方法实现窗口创建
* 可以改成其他,例如 PlayVideo.controller/Theme
*/
Config.StartPage = 'Home.controller/Home';
// 应用版本号
Config.CurrentAppVersion = '0.0.1';
// 是否为Mac系统
Config.isMac = process.platform === 'darwin';
Config.LogsPath = "../../../logs/";
// ajax 请求地址
Config.ApiUrl = {
BaseUrl: 'http://www.bmycode.com:3000/api',
ApiList: {
PlayList: '/list',
PalyVideo: '/play',
VideoComment: '/CommentList',
}
};
// jade 模板引擎配置,更多参数自行阅读声明文件
Config.jadeCompile0ptions = {
pretty: true,
globals: {
css: [
'http://mdui-aliyun.cdn.w3cbus.com/source/dist/css/mdui.min.css',
'http://at.alicdn.com/t/font_1934749_hhc110df87a.css',
],
js: [
'http://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js',
'http://mdui-aliyun.cdn.w3cbus.com/source/dist/js/mdui.min.js'
]
}
};
// 应用程序的页面地址,地址为打包后的相对路径
Config.PagePath = {
Home: path_1.join(__dirname, '../../application/page/Home/Home.html'),
PlayVideo: path_1.join(__dirname, '../../application/page/PlayVideo/PlayVideo.html'),
};
// 所有页面窗体配置
Config.PageSize = {
Home: {
width: 1200,
height: 760,
frame: false,
backgroundColor: '#fff',
titleBarStyle: 'hiddenInset',
transparent: true,
webPreferences: {
webSecurity: false,
nodeIntegration: true,
webviewTag: true,
}
},
PlayVideo: {
width: 1084,
height: 610,
frame: false,
backgroundColor: '#000',
titleBarStyle: 'hidden',
modal: true,
show: false,
resizable: true,
transparent: true,
webPreferences: {
webSecurity: false,
nodeIntegration: true,
webviewTag: true
}
}
};
// Mac系统顶部全局菜单 右边图标
Config.TrayConfig = {
TopMenuRightImage: path_1.join(__dirname, '../../application/assets/img/pug.png'),
TopMenuRightDropdown: [
{
label: '显示主窗口',
click: function () {
Windows_model_1.default.CurrentBrowserWindow.show();
}
},
{
icon: path_1.join(__dirname, '../../application/assets/img/pug.png'),
label: '下拉菜单测试',
type: 'checkbox',
checked: true,
click: function (menuItem, browserWindow) {
console.log("menuItem: ", menuItem);
}
},
{
label: '菜单',
submenu: [
{
label: '子菜单1'
},
{
label: '子菜单2'
}
],
},
{
role: 'quit',
label: '退出'
},
],
TopMenuRightTips: '测试提醒'
};
// Mac or win 系统顶部全局菜单
Config.TemplateMenu = [
{
label: electron_1.app.name,
submenu: [
{ label: "\u5173\u4E8E " + electron_1.app.name, role: 'about' },
{ type: 'separator' },
{ label: '服务', role: 'services' },
{ type: 'separator' },
{ label: "\u9690\u85CF " + electron_1.app.name, role: 'hide' },
{ role: 'hideOthers' },
{ label: '隐藏其他', role: 'unhide' },
{ type: 'separator' },
{ label: "\u9000\u51FA" + electron_1.app.name, role: 'quit' }
]
},
{
label: '文件',
},
{
label: '编辑',
submenu: [
{ label: '撤销', role: 'undo' },
{ label: '恢复', role: 'redo' },
{ type: 'separator' },
{ label: '剪切', role: 'cut' },
{ label: '复制', role: 'copy' },
{ label: '粘贴', role: 'paste' },
{ type: 'separator' },
{ label: '粘贴保留样式', role: 'pasteAndMatchStyle' },
{ label: '删除', role: 'delete' },
{ label: '全选', role: 'selectAll' },
{ type: 'separator' },
{
label: '听写',
submenu: [
{ label: '开始听写', role: 'startSpeaking' },
{ label: '停止听写', role: 'stopSpeaking' }
]
}
]
},
{
label: '视图',
submenu: [
{ label: '刷新', role: 'reload' },
{ label: '重置', role: 'resetZoom' },
{ label: '放大', role: 'zoomIn' },
{ label: '缩小', role: 'zoomOut' },
{ type: 'separator' },
{ label: '全屏', role: 'togglefullscreen' },
{ label: '切换开发人员工具', role: 'toggleDevTools' },
]
},
{
label: '窗口',
submenu: [
{ label: '最小化', role: 'minimize' },
{ label: '最大化', role: 'zoom' },
{ label: '关闭', role: 'close' }
]
},
{
label: '帮助',
role: 'help',
submenu: [
{
label: '了解更多',
click: function () { return __awaiter(void 0, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, electron_1.shell.openExternal('https://electronjs.org')];
case 1:
_a.sent();
return [2 /*return*/];
}
});
}); }
},
{
label: 'GitHub主页',
click: function () { return __awaiter(void 0, void 0, void 0, function () {
return __generator(this, function (_a) {
return [2 /*return*/];
});
}); }
}
]
}
];
// Mac touchbar 菜单
Config.TouchBarConfig = {
items: [
new TouchBarSpacer({ size: 'small' }),
new TouchBarButton({
label: '测试1',
backgroundColor: '#3a3a3c',
click: function () { }
}),
new TouchBarSpacer({ size: 'small' }),
new TouchBarButton({
label: '测试2',
backgroundColor: '#3a3a3c',
click: function () { }
}),
]
};
return Config;
}());
exports.default = Config;
//# sourceMappingURL=Index.config.js.map

1
dist/core/controller/.pydio vendored Normal file
View File

@@ -0,0 +1 @@
47fe2a26-58f5-4ae7-8eac-a0538df067dd

125
dist/core/controller/Home.controller.js vendored Normal file
View File

@@ -0,0 +1,125 @@
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
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 };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.HomeController = void 0;
var Creted_annotation_1 = require("@annotation/Creted.annotation");
var Video_impl_service_1 = require("@service/impl/Video.impl.service");
var Ioc_annotation_1 = require("@annotation/Ioc.annotation");
var File_ipc_1 = require("@ipc/module/File.ipc");
var HomeController = /** @class */ (function () {
function HomeController() {
}
HomeController.prototype.Home = function (test) {
return __awaiter(this, void 0, void 0, function () {
var res;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.VideoImplService.PlayList({})];
case 1:
res = _a.sent();
return [2 /*return*/, {
header: true,
nav: true,
title: '首页页面窗口-测试传给模板的数据',
desc: '点我发送ipc打开窗口代码实现分别在src/application/assets/js/page/Home.js 和 src/core/ipc/Application.ipc.ts 和 @CreateApplicationIpc 装饰器中!!!',
list: res.data
}];
}
});
});
};
HomeController.prototype.PlayVideo = function (params) {
return __awaiter(this, void 0, void 0, function () {
var _a;
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
console.log("参数:", params);
if (!params.hasOwnProperty("list")) return [3 /*break*/, 1];
return [2 /*return*/, {
header: false,
nav: false,
img: true,
video: params
}];
case 1:
_a = {
header: false,
nav: false,
img: false
};
return [4 /*yield*/, this.VideoImplService.PalyVideo(params)];
case 2:
_a.video = _b.sent();
return [4 /*yield*/, this.VideoImplService.VideoComment({ photoId: params.photoId })];
case 3: return [2 /*return*/, (_a.Comment = _b.sent(),
_a)];
}
});
});
};
__decorate([
Ioc_annotation_1.Inject(),
__metadata("design:type", Video_impl_service_1.VideoImplService)
], HomeController.prototype, "VideoImplService", void 0);
__decorate([
Creted_annotation_1.Render(),
__metadata("design:type", Function),
__metadata("design:paramtypes", [String]),
__metadata("design:returntype", Promise)
], HomeController.prototype, "Home", null);
__decorate([
Creted_annotation_1.Render(),
Creted_annotation_1.Ipc([File_ipc_1.FileIpc]),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Object]),
__metadata("design:returntype", Promise)
], HomeController.prototype, "PlayVideo", null);
return HomeController;
}());
exports.HomeController = HomeController;
//# sourceMappingURL=Home.controller.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Home.controller.js","sourceRoot":"","sources":["../../../src/core/controller/Home.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mEAA4D;AAC5D,uEAAoE;AACpE,6DAAoD;AACpD,iDAA+C;AAE/C;IAAA;IAwCA,CAAC;IAlCgB,6BAAI,GAAjB,UAAkB,IAAY;;;;;4BAChB,qBAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAA;;wBAA9C,GAAG,GAAG,SAAwC;wBAClD,sBAAO;gCACH,MAAM,EAAE,IAAI;gCACZ,GAAG,EAAE,IAAI;gCACT,KAAK,EAAE,kBAAkB;gCACzB,IAAI,EAAE,+HAA+H;gCACrI,IAAI,EAAE,GAAG,CAAC,IAAI;6BACjB,EAAC;;;;KACL;IAMY,kCAAS,GAAtB,UAAuB,MAA6B;;;;;;wBAChD,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;6BACrB,MAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,EAAzC,wBAAyC;wBACzC,sBAAO;gCACH,MAAM,EAAE,KAAK;gCACb,GAAG,EAAE,KAAK;gCACV,GAAG,EAAE,IAAI;gCACT,KAAK,EAAE,MAAM;6BAChB,EAAA;;;4BAGG,MAAM,EAAE,KAAK;4BACb,GAAG,EAAE,KAAK;4BACV,GAAG,EAAE,KAAK;;wBACH,qBAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,EAAA;;wBAApD,QAAK,GAAE,SAA6C;wBAC3C,qBAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,OAAO,EAAG,MAAc,CAAC,OAAO,EAAE,CAAC,EAAA;4BAL3F,uBAKI,UAAO,GAAE,SAA8E;iCAC1F;;;;KAER;IApCD;QADC,uBAAM,EAAE;kCAC0B,qCAAgB;4DAAC;IAGpD;QADC,0BAAM,EAAE;;;;8CAUR;IAMD;QAJC,0BAAM,EAAE;QACR,uBAAG,CAAC,CAAE,kBAAO,CAAE,CAAC;;;;mDAqBhB;IACL,qBAAC;CAAA,AAxCD,IAwCC;AAxCY,wCAAc"}

View File

@@ -0,0 +1,46 @@
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SettingController = void 0;
var Creted_annotation_1 = require("@annotation/Creted.annotation");
/**
* 首页窗体
* @Render() 注解:
* 用在类的方法上,注意方法名 和 页面模板名称一致。
* 作用:表示使用该方法创建页面窗口,方法返回的数据需要是个对象,返回的数据会传给模板
* 用法:
* 1@Render()不传参数会根据方法名自动载入对应的jade页面文件来创建窗口
* 2@Render('PlayVideo')传入参数会根据传入的参数去寻找对应的jade页面来创建窗口
* 注意:传入参数后不仅会使用自定义页面,还会抛弃配置文件中的 StartPage 主窗窗口配置
*
* @Ipc() 注解:
* 用在类的方法上,接受一个未实例化的类作为参数
* 作用Ipc注解会自动运行这个类里面的所有方法请在方法中放置 ipcMain.on 代码!
*/
var SettingController = /** @class */ (function () {
function SettingController() {
}
SettingController.prototype.Setting = function () {
return {
title: '设置页面窗口-测试传给模板的数据',
desc: '介绍'
};
};
__decorate([
Creted_annotation_1.Render(),
__metadata("design:type", Function),
__metadata("design:paramtypes", []),
__metadata("design:returntype", void 0)
], SettingController.prototype, "Setting", null);
return SettingController;
}());
exports.SettingController = SettingController;
//# sourceMappingURL=Setting.controller.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Setting.controller.js","sourceRoot":"","sources":["../../../src/core/controller/Setting.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,mEAA4D;AAG5D;;;;;;;;;;;;;GAaG;AACH;IAAA;IAQA,CAAC;IANU,mCAAO,GAAd;QACI,OAAO;YACH,KAAK,EAAE,kBAAkB;YACzB,IAAI,EAAE,IAAI;SACb,CAAC;IACN,CAAC;IALD;QADC,0BAAM,EAAE;;;;oDAMR;IACL,wBAAC;CAAA,AARD,IAQC;AARY,8CAAiB"}

1
dist/core/interactive/.pydio vendored Normal file
View File

@@ -0,0 +1 @@
bfe99bde-0c9c-4cd0-af53-b0657c72ceb0

View File

@@ -0,0 +1,20 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ApplicationMenu = void 0;
var electron_1 = require("electron");
var Index_config_1 = __importDefault(require("@config/Index.config"));
var ApplicationMenu = /** @class */ (function () {
function ApplicationMenu() {
this.buildFromTemplate();
}
ApplicationMenu.prototype.buildFromTemplate = function () {
this.AppMenu = electron_1.Menu.buildFromTemplate(Index_config_1.default.TemplateMenu);
electron_1.Menu.setApplicationMenu(this.AppMenu);
};
return ApplicationMenu;
}());
exports.ApplicationMenu = ApplicationMenu;
//# sourceMappingURL=ApplicationMenu.interactive.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ApplicationMenu.interactive.js","sourceRoot":"","sources":["../../../src/core/interactive/ApplicationMenu.interactive.ts"],"names":[],"mappings":";;;;;;AAAA,qCAAgF;AAChF,sEAA0C;AAE1C;IAEI;QACI,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC7B,CAAC;IAED,2CAAiB,GAAjB;QACI,IAAI,CAAC,OAAO,GAAG,eAAI,CAAC,iBAAiB,CAAC,sBAAM,CAAC,YAAY,CAAC,CAAC;QAC3D,eAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IACL,sBAAC;AAAD,CAAC,AAVD,IAUC;AAVY,0CAAe"}

View File

@@ -0,0 +1,96 @@
"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 });
exports.Dialog = void 0;
var electron_1 = require("electron");
var Windows_model_1 = __importDefault(require("@model/Windows.model"));
var Dialog = /** @class */ (function () {
function Dialog() {
}
/**
* 错误弹窗
* @param title
* @param content
* @constructor
*/
Dialog.ErrorBox = function (title, content) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, electron_1.dialog.showErrorBox(title, content)];
case 1:
_a.sent();
return [2 /*return*/];
}
});
});
};
Dialog.showSaveDialog = function (title, message) {
return __awaiter(this, void 0, void 0, function () {
var SaveFile;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, electron_1.dialog.showOpenDialog(Windows_model_1.default.CurrentBrowserWindow, {
title: title,
message: message,
buttonLabel: '亲,点我确认选择!',
filters: [
{ name: 'All', extensions: ['*'] },
],
properties: [
'openDirectory',
'createDirectory'
]
})];
case 1:
SaveFile = _a.sent();
if (!SaveFile.canceled) {
return [2 /*return*/, SaveFile.filePaths];
}
return [2 /*return*/];
}
});
});
};
return Dialog;
}());
exports.Dialog = Dialog;
//# sourceMappingURL=Dialog.interactive.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Dialog.interactive.js","sourceRoot":"","sources":["../../../src/core/interactive/Dialog.interactive.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAgD;AAChD,uEAA0C;AAC1C;IAAA;IA8BA,CAAC;IA5BG;;;;;OAKG;IACiB,eAAQ,GAA5B,UAA6B,KAAa,EAAE,OAAe;;;;4BACvD,qBAAM,iBAAM,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,EAAA;;wBAAzC,SAAyC,CAAA;;;;;KAC5C;IAEmB,qBAAc,GAAlC,UAAmC,KAAa,EAAE,OAAe;;;;;4BAC9C,qBAAM,iBAAM,CAAC,cAAc,CAAC,uBAAO,CAAC,oBAAoB,EAAE;4BACrE,KAAK,EAAE,KAAK;4BACZ,OAAO,EAAE,OAAO;4BAChB,WAAW,EAAE,WAAW;4BACxB,OAAO,EAAE;gCACL,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE;6BACrC;4BACD,UAAU,EAAE;gCACR,eAAe;gCACf,iBAAiB;6BACpB;yBACJ,CAAC,EAAA;;wBAXE,QAAQ,GAAG,SAWb;wBAEF,IAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE;4BACnB,sBAAO,QAAQ,CAAC,SAAS,EAAA;yBAC5B;;;;;KACJ;IACL,aAAC;AAAD,CAAC,AA9BD,IA8BC;AA9BY,wBAAM"}

View File

@@ -0,0 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Notification = void 0;
class Notification {
}
exports.Notification = Notification;

View File

@@ -0,0 +1,2 @@
"use strict";
//# sourceMappingURL=ProgressBar.interactive.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"ProgressBar.interactive.js","sourceRoot":"","sources":["../../../src/core/interactive/ProgressBar.interactive.ts"],"names":[],"mappings":""}

View File

@@ -0,0 +1,18 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Touchbar = void 0;
var electron_1 = require("electron");
var Windows_model_1 = __importDefault(require("@/core/model/Windows.model"));
var Index_config_1 = __importDefault(require("@config/Index.config"));
var TouchBarLabel = electron_1.TouchBar.TouchBarLabel, TouchBarButton = electron_1.TouchBar.TouchBarButton, TouchBarSpacer = electron_1.TouchBar.TouchBarSpacer;
var Touchbar = /** @class */ (function () {
function Touchbar() {
Windows_model_1.default.CurrentBrowserWindow.setTouchBar(new electron_1.TouchBar(Index_config_1.default.TouchBarConfig));
}
return Touchbar;
}());
exports.Touchbar = Touchbar;
//# sourceMappingURL=Touchbar.interactive.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Touchbar.interactive.js","sourceRoot":"","sources":["../../../src/core/interactive/Touchbar.interactive.ts"],"names":[],"mappings":";;;;;;AAAA,qCAAuE;AACvE,6EAAiD;AACjD,sEAA0C;AAClC,IAAA,aAAa,GAAoC,mBAAQ,cAA5C,EAAE,cAAc,GAAoB,mBAAQ,eAA5B,EAAC,cAAc,GAAK,mBAAQ,eAAb,CAAc;AAElE;IACI;QACI,uBAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,mBAAQ,CAAC,sBAAM,CAAC,cAAc,CAAC,CAAC,CAAA;IACjF,CAAC;IACL,eAAC;AAAD,CAAC,AAJD,IAIC;AAJY,4BAAQ"}

View File

@@ -0,0 +1,40 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.TrayInteractive = void 0;
var electron_1 = require("electron");
var Index_config_1 = __importDefault(require("@config/Index.config"));
var TrayInteractive = /** @class */ (function () {
function TrayInteractive() {
this.tray = new electron_1.Tray(this.setTemplateImage());
this.buildTrayMenu();
this.TrayItemClick();
}
/**
* 全局菜单图标被点击时触发事件
* @constructor
*/
TrayInteractive.prototype.TrayItemClick = function () {
this.tray.on('click', function () {
console.log("按钮被点击");
});
};
TrayInteractive.prototype.buildTrayMenu = function () {
var contextMenu = electron_1.Menu.buildFromTemplate(Index_config_1.default.TrayConfig.TopMenuRightDropdown);
this.tray.setToolTip(Index_config_1.default.TrayConfig.TopMenuRightTips);
this.tray.setContextMenu(contextMenu);
};
/**
* 创建 NativeImage 图片图片会随着Mac系统主题的切换而自定变纯黑或纯白
*/
TrayInteractive.prototype.setTemplateImage = function () {
var image = electron_1.nativeImage.createFromPath(Index_config_1.default.TrayConfig.TopMenuRightImage);
image.setTemplateImage(true);
return image;
};
return TrayInteractive;
}());
exports.TrayInteractive = TrayInteractive;
//# sourceMappingURL=Tray.interactive.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"Tray.interactive.js","sourceRoot":"","sources":["../../../src/core/interactive/Tray.interactive.ts"],"names":[],"mappings":";;;;;;AAAA,qCAAgE;AAChE,sEAA0C;AAE1C;IAII;QACI,IAAI,CAAC,IAAI,GAAG,IAAI,eAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,aAAa,EAAE,CAAA;QACpB,IAAI,CAAC,aAAa,EAAE,CAAA;IACxB,CAAC;IAED;;;OAGG;IACK,uCAAa,GAArB;QACI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE;YAClB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC,CAAC,CAAA;IACN,CAAC;IAEO,uCAAa,GAArB;QACI,IAAI,WAAW,GAAS,eAAI,CAAC,iBAAiB,CAAC,sBAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;QACvF,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,sBAAM,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAA;QACxD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;IACzC,CAAC;IAED;;OAEG;IACK,0CAAgB,GAAxB;QACI,IAAI,KAAK,GAAgB,sBAAW,CAAC,cAAc,CAAC,sBAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QACzF,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAC5B,OAAO,KAAK,CAAA;IAChB,CAAC;IACL,sBAAC;AAAD,CAAC,AAlCD,IAkCC;AAlCY,0CAAe"}

View File

@@ -0,0 +1,2 @@
"use strict";
//# sourceMappingURL=dock.interactive.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"dock.interactive.js","sourceRoot":"","sources":["../../../src/core/interactive/dock.interactive.ts"],"names":[],"mappings":""}

1
dist/core/ipc/.pydio vendored Normal file
View File

@@ -0,0 +1 @@
91ca88f0-fda6-4103-956e-6247b54fda70

1
dist/core/ipc/Application.ipc.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"Application.ipc.js","sourceRoot":"","sources":["../../../src/core/ipc/Application.ipc.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAwC;AACxC,mEAAuC;AACvC,uEAA2C;AAC3C,sEAA0C;AAG1C;IAAA;IA6CA,CAAC;IA5CG;;;;;;;OAOG;IACH,mCAAa,GAAb;QAAA,iBA0BC;QAzBG,kBAAO,CAAC,EAAE,CAAC,YAAY,EAAE,UAAO,KAAK,EAAE,GAAQ;;;gBACvC,cAAc,GAAW,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACjD,WAAW,GAAW,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAC9C,IAAI,GAAY,GAAG,CAAC,IAAI,IAAI,EAAE,CAAA;gBAElC,uBAAuB;gBACvB,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;oBAC1C,CAAC,GAAG,OAAO,CAAC,mBAAiB,cAAc,QAAK,CAAC,CAAC;oBACtD,qBAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,qBAAK,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,CAAA;oBACjF,sBAAO,KAAK,EAAA;iBACf;gBAED,4BAA4B;gBAC5B,IAAI,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE;oBAC5C,6CAA6C;oBAC7C,MAAM,CAAC,MAAM,CAAC,sBAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,uBAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;oBAElF,CAAC,GAAG,OAAO,CAAC,mBAAiB,cAAc,QAAK,CAAC,CAAC;oBACtD,qBAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,qBAAK,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,CAAA;oBACjF,sBAAO,KAAK;wBAChB,mBAAmB;sBADH;oBAChB,mBAAmB;iBAClB;qBAAM;oBACH,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;iBAClC;;;aACJ,CAAC,CAAA;IACN,CAAC;IAED;;OAEG;IACH,kCAAY,GAAZ;QAAA,iBAIC;QAHG,kBAAO,CAAC,EAAE,CAAC,cAAc,EAAE,UAAO,KAAK,EAAE,GAAO;;;4BAC5C,qBAAM,gBAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAA;;wBAAjC,SAAiC,CAAA;;;;aACpC,CAAC,CAAC;IACP,CAAC;IACL,kBAAC;AAAD,CAAC,AA7CD,IA6CC;AA7CY,kCAAW"}

1
dist/core/ipc/Components.ipc.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"Components.ipc.js","sourceRoot":"","sources":["../../../src/core/ipc/Components.ipc.ts"],"names":[],"mappings":""}

16
dist/core/ipc/Test.ipc.js vendored Normal file
View File

@@ -0,0 +1,16 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TestIpc = void 0;
/**
* 仅供测试,可以删除!!
*/
class TestIpc {
demos() {
return 'demos';
}
demo2() {
return 'demos2';
}
}
exports.TestIpc = TestIpc;
//# sourceMappingURL=Test.ipc.js.map

1
dist/core/ipc/Test.ipc.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"Test.ipc.js","sourceRoot":"","sources":["../../../src/core/ipc/Test.ipc.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,OAAO;IAChB,KAAK;QACD,OAAO,OAAO,CAAA;IAClB,CAAC;IAED,KAAK;QACD,OAAO,QAAQ,CAAA;IACnB,CAAC;CACJ;AARD,0BAQC"}

107
dist/core/ipc/application.ipc.js vendored Normal file
View File

@@ -0,0 +1,107 @@
"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 });
exports.Application = void 0;
var electron_1 = require("electron");
var Index_utils_1 = __importDefault(require("@utils/Index.utils"));
var Windows_model_1 = __importDefault(require("@model/Windows.model"));
var Index_config_1 = __importDefault(require("@config/Index.config"));
var Application = /** @class */ (function () {
function Application() {
}
/**
* 创建非主窗体之外的窗体,
* 在js渲染进程中触发事件
* 1独立窗体
* 2依附在主窗体上的子窗体
* 3依附在独立窗体上的子窗体
* @constructor
*/
Application.prototype.CreatedWindow = function () {
var _this = this;
electron_1.ipcMain.on('openWindow', function (event, arg) { return __awaiter(_this, void 0, void 0, function () {
var ControllerName, MethodsName, data, a, a;
return __generator(this, function (_a) {
ControllerName = arg.action.split("/")[0], MethodsName = arg.action.split("/")[1], data = arg.data || {};
// parent false 创建单独的窗体
if (!arg.parent || !arg.hasOwnProperty("parent")) {
a = require("../controller/" + ControllerName + ".js");
Index_utils_1.default.startWindows(new a[Index_utils_1.default.toUpperCase(ControllerName)](), MethodsName, data);
return [2 /*return*/, false];
}
// parent true 创建默认依附主窗口的子窗口
if (arg.hasOwnProperty("parent") || arg.parent) {
// @ts-ignore 合并配置参数,注入 parent: 当前默认启动的父类窗口实例
Object.assign(Index_config_1.default.PageSize[MethodsName], { parent: Windows_model_1.default.CurrentBrowserWindow });
a = require("../controller/" + ControllerName + ".js");
Index_utils_1.default.startWindows(new a[Index_utils_1.default.toUpperCase(ControllerName)](), MethodsName, data);
return [2 /*return*/, false
// 创建默认依附在自定义窗口的子窗口
];
// 创建默认依附在自定义窗口的子窗口
}
else {
console.log("创建默认依附在自定义窗口的子窗口");
}
return [2 /*return*/];
});
}); });
};
/**
* 打开浏览器窗口
*/
Application.prototype.shellWindows = function () {
var _this = this;
electron_1.ipcMain.on("openExternal", function (event, arg) { return __awaiter(_this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, electron_1.shell.openExternal(arg.url)];
case 1:
_a.sent();
return [2 /*return*/];
}
});
}); });
};
return Application;
}());
exports.Application = Application;
//# sourceMappingURL=Application.ipc.js.map

2
dist/core/ipc/components.ipc.js vendored Normal file
View File

@@ -0,0 +1,2 @@
"use strict";
//# sourceMappingURL=Components.ipc.js.map

1
dist/core/ipc/module/.pydio vendored Normal file
View File

@@ -0,0 +1 @@
b6ff0c3a-03a6-4946-bc2f-6f4f75577ecc

84
dist/core/ipc/module/File.ipc.js vendored Normal file
View File

@@ -0,0 +1,84 @@
"use strict";
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
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 });
exports.FileIpc = void 0;
var electron_1 = require("electron");
var Dialog_interactive_1 = require("@interactive/Dialog.interactive");
var Ioc_annotation_1 = require("@annotation/Ioc.annotation");
var Http_net_1 = require("@net/Http.net");
var Index_utils_1 = __importDefault(require("@utils/Index.utils"));
var FileIpc = /** @class */ (function () {
function FileIpc() {
}
FileIpc.prototype.openFile = function () {
var _this = this;
electron_1.ipcMain.on('SaveFile', function (event, arg) { return __awaiter(_this, void 0, void 0, function () {
var SaveFilePath;
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, Dialog_interactive_1.Dialog.showSaveDialog("选择路径", "选择下载路径")];
case 1:
SaveFilePath = _a.sent();
if (SaveFilePath != undefined) {
Index_utils_1.default.DownFile(arg.url, SaveFilePath);
}
return [2 /*return*/];
}
});
}); });
};
__decorate([
Ioc_annotation_1.Inject(),
__metadata("design:type", Http_net_1.Http)
], FileIpc.prototype, "_Net", void 0);
return FileIpc;
}());
exports.FileIpc = FileIpc;
//# sourceMappingURL=File.ipc.js.map

1
dist/core/ipc/module/File.ipc.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"File.ipc.js","sourceRoot":"","sources":["../../../../src/core/ipc/module/File.ipc.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAAmC;AACnC,sEAAyD;AACzD,6DAA+D;AAC/D,0CAAqC;AACrC,mEAAuC;AAEvC;IAAA;IAaA,CAAC;IARG,0BAAQ,GAAR;QAAA,iBAOC;QANG,kBAAO,CAAC,EAAE,CAAC,UAAU,EAAE,UAAO,KAAK,EAAE,GAAG;;;;4BACjB,qBAAM,2BAAM,CAAC,cAAc,CAAC,MAAM,EAAC,QAAQ,CAAC,EAAA;;wBAA3D,YAAY,GAAG,SAA4C;wBAC/D,IAAI,YAAY,IAAI,SAAS,EAAE;4BAC3B,qBAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAC,YAAY,CAAC,CAAA;yBACvC;;;;aACJ,CAAC,CAAA;IACN,CAAC;IATD;QADC,uBAAM,EAAE;kCACe,eAAI;yCAAC;IAUjC,cAAC;CAAA,AAbD,IAaC;AAbY,0BAAO"}

18
dist/core/ipc/module/Home.ipc.js vendored Normal file
View File

@@ -0,0 +1,18 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.HomeIpc = void 0;
const electron_1 = require("electron");
class HomeIpc {
openFile() {
electron_1.ipcMain.on('openFile', async (event, arg) => {
console.log("测试openFile");
});
}
TestIpc() {
electron_1.ipcMain.on('openFile', async (event, arg) => {
console.log("TestIpc");
});
}
}
exports.HomeIpc = HomeIpc;
//# sourceMappingURL=Home.ipc.js.map

1
dist/core/ipc/module/Home.ipc.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"Home.ipc.js","sourceRoot":"","sources":["../../../../src/core/ipc/module/Home.ipc.ts"],"names":[],"mappings":";;;AAAA,uCAAmC;AAEnC,MAAa,OAAO;IAChB,QAAQ;QACJ,kBAAO,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACxC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QAC7B,CAAC,CAAC,CAAA;IACN,CAAC;IAED,OAAO;QACH,kBAAO,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACxC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;QAC1B,CAAC,CAAC,CAAA;IACN,CAAC;CACJ;AAZD,0BAYC"}

13
dist/core/ipc/module/openBrowser.ipc.js vendored Normal file
View File

@@ -0,0 +1,13 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.openBrowserIpc = void 0;
const electron_1 = require("electron");
class openBrowserIpc {
openDefaultBrowser() {
electron_1.ipcMain.on('openBrowser', async (event, arg) => {
electron_1.shell.openExternal(arg.url);
});
}
}
exports.openBrowserIpc = openBrowserIpc;
//# sourceMappingURL=openBrowser.ipc.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"openBrowser.ipc.js","sourceRoot":"","sources":["../../../../src/core/ipc/module/openBrowser.ipc.ts"],"names":[],"mappings":";;;AAAA,uCAA0C;AAE1C,MAAa,cAAc;IACvB,kBAAkB;QACd,kBAAO,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC3C,gBAAK,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC/B,CAAC,CAAC,CAAA;IACN,CAAC;CACJ;AAND,wCAMC"}

2
dist/core/ipc/module/openBrowser.js vendored Normal file
View File

@@ -0,0 +1,2 @@
"use strict";
//# sourceMappingURL=openBrowser.js.map

View File

@@ -0,0 +1 @@
{"version":3,"file":"openBrowser.js","sourceRoot":"","sources":["../../../../src/core/ipc/module/openBrowser.ts"],"names":[],"mappings":""}

1
dist/core/model/.pydio vendored Normal file
View File

@@ -0,0 +1 @@
94e8d3d3-68ff-41a3-93a5-e54339a2878a

27
dist/core/model/Ioc.model.js vendored Normal file
View File

@@ -0,0 +1,27 @@
"use strict";
var __spreadArrays = (this && this.__spreadArrays) || function () {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++)
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
r[k] = a[j];
return r;
};
Object.defineProperty(exports, "__esModule", { value: true });
var IocModel = /** @class */ (function () {
function IocModel() {
this._classPool = [];
}
Object.defineProperty(IocModel.prototype, "classPool", {
get: function () {
return this._classPool;
},
set: function (value) {
this._classPool = __spreadArrays(value, this._classPool);
},
enumerable: false,
configurable: true
});
return IocModel;
}());
exports.default = new IocModel();
//# sourceMappingURL=Ioc.model.js.map

1
dist/core/model/Ioc.model.js.map vendored Normal file
View File

@@ -0,0 +1 @@
{"version":3,"file":"Ioc.model.js","sourceRoot":"","sources":["../../../src/core/model/Ioc.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA;IAAA;QACY,eAAU,GAAyC,EAAE,CAAC;IASlE,CAAC;IAPG,sBAAI,+BAAS;aAAb;YACI,OAAO,IAAI,CAAC,UAAU,CAAC;QAC3B,CAAC;aAED,UAAc,KAAyC;YACnD,IAAI,CAAC,UAAU,kBAAO,KAAK,EAAK,IAAI,CAAC,UAAU,CAAC,CAAA;QACpD,CAAC;;;OAJA;IAKL,eAAC;AAAD,CAAC,AAVD,IAUC;AAED,kBAAe,IAAI,QAAQ,EAAE,CAAC"}

1
dist/core/model/Ipc.js vendored Normal file
View File

@@ -0,0 +1 @@
"use strict";

14
dist/core/model/Ipc.model.js vendored Normal file
View File

@@ -0,0 +1,14 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
class IpcModel {
constructor() {
this._saveIpcFunction = {};
}
get saveIpcFunction() {
return this._saveIpcFunction;
}
set saveIpcFunction(value) {
this._saveIpcFunction = value;
}
}
exports.default = new IpcModel();

71
dist/core/model/Windows.model.js vendored Normal file
View File

@@ -0,0 +1,71 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Windows = /** @class */ (function () {
function Windows() {
}
Object.defineProperty(Windows.prototype, "CurrentWindowNew", {
get: function () {
return this._CurrentWindowNew;
},
set: function (value) {
this._CurrentWindowNew = value;
},
enumerable: false,
configurable: true
});
Object.defineProperty(Windows.prototype, "CurrentBrowserWindow", {
get: function () {
return this._CurrentBrowserWindow;
},
set: function (value) {
this._CurrentBrowserWindow = value;
},
enumerable: false,
configurable: true
});
Object.defineProperty(Windows.prototype, "HomeBrowserWindow", {
get: function () {
return this._HomeBrowserWindow;
},
set: function (value) {
this.CurrentBrowserWindow = value;
this._HomeBrowserWindow = value;
},
enumerable: false,
configurable: true
});
Object.defineProperty(Windows.prototype, "SettingBrowserWindow", {
get: function () {
return this._SettingBrowserWindow;
},
set: function (value) {
this.CurrentBrowserWindow = value;
this._SettingBrowserWindow = value;
},
enumerable: false,
configurable: true
});
Object.defineProperty(Windows.prototype, "HomeBrowserWindowWebContents", {
get: function () {
return this._HomeBrowserWindowWebContents;
},
set: function (value) {
this._HomeBrowserWindowWebContents = value;
},
enumerable: false,
configurable: true
});
Object.defineProperty(Windows.prototype, "SettingBrowserWindowWebContents", {
get: function () {
return this._SettingBrowserWindowWebContents;
},
set: function (value) {
this._SettingBrowserWindowWebContents = value;
},
enumerable: false,
configurable: true
});
return Windows;
}());
exports.default = new Windows();
//# sourceMappingURL=Windows.model.js.map

Some files were not shown because too many files have changed in this diff Show More