You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ocr-web/src/layout/components/Header/ShortcutModal.vue

319 lines
7.6 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<script lang="ts" setup>
import { defineOptions, ref } from "vue";
defineOptions({ name: "ShortcutModal" });
const show = ref(false);
const cardStyle = {
"width": "800px",
"--n-padding-bottom": "10px",
"--n-padding-left": "10px",
"padding-bottom": "100px",
};
function showModal() {
show.value = true;
}
function closeModal() {
show.value = false;
}
defineExpose({
showModal,
});
</script>
<template>
<div>
<n-modal
v-model:show="show"
transform-origin="center"
style="width: 808px; height: 606px; margin: -27px auto 0 !important"
>
<n-card
:style="cardStyle"
:bordered="false"
size="huge"
role="dialog"
aria-modal="true"
>
<div class="wrapper">
<div class="wrapper-header">
<span class="wrapper-left">全局快捷键</span>
<div class="wrapper-right">
<img
class="img-question"
src="@/assets/images/question.png"
alt=""
style="width: 18px; height: 18px"
>查看快捷键的信息
<img
class="img-close"
src="@/assets/images/close.png"
alt=""
style="width: 20px; height: 20px"
@click="closeModal"
>
</div>
</div>
<n-divider style="margin-bottom: 32px" />
<div class="title">
全局快捷方式
</div>
<div class="wrapper-global">
<table style="margin-left: 47px; width: 180px">
<tr>
<td><div class="key" data-key="g h" /></td>
<td>进入一键查看主页</td>
</tr>
<tr>
<td><div class="key" data-key="g t" /></td>
<td>进入任务审批主页</td>
</tr>
<tr>
<td><div class="key" data-key="g a" /></td>
<td>进入AI工单主页</td>
</tr>
<tr>
<td><div class="key" data-key="g e" /></td>
<td>进入任务终审主页</td>
</tr>
<tr>
<td><div class="key" data-key="n r" /></td>
<td>快速打开备忘录</td>
</tr>
<tr>
<td><div class="key" data-key="n t" /></td>
<td>新建筛选过滤条件</td>
</tr>
<tr>
<td><div class="key" data-key="n n" /></td>
<td>打开可疑文件夹</td>
</tr>
</table>
<table style="height: 30%; margin-left: 180px">
<tr>
<td><div class="key" data-key="[" /></td>
<td>隐藏/显示当前场景左侧筛选区</td>
</tr>
<tr>
<td><div class="key" data-key="s" /></td>
<td>打开当前场景搜索</td>
</tr>
<tr>
<td><div class="key" data-key="/" /></td>
<td>顶部综合搜索</td>
</tr>
<tr>
<td><div class="key" data-key="esc" /></td>
<td>从字段中取消光标聚集</td>
</tr>
<tr>
<td><div class="key" data-key="mm" /></td>
<td>唤醒AI智能助理对话框</td>
</tr>
</table>
</div>
<n-divider style="margin: 24px 24px 32px 24px; color: #d9d9d9" />
<div class="title" style="margin-top: -16.5px">
任务审批/任务终审/AI工单明细动作
</div>
<div class="wrapper-request">
<table style="margin-left: 47px; width: 180px">
<tr>
<td style="text-align: left; width: 53px">
<div class="key" data-key="p p" />
</td>
<td>通过</td>
</tr>
<tr>
<td style="text-align: left">
<div class="key" data-key="x x" />
</td>
<td>不通过</td>
</tr>
</table>
<table style="margin-left: 180px">
<tr>
<td><div class="key" data-key="c" /></td>
<td>关闭关闭当前场景弹窗</td>
</tr>
<tr>
<td>
<div class="key" data-key="&larr;" />
<span>/</span>
<div class="key" data-key="&rarr;" />
</td>
<td>打开上一条/下一条信息切换</td>
</tr>
</table>
</div>
</div>
<!-- <n-divider /> -->
<!-- <template #footer>
<div class="wrapper-footer">
<n-button type="info" @click="closeModal">
</n-button>
<n-button secondary style="margin-left:15px" @click="closeModal">
</n-button>
</div>
</template> -->
</n-card>
</n-modal>
</div>
</template>
<style lang="less" scoped>
.wrapper-footer {
margin-top: -20px;
}
.wrapper {
.wrapper-header {
padding: 14px 0 14px 0;
padding-bottom: 0;
}
.img-question {
width: 16px;
height: 16px;
margin: 0 2px;
}
.img-close {
width: 16px;
height: 16px;
margin-left: 16px;
cursor: pointer;
}
.wrapper-right {
font-size: 16px;
font-family: PingFang SC, PingFang SC-Regular;
font-weight: 400;
text-align: left;
color: #666666;
line-height: 22px;
display: flex;
align-items: center;
}
.wrapper-left {
font-size: 18px;
font-family: PingFang SC, PingFang SC-Medium;
font-weight: 600;
text-align: left;
color: #000000;
line-height: 25px;
}
.title {
font-size: 14px;
font-weight: 600;
margin-bottom: 10px;
padding-left: 47px;
color: #333333;
font-weight: 600;
// 分割线自带24px间距
}
&-header {
display: flex;
justify-content: space-between;
&-left {
font-weight: bold;
font-size: 16px;
}
&-right {
display: inline-flex;
}
&-close {
width: 18px;
height: 18px;
cursor: pointer;
}
&-mark {
display: inline-block;
width: 16px;
height: 16px;
border: 2px solid red;
color: red;
border-radius: 50%;
}
&-icon {
background: #fff;
display: inline-block;
width: 18px;
height: 1px;
transform: rotate(45deg);
-webkit-transform: rotate(45deg);
&:after {
content: "";
display: block;
width: 18px;
height: 1px;
background: #fff;
transform: rotate(-90deg);
-webkit-transform: rotate(-90deg);
}
}
}
&-request,
&-global {
display: flex;
table {
tr td:first-child {
text-align: right;
padding-right: 10px;
color: #515457;
}
tr td {
color: #333333;
}
tr span {
padding: 0 10px;
}
}
}
&-footer {
display: flex;
justify-content: flex-end;
}
.key {
border-radius: 8px;
display: inline-block;
box-sizing: content-box;
font-size: 16px;
text-align: center;
padding: 2px 6px;
border: 1px solid #d6d6d6;
border-left: 3px solid #d6d6d6;
border-bottom: 3px solid #d6d6d6;
background-color: #fdfdfd;
// color: #333333;
font-weight: bold;
}
.key[data-key]::after {
position: relative;
z-index: 1;
content: attr(data-key);
}
}
</style>