commit
a80a2f4055
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 3.1 KiB |
After Width: | Height: | Size: 208 KiB |
@ -0,0 +1,11 @@
|
||||
const commonKeyDown = (keyCode: number) => {
|
||||
document.dispatchEvent(new KeyboardEvent('keydown', { keyCode }));
|
||||
}
|
||||
const c = () => {
|
||||
commonKeyDown(27)
|
||||
}
|
||||
const initBind = (mousetrap) => {
|
||||
mousetrap.bind('c', c)
|
||||
}
|
||||
|
||||
export default initBind;
|
@ -0,0 +1,92 @@
|
||||
<script lang="ts" setup>
|
||||
import { defineOptions, ref } from 'vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
|
||||
defineOptions({ name: 'ShortcutModal' })
|
||||
|
||||
|
||||
const emit = defineEmits<{
|
||||
(e: 'refresh', value: any),
|
||||
(e: 'cancel', value: any)
|
||||
}>()
|
||||
|
||||
|
||||
const show = ref(false)
|
||||
const isFold = ref(false)
|
||||
const router = useRouter()
|
||||
|
||||
const cardStyle = {
|
||||
'width': '29vw',
|
||||
'--n-padding-bottom': '10px',
|
||||
'--n-padding-left': '10px',
|
||||
}
|
||||
function toggle() {
|
||||
isFold.value = !isFold.value
|
||||
}
|
||||
function showModal() {
|
||||
show.value = true
|
||||
}
|
||||
function closeModal() {
|
||||
show.value = false
|
||||
}
|
||||
function refresh() {
|
||||
emit('refresh', true)
|
||||
}
|
||||
function cancel() {
|
||||
closeModal()
|
||||
emit('cancel', true)
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
showModal,
|
||||
closeModal
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div>
|
||||
<n-modal v-model:show="show" transform-origin="center" style="position: fixed;right: 0;bottom: 0;">
|
||||
<n-card :style="cardStyle" :bordered="false" size="huge" role="dialog" aria-modal="true" style="padding: 8px 8px 0 8px;">
|
||||
<div class="wrapper">
|
||||
<div class="title">查重进度</div>
|
||||
<div class="icon-list">
|
||||
<svg-icon size="20" name="refresh" @click="refresh" style="margin-right: 16px;cursor: pointer;" />
|
||||
<svg-icon size="20" name="fold" style="margin-right: 16px;cursor: pointer;" @click="toggle"/>
|
||||
<svg-icon size="20" name="close-none-border" @click="cancel" style="margin-right: 16px;cursor: pointer;"/>
|
||||
</div>
|
||||
</div>
|
||||
<div v-show="!isFold" style="display: flex;background-color: #F9F9F9;height: 54px;margin-top: 24px;margin-bottom: 6px;">
|
||||
<div><svg-icon size="40" name="robot2" /></div>
|
||||
<div class="msg">
|
||||
<div>正在查重中</div>
|
||||
</div>
|
||||
</div>
|
||||
</n-card>
|
||||
</n-modal>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.wrapper{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.09);
|
||||
margin: 0 -18px;
|
||||
}
|
||||
.icon-list{
|
||||
}
|
||||
.title {
|
||||
padding-left: 24px;
|
||||
padding-bottom: 10px;
|
||||
color: #333333;
|
||||
font-size: 16px
|
||||
}
|
||||
|
||||
.msg {
|
||||
text-align: center;
|
||||
margin-left: 20px;
|
||||
font-size: 14px;
|
||||
font-size: 14px;
|
||||
line-height: 54px;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,81 @@
|
||||
<script lang="ts" setup>
|
||||
import { defineOptions, ref } from 'vue';
|
||||
import { useRouter } from 'vue-router';
|
||||
|
||||
defineOptions({ name: 'ShortcutModal' })
|
||||
|
||||
const show = ref(false)
|
||||
const router = useRouter()
|
||||
|
||||
const cardStyle = {
|
||||
'width': '29vw',
|
||||
'--n-padding-bottom': '10px',
|
||||
'--n-padding-left': '10px',
|
||||
}
|
||||
|
||||
function showModal() {
|
||||
show.value = true
|
||||
}
|
||||
|
||||
function closeModal(path) {
|
||||
show.value = false
|
||||
router.push(path)
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
showModal,
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div>
|
||||
<n-modal v-model:show="show" transform-origin="center" style="padding: 8px;">
|
||||
<n-card :style="cardStyle" :bordered="false" size="huge" role="dialog" aria-modal="true">
|
||||
<div style="display: flex;">
|
||||
<div><svg-icon size="80" name="robot2" /></div>
|
||||
<div style="height: 130px;text-align: center;margin-left: 20px;">
|
||||
<div class="msg-title">生成任务提示</div>
|
||||
<div class="msg-text">AI已根据您的配置要求生成任务包。</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<template #footer>
|
||||
<div class="wrapper-footer">
|
||||
<n-button type="info" @click="closeModal('/worksheet')">
|
||||
进入AI工单
|
||||
</n-button>
|
||||
<n-button style="margin-left:10px;color: #666666;" @click="closeModal('/task')">
|
||||
进入任务审批
|
||||
</n-button>
|
||||
</div>
|
||||
</template>
|
||||
</n-card>
|
||||
</n-modal>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.wrapper-footer {
|
||||
margin-top: -20px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.msg-title {
|
||||
font-size: 16px;
|
||||
font-family: PingFang SC, PingFang SC-Medium;
|
||||
font-weight: Medium;
|
||||
text-align: left;
|
||||
color: #333333;
|
||||
line-height: 24px;
|
||||
margin: 12px 0;
|
||||
}
|
||||
|
||||
.msg-text {
|
||||
font-size: 14px;
|
||||
font-family: PingFang SC, PingFang SC-Regular;
|
||||
font-weight: Regular;
|
||||
text-align: left;
|
||||
color: #666666;
|
||||
line-height: 22px;
|
||||
}
|
||||
</style>
|
@ -0,0 +1,51 @@
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue';
|
||||
|
||||
const show = ref(false)
|
||||
|
||||
const stys = {
|
||||
'width': '424px',
|
||||
'height': '192px',
|
||||
'--n-padding-bottom': '0px',
|
||||
'--n-padding-left': '0px',
|
||||
'background': 'linear-gradient(132deg, rgba(255, 255, 255, 0.32) 21%, rgba(152, 172, 255, 0.14) 100%)',
|
||||
'border-radius': '4px',
|
||||
'box-shadow': '0px 12px 48px 16px rgba(0, 0, 0, 0.03)',
|
||||
'backdrop-filter': ' blur(10px)',
|
||||
}
|
||||
|
||||
function showModal() {
|
||||
show.value = true
|
||||
}
|
||||
|
||||
function closeModal() {
|
||||
show.value = false
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
showModal,
|
||||
closeModal,
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<n-modal v-model:show="show" :mask-closable="false" transform-origin="center">
|
||||
<n-card :style="stys" :bordered="false" role="dialog" aria-modal="true">
|
||||
<svg-icon size="15" name="close" @click="closeModal" style="position:absolute; right:6px;top:6px;cursor: pointer;"/>
|
||||
<div class="wrapper">
|
||||
<svg-icon size="90" name="robot2" />
|
||||
<span style="margin-top: 24px;">正在查重中</span>
|
||||
</div>
|
||||
</n-card>
|
||||
</n-modal>
|
||||
</template>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.wrapper {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
</style>
|
Loading…
Reference in new issue