Merge commit 'ada88a1c02740846547eb2c3eaf37639006b3b57' into pro

This commit is contained in:
kuaifan 2024-01-03 19:34:27 +08:00
commit ecdabc668d
115 changed files with 1216 additions and 529 deletions

View File

@ -28,6 +28,7 @@ use Hhxsv5\LaravelS\Swoole\Task\Task;
class ApproveController extends AbstractController class ApproveController extends AbstractController
{ {
private $flow_url = ''; private $flow_url = '';
public function __construct() public function __construct()
{ {
$this->flow_url = env('FLOW_URL') ?: 'http://approve'; $this->flow_url = env('FLOW_URL') ?: 'http://approve';
@ -72,7 +73,7 @@ class ApproveController extends AbstractController
{ {
User::auth(); User::auth();
$data['name'] = Request::input('name'); $data['name'] = Request::input('name');
$ret = Ihttp::ihttp_post($this->flow_url.'/api/v1/workflow/procdef/findAll', json_encode($data)); $ret = Ihttp::ihttp_post($this->flow_url . '/api/v1/workflow/procdef/findAll', json_encode($data));
$procdef = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true); $procdef = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true);
if (!$procdef || $procdef['status'] != 200 || $ret['ret'] == 0) { if (!$procdef || $procdef['status'] != 200 || $ret['ret'] == 0) {
// info($ret); // info($ret);
@ -99,7 +100,7 @@ class ApproveController extends AbstractController
{ {
User::auth('admin'); User::auth('admin');
$data['id'] = Request::input('id'); $data['id'] = Request::input('id');
$ret = Ihttp::ihttp_get($this->flow_url.'/api/v1/workflow/procdef/delById?'.http_build_query($data)); $ret = Ihttp::ihttp_get($this->flow_url . '/api/v1/workflow/procdef/delById?' . http_build_query($data));
$procdef = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true); $procdef = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true);
if (!$procdef || $procdef['status'] != 200) { if (!$procdef || $procdef['status'] != 200) {
return Base::retError($procdef['message'] ?? '删除失败'); return Base::retError($procdef['message'] ?? '删除失败');
@ -132,7 +133,7 @@ class ApproveController extends AbstractController
// //
$var = json_decode(Request::input('var'), true); $var = json_decode(Request::input('var'), true);
$data['var'] = $var; $data['var'] = $var;
$ret = Ihttp::ihttp_post($this->flow_url.'/api/v1/workflow/process/start', json_encode(Base::arrayKeyToCamel($data))); $ret = Ihttp::ihttp_post($this->flow_url . '/api/v1/workflow/process/start', json_encode(Base::arrayKeyToCamel($data)));
$process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true); $process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true);
if (!$process || $process['status'] != 200) { if (!$process || $process['status'] != 200) {
return Base::retError($process['message'] ?? '启动失败'); return Base::retError($process['message'] ?? '启动失败');
@ -194,7 +195,7 @@ class ApproveController extends AbstractController
$processInst = $this->getProcessById($data['proc_inst_id']); $processInst = $this->getProcessById($data['proc_inst_id']);
$ret = Ihttp::ihttp_post($this->flow_url.'/api/v1/workflow/process/addGlobalComment', json_encode(Base::arrayKeyToCamel($data))); $ret = Ihttp::ihttp_post($this->flow_url . '/api/v1/workflow/process/addGlobalComment', json_encode(Base::arrayKeyToCamel($data)));
$process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true); $process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true);
if (!$process || $process['status'] != 200) { if (!$process || $process['status'] != 200) {
return Base::retError($process['message'] ?? '添加失败'); return Base::retError($process['message'] ?? '添加失败');
@ -202,11 +203,11 @@ class ApproveController extends AbstractController
// 推送通知 // 推送通知
$botUser = User::botGetOrCreate('approval-alert'); $botUser = User::botGetOrCreate('approval-alert');
foreach ( $processInst['userids'] as $id) { foreach ($processInst['userids'] as $id) {
if($id != $user->userid){ if ($id != $user->userid) {
$dialog = WebSocketDialog::checkUserDialog($botUser, $id); $dialog = WebSocketDialog::checkUserDialog($botUser, $id);
$processInst['comment_user_id'] = $user->userid; $processInst['comment_user_id'] = $user->userid;
$processInst['comment_content'] = json_decode($data['content'],true)['content']; $processInst['comment_content'] = json_decode($data['content'], true)['content'];
$this->approveMsg('approve_comment_notifier', $dialog, $botUser, $processInst, $processInst); $this->approveMsg('approve_comment_notifier', $dialog, $botUser, $processInst, $processInst);
} }
} }
@ -238,7 +239,7 @@ class ApproveController extends AbstractController
$data['task_id'] = intval(Request::input('task_id')); $data['task_id'] = intval(Request::input('task_id'));
$data['pass'] = Request::input('pass'); $data['pass'] = Request::input('pass');
$data['comment'] = Request::input('comment'); $data['comment'] = Request::input('comment');
$ret = Ihttp::ihttp_post($this->flow_url.'/api/v1/workflow/task/complete', json_encode(Base::arrayKeyToCamel($data))); $ret = Ihttp::ihttp_post($this->flow_url . '/api/v1/workflow/task/complete', json_encode(Base::arrayKeyToCamel($data)));
$task = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true); $task = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true);
if (!$task || $task['status'] != 200) { if (!$task || $task['status'] != 200) {
return Base::retError($task['message'] ?? '审批失败'); return Base::retError($task['message'] ?? '审批失败');
@ -261,12 +262,12 @@ class ApproveController extends AbstractController
$this->approveMsg('approve_reviewer', $dialog, $botUser, $val, $process, $pass); $this->approveMsg('approve_reviewer', $dialog, $botUser, $val, $process, $pass);
} }
// 发起人 // 发起人
if($process['is_finished'] == true) { if ($process['is_finished'] == true) {
$dialog = WebSocketDialog::checkUserDialog($botUser, $process['start_user_id']); $dialog = WebSocketDialog::checkUserDialog($botUser, $process['start_user_id']);
if (!empty($dialog)) { if (!empty($dialog)) {
$this->approveMsg('approve_submitter', $dialog, $botUser, ['userid' => $data['userid']], $process, $pass); $this->approveMsg('approve_submitter', $dialog, $botUser, ['userid' => $data['userid']], $process, $pass);
} }
}else if ($process['candidate']) { } else if ($process['candidate']) {
// 下个审批人 // 下个审批人
$userid = explode(',', $process['candidate']); $userid = explode(',', $process['candidate']);
$toUser = User::whereIn('userid', $userid)->get()->toArray(); $toUser = User::whereIn('userid', $userid)->get()->toArray();
@ -278,7 +279,7 @@ class ApproveController extends AbstractController
if (empty($dialog)) { if (empty($dialog)) {
continue; continue;
} }
$this->approveMsg('approve_reviewer', $dialog, $botUser, $val, $process,'start'); $this->approveMsg('approve_reviewer', $dialog, $botUser, $val, $process, 'start');
} }
} }
@ -292,7 +293,7 @@ class ApproveController extends AbstractController
} }
} }
} }
return Base::retSuccess( $pass == 'pass' ? '已通过' : '已拒绝', $task); return Base::retSuccess($pass == 'pass' ? '已通过' : '已拒绝', $task);
} }
/** /**
@ -316,7 +317,7 @@ class ApproveController extends AbstractController
$data['userid'] = (string)$user->userid; $data['userid'] = (string)$user->userid;
$data['task_id'] = intval(Request::input('task_id')); $data['task_id'] = intval(Request::input('task_id'));
$data['proc_inst_id'] = intval(Request::input('proc_inst_id')); $data['proc_inst_id'] = intval(Request::input('proc_inst_id'));
$ret = Ihttp::ihttp_post($this->flow_url.'/api/v1/workflow/task/withdraw', json_encode(Base::arrayKeyToCamel($data))); $ret = Ihttp::ihttp_post($this->flow_url . '/api/v1/workflow/task/withdraw', json_encode(Base::arrayKeyToCamel($data)));
$task = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true); $task = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true);
if (!$task || $task['status'] != 200) { if (!$task || $task['status'] != 200) {
return Base::retError($task['message'] ?? '撤回失败'); return Base::retError($task['message'] ?? '撤回失败');
@ -366,7 +367,7 @@ class ApproveController extends AbstractController
$data['sort'] = Request::input('sort'); $data['sort'] = Request::input('sort');
$data['pageIndex'] = intval(Request::input('page')); $data['pageIndex'] = intval(Request::input('page'));
$data['pageSize'] = intval(Request::input('page_size')); $data['pageSize'] = intval(Request::input('page_size'));
$ret = Ihttp::ihttp_post($this->flow_url.'/api/v1/workflow/process/findTask', json_encode(Base::arrayKeyToCamel($data))); $ret = Ihttp::ihttp_post($this->flow_url . '/api/v1/workflow/process/findTask', json_encode(Base::arrayKeyToCamel($data)));
$process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true); $process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true);
if (!$process || $process['status'] != 200) { if (!$process || $process['status'] != 200) {
return Base::retError($process['message'] ?? '查询失败'); return Base::retError($process['message'] ?? '查询失败');
@ -380,7 +381,7 @@ class ApproveController extends AbstractController
} }
$val['userimg'] = User::getAvatar($info->userid, $info->userimg, $info->email, $info->nickname); $val['userimg'] = User::getAvatar($info->userid, $info->userimg, $info->email, $info->nickname);
} }
return Base::retSuccess('success',$res); return Base::retSuccess('success', $res);
} }
/** /**
@ -409,7 +410,7 @@ class ApproveController extends AbstractController
$data['state'] = intval(Request::input('state')); //状态 $data['state'] = intval(Request::input('state')); //状态
$data['pageIndex'] = intval(Request::input('page')); $data['pageIndex'] = intval(Request::input('page'));
$data['pageSize'] = intval(Request::input('page_size')); $data['pageSize'] = intval(Request::input('page_size'));
$ret = Ihttp::ihttp_post($this->flow_url.'/api/v1/workflow/process/startByMyselfAll', json_encode($data)); $ret = Ihttp::ihttp_post($this->flow_url . '/api/v1/workflow/process/startByMyselfAll', json_encode($data));
$process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true); $process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true);
if (!$process || $process['status'] != 200) { if (!$process || $process['status'] != 200) {
return Base::retError($process['message'] ?? '查询失败'); return Base::retError($process['message'] ?? '查询失败');
@ -447,7 +448,7 @@ class ApproveController extends AbstractController
$data['userid'] = (string)$user->userid; $data['userid'] = (string)$user->userid;
$data['pageIndex'] = intval(Request::input('page')); $data['pageIndex'] = intval(Request::input('page'));
$data['pageSize'] = intval(Request::input('page_size')); $data['pageSize'] = intval(Request::input('page_size'));
$ret = Ihttp::ihttp_post($this->flow_url.'/api/v1/workflow/process/startByMyself', json_encode($data)); $ret = Ihttp::ihttp_post($this->flow_url . '/api/v1/workflow/process/startByMyself', json_encode($data));
$process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true); $process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true);
if (!$process || $process['status'] != 200) { if (!$process || $process['status'] != 200) {
return Base::retError($process['message'] ?? '查询失败'); return Base::retError($process['message'] ?? '查询失败');
@ -491,7 +492,7 @@ class ApproveController extends AbstractController
$data['pageIndex'] = intval(Request::input('page')); $data['pageIndex'] = intval(Request::input('page'));
$data['pageSize'] = intval(Request::input('page_size')); $data['pageSize'] = intval(Request::input('page_size'));
$ret = Ihttp::ihttp_post($this->flow_url.'/api/v1/workflow/process/findProcNotify', json_encode($data)); $ret = Ihttp::ihttp_post($this->flow_url . '/api/v1/workflow/process/findProcNotify', json_encode($data));
$process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true); $process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true);
if (!$process || $process['status'] != 200) { if (!$process || $process['status'] != 200) {
return Base::retError($process['message'] ?? '查询失败'); return Base::retError($process['message'] ?? '查询失败');
@ -526,7 +527,7 @@ class ApproveController extends AbstractController
{ {
User::auth(); User::auth();
$proc_inst_id = Request::input('proc_inst_id'); $proc_inst_id = Request::input('proc_inst_id');
$ret = Ihttp::ihttp_get($this->flow_url.'/api/v1/workflow/identitylink/findParticipant?procInstId=' . $proc_inst_id); $ret = Ihttp::ihttp_get($this->flow_url . '/api/v1/workflow/identitylink/findParticipant?procInstId=' . $proc_inst_id);
$identitylink = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true); $identitylink = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true);
if (!$identitylink || $identitylink['status'] != 200) { if (!$identitylink || $identitylink['status'] != 200) {
return Base::retError($identitylink['message'] ?? '查询失败'); return Base::retError($identitylink['message'] ?? '查询失败');
@ -569,7 +570,7 @@ class ApproveController extends AbstractController
$data['sort'] = Request::input('sort'); $data['sort'] = Request::input('sort');
$data['pageIndex'] = intval(Request::input('page')); $data['pageIndex'] = intval(Request::input('page'));
$data['pageSize'] = intval(Request::input('page_size')); $data['pageSize'] = intval(Request::input('page_size'));
$ret = Ihttp::ihttp_post($this->flow_url.'/api/v1/workflow/procHistory/findTask', json_encode(Base::arrayKeyToCamel($data))); $ret = Ihttp::ihttp_post($this->flow_url . '/api/v1/workflow/procHistory/findTask', json_encode(Base::arrayKeyToCamel($data)));
$process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true); $process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true);
if (!$process || $process['status'] != 200) { if (!$process || $process['status'] != 200) {
return Base::retError($process['message'] ?? '查询失败'); return Base::retError($process['message'] ?? '查询失败');
@ -607,7 +608,7 @@ class ApproveController extends AbstractController
$data['userid'] = (string)$user->userid; $data['userid'] = (string)$user->userid;
$data['pageIndex'] = intval(Request::input('page')); $data['pageIndex'] = intval(Request::input('page'));
$data['pageSize'] = intval(Request::input('page_size')); $data['pageSize'] = intval(Request::input('page_size'));
$ret = Ihttp::ihttp_post($this->flow_url.'/api/v1/workflow/procHistory/startByMyself', json_encode($data)); $ret = Ihttp::ihttp_post($this->flow_url . '/api/v1/workflow/procHistory/startByMyself', json_encode($data));
$process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true); $process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true);
if (!$process || $process['status'] != 200) { if (!$process || $process['status'] != 200) {
return Base::retError($process['message'] ?? '查询失败'); return Base::retError($process['message'] ?? '查询失败');
@ -651,7 +652,7 @@ class ApproveController extends AbstractController
$data['pageIndex'] = intval(Request::input('page')); $data['pageIndex'] = intval(Request::input('page'));
$data['pageSize'] = intval(Request::input('page_size')); $data['pageSize'] = intval(Request::input('page_size'));
$ret = Ihttp::ihttp_post($this->flow_url.'/api/v1/workflow/procHistory/findProcNotify', json_encode($data)); $ret = Ihttp::ihttp_post($this->flow_url . '/api/v1/workflow/procHistory/findProcNotify', json_encode($data));
$process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true); $process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true);
if (!$process || $process['status'] != 200) { if (!$process || $process['status'] != 200) {
return Base::retError($process['message'] ?? '查询失败'); return Base::retError($process['message'] ?? '查询失败');
@ -686,7 +687,7 @@ class ApproveController extends AbstractController
{ {
User::auth(); User::auth();
$proc_inst_id = Request::input('proc_inst_id'); $proc_inst_id = Request::input('proc_inst_id');
$ret = Ihttp::ihttp_get($this->flow_url.'/api/v1/workflow/identitylinkHistory/findParticipant?procInstId=' . $proc_inst_id); $ret = Ihttp::ihttp_get($this->flow_url . '/api/v1/workflow/identitylinkHistory/findParticipant?procInstId=' . $proc_inst_id);
$identitylink = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true); $identitylink = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true);
if (!$identitylink || $identitylink['status'] != 200) { if (!$identitylink || $identitylink['status'] != 200) {
return Base::retError($identitylink['message'] ?? '查询失败'); return Base::retError($identitylink['message'] ?? '查询失败');
@ -750,7 +751,7 @@ class ApproveController extends AbstractController
$data['isFinished'] = intval(Request::input('is_finished')); //是否完成 $data['isFinished'] = intval(Request::input('is_finished')); //是否完成
$date = Request::input('date'); $date = Request::input('date');
$data['startTime'] = $date[0]; //开始时间 $data['startTime'] = $date[0]; //开始时间
$data['endTime'] =Carbon::parse($date[1])->addDay()->toDateString(); //结束时间 + 1天 $data['endTime'] = Carbon::parse($date[1])->addDay()->toDateString(); //结束时间 + 1天
// //
if (empty($name) || empty($date)) { if (empty($name) || empty($date)) {
return Base::retError('参数错误'); return Base::retError('参数错误');
@ -762,7 +763,7 @@ class ApproveController extends AbstractController
return Base::retError('日期范围限制最大35天'); return Base::retError('日期范围限制最大35天');
} }
// //
$ret = Ihttp::ihttp_post($this->flow_url.'/api/v1/workflow/process/findAllProcIns', json_encode($data)); $ret = Ihttp::ihttp_post($this->flow_url . '/api/v1/workflow/process/findAllProcIns', json_encode($data));
$process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true); $process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true);
if (!$process || $process['status'] != 200) { if (!$process || $process['status'] != 200) {
return Base::retError($process['message'] ?? '查询失败'); return Base::retError($process['message'] ?? '查询失败');
@ -889,7 +890,8 @@ class ApproveController extends AbstractController
} }
} }
function getStateDescription($state) { function getStateDescription($state)
{
$state_map = array( $state_map = array(
0 => '全部', 0 => '全部',
1 => '审批中', 1 => '审批中',
@ -951,13 +953,13 @@ class ApproveController extends AbstractController
} }
// 审批记录 // 审批记录
$name = $val['username'] . '|'; $name = $val['username'] . '|';
$call = $val['step'] == 0 ? '发起审批'. '|' : '同意' . '|'; $call = $val['step'] == 0 ? '发起审批' . '|' : '同意' . '|';
$time =$val['step'] == 0 ? $process['start_time'] . '|' : ''; $time = $val['step'] == 0 ? $process['start_time'] . '|' : '';
$comment = $val['step'] == 0 ? '' : ($val['comment'] ?? '') . '|'; $comment = $val['step'] == 0 ? '' : ($val['comment'] ?? '') . '|';
$res['approval_record'] .= $name . $call . $time . $comment; $res['approval_record'] .= $name . $call . $time . $comment;
} }
} }
$res['historical_approver'] = trim(implode(';', $historical_approver), ';'); $res['historical_approver'] = trim(implode(';', $historical_approver), ';');
$res['approved_node'] = $approved_node; $res['approved_node'] = $approved_node;
$res['approved_num'] = $approved_num; $res['approved_num'] = $approved_num;
$res['historical_agent'] = $res['historical_approver']; $res['historical_agent'] = $res['historical_approver'];
@ -976,9 +978,9 @@ class ApproveController extends AbstractController
'department' => $process['department'], 'department' => $process['department'],
'type' => $process['var']['type'], 'type' => $process['var']['type'],
'start_time' => $process['var']['start_time'], 'start_time' => $process['var']['start_time'],
'start_day_of_week' => '周'.Base::getTimeWeek(Carbon::parse($process['var']['start_time'])->timestamp), 'start_day_of_week' => '周' . Base::getTimeWeek(Carbon::parse($process['var']['start_time'])->timestamp),
'end_time' => $process['var']['end_time'], 'end_time' => $process['var']['end_time'],
'end_day_of_week' => '周'.Base::getTimeWeek(Carbon::parse($process['var']['end_time'])->timestamp), 'end_day_of_week' => '周' . Base::getTimeWeek(Carbon::parse($process['var']['end_time'])->timestamp),
'description' => $process['var']['description'], 'description' => $process['var']['description'],
'comment_nickname' => $process['comment_user_id'] ? User::userid2nickname($process['comment_user_id']) : '', 'comment_nickname' => $process['comment_user_id'] ? User::userid2nickname($process['comment_user_id']) : '',
'comment_content' => $process['comment_content'] ?? '' 'comment_content' => $process['comment_content'] ?? ''
@ -989,11 +991,11 @@ class ApproveController extends AbstractController
$msg_action = null; $msg_action = null;
if ($action == 'withdraw' || $action == 'pass' || $action == 'refuse') { if ($action == 'withdraw' || $action == 'pass' || $action == 'refuse') {
// 任务完成,给发起人发送消息 // 任务完成,给发起人发送消息
if($type == 'approve_submitter' && $action != 'withdraw'){ if ($type == 'approve_submitter' && $action != 'withdraw') {
return WebSocketDialogMsg::sendMsg($msg_action, $dialog->id, 'text', ['text' => $text], $botUser->userid, false, false, true); return WebSocketDialogMsg::sendMsg($msg_action, $dialog->id, 'text', ['text' => $text], $botUser->userid, false, false, true);
} }
// 查找最后一条消息msg_id // 查找最后一条消息msg_id
$msg_action = 'update-'.$toUser['msg_id']; $msg_action = 'update-' . $toUser['msg_id'];
} }
// //
try { try {
@ -1007,9 +1009,9 @@ class ApproveController extends AbstractController
$proc_msg->save(); $proc_msg->save();
} }
// 更新工作报告 未读数量 // 更新工作报告 未读数量
if($type == 'approve_reviewer' && $toUser['userid']){ if ($type == 'approve_reviewer' && $toUser['userid']) {
$params = [ $params = [
'userid' => [ $toUser['userid'], User::auth()->userid() ], 'userid' => [$toUser['userid'], User::auth()->userid()],
'msg' => [ 'msg' => [
'type' => 'approve', 'type' => 'approve',
'action' => 'unread', 'action' => 'unread',
@ -1028,7 +1030,7 @@ class ApproveController extends AbstractController
public function getProcessById($id) public function getProcessById($id)
{ {
$data['id'] = intval($id); $data['id'] = intval($id);
$ret = Ihttp::ihttp_get($this->flow_url."/api/v1/workflow/process/findById?".http_build_query($data)); $ret = Ihttp::ihttp_get($this->flow_url . "/api/v1/workflow/process/findById?" . http_build_query($data));
$process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true); $process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true);
if (!$process || $process['status'] != 200) { if (!$process || $process['status'] != 200) {
throw new ApiException($process['message'] ?? '查询失败'); throw new ApiException($process['message'] ?? '查询失败');
@ -1047,14 +1049,14 @@ class ApproveController extends AbstractController
$val['node_user_list'][$k]['userimg'] = User::getAvatar($info->userid, $info->userimg, $info->email, $info->nickname); $val['node_user_list'][$k]['userimg'] = User::getAvatar($info->userid, $info->userimg, $info->email, $info->nickname);
$res['userids'][] = $item['target_id']; $res['userids'][] = $item['target_id'];
} }
}else if($val['aprover_id']){ } else if ($val['aprover_id']) {
$info = User::whereUserid($val['aprover_id'])->first(); $info = User::whereUserid($val['aprover_id'])->first();
$val['userimg'] = $info ? User::getAvatar($info->userid, $info->userimg, $info->email, $info->nickname) : ''; $val['userimg'] = $info ? User::getAvatar($info->userid, $info->userimg, $info->email, $info->nickname) : '';
$res['userids'][] = $val['aprover_id']; $res['userids'][] = $val['aprover_id'];
} }
} }
// 全局评论 // 全局评论
if(isset($res['global_comments'])){ if (isset($res['global_comments'])) {
foreach ($res['global_comments'] as $k => &$globalComment) { foreach ($res['global_comments'] as $k => &$globalComment) {
$info = User::whereUserid($globalComment['user_id'])->first(); $info = User::whereUserid($globalComment['user_id'])->first();
if (!$info) { if (!$info) {
@ -1095,7 +1097,7 @@ class ApproveController extends AbstractController
public function getUserProcessParticipantById($id) public function getUserProcessParticipantById($id)
{ {
$data['procInstId'] = intval($id); $data['procInstId'] = intval($id);
$ret = Ihttp::ihttp_get($this->flow_url."/api/v1/workflow/identitylink/findParticipantAll?".http_build_query($data)); $ret = Ihttp::ihttp_get($this->flow_url . "/api/v1/workflow/identitylink/findParticipantAll?" . http_build_query($data));
$process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true); $process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true);
if (!$process || $process['status'] != 200) { if (!$process || $process['status'] != 200) {
throw new ApiException($process['message'] ?? '查询失败'); throw new ApiException($process['message'] ?? '查询失败');
@ -1120,7 +1122,7 @@ class ApproveController extends AbstractController
public function user__status() public function user__status()
{ {
$data['userid'] = intval(Request::input('userid')); $data['userid'] = intval(Request::input('userid'));
$ret = Ihttp::ihttp_get($this->flow_url.'/api/v1/workflow/process/getUserApprovalStatus?'.http_build_query($data)); $ret = Ihttp::ihttp_get($this->flow_url . '/api/v1/workflow/process/getUserApprovalStatus?' . http_build_query($data));
$procdef = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true); $procdef = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true);
if (isset($procdef['status']) && $procdef['status'] == 200) { if (isset($procdef['status']) && $procdef['status'] == 200) {
return Base::retSuccess('success', isset($procdef['data']["proc_def_name"]) ? $procdef['data']["proc_def_name"] : ''); return Base::retSuccess('success', isset($procdef['data']["proc_def_name"]) ? $procdef['data']["proc_def_name"] : '');
@ -1128,5 +1130,27 @@ class ApproveController extends AbstractController
return Base::retSuccess('success', ''); return Base::retSuccess('success', '');
} }
/**
* @api {get} api/approve/process/doto 21. 查询需要我审批的流程数量
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
* @apiGroup approve
* @apiName process__doto
*
* @apiSuccess {Number} ret 返回状态码1正确、0错误
* @apiSuccess {String} msg 返回信息(错误描述)
* @apiSuccess {Object} data 返回数据
*/
public function process__doto()
{
$user = User::auth();
$ret = Ihttp::ihttp_get($this->flow_url . '/api/v1/workflow/process/findTaskTotal?userid=' . $user->userid);
$process = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true);
if (!$process || $process['status'] != 200) {
return Base::retError($process['message'] ?? '查询失败');
}
return Base::retSuccess('success', $process['data']);
}
} }

View File

@ -540,12 +540,13 @@ class DialogController extends AbstractController
if ($reDialog) { if ($reDialog) {
$data['dialog'] = $dialog->formatData($user->userid, true); $data['dialog'] = $dialog->formatData($user->userid, true);
$data['todo'] = $data['dialog']->todo_num > 0 ? WebSocketDialogMsgTodo::whereDialogId($dialog->id)->whereUserid($user->userid)->whereDoneAt(null)->orderByDesc('id')->take(50)->get() : []; $data['todo'] = $data['dialog']->todo_num > 0 ? WebSocketDialogMsgTodo::whereDialogId($dialog->id)->whereUserid($user->userid)->whereDoneAt(null)->orderByDesc('id')->take(50)->get() : [];
$data['top'] = $dialog->top_msg_id ? WebSocketDialogMsg::whereId($dialog->top_msg_id)->first() : null;
} }
return Base::retSuccess('success', $data); return Base::retSuccess('success', $data);
} }
/** /**
* @api {get} api/dialog/msg/latest 11. 获取最新消息列表 * @api {get} api/dialog/msg/latest 12. 获取最新消息列表
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -586,7 +587,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {get} api/dialog/msg/search 12. 搜索消息位置 * @api {get} api/dialog/msg/search 13. 搜索消息位置
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -623,7 +624,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {get} api/dialog/msg/one 13. 获取单条消息 * @api {get} api/dialog/msg/one 14. 获取单条消息
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -652,7 +653,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {get} api/dialog/msg/read 14. 已读聊天消息 * @api {get} api/dialog/msg/read 15. 已读聊天消息
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -703,7 +704,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {get} api/dialog/msg/unread 15. 获取未读消息数据 * @api {get} api/dialog/msg/unread 16. 获取未读消息数据
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -744,7 +745,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {post} api/dialog/msg/stream 16. 通知成员监听消息 * @api {post} api/dialog/msg/stream 17. 通知成员监听消息
* *
* @apiDescription 通知指定会员EventSource监听流动消息 * @apiDescription 通知指定会员EventSource监听流动消息
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -783,7 +784,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {post} api/dialog/msg/sendtext 17. 发送消息 * @api {post} api/dialog/msg/sendtext 18. 发送消息
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -895,7 +896,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {post} api/dialog/msg/sendrecord 18. 发送语音 * @api {post} api/dialog/msg/sendrecord 19. 发送语音
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -942,7 +943,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {post} api/dialog/msg/sendfile 19. 文件上传 * @api {post} api/dialog/msg/sendfile 20. 文件上传
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -973,7 +974,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {post} api/dialog/msg/sendfiles 20. 群发文件上传 * @api {post} api/dialog/msg/sendfiles 21. 群发文件上传
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -1028,7 +1029,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {get} api/dialog/msg/sendfileid 21. 通过文件ID发送文件 * @api {get} api/dialog/msg/sendfileid 22. 通过文件ID发送文件
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -1098,7 +1099,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {post} api/dialog/msg/sendanon 22. 发送匿名消息 * @api {post} api/dialog/msg/sendanon 23. 发送匿名消息
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -1151,7 +1152,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {get} api/dialog/msg/readlist 23. 获取消息阅读情况 * @api {get} api/dialog/msg/readlist 24. 获取消息阅读情况
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -1180,7 +1181,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {get} api/dialog/msg/detail 24. 消息详情 * @api {get} api/dialog/msg/detail 25. 消息详情
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -1228,7 +1229,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {get} api/dialog/msg/download 25. 文件下载 * @api {get} api/dialog/msg/download 26. 文件下载
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -1269,7 +1270,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {get} api/dialog/msg/withdraw 26. 聊天消息撤回 * @api {get} api/dialog/msg/withdraw 27. 聊天消息撤回
* *
* @apiDescription 消息撤回限制24小时内需要token身份 * @apiDescription 消息撤回限制24小时内需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -1295,7 +1296,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {get} api/dialog/msg/mark 27. 消息标记操作 * @api {get} api/dialog/msg/mark 28. 消息标记操作
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -1362,7 +1363,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {get} api/dialog/msg/silence 28. 消息免打扰 * @api {get} api/dialog/msg/silence 29. 消息免打扰
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -1425,7 +1426,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {get} api/dialog/msg/forward 29. 转发消息给 * @api {get} api/dialog/msg/forward 30. 转发消息给
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -1466,7 +1467,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {get} api/dialog/msg/emoji 30. emoji回复 * @api {get} api/dialog/msg/emoji 31. emoji回复
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -1501,7 +1502,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {get} api/dialog/msg/tag 31. 标注/取消标注 * @api {get} api/dialog/msg/tag 32. 标注/取消标注
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -1530,7 +1531,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {get} api/dialog/msg/todo 32. 设待办/取消待办 * @api {get} api/dialog/msg/todo 33. 设待办/取消待办
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -1573,7 +1574,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {get} api/dialog/msg/todolist 33. 获取消息待办情况 * @api {get} api/dialog/msg/todolist 34. 获取消息待办情况
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -1603,7 +1604,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {get} api/dialog/msg/done 34. 完成待办 * @api {get} api/dialog/msg/done 35. 完成待办
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -1650,7 +1651,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {get} api/dialog/msg/color 35. 设置颜色 * @api {get} api/dialog/msg/color 36. 设置颜色
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -1691,7 +1692,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {get} api/dialog/group/add 36. 新增群组 * @api {get} api/dialog/group/add 37. 新增群组
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -1753,7 +1754,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {get} api/dialog/group/edit 37. 修改群组 * @api {get} api/dialog/group/edit 38. 修改群组
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -1815,7 +1816,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {get} api/dialog/group/adduser 38. 添加群成员 * @api {get} api/dialog/group/adduser 39. 添加群成员
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* - 有群主时:只有群主可以邀请 * - 有群主时:只有群主可以邀请
@ -1851,7 +1852,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {get} api/dialog/group/deluser 39. 移出(退出)群成员 * @api {get} api/dialog/group/deluser 40. 移出(退出)群成员
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* - 只有群主、邀请人可以踢人 * - 只有群主、邀请人可以踢人
@ -1895,7 +1896,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {get} api/dialog/group/transfer 40. 转让群组 * @api {get} api/dialog/group/transfer 41. 转让群组
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* - 只有群主且是个人类型群可以解散 * - 只有群主且是个人类型群可以解散
@ -1944,7 +1945,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {get} api/dialog/group/disband 41. 解散群组 * @api {get} api/dialog/group/disband 42. 解散群组
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* - 只有群主且是个人类型群可以解散 * - 只有群主且是个人类型群可以解散
@ -1972,7 +1973,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {get} api/dialog/group/searchuser 42. 搜索个人群(仅限管理员) * @api {get} api/dialog/group/searchuser 43. 搜索个人群(仅限管理员)
* *
* @apiDescription 需要token身份用于创建部门搜索个人群组 * @apiDescription 需要token身份用于创建部门搜索个人群组
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -2001,7 +2002,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {post} api/dialog/okr/add 43. 创建OKR评论会话 * @api {post} api/dialog/okr/add 44. 创建OKR评论会话
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -2040,7 +2041,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {post} api/dialog/okr/push 44. 推送OKR相关信息 * @api {post} api/dialog/okr/push 45. 推送OKR相关信息
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -2076,7 +2077,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {post} api/dialog/msg/wordchain 45. 发送接龙消息 * @api {post} api/dialog/msg/wordchain 46. 发送接龙消息
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -2139,7 +2140,7 @@ class DialogController extends AbstractController
} }
/** /**
* @api {post} api/dialog/msg/vote 46. 发起投票 * @api {post} api/dialog/msg/vote 47. 发起投票
* *
* @apiDescription 需要token身份 * @apiDescription 需要token身份
* @apiVersion 1.0.0 * @apiVersion 1.0.0
@ -2249,4 +2250,89 @@ class DialogController extends AbstractController
return Base::retSuccess('发送成功', $result); return Base::retSuccess('发送成功', $result);
} }
/**
* @api {get} api/dialog/msg/top 48. 置顶/取消置顶
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
* @apiGroup dialog
* @apiName msg__top
*
* @apiParam {Number} msg_id 消息ID
*
* @apiSuccess {Number} ret 返回状态码1正确、0错误
* @apiSuccess {String} msg 返回信息(错误描述)
* @apiSuccess {Object} data 返回数据
*/
public function msg__top()
{
$user = User::auth();
//
$msg_id = intval(Request::input("msg_id"));
//
$msg = WebSocketDialogMsg::whereId($msg_id)->first();
if (empty($msg)) {
return Base::retError("消息不存在或已被删除");
}
$dialog = WebSocketDialog::checkDialog($msg->dialog_id);
//
$before = $dialog->top_msg_id;
$beforeTopUserid = $dialog->top_userid;
$dialog->top_msg_id = $msg->id == $before ? 0 : $msg->id;
$dialog->top_userid = $dialog->top_msg_id ? $user->userid : 0;
$dialog->save();
//
$data = [
'update' => [
'dialog_id' => $dialog->id,
'top_msg_id' => $dialog->top_msg_id,
'top_userid' => $dialog->top_userid,
]
];
$res = $msg->sendMsg(null, $dialog->id, 'top', [
'action' => $dialog->top_msg_id ? 'add' : 'remove',
'data' => [
'id' => $msg->id,
'type' => $msg->type,
'msg' => $msg->quoteTextMsg()
]
], $user->userid);
if (Base::isSuccess($res)) {
$data['add'] = $res['data'];
$dialog->pushMsg('updateTopMsg', $data['update']);
} else {
$dialog->top_msg_id = $before;
$dialog->top_userid = $beforeTopUserid;
$dialog->save();
}
//
return Base::retSuccess($dialog->top_msg_id ? '置顶成功' : '取消成功', $data);
}
/**
* @api {get} api/dialog/msg/topinfo 49. 获取置顶消息
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
* @apiGroup dialog
* @apiName msg__topinfo
*
* @apiParam {Number} dialog_id 会话ID
*
* @apiSuccess {Number} ret 返回状态码1正确、0错误
* @apiSuccess {String} msg 返回信息(错误描述)
* @apiSuccess {Object} data 返回数据
*/
public function msg__topinfo()
{
User::auth();
//
$dialog_id = intval(Request::input('dialog_id'));
//
$dialog = WebSocketDialog::checkDialog($dialog_id);
//
$topMsg = WebSocketDialogMsg::whereId($dialog->top_msg_id)->first();
//
return Base::retSuccess('success', $topMsg);
}
} }

View File

@ -32,10 +32,11 @@ use App\Models\ProjectTaskUser;
use App\Models\WebSocketDialog; use App\Models\WebSocketDialog;
use App\Exceptions\ApiException; use App\Exceptions\ApiException;
use App\Models\ProjectPermission; use App\Models\ProjectPermission;
use App\Module\BillMultipleExport;
use App\Models\WebSocketDialogMsg; use App\Models\WebSocketDialogMsg;
use App\Module\BillMultipleExport;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
use App\Models\ProjectTaskFlowChange; use App\Models\ProjectTaskFlowChange;
use App\Models\ProjectTaskVisibilityUser;
/** /**
* @apiDefine project * @apiDefine project
@ -1032,15 +1033,20 @@ class ProjectController extends AbstractController
$query->where('project_users.owner', 1); $query->where('project_users.owner', 1);
$query->where('project_users.userid', $userid); $query->where('project_users.userid', $userid);
}); });
$builder->leftJoin('project_task_users as project_p_task_users', function ($query) use($userid) { $builder->leftJoin('project_task_users as project_sub_task_users', function ($query) use($userid) {
$query->on('project_p_task_users.task_pid', '=', 'project_tasks.parent_id'); $query->on('project_sub_task_users.task_pid', '=', 'project_tasks.parent_id');
$query->where('project_p_task_users.userid', $userid); $query->where('project_sub_task_users.userid', $userid);
});
$builder->leftJoin('project_task_visibility_users', function ($query) use($userid) {
$query->on('project_task_visibility_users.task_id', '=', 'project_tasks.id');
$query->where('project_task_visibility_users.userid', $userid);
}); });
$builder->where(function ($query) use ($userid) { $builder->where(function ($query) use ($userid) {
$query->where("project_tasks.visibility", 1); $query->where("project_tasks.visibility", 1);
$query->orWhere("project_users.userid", $userid); $query->orWhere("project_users.userid", $userid);
$query->orWhere("project_task_users.userid", $userid); $query->orWhere("project_task_users.userid", $userid);
$query->orWhere("project_p_task_users.userid", $userid); $query->orWhere("project_task_visibility_users.userid", $userid);
$query->orWhere("project_sub_task_users.userid", $userid);
}); });
// 优化子查询汇总 // 优化子查询汇总
$builder->leftJoinSub(function ($query) { $builder->leftJoinSub(function ($query) {
@ -1352,6 +1358,7 @@ class ProjectController extends AbstractController
$base64 = base64_encode(Base::array2string([ $base64 = base64_encode(Base::array2string([
'file' => $zipFile, 'file' => $zipFile,
])); ]));
$fileUrl = Base::fillUrl('api/project/task/down?key=' . urlencode($base64));
Session::put('task::export:userid', $user->userid); Session::put('task::export:userid', $user->userid);
$botUser = User::botGetOrCreate('system-msg'); $botUser = User::botGetOrCreate('system-msg');
if (empty($botUser)) { if (empty($botUser)) {
@ -1364,7 +1371,7 @@ class ProjectController extends AbstractController
$text .= "\n"; $text .= "\n";
$text .= "文件大小:".Base::twoFloat(filesize($zipPath) / 1024, true)."KB"; $text .= "文件大小:".Base::twoFloat(filesize($zipPath) / 1024, true)."KB";
$text .= "\n"; $text .= "\n";
$text .= "下载地址:".Base::fillUrl('api/project/task/down?key=' . urlencode($base64)); $text .= '<button class="ivu-btn" style="margin-top: 10px;"><a href="'.$fileUrl.'" target="_blank">立即下载</a></button>';
WebSocketDialogMsg::sendMsg(null, $dialog->id, 'text', ['text' => $text], $botUser->userid, false, false, true); WebSocketDialogMsg::sendMsg(null, $dialog->id, 'text', ['text' => $text], $botUser->userid, false, false, true);
} }
} }
@ -1537,9 +1544,11 @@ class ProjectController extends AbstractController
// 项目可见性 // 项目可见性
$project_userid = ProjectUser::whereProjectId($task->project_id)->whereOwner(1)->value('userid'); // 项目负责人 $project_userid = ProjectUser::whereProjectId($task->project_id)->whereOwner(1)->value('userid'); // 项目负责人
if ($task->visibility != 1 && $user->userid != $project_userid) { if ($task->visibility != 1 && $user->userid != $project_userid) {
$visibleUserids = ProjectTaskUser::whereTaskId($task_id)->pluck('userid')->toArray(); // 是否任务负责人、协助人、可见人 $taskUserids = ProjectTaskUser::whereTaskId($task_id)->pluck('userid')->toArray(); //任务负责人、协助人
$subVisibleUserids = ProjectTaskUser::whereTaskPid($task_id)->pluck('userid')->toArray(); // 是否子任务负责人、协助人 $subTaskUserids = ProjectTaskUser::whereTaskPid($task_id)->pluck('userid')->toArray(); //子任务负责人、协助人
if (!in_array($user->userid, $visibleUserids) && !in_array($user->userid, $subVisibleUserids)) { $visibleUserids = ProjectTaskVisibilityUser::whereTaskId($task_id)->pluck('userid')->toArray(); //可见人
$visibleUserids = array_merge($taskUserids, $subTaskUserids, $visibleUserids);
if (!in_array($user->userid, $visibleUserids)) {
return Base::retError('无任务权限'); return Base::retError('无任务权限');
} }
} }
@ -1547,7 +1556,7 @@ class ProjectController extends AbstractController
$data = $task->toArray(); $data = $task->toArray();
$data['project_name'] = $task->project?->name; $data['project_name'] = $task->project?->name;
$data['column_name'] = $task->projectColumn?->name; $data['column_name'] = $task->projectColumn?->name;
$data['visibility_appointor'] = $task->visibility == 1 ? [0] : ProjectTaskUser::whereTaskId($task_id)->whereOwner(2)->pluck('userid'); $data['visibility_appointor'] = $task->visibility == 1 ? [0] : ProjectTaskVisibilityUser::whereTaskId($task_id)->pluck('userid');
return Base::retSuccess('success', $data); return Base::retSuccess('success', $data);
} }
@ -1909,15 +1918,16 @@ class ProjectController extends AbstractController
} }
// //
$taskUser = ProjectTaskUser::select(['userid', 'owner'])->whereTaskId($task_id)->get(); $taskUser = ProjectTaskUser::select(['userid', 'owner'])->whereTaskId($task_id)->get();
$owners = $taskUser->where('owner', 1)->pluck('userid')->toArray(); // 负责人 $owners = $taskUser->where('owner', 1)->pluck('userid')->toArray();
$assists = $taskUser->where('owner', 0)->pluck('userid')->toArray(); // 协助人 $assists = $taskUser->where('owner', 0)->pluck('userid')->toArray();
$visible = ProjectTaskVisibilityUser::whereTaskId($task->id)->pluck('userid')->toArray();
// 更新任务 // 更新任务
$updateMarking = []; $updateMarking = [];
$task->updateTask($param, $updateMarking); $task->updateTask($param, $updateMarking);
// //
$data = ProjectTask::oneTask($task->id)->toArray(); $data = ProjectTask::oneTask($task->id)->toArray();
$data['update_marking'] = $updateMarking ?: json_decode('{}'); $data['update_marking'] = $updateMarking ?: json_decode('{}');
$data['visibility_appointor'] = $data['visibility'] == 1 ? [] : ProjectTaskUser::whereTaskId($task->id)->whereOwner(2)->pluck('userid'); $data['visibility_appointor'] = $data['visibility'] == 1 ? [] : ProjectTaskVisibilityUser::whereTaskId($task->id)->pluck('userid');
$task->pushMsg('update', $data); $task->pushMsg('update', $data);
// 可见性推送 // 可见性推送
if ($task->parent_id == 0) { if ($task->parent_id == 0) {
@ -1927,10 +1937,9 @@ class ProjectController extends AbstractController
$task->pushMsgVisibleAdd($data); $task->pushMsgVisibleAdd($data);
} }
if ($param['visibility_appointor']) { if ($param['visibility_appointor']) {
$oldVisibleUserIds = $taskUser->where('owner', 2)->pluck('userid')->toArray() ?? [];
$newVisibleUserIds = $param['visibility_appointor'] ?? []; $newVisibleUserIds = $param['visibility_appointor'] ?? [];
$deleteUserIds = array_diff($oldVisibleUserIds, $newVisibleUserIds, $subUserids); $deleteUserIds = array_diff($visible, $newVisibleUserIds, $subUserids);
$addUserIds = array_diff($newVisibleUserIds, $oldVisibleUserIds); $addUserIds = array_diff($newVisibleUserIds, $visible);
$task->pushMsgVisibleUpdate($data, $deleteUserIds, $addUserIds); $task->pushMsgVisibleUpdate($data, $deleteUserIds, $addUserIds);
} }
if ($data['visibility'] != 1 && empty($param['visibility_appointor'])) { if ($data['visibility'] != 1 && empty($param['visibility_appointor'])) {

View File

@ -13,7 +13,6 @@ use App\Module\Doo;
use App\Tasks\PushTask; use App\Tasks\PushTask;
use Carbon\Carbon; use Carbon\Carbon;
use Hhxsv5\LaravelS\Swoole\Task\Task; use Hhxsv5\LaravelS\Swoole\Task\Task;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Relations\BelongsToMany; use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Validation\Rule; use Illuminate\Validation\Rule;
use Request; use Request;

View File

@ -321,6 +321,10 @@ class IndexController extends InvokeController
$data = parse_url($key); $data = parse_url($key);
$path = Arr::get($data, 'path'); $path = Arr::get($data, 'path');
$file = public_path($path); $file = public_path($path);
// 防止 ../ 穿越获取到系统文件
if (strpos(realpath($file), public_path()) !== 0) {
return abort(404);
}
// //
if (file_exists($file)) { if (file_exists($file)) {
parse_str($data['query'], $query); parse_str($data['query'], $query);

View File

@ -8,7 +8,7 @@ use App\Module\Base;
* App\Models\FileLink * App\Models\FileLink
* *
* @property int $id * @property int $id
* @property int|null $file_id 文件ID * @property int|null $file_id 项目ID
* @property int|null $num 累计访问 * @property int|null $num 累计访问
* @property string|null $code 链接码 * @property string|null $code 链接码
* @property int|null $userid 会员ID * @property int|null $userid 会员ID

View File

@ -24,7 +24,6 @@ use Request;
* @property int|null $dialog_id 聊天会话ID * @property int|null $dialog_id 聊天会话ID
* @property string|null $archived_at 归档时间 * @property string|null $archived_at 归档时间
* @property int|null $archived_userid 归档会员 * @property int|null $archived_userid 归档会员
* @property int|null $is_fixed 是否固定
* @property \Illuminate\Support\Carbon|null $created_at * @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at * @property \Illuminate\Support\Carbon|null $updated_at
* @property \Illuminate\Support\Carbon|null $deleted_at * @property \Illuminate\Support\Carbon|null $deleted_at
@ -48,7 +47,6 @@ use Request;
* @method static \Illuminate\Database\Eloquent\Builder|Project whereDesc($value) * @method static \Illuminate\Database\Eloquent\Builder|Project whereDesc($value)
* @method static \Illuminate\Database\Eloquent\Builder|Project whereDialogId($value) * @method static \Illuminate\Database\Eloquent\Builder|Project whereDialogId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Project whereId($value) * @method static \Illuminate\Database\Eloquent\Builder|Project whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|Project whereIsFixed($value)
* @method static \Illuminate\Database\Eloquent\Builder|Project whereName($value) * @method static \Illuminate\Database\Eloquent\Builder|Project whereName($value)
* @method static \Illuminate\Database\Eloquent\Builder|Project wherePersonal($value) * @method static \Illuminate\Database\Eloquent\Builder|Project wherePersonal($value)
* @method static \Illuminate\Database\Eloquent\Builder|Project whereUpdatedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|Project whereUpdatedAt($value)

View File

@ -13,7 +13,7 @@ use App\Module\Base;
* @property string|null $name 名称 * @property string|null $name 名称
* @property string|null $status 状态 * @property string|null $status 状态
* @property array $turns 可流转 * @property array $turns 可流转
* @property array $userids 状态负责人ID * @property array $userids 自动负责人ID
* @property string|null $usertype 流转模式 * @property string|null $usertype 流转模式
* @property int|null $userlimit 限制负责人 * @property int|null $userlimit 限制负责人
* @property int|null $columnid 对应的项目列表 * @property int|null $columnid 对应的项目列表

View File

@ -10,7 +10,7 @@ use App\Module\Base;
* @property int $id * @property int $id
* @property int|null $project_id 项目ID * @property int|null $project_id 项目ID
* @property int|null $column_id 列表ID * @property int|null $column_id 列表ID
* @property int|null $task_id 任务ID * @property int|null $task_id 项目ID
* @property int|null $userid 会员ID * @property int|null $userid 会员ID
* @property string|null $detail 详细信息 * @property string|null $detail 详细信息
* @property array $record 记录数据 * @property array $record 记录数据

View File

@ -10,10 +10,9 @@ use App\Module\Base;
* *
* @property int $id * @property int $id
* @property int|null $project_id 项目ID * @property int|null $project_id 项目ID
* @property string|null $permissions 权限 * @property string $permissions 权限
* @property \Illuminate\Support\Carbon|null $created_at * @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at * @property \Illuminate\Support\Carbon|null $updated_at
* @property-read \App\Models\Project|null $project
* @method static \Illuminate\Database\Eloquent\Builder|ProjectPermission newModelQuery() * @method static \Illuminate\Database\Eloquent\Builder|ProjectPermission newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|ProjectPermission newQuery() * @method static \Illuminate\Database\Eloquent\Builder|ProjectPermission newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|ProjectPermission query() * @method static \Illuminate\Database\Eloquent\Builder|ProjectPermission query()

View File

@ -2,15 +2,16 @@
namespace App\Models; namespace App\Models;
use App\Exceptions\ApiException; use DB;
use Arr;
use Request;
use Carbon\Carbon;
use App\Module\Base; use App\Module\Base;
use App\Tasks\PushTask; use App\Tasks\PushTask;
use Arr; use App\Exceptions\ApiException;
use Carbon\Carbon;
use DB;
use Hhxsv5\LaravelS\Swoole\Task\Task; use Hhxsv5\LaravelS\Swoole\Task\Task;
use App\Models\ProjectTaskVisibilityUser;
use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Eloquent\SoftDeletes;
use Request;
/** /**
* App\Models\ProjectTask * App\Models\ProjectTask
@ -33,7 +34,6 @@ use Request;
* @property string|null $complete_at 完成时间 * @property string|null $complete_at 完成时间
* @property int|null $userid 创建人 * @property int|null $userid 创建人
* @property int|null $visibility 任务可见性1-项目人员 2-任务人员 3-指定成员 * @property int|null $visibility 任务可见性1-项目人员 2-任务人员 3-指定成员
* @property int|null $is_default 是否默认任务
* @property int|null $p_level 优先级 * @property int|null $p_level 优先级
* @property string|null $p_name 优先级名称 * @property string|null $p_name 优先级名称
* @property string|null $p_color 优先级颜色 * @property string|null $p_color 优先级颜色
@ -82,7 +82,6 @@ use Request;
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask whereFlowItemId($value) * @method static \Illuminate\Database\Eloquent\Builder|ProjectTask whereFlowItemId($value)
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask whereFlowItemName($value) * @method static \Illuminate\Database\Eloquent\Builder|ProjectTask whereFlowItemName($value)
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask whereId($value) * @method static \Illuminate\Database\Eloquent\Builder|ProjectTask whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask whereIsDefault($value)
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask whereLoop($value) * @method static \Illuminate\Database\Eloquent\Builder|ProjectTask whereLoop($value)
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask whereLoopAt($value) * @method static \Illuminate\Database\Eloquent\Builder|ProjectTask whereLoopAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTask whereName($value) * @method static \Illuminate\Database\Eloquent\Builder|ProjectTask whereName($value)
@ -496,13 +495,12 @@ class ProjectTask extends AbstractModel
])->save(); ])->save();
} }
// 可见性
foreach ($visibility_userids as $uid) { foreach ($visibility_userids as $uid) {
ProjectTaskUser::createInstance([ ProjectTaskVisibilityUser::createInstance([
'project_id' => $task->project_id, 'project_id' => $task->project_id,
'task_id' => $task->id, 'task_id' => $task->id,
'task_pid' => $task->parent_id ?: $task->id, 'userid' => $uid
'userid' => $uid,
'owner' => 2,
])->save(); ])->save();
} }
@ -729,16 +727,14 @@ class ProjectTask extends AbstractModel
ProjectTask::whereId($data['task_id'])->update(['visibility' => $data["visibility"]]); ProjectTask::whereId($data['task_id'])->update(['visibility' => $data["visibility"]]);
ProjectTask::whereParentId($data['task_id'])->update(['visibility' => $data["visibility"]]); ProjectTask::whereParentId($data['task_id'])->update(['visibility' => $data["visibility"]]);
} }
ProjectTaskUser::whereTaskId($data['task_id'])->whereOwner(2)->delete(); ProjectTaskVisibilityUser::whereTaskId($data['task_id'])->delete();
if (Arr::exists($data, 'visibility_appointor')) { if (Arr::exists($data, 'visibility_appointor')) {
foreach ($data['visibility_appointor'] as $uid) { foreach ($data['visibility_appointor'] as $uid) {
if ($uid) { if ($uid) {
ProjectTaskUser::createInstance([ ProjectTaskVisibilityUser::createInstance([
'project_id' => $this->project_id, 'project_id' => $this->project_id,
'task_id' => $this->id, 'task_id' => $this->id,
'task_pid' => $this->parent_id ?: $this->id, 'userid' => $uid
'userid' => $uid,
'owner' => 2,
])->save(); ])->save();
} }
} }
@ -1521,7 +1517,10 @@ class ProjectTask extends AbstractModel
if ($pushUserIds) { if ($pushUserIds) {
$userids = $pushUserIds; $userids = $pushUserIds;
} elseif ($this->visibility != 1) { } elseif ($this->visibility != 1) {
$userids = ProjectTaskUser::select(['userid', 'owner'])->whereTaskId($this->id)->orWhere('task_pid', '=', $this->id)->pluck('userid')->toArray(); $userids = ProjectTaskUser::whereTaskId($this->id)->orWhere('task_pid', '=', $this->id)->pluck('userid')->toArray();
if ($this->visibility == 3) {
$userids = array_merge($userids, ProjectTaskVisibilityUser::whereTaskId($this->id)->pluck('userid')->toArray());
}
} else { } else {
$userids = ProjectUser::whereProjectId($this->project_id)->pluck('userid')->toArray(); // 项目成员 $userids = ProjectUser::whereProjectId($this->project_id)->pluck('userid')->toArray(); // 项目成员
} }

View File

@ -0,0 +1,37 @@
<?php
namespace App\Models;
/**
* App\Models\ProjectTaskVisibilityUser
*
* @property int $id
* @property int|null $project_id 项目ID
* @property int|null $task_id 任务ID
* @property int|null $userid 成员ID
* @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at
* @property-read \App\Models\ProjectTask|null $projectTask
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTaskVisibilityUser newModelQuery()
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTaskVisibilityUser newQuery()
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTaskVisibilityUser query()
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTaskVisibilityUser whereCreatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTaskVisibilityUser whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTaskVisibilityUser whereProjectId($value)
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTaskVisibilityUser whereTaskId($value)
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTaskVisibilityUser whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|ProjectTaskVisibilityUser whereUserid($value)
* @mixin \Eloquent
*/
class ProjectTaskVisibilityUser extends AbstractModel
{
/**
* @return \Illuminate\Database\Eloquent\Relations\HasOne
*/
public function projectTask(): \Illuminate\Database\Eloquent\Relations\HasOne
{
return $this->hasOne(ProjectTask::class, 'id', 'task_id');
}
}

View File

@ -23,6 +23,7 @@ use Illuminate\Support\Facades\DB;
* @property string|null $last_at 最后消息时间 * @property string|null $last_at 最后消息时间
* @property int|null $owner_id 群主用户ID * @property int|null $owner_id 群主用户ID
* @property int|null $link_id 关联id * @property int|null $link_id 关联id
* @property int|null $top_msg_id 置顶的消息ID
* @property \Illuminate\Support\Carbon|null $created_at * @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at * @property \Illuminate\Support\Carbon|null $updated_at
* @property \Illuminate\Support\Carbon|null $deleted_at * @property \Illuminate\Support\Carbon|null $deleted_at
@ -41,6 +42,7 @@ use Illuminate\Support\Facades\DB;
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog whereLinkId($value) * @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog whereLinkId($value)
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog whereName($value) * @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog whereName($value)
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog whereOwnerId($value) * @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog whereOwnerId($value)
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog whereTopMsgId($value)
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog whereType($value) * @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog whereType($value)
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog whereUpdatedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog whereUpdatedAt($value)
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog withTrashed() * @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialog withTrashed()

View File

@ -31,9 +31,13 @@ use Illuminate\Database\Eloquent\SoftDeletes;
* @property int|null $modify 是否编辑 * @property int|null $modify 是否编辑
* @property int|null $reply_num 有多少条回复 * @property int|null $reply_num 有多少条回复
* @property int|null $reply_id 回复ID * @property int|null $reply_id 回复ID
* @property int|null $forward_id 转发ID
* @property int|null $forward_num 被转发多少次
* @property int|null $forward_show 是否显示转发的来源
* @property \Illuminate\Support\Carbon|null $created_at * @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at * @property \Illuminate\Support\Carbon|null $updated_at
* @property \Illuminate\Support\Carbon|null $deleted_at * @property \Illuminate\Support\Carbon|null $deleted_at
* @property-read \App\Models\WebSocketDialogMsg|null $forward_data
* @property-read int|mixed $percentage * @property-read int|mixed $percentage
* @property-read \App\Models\WebSocketDialogMsg|null $reply_data * @property-read \App\Models\WebSocketDialogMsg|null $reply_data
* @property-read \App\Models\WebSocketDialog|null $webSocketDialog * @property-read \App\Models\WebSocketDialog|null $webSocketDialog
@ -46,6 +50,9 @@ use Illuminate\Database\Eloquent\SoftDeletes;
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialogMsg whereDialogId($value) * @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialogMsg whereDialogId($value)
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialogMsg whereDialogType($value) * @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialogMsg whereDialogType($value)
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialogMsg whereEmoji($value) * @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialogMsg whereEmoji($value)
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialogMsg whereForwardId($value)
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialogMsg whereForwardNum($value)
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialogMsg whereForwardShow($value)
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialogMsg whereId($value) * @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialogMsg whereId($value)
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialogMsg whereKey($value) * @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialogMsg whereKey($value)
* @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialogMsg whereLink($value) * @method static \Illuminate\Database\Eloquent\Builder|WebSocketDialogMsg whereLink($value)
@ -536,6 +543,9 @@ class WebSocketDialogMsg extends AbstractModel
case 'tag': case 'tag':
$action = $data['msg']['action'] === 'remove' ? '取消标注' : '标注'; $action = $data['msg']['action'] === 'remove' ? '取消标注' : '标注';
return "[{$action}] {$this->previewMsg(false, $data['msg']['data'])}"; return "[{$action}] {$this->previewMsg(false, $data['msg']['data'])}";
case 'top':
$action = $data['msg']['action'] === 'remove' ? '取消置顶' : '置顶';
return "[{$action}] {$this->previewMsg(false, $data['msg']['data'])}";
case 'todo': case 'todo':
$action = $data['msg']['action'] === 'remove' ? '取消待办' : ($data['msg']['action'] === 'done' ? '完成' : '设待办'); $action = $data['msg']['action'] === 'remove' ? '取消待办' : ($data['msg']['action'] === 'done' ? '完成' : '设待办');
return "[{$action}] {$this->previewMsg(false, $data['msg']['data'])}"; return "[{$action}] {$this->previewMsg(false, $data['msg']['data'])}";

View File

@ -14,7 +14,7 @@ use Carbon\Carbon;
* @property int|null $mark_unread 是否标记为未读0否1是 * @property int|null $mark_unread 是否标记为未读0否1是
* @property int|null $silence 是否免打扰0否1是 * @property int|null $silence 是否免打扰0否1是
* @property int|null $inviter 邀请人 * @property int|null $inviter 邀请人
* @property int|null $important 是否不可移出(项目、任务、部门人员) * @property int|null $important 是否不可移出(项目、任务人员)
* @property string|null $color 颜色 * @property string|null $color 颜色
* @property \Illuminate\Support\Carbon|null $created_at * @property \Illuminate\Support\Carbon|null $created_at
* @property \Illuminate\Support\Carbon|null $updated_at * @property \Illuminate\Support\Carbon|null $updated_at

View File

@ -2117,7 +2117,7 @@ class Base
} }
$scaleName = ""; $scaleName = "";
if ($param['fileName']) { if ($param['fileName']) {
$fileName = $param['fileName']; $fileName = basename($param['fileName']);
} else { } else {
if ($param['scale'] && is_array($param['scale'])) { if ($param['scale'] && is_array($param['scale'])) {
list($width, $height) = $param['scale']; list($width, $height) = $param['scale'];
@ -2276,7 +2276,7 @@ class Base
if ($param['fileName'] === true) { if ($param['fileName'] === true) {
$fileName = $file->getClientOriginalName(); $fileName = $file->getClientOriginalName();
} elseif ($param['fileName']) { } elseif ($param['fileName']) {
$fileName = $param['fileName']; $fileName = basename($param['fileName']);
} else { } else {
if ($param['scale'] && is_array($param['scale'])) { if ($param['scale'] && is_array($param['scale'])) {
list($width, $height) = $param['scale']; list($width, $height) = $param['scale'];

View File

@ -31,34 +31,34 @@ class UnclaimedTaskRemindTask extends AbstractTask
return; return;
} }
// //
$times = explode(':',date('H:i')); $times = explode(':', date('H:i'));
$reminderTimes = explode(':',$setting['unclaimed_task_reminder_time']); $reminderTimes = explode(':', $setting['unclaimed_task_reminder_time']);
if( !isset($times[1]) || !isset($reminderTimes[1]) || $times[0] != $reminderTimes[0]){ if (!isset($times[1]) || !isset($reminderTimes[1]) || $times[0] != $reminderTimes[0]) {
return; return;
} }
// 执行一次 // 执行一次
if (Cache::get("UnclaimedTaskRemindTask:His",0)) { if (Cache::get("UnclaimedTaskRemindTask:His", 0)) {
return; return;
} }
if( $times[1] >= $reminderTimes[1] - 1 && $times[1] <= $reminderTimes[1] + 1){ if ($times[1] >= intval($reminderTimes[1]) - 1 && $times[1] <= intval($reminderTimes[1]) + 1) {
// //
Cache::put("UnclaimedTaskRemindTask:His", date('H:i:s'), Carbon::now()->addMinutes(5)); Cache::put("UnclaimedTaskRemindTask:His", date('H:i:s'), Carbon::now()->addMinutes(5));
// //
Project::whereNull('deleted_at')->whereNull('archived_at')->chunk(100,function($projects) { Project::whereNull('deleted_at')->whereNull('archived_at')->chunk(100, function ($projects) {
foreach ($projects as $project) { foreach ($projects as $project) {
// //
$projectTasks = ProjectTask::select('project_tasks.id','project_tasks.name') $projectTasks = ProjectTask::select('project_tasks.id', 'project_tasks.name')
->leftJoin('project_task_users', function ($query) { ->leftJoin('project_task_users', function ($query) {
$query->on('project_tasks.id', '=', 'project_task_users.task_id'); $query->on('project_tasks.id', '=', 'project_task_users.task_id');
}) })
->where('project_tasks.project_id',$project->id) ->where('project_tasks.project_id', $project->id)
->whereNull('project_tasks.deleted_at') ->whereNull('project_tasks.deleted_at')
->whereNull('project_tasks.archived_at') ->whereNull('project_tasks.archived_at')
->whereNull('project_task_users.id') ->whereNull('project_task_users.id')
->limit(10) ->limit(10)
->get(); ->get();
// //
if( !$projectTasks->isEmpty() ){ if (!$projectTasks->isEmpty()) {
$botUser = User::botGetOrCreate('task-alert'); $botUser = User::botGetOrCreate('task-alert');
if (empty($botUser)) { if (empty($botUser)) {
return; return;
@ -69,10 +69,10 @@ class UnclaimedTaskRemindTask extends AbstractTask
} }
// //
$taskHtml = '<span style="line-height: 26px;">任务待领取</span> <br/>'; $taskHtml = '<span style="line-height: 26px;">任务待领取</span> <br/>';
foreach($projectTasks as $projectTask){ foreach ($projectTasks as $projectTask) {
$taskHtml .= "<span class=\"mention task\" style=\"line-height: 26px;\" data-id=\"{$projectTask->id}\">#{$projectTask->name}</span> <br/>"; $taskHtml .= "<span class=\"mention task\" style=\"line-height: 26px;\" data-id=\"{$projectTask->id}\">#{$projectTask->name}</span> <br/>";
} }
WebSocketDialogMsg::sendMsg(null, $project->dialog_id , 'text', [ WebSocketDialogMsg::sendMsg(null, $project->dialog_id, 'text', [
'text' => $taskHtml 'text' => $taskHtml
], $botUser->userid); ], $botUser->userid);
} }
@ -83,7 +83,5 @@ class UnclaimedTaskRemindTask extends AbstractTask
public function end() public function end()
{ {
} }
} }

View File

@ -0,0 +1,36 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddWebSocketDialogMsgsTopAt extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('web_socket_dialog_msgs', function (Blueprint $table) {
if (!Schema::hasColumn('web_socket_dialog_msgs', 'top')) {
$table->bigInteger('top')->nullable()->default(0)->after('send')->comment('置顶的会员ID');
$table->timestamp('top_at')->nullable()->after('top')->comment('置顶时间');
}
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('web_socket_dialog_msgs', function (Blueprint $table) {
$table->dropColumn("top");
$table->dropColumn("top_at");
});
}
}

View File

@ -0,0 +1,48 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateProjectTaskVisibilityUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('project_task_visibility_users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->bigInteger('project_id')->index()->nullable()->default(0)->comment('项目ID');
$table->bigInteger('task_id')->index()->nullable()->default(0)->comment('任务ID');
$table->bigInteger('userid')->index()->nullable()->default(0)->comment('成员ID');
$table->timestamps();
});
// 迁移旧数据
DB::table('project_task_users')->where("owner",2)->orderBy('id')->chunk(100, function ($data) {
foreach ($data as $item) {
DB::table('project_task_visibility_users')->insert([
'project_id' => $item->project_id,
'task_id' => $item->task_id,
'userid' => $item->userid,
'created_at' => $item->created_at,
'updated_at' => $item->updated_at
]);
}
});
DB::table('project_task_users')->where("owner",2)->delete();
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('project_task_visibility_users');
}
}

View File

@ -0,0 +1,52 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class AddWebSocketDialogsTop extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('web_socket_dialog_msgs', function (Blueprint $table) {
if (Schema::hasColumn('web_socket_dialog_msgs', 'top')) {
$table->dropColumn("top");
$table->dropColumn("top_at");
}
});
//
Schema::table('web_socket_dialogs', function (Blueprint $table) {
$table->bigInteger('top_userid')->nullable()->default(0)->after('link_id')->comment('置顶的用户ID');
$table->bigInteger('top_msg_id')->nullable()->default(0)->after('top_userid')->comment('置顶的消息ID');
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('web_socket_dialog_msgs', function (Blueprint $table) {
if (!Schema::hasColumn('web_socket_dialog_msgs', 'top')) {
$table->bigInteger('top')->nullable()->default(0)->after('send')->comment('置顶的会员ID');
$table->timestamp('top_at')->nullable()->after('top')->comment('置顶时间');
}
});
//
Schema::table('web_socket_dialogs', function (Blueprint $table) {
if (Schema::hasColumn('web_socket_dialogs', 'top_msg_id')) {
$table->dropColumn("top_msg_id");
}
if (Schema::hasColumn('web_socket_dialogs', 'top_userid')) {
$table->dropColumn("top_userid");
}
});
}
}

View File

@ -150,7 +150,7 @@ services:
approve: approve:
container_name: "dootask-approve-${APP_ID}" container_name: "dootask-approve-${APP_ID}"
image: "kuaifan/dooapprove:0.0.9" image: "kuaifan/dooapprove:0.0.10"
environment: environment:
TZ: "${TIMEZONE:-PRC}" TZ: "${TIMEZONE:-PRC}"
MYSQL_HOST: "${DB_HOST}" MYSQL_HOST: "${DB_HOST}"
@ -177,7 +177,7 @@ services:
okr: okr:
container_name: "dootask-okr-${APP_ID}" container_name: "dootask-okr-${APP_ID}"
image: "kuaifan/doookr:0.0.25" image: "kuaifan/doookr:0.0.26"
environment: environment:
TZ: "${TIMEZONE:-PRC}" TZ: "${TIMEZONE:-PRC}"
DOO_TASK_URL: "http://${APP_IPPR}.3" DOO_TASK_URL: "http://${APP_IPPR}.3"

View File

@ -1493,3 +1493,10 @@ License Key
你确定要打包下载【(*)】文件夹吗? 你确定要打包下载【(*)】文件夹吗?
正在打包,请留意系统消息 正在打包,请留意系统消息
发起,参与接龙目前共(*)人 发起,参与接龙目前共(*)人
选择会员
请选择移动后状态
移动成功
置顶人员
置顶了
你确定取消置顶吗?

View File

@ -19457,5 +19457,60 @@
"de": "License Key", "de": "License Key",
"fr": "License Key", "fr": "License Key",
"id": "License Key" "id": "License Key"
},
{
"key": "选择会员",
"zh": "",
"zh-CHT": "選擇會員",
"en": "Select member",
"ko": "회원 선택",
"ja": "会員を選ぶ",
"de": "Entscheide dich für mitglied.",
"fr": "Choisissez votre adhésion",
"id": "Memilih anggota"
},
{
"key": "请选择移动后状态",
"zh": "",
"zh-CHT": "請選擇移動後狀態",
"en": "Please select post-move status",
"ko": "이동 후 상태를 선택해주세요",
"ja": "移動後の状態を選択します。",
"de": "Bitte wählen sie die einstellungen nach dem start",
"fr": "Veuillez sélectionner le statut post-déménagement",
"id": "Silahkan pilih status belakang"
},
{
"key": "置顶人员",
"zh": "",
"zh-CHT": "置頂人員",
"en": "Roofer",
"ko": "구제인원",
"ja": "トップスタッフです",
"de": "Ersatzleute?",
"fr": "Personnes au toit",
"id": "Personil yang ditempatkan"
},
{
"key": "置顶了",
"zh": "",
"zh-CHT": "置頂了",
"en": "Pinned to top",
"ko": "머리를 숙이다",
"ja": "屋根にしました",
"de": "Es ist versteckt.",
"fr": "Sur le toit",
"id": "Sebuah pengganti."
},
{
"key": "你确定取消置顶吗?",
"zh": "",
"zh-CHT": "你確定取消置頂嗎?",
"en": "Are you sure you can cancel the top?",
"ko": "상단 취소 확실합니까?",
"ja": "屋根の取り消しは確かですか?",
"de": "Sicher, dass der turm abgebrochen wurde?",
"fr": "Êtes-vous sûr de supprimer le plafond?",
"id": "Kau yakin mau membatalkan toplesnya?"
} }
] ]

File diff suppressed because one or more lines are too long

View File

@ -5,15 +5,15 @@
<meta name="description" content="APP接口文档"> <meta name="description" content="APP接口文档">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="assets/bootstrap.min.css?v=1703484888256" rel="stylesheet" media="screen"> <link href="assets/bootstrap.min.css?v=1703836836069" rel="stylesheet" media="screen">
<link href="assets/prism.css?v=1703484888256" rel="stylesheet" /> <link href="assets/prism.css?v=1703836836069" rel="stylesheet" />
<link href="assets/prism-toolbar.css?v=1703484888256" rel="stylesheet" /> <link href="assets/prism-toolbar.css?v=1703836836069" rel="stylesheet" />
<link href="assets/prism-diff-highlight.css?v=1703484888256" rel="stylesheet" /> <link href="assets/prism-diff-highlight.css?v=1703836836069" rel="stylesheet" />
<link href="assets/main.css?v=1703484888256" rel="stylesheet" media="screen, print"> <link href="assets/main.css?v=1703836836069" rel="stylesheet" media="screen, print">
<link href="assets/favicon.ico?v=1703484888256" rel="icon" type="image/x-icon"> <link href="assets/favicon.ico?v=1703836836069" rel="icon" type="image/x-icon">
<link href="assets/apple-touch-icon.png?v=1703484888256" rel="apple-touch-icon" sizes="180x180"> <link href="assets/apple-touch-icon.png?v=1703836836069" 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-32x32.png?v=1703836836069" rel="icon" type="image/png" sizes="32x32">
<link href="assets/favicon-16x16.png?v=1703484888256" rel="icon" type="image/png" sizes="16x16"> <link href="assets/favicon-16x16.png?v=1703836836069" rel="icon" type="image/png" sizes="16x16">
</head> </head>
<body class="container-fluid"> <body class="container-fluid">
@ -1042,6 +1042,6 @@
</div> </div>
</div> </div>
<script src="assets/main.bundle.js?v=1703484888256"></script> <script src="assets/main.bundle.js?v=1703836836069"></script>
</body> </body>
</html> </html>

View File

@ -1 +1 @@
import{n as e}from"./app.574b291d.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.6de43c5b.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.7d359fd7.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./vuex.cc7cb26e.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var m=function(){var t=this,r=t.$createElement;return t._self._c,t._m(0)},p=[function(){var t=this,r=t.$createElement,i=t._self._c||r;return i("div",{staticClass:"page-404"},[i("div",{staticClass:"flex-center position-ref full-height"},[i("div",{staticClass:"code"},[t._v("404")]),i("div",{staticClass:"message"},[t._v("Not Found")])])])}];const s={},o={};var _=e(s,m,p,!1,n,"7d7154a8",null,null);function n(t){for(let r in o)this[r]=o[r]}var P=function(){return _.exports}();export{P as default}; import{n as e}from"./app.20bd5153.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.20f4a9bb.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.1719aefe.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./vuex.cc7cb26e.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var m=function(){var t=this,r=t.$createElement;return t._self._c,t._m(0)},p=[function(){var t=this,r=t.$createElement,i=t._self._c||r;return i("div",{staticClass:"page-404"},[i("div",{staticClass:"flex-center position-ref full-height"},[i("div",{staticClass:"code"},[t._v("404")]),i("div",{staticClass:"message"},[t._v("Not Found")])])])}];const s={},o={};var _=e(s,m,p,!1,n,"7d7154a8",null,null);function n(t){for(let r in o)this[r]=o[r]}var P=function(){return _.exports}();export{P as default};

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{n}from"./app.574b291d.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.20bd5153.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 s}from"./vuex.cc7cb26e.js";import{I as m}from"./IFrame.0f38a97a.js";import{n as l,l as r}from"./app.574b291d.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.6de43c5b.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.7d359fd7.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var p=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",{staticClass:"drawio-content"},[i("IFrame",{ref:"frame",staticClass:"drawio-iframe",attrs:{src:t.url},on:{"on-message":t.onMessage}}),t.loadIng?i("div",{staticClass:"drawio-loading"},[i("Loading")],1):t._e()],1)},d=[];const u={name:"Drawio",components:{IFrame:m},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 t=r;switch(r){case"zh-CHT":t="zh-tw";break}let e=this.readOnly?1:0,i=this.readOnly?0:1,n=this.themeIsDark?"dark":"kennedy",a=`?title=${this.title?encodeURIComponent(this.title):""}&chrome=${i}&lightbox=${e}&ui=${n}&lang=${t}&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${a}`):this.url=$A.apiUrl(`../drawio/webapp/${a}`)},mounted(){window.addEventListener("message",this.handleMessage)},beforeDestroy(){window.removeEventListener("message",this.handleMessage)},watch:{value:{handler(t){this.bakData!=$A.jsonStringify(t)&&(this.bakData=$A.jsonStringify(t),this.updateContent())},deep:!0}},computed:{...s(["themeIsDark"])},methods:{formatZoom(t){return t+"%"},updateContent(){this.$refs.frame.postMessage(JSON.stringify({action:"load",autosave:1,xml:this.value.xml}))},onMessage(t){switch(t.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 e={xml:t.xml};this.bakData=$A.jsonStringify(e),this.$emit("input",e);break;case"save":this.$emit("saveData");break}}}},o={};var c=l(u,p,d,!1,h,"6b690a27",null,null);function h(t){for(let e in o)this[e]=o[e]}var X=function(){return c.exports}();export{X as default}; import{m as s}from"./vuex.cc7cb26e.js";import{I as m}from"./IFrame.59cec055.js";import{n as l,l as r}from"./app.20bd5153.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.20f4a9bb.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.1719aefe.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var p=function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",{staticClass:"drawio-content"},[i("IFrame",{ref:"frame",staticClass:"drawio-iframe",attrs:{src:t.url},on:{"on-message":t.onMessage}}),t.loadIng?i("div",{staticClass:"drawio-loading"},[i("Loading")],1):t._e()],1)},d=[];const u={name:"Drawio",components:{IFrame:m},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 t=r;switch(r){case"zh-CHT":t="zh-tw";break}let e=this.readOnly?1:0,i=this.readOnly?0:1,n=this.themeIsDark?"dark":"kennedy",a=`?title=${this.title?encodeURIComponent(this.title):""}&chrome=${i}&lightbox=${e}&ui=${n}&lang=${t}&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${a}`):this.url=$A.apiUrl(`../drawio/webapp/${a}`)},mounted(){window.addEventListener("message",this.handleMessage)},beforeDestroy(){window.removeEventListener("message",this.handleMessage)},watch:{value:{handler(t){this.bakData!=$A.jsonStringify(t)&&(this.bakData=$A.jsonStringify(t),this.updateContent())},deep:!0}},computed:{...s(["themeIsDark"])},methods:{formatZoom(t){return t+"%"},updateContent(){this.$refs.frame.postMessage(JSON.stringify({action:"load",autosave:1,xml:this.value.xml}))},onMessage(t){switch(t.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 e={xml:t.xml};this.bakData=$A.jsonStringify(e),this.$emit("input",e);break;case"save":this.$emit("saveData");break}}}},o={};var c=l(u,p,d,!1,h,"6b690a27",null,null);function h(t){for(let e in o)this[e]=o[e]}var X=function(){return c.exports}();export{X 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

@ -1 +1 @@
import{n}from"./app.574b291d.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.20bd5153.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

View File

@ -1 +1 @@
import{V as r}from"./vue.1f6d1fff.js";import{s as i,U as p,a as s,l as o,n as l}from"./app.574b291d.js";import{m as h}from"./vuex.cc7cb26e.js";import{u as d,E as u}from"./@micro-zoe.c2e1472d.js";import{D as m}from"./DialogWrapper.b97f6e58.js";import{i as c}from"./view-design-hi.8f621b1c.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:(d({destroy:!0}),this.loading=!0)}},computed:{...h(["userInfo","themeMode"]),getAppData(){return{type:"init",url:this.url,vues:{Vue:r,store:i,components:{DialogWrapper:m,UserSelect:p,DatePicker:c.exports.DatePicker}},theme:this.themeMode,languages:{languageList:s,languageType:o},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=l(v,f,g,!1,_,null,null,null);function _(a){for(let t in n)this[t]=n[t]}var E=function(){return D.exports}();export{E as M}; import{V as r}from"./vue.1f6d1fff.js";import{s as i,U as p,a as s,l as o,n as l}from"./app.20bd5153.js";import{m as h}from"./vuex.cc7cb26e.js";import{u as d,E as u}from"./@micro-zoe.c2e1472d.js";import{D as m}from"./DialogWrapper.4668c128.js";import{i as c}from"./view-design-hi.8f621b1c.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:(d({destroy:!0}),this.loading=!0)}},computed:{...h(["userInfo","themeMode"]),getAppData(){return{type:"init",url:this.url,vues:{Vue:r,store:i,components:{DialogWrapper:m,UserSelect:p,DatePicker:c.exports.DatePicker}},theme:this.themeMode,languages:{languageList:s,languageType:o},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=l(v,f,g,!1,_,null,null,null);function _(a){for(let t in n)this[t]=n[t]}var E=function(){return D.exports}();export{E as M};

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 i}from"./vuex.cc7cb26e.js";import{n as l}from"./app.574b291d.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 m={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 c=l(m,n,d,!1,u,null,null,null);function u(t){for(let e in o)this[e]=o[e]}var p=function(){return c.exports}();export{p as R}; import{m as i}from"./vuex.cc7cb26e.js";import{n as l}from"./app.20bd5153.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 m={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 c=l(m,n,d,!1,u,null,null,null);function u(t){for(let e in o)this[e]=o[e]}var p=function(){return c.exports}();export{p 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

6
public/js/build/app.0418f77b.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

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{M as o}from"./MicroApps.b339cbdc.js";import{n as m}from"./app.574b291d.js";import"./vue.1f6d1fff.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./vuex.cc7cb26e.js";import"./@micro-zoe.c2e1472d.js";import"./DialogWrapper.b97f6e58.js";import"./le5le-store.b40f9152.js";import"./longpress.c69d0833.js";import"./index.7e1648df.js";import"./quill.b985c8ce.js";import"./quill-mention-hi.c7a745b0.js";import"./vue-jsonp.be27271b.js";import"./vue-virtual-scroll-list-hi.83dc7c08.js";import"./ImgUpload.e397ddb2.js";import"./view-design-hi.8f621b1c.js";import"./details.573061e2.js";import"./jquery.6de43c5b.js";import"./localforage.7d359fd7.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./axios.6ec123f8.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";import"./tip.60b5cf7a.js";var a=function(){var t=this,r=t.$createElement,i=t._self._c||r;return!t.loading&&t.$route.name=="manage-apps"?i("MicroApps",{attrs:{url:t.appUrl,path:t.path}}):t._e()},e=[];const n={components:{MicroApps:o},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}}},p={};var s=m(n,a,e,!1,l,null,null,null);function l(t){for(let r in p)this[r]=p[r]}var it=function(){return s.exports}();export{it as default}; import{M as o}from"./MicroApps.23ba0e0a.js";import{n as m}from"./app.20bd5153.js";import"./vue.1f6d1fff.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./vuex.cc7cb26e.js";import"./@micro-zoe.c2e1472d.js";import"./DialogWrapper.4668c128.js";import"./le5le-store.b40f9152.js";import"./longpress.c69d0833.js";import"./index.e55d28a4.js";import"./quill.b985c8ce.js";import"./quill-mention-hi.c7a745b0.js";import"./vue-jsonp.be27271b.js";import"./vue-virtual-scroll-list-hi.83dc7c08.js";import"./ImgUpload.e91f2891.js";import"./view-design-hi.8f621b1c.js";import"./details.634ff605.js";import"./jquery.20f4a9bb.js";import"./localforage.1719aefe.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./axios.6ec123f8.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";import"./tip.4bc63c90.js";var a=function(){var t=this,r=t.$createElement,i=t._self._c||r;return!t.loading&&t.$route.name=="manage-apps"?i("MicroApps",{attrs:{url:t.appUrl,path:t.path}}):t._e()},e=[];const n={components:{MicroApps:o},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}}},p={};var s=m(n,a,e,!1,l,null,null,null);function l(t){for(let r in p)this[r]=p[r]}var it=function(){return s.exports}();export{it as default};

View File

@ -1 +1 @@
import{M as o}from"./MicroApps.b339cbdc.js";import{n as m}from"./app.574b291d.js";import"./vue.1f6d1fff.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./vuex.cc7cb26e.js";import"./@micro-zoe.c2e1472d.js";import"./DialogWrapper.b97f6e58.js";import"./le5le-store.b40f9152.js";import"./longpress.c69d0833.js";import"./index.7e1648df.js";import"./quill.b985c8ce.js";import"./quill-mention-hi.c7a745b0.js";import"./vue-jsonp.be27271b.js";import"./vue-virtual-scroll-list-hi.83dc7c08.js";import"./ImgUpload.e397ddb2.js";import"./view-design-hi.8f621b1c.js";import"./details.573061e2.js";import"./jquery.6de43c5b.js";import"./localforage.7d359fd7.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./axios.6ec123f8.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";import"./tip.60b5cf7a.js";var e=function(){var t=this,r=t.$createElement,i=t._self._c||r;return i("div",{staticClass:"electron-single-micro-apps"},[!t.loading&&t.$route.name=="single-apps"?i("MicroApps",{attrs:{url:t.appUrl,path:t.path}}):t._e()],1)},a=[];const s={components:{MicroApps:o},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}}},p={};var n=m(s,e,a,!1,l,null,null,null);function l(t){for(let r in p)this[r]=p[r]}var pt=function(){return n.exports}();export{pt as default}; import{M as o}from"./MicroApps.23ba0e0a.js";import{n as m}from"./app.20bd5153.js";import"./vue.1f6d1fff.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./vuex.cc7cb26e.js";import"./@micro-zoe.c2e1472d.js";import"./DialogWrapper.4668c128.js";import"./le5le-store.b40f9152.js";import"./longpress.c69d0833.js";import"./index.e55d28a4.js";import"./quill.b985c8ce.js";import"./quill-mention-hi.c7a745b0.js";import"./vue-jsonp.be27271b.js";import"./vue-virtual-scroll-list-hi.83dc7c08.js";import"./ImgUpload.e91f2891.js";import"./view-design-hi.8f621b1c.js";import"./details.634ff605.js";import"./jquery.20f4a9bb.js";import"./localforage.1719aefe.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./axios.6ec123f8.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";import"./tip.4bc63c90.js";var e=function(){var t=this,r=t.$createElement,i=t._self._c||r;return i("div",{staticClass:"electron-single-micro-apps"},[!t.loading&&t.$route.name=="single-apps"?i("MicroApps",{attrs:{url:t.appUrl,path:t.path}}):t._e()],1)},a=[];const s={components:{MicroApps:o},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}}},p={};var n=m(s,e,a,!1,l,null,null,null);function l(t){for(let r in p)this[r]=p[r]}var pt=function(){return n.exports}();export{pt 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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

View File

@ -1 +1 @@
import{m as o}from"./vuex.cc7cb26e.js";import{n as a}from"./app.574b291d.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.6de43c5b.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.7d359fd7.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var n=function(){var t=this,i=t.$createElement,e=t._self._c||i;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(r){r.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(r){t.$set(t.formDatum,"newEmail",r)},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(r){t.$set(t.formDatum,"newEmail",r)},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(r){t.$set(t.formDatum,"code",r)},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)},m=[];const l={data(){return{loadIng:0,configLoad:0,formDatum:{newEmail:"",code:""},ruleDatum:{newEmail:[{validator:(t,i,e)=>{i.trim()===""?e(new Error(this.$L("\u8BF7\u8F93\u5165\u65B0\u90AE\u7BB1\u5730\u5740\uFF01"))):$A.isEmail(i.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:{...o(["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 i=setInterval(()=>{this.count--,this.sendBtnText=this.count+" \u79D2",this.count<=0&&(this.sendBtnText=this.$L("\u53D1\u9001\u9A8C\u8BC1\u7801"),clearInterval(i))},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:i})=>{this.count=0,this.sendBtnText=this.$L("\u53D1\u9001\u9A8C\u8BC1\u7801"),$A.messageSuccess("\u4FEE\u6539\u6210\u529F"),this.$store.dispatch("saveUserInfo",i),this.$refs.formDatum.resetFields(),this.isSendButtonShow=!0}).catch(({msg:i})=>{$A.modalError(i)}).finally(i=>{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--})}}},s={};var u=a(l,n,m,!1,d,null,null,null);function d(t){for(let i in s)this[i]=s[i]}var J=function(){return u.exports}();export{J as default}; import{m as o}from"./vuex.cc7cb26e.js";import{n as a}from"./app.20bd5153.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.20f4a9bb.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.1719aefe.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var n=function(){var t=this,i=t.$createElement,e=t._self._c||i;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(r){r.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(r){t.$set(t.formDatum,"newEmail",r)},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(r){t.$set(t.formDatum,"newEmail",r)},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(r){t.$set(t.formDatum,"code",r)},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)},m=[];const l={data(){return{loadIng:0,configLoad:0,formDatum:{newEmail:"",code:""},ruleDatum:{newEmail:[{validator:(t,i,e)=>{i.trim()===""?e(new Error(this.$L("\u8BF7\u8F93\u5165\u65B0\u90AE\u7BB1\u5730\u5740\uFF01"))):$A.isEmail(i.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:{...o(["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 i=setInterval(()=>{this.count--,this.sendBtnText=this.count+" \u79D2",this.count<=0&&(this.sendBtnText=this.$L("\u53D1\u9001\u9A8C\u8BC1\u7801"),clearInterval(i))},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:i})=>{this.count=0,this.sendBtnText=this.$L("\u53D1\u9001\u9A8C\u8BC1\u7801"),$A.messageSuccess("\u4FEE\u6539\u6210\u529F"),this.$store.dispatch("saveUserInfo",i),this.$refs.formDatum.resetFields(),this.isSendButtonShow=!0}).catch(({msg:i})=>{$A.modalError(i)}).finally(i=>{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--})}}},s={};var u=a(l,n,m,!1,d,null,null,null);function d(t){for(let i in s)this[i]=s[i]}var J=function(){return u.exports}();export{J as default};

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import n from"./FileContent.5b325368.js";import l from"./FilePreview.2d3323a7.js";import{n as s}from"./app.574b291d.js";import"./openpgp_hi.15f91b1d.js";import"./vuex.cc7cb26e.js";import"./IFrame.0f38a97a.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.6de43c5b.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.7d359fd7.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var m=function(){var t=this,i=t.$createElement,e=t._self._c||i;return e("div",{staticClass:"single-file"},[e("PageTitle",{attrs:{title:t.pageName}}),t.loadIng>0?e("Loading"):t.fileInfo?[t.isPreview?e("FilePreview",{attrs:{code:t.code,file:t.fileInfo,historyId:t.historyId,headerShow:!t.$isEEUiApp}}):e("FileContent",{attrs:{file:t.fileInfo},model:{value:t.fileShow,callback:function(r){t.fileShow=r},expression:"fileShow"}})]:t._e()],2)},p=[];const a={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 t=this.fileInfo?this.fileInfo.name:"";return this.$route.query&&this.$route.query.history_at&&(t+=` [${this.$route.query.history_at}]`),t}},watch:{$route:{handler(){this.getInfo()},immediate:!0}},methods:{getInfo(){let{codeOrFileId:t}=this.$route.params,i={id:t};if(/^\d+$/.test(t))this.code=null;else if(t)this.code=t;else return;setTimeout(e=>{this.loadIng++},600),this.$store.dispatch("call",{url:"file/one",data:i}).then(({data:e})=>{this.fileInfo=e}).catch(({msg:e})=>{$A.modalError({content:e,onOk:()=>{window.close()}})}).finally(e=>{this.loadIng--})}}},o={};var f=s(a,m,p,!1,u,"b8037598",null,null);function u(t){for(let i in o)this[i]=o[i]}var X=function(){return f.exports}();export{X as default}; import n from"./FileContent.7bc46f83.js";import l from"./FilePreview.c228234a.js";import{n as s}from"./app.20bd5153.js";import"./openpgp_hi.15f91b1d.js";import"./vuex.cc7cb26e.js";import"./IFrame.59cec055.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.20f4a9bb.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.1719aefe.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var m=function(){var t=this,i=t.$createElement,e=t._self._c||i;return e("div",{staticClass:"single-file"},[e("PageTitle",{attrs:{title:t.pageName}}),t.loadIng>0?e("Loading"):t.fileInfo?[t.isPreview?e("FilePreview",{attrs:{code:t.code,file:t.fileInfo,historyId:t.historyId,headerShow:!t.$isEEUiApp}}):e("FileContent",{attrs:{file:t.fileInfo},model:{value:t.fileShow,callback:function(r){t.fileShow=r},expression:"fileShow"}})]:t._e()],2)},p=[];const a={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 t=this.fileInfo?this.fileInfo.name:"";return this.$route.query&&this.$route.query.history_at&&(t+=` [${this.$route.query.history_at}]`),t}},watch:{$route:{handler(){this.getInfo()},immediate:!0}},methods:{getInfo(){let{codeOrFileId:t}=this.$route.params,i={id:t};if(/^\d+$/.test(t))this.code=null;else if(t)this.code=t;else return;setTimeout(e=>{this.loadIng++},600),this.$store.dispatch("call",{url:"file/one",data:i}).then(({data:e})=>{this.fileInfo=e}).catch(({msg:e})=>{$A.modalError({content:e,onOk:()=>{window.close()}})}).finally(e=>{this.loadIng--})}}},o={};var f=s(a,m,p,!1,u,"b8037598",null,null);function u(t){for(let i in o)this[i]=o[i]}var X=function(){return f.exports}();export{X 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

@ -1 +1 @@
import{n,l as o}from"./app.574b291d.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.6de43c5b.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.7d359fd7.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./vuex.cc7cb26e.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var s=function(){var t=this,i=t.$createElement,e=t._self._c||i;return e("div")},a=[];const p={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(){o==="zh"||o==="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)}}},r={};var m=n(p,s,a,!1,h,null,null,null);function h(t){for(let i in r)this[i]=r[i]}var O=function(){return m.exports}();export{O as default}; import{n,l as o}from"./app.20bd5153.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.20f4a9bb.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.1719aefe.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./vuex.cc7cb26e.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var s=function(){var t=this,i=t.$createElement,e=t._self._c||i;return e("div")},a=[];const p={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(){o==="zh"||o==="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)}}},r={};var m=n(p,s,a,!1,h,null,null,null);function h(t){for(let i in r)this[i]=r[i]}var O=function(){return m.exports}();export{O 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

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{a as m,l as n,f as s,n as l}from"./app.574b291d.js";import{m as p}from"./vuex.cc7cb26e.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.6de43c5b.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.7d359fd7.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var u=function(){var t=this,r=t.$createElement,a=t._self._c||r;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(o){o.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(o){t.$set(t.formData,"language",o)},expression:"formData.language"}},t._l(t.languageList,function(o,i){return a("Option",{key:i,attrs:{value:i}},[t._v(t._s(o))])}),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)},f=[];const g={data(){return{loadIng:0,languageList:m,formData:{language:""},ruleData:{}}},mounted(){this.initData()},computed:{...p(["formLabelPosition","formLabelWidth"])},methods:{initData(){this.$set(this.formData,"language",n),this.formData_bak=$A.cloneJSON(this.formData)},submitForm(){this.$refs.formData.validate(t=>{t&&s(this.formData.language)})},resetForm(){this.formData=$A.cloneJSON(this.formData_bak)}}},e={};var c=l(g,u,f,!1,_,null,null,null);function _(t){for(let r in e)this[r]=e[r]}var X=function(){return c.exports}();export{X as default}; import{a as m,l as n,f as s,n as l}from"./app.20bd5153.js";import{m as p}from"./vuex.cc7cb26e.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.20f4a9bb.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.1719aefe.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var u=function(){var t=this,r=t.$createElement,a=t._self._c||r;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(o){o.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(o){t.$set(t.formData,"language",o)},expression:"formData.language"}},t._l(t.languageList,function(o,i){return a("Option",{key:i,attrs:{value:i}},[t._v(t._s(o))])}),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)},f=[];const g={data(){return{loadIng:0,languageList:m,formData:{language:""},ruleData:{}}},mounted(){this.initData()},computed:{...p(["formLabelPosition","formLabelWidth"])},methods:{initData(){this.$set(this.formData,"language",n),this.formData_bak=$A.cloneJSON(this.formData)},submitForm(){this.$refs.formData.validate(t=>{t&&s(this.formData.language)})},resetForm(){this.formData=$A.cloneJSON(this.formData_bak)}}},e={};var c=l(g,u,f,!1,_,null,null,null);function _(t){for(let r in e)this[r]=e[r]}var X=function(){return c.exports}();export{X 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{M as e}from"./MeetingManager.639b8036.js";import{n as m}from"./app.574b291d.js";import"./le5le-store.b40f9152.js";import"./vuex.cc7cb26e.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.6de43c5b.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.7d359fd7.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./axios.6ec123f8.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var p=function(){var r=this,t=r.$createElement,i=r._self._c||t;return i("div",[i("MeetingManager")],1)},n=[];const s={components:{MeetingManager:e},mounted(){this.$store.dispatch("showMeetingWindow",{type:"join",meetingid:this.$route.params.meetingId,meetingSharekey:this.$route.params.sharekey,meetingdisabled:!0})}},o={};var a=m(s,p,n,!1,_,null,null,null);function _(r){for(let t in o)this[t]=o[t]}var Q=function(){return a.exports}();export{Q as default}; import{M as e}from"./MeetingManager.6232b09d.js";import{n as m}from"./app.20bd5153.js";import"./le5le-store.b40f9152.js";import"./vuex.cc7cb26e.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.20f4a9bb.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.1719aefe.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./axios.6ec123f8.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var p=function(){var r=this,t=r.$createElement,i=r._self._c||t;return i("div",[i("MeetingManager")],1)},n=[];const s={components:{MeetingManager:e},mounted(){this.$store.dispatch("showMeetingWindow",{type:"join",meetingid:this.$route.params.meetingId,meetingSharekey:this.$route.params.sharekey,meetingdisabled:!0})}},o={};var a=m(s,p,n,!1,_,null,null,null);function _(r){for(let t in o)this[t]=o[t]}var Q=function(){return a.exports}();export{Q as default};

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{m as a}from"./vuex.cc7cb26e.js";import{n as i}from"./app.574b291d.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.6de43c5b.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.7d359fd7.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var m=function(){var t=this,s=t.$createElement,r=t._self._c||s;return r("div",{staticClass:"setting-item submit"},[r("Form",{ref:"formDatum",attrs:{model:t.formDatum,rules:t.ruleDatum,labelPosition:t.formLabelPosition,labelWidth:t.formLabelWidth},nativeOn:{submit:function(e){e.preventDefault()}}},[t.userInfo.changepass?r("Alert",{staticStyle:{"margin-bottom":"32px"},attrs:{type:"warning",showIcon:""}},[t._v(t._s(t.$L("\u8BF7\u5148\u4FEE\u6539\u767B\u5F55\u5BC6\u7801\uFF01")))]):t._e(),r("FormItem",{attrs:{label:t.$L("\u65E7\u5BC6\u7801"),prop:"oldpass"}},[r("Input",{attrs:{type:"password"},model:{value:t.formDatum.oldpass,callback:function(e){t.$set(t.formDatum,"oldpass",e)},expression:"formDatum.oldpass"}})],1),r("FormItem",{attrs:{label:t.$L("\u65B0\u5BC6\u7801"),prop:"newpass"}},[r("Input",{attrs:{type:"password"},model:{value:t.formDatum.newpass,callback:function(e){t.$set(t.formDatum,"newpass",e)},expression:"formDatum.newpass"}})],1),r("FormItem",{attrs:{label:t.$L("\u786E\u8BA4\u65B0\u5BC6\u7801"),prop:"checkpass"}},[r("Input",{attrs:{type:"password"},model:{value:t.formDatum.checkpass,callback:function(e){t.$set(t.formDatum,"checkpass",e)},expression:"formDatum.checkpass"}})],1)],1),r("div",{staticClass:"setting-footer"},[r("Button",{attrs:{loading:t.loadIng>0,type:"primary"},on:{click:t.submitForm}},[t._v(t._s(t.$L("\u63D0\u4EA4")))]),r("Button",{staticStyle:{"margin-left":"8px"},attrs:{loading:t.loadIng>0},on:{click:t.resetForm}},[t._v(t._s(t.$L("\u91CD\u7F6E")))])],1)],1)},p=[];const n={data(){return{loadIng:0,formDatum:{oldpass:"",newpass:"",checkpass:""},ruleDatum:{oldpass:[{required:!0,message:this.$L("\u8BF7\u8F93\u5165\u65E7\u5BC6\u7801\uFF01"),trigger:"change"},{type:"string",min:6,message:this.$L("\u5BC6\u7801\u957F\u5EA6\u81F3\u5C116\u4F4D\uFF01"),trigger:"change"}],newpass:[{validator:(t,s,r)=>{s===""?r(new Error(this.$L("\u8BF7\u8F93\u5165\u65B0\u5BC6\u7801\uFF01"))):(this.formDatum.checkpass!==""&&this.$refs.formDatum.validateField("checkpass"),r())},required:!0,trigger:"change"},{type:"string",min:6,message:this.$L("\u5BC6\u7801\u957F\u5EA6\u81F3\u5C116\u4F4D\uFF01"),trigger:"change"}],checkpass:[{validator:(t,s,r)=>{s===""?r(new Error(this.$L("\u8BF7\u91CD\u65B0\u8F93\u5165\u65B0\u5BC6\u7801\uFF01"))):s!==this.formDatum.newpass?r(new Error(this.$L("\u4E24\u6B21\u5BC6\u7801\u8F93\u5165\u4E0D\u4E00\u81F4\uFF01"))):r()},required:!0,trigger:"change"}]}}},computed:{...a(["userInfo","formLabelPosition","formLabelWidth"])},methods:{submitForm(){this.$refs.formDatum.validate(t=>{t&&(this.loadIng++,this.$store.dispatch("call",{url:"users/editpass",data:this.formDatum}).then(({data:s})=>{$A.messageSuccess("\u4FEE\u6539\u6210\u529F"),this.$store.dispatch("saveUserInfo",s),this.$refs.formDatum.resetFields()}).catch(({msg:s})=>{$A.modalError(s)}).finally(s=>{this.loadIng--}))})},resetForm(){this.$refs.formDatum.resetFields()}}},o={};var l=i(n,m,p,!1,u,null,null,null);function u(t){for(let s in o)this[s]=o[s]}var N=function(){return l.exports}();export{N as default}; import{m as a}from"./vuex.cc7cb26e.js";import{n as i}from"./app.20bd5153.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.20f4a9bb.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.1719aefe.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var m=function(){var t=this,s=t.$createElement,r=t._self._c||s;return r("div",{staticClass:"setting-item submit"},[r("Form",{ref:"formDatum",attrs:{model:t.formDatum,rules:t.ruleDatum,labelPosition:t.formLabelPosition,labelWidth:t.formLabelWidth},nativeOn:{submit:function(e){e.preventDefault()}}},[t.userInfo.changepass?r("Alert",{staticStyle:{"margin-bottom":"32px"},attrs:{type:"warning",showIcon:""}},[t._v(t._s(t.$L("\u8BF7\u5148\u4FEE\u6539\u767B\u5F55\u5BC6\u7801\uFF01")))]):t._e(),r("FormItem",{attrs:{label:t.$L("\u65E7\u5BC6\u7801"),prop:"oldpass"}},[r("Input",{attrs:{type:"password"},model:{value:t.formDatum.oldpass,callback:function(e){t.$set(t.formDatum,"oldpass",e)},expression:"formDatum.oldpass"}})],1),r("FormItem",{attrs:{label:t.$L("\u65B0\u5BC6\u7801"),prop:"newpass"}},[r("Input",{attrs:{type:"password"},model:{value:t.formDatum.newpass,callback:function(e){t.$set(t.formDatum,"newpass",e)},expression:"formDatum.newpass"}})],1),r("FormItem",{attrs:{label:t.$L("\u786E\u8BA4\u65B0\u5BC6\u7801"),prop:"checkpass"}},[r("Input",{attrs:{type:"password"},model:{value:t.formDatum.checkpass,callback:function(e){t.$set(t.formDatum,"checkpass",e)},expression:"formDatum.checkpass"}})],1)],1),r("div",{staticClass:"setting-footer"},[r("Button",{attrs:{loading:t.loadIng>0,type:"primary"},on:{click:t.submitForm}},[t._v(t._s(t.$L("\u63D0\u4EA4")))]),r("Button",{staticStyle:{"margin-left":"8px"},attrs:{loading:t.loadIng>0},on:{click:t.resetForm}},[t._v(t._s(t.$L("\u91CD\u7F6E")))])],1)],1)},p=[];const n={data(){return{loadIng:0,formDatum:{oldpass:"",newpass:"",checkpass:""},ruleDatum:{oldpass:[{required:!0,message:this.$L("\u8BF7\u8F93\u5165\u65E7\u5BC6\u7801\uFF01"),trigger:"change"},{type:"string",min:6,message:this.$L("\u5BC6\u7801\u957F\u5EA6\u81F3\u5C116\u4F4D\uFF01"),trigger:"change"}],newpass:[{validator:(t,s,r)=>{s===""?r(new Error(this.$L("\u8BF7\u8F93\u5165\u65B0\u5BC6\u7801\uFF01"))):(this.formDatum.checkpass!==""&&this.$refs.formDatum.validateField("checkpass"),r())},required:!0,trigger:"change"},{type:"string",min:6,message:this.$L("\u5BC6\u7801\u957F\u5EA6\u81F3\u5C116\u4F4D\uFF01"),trigger:"change"}],checkpass:[{validator:(t,s,r)=>{s===""?r(new Error(this.$L("\u8BF7\u91CD\u65B0\u8F93\u5165\u65B0\u5BC6\u7801\uFF01"))):s!==this.formDatum.newpass?r(new Error(this.$L("\u4E24\u6B21\u5BC6\u7801\u8F93\u5165\u4E0D\u4E00\u81F4\uFF01"))):r()},required:!0,trigger:"change"}]}}},computed:{...a(["userInfo","formLabelPosition","formLabelWidth"])},methods:{submitForm(){this.$refs.formDatum.validate(t=>{t&&(this.loadIng++,this.$store.dispatch("call",{url:"users/editpass",data:this.formDatum}).then(({data:s})=>{$A.messageSuccess("\u4FEE\u6539\u6210\u529F"),this.$store.dispatch("saveUserInfo",s),this.$refs.formDatum.resetFields()}).catch(({msg:s})=>{$A.modalError(s)}).finally(s=>{this.loadIng--}))})},resetForm(){this.$refs.formDatum.resetFields()}}},o={};var l=i(n,m,p,!1,u,null,null,null);function u(t){for(let s in o)this[s]=o[s]}var N=function(){return l.exports}();export{N as default};

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import"./app.574b291d.js";import{p as M}from"./app.574b291d.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.6de43c5b.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.7d359fd7.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./vuex.cc7cb26e.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";export{M as default}; import"./app.20bd5153.js";import{p as M}from"./app.20bd5153.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.20f4a9bb.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.1719aefe.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./vuex.cc7cb26e.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";export{M as default};

View File

@ -1 +1 @@
import{n as m,l as o}from"./app.574b291d.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.6de43c5b.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.7d359fd7.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./vuex.cc7cb26e.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var e=function(){var r=this,t=r.$createElement,p=r._self._c||t;return p("div")},n=[];const l={mounted(){o==="zh"||o==="zh-CHT"?window.location.href=$A.apiUrl("../site/zh/price.html"):window.location.href=$A.apiUrl("../site/en/price.html")}},i={};var a=m(l,e,n,!1,s,null,null,null);function s(r){for(let t in i)this[t]=i[t]}var O=function(){return a.exports}();export{O as default}; import{n as m,l as o}from"./app.20bd5153.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.20f4a9bb.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.1719aefe.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./vuex.cc7cb26e.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var e=function(){var r=this,t=r.$createElement,p=r._self._c||t;return p("div")},n=[];const l={mounted(){o==="zh"||o==="zh-CHT"?window.location.href=$A.apiUrl("../site/zh/price.html"):window.location.href=$A.apiUrl("../site/en/price.html")}},i={};var a=m(l,e,n,!1,s,null,null,null);function s(r){for(let t in i)this[t]=i[t]}var O=function(){return a.exports}();export{O as default};

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{m as r}from"./vuex.cc7cb26e.js";import{n as a}from"./app.574b291d.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.6de43c5b.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.7d359fd7.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var s=function(){var t=this,o=t.$createElement,i=t._self._c||o;return i("div",{staticClass:"page-invite"},[i("PageTitle",{attrs:{title:t.$L("\u52A0\u5165\u9879\u76EE")}}),t.loadIng>0?i("div",{staticClass:"invite-load"},[i("Loading")],1):i("div",{staticClass:"invite-warp"},[t.project.id>0?i("Card",[i("p",{attrs:{slot:"title"},slot:"title"},[t._v(t._s(t.project.name))]),t.project.desc?i("div",{staticClass:"invite-desc"},[t._v(t._s(t.project.desc))]):i("div",[t._v(t._s(t.$L("\u6682\u65E0\u4ECB\u7ECD")))]),i("div",{staticClass:"invite-footer"},[t.already?i("Button",{attrs:{type:"success",icon:"ios-checkmark-circle-outline"},on:{click:t.goProject}},[t._v(t._s(t.$L("\u5DF2\u52A0\u5165")))]):i("Button",{attrs:{type:"primary",loading:t.joinLoad>0},on:{click:t.joinProject}},[t._v(t._s(t.$L("\u52A0\u5165\u9879\u76EE")))])],1)]):i("Card",[i("p",[t._v(t._s(t.$L("\u9080\u8BF7\u5730\u5740\u4E0D\u5B58\u5728\u6216\u5DF2\u88AB\u5220\u9664\uFF01")))])])],1)],1)},n=[];const c={data(){return{loadIng:0,joinLoad:0,already:!1,project:{}}},computed:{...r(["dialogId","windowPortrait"])},watch:{$route:{handler(t){if(t.name=="manage-project-invite"){if(!$A.Electron&&!$A.isEEUiApp&&navigator.userAgent.indexOf("MicroMessenger")===-1&&/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent))try{/Android/i.test(navigator.userAgent)?window.open("dootask://"+t.fullPath):window.location.href="dootask://"+t.fullPath}catch{}this.windowPortrait&&this.dialogId>0&&this.$store.dispatch("openDialog",0),this.code=t.query?t.query.code:"",this.getData()}},immediate:!0}},methods:{getData(){this.loadIng++,this.$store.dispatch("call",{url:"project/invite/info",data:{code:this.code}}).then(({data:t})=>{this.already=t.already,this.project=t.project}).catch(()=>{this.project={}}).finally(t=>{this.loadIng--})},joinProject(){this.joinLoad++,this.$store.dispatch("call",{url:"project/invite/join",data:{code:this.code}}).then(({data:t})=>{this.already=t.already,this.project=t.project,this.goProject()}).catch(({msg:t})=>{$A.modalError(t)}).finally(t=>{this.joinLoad--})},goProject(){this.$nextTick(()=>{$A.goForward({name:"manage-project",params:{projectId:this.project.id}})})}}},e={};var p=a(c,s,n,!1,d,"935768d6",null,null);function d(t){for(let o in e)this[o]=e[o]}var K=function(){return p.exports}();export{K as default}; import{m as r}from"./vuex.cc7cb26e.js";import{n as a}from"./app.20bd5153.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.20f4a9bb.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.1719aefe.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var s=function(){var t=this,o=t.$createElement,i=t._self._c||o;return i("div",{staticClass:"page-invite"},[i("PageTitle",{attrs:{title:t.$L("\u52A0\u5165\u9879\u76EE")}}),t.loadIng>0?i("div",{staticClass:"invite-load"},[i("Loading")],1):i("div",{staticClass:"invite-warp"},[t.project.id>0?i("Card",[i("p",{attrs:{slot:"title"},slot:"title"},[t._v(t._s(t.project.name))]),t.project.desc?i("div",{staticClass:"invite-desc"},[t._v(t._s(t.project.desc))]):i("div",[t._v(t._s(t.$L("\u6682\u65E0\u4ECB\u7ECD")))]),i("div",{staticClass:"invite-footer"},[t.already?i("Button",{attrs:{type:"success",icon:"ios-checkmark-circle-outline"},on:{click:t.goProject}},[t._v(t._s(t.$L("\u5DF2\u52A0\u5165")))]):i("Button",{attrs:{type:"primary",loading:t.joinLoad>0},on:{click:t.joinProject}},[t._v(t._s(t.$L("\u52A0\u5165\u9879\u76EE")))])],1)]):i("Card",[i("p",[t._v(t._s(t.$L("\u9080\u8BF7\u5730\u5740\u4E0D\u5B58\u5728\u6216\u5DF2\u88AB\u5220\u9664\uFF01")))])])],1)],1)},n=[];const c={data(){return{loadIng:0,joinLoad:0,already:!1,project:{}}},computed:{...r(["dialogId","windowPortrait"])},watch:{$route:{handler(t){if(t.name=="manage-project-invite"){if(!$A.Electron&&!$A.isEEUiApp&&navigator.userAgent.indexOf("MicroMessenger")===-1&&/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent))try{/Android/i.test(navigator.userAgent)?window.open("dootask://"+t.fullPath):window.location.href="dootask://"+t.fullPath}catch{}this.windowPortrait&&this.dialogId>0&&this.$store.dispatch("openDialog",0),this.code=t.query?t.query.code:"",this.getData()}},immediate:!0}},methods:{getData(){this.loadIng++,this.$store.dispatch("call",{url:"project/invite/info",data:{code:this.code}}).then(({data:t})=>{this.already=t.already,this.project=t.project}).catch(()=>{this.project={}}).finally(t=>{this.loadIng--})},joinProject(){this.joinLoad++,this.$store.dispatch("call",{url:"project/invite/join",data:{code:this.code}}).then(({data:t})=>{this.already=t.already,this.project=t.project,this.goProject()}).catch(({msg:t})=>{$A.modalError(t)}).finally(t=>{this.joinLoad--})},goProject(){this.$nextTick(()=>{$A.goForward({name:"manage-project",params:{projectId:this.project.id}})})}}},e={};var p=a(c,s,n,!1,d,"935768d6",null,null);function d(t){for(let o in e)this[o]=e[o]}var K=function(){return p.exports}();export{K as default};

View File

@ -1 +1 @@
import{R as o}from"./ReportDetail.9731ca79.js";import{n as a}from"./app.574b291d.js";import"./vuex.cc7cb26e.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.6de43c5b.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.7d359fd7.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var p=function(){var t=this,r=t.$createElement,e=t._self._c||r;return e("div",{staticClass:"electron-report"},[e("PageTitle",{attrs:{title:t.$L("\u62A5\u544A\u8BE6\u60C5")}}),e("ReportDetail",{attrs:{data:t.detailData}})],1)},m=[];const s={components:{ReportDetail:o},data(){return{detailData:{}}},computed:{reportDetailId(){const{reportDetailId:t}=this.$route.params;return parseInt(/^\d+$/.test(t)?t:0)}},watch:{reportDetailId:{handler(){this.getDetail()},immediate:!0}},methods:{getDetail(){this.reportDetailId<=0||this.$store.dispatch("call",{url:"report/detail",data:{id:this.reportDetailId}}).then(({data:t})=>{this.detailData=t}).catch(({msg:t})=>{$A.messageError(t)})}}},i={};var l=a(s,p,m,!1,n,"76126c11",null,null);function n(t){for(let r in i)this[r]=i[r]}var Q=function(){return l.exports}();export{Q as default}; import{R as o}from"./ReportDetail.456a7b70.js";import{n as a}from"./app.20bd5153.js";import"./vuex.cc7cb26e.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.20f4a9bb.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.1719aefe.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var p=function(){var t=this,r=t.$createElement,e=t._self._c||r;return e("div",{staticClass:"electron-report"},[e("PageTitle",{attrs:{title:t.$L("\u62A5\u544A\u8BE6\u60C5")}}),e("ReportDetail",{attrs:{data:t.detailData}})],1)},m=[];const s={components:{ReportDetail:o},data(){return{detailData:{}}},computed:{reportDetailId(){const{reportDetailId:t}=this.$route.params;return parseInt(/^\d+$/.test(t)?t:0)}},watch:{reportDetailId:{handler(){this.getDetail()},immediate:!0}},methods:{getDetail(){this.reportDetailId<=0||this.$store.dispatch("call",{url:"report/detail",data:{id:this.reportDetailId}}).then(({data:t})=>{this.detailData=t}).catch(({msg:t})=>{$A.messageError(t)})}}},i={};var l=a(s,p,m,!1,n,"76126c11",null,null);function n(t){for(let r in i)this[r]=i[r]}var Q=function(){return l.exports}();export{Q as default};

View File

@ -1 +1 @@
import{R as o}from"./ReportEdit.032c9e3e.js";import{n as p}from"./app.574b291d.js";import"./openpgp_hi.15f91b1d.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.6de43c5b.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.7d359fd7.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./vuex.cc7cb26e.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var s=function(){var t=this,r=t.$createElement,e=t._self._c||r;return e("div",{staticClass:"electron-report"},[e("PageTitle",{attrs:{title:t.title}}),e("ReportEdit",{attrs:{id:t.reportEditId},on:{saveSuccess:t.saveSuccess}})],1)},m=[];const n={components:{ReportEdit:o},data(){return{detail:{}}},computed:{reportEditId(){if(/^\d+$/.test(this.detail.id))return parseInt(this.detail.id);const{reportEditId:t}=this.$route.params;return parseInt(/^\d+$/.test(t)?t:0)},title(){return this.$L(this.reportEditId>0?"\u4FEE\u6539\u62A5\u544A":"\u65B0\u589E\u62A5\u544A")}},methods:{saveSuccess(t){this.detail=t,this.$isSubElectron&&($A.Electron.sendMessage("sendForwardMain",{channel:"reportSaveSuccess",data:t}),window.close())}}},i={};var a=p(n,s,m,!1,d,"807ce0ea",null,null);function d(t){for(let r in i)this[r]=i[r]}var Q=function(){return a.exports}();export{Q as default}; import{R as o}from"./ReportEdit.00a68fd0.js";import{n as p}from"./app.20bd5153.js";import"./openpgp_hi.15f91b1d.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.20f4a9bb.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.1719aefe.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./vuex.cc7cb26e.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var s=function(){var t=this,r=t.$createElement,e=t._self._c||r;return e("div",{staticClass:"electron-report"},[e("PageTitle",{attrs:{title:t.title}}),e("ReportEdit",{attrs:{id:t.reportEditId},on:{saveSuccess:t.saveSuccess}})],1)},m=[];const n={components:{ReportEdit:o},data(){return{detail:{}}},computed:{reportEditId(){if(/^\d+$/.test(this.detail.id))return parseInt(this.detail.id);const{reportEditId:t}=this.$route.params;return parseInt(/^\d+$/.test(t)?t:0)},title(){return this.$L(this.reportEditId>0?"\u4FEE\u6539\u62A5\u544A":"\u65B0\u589E\u62A5\u544A")}},methods:{saveSuccess(t){this.detail=t,this.$isSubElectron&&($A.Electron.sendMessage("sendForwardMain",{channel:"reportSaveSuccess",data:t}),window.close())}}},i={};var a=p(n,s,m,!1,d,"807ce0ea",null,null);function d(t){for(let r in i)this[r]=i[r]}var Q=function(){return a.exports}();export{Q as default};

View File

@ -1 +1 @@
import{_ as m}from"./openpgp_hi.15f91b1d.js";import{P as l}from"./photoswipe.48240c0a.js";import{n as h}from"./app.574b291d.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.6de43c5b.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.7d359fd7.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./vuex.cc7cb26e.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var d=function(){var r=this,i=r.$createElement,o=r._self._c||i;return o("div")},u=[];const c={props:{className:{type:String,default:()=>"preview-image-swipe-"+Math.round(Math.random()*1e4)},urlList:{type:Array,default:()=>[]},initialIndex:{type:Number,default:0}},data(){return{lightbox:null}},beforeDestroy(){var r;(r=this.lightbox)==null||r.destroy()},watch:{urlList:{handler(r){var n;let i=!1,o=!1;(n=this.lightbox)==null||n.destroy();const a=r.map(t=>{if($A.isJson(t)){if(t.src&&(t.src=$A.thumbRestore(t.src)),parseInt(t.width)>0&&parseInt(t.height)>0)return t;t=t.src}return o=!0,{html:`<div class="preview-image-swipe"><img src="${$A.thumbRestore(t)}"/></div>`}});this.lightbox=new l({dataSource:a,escKey:!1,mainClass:this.className,showHideAnimationType:"none",pswpModule:()=>m(()=>import("./photoswipe.48240c0a.js").then(function(t){return t.p}),["js/build/photoswipe.48240c0a.js","js/build/photoswipe.0fb72215.css"])}),this.lightbox.on("change",t=>{!o||$A.loadScript("js/pinch-zoom.umd.min.js").then(g=>{document.querySelector(`.${this.className}`).querySelectorAll(".preview-image-swipe").forEach(e=>{e.getAttribute("data-init-pinch-zoom")!=="init"&&(e.setAttribute("data-init-pinch-zoom","init"),e.querySelector("img").addEventListener("pointermove",p=>{i&&p.stopPropagation()}),new PinchZoom.default(e,{draggableUnzoomed:!1,onDragStart:()=>{i=!0},onDragEnd:()=>{i=!1}}))})})}),this.lightbox.on("close",()=>{this.$emit("on-close")}),this.lightbox.on("destroy",()=>{this.$emit("on-destroy")}),this.lightbox.init(),this.lightbox.loadAndOpen(this.initialIndex)},immediate:!0},initialIndex(r){var i;(i=this.lightbox)==null||i.loadAndOpen(r)}}},s={};var _=h(c,d,u,!1,f,null,null,null);function f(r){for(let i in s)this[i]=s[i]}var it=function(){return _.exports}();export{it as default}; import{_ as m}from"./openpgp_hi.15f91b1d.js";import{P as l}from"./photoswipe.48240c0a.js";import{n as h}from"./app.20bd5153.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.20f4a9bb.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.1719aefe.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./vuex.cc7cb26e.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var d=function(){var r=this,i=r.$createElement,o=r._self._c||i;return o("div")},u=[];const c={props:{className:{type:String,default:()=>"preview-image-swipe-"+Math.round(Math.random()*1e4)},urlList:{type:Array,default:()=>[]},initialIndex:{type:Number,default:0}},data(){return{lightbox:null}},beforeDestroy(){var r;(r=this.lightbox)==null||r.destroy()},watch:{urlList:{handler(r){var n;let i=!1,o=!1;(n=this.lightbox)==null||n.destroy();const a=r.map(t=>{if($A.isJson(t)){if(t.src&&(t.src=$A.thumbRestore(t.src)),parseInt(t.width)>0&&parseInt(t.height)>0)return t;t=t.src}return o=!0,{html:`<div class="preview-image-swipe"><img src="${$A.thumbRestore(t)}"/></div>`}});this.lightbox=new l({dataSource:a,escKey:!1,mainClass:this.className,showHideAnimationType:"none",pswpModule:()=>m(()=>import("./photoswipe.48240c0a.js").then(function(t){return t.p}),["js/build/photoswipe.48240c0a.js","js/build/photoswipe.0fb72215.css"])}),this.lightbox.on("change",t=>{!o||$A.loadScript("js/pinch-zoom.umd.min.js").then(g=>{document.querySelector(`.${this.className}`).querySelectorAll(".preview-image-swipe").forEach(e=>{e.getAttribute("data-init-pinch-zoom")!=="init"&&(e.setAttribute("data-init-pinch-zoom","init"),e.querySelector("img").addEventListener("pointermove",p=>{i&&p.stopPropagation()}),new PinchZoom.default(e,{draggableUnzoomed:!1,onDragStart:()=>{i=!0},onDragEnd:()=>{i=!1}}))})})}),this.lightbox.on("close",()=>{this.$emit("on-close")}),this.lightbox.on("destroy",()=>{this.$emit("on-destroy")}),this.lightbox.init(),this.lightbox.loadAndOpen(this.initialIndex)},immediate:!0},initialIndex(r){var i;(i=this.lightbox)==null||i.loadAndOpen(r)}}},s={};var _=h(c,d,u,!1,f,null,null,null);function f(r){for(let i in s)this[i]=s[i]}var it=function(){return _.exports}();export{it as default};

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
import{b as i}from"./TaskDetail.d41927ee.js";import{m as s}from"./vuex.cc7cb26e.js";import{n as a}from"./app.574b291d.js";import"./ProjectLog.c8fa1670.js";import"./DialogWrapper.b97f6e58.js";import"./le5le-store.b40f9152.js";import"./longpress.c69d0833.js";import"./index.7e1648df.js";import"./quill.b985c8ce.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./quill-mention-hi.c7a745b0.js";import"./vue-jsonp.be27271b.js";import"./vue-virtual-scroll-list-hi.83dc7c08.js";import"./vue.1f6d1fff.js";import"./ImgUpload.e397ddb2.js";import"./view-design-hi.8f621b1c.js";import"./details.573061e2.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.6de43c5b.js";import"./localforage.7d359fd7.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./axios.6ec123f8.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";import"./tip.60b5cf7a.js";import"./TEditor.19e6f969.js";import"./tinymce.b77b7085.js";var n=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{staticClass:"electron-task"},[r("PageTitle",{attrs:{title:t.taskInfo.name}}),t.loadIng>0?r("Loading"):r("TaskDetail",{ref:"taskDetail",attrs:{"task-id":t.taskInfo.id,"open-task":t.taskInfo,"can-update-blur":t.canUpdateBlur}})],1)},p=[];const m={components:{TaskDetail:i},data(){return{loadIng:0,canUpdateBlur:!0}},mounted(){document.addEventListener("keydown",this.shortcutEvent),this.$isSubElectron&&(window.__onBeforeUnload=()=>{if(this.$refs.taskDetail.checkUpdate())return this.canUpdateBlur=!1,$A.modalConfirm({content:"\u4FEE\u6539\u7684\u5185\u5BB9\u5C1A\u672A\u4FDD\u5B58\uFF0C\u771F\u7684\u8981\u653E\u5F03\u4FEE\u6539\u5417\uFF1F",cancelText:"\u53D6\u6D88",okText:"\u653E\u5F03",onOk:()=>{this.$Electron.sendMessage("windowDestroy")},onCancel:()=>{this.$refs.taskDetail.checkUpdate(!1),this.canUpdateBlur=!0}}),!0})},beforeDestroy(){document.removeEventListener("keydown",this.shortcutEvent)},computed:{...s(["cacheTasks"]),taskId(){const{taskId:t}=this.$route.params;return parseInt(/^\d+$/.test(t)?t:0)},taskInfo(){return this.cacheTasks.find(({id:t})=>t===this.taskId)||{}}},watch:{taskId:{handler(){this.getInfo()},immediate:!0}},methods:{getInfo(){this.taskId<=0||(this.loadIng++,this.$store.dispatch("getTaskOne",{task_id:this.taskId,archived:"all"}).then(()=>{this.$store.dispatch("getTaskContent",this.taskId),this.$store.dispatch("getTaskFiles",this.taskId),this.$store.dispatch("getTaskForParent",this.taskId).catch(()=>{}),this.$store.dispatch("getTaskPriority").catch(()=>{})}).catch(({msg:t})=>{$A.modalError({content:t,onOk:()=>{this.$Electron&&window.close()}})}).finally(t=>{this.loadIng--}))},shortcutEvent(t){(t.metaKey||t.ctrlKey)&&t.keyCode===83&&(t.preventDefault(),this.$refs.taskDetail.checkUpdate(!0))}}},o={};var c=a(m,n,p,!1,d,"7af6ba13",null,null);function d(t){for(let e in o)this[e]=o[e]}var nt=function(){return c.exports}();export{nt as default}; import{b as i}from"./TaskDetail.e84121f1.js";import{m as s}from"./vuex.cc7cb26e.js";import{n as a}from"./app.20bd5153.js";import"./ProjectLog.a0f5e49a.js";import"./DialogWrapper.4668c128.js";import"./le5le-store.b40f9152.js";import"./longpress.c69d0833.js";import"./index.e55d28a4.js";import"./quill.b985c8ce.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./quill-mention-hi.c7a745b0.js";import"./vue-jsonp.be27271b.js";import"./vue-virtual-scroll-list-hi.83dc7c08.js";import"./vue.1f6d1fff.js";import"./ImgUpload.e91f2891.js";import"./view-design-hi.8f621b1c.js";import"./details.634ff605.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.20f4a9bb.js";import"./localforage.1719aefe.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./axios.6ec123f8.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";import"./tip.4bc63c90.js";import"./TEditor.a51c92a7.js";import"./tinymce.b77b7085.js";var n=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{staticClass:"electron-task"},[r("PageTitle",{attrs:{title:t.taskInfo.name}}),t.loadIng>0?r("Loading"):r("TaskDetail",{ref:"taskDetail",attrs:{"task-id":t.taskInfo.id,"open-task":t.taskInfo,"can-update-blur":t.canUpdateBlur}})],1)},p=[];const m={components:{TaskDetail:i},data(){return{loadIng:0,canUpdateBlur:!0}},mounted(){document.addEventListener("keydown",this.shortcutEvent),this.$isSubElectron&&(window.__onBeforeUnload=()=>{if(this.$refs.taskDetail.checkUpdate())return this.canUpdateBlur=!1,$A.modalConfirm({content:"\u4FEE\u6539\u7684\u5185\u5BB9\u5C1A\u672A\u4FDD\u5B58\uFF0C\u771F\u7684\u8981\u653E\u5F03\u4FEE\u6539\u5417\uFF1F",cancelText:"\u53D6\u6D88",okText:"\u653E\u5F03",onOk:()=>{this.$Electron.sendMessage("windowDestroy")},onCancel:()=>{this.$refs.taskDetail.checkUpdate(!1),this.canUpdateBlur=!0}}),!0})},beforeDestroy(){document.removeEventListener("keydown",this.shortcutEvent)},computed:{...s(["cacheTasks"]),taskId(){const{taskId:t}=this.$route.params;return parseInt(/^\d+$/.test(t)?t:0)},taskInfo(){return this.cacheTasks.find(({id:t})=>t===this.taskId)||{}}},watch:{taskId:{handler(){this.getInfo()},immediate:!0}},methods:{getInfo(){this.taskId<=0||(this.loadIng++,this.$store.dispatch("getTaskOne",{task_id:this.taskId,archived:"all"}).then(()=>{this.$store.dispatch("getTaskContent",this.taskId),this.$store.dispatch("getTaskFiles",this.taskId),this.$store.dispatch("getTaskForParent",this.taskId).catch(()=>{}),this.$store.dispatch("getTaskPriority").catch(()=>{})}).catch(({msg:t})=>{$A.modalError({content:t,onOk:()=>{this.$Electron&&window.close()}})}).finally(t=>{this.loadIng--}))},shortcutEvent(t){(t.metaKey||t.ctrlKey)&&t.keyCode===83&&(t.preventDefault(),this.$refs.taskDetail.checkUpdate(!0))}}},o={};var c=a(m,n,p,!1,d,"7af6ba13",null,null);function d(t){for(let e in o)this[e]=o[e]}var nt=function(){return c.exports}();export{nt as default};

View File

@ -1 +1 @@
import{m as a}from"./vuex.cc7cb26e.js";import{n as s}from"./app.574b291d.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.6de43c5b.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.7d359fd7.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var n=function(){var t=this,o=t.$createElement,e=t._self._c||o;return e("div",{staticClass:"setting-item submit"},[e("Form",{ref:"formData",attrs:{model:t.formData,rules:t.ruleData,labelPosition:t.formLabelPosition,labelWidth:t.formLabelWidth},nativeOn:{submit:function(r){r.preventDefault()}}},[e("FormItem",{attrs:{label:t.$L("\u9009\u62E9\u4E3B\u9898"),prop:"theme"}},[e("Select",{attrs:{placeholder:t.$L("\u9009\u9879\u4E3B\u9898")},model:{value:t.formData.theme,callback:function(r){t.$set(t.formData,"theme",r)},expression:"formData.theme"}},t._l(t.themeList,function(r,m){return e("Option",{key:m,attrs:{value:r.value}},[t._v(t._s(t.$L(r.name)))])}),1)],1)],1),e("div",{staticClass:"setting-footer"},[e("Button",{attrs:{loading:t.loadIng>0,type:"primary"},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 p={data(){return{loadIng:0,formData:{theme:""},ruleData:{}}},mounted(){this.initData()},computed:{...a(["themeMode","themeList","formLabelPosition","formLabelWidth"])},methods:{initData(){this.$set(this.formData,"theme",this.themeMode),this.formData_bak=$A.cloneJSON(this.formData)},submitForm(){this.$refs.formData.validate(t=>{t&&this.$store.dispatch("setTheme",this.formData.theme).then(o=>{o&&$A.messageSuccess("\u4FDD\u5B58\u6210\u529F")})})},resetForm(){this.formData=$A.cloneJSON(this.formData_bak)}}},i={};var f=s(p,n,l,!1,c,null,null,null);function c(t){for(let o in i)this[o]=i[o]}var Q=function(){return f.exports}();export{Q as default}; import{m as a}from"./vuex.cc7cb26e.js";import{n as s}from"./app.20bd5153.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.20f4a9bb.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.1719aefe.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var n=function(){var t=this,o=t.$createElement,e=t._self._c||o;return e("div",{staticClass:"setting-item submit"},[e("Form",{ref:"formData",attrs:{model:t.formData,rules:t.ruleData,labelPosition:t.formLabelPosition,labelWidth:t.formLabelWidth},nativeOn:{submit:function(r){r.preventDefault()}}},[e("FormItem",{attrs:{label:t.$L("\u9009\u62E9\u4E3B\u9898"),prop:"theme"}},[e("Select",{attrs:{placeholder:t.$L("\u9009\u9879\u4E3B\u9898")},model:{value:t.formData.theme,callback:function(r){t.$set(t.formData,"theme",r)},expression:"formData.theme"}},t._l(t.themeList,function(r,m){return e("Option",{key:m,attrs:{value:r.value}},[t._v(t._s(t.$L(r.name)))])}),1)],1)],1),e("div",{staticClass:"setting-footer"},[e("Button",{attrs:{loading:t.loadIng>0,type:"primary"},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 p={data(){return{loadIng:0,formData:{theme:""},ruleData:{}}},mounted(){this.initData()},computed:{...a(["themeMode","themeList","formLabelPosition","formLabelWidth"])},methods:{initData(){this.$set(this.formData,"theme",this.themeMode),this.formData_bak=$A.cloneJSON(this.formData)},submitForm(){this.$refs.formData.validate(t=>{t&&this.$store.dispatch("setTheme",this.formData.theme).then(o=>{o&&$A.messageSuccess("\u4FDD\u5B58\u6210\u529F")})})},resetForm(){this.formData=$A.cloneJSON(this.formData_bak)}}},i={};var f=s(p,n,l,!1,c,null,null,null);function c(t){for(let o in i)this[o]=i[o]}var Q=function(){return f.exports}();export{Q as default};

View File

@ -1 +1 @@
import{n as l,m as u}from"./app.574b291d.js";var d=function(){var e=this,s=e.$createElement,t=e._self._c||s;return t("ETooltip",{attrs:{"open-delay":e.openDelay,disabled:e.$isEEUiApp||e.windowTouch||e.tooltipDisabled||e.isBot,placement:e.tooltipPlacement}},[e.user?t("div",{staticClass:"common-avatar-transfer",attrs:{slot:"content"},slot:"content"},[e._t("default"),t("p",[e._v(e._s(e.$L("\u6635\u79F0"))+": "+e._s(e.user.nickname)),e.user.delete_at?t("em",{staticClass:"deleted no-dark-content"},[e._v(e._s(e.$L("\u5DF2\u5220\u9664")))]):e.user.disable_at?t("em",{staticClass:"disabled no-dark-content"},[e._v(e._s(e.$L("\u5DF2\u79BB\u804C")))]):e._e()]),t("p",{staticClass:"department-name",attrs:{title:e.user.department_name||""}},[e._v(e._s(e.$L("\u90E8\u95E8"))+": "+e._s(e.user.department_name||"-"))]),t("p",[e._v(e._s(e.$L("\u804C\u4F4D/\u804C\u79F0"))+": "+e._s(e.user.profession||"-"))]),e.user.delete_at?t("p",[t("strong",[e._v(e._s(e.$L("\u5220\u9664\u65F6\u95F4"))+": "+e._s(e.user.delete_at))])]):e.user.disable_at?t("p",[t("strong",[e._v(e._s(e.$L("\u79BB\u804C\u65F6\u95F4"))+": "+e._s(e.user.disable_at))])]):e._e(),e._t("end"),e.showMenu?t("div",{staticClass:"avatar-icons"},[t("Icon",{attrs:{type:"ios-chatbubbles"},on:{click:e.onOpenDialog}})],1):e._e()],2):e._e(),t("div",[t("UserAvatar",{ref:"avatar",attrs:{userid:e.userid,size:e.size,showIcon:e.showIcon,showName:e.showName,nameText:e.nameText,borderWitdh:e.borderWitdh,borderColor:e.borderColor,clickOpenDialog:e.clickOpenDialog,userResult:e.onUserResult}})],1)])},c=[];const _={name:"UserAvatarTip",mixins:[u],props:{tooltipDisabled:{type:Boolean,default:!1},showIconMenu:{type:Boolean,default:!1},tooltipPlacement:{type:String,default:"bottom"},openDelay:{type:Number,default:600}},data(){return{user:null}},mounted(){this.$listeners["update:online"]&&(this.$watch("userid",()=>{this.updateOnline()}),this.$watch("user.online",()=>{this.updateOnline()}),this.updateOnline())},computed:{showMenu(){return this.$store.state.userId==this.userid||this.user.delete_at||this.user.disable_at?!1:this.showIconMenu},isBot(){return!!(this.user&&this.user.bot)}},methods:{onOpenDialog(){this.$refs.avatar.openDialog()},onUserResult(e){typeof this.userResult=="function"&&this.userResult(e),this.user=e},updateOnline(){if(!!this.user)if(this.user.online||this.$store.state.userId===this.userid)this.$emit("update:online",!0);else{const e=$A.Time(),s=$A.Time(this.user.line_at),t=e-s;let a="\u6700\u540E\u5728\u7EBF\u4E8E\u5F88\u4E45\u4EE5\u524D";if(t<60)a="\u6700\u540E\u5728\u7EBF\u4E8E\u521A\u521A";else if(t<3600)a=`\u6700\u540E\u5728\u7EBF\u4E8E ${Math.floor(t/60)} \u5206\u949F\u524D`;else if(t<3600*6)a=`\u6700\u540E\u5728\u7EBF\u4E8E ${Math.floor(t/3600)} \u5C0F\u65F6\u524D`;else{const r=$A.formatDate("Y-m-d",e),n=$A.formatDate("Y-m-d",s),i=$A.formatDate("H:i",s);r===n?a=`\u6700\u540E\u5728\u7EBF\u4E8E\u4ECA\u5929 ${i}`:$A.formatDate("Y-m-d",e-86400)===n?a=`\u6700\u540E\u5728\u7EBF\u4E8E\u6628\u5929 ${i}`:t<3600*24*365&&(a=`\u6700\u540E\u5728\u7EBF\u4E8E ${n}`)}this.$emit("update:online",this.$L(a))}}}},o={};var p=l(_,d,c,!1,m,null,null,null);function m(e){for(let s in o)this[s]=o[s]}var f=function(){return p.exports}();export{f as U}; import{n as l,m as u}from"./app.20bd5153.js";var d=function(){var e=this,s=e.$createElement,t=e._self._c||s;return t("ETooltip",{attrs:{"open-delay":e.openDelay,disabled:e.$isEEUiApp||e.windowTouch||e.tooltipDisabled||e.isBot,placement:e.tooltipPlacement}},[e.user?t("div",{staticClass:"common-avatar-transfer",attrs:{slot:"content"},slot:"content"},[e._t("default"),t("p",[e._v(e._s(e.$L("\u6635\u79F0"))+": "+e._s(e.user.nickname)),e.user.delete_at?t("em",{staticClass:"deleted no-dark-content"},[e._v(e._s(e.$L("\u5DF2\u5220\u9664")))]):e.user.disable_at?t("em",{staticClass:"disabled no-dark-content"},[e._v(e._s(e.$L("\u5DF2\u79BB\u804C")))]):e._e()]),t("p",{staticClass:"department-name",attrs:{title:e.user.department_name||""}},[e._v(e._s(e.$L("\u90E8\u95E8"))+": "+e._s(e.user.department_name||"-"))]),t("p",[e._v(e._s(e.$L("\u804C\u4F4D/\u804C\u79F0"))+": "+e._s(e.user.profession||"-"))]),e.user.delete_at?t("p",[t("strong",[e._v(e._s(e.$L("\u5220\u9664\u65F6\u95F4"))+": "+e._s(e.user.delete_at))])]):e.user.disable_at?t("p",[t("strong",[e._v(e._s(e.$L("\u79BB\u804C\u65F6\u95F4"))+": "+e._s(e.user.disable_at))])]):e._e(),e._t("end"),e.showMenu?t("div",{staticClass:"avatar-icons"},[t("Icon",{attrs:{type:"ios-chatbubbles"},on:{click:e.onOpenDialog}})],1):e._e()],2):e._e(),t("div",[t("UserAvatar",{ref:"avatar",attrs:{userid:e.userid,size:e.size,showIcon:e.showIcon,showName:e.showName,nameText:e.nameText,borderWitdh:e.borderWitdh,borderColor:e.borderColor,clickOpenDialog:e.clickOpenDialog,userResult:e.onUserResult}})],1)])},c=[];const _={name:"UserAvatarTip",mixins:[u],props:{tooltipDisabled:{type:Boolean,default:!1},showIconMenu:{type:Boolean,default:!1},tooltipPlacement:{type:String,default:"bottom"},openDelay:{type:Number,default:600}},data(){return{user:null}},mounted(){this.$listeners["update:online"]&&(this.$watch("userid",()=>{this.updateOnline()}),this.$watch("user.online",()=>{this.updateOnline()}),this.updateOnline())},computed:{showMenu(){return this.$store.state.userId==this.userid||this.user.delete_at||this.user.disable_at?!1:this.showIconMenu},isBot(){return!!(this.user&&this.user.bot)}},methods:{onOpenDialog(){this.$refs.avatar.openDialog()},onUserResult(e){typeof this.userResult=="function"&&this.userResult(e),this.user=e},updateOnline(){if(!!this.user)if(this.user.online||this.$store.state.userId===this.userid)this.$emit("update:online",!0);else{const e=$A.Time(),s=$A.Time(this.user.line_at),t=e-s;let a="\u6700\u540E\u5728\u7EBF\u4E8E\u5F88\u4E45\u4EE5\u524D";if(t<60)a="\u6700\u540E\u5728\u7EBF\u4E8E\u521A\u521A";else if(t<3600)a=`\u6700\u540E\u5728\u7EBF\u4E8E ${Math.floor(t/60)} \u5206\u949F\u524D`;else if(t<3600*6)a=`\u6700\u540E\u5728\u7EBF\u4E8E ${Math.floor(t/3600)} \u5C0F\u65F6\u524D`;else{const r=$A.formatDate("Y-m-d",e),n=$A.formatDate("Y-m-d",s),i=$A.formatDate("H:i",s);r===n?a=`\u6700\u540E\u5728\u7EBF\u4E8E\u4ECA\u5929 ${i}`:$A.formatDate("Y-m-d",e-86400)===n?a=`\u6700\u540E\u5728\u7EBF\u4E8E\u6628\u5929 ${i}`:t<3600*24*365&&(a=`\u6700\u540E\u5728\u7EBF\u4E8E ${n}`)}this.$emit("update:online",this.$L(a))}}}},o={};var p=l(_,d,c,!1,m,null,null,null);function m(e){for(let s in o)this[s]=o[s]}var f=function(){return p.exports}();export{f as U};

View File

@ -1 +1 @@
import{n as i}from"./app.574b291d.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.6de43c5b.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.7d359fd7.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./vuex.cc7cb26e.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var m=function(){var t=this,o=t.$createElement,r=t._self._c||o;return r("div",{staticClass:"token-transfer"},[r("Loading")],1)},n=[];const p={mounted(){this.goNext1()},methods:{goNext1(){const t=$A.urlParameterAll();t.token&&this.$store.dispatch("call",{url:"users/info",header:{token:t.token}}).then(o=>{this.$store.dispatch("saveUserInfo",o.data),this.goNext2()}).catch(o=>{this.goForward({name:"login"},!0)})},goNext2(){let t=decodeURIComponent($A.getObject(this.$route.query,"from"));t?window.location.replace(t):this.goForward({name:"manage-dashboard"},!0)}}},e={};var a=i(p,m,n,!1,s,"5df16c44",null,null);function s(t){for(let o in e)this[o]=e[o]}var J=function(){return a.exports}();export{J as default}; import{n as i}from"./app.20bd5153.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.20f4a9bb.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.1719aefe.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./vuex.cc7cb26e.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var m=function(){var t=this,o=t.$createElement,r=t._self._c||o;return r("div",{staticClass:"token-transfer"},[r("Loading")],1)},n=[];const p={mounted(){this.goNext1()},methods:{goNext1(){const t=$A.urlParameterAll();t.token&&this.$store.dispatch("call",{url:"users/info",header:{token:t.token}}).then(o=>{this.$store.dispatch("saveUserInfo",o.data),this.goNext2()}).catch(o=>{this.goForward({name:"login"},!0)})},goNext2(){let t=decodeURIComponent($A.getObject(this.$route.query,"from"));t?window.location.replace(t):this.goForward({name:"manage-dashboard"},!0)}}},e={};var a=i(p,m,n,!1,s,"5df16c44",null,null);function s(t){for(let o in e)this[o]=e[o]}var J=function(){return a.exports}();export{J as default};

View File

@ -1 +1 @@
import{n as o}from"./app.574b291d.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.6de43c5b.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.7d359fd7.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./vuex.cc7cb26e.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var s=function(){var t=this,i=t.$createElement,r=t._self._c||i;return r("div",{staticClass:"valid-wrap"},[r("div",{staticClass:"valid-box"},[r("div",{staticClass:"valid-title"},[t._v(t._s(t.$L("\u9A8C\u8BC1\u90AE\u7BB1")))]),!t.success&&!t.error?r("Spin",{attrs:{size:"large"}}):t._e(),t.success?r("div",{staticClass:"validation-text"},[r("p",[t._v(t._s(t.$L("\u60A8\u7684\u90AE\u7BB1\u5DF2\u901A\u8FC7\u9A8C\u8BC1")))]),r("p",[t._v(t._s(t.$L("\u4ECA\u540E\u60A8\u53EF\u4EE5\u901A\u8FC7\u6B64\u90AE\u7BB1\u91CD\u7F6E\u60A8\u7684\u5E10\u53F7\u5BC6\u7801")))])]):t._e(),t.error?r("div",{staticClass:"validation-text"},[r("div",[t._v(t._s(t.errorText))])]):t._e(),t.success?r("div",{attrs:{slot:"footer"},slot:"footer"},[r("Button",{attrs:{type:"primary",long:""},on:{click:t.userLogout}},[t._v(t._s(t.$L("\u8FD4\u56DE\u9996\u9875")))])],1):t._e()],1)])},a=[];const m={data(){return{success:!1,error:!1,errorText:this.$L("\u94FE\u63A5\u5DF2\u8FC7\u671F\uFF0C\u5DF2\u91CD\u65B0\u53D1\u9001")}},mounted(){this.verificationEmail()},methods:{verificationEmail(){this.$store.dispatch("call",{url:"users/email/verification",data:{code:this.$route.query.code}}).then(()=>{this.success=!0,this.error=!1}).catch(({data:t,msg:i})=>{t.code===2?this.goForward({name:"index",query:{action:"index"}},!0):(this.success=!1,this.error=!0,this.errorText=this.$L(i))})},userLogout(){this.$store.dispatch("logout",!1)}}},e={};var p=o(m,s,a,!1,c,"763444c4",null,null);function c(t){for(let i in e)this[i]=e[i]}var O=function(){return p.exports}();export{O as default}; import{n as o}from"./app.20bd5153.js";import"./@micro-zoe.c2e1472d.js";import"./jquery.20f4a9bb.js";import"./@traptitech.88860da3.js";import"./katex.4a7ead58.js";import"./localforage.1719aefe.js";import"./markdown-it.7c737f4d.js";import"./entities.797c3e49.js";import"./uc.micro.39573202.js";import"./mdurl.2f66c031.js";import"./linkify-it.3ecfda1e.js";import"./punycode.1f25cbf2.js";import"./highlight.js.1d50a63d.js";import"./markdown-it-link-attributes.e1d5d151.js";import"./vue.1f6d1fff.js";import"./vuex.cc7cb26e.js";import"./axios.6ec123f8.js";import"./le5le-store.b40f9152.js";import"./openpgp_hi.15f91b1d.js";import"./vue-router.2d566cd7.js";import"./vue-clipboard2.14cddeec.js";import"./clipboard.a5ccae61.js";import"./view-design-hi.8f621b1c.js";import"./vuedraggable.d4178698.js";import"./sortablejs.ccb26b57.js";import"./vue-resize-observer.f25572a9.js";import"./element-sea.dea177ef.js";import"./deepmerge.cecf392e.js";import"./resize-observer-polyfill.cc119aac.js";import"./throttle-debounce.7c3948b2.js";import"./babel-helper-vue-jsx-merge-props.5ed215c3.js";import"./normalize-wheel.2a034b9f.js";import"./async-validator.87a1f938.js";import"./babel-runtime.4773988a.js";import"./core-js.314b4a1d.js";var s=function(){var t=this,i=t.$createElement,r=t._self._c||i;return r("div",{staticClass:"valid-wrap"},[r("div",{staticClass:"valid-box"},[r("div",{staticClass:"valid-title"},[t._v(t._s(t.$L("\u9A8C\u8BC1\u90AE\u7BB1")))]),!t.success&&!t.error?r("Spin",{attrs:{size:"large"}}):t._e(),t.success?r("div",{staticClass:"validation-text"},[r("p",[t._v(t._s(t.$L("\u60A8\u7684\u90AE\u7BB1\u5DF2\u901A\u8FC7\u9A8C\u8BC1")))]),r("p",[t._v(t._s(t.$L("\u4ECA\u540E\u60A8\u53EF\u4EE5\u901A\u8FC7\u6B64\u90AE\u7BB1\u91CD\u7F6E\u60A8\u7684\u5E10\u53F7\u5BC6\u7801")))])]):t._e(),t.error?r("div",{staticClass:"validation-text"},[r("div",[t._v(t._s(t.errorText))])]):t._e(),t.success?r("div",{attrs:{slot:"footer"},slot:"footer"},[r("Button",{attrs:{type:"primary",long:""},on:{click:t.userLogout}},[t._v(t._s(t.$L("\u8FD4\u56DE\u9996\u9875")))])],1):t._e()],1)])},a=[];const m={data(){return{success:!1,error:!1,errorText:this.$L("\u94FE\u63A5\u5DF2\u8FC7\u671F\uFF0C\u5DF2\u91CD\u65B0\u53D1\u9001")}},mounted(){this.verificationEmail()},methods:{verificationEmail(){this.$store.dispatch("call",{url:"users/email/verification",data:{code:this.$route.query.code}}).then(()=>{this.success=!0,this.error=!1}).catch(({data:t,msg:i})=>{t.code===2?this.goForward({name:"index",query:{action:"index"}},!0):(this.success=!1,this.error=!0,this.errorText=this.$L(i))})},userLogout(){this.$store.dispatch("logout",!1)}}},e={};var p=o(m,s,a,!1,c,"763444c4",null,null);function c(t){for(let i in e)this[i]=e[i]}var O=function(){return p.exports}();export{O 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

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

File diff suppressed because one or more lines are too long

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