From beca65f4d01ca07c358102a35b949c2a4f277afe Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期三, 24 五月 2023 10:36:27 +0800
Subject: [PATCH] 增加车间监控界面

---
 src/layouts/default/header/components/user-dropdown/index.vue |  396 ++++++++++++++++++++++++++++----------------------------
 1 files changed, 198 insertions(+), 198 deletions(-)

diff --git a/src/layouts/default/header/components/user-dropdown/index.vue b/src/layouts/default/header/components/user-dropdown/index.vue
index 1170dde..6a97484 100644
--- a/src/layouts/default/header/components/user-dropdown/index.vue
+++ b/src/layouts/default/header/components/user-dropdown/index.vue
@@ -1,233 +1,233 @@
 <template>
-  <Dropdown placement="bottomLeft" :overlayClassName="`${prefixCls}-dropdown-overlay`">
-    <span :class="[prefixCls, `${prefixCls}--${theme}`]" class="flex">
-      <img :class="`${prefixCls}__header`" :src="getAvatarUrl" />
-      <span :class="`${prefixCls}__info hidden md:block`">
-        <span :class="`${prefixCls}__name  `" class="truncate">
-          {{ getUserInfo.realname }}
-        </span>
-      </span>
-    </span>
+	<Dropdown placement="bottomLeft" :overlayClassName="`${prefixCls}-dropdown-overlay`">
+		<span :class="[prefixCls, `${prefixCls}--${theme}`]" class="flex">
+			<img :class="`${prefixCls}__header`" :src="getAvatarUrl" />
+			<span :class="`${prefixCls}__info hidden md:block`">
+				<span :class="`${prefixCls}__name  `" class="truncate">
+					{{ getUserInfo.realname }}
+				</span>
+			</span>
+		</span>
 
-    <template #overlay>
-      <Menu @click="handleMenuClick">
-        <MenuItem key="doc" :text="t('layout.header.dropdownItemDoc')" icon="ion:document-text-outline" v-if="getShowDoc" />
-        <MenuDivider v-if="getShowDoc" />
-        <MenuItem key="account" :text="t('layout.header.dropdownItemSwitchAccount')" icon="ant-design:setting-outlined" />
-        <MenuItem key="password" :text="t('layout.header.dropdownItemSwitchPassword')" icon="ant-design:edit-outlined" />
-        <MenuItem key="depart" :text="t('layout.header.dropdownItemSwitchDepart')" icon="ant-design:cluster-outlined" />
-        <MenuItem key="cache" :text="t('layout.header.dropdownItemRefreshCache')" icon="ion:sync-outline" />
-        <!-- <MenuItem
+		<template #overlay>
+			<Menu @click="handleMenuClick">
+				<!-- <MenuItem key="doc" :text="t('layout.header.dropdownItemDoc')" icon="ion:document-text-outline" v-if="getShowDoc" /> -->
+				<MenuDivider v-if="getShowDoc" />
+				<MenuItem key="account" :text="t('layout.header.dropdownItemSwitchAccount')" icon="ant-design:setting-outlined" />
+				<MenuItem key="password" :text="t('layout.header.dropdownItemSwitchPassword')" icon="ant-design:edit-outlined" />
+				<MenuItem key="depart" :text="t('layout.header.dropdownItemSwitchDepart')" icon="ant-design:cluster-outlined" />
+				<MenuItem key="cache" :text="t('layout.header.dropdownItemRefreshCache')" icon="ion:sync-outline" />
+				<!-- <MenuItem
             v-if="getUseLockPage"
             key="lock"
             :text="t('layout.header.tooltipLock')"
             icon="ion:lock-closed-outline"
         />-->
-        <MenuItem key="logout" :text="t('layout.header.dropdownItemLoginOut')" icon="ion:power-outline" />
-      </Menu>
-    </template>
-  </Dropdown>
-  <LockAction @register="register" />
-  <DepartSelect ref="loginSelectRef" />
-  <UpdatePassword ref="updatePasswordRef" />
+				<MenuItem key="logout" :text="t('layout.header.dropdownItemLoginOut')" icon="ion:power-outline" />
+			</Menu>
+		</template>
+	</Dropdown>
+	<LockAction @register="register" />
+	<DepartSelect ref="loginSelectRef" />
+	<UpdatePassword ref="updatePasswordRef" />
 </template>
 <script lang="ts">
-  // components
-  import { Dropdown, Menu } from 'ant-design-vue';
+	// components
+	import { Dropdown, Menu } from 'ant-design-vue'
 
-  import { defineComponent, computed, ref } from 'vue';
+	import { defineComponent, computed, ref } from 'vue'
 
-  import { SITE_URL } from '/@/settings/siteSetting';
+	import { SITE_URL } from '/@/settings/siteSetting'
 
-  import { useUserStore } from '/@/store/modules/user';
-  import { useHeaderSetting } from '/@/hooks/setting/useHeaderSetting';
-  import { useI18n } from '/@/hooks/web/useI18n';
-  import { useDesign } from '/@/hooks/web/useDesign';
-  import { useModal } from '/@/components/Modal';
-  import { useMessage } from '/src/hooks/web/useMessage';
-  import { useGo } from '/@/hooks/web/usePage';
-  import headerImg from '/@/assets/images/header.jpg';
-  import { propTypes } from '/@/utils/propTypes';
-  import { openWindow } from '/@/utils';
+	import { useUserStore } from '/@/store/modules/user'
+	import { useHeaderSetting } from '/@/hooks/setting/useHeaderSetting'
+	import { useI18n } from '/@/hooks/web/useI18n'
+	import { useDesign } from '/@/hooks/web/useDesign'
+	import { useModal } from '/@/components/Modal'
+	import { useMessage } from '/src/hooks/web/useMessage'
+	import { useGo } from '/@/hooks/web/usePage'
+	import headerImg from '/@/assets/images/header.jpg'
+	import { propTypes } from '/@/utils/propTypes'
+	import { openWindow } from '/@/utils'
 
-  import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
+	import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent'
 
-  import { refreshCache, queryAllDictItems } from '/@/views/system/dict/dict.api';
-  import { DB_DICT_DATA_KEY } from '/src/enums/cacheEnum';
-  import { removeAuthCache, setAuthCache } from '/src/utils/auth';
-  import { getFileAccessHttpUrl } from '/@/utils/common/compUtils';
+	import { refreshCache, queryAllDictItems } from '/@/views/system/dict/dict.api'
+	import { DB_DICT_DATA_KEY } from '/src/enums/cacheEnum'
+	import { removeAuthCache, setAuthCache } from '/src/utils/auth'
+	import { getFileAccessHttpUrl } from '/@/utils/common/compUtils'
 
-  type MenuEvent = 'logout' | 'doc' | 'lock' | 'cache' | 'depart';
-  const { createMessage } = useMessage();
-  export default defineComponent({
-    name: 'UserDropdown',
-    components: {
-      Dropdown,
-      Menu,
-      MenuItem: createAsyncComponent(() => import('./DropMenuItem.vue')),
-      MenuDivider: Menu.Divider,
-      LockAction: createAsyncComponent(() => import('../lock/LockModal.vue')),
-      DepartSelect: createAsyncComponent(() => import('./DepartSelect.vue')),
-      UpdatePassword: createAsyncComponent(() => import('./UpdatePassword.vue')),
-    },
-    props: {
-      theme: propTypes.oneOf(['dark', 'light']),
-    },
-    setup() {
-      const { prefixCls } = useDesign('header-user-dropdown');
-      const { t } = useI18n();
-      const { getShowDoc, getUseLockPage } = useHeaderSetting();
-      const userStore = useUserStore();
-      const go = useGo();
+	type MenuEvent = 'logout' | 'doc' | 'lock' | 'cache' | 'depart'
+	const { createMessage } = useMessage()
+	export default defineComponent({
+		name: 'UserDropdown',
+		components: {
+			Dropdown,
+			Menu,
+			MenuItem: createAsyncComponent(() => import('./DropMenuItem.vue')),
+			MenuDivider: Menu.Divider,
+			LockAction: createAsyncComponent(() => import('../lock/LockModal.vue')),
+			DepartSelect: createAsyncComponent(() => import('./DepartSelect.vue')),
+			UpdatePassword: createAsyncComponent(() => import('./UpdatePassword.vue')),
+		},
+		props: {
+			theme: propTypes.oneOf(['dark', 'light']),
+		},
+		setup() {
+			const { prefixCls } = useDesign('header-user-dropdown')
+			const { t } = useI18n()
+			const { getShowDoc, getUseLockPage } = useHeaderSetting()
+			const userStore = useUserStore()
+			const go = useGo()
 
-      const getUserInfo = computed(() => {
-        const { realname = '', avatar, desc } = userStore.getUserInfo || {};
-        return { realname, avatar: avatar || headerImg, desc };
-      });
+			const getUserInfo = computed(() => {
+				const { realname = '', avatar, desc } = userStore.getUserInfo || {}
+				return { realname, avatar: avatar || headerImg, desc }
+			})
 
-      const getAvatarUrl = computed(() => {
-        let { avatar } = getUserInfo.value;
-        if (avatar == headerImg) {
-          return avatar;
-        } else {
-          return getFileAccessHttpUrl(avatar);
-        }
-      });
+			const getAvatarUrl = computed(() => {
+				let { avatar } = getUserInfo.value
+				if (avatar == headerImg) {
+					return avatar
+				} else {
+					return getFileAccessHttpUrl(avatar)
+				}
+			})
 
-      const [register, { openModal }] = useModal();
-      /**
-       * 澶氶儴闂ㄥ脊绐楅�昏緫
-       */
-      const loginSelectRef = ref();
-      function handleLock() {
-        openModal(true);
-      }
+			const [register, { openModal }] = useModal()
+			/**
+			 * 澶氶儴闂ㄥ脊绐楅�昏緫
+			 */
+			const loginSelectRef = ref()
+			function handleLock() {
+				openModal(true)
+			}
 
-      //  login out
-      function handleLoginOut() {
-        userStore.confirmLoginOut();
-      }
+			//  login out
+			function handleLoginOut() {
+				userStore.confirmLoginOut()
+			}
 
-      // open doc
-      function openDoc() {
-        openWindow(SITE_URL);
-      }
+			// open doc
+			function openDoc() {
+				openWindow(SITE_URL)
+			}
 
-      // 娓呴櫎缂撳瓨
-      async function clearCache() {
-        const result = await refreshCache();
-        if (result.success) {
-          const res = await queryAllDictItems();
-          removeAuthCache(DB_DICT_DATA_KEY);
-          setAuthCache(DB_DICT_DATA_KEY, res.result);
-          createMessage.success('鍒锋柊缂撳瓨瀹屾垚锛�');
-        } else {
-          createMessage.error('鍒锋柊缂撳瓨澶辫触锛�');
-        }
-      }
-      // 鍒囨崲閮ㄩ棬
-      function updateCurrentDepart() {
-        loginSelectRef.value.show();
-      }
-      // 淇敼瀵嗙爜
-      const updatePasswordRef = ref();
-      function updatePassword() {
-        updatePasswordRef.value.show(userStore.getUserInfo.username);
-      }
+			// 娓呴櫎缂撳瓨
+			async function clearCache() {
+				const result = await refreshCache()
+				if (result.success) {
+					const res = await queryAllDictItems()
+					removeAuthCache(DB_DICT_DATA_KEY)
+					setAuthCache(DB_DICT_DATA_KEY, res.result)
+					createMessage.success('鍒锋柊缂撳瓨瀹屾垚锛�')
+				} else {
+					createMessage.error('鍒锋柊缂撳瓨澶辫触锛�')
+				}
+			}
+			// 鍒囨崲閮ㄩ棬
+			function updateCurrentDepart() {
+				loginSelectRef.value.show()
+			}
+			// 淇敼瀵嗙爜
+			const updatePasswordRef = ref()
+			function updatePassword() {
+				updatePasswordRef.value.show(userStore.getUserInfo.username)
+			}
 
-      function handleMenuClick(e: { key: MenuEvent }) {
-        switch (e.key) {
-          case 'logout':
-            handleLoginOut();
-            break;
-          case 'doc':
-            openDoc();
-            break;
-          case 'lock':
-            handleLock();
-            break;
-          case 'cache':
-            clearCache();
-            break;
-          case 'depart':
-            updateCurrentDepart();
-            break;
-          case 'password':
-            updatePassword();
-            break;
-          case 'account':
-            //update-begin---author:wangshuai ---date:20221125  for锛氳繘鍏ョ敤鎴疯缃〉闈�------------
-            go(`/system/usersetting`);
-            //update-end---author:wangshuai ---date:20221125  for锛氳繘鍏ョ敤鎴疯缃〉闈�--------------
-            break;
-        }
-      }
+			function handleMenuClick(e: { key: MenuEvent }) {
+				switch (e.key) {
+					case 'logout':
+						handleLoginOut()
+						break
+					case 'doc':
+						openDoc()
+						break
+					case 'lock':
+						handleLock()
+						break
+					case 'cache':
+						clearCache()
+						break
+					case 'depart':
+						updateCurrentDepart()
+						break
+					case 'password':
+						updatePassword()
+						break
+					case 'account':
+						//update-begin---author:wangshuai ---date:20221125  for锛氳繘鍏ョ敤鎴疯缃〉闈�------------
+						go(`/system/usersetting`)
+						//update-end---author:wangshuai ---date:20221125  for锛氳繘鍏ョ敤鎴疯缃〉闈�--------------
+						break
+				}
+			}
 
-      return {
-        prefixCls,
-        t,
-        getUserInfo,
-        getAvatarUrl,
-        handleMenuClick,
-        getShowDoc,
-        register,
-        getUseLockPage,
-        loginSelectRef,
-        updatePasswordRef,
-      };
-    },
-  });
+			return {
+				prefixCls,
+				t,
+				getUserInfo,
+				getAvatarUrl,
+				handleMenuClick,
+				getShowDoc,
+				register,
+				getUseLockPage,
+				loginSelectRef,
+				updatePasswordRef,
+			}
+		},
+	})
 </script>
 <style lang="less">
-  @prefix-cls: ~'@{namespace}-header-user-dropdown';
+	@prefix-cls: ~'@{namespace}-header-user-dropdown';
 
-  .@{prefix-cls} {
-    height: @header-height;
-    padding: 0 0 0 10px;
-    padding-right: 10px;
-    overflow: hidden;
-    font-size: 12px;
-    cursor: pointer;
-    align-items: center;
+	.@{prefix-cls} {
+		height: @header-height;
+		padding: 0 0 0 10px;
+		padding-right: 10px;
+		overflow: hidden;
+		font-size: 12px;
+		cursor: pointer;
+		align-items: center;
 
-    img {
-      width: 24px;
-      height: 24px;
-      margin-right: 12px;
-    }
+		img {
+			width: 24px;
+			height: 24px;
+			margin-right: 12px;
+		}
 
-    &__header {
-      border-radius: 50%;
-    }
+		&__header {
+			border-radius: 50%;
+		}
 
-    &__name {
-      font-size: 14px;
-    }
+		&__name {
+			font-size: 14px;
+		}
 
-    &--dark {
-      &:hover {
-        background-color: @header-dark-bg-hover-color;
-      }
-    }
+		&--dark {
+			&:hover {
+				background-color: @header-dark-bg-hover-color;
+			}
+		}
 
-    &--light {
-      &:hover {
-        background-color: @header-light-bg-hover-color;
-      }
+		&--light {
+			&:hover {
+				background-color: @header-light-bg-hover-color;
+			}
 
-      .@{prefix-cls}__name {
-        color: @text-color-base;
-      }
+			.@{prefix-cls}__name {
+				color: @text-color-base;
+			}
 
-      .@{prefix-cls}__desc {
-        color: @header-light-desc-color;
-      }
-    }
+			.@{prefix-cls}__desc {
+				color: @header-light-desc-color;
+			}
+		}
 
-    &-dropdown-overlay {
-      .ant-dropdown-menu-item {
-        min-width: 160px;
-      }
-    }
-  }
+		&-dropdown-overlay {
+			.ant-dropdown-menu-item {
+				min-width: 160px;
+			}
+		}
+	}
 </style>

--
Gitblit v1.9.3