mirror of
https://github.com/kuaifan/dootask.git
synced 2026-01-13 17:58:12 +00:00
feat: 新增删除账户功能
This commit is contained in:
parent
5b9f85f442
commit
1ea5bfa807
@ -7,6 +7,7 @@ use App\Models\Meeting;
|
||||
use App\Models\Project;
|
||||
use App\Models\UmengAlias;
|
||||
use App\Models\User;
|
||||
use App\Models\UserDelete;
|
||||
use App\Models\UserEmailVerification;
|
||||
use App\Models\UserTransfer;
|
||||
use App\Models\WebSocket;
|
||||
@ -1010,9 +1011,12 @@ class UsersController extends AbstractController
|
||||
if (!Base::isEmail($email)) {
|
||||
return Base::retError('邮箱地址错误');
|
||||
}
|
||||
if ($user->email == $email) {
|
||||
if ($user->email == $email && $type == 2) {
|
||||
return Base::retError('不能与旧邮箱一致');
|
||||
}
|
||||
if ($user->email != $email && $type == 3) {
|
||||
return Base::retError('与当前登录邮箱不一致');
|
||||
}
|
||||
if (User::where('userid', '<>', $user->userid)->whereEmail($email)->exists()) {
|
||||
return Base::retError('邮箱地址已存在');
|
||||
}
|
||||
@ -1021,12 +1025,12 @@ class UsersController extends AbstractController
|
||||
}
|
||||
|
||||
/**
|
||||
* @api {get} api/users/editemail 19. 修改邮箱
|
||||
* @api {get} api/users/edit/email 19. 修改邮箱
|
||||
*
|
||||
* @apiDescription 需要token身份
|
||||
* @apiVersion 1.0.0
|
||||
* @apiGroup users
|
||||
* @apiName editemail
|
||||
* @apiName edit__email
|
||||
*
|
||||
* @apiParam {String} newEmail 新邮箱地址
|
||||
* @apiParam {String} code 邮箱验证码
|
||||
@ -1035,7 +1039,7 @@ class UsersController extends AbstractController
|
||||
* @apiSuccess {String} msg 返回信息(错误描述)
|
||||
* @apiSuccess {Object} data 返回数据
|
||||
*/
|
||||
public function editemail()
|
||||
public function edit__email()
|
||||
{
|
||||
$user = User::auth();
|
||||
$user->checkSystem();
|
||||
@ -1051,27 +1055,7 @@ class UsersController extends AbstractController
|
||||
|
||||
$isRegVerify = Base::settingFind('emailSetting', 'reg_verify') === 'open';
|
||||
if ($isRegVerify) {
|
||||
if (!$code) {
|
||||
return Base::retError('请输入验证码');
|
||||
}
|
||||
|
||||
$res = UserEmailVerification::whereEmail($newEmail)->whereCode($code)->whereType(2)->orderByDesc('id')->first();
|
||||
|
||||
if (empty($res)) {
|
||||
return Base::retError('验证码错误');
|
||||
}
|
||||
|
||||
$oldTime = Carbon::parse($res->created_at)->timestamp;
|
||||
$time = Base::Time();
|
||||
|
||||
// 30分钟失效
|
||||
if (abs($time - $oldTime) > 1800) {
|
||||
return Base::retError("验证码已失效");
|
||||
}
|
||||
|
||||
UserEmailVerification::whereUserid($user->userid)->whereCode($code)->whereType(2)->update([
|
||||
'status' => 1
|
||||
]);
|
||||
UserEmailVerification::verify($newEmail, $code, 2);
|
||||
}
|
||||
|
||||
$user->email = $newEmail;
|
||||
@ -1079,4 +1063,71 @@ class UsersController extends AbstractController
|
||||
User::token($user);
|
||||
return Base::retSuccess('修改成功', $user);
|
||||
}
|
||||
|
||||
/**
|
||||
* @api {get} api/users/delete/account 20. 删除账户
|
||||
*
|
||||
* @apiDescription 需要token身份
|
||||
* @apiVersion 1.0.0
|
||||
* @apiGroup users
|
||||
* @apiName delete__account
|
||||
*
|
||||
* @apiParam {String} email 账号邮箱
|
||||
* @apiParam {String} code 邮箱验证码
|
||||
* @apiParam {String} reason 注销理由
|
||||
* @apiParam {String} password 登录密码
|
||||
* @apiParam {Number} type 类型
|
||||
* - warning: 提交校验
|
||||
* - confirm: 确认删除
|
||||
*
|
||||
* @apiSuccess {Number} ret 返回状态码(1正确、0错误)
|
||||
* @apiSuccess {String} msg 返回信息(错误描述)
|
||||
* @apiSuccess {Object} data 返回数据
|
||||
*/
|
||||
public function delete__account()
|
||||
{
|
||||
$email = Request::input('email');
|
||||
$code = Request::input('code');
|
||||
$reason = Request::input('reason');
|
||||
$password = Request::input('password');
|
||||
$type = Request::input('type');
|
||||
$user = User::auth();
|
||||
if (!$email) {
|
||||
return Base::retError('请输入新邮箱地址');
|
||||
}
|
||||
if (!Base::isEmail($email)) {
|
||||
return Base::retError('邮箱地址错误');
|
||||
}
|
||||
if ($user->email != $email) {
|
||||
return Base::retError('与当前登录邮箱不一致');
|
||||
}
|
||||
|
||||
$isRegVerify = Base::settingFind('emailSetting', 'reg_verify') === 'open';
|
||||
if ($isRegVerify) {
|
||||
UserEmailVerification::verify($email, $code, 3);
|
||||
} else {
|
||||
if (!$password) {
|
||||
return Base::retError('请输入登录密码');
|
||||
}
|
||||
if ($user->password != Base::md52($password, $user->encrypt)) {
|
||||
return Base::retError('密码错误');
|
||||
}
|
||||
}
|
||||
if ($type == 'confirm') {
|
||||
$deleteArr = [
|
||||
'userid' => $user->userid,
|
||||
'email' => $user->email,
|
||||
'reason' => $reason
|
||||
];
|
||||
$userDelete = UserDelete::createInstance($deleteArr);
|
||||
if ($userDelete->save() && $user->deleteUser()) {
|
||||
return Base::retSuccess('删除成功', $user);
|
||||
} else {
|
||||
return Base::retError('删除失败');
|
||||
}
|
||||
}
|
||||
|
||||
return Base::retSuccess('success', $user);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
30
app/Models/UserDelete.php
Normal file
30
app/Models/UserDelete.php
Normal file
@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
|
||||
/**
|
||||
* App\Models\UserDelete
|
||||
*
|
||||
* @property int $id
|
||||
* @property int|null $userid 用户id
|
||||
* @property string|null $email 邮箱账号
|
||||
* @property string|null $reason 注销原因
|
||||
* @property \Illuminate\Support\Carbon|null $created_at
|
||||
* @property \Illuminate\Support\Carbon|null $updated_at
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserDelete newModelQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserDelete newQuery()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserDelete query()
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserDelete whereCreatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserDelete whereEmail($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserDelete whereId($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserDelete whereReason($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserDelete whereUpdatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserDelete whereUserid($value)
|
||||
* @mixin \Eloquent
|
||||
*/
|
||||
class UserDelete extends AbstractModel
|
||||
{
|
||||
|
||||
}
|
||||
@ -29,6 +29,8 @@ use Guanguans\Notify\Messages\EmailMessage;
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserEmailVerification whereUpdatedAt($value)
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserEmailVerification whereUserid($value)
|
||||
* @mixin \Eloquent
|
||||
* @property int|null $type 邮件类型:1-邮箱认证,2-修改邮箱,3-删除账号
|
||||
* @method static \Illuminate\Database\Eloquent\Builder|UserEmailVerification whereType($value)
|
||||
*/
|
||||
class UserEmailVerification extends AbstractModel
|
||||
{
|
||||
@ -37,16 +39,16 @@ class UserEmailVerification extends AbstractModel
|
||||
* 发验证邮箱
|
||||
* @param User $user
|
||||
* @param int $type
|
||||
* @param null $newEmail
|
||||
* @param null $email
|
||||
*/
|
||||
public static function userEmailSend(User $user, $type = 1, $newEmail = null)
|
||||
public static function userEmailSend(User $user, $type = 1, $email = null)
|
||||
{
|
||||
$email = $type == 2 ? $newEmail : $user->email;
|
||||
$email = $type != 1 ? $email : $user->email;
|
||||
$res = self::whereEmail($email)->where('created_at', '>', Carbon::now()->subMinutes(30))->whereType($type)->first();
|
||||
if ($res) return;
|
||||
//删除
|
||||
self::whereUserid($email)->delete();
|
||||
$code = $type == 2 ? rand(100000, 999999) : Base::generatePassword(64);
|
||||
$code = $type != 1 ? rand(100000, 999999) : Base::generatePassword(64);
|
||||
$userEmailVerification = self::createInstance([
|
||||
'userid' => $user->userid,
|
||||
'email' => $email,
|
||||
@ -61,10 +63,13 @@ class UserEmailVerification extends AbstractModel
|
||||
if (!Base::isEmail($email)) {
|
||||
throw new \Exception("User email '{$email}' address error");
|
||||
}
|
||||
if($type ==2){
|
||||
if ($type == 2) {
|
||||
$subject = env('APP_NAME') . "修改邮箱验证";
|
||||
$content = "<p>{$user->nickname} 您好,您正在修改 " . env('APP_NAME') . " 的邮箱,验证码如下。请在30分钟内输入验证码</p><p style='color: #0000DD; margin-left: 10%;'>$code</p><p>如果不是本人操作,您的账号可能存在风险,请及时修改密码!</p>";
|
||||
}else{
|
||||
} elseif ($type == 3) {
|
||||
$subject = env('APP_NAME') . "注销账号验证";
|
||||
$content = "<p>{$user->nickname} 您好,您正在注销 " . env('APP_NAME') . " 的账号,验证码如下。请在30分钟内输入验证码</p><p style='color: #0000DD; margin-left: 10%;'>$code</p><p>如果不是本人操作,您的账号可能存在风险,请及时修改密码!</p>";
|
||||
} else {
|
||||
$subject = env('APP_NAME') . "绑定邮箱验证";
|
||||
$content = "<p>{$user->nickname} 您好,您正在绑定 " . env('APP_NAME') . " 的邮箱,请于30分钟之内点击以下链接完成验证 :</p><p style='display: flex; justify-content: center;'><a href='{$url}' target='_blank'>{$url}</a></p>";
|
||||
}
|
||||
@ -86,4 +91,39 @@ class UserEmailVerification extends AbstractModel
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验验证码
|
||||
* @param $email
|
||||
* @param $code
|
||||
* @param int $type
|
||||
* @return bool
|
||||
*/
|
||||
public static function verify($email, $code, $type = 1)
|
||||
{
|
||||
if (!$code) {
|
||||
throw new ApiException('请输入验证码');
|
||||
}
|
||||
/** @var UserEmailVerification $emailVerify */
|
||||
$emailVerify = self::whereEmail($email)->whereCode($code)->whereType($type)->orderByDesc('id')->first();
|
||||
|
||||
if (empty($emailVerify)) {
|
||||
throw new ApiException('验证码错误');
|
||||
}
|
||||
|
||||
$oldTime = Carbon::parse($emailVerify->created_at)->timestamp;
|
||||
$time = Base::Time();
|
||||
|
||||
// 30分钟失效
|
||||
if (abs($time - $oldTime) > 1800) {
|
||||
throw new ApiException('验证码已失效');
|
||||
}
|
||||
|
||||
self::whereEmail($email)->whereCode($code)->whereType($type)->update([
|
||||
'status' => 1
|
||||
]);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
class CreateUserDeletesTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('user_deletes', function (Blueprint $table) {
|
||||
$table->bigIncrements('id');
|
||||
$table->bigInteger('userid')->nullable()->default(0)->comment('用户id');
|
||||
$table->string('email', 100)->nullable()->default('')->comment('邮箱账号');
|
||||
$table->text('reason')->nullable()->comment('注销原因');
|
||||
$table->timestamps();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('user_deletes');
|
||||
}
|
||||
}
|
||||
30
public/js/language.all.js
vendored
30
public/js/language.all.js
vendored
@ -500,5 +500,35 @@
|
||||
{"CN": "邀请码:注册时需填写下方邀请码。","EN": "Invitation code: You need to fill in the following invitation code when registering.","TC": "邀請碼:註冊時需填寫下方邀請碼。","KM": "លេខកូដលិខិតអញ្ជើញ: អ្នកត្រូវបំពេញលេខកូដលិខិតអញ្ជើញខាងក្រោមនៅពេលចុះឈ្មោះ។","TH": "รหัสเชิญ: คุณต้องกรอกรหัสคำเชิญต่อไปนี้เมื่อลงทะเบียน","KO": "초대 코드 : 등록 할 때 다음 초대 코드를 입력해야합니다.","JA": "招待コード:登録時に次の招待コードを入力する必要があります。"},
|
||||
{"CN": "添加模板","EN": "Add template","TC": "添加模板","KM": "បន្ថែមគំរូ","TH": "เพิ่มเทมเพลต","KO": "템플릿을 추가하십시오","JA": "テンプレートを追加します"},
|
||||
{"CN": "版本","EN": "Version","TC": "版本","KM": "កមបុរក្នា","TH": "รุ่น","KO": "버전","JA": "バージョン"},
|
||||
{"CN": "请输入新邮箱地址","EN": "Please enter the new mailbox address","TC": "請輸入新郵箱地址","KM": "សូមបញ្ចូលអាសយដ្ឋានប្រអប់សំបុត្រថ្មី","TH": "โปรดป้อนที่อยู่กล่องจดหมายใหม่","KO": "새 사서함 주소를 입력하십시오","JA": "新しいメールボックスアドレスを入力してください"},
|
||||
{"CN": "邮箱地址错误","EN": "Email address error","TC": "郵箱地址錯誤","KM": "កំហុសអាសយដ្ឋានអ៊ីមែល","TH": "ข้อผิดพลาดที่อยู่อีเมล","KO": "이메일 주소 오류","JA": "メールアドレスエラー"},
|
||||
{"CN": "不能与旧邮箱一致","EN": "Can't be consistent with the old mailbox","TC": "不能與舊郵箱一致","KM": "មិនអាចត្រូវបានស្របជាមួយនឹងប្រអប់សំបុត្រចាស់","TH": "ไม่สามารถสอดคล้องกับกล่องจดหมายเก่า","KO": "이전 사서함과 일치 할 수 없습니다","JA": "古いメールボックスと一致することはできません"},
|
||||
{"CN": "验证码错误","EN": "Verification code error","TC": "驗證碼錯誤","KM": "កំហុសក្នុងការផ្ទៀងផ្ទាត់លេខកូដ","TH": "ข้อผิดพลาดของรหัสการตรวจสอบ","KO": "Verifin 코드 오류","JA": "検証コードエラー"},
|
||||
{"CN": "验证码已失效","EN": "The verification code has failed","TC": "驗證碼已失效","KM": "លេខកូដផ្ទៀងផ្ទាត់បានបរាជ័យ","TH": "รหัสการยืนยันล้มเหลว","KO": "검증 코드가 실패했습니다","JA": "検証コードは失敗しました"},
|
||||
{"CN": "发送验证码","EN": "Send the verification code","TC": "發送驗證碼","KM": "ផ្ញើកូដផ្ទៀងផ្ទាត់","TH": "ส่งรหัสการยืนยัน","KO": "확인 코드를 보냅니다","JA": "確認コードを送信します"},
|
||||
{"CN": "秒","EN": "Second","TC": "秒","KM": "ដេលរេបីរយចហើយ","TH": "ที่สอง","KO": "섹스","JA": "2番目"},
|
||||
{"CN": "输入邮箱验证码","EN": "Enter the mailbox verification code","TC": "輸入郵箱驗證碼","KM": "បញ្ចូលលេខកូដផ្ទៀងផ្ទាត់ប្រអប់សំបុត្រ","TH": "ป้อนรหัสการยืนยันกล่องจดหมาย","KO": "사서함 확인 코드를 입력하십시오","JA": "メールボックス検証コードを入力します"},
|
||||
{"CN": "新邮箱地址","EN": "New mailbox address","TC": "新郵箱地址","KM": "អាសយដ្ឋានប្រអប់សំបុត្រថ្មី","TH": "ที่อยู่กล่องจดหมายใหม่","KO": "새로운 사서함 주소","JA": "新しいメールボックスアドレス"},
|
||||
{"CN": "请输入新邮箱地址!","EN": "Please enter the new mailbox address!","TC": "請輸入新郵箱地址!","KM": "សូមបញ្ចូលអាសយដ្ឋានប្រអប់សំបុត្រថ្មី!","TH": "กรุณากรอกที่อยู่กล่องจดหมายใหม่!","KO": "새 사서함 주소를 입력하십시오!","JA": "新しいメールボックスアドレスを入力してください!"},
|
||||
{"CN": "请输入正确的邮箱地址!","EN": "Please input the correct email address!","TC": "請輸入正確的郵箱地址!","KM": "សូមបញ្ចូលអាសយដ្ឋានអ៊ីមែលត្រឹមត្រូវ!","TH": "กรุณาป้อนที่อยู่อีเมลที่ถูกต้อง!","KO": "thecorct 이메일 주소를 입력하십시오!","JA": "正しいメールアドレスを入力してください!"},
|
||||
{"CN": "验证码","EN": "Verification code","TC": "驗證碼","KM": "កូដផ្ទៀងផ្ទាត់","TH": "รหัสการตรวจสอบ","KO": "Verifin 코드","JA": "検証コード"},
|
||||
{"CN": "修改邮箱","EN": "Modify the mailbox","TC": "修改郵箱","KM": "កែប្រែប្រអប់សំបុត្រ","TH": "แก้ไขกล่องจดหมาย","KO": "사서함을 수정하십시오","JA": "メールボックスを変更します"},
|
||||
{"CN": "删除账户","EN": "Delete account","TC": "刪除賬戶","KM": "លុបគណនី","TH": "ลบบัญชี","KO": "계정 삭제","JA": "アカウントを削除する"},
|
||||
{"CN": "请输入邮箱账号","EN": "Please enter the mailbox account","TC": "請輸入郵箱賬號","KM": "សូមបញ្ចូលគណនីប្រអប់សំបុត្រ","TH": "กรุณากรอกบัญชีกล่องจดหมาย","KO": "사서함 계정을 입력하십시오","JA": "メールボックスアカウントを入力してください"},
|
||||
{"CN": "邮箱验证码","EN": "E-mail verification code","TC": "郵箱驗證碼","KM": "លេខកូដផ្ទៀងផ្ទាត់អ៊ីមែល","TH": "รหัสตรวจสอบอีเมล","KO": "이메일 Verofice 코드","JA": "電子メール検証コード"},
|
||||
{"CN": "请输入邮箱验证码","EN": "Please enter the mailbox verification code","TC": "請輸入郵箱驗證碼","KM": "សូមបញ្ចូលលេខកូដផ្ទៀងផ្ទាត់ប្រអប់សំបុត្រ","TH": "โปรดป้อนรหัสการยืนยันกล่องจดหมาย","KO": "사서함 확인 코드를 입력하십시오","JA": "メールボックス検証コードを入力してください"},
|
||||
{"CN": "请输入登录密码","EN": "Please enter your password","TC": "請輸入登錄密碼","KM": "សូមបញ្ចូលពាក្យសម្ងាត់របស់អ្នក","TH": "กรุณาใส่รหัสผ่านของคุณ","KO": "비밀번호를 입력하십시오","JA": "パスワードを入力してください"},
|
||||
{"CN": "登录密码","EN": "Login password","TC": "登錄密碼","KM": "បង្អួចបង្អួចចូល","TH": "รหัสผ่านในการเข้าสู่ระบบ","KO": "로그인 비밀번호","JA": "ログインパスワード"},
|
||||
{"CN": "删除原因","EN": "Delete","TC": "刪除原因","KM": "របៅបេលរសច","TH": "ลบ","KO": "삭제","JA": "消去"},
|
||||
{"CN": "请输入注销原因","EN": "Please enter the reason for cancellation","TC": "請輸入註銷原因","KM": "សូមបញ្ចូលហេតុផលសម្រាប់ការលុបចោល","TH": "โปรดป้อนเหตุผลในการยกเลิก","KO": "취소 이유를 입력하십시오","JA": "キャンセルの理由を入力してください"},
|
||||
{"CN": "删除DooTask账号","EN": "Delete Dootask account","TC": "刪除DooTask賬號","KM": "លុបគណនី dootask","TH": "ลบบัญชี dootask","KO": "Dootask 계정을 삭제하십시오","JA": "Dootaskアカウントを削除します"},
|
||||
{"CN": "账号删除后,该账号将无法正常登录且无法恢复,账号下的所有数据也将被删除。'","EN": "After the account is deleted, the account will not be able to log in normally and cannot be restored, and all the data under the account will be deleted. '","TC": "賬號刪除後,該賬號將無法正常登錄且無法恢復,賬號下的所有數據也將被刪除。 '","KM": "បន្ទាប់ពីគណនីត្រូវបានលុបគណនីនឹងមិនអាចចូលជាធម្មតាទេហើយមិនអាចស្តារឡើងវិញបានទេហើយទិន្នន័យទាំងអស់ដែលនៅក្រោមគណនីនឹងត្រូវបានលុបចោល។ ផាប","TH": "หลังจากลบบัญชีบัญชีจะไม่สามารถเข้าสู่ระบบได้ตามปกติและไม่สามารถกู้คืนได้และข้อมูลทั้งหมดภายใต้บัญชีจะถูกลบ '","KO": "계정이 삭제되면 계정은 정상적으로 로그인 할 수없고 복원 할 수 없으며 계정의 모든 데이터가 삭제됩니다. '","JA": "アカウントが削除された後、アカウントは正常にログインできず、復元できず、アカウントのすべてのデータが削除されます。 '"},
|
||||
{"CN": "注销前,请确认一下事项:","EN": "Before canceling, please confirm the matters:","TC": "註銷前,請確認一下事項:","KM": "មុនពេលបោះបង់សូមបញ្ជាក់ពីបញ្ហា:","TH": "ก่อนยกเลิกโปรดยืนยันเรื่อง:","KO": "Canceeling 전에 문제를 확인하십시오.","JA": "キャンセルする前に、問題を確認してください:"},
|
||||
{"CN": "1、您将无法查看该账号内的任何信息,包括账号信息、文件记录、聊天记录、项目信息、团队成员信息等。","EN": "1. You will not be able to view any information in this account, including account information, file records, chat records, project information, team member information, etc.","TC": "1、您將無法查看該賬號內的任何信息,包括賬號信息、文件記錄、聊天記錄、項目信息、團隊成員信息等。","KM": "1. អ្នកនឹងមិនអាចមើលព័ត៌មានណាមួយនៅក្នុងគណនីនេះរួមមានព័ត៌មានគណនីកំណត់ត្រាឯកសារកំណត់ត្រាជជែកឯកសារព័ត៌មានគម្រោងព័ត៌មានសមាជិកក្រុមព័ត៌មានក្រុម។ ល។","TH": "1. คุณจะไม่สามารถดูข้อมูลใด ๆ ในบัญชีนี้รวมถึงข้อมูลบัญชีบันทึกไฟล์บันทึกการแชทข้อมูลโครงการข้อมูลสมาชิกในทีม ฯลฯ","KO": "1. 계정 정보, 파일 기록, 프로세스 정보, 팀 메시지 정보 등을 포함 하여이 계정의 정보를 볼 수 없습니다.","JA": "1.アカウント情報、ファイルレコード、チャットレコード、プロジェクト情報、チームメンバー情報など、このアカウントで情報を表示できません。"},
|
||||
{"CN": "2、若你是团队的所有者,请在注销您的账户前转移所有权。例如该账户所创建的项目(可将项目移交他人或删除项目)以及文件夹。","EN": "2. If you are the owner of the team, please transfer ownership before cancel your account. For example, the project created by the account (which can be transferred to others or deleted items) and folders.","TC": "2、若你是團隊的所有者,請在註銷您的賬戶前轉移所有權。例如該賬戶所創建的項目(可將項目移交他人或刪除項目)以及文件夾。","KM": "ប្រសិនបើអ្នកជាម្ចាស់ក្រុមសូមផ្ទេរកម្មឯកមុនពេលបោះបង់គណនីរបស់អ្នក។ ឧទាហរណ៍គម្រោងដែលបង្កើតដោយគណនី (ដែលអាចផ្ទេរទៅឱ្យអ្នកដទៃឬធាតុដែលបានលុប) និងថតឯកសារ។","TH": "2. หากคุณเป็นเจ้าของทีมโปรดถ่ายโอนความเป็นเจ้าของก่อนยกเลิกบัญชีของคุณ ตัวอย่างเช่นโครงการที่สร้างขึ้นโดยบัญชี (ซึ่งสามารถถ่ายโอนไปยังผู้อื่นหรือรายการที่ถูกลบ) และโฟลเดอร์","KO": "2. 팀의 소유자 인 경우 계정을 취소하기 전에 소유권을 전송하십시오. 예를 들어, 계정에서 만든 프로젝트 (다른 사람 또는 삭제 된 품목으로 전송할 수 있음) 및 폴더.","JA": "2.チームの所有者である場合は、アカウントをキャンセルする前に所有権を譲渡してください。たとえば、アカウントによって作成されたプロジェクト(他の人または削除されたアイテムに転送できます)およびフォルダー。"},
|
||||
{"CN": "3、您将退出所有群聊,无法查到过往消息和人员。","EN": "3. You will exit all group chats and cannot find past news and personnel.","TC": "3、您將退出所有群聊,無法查到過往消息和人員。","KM": "3. អ្នកនឹងចាកចេញពីការជជែកជាក្រុមទាំងអស់ហើយមិនអាចរកព័ត៌មាននិងបុគ្គលិកពីមុនបានទេ។","TH": "3. คุณจะออกจากการแชทกลุ่มทั้งหมดและไม่พบข่าวและบุคลากรที่ผ่านมา","KO": "3. 모든 그룹 채팅을 종료하고 과거 뉴스와 인사를 찾을 수 없습니다.","JA": "3.すべてのグループチャットを終了し、過去のニュースや人員を見つけることができません。"},
|
||||
{"CN": "4、请保证账号未被暂停使用。","EN": "4. Please ensure that the account is not suspended.","TC": "4、請保證賬號未被暫停使用。","KM": "សូមប្រាកដថាគណនីមិនត្រូវបានផ្អាក។","TH": "4. โปรดตรวจสอบให้แน่ใจว่าบัญชีจะไม่ถูกระงับ","KO": "4. 계정이 해결되지 않았는지 확인하십시오.","JA": "4.アカウントが停止されていないことを確認してください。"},
|
||||
{"CN": "已清楚风险,确定注销","EN": "Clear risk, determine cancellation","TC": "已清楚風險,確定註銷","KM": "ប្រថុយប្រថុយកំណត់ការលុបចោលការលុបចោល","TH": "ความเสี่ยงที่ชัดเจนกำหนดการยกเลิก","KO": "명확한 위험, 취소를 결정하십시오","JA": "明確なリスク、キャンセルを決定します"},
|
||||
{"CN": "账号删除后,该账号将无法正常登录且无法恢复,账号下的所有数据也将被删除。","EN": "After the account is deleted, the account will not be able to log in normally and cannot be restored, and all the data under the account will be deleted.","TC": "賬號刪除後,該賬號將無法正常登錄且無法恢復,賬號下的所有數據也將被刪除。","KM": "បន្ទាប់ពីគណនីត្រូវបានលុបគណនីនឹងមិនអាចចូលជាធម្មតាទេហើយមិនអាចស្តារឡើងវិញបានទេហើយទិន្នន័យទាំងអស់ដែលនៅក្រោមគណនីនឹងត្រូវបានលុបចោល។","TH": "หลังจากลบบัญชีบัญชีจะไม่สามารถเข้าสู่ระบบได้ตามปกติและไม่สามารถกู้คืนได้และข้อมูลทั้งหมดภายใต้บัญชีจะถูกลบ","KO": "계정이 삭제되면 계정은 정상적으로 로그인 할 수없고 복원 할 수 없으며 계정의 모든 데이터가 삭제됩니다.","JA": "アカウントが削除された後、アカウントは正常にログインできず、復元できず、アカウントのすべてのデータが削除されます。"},
|
||||
]
|
||||
})(window)
|
||||
|
||||
155
resources/assets/js/pages/manage/setting/delete.vue
Normal file
155
resources/assets/js/pages/manage/setting/delete.vue
Normal file
@ -0,0 +1,155 @@
|
||||
<template>
|
||||
<div class="setting-item submit">
|
||||
<Form ref="formDatum" :model="formDatum" :rules="ruleDatum" label-width="auto" @submit.native.prevent>
|
||||
<FormItem :label="$L('账号')" prop="email">
|
||||
<div class="setting-email">
|
||||
<Input v-if="isRegVerify == 1" v-model="formDatum.email" :class="count > 0 ? 'setting-send-input':'setting-input'" search @on-search="sendEmailCode" :enter-button="$L(sendBtnText)" :placeholder="$L('请输入邮箱')" />
|
||||
<Input v-else class="setting-input" v-model="formDatum.email" :placeholder="$L('请输入邮箱账号')"/>
|
||||
</div>
|
||||
</FormItem>
|
||||
<FormItem :label="$L('邮箱验证码')" prop="code" v-if="isRegVerify == 1">
|
||||
<Input v-model="formDatum.code" :placeholder="$L('请输入邮箱验证码')"/>
|
||||
</FormItem>
|
||||
<FormItem :label="$L('登录密码')" prop="code" v-else>
|
||||
<Input v-model="formDatum.password" type="password" :placeholder="$L('请输入登录密码')"/>
|
||||
</FormItem>
|
||||
<FormItem :label="$L('删除原因')">
|
||||
<Input v-model="formDatum.reason" type="textarea" :autosize="{minRows: 4,maxRows: 8}" :placeholder="$L('请输入注销原因')"></Input>
|
||||
</FormItem>
|
||||
</Form>
|
||||
<div class="setting-footer">
|
||||
<Button :loading="loadIng > 0" type="primary" @click="submitForm('warning')">{{ $L('提交') }}</Button>
|
||||
<Button :loading="loadIng > 0" @click="resetForm" style="margin-left: 8px">{{ $L('重置') }}</Button>
|
||||
</div>
|
||||
<Modal
|
||||
v-model="warningShow"
|
||||
class="warning-box">
|
||||
<div slot="header">
|
||||
<h3>{{ $L('删除DooTask账号') }}</h3>
|
||||
<div class="big-text">{{ $L('账号删除后,该账号将无法正常登录且无法恢复,账号下的所有数据也将被删除。') }}</div>
|
||||
<div class="small-text">
|
||||
<div>{{ $L('注销前,请确认一下事项:') }}</div>
|
||||
<div>{{ $L('1、您将无法查看该账号内的任何信息,包括账号信息、文件记录、聊天记录、项目信息、团队成员信息等。') }}</div>
|
||||
<div>{{ $L('2、若你是团队的所有者,请在注销您的账户前转移所有权。例如该账户所创建的项目(可将项目移交他人或删除项目)以及文件夹。') }}</div>
|
||||
<div>{{ $L('3、您将退出所有群聊,无法查到过往消息和人员。') }}</div>
|
||||
<div>{{ $L('4、请保证账号未被暂停使用。') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div slot="footer" class="button-box">
|
||||
<Button type="primary" :loading="loadIng > 0" @click="submitForm('confirm')">{{ $L('已清楚风险,确定注销') }}
|
||||
</Button>
|
||||
</div>
|
||||
</Modal>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
loadIng: 0,
|
||||
|
||||
formDatum: {
|
||||
email: '',
|
||||
code: '',
|
||||
reason: '',
|
||||
password: '',
|
||||
},
|
||||
ruleDatum: {},
|
||||
count: 0,
|
||||
isSendButtonShow: true,
|
||||
codeShow: false,
|
||||
isRegVerify: 0,
|
||||
warningShow: false,
|
||||
sendBtnText: ''
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getRegVerify();
|
||||
},
|
||||
methods: {
|
||||
initLanguage() {
|
||||
this.sendBtnText = this.$L('发送验证码')
|
||||
this.ruleDatum = {
|
||||
email: [
|
||||
{
|
||||
validator: (rule, value, callback) => {
|
||||
if (value.trim() === '') {
|
||||
callback(new Error(this.$L('请输入邮箱账号!')));
|
||||
} else if (!$A.isEmail(value.trim())) {
|
||||
callback(new Error(this.$L('请输入正确邮箱账号!')));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
},
|
||||
required: true,
|
||||
trigger: 'change'
|
||||
},
|
||||
],
|
||||
};
|
||||
},
|
||||
sendEmailCode() {
|
||||
if (this.count > 0) {
|
||||
return
|
||||
}
|
||||
this.$store.dispatch("call", {
|
||||
url: 'users/send/email',
|
||||
data: {type: 3, email: this.formDatum.email}
|
||||
}).then(({}) => {
|
||||
this.isSendButtonShow = false;
|
||||
this.count = 120; //赋值120秒
|
||||
let times = setInterval(() => {
|
||||
this.count--; //递减
|
||||
this.sendBtnText = this.count + ' 秒';
|
||||
if (this.count <= 0) {
|
||||
this.sendBtnText = this.$L('发送验证码')
|
||||
clearInterval(times);
|
||||
}
|
||||
}, 1000); //1000毫秒后执行
|
||||
}).catch(({msg}) => {
|
||||
$A.messageError(msg);
|
||||
})
|
||||
},
|
||||
submitForm(type) {
|
||||
this.$refs.formDatum.validate((valid) => {
|
||||
if (valid) {
|
||||
this.loadIng++;
|
||||
this.formDatum.type = type;
|
||||
this.$store.dispatch("call", {
|
||||
url: 'users/delete/account',
|
||||
data: this.formDatum,
|
||||
}).then(({data}) => {
|
||||
if (type === 'warning') {
|
||||
this.warningShow = true;
|
||||
} else {
|
||||
$A.messageSuccess('删除成功');
|
||||
this.warningShow = false;
|
||||
this.$store.dispatch("saveUserInfo", data);
|
||||
this.isSendButtonShow = true;
|
||||
this.$refs.formDatum.resetFields();
|
||||
}
|
||||
}).catch(({msg}) => {
|
||||
$A.modalError(msg);
|
||||
}).finally(_ => {
|
||||
this.loadIng--;
|
||||
});
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
resetForm() {
|
||||
this.$refs.formDatum.resetFields();
|
||||
},
|
||||
|
||||
getRegVerify() {
|
||||
this.$store.dispatch("call", {
|
||||
url: 'system/get/regverify',
|
||||
}).then(({data}) => {
|
||||
this.isRegVerify = data;
|
||||
}).catch(() => {
|
||||
})
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -2,15 +2,10 @@
|
||||
<div class="setting-item submit">
|
||||
<Form ref="formDatum" :model="formDatum" :rules="ruleDatum" label-width="auto" @submit.native.prevent>
|
||||
<FormItem :label="$L('新邮箱地址')" prop="newEmail">
|
||||
<Row>
|
||||
<Col span="6">
|
||||
<Input v-model="formDatum.newEmail"></Input>
|
||||
</Col>
|
||||
<Col span="6" v-if="isRegVerify == 1">
|
||||
<Button v-if="isUpdateShow" @click="sendEmailCode" type="primary">{{ $L('发送验证码') }}</Button>
|
||||
<Button v-if="!isUpdateShow" disabled><span>{{ count }}</span>{{ $L('秒') }}</Button>
|
||||
</Col>
|
||||
</Row>
|
||||
<div class="setting-email">
|
||||
<Input v-if="isRegVerify == 1" v-model="formDatum.newEmail" :class="count > 0 ? 'setting-send-input':'setting-input'" search @on-search="sendEmailCode" :enter-button="$L(sendBtnText)" :placeholder="$L('输入新邮箱地址')" />
|
||||
<Input v-else class="setting-input" v-model="formDatum.newEmail" :placeholder="$L('输入新邮箱地址')"/>
|
||||
</div>
|
||||
</FormItem>
|
||||
<FormItem :label="$L('验证码')" prop="code" v-if="isRegVerify == 1">
|
||||
<Input v-model="formDatum.code" :placeholder="$L('输入邮箱验证码')"/>
|
||||
@ -35,9 +30,9 @@ export default {
|
||||
},
|
||||
ruleDatum: {},
|
||||
count: 0,
|
||||
isUpdateShow: true,
|
||||
codeShow: false,
|
||||
isSendButtonShow: true,
|
||||
isRegVerify: 0,
|
||||
sendBtnText: ''
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
@ -45,6 +40,7 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
initLanguage() {
|
||||
this.sendBtnText = this.$L('发送验证码');
|
||||
this.ruleDatum = {
|
||||
newEmail: [
|
||||
{
|
||||
@ -68,12 +64,13 @@ export default {
|
||||
url: 'users/send/email',
|
||||
data: {type: 2, email: this.formDatum.newEmail}
|
||||
}).then(({}) => {
|
||||
this.isUpdateShow = false;
|
||||
this.isSendButtonShow = false;
|
||||
this.count = 120; //赋值120秒
|
||||
let times = setInterval(() => {
|
||||
this.count--; //递减
|
||||
this.sendBtnText = this.count + ' 秒';
|
||||
if (this.count <= 0) {
|
||||
this.isUpdateShow = true;
|
||||
this.sendBtnText = this.$L('发送验证码')
|
||||
clearInterval(times);
|
||||
}
|
||||
}, 1000); //1000毫秒后执行
|
||||
@ -86,13 +83,13 @@ export default {
|
||||
if (valid) {
|
||||
this.loadIng++;
|
||||
this.$store.dispatch("call", {
|
||||
url: 'users/editemail',
|
||||
url: 'users/edit/email',
|
||||
data: this.formDatum,
|
||||
}).then(({data}) => {
|
||||
$A.messageSuccess('修改成功');
|
||||
this.$store.dispatch("saveUserInfo", data);
|
||||
this.$refs.formDatum.resetFields();
|
||||
this.isUpdateShow = true;
|
||||
this.isSendButtonShow = true;
|
||||
}).catch(({msg}) => {
|
||||
$A.modalError(msg);
|
||||
}).finally(_ => {
|
||||
|
||||
@ -90,10 +90,12 @@ export default {
|
||||
menu.push(...[
|
||||
{path: 'system', name: '系统设置', divided: true},
|
||||
{path: 'logout', name: '退出登录'},
|
||||
{path: 'delete', name: '删除账户'},
|
||||
])
|
||||
} else {
|
||||
menu.push(...[
|
||||
{path: 'logout', name: '退出登录', divided: true},
|
||||
{path: 'delete', name: '删除账户'},
|
||||
])
|
||||
}
|
||||
return menu;
|
||||
|
||||
5
resources/assets/js/routes.js
vendored
5
resources/assets/js/routes.js
vendored
@ -59,6 +59,11 @@ export default [
|
||||
path: 'system',
|
||||
component: () => import('./pages/manage/setting/system.vue'),
|
||||
},
|
||||
{
|
||||
name: 'manage-setting-delete',
|
||||
path: 'delete',
|
||||
component: () => import('./pages/manage/setting/delete.vue'),
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
43
resources/assets/sass/pages/page-setting.scss
vendored
43
resources/assets/sass/pages/page-setting.scss
vendored
@ -260,10 +260,53 @@
|
||||
padding: 16px 24px 0;
|
||||
border-top: 1px solid #F4F4F5;
|
||||
}
|
||||
|
||||
.setting-email {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.setting-input {
|
||||
max-width: 460px;
|
||||
}
|
||||
|
||||
.setting-send-input {
|
||||
max-width: 460px;
|
||||
|
||||
.ivu-input-group-append {
|
||||
background-color: #EDEDED !important;
|
||||
border: 1px solid #EDEDED !important;
|
||||
color: #999 !important;
|
||||
|
||||
&:before {
|
||||
background: #EDEDED;
|
||||
}
|
||||
}
|
||||
}
|
||||
.setting-button {
|
||||
margin-left: 8px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.warning-box {
|
||||
.big-text {
|
||||
margin-top: 10px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.small-text {
|
||||
margin-top: 15px;
|
||||
|
||||
div {
|
||||
margin-top: 10px;
|
||||
}
|
||||
}
|
||||
.button-box {
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.page-setting {
|
||||
.setting-head {
|
||||
|
||||
@ -500,5 +500,35 @@
|
||||
{"CN": "邀请码:注册时需填写下方邀请码。","EN": "Invitation code: You need to fill in the following invitation code when registering.","TC": "邀請碼:註冊時需填寫下方邀請碼。","KM": "លេខកូដលិខិតអញ្ជើញ: អ្នកត្រូវបំពេញលេខកូដលិខិតអញ្ជើញខាងក្រោមនៅពេលចុះឈ្មោះ។","TH": "รหัสเชิญ: คุณต้องกรอกรหัสคำเชิญต่อไปนี้เมื่อลงทะเบียน","KO": "초대 코드 : 등록 할 때 다음 초대 코드를 입력해야합니다.","JA": "招待コード:登録時に次の招待コードを入力する必要があります。"},
|
||||
{"CN": "添加模板","EN": "Add template","TC": "添加模板","KM": "បន្ថែមគំរូ","TH": "เพิ่มเทมเพลต","KO": "템플릿을 추가하십시오","JA": "テンプレートを追加します"},
|
||||
{"CN": "版本","EN": "Version","TC": "版本","KM": "កមបុរក្នា","TH": "รุ่น","KO": "버전","JA": "バージョン"},
|
||||
{"CN": "请输入新邮箱地址","EN": "Please enter the new mailbox address","TC": "請輸入新郵箱地址","KM": "សូមបញ្ចូលអាសយដ្ឋានប្រអប់សំបុត្រថ្មី","TH": "โปรดป้อนที่อยู่กล่องจดหมายใหม่","KO": "새 사서함 주소를 입력하십시오","JA": "新しいメールボックスアドレスを入力してください"},
|
||||
{"CN": "邮箱地址错误","EN": "Email address error","TC": "郵箱地址錯誤","KM": "កំហុសអាសយដ្ឋានអ៊ីមែល","TH": "ข้อผิดพลาดที่อยู่อีเมล","KO": "이메일 주소 오류","JA": "メールアドレスエラー"},
|
||||
{"CN": "不能与旧邮箱一致","EN": "Can't be consistent with the old mailbox","TC": "不能與舊郵箱一致","KM": "មិនអាចត្រូវបានស្របជាមួយនឹងប្រអប់សំបុត្រចាស់","TH": "ไม่สามารถสอดคล้องกับกล่องจดหมายเก่า","KO": "이전 사서함과 일치 할 수 없습니다","JA": "古いメールボックスと一致することはできません"},
|
||||
{"CN": "验证码错误","EN": "Verification code error","TC": "驗證碼錯誤","KM": "កំហុសក្នុងការផ្ទៀងផ្ទាត់លេខកូដ","TH": "ข้อผิดพลาดของรหัสการตรวจสอบ","KO": "Verifin 코드 오류","JA": "検証コードエラー"},
|
||||
{"CN": "验证码已失效","EN": "The verification code has failed","TC": "驗證碼已失效","KM": "លេខកូដផ្ទៀងផ្ទាត់បានបរាជ័យ","TH": "รหัสการยืนยันล้มเหลว","KO": "검증 코드가 실패했습니다","JA": "検証コードは失敗しました"},
|
||||
{"CN": "发送验证码","EN": "Send the verification code","TC": "發送驗證碼","KM": "ផ្ញើកូដផ្ទៀងផ្ទាត់","TH": "ส่งรหัสการยืนยัน","KO": "확인 코드를 보냅니다","JA": "確認コードを送信します"},
|
||||
{"CN": "秒","EN": "Second","TC": "秒","KM": "ដេលរេបីរយចហើយ","TH": "ที่สอง","KO": "섹스","JA": "2番目"},
|
||||
{"CN": "输入邮箱验证码","EN": "Enter the mailbox verification code","TC": "輸入郵箱驗證碼","KM": "បញ្ចូលលេខកូដផ្ទៀងផ្ទាត់ប្រអប់សំបុត្រ","TH": "ป้อนรหัสการยืนยันกล่องจดหมาย","KO": "사서함 확인 코드를 입력하십시오","JA": "メールボックス検証コードを入力します"},
|
||||
{"CN": "新邮箱地址","EN": "New mailbox address","TC": "新郵箱地址","KM": "អាសយដ្ឋានប្រអប់សំបុត្រថ្មី","TH": "ที่อยู่กล่องจดหมายใหม่","KO": "새로운 사서함 주소","JA": "新しいメールボックスアドレス"},
|
||||
{"CN": "请输入新邮箱地址!","EN": "Please enter the new mailbox address!","TC": "請輸入新郵箱地址!","KM": "សូមបញ្ចូលអាសយដ្ឋានប្រអប់សំបុត្រថ្មី!","TH": "กรุณากรอกที่อยู่กล่องจดหมายใหม่!","KO": "새 사서함 주소를 입력하십시오!","JA": "新しいメールボックスアドレスを入力してください!"},
|
||||
{"CN": "请输入正确的邮箱地址!","EN": "Please input the correct email address!","TC": "請輸入正確的郵箱地址!","KM": "សូមបញ្ចូលអាសយដ្ឋានអ៊ីមែលត្រឹមត្រូវ!","TH": "กรุณาป้อนที่อยู่อีเมลที่ถูกต้อง!","KO": "thecorct 이메일 주소를 입력하십시오!","JA": "正しいメールアドレスを入力してください!"},
|
||||
{"CN": "验证码","EN": "Verification code","TC": "驗證碼","KM": "កូដផ្ទៀងផ្ទាត់","TH": "รหัสการตรวจสอบ","KO": "Verifin 코드","JA": "検証コード"},
|
||||
{"CN": "修改邮箱","EN": "Modify the mailbox","TC": "修改郵箱","KM": "កែប្រែប្រអប់សំបុត្រ","TH": "แก้ไขกล่องจดหมาย","KO": "사서함을 수정하십시오","JA": "メールボックスを変更します"},
|
||||
{"CN": "删除账户","EN": "Delete account","TC": "刪除賬戶","KM": "លុបគណនី","TH": "ลบบัญชี","KO": "계정 삭제","JA": "アカウントを削除する"},
|
||||
{"CN": "请输入邮箱账号","EN": "Please enter the mailbox account","TC": "請輸入郵箱賬號","KM": "សូមបញ្ចូលគណនីប្រអប់សំបុត្រ","TH": "กรุณากรอกบัญชีกล่องจดหมาย","KO": "사서함 계정을 입력하십시오","JA": "メールボックスアカウントを入力してください"},
|
||||
{"CN": "邮箱验证码","EN": "E-mail verification code","TC": "郵箱驗證碼","KM": "លេខកូដផ្ទៀងផ្ទាត់អ៊ីមែល","TH": "รหัสตรวจสอบอีเมล","KO": "이메일 Verofice 코드","JA": "電子メール検証コード"},
|
||||
{"CN": "请输入邮箱验证码","EN": "Please enter the mailbox verification code","TC": "請輸入郵箱驗證碼","KM": "សូមបញ្ចូលលេខកូដផ្ទៀងផ្ទាត់ប្រអប់សំបុត្រ","TH": "โปรดป้อนรหัสการยืนยันกล่องจดหมาย","KO": "사서함 확인 코드를 입력하십시오","JA": "メールボックス検証コードを入力してください"},
|
||||
{"CN": "请输入登录密码","EN": "Please enter your password","TC": "請輸入登錄密碼","KM": "សូមបញ្ចូលពាក្យសម្ងាត់របស់អ្នក","TH": "กรุณาใส่รหัสผ่านของคุณ","KO": "비밀번호를 입력하십시오","JA": "パスワードを入力してください"},
|
||||
{"CN": "登录密码","EN": "Login password","TC": "登錄密碼","KM": "បង្អួចបង្អួចចូល","TH": "รหัสผ่านในการเข้าสู่ระบบ","KO": "로그인 비밀번호","JA": "ログインパスワード"},
|
||||
{"CN": "删除原因","EN": "Delete","TC": "刪除原因","KM": "របៅបេលរសច","TH": "ลบ","KO": "삭제","JA": "消去"},
|
||||
{"CN": "请输入注销原因","EN": "Please enter the reason for cancellation","TC": "請輸入註銷原因","KM": "សូមបញ្ចូលហេតុផលសម្រាប់ការលុបចោល","TH": "โปรดป้อนเหตุผลในการยกเลิก","KO": "취소 이유를 입력하십시오","JA": "キャンセルの理由を入力してください"},
|
||||
{"CN": "删除DooTask账号","EN": "Delete Dootask account","TC": "刪除DooTask賬號","KM": "លុបគណនី dootask","TH": "ลบบัญชี dootask","KO": "Dootask 계정을 삭제하십시오","JA": "Dootaskアカウントを削除します"},
|
||||
{"CN": "账号删除后,该账号将无法正常登录且无法恢复,账号下的所有数据也将被删除。'","EN": "After the account is deleted, the account will not be able to log in normally and cannot be restored, and all the data under the account will be deleted. '","TC": "賬號刪除後,該賬號將無法正常登錄且無法恢復,賬號下的所有數據也將被刪除。 '","KM": "បន្ទាប់ពីគណនីត្រូវបានលុបគណនីនឹងមិនអាចចូលជាធម្មតាទេហើយមិនអាចស្តារឡើងវិញបានទេហើយទិន្នន័យទាំងអស់ដែលនៅក្រោមគណនីនឹងត្រូវបានលុបចោល។ ផាប","TH": "หลังจากลบบัญชีบัญชีจะไม่สามารถเข้าสู่ระบบได้ตามปกติและไม่สามารถกู้คืนได้และข้อมูลทั้งหมดภายใต้บัญชีจะถูกลบ '","KO": "계정이 삭제되면 계정은 정상적으로 로그인 할 수없고 복원 할 수 없으며 계정의 모든 데이터가 삭제됩니다. '","JA": "アカウントが削除された後、アカウントは正常にログインできず、復元できず、アカウントのすべてのデータが削除されます。 '"},
|
||||
{"CN": "注销前,请确认一下事项:","EN": "Before canceling, please confirm the matters:","TC": "註銷前,請確認一下事項:","KM": "មុនពេលបោះបង់សូមបញ្ជាក់ពីបញ្ហា:","TH": "ก่อนยกเลิกโปรดยืนยันเรื่อง:","KO": "Canceeling 전에 문제를 확인하십시오.","JA": "キャンセルする前に、問題を確認してください:"},
|
||||
{"CN": "1、您将无法查看该账号内的任何信息,包括账号信息、文件记录、聊天记录、项目信息、团队成员信息等。","EN": "1. You will not be able to view any information in this account, including account information, file records, chat records, project information, team member information, etc.","TC": "1、您將無法查看該賬號內的任何信息,包括賬號信息、文件記錄、聊天記錄、項目信息、團隊成員信息等。","KM": "1. អ្នកនឹងមិនអាចមើលព័ត៌មានណាមួយនៅក្នុងគណនីនេះរួមមានព័ត៌មានគណនីកំណត់ត្រាឯកសារកំណត់ត្រាជជែកឯកសារព័ត៌មានគម្រោងព័ត៌មានសមាជិកក្រុមព័ត៌មានក្រុម។ ល។","TH": "1. คุณจะไม่สามารถดูข้อมูลใด ๆ ในบัญชีนี้รวมถึงข้อมูลบัญชีบันทึกไฟล์บันทึกการแชทข้อมูลโครงการข้อมูลสมาชิกในทีม ฯลฯ","KO": "1. 계정 정보, 파일 기록, 프로세스 정보, 팀 메시지 정보 등을 포함 하여이 계정의 정보를 볼 수 없습니다.","JA": "1.アカウント情報、ファイルレコード、チャットレコード、プロジェクト情報、チームメンバー情報など、このアカウントで情報を表示できません。"},
|
||||
{"CN": "2、若你是团队的所有者,请在注销您的账户前转移所有权。例如该账户所创建的项目(可将项目移交他人或删除项目)以及文件夹。","EN": "2. If you are the owner of the team, please transfer ownership before cancel your account. For example, the project created by the account (which can be transferred to others or deleted items) and folders.","TC": "2、若你是團隊的所有者,請在註銷您的賬戶前轉移所有權。例如該賬戶所創建的項目(可將項目移交他人或刪除項目)以及文件夾。","KM": "ប្រសិនបើអ្នកជាម្ចាស់ក្រុមសូមផ្ទេរកម្មឯកមុនពេលបោះបង់គណនីរបស់អ្នក។ ឧទាហរណ៍គម្រោងដែលបង្កើតដោយគណនី (ដែលអាចផ្ទេរទៅឱ្យអ្នកដទៃឬធាតុដែលបានលុប) និងថតឯកសារ។","TH": "2. หากคุณเป็นเจ้าของทีมโปรดถ่ายโอนความเป็นเจ้าของก่อนยกเลิกบัญชีของคุณ ตัวอย่างเช่นโครงการที่สร้างขึ้นโดยบัญชี (ซึ่งสามารถถ่ายโอนไปยังผู้อื่นหรือรายการที่ถูกลบ) และโฟลเดอร์","KO": "2. 팀의 소유자 인 경우 계정을 취소하기 전에 소유권을 전송하십시오. 예를 들어, 계정에서 만든 프로젝트 (다른 사람 또는 삭제 된 품목으로 전송할 수 있음) 및 폴더.","JA": "2.チームの所有者である場合は、アカウントをキャンセルする前に所有権を譲渡してください。たとえば、アカウントによって作成されたプロジェクト(他の人または削除されたアイテムに転送できます)およびフォルダー。"},
|
||||
{"CN": "3、您将退出所有群聊,无法查到过往消息和人员。","EN": "3. You will exit all group chats and cannot find past news and personnel.","TC": "3、您將退出所有群聊,無法查到過往消息和人員。","KM": "3. អ្នកនឹងចាកចេញពីការជជែកជាក្រុមទាំងអស់ហើយមិនអាចរកព័ត៌មាននិងបុគ្គលិកពីមុនបានទេ។","TH": "3. คุณจะออกจากการแชทกลุ่มทั้งหมดและไม่พบข่าวและบุคลากรที่ผ่านมา","KO": "3. 모든 그룹 채팅을 종료하고 과거 뉴스와 인사를 찾을 수 없습니다.","JA": "3.すべてのグループチャットを終了し、過去のニュースや人員を見つけることができません。"},
|
||||
{"CN": "4、请保证账号未被暂停使用。","EN": "4. Please ensure that the account is not suspended.","TC": "4、請保證賬號未被暫停使用。","KM": "សូមប្រាកដថាគណនីមិនត្រូវបានផ្អាក។","TH": "4. โปรดตรวจสอบให้แน่ใจว่าบัญชีจะไม่ถูกระงับ","KO": "4. 계정이 해결되지 않았는지 확인하십시오.","JA": "4.アカウントが停止されていないことを確認してください。"},
|
||||
{"CN": "已清楚风险,确定注销","EN": "Clear risk, determine cancellation","TC": "已清楚風險,確定註銷","KM": "ប្រថុយប្រថុយកំណត់ការលុបចោលការលុបចោល","TH": "ความเสี่ยงที่ชัดเจนกำหนดการยกเลิก","KO": "명확한 위험, 취소를 결정하십시오","JA": "明確なリスク、キャンセルを決定します"},
|
||||
{"CN": "账号删除后,该账号将无法正常登录且无法恢复,账号下的所有数据也将被删除。","EN": "After the account is deleted, the account will not be able to log in normally and cannot be restored, and all the data under the account will be deleted.","TC": "賬號刪除後,該賬號將無法正常登錄且無法恢復,賬號下的所有數據也將被刪除。","KM": "បន្ទាប់ពីគណនីត្រូវបានលុបគណនីនឹងមិនអាចចូលជាធម្មតាទេហើយមិនអាចស្តារឡើងវិញបានទេហើយទិន្នន័យទាំងអស់ដែលនៅក្រោមគណនីនឹងត្រូវបានលុបចោល។","TH": "หลังจากลบบัญชีบัญชีจะไม่สามารถเข้าสู่ระบบได้ตามปกติและไม่สามารถกู้คืนได้และข้อมูลทั้งหมดภายใต้บัญชีจะถูกลบ","KO": "계정이 삭제되면 계정은 정상적으로 로그인 할 수없고 복원 할 수 없으며 계정의 모든 데이터가 삭제됩니다.","JA": "アカウントが削除された後、アカウントは正常にログインできず、復元できず、アカウントのすべてのデータが削除されます。"},
|
||||
]
|
||||
})(window)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user