From 1b20ab505d771e8d2168ddb8154da5d6aa85919a Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期一, 11 十二月 2023 10:11:21 +0800
Subject: [PATCH] 远控增加密码
---
src/views/dry/bigScreen/BigWorkShop.vue | 2
src/views/dashboard/control/index.vue | 132 +++++++++++++++++++------
src/layouts/default/header/index.vue | 2
src/views/sys/login/TokenLoginPage.vue | 2
src/views/system/user/user.data.ts | 12 +-
.env | 2
src/views/system/loginmini/MiniLogin.vue | 2
src/layouts/default/content/index.vue | 116 +++++++++++-----------
8 files changed, 168 insertions(+), 102 deletions(-)
diff --git a/.env b/.env
index 5f0d073..a2cd447 100644
--- a/.env
+++ b/.env
@@ -2,7 +2,7 @@
VITE_PORT = 3100
# 缃戠珯鏍囬
-VITE_GLOB_APP_TITLE = 鏅鸿兘涓崏鑽共鐕ラ厤鏂圭鐞嗙郴缁�
+VITE_GLOB_APP_TITLE = 鍏版郸鏅鸿兘绉戞妧
# 绠�绉帮紝鐢ㄤ簬閰嶇疆鏂囦欢鍚嶅瓧 涓嶈鍑虹幇绌烘牸銆佹暟瀛楀紑澶寸瓑鐗规畩瀛楃
VITE_GLOB_APP_SHORT_NAME = JeecgBootAdmin
diff --git a/src/layouts/default/content/index.vue b/src/layouts/default/content/index.vue
index a5ca774..2398991 100644
--- a/src/layouts/default/content/index.vue
+++ b/src/layouts/default/content/index.vue
@@ -1,66 +1,66 @@
<template>
- <div :class="[prefixCls, getLayoutContentMode]" v-loading="getOpenPageLoading && getPageLoading">
- <PageLayout />
- <!-- update-begin-author:zyf date:20211129 for:qiankun 鎸傝浇瀛愬簲鐢ㄧ洅瀛� -->
- <div id="content" class="app-view-box" v-if="openQianKun == 'true'"></div>
- <!-- update-end-author:zyf date:20211129 for: qiankun 鎸傝浇瀛愬簲鐢ㄧ洅瀛�-->
- </div>
+ <div :class="[prefixCls, getLayoutContentMode]" v-loading="getOpenPageLoading && getPageLoading">
+ <PageLayout />
+ <!-- update-begin-author:zyf date:20211129 for:qiankun 鎸傝浇瀛愬簲鐢ㄧ洅瀛� -->
+ <div id="content" class="app-view-box" v-if="openQianKun == 'true'"></div>
+ <!-- update-end-author:zyf date:20211129 for: qiankun 鎸傝浇瀛愬簲鐢ㄧ洅瀛�-->
+ </div>
</template>
<script lang="ts">
- import { defineComponent, onMounted } from 'vue';
- import PageLayout from '/@/layouts/page/index.vue';
- import { useDesign } from '/@/hooks/web/useDesign';
- import { useRootSetting } from '/@/hooks/setting/useRootSetting';
- import { useTransitionSetting } from '/@/hooks/setting/useTransitionSetting';
- import { useContentViewHeight } from './useContentViewHeight';
- // import registerApps from '/@/qiankun';
- import { useGlobSetting } from '/@/hooks/setting';
- export default defineComponent({
- name: 'LayoutContent',
- components: { PageLayout },
- setup() {
- const { prefixCls } = useDesign('layout-content');
- const { getOpenPageLoading } = useTransitionSetting();
- const { getLayoutContentMode, getPageLoading } = useRootSetting();
- const globSetting = useGlobSetting();
- const openQianKun = globSetting.openQianKun;
- useContentViewHeight();
- onMounted(() => {
- // //娉ㄥ唽openQianKun
- // if (openQianKun == 'true') {
- // if (!window.qiankunStarted) {
- // window.qiankunStarted = true;
- // registerApps();
- // }
- // }
- });
- return {
- prefixCls,
- openQianKun,
- getOpenPageLoading,
- getLayoutContentMode,
- getPageLoading,
- };
- },
- });
+ import { defineComponent, onMounted } from 'vue'
+ import PageLayout from '/@/layouts/page/index.vue'
+ import { useDesign } from '/@/hooks/web/useDesign'
+ import { useRootSetting } from '/@/hooks/setting/useRootSetting'
+ import { useTransitionSetting } from '/@/hooks/setting/useTransitionSetting'
+ import { useContentViewHeight } from './useContentViewHeight'
+ // import registerApps from '/@/qiankun';
+ import { useGlobSetting } from '/@/hooks/setting'
+ export default defineComponent({
+ name: 'LayoutContent',
+ components: { PageLayout },
+ setup() {
+ const { prefixCls } = useDesign('layout-content')
+ const { getOpenPageLoading } = useTransitionSetting()
+ const { getLayoutContentMode, getPageLoading } = useRootSetting()
+ const globSetting = useGlobSetting()
+ const openQianKun = globSetting.openQianKun
+ useContentViewHeight()
+ onMounted(() => {
+ // //娉ㄥ唽openQianKun
+ // if (openQianKun == 'true') {
+ // if (!window.qiankunStarted) {
+ // window.qiankunStarted = true;
+ // registerApps();
+ // }
+ // }
+ })
+ return {
+ prefixCls,
+ openQianKun,
+ getOpenPageLoading,
+ getLayoutContentMode,
+ getPageLoading,
+ }
+ },
+ })
</script>
<style lang="less">
- @prefix-cls: ~'@{namespace}-layout-content';
+ @prefix-cls: ~'@{namespace}-layout-content';
- .@{prefix-cls} {
- position: relative;
- flex: 1 1 auto;
- min-height: 0;
+ .@{prefix-cls} {
+ position: relative;
+ flex: 1 1 auto;
+ min-height: 0;
+ overflow: scroll;
+ &.fixed {
+ width: 1200px;
+ margin: 0 auto;
+ }
- &.fixed {
- width: 1200px;
- margin: 0 auto;
- }
-
- &-loading {
- position: absolute;
- top: 200px;
- z-index: @page-loading-z-index;
- }
- }
+ &-loading {
+ position: absolute;
+ top: 200px;
+ z-index: @page-loading-z-index;
+ }
+ }
</style>
diff --git a/src/layouts/default/header/index.vue b/src/layouts/default/header/index.vue
index 7b1db92..4fb6c62 100644
--- a/src/layouts/default/header/index.vue
+++ b/src/layouts/default/header/index.vue
@@ -11,7 +11,7 @@
/>
<LayoutBreadcrumb v-if="getShowContent && getShowBread" :theme="getHeaderTheme" />
<!-- 娆㈣繋璇� -->
- <span v-if="getShowContent && getShowBreadTitle && !getIsMobile" :class="[prefixCls, `${prefixCls}--${getHeaderTheme}`,'headerIntroductionClass']"> 娆㈣繋杩涘叆 {{ title }} </span>
+ <span v-if="getShowContent && getShowBreadTitle && !getIsMobile" :class="[prefixCls, `${prefixCls}--${getHeaderTheme}`,'headerIntroductionClass']"> 娆㈣繋杩涘叆 {{ '鏅鸿兘涓嵂骞茬嚗鏈烘暟瀛楀寲杞﹂棿' }} </span>
</div>
<!-- left end -->
diff --git a/src/views/dashboard/control/index.vue b/src/views/dashboard/control/index.vue
index e9d321d..f376325 100644
--- a/src/views/dashboard/control/index.vue
+++ b/src/views/dashboard/control/index.vue
@@ -1,14 +1,22 @@
<template>
- <a-modal v-model:visible="visible" centered :mask="false" :closable="false" :cancelText="null" title="璀﹀憡"
- @ok="hideModal">
+ <a-modal v-model:visible="visible" centered :mask="true" :maskClosable="false" :keyboard="false" :closable="false" :cancelText="null" title="璀﹀憡"
+ @ok="hideModal" @cancel="cnacelModal" >
<a-card>
<div class="indented-text">鍦ㄤ娇鐢ㄨ繙绋嬫帶鍒惰澶囧墠锛岃纭繚鏈哄櫒鍛ㄥ洿娌℃湁鍏朵粬浜哄憳銆傚缓绔嬩竴涓畨鍏ㄥ尯鍩燂紝纭繚娌℃湁浜鸿兘澶熻繘鍏ヨ鍖哄煙锛岄槻姝笉蹇呰鐨勪激瀹炽��</div>
+ <div style="display: flex; justify-content: space-between; padding-top: 20px; ">
+ <p style="font-weight: bold;" >璇疯緭鍏ュ瘑鐮侊細</p>
+ <p style="color: red">{{ error }}</p>
+ </div>
+ <div >
+ <a-input-password v-model:value="password" placeholder="璇疯緭鍏ュ瘑鐮侊紒"></a-input-password>
+ </div>
</a-card>
</a-modal>
<div class="app">
<a-row>
- <a-card title="鐓ф槑" style="width: 60%">
+ <div style="width: 60%">
+ <a-card title="鐓ф槑" >
<div class="light-box">
<div v-for="item in lightList" :key="item.identifier" class="center">
<!-- <a-button v-if="item.type == 0" type="primary" class="com-btn"
@@ -27,7 +35,9 @@
</div>
</a-card>
- <a-card title="鐩戞帶" style="width: 35%; margin-left: 10px;">
+ </div>
+ <div style="width: 40%">
+ <a-card title="鐩戞帶" style=" margin-left: 10px;">
<div class="monitor-box">
<div v-for="item in lightList" :key="item.identifier" class="center" >
<div v-if="item.type==1" @click="deviceClick(item)">
@@ -40,19 +50,20 @@
</div>
</div>
</a-card>
-
+</div>
</a-row>
-
- <a-card title="鎸囦护" style="margin-top: 10px">
+ <a-row>
+ <div style="width: 50%">
+<a-card title="鎸囦护" style="margin-top: 10px; ">
<div class="com-box">
<!-- <a-button v-for="item in comList" :key="item.id" type="primary" class="com-btn"
@click="comClick(item)">
{{ item.title }}
</a-button> -->
- <div style="width: 500px;">
+ <div style="width: 500px;" >
<a-row class="button-row">
- <a-button type="primary" @click="clickButton(1010, '骞茬嚗鍚姩')" class="com-btn">
+ <a-button type="primary" :disabled="btnDisabled" @click="clickButton(1010, '骞茬嚗鍚姩')" class="com-btn">
<div> <PlayCircleOutlined style="font-size: 20px;" /> </div>
<div> 骞茬嚗鍚姩 </div>
@@ -62,33 +73,33 @@
<div> 鍚庨棬寮�鍏� </div>
</a-button> -->
- <a-button type="default" @click="clickButton(1003,'婊氱瓛鍗�')" class="com-btn w300">
+ <a-button type="default" :disabled="btnDisabled" @click="clickButton(1003,'婊氱瓛鍗�')" class="com-btn w300">
<div> <UpCircleOutlined style="font-size: 20px;" /> </div>
<div> 婊氱瓛鍗� </div>
</a-button>
- <a-button type="info" @click="clickButton(1014, '寮�闂ㄨ瀵�')" class="com-btn">
- <div> <SettingOutlined style="font-size: 20px;" /> </div>
- <div> 寮�闂ㄨ瀵� </div>
+ <a-button type="normal" :disabled="btnDisabled" @click="clickButton(1016,'娓呴櫎')" class="com-btn">
+ <div> <ClearOutlined style="font-size: 20px;" /> </div>
+ <div> 娓呴櫎 </div>
</a-button>
</a-row>
<a-row class="button-row">
- <a-button type="normal" @click="clickButton(1005,'婊氱瓛姝h浆')" class="com-btn h100">
+ <a-button type="normal" :disabled="btnDisabled" @click="clickButton(1005,'婊氱瓛姝h浆')" class="com-btn h100">
<div> <RedoOutlined style="font-size: 20px;" /> </div>
<div> 婊氱瓛姝h浆 </div>
</a-button>
- <a-button type="danger" @click="clickButton(1007,'鍋滄')" class="com-btn h100 w300 " >
+ <a-button type="danger" :disabled="btnDisabled" @click="clickButton(1007,'鍋滄')" class="com-btn h100 w300 " >
<div> <PauseCircleOutlined style="font-size: 20px;" /> </div>
<div> 鍋滄 </div>
</a-button>
- <a-button type="normal" @click="clickButton(1006,'婊氱瓛鍙嶈浆')" class="com-btn h100">
+ <a-button type="normal" :disabled="btnDisabled" @click="clickButton(1006,'婊氱瓛鍙嶈浆')" class="com-btn h100">
<div> <UndoOutlined style="font-size: 20px;" /> </div>
<div> 婊氱瓛鍙嶈浆 </div>
</a-button>
</a-row>
<a-row class="button-row">
- <a-button type="success" @click="clickButton(1015,'鍑烘枡')" class="com-btn">
+ <a-button type="success" :disabled="btnDisabled" @click="clickButton(1015,'鍑烘枡')" class="com-btn">
<div> <DownloadOutlined style="font-size: 20px;" /> </div>
<div> 鍑烘枡 </div>
@@ -97,11 +108,11 @@
<div> <SplitCellsOutlined style="font-size: 20px;" /> </div>
<div> 鍓嶉棬寮�鍏� </div>
</a-button> -->
- <a-button type="normal" @click="clickButton(1004,'婊氱瓛闄�')" class="com-btn w300">
+ <a-button type="normal" :disabled="btnDisabled" @click="clickButton(1004,'婊氱瓛闄�')" class="com-btn w300">
<div> <DownCircleOutlined style="font-size: 20px;" /> </div>
<div> 婊氱瓛闄� </div>
</a-button>
- <a-button type="normal" @click="clickButton(1013,'鐑鍚姩')" class="com-btn">
+ <a-button type="normal" :disabled="btnDisabled" @click="clickButton(1013,'鐑鍚姩')" class="com-btn">
<div> <FireOutlined style="font-size: 20px;" /> </div>
<div> 鐑鍚姩 </div>
@@ -109,26 +120,45 @@
</a-row>
</div>
- <div style="margin-left: 100px;">
- <div>
- <a-button type="warning" @click="clickButton(1017,'鎵嬪姩/鑷姩')" class="com-btn">
+
+
+ </div>
+ </a-card>
+ </div>
+ <div style="width: 50%">
+ <a-card title="鐘舵��" style="margin-left: 10px;margin-top:10px">
+ <div class="com-box">
+ <div>
+ <div>
+ <a-button type="warning" :disabled="btnDisabled" @click="clickButton(1017,'鎵嬪姩/鑷姩')" class="com-btn">
<div> <SyncOutlined style="font-size: 20px;" /> </div>
<div> 鎵嬪姩/鑷姩 </div>
</a-button>
+
</div>
<div>
- <a-button type="normal" @click="clickButton(1016,'娓呴櫎')" class="com-btn">
- <div> <ClearOutlined style="font-size: 20px;" /> </div>
- <div> 娓呴櫎 </div>
+ <a-button type="info" :disabled="btnDisabled" @click="clickButton(1014, '寮�闂ㄨ瀵�')" class="com-btn">
+ <div> <SettingOutlined style="font-size: 20px;" /> </div>
+ <div> 寮�闂ㄨ瀵� </div>
+
+ </a-button>
+
+ </div>
+ <div>
+ <a-button type="normal" @click="lock()" class="com-btn">
+ <div> <Icon :icon="lockIcon" :size="28" /> </div>
+ <div> {{lockText}} </div>
</a-button>
</div>
- </div>
-
</div>
+ </div>
</a-card>
- <a-card title="鎺у埗鍙�" style="margin-top: 10px">
+ </div>
+ </a-row>
+
+ <a-card title="鎺у埗鍙�" style="margin-top: 10px; ">
<div class="log-box">
<p v-for="log in logList" :key="log"> {{ log }}</p>
</div>
@@ -144,8 +174,11 @@
import { connectWebSocket, onWebSocket } from '/@/hooks/web/useWebSocket';
import { useUserStore } from '/@/store/modules/user';
import { RedoOutlined ,SettingOutlined, UndoOutlined,FireOutlined, SplitCellsOutlined, DownloadOutlined, PauseCircleOutlined,ClearOutlined, SyncOutlined,PlayCircleOutlined, SwapOutlined , UpCircleOutlined, DownCircleOutlined, LeftCircleOutlined, RightCircleOutlined} from '@ant-design/icons-vue';
-
-
+import { router } from '/@/router'
+const error = ref('')
+const lockIcon = ref('tdesign:lock-off')
+const lockText = ref('瑙i攣')
+const password = ref()
const visible = ref<boolean>(false);
const glob = useGlobSetting();
interface Commant {
@@ -213,9 +246,19 @@
icon: "caret-right-outlined"
}]);
-
+const btnDisabled = ref(true)
const lightList = ref<Device[]>([]);
const monitorList = ref<Device[]>([]);
+
+function lock() {
+ btnDisabled.value = !btnDisabled.value
+ lockIcon.value = btnDisabled.value?'tdesign:lock-off':'tdesign:lock-on'
+ lockText.value = btnDisabled.value?'瑙i攣': '閿佸畾'
+ if (btnDisabled.value) {
+ showModal()
+ }
+}
+
function comClick(item) {
addLog("鍙戦��", item.title);
//鍙戦�佹寚浠�
@@ -257,8 +300,23 @@
visible.value = true;
};
+const cnacelModal = () => {
+ router.back()
+}
+
const hideModal = () => {
- visible.value = false;
+ if(!password.value || password.value.length<=0) {
+ error.value="璇疯緭鍏ュ瘑鐮侊紒"
+ }else
+ if(password.value === 'LBit@123') {
+ visible.value = false;
+ password.value = ''
+ error.value = ''
+ } else {
+ error.value = '瀵嗙爜閿欒锛�'
+ }
+
+
};
/**
@@ -330,9 +388,17 @@
})
}
+ function keydown(e) {
+ error.value = ''
+ if(e.keyCode == 13) {
+ hideModal()
+ }
+ }
+
onMounted(() => {
showModal();
initWebSocket();
+ window.addEventListener('keydown', keydown)
});
queryDevice()
@@ -349,7 +415,7 @@
// margin-left: 200px;
display: flex;
-
+ justify-content: center;
.com-btn {
border-radius: 5px;
diff --git a/src/views/dry/bigScreen/BigWorkShop.vue b/src/views/dry/bigScreen/BigWorkShop.vue
index 1d764c7..c7cde21 100644
--- a/src/views/dry/bigScreen/BigWorkShop.vue
+++ b/src/views/dry/bigScreen/BigWorkShop.vue
@@ -65,7 +65,7 @@
</div>
<div class="stat_avg">
<div> 骞冲潎姹借�� </div>
- <div> {{steamAvg.toFixed(2)}} m鲁 </div>
+ <div> {{steamAvg.toFixed(2)}} m鲁/kg </div>
</div>
</div>
</dv-border-box7>
diff --git a/src/views/sys/login/TokenLoginPage.vue b/src/views/sys/login/TokenLoginPage.vue
index c64aec6..d386fb2 100644
--- a/src/views/sys/login/TokenLoginPage.vue
+++ b/src/views/sys/login/TokenLoginPage.vue
@@ -5,7 +5,7 @@
<div class="app-loading-dots">
<span class="dot dot-spin"><i></i><i></i><i></i><i></i></span>
</div>
- <div class="app-loading-title">鏅鸿兘涓崏鑽共鐕ラ厤鏂圭鐞嗙郴缁�</div>
+ <div class="app-loading-title">鏅鸿兘涓嵂骞茬嚗鏈烘暟瀛楀寲杞﹂棿</div>
</div>
</div>
</template>
diff --git a/src/views/system/loginmini/MiniLogin.vue b/src/views/system/loginmini/MiniLogin.vue
index d9b154c..5d8bd7e 100644
--- a/src/views/system/loginmini/MiniLogin.vue
+++ b/src/views/system/loginmini/MiniLogin.vue
@@ -18,7 +18,7 @@
<div class="aui-form">
<div class="aui-image">
<div>Lanpu</div>
- <div>鏅鸿兘涓崏鑽共鐕ラ厤鏂圭鐞嗙郴缁�</div>
+ <div>鏅鸿兘涓嵂骞茬嚗鏈烘暟瀛楀寲杞﹂棿</div>
<!-- <div class="aui-image-text">-->
<!-- <img :src="adTextImg" />-->
<!-- </div>-->
diff --git a/src/views/system/user/user.data.ts b/src/views/system/user/user.data.ts
index cf4fadb..4bbc4a1 100644
--- a/src/views/system/user/user.data.ts
+++ b/src/views/system/user/user.data.ts
@@ -290,12 +290,12 @@
label: '鎵嬫満鍙风爜',
field: 'phone',
component: 'Input',
- dynamicRules: ({ model, schema }) => {
- return [
- { ...rules.duplicateCheckRule('sys_user', 'phone', model, schema, true)[0] },
- { pattern: /^1[3456789]\d{9}$/, message: '鎵嬫満鍙风爜鏍煎紡鏈夎' },
- ];
- },
+ // dynamicRules: ({ model, schema }) => {
+ // return [
+ // { ...rules.duplicateCheckRule('sys_user', 'phone', model, schema, true)[0] },
+ // { pattern: /^1[3456789]\d{9}$/, message: '鎵嬫満鍙风爜鏍煎紡鏈夎' },
+ // ];
+ // },
},
{
label: '搴ф満',
--
Gitblit v1.9.3