Commit 14c92d616bc4ba95b9d40fe3672791cc29e434fe

Authored by xp.Huang
2 parents e6ad1fd7 74fe4ce4

Merge branch 'f-dev' into 'main'

pref:优化所有接口为蛇形命名法

See merge request huang/yun-teng-iot-front!309
@@ -7,12 +7,18 @@ @@ -7,12 +7,18 @@
7 </template> 7 </template>
8 8
9 <script lang="ts" setup> 9 <script lang="ts" setup>
10 - import { ConfigProvider } from 'ant-design-vue';  
11 - import { AppProvider } from '/@/components/Application';  
12 - import { useTitle } from '/@/hooks/web/useTitle';  
13 - import { useLocale } from '/@/locales/useLocale';  
14 - // support Multi-language  
15 - const { getAntdLocale } = useLocale(); 10 +import { ConfigProvider } from 'ant-design-vue';
  11 +import { AppProvider } from '/@/components/Application';
  12 +import { useTitle } from '/@/hooks/web/useTitle';
  13 +import { useLocale } from '/@/locales/useLocale';
  14 +// support Multi-language
  15 +const { getAntdLocale } = useLocale();
16 16
17 - useTitle(); 17 +useTitle();
18 </script> 18 </script>
  19 +
  20 +<style lang="less">
  21 +/deep/.ant-message-notice-content {
  22 + max-width: 600px !important;
  23 +}
  24 +</style>
@@ -9,13 +9,13 @@ import type { @@ -9,13 +9,13 @@ import type {
9 import { getPageData } from '../../base'; 9 import { getPageData } from '../../base';
10 import { DeviceModel, DeviceQueryParam } from '../../device/model/deviceModel'; 10 import { DeviceModel, DeviceQueryParam } from '../../device/model/deviceModel';
11 enum API { 11 enum API {
12 - alarmContact = '/alarmContact', 12 + alarmContact = '/alarm_contact',
13 updateAlarmContact = '/alarm/profile', 13 updateAlarmContact = '/alarm/profile',
14 devicePage = '/device', 14 devicePage = '/device',
15 deleteAlarmConfig = '/alarm/profile', 15 deleteAlarmConfig = '/alarm/profile',
16 getAlarmConfig = '/alarm/profile', 16 getAlarmConfig = '/alarm/profile',
17 getAlarmConfigStatus = '/alarm/profile', 17 getAlarmConfigStatus = '/alarm/profile',
18 - byOrgIdGetAlarmContactApi = '/alarmContact/', 18 + byOrgIdGetAlarmContactApi = '/alarm_contact/',
19 } 19 }
20 20
21 //根据组织id获取对应告警联系人 21 //根据组织id获取对应告警联系人
@@ -8,8 +8,8 @@ import type { @@ -8,8 +8,8 @@ import type {
8 import { getPageData } from '../../base'; 8 import { getPageData } from '../../base';
9 import { DeviceModel, DeviceQueryParam } from '../../device/model/deviceModel'; 9 import { DeviceModel, DeviceQueryParam } from '../../device/model/deviceModel';
10 enum API { 10 enum API {
11 - alarmContact = '/alarmContact',  
12 - updateAlarmContact = '/alarmContact/update', 11 + alarmContact = '/alarm_contact',
  12 + updateAlarmContact = '/alarm_contact/update',
13 devicePage = '/device', 13 devicePage = '/device',
14 } 14 }
15 15
@@ -29,7 +29,7 @@ enum DataComponentUrl { @@ -29,7 +29,7 @@ enum DataComponentUrl {
29 } 29 }
30 30
31 enum DataBoardShareUrl { 31 enum DataBoardShareUrl {
32 - GET_DATA_COMPONENT = '/noauth/share/dataBoard', 32 + GET_DATA_COMPONENT = '/noauth/share/data_board',
33 } 33 }
34 34
35 enum DeviceUrl { 35 enum DeviceUrl {
@@ -8,15 +8,15 @@ enum EDeviceConfigApi { @@ -8,15 +8,15 @@ enum EDeviceConfigApi {
8 /** 8 /**
9 * 设备配置URL 9 * 设备配置URL
10 */ 10 */
11 - DEVICE_CONFIG_GET_PAGE = '/deviceProfile',  
12 - DEVICE_CONFIG_POST_ADD_OR_EDIT = '/deviceProfile',  
13 - DEVICE_CONFIG_GET_DETAIL = '/deviceProfile/',  
14 - DEVICE_CONFIG_DELETE = '/deviceProfile',  
15 - DEVICE_CONFIG_GET_RULECHAIN = '/rulechain/me/list', 11 + DEVICE_CONFIG_GET_PAGE = '/device_profile',
  12 + DEVICE_CONFIG_POST_ADD_OR_EDIT = '/device_profile',
  13 + DEVICE_CONFIG_GET_DETAIL = '/device_profile/',
  14 + DEVICE_CONFIG_DELETE = '/device_profile',
  15 + DEVICE_CONFIG_GET_RULECHAIN = '/rule_chain/me/list',
16 ALARM_CONTACT_GET_PAGE = '/alarmContact', 16 ALARM_CONTACT_GET_PAGE = '/alarmContact',
17 - DEVICE_CONFIG_EXPORT = '/deviceProfile/export',  
18 - DEVICE_CONFIG_IMPORT = '/deviceProfile/import',  
19 - SET_DEVICE_ISDEFAULT = '/deviceProfile', 17 + DEVICE_CONFIG_EXPORT = '/device_profile/export',
  18 + DEVICE_CONFIG_IMPORT = '/device_profile/import',
  19 + SET_DEVICE_ISDEFAULT = '/device_profile',
20 FRP_API = '/frp/', 20 FRP_API = '/frp/',
21 } 21 }
22 22
@@ -14,9 +14,9 @@ enum DeviceManagerApi { @@ -14,9 +14,9 @@ enum DeviceManagerApi {
14 /** 14 /**
15 * 设备配置URL 15 * 设备配置URL
16 */ 16 */
17 - DEVICE_PROFILE_URL = '/deviceProfile', 17 + DEVICE_PROFILE_URL = '/device_profile',
18 18
19 - DEVICE_PROFILE_URL_ME = '/deviceProfile/me/list', 19 + DEVICE_PROFILE_URL_ME = '/device_profile/me/list',
20 20
21 DEVICE_ALARM_URL = '/alarm', 21 DEVICE_ALARM_URL = '/alarm',
22 22
@@ -6,8 +6,8 @@ import { @@ -6,8 +6,8 @@ import {
6 } from '/@/api/message/model/recordsModel'; 6 } from '/@/api/message/model/recordsModel';
7 7
8 enum MessageRecordsApi { 8 enum MessageRecordsApi {
9 - SMS_RECORDS = '/smsLog',  
10 - EMAIL_RECORDS = '/mailLog', 9 + SMS_RECORDS = '/sms_log',
  10 + EMAIL_RECORDS = '/mail_log',
11 } 11 }
12 12
13 /** 13 /**
@@ -19,14 +19,14 @@ enum MessageTemplateApi { @@ -19,14 +19,14 @@ enum MessageTemplateApi {
19 */ 19 */
20 export const sendSms = (params: SmsParams) => { 20 export const sendSms = (params: SmsParams) => {
21 return defHttp.post<MessageResultModel>({ 21 return defHttp.post<MessageResultModel>({
22 - url: MessageTemplateApi.TEMPLATE_URL + '/sendSms', 22 + url: MessageTemplateApi.TEMPLATE_URL + '/send_sms',
23 params, 23 params,
24 }); 24 });
25 }; 25 };
26 26
27 export const sendEmail = (params: EmailParams) => { 27 export const sendEmail = (params: EmailParams) => {
28 return defHttp.post<MessageResultModel>({ 28 return defHttp.post<MessageResultModel>({
29 - url: MessageTemplateApi.TEMPLATE_URL + '/sendEmail', 29 + url: MessageTemplateApi.TEMPLATE_URL + '/send_email',
30 params, 30 params,
31 }); 31 });
32 }; 32 };
@@ -6,9 +6,9 @@ enum API { @@ -6,9 +6,9 @@ enum API {
6 BaseUploadUrl = '/oss/upload', 6 BaseUploadUrl = '/oss/upload',
7 SELECT_PLATFORM = '/platform/get', 7 SELECT_PLATFORM = '/platform/get',
8 UPDATE_PLATFORM = '/platform/update', 8 UPDATE_PLATFORM = '/platform/update',
9 - SELECT_APP_DESIGN = '/appDesign/get',  
10 - UPDATE_APP_DESIGN = '/appDesign/update',  
11 - SELECT_AREALIST = '/area/areaList', 9 + SELECT_APP_DESIGN = '/app_design/get',
  10 + UPDATE_APP_DESIGN = '/app_design/update',
  11 + SELECT_AREALIST = '/area/list',
12 } 12 }
13 13
14 // 查询企业信息 14 // 查询企业信息
@@ -11,13 +11,13 @@ enum ScreenManagerApi { @@ -11,13 +11,13 @@ enum ScreenManagerApi {
11 /** 11 /**
12 * 场景URL 12 * 场景URL
13 */ 13 */
14 - SCREEN_GET_URL = '/sceneLinkage',  
15 - SCREEN_ADD_URL = '/sceneLinkage',  
16 - SCREEN_DELETE_URL = '/sceneLinkage',  
17 - SCREEN_UPDATE_URL = '/sceneLinkage/update', 14 + SCREEN_GET_URL = '/scene_linkage',
  15 + SCREEN_ADD_URL = '/scene_linkage',
  16 + SCREEN_DELETE_URL = '/scene_linkage',
  17 + SCREEN_UPDATE_URL = '/scene_linkage/update',
18 SCREEN_ORGANIZATION_URL = '/organization/me/list', 18 SCREEN_ORGANIZATION_URL = '/organization/me/list',
19 SCREEN_CHANGE_STATUS = '/convert/update/scene', 19 SCREEN_CHANGE_STATUS = '/convert/update/scene',
20 - SCREEN_GET_BY_DEPTID = '/sceneLinkage/device/', 20 + SCREEN_GET_BY_DEPTID = '/scene_linkage/device/',
21 GET_ATTRBUTELIST = '/device/keys', 21 GET_ATTRBUTELIST = '/device/keys',
22 ALARM_PROFILE = '/alarm/profile/', 22 ALARM_PROFILE = '/alarm/profile/',
23 MASTER_GET_DEVICE = '/device/list/master', 23 MASTER_GET_DEVICE = '/device/list/master',
@@ -8,12 +8,12 @@ enum ReportManagerApi { @@ -8,12 +8,12 @@ enum ReportManagerApi {
8 PUT_REPORT_API = '/monitor/job/update', 8 PUT_REPORT_API = '/monitor/job/update',
9 PUTID_REPORT_API = '/monitor/job', 9 PUTID_REPORT_API = '/monitor/job',
10 RUN_REPORT_API = '/monitor/job/run', 10 RUN_REPORT_API = '/monitor/job/run',
11 - JOB_LOG_DETAIL_API = '/monitor/jobLog/get/',  
12 - JOB_LOG_PAGE_API = '/monitor/jobLog/page',  
13 - DELETE_LOG_API = '/monitor/jobLog',  
14 - POST_LOG_CLEAN_API = '/monitor/jobLog/clean',  
15 - QUERY_CORN_API = '/monitor/job/queryCronExpression/',  
16 - CHECK_CORN_API = '/monitor/job/checkCron/', 11 + JOB_LOG_DETAIL_API = '/monitor/job_log/get/',
  12 + JOB_LOG_PAGE_API = '/monitor/job_log/page',
  13 + DELETE_LOG_API = '/monitor/job_log',
  14 + POST_LOG_CLEAN_API = '/monitor/job_log/clean',
  15 + QUERY_CORN_API = '/monitor/job/query_cron_expression/',
  16 + CHECK_CORN_API = '/monitor/job/check_cron/',
17 } 17 }
18 18
19 //分页 19 //分页
@@ -53,7 +53,7 @@ export const putSchedueConfigManage = (data) => { @@ -53,7 +53,7 @@ export const putSchedueConfigManage = (data) => {
53 // 修改状态 id status 53 // 修改状态 id status
54 export const putSchedueByidAndStatusManage = (id, status) => { 54 export const putSchedueByidAndStatusManage = (id, status) => {
55 return defHttp.put<ReportModel>({ 55 return defHttp.put<ReportModel>({
56 - url: ReportManagerApi.PUTID_REPORT_API + '/changeStatus/' + id + '/' + status, 56 + url: ReportManagerApi.PUTID_REPORT_API + '/change_status/' + id + '/' + status,
57 }); 57 });
58 }; 58 };
59 //执行一次 59 //执行一次
@@ -15,10 +15,10 @@ enum NotifyManagerApi { @@ -15,10 +15,10 @@ enum NotifyManagerApi {
15 NOTICE_ADD_DRAFT_URL = '/notice/save', 15 NOTICE_ADD_DRAFT_URL = '/notice/save',
16 NOTICE_ADD_LEASE_URL = '/notice/send', 16 NOTICE_ADD_LEASE_URL = '/notice/send',
17 NOTICE_DELETE_URL = '/notice/delete', 17 NOTICE_DELETE_URL = '/notice/delete',
18 - NOTICE_GET_MYDETAIL_URL = '/noticeUser',  
19 - NOTICE_GET_PAGE_URL = '/noticeUser/page',  
20 - NOTICE_GET_READ_URL = '/noticeUser/read',  
21 - NOTICE_GET_DICT_URL = '/dictItem', 18 + NOTICE_GET_MYDETAIL_URL = '/notice_user',
  19 + NOTICE_GET_PAGE_URL = '/notice_user/page',
  20 + NOTICE_GET_READ_URL = '/notice_user/read',
  21 + NOTICE_GET_DICT_URL = '/dict_item',
22 NOTICE_GET_DEPT_URL = '/organization/me/organizations', 22 NOTICE_GET_DEPT_URL = '/organization/me/organizations',
23 } 23 }
24 24
@@ -7,7 +7,7 @@ enum Api { @@ -7,7 +7,7 @@ enum Api {
7 BaseMenuUrl = '/menu', 7 BaseMenuUrl = '/menu',
8 GetMenuList = '/menu/me/menus', 8 GetMenuList = '/menu/me/menus',
9 SysAdminMenuList = '/admin/me/menus', 9 SysAdminMenuList = '/admin/me/menus',
10 - GetMenuIdsByRoleId = '/menu/getMenuIdsByRoleId/', 10 + GetMenuIdsByRoleId = '/menu/get_ids/',
11 } 11 }
12 12
13 /** 13 /**
@@ -18,8 +18,8 @@ enum Api { @@ -18,8 +18,8 @@ enum Api {
18 GetMyInfo = '/user/me/info', 18 GetMyInfo = '/user/me/info',
19 GetPermCode = '/role/me/permissions', 19 GetPermCode = '/role/me/permissions',
20 RefreshToken = '/auth/token', 20 RefreshToken = '/auth/token',
21 - SendLoginSmsCode = '/noauth/sendLoginSmsCode/',  
22 - ResetCode = '/noauth/resetCode/', 21 + SendLoginSmsCode = '/noauth/send_login_code/',
  22 + ResetCode = '/noauth/reset_code/',
23 ResetPassword = '/noauth/reset/', 23 ResetPassword = '/noauth/reset/',
24 } 24 }
25 25
@@ -12,7 +12,7 @@ import { @@ -12,7 +12,7 @@ import {
12 12
13 enum SysDictApi { 13 enum SysDictApi {
14 CONFIG_URL = '/dict', 14 CONFIG_URL = '/dict',
15 - CONFIG_ITEM_URL = '/dictItem', 15 + CONFIG_ITEM_URL = '/dict_item',
16 } 16 }
17 17
18 /** 18 /**
@@ -22,13 +22,13 @@ import { defHttp } from '/@/utils/http/axios'; @@ -22,13 +22,13 @@ import { defHttp } from '/@/utils/http/axios';
22 22
23 enum Api { 23 enum Api {
24 AccountList = '/user/page', 24 AccountList = '/user/page',
25 - IsAccountExist = '/user/accountExist/',  
26 - IsPhoneExist = '/user/findUserByPhoneNumber/', 25 + IsAccountExist = '/user/account_exist/',
  26 + IsPhoneExist = '/user/get_user/',
27 DeptList = '/dept/all', 27 DeptList = '/dept/all',
28 - setRoleStatus = '/role/updateRoleStatus/', 28 + setRoleStatus = '/role/update_status/',
29 MenuList = '/system/getMenuList', 29 MenuList = '/system/getMenuList',
30 RolePageList = '/role', 30 RolePageList = '/role',
31 - SaveOrUpdateRoleInfoWithMenu = '/role/saveOrUpdateRoleInfoWithMenu', 31 + SaveOrUpdateRoleInfoWithMenu = '/role/save_with_menu',
32 DeleteRole = '/role', 32 DeleteRole = '/role',
33 GetAllRoleList = '/role/find/list', 33 GetAllRoleList = '/role/find/list',
34 BaseUserUrl = '/user', 34 BaseUserUrl = '/user',
@@ -22,15 +22,15 @@ export type OtherParams = { @@ -22,15 +22,15 @@ export type OtherParams = {
22 enum Api { 22 enum Api {
23 userPage = '/user/page', 23 userPage = '/user/page',
24 tenantPage = '/admin/tenant/page', 24 tenantPage = '/admin/tenant/page',
25 - saveTenantAdmin = '/user/saveTenantAdmin', 25 + saveTenantAdmin = '/user/save_tenant_admin',
26 updateOrCreateTenant = '/admin/tenant/updateOrCreateTenant', 26 updateOrCreateTenant = '/admin/tenant/updateOrCreateTenant',
27 deleteTenant = '/admin/tenant', 27 deleteTenant = '/admin/tenant',
28 - resetTenantAdminPassword = '/tenant/resetPassword/', 28 + resetTenantAdminPassword = '/tenant/reset_password/',
29 sendMessageOrEmail = '/tenant/sendRestPasswordMsg', 29 sendMessageOrEmail = '/tenant/sendRestPasswordMsg',
30 deleteTenantAdmin = '/admin/user/deleteTenantAdmin', 30 deleteTenantAdmin = '/admin/user/deleteTenantAdmin',
31 getTenantRoles = '/admin/tenant/roles/', 31 getTenantRoles = '/admin/tenant/roles/',
32 postAddTenantProfile = '/tenantProfile', 32 postAddTenantProfile = '/tenantProfile',
33 - getTenantProfile = '/tenantProfiles', 33 + getTenantProfile = '/tenant_profiles',
34 deleteTenantProfile = '/tenantProfile', 34 deleteTenantProfile = '/tenantProfile',
35 setTenantProfile = '/tenantProfile', 35 setTenantProfile = '/tenantProfile',
36 } 36 }
@@ -30,7 +30,7 @@ @@ -30,7 +30,7 @@
30 :actions="[ 30 :actions="[
31 { 31 {
32 label: '编辑', 32 label: '编辑',
33 - auth: 'api:yt:alarmContact:update', 33 + auth: 'api:yt:alarmContact:update:update',
34 icon: 'clarity:note-edit-line', 34 icon: 'clarity:note-edit-line',
35 onClick: handleCreateOrEdit.bind(null, record), 35 onClick: handleCreateOrEdit.bind(null, record),
36 }, 36 },
1 <template> 1 <template>
2 - <div  
3 - :style="{ backgroundImage: 'url(' + (logoUrl !== undefined ? logoUrl : '') + ')' }"  
4 - :class="prefixCls"  
5 - class="relative w-full h-full px-4"  
6 - >  
7 - <AppLocalePicker  
8 - class="absolute text-white top-4 right-4 enter-x xl:text-gray-600"  
9 - :showText="false"  
10 - v-if="!sessionTimeout && showLocale"  
11 - /> 2 + <div :style="{ backgroundImage: 'url(' + (logoUrl !== undefined ? logoUrl : '') + ')',backgroundSize:'100% 100%;' }"
  3 + :class="prefixCls" class="relative w-full h-full px-4">
  4 + <AppLocalePicker class="absolute text-white top-4 right-4 enter-x xl:text-gray-600" :showText="false"
  5 + v-if="!sessionTimeout && showLocale" />
12 <AppDarkModeToggle class="absolute top-3 right-7 enter-x" v-if="!sessionTimeout" /> 6 <AppDarkModeToggle class="absolute top-3 right-7 enter-x" v-if="!sessionTimeout" />
13 7
14 <span class="-enter-x xl:hidden"> 8 <span class="-enter-x xl:hidden">
@@ -20,31 +14,20 @@ @@ -20,31 +14,20 @@
20 <div class="hidden min-h-full pl-4 mr-4 xl:flex xl:flex-col xl:w-6/12"> 14 <div class="hidden min-h-full pl-4 mr-4 xl:flex xl:flex-col xl:w-6/12">
21 <!-- <AppLogo class="-enter-x" /> --> 15 <!-- <AppLogo class="-enter-x" /> -->
22 <div style="display: flex; margin-top: 10px"> 16 <div style="display: flex; margin-top: 10px">
23 - <img  
24 - v-if="defaultLogo || getLogo"  
25 - :src="defaultLogo || getLogo"  
26 - style="width: 48px; height: 48px"  
27 - /> 17 + <img v-if="defaultLogo || getLogo" :src="defaultLogo || getLogo" style="width: 48px; height: 48px" />
28 <img style="width: 48px; height: 48px" v-else src="/src/assets/images/logo.png" /> 18 <img style="width: 48px; height: 48px" v-else src="/src/assets/images/logo.png" />
29 - <div  
30 - class="ml-2 truncate md:opacity-100"  
31 - style=" 19 + <div class="ml-2 truncate md:opacity-100" style="
32 line-height: 45px; 20 line-height: 45px;
33 margin-left: 5px; 21 margin-left: 5px;
34 font-size: 24px; 22 font-size: 24px;
35 color: #fff; 23 color: #fff;
36 font-weight: 700; 24 font-weight: 700;
37 - "  
38 - > 25 + ">
39 {{ defaultTitle || getTitle }} 26 {{ defaultTitle || getTitle }}
40 </div> 27 </div>
41 </div> 28 </div>
42 <div v-if="ifCustom" class="my-auto"> 29 <div v-if="ifCustom" class="my-auto">
43 - <img  
44 - :alt="title"  
45 - src="../../../assets/svg/thingskit-login-background.svg"  
46 - class="w-1/2 -mt-16 -enter-x"  
47 - /> 30 + <img :alt="title" src="../../../assets/svg/thingskit-login-background.svg" class="w-1/2 -mt-16 -enter-x" />
48 <div class="mt-10 font-medium text-white -enter-x"> 31 <div class="mt-10 font-medium text-white -enter-x">
49 <span class="inline-block mt-4 text-3xl"> {{ t('sys.login.signInTitle') }}</span> 32 <span class="inline-block mt-4 text-3xl"> {{ t('sys.login.signInTitle') }}</span>
50 </div> 33 </div>
@@ -54,10 +37,8 @@ @@ -54,10 +37,8 @@
54 </div> 37 </div>
55 </div> 38 </div>
56 <div class="flex w-full h-full py-5 xl:h-auto xl:py-0 xl:my-0 xl:w-6/12"> 39 <div class="flex w-full h-full py-5 xl:h-auto xl:py-0 xl:my-0 xl:w-6/12">
57 - <div  
58 - :class="`${prefixCls}-form`"  
59 - class="relative w-full px-5 py-8 mx-auto my-auto rounded-md shadow-md xl:ml-16 xl:bg-transparent sm:px-8 xl:p-4 xl:shadow-none sm:w-3/4 lg:w-2/4 xl:w-auto enter-x"  
60 - > 40 + <div :class="`${prefixCls}-form`"
  41 + class="relative w-full px-5 py-8 mx-auto my-auto rounded-md shadow-md xl:ml-16 xl:bg-transparent sm:px-8 xl:p-4 xl:shadow-none sm:w-3/4 lg:w-2/4 xl:w-auto enter-x">
61 <LoginForm /> 42 <LoginForm />
62 <ForgetPasswordForm /> 43 <ForgetPasswordForm />
63 <RegisterForm /> 44 <RegisterForm />
@@ -69,213 +50,213 @@ @@ -69,213 +50,213 @@
69 </div> 50 </div>
70 </template> 51 </template>
71 <script lang="ts" setup> 52 <script lang="ts" setup>
72 - import { computed, ref, onMounted } from 'vue';  
73 - // import { AppLogo } from '/@/components/Application';  
74 - import { AppLocalePicker, AppDarkModeToggle } from '/@/components/Application';  
75 - import LoginForm from './LoginForm.vue';  
76 - import ForgetPasswordForm from './ForgetPasswordForm.vue';  
77 - import RegisterForm from './RegisterForm.vue';  
78 - import MobileForm from './MobileForm.vue';  
79 - import { useGlobSetting } from '/@/hooks/setting';  
80 - import { useI18n } from '/@/hooks/web/useI18n';  
81 - import { useDesign } from '/@/hooks/web/useDesign';  
82 - import { useLocaleStore } from '/@/store/modules/locale';  
83 - import { useUserStore } from '/@/store/modules/user';  
84 - import { getPlatForm } from '/@/api/oem/index';  
85 -  
86 - defineProps({  
87 - sessionTimeout: {  
88 - type: Boolean,  
89 - },  
90 - });  
91 - const defaultTitle = ref('');  
92 - const defaultLogo = ref('');  
93 - const logoUrl = ref('');  
94 - onMounted(async () => {  
95 - const res = await getPlatForm();  
96 - logoUrl.value = res?.background;  
97 - defaultTitle.value = res?.name;  
98 - defaultLogo.value = res?.logo;  
99 - if (logoUrl.value !== undefined) {  
100 - ifCustom.value = false;  
101 - } else {  
102 - const defaultLogo = 'src/assets/svg/login-bg.svg';  
103 - logoUrl.value = 'url(' + defaultLogo + ')';  
104 - }  
105 - });  
106 -  
107 - const userStore = useUserStore();  
108 -  
109 - const ifCustom = ref(true);  
110 - const getLogo = computed(() => {  
111 - return userStore.platInfo?.logo;  
112 - });  
113 - const { title } = useGlobSetting();  
114 - const getTitle = computed(() => {  
115 - // 设置icon  
116 - let link = (document.querySelector("link[rel*='icon']") ||  
117 - document.createElement('link')) as HTMLLinkElement;  
118 - link.type = 'image/x-icon';  
119 - link.rel = 'shortcut icon';  
120 - link.href = userStore.platInfo?.icon ?? '/favicon.ico';  
121 - document.getElementsByTagName('head')[0].appendChild(link);  
122 - logoUrl.value = userStore.platInfo?.background;  
123 - if (logoUrl.value !== undefined) {  
124 - ifCustom.value = false;  
125 - } else {  
126 - const defaultLogo = 'src/assets/svg/login-bg.svg';  
127 - logoUrl.value = 'url(' + defaultLogo + ')';  
128 - }  
129 - return userStore.platInfo?.name ?? title;  
130 - });  
131 - // const globSetting = useGlobSetting();  
132 - const { prefixCls } = useDesign('login');  
133 - const { t } = useI18n();  
134 - const localeStore = useLocaleStore();  
135 - const showLocale = localeStore.getShowPicker; 53 +import { computed, ref, onMounted } from 'vue';
  54 +// import { AppLogo } from '/@/components/Application';
  55 +import { AppLocalePicker, AppDarkModeToggle } from '/@/components/Application';
  56 +import LoginForm from './LoginForm.vue';
  57 +import ForgetPasswordForm from './ForgetPasswordForm.vue';
  58 +import RegisterForm from './RegisterForm.vue';
  59 +import MobileForm from './MobileForm.vue';
  60 +import { useGlobSetting } from '/@/hooks/setting';
  61 +import { useI18n } from '/@/hooks/web/useI18n';
  62 +import { useDesign } from '/@/hooks/web/useDesign';
  63 +import { useLocaleStore } from '/@/store/modules/locale';
  64 +import { useUserStore } from '/@/store/modules/user';
  65 +import { getPlatForm } from '/@/api/oem/index';
  66 +
  67 +defineProps({
  68 + sessionTimeout: {
  69 + type: Boolean,
  70 + },
  71 +});
  72 +const defaultTitle = ref('');
  73 +const defaultLogo = ref('');
  74 +const logoUrl = ref('');
  75 +onMounted(async () => {
  76 + const res = await getPlatForm();
  77 + logoUrl.value = res?.background;
  78 + defaultTitle.value = res?.name;
  79 + defaultLogo.value = res?.logo;
  80 + if (logoUrl.value !== undefined) {
  81 + ifCustom.value = false;
  82 + } else {
  83 + const defaultLogo = 'src/assets/svg/login-bg.svg';
  84 + logoUrl.value = 'url(' + defaultLogo + ')';
  85 + }
  86 +});
  87 +
  88 +const userStore = useUserStore();
  89 +
  90 +const ifCustom = ref(true);
  91 +const getLogo = computed(() => {
  92 + return userStore.platInfo?.logo;
  93 +});
  94 +const { title } = useGlobSetting();
  95 +const getTitle = computed(() => {
  96 + // 设置icon
  97 + let link = (document.querySelector("link[rel*='icon']") ||
  98 + document.createElement('link')) as HTMLLinkElement;
  99 + link.type = 'image/x-icon';
  100 + link.rel = 'shortcut icon';
  101 + link.href = userStore.platInfo?.icon ?? '/favicon.ico';
  102 + document.getElementsByTagName('head')[0].appendChild(link);
  103 + logoUrl.value = userStore.platInfo?.background;
  104 + if (logoUrl.value !== undefined) {
  105 + ifCustom.value = false;
  106 + } else {
  107 + const defaultLogo = 'src/assets/svg/login-bg.svg';
  108 + logoUrl.value = 'url(' + defaultLogo + ')';
  109 + }
  110 + return userStore.platInfo?.name ?? title;
  111 +});
  112 +// const globSetting = useGlobSetting();
  113 +const { prefixCls } = useDesign('login');
  114 +const { t } = useI18n();
  115 +const localeStore = useLocaleStore();
  116 +const showLocale = localeStore.getShowPicker;
136 // const title = computed(() => globSetting?.title ?? ''); 117 // const title = computed(() => globSetting?.title ?? '');
137 </script> 118 </script>
138 <style lang="less"> 119 <style lang="less">
139 - @prefix-cls: ~'@{namespace}-login';  
140 - @logo-prefix-cls: ~'@{namespace}-app-logo';  
141 - @countdown-prefix-cls: ~'@{namespace}-countdown-input';  
142 - @dark-bg: #293146; 120 +@prefix-cls: ~'@{namespace}-login';
  121 +@logo-prefix-cls: ~'@{namespace}-app-logo';
  122 +@countdown-prefix-cls: ~'@{namespace}-countdown-input';
  123 +@dark-bg: #293146;
143 124
144 - html[data-theme='dark'] {  
145 - .@{prefix-cls} {  
146 - background-color: @dark-bg; 125 +html[data-theme='dark'] {
  126 + .@{prefix-cls} {
  127 + background-color: @dark-bg;
147 128
148 - &::before {  
149 - background-image: url(/@/assets/svg/login-bg-dark.svg);  
150 - } 129 + &::before {
  130 + background-image: url(/@/assets/svg/login-bg-dark.svg);
  131 + }
151 132
152 - .ant-input,  
153 - .ant-input-password {  
154 - background-color: #232a3b;  
155 - } 133 + .ant-input,
  134 + .ant-input-password {
  135 + background-color: #232a3b;
  136 + }
156 137
157 - .ant-btn:not(.ant-btn-link):not(.ant-btn-primary) {  
158 - border: 1px solid #4a5569;  
159 - } 138 + .ant-btn:not(.ant-btn-link):not(.ant-btn-primary) {
  139 + border: 1px solid #4a5569;
  140 + }
160 141
161 - &-form {  
162 - background: transparent !important;  
163 - } 142 + &-form {
  143 + background: transparent !important;
  144 + }
164 145
165 - .app-iconify {  
166 - color: #fff;  
167 - } 146 + .app-iconify {
  147 + color: #fff;
168 } 148 }
  149 + }
169 150
170 - input.fix-auto-fill,  
171 - .fix-auto-fill input {  
172 - -webkit-text-fill-color: #c9d1d9 !important;  
173 - box-shadow: inherit !important; 151 + input.fix-auto-fill,
  152 + .fix-auto-fill input {
  153 + -webkit-text-fill-color: #c9d1d9 !important;
  154 + box-shadow: inherit !important;
  155 + }
  156 +}
  157 +
  158 +.@{prefix-cls} {
  159 + min-height: 100%;
  160 + overflow: hidden;
  161 +
  162 + @media (max-width: @screen-xl) {
  163 + background-color: #293146;
  164 +
  165 + .@{prefix-cls}-form {
  166 + background-color: #fff;
174 } 167 }
175 } 168 }
176 169
177 - .@{prefix-cls} {  
178 - min-height: 100%;  
179 - overflow: hidden; 170 + &::before {
  171 + position: absolute;
  172 + top: 0;
  173 + left: 0;
  174 + width: 100%;
  175 + height: 100%;
  176 + margin-left: -48%;
  177 + background-image: v-bind(logoUrl);
  178 + // background-image: url(/@/assets/svg/login-bg.svg);
  179 + background-position: 100%;
  180 + background-repeat: no-repeat;
  181 + background-size: auto 100%;
  182 + content: '';
180 183
181 @media (max-width: @screen-xl) { 184 @media (max-width: @screen-xl) {
182 - background-color: #293146; 185 + display: none;
  186 + }
  187 + }
183 188
184 - .@{prefix-cls}-form {  
185 - background-color: #fff;  
186 - } 189 + .@{logo-prefix-cls} {
  190 + position: absolute;
  191 + top: 12px;
  192 + height: 30px;
  193 +
  194 + &__title {
  195 + font-size: 16px;
  196 + color: #fff;
187 } 197 }
188 198
189 - &::before {  
190 - position: absolute;  
191 - top: 0;  
192 - left: 0;  
193 - width: 100%;  
194 - height: 100%;  
195 - margin-left: -48%;  
196 - background-image: v-bind(logoUrl);  
197 - // background-image: url(/@/assets/svg/login-bg.svg);  
198 - background-position: 100%;  
199 - background-repeat: no-repeat;  
200 - background-size: auto 100%;  
201 - content: '';  
202 -  
203 - @media (max-width: @screen-xl) {  
204 - display: none;  
205 - } 199 + img {
  200 + width: 32px;
206 } 201 }
  202 + }
207 203
  204 + .container {
208 .@{logo-prefix-cls} { 205 .@{logo-prefix-cls} {
209 - position: absolute;  
210 - top: 12px;  
211 - height: 30px; 206 + display: flex;
  207 + width: 60%;
  208 + height: 80px;
212 209
213 &__title { 210 &__title {
214 - font-size: 16px; 211 + font-size: 24px;
215 color: #fff; 212 color: #fff;
216 } 213 }
217 214
218 img { 215 img {
219 - width: 32px; 216 + width: 48px;
220 } 217 }
221 } 218 }
  219 + }
222 220
223 - .container {  
224 - .@{logo-prefix-cls} {  
225 - display: flex;  
226 - width: 60%;  
227 - height: 80px;  
228 -  
229 - &__title {  
230 - font-size: 24px;  
231 - color: #fff;  
232 - } 221 + &-sign-in-way {
  222 + .anticon {
  223 + font-size: 22px;
  224 + color: #888;
  225 + cursor: pointer;
233 226
234 - img {  
235 - width: 48px;  
236 - } 227 + &:hover {
  228 + color: @primary-color;
237 } 229 }
238 } 230 }
  231 + }
239 232
240 - &-sign-in-way {  
241 - .anticon {  
242 - font-size: 22px;  
243 - color: #888;  
244 - cursor: pointer; 233 + input:not([type='checkbox']) {
  234 + min-width: 360px;
245 235
246 - &:hover {  
247 - color: @primary-color;  
248 - }  
249 - } 236 + @media (max-width: @screen-xl) {
  237 + min-width: 320px;
250 } 238 }
251 239
252 - input:not([type='checkbox']) {  
253 - min-width: 360px;  
254 -  
255 - @media (max-width: @screen-xl) {  
256 - min-width: 320px;  
257 - }  
258 -  
259 - @media (max-width: @screen-lg) {  
260 - min-width: 260px;  
261 - }  
262 -  
263 - @media (max-width: @screen-md) {  
264 - min-width: 240px;  
265 - }  
266 -  
267 - @media (max-width: @screen-sm) {  
268 - min-width: 160px;  
269 - } 240 + @media (max-width: @screen-lg) {
  241 + min-width: 260px;
270 } 242 }
271 243
272 - .@{countdown-prefix-cls} input {  
273 - min-width: unset; 244 + @media (max-width: @screen-md) {
  245 + min-width: 240px;
274 } 246 }
275 247
276 - .ant-divider-inner-text {  
277 - font-size: 12px;  
278 - color: @text-color-secondary; 248 + @media (max-width: @screen-sm) {
  249 + min-width: 160px;
279 } 250 }
280 } 251 }
  252 +
  253 + .@{countdown-prefix-cls} input {
  254 + min-width: unset;
  255 + }
  256 +
  257 + .ant-divider-inner-text {
  258 + font-size: 12px;
  259 + color: @text-color-secondary;
  260 + }
  261 +}
281 </style> 262 </style>