From 909dfdf6ceff702f65bdc15bd958589c6df4195d Mon Sep 17 00:00:00 2001
From: zhangchen <1652267879@qq.com>
Date: 星期六, 26 七月 2025 15:48:48 +0800
Subject: [PATCH] ID1825-定时任务禁止修改
---
src/views/mobile/bedsideAuxiliaryScreen/components/TaskAlart.vue | 184 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 184 insertions(+), 0 deletions(-)
diff --git a/src/views/mobile/bedsideAuxiliaryScreen/components/TaskAlart.vue b/src/views/mobile/bedsideAuxiliaryScreen/components/TaskAlart.vue
new file mode 100644
index 0000000..cff6899
--- /dev/null
+++ b/src/views/mobile/bedsideAuxiliaryScreen/components/TaskAlart.vue
@@ -0,0 +1,184 @@
+<template>
+ <div class="task-alert-container">
+ <el-dialog
+ v-model="show"
+ title="任务提醒"
+ width="60%"
+ :show-close="false"
+ class="task-alert-dialog"
+ :destroy-on-close="true"
+ :close-on-click-modal="false"
+ center
+ >
+ <template #header>
+ <div class="task-alert-header">
+ <span class="header-title">任务提醒</span>
+ <img
+ :src="closeImg"
+ class="header-close"
+ @click="handleCancel"
+ alt=""
+ />
+ </div>
+ </template>
+ <div class="task-alert-content">
+ <span>{{ taskName }}</span>
+ </div>
+ <template #footer>
+ <div class="my-button cancel" @click="handleCancel">关闭</div>
+ <div class="my-button confirm" @click="handleCancel">确认</div>
+ </template>
+ </el-dialog>
+ </div>
+</template>
+
+<script lang="ts" setup>
+import { ref } from "vue";
+import closeImg from "@/img/close.png";
+import { useAudioPlayer } from "@/composables/useAudioPlayer";
+import { taskOptions } from "@/store/type/task.type";
+import alertbaojin from "@/assets/alert.wav";
+
+const { play, stop } = useAudioPlayer();
+
+const emit = defineEmits<{
+ (e: "close"): void;
+}>();
+
+const show = ref(false);
+const taskName = ref("");
+
+const openDialog = (name: string) => {
+ // 这里使用传值是为了防止sse任务结束后推送过来的数据没有
+ taskName.value = name;
+ show.value = true;
+ const item = taskOptions.find((e) => e.value === name);
+ if (item) {
+ play(item.promptTone);
+ } else {
+ play(alertbaojin);
+ }
+};
+
+const handleCancel = () => {
+ show.value = false;
+ stop();
+ emit("close");
+};
+
+defineExpose({
+ openDialog,
+});
+</script>
+
+<style lang="less" scoped>
+* {
+ box-sizing: border-box;
+}
+.task-alert-container {
+ ::v-deep(.el-dialog) {
+ padding: 0;
+ border-radius: 6px;
+ overflow: hidden;
+ }
+ ::v-deep(.el-dialog__footer) {
+ padding: 4px;
+ }
+ ::v-deep(.el-upload-dragger) {
+ height: 65px;
+ padding: 0 !important;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ ::v-deep(.el-upload-dragger .el-icon--upload) {
+ display: none;
+ }
+ ::v-deep(.el-dialog__header) {
+ padding-bottom: 6px;
+ }
+ .task-alert-header {
+ position: relative;
+ height: 16px;
+ background: #ff7472;
+ .header-title {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ transform: translateX(-50%) translateY(-50%);
+ font-family: AlibabaPuHuiTi, AlibabaPuHuiTi;
+ font-weight: 500;
+ font-size: 8px;
+ color: #ffffff;
+ line-height: 11px;
+ text-align: center;
+ }
+ .header-close {
+ position: absolute;
+ top: 50%;
+ transform: translateY(-50%);
+ right: 6px;
+ width: 15px;
+ height: 15px;
+ transition: transform 0.2s;
+
+ &:active {
+ opacity: 0.6;
+ transform: translateY(-50%) scale(0.95);
+ }
+ }
+ }
+
+ .task-alert-content {
+ height: 50px;
+ max-height: 80px;
+ font-size: 14px;
+ color: #333;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ overflow: hidden;
+ overflow-y: auto;
+ }
+ .my-button {
+ display: inline-block;
+ border-radius: 2px;
+ padding: 0px 10px;
+ font-family: PingFangSC, PingFang SC;
+ font-weight: 500;
+ font-size: 7px;
+ color: #ffffff;
+ line-height: 16px;
+ letter-spacing: 1px;
+ text-align: center;
+ font-style: normal;
+ transition: transform 0.1s ease, opacity 0.1s ease;
+ cursor: pointer;
+ &:active {
+ transform: scale(0.95);
+ opacity: 0.8;
+ }
+
+ &:not(:first-child) {
+ margin-left: 6px;
+ }
+
+ &.confirm {
+ background: #769aff;
+ }
+ &.cancel {
+ background: #bbc6dd;
+ }
+ &.refresh {
+ background: #e6a23c;
+ }
+ }
+}
+</style>
+<style>
+.task-alert-dialog {
+ margin: 0 auto;
+ top: 50% !important;
+ transform: translateY(-50%) !important;
+}
+</style>
--
Gitblit v1.8.0