no message

This commit is contained in:
kuaifan
2023-07-29 18:14:48 +08:00
parent 9ea1fa6df7
commit b4bf8304ec
23 changed files with 335 additions and 79 deletions
+1
View File
@@ -36,6 +36,7 @@ class AutoArchivedTask extends AbstractTask
->whereNull('archived_at')
->take(100)
->get();
/** @var ProjectTask $task */
foreach ($taskLists AS $task) {
$task->archivedTask(Carbon::now(), true);
}
+19
View File
@@ -1282,3 +1282,22 @@ AI机器人
暂不支持粘贴文件夹。
暂不支持拖拽文件夹,请手动上传文件夹。
暂不支持粘贴文件夹,请手动上传文件夹。
最近
暂无结果
新项目负责人
恢复帐号(已离职)
你确定恢复已离职帐号【(*)】吗?(注:此操作仅恢复帐号状态,无法恢复操作离职时移交的数据)
流转到【(*)】时改变任务负责人为状态负责人(并保留操作状态的人员),原本的任务负责人移至协助人员。
删除文件夹
你确定要删除【(*)】文件夹吗?
请输入新的密码
请输入新的邮箱((*))
截图快捷键
新项目负责人
暂无结果
最近
加班
离职申请
录用申请
+198
View File
@@ -17169,5 +17169,203 @@
"de": "Ja, guck dir ein date in cookies arsch an",
"fr": "Voir la sessionKey dans les cookies est",
"id": "Periksa kunci sesi pada Cookie"
},
{
"key": "暂不支持拖拽文件夹。",
"zh": "",
"zh-CHT": "暫不支持拖拽文件夾。",
"en": "Drag-and-drop folders are not supported.",
"ko": "폴더 끌기는 지원되지 않습니다.",
"ja": "フォルダのドラッグ・ドロップには対応していません。",
"de": "Es wird niemandem helfen, den ordner zu ziehen",
"fr": "Les dossiers de glisser-déposer ne sont pas pris en charge.",
"id": "Tak akan menarik folder."
},
{
"key": "暂不支持粘贴文件夹。",
"zh": "",
"zh-CHT": "暫不支持粘貼文件夾。",
"en": "It does not support pasting folders.",
"ko": "폴더 붙여넣기는 지원되지 않습니다.",
"ja": "フォルダの貼り付けには対応していません。",
"de": "Tragt den ordner nicht ein",
"fr": "Les dossiers coller ne sont pas supportés pour le moment.",
"id": "Tak akan meminta penundaan folder."
},
{
"key": "暂不支持拖拽文件夹,请手动上传文件夹。",
"zh": "",
"zh-CHT": "暫不支持拖拽文件夾,請手動上傳文件夾。",
"en": "Dragging and dropping folders is not supported, please upload folders manually.",
"ko": "폴더를 끌어 올리는 것은 지원되지 않습니다. 폴더를 업로드하십시오.",
"ja": "フォルダをドラッグ&ドロップに対応していませんので、手動でフォルダをアップロードしてください。",
"de": "Ordner abschleppen unterstützt nicht; bitte diesen ordner manuell hochladen",
"fr": "Les dossiers de glisser-déposer ne sont pas pris en charge pour le moment. Veuillez télécharger les dossiers manuellement.",
"id": "Tak ada dukungan pada folder penarik, upload secara manual."
},
{
"key": "暂不支持粘贴文件夹,请手动上传文件夹。",
"zh": "",
"zh-CHT": "暫不支持粘貼文件夾,請手動上傳文件夾。",
"en": "It does not support pasting folders. Please upload folders manually.",
"ko": "폴더 붙여넣기는 지원되지 않습니다. 폴더 업로드하십시오.",
"ja": "フォルダの貼り付けには対応していませんので、手動でフォルダをアップロードしてください。",
"de": "Den ordner zum einfügen nicht unterstützen; bitte diesen manuell hochladen",
"fr": "Le dossier coller n’est pas pris en charge pour le moment. Veuillez télécharger le dossier manuellement.",
"id": "Tak ada folder tempel yang didukung, unggah secara manual."
},
{
"key": "最近",
"zh": "",
"zh-CHT": "最近",
"en": "Lately",
"ko": "최근",
"ja": "最近です",
"de": "Erst kürzlich",
"fr": "La récente",
"id": "Baru-baru ini"
},
{
"key": "暂无结果",
"zh": "",
"zh-CHT": "暫無結果",
"en": "No result yet",
"ko": "아직 결과가 없다.",
"ja": "まだ結果はありません",
"de": "Vom tisch.",
"fr": "Pas encore de résultats",
"id": "Tidak ada hasil."
},
{
"key": "新项目负责人",
"zh": "",
"zh-CHT": "新項目負責人",
"en": "New project leader",
"ko": "새 프로젝트 책임자",
"ja": "新しいプロジェクトリーダーです",
"de": "Neuer projektleiter.",
"fr": "Nouveau chef de projet",
"id": "Direktur proyek baru"
},
{
"key": "恢复帐号(已离职)",
"zh": "",
"zh-CHT": "恢復帳號(已離職)",
"en": "Restore Account (Retired)",
"ko": "계정 복원 (이미 종료됨)",
"ja": "アカウント復旧(退職しました)",
"de": "Reaktivieren sie den account wieder",
"fr": "Récupération de compte (quittée)",
"id": "Kembalikan akun (tidak aktif)"
},
{
"key": "你确定恢复已离职帐号【(*)】吗?(注:此操作仅恢复帐号状态,无法恢复操作离职时移交的数据)",
"zh": "",
"zh-CHT": "你確定恢復已離職帳號【(*)】嗎?(注:此操作僅恢復帳號狀態,無法恢復操作離職時移交的數據)",
"en": "Are you sure to restore the departed account [(*)]? (Note: This operation only restores the account status and cannot restore the data transferred when the operation is terminated.)",
"ko": "이직한 계정 [(*)]을 복원하시겠습니까?(주:이 작업은 계정 상태만 복구할 수 있습니다. 작업이 중단되었을 때 전송된 데이터는 복구할 수 없습니다)",
"ja": "退職したアカウント【(*)】の復旧は確実ですか?(注:この作業はアカウントの復旧のみであり、作業終了時に移管したデータの復旧はできません)",
"de": "Sind sie sicher, dass sie alles wieder eingestellt haben? Dies stellt nur die rufnummer wieder ein; keine wiederherstellung der im gang befindlichen daten",
"fr": "Êtes-vous sûr de récupérer un compte sortant [(*)]? (remarque: cette opération ne permet que de restaurer l’état du compte, les données transférées lors du départ de l’opération ne peuvent pas être récupérées)",
"id": "Apakah anda yakin telah kembali akun yang tidak aktif ((*)? (catatan: operasi ini hanya mengembalikan status akun dan tidak dapat mengembalikan data yang diserahkan saat operasi meninggalkan)"
},
{
"key": "流转到【(*)】时改变任务负责人为状态负责人(并保留操作状态的人员),原本的任务负责人移至协助人员。",
"zh": "",
"zh-CHT": "流轉到【(*)】時改變任務負責人爲狀態負責人(並保留操作狀態的人員),原本的任務負責人移至協助人員。",
"en": "When transferring to [(*)], the task leader is changed to the status leader (and the operational status person is retained), and the original task leader is moved to the assistance person.",
"ko": "【(*)】로 이전할 때 임무책임자는 상태책임자 (동시에 조작상태를 보류한 인원)로 변경되며 원래의 임무책임자는 협조인원으로 이전된다.",
"ja": "【(*)】に流れた時点でタスクの責任者を状態責任者(作業状態を保持している人)に変更し、元のタスクの責任者をサポートスタッフに移します。",
"de": "Nach der umleitung zu [*] ändert sich der dienstleiter zum dienstleiter (der auch diesen bereitschaftsstatus behalten hat), so dass der ursprüngliche controller zu einem helfer umgeleitet wird.",
"fr": "Lorsque le flux passe à [(*)], le chef de mission devient le chef d’état (et la personne qui conserve le statut opérationnel), le chef de mission d’origine passe à l’assistant.",
"id": "Ubah direktur misi menjadi pemimpin negara (dan tetap memegang status operasional) ketika petugas yang bertugas dipindahkan ke asisten."
},
{
"key": "删除文件夹",
"zh": "",
"zh-CHT": "刪除文件夾",
"en": "Delete folder",
"ko": "폴더 지우기",
"ja": "フォルダを削除します",
"de": "Ordner löschen",
"fr": "Supprimer un dossier",
"id": "Hapus folder"
},
{
"key": "你确定要删除【(*)】文件夹吗?",
"zh": "",
"zh-CHT": "你確定要刪除【(*)】文件夾嗎?",
"en": "Are you sure you want to delete the [(*)] folder?",
"ko": "[(*)] 폴더를 정말로 삭제하시겠습니까?",
"ja": "【(*)】フォルダを削除しますか?",
"de": "Möchten sie wirklich (*) den ordner löschen?",
"fr": "Êtes-vous sûr de vouloir supprimer le dossier [(*)]?",
"id": "Apakah anda yakin ingin menghapus folder [*]?"
},
{
"key": "请输入新的密码",
"zh": "",
"zh-CHT": "請輸入新的密碼",
"en": "Please enter a new password",
"ko": "새 비밀번호를 입력하십시오",
"ja": "新しいパスワードをお願いします。",
"de": "Bitte geben sie ein neues passwort ein",
"fr": "Veuillez entrer un nouveau mot de passe",
"id": "Password baru, silakan"
},
{
"key": "请输入新的邮箱((*))",
"zh": "",
"zh-CHT": "請輸入新的郵箱((*))",
"en": "Please enter a new email ((*))",
"ko": "새 편지함을 입력하십시오 (*)",
"ja": "新しいメールアドレス((*))をお願いします。",
"de": "Bitte geben sie einen neuen briefkasten ein",
"fr": "Veuillez entrer un nouvel email ((*))",
"id": "Silahkan masukkan email baru (*)"
},
{
"key": "截图快捷键",
"zh": "",
"zh-CHT": "截圖快捷鍵",
"en": "Screenshot shortcut",
"ko": "스크린샷 단축키",
"ja": "スクリーンショットショートカットキーです",
"de": "Fahre den kurzbefehl ab",
"fr": "Raccourcis pour captures d’écran",
"id": "Shortcut screenshot"
},
{
"key": "加班",
"zh": "",
"zh-CHT": "加班",
"en": "Overtime",
"ko": "초과 근무",
"ja": "残業",
"de": "Überstunden.",
"fr": "Les heures supplémentaires",
"id": "Kerja lembur."
},
{
"key": "离职申请",
"zh": "",
"zh-CHT": "離職申請",
"en": "Resignation application",
"ko": "이직 신청",
"ja": "退職願いです",
"de": "Eine freistellung beantragen.",
"fr": "Demande de départ",
"id": "Tinggalkan aplikasi"
},
{
"key": "录用申请",
"zh": "",
"zh-CHT": "錄用申請",
"en": "Application for employment",
"ko": "채용 지원서",
"ja": "採用申し込みです",
"de": "Wir nehmen die bewerbung an.",
"fr": "Demande d’offre",
"id": "Aplikasi untuk diterima"
}
]
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
if(typeof window.LANGUAGE_DATA==="undefined")window.LANGUAGE_DATA={};window.LANGUAGE_DATA["zh"]=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""]
if(typeof window.LANGUAGE_DATA==="undefined")window.LANGUAGE_DATA={};window.LANGUAGE_DATA["zh"]=["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""]
+4 -9
View File
@@ -175,15 +175,10 @@ $A.execMainCacheJudge = (key) => {
// 绑定截图快捷键
$A.bindScreenshotKey = (data) => {
let key = "";
let screenshot_key = (data.screenshot_key || "").trim().toLowerCase()
if (screenshot_key && (data.screenshot_mate || data.screenshot_shift)) {
if (data.screenshot_mate) {
key = /macintosh|mac os x/i.test(navigator.userAgent) ? 'command' : 'ctrl'
}
if (data.screenshot_shift) {
key = `${key ? `${key}+` : ''}shift`
}
key = `${key}+${screenshot_key.toLowerCase()}`
const screenshot_key = (data.screenshot_key || "").trim().toLowerCase()
if (screenshot_key) {
key = /macintosh|mac os x/i.test(navigator.userAgent) ? 'command' : 'ctrl'
key = `${key}+shift+${screenshot_key.toLowerCase()}`
}
$A.Electron.sendMessage('bindScreenshotKey', {key});
};
@@ -7,7 +7,7 @@
@touchstart="onTouchstart"
@touchmove="onTouchmove">
<UserAvatar :userid="userid" :size="40" show-name :name-text="title"/>
<div class="notification-desc">{{desc}}</div>
<div class="notification-desc no-dark-content">{{desc}}</div>
</div>
</transition>
</template>
+28 -9
View File
@@ -1,5 +1,5 @@
<template>
<div v-show="userId > 0" class="page-manage" :class="{'show-tabbar': showMobileTabbar}">
<div class="page-manage" :class="{'show-tabbar': showMobileTabbar, 'not-logged': userId <= 0}">
<div class="manage-box-menu" :class="{'show-mobile-menu': showMobileMenu}">
<Dropdown
class="page-manage-menu-dropdown main-menu"
@@ -903,14 +903,33 @@ export default {
shortcutEvent(e) {
if (e.metaKey || e.ctrlKey) {
if (e.keyCode === 74) {
e.preventDefault();
this.onAddMenu('createMeeting')
} else if (e.keyCode === 75 || e.keyCode === 78) {
e.preventDefault();
this.onAddMenu('task')
} else if (e.keyCode === 83 && this.$refs.taskModal.checkUpdate()) {
e.preventDefault();
switch (e.keyCode) {
case 66: // B - 新建项目
e.preventDefault();
this.onAddShow()
break;
case 74: // J - 新会议
e.preventDefault();
this.onAddMenu('createMeeting')
break;
case 75:
case 78: // K/N - 加入会议
e.preventDefault();
this.onAddMenu('task')
break;
case 83: // S - 保存任务
if (this.$refs.taskModal.checkUpdate()) {
e.preventDefault();
}
break;
case 188: // , - 进入设置
e.preventDefault();
this.toggleRoute('setting')
break;
}
}
},
@@ -1,6 +1,6 @@
<template>
<div class="dialog-respond">
<div class="respond-title"><em>{{respondData.symbol}}</em>{{$L('回应详情')}} ({{respondData.userids.length}})</div>
<div class="respond-title"><em class="no-dark-content">{{respondData.symbol}}</em>{{$L('回应详情')}} ({{respondData.userids.length}})</div>
<div class="respond-user">
<ul>
@@ -1129,7 +1129,7 @@ export default {
},
windowScrollY(val) {
if ($A.isIos()) {
if ($A.isIos() && !this.$slots.head) {
const {tail} = this.scrollInfo();
this.navStyle = {
marginTop: val + 'px'
@@ -650,7 +650,7 @@ export default {
disableOptions: {
shortcuts: [
{
text: this.$L('12:00'),
text: '12:00',
value () {
return $A.Date($A.formatDate("Y-m-d 12:00:00"));
},
@@ -659,7 +659,7 @@ export default {
}
},
{
text: this.$L('17:00'),
text: '17:00',
value () {
return $A.Date($A.formatDate("Y-m-d 17:00:00"));
},
@@ -668,7 +668,7 @@ export default {
}
},
{
text: this.$L('18:00'),
text: '18:00',
value () {
return $A.Date($A.formatDate("Y-m-d 18:00:00"));
},
@@ -677,7 +677,7 @@ export default {
}
},
{
text: this.$L('19:00'),
text: '19:00',
value () {
return $A.Date($A.formatDate("Y-m-d 19:00:00"));
},
@@ -1,10 +1,10 @@
<template>
<div class="page-setting">
<PageTitle :title="$L(titleNameRoute)"/>
<PageTitle :title="titleNameRoute"/>
<div class="setting-head">
<div class="setting-titbox">
<div class="setting-title">
<h1>{{$L(settingTitleName)}}</h1>
<h1>{{settingTitleName}}</h1>
<div v-if="!showMobileBox" class="setting-more" @click="toggleRoute('index')">
<Icon type="md-close" />
</div>
@@ -33,7 +33,7 @@
</ul>
</div>
<div class="setting-content">
<div class="setting-content-title">{{$L(titleNameRoute)}}</div>
<div class="setting-content-title">{{titleNameRoute}}</div>
<div class="setting-content-view">
<router-view class="setting-router-view"></router-view>
</div>
@@ -72,15 +72,15 @@ export default {
menu() {
const menu = [
{path: 'personal', name: '个人设置'},
{path: 'checkin', name: '签到设置', desc: ' (Beta)'},
{path: 'language', name: '语言设置'},
{path: 'theme', name: '主题设置'},
{path: 'password', name: '密码设置'},
{path: 'email', name: '修改邮箱'},
{path: 'checkin', name: '签到设置', desc: ' (Beta)'},
{path: 'language', name: '语言设置', divided: true},
{path: 'theme', name: '主题设置'},
]
if (this.$Electron) {
menu.splice(2, 0, {path: 'keyboard', name: '快捷键', desc: ' (Beta)'})
menu.push({path: 'keyboard', name: '键盘设置', desc: ' (Beta)'})
}
if ($A.isDooServer() && this.$isEEUiApp) {
@@ -93,7 +93,7 @@ export default {
if (this.userIsAdmin) {
menu.push(...[
{path: 'system', name: '系统设置', divided: true},
{path: 'approve', name: this.$L('审批设置'), desc: ' (Beta)'},
{path: 'approve', name: '审批设置', desc: ' (Beta)'},
{path: 'license', name: 'License Key'},
])
}
@@ -109,18 +109,18 @@ export default {
let name = '';
menu.some((item) => {
if (routeName === `manage-setting-${item.path}`) {
name = `${item.name}${item.desc||''}`;
name = `${this.$L(item.name)}${item.desc||''}`;
return true;
}
})
return name || '设置';
return name || this.$L('设置');
},
settingTitleName() {
if (this.windowPortrait) {
return this.titleNameRoute
}
return '设置'
return this.$L('设置')
},
},
@@ -1,19 +1,34 @@
<template>
<div class="setting-item submit">
<Form ref="formData" :model="formData" :rules="ruleData" label-width="auto" @submit.native.prevent>
<FormItem :label="$L('截图快捷键')" prop="screenshot">
<FormItem :label="$L('截图快捷键')" prop="screenshot_key">
<div class="input-box">
<Checkbox v-model="formData.screenshot_mate">{{mateName}}</Checkbox>
<div class="input-box-push">+</div>
<Checkbox v-model="formData.screenshot_shift">Shift</Checkbox>
<div class="input-box-push">+</div>
<Input class="input-box-key" :disabled="screenshotDisabled" :value="formData.screenshot_key" @on-keydown="onKeydown" :maxlength="1"/>
{{mateName}}<div class="input-box-push">+</div>Shift<div class="input-box-push">+</div><Input class="input-box-key" v-model="formData.screenshot_key" :maxlength="2"/>
</div>
</FormItem>
<FormItem :label="$L('新建项目')">
<div class="input-box">
{{mateName}}<div class="input-box-push">+</div>B
</div>
</FormItem>
<FormItem :label="$L('新建任务')">
<div class="input-box">
{{mateName}}<div class="input-box-push">+</div>N (K)
</div>
</FormItem>
<FormItem :label="$L('新会议')">
<div class="input-box">
{{mateName}}<div class="input-box-push">+</div>J
</div>
</FormItem>
<FormItem :label="$L('设置')">
<div class="input-box">
{{mateName}}<div class="input-box-push">+</div>,
</div>
<div v-if="screenshotDisabled" class="form-tip red">{{$L('至少选择一个功能键!')}}</div>
</FormItem>
</Form>
<div class="setting-footer">
<Button :loading="loadIng > 0" :disabled="screenshotDisabled" type="primary" @click="submitForm">{{$L('保存')}}</Button>
<Button :loading="loadIng > 0" type="primary" @click="submitForm">{{$L('保存')}}</Button>
<Button :loading="loadIng > 0" @click="resetForm" style="margin-left: 8px">{{$L('重置')}}</Button>
</div>
</div>
@@ -28,7 +43,7 @@
padding: 0 12px 0 8px;
}
.input-box-key {
width: 80px;
width: 60px;
}
}
</style>
@@ -42,12 +57,28 @@ export default {
formData: {
screenshot_mate: true,
screenshot_shift: true,
screenshot_key: '',
},
ruleData: { },
ruleData: {
screenshot_key: [
{
validator: (rule, value, callback) => {
value = value.trim();
value = value.substring(value.length - 1)
if (value && !/^[A-Za-z0-9]?$/.test(value)) {
callback(new Error(this.$L('只能输入字母或数字')));
} else {
callback();
}
this.$nextTick(_ => {
this.$set(this.formData, rule.field, value.toUpperCase())
})
},
trigger: 'change'
},
],
},
}
},
@@ -55,17 +86,9 @@ export default {
this.initData();
},
computed: {
screenshotDisabled() {
return !this.formData.screenshot_mate && !this.formData.screenshot_shift;
}
},
methods: {
initData() {
this.formData = Object.assign({
screenshot_mate: true,
screenshot_shift: true,
screenshot_key: '',
}, $A.jsonParse(window.localStorage.getItem("__keyboard:data__")) || {});
//
@@ -84,6 +107,7 @@ export default {
submitForm() {
this.$refs.formData.validate((valid) => {
if (valid) {
console.log(this.formData);
window.localStorage.setItem("__keyboard:data__", $A.jsonStringify(this.formData));
$A.bindScreenshotKey(this.formData);
$A.messageSuccess('保存成功');
+5 -13
View File
@@ -951,8 +951,8 @@
> li {
list-style: none;
display: flex;
align-items: center;
padding: 2px 7px;
align-items: flex-start;
padding: 2px 8px;
margin-top: 6px;
margin-right: 8px;
border-radius: 14px;
@@ -971,17 +971,7 @@
}
.emoji-users {
position: relative;
padding-left: 14px;
&:before {
position: absolute;
content: "";
left: 7px;
top: 5px;
bottom: 5px;
width: 1px;
transform: scaleX(0.5);
background-color: rgba(#818181, 0.5);
}
padding-left: 6px;
> ul {
display: flex;
flex-wrap: wrap;
@@ -992,6 +982,8 @@
list-style: none;
color: #818181;
font-size: 12px;
height: 22px;
line-height: 22px;
&.bold {
font-weight: 600;
}
+8
View File
@@ -5,6 +5,14 @@
right: 0;
bottom: 0;
display: flex;
&.not-logged {
.manage-box-menu {
display: none;
}
.manage-box-main {
display: none;
}
}
.manage-box-menu {
position: relative;
flex-grow: 0;