Merge branch 'pro' into wfs-msg-top

# Conflicts:
#	resources/assets/js/pages/manage/components/DialogWrapper.vue
#	resources/assets/sass/components/user-select.scss
#	resources/assets/sass/pages/components/dialog-wrapper.scss
This commit is contained in:
weifashi 2023-12-26 16:29:08 +08:00
commit da131746be
162 changed files with 3432 additions and 1395 deletions

View File

@ -2,6 +2,72 @@
All notable changes to this project will be documented in this file.
## [0.33.58]
### Bug Fixes
- 修复已知问题
### Performance
- 优化会话列表
## [0.33.54]
### Bug Fixes
- 撤回消息不删除消息的情况
### Performance
- 优化录音load效果
- 优化消息列表
- 优化应用图标
- 升级okr容器
- 优化用户选择器
- 优化对话列表接口数据
- 优化未读消息提示动画
- 优化消息更新机制
- 优化缓存
- 优化用户选择器
## [0.33.41]
### Bug Fixes
- 更新导致的小问题
- 更新导致的小问题
- 版本验证有问题,先干掉
### Performance
- 优化任务修改
## [0.33.34]
### Bug Fixes
- Android 无法回删输入框内的@(mention)内容
- Android 长按重复事件
- 合并修复
### Performance
- 优化发送消息时闪现2条一样的情况
- 优化消息首页加载效果
- 优化Android长按事件
- 优化输入框自动高度
- 点击消息页面会发生跳动的问题
- 优化待办列表
- 调整任务过多提示范围
- 优化消息阅读规则
- Okr版本升级
- 1.数据库迁移文件修复 2.转发样式优化
- 兼容okr1.1版本
- 兼容okr1.1版本
- 整体数据库索引和字段类型优化
- 项目列表数据库查询优化
## [0.32.65]
### Bug Fixes
@ -41,6 +107,7 @@ All notable changes to this project will be documented in this file.
- 优化清除缓存数据
- 优化阅读消息列表机制
- 优化项目页面任务加载速度
- 代码优化
## [0.32.35]
@ -48,15 +115,41 @@ All notable changes to this project will be documented in this file.
- 修复重复SSE请求的问题
- 部分pad设备横版和竖屏反过来
- 用户选择组件,单选时不需要显示项目
- 文件主题修复
- 修复客户端版本更新按钮的显示问题
- 标注取值bug修复
- 项目权限 - 100%
- 修复安装项目报错
### Features
- 新增以下为新消息提示
- Okr结果分析 - 部门负责人也可以看
- Okr1.1 兼容开发
- 未读消息优化
- 翻译
- 添加投票功能 - 100%
- 样式调优
- 添加投票功能 30%
- 接龙功能 - 100%
- 添加接龙
- 1.任务移动功能优化2.导航样式优化
- 新增压缩下载完成后系统机器人提醒
- 添加一个 @我的 消息标签
- 转发消息 - 添加单选模式
- 转发消息 - 添加来源显示
- 翻译
- 首页改版 - 100%
- 新增项目任务创建权限功能 - 90%
- 更换calendar
- 首页改版
### Performance
- 优化消息阅读逻辑
- 微应用优化
- 微应用优化
- 优化未读消息机制
- 优化重连时消息列表跳回第一页的情况
- 优化未读消息机制
@ -67,10 +160,24 @@ All notable changes to this project will be documented in this file.
- 优化通过消息设置待办功能
- 优化扫一扫登录功能
- 优化头像
- 兼容okr1.1版本
- 兼容okr1.1版本
- 兼容okr1.1版本
- 接龙和投票的样式优化
- 逻辑强化
- 未读消息优化
- 搜索消息时按esc取消搜索
- 接龙优化
- 接龙优化
- 移动设备优化消息输入框菜单
- 优化消息输入框@所有人暗黑样式
- 优化@人名换行的情况
- 样式优化
- 优化导出任务统计
- 样式调优
- 客户端下载按钮,仪表盘不显示
- 未读消息优化
- 细节优化
## [0.32.17]
@ -81,6 +188,10 @@ All notable changes to this project will be documented in this file.
- 修复打包下载问题
- 修复统一打包下载命名
### Features
- 添加项目权限功能 - 30%
### Performance
- 审批版本更新

View File

@ -52,13 +52,41 @@ class DialogController extends AbstractController
//
$timerange = TimeRange::parse(Request::input());
//
$data = (new WebSocketDialog)->getDialogList($user->userid, $timerange->updated, $timerange->deleted);
$data = WebSocketDialog::getDialogList($user->userid, $timerange->updated, $timerange->deleted);
//
return Base::retSuccess('success', $data);
}
/**
* @api {get} api/dialog/search 02. 搜索会话
* @api {get} api/dialog/unread 02. 未读对话列表
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
* @apiGroup dialog
* @apiName lists
*
* @apiParam {String} before_at 在这个时间之前未读的数据
*
* @apiSuccess {Number} ret 返回状态码1正确、0错误
* @apiSuccess {String} msg 返回信息(错误描述)
* @apiSuccess {Object} data 返回数据
*/
public function unread()
{
$user = User::auth();
//
$beforeAt = Request::input('before_at');
if (empty($beforeAt)) {
return Base::retError('参数错误');
}
//
$data = WebSocketDialog::getDialogUnread($user->userid, Carbon::parse($beforeAt));
//
return Base::retSuccess('success', $data);
}
/**
* @api {get} api/dialog/search 03. 搜索会话
*
* @apiDescription 根据消息关键词搜索相关会话需要token身份
* @apiVersion 1.0.0
@ -135,7 +163,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/search/tag 02. 搜索标注会话
* @api {get} api/dialog/search/tag 04. 搜索标注会话
*
* @apiDescription 根据消息关键词搜索相关会话需要token身份
* @apiVersion 1.0.0
@ -166,7 +194,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/one 03. 获取单个会话信息
* @api {get} api/dialog/one 05. 获取单个会话信息
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -191,13 +219,14 @@ class DialogController extends AbstractController
->where('u.userid', $user->userid)
->first();
if (empty($item)) {
WebSocketDialogMsgRead::forceRead($dialog_id, $user->userid);
return Base::retError('会话不存在或已被删除', ['dialog_id' => $dialog_id], -4003);
}
return Base::retSuccess('success', $item->formatData($user->userid));
}
/**
* @api {get} api/dialog/user 04. 获取会话成员
* @api {get} api/dialog/user 06. 获取会话成员
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -242,14 +271,14 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/todo 05. 获取会话待办
* @api {get} api/dialog/todo 07. 获取会话待办
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
* @apiGroup dialog
* @apiName todo
*
* @apiParam {Number} dialog_id 会话ID
* @apiParam {Number} [dialog_id] 会话ID
*
* @apiSuccess {Number} ret 返回状态码1正确、0错误
* @apiSuccess {String} msg 返回信息(错误描述)
@ -261,14 +290,18 @@ class DialogController extends AbstractController
//
$dialog_id = intval(Request::input('dialog_id'));
//
WebSocketDialog::checkDialog($dialog_id);
$builder = WebSocketDialogMsgTodo::whereUserid($user->userid)->whereDoneAt(null);
if ($dialog_id > 0) {
WebSocketDialog::checkDialog($dialog_id);
$builder->whereDialogId($dialog_id);
}
//
$list = WebSocketDialogMsgTodo::whereDialogId($dialog_id)->whereUserid($user->userid)->whereDoneAt(null)->orderByDesc('id')->take(50)->get();
$list = $builder->orderByDesc('id')->take(50)->get();
return Base::retSuccess("success", $list);
}
/**
* @api {get} api/dialog/top 06. 会话置顶
* @api {get} api/dialog/top 08. 会话置顶
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -298,7 +331,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/tel 07. 获取对方联系电话
* @api {get} api/dialog/tel 09. 获取对方联系电话
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -348,7 +381,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/open/user 08. 打开会话
* @api {get} api/dialog/open/user 10. 打开会话
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -379,7 +412,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/list 09. 获取消息列表
* @api {get} api/dialog/msg/list 11. 获取消息列表
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -515,7 +548,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/search 10. 搜索消息位置
* @api {get} api/dialog/msg/search 12. 搜索消息位置
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -552,7 +585,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/one 11. 获取单条消息
* @api {get} api/dialog/msg/one 13. 获取单条消息
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -581,7 +614,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/read 12. 已读聊天消息
* @api {get} api/dialog/msg/read 14. 已读聊天消息
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -632,7 +665,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/unread 13. 获取未读消息数据
* @api {get} api/dialog/msg/unread 15. 获取未读消息数据
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -673,7 +706,7 @@ class DialogController extends AbstractController
}
/**
* @api {post} api/dialog/msg/stream 14. 通知成员监听消息
* @api {post} api/dialog/msg/stream 16. 通知成员监听消息
*
* @apiDescription 通知指定会员EventSource监听流动消息
* @apiVersion 1.0.0
@ -712,7 +745,7 @@ class DialogController extends AbstractController
}
/**
* @api {post} api/dialog/msg/sendtext 15. 发送消息
* @api {post} api/dialog/msg/sendtext 17. 发送消息
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -824,7 +857,7 @@ class DialogController extends AbstractController
}
/**
* @api {post} api/dialog/msg/sendrecord 16. 发送语音
* @api {post} api/dialog/msg/sendrecord 18. 发送语音
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -871,7 +904,7 @@ class DialogController extends AbstractController
}
/**
* @api {post} api/dialog/msg/sendfile 17. 文件上传
* @api {post} api/dialog/msg/sendfile 19. 文件上传
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -902,7 +935,7 @@ class DialogController extends AbstractController
}
/**
* @api {post} api/dialog/msg/sendfiles 18. 群发文件上传
* @api {post} api/dialog/msg/sendfiles 20. 群发文件上传
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -957,7 +990,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/sendfileid 19. 通过文件ID发送文件
* @api {get} api/dialog/msg/sendfileid 21. 通过文件ID发送文件
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -1027,7 +1060,7 @@ class DialogController extends AbstractController
}
/**
* @api {post} api/dialog/msg/sendanon 20. 发送匿名消息
* @api {post} api/dialog/msg/sendanon 22. 发送匿名消息
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -1080,7 +1113,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/readlist 21. 获取消息阅读情况
* @api {get} api/dialog/msg/readlist 23. 获取消息阅读情况
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -1109,7 +1142,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/detail 22. 消息详情
* @api {get} api/dialog/msg/detail 24. 消息详情
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -1157,7 +1190,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/download 23. 文件下载
* @api {get} api/dialog/msg/download 25. 文件下载
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -1198,7 +1231,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/withdraw 24. 聊天消息撤回
* @api {get} api/dialog/msg/withdraw 26. 聊天消息撤回
*
* @apiDescription 消息撤回限制24小时内需要token身份
* @apiVersion 1.0.0
@ -1224,7 +1257,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/mark 25. 消息标记操作
* @api {get} api/dialog/msg/mark 27. 消息标记操作
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -1291,7 +1324,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/silence 26. 消息免打扰
* @api {get} api/dialog/msg/silence 28. 消息免打扰
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -1354,7 +1387,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/forward 27. 转发消息给
* @api {get} api/dialog/msg/forward 29. 转发消息给
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -1395,7 +1428,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/emoji 28. emoji回复
* @api {get} api/dialog/msg/emoji 30. emoji回复
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -1430,7 +1463,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/tag 29. 标注/取消标注
* @api {get} api/dialog/msg/tag 31. 标注/取消标注
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -1459,7 +1492,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/todo 30. 设待办/取消待办
* @api {get} api/dialog/msg/todo 32. 设待办/取消待办
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -1502,7 +1535,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/todolist 31. 获取消息待办情况
* @api {get} api/dialog/msg/todolist 33. 获取消息待办情况
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -1532,7 +1565,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/done 32. 完成待办
* @api {get} api/dialog/msg/done 34. 完成待办
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -1579,7 +1612,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/color 33. 设置颜色
* @api {get} api/dialog/msg/color 35. 设置颜色
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -1620,7 +1653,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/group/add 34. 新增群组
* @api {get} api/dialog/group/add 36. 新增群组
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -1682,7 +1715,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/group/edit 35. 修改群组
* @api {get} api/dialog/group/edit 37. 修改群组
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -1709,6 +1742,7 @@ class DialogController extends AbstractController
$user->checkAdmin();
$dialog = WebSocketDialog::find($dialog_id);
if (empty($dialog)) {
WebSocketDialogMsgRead::forceRead($dialog_id, $user->userid);
return Base::retError('对话不存在或已被删除', ['dialog_id' => $dialog_id], -4003);
}
} else {
@ -1743,7 +1777,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/group/adduser 36. 添加群成员
* @api {get} api/dialog/group/adduser 38. 添加群成员
*
* @apiDescription 需要token身份
* - 有群主时:只有群主可以邀请
@ -1779,7 +1813,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/group/deluser 37. 移出(退出)群成员
* @api {get} api/dialog/group/deluser 39. 移出(退出)群成员
*
* @apiDescription 需要token身份
* - 只有群主、邀请人可以踢人
@ -1823,7 +1857,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/group/transfer 38. 转让群组
* @api {get} api/dialog/group/transfer 40. 转让群组
*
* @apiDescription 需要token身份
* - 只有群主且是个人类型群可以解散
@ -1833,6 +1867,8 @@ class DialogController extends AbstractController
*
* @apiParam {Number} dialog_id 会话ID
* @apiParam {Number} userid 新的群主
* @apiParam {String} check_owner 转让验证 yes-需要验证 no-不需要验证
* @apiParam {String} key 密钥APP_KEY
*
* @apiSuccess {Number} ret 返回状态码1正确、0错误
* @apiSuccess {String} msg 返回信息(错误描述)
@ -1840,21 +1876,24 @@ class DialogController extends AbstractController
*/
public function group__transfer()
{
$user = User::auth();
if (!Base::is_internal_ip(Base::getIp()) || Request::input("key") !== env('APP_KEY')) {
$user = User::auth();
}
//
$dialog_id = intval(Request::input('dialog_id'));
$userid = intval(Request::input('userid'));
$check_owner = trim(Request::input('check_owner', 'yes')) === 'yes';
//
if ($userid === $user->userid) {
if ($check_owner && $userid === $user?->userid) {
return Base::retError('你已经是群主');
}
if (!User::whereUserid($userid)->exists()) {
return Base::retError('请选择有效的新群主');
}
//
$dialog = WebSocketDialog::checkDialog($dialog_id, true);
$dialog = WebSocketDialog::checkDialog($dialog_id, $check_owner);
//
$dialog->checkGroup('user');
$dialog->checkGroup($check_owner ? 'user' : null);
$dialog->owner_id = $userid;
if ($dialog->save()) {
$dialog->joinGroup($userid, 0);
@ -1867,7 +1906,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/group/disband 39. 解散群组
* @api {get} api/dialog/group/disband 41. 解散群组
*
* @apiDescription 需要token身份
* - 只有群主且是个人类型群可以解散
@ -1895,7 +1934,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/group/searchuser 40. 搜索个人群(仅限管理员)
* @api {get} api/dialog/group/searchuser 42. 搜索个人群(仅限管理员)
*
* @apiDescription 需要token身份用于创建部门搜索个人群组
* @apiVersion 1.0.0
@ -1924,7 +1963,7 @@ class DialogController extends AbstractController
}
/**
* @api {post} api/dialog/okr/add 41. 创建OKR评论会话
* @api {post} api/dialog/okr/add 43. 创建OKR评论会话
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -1963,7 +2002,7 @@ class DialogController extends AbstractController
}
/**
* @api {post} api/dialog/okr/push 42. 推送OKR相关信息
* @api {post} api/dialog/okr/push 44. 推送OKR相关信息
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -1980,7 +2019,7 @@ class DialogController extends AbstractController
*/
public function okr__push()
{
if (Request::input("key") !== env('APP_KEY')) {
if (!Base::is_internal_ip(Base::getIp()) || Request::input("key") !== env('APP_KEY')) {
User::auth();
}
$text = trim(Request::input('text'));
@ -1999,7 +2038,7 @@ class DialogController extends AbstractController
}
/**
* @api {post} api/dialog/msg/wordchain 44. 发送接龙消息
* @api {post} api/dialog/msg/wordchain 45. 发送接龙消息
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -2062,7 +2101,7 @@ class DialogController extends AbstractController
}
/**
* @api {post} api/dialog/msg/vote 45. 发起投票
* @api {post} api/dialog/msg/vote 46. 发起投票
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -2173,7 +2212,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/top 46. 置顶/取消置顶
* @api {get} api/dialog/msg/top 47. 置顶/取消置顶
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -2202,7 +2241,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/toplist 47. 获取置顶列表
* @api {get} api/dialog/toplist 48. 获取置顶列表
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0

View File

@ -480,8 +480,6 @@ class FileController extends AbstractController
$only_update_at = Request::input('only_update_at', 'no');
$history_id = intval(Request::input('history_id'));
//
Base::checkClientVersion('0.31.75');
//
if (Base::isNumber($id)) {
$user = User::auth();
$file = File::permissionFind(intval($id), $user, $down == 'yes' ? 1 : 0);

View File

@ -2483,7 +2483,7 @@ class ProjectController extends AbstractController
}
/**
* @api {get} api/project/permission 43. 获取项目权限设置
* @api {get} api/project/permission 44. 获取项目权限设置
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@ -2509,7 +2509,7 @@ class ProjectController extends AbstractController
}
/**
* @api {get} api/project/permission/update 44. 项目权限设置
* @api {get} api/project/permission/update 45. 项目权限设置
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0

View File

@ -1971,7 +1971,7 @@ class UsersController extends AbstractController
'name' => Doo::translate('文件'),
];
}
$dialogList = (new WebSocketDialog)->getDialogList($user->userid);
$dialogList = WebSocketDialog::getDialogList($user->userid);
foreach ($dialogList['data'] as $dialog) {
if ($dialog['avatar']) {
$avatar = url($dialog['avatar']);

View File

@ -10,6 +10,7 @@ use Cache;
use Carbon\Carbon;
use Hhxsv5\LaravelS\Swoole\Task\Task;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Facades\DB;
/**
* App\Models\WebSocketDialog
@ -76,7 +77,7 @@ class WebSocketDialog extends AbstractModel
* @param $deleted
* @return array
*/
public function getDialogList($userid, $updated = "", $deleted = "")
public static function getDialogList($userid, $updated = "", $deleted = "")
{
$builder = WebSocketDialog::select(['web_socket_dialogs.*', 'u.top_at', 'u.mark_unread', 'u.silence', 'u.color', 'u.updated_at as user_at'])
->join('web_socket_dialog_users as u', 'web_socket_dialogs.id', '=', 'u.dialog_id')
@ -99,6 +100,34 @@ class WebSocketDialog extends AbstractModel
return $data;
}
/**
* 获取未读对话列表
* @param $userid
* @param $beforeAt
* @param $take
* @return WebSocketDialog[]
*/
public static function getDialogUnread($userid, $beforeAt, $take = 20)
{
DB::statement("SET SQL_MODE=''");
$list = WebSocketDialog::select(['web_socket_dialogs.*', 'u.top_at', 'u.mark_unread', 'u.silence', 'u.color', 'u.updated_at as user_at'])
->join('web_socket_dialog_users as u', 'web_socket_dialogs.id', '=', 'u.dialog_id')
->join('web_socket_dialog_msg_reads as r', 'web_socket_dialogs.id', '=', 'r.dialog_id')
->where('r.userid', $userid)
->where('r.silence', 0)
->where('r.read_at')
->where('web_socket_dialogs.last_at', '>', $beforeAt)
->groupBy('web_socket_dialogs.id')
->take(min(100, $take))
->get();
$list->transform(function (WebSocketDialog $item) use ($userid) {
return $item->formatData($userid);
});
//
return $list;
}
/**
* 格式化对话
* @param int $userid 会员ID
@ -192,10 +221,26 @@ class WebSocketDialog extends AbstractModel
if ($hasData === true) {
$msgBuilder = WebSocketDialogMsg::whereDialogId($this->id);
$this->has_tag = $msgBuilder->clone()->where('tag', '>', 0)->exists();
$this->has_todo = $msgBuilder->clone()->where('todo', '>', 0)->exists();
$this->has_image = $msgBuilder->clone()->whereMtype('image')->exists();
$this->has_file = $msgBuilder->clone()->whereMtype('file')->exists();
$this->has_link = $msgBuilder->clone()->whereLink(1)->exists();
$this->has_todo = $msgBuilder->clone()->where('todo', '>', 0)->exists();
Cache::forever("Dialog::tag:" . $this->id, Base::array2json([
'has_tag' => $this->has_tag,
'has_todo' => $this->has_todo,
'has_image' => $this->has_image,
'has_file' => $this->has_file,
'has_link' => $this->has_link,
]));
} else {
$tagData = Base::json2array(Cache::get("Dialog::tag:" . $this->id));
if ($tagData) {
$this->has_tag = !!$tagData['has_tag'];
$this->has_todo = !!$tagData['has_todo'];
$this->has_image = !!$tagData['has_image'];
$this->has_file = !!$tagData['has_file'];
$this->has_link = !!$tagData['has_link'];
}
}
return $this;
}
@ -504,6 +549,7 @@ class WebSocketDialog extends AbstractModel
return $dialog;
}
if (!WebSocketDialogUser::whereDialogId($dialog->id)->whereUserid($userid)->exists()) {
WebSocketDialogMsgRead::forceRead($dialog_id, $userid);
throw new ApiException('不在成员列表内', ['dialog_id' => $dialog_id], -4003);
}
return $dialog;

View File

@ -396,6 +396,7 @@ class WebSocketDialogMsg extends AbstractModel
'id' => $this->id,
'top' => $this->top,
'top_at' => $this->top_at,
'dialog_id' => $this->dialog_id
];
//
$data = [
@ -410,9 +411,22 @@ class WebSocketDialogMsg extends AbstractModel
]
], $sender);
if (Base::isSuccess($res)) {
$data['add'] = $res['data'];
$dialog = WebSocketDialog::find($this->dialog_id);
$resData['tops'] = WebSocketDialogMsg::whereDialogId($dialog->id)->whereNotNull('top_at')->orderByDesc('top_at')->take(50)->get();
if ($this->top) {
$oldTops = self::whereDialogId($this->dialog_id)->where('id', '!=', $this->id)->where('top', '>', 0)->get();
foreach($oldTops as $oldTop){
$oldTop->top = 0;
$oldTop->top_at = null;
$oldTop->save();
$dialog->pushMsg('update', [
'id' => $oldTop->id,
'top' => $oldTop->top,
'top_at' => $oldTop->top_at,
]);
}
}
$data['add'] = $res['data'];
$resData['tops'] = self::whereDialogId($dialog->id)->whereNotNull('top_at')->orderByDesc('top_at')->take(50)->get();
$dialog->pushMsg('update', $resData);
} else {
$this->top = $before;

View File

@ -47,6 +47,20 @@ class WebSocketDialogMsgRead extends AbstractModel
return $this->hasOne(WebSocketDialogMsg::class, 'id', 'msg_id');
}
/**
* 强制标记成阅读
* @param $dialogId
* @param $userId
* @return void
*/
public static function forceRead($dialogId, $userId)
{
self::whereDialogId($dialogId)
->whereUserid($userId)
->whereNull('read_at')
->update(['read_at' => Carbon::now()]);
}
/**
* 仅标记成阅读
* @param $list

View File

@ -177,7 +177,7 @@ services:
okr:
container_name: "dootask-okr-${APP_ID}"
image: "kuaifan/doookr:0.0.23"
image: "kuaifan/doookr:0.0.25"
environment:
TZ: "${TIMEZONE:-PRC}"
DOO_TASK_URL: "http://${APP_IPPR}.3"

14
electron/build.js vendored
View File

@ -262,8 +262,8 @@ function startBuild(data) {
econfig.build.nsis.artifactName = appName + "-v${version}-${os}-${arch}.${ext}";
// changelog
econfig.build.releaseInfo.releaseNotes = changeLog()
if (release) {
econfig.build.releaseInfo.releaseNotes = econfig.build.releaseInfo.releaseNotes.replace(`## [${config.version}]`, `## [${config.version}-Release]`)
if (!release) {
econfig.build.releaseInfo.releaseNotes = econfig.build.releaseInfo.releaseNotes.replace(`## [${config.version}]`, `## [${config.version}-Silence]`)
}
// darwin notarize
if (notarize && APPLEID && APPLEIDPASS) {
@ -323,7 +323,7 @@ if (["dev"].includes(argv[2])) {
configure: {
platform: '',
publish: false,
release: false,
release: true,
notarize: false,
}
}, false, false)
@ -334,7 +334,7 @@ if (["dev"].includes(argv[2])) {
data.configure = {
platform,
publish: true,
release: false,
release: true,
notarize: false,
}
startBuild(data)
@ -375,11 +375,11 @@ if (["dev"].includes(argv[2])) {
name: 'release',
message: "选择是否弹出升级提示框",
choices: [{
name: "No",
value: false
}, {
name: "Yes",
value: true
}, {
name: "No",
value: false
}]
},
{

2
electron/package.json Normal file → Executable file
View File

@ -32,7 +32,7 @@
"@electron-forge/maker-squirrel": "^7.2.0",
"@electron-forge/maker-zip": "^7.2.0",
"dotenv": "^16.3.1",
"electron": "^28.0.0",
"electron": "^28.1.0",
"electron-builder": "^24.9.1",
"electron-notarize": "^1.2.2",
"form-data": "^4.0.0",

View File

@ -1363,7 +1363,8 @@ AI机器人
我是文心一言英文名是ERNIE Bot。我能够与人对话互动回答问题协助创作高效便捷地帮助人们获取信息、知识和灵感。
我是达摩院自主研发的超大规模语言模型,能够回答问题、创作文字,还能表达观点、撰写代码。
机器人暂未开启
创建一个全新的会议视频会议,与会者可以在实时中进行面对面的视听交流。通过视频会议平台,参与者可以分享屏幕、共享文档,并与其他与会人员进行讨论和协。
创建一个全新的会议视频会议,与会者可以在实时中进行面对面的视听交流。
通过视频会议平台,参与者可以分享屏幕、共享文档,并与其他与会人员进行讨论和协。
加入视频会议,参与已经创建的会议,在会议过程中与其他参会人员进行远程实时视听交流和协作。
新会议
新建会议
@ -1480,3 +1481,15 @@ APP推送
已发送
选择群组发起投票
以下为新消息
@我
签到打卡
在线会议
群接龙
群投票
LDAP
License Key
你确定要打包下载【(*)】文件夹吗?
正在打包,请留意系统消息
发起,参与接龙目前共(*)人

View File

@ -18632,5 +18632,830 @@
"de": "Ist die nachricht eingeschaltet, wird der knopf Senden über der tastatur durch zeilenwechsel ersetzt",
"fr": "Une fois activé, le bouton envoyer sur le clavier lors de lenvoi du message est remplacé par un saut de ligne",
"id": "Jika diaktifkan, tombol pengirim di keyboard saat mengirim pesan diganti dengan baris ganti"
},
{
"key": "不能重复投票",
"zh": "",
"zh-CHT": "不能重複投票",
"en": "No double voting",
"ko": "중복 투표가 안 된다.",
"ja": "二重投票はできません",
"de": "Stimmen sie nicht doppelt ab.",
"fr": "Pas de double vote",
"id": "Tidak bisa memilih ulang"
},
{
"key": "请等待打包完成",
"zh": "",
"zh-CHT": "請等待打包完成",
"en": "Please wait for packing to complete",
"ko": "패키지가 끝날 때까지 기다려 주세요",
"ja": "梱包が完了するまでお待ちいただけます。",
"de": "Bitte warten sie, bis ihr koffer fertig ist",
"fr": "Veuillez attendre que lemballage soit terminé",
"id": "Tunggu sampai paket selesai"
},
{
"key": "选择一个项目查看更多任务",
"zh": "",
"zh-CHT": "選擇一個項目查看更多任務",
"en": "Select a project to view more tasks",
"ko": "더 많은 작업을 보려면 항목을 선택하십시오",
"ja": "1つのプロジェクトを選んでより多くのタスクを見ます",
"de": "Wählen sie ein projekt, um weitere aufgaben wahrzunehmen",
"fr": "Sélectionnez un projet pour voir plus de tâches",
"id": "Pilih satu item untuk melihat lebih banyak tugas"
},
{
"key": "首页",
"zh": "",
"zh-CHT": "首頁",
"en": "Home page",
"ko": "첫 페이지",
"ja": "トップページです",
"de": "Die titelseite.",
"fr": "La page de couverture",
"id": "Halaman depan"
},
{
"key": "无相关数据",
"zh": "",
"zh-CHT": "無相關數據",
"en": "No relevant data",
"ko": "관련 데이터 없음",
"ja": "データはありません",
"de": "Es liegen keine daten vor.",
"fr": "Aucune donnée disponible",
"id": "Tidak ada data yang relevan"
},
{
"key": "权限设置",
"zh": "",
"zh-CHT": "權限設置",
"en": "Permission setting",
"ko": "권한 설정",
"ja": "権限設定です",
"de": "Berechtigungen festlegen",
"fr": "Paramètres des droits",
"id": "Pengaturan hak akses"
},
{
"key": "任务列权限",
"zh": "",
"zh-CHT": "任務列權限",
"en": "Task bar permission",
"ko": "작업 칸 권한",
"ja": "任務列権限",
"de": "Aufgabenliste zugriff auf",
"fr": "Autorisations de colonne de tâche",
"id": "Izin kolom tugas"
},
{
"key": "添加列",
"zh": "",
"zh-CHT": "添加列",
"en": "Add column",
"ko": "칸 추가",
"ja": "列を追加します",
"de": "Geben sie zu.",
"fr": "Ajouter une colonne",
"id": "Tambahkan kolom"
},
{
"key": "修改列",
"zh": "",
"zh-CHT": "修改列",
"en": "Modified column",
"ko": "칸 수정하기",
"ja": "修正列です",
"de": "Ich repariere sie.",
"fr": "Modifier une colonne",
"id": "Merevisi kolom"
},
{
"key": "删除列",
"zh": "",
"zh-CHT": "刪除列",
"en": "Delete column",
"ko": "칸 삭제",
"ja": "列を削除します",
"de": "Spalte löschen",
"fr": "Supprimer une colonne",
"id": "Hapus kolom"
},
{
"key": "排序列",
"zh": "",
"zh-CHT": "排序列",
"en": "Sequencing",
"ko": "서열을 정하다",
"ja": "序列をつけます。",
"de": "Reihen aufstellen.",
"fr": "Séquence de rangées",
"id": "Urutan"
},
{
"key": "任务权限",
"zh": "",
"zh-CHT": "任務權限",
"en": "Task authority",
"ko": "작업 권한",
"ja": "任務権限です",
"de": "Auftrag autorisiert.",
"fr": "Autorisations de tâches",
"id": "Hak akses tugas"
},
{
"key": "修改任务",
"zh": "",
"zh-CHT": "修改任務",
"en": "Modify task",
"ko": "작업 변경",
"ja": "タスクを修正します",
"de": "Die mission ändern.",
"fr": "Modifier une tâche",
"id": "Memodifikasi tugas"
},
{
"key": "修改状态",
"zh": "",
"zh-CHT": "修改狀態",
"en": "Modified state",
"ko": "상태 수정",
"ja": "状態を修正します",
"de": "Ändern.",
"fr": "Modifier le statut",
"id": "Memodifikasi status"
},
{
"key": "任务协助人",
"zh": "",
"zh-CHT": "任務協助人",
"en": "Mission helper",
"ko": "임무 협조자",
"ja": "任務協力者です",
"de": "Entbindungen für die mission",
"fr": "Collaboration en mission",
"id": "Kolaborasi tugas"
},
{
"key": "搜索项目名称",
"zh": "",
"zh-CHT": "搜索項目名稱",
"en": "Search project name",
"ko": "검색 항목 이름",
"ja": "項目名を検索します",
"de": "Name des suchprojekts:",
"fr": "Recherche par nom darticle",
"id": "Cari nama item"
},
{
"key": "服务器版本过低,请升级服务器。",
"zh": "",
"zh-CHT": "服務器版本過低,請升級服務器。",
"en": "The server version is too early. Please upgrade the server.",
"ko": "서버 버전이 낮습니다. 서버를 업그레이드하십시오.",
"ja": "サーバーのバージョンが低いので、サーバーのアップグレードをお願いします。",
"de": "Server sind zu niedrig. Bitte aktualisiert den server.",
"fr": "La version du serveur est trop basse. Veuillez mettre à jour le serveur.",
"id": "Versi server di bawah rendah, silahkan upgrade server."
},
{
"key": "不显示原发送者信息",
"zh": "",
"zh-CHT": "不顯示原發送者信息",
"en": "The original sender information is not displayed",
"ko": "원래 보낸 사람 메시지 안 보이기",
"ja": "元送信者情報は表示されません。",
"de": "Kein original absender anzeigen",
"fr": "Ne pas afficher les informations de lexpéditeur original",
"id": "Tidak menunjukkan pesan asli"
},
{
"key": "转发给:",
"zh": "",
"zh-CHT": "轉發給:",
"en": "Forward to:",
"ko": "다음으로 전달:",
"ja": "転送します:",
"de": "Und an scotty.",
"fr": "Envoyer à:",
"id": "Teruskan ke:"
},
{
"key": "留言",
"zh": "",
"zh-CHT": "留言",
"en": "Leave a message",
"ko": "메시지",
"ja": "伝言です",
"de": "Nachricht für mich.",
"fr": "Le message",
"id": "Tinggalkan pesan"
},
{
"key": "多选",
"zh": "",
"zh-CHT": "多選",
"en": "Multiple choice",
"ko": "선",
"ja": "複数回答です",
"de": "Kommt an die reihe.",
"fr": "DuoXuan",
"id": "DuoXuan"
},
{
"key": "@我的",
"zh": "",
"zh-CHT": "@我的",
"en": "@ My",
"ko": "@ 나의",
"ja": "@私のです",
"de": "Mich hat er mich nie verraten.",
"fr": "@ mon",
"id": "My"
},
{
"key": "移动前",
"zh": "",
"zh-CHT": "移動前",
"en": "Premove",
"ko": "이동 전",
"ja": "移動前です",
"de": "Vor der bewegung",
"fr": "Avant de déménager",
"id": "Sebelum pindah"
},
{
"key": "移动后",
"zh": "",
"zh-CHT": "移動後",
"en": "Post move",
"ko": "이동 후",
"ja": "移動後です",
"de": "Vorwärts und dann vorwärts.",
"fr": "Après le déménagement",
"id": "Setelah pindah"
},
{
"key": "状态",
"zh": "",
"zh-CHT": "狀態",
"en": "Status",
"ko": "상태",
"ja": "状態です",
"de": "Versetzen.",
"fr": "Létat",
"id": "Keadaan"
},
{
"key": "协助人",
"zh": "",
"zh-CHT": "協助人",
"en": "Assist",
"ko": "조력자",
"ja": "協力者です",
"de": "Vorm helfen.",
"fr": "Confraternité",
"id": "Kolaborasi"
},
{
"key": "未变更移动项",
"zh": "",
"zh-CHT": "未變更移動項",
"en": "The move item is not changed",
"ko": "이동 항목이 변경되지 않았습니다",
"ja": "移働項変更ありません",
"de": "Der zeiger wird unverändert gelassen",
"fr": "Article mobile non modifié",
"id": "Tidak mengubah item mobile"
},
{
"key": "接龙",
"zh": "",
"zh-CHT": "接龍",
"en": "Solitaire",
"ko": "다이 크",
"ja": "しりとりです",
"de": "Schnappt euch den drachen!",
"fr": "Mines",
"id": "JieLong"
},
{
"key": "参与接龙",
"zh": "",
"zh-CHT": "參與接龍",
"en": "Participate in the solitaire",
"ko": "릴레이 작업에 참여하다.",
"ja": "しりとりに参加します",
"de": "Ich übernehme die verantwortung.",
"fr": "Participez à solitaire",
"id": "Berpartisipasi dalam tangkapan"
},
{
"key": "发起接龙",
"zh": "",
"zh-CHT": "發起接龍",
"en": "Initiate a solitaire",
"ko": "릴레이 작전을 개시하다.",
"ja": "しりとりをします",
"de": "Ergreift den rückzug.",
"fr": "Initier le solitaire",
"id": "Memulai relay"
},
{
"key": "由",
"zh": "",
"zh-CHT": "由",
"en": "By",
"ko": "가",
"ja": "由ります",
"de": "Von",
"fr": "Par",
"id": "Oleh"
},
{
"key": "发起接龙,参与接龙目前共(*)人",
"zh": "",
"zh-CHT": "發起接龍,參與接龍目前共(*)人",
"en": "Initiate the relay, and participate in the relay currently a total of (*) people",
"ko": "련계를 발기하고 련계에 참여하여 현재 총 (*) 사람",
"ja": "しりとりを開始し,参加した人(*)がいます",
"de": "So wird eine entführung durchgeführt, die zu einer entführung führt (*)",
"fr": "Solitaire initié, solitaire participant actuellement au total (*) personnes",
"id": "Pencangkokkan pada naga dan ambil bagian dalam reproduksinya (*) manusia"
},
{
"key": "请输入接龙主题",
"zh": "",
"zh-CHT": "請輸入接龍主題",
"en": "Please enter a theme",
"ko": "드래곤 연결 테마를 입력하십시오",
"ja": "しりとりテーマ入力お願いします。",
"de": "Geben sie das leitmotiv ein",
"fr": "Veuillez entrer le sujet solitaire",
"id": "Silahkan masukkan tema relay"
},
{
"key": "请输入接龙内容",
"zh": "",
"zh-CHT": "請輸入接龍內容",
"en": "Please enter the connection content",
"ko": "연결 내용을 입력해 주세요",
"ja": "しりとりの入力をお願いします。",
"de": "Geben sie den leittext ein",
"fr": "Veuillez entrer le contenu solitaire",
"id": "Silakan masukkan isi naga"
},
{
"key": "可填写接龙格式",
"zh": "",
"zh-CHT": "可填寫接龍格式",
"en": "You can fill in the relay format",
"ko": "연결 형식으로 기입하실 수 있습니다",
"ja": "しりとりフォーム記入可能です",
"de": "Sie können das zuchtformat ausfüllen",
"fr": "Format solitaire remplissable",
"id": "Isi format relay"
},
{
"key": "重复内容将不再计入接龙结果",
"zh": "",
"zh-CHT": "重複內容將不再計入接龍結果",
"en": "Duplicates will no longer be counted in the results",
"ko": "중복된 내용은 연결 결과에 더 이상 계산에 넣지 않는다",
"ja": "重複した内容はしりとり結果にはカウントしません。",
"de": "Wiederholung wird nicht länger als bestandsfolge berücksichtigt",
"fr": "Les doublons ne compteront plus pour les résultats solitaire",
"id": "Konten yang diulang tidak akan lagi dikaji ke relay"
},
{
"key": "返回编辑",
"zh": "",
"zh-CHT": "返回編輯",
"en": "Back to edit",
"ko": "편집기로 돌아가기",
"ja": "編集に戻ります",
"de": "Korrektur chefredakteur",
"fr": "Retour aux éditeurs",
"id": "Kembali mengedit"
},
{
"key": "继续发送",
"zh": "",
"zh-CHT": "繼續發送",
"en": "Continue to send",
"ko": "계속 보내기",
"ja": "送り続けます",
"de": "Sende weiter.",
"fr": "Continuer à envoyer",
"id": "Terus mengirim"
},
{
"key": "例",
"zh": "",
"zh-CHT": "例",
"en": "Case",
"ko": "예",
"ja": "例です",
"de": ".",
"fr": "Dans le cas de",
"id": "Contoh"
},
{
"key": "接龙结果",
"zh": "",
"zh-CHT": "接龍結果",
"en": "Relay result",
"ko": "연결 결과",
"ja": "しりとりの結果です",
"de": "Holt sie euch!",
"fr": "Résultats pour solitaire",
"id": "Hasil tangkapan"
},
{
"key": "选择群组发起接龙",
"zh": "",
"zh-CHT": "選擇羣組發起接龍",
"en": "Select a group to initiate a relay",
"ko": "줄을 시작할 그룹을 선택합니다",
"ja": "グループを選択してしりとりを開始します",
"de": "Scharniere wählen, um den griff zu ergreifen",
"fr": "Sélectionnez un groupe pour initier solitaire",
"id": "Pilih kelompok untuk mengasosiasikan naga"
},
{
"key": "来自",
"zh": "",
"zh-CHT": "來自",
"en": "Be from",
"ko": "온",
"ja": "来ます",
"de": "Definitiv eine quelle.",
"fr": "En provenance de",
"id": "Dari"
},
{
"key": "发起投票",
"zh": "",
"zh-CHT": "發起投票",
"en": "Call a vote",
"ko": "투표를 발기하다",
"ja": "投票を発議します",
"de": "Lasst die abstimmung einleiten.",
"fr": "Lancer un vote",
"id": "Suara awal"
},
{
"key": "投票结果",
"zh": "",
"zh-CHT": "投票結果",
"en": "Voting result",
"ko": "투표 결과",
"ja": "投票結果です",
"de": "Die abstimmung kam.",
"fr": "Résultats des votes",
"id": "Hasil suara"
},
{
"key": "发起",
"zh": "",
"zh-CHT": "發起",
"en": "Initiate",
"ko": "시작",
"ja": "発起します",
"de": "Einleitung?",
"fr": "Le lancement",
"id": "Memulai"
},
{
"key": "请输入投票主题",
"zh": "",
"zh-CHT": "請輸入投票主題",
"en": "Please enter the voting topic",
"ko": "투표 제목을 입력하세요",
"ja": "投票テーマの入力をお願いします",
"de": "Geben sie das stimmthema ein",
"fr": "Veuillez entrer un sujet de vote",
"id": "Silahkan masukkan tema pemungutan suara"
},
{
"key": "请输入选项内容",
"zh": "",
"zh-CHT": "請輸入選項內容",
"en": "Please enter the options",
"ko": "옵션 내용을 입력해 주세요",
"ja": "オプションの入力をお願いします。",
"de": "Bitte geben sie den eintrag zur freien wahl ein",
"fr": "Veuillez entrer le contenu des options",
"id": "Silahkan masukkan konten pilihan"
},
{
"key": "允许多选",
"zh": "",
"zh-CHT": "允許多選",
"en": "Multiple choice allowed",
"ko": "다중 선택 사용",
"ja": "複数回答を許可します",
"de": "Eine auswahl ist erlaubt.",
"fr": "Permet la sélection multiple",
"id": "Izinkan pilihan ganda"
},
{
"key": "匿名投票",
"zh": "",
"zh-CHT": "匿名投票",
"en": "Anonymous voting",
"ko": "익명 투표",
"ja": "とくめい投票です",
"de": "Anonyme stimmen.",
"fr": "Un vote anonyme",
"id": "Suara anonim"
},
{
"key": "投票",
"zh": "",
"zh-CHT": "投票",
"en": "Vote",
"ko": "투표",
"ja": "投票します",
"de": "Wir stimmen ab.",
"fr": "Le vote",
"id": "Suara."
},
{
"key": "匿名",
"zh": "",
"zh-CHT": "匿名",
"en": "Anonymity",
"ko": "익명",
"ja": "匿名です",
"de": "Anonym.",
"fr": "Lanonymat",
"id": "Tak diketahui"
},
{
"key": "实名",
"zh": "",
"zh-CHT": "實名",
"en": "Real name",
"ko": "실명",
"ja": "実名です",
"de": "Wiedersehen!",
"fr": "Sous son vrai nom",
"id": "Itu nama asli"
},
{
"key": "单选",
"zh": "",
"zh-CHT": "單選",
"en": "Single-choice",
"ko": "라디오",
"ja": "ラジオです",
"de": "Entscheidung.",
"fr": "Et",
"id": "ChanXuan"
},
{
"key": "请选择后投票",
"zh": "",
"zh-CHT": "請選擇後投票",
"en": "Please select and vote",
"ko": "선택하시고 투표해 주세요",
"ja": "選んで投票をお願いします。",
"de": "Bitte wählen sie nach der abstimmung aus",
"fr": "Veuillez sélectionner pour voter",
"id": "Silahkan pilih setelah suara anda"
},
{
"key": "立即投票",
"zh": "",
"zh-CHT": "立即投票",
"en": "Immediate vote",
"ko": "바로 투표",
"ja": "即時投票です",
"de": "Stimmen sie sofort ab!",
"fr": "Votez dès maintenant",
"id": "Pilih sekarang"
},
{
"key": "票",
"zh": "",
"zh-CHT": "票",
"en": "Ticket",
"ko": "표",
"ja": "チケットです",
"de": ".",
"fr": "Voix",
"id": "Tiket"
},
{
"key": "再次发送",
"zh": "",
"zh-CHT": "再次發送",
"en": "Resend",
"ko": "다시 보내기",
"ja": "再送します",
"de": "Senden sie es nochmal.",
"fr": "Envoyer à nouveau",
"id": "Kirim lagi"
},
{
"key": "再次发送投票?",
"zh": "",
"zh-CHT": "再次發送投票?",
"en": "Send the vote again?",
"ko": "투표 다시 보낼까?",
"ja": "投票の再送ですか?",
"de": "Noch eine abstimmung?",
"fr": "Envoyer à nouveau le sondage?",
"id": "Mengirim suara lagi?"
},
{
"key": "结束投票",
"zh": "",
"zh-CHT": "結束投票",
"en": "Close the ballot",
"ko": "투표를 마치다",
"ja": "投票を締め括ります",
"de": "Die abstimmung ist beendet.",
"fr": "Clôture des votes",
"id": "Pemungutan suara berakhir"
},
{
"key": "确定结束投票?",
"zh": "",
"zh-CHT": "確定結束投票?",
"en": "Are you sure to close the vote?",
"ko": "투표 끝 확정?",
"ja": "投票終了確定ですか?",
"de": "Sorgen sie dafür, dass die abstimmung abgeschlossen ist?",
"fr": "Sûr de clôturer le vote?",
"id": "Yakin pemungutan suara berakhir?"
},
{
"key": "已发送",
"zh": "",
"zh-CHT": "已發送",
"en": "Has been sent",
"ko": "보냈음",
"ja": "発送しました",
"de": "Gesendet",
"fr": "A été envoyé",
"id": "Telah mengirim"
},
{
"key": "选择群组发起投票",
"zh": "",
"zh-CHT": "選擇羣組發起投票",
"en": "Select a group to initiate voting",
"ko": "투표를 발기할 그룹을 선택합니다",
"ja": "グループを選んで投票します",
"de": "Gruppen werden zur wahl gewählt",
"fr": "Choisir un groupe pour lancer un sondage",
"id": "Pilih grup untuk memulai voting"
},
{
"key": "@我",
"zh": "",
"zh-CHT": "@我",
"en": "@ Me",
"ko": "@나",
"ja": "@私です",
"de": "(englischer song)",
"fr": "@ je",
"id": "@ aku punya"
},
{
"key": "签到打卡",
"zh": "",
"zh-CHT": "簽到打卡",
"en": "Sign in and punch in",
"ko": "출근 카드를 찍다",
"ja": "タイムカードを押します。",
"de": "Trag 'ne karte ein",
"fr": "Connexion et pointage",
"id": "Log masuk"
},
{
"key": "在线会议",
"zh": "",
"zh-CHT": "在線會議",
"en": "Online conference",
"ko": "온라인 회의",
"ja": "オンライン会議です",
"de": "Bei denen ich online bin.",
"fr": "Conférence en ligne",
"id": "Pertemuan online"
},
{
"key": "群接龙",
"zh": "",
"zh-CHT": "羣接龍",
"en": "Solitaire",
"ko": "뭇사람이 꼬리를 잇다.",
"ja": "しりとりです",
"de": "Ich war in der schlange.",
"fr": "Groupe solitaire",
"id": "Kelompok relay"
},
{
"key": "群投票",
"zh": "",
"zh-CHT": "羣投票",
"en": "Group voting",
"ko": "집단 투표",
"ja": "グループ投票です",
"de": "Wahlmännerstimmen.",
"fr": "Vote en groupe",
"id": "Kelompok suara"
},
{
"key": "LDAP",
"zh": "",
"zh-CHT": "LDAP",
"en": "LDAP",
"ko": "Ldap",
"ja": "LDAPです",
"de": "LDAP",
"fr": "LDAP",
"id": "LDAP"
},
{
"key": "你确定要打包下载【Bigw】文件夹吗",
"zh": "",
"zh-CHT": "你確定要打包下載【Bigw】文件夾嗎",
"en": "Are you sure you want to package and download the [Bigw] folder?",
"ko": "정말 [bigw] 폴더를 포장하시겠습니까?",
"ja": "【Bigw】フォルダをダウンロードしますか?",
"de": "Möchten sie ganz sicher ihre koffer packen und den ordner \"Bigw\" runterladen?",
"fr": "Êtes-vous sûr de vouloir emballer le dossier download [Bigw]?",
"id": "Kau yakin ingin berkemas untuk download?"
},
{
"key": "正在打包,请留意系统消息",
"zh": "",
"zh-CHT": "正在打包,請留意系統消息",
"en": "Packing, please pay attention to the system message",
"ko": "압축하고 있습니다. 시스템 메시지를 확인하십시오",
"ja": "パッケージ化中ですので、システムメッセージにご注意ください。",
"de": "Bereits am packen, geben sie eine nachricht nach system ab",
"fr": "Emballage en cours, gardez un oeil sur les messages du système",
"id": "Paket sedang dikemas"
},
{
"key": "创建一个全新的会议视频会议,与会者可以在实时中进行面对面的视听交流。",
"zh": "",
"zh-CHT": "創建一個全新的會議視頻會議,與會者可以在實時中進行面對面的視聽交流。",
"en": "Create a new conference video conferencing where attendees can meet face-to-face in real time.",
"ko": "실시간 시청각 대면 대화가 가능한 새로운 화상 회의를 만듭니다.",
"ja": "参加者同士がリアルタイムで対面でコミュニケーションできる、まったく新しいビデオ会議を作ります。",
"de": "Erstellen sie eine neue video-konferenz, bei der die teilnehmer direkten audio-kontakt in echtzeit haben.",
"fr": "Créez une nouvelle vidéoconférence de conférence où les participants peuvent communiquer en face à face en temps réel.",
"id": "Buatlah konferensi video konferensi yang sama sekali baru di mana peserta dapat bertemu langsung dan saling bertatap muka secara langsung."
},
{
"key": "通过视频会议平台,参与者可以分享屏幕、共享文档,并与其他与会人员进行讨论和协。",
"zh": "",
"zh-CHT": "通過視頻會議平臺,參與者可以分享屏幕、共享文檔,並與其他與會人員進行討論和協。",
"en": "Through the video conferencing platform, participants can share screens, share documents, and discuss and collaborate with other participants.",
"ko": "화상 회의 플랫폼을 통해 참가자들은 화면을 공유하고 문서를 공유하며 다른 참가자들과 토론하고 협력할 수 있다.",
"ja": "ビデオ会議のプラットフォームを通じて、参加者はスクリーンを共有したり、文書を共有したり、他の参加者と議論を和協することができます。",
"de": "Auf der videokonferenz können die teilnehmer bildschirm-teile teilen, dokumente teilen und mit den anderen teilnehmern erörtern und diskutieren.",
"fr": "La plateforme de visioconférence permet aux participants de partager des écrans, de partager des documents, de discuter et de sassocier avec les autres participants.",
"id": "Melalui platform konferensi video, peserta dapat berbagi layar, berbagi dokumen, dan berunding dengan peserta lain."
},
{
"key": "你确定要打包下载【(*)】文件夹吗?",
"zh": "",
"zh-CHT": "你確定要打包下載【(*)】文件夾嗎?",
"en": "Are you sure you want to pack and download the [(*)] folder?",
"ko": "[(*)] 폴더를 압축하시겠습니까?",
"ja": "【(*)】フォルダをダウンロードすることは確かですか?",
"de": "Sollen sie ganz sicher ihre koffer packen und den ordner runterladen?",
"fr": "Êtes-vous sûr de vouloir emballer le dossier de téléchargement [(*)]?",
"id": "Apakah anda yakin ingin mengemasi folder [*]?"
},
{
"key": "发起,参与接龙目前共(*)人",
"zh": "",
"zh-CHT": "發起,參與接龍目前共(*)人",
"en": "Initiated, participating in the relay is currently a total of (*) people",
"ko": "련계를 발기, 참여하여 현재 총 (*) 사람",
"ja": "しりとりに参加しました(*)",
"de": "Einleitung der entführung, die zur zeit durchgeführt wird",
"fr": "Initié, participant solitaire actuellement au total (*) personnes",
"id": "Inisiasi, partisipasi dalam naga saat ini (*) orang"
},
{
"key": "License Key",
"zh": "",
"zh-CHT": "License Key",
"en": "License Key",
"ko": "라이선스 key",
"ja": "ライセンスキーです",
"de": "License Key",
"fr": "License Key",
"id": "License Key"
}
]

View File

@ -1,6 +1,6 @@
{
"name": "DooTask",
"version": "0.32.65",
"version": "0.33.58",
"description": "DooTask is task management system.",
"scripts": {
"start": "./cmd dev",
@ -47,7 +47,7 @@
"photoswipe": "^5.2.8",
"postcss": "^8.4.5",
"quill": "^1.3.7",
"quill-mention-hi": "^3.1.0-1",
"quill-mention-hi": "^3.1.0-4",
"resolve-url-loader": "^4.0.0",
"sass": "~1.32.13",
"sass-loader": "^12.6.0",

File diff suppressed because one or more lines are too long

View File

@ -1,22 +1,36 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Loading...</title>
<title>APP接口</title>
<meta name="description" content="APP接口文档">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="vendor/bootstrap.min.css" rel="stylesheet" media="screen">
<link href="vendor/prism.css" rel="stylesheet" />
<link href="css/style.css" rel="stylesheet" media="screen, print">
<link href="img/favicon.ico" rel="icon" type="image/x-icon">
<script src="vendor/polyfill.js"></script>
<link href="assets/bootstrap.min.css?v=1703484888256" rel="stylesheet" media="screen">
<link href="assets/prism.css?v=1703484888256" rel="stylesheet" />
<link href="assets/prism-toolbar.css?v=1703484888256" rel="stylesheet" />
<link href="assets/prism-diff-highlight.css?v=1703484888256" rel="stylesheet" />
<link href="assets/main.css?v=1703484888256" rel="stylesheet" media="screen, print">
<link href="assets/favicon.ico?v=1703484888256" rel="icon" type="image/x-icon">
<link href="assets/apple-touch-icon.png?v=1703484888256" rel="apple-touch-icon" sizes="180x180">
<link href="assets/favicon-32x32.png?v=1703484888256" rel="icon" type="image/png" sizes="32x32">
<link href="assets/favicon-16x16.png?v=1703484888256" rel="icon" type="image/png" sizes="16x16">
</head>
<body class="container-fluid">
<!-- SIDENAV -->
<script id="template-sidenav" type="text/x-handlebars-template">
<nav id="scrollingNav">
<nav id="scrollingNav" class="col-sm-3 col-lg-2 sidebar-offcanvas">
<div class="nav-toggle visible-xs">
<button type="button" class="btn btn-link" data-toggle="offcanvas">
<span class="sr-only">{{__ "Toggle navigation"}}</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="sidenav-search">
<input class="form-control search" type="text" placeholder="{{__ "Filter..."}}">
<input class="form-control search" data-action='filter-search' type="text" placeholder="{{__ "Filter..."}}">
<span class="search-reset">x</span>
</div>
<ul class="sidenav nav nav-list list">
@ -39,6 +53,7 @@
</nav>
</script>
<!-- PROJECT -->
<script id="template-project" type="text/x-handlebars-template">
<div class="pull-left">
<h1>{{name}}</h1>
@ -70,7 +85,7 @@
<script id="template-header" type="text/x-handlebars-template">
{{#if content}}
<div id="api-_" class="show-api-article show-api-_-article">{{{content}}}</div>
<div id="api-_header" class="show-api-article show-api-_-article">{{{content}}}</div>
{{/if}}
</script>
@ -83,8 +98,10 @@
<script id="template-generator" type="text/x-handlebars-template">
{{#if template.withGenerator}}
{{#if generator}}
<div class="content">
{{__ "Generated with"}} <a href="{{{generator.url}}}">{{{generator.name}}}</a> {{{generator.version}}} - {{{generator.time}}}
<div>
<p class="text-muted">
{{__ "Generated with"}} <a href="{{{generator.url}}}">{{{generator.name}}}</a> {{{generator.version}}} - {{{generator.time}}}
</p>
</div>
{{/if}}
{{/if}}
@ -92,7 +109,7 @@
<script id="template-sections" type="text/x-handlebars-template">
<section id="api-{{group}}" class="show-api-group show-api-{{group}}-group {{#if aloneDisplay}} hide{{/if}}">
<h1>{{underscoreToSpace title}}</h1>
<h1 class="color-primary font-weight-bold">{{underscoreToSpace title}}</h1>
{{#if description}}
<p>{{{nl2br description}}}</p>
{{/if}}
@ -107,7 +124,7 @@
<script id="template-article" type="text/x-handlebars-template">
<article id="api-{{article.group}}-{{article.name}}-{{article.version}}" {{#if hidden}}class="hide"{{/if}} data-group="{{article.group}}" data-name="{{article.name}}" data-version="{{article.version}}">
<div class="pull-left">
<h1>{{underscoreToSpace article.groupTitle}}{{#if article.title}} - {{article.title}}{{/if}}</h1>
<h1><span class="color-primary">{{underscoreToSpace article.groupTitle}}</span>{{#if article.title}} <span class="text-muted">|</span> {{article.title}}{{/if}}</h1>
</div>
{{#if template.withCompare}}
<div class="pull-right">
@ -137,8 +154,13 @@
{{#if article.description}}
<p>{{{nl2br article.description}}}</p>
{{/if}}
<span class="type type__{{toLowerCase article.type}}">{{toLowerCase article.type}}</span>
<pre data-type="{{toLowerCase article.type}}"><code class="language-http">{{article.url}}</code></pre>
<span class="method meth-{{toLowerCase article.type}}">{{article.type}}</span>
<pre
data-type="{{toLowerCase article.type}}"
data-prismjs-copy="{{__ "Copy"}}"
data-prismjs-copy-error="{{__ "Press Ctrl+C to copy"}}"
data-prismjs-copy-success="{{__ "copied!"}}"
><code class="language-http">{{article.url}}</code></pre>
{{#if article.permission}}
<p>
@ -155,26 +177,33 @@
{{/if}}
{{!-- CODE EXAMPLES IN TABS --}}
{{#if_gt article.examples.length compare=0}}
<ul class="nav nav-tabs nav-tabs-examples">
{{#ifCond article.examples.length '>' 0}}
<ul class="nav nav-tabs nav-tabs-examples" role="tablist">
{{#each article.examples}}
<li{{#if_eq @index compare=0}} class="active"{{/if_eq}}>
<a href="#examples-{{../id}}-{{@index}}">{{title}}</a>
<li{{#ifCond @index '==' 0}} class="active"{{/ifCond}}>
<a href="#examples-{{../id}}-{{@index}}" role="tab" data-toggle="tab">{{title}}</a>
</li>
{{/each}}
</ul>
<div class="tab-content">
{{#each article.examples}}
<div class="tab-pane{{#if_eq @index compare=0}} active{{/if_eq}}" id="examples-{{../id}}-{{@index}}">
<pre data-type="{{type}}"><code class="language-{{type}}">{{content}}</code></pre>
<div class="tab-pane{{#ifCond @index '==' 0}} active{{/ifCond}}" id="examples-{{../id}}-{{@index}}">
<pre
data-type="{{type}}"
data-prismjs-copy="{{__ "Copy"}}"
data-prismjs-copy-error="{{__ "Press Ctrl+C to copy"}}"
data-prismjs-copy-success="{{__ "copied!"}}"
><code class="language-{{type}}">{{content}}</code></pre>
</div>
{{/each}}
</div>
{{/if_gt}}
{{/ifCond}}
{{subTemplate "article-param-block" params=article.header _hasType=_hasTypeInHeaderFields section="header"}}
{{subTemplate "article-param-block" params=article.parameter _hasType=_hasTypeInParameterFields section="parameter"}}
{{subTemplate "article-query-block" params=article.query _hasType=_hasTypeInParameterFields section="query"}}
{{subTemplate "article-body-block" params=article.body _hasType=_hasTypeInParameterFields section="body"}}
{{subTemplate "article-param-block" params=article.success _hasType=_hasTypeInSuccessFields section="success"}}
{{subTemplate "article-param-block" params=article.error _col1="Name" _hasType=_hasTypeInErrorFields section="error"}}
@ -182,6 +211,104 @@
</article>
</script>
<script id="template-article-query-block" type="text/x-handlebars-template">
{{#if article.query}}
<h2>{{__ "Query Parameter(s)"}}</h2>
<table>
<thead>
<tr>
<th style="width: 30%">{{#if ../_col1}}{{__ ../_col1}}{{else}}{{__ "Field"}}{{/if}}</th>
{{#unless this.Type compare=null}}
<th style="width: 10%">{{__ "Type"}}</th>
{{/unless}}
<th style="width: {{#if ../_hasType}}60%{{else}}70%{{/if}}">{{__ "Description"}}</th>
</tr>
</thead>
<tbody>
{{#each params}}
<tr>
<td class="code">
{{{nestObject this}}}
{{#if this.optional}}
<span class="label optional">{{__ "optional"}}</span>
{{else}}
{{#if ../template.showRequiredLabels}}
<span class="label required">{{__ "required"}}</span>
{{/if}}
{{/if}}
</td>
{{#unless this.Type compare=null}}
<td class="code">{{this.type}}</td>
{{/unless}}
<td>{{{nl2br this.description}}}
{{#if defaultValue}}<p class="default-value">{{__ "Default value:"}} <code>{{{defaultValue}}}</code></p>{{/if}}
{{#if size}}<p class="type-size">{{__ "Size range:"}} <code>{{{size}}}</code></p>{{/if}}
{{#if allowedValues}}<p class="type-size">{{__ "Allowed values:"}}
{{#each allowedValues}}
<code>{{{this}}}</code>{{#unless @last}}, {{/unless}}
{{/each}}
</p>
{{/if}}
</td>
</tr>
{{/each}}
</tbody>
</table>
{{/if}}
</script>
<script id="template-article-body-block" type="text/x-handlebars-template">
{{#if article.body}}
<h2>{{__ "Request Body"}}</h2>
<table>
<thead>
<tr>
<th style="width: 30%">{{#if ../_col1}}{{__ ../_col1}}{{else}}{{__ "Field"}}{{/if}}</th>
{{#unless this.Type compare=null}}
<th style="width: 10%">{{__ "Type"}}</th>
{{/unless}}
<th style="width: {{#if ../_hasType}}60%{{else}}70%{{/if}}">{{__ "Description"}}</th>
</tr>
</thead>
<tbody>
{{#each params}}
<tr>
<td class="code">
{{{nestObject this}}}
{{#if this.optional}}
<span class="label optional">{{__ "optional"}}</span>
{{else}}
{{#if ../template.showRequiredLabels}}
<span class="label required">{{__ "required"}}</span>
{{/if}}
{{/if}}
</td>
{{#unless this.Type compare=null}}
<td class="code">{{this.type}}</td>
{{/unless}}
<td>
{{{nl2br this.description}}}
{{#if defaultValue}}
<p class="default-value">{{__ "Default value:"}} <code>{{{defaultValue}}}</code></p>
{{/if}}
{{#if size}}
<p class="type-size">{{__ "Size range:"}} <code>{{{size}}}</code></p>
{{/if}}
{{#if allowedValues}}
<p class="type-size">{{__ "Allowed values:"}}
{{#each allowedValues}}
<code>{{{this}}}</code>{{#unless @last}}, {{/unless}}
{{/each}}
</p>
{{/if}}
</td>
</tr>
{{/each}}
</tbody>
</table>
{{/if}}
</script>
<script id="template-article-param-block" type="text/x-handlebars-template">
{{#if params}}
{{#each params.fields}}
@ -197,9 +324,17 @@
<tbody>
{{#each this}}
<tr>
<td class="code">{{{splitFill field "." "&nbsp;&nbsp;"}}}{{#if optional}} <span class="label label-optional">{{__ "optional"}}</span>{{/if}}</td>
<td class="code">
{{{nestObject this}}}
{{#if optional}}
<span class="label optional">{{__ "optional"}}</span>
{{else}}
{{#if ../../template.showRequiredLabels}}
<span class="label required">{{__ "required"}}</span>
{{/if}}
{{/if}}</td>
{{#if ../../_hasType}}
<td>
<td class="code">
{{{type}}}
</td>
{{/if}}
@ -219,51 +354,62 @@
</tbody>
</table>
{{/each}}
{{#if_gt params.examples.length compare=0}}
<ul class="nav nav-tabs nav-tabs-examples">
{{#ifCond params.examples.length '>' 0}}
<ul class="nav nav-tabs nav-tabs-examples" role="tablist">
{{#each params.examples}}
<li{{#if_eq @index compare=0}} class="active"{{/if_eq}}>
<a href="#{{../section}}-examples-{{../id}}-{{@index}}">{{title}}</a>
<li{{#ifCond @index '==' 0}} class="active"{{/ifCond}}>
<a href="#{{../section}}-examples-{{../id}}-{{@index}}" role="tab" data-toggle="tab">{{title}}</a>
</li>
{{/each}}
</ul>
<div class="tab-content">
{{#each params.examples}}
<div class="tab-pane{{#if_eq @index compare=0}} active{{/if_eq}}" id="{{../section}}-examples-{{../id}}-{{@index}}">
<pre data-type="{{type}}"><code class="language-{{type}}">{{reformat content type}}</code></pre>
<div class="tab-pane{{#ifCond @index '==' 0}} active{{/ifCond}}" id="{{../section}}-examples-{{../id}}-{{@index}}">
<pre
data-type="{{type}}"
data-prismjs-copy="{{__ "Copy"}}"
data-prismjs-copy-error="{{__ "Press Ctrl+C to copy"}}"
data-prismjs-copy-success="{{__ "copied!"}}"
><code class="language-{{type}}">{{reformat content type}}</code></pre>
</div>
{{/each}}
</div>
{{/if_gt}}
{{/ifCond}}
{{/if}}
</script>
<script id="template-article-sample-request" type="text/x-handlebars-template">
{{#if article.sampleRequest}}
<h2>{{__ "Send a Sample Request"}}</h2>
{{#if article.sampleRequest}}
<div class="well">
<h3>{{__ "Send a Sample Request"}}</h3>
<form class="form-horizontal">
<fieldset>
<div class="form-group">
<label class="col-md-3 control-label" for="{{../id}}-sample-request-url"></label>
<div class="input-group">
<input id="{{../id}}-sample-request-url" type="text" class="form-control sample-request-url" value="{{article.sampleRequest.0.url}}" />
<span class="input-group-addon">{{__ "url"}}</span>
</div>
<div class="form-group">
<label class="col-md-3 control-label" for="{{../id}}-sample-request-url">URL</label>
<div class="input-group">
<span class="input-group-addon">{{__ "url"}}</span>
<input id="{{../id}}-sample-request-url" type="url" class="form-control sample-request-url" value="{{article.sampleRequest.0.url}}" />
</div>
</div>
{{#if article.header}}
{{#if article.header.fields}}
<h3>{{__ "Headers"}}</h3>
{{#each article.header.fields}}
<h4><input type="checkbox" data-sample-request-header-group-id="sample-request-header-{{@index}}" name="{{../id}}-sample-request-header" value="{{@index}}" class="sample-request-header sample-request-switch" checked />{{__ @key}}</h4>
<div class="{{../id}}-sample-request-header-fields">
{{#each this}}
<div class="form-group">
<label class="col-md-3 control-label" for="sample-request-header-field-{{field}}">{{field}}</label>
<div class="input-group">
<input type="text" placeholder="{{field}}" value="{{defaultValue}}" id="sample-request-header-field-{{field}}" class="form-control sample-request-header" data-sample-request-header-name="{{field}}" data-sample-request-header-group="sample-request-header-{{@../index}}">
<span class="input-group-addon">{{{type}}}</span>
<input type="text" id="sample-request-header-field-{{field}}"
class="form-control sample-request-input"
value="{{#if defaultValue}}{{ defaultValue }}{{/if}}"
placeholder="{{#if defaultValue}}{{ defaultValue }}{{else}}{{field}}{{/if}}"
data-family="header"
data-name="{{field}}"
data-group="{{@../index}}">
</div>
</div>
{{/each}}
@ -276,29 +422,54 @@
{{#if article.parameter.fields}}
<h3>{{__ "Parameters"}}</h3>
{{#each article.parameter.fields}}
<h4><input type="checkbox" data-sample-request-param-group-id="sample-request-param-{{@index}}" name="{{../id}}-sample-request-param" value="{{@index}}" class="sample-request-param sample-request-switch" checked/>{{__ @key}}
<div class="col-md-3">
<select name="{{../id}}-sample-header-content-type" class="{{../id}}-sample-request-param-select sample-header-content-type sample-header-content-type-switch">
<option value="undefined" selected>ajax-auto</option>
<option value="body-json" >body/json</option>
<option value="body-form-data" >body/form-data</option>
<option value="auto" selected>ajax-auto</option>
<option value="json" >json</option>
<option value="form-data" >form-data</option>
</select>
</h4>
</div>
<div class="{{../id}}-sample-request-param-body {{../id}}-sample-header-content-type-body hide">
<div class="form-group">
<div class="input-group">
<textarea id="sample-request-body-json" class="form-control sample-request-body" data-sample-request-body-group="sample-request-param-{{@./index}}" rows="6" style="OVERFLOW: visible" {{#if optional}}data-sample-request-param-optional="true"{{/if}}></textarea>
<div class="input-group-addon">json</div>
<textarea id="sample-request-body-json" class="form-control sample-request-body" data-sample-request-body-group="sample-request-param-{{@./index}}" rows="6" style="OVERFLOW: visible" {{#if optional}}data-sample-request-param-optional="true"{{/if}}></textarea>
</div>
</div>
</div>
<div class="{{../id}}-sample-request-param-fields {{../id}}-sample-header-content-type-fields">
{{#each this}}
<div class="form-group">
{{#ifNotObject type}}
<label class="col-md-3 control-label" for="sample-request-param-field-{{field}}">{{field}}</label>
<div class="input-group">
<input id="sample-request-param-field-{{field}}" type="{{setInputType type}}" placeholder="{{field}}" class="form-control sample-request-param" data-sample-request-param-name="{{field}}" data-sample-request-param-group="sample-request-param-{{@../index}}" {{#if optional}}data-sample-request-param-optional="true"{{/if}}>
<div class="input-group-addon">{{{type}}}</div>
{{#if allowedValues}}
<div class="input-group-addon sample-request-select">
<select class="form-control" data-name="{{dot2bracket this}}" data-family="query" data-group="{{@../index}}" {{#if optional}}data-optional="true"{{/if}}>
<option value="" class="empty">&lt;{{__ "No value"}}&gt;</option>
{{#each allowedValues}}
<option {{#ifCond ../defaultValue '===' this}} selected {{/ifCond}}value="{{{removeDblQuotes this}}}">{{{removeDblQuotes this}}}</option>
{{/each}}
</select>
</div>
<input class="invisible">
{{else}}
<div class="sample-request-input-{{type}}-container"><div>
<input id="sample-request-param-field-{{field}}"
class="{{#ifCond type '!==' 'Boolean'}}form-control{{/ifCond}} sample-request-param"
type="{{setInputType type}}"
value="{{#if defaultValue}}{{ defaultValue }}{{/if}}"
placeholder="{{#if defaultValue}}{{ defaultValue }}{{/if}}"
data-name="{{dot2bracket this}}"
data-family="query"
data-group="{{@../index}}"
{{#if optional}}data-optional="true"{{/if}}>
</div></div>
{{/if}}
</div>
{{/ifNotObject}}
</div>
{{/each}}
</div>
@ -306,27 +477,135 @@
{{/if}}
{{/if}}
{{#if article.query}}
<h3>{{__ "Query Parameters"}}</h3>
<div class="{{../id}}-sample-request-param-fields {{../id}}-sample-header-content-type-fields">
{{#each article.query}}
<div class="form-group">
{{#ifNotObject type}}
<label class="col-md-3 control-label" for="sample-request-param-field-{{field}}">{{field}}{{#if optional}} ({{__ "optional"}}){{/if}}</label>
<div class="input-group col-md-6">
<div class="input-group-addon">{{{type}}}</div>
{{#if allowedValues}}
<div class="input-group-addon sample-request-select">
<select class="form-control" data-name="{{dot2bracket this}}" data-family="query" data-group="{{@../index}}" {{#if optional}}data-optional="true"{{/if}}>
<option value="" class="empty">&lt;{{__ "No value"}}&gt;</option>
{{#each allowedValues}}
<option {{#ifCond ../defaultValue '===' this}} selected {{/ifCond}}value="{{{removeDblQuotes this}}}">{{{removeDblQuotes this}}}</option>
{{/each}}
</select>
</div>
<input class="invisible">
{{else}}
<div class="sample-request-input-{{type}}-container"><div>
<input id="sample-request-param-field-{{field}}"
class="{{#ifCond type '!==' 'Boolean'}}form-control{{/ifCond}} sample-request-input"
type="{{setInputType type}}"
value="{{#if defaultValue}}{{ defaultValue }}{{/if}}"
placeholder="{{#if defaultValue}}{{ defaultValue }}{{/if}}"
data-name="{{dot2bracket this}}"
data-family="query"
data-group="{{@../index}}"
{{#if optional}}data-optional="true"{{/if}}>
</div></div>
{{/if}}
</div>
{{/ifNotObject}}
</div>
{{/each}}
</div>
{{/if}}
{{#if article.body}}
<h3>{{__ "Body"}}</h3>
<div class="col-md-3">
<label for="body-content-type-{{this.id}}">{{__ "Content-Type"}}</label>
<select id="body-content-type-{{this.id}}" data-id="{{this.id}}" class="sample-request-content-type-switch form-control">
<option value="body-json" selected>json</option>
<option value="body-form-data">form-data</option>
</select>
</div>
<div class="col-md-9" id="sample-request-body-json-input-{{this.id}}">
<div class="form-group">
<div class="controls pull-right">
<button class="btn btn-primary sample-request-send" data-sample-request-type="{{article.type}}">{{__ "Send"}}</button>
<div class="input-group">
<div class="input-group-addon">json</div>
<textarea class="form-control sample-request-input" rows="6"
data-family="body-json"
data-name={{"body"}}
data-content-type="json"
{{#if optional}}data-optional="true"{{/if}}>{{body2json article.body}}</textarea>
</div>
</div>
<div class="form-group sample-request-response" style="display: none;">
</div>
<div hidden class="col-md-9" id="sample-request-body-form-input-{{this.id}}">
{{#each article.body}}
<div class="form-group">
{{#ifNotObject type}}
<label class="col-md-3 control-label" for="sample-request-param-field-{{field}}">{{field}}</label>
<div class="input-group">
<div class="input-group-addon">{{{type}}}</div>
{{#if allowedValues}}
<div class="input-group-addon sample-request-select">
<select class="form-control" data-name="{{dot2bracket this}}" data-family="body" data-group="{{@../index}}" {{#if optional}}data-optional="true"{{/if}}>
<option value="" class="empty">&lt;{{__ "No value"}}&gt;</option>
{{#each allowedValues}}
<option {{#ifCond ../defaultValue '===' this}} selected {{/ifCond}}value="{{{removeDblQuotes this}}}">{{{removeDblQuotes this}}}</option>
{{/each}}
</select>
</div>
<input class="invisible">
{{else}}
<div class="sample-request-input-{{type}}-container"><div>
<input id="sample-request-param-field-{{field}}"
class="{{#ifCond type '!==' 'Boolean'}}form-control{{/ifCond}} sample-request-input"
type="{{setInputType type}}"
value="{{#ifCond type '!==' 'Boolean'}}{{#if defaultValue}}{{ defaultValue }}{{/if}}{{/ifCond}}"
{{#if checked}}checked{{/if}}
placeholder="{{#if defaultValue}}{{ defaultValue }}{{/if}}"
data-family="body"
data-name="{{dot2bracket this}}"
data-content-type="form"
{{#if optional}}data-optional="true"{{/if}}>
</div></div>
{{/if}}
</div>
{{/ifNotObject}}
</div>
{{/each}}
</div>
{{/if}}
<div class="form-group">
<div class="controls pull-right">
<button class="btn btn-primary bg-primary sample-request-send" data-type="{{article.type}}">{{__ "Send"}}</button>
<button class="btn btn-danger bg-red sample-request-clear" data-type="{{article.type}}">{{__ "Reset"}}</button>
</div>
</div>
<div class="form-group sample-request-response" hidden>
<h3>
{{__ "Response"}}
<button class="btn btn-default btn-xs pull-right sample-request-clear">X</button>
</h3>
<pre data-type="json"><code class="language-json sample-request-response-json"></code></pre>
<pre
data-type="json"
data-prismjs-copy="{{__ "Copy"}}"
data-prismjs-copy-error="{{__ "Press Ctrl+C to copy"}}"
data-prismjs-copy-success="{{__ "copied!"}}"
><code class="language-json sample-request-response-json"></code></pre>
</div>
</fieldset>
</form>
{{/if}}
</div>
{{/if}}
</script>
<script id="template-compare-article" type="text/x-handlebars-template">
<article id="api-{{article.group}}-{{article.name}}-{{article.version}}" {{#if hidden}}class="hide"{{/if}} data-group="{{article.group}}" data-name="{{article.name}}" data-version="{{article.version}}" data-compare-version="{{compare.version}}">
<div class="pull-left">
<h1>{{underscoreToSpace article.group}} - {{{showDiff article.title compare.title}}}</h1>
<h1>{{underscoreToSpace article.groupTitle}} | {{{showDiff article.title compare.title}}}</h1>
</div>
<div class="pull-right">
@ -356,27 +635,34 @@
{{/if}}
{{/if}}
<pre data-type="{{toLowerCase article.type}}"><code class="language-html">{{{showDiff article.url compare.url}}}</code></pre>
<span class="method meth-{{toLowerCase compare.type}}">{{compare.type}}</span>
<pre
data-type="{{toLowerCase article.type}}"
data-prismjs-copy="{{__ "Copy"}}"
data-prismjs-copy-error="{{__ "Press Ctrl+C to copy"}}"
data-prismjs-copy-success="{{__ "copied!"}}"
class="language-html"
>{{{showDiff article.url compare.url}}}</pre>
{{subTemplate "article-compare-permission" article=article compare=compare}}
<ul class="nav nav-tabs nav-tabs-examples">
<ul class="nav nav-tabs nav-tabs-examples" role="tablist">
{{#each_compare_title article.examples compare.examples}}
{{#if typeSame}}
<li{{#if_eq index compare=0}} class="active"{{/if_eq}}>
<a href="#compare-examples-{{../../article.id}}-{{index}}">{{{showDiff source.title compare.title}}}</a>
<li{{#ifCond index '==' 0}} class="active"{{/ifCond}}>
<a href="#compare-examples-{{../article.id}}-{{index}}" role="tab" data-toggle="tab">{{{showDiff source.title compare.title}}}</a>
</li>
{{/if}}
{{#if typeIns}}
<li{{#if_eq index compare=0}} class="active"{{/if_eq}}>
<a href="#compare-examples-{{../../article.id}}-{{index}}"><ins>{{{source.title}}}</ins></a>
<li{{#ifCond index '==' 0}} class="active"{{/ifCond}}>
<a href="#compare-examples-{{../article.id}}-{{index}}"><ins>{{{source.title}}}</ins></a>
</li>
{{/if}}
{{#if typeDel}}
<li{{#if_eq index compare=0}} class="active"{{/if_eq}}>
<a href="#compare-examples-{{../../article.id}}-{{index}}"><del>{{{compare.title}}}</del></a>
<li{{#ifCond index '==' 0}} class="active"{{/ifCond}}>
<a href="#compare-examples-{{../article.id}}-{{index}}"><del>{{{compare.title}}}</del></a>
</li>
{{/if}}
{{/each_compare_title}}
@ -386,27 +672,45 @@
{{#each_compare_title article.examples compare.examples}}
{{#if typeSame}}
<div class="tab-pane{{#if_eq index compare=0}} active{{/if_eq}}" id="compare-examples-{{../../article.id}}-{{index}}">
<pre data-type="{{source.type}}"><code class="language-{{source.type}}">{{{showDiff source.content compare.content}}}</code></pre>
<div class="tab-pane{{#ifCond index '==' 0}} active{{/ifCond}}" id="compare-examples-{{../article.id}}-{{index}}">
<pre
data-type="{{source.type}}"
data-prismjs-copy="{{__ "Copy"}}"
data-prismjs-copy-error="{{__ "Press Ctrl+C to copy"}}"
data-prismjs-copy-success="{{__ "copied!"}}"
><code class="language-diff-{{source.type}} diff-highlight">{{{showDiff source.content compare.content "code"}}}</code></pre>
</div>
{{/if}}
{{#if typeIns}}
<div class="tab-pane{{#if_eq index compare=0}} active{{/if_eq}}" id="compare-examples-{{../../article.id}}-{{index}}">
<pre data-type="{{source.type}}"><code class="language-{{source.type}}">{{{source.content}}}</code></pre>
<div class="tab-pane{{#ifCond index '==' 0}} active{{/ifCond}}" id="compare-examples-{{../article.id}}-{{index}}">
<pre
data-type="{{source.type}}"
data-prismjs-copy="{{__ "Copy"}}"
data-prismjs-copy-error="{{__ "Press Ctrl+C to copy"}}"
data-prismjs-copy-success="{{__ "copied!"}}"
><code class="language-{{source.type}}">{{{source.content}}}</code></pre>
</div>
{{/if}}
{{#if typeDel}}
<div class="tab-pane{{#if_eq index compare=0}} active{{/if_eq}}" id="compare-examples-{{../../article.id}}-{{index}}">
<pre data-type="{{compare.type}}"><code class="language-{{source.type}}">{{{compare.content}}}</code></pre>
<div class="tab-pane{{#ifCond index '==' 0}} active{{/ifCond}}" id="compare-examples-{{../article.id}}-{{index}}">
<pre
data-type="{{compare.type}}"
data-prismjs-copy="{{__ "Copy"}}"
data-prismjs-copy-error="{{__ "Press Ctrl+C to copy"}}"
data-prismjs-copy-success="{{__ "copied!"}}"
><code class="language-{{source.type}}">{{{compare.content}}}</code></pre>
</div>
{{/if}}
{{/each_compare_title}}
</div>
{{subTemplate "article-compare-param-block" source=article.header compare=compare.header _hasType=_hasTypeInHeaderFields section="header"}}
{{subTemplate "article-compare-param-block" source=article.parameter compare=compare.parameter _hasType=_hasTypeInParameterFields section="parameter"}}
{{subTemplate "article-compare-query-block" source=article.query compare=compare.query _hasType=_hasTypeInParameterFields section="query"}}
{{subTemplate "article-compare-body-block" source=article.body compare=compare.body _hasType=_hasTypeInParameterFields section="body"}}
{{subTemplate "article-compare-param-block" source=article.success compare=compare.success _hasType=_hasTypeInSuccessFields section="success"}}
{{subTemplate "article-compare-param-block" source=article.error compare=compare.error _col1="Name" _hasType=_hasTypeInErrorFields section="error"}}
@ -531,23 +835,23 @@
{{/each_compare_keys}}
{{#if source.examples}}
<ul class="nav nav-tabs nav-tabs-examples">
<ul class="nav nav-tabs nav-tabs-examples" role="tablist">
{{#each_compare_title source.examples compare.examples}}
{{#if typeSame}}
<li{{#if_eq index compare=0}} class="active"{{/if_eq}}>
<a href="#{{../../section}}-compare-examples-{{../../article.id}}-{{index}}">{{{showDiff source.title compare.title}}}</a>
<li{{#ifCond index '==' 0}} class="active"{{/ifCond}}>
<a href="#{{../section}}-compare-examples-{{../article.id}}-{{index}}" role="tab" data-toggle="tab">{{{showDiff source.title compare.title}}}</a>
</li>
{{/if}}
{{#if typeIns}}
<li{{#if_eq index compare=0}} class="active"{{/if_eq}}>
<a href="#{{../../section}}-compare-examples-{{../../article.id}}-{{index}}"><ins>{{{source.title}}}</ins></a>
<li{{#ifCond index '==' 0}} class="active"{{/ifCond}}>
<a href="#{{../section}}-compare-examples-{{../article.id}}-{{index}}"><ins>{{{source.title}}}</ins></a>
</li>
{{/if}}
{{#if typeDel}}
<li{{#if_eq index compare=0}} class="active"{{/if_eq}}>
<a href="#{{../../section}}-compare-examples-{{../../article.id}}-{{index}}"><del>{{{compare.title}}}</del></a>
<li{{#ifCond index '==' 0}} class="active"{{/ifCond}}>
<a href="#{{../section}}-compare-examples-{{../article.id}}-{{index}}"><del>{{{compare.title}}}</del></a>
</li>
{{/if}}
{{/each_compare_title}}
@ -557,20 +861,35 @@
{{#each_compare_title source.examples compare.examples}}
{{#if typeSame}}
<div class="tab-pane{{#if_eq index compare=0}} active{{/if_eq}}" id="{{../../section}}-compare-examples-{{../../article.id}}-{{index}}">
<pre data-type="{{source.type}}"><code class="language-{{source.type}}">{{{showDiff source.content compare.content}}}</code></pre>
<div class="tab-pane{{#ifCond index '==' 0}} active{{/ifCond}}" id="{{../section}}-compare-examples-{{../article.id}}-{{index}}">
<pre
data-type="{{source.type}}"
data-prismjs-copy="{{__ "Copy"}}"
data-prismjs-copy-error="{{__ "Press Ctrl+C to copy"}}"
data-prismjs-copy-success="{{__ "copied!"}}"
><code class="language-diff-{{source.type}} diff-highlight">{{{showDiff source.content compare.content "code"}}}</code></pre>
</div>
{{/if}}
{{#if typeIns}}
<div class="tab-pane{{#if_eq index compare=0}} active{{/if_eq}}" id="{{../../section}}-compare-examples-{{../../article.id}}-{{index}}">
<pre data-type="{{source.type}}"><code class="language-{{source.type}}">{{{source.content}}}</code></pre>
<div class="tab-pane{{#ifCond index '==' 0}} active{{/ifCond}}" id="{{../section}}-compare-examples-{{../article.id}}-{{index}}">
<pre
data-type="{{source.type}}"
data-prismjs-copy="{{__ "Copy"}}"
data-prismjs-copy-error="{{__ "Press Ctrl+C to copy"}}"
data-prismjs-copy-success="{{__ "copied!"}}"
><code class="language-{{source.type}}">{{{source.content}}}</code></pre>
</div>
{{/if}}
{{#if typeDel}}
<div class="tab-pane{{#if_eq index compare=0}} active{{/if_eq}}" id="{{../../section}}-compare-examples-{{../../article.id}}-{{index}}">
<pre data-type="{{compare.type}}"><code class="language-{{source.type}}">{{{compare.content}}}</code></pre>
<div class="tab-pane{{#ifCond index '==' 0}} active{{/ifCond}}" id="{{../section}}-compare-examples-{{../article.id}}-{{index}}">
<pre
data-type="{{compare.type}}"
data-prismjs-copy="{{__ "Copy"}}"
data-prismjs-copy-error="{{__ "Press Ctrl+C to copy"}}"
data-prismjs-copy-success="{{__ "copied!"}}"
><code class="language-{{source.type}}">{{{compare.content}}}</code></pre>
</div>
{{/if}}
{{/each_compare_title}}
@ -579,13 +898,49 @@
{{/if}}
</script>
<script id="template-article-compare-query-block" type="text/x-handlebars-template">
{{#if article.query}}
<h2>{{__ "Query Parameter(s)"}}</h2>
<table class="table table-hover">
<thead>
<tr>
<th style="width: 30%">{{#if ../_col1}}{{__ ../_col1}}{{else}}{{__ "Field"}}{{/if}}</th>
{{#unless this.Type compare=null}}
<th style="width: 10%">{{__ "Type"}}</th>
{{/unless}}
<th style="width: {{#if ../_hasType}}60%{{else}}70%{{/if}}">{{__ "Description"}}</th>
</tr>
</thead>
{{subTemplate "article-compare-param-block-body" source=source compare=compare _hasType=this.type}}
</table>
{{/if}}
</script>
<script id="template-article-compare-body-block" type="text/x-handlebars-template">
{{#if article.body}}
<h2>{{__ "Request Body"}}</h2>
<table class="table table-hover">
<thead>
<tr>
<th style="width: 30%">{{#if ../_col1}}{{__ ../_col1}}{{else}}{{__ "Field"}}{{/if}}</th>
{{#unless this.Type compare=null}}
<th style="width: 10%">{{__ "Type"}}</th>
{{/unless}}
<th style="width: {{#if ../_hasType}}60%{{else}}70%{{/if}}">{{__ "Description"}}</th>
</tr>
</thead>
{{subTemplate "article-compare-param-block-body" source=source compare=compare _hasType=this.type}}
</table>
{{/if}}
</script>
<script id="template-article-compare-param-block-body" type="text/x-handlebars-template">
<tbody>
{{#each_compare_field source compare}}
{{#if typeSame}}
<tr>
<td class="code">
{{{splitFill source.field "." "&nbsp;&nbsp;"}}}
{{{nestObject source}}}
{{#if source.optional}}
{{#if compare.optional}} <span class="label label-optional">{{__ "optional"}}</span>
{{else}} <span class="label label-optional label-ins">{{__ "optional"}}</span>
@ -618,7 +973,7 @@
{{#if typeIns}}
<tr class="ins">
<td class="code">
{{{splitFill source.field "." "&nbsp;&nbsp;"}}}
{{{nestObject source}}}
{{#if source.optional}} <span class="label label-optional label-ins">{{__ "optional"}}</span>{{/if}}
</td>
@ -638,7 +993,7 @@
{{#if typeDel}}
<tr class="del">
<td class="code">
{{{splitFill compare.field "." "&nbsp;&nbsp;"}}}
{{{nestObject compare}}}
{{#if compare.optional}} <span class="label label-optional label-del">{{__ "optional"}}</span>{{/if}}
</td>
@ -660,9 +1015,9 @@
</script>
<div class="container-fluid">
<div class="row">
<div id="sidenav" class="span2"></div>
<div id="content">
<div class="row row-offcanvas row-offcanvas-left">
<div id="sidenav" class="col-sm-3 col-lg-2"></div>
<div id="content" class="col-sm-9 col-lg-10">
<div id="project"></div>
<div id="header"></div>
<div id="sections"></div>
@ -687,6 +1042,6 @@
</div>
</div>
<script data-main="main.js" src="vendor/require.min.js"></script>
<script src="assets/main.bundle.js?v=1703484888256"></script>
</body>
</html>

View File

@ -1 +1 @@
import{n}from"./app.7b9537da.js";var r=function(){var e=this,t=e.$createElement;return e._self._c,e._m(0)},a=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"page-404"},[s("div",{staticClass:"flex-center position-ref full-height"},[s("div",{staticClass:"code"},[e._v("404")]),s("div",{staticClass:"message"},[e._v("Not Found")])])])}];const i={},_={};var o=n(i,r,a,!1,c,"7d7154a8",null,null);function c(e){for(let t in _)this[t]=_[t]}var v=function(){return o.exports}();export{v as default};
import{n}from"./app.7d416d31.js";var r=function(){var e=this,t=e.$createElement;return e._self._c,e._m(0)},a=[function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"page-404"},[s("div",{staticClass:"flex-center position-ref full-height"},[s("div",{staticClass:"code"},[e._v("404")]),s("div",{staticClass:"message"},[e._v("Not Found")])])])}];const i={},_={};var o=n(i,r,a,!1,c,"7d7154a8",null,null);function c(e){for(let t in _)this[t]=_[t]}var v=function(){return o.exports}();export{v as default};

View File

@ -1 +1 @@
import{m as h,n as l}from"./app.7b9537da.js";const d={name:"AceEditor",props:{value:{default:""},options:{type:Object,default:()=>({})},theme:{type:String,default:"auto"},ext:{type:String,default:"txt"},height:{type:Number||null,default:null},width:{type:Number||null,default:null},wrap:{type:Boolean,default:!1},readOnly:{type:Boolean,default:!1}},render(e){return e("div",{class:"no-dark-content"})},data:()=>({code:"",editor:null,cursorPosition:{row:0,column:0},supportedModes:{Apache_Conf:["^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd"],BatchFile:["bat|cmd"],C_Cpp:["cpp|c|cc|cxx|h|hh|hpp|ino"],CSharp:["cs"],CSS:["css"],Dockerfile:["^Dockerfile"],golang:["go|golang"],HTML:["html|htm|xhtml|vue|we|wpy"],Java:["java"],JavaScript:["js|jsm|jsx"],JSON:["json"],JSP:["jsp"],LESS:["less"],Lua:["lua"],Makefile:["^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make"],Markdown:["md|markdown"],MySQL:["mysql"],Nginx:["nginx|conf"],INI:["ini|conf|cfg|prefs"],ObjectiveC:["m|mm"],Perl:["pl|pm"],Perl6:["p6|pl6|pm6"],pgSQL:["pgsql"],PHP_Laravel_blade:["blade.php"],PHP:["php|inc|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module"],Powershell:["ps1"],Python:["py"],R:["r"],Ruby:["rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile"],Rust:["rs"],SASS:["sass"],SCSS:["scss"],SH:["sh|bash|^.bashrc"],SQL:["sql"],SQLServer:["sqlserver"],Swift:["swift"],Text:["txt"],Typescript:["ts|typescript|str"],VBScript:["vbs|vb"],Verilog:["v|vh|sv|svh"],XML:["xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml|plist"],YAML:["yaml|yml"],Compress:["tar|zip|7z|rar|gz|arj|z"],images:["icon|jpg|jpeg|webp|png|bmp|gif|tif|emf"]}}),mounted(){$A.loadScriptS(["js/ace/ace.js","js/ace/mode-json.js"]).then(e=>{this.setSize(this.$el,{height:this.height,width:this.width}),this.editor=window.ace.edit(this.$el,{wrap:this.wrap,showPrintMargin:!1,readOnly:this.readOnly,keyboardHandler:"vscode"}),this.editor.session.setMode(`ace/mode/${this.getFileMode()}`),this.$emit("mounted",this.editor),this.editor.session.$worker&&this.editor.session.$worker.addEventListener("annotate",this.workerMessage,!1),this.setValue(this.value),this.editor.setOptions(this.options),this.editTheme&&this.editor.setTheme(`ace/theme/${this.editTheme}`),this.editor.commands.addCommand({name:"\u4FDD\u5B58\u6587\u4EF6",bindKey:{win:"Ctrl-S",mac:"Command-S"},exec:()=>{this.$emit("saveData")},readOnly:!1}),this.editor.getSession().on("change",()=>{this.code=this.editor.getValue(),this.$emit("input",this.code)})})},methods:{workerMessage({data:e}){this.cursorPosition=this.editor.selection.getCursor();const[t]=e;t&&t.type==="error"?this.$emit("validationFailed",t):this.$emit("change",this.editor.getValue())},setSize(e,{width:t=this.width,height:s=this.height}){e.style.width=t&&typeof t=="number"?`${t}px`:"100%",e.style.height=s&&typeof s=="number"?`${s}px`:"100%",this.$nextTick(()=>this.editor&&this.editor.resize())},setValue(e){typeof e=="string"&&this.editor&&(this.editor.setValue(e),this.editor.clearSelection())},getFileMode(){var e=this.ext||"text";for(var t in this.supportedModes)for(var s=this.supportedModes[t],r=s[0].split("|"),a=t.toLowerCase(),i=0;i<r.length;i++)if(e==r[i])return a;return"text"}},computed:{...h(["themeIsDark"]),editTheme(){return this.theme=="auto"?this.themeIsDark?"dracula-dark":"chrome":this.theme}},watch:{options(e){e&&typeof e=="object"&&this.editor&&this.editor.setOptions(e)},editTheme(e){e&&typeof e=="string"&&this.editor&&this.editor.setTheme(`ace/theme/${e}`)},ext(e){e&&typeof e=="string"&&this.editor&&this.editor.session.setMode(`ace/mode/${this.getFileMode()}`)},width(e){this.setSize(this.el,{width:e})},height(e){this.setSize(this.el,{height:e})},readOnly(e){typeof e=="boolean"&&this.editor&&this.editor.setReadOnly(e)},value(e){if(!this.editor||e==this.code)return;this.setValue(e);const{row:t,column:s}=this.cursorPosition;this.editor.selection.moveCursorTo(t,s)}},beforeDestroy(){this.editor&&(this.editor.session.$worker&&this.editor.session.$worker.removeEventListener("message",this.workerMessage,!1),this.editor.destroy(),this.editor.container.remove())}};let n,p;const o={};var c=l(d,n,p,!1,m,null,null,null);function m(e){for(let t in o)this[t]=o[t]}var f=function(){return c.exports}();export{f as default};
import{m as h,n as l}from"./app.7d416d31.js";const d={name:"AceEditor",props:{value:{default:""},options:{type:Object,default:()=>({})},theme:{type:String,default:"auto"},ext:{type:String,default:"txt"},height:{type:Number||null,default:null},width:{type:Number||null,default:null},wrap:{type:Boolean,default:!1},readOnly:{type:Boolean,default:!1}},render(e){return e("div",{class:"no-dark-content"})},data:()=>({code:"",editor:null,cursorPosition:{row:0,column:0},supportedModes:{Apache_Conf:["^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd"],BatchFile:["bat|cmd"],C_Cpp:["cpp|c|cc|cxx|h|hh|hpp|ino"],CSharp:["cs"],CSS:["css"],Dockerfile:["^Dockerfile"],golang:["go|golang"],HTML:["html|htm|xhtml|vue|we|wpy"],Java:["java"],JavaScript:["js|jsm|jsx"],JSON:["json"],JSP:["jsp"],LESS:["less"],Lua:["lua"],Makefile:["^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make"],Markdown:["md|markdown"],MySQL:["mysql"],Nginx:["nginx|conf"],INI:["ini|conf|cfg|prefs"],ObjectiveC:["m|mm"],Perl:["pl|pm"],Perl6:["p6|pl6|pm6"],pgSQL:["pgsql"],PHP_Laravel_blade:["blade.php"],PHP:["php|inc|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module"],Powershell:["ps1"],Python:["py"],R:["r"],Ruby:["rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile"],Rust:["rs"],SASS:["sass"],SCSS:["scss"],SH:["sh|bash|^.bashrc"],SQL:["sql"],SQLServer:["sqlserver"],Swift:["swift"],Text:["txt"],Typescript:["ts|typescript|str"],VBScript:["vbs|vb"],Verilog:["v|vh|sv|svh"],XML:["xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml|plist"],YAML:["yaml|yml"],Compress:["tar|zip|7z|rar|gz|arj|z"],images:["icon|jpg|jpeg|webp|png|bmp|gif|tif|emf"]}}),mounted(){$A.loadScriptS(["js/ace/ace.js","js/ace/mode-json.js"]).then(e=>{this.setSize(this.$el,{height:this.height,width:this.width}),this.editor=window.ace.edit(this.$el,{wrap:this.wrap,showPrintMargin:!1,readOnly:this.readOnly,keyboardHandler:"vscode"}),this.editor.session.setMode(`ace/mode/${this.getFileMode()}`),this.$emit("mounted",this.editor),this.editor.session.$worker&&this.editor.session.$worker.addEventListener("annotate",this.workerMessage,!1),this.setValue(this.value),this.editor.setOptions(this.options),this.editTheme&&this.editor.setTheme(`ace/theme/${this.editTheme}`),this.editor.commands.addCommand({name:"\u4FDD\u5B58\u6587\u4EF6",bindKey:{win:"Ctrl-S",mac:"Command-S"},exec:()=>{this.$emit("saveData")},readOnly:!1}),this.editor.getSession().on("change",()=>{this.code=this.editor.getValue(),this.$emit("input",this.code)})})},methods:{workerMessage({data:e}){this.cursorPosition=this.editor.selection.getCursor();const[t]=e;t&&t.type==="error"?this.$emit("validationFailed",t):this.$emit("change",this.editor.getValue())},setSize(e,{width:t=this.width,height:s=this.height}){e.style.width=t&&typeof t=="number"?`${t}px`:"100%",e.style.height=s&&typeof s=="number"?`${s}px`:"100%",this.$nextTick(()=>this.editor&&this.editor.resize())},setValue(e){typeof e=="string"&&this.editor&&(this.editor.setValue(e),this.editor.clearSelection())},getFileMode(){var e=this.ext||"text";for(var t in this.supportedModes)for(var s=this.supportedModes[t],r=s[0].split("|"),a=t.toLowerCase(),i=0;i<r.length;i++)if(e==r[i])return a;return"text"}},computed:{...h(["themeIsDark"]),editTheme(){return this.theme=="auto"?this.themeIsDark?"dracula-dark":"chrome":this.theme}},watch:{options(e){e&&typeof e=="object"&&this.editor&&this.editor.setOptions(e)},editTheme(e){e&&typeof e=="string"&&this.editor&&this.editor.setTheme(`ace/theme/${e}`)},ext(e){e&&typeof e=="string"&&this.editor&&this.editor.session.setMode(`ace/mode/${this.getFileMode()}`)},width(e){this.setSize(this.el,{width:e})},height(e){this.setSize(this.el,{height:e})},readOnly(e){typeof e=="boolean"&&this.editor&&this.editor.setReadOnly(e)},value(e){if(!this.editor||e==this.code)return;this.setValue(e);const{row:t,column:s}=this.cursorPosition;this.editor.selection.moveCursorTo(t,s)}},beforeDestroy(){this.editor&&(this.editor.session.$worker&&this.editor.session.$worker.removeEventListener("message",this.workerMessage,!1),this.editor.destroy(),this.editor.container.remove())}};let n,p;const o={};var c=l(d,n,p,!1,m,null,null,null);function m(e){for(let t in o)this[t]=o[t]}var f=function(){return c.exports}();export{f as default};

View File

@ -1 +1 @@
import{n}from"./app.7b9537da.js";var l=function(){var t=this,o=t.$createElement,e=t._self._c||o;return e("Modal",{attrs:{title:t.$L("\u5BFC\u51FA\u5BA1\u6279\u6570\u636E"),"mask-closable":!1},model:{value:t.show,callback:function(a){t.show=a},expression:"show"}},[e("Form",{ref:"exportTask",attrs:{model:t.formData,"label-width":"auto"},nativeOn:{submit:function(a){a.preventDefault()}}},[e("FormItem",{attrs:{label:t.$L("\u5BA1\u6279\u7C7B\u578B")}},[e("Select",{on:{"on-open-change":t.getProcName},model:{value:t.formData.proc_def_name,callback:function(a){t.$set(t.formData,"proc_def_name",a)},expression:"formData.proc_def_name"}},t._l(t.procList,function(a,s){return e("Option",{key:s,attrs:{value:a.name}},[t._v(t._s(a.name))])}),1)],1),e("FormItem",{attrs:{label:t.$L("\u65F6\u95F4\u8303\u56F4")}},[e("DatePicker",{staticStyle:{width:"100%"},attrs:{type:"daterange",format:"yyyy/MM/dd",placeholder:t.$L("\u8BF7\u9009\u62E9\u65F6\u95F4")},model:{value:t.formData.date,callback:function(a){t.$set(t.formData,"date",a)},expression:"formData.date"}}),e("div",{staticClass:"form-tip checkin-export-quick-select"},[e("span",[t._v(t._s(t.$L("\u5FEB\u6377\u9009\u62E9"))+":")]),e("em",{on:{click:function(a){t.formData.date=t.dateShortcuts("prev")}}},[t._v(t._s(t.$L("\u4E0A\u4E2A\u6708")))]),e("em",{on:{click:function(a){t.formData.date=t.dateShortcuts("this")}}},[t._v(t._s(t.$L("\u8FD9\u4E2A\u6708")))])])],1),e("FormItem",{attrs:{prop:"type",label:t.$L("\u5BFC\u51FA\u7C7B\u578B")}},[e("RadioGroup",{model:{value:t.formData.is_finished,callback:function(a){t.$set(t.formData,"is_finished",a)},expression:"formData.is_finished"}},[e("Radio",{attrs:{label:"0"}},[t._v(t._s(t.$L("\u672A\u5B8C\u6210")))]),e("Radio",{attrs:{label:"1"}},[t._v(t._s(t.$L("\u5DF2\u5B8C\u6210")))])],1)],1)],1),e("div",{staticClass:"adaption",attrs:{slot:"footer"},slot:"footer"},[e("Button",{attrs:{type:"default"},on:{click:function(a){t.show=!1}}},[t._v(t._s(t.$L("\u53D6\u6D88")))]),e("Button",{attrs:{type:"primary",loading:t.loadIng>0},on:{click:t.onExport}},[t._v(t._s(t.$L("\u5BFC\u51FA")))])],1)],1)},i=[];const c={name:"ApproveExport",props:{value:{type:Boolean,default:!1}},data(){return{show:this.value,loadIng:0,formData:{proc_def_name:"",date:[],is_finished:"1"},procList:[]}},watch:{value(t){this.show=t},show(t){this.value!==t&&this.$emit("input",t)}},methods:{dateShortcuts(t){if(t==="prev")return[$A.getSpecifyDate("\u4E0A\u4E2A\u6708"),$A.getSpecifyDate("\u4E0A\u4E2A\u6708\u7ED3\u675F")];if(t==="this")return[$A.getSpecifyDate("\u672C\u6708"),$A.getSpecifyDate("\u672C\u6708\u7ED3\u675F")]},getProcName(){this.loadIng++,this.$store.dispatch("call",{url:"approve/procdef/all",method:"post"}).then(({data:t})=>{this.procList=t.rows}).catch(({msg:t})=>{$A.modalError(t)}).finally(t=>{this.loadIng--})},onExport(){this.loadIng>0||(this.loadIng++,this.$store.dispatch("call",{url:"approve/export",data:this.formData}).then(({data:t})=>{this.show=!1,this.$store.dispatch("downUrl",{url:t.url})}).catch(({msg:t})=>{$A.modalError(t)}).finally(t=>{this.loadIng--}))}}},r={};var p=n(c,l,i,!1,d,null,null,null);function d(t){for(let o in r)this[o]=r[o]}var _=function(){return p.exports}();export{_ as A};
import{n}from"./app.7d416d31.js";var l=function(){var t=this,o=t.$createElement,e=t._self._c||o;return e("Modal",{attrs:{title:t.$L("\u5BFC\u51FA\u5BA1\u6279\u6570\u636E"),"mask-closable":!1},model:{value:t.show,callback:function(a){t.show=a},expression:"show"}},[e("Form",{ref:"exportTask",attrs:{model:t.formData,"label-width":"auto"},nativeOn:{submit:function(a){a.preventDefault()}}},[e("FormItem",{attrs:{label:t.$L("\u5BA1\u6279\u7C7B\u578B")}},[e("Select",{on:{"on-open-change":t.getProcName},model:{value:t.formData.proc_def_name,callback:function(a){t.$set(t.formData,"proc_def_name",a)},expression:"formData.proc_def_name"}},t._l(t.procList,function(a,s){return e("Option",{key:s,attrs:{value:a.name}},[t._v(t._s(a.name))])}),1)],1),e("FormItem",{attrs:{label:t.$L("\u65F6\u95F4\u8303\u56F4")}},[e("DatePicker",{staticStyle:{width:"100%"},attrs:{type:"daterange",format:"yyyy/MM/dd",placeholder:t.$L("\u8BF7\u9009\u62E9\u65F6\u95F4")},model:{value:t.formData.date,callback:function(a){t.$set(t.formData,"date",a)},expression:"formData.date"}}),e("div",{staticClass:"form-tip checkin-export-quick-select"},[e("span",[t._v(t._s(t.$L("\u5FEB\u6377\u9009\u62E9"))+":")]),e("em",{on:{click:function(a){t.formData.date=t.dateShortcuts("prev")}}},[t._v(t._s(t.$L("\u4E0A\u4E2A\u6708")))]),e("em",{on:{click:function(a){t.formData.date=t.dateShortcuts("this")}}},[t._v(t._s(t.$L("\u8FD9\u4E2A\u6708")))])])],1),e("FormItem",{attrs:{prop:"type",label:t.$L("\u5BFC\u51FA\u7C7B\u578B")}},[e("RadioGroup",{model:{value:t.formData.is_finished,callback:function(a){t.$set(t.formData,"is_finished",a)},expression:"formData.is_finished"}},[e("Radio",{attrs:{label:"0"}},[t._v(t._s(t.$L("\u672A\u5B8C\u6210")))]),e("Radio",{attrs:{label:"1"}},[t._v(t._s(t.$L("\u5DF2\u5B8C\u6210")))])],1)],1)],1),e("div",{staticClass:"adaption",attrs:{slot:"footer"},slot:"footer"},[e("Button",{attrs:{type:"default"},on:{click:function(a){t.show=!1}}},[t._v(t._s(t.$L("\u53D6\u6D88")))]),e("Button",{attrs:{type:"primary",loading:t.loadIng>0},on:{click:t.onExport}},[t._v(t._s(t.$L("\u5BFC\u51FA")))])],1)],1)},i=[];const c={name:"ApproveExport",props:{value:{type:Boolean,default:!1}},data(){return{show:this.value,loadIng:0,formData:{proc_def_name:"",date:[],is_finished:"1"},procList:[]}},watch:{value(t){this.show=t},show(t){this.value!==t&&this.$emit("input",t)}},methods:{dateShortcuts(t){if(t==="prev")return[$A.getSpecifyDate("\u4E0A\u4E2A\u6708"),$A.getSpecifyDate("\u4E0A\u4E2A\u6708\u7ED3\u675F")];if(t==="this")return[$A.getSpecifyDate("\u672C\u6708"),$A.getSpecifyDate("\u672C\u6708\u7ED3\u675F")]},getProcName(){this.loadIng++,this.$store.dispatch("call",{url:"approve/procdef/all",method:"post"}).then(({data:t})=>{this.procList=t.rows}).catch(({msg:t})=>{$A.modalError(t)}).finally(t=>{this.loadIng--})},onExport(){this.loadIng>0||(this.loadIng++,this.$store.dispatch("call",{url:"approve/export",data:this.formData}).then(({data:t})=>{this.show=!1,this.$store.dispatch("downUrl",{url:t.url})}).catch(({msg:t})=>{$A.modalError(t)}).finally(t=>{this.loadIng--}))}}},r={};var p=n(c,l,i,!1,d,null,null,null);function d(t){for(let o in r)this[o]=r[o]}var _=function(){return p.exports}();export{_ as A};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{m as o,n as l,l as s}from"./app.7b9537da.js";import{I as d}from"./IFrame.1636beca.js";var u=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"drawio-content"},[a("IFrame",{ref:"frame",staticClass:"drawio-iframe",attrs:{src:e.url},on:{"on-message":e.onMessage}}),e.loadIng?a("div",{staticClass:"drawio-loading"},[a("Loading")],1):e._e()],1)},m=[];const c={name:"Drawio",components:{IFrame:d},props:{value:{type:Object,default:function(){return{}}},title:{type:String,default:""},readOnly:{type:Boolean,default:!1}},data(){return{loadIng:!0,url:null,bakData:""}},created(){let e=s;switch(s){case"zh-CHT":e="zh-tw";break}let t=this.readOnly?1:0,a=this.readOnly?0:1,r=this.themeIsDark?"dark":"kennedy",n=`?title=${this.title?encodeURIComponent(this.title):""}&chrome=${a}&lightbox=${t}&ui=${r}&lang=${e}&offline=1&pwa=0&embed=1&noLangIcon=1&noExitBtn=1&noSaveBtn=1&saveAndExit=0&spin=1&proto=json`;this.$Electron?this.url=$A.originUrl(`drawio/webapp/index.html${n}`):this.url=$A.apiUrl(`../drawio/webapp/${n}`)},mounted(){window.addEventListener("message",this.handleMessage)},beforeDestroy(){window.removeEventListener("message",this.handleMessage)},watch:{value:{handler(e){this.bakData!=$A.jsonStringify(e)&&(this.bakData=$A.jsonStringify(e),this.updateContent())},deep:!0}},computed:{...o(["themeIsDark"])},methods:{formatZoom(e){return e+"%"},updateContent(){this.$refs.frame.postMessage(JSON.stringify({action:"load",autosave:1,xml:this.value.xml}))},onMessage(e){switch(e.event){case"init":this.loadIng=!1,this.updateContent();break;case"load":typeof this.value.xml=="undefined"&&this.$refs.frame.postMessage(JSON.stringify({action:"template"}));break;case"autosave":const t={xml:e.xml};this.bakData=$A.jsonStringify(t),this.$emit("input",t);break;case"save":this.$emit("saveData");break}}}},i={};var h=l(c,u,m,!1,f,"6b690a27",null,null);function f(e){for(let t in i)this[t]=i[t]}var _=function(){return h.exports}();export{_ as default};
import{m as o,n as l,l as s}from"./app.7d416d31.js";import{I as d}from"./IFrame.eb1e20bb.js";var u=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"drawio-content"},[a("IFrame",{ref:"frame",staticClass:"drawio-iframe",attrs:{src:e.url},on:{"on-message":e.onMessage}}),e.loadIng?a("div",{staticClass:"drawio-loading"},[a("Loading")],1):e._e()],1)},m=[];const c={name:"Drawio",components:{IFrame:d},props:{value:{type:Object,default:function(){return{}}},title:{type:String,default:""},readOnly:{type:Boolean,default:!1}},data(){return{loadIng:!0,url:null,bakData:""}},created(){let e=s;switch(s){case"zh-CHT":e="zh-tw";break}let t=this.readOnly?1:0,a=this.readOnly?0:1,r=this.themeIsDark?"dark":"kennedy",n=`?title=${this.title?encodeURIComponent(this.title):""}&chrome=${a}&lightbox=${t}&ui=${r}&lang=${e}&offline=1&pwa=0&embed=1&noLangIcon=1&noExitBtn=1&noSaveBtn=1&saveAndExit=0&spin=1&proto=json`;this.$Electron?this.url=$A.originUrl(`drawio/webapp/index.html${n}`):this.url=$A.apiUrl(`../drawio/webapp/${n}`)},mounted(){window.addEventListener("message",this.handleMessage)},beforeDestroy(){window.removeEventListener("message",this.handleMessage)},watch:{value:{handler(e){this.bakData!=$A.jsonStringify(e)&&(this.bakData=$A.jsonStringify(e),this.updateContent())},deep:!0}},computed:{...o(["themeIsDark"])},methods:{formatZoom(e){return e+"%"},updateContent(){this.$refs.frame.postMessage(JSON.stringify({action:"load",autosave:1,xml:this.value.xml}))},onMessage(e){switch(e.event){case"init":this.loadIng=!1,this.updateContent();break;case"load":typeof this.value.xml=="undefined"&&this.$refs.frame.postMessage(JSON.stringify({action:"template"}));break;case"autosave":const t={xml:e.xml};this.bakData=$A.jsonStringify(t),this.$emit("input",t);break;case"save":this.$emit("saveData");break}}}},i={};var h=l(c,u,m,!1,f,"6b690a27",null,null);function f(e){for(let t in i)this[t]=i[t]}var _=function(){return h.exports}();export{_ as default};

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{n as r,_ as n}from"./app.7b9537da.js";import{I as a}from"./IFrame.1636beca.js";var l=function(){var e=this,i=e.$createElement,t=e._self._c||i;return t("div",{staticClass:"file-preview"},[e.isPreview?t("IFrame",{staticClass:"preview-iframe",attrs:{src:e.previewUrl},on:{"on-load":e.onFrameLoad}}):e.contentDetail?[t("div",{directives:[{name:"show",rawName:"v-show",value:e.headerShow&&!["word","excel","ppt"].includes(e.file.type),expression:"headerShow && !['word', 'excel', 'ppt'].includes(file.type)"}],staticClass:"edit-header"},[t("div",{staticClass:"header-title"},[t("div",{staticClass:"title-name"},[e._v(e._s(e.$A.getFileName(e.file)))]),t("Tag",{attrs:{color:"default"}},[e._v(e._s(e.$L("\u53EA\u8BFB")))]),t("div",{staticClass:"refresh"},[e.contentLoad?t("Loading"):t("Icon",{attrs:{type:"ios-refresh"},on:{click:e.getContent}})],1)],1)]),t("div",{staticClass:"content-body"},[e.file.type=="document"?[e.contentDetail.type=="md"?t("MDPreview",{attrs:{initialValue:e.contentDetail.content}}):t("TEditor",{attrs:{value:e.contentDetail.content,height:"100%",readOnly:""}})]:e.file.type=="drawio"?t("Drawio",{ref:"myFlow",attrs:{value:e.contentDetail,title:e.file.name,readOnly:""}}):e.file.type=="mind"?t("Minder",{ref:"myMind",attrs:{value:e.contentDetail,readOnly:""}}):["code","txt"].includes(e.file.type)?t("AceEditor",{attrs:{value:e.contentDetail.content,ext:e.file.ext,readOnly:""}}):["word","excel","ppt"].includes(e.file.type)?t("OnlyOffice",{attrs:{value:e.contentDetail,code:e.code,historyId:e.historyId,documentKey:e.documentKey,readOnly:""}}):e._e()],2)]:e._e(),e.contentLoad?t("div",{staticClass:"content-load"},[t("Loading")],1):e._e()],2)},s=[];const d=()=>n(()=>import("./preview.59685de6.js"),["js/build/preview.59685de6.js","js/build/app.7b9537da.js","js/build/app.9141377f.css"]),c=()=>n(()=>import("./TEditor.a6422506.js"),["js/build/TEditor.a6422506.js","js/build/app.7b9537da.js","js/build/app.9141377f.css","js/build/ImgUpload.0ea1891a.js"]),u=()=>n(()=>import("./AceEditor.85fce2b7.js"),["js/build/AceEditor.85fce2b7.js","js/build/app.7b9537da.js","js/build/app.9141377f.css"]),_=()=>n(()=>import("./OnlyOffice.f07263f2.js"),["js/build/OnlyOffice.f07263f2.js","js/build/OnlyOffice.97177ac3.css","js/build/app.7b9537da.js","js/build/app.9141377f.css","js/build/IFrame.1636beca.js"]),h=()=>n(()=>import("./Drawio.394b2772.js"),["js/build/Drawio.394b2772.js","js/build/Drawio.fc5c6326.css","js/build/app.7b9537da.js","js/build/app.9141377f.css","js/build/IFrame.1636beca.js"]),p=()=>n(()=>import("./Minder.221613f7.js"),["js/build/Minder.221613f7.js","js/build/Minder.3ba64342.css","js/build/IFrame.1636beca.js","js/build/app.7b9537da.js","js/build/app.9141377f.css"]),v={name:"FilePreview",components:{IFrame:a,AceEditor:u,TEditor:c,MDPreview:d,OnlyOffice:_,Drawio:h,Minder:p},props:{code:{type:String,default:""},historyId:{type:Number,default:0},file:{type:Object,default:()=>({})},headerShow:{type:Boolean,default:!0}},data(){return{loadContent:0,contentDetail:null,loadPreview:!0}},watch:{"file.id":{handler(e){e&&(this.contentDetail=null,this.getContent())},immediate:!0,deep:!0}},computed:{contentLoad(){return this.loadContent>0||this.previewLoad},isPreview(){return this.contentDetail&&this.contentDetail.preview===!0},previewLoad(){return this.isPreview&&this.loadPreview===!0},previewUrl(){if(this.isPreview){const{name:e,key:i}=this.contentDetail;return $A.apiUrl(`../online/preview/${e}?key=${i}`)}return""}},methods:{onFrameLoad(){this.loadPreview=!1},getContent(){if(["word","excel","ppt"].includes(this.file.type)){this.contentDetail=$A.cloneJSON(this.file);return}setTimeout(e=>{this.loadContent++},600),this.$store.dispatch("call",{url:"file/content",data:{id:this.code||this.file.id,history_id:this.historyId}}).then(({data:e})=>{this.contentDetail=e.content}).catch(({msg:e})=>{$A.modalError(e)}).finally(e=>{this.loadContent--})},documentKey(){return new Promise(e=>{this.$store.dispatch("call",{url:"file/content",data:{id:this.code||this.file.id,only_update_at:"yes"}}).then(({data:i})=>{e(`${i.id}-${$A.Time(i.update_at)}`)}).catch(()=>{e(0)})})},exportMenu(e){switch(this.file.type){case"mind":this.$refs.myMind.exportHandle(e,this.file.name);break}}}},o={};var f=r(v,l,s,!1,m,null,null,null);function m(e){for(let i in o)this[i]=o[i]}var D=function(){return f.exports}();export{D as default};
import{n as r,_ as n}from"./app.7d416d31.js";import{I as a}from"./IFrame.eb1e20bb.js";var l=function(){var e=this,i=e.$createElement,t=e._self._c||i;return t("div",{staticClass:"file-preview"},[e.isPreview?t("IFrame",{staticClass:"preview-iframe",attrs:{src:e.previewUrl},on:{"on-load":e.onFrameLoad}}):e.contentDetail?[t("div",{directives:[{name:"show",rawName:"v-show",value:e.headerShow&&!["word","excel","ppt"].includes(e.file.type),expression:"headerShow && !['word', 'excel', 'ppt'].includes(file.type)"}],staticClass:"edit-header"},[t("div",{staticClass:"header-title"},[t("div",{staticClass:"title-name"},[e._v(e._s(e.$A.getFileName(e.file)))]),t("Tag",{attrs:{color:"default"}},[e._v(e._s(e.$L("\u53EA\u8BFB")))]),t("div",{staticClass:"refresh"},[e.contentLoad?t("Loading"):t("Icon",{attrs:{type:"ios-refresh"},on:{click:e.getContent}})],1)],1)]),t("div",{staticClass:"content-body"},[e.file.type=="document"?[e.contentDetail.type=="md"?t("MDPreview",{attrs:{initialValue:e.contentDetail.content}}):t("TEditor",{attrs:{value:e.contentDetail.content,height:"100%",readOnly:""}})]:e.file.type=="drawio"?t("Drawio",{ref:"myFlow",attrs:{value:e.contentDetail,title:e.file.name,readOnly:""}}):e.file.type=="mind"?t("Minder",{ref:"myMind",attrs:{value:e.contentDetail,readOnly:""}}):["code","txt"].includes(e.file.type)?t("AceEditor",{attrs:{value:e.contentDetail.content,ext:e.file.ext,readOnly:""}}):["word","excel","ppt"].includes(e.file.type)?t("OnlyOffice",{attrs:{value:e.contentDetail,code:e.code,historyId:e.historyId,documentKey:e.documentKey,readOnly:""}}):e._e()],2)]:e._e(),e.contentLoad?t("div",{staticClass:"content-load"},[t("Loading")],1):e._e()],2)},s=[];const d=()=>n(()=>import("./preview.17f61613.js"),["js/build/preview.17f61613.js","js/build/app.7d416d31.js","js/build/app.c3e7b3d4.css"]),c=()=>n(()=>import("./TEditor.3f7afdfb.js"),["js/build/TEditor.3f7afdfb.js","js/build/app.7d416d31.js","js/build/app.c3e7b3d4.css","js/build/ImgUpload.24b2ef1e.js"]),u=()=>n(()=>import("./AceEditor.8b42aa0d.js"),["js/build/AceEditor.8b42aa0d.js","js/build/app.7d416d31.js","js/build/app.c3e7b3d4.css"]),_=()=>n(()=>import("./OnlyOffice.4c0823f3.js"),["js/build/OnlyOffice.4c0823f3.js","js/build/OnlyOffice.d095e45d.css","js/build/app.7d416d31.js","js/build/app.c3e7b3d4.css","js/build/IFrame.eb1e20bb.js"]),h=()=>n(()=>import("./Drawio.9adade4e.js"),["js/build/Drawio.9adade4e.js","js/build/Drawio.fc5c6326.css","js/build/app.7d416d31.js","js/build/app.c3e7b3d4.css","js/build/IFrame.eb1e20bb.js"]),p=()=>n(()=>import("./Minder.7a74b4ef.js"),["js/build/Minder.7a74b4ef.js","js/build/Minder.3ba64342.css","js/build/IFrame.eb1e20bb.js","js/build/app.7d416d31.js","js/build/app.c3e7b3d4.css"]),v={name:"FilePreview",components:{IFrame:a,AceEditor:u,TEditor:c,MDPreview:d,OnlyOffice:_,Drawio:h,Minder:p},props:{code:{type:String,default:""},historyId:{type:Number,default:0},file:{type:Object,default:()=>({})},headerShow:{type:Boolean,default:!0}},data(){return{loadContent:0,contentDetail:null,loadPreview:!0}},watch:{"file.id":{handler(e){e&&(this.contentDetail=null,this.getContent())},immediate:!0,deep:!0}},computed:{contentLoad(){return this.loadContent>0||this.previewLoad},isPreview(){return this.contentDetail&&this.contentDetail.preview===!0},previewLoad(){return this.isPreview&&this.loadPreview===!0},previewUrl(){if(this.isPreview){const{name:e,key:i}=this.contentDetail;return $A.apiUrl(`../online/preview/${e}?key=${i}`)}return""}},methods:{onFrameLoad(){this.loadPreview=!1},getContent(){if(["word","excel","ppt"].includes(this.file.type)){this.contentDetail=$A.cloneJSON(this.file);return}setTimeout(e=>{this.loadContent++},600),this.$store.dispatch("call",{url:"file/content",data:{id:this.code||this.file.id,history_id:this.historyId}}).then(({data:e})=>{this.contentDetail=e.content}).catch(({msg:e})=>{$A.modalError(e)}).finally(e=>{this.loadContent--})},documentKey(){return new Promise((e,i)=>{this.$store.dispatch("call",{url:"file/content",data:{id:this.code||this.file.id,only_update_at:"yes"}}).then(({data:t})=>{e(`${t.id}-${$A.Time(t.update_at)}`)}).catch(t=>{i(t)})})},exportMenu(e){switch(this.file.type){case"mind":this.$refs.myMind.exportHandle(e,this.file.name);break}}}},o={};var f=r(v,l,s,!1,m,null,null,null);function m(e){for(let i in o)this[i]=o[i]}var D=function(){return f.exports}();export{D as default};

View File

@ -1 +1 @@
import{n}from"./app.7b9537da.js";var i=function(){var e=this,s=e.$createElement,r=e._self._c||s;return r("iframe",{directives:[{name:"show",rawName:"v-show",value:e.src,expression:"src"}],ref:"iframe",attrs:{src:e.src}})},a=[];const o={name:"IFrame",props:{src:{type:String,default:""}},mounted(){this.$refs.iframe.addEventListener("load",this.handleLoad),window.addEventListener("message",this.handleMessage)},beforeDestroy(){this.$refs.iframe.removeEventListener("load",this.handleLoad),window.removeEventListener("message",this.handleMessage)},methods:{handleLoad(){this.$emit("on-load")},handleMessage({data:e,source:s}){var r;s===((r=this.$refs.iframe)==null?void 0:r.contentWindow)&&(e=$A.jsonParse(e),e.source==="fileView"&&e.action==="picture"&&this.$store.dispatch("previewImage",{index:e.params.index,list:e.params.array}),this.$emit("on-message",e))},postMessage(e,s="*"){this.$refs.iframe&&this.$refs.iframe.contentWindow.postMessage(e,s)}}},t={};var m=n(o,i,a,!1,c,null,null,null);function c(e){for(let s in t)this[s]=t[s]}var l=function(){return m.exports}();export{l as I};
import{n}from"./app.7d416d31.js";var i=function(){var e=this,s=e.$createElement,r=e._self._c||s;return r("iframe",{directives:[{name:"show",rawName:"v-show",value:e.src,expression:"src"}],ref:"iframe",attrs:{src:e.src}})},a=[];const o={name:"IFrame",props:{src:{type:String,default:""}},mounted(){this.$refs.iframe.addEventListener("load",this.handleLoad),window.addEventListener("message",this.handleMessage)},beforeDestroy(){this.$refs.iframe.removeEventListener("load",this.handleLoad),window.removeEventListener("message",this.handleMessage)},methods:{handleLoad(){this.$emit("on-load")},handleMessage({data:e,source:s}){var r;s===((r=this.$refs.iframe)==null?void 0:r.contentWindow)&&(e=$A.jsonParse(e),e.source==="fileView"&&e.action==="picture"&&this.$store.dispatch("previewImage",{index:e.params.index,list:e.params.array}),this.$emit("on-message",e))},postMessage(e,s="*"){this.$refs.iframe&&this.$refs.iframe.contentWindow.postMessage(e,s)}}},t={};var m=n(o,i,a,!1,c,null,null,null);function c(e){for(let s in t)this[s]=t[s]}var l=function(){return m.exports}();export{l as I};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
public/js/build/MicroApps.3165b11f.js vendored Normal file
View File

@ -0,0 +1 @@
import{u as s,m as i,V as p,s as r,U as o,i as l,d as h,l as d,E as u,n as m}from"./app.7d416d31.js";import{D as c}from"./DialogWrapper.8f2d3b49.js";var f=function(){var a=this,t=a.$createElement,e=a._self._c||t;return e("div",{staticClass:"page-microapp"},[a.showSpin?e("transition",{attrs:{name:"microapp-load"}},[e("div",{staticClass:"microapp-load"},[e("Loading")],1)]):a._e(),a.url&&!a.loading?e("micro-app",{attrs:{name:a.name,url:a.url,inline:"","keep-alive":"",disableSandbox:"",data:a.appData},on:{created:a.handleCreate,beforemount:a.handleBeforeMount,mounted:a.handleMount,unmount:a.handleUnmount,error:a.handleError,datachange:a.handleDataChange}}):a._e()],1)},g=[];const v={name:"MicroApps",props:{name:{type:String,default:"micro-app"},url:{type:String,default:""},path:{type:String,default:""},datas:{type:Object,default:()=>{}}},data(){return{showSpin:!1,loading:!1,appData:{}}},mounted(){this.showSpin=!0,this.appData=this.getAppData},watch:{loading(a){a&&(this.showSpin=!0)},path(a){this.appData={path:a}},datas:{handler(a){this.appData=a},deep:!0},$route:{handler(a){(a.name=="manage-apps"||a.name=="single-apps")&&(this.appData={path:a.hash||a.fullPath})},immediate:!0},userToken(a){this.appData=this.getAppData,a?this.loading=!1:(s({destroy:!0}),this.loading=!0)}},computed:{...i(["userInfo","themeMode"]),getAppData(){return{type:"init",url:this.url,vues:{Vue:p,store:r,components:{DialogWrapper:c,UserSelect:o,DatePicker:l.exports.DatePicker}},theme:this.themeMode,languages:{languageList:h,languageType:d},userInfo:this.userInfo,path:this.path,electron:this.$Electron}}},methods:{handleCreate(a){window.eventCenterForAppNameVite=new u(a.detail.name),this.appData=this.getAppData,this.showSpin=!window["eventCenterForAppNameViteLoad-"+a.detail.name]},handleBeforeMount(a){window["eventCenterForAppNameViteLoad-"+a.detail.name]=1},handleMount(a){this.datas&&(this.appData=this.datas),this.path&&(this.appData.path=this.path),this.showSpin=!1},handleUnmount(a){window.dispatchEvent(new Event("apps-unmount"))},handleError(a){},handleDataChange(a){}}},n={};var D=m(v,f,g,!1,_,null,null,null);function _(a){for(let t in n)this[t]=n[t]}var A=function(){return D.exports}();export{A as M};

View File

@ -1 +0,0 @@
import{u as i,m as r,V as s,s as p,i as o,d as l,l as h,E as d,n as u}from"./app.7b9537da.js";import{D as m}from"./DialogWrapper.43cbe6f6.js";import{U as c}from"./UserSelect.ee0927b8.js";var f=function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("div",{staticClass:"page-microapp"},[a.showSpin?t("transition",{attrs:{name:"microapp-load"}},[t("div",{staticClass:"microapp-load"},[t("Loading")],1)]):a._e(),a.url&&!a.loading?t("micro-app",{attrs:{name:a.name,url:a.url,inline:"","keep-alive":"",disableSandbox:"",data:a.appData},on:{created:a.handleCreate,beforemount:a.handleBeforeMount,mounted:a.handleMount,unmount:a.handleUnmount,error:a.handleError,datachange:a.handleDataChange}}):a._e()],1)},g=[];const v={name:"MicroApps",props:{name:{type:String,default:"micro-app"},url:{type:String,default:""},path:{type:String,default:""},datas:{type:Object,default:()=>{}}},data(){return{showSpin:!1,loading:!1,appUrl:"",appData:{}}},deactivated(){},mounted(){this.showSpin=!0,this.appData=this.getAppData},watch:{loading(a){a&&(this.showSpin=!0)},url(a){this.loading=!0,this.$nextTick(()=>{this.loading=!1;let e=$A.apiUrl(a);e.indexOf("http")==-1&&(e=window.location.origin+e),this.appUrl={}.VITE_OKR_WEB_URL||e})},path(a){this.appData={path:a}},datas:{handler(a){this.appData=a},deep:!0},$route:{handler(a){a.name=="manage-apps"&&(this.appData={path:a.hash||a.fullPath})},immediate:!0},userToken(a){this.appData=this.getAppData,a?this.loading=!1:(i({destroy:!0}),this.loading=!0)}},computed:{...r(["userInfo","themeMode"]),getAppData(){return{type:"init",url:this.url,vues:{Vue:s,store:p,components:{DialogWrapper:m,UserSelect:c,DatePicker:o.exports.DatePicker}},theme:this.themeMode,languages:{languageList:l,languageType:h},userInfo:this.userInfo,path:this.path}}},methods:{handleCreate(a){window.eventCenterForAppNameVite=new d(a.detail.name),this.appData=this.getAppData,this.showSpin=!window["eventCenterForAppNameViteLoad-"+a.detail.name]},handleBeforeMount(a){window["eventCenterForAppNameViteLoad-"+a.detail.name]=1},handleMount(a){this.datas&&(this.appData=this.datas),this.path&&(this.appData.path=this.path),this.showSpin=!1},handleUnmount(a){window.dispatchEvent(new Event("apps-unmount"))},handleError(a){console.error("\u5B50\u5E94\u7528\u52A0\u8F7D\u51FA\u9519\u4E86",a.detail.error)},handleDataChange(a){}}},n={};var _=u(v,f,g,!1,w,null,null,null);function w(a){for(let e in n)this[e]=n[e]}var C=function(){return _.exports}();export{C as M};

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
import{m as c,n as f,l as a}from"./app.7d416d31.js";import{I as h}from"./IFrame.eb1e20bb.js";var u=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"component-only-office"},[e.$A.isDesktop()?[e.loadError?i("Alert",{staticClass:"load-error",attrs:{type:"error","show-icon":""}},[e._v(e._s(e.$L("\u7EC4\u4EF6\u52A0\u8F7D\u5931\u8D25\uFF01")))]):e._e(),i("div",{staticClass:"placeholder",attrs:{id:e.id}})]:i("IFrame",{staticClass:"preview-iframe",attrs:{src:e.previewUrl},on:{"on-load":e.onFrameLoad}}),e.loading?i("div",{staticClass:"office-loading"},[i("Loading")],1):e._e()],2)},m=[];const p={name:"OnlyOffice",components:{IFrame:h},props:{id:{type:String,default:()=>"office_"+Math.round(Math.random()*1e4)},code:{type:String,default:""},historyId:{type:Number,default:0},value:{type:[Object,Array],default:function(){return{}}},readOnly:{type:Boolean,default:!1},documentKey:Function},data(){return{loading:!1,loadError:!1,docEditor:null}},beforeDestroy(){this.docEditor!==null&&(this.docEditor.destroyEditor(),this.docEditor=null)},computed:{...c(["userInfo","themeIsDark"]),fileType(){return this.getType(this.value.type)},fileName(){return this.value.name},fileUrl(){let e=this.code||this.value.id,t;return $A.leftExists(e,"msgFile_")?t=`dialog/msg/download/?msg_id=${$A.leftDelete(e,"msgFile_")}&token=${this.userToken}`:$A.leftExists(e,"taskFile_")?t=`project/task/filedown/?file_id=${$A.leftDelete(e,"taskFile_")}&token=${this.userToken}`:(t=`file/content/?id=${e}&token=${this.userToken}`,this.historyId>0&&(t+=`&history_id=${this.historyId}`)),t},previewUrl(){return $A.apiUrl(this.fileUrl)+"&down=preview"}},watch:{"value.id":{handler(e){!e||!$A.isDesktop()||(this.loading=!0,this.loadError=!1,$A.loadScript($A.apiUrl("../office/web-apps/apps/api/documents/api.js")).then(t=>{if(!this.documentKey){this.handleClose();return}const i=this.documentKey();i&&i.then?i.then(this.loadFile).catch(({msg:n})=>{$A.modalError({content:n})}):this.loadFile()}).catch(t=>{this.loadError=!0}).finally(t=>{this.loading=!1}))},immediate:!0},previewUrl:{handler(){$A.isDesktop()||(this.loading=!0)},immediate:!0}},methods:{onFrameLoad(){this.loading=!1},getType(e){switch(e){case"word":return"docx";case"excel":return"xlsx";case"ppt":return"pptx"}return e},loadFile(e=""){this.docEditor!==null&&(this.docEditor.destroyEditor(),this.docEditor=null);let t=a;switch(a){case"zh-CHT":t="zh-TW";break}let i=this.code||this.value.id,n=$A.strExists(this.fileName,".")?this.fileName:this.fileName+"."+this.fileType,l=`${this.fileType}-${e||i}`;this.historyId>0&&(l+=`-${this.historyId}`);const r={document:{fileType:this.fileType,title:n,key:l,url:`http://nginx/api/${this.fileUrl}`},editorConfig:{mode:"edit",lang:t,user:{id:String(this.userInfo.userid),name:this.userInfo.nickname},customization:{uiTheme:this.themeIsDark?"theme-dark":"theme-classic-light",forcesave:!0,help:!1},callbackUrl:`http://nginx/api/file/content/office?id=${i}&dootask-token=${this.userToken}`},events:{onDocumentReady:this.onDocumentReady}};/\/hideenOfficeTitle\//.test(window.navigator.userAgent)&&(r.document.title=" "),(async g=>{if((this.readOnly||this.historyId>0)&&(r.editorConfig.mode="view",r.editorConfig.callbackUrl=null,!r.editorConfig.user.id)){let o=await $A.IDBInt("officeViewer");o||(o=$A.randNum(1e3,99999),await $A.IDBSet("officeViewer",o)),r.editorConfig.user.id="viewer_"+o,r.editorConfig.user.name="Viewer_"+o}this.$nextTick(()=>{this.$store.dispatch("call",{url:"file/office/token",data:{config:r}}).then(({data:o})=>{if(r.token=o.token,this.docEditor=new DocsAPI.DocEditor(this.id,r),this.readOnly){var s=$("iframe[name='frameEditor']")[0];s==null||s.addEventListener("load",function(){s.contentWindow.postMessage("disableDownload","*")})}}).catch(({msg:o})=>{if(o.indexOf("404 not found")!==-1){$A.modalInfo({language:!1,title:"\u7248\u672C\u8FC7\u4F4E",content:"\u670D\u52A1\u5668\u7248\u672C\u8FC7\u4F4E\uFF0C\u8BF7\u5347\u7EA7\u670D\u52A1\u5668\u3002"});return}$A.modalError({content:o})})})})()},onDocumentReady(){this.$emit("on-document-ready",this.docEditor)}}},d={};var _=f(p,u,m,!1,y,"dcc24366",null,null);function y(e){for(let t in d)this[t]=d[t]}var w=function(){return _.exports}();export{w as default};

View File

@ -1 +1 @@
.component-only-office[data-v-4d311d30]{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center}.component-only-office .placeholder[data-v-4d311d30]{flex:1;width:100%;height:100%}.component-only-office .office-loading[data-v-4d311d30]{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;z-index:2}.component-only-office .load-error{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1;padding:8px;display:flex;align-items:center}.component-only-office .load-error .ivu-alert-icon{position:static;margin-right:8px;margin-left:4px}
.component-only-office[data-v-dcc24366]{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center}.component-only-office .placeholder[data-v-dcc24366]{flex:1;width:100%;height:100%}.component-only-office .office-loading[data-v-dcc24366]{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;z-index:2}.component-only-office .load-error{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1;padding:8px;display:flex;align-items:center}.component-only-office .load-error .ivu-alert-icon{position:static;margin-right:8px;margin-left:4px}

View File

@ -1 +0,0 @@
import{m as f,n as c,l}from"./app.7b9537da.js";import{I as h}from"./IFrame.1636beca.js";var u=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"component-only-office"},[e.$A.isDesktop()?[e.loadError?i("Alert",{staticClass:"load-error",attrs:{type:"error","show-icon":""}},[e._v(e._s(e.$L("\u7EC4\u4EF6\u52A0\u8F7D\u5931\u8D25\uFF01")))]):e._e(),i("div",{staticClass:"placeholder",attrs:{id:e.id}})]:i("IFrame",{staticClass:"preview-iframe",attrs:{src:e.previewUrl},on:{"on-load":e.onFrameLoad}}),e.loading?i("div",{staticClass:"office-loading"},[i("Loading")],1):e._e()],2)},m=[];const p={name:"OnlyOffice",components:{IFrame:h},props:{id:{type:String,default:()=>"office_"+Math.round(Math.random()*1e4)},code:{type:String,default:""},historyId:{type:Number,default:0},value:{type:[Object,Array],default:function(){return{}}},readOnly:{type:Boolean,default:!1},documentKey:Function},data(){return{loading:!1,loadError:!1,docEditor:null}},beforeDestroy(){this.docEditor!==null&&(this.docEditor.destroyEditor(),this.docEditor=null)},computed:{...f(["userInfo","themeIsDark"]),fileType(){return this.getType(this.value.type)},fileName(){return this.value.name},fileUrl(){let e=this.code||this.value.id,t;return $A.leftExists(e,"msgFile_")?t=`dialog/msg/download/?msg_id=${$A.leftDelete(e,"msgFile_")}&token=${this.userToken}`:$A.leftExists(e,"taskFile_")?t=`project/task/filedown/?file_id=${$A.leftDelete(e,"taskFile_")}&token=${this.userToken}`:(t=`file/content/?id=${e}&token=${this.userToken}`,this.historyId>0&&(t+=`&history_id=${this.historyId}`)),t},previewUrl(){return $A.apiUrl(this.fileUrl)+"&down=preview"}},watch:{"value.id":{handler(e){!e||!$A.isDesktop()||(this.loading=!0,this.loadError=!1,$A.loadScript($A.apiUrl("../office/web-apps/apps/api/documents/api.js")).then(t=>{if(!this.documentKey){this.handleClose();return}const i=this.documentKey();i&&i.then?i.then(this.loadFile):this.loadFile()}).catch(t=>{this.loadError=!0}).finally(t=>{this.loading=!1}))},immediate:!0},previewUrl:{handler(){$A.isDesktop()||(this.loading=!0)},immediate:!0}},methods:{onFrameLoad(){this.loading=!1},getType(e){switch(e){case"word":return"docx";case"excel":return"xlsx";case"ppt":return"pptx"}return e},loadFile(e=""){this.docEditor!==null&&(this.docEditor.destroyEditor(),this.docEditor=null);let t=l;switch(l){case"zh-CHT":t="zh-TW";break}let i=this.code||this.value.id,d=$A.strExists(this.fileName,".")?this.fileName:this.fileName+"."+this.fileType,n=`${this.fileType}-${e||i}`;this.historyId>0&&(n+=`-${this.historyId}`);const o={document:{fileType:this.fileType,title:d,key:n,url:`http://nginx/api/${this.fileUrl}`},editorConfig:{mode:"edit",lang:t,user:{id:String(this.userInfo.userid),name:this.userInfo.nickname},customization:{uiTheme:this.themeIsDark?"theme-dark":"theme-classic-light",forcesave:!0,help:!1},callbackUrl:`http://nginx/api/file/content/office?id=${i}&dootask-token=${this.userToken}`},events:{onDocumentReady:this.onDocumentReady}};/\/hideenOfficeTitle\//.test(window.navigator.userAgent)&&(o.document.title=" "),(async g=>{if((this.readOnly||this.historyId>0)&&(o.editorConfig.mode="view",o.editorConfig.callbackUrl=null,!o.editorConfig.user.id)){let s=await $A.IDBInt("officeViewer");s||(s=$A.randNum(1e3,99999),await $A.IDBSet("officeViewer",s)),o.editorConfig.user.id="viewer_"+s,o.editorConfig.user.name="Viewer_"+s}this.$nextTick(()=>{this.$store.dispatch("call",{url:"file/office/token",data:{config:o}}).then(({data:s})=>{if(o.token=s.token,this.docEditor=new DocsAPI.DocEditor(this.id,o),this.readOnly){var r=$("iframe[name='frameEditor']")[0];r==null||r.addEventListener("load",function(){r.contentWindow.postMessage("disableDownload","*")})}}).catch(({msg:s})=>{$A.modalError({content:s})})})})()},onDocumentReady(){this.$emit("on-document-ready",this.docEditor)}}},a={};var _=c(p,u,m,!1,y,"4d311d30",null,null);function y(e){for(let t in a)this[t]=a[t]}var w=function(){return _.exports}();export{w as default};

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{m as i,n as l}from"./app.7b9537da.js";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"report-detail"},[a("div",{staticClass:"report-title"},[t._v(" "+t._s(t.data.title)+" "),t.loadIng>0?a("Icon",{staticClass:"icon-loading",attrs:{type:"ios-loading"}}):t._e()],1),t.formLabelWidth==="auto"?a("div",{staticClass:"report-detail-context"},[a("Form",{staticClass:"report-form auto-form",attrs:{"label-width":"auto",inline:""}},[a("FormItem",{attrs:{label:t.$L("\u6C47\u62A5\u4EBA")}},[a("UserAvatar",{attrs:{userid:t.data.userid,size:28}})],1),a("FormItem",{attrs:{label:t.$L("\u63D0\u4EA4\u65F6\u95F4")}},[t._v(" "+t._s(t.data.created_at)+" ")]),a("FormItem",{attrs:{label:t.$L("\u6C47\u62A5\u5BF9\u8C61")}},[t.data.receives_user.length===0?[t._v("-")]:t._l(t.data.receives_user,function(r,s){return a("UserAvatar",{key:s,attrs:{userid:r.userid,size:28}})})],2)],1),a("Form",{staticClass:"report-form auto-form",attrs:{"label-width":"auto"}},[a("FormItem",{attrs:{label:t.$L("\u6C47\u62A5\u5185\u5BB9")}},[a("div",{staticClass:"report-content",domProps:{innerHTML:t._s(t.data.content)}})])],1)],1):a("div",{staticClass:"report-detail-context"},[a("Form",{staticClass:"report-form",attrs:{labelPosition:t.formLabelPosition,labelWidth:t.formLabelWidth}},[t.formLabelWidth!=="auto"?[a("FormItem",{attrs:{label:t.$L("\u6C47\u62A5\u4EBA")}},[a("UserAvatar",{attrs:{userid:t.data.userid,size:28}})],1),a("FormItem",{attrs:{label:t.$L("\u63D0\u4EA4\u65F6\u95F4")}},[t._v(" "+t._s(t.data.created_at)+" ")]),a("FormItem",{attrs:{label:t.$L("\u6C47\u62A5\u5BF9\u8C61")}},[t.data.receives_user.length===0?[t._v("-")]:t._l(t.data.receives_user,function(r,s){return a("UserAvatar",{key:s,attrs:{userid:r.userid,size:28}})})],2)]:t._e(),a("FormItem",{attrs:{label:t.$L("\u6C47\u62A5\u5185\u5BB9")}},[a("div",{staticClass:"report-content",domProps:{innerHTML:t._s(t.data.content)}})])],2)],1)])},d=[];const c={name:"ReportDetail",props:{data:{default:{}}},data(){return{loadIng:0}},computed:{...i(["formLabelPosition","formLabelWidth"])},watch:{"data.id":{handler(t){t>0&&this.sendRead()},immediate:!0}},methods:{sendRead(){this.loadIng++,this.$store.dispatch("call",{url:"report/read",data:{ids:[this.data.id]}}).then(()=>{}).catch(()=>{}).finally(t=>{this.loadIng--})}}},o={};var m=l(c,n,d,!1,u,null,null,null);function u(t){for(let e in o)this[e]=o[e]}var v=function(){return m.exports}();export{v as R};
import{m as i,n as l}from"./app.7d416d31.js";var n=function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"report-detail"},[a("div",{staticClass:"report-title"},[t._v(" "+t._s(t.data.title)+" "),t.loadIng>0?a("Icon",{staticClass:"icon-loading",attrs:{type:"ios-loading"}}):t._e()],1),t.formLabelWidth==="auto"?a("div",{staticClass:"report-detail-context"},[a("Form",{staticClass:"report-form auto-form",attrs:{"label-width":"auto",inline:""}},[a("FormItem",{attrs:{label:t.$L("\u6C47\u62A5\u4EBA")}},[a("UserAvatar",{attrs:{userid:t.data.userid,size:28}})],1),a("FormItem",{attrs:{label:t.$L("\u63D0\u4EA4\u65F6\u95F4")}},[t._v(" "+t._s(t.data.created_at)+" ")]),a("FormItem",{attrs:{label:t.$L("\u6C47\u62A5\u5BF9\u8C61")}},[t.data.receives_user.length===0?[t._v("-")]:t._l(t.data.receives_user,function(r,s){return a("UserAvatar",{key:s,attrs:{userid:r.userid,size:28}})})],2)],1),a("Form",{staticClass:"report-form auto-form",attrs:{"label-width":"auto"}},[a("FormItem",{attrs:{label:t.$L("\u6C47\u62A5\u5185\u5BB9")}},[a("div",{staticClass:"report-content",domProps:{innerHTML:t._s(t.data.content)}})])],1)],1):a("div",{staticClass:"report-detail-context"},[a("Form",{staticClass:"report-form",attrs:{labelPosition:t.formLabelPosition,labelWidth:t.formLabelWidth}},[t.formLabelWidth!=="auto"?[a("FormItem",{attrs:{label:t.$L("\u6C47\u62A5\u4EBA")}},[a("UserAvatar",{attrs:{userid:t.data.userid,size:28}})],1),a("FormItem",{attrs:{label:t.$L("\u63D0\u4EA4\u65F6\u95F4")}},[t._v(" "+t._s(t.data.created_at)+" ")]),a("FormItem",{attrs:{label:t.$L("\u6C47\u62A5\u5BF9\u8C61")}},[t.data.receives_user.length===0?[t._v("-")]:t._l(t.data.receives_user,function(r,s){return a("UserAvatar",{key:s,attrs:{userid:r.userid,size:28}})})],2)]:t._e(),a("FormItem",{attrs:{label:t.$L("\u6C47\u62A5\u5185\u5BB9")}},[a("div",{staticClass:"report-content",domProps:{innerHTML:t._s(t.data.content)}})])],2)],1)])},d=[];const c={name:"ReportDetail",props:{data:{default:{}}},data(){return{loadIng:0}},computed:{...i(["formLabelPosition","formLabelWidth"])},watch:{"data.id":{handler(t){t>0&&this.sendRead()},immediate:!0}},methods:{sendRead(){this.loadIng++,this.$store.dispatch("call",{url:"report/read",data:{ids:[this.data.id]}}).then(()=>{}).catch(()=>{}).finally(t=>{this.loadIng--})}}},o={};var m=l(c,n,d,!1,u,null,null,null);function u(t){for(let e in o)this[e]=o[e]}var v=function(){return m.exports}();export{v as R};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{m as i,b as n,n as l}from"./app.7b9537da.js";var r=function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"task-menu-icon",on:{click:t.handleClick}},[t.loadIng?e("div",{staticClass:"loading"},[e("Loading")],1):[t.task.complete_at?e("Icon",{staticClass:"completed",attrs:{type:t.completedIcon}}):e("Icon",{staticClass:"uncomplete",attrs:{type:t.icon}})]],2)},d=[];const c={name:"TaskMenu",props:{task:{type:Object,default:()=>({})},loadStatus:{type:Boolean,default:!1},colorShow:{type:Boolean,default:!0},updateBefore:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},size:{type:String,default:"small"},icon:{type:String,default:"md-radio-button-off"},completedIcon:{type:String,default:"md-checkmark-circle"}},computed:{...i(["loads","taskFlows"]),...n(["isLoad"]),loadIng(){return this.loadStatus?!0:this.isLoad(`task-${this.task.id}`)}},methods:{handleClick(t){this.$store.state.taskOperation={event:t,task:this.task,loadStatus:this.loadStatus,colorShow:this.colorShow,updateBefore:this.updateBefore,disabled:this.disabled,size:this.size,onUpdate:s=>{this.$emit("on-update",s)}}},updateTask(t){if(this.loadIng)return;Object.keys(t).forEach(e=>this.$set(this.task,e,t[e]));const s=Object.assign(t,{task_id:this.task.id});this.$store.dispatch("taskUpdate",s).then(({data:e,msg:o})=>{$A.messageSuccess(o),this.$store.dispatch("saveTaskBrowse",s.task_id),this.$emit("on-update",e)}).catch(({msg:e})=>{$A.modalError(e),this.$store.dispatch("getTaskOne",s.task_id).catch(()=>{})})}}},a={};var u=l(c,r,d,!1,p,null,null,null);function p(t){for(let s in a)this[s]=a[s]}var m=function(){return u.exports}();export{m as T};

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 26.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#87D068;}
.st1{fill:#FFFFFF;}
</style>
<path class="st0" d="M36,48H12C5.4,48,0,42.6,0,36V12C0,5.4,5.4,0,12,0h24c6.6,0,12,5.4,12,12v24C48,42.6,42.6,48,36,48z"/>
<g>
<g>
<path class="st1" d="M35.7,20.1c0-0.8-0.4-1.5-1.1-1.9l-8.9-5.1c-1-0.6-2.2-0.6-3.1,0l-9.1,5.2c-0.6,0.4-1,1-1,1.8s0.4,1.4,1,1.8
l9.1,5.2c0.5,0.3,1,0.4,1.6,0.4c0.5,0,1.1-0.1,1.6-0.4l8.9-5.1C35.3,21.6,35.7,20.9,35.7,20.1z"/>
<path class="st1" d="M24,29.7c-0.4,0-0.8-0.1-1.2-0.3l-9-5.1c-0.4-0.2-0.9-0.1-1.2,0.3c-0.2,0.4-0.1,0.9,0.3,1.2l9,5.1
c0.6,0.4,1.3,0.6,2,0.6c0,0,0,0,0,0c0.5,0,0.9-0.4,0.9-0.9C24.9,30.1,24.5,29.7,24,29.7z"/>
<path class="st1" d="M24,33.5c-0.6,0-1.3-0.2-1.8-0.5l-8.4-4.8c-0.4-0.2-0.9-0.1-1.2,0.3c-0.2,0.4-0.1,0.9,0.3,1.2l8.4,4.8
c0.8,0.5,1.7,0.7,2.6,0.7c0,0,0,0,0,0c0.5,0,0.9-0.4,0.9-0.9C24.9,33.9,24.5,33.5,24,33.5z"/>
<path class="st1" d="M34.8,30h-2.6v-2.6c0-0.5-0.4-0.9-0.9-0.9c-0.5,0-0.9,0.4-0.9,0.9V30h-2.6c-0.5,0-0.9,0.4-0.9,0.9
s0.4,0.9,0.9,0.9h2.6v2.6c0,0.5,0.4,0.9,0.9,0.9c0.5,0,0.9-0.4,0.9-0.9v-2.6h2.6c0.5,0,0.9-0.4,0.9-0.9S35.3,30,34.8,30z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 26.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#87D068;}
.st1{fill:#FFFFFF;}
</style>
<path class="st0" d="M36,48H12C5.4,48,0,42.6,0,36V12C0,5.4,5.4,0,12,0h24c6.6,0,12,5.4,12,12v24C48,42.6,42.6,48,36,48z"/>
<g>
<g>
<circle class="st1" cx="19.7" cy="26.6" r="0.9"/>
<g>
<path class="st1" d="M29,26.9c0.5,0,0.9,0.4,0.9,0.9l0,2.6l2.6,0c0.5,0,0.9,0.4,0.9,0.9c0,0.5-0.4,0.9-0.9,0.9l-2.6,0l0,2.6
c0,0.5-0.4,0.9-0.9,0.9c-0.5,0-0.9-0.4-0.9-0.9l0-2.6l-2.6,0c-0.5,0-0.9-0.4-0.9-0.9c0-0.5,0.4-0.9,0.9-0.9l2.6,0l0-2.6
C28.1,27.3,28.5,26.9,29,26.9"/>
</g>
<g>
<path class="st1" d="M26.6,34.8l0-1.2l-1.2,0c0,0,0,0,0,0c-0.6,0-1.2-0.2-1.6-0.7c-0.4-0.4-0.7-1-0.7-1.6c0-0.6,0.2-1.2,0.7-1.6
c0.4-0.4,1-0.7,1.6-0.7l1.2,0l0-1.2c0-1.3,1-2.3,2.3-2.3c0,0,0,0,0,0c1.3,0,2.3,1,2.3,2.3l0,1.2l1.2,0c0,0,0,0,0,0
c0.3,0,0.6,0.1,0.9,0.2V14.7c0-1.3-1.1-2.3-2.3-2.3H17c-1.3,0-2.3,1.1-2.3,2.3v18.7c0,1.3,1,2.3,2.3,2.3h9.8
C26.7,35.4,26.6,35.1,26.6,34.8z M19.7,29.3c-1.4,0-2.6-1.2-2.6-2.6s1.2-2.6,2.6-2.6s2.6,1.2,2.6,2.6S21.1,29.3,19.7,29.3z
M22.6,17.9l-2.9,2.9c-0.2,0.2-0.4,0.3-0.6,0.3s-0.4-0.1-0.6-0.3l-1.2-1.2c-0.3-0.3-0.3-0.9,0-1.2s0.9-0.3,1.2,0l0.5,0.5l2.3-2.3
c0.3-0.3,0.9-0.3,1.2,0S23,17.6,22.6,17.9z M24.9,17.6h4.7c0.5,0,0.9,0.4,0.9,0.9s-0.4,0.9-0.9,0.9h-4.7c-0.5,0-0.9-0.4-0.9-0.9
S24.4,17.6,24.9,17.6z"/>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 26.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#F57775;}
.st1{fill:#FFFFFF;}
</style>
<path class="st0" d="M36,48H12C5.4,48,0,42.6,0,36V12C0,5.4,5.4,0,12,0h24c6.6,0,12,5.4,12,12v24C48,42.6,42.6,48,36,48z"/>
<g>
<g>
<path class="st1" d="M21.5,24.5c-3.3,0-6-2.7-6-6s2.7-6,6-6s6,2.7,6,6C27.6,21.8,24.9,24.5,21.5,24.5z"/>
</g>
<g>
<path class="st1" d="M28.8,35.5H14.3c-1.1,0-2-0.9-2-2v-4.1c0-1.7,1.4-3.1,3.1-3.1h12.2c1.7,0,3.1,1.4,3.1,3.1v4.1
C30.7,34.6,29.9,35.5,28.8,35.5z"/>
</g>
<g>
<path class="st1" d="M29.6,22.5c-0.3,0-0.5-0.1-0.7-0.3c-0.2-0.3-0.2-0.7,0-1c0.6-0.8,0.9-1.7,0.9-2.7s-0.3-1.9-0.9-2.7
c-0.2-0.3-0.2-0.7,0-1s0.6-0.4,0.9-0.3c1.7,0.6,2.9,2.2,2.9,4s-1.2,3.4-2.9,4C29.8,22.5,29.7,22.5,29.6,22.5z"/>
</g>
<g>
<path class="st1" d="M34,34.7h-0.7c-0.3,0-0.5-0.1-0.7-0.3s-0.2-0.5-0.1-0.7c0-0.1,0-0.1,0-0.1v-4c0-0.4-0.2-0.7-0.3-0.9
c-0.2-0.2-0.2-0.6-0.1-0.9c0.1-0.3,0.4-0.5,0.7-0.5H33c1.4,0,2.6,1.2,2.6,2.6V33C35.7,34,34.9,34.7,34,34.7z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" viewBox="0 0 48 48"><defs><clipPath id="master_svg0_3054_25679"><rect x="12" y="12" width="24" height="24" rx="0"/></clipPath></defs><g><rect x="0" y="0" width="48" height="48" rx="12" fill="#9D95E5" fill-opacity="1"/><g clip-path="url(#master_svg0_3054_25679)"><g><path d="M35.6226,12.187076C35.9089,12.366451,36.0526,12.70563,35.9824,13.03611L32.5574,33.5856C32.4912,34.000299999999996,32.1282,34.3018,31.7084,34.290800000000004C31.599,34.289100000000005,31.4912,34.2646,31.3918,34.2188L25.333399999999997,31.7437L22.095599999999997,35.6866C21.9377,35.8896,21.69045,36.0025,21.43364,35.9888C21.33001,35.990700000000004,21.22712,35.9711,21.131439999999998,35.9313C20.96605,35.8728,20.82448,35.7615,20.72851,35.6147C20.62727,35.4715,20.57206,35.300799999999995,20.57021,35.1254L20.57021,30.4629L32.125699999999995,16.28835L17.821640000000002,28.6641L12.540347,26.4912C12.225567,26.3831,12.0117595,26.09,12.0050232,25.7573C11.9677587,25.428800000000003,12.140421,25.112299999999998,12.436736,24.9658L34.7016,12.115123C34.833200000000005,12.040216,34.981899999999996,12.000561138,35.1333,12C35.3072,12.0294109,35.4735,12.092995,35.6226,12.187076Z" fill="#FFFFFF" fill-opacity="1"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

6
public/js/build/app.c3e7b3d4.css vendored Normal file

File diff suppressed because one or more lines are too long

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 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" viewBox="0 0 48 48"><defs><clipPath id="master_svg0_3054_25613"><rect x="12" y="12" width="24" height="24" rx="0"/></clipPath></defs><g><rect x="0" y="0" width="48" height="48" rx="12" fill="#F57775" fill-opacity="1"/><g clip-path="url(#master_svg0_3054_25613)"><g><g><path d="M32.753299999999996,26.9593L30.357,26.9593C29.1345,26.957700000000003,28.1438,25.967100000000002,28.142200000000003,24.744500000000002C28.139499999999998,24.1851,28.3448,23.6446,28.7182,23.228099999999998C31.2206,20.597839999999998,31.1498,16.44632,28.5592,13.9029C25.9685,11.359486,21.816380000000002,11.365081,19.23258,13.91547C16.648789999999998,16.46586,16.58916,20.61755,19.09864,23.2411C19.45887,23.6577,19.65585,24.1909,19.65307,24.7416C19.65997,25.8988,18.7744,26.8659,17.62114,26.9608L15.40058,26.9608C14.07758,26.9608,13.00396661,28.0311,13,29.3541L13,31.5142C13,32.024,13.413276,32.4373,13.923077,32.4373L34.227900000000005,32.4373C34.737700000000004,32.4373,35.150999999999996,32.024,35.150999999999996,31.5142L35.150999999999996,29.3541C35.145399999999995,28.0327,34.0747,26.9633,32.753299999999996,26.9593Z" fill="#FFFFFF" fill-opacity="1"/></g><g><path d="M34.2308,35.999994833374025L13.923077,35.999994833374025C13.413276,35.999994833374025,13.000000054161,35.58672483337402,13.000000054161,35.07692183337402C13.000000054161,34.56712083337403,13.413276,34.15384483337402,13.923077,34.15384483337402L34.227900000000005,34.15384483337402C34.737700000000004,34.15384483337402,35.150999999999996,34.56712083337403,35.150999999999996,35.07692183337402C35.150999999999996,35.58672483337402,34.737700000000004,35.999994833374025,34.227900000000005,35.999994833374025L34.2308,35.999994833374025Z" fill="#FFFFFF" fill-opacity="1"/></g></g></g></g></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

1
public/js/build/apps.262556ef.js vendored Normal file
View File

@ -0,0 +1 @@
import{M as i}from"./MicroApps.3165b11f.js";import{n as s}from"./app.7d416d31.js";import"./DialogWrapper.8f2d3b49.js";import"./longpress.c69d0833.js";import"./index.bf62123c.js";import"./ImgUpload.24b2ef1e.js";import"./details.849800ac.js";import"./tip.5e3797d0.js";var n=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{staticClass:"electron-single-micro-apps"},[!t.loading&&t.$route.name=="single-apps"?r("MicroApps",{attrs:{url:t.appUrl,path:t.path}}):t._e()],1)},p=[];const o={components:{MicroApps:i},data(){return{loading:!1,appUrl:"",path:""}},deactivated(){this.loading=!0},watch:{$route:{handler(t){this.loading=!0,t.name=="single-apps"?this.$nextTick(()=>{this.loading=!1,this.appUrl={}.VITE_OKR_WEB_URL||$A.apiUrl("../apps/okr"),this.path=this.$route.query.path||""}):this.appUrl=""},immediate:!0}}},a={};var l=s(o,n,p,!1,c,null,null,null);function c(t){for(let e in a)this[e]=a[e]}var U=function(){return l.exports}();export{U as default};

1
public/js/build/apps.33dca586.js vendored Normal file
View File

@ -0,0 +1 @@
import{M as n}from"./MicroApps.3165b11f.js";import{n as p}from"./app.7d416d31.js";import"./DialogWrapper.8f2d3b49.js";import"./longpress.c69d0833.js";import"./index.bf62123c.js";import"./ImgUpload.24b2ef1e.js";import"./details.849800ac.js";import"./tip.5e3797d0.js";var i=function(){var t=this,a=t.$createElement,e=t._self._c||a;return!t.loading&&t.$route.name=="manage-apps"?e("MicroApps",{attrs:{url:t.appUrl,path:t.path}}):t._e()},o=[];const s={components:{MicroApps:n},data(){return{loading:!1,appUrl:"",path:""}},deactivated(){this.loading=!0},watch:{$route:{handler(t){this.loading=!0,t.name=="manage-apps"?this.$nextTick(()=>{this.loading=!1,this.appUrl={}.VITE_OKR_WEB_URL||$A.apiUrl("../apps/okr"),this.path=this.$route.query.path||""}):this.appUrl=""},immediate:!0}}},r={};var l=p(s,i,o,!1,m,null,null,null);function m(t){for(let a in r)this[a]=r[a]}var U=function(){return l.exports}();export{U as default};

View File

@ -1 +0,0 @@
import{M as p}from"./MicroApps.8d5df57c.js";import{n as i}from"./app.7b9537da.js";import"./DialogWrapper.43cbe6f6.js";import"./longpress.43ca7fd9.js";import"./index.9b5108ee.js";import"./UserSelect.ee0927b8.js";import"./ImgUpload.0ea1891a.js";import"./details.7499a239.js";import"./tip.1e66110a.js";var n=function(){var t=this,r=t.$createElement,e=t._self._c||r;return!t.loading&&t.$route.name=="manage-apps"?e("MicroApps",{attrs:{url:t.appUrl,path:t.path}}):t._e()},o=[];const s={components:{MicroApps:p},data(){return{loading:!1,appUrl:"",path:""}},deactivated(){this.loading=!0},watch:{$route:{handler(t){this.loading=!0,t.name=="manage-apps"?this.$nextTick(()=>{this.loading=!1,this.appUrl={}.VITE_OKR_WEB_URL||$A.apiUrl("../apps/okr"),this.path=this.$route.query.path||""}):this.appUrl=""},immediate:!0}}},a={};var l=i(s,n,o,!1,m,null,null,null);function m(t){for(let r in a)this[r]=a[r]}var $=function(){return l.exports}();export{$ as default};

View File

@ -1 +1 @@
import t from"./bn.min.d4b8f1ba.js";import"./app.7b9537da.js";/*! OpenPGP.js v5.7.0-1 - 2023-06-10 - this is LGPL licensed code, see LICENSE/our website https://openpgpjs.org/ for more information. */class i{constructor(e){if(e===void 0)throw Error("Invalid BigInteger input");this.value=new t(e)}clone(){const e=new i(null);return this.value.copy(e.value),e}iinc(){return this.value.iadd(new t(1)),this}inc(){return this.clone().iinc()}idec(){return this.value.isub(new t(1)),this}dec(){return this.clone().idec()}iadd(e){return this.value.iadd(e.value),this}add(e){return this.clone().iadd(e)}isub(e){return this.value.isub(e.value),this}sub(e){return this.clone().isub(e)}imul(e){return this.value.imul(e.value),this}mul(e){return this.clone().imul(e)}imod(e){return this.value=this.value.umod(e.value),this}mod(e){return this.clone().imod(e)}modExp(e,r){const n=r.isEven()?t.red(r.value):t.mont(r.value),u=this.clone();return u.value=u.value.toRed(n).redPow(e.value).fromRed(),u}modInv(e){if(!this.gcd(e).isOne())throw Error("Inverse does not exist");return new i(this.value.invm(e.value))}gcd(e){return new i(this.value.gcd(e.value))}ileftShift(e){return this.value.ishln(e.value.toNumber()),this}leftShift(e){return this.clone().ileftShift(e)}irightShift(e){return this.value.ishrn(e.value.toNumber()),this}rightShift(e){return this.clone().irightShift(e)}equal(e){return this.value.eq(e.value)}lt(e){return this.value.lt(e.value)}lte(e){return this.value.lte(e.value)}gt(e){return this.value.gt(e.value)}gte(e){return this.value.gte(e.value)}isZero(){return this.value.isZero()}isOne(){return this.value.eq(new t(1))}isNegative(){return this.value.isNeg()}isEven(){return this.value.isEven()}abs(){const e=this.clone();return e.value=e.value.abs(),e}toString(){return this.value.toString()}toNumber(){return this.value.toNumber()}getBit(e){return this.value.testn(e)?1:0}bitLength(){return this.value.bitLength()}byteLength(){return this.value.byteLength()}toUint8Array(e="be",r){return this.value.toArrayLike(Uint8Array,e,r)}}export{i as default};
import t from"./bn.min.05c9158e.js";import"./app.7d416d31.js";/*! OpenPGP.js v5.7.0-1 - 2023-06-10 - this is LGPL licensed code, see LICENSE/our website https://openpgpjs.org/ for more information. */class i{constructor(e){if(e===void 0)throw Error("Invalid BigInteger input");this.value=new t(e)}clone(){const e=new i(null);return this.value.copy(e.value),e}iinc(){return this.value.iadd(new t(1)),this}inc(){return this.clone().iinc()}idec(){return this.value.isub(new t(1)),this}dec(){return this.clone().idec()}iadd(e){return this.value.iadd(e.value),this}add(e){return this.clone().iadd(e)}isub(e){return this.value.isub(e.value),this}sub(e){return this.clone().isub(e)}imul(e){return this.value.imul(e.value),this}mul(e){return this.clone().imul(e)}imod(e){return this.value=this.value.umod(e.value),this}mod(e){return this.clone().imod(e)}modExp(e,r){const n=r.isEven()?t.red(r.value):t.mont(r.value),u=this.clone();return u.value=u.value.toRed(n).redPow(e.value).fromRed(),u}modInv(e){if(!this.gcd(e).isOne())throw Error("Inverse does not exist");return new i(this.value.invm(e.value))}gcd(e){return new i(this.value.gcd(e.value))}ileftShift(e){return this.value.ishln(e.value.toNumber()),this}leftShift(e){return this.clone().ileftShift(e)}irightShift(e){return this.value.ishrn(e.value.toNumber()),this}rightShift(e){return this.clone().irightShift(e)}equal(e){return this.value.eq(e.value)}lt(e){return this.value.lt(e.value)}lte(e){return this.value.lte(e.value)}gt(e){return this.value.gt(e.value)}gte(e){return this.value.gte(e.value)}isZero(){return this.value.isZero()}isOne(){return this.value.eq(new t(1))}isNegative(){return this.value.isNeg()}isEven(){return this.value.isEven()}abs(){const e=this.clone();return e.value=e.value.abs(),e}toString(){return this.value.toString()}toNumber(){return this.value.toNumber()}getBit(e){return this.value.testn(e)?1:0}bitLength(){return this.value.bitLength()}byteLength(){return this.value.byteLength()}toUint8Array(e="be",r){return this.value.toArrayLike(Uint8Array,e,r)}}export{i as default};

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,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 26.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFAA64;}
.st1{fill:#FFFFFF;}
</style>
<path class="st0" d="M36,48H12C5.4,48,0,42.6,0,36V12C0,5.4,5.4,0,12,0h24c6.6,0,12,5.4,12,12v24C48,42.6,42.6,48,36,48z"/>
<path class="st1" d="M32.5,14.5h-4.3v-1c0-0.4-0.3-0.8-0.8-0.8s-0.8,0.3-0.8,0.8v1h-5.3v-1c0-0.4-0.3-0.8-0.8-0.8s-0.8,0.3-0.8,0.8
v1h-4.3c-1.5,0-2.8,1.2-2.8,2.8v15.3c0,1.5,1.2,2.8,2.8,2.8h17c1.5,0,2.8-1.2,2.8-2.8V17.2C35.2,15.7,34,14.5,32.5,14.5z M15.5,16
h4.3v1c0,0.4,0.3,0.8,0.8,0.8s0.8-0.3,0.8-0.8v-1h5.3v1c0,0.4,0.3,0.8,0.8,0.8s0.8-0.3,0.8-0.8v-1h4.3c0.7,0,1.2,0.6,1.2,1.2v2.9
H14.2v-2.9C14.2,16.5,14.8,16,15.5,16z M18.3,28.1L18.3,28.1c0.6,0,1.1,0.5,1.1,1.1c0,0.6-0.5,1-1,1c-0.6,0-1.1-0.5-1.1-1
C17.3,28.5,17.8,28.1,18.3,28.1z M17.3,25.1c0-0.6,0.5-1,1-1h0c0.6,0,1,0.5,1,1s-0.5,1-1,1C17.8,26.2,17.3,25.7,17.3,25.1z M24,28.1
L24,28.1c0.6,0,1.1,0.5,1.1,1.1c0,0.6-0.5,1-1,1c-0.6,0-1.1-0.5-1.1-1C23,28.5,23.4,28.1,24,28.1z M23,25.1c0-0.6,0.5-1,1-1h0
c0.6,0,1,0.5,1,1s-0.5,1-1,1C23.4,26.2,23,25.7,23,25.1z M29.7,28.1L29.7,28.1c0.6,0,1.1,0.5,1.1,1.1c0,0.6-0.5,1-1,1
c-0.6,0-1.1-0.5-1.1-1C28.6,28.5,29.1,28.1,29.7,28.1z M28.6,25.1c0-0.6,0.5-1,1-1h0c0.6,0,1,0.5,1,1s-0.5,1-1,1
C29.1,26.2,28.6,25.7,28.6,25.1z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
public/js/build/dashboard.c50369c8.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{m as r,n}from"./app.7b9537da.js";var o=function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"setting-item submit"},[t.configLoad>0?e("Loading"):e("Form",{ref:"formDatum",attrs:{model:t.formDatum,rules:t.ruleDatum,labelPosition:t.formLabelPosition,labelWidth:t.formLabelWidth},nativeOn:{submit:function(i){i.preventDefault()}}},[t.isLdap?e("Alert",{attrs:{type:"warning"}},[t._v(t._s(t.$L("LDAP \u7528\u6237\u7981\u6B62\u4FEE\u6539\u90AE\u7BB1\u5730\u5740")))]):t._e(),e("FormItem",{attrs:{label:t.$L("\u65B0\u90AE\u7BB1\u5730\u5740"),prop:"newEmail"}},[t.isRegVerify==1?e("Input",{class:t.count>0?"setting-send-input":"setting-input",attrs:{search:"","enter-button":t.$L(t.sendBtnText),disabled:t.isLdap,placeholder:t.$L("\u8F93\u5165\u65B0\u90AE\u7BB1\u5730\u5740")},on:{"on-search":t.sendEmailCode},model:{value:t.formDatum.newEmail,callback:function(i){t.$set(t.formDatum,"newEmail",i)},expression:"formDatum.newEmail"}}):e("Input",{staticClass:"setting-input",attrs:{disabled:t.isLdap,placeholder:t.$L("\u8F93\u5165\u65B0\u90AE\u7BB1\u5730\u5740")},model:{value:t.formDatum.newEmail,callback:function(i){t.$set(t.formDatum,"newEmail",i)},expression:"formDatum.newEmail"}})],1),t.isRegVerify==1?e("FormItem",{attrs:{label:t.$L("\u9A8C\u8BC1\u7801"),prop:"code"}},[e("Input",{attrs:{placeholder:t.$L("\u8F93\u5165\u90AE\u7BB1\u9A8C\u8BC1\u7801")},model:{value:t.formDatum.code,callback:function(i){t.$set(t.formDatum,"code",i)},expression:"formDatum.code"}})],1):t._e()],1),e("div",{staticClass:"setting-footer"},[e("Button",{attrs:{loading:t.loadIng>0,type:"primary",disabled:t.isLdap},on:{click:t.submitForm}},[t._v(t._s(t.$L("\u63D0\u4EA4")))]),e("Button",{staticStyle:{"margin-left":"8px"},attrs:{loading:t.loadIng>0},on:{click:t.resetForm}},[t._v(t._s(t.$L("\u91CD\u7F6E")))])],1)],1)},l=[];const m={data(){return{loadIng:0,configLoad:0,formDatum:{newEmail:"",code:""},ruleDatum:{newEmail:[{validator:(t,s,e)=>{s.trim()===""?e(new Error(this.$L("\u8BF7\u8F93\u5165\u65B0\u90AE\u7BB1\u5730\u5740\uFF01"))):$A.isEmail(s.trim())?e():e(new Error(this.$L("\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u90AE\u7BB1\u5730\u5740\uFF01")))},required:!0,trigger:"change"}]},count:0,isSendButtonShow:!0,isRegVerify:0,sendBtnText:this.$L("\u53D1\u9001\u9A8C\u8BC1\u7801")}},mounted(){this.getRegVerify()},computed:{...r(["formLabelPosition","formLabelWidth"]),isLdap(){return this.$store.state.userInfo.identity.includes("ldap")}},methods:{sendEmailCode(){this.$store.dispatch("call",{url:"users/email/send",data:{type:2,email:this.formDatum.newEmail},spinner:!0}).then(t=>{this.isSendButtonShow=!1,this.count=120,this.sendBtnText=this.count+" \u79D2";let s=setInterval(()=>{this.count--,this.sendBtnText=this.count+" \u79D2",this.count<=0&&(this.sendBtnText=this.$L("\u53D1\u9001\u9A8C\u8BC1\u7801"),clearInterval(s))},1e3)}).catch(({msg:t})=>{$A.messageError(t)})},submitForm(){this.$refs.formDatum.validate(t=>{t&&(this.loadIng++,this.$store.dispatch("call",{url:"users/email/edit",data:this.formDatum}).then(({data:s})=>{this.count=0,this.sendBtnText=this.$L("\u53D1\u9001\u9A8C\u8BC1\u7801"),$A.messageSuccess("\u4FEE\u6539\u6210\u529F"),this.$store.dispatch("saveUserInfo",s),this.$refs.formDatum.resetFields(),this.isSendButtonShow=!0}).catch(({msg:s})=>{$A.modalError(s)}).finally(s=>{this.loadIng--}))})},resetForm(){this.$refs.formDatum.resetFields()},getRegVerify(){this.configLoad++,this.$store.dispatch("call",{url:"system/setting/email"}).then(({data:t})=>{this.isRegVerify=t.reg_verify==="open"}).finally(t=>{this.configLoad--})}}},a={};var u=n(m,o,l,!1,d,null,null,null);function d(t){for(let s in a)this[s]=a[s]}var f=function(){return u.exports}();export{f as default};
import{m as r,n}from"./app.7d416d31.js";var o=function(){var t=this,s=t.$createElement,e=t._self._c||s;return e("div",{staticClass:"setting-item submit"},[t.configLoad>0?e("Loading"):e("Form",{ref:"formDatum",attrs:{model:t.formDatum,rules:t.ruleDatum,labelPosition:t.formLabelPosition,labelWidth:t.formLabelWidth},nativeOn:{submit:function(i){i.preventDefault()}}},[t.isLdap?e("Alert",{attrs:{type:"warning"}},[t._v(t._s(t.$L("LDAP \u7528\u6237\u7981\u6B62\u4FEE\u6539\u90AE\u7BB1\u5730\u5740")))]):t._e(),e("FormItem",{attrs:{label:t.$L("\u65B0\u90AE\u7BB1\u5730\u5740"),prop:"newEmail"}},[t.isRegVerify==1?e("Input",{class:t.count>0?"setting-send-input":"setting-input",attrs:{search:"","enter-button":t.$L(t.sendBtnText),disabled:t.isLdap,placeholder:t.$L("\u8F93\u5165\u65B0\u90AE\u7BB1\u5730\u5740")},on:{"on-search":t.sendEmailCode},model:{value:t.formDatum.newEmail,callback:function(i){t.$set(t.formDatum,"newEmail",i)},expression:"formDatum.newEmail"}}):e("Input",{staticClass:"setting-input",attrs:{disabled:t.isLdap,placeholder:t.$L("\u8F93\u5165\u65B0\u90AE\u7BB1\u5730\u5740")},model:{value:t.formDatum.newEmail,callback:function(i){t.$set(t.formDatum,"newEmail",i)},expression:"formDatum.newEmail"}})],1),t.isRegVerify==1?e("FormItem",{attrs:{label:t.$L("\u9A8C\u8BC1\u7801"),prop:"code"}},[e("Input",{attrs:{placeholder:t.$L("\u8F93\u5165\u90AE\u7BB1\u9A8C\u8BC1\u7801")},model:{value:t.formDatum.code,callback:function(i){t.$set(t.formDatum,"code",i)},expression:"formDatum.code"}})],1):t._e()],1),e("div",{staticClass:"setting-footer"},[e("Button",{attrs:{loading:t.loadIng>0,type:"primary",disabled:t.isLdap},on:{click:t.submitForm}},[t._v(t._s(t.$L("\u63D0\u4EA4")))]),e("Button",{staticStyle:{"margin-left":"8px"},attrs:{loading:t.loadIng>0},on:{click:t.resetForm}},[t._v(t._s(t.$L("\u91CD\u7F6E")))])],1)],1)},l=[];const m={data(){return{loadIng:0,configLoad:0,formDatum:{newEmail:"",code:""},ruleDatum:{newEmail:[{validator:(t,s,e)=>{s.trim()===""?e(new Error(this.$L("\u8BF7\u8F93\u5165\u65B0\u90AE\u7BB1\u5730\u5740\uFF01"))):$A.isEmail(s.trim())?e():e(new Error(this.$L("\u8BF7\u8F93\u5165\u6B63\u786E\u7684\u90AE\u7BB1\u5730\u5740\uFF01")))},required:!0,trigger:"change"}]},count:0,isSendButtonShow:!0,isRegVerify:0,sendBtnText:this.$L("\u53D1\u9001\u9A8C\u8BC1\u7801")}},mounted(){this.getRegVerify()},computed:{...r(["formLabelPosition","formLabelWidth"]),isLdap(){return this.$store.state.userInfo.identity.includes("ldap")}},methods:{sendEmailCode(){this.$store.dispatch("call",{url:"users/email/send",data:{type:2,email:this.formDatum.newEmail},spinner:!0}).then(t=>{this.isSendButtonShow=!1,this.count=120,this.sendBtnText=this.count+" \u79D2";let s=setInterval(()=>{this.count--,this.sendBtnText=this.count+" \u79D2",this.count<=0&&(this.sendBtnText=this.$L("\u53D1\u9001\u9A8C\u8BC1\u7801"),clearInterval(s))},1e3)}).catch(({msg:t})=>{$A.messageError(t)})},submitForm(){this.$refs.formDatum.validate(t=>{t&&(this.loadIng++,this.$store.dispatch("call",{url:"users/email/edit",data:this.formDatum}).then(({data:s})=>{this.count=0,this.sendBtnText=this.$L("\u53D1\u9001\u9A8C\u8BC1\u7801"),$A.messageSuccess("\u4FEE\u6539\u6210\u529F"),this.$store.dispatch("saveUserInfo",s),this.$refs.formDatum.resetFields(),this.isSendButtonShow=!0}).catch(({msg:s})=>{$A.modalError(s)}).finally(s=>{this.loadIng--}))})},resetForm(){this.$refs.formDatum.resetFields()},getRegVerify(){this.configLoad++,this.$store.dispatch("call",{url:"system/setting/email"}).then(({data:t})=>{this.isRegVerify=t.reg_verify==="open"}).finally(t=>{this.configLoad--})}}},a={};var u=n(m,o,l,!1,d,null,null,null);function d(t){for(let s in a)this[s]=a[s]}var f=function(){return u.exports}();export{f as default};

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 26.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFAA64;}
.st1{fill:#FFFFFF;}
</style>
<path class="st0" d="M36,48H12C5.4,48,0,42.6,0,36V12C0,5.4,5.4,0,12,0h24c6.6,0,12,5.4,12,12v24C48,42.6,42.6,48,36,48z"/>
<g>
<g>
<path class="st1" d="M28.7,18.4h3.8c0.5,0,0.8-0.6,0.4-1l-4.7-4.7c-0.4-0.4-1-0.1-1,0.4V17C27.3,17.8,27.9,18.4,28.7,18.4z"/>
<path class="st1" d="M28.7,20.2c-1.8,0-3.2-1.4-3.2-3.2v-4c0-0.3-0.3-0.6-0.6-0.6H17c-1.3,0-2.3,1.1-2.3,2.3v18.7
c0,1.3,1,2.3,2.3,2.3h14c1.3,0,2.3-1,2.3-2.3V20.7c0-0.3-0.3-0.6-0.6-0.6H28.7z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 890 B

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import n from"./FileContent.a5e61dfc.js";import l from"./FilePreview.5bf0b93c.js";import{n as s}from"./app.7b9537da.js";import"./IFrame.1636beca.js";var a=function(){var e=this,i=e.$createElement,t=e._self._c||i;return t("div",{staticClass:"single-file"},[t("PageTitle",{attrs:{title:e.pageName}}),e.loadIng>0?t("Loading"):e.fileInfo?[e.isPreview?t("FilePreview",{attrs:{code:e.code,file:e.fileInfo,historyId:e.historyId,headerShow:!e.$isEEUiApp}}):t("FileContent",{attrs:{file:e.fileInfo},model:{value:e.fileShow,callback:function(r){e.fileShow=r},expression:"fileShow"}})]:e._e()],2)},f=[];const u={components:{FilePreview:l,FileContent:n},data(){return{loadIng:0,code:null,fileShow:!0,fileInfo:null}},mounted(){},computed:{historyId(){return this.$route.query?$A.runNum(this.$route.query.history_id):0},isPreview(){return this.windowPortrait||this.code||this.historyId>0||this.fileInfo&&this.fileInfo.permission===0},pageName(){let e=this.fileInfo?this.fileInfo.name:"";return this.$route.query&&this.$route.query.history_at&&(e+=` [${this.$route.query.history_at}]`),e}},watch:{$route:{handler(){this.getInfo()},immediate:!0}},methods:{getInfo(){let{codeOrFileId:e}=this.$route.params,i={id:e};if(/^\d+$/.test(e))this.code=null;else if(e)this.code=e;else return;setTimeout(t=>{this.loadIng++},600),this.$store.dispatch("call",{url:"file/one",data:i}).then(({data:t})=>{this.fileInfo=t}).catch(({msg:t})=>{$A.modalError({content:t,onOk:()=>{window.close()}})}).finally(t=>{this.loadIng--})}}},o={};var h=s(u,a,f,!1,d,"b8037598",null,null);function d(e){for(let i in o)this[i]=o[i]}var I=function(){return h.exports}();export{I as default};
import n from"./FileContent.b2ac0c47.js";import l from"./FilePreview.f39ec715.js";import{n as s}from"./app.7d416d31.js";import"./IFrame.eb1e20bb.js";var a=function(){var e=this,i=e.$createElement,t=e._self._c||i;return t("div",{staticClass:"single-file"},[t("PageTitle",{attrs:{title:e.pageName}}),e.loadIng>0?t("Loading"):e.fileInfo?[e.isPreview?t("FilePreview",{attrs:{code:e.code,file:e.fileInfo,historyId:e.historyId,headerShow:!e.$isEEUiApp}}):t("FileContent",{attrs:{file:e.fileInfo},model:{value:e.fileShow,callback:function(r){e.fileShow=r},expression:"fileShow"}})]:e._e()],2)},f=[];const u={components:{FilePreview:l,FileContent:n},data(){return{loadIng:0,code:null,fileShow:!0,fileInfo:null}},mounted(){},computed:{historyId(){return this.$route.query?$A.runNum(this.$route.query.history_id):0},isPreview(){return this.windowPortrait||this.code||this.historyId>0||this.fileInfo&&this.fileInfo.permission===0},pageName(){let e=this.fileInfo?this.fileInfo.name:"";return this.$route.query&&this.$route.query.history_at&&(e+=` [${this.$route.query.history_at}]`),e}},watch:{$route:{handler(){this.getInfo()},immediate:!0}},methods:{getInfo(){let{codeOrFileId:e}=this.$route.params,i={id:e};if(/^\d+$/.test(e))this.code=null;else if(e)this.code=e;else return;setTimeout(t=>{this.loadIng++},600),this.$store.dispatch("call",{url:"file/one",data:i}).then(({data:t})=>{this.fileInfo=t}).catch(({msg:t})=>{$A.modalError({content:t,onOk:()=>{window.close()}})}).finally(t=>{this.loadIng--})}}},o={};var h=s(u,a,f,!1,d,"b8037598",null,null);function d(e){for(let i in o)this[i]=o[i]}var I=function(){return h.exports}();export{I as default};

View File

@ -1 +1 @@
import{m as a,n as r,_ as s}from"./app.7b9537da.js";import{I as l}from"./IFrame.1636beca.js";var c=function(){var t=this,i=t.$createElement,e=t._self._c||i;return e("div",{staticClass:"single-file-msg"},[e("PageTitle",{attrs:{title:t.title}}),t.loadIng>0?e("Loading"):t.isWait?t._e():[t.isType("md")?e("MDPreview",{attrs:{initialValue:t.msgDetail.content.content}}):t.isType("text")?e("TEditor",{attrs:{value:t.msgDetail.content.content,height:"100%",readOnly:""}}):t.isType("drawio")?e("Drawio",{attrs:{title:t.msgDetail.msg.name,readOnly:""},model:{value:t.msgDetail.content,callback:function(n){t.$set(t.msgDetail,"content",n)},expression:"msgDetail.content"}}):t.isType("mind")?e("Minder",{attrs:{value:t.msgDetail.content,readOnly:""}}):t.isType("code")?[t.isLongText(t.msgDetail.msg.name)?e("div",{staticClass:"view-code",domProps:{innerHTML:t._s(t.$A.formatTextMsg(t.msgDetail.content.content,t.userId))}}):e("AceEditor",{staticClass:"view-editor",attrs:{ext:t.msgDetail.msg.ext,readOnly:""},model:{value:t.msgDetail.content.content,callback:function(n){t.$set(t.msgDetail.content,"content",n)},expression:"msgDetail.content.content"}})]:t.isType("office")?e("OnlyOffice",{attrs:{code:t.officeCode,documentKey:t.documentKey,readOnly:""},model:{value:t.officeContent,callback:function(n){t.officeContent=n},expression:"officeContent"}}):t.isType("preview")?e("IFrame",{staticClass:"preview-iframe",attrs:{src:t.previewUrl}}):e("div",{staticClass:"no-support"},[t._v(t._s(t.$L("\u4E0D\u652F\u6301\u5355\u72EC\u67E5\u770B\u6B64\u6D88\u606F")))])]],2)},m=[];const d=()=>s(()=>import("./preview.59685de6.js"),["js/build/preview.59685de6.js","js/build/app.7b9537da.js","js/build/app.9141377f.css"]),_=()=>s(()=>import("./TEditor.a6422506.js"),["js/build/TEditor.a6422506.js","js/build/app.7b9537da.js","js/build/app.9141377f.css","js/build/ImgUpload.0ea1891a.js"]),u=()=>s(()=>import("./AceEditor.85fce2b7.js"),["js/build/AceEditor.85fce2b7.js","js/build/app.7b9537da.js","js/build/app.9141377f.css"]),g=()=>s(()=>import("./OnlyOffice.f07263f2.js"),["js/build/OnlyOffice.f07263f2.js","js/build/OnlyOffice.97177ac3.css","js/build/app.7b9537da.js","js/build/app.9141377f.css","js/build/IFrame.1636beca.js"]),f=()=>s(()=>import("./Drawio.394b2772.js"),["js/build/Drawio.394b2772.js","js/build/Drawio.fc5c6326.css","js/build/app.7b9537da.js","js/build/app.9141377f.css","js/build/IFrame.1636beca.js"]),p=()=>s(()=>import("./Minder.221613f7.js"),["js/build/Minder.221613f7.js","js/build/Minder.3ba64342.css","js/build/IFrame.1636beca.js","js/build/app.7b9537da.js","js/build/app.9141377f.css"]),v={components:{IFrame:l,AceEditor:u,TEditor:_,MDPreview:d,OnlyOffice:g,Drawio:f,Minder:p},data(){return{loadIng:0,isWait:!1,msgDetail:{}}},mounted(){},watch:{$route:{handler(){this.getInfo()},immediate:!0}},computed:{...a(["userId"]),msgId(){const{msgId:t}=this.$route.params;return parseInt(/^\d+$/.test(t)?t:0)},title(){const{msg:t}=this.msgDetail;return t&&t.name?t.name:"Loading..."},isType(){const{msgDetail:t}=this;return function(i){return t.type=="file"&&t.file_mode==i}},officeContent(){return{id:this.msgDetail.id||0,type:this.msgDetail.msg.ext,name:this.title}},officeCode(){return"msgFile_"+this.msgDetail.id},previewUrl(){const{name:t,key:i}=this.msgDetail.content;return $A.apiUrl(`../online/preview/${t}?key=${i}`)}},methods:{getInfo(){this.msgId<=0||(setTimeout(t=>{this.loadIng++},600),this.isWait=!0,this.$store.dispatch("call",{url:"dialog/msg/detail",data:{msg_id:this.msgId}}).then(({data:t})=>{this.msgDetail=t}).catch(({msg:t})=>{$A.modalError({content:t,onOk:()=>{this.$Electron&&window.close()}})}).finally(t=>{this.loadIng--,this.isWait=!1}))},documentKey(){return new Promise(t=>{this.$store.dispatch("call",{url:"dialog/msg/detail",data:{msg_id:this.msgId,only_update_at:"yes"}}).then(({data:i})=>{t(`${i.id}-${$A.Time(i.update_at)}`)}).catch(()=>{t(0)})})},isLongText(t){return/^LongText-/.test(t)}}},o={};var h=r(v,c,m,!1,D,null,null,null);function D(t){for(let i in o)this[i]=o[i]}var I=function(){return h.exports}();export{I as default};
import{m as a,n as r,_ as s}from"./app.7d416d31.js";import{I as l}from"./IFrame.eb1e20bb.js";var c=function(){var t=this,i=t.$createElement,e=t._self._c||i;return e("div",{staticClass:"single-file-msg"},[e("PageTitle",{attrs:{title:t.title}}),t.loadIng>0?e("Loading"):t.isWait?t._e():[t.isType("md")?e("MDPreview",{attrs:{initialValue:t.msgDetail.content.content}}):t.isType("text")?e("TEditor",{attrs:{value:t.msgDetail.content.content,height:"100%",readOnly:""}}):t.isType("drawio")?e("Drawio",{attrs:{title:t.msgDetail.msg.name,readOnly:""},model:{value:t.msgDetail.content,callback:function(n){t.$set(t.msgDetail,"content",n)},expression:"msgDetail.content"}}):t.isType("mind")?e("Minder",{attrs:{value:t.msgDetail.content,readOnly:""}}):t.isType("code")?[t.isLongText(t.msgDetail.msg.name)?e("div",{staticClass:"view-code",domProps:{innerHTML:t._s(t.$A.formatTextMsg(t.msgDetail.content.content,t.userId))}}):e("AceEditor",{staticClass:"view-editor",attrs:{ext:t.msgDetail.msg.ext,readOnly:""},model:{value:t.msgDetail.content.content,callback:function(n){t.$set(t.msgDetail.content,"content",n)},expression:"msgDetail.content.content"}})]:t.isType("office")?e("OnlyOffice",{attrs:{code:t.officeCode,documentKey:t.documentKey,readOnly:""},model:{value:t.officeContent,callback:function(n){t.officeContent=n},expression:"officeContent"}}):t.isType("preview")?e("IFrame",{staticClass:"preview-iframe",attrs:{src:t.previewUrl}}):e("div",{staticClass:"no-support"},[t._v(t._s(t.$L("\u4E0D\u652F\u6301\u5355\u72EC\u67E5\u770B\u6B64\u6D88\u606F")))])]],2)},m=[];const d=()=>s(()=>import("./preview.17f61613.js"),["js/build/preview.17f61613.js","js/build/app.7d416d31.js","js/build/app.c3e7b3d4.css"]),_=()=>s(()=>import("./TEditor.3f7afdfb.js"),["js/build/TEditor.3f7afdfb.js","js/build/app.7d416d31.js","js/build/app.c3e7b3d4.css","js/build/ImgUpload.24b2ef1e.js"]),u=()=>s(()=>import("./AceEditor.8b42aa0d.js"),["js/build/AceEditor.8b42aa0d.js","js/build/app.7d416d31.js","js/build/app.c3e7b3d4.css"]),g=()=>s(()=>import("./OnlyOffice.4c0823f3.js"),["js/build/OnlyOffice.4c0823f3.js","js/build/OnlyOffice.d095e45d.css","js/build/app.7d416d31.js","js/build/app.c3e7b3d4.css","js/build/IFrame.eb1e20bb.js"]),f=()=>s(()=>import("./Drawio.9adade4e.js"),["js/build/Drawio.9adade4e.js","js/build/Drawio.fc5c6326.css","js/build/app.7d416d31.js","js/build/app.c3e7b3d4.css","js/build/IFrame.eb1e20bb.js"]),p=()=>s(()=>import("./Minder.7a74b4ef.js"),["js/build/Minder.7a74b4ef.js","js/build/Minder.3ba64342.css","js/build/IFrame.eb1e20bb.js","js/build/app.7d416d31.js","js/build/app.c3e7b3d4.css"]),v={components:{IFrame:l,AceEditor:u,TEditor:_,MDPreview:d,OnlyOffice:g,Drawio:f,Minder:p},data(){return{loadIng:0,isWait:!1,msgDetail:{}}},mounted(){},watch:{$route:{handler(){this.getInfo()},immediate:!0}},computed:{...a(["userId"]),msgId(){const{msgId:t}=this.$route.params;return parseInt(/^\d+$/.test(t)?t:0)},title(){const{msg:t}=this.msgDetail;return t&&t.name?t.name:"Loading..."},isType(){const{msgDetail:t}=this;return function(i){return t.type=="file"&&t.file_mode==i}},officeContent(){return{id:this.msgDetail.id||0,type:this.msgDetail.msg.ext,name:this.title}},officeCode(){return"msgFile_"+this.msgDetail.id},previewUrl(){const{name:t,key:i}=this.msgDetail.content;return $A.apiUrl(`../online/preview/${t}?key=${i}`)}},methods:{getInfo(){this.msgId<=0||(setTimeout(t=>{this.loadIng++},600),this.isWait=!0,this.$store.dispatch("call",{url:"dialog/msg/detail",data:{msg_id:this.msgId}}).then(({data:t})=>{this.msgDetail=t}).catch(({msg:t})=>{$A.modalError({content:t,onOk:()=>{this.$Electron&&window.close()}})}).finally(t=>{this.loadIng--,this.isWait=!1}))},documentKey(){return new Promise((t,i)=>{this.$store.dispatch("call",{url:"dialog/msg/detail",data:{msg_id:this.msgId,only_update_at:"yes"}}).then(({data:e})=>{t(`${e.id}-${$A.Time(e.update_at)}`)}).catch(e=>{i(e)})})},isLongText(t){return/^LongText-/.test(t)}}},o={};var h=r(v,c,m,!1,D,null,null,null);function D(t){for(let i in o)this[i]=o[i]}var I=function(){return h.exports}();export{I as default};

View File

@ -1 +0,0 @@
import{n as o,_ as n}from"./app.7b9537da.js";import{I as r}from"./IFrame.1636beca.js";var s=function(){var e=this,t=e.$createElement,i=e._self._c||t;return i("div",{staticClass:"single-file-task"},[i("PageTitle",{attrs:{title:e.title}}),e.loadIng>0?i("Loading"):e.isWait?e._e():[e.isType("md")?i("MDPreview",{attrs:{initialValue:e.fileDetail.content.content}}):e.isType("text")?i("TEditor",{attrs:{value:e.fileDetail.content.content,height:"100%",readOnly:""}}):e.isType("drawio")?i("Drawio",{attrs:{title:e.fileDetail.name,readOnly:""},model:{value:e.fileDetail.content,callback:function(l){e.$set(e.fileDetail,"content",l)},expression:"fileDetail.content"}}):e.isType("mind")?i("Minder",{attrs:{value:e.fileDetail.content,readOnly:""}}):e.isType("code")?i("AceEditor",{staticClass:"view-editor",attrs:{ext:e.fileDetail.ext,readOnly:""},model:{value:e.fileDetail.content.content,callback:function(l){e.$set(e.fileDetail.content,"content",l)},expression:"fileDetail.content.content"}}):e.isType("office")?i("OnlyOffice",{attrs:{code:e.officeCode,documentKey:e.documentKey,readOnly:""},model:{value:e.officeContent,callback:function(l){e.officeContent=l},expression:"officeContent"}}):e.isType("preview")?i("IFrame",{staticClass:"preview-iframe",attrs:{src:e.previewUrl}}):i("div",{staticClass:"no-support"},[e._v(e._s(e.$L("\u4E0D\u652F\u6301\u5355\u72EC\u67E5\u770B\u6B64\u6D88\u606F")))])]],2)},c=[];const d=()=>n(()=>import("./preview.59685de6.js"),["js/build/preview.59685de6.js","js/build/app.7b9537da.js","js/build/app.9141377f.css"]),f=()=>n(()=>import("./TEditor.a6422506.js"),["js/build/TEditor.a6422506.js","js/build/app.7b9537da.js","js/build/app.9141377f.css","js/build/ImgUpload.0ea1891a.js"]),_=()=>n(()=>import("./AceEditor.85fce2b7.js"),["js/build/AceEditor.85fce2b7.js","js/build/app.7b9537da.js","js/build/app.9141377f.css"]),u=()=>n(()=>import("./OnlyOffice.f07263f2.js"),["js/build/OnlyOffice.f07263f2.js","js/build/OnlyOffice.97177ac3.css","js/build/app.7b9537da.js","js/build/app.9141377f.css","js/build/IFrame.1636beca.js"]),p=()=>n(()=>import("./Drawio.394b2772.js"),["js/build/Drawio.394b2772.js","js/build/Drawio.fc5c6326.css","js/build/app.7b9537da.js","js/build/app.9141377f.css","js/build/IFrame.1636beca.js"]),m=()=>n(()=>import("./Minder.221613f7.js"),["js/build/Minder.221613f7.js","js/build/Minder.3ba64342.css","js/build/IFrame.1636beca.js","js/build/app.7b9537da.js","js/build/app.9141377f.css"]),v={components:{IFrame:r,AceEditor:_,TEditor:f,MDPreview:d,OnlyOffice:u,Drawio:p,Minder:m},data(){return{loadIng:0,isWait:!1,fileDetail:{}}},mounted(){},watch:{$route:{handler(){this.getInfo()},immediate:!0}},computed:{fileId(){const{fileId:e}=this.$route.params;return parseInt(/^\d+$/.test(e)?e:0)},title(){const{name:e}=this.fileDetail;return e||"Loading..."},isType(){const{fileDetail:e}=this;return function(t){return e.file_mode==t}},officeContent(){return{id:this.fileDetail.id||0,type:this.fileDetail.ext,name:this.title}},officeCode(){return"taskFile_"+this.fileDetail.id},previewUrl(){const{name:e,key:t}=this.fileDetail.content;return $A.apiUrl(`../online/preview/${e}?key=${t}`)}},methods:{getInfo(){this.fileId<=0||(setTimeout(e=>{this.loadIng++},600),this.isWait=!0,this.$store.dispatch("call",{url:"project/task/filedetail",data:{file_id:this.fileId}}).then(({data:e})=>{this.fileDetail=e}).catch(({msg:e})=>{$A.modalError({content:e,onOk:()=>{this.$Electron&&window.close()}})}).finally(e=>{this.loadIng--,this.isWait=!1}))},documentKey(){return new Promise(e=>{this.$store.dispatch("call",{url:"project/task/filedetail",data:{file_id:this.fileId,only_update_at:"yes"}}).then(({data:t})=>{e(`${t.id}-${$A.Time(t.update_at)}`)}).catch(()=>{e(0)})})}}},a={};var h=o(v,s,c,!1,D,null,null,null);function D(e){for(let t in a)this[t]=a[t]}var T=function(){return h.exports}();export{T as default};

1
public/js/build/fileTask.f0f227c9.js vendored Normal file
View File

@ -0,0 +1 @@
import{n as a,_ as n}from"./app.7d416d31.js";import{I as r}from"./IFrame.eb1e20bb.js";var s=function(){var e=this,i=e.$createElement,t=e._self._c||i;return t("div",{staticClass:"single-file-task"},[t("PageTitle",{attrs:{title:e.title}}),e.loadIng>0?t("Loading"):e.isWait?e._e():[e.isType("md")?t("MDPreview",{attrs:{initialValue:e.fileDetail.content.content}}):e.isType("text")?t("TEditor",{attrs:{value:e.fileDetail.content.content,height:"100%",readOnly:""}}):e.isType("drawio")?t("Drawio",{attrs:{title:e.fileDetail.name,readOnly:""},model:{value:e.fileDetail.content,callback:function(l){e.$set(e.fileDetail,"content",l)},expression:"fileDetail.content"}}):e.isType("mind")?t("Minder",{attrs:{value:e.fileDetail.content,readOnly:""}}):e.isType("code")?t("AceEditor",{staticClass:"view-editor",attrs:{ext:e.fileDetail.ext,readOnly:""},model:{value:e.fileDetail.content.content,callback:function(l){e.$set(e.fileDetail.content,"content",l)},expression:"fileDetail.content.content"}}):e.isType("office")?t("OnlyOffice",{attrs:{code:e.officeCode,documentKey:e.documentKey,readOnly:""},model:{value:e.officeContent,callback:function(l){e.officeContent=l},expression:"officeContent"}}):e.isType("preview")?t("IFrame",{staticClass:"preview-iframe",attrs:{src:e.previewUrl}}):t("div",{staticClass:"no-support"},[e._v(e._s(e.$L("\u4E0D\u652F\u6301\u5355\u72EC\u67E5\u770B\u6B64\u6D88\u606F")))])]],2)},c=[];const d=()=>n(()=>import("./preview.17f61613.js"),["js/build/preview.17f61613.js","js/build/app.7d416d31.js","js/build/app.c3e7b3d4.css"]),f=()=>n(()=>import("./TEditor.3f7afdfb.js"),["js/build/TEditor.3f7afdfb.js","js/build/app.7d416d31.js","js/build/app.c3e7b3d4.css","js/build/ImgUpload.24b2ef1e.js"]),_=()=>n(()=>import("./AceEditor.8b42aa0d.js"),["js/build/AceEditor.8b42aa0d.js","js/build/app.7d416d31.js","js/build/app.c3e7b3d4.css"]),u=()=>n(()=>import("./OnlyOffice.4c0823f3.js"),["js/build/OnlyOffice.4c0823f3.js","js/build/OnlyOffice.d095e45d.css","js/build/app.7d416d31.js","js/build/app.c3e7b3d4.css","js/build/IFrame.eb1e20bb.js"]),p=()=>n(()=>import("./Drawio.9adade4e.js"),["js/build/Drawio.9adade4e.js","js/build/Drawio.fc5c6326.css","js/build/app.7d416d31.js","js/build/app.c3e7b3d4.css","js/build/IFrame.eb1e20bb.js"]),m=()=>n(()=>import("./Minder.7a74b4ef.js"),["js/build/Minder.7a74b4ef.js","js/build/Minder.3ba64342.css","js/build/IFrame.eb1e20bb.js","js/build/app.7d416d31.js","js/build/app.c3e7b3d4.css"]),v={components:{IFrame:r,AceEditor:_,TEditor:f,MDPreview:d,OnlyOffice:u,Drawio:p,Minder:m},data(){return{loadIng:0,isWait:!1,fileDetail:{}}},mounted(){},watch:{$route:{handler(){this.getInfo()},immediate:!0}},computed:{fileId(){const{fileId:e}=this.$route.params;return parseInt(/^\d+$/.test(e)?e:0)},title(){const{name:e}=this.fileDetail;return e||"Loading..."},isType(){const{fileDetail:e}=this;return function(i){return e.file_mode==i}},officeContent(){return{id:this.fileDetail.id||0,type:this.fileDetail.ext,name:this.title}},officeCode(){return"taskFile_"+this.fileDetail.id},previewUrl(){const{name:e,key:i}=this.fileDetail.content;return $A.apiUrl(`../online/preview/${e}?key=${i}`)}},methods:{getInfo(){this.fileId<=0||(setTimeout(e=>{this.loadIng++},600),this.isWait=!0,this.$store.dispatch("call",{url:"project/task/filedetail",data:{file_id:this.fileId}}).then(({data:e})=>{this.fileDetail=e}).catch(({msg:e})=>{$A.modalError({content:e,onOk:()=>{this.$Electron&&window.close()}})}).finally(e=>{this.loadIng--,this.isWait=!1}))},documentKey(){return new Promise((e,i)=>{this.$store.dispatch("call",{url:"project/task/filedetail",data:{file_id:this.fileId,only_update_at:"yes"}}).then(({data:t})=>{e(`${t.id}-${$A.Time(t.update_at)}`)}).catch(t=>{i(t)})})}}},o={};var h=a(v,s,c,!1,D,null,null,null);function D(e){for(let i in o)this[i]=o[i]}var T=function(){return h.exports}();export{T as default};

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{n as r,l as i}from"./app.7b9537da.js";var s=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div")},a=[];const h={data(){return{}},computed:{isSoftware(){return this.$Electron||this.$isEEUiApp}},mounted(){/^https*:/i.test(window.location.protocol)&&(this.$router.mode==="hash"?$A.stringLength(window.location.pathname)>2&&(window.location.href=`${window.location.origin}/#${window.location.pathname}${window.location.search}`):this.$router.mode==="history"&&$A.strExists(window.location.href,"/#/")&&(window.location.href=window.location.href.replace("/#/","/")))},activated(){this.start()},methods:{start(){if(this.isSoftware){this.goNext();return}this.$store.dispatch("showSpinner",1e3),this.$store.dispatch("needHome").then(t=>{this.goIndex()}).catch(t=>{this.goNext()}).finally(t=>{this.$store.dispatch("hiddenSpinner")})},goIndex(){i==="zh"||i==="zh-CHT"?window.location.href=$A.apiUrl("../site/zh/index.html"):window.location.href=$A.apiUrl("../site/en/index.html")},goNext(){this.userId>0?this.goForward({name:"manage-dashboard"},!0):this.goForward({name:"login"},!0)}}},o={};var l=r(h,s,a,!1,d,null,null,null);function d(t){for(let e in o)this[e]=o[e]}var w=function(){return l.exports}();export{w as default};
import{n as r,l as i}from"./app.7d416d31.js";var s=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div")},a=[];const h={data(){return{}},computed:{isSoftware(){return this.$Electron||this.$isEEUiApp}},mounted(){/^https*:/i.test(window.location.protocol)&&(this.$router.mode==="hash"?$A.stringLength(window.location.pathname)>2&&(window.location.href=`${window.location.origin}/#${window.location.pathname}${window.location.search}`):this.$router.mode==="history"&&$A.strExists(window.location.href,"/#/")&&(window.location.href=window.location.href.replace("/#/","/")))},activated(){this.start()},methods:{start(){if(this.isSoftware){this.goNext();return}this.$store.dispatch("showSpinner",1e3),this.$store.dispatch("needHome").then(t=>{this.goIndex()}).catch(t=>{this.goNext()}).finally(t=>{this.$store.dispatch("hiddenSpinner")})},goIndex(){i==="zh"||i==="zh-CHT"?window.location.href=$A.apiUrl("../site/zh/index.html"):window.location.href=$A.apiUrl("../site/en/index.html")},goNext(){this.userId>0?this.goForward({name:"manage-dashboard"},!0):this.goForward({name:"login"},!0)}}},o={};var l=r(h,s,a,!1,d,null,null,null);function d(t){for(let e in o)this[e]=o[e]}var w=function(){return l.exports}();export{w as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{n as i}from"./app.7b9537da.js";var r=function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"setting-item submit"},[a("Form",{ref:"formData",attrs:{model:t.formData,rules:t.ruleData,"label-width":"auto"},nativeOn:{submit:function(e){e.preventDefault()}}},[t.$Electron?[a("FormItem",{attrs:{label:t.$L("\u622A\u56FE\u5FEB\u6377\u952E"),prop:"screenshot_key"}},[a("div",{staticClass:"input-box"},[t._v(" "+t._s(t.mateName)),a("div",{staticClass:"input-box-push"},[t._v("+")]),t._v("Shift"),a("div",{staticClass:"input-box-push"},[t._v("+")]),a("Input",{staticClass:"input-box-key",attrs:{maxlength:2},model:{value:t.formData.screenshot_key,callback:function(e){t.$set(t.formData,"screenshot_key",e)},expression:"formData.screenshot_key"}})],1)]),a("FormItem",{attrs:{label:t.$L("\u65B0\u5EFA\u9879\u76EE")}},[a("div",{staticClass:"input-box"},[t._v(" "+t._s(t.mateName)),a("div",{staticClass:"input-box-push"},[t._v("+")]),t._v("B ")])]),a("FormItem",{attrs:{label:t.$L("\u65B0\u5EFA\u4EFB\u52A1")}},[a("div",{staticClass:"input-box"},[t._v(" "+t._s(t.mateName)),a("div",{staticClass:"input-box-push"},[t._v("+")]),t._v("N (K) ")])]),a("FormItem",{attrs:{label:t.$L("\u65B0\u4F1A\u8BAE")}},[a("div",{staticClass:"input-box"},[t._v(" "+t._s(t.mateName)),a("div",{staticClass:"input-box-push"},[t._v("+")]),t._v("J ")])]),a("FormItem",{attrs:{label:t.$L("\u8BBE\u7F6E")}},[a("div",{staticClass:"input-box"},[t._v(" "+t._s(t.mateName)),a("div",{staticClass:"input-box-push"},[t._v("+")]),t._v(", ")])])]:t._e(),t.$isEEUiApp?a("FormItem",{attrs:{label:t.$L("\u53D1\u9001\u6309\u94AE")}},[a("RadioGroup",{model:{value:t.formData.send_button_app,callback:function(e){t.$set(t.formData,"send_button_app",e)},expression:"formData.send_button_app"}},[a("Radio",{attrs:{label:"button"}},[t._v(t._s(t.$L("\u5F00\u542F")))]),a("Radio",{attrs:{label:"enter"}},[t._v(t._s(t.$L("\u5173\u95ED")))])],1),a("div",{staticClass:"form-tip"},[t._v(t._s(t.$L("\u5F00\u542F\u540E\uFF0C\u53D1\u9001\u6D88\u606F\u65F6\u952E\u76D8\u4E0A\u7684\u53D1\u9001\u6309\u94AE\u4F1A\u88AB\u66FF\u6362\u6210\u6362\u884C")))])],1):t.$Electron?a("FormItem",{attrs:{label:t.$L("\u53D1\u9001\u6309\u94AE")}},[a("RadioGroup",{attrs:{vertical:""},model:{value:t.formData.send_button_desktop,callback:function(e){t.$set(t.formData,"send_button_desktop",e)},expression:"formData.send_button_desktop"}},[a("Radio",{attrs:{label:"enter"}},[t._v("Enter "+t._s(t.$L("\u53D1\u9001")))]),a("Radio",{staticClass:"input-box",attrs:{label:"button"}},[t._v(" "+t._s(t.mateName)),a("div",{staticClass:"input-box-push"},[t._v("+")]),t._v("Enter "+t._s(t.$L("\u53D1\u9001"))+" ")])],1)],1):t._e()],2),a("div",{staticClass:"setting-footer"},[a("Button",{attrs:{loading:t.loadIng>0,type:"primary"},on:{click:t.submitForm}},[t._v(t._s(t.$L("\u4FDD\u5B58")))]),a("Button",{staticStyle:{"margin-left":"8px"},attrs:{loading:t.loadIng>0},on:{click:t.resetForm}},[t._v(t._s(t.$L("\u91CD\u7F6E")))])],1)],1)},n=[];const _={data(){return{loadIng:0,mateName:/macintosh|mac os x/i.test(navigator.userAgent)?"Command":"Ctrl",formData:{screenshot_key:"",send_button_app:"",send_button_desktop:""},ruleData:{screenshot_key:[{validator:(t,s,a)=>{s=s.trim(),s=s.substring(s.length-1),s&&!/^[A-Za-z0-9]?$/.test(s)?a(new Error(this.$L("\u53EA\u80FD\u8F93\u5165\u5B57\u6BCD\u6216\u6570\u5B57"))):a(),this.$nextTick(e=>{this.$set(this.formData,t.field,s.toUpperCase())})},trigger:"change"}]}}},mounted(){this.initData()},methods:{initData(){this.formData=$A.cloneJSON(this.$store.state.cacheKeyboard),this.formData_bak=$A.cloneJSON(this.formData)},submitForm(){this.$refs.formData.validate(t=>{t&&this.$store.dispatch("handleKeyboard",this.formData).then(s=>{this.$Electron&&$A.bindScreenshotKey(s),$A.messageSuccess("\u4FDD\u5B58\u6210\u529F")})})},resetForm(){this.formData=$A.cloneJSON(this.formData_bak)}}},o={};var l=i(_,r,n,!1,m,"3f2987a4",null,null);function m(t){for(let s in o)this[s]=o[s]}var u=function(){return l.exports}();export{u as default};
import{n as i}from"./app.7d416d31.js";var r=function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("div",{staticClass:"setting-item submit"},[a("Form",{ref:"formData",attrs:{model:t.formData,rules:t.ruleData,"label-width":"auto"},nativeOn:{submit:function(e){e.preventDefault()}}},[t.$Electron?[a("FormItem",{attrs:{label:t.$L("\u622A\u56FE\u5FEB\u6377\u952E"),prop:"screenshot_key"}},[a("div",{staticClass:"input-box"},[t._v(" "+t._s(t.mateName)),a("div",{staticClass:"input-box-push"},[t._v("+")]),t._v("Shift"),a("div",{staticClass:"input-box-push"},[t._v("+")]),a("Input",{staticClass:"input-box-key",attrs:{maxlength:2},model:{value:t.formData.screenshot_key,callback:function(e){t.$set(t.formData,"screenshot_key",e)},expression:"formData.screenshot_key"}})],1)]),a("FormItem",{attrs:{label:t.$L("\u65B0\u5EFA\u9879\u76EE")}},[a("div",{staticClass:"input-box"},[t._v(" "+t._s(t.mateName)),a("div",{staticClass:"input-box-push"},[t._v("+")]),t._v("B ")])]),a("FormItem",{attrs:{label:t.$L("\u65B0\u5EFA\u4EFB\u52A1")}},[a("div",{staticClass:"input-box"},[t._v(" "+t._s(t.mateName)),a("div",{staticClass:"input-box-push"},[t._v("+")]),t._v("N (K) ")])]),a("FormItem",{attrs:{label:t.$L("\u65B0\u4F1A\u8BAE")}},[a("div",{staticClass:"input-box"},[t._v(" "+t._s(t.mateName)),a("div",{staticClass:"input-box-push"},[t._v("+")]),t._v("J ")])]),a("FormItem",{attrs:{label:t.$L("\u8BBE\u7F6E")}},[a("div",{staticClass:"input-box"},[t._v(" "+t._s(t.mateName)),a("div",{staticClass:"input-box-push"},[t._v("+")]),t._v(", ")])])]:t._e(),t.$isEEUiApp?a("FormItem",{attrs:{label:t.$L("\u53D1\u9001\u6309\u94AE")}},[a("RadioGroup",{model:{value:t.formData.send_button_app,callback:function(e){t.$set(t.formData,"send_button_app",e)},expression:"formData.send_button_app"}},[a("Radio",{attrs:{label:"button"}},[t._v(t._s(t.$L("\u5F00\u542F")))]),a("Radio",{attrs:{label:"enter"}},[t._v(t._s(t.$L("\u5173\u95ED")))])],1),a("div",{staticClass:"form-tip"},[t._v(t._s(t.$L("\u5F00\u542F\u540E\uFF0C\u53D1\u9001\u6D88\u606F\u65F6\u952E\u76D8\u4E0A\u7684\u53D1\u9001\u6309\u94AE\u4F1A\u88AB\u66FF\u6362\u6210\u6362\u884C")))])],1):t.$Electron?a("FormItem",{attrs:{label:t.$L("\u53D1\u9001\u6309\u94AE")}},[a("RadioGroup",{attrs:{vertical:""},model:{value:t.formData.send_button_desktop,callback:function(e){t.$set(t.formData,"send_button_desktop",e)},expression:"formData.send_button_desktop"}},[a("Radio",{attrs:{label:"enter"}},[t._v("Enter "+t._s(t.$L("\u53D1\u9001")))]),a("Radio",{staticClass:"input-box",attrs:{label:"button"}},[t._v(" "+t._s(t.mateName)),a("div",{staticClass:"input-box-push"},[t._v("+")]),t._v("Enter "+t._s(t.$L("\u53D1\u9001"))+" ")])],1)],1):t._e()],2),a("div",{staticClass:"setting-footer"},[a("Button",{attrs:{loading:t.loadIng>0,type:"primary"},on:{click:t.submitForm}},[t._v(t._s(t.$L("\u4FDD\u5B58")))]),a("Button",{staticStyle:{"margin-left":"8px"},attrs:{loading:t.loadIng>0},on:{click:t.resetForm}},[t._v(t._s(t.$L("\u91CD\u7F6E")))])],1)],1)},n=[];const _={data(){return{loadIng:0,mateName:/macintosh|mac os x/i.test(navigator.userAgent)?"Command":"Ctrl",formData:{screenshot_key:"",send_button_app:"",send_button_desktop:""},ruleData:{screenshot_key:[{validator:(t,s,a)=>{s=s.trim(),s=s.substring(s.length-1),s&&!/^[A-Za-z0-9]?$/.test(s)?a(new Error(this.$L("\u53EA\u80FD\u8F93\u5165\u5B57\u6BCD\u6216\u6570\u5B57"))):a(),this.$nextTick(e=>{this.$set(this.formData,t.field,s.toUpperCase())})},trigger:"change"}]}}},mounted(){this.initData()},methods:{initData(){this.formData=$A.cloneJSON(this.$store.state.cacheKeyboard),this.formData_bak=$A.cloneJSON(this.formData)},submitForm(){this.$refs.formData.validate(t=>{t&&this.$store.dispatch("handleKeyboard",this.formData).then(s=>{this.$Electron&&$A.bindScreenshotKey(s),$A.messageSuccess("\u4FDD\u5B58\u6210\u529F")})})},resetForm(){this.formData=$A.cloneJSON(this.formData_bak)}}},o={};var l=i(_,r,n,!1,m,"3f2987a4",null,null);function m(t){for(let s in o)this[s]=o[s]}var u=function(){return l.exports}();export{u as default};

View File

@ -1 +1 @@
import{d as s,m as l,l as i,q as m,n as u}from"./app.7b9537da.js";var f=function(){var t=this,o=t.$createElement,a=t._self._c||o;return a("div",{staticClass:"setting-item submit"},[a("Form",{ref:"formData",attrs:{model:t.formData,rules:t.ruleData,labelPosition:t.formLabelPosition,labelWidth:t.formLabelWidth},nativeOn:{submit:function(e){e.preventDefault()}}},[a("FormItem",{attrs:{label:t.$L("\u9009\u62E9\u8BED\u8A00"),prop:"language"}},[a("Select",{attrs:{placeholder:t.$L("\u9009\u9879\u8BED\u8A00")},model:{value:t.formData.language,callback:function(e){t.$set(t.formData,"language",e)},expression:"formData.language"}},t._l(t.languageList,function(e,n){return a("Option",{key:n,attrs:{value:n}},[t._v(t._s(e))])}),1)],1)],1),a("div",{staticClass:"setting-footer"},[a("Button",{attrs:{loading:t.loadIng>0,type:"primary"},on:{click:t.submitForm}},[t._v(t._s(t.$L("\u63D0\u4EA4")))]),a("Button",{staticStyle:{"margin-left":"8px"},attrs:{loading:t.loadIng>0},on:{click:t.resetForm}},[t._v(t._s(t.$L("\u91CD\u7F6E")))])],1)],1)},g=[];const c={data(){return{loadIng:0,languageList:s,formData:{language:""},ruleData:{}}},mounted(){this.initData()},computed:{...l(["formLabelPosition","formLabelWidth"])},methods:{initData(){this.$set(this.formData,"language",i),this.formData_bak=$A.cloneJSON(this.formData)},submitForm(){this.$refs.formData.validate(t=>{t&&m(this.formData.language)})},resetForm(){this.formData=$A.cloneJSON(this.formData_bak)}}},r={};var _=u(c,f,g,!1,d,null,null,null);function d(t){for(let o in r)this[o]=r[o]}var p=function(){return _.exports}();export{p as default};
import{d as s,m as l,l as i,q as m,n as u}from"./app.7d416d31.js";var f=function(){var t=this,o=t.$createElement,a=t._self._c||o;return a("div",{staticClass:"setting-item submit"},[a("Form",{ref:"formData",attrs:{model:t.formData,rules:t.ruleData,labelPosition:t.formLabelPosition,labelWidth:t.formLabelWidth},nativeOn:{submit:function(e){e.preventDefault()}}},[a("FormItem",{attrs:{label:t.$L("\u9009\u62E9\u8BED\u8A00"),prop:"language"}},[a("Select",{attrs:{placeholder:t.$L("\u9009\u9879\u8BED\u8A00")},model:{value:t.formData.language,callback:function(e){t.$set(t.formData,"language",e)},expression:"formData.language"}},t._l(t.languageList,function(e,n){return a("Option",{key:n,attrs:{value:n}},[t._v(t._s(e))])}),1)],1)],1),a("div",{staticClass:"setting-footer"},[a("Button",{attrs:{loading:t.loadIng>0,type:"primary"},on:{click:t.submitForm}},[t._v(t._s(t.$L("\u63D0\u4EA4")))]),a("Button",{staticStyle:{"margin-left":"8px"},attrs:{loading:t.loadIng>0},on:{click:t.resetForm}},[t._v(t._s(t.$L("\u91CD\u7F6E")))])],1)],1)},g=[];const c={data(){return{loadIng:0,languageList:s,formData:{language:""},ruleData:{}}},mounted(){this.initData()},computed:{...l(["formLabelPosition","formLabelWidth"])},methods:{initData(){this.$set(this.formData,"language",i),this.formData_bak=$A.cloneJSON(this.formData)},submitForm(){this.$refs.formData.validate(t=>{t&&m(this.formData.language)})},resetForm(){this.formData=$A.cloneJSON(this.formData_bak)}}},r={};var _=u(c,f,g,!1,d,null,null,null);function d(t){for(let o in r)this[o]=r[o]}var p=function(){return _.exports}();export{p as default};

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" viewBox="0 0 48 48"><defs><clipPath id="master_svg0_3054_25667"><rect x="12" y="12" width="24" height="24" rx="0"/></clipPath></defs><g><rect x="0" y="0" width="48" height="48" rx="12" fill="#FFC835" fill-opacity="1"/><g clip-path="url(#master_svg0_3054_25667)"><g><path d="M33.400099999999995,12C34.0625,12,34.599599999999995,12.537033,34.599599999999995,13.1995L34.599599999999995,34.799099999999996C34.6004,35.4621,34.0631,36,33.400099999999995,36L16.59993,36C14.61174,36,13,34.3883,13,32.400099999999995L13,15.59993C13,13.61174,14.61174,12,16.59993,12L33.400099999999995,12ZM32.1991,31.1991L16.59993,31.1991C15.953240000000001,31.2215,15.440570000000001,31.7523,15.440570000000001,32.3994C15.440570000000001,33.0464,15.953240000000001,33.577200000000005,16.59993,33.599599999999995L32.1991,33.599599999999995L32.1991,31.1991ZM23.799799999999998,22.799799999999998C21.8116,22.799799999999998,20.19986,24.4115,20.19986,26.3997L27.3997,26.3997C27.3997,24.4115,25.788,22.799799999999998,23.799799999999998,22.799799999999998ZM23.799799999999998,16.799419999999998C22.47406,16.799419999999998,21.39935,17.87413,21.39935,19.19986C21.39935,20.525579999999998,22.47406,21.60029,23.799799999999998,21.60029C25.125500000000002,21.60029,26.200200000000002,20.525579999999998,26.200200000000002,19.19986C26.1994,17.87446,25.1252,16.80022,23.799799999999998,16.799419999999998Z" fill="#FFFFFF" fill-opacity="1"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -1 +0,0 @@
.license-box[data-v-2888f6cc]{padding-top:6px}.license-box>ul>li[data-v-2888f6cc]{list-style:none;font-size:14px;line-height:22px;padding-bottom:6px;display:flex}.license-box>ul>li.warning[data-v-2888f6cc]{font-weight:500;color:#ed4014}.license-box>ul>li>em[data-v-2888f6cc]{flex-shrink:0;font-style:normal;opacity:.8}.license-box>ul>li>span[data-v-2888f6cc]{padding-left:6px}.license-box>ul>li .information[data-v-2888f6cc]{display:flex;align-items:center;justify-content:center;margin-left:6px}

1
public/js/build/license.7bfedaa1.js vendored Normal file
View File

@ -0,0 +1 @@
import{m as n,n as r}from"./app.7d416d31.js";var l=function(){var a,t=this,e=t.$createElement,o=t._self._c||e;return o("div",{staticClass:"setting-item submit"},[o("Form",{ref:"formData",attrs:{model:t.formData,labelPosition:t.formLabelPosition,labelWidth:t.formLabelWidth},nativeOn:{submit:function(s){s.preventDefault()}}},[o("FormItem",{attrs:{label:"License",prop:"license"}},[o("Input",{attrs:{type:"textarea",autosize:{minRows:2,maxRows:5},placeholder:t.$L("\u8BF7\u8F93\u5165License...")},model:{value:t.formData.license,callback:function(s){t.$set(t.formData,"license",s)},expression:"formData.license"}})],1),o("FormItem",[o("div",{staticClass:"license-box"},[t.formData.info.sn?o("ul",[o("li",[o("em",[t._v("SN:")]),o("span",[t._v(t._s(t.formData.info.sn))]),o("ETooltip",{attrs:{"max-width":"auto",placement:"right"}},[o("div",{attrs:{slot:"content"},slot:"content"},[t._v(t._s(t.$L("\u5F53\u524D\u73AF\u5883"))+": "+t._s(t.formData.doo_sn))]),o("Icon",{staticClass:"information",attrs:{type:"ios-information-circle-outline"}})],1)],1),o("li",[o("em",[t._v("IP:")]),o("span",[t._v(t._s(t.infoJoin(t.formData.info.ip)))])]),o("li",[o("em",[t._v(t._s(t.$L("\u57DF\u540D"))+":")]),o("span",[t._v(t._s(t.infoJoin(t.formData.info.domain)))])]),o("li",[o("em",[t._v("MAC:")]),o("span",[t._v(t._s(t.infoJoin(t.formData.info.mac)))]),o("ETooltip",{attrs:{"max-width":"auto",placement:"right"}},[o("div",{attrs:{slot:"content"},slot:"content"},[t._v(t._s(t.$L("\u5F53\u524D\u73AF\u5883"))+": "+t._s(t.infoJoin(t.formData.macs,"-")))]),o("Icon",{staticClass:"information",attrs:{type:"ios-information-circle-outline"}})],1)],1),o("li",[o("em",[t._v(t._s(t.$L("\u4F7F\u7528\u4EBA\u6570"))+":")]),o("span",[t._v(t._s(t.formData.info.people||t.$L("\u65E0\u9650\u5236"))+" ("+t._s(t.$L("\u5DF2\u4F7F\u7528"))+": "+t._s(t.formData.user_count)+")")]),o("ETooltip",{attrs:{"max-width":"auto",placement:"right"}},[o("div",{attrs:{slot:"content"},slot:"content"},[t._v(t._s(t.$L("\u9650\u5236\u6CE8\u518C\u4EBA\u6570")))]),o("Icon",{staticClass:"information",attrs:{type:"ios-information-circle-outline"}})],1)],1),o("li",[o("em",[t._v(t._s(t.$L("\u521B\u5EFA\u65F6\u95F4"))+":")]),o("span",[t._v(t._s(t.formData.info.created_at))])]),o("li",[o("em",[t._v(t._s(t.$L("\u5230\u671F\u65F6\u95F4"))+":")]),o("span",[t._v(t._s(t.formData.info.expired_at||t.$L("\u6C38\u4E45")))]),t.formData.info.expired_at?o("ETooltip",{attrs:{"max-width":"auto",placement:"right"}},[o("div",{attrs:{slot:"content"},slot:"content"},[t._v(t._s(t.$L("\u5230\u671F\u540E\u9650\u5236\u6CE8\u518C\u5E10\u53F7")))]),o("Icon",{staticClass:"information",attrs:{type:"ios-information-circle-outline"}})],1):t._e()],1)]):o("ul",[o("li",[t._v(" "+t._s(t.$L("\u52A0\u8F7D\u4E2D..."))+" ")])])])]),((a=t.formData.error)===null||a===void 0?void 0:a.length)>0?o("FormItem",{attrs:{label:t.$L("\u5F53\u524D\u73AF\u5883")}},[o("div",{staticClass:"license-box"},[o("ul",[o("li",[o("em",[t._v("SN:")]),o("span",[t._v(t._s(t.formData.doo_sn))])]),o("li",[o("em",[t._v("MAC:")]),o("span",[t._v(t._s(t.infoJoin(t.formData.macs)))])]),t._l(t.formData.error,function(s){return o("li",{staticClass:"warning"},[t._v(t._s(s))])})],2)])]):t._e()],1),o("div",{staticClass:"setting-footer"},[o("Button",{attrs:{loading:t.loadIng>0,type:"primary"},on:{click:t.submitForm}},[t._v(t._s(t.$L("\u63D0\u4EA4")))]),o("Button",{staticStyle:{"margin-left":"8px"},attrs:{loading:t.loadIng>0},on:{click:t.resetForm}},[t._v(t._s(t.$L("\u91CD\u7F6E")))])],1)],1)},m=[];const _={data(){return{loadIng:0,formData:{license:"",info:{},macs:[],doo_sn:"",user_count:0,error:[]}}},mounted(){this.systemSetting()},computed:{...n(["userInfo","formLabelPosition","formLabelWidth"])},methods:{submitForm(){this.$refs.formData.validate(a=>{a&&this.systemSetting(!0)})},resetForm(){this.formData=$A.cloneJSON(this.formData_bak)},systemSetting(a){this.loadIng++,this.$store.dispatch("call",{url:"system/license",data:Object.assign(this.formData,{type:a?"save":"get"}),method:"post"}).then(({data:t})=>{a&&$A.messageSuccess("\u4FEE\u6539\u6210\u529F"),this.formData=t,this.formData_bak=$A.cloneJSON(this.formData)}).catch(({msg:t})=>{a&&$A.modalError(t)}).finally(t=>{this.loadIng--})},infoJoin(a,t=null){return $A.isArray(a)&&(a=a.join(",")),a||(t===null?this.$L("\u65E0\u9650\u5236"):t)}}},i={};var c=r(_,l,m,!1,f,"0f9d4138",null,null);function f(a){for(let t in i)this[t]=i[t]}var v=function(){return c.exports}();export{v as default};

1
public/js/build/license.c7d9ffba.css vendored Normal file
View File

@ -0,0 +1 @@
.license-box[data-v-0f9d4138]{padding-top:6px}.license-box>ul>li[data-v-0f9d4138]{list-style:none;font-size:14px;line-height:22px;padding-bottom:6px;display:flex}.license-box>ul>li.warning[data-v-0f9d4138]{font-weight:500;color:#ed4014}.license-box>ul>li>em[data-v-0f9d4138]{flex-shrink:0;font-style:normal;opacity:.8}.license-box>ul>li>span[data-v-0f9d4138]{padding-left:6px}.license-box>ul>li .information[data-v-0f9d4138]{display:flex;align-items:center;justify-content:center;margin-left:6px}

View File

@ -1 +0,0 @@
import{m as e,n}from"./app.7b9537da.js";var r=function(){var t=this,a=t.$createElement,o=t._self._c||a;return o("div",{staticClass:"setting-item submit"},[o("Form",{ref:"formData",attrs:{model:t.formData,labelPosition:t.formLabelPosition,labelWidth:t.formLabelWidth},nativeOn:{submit:function(s){s.preventDefault()}}},[o("FormItem",{attrs:{label:"License",prop:"license"}},[o("Input",{attrs:{type:"textarea",autosize:{minRows:2,maxRows:5},placeholder:t.$L("\u8BF7\u8F93\u5165License...")},model:{value:t.formData.license,callback:function(s){t.$set(t.formData,"license",s)},expression:"formData.license"}})],1),o("FormItem",{attrs:{label:t.$L("\u8BE6\u7EC6\u4FE1\u606F")}},[o("div",{staticClass:"license-box"},[t.formData.info.sn?o("ul",[o("li",[o("em",[t._v("SN:")]),o("span",[t._v(t._s(t.formData.info.sn))]),o("ETooltip",{attrs:{"max-width":"auto",placement:"right"}},[o("div",{attrs:{slot:"content"},slot:"content"},[t._v(t._s(t.$L("\u5F53\u524D\u73AF\u5883"))+": "+t._s(t.formData.doo_sn))]),o("Icon",{staticClass:"information",attrs:{type:"ios-information-circle-outline"}})],1)],1),o("li",[o("em",[t._v("IP:")]),o("span",[t._v(t._s(t.infoJoin(t.formData.info.ip)))])]),o("li",[o("em",[t._v(t._s(t.$L("\u57DF\u540D"))+":")]),o("span",[t._v(t._s(t.infoJoin(t.formData.info.domain)))])]),o("li",[o("em",[t._v("MAC:")]),o("span",[t._v(t._s(t.infoJoin(t.formData.info.mac)))]),o("ETooltip",{attrs:{"max-width":"auto",placement:"right"}},[o("div",{attrs:{slot:"content"},slot:"content"},[t._v(t._s(t.$L("\u5F53\u524D\u73AF\u5883"))+": "+t._s(t.infoJoin(t.formData.macs,"-")))]),o("Icon",{staticClass:"information",attrs:{type:"ios-information-circle-outline"}})],1)],1),o("li",[o("em",[t._v(t._s(t.$L("\u4F7F\u7528\u4EBA\u6570"))+":")]),o("span",[t._v(t._s(t.formData.info.people||t.$L("\u65E0\u9650\u5236"))+" ("+t._s(t.$L("\u5DF2\u4F7F\u7528"))+": "+t._s(t.formData.user_count)+")")]),o("ETooltip",{attrs:{"max-width":"auto",placement:"right"}},[o("div",{attrs:{slot:"content"},slot:"content"},[t._v(t._s(t.$L("\u9650\u5236\u6CE8\u518C\u4EBA\u6570")))]),o("Icon",{staticClass:"information",attrs:{type:"ios-information-circle-outline"}})],1)],1),o("li",[o("em",[t._v(t._s(t.$L("\u521B\u5EFA\u65F6\u95F4"))+":")]),o("span",[t._v(t._s(t.formData.info.created_at))])]),o("li",[o("em",[t._v(t._s(t.$L("\u5230\u671F\u65F6\u95F4"))+":")]),o("span",[t._v(t._s(t.formData.info.expired_at||t.$L("\u6C38\u4E45")))]),t.formData.info.expired_at?o("ETooltip",{attrs:{"max-width":"auto",placement:"right"}},[o("div",{attrs:{slot:"content"},slot:"content"},[t._v(t._s(t.$L("\u5230\u671F\u540E\u9650\u5236\u6CE8\u518C\u5E10\u53F7")))]),o("Icon",{staticClass:"information",attrs:{type:"ios-information-circle-outline"}})],1):t._e()],1),t._l(t.formData.error,function(s){return o("li",{staticClass:"warning"},[t._v(t._s(s))])})],2):o("ul",[o("li",[t._v(" "+t._s(t.$L("\u52A0\u8F7D\u4E2D..."))+" ")])])])])],1),o("div",{staticClass:"setting-footer"},[o("Button",{attrs:{loading:t.loadIng>0,type:"primary"},on:{click:t.submitForm}},[t._v(t._s(t.$L("\u63D0\u4EA4")))]),o("Button",{staticStyle:{"margin-left":"8px"},attrs:{loading:t.loadIng>0},on:{click:t.resetForm}},[t._v(t._s(t.$L("\u91CD\u7F6E")))])],1)],1)},l=[];const m={data(){return{loadIng:0,formData:{license:"",info:{},macs:[],doo_sn:"",user_count:0,error:[]}}},mounted(){this.systemSetting()},computed:{...e(["userInfo","formLabelPosition","formLabelWidth"])},methods:{submitForm(){this.$refs.formData.validate(t=>{t&&this.systemSetting(!0)})},resetForm(){this.formData=$A.cloneJSON(this.formData_bak)},systemSetting(t){this.loadIng++,this.$store.dispatch("call",{url:"system/license",data:Object.assign(this.formData,{type:t?"save":"get"}),method:"post"}).then(({data:a})=>{t&&$A.messageSuccess("\u4FEE\u6539\u6210\u529F"),this.formData=a,this.formData_bak=$A.cloneJSON(this.formData)}).catch(({msg:a})=>{t&&$A.modalError(a)}).finally(a=>{this.loadIng--})},infoJoin(t,a=null){return $A.isArray(t)&&(t=t.join(",")),t||(a===null?this.$L("\u65E0\u9650\u5236"):a)}}},i={};var c=n(m,r,l,!1,_,"2888f6cc",null,null);function _(t){for(let a in i)this[a]=i[a]}var u=function(){return c.exports}();export{u as default};

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
const c="ontouchend"in document,a={bind:function(e,_){let r=500,s=_.value;if($A.isJson(_.value)&&(r=_.value.delay||500,s=_.value.callback),typeof s!="function")throw"callback must be a function";if(e.__longpressContextmenu__=t=>{t.preventDefault(),t.stopPropagation(),s(t,e)},e.addEventListener("contextmenu",e.__longpressContextmenu__),!c)return;let n=null,o=!1;e.__longpressStart__=t=>{t.type==="click"&&t.button!==0||(o=!1,n===null&&(n=setTimeout(()=>{o=!0,s(t.touches[0],e)},r)))},e.__longpressCancel__=t=>{n!==null&&(clearTimeout(n),n=null)},e.__longpressClick__=t=>{o&&(t.preventDefault(),t.stopPropagation()),e.__longpressCancel__(t)},e.addEventListener("touchstart",e.__longpressStart__),e.addEventListener("click",e.__longpressClick__),e.addEventListener("touchmove",e.__longpressCancel__),e.addEventListener("touchend",e.__longpressCancel__),e.addEventListener("touchcancel",e.__longpressCancel__)},unbind(e){e.removeEventListener("contextmenu",e.__longpressContextmenu__),delete e.__longpressContextmenu__,c&&(e.removeEventListener("touchstart",e.__longpressStart__),e.removeEventListener("click",e.__longpressClick__),e.removeEventListener("touchmove",e.__longpressCancel__),e.removeEventListener("touchend",e.__longpressCancel__),e.removeEventListener("touchcancel",e.__longpressCancel__),delete e.__longpressStart__,delete e.__longpressClick__,delete e.__longpressCancel__)}};export{a as l};

1
public/js/build/longpress.c69d0833.js vendored Normal file
View File

@ -0,0 +1 @@
const r=$A.isIos()&&"ontouchend"in document,a={bind:function(e,_){let c=500,s=_.value;if($A.isJson(_.value)&&(c=_.value.delay||500,s=_.value.callback),typeof s!="function")throw"callback must be a function";if(e.__longpressContextmenu__=n=>{n.preventDefault(),n.stopPropagation(),r||s(n,e)},e.addEventListener("contextmenu",e.__longpressContextmenu__),!r)return;let t=null,o=!1;e.__longpressStart__=n=>{n.type==="click"&&n.button!==0||(o=!1,t===null&&(t=setTimeout(()=>{o=!0,s(n.touches[0],e)},c)))},e.__longpressCancel__=n=>{t!==null&&(clearTimeout(t),t=null)},e.__longpressClick__=n=>{o&&(n.preventDefault(),n.stopPropagation()),e.__longpressCancel__(n)},e.addEventListener("touchstart",e.__longpressStart__),e.addEventListener("click",e.__longpressClick__),e.addEventListener("touchmove",e.__longpressCancel__),e.addEventListener("touchend",e.__longpressCancel__),e.addEventListener("touchcancel",e.__longpressCancel__)},unbind(e){e.removeEventListener("contextmenu",e.__longpressContextmenu__),delete e.__longpressContextmenu__,r&&(e.removeEventListener("touchstart",e.__longpressStart__),e.removeEventListener("click",e.__longpressClick__),e.removeEventListener("touchmove",e.__longpressCancel__),e.removeEventListener("touchend",e.__longpressCancel__),e.removeEventListener("touchcancel",e.__longpressCancel__),delete e.__longpressStart__,delete e.__longpressClick__,delete e.__longpressCancel__)}};export{a as l};

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" viewBox="0 0 48 48"><defs><clipPath id="master_svg0_3054_25401"><rect x="12" y="12" width="24" height="24" rx="0"/></clipPath></defs><g><rect x="0" y="0" width="48" height="48" rx="12" fill="#F57775" fill-opacity="1"/><g clip-path="url(#master_svg0_3054_25401)"><g><path d="M36,19.35553L36,31.6471C36,32.8166,35.0519,33.764700000000005,33.882400000000004,33.764700000000005L14.11765,33.764700000000005C12.948108,33.764700000000005,12.00000549316,32.8166,12.00000549316,31.6471L12.00000549316,19.35553L20.804470000000002,26.8202C22.6481,28.3834,25.3519,28.3834,27.1955,26.8202L36,19.35553ZM33.882400000000004,14.000000646254C34.1404,14.000286291,34.3963,14.0471559,34.6376,14.138353C34.984700000000004,14.270521,35.2905,14.492136,35.5242,14.780706C35.6509,14.935896,35.7549,15.10818,35.8334,15.29247C35.925200000000004,15.50988,35.9816,15.74565,35.9958,15.99341L36,16.11765L36,16.823529999999998L25.3744,25.8871C24.6211,26.5295,23.5233,26.5644,22.730800000000002,25.9711L22.625700000000002,25.886400000000002L12.00000517004,16.823529999999998L12.00000517004,16.11765C11.9982451,15.318200000000001,12.448325,14.586376,13.16259,14.227294C13.45869,14.0776132,13.78587,13.999747961,14.11765,14.000000646254L33.882400000000004,14.000000646254Z" fill="#FFFFFF" fill-opacity="1"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

1
public/js/build/manage.670b439a.js vendored Normal file

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 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" viewBox="0 0 48 48"><defs><clipPath id="master_svg0_3054_25658"><rect x="12" y="12" width="24" height="24" rx="0"/></clipPath></defs><g><rect x="0" y="0" width="48" height="48" rx="12" fill="#72A1F7" fill-opacity="1"/><g clip-path="url(#master_svg0_3054_25658)"><g><path d="M33.1767,19.46395L30.5723,21.34133L30.5723,19.01332C30.5723,17.34516,29.217,15.99442094,27.5489,16L15.01332,16C13.34911,15.999999801611,12,17.34911,12,19.01332L12,29.5822C12,31.2464,13.34911,32.595600000000005,15.01332,32.595600000000005L27.5489,32.595600000000005C29.217,32.6011,30.5723,31.2504,30.5723,29.5822L30.5723,27.2542L33.182500000000005,29.1259C33.7237,29.5146,34.436800000000005,29.5683,35.0302,29.2651C35.623599999999996,28.9619,35.9979,28.3525,36,27.6861L36,20.907980000000002C36.0011,20.23879,35.626599999999996,19.62559,35.0308,19.32086C34.4351,19.01614,33.7187,19.07142,33.1767,19.46395Z" fill="#FFFFFF" fill-opacity="1"/></g></g></g></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 26.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 48 48" style="enable-background:new 0 0 48 48;" xml:space="preserve">
<style type="text/css">
.st0{fill:#53CBAE;}
.st1{fill:#FFFFFF;}
</style>
<path class="st0" d="M36,48H12C5.4,48,0,42.6,0,36V12C0,5.4,5.4,0,12,0h24c6.6,0,12,5.4,12,12v24C48,42.6,42.6,48,36,48z"/>
<g>
<g>
<path class="st1" d="M35.8,18.3l-2.6,2.2c-0.3,0.3-0.5,0.6-0.5,1v4.8c0,0.4,0.2,0.8,0.5,1l2.6,2.2c0.9,0.8,2.2,0.1,2.2-1v-9.3
C38,18.2,36.6,17.6,35.8,18.3z"/>
<path class="st1" d="M28.8,14.6H12c-1.1,0-2,0.9-2,2v14.8c0,1.1,0.9,2,2,2h16.8c1.1,0,2-0.9,2-2V16.6
C30.8,15.5,29.9,14.6,28.8,14.6z M23.4,24.7h-2.2V27c0,0.4-0.3,0.7-0.7,0.7c-0.4,0-0.7-0.3-0.7-0.7v-2.2h-2.2
c-0.4,0-0.7-0.3-0.7-0.7s0.3-0.7,0.7-0.7h2.2V21c0-0.4,0.3-0.7,0.7-0.7c0.4,0,0.7,0.3,0.7,0.7v2.2h2.2c0.4,0,0.7,0.3,0.7,0.7
S23.8,24.7,23.4,24.7z"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

1
public/js/build/meeting.84c0d424.js vendored Normal file
View File

@ -0,0 +1 @@
import{M as i}from"./MeetingManager.3fcd7984.js";import{n as o}from"./app.7d416d31.js";var s=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("MeetingManager")],1)},a=[];const m={components:{MeetingManager:i},mounted(){this.$store.dispatch("showMeetingWindow",{type:"join",meetingid:this.$route.params.meetingId,meetingSharekey:this.$route.params.sharekey,meetingdisabled:!0})}},r={};var _=o(m,s,a,!1,c,null,null,null);function c(t){for(let e in r)this[e]=r[e]}var d=function(){return _.exports}();export{d as default};

View File

@ -1 +0,0 @@
import{M as i}from"./MeetingManager.04349bc7.js";import{n as o}from"./app.7b9537da.js";import"./UserSelect.ee0927b8.js";var s=function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[n("MeetingManager")],1)},a=[];const m={components:{MeetingManager:i},mounted(){this.$store.dispatch("showMeetingWindow",{type:"join",meetingid:this.$route.params.meetingId,meetingSharekey:this.$route.params.sharekey,meetingdisabled:!0})}},r={};var _=o(m,s,a,!1,c,null,null,null);function c(t){for(let e in r)this[e]=r[e]}var d=function(){return _.exports}();export{d as default};

File diff suppressed because one or more lines are too long

1
public/js/build/messenger.43c57f25.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 6.0 KiB

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