giime 0.5.0 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.css +16 -16
- package/es/components/src/business/loginDialog/LoginDialog.vue.d.ts +9 -0
- package/es/components/src/business/loginDialog/LoginDialog.vue2.mjs +1 -1
- package/es/components/src/business/loginDialog/LoginDialog.vue2.mjs.map +1 -1
- package/es/components/src/business/loginDialog/loginDialog.d.ts +7 -0
- package/es/components/src/business/loginDialog/loginDialog.mjs +7 -0
- package/es/components/src/business/loginDialog/loginDialog.mjs.map +1 -1
- package/es/giime/version.d.ts +1 -1
- package/es/giime/version.mjs +1 -1
- package/es/giime/version.mjs.map +1 -1
- package/es/index.css +16 -16
- package/es/utils/src/http/createAxios.mjs +2 -10
- package/es/utils/src/http/createAxios.mjs.map +1 -1
- package/lib/components/src/business/loginDialog/LoginDialog.vue.d.ts +9 -0
- package/lib/components/src/business/loginDialog/LoginDialog.vue2.js +1 -1
- package/lib/components/src/business/loginDialog/LoginDialog.vue2.js.map +1 -1
- package/lib/components/src/business/loginDialog/loginDialog.d.ts +7 -0
- package/lib/components/src/business/loginDialog/loginDialog.js +7 -0
- package/lib/components/src/business/loginDialog/loginDialog.js.map +1 -1
- package/lib/giime/version.d.ts +1 -1
- package/lib/giime/version.js +1 -1
- package/lib/giime/version.js.map +1 -1
- package/lib/index.css +16 -16
- package/lib/utils/src/http/createAxios.js +2 -10
- package/lib/utils/src/http/createAxios.js.map +1 -1
- package/package.json +1 -1
package/dist/index.css
CHANGED
|
@@ -777,22 +777,6 @@ video {
|
|
|
777
777
|
.gm-group:hover .group-hover\:gm-block {
|
|
778
778
|
display: block;
|
|
779
779
|
}
|
|
780
|
-
.gm-upload-material .el-overlay-dialog {
|
|
781
|
-
display: flex;
|
|
782
|
-
align-items: center;
|
|
783
|
-
justify-content: center;
|
|
784
|
-
}
|
|
785
|
-
.gm-upload-material .el-dialog {
|
|
786
|
-
margin: 0;
|
|
787
|
-
}
|
|
788
|
-
.gm-upload-material .el-dialog__body {
|
|
789
|
-
max-height: calc(100vh - 100px);
|
|
790
|
-
overflow-y: auto;
|
|
791
|
-
}
|
|
792
|
-
.gm-upload-material .el-dialog__body video,
|
|
793
|
-
.gm-upload-material .el-dialog__body img {
|
|
794
|
-
max-height: calc(100vh - 150px);
|
|
795
|
-
}
|
|
796
780
|
[data-v-7c80c3b6] .el-upload-dragger {
|
|
797
781
|
padding: 10px;
|
|
798
782
|
border: none;
|
|
@@ -809,6 +793,22 @@ video {
|
|
|
809
793
|
align-items: center;
|
|
810
794
|
justify-content: center;
|
|
811
795
|
}
|
|
796
|
+
.gm-upload-material .el-overlay-dialog {
|
|
797
|
+
display: flex;
|
|
798
|
+
align-items: center;
|
|
799
|
+
justify-content: center;
|
|
800
|
+
}
|
|
801
|
+
.gm-upload-material .el-dialog {
|
|
802
|
+
margin: 0;
|
|
803
|
+
}
|
|
804
|
+
.gm-upload-material .el-dialog__body {
|
|
805
|
+
max-height: calc(100vh - 100px);
|
|
806
|
+
overflow-y: auto;
|
|
807
|
+
}
|
|
808
|
+
.gm-upload-material .el-dialog__body video,
|
|
809
|
+
.gm-upload-material .el-dialog__body img {
|
|
810
|
+
max-height: calc(100vh - 150px);
|
|
811
|
+
}
|
|
812
812
|
.gm-flex-center[data-v-2a79bac9] {
|
|
813
813
|
align-items: center;
|
|
814
814
|
}
|
|
@@ -11,6 +11,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
11
11
|
type: NumberConstructor;
|
|
12
12
|
default: () => number;
|
|
13
13
|
};
|
|
14
|
+
redirectUrlField: {
|
|
15
|
+
type: StringConstructor;
|
|
16
|
+
default: () => string;
|
|
17
|
+
};
|
|
14
18
|
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
15
19
|
needRealodRouteNames: {
|
|
16
20
|
type: import("vue").PropType<string[]>;
|
|
@@ -24,9 +28,14 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
24
28
|
type: NumberConstructor;
|
|
25
29
|
default: () => number;
|
|
26
30
|
};
|
|
31
|
+
redirectUrlField: {
|
|
32
|
+
type: StringConstructor;
|
|
33
|
+
default: () => string;
|
|
34
|
+
};
|
|
27
35
|
}>>, {
|
|
28
36
|
needRealodRouteNames: string[];
|
|
29
37
|
needScanningRouteNames: string[];
|
|
30
38
|
system: number;
|
|
39
|
+
redirectUrlField: string;
|
|
31
40
|
}, {}>;
|
|
32
41
|
export default _default;
|
|
@@ -42,7 +42,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
42
42
|
if (route.value && props.needScanningRouteNames.includes(route.value?.name?.toString() ?? "")) {
|
|
43
43
|
loginUrl.value += "&is_dashboard=1";
|
|
44
44
|
}
|
|
45
|
-
loginUrl.value +=
|
|
45
|
+
loginUrl.value += `&${props.redirectUrlField}=${protocol}//${host}${myPath}`;
|
|
46
46
|
console.log(loginUrl.value);
|
|
47
47
|
};
|
|
48
48
|
watch(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoginDialog.vue2.mjs","sources":["../../../../../../../packages/components/src/business/loginDialog/LoginDialog.vue"],"sourcesContent":["<script lang=\"ts\">\nconst loginEnvKey = 'VITE_GIIME_LOGIN_URL'\n</script>\n<template>\
|
|
1
|
+
{"version":3,"file":"LoginDialog.vue2.mjs","sources":["../../../../../../../packages/components/src/business/loginDialog/LoginDialog.vue"],"sourcesContent":["<script lang=\"ts\">\nconst loginEnvKey = 'VITE_GIIME_LOGIN_URL'\n</script>\n<template>\n <div v-if=\"isSSRShowDialog\">\n <el-dialog v-model=\"loginStore.showLogin\" width=\"80%\" append-to-body>\n <iframe v-if=\"loginStore.showLogin\" class=\"gm-h-[600px] gm-w-full\" :src=\"loginUrl\" />\n </el-dialog>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue';\nimport { ElDialog } from 'element-plus';\nimport Cookies from 'js-cookie';\n// import router from 'vue-router';\nimport { useLoginStore } from '@giime/hooks';\nimport { useGlobalConfig } from '@giime/hooks/base/useGlobalConfig';\nimport { isString } from '@giime/utils';\nimport { loginDialogProps } from './loginDialog';\n\nconst props = defineProps(loginDialogProps);\nconst router = useGlobalConfig('router');\n\n// const router = useRouter();\nconst route = computed(() => (router.value ? router.value.currentRoute.value : undefined));\nconst loginStore = useLoginStore();\nconst loginUrl = ref('');\nconst viteModes = [\n { mode: 'development', loginUrl: 'http://sso-dev.giikin.cn/admin/login/index.html' },\n { mode: 'test', loginUrl: 'http://sso-dev.giikin.cn/admin/login/index.html' },\n { mode: 'production', loginUrl: 'https://gsso.giikin.com/admin/login/logout.html' },\n];\n\n\nconst importMetaEnv = useGlobalConfig('env');\nconst isSSRShowDialog = ref(importMetaEnv.value.SSR === false);\nlet originLoginUrl = ``;\nif (isString(importMetaEnv.value[loginEnvKey])) {\n originLoginUrl = importMetaEnv.value[loginEnvKey];\n} else {\n const curMode = viteModes.find(item => item.mode == importMetaEnv.value.MODE);\n originLoginUrl = curMode?.loginUrl ?? 'https://gsso.giikin.com/admin/login/logout.html';\n}\nconst login = () => {\n const protocol = window.location.protocol;\n const host = window.location.host;\n const myPath = window.location.pathname;\n\n loginUrl.value = `${originLoginUrl}?_system=${props.system}`;\n if (route.value && props.needScanningRouteNames.includes(route.value?.name?.toString() ?? '')) {\n loginUrl.value += '&is_dashboard=1';\n }\n\n loginUrl.value += `&${props.redirectUrlField}=${protocol}//${host}${myPath}`;\n\n // eslint-disable-next-line no-console\n console.log(loginUrl.value);\n};\nwatch(\n () => loginStore.showLogin,\n value => {\n if (value) {\n login();\n }\n },\n);\n// 超过5分钟没扫码 会不能扫码 定时没登录的话3分钟刷新次\nconst reloadTimer = ref<number>();\nif (route.value) {\n watch(route, (newValue, oldValue) => {\n if (!oldValue || !newValue) {\n return;\n }\n if (oldValue.name && props.needScanningRouteNames.includes(oldValue.name.toString())) {\n window.clearInterval(reloadTimer.value);\n }\n if (newValue.name && props.needScanningRouteNames.includes(newValue.name.toString())) {\n reloadTimer.value = window.setInterval(\n () => {\n if (!loginStore.showLogin) {\n return;\n }\n // 登录超时后 3分钟刷新次页面\n window.location.reload();\n },\n 3 * 60 * 1000,\n );\n }\n });\n}\n\nonMounted(() => {\n isSSRShowDialog.value = true;\n if (loginStore.showLogin) {\n login();\n }\n // iframe事件监听\n window.addEventListener('message', async e => {\n // 刷新登陆状态\n if (e.data.type == 'giikin-Logged') {\n // eslint-disable-next-line no-console\n console.log(e.data);\n const token = Cookies.get('token');\n if (\n // 测试环境 但是需要登陆的情况\n (importMetaEnv.value.MODE !== 'production' && e.data?.data?.token) ||\n // 正式环境 登录成功 但是服务器token设置失败\n (importMetaEnv.value.MODE === 'production' && !token && e.data?.data?.token)\n ) {\n const now = new Date();\n let time = now.getTime();\n time += 8 * 60 * 60 * 1000; // 8 小时之后的时间(单位:毫秒)\n now.setTime(time);\n Cookies.set('token', e.data.data.token, { expires: now, domain: importMetaEnv.value.MODE === 'production' ? '.giikin.com' : undefined });\n loginStore.userToken = e.data.data.token;\n loginStore.userId = e.data.data.userId;\n if (!Cookies.get('sso_user_id') && e.data.data.userId) {\n Cookies.set('sso_user_id', e.data.data.userId, {\n expires: now,\n domain: importMetaEnv.value.MODE === 'production' ? '.giikin.com' : undefined,\n });\n }\n }\n // 触发登录成功监听\n if (e.data?.data?.token) {\n await loginStore.triggerLoginResult(e.data.data);\n }\n // ElMessage.success('登录成功,请关闭弹窗');\n loginStore.showLogin = false;\n if (route.value && props.needRealodRouteNames.includes(route.value.name?.toString() ?? '')) {\n window.location.reload();\n }\n }\n });\n});\nonUnmounted(() => {\n window.clearInterval(reloadTimer.value);\n});\n</script>\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loginDialog.mjs","sources":["../../../../../../../packages/components/src/business/loginDialog/loginDialog.ts"],"sourcesContent":["// import { affixEmits as elAffixEmits, affixProps as elAffixProps } from 'element-plus';\
|
|
1
|
+
{"version":3,"file":"loginDialog.mjs","sources":["../../../../../../../packages/components/src/business/loginDialog/loginDialog.ts"],"sourcesContent":["// import { affixEmits as elAffixEmits, affixProps as elAffixProps } from 'element-plus';\n// import type { ExtractPropTypes } from 'vue';\n\nimport type { PropType } from 'vue';\nexport const loginDialogProps = {\n /**\n * @description 登录成功后,需要刷新的路由名称\n */\n needRealodRouteNames: {\n type: Array as PropType<string[]>,\n default: () => [],\n },\n /**\n * @description 需要扫码登录的路由\n */\n needScanningRouteNames: {\n type: Array as PropType<string[]>,\n default: () => [],\n },\n /**\n * @description 系统 默认18\n */\n system: {\n type: Number,\n default: () => 18,\n },\n /**\n * @description 重定向地址字段\n */\n redirectUrlField: {\n type: String,\n default: () => '_url',\n },\n};\n\n// export const loginDialogEmits = {\n// ...elAffixEmits,\n// // 自定义事件\n// // submit: (value: any) => !!value,\n// };\n"],"names":[],"mappings":"AAIO,MAAM,gBAAmB,GAAA;AAAA;AAAA;AAAA;AAAA,EAI9B,oBAAsB,EAAA;AAAA,IACpB,IAAM,EAAA,KAAA;AAAA,IACN,OAAA,EAAS,MAAM,EAAC;AAAA,GAClB;AAAA;AAAA;AAAA;AAAA,EAIA,sBAAwB,EAAA;AAAA,IACtB,IAAM,EAAA,KAAA;AAAA,IACN,OAAA,EAAS,MAAM,EAAC;AAAA,GAClB;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA;AAAA,IACN,IAAM,EAAA,MAAA;AAAA,IACN,SAAS,MAAM,EAAA;AAAA,GACjB;AAAA;AAAA;AAAA;AAAA,EAIA,gBAAkB,EAAA;AAAA,IAChB,IAAM,EAAA,MAAA;AAAA,IACN,SAAS,MAAM,MAAA;AAAA,GACjB;AACF;;;;"}
|
package/es/giime/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "0.5.
|
|
1
|
+
export declare const version = "0.5.2";
|
package/es/giime/version.mjs
CHANGED
package/es/giime/version.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.mjs","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.5.
|
|
1
|
+
{"version":3,"file":"version.mjs","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.5.1';\n"],"names":[],"mappings":"AAAO,MAAM,OAAU,GAAA;;;;"}
|
package/es/index.css
CHANGED
|
@@ -777,22 +777,6 @@ video {
|
|
|
777
777
|
.gm-group:hover .group-hover\:gm-block {
|
|
778
778
|
display: block;
|
|
779
779
|
}
|
|
780
|
-
.gm-upload-material .el-overlay-dialog {
|
|
781
|
-
display: flex;
|
|
782
|
-
align-items: center;
|
|
783
|
-
justify-content: center;
|
|
784
|
-
}
|
|
785
|
-
.gm-upload-material .el-dialog {
|
|
786
|
-
margin: 0;
|
|
787
|
-
}
|
|
788
|
-
.gm-upload-material .el-dialog__body {
|
|
789
|
-
max-height: calc(100vh - 100px);
|
|
790
|
-
overflow-y: auto;
|
|
791
|
-
}
|
|
792
|
-
.gm-upload-material .el-dialog__body video,
|
|
793
|
-
.gm-upload-material .el-dialog__body img {
|
|
794
|
-
max-height: calc(100vh - 150px);
|
|
795
|
-
}
|
|
796
780
|
[data-v-7c80c3b6] .el-upload-dragger {
|
|
797
781
|
padding: 10px;
|
|
798
782
|
border: none;
|
|
@@ -809,6 +793,22 @@ video {
|
|
|
809
793
|
align-items: center;
|
|
810
794
|
justify-content: center;
|
|
811
795
|
}
|
|
796
|
+
.gm-upload-material .el-overlay-dialog {
|
|
797
|
+
display: flex;
|
|
798
|
+
align-items: center;
|
|
799
|
+
justify-content: center;
|
|
800
|
+
}
|
|
801
|
+
.gm-upload-material .el-dialog {
|
|
802
|
+
margin: 0;
|
|
803
|
+
}
|
|
804
|
+
.gm-upload-material .el-dialog__body {
|
|
805
|
+
max-height: calc(100vh - 100px);
|
|
806
|
+
overflow-y: auto;
|
|
807
|
+
}
|
|
808
|
+
.gm-upload-material .el-dialog__body video,
|
|
809
|
+
.gm-upload-material .el-dialog__body img {
|
|
810
|
+
max-height: calc(100vh - 150px);
|
|
811
|
+
}
|
|
812
812
|
.gm-flex-center[data-v-2a79bac9] {
|
|
813
813
|
align-items: center;
|
|
814
814
|
}
|
|
@@ -42,16 +42,8 @@ const createAxios = (config, options) => {
|
|
|
42
42
|
const res = response.data;
|
|
43
43
|
const msg = (res?.comment ?? res?.message ?? res?.errMsg ?? res?.msg) || "\u63A5\u53E3\u8BF7\u6C42\u9519\u8BEF";
|
|
44
44
|
if (!isNumber(res?.code)) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
type: "error",
|
|
48
|
-
grouping: true,
|
|
49
|
-
duration: 5 * 1e3,
|
|
50
|
-
showClose: true
|
|
51
|
-
});
|
|
52
|
-
return Promise.reject({ code: 400, data: null, msg: msg || "\u63A5\u53E3\u8BF7\u6C42\u9519\u8BEF" });
|
|
53
|
-
}
|
|
54
|
-
if (res.code === successCode || res.errCode === successCode) {
|
|
45
|
+
return response;
|
|
46
|
+
} else if (res.code === successCode || res.errCode === successCode) {
|
|
55
47
|
return response;
|
|
56
48
|
} else if (res.code === 401) {
|
|
57
49
|
const res2 = await res401Interceptors(service, response.config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createAxios.mjs","sources":["../../../../../../packages/utils/src/http/createAxios.ts"],"sourcesContent":["import axios from 'axios';\nimport { ElMessage } from 'element-plus';\nimport Cookies from 'js-cookie';\nimport { useLoginStore } from '@giime/hooks/store/useLogin';\nimport { isNumber } from '../is';\nimport { res401Interceptors } from './interceptors';\nimport { responseErrorMessage } from './errorMessage';\nimport type { AxiosError, CreateAxiosDefaults, InternalAxiosRequestConfig } from 'axios';\nexport interface CreateAxiosConfig extends CreateAxiosDefaults {\n baseURL: string;\n /**服务器调用成功的code 一般是 0 或 200 */\n successCode: number;\n}\n\nexport const createAxios = (\n config: CreateAxiosConfig,\n options?: {\n requestInterceptors?: (config: InternalAxiosRequestConfig<any>) => any;\n },\n) => {\n const successCode = config.successCode ?? 0;\n const service = axios.create({\n withCredentials: true, // send cookies when cross-domain requests\n timeout: 120_000,\n headers: {\n 'content-type': 'application/json',\n Accept: '*/*',\n },\n ...config,\n });\n\n // 请求拦截器\n service.interceptors.request.use(\n async config => {\n const logingStore = useLoginStore();\n const _token = Cookies.get('token') ?? logingStore.userToken;\n const _user = Cookies.get('sso_user_id') ?? logingStore.userId;\n if (!config.params) {\n config.params = {};\n }\n config.params._token = _token;\n config.params._user = _user;\n config.headers.Authorization = `Bearer ${_token}`;\n await options?.requestInterceptors?.(config);\n return config;\n },\n error => {\n console.error('请求错误', error); // for debug\n return Promise.reject(error);\n },\n );\n // 添加响应拦截器\n service.interceptors.response.use(\n async response => {\n // 对响应数据做点什么\n const res = response.data;\n const msg = (res?.comment ?? res?.message ?? res?.errMsg ?? res?.msg) || '接口请求错误';\n if (!isNumber(res?.code)) {\n
|
|
1
|
+
{"version":3,"file":"createAxios.mjs","sources":["../../../../../../packages/utils/src/http/createAxios.ts"],"sourcesContent":["import axios from 'axios';\nimport { ElMessage } from 'element-plus';\nimport Cookies from 'js-cookie';\nimport { useLoginStore } from '@giime/hooks/store/useLogin';\nimport { isNumber } from '../is';\nimport { res401Interceptors } from './interceptors';\nimport { responseErrorMessage } from './errorMessage';\nimport type { AxiosError, CreateAxiosDefaults, InternalAxiosRequestConfig } from 'axios';\nexport interface CreateAxiosConfig extends CreateAxiosDefaults {\n baseURL: string;\n /**服务器调用成功的code 一般是 0 或 200 */\n successCode: number;\n}\n\nexport const createAxios = (\n config: CreateAxiosConfig,\n options?: {\n requestInterceptors?: (config: InternalAxiosRequestConfig<any>) => any;\n },\n) => {\n const successCode = config.successCode ?? 0;\n const service = axios.create({\n withCredentials: true, // send cookies when cross-domain requests\n timeout: 120_000,\n headers: {\n 'content-type': 'application/json',\n Accept: '*/*',\n },\n ...config,\n });\n\n // 请求拦截器\n service.interceptors.request.use(\n async config => {\n const logingStore = useLoginStore();\n const _token = Cookies.get('token') ?? logingStore.userToken;\n const _user = Cookies.get('sso_user_id') ?? logingStore.userId;\n if (!config.params) {\n config.params = {};\n }\n config.params._token = _token;\n config.params._user = _user;\n config.headers.Authorization = `Bearer ${_token}`;\n await options?.requestInterceptors?.(config);\n return config;\n },\n error => {\n console.error('请求错误', error); // for debug\n return Promise.reject(error);\n },\n );\n // 添加响应拦截器\n service.interceptors.response.use(\n async response => {\n // 对响应数据做点什么\n const res = response.data;\n const msg = (res?.comment ?? res?.message ?? res?.errMsg ?? res?.msg) || '接口请求错误';\n if (!isNumber(res?.code)) {\n return response;\n }\n // 成功情况\n else if (res.code === successCode || res.errCode === successCode) {\n return response;\n }\n // 401\n else if (res.code === 401) {\n const res = await res401Interceptors(service, response.config);\n return res;\n }\n ElMessage({\n message: msg,\n type: 'error',\n grouping: true,\n duration: 5 * 1000,\n showClose: true,\n });\n return Promise.reject(response);\n // return response;\n },\n async (err: AxiosError) => {\n console.error(err.config);\n if (err?.response?.status === 401 && !err.message.includes('timeout')) {\n const res = await res401Interceptors(service, err.config!);\n return res;\n } else {\n // 对响应错误做点什么\n responseErrorMessage(err);\n return Promise.reject(err);\n }\n },\n );\n\n return {\n service,\n };\n};\n"],"names":["config","res"],"mappings":"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"}
|
|
@@ -11,6 +11,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
11
11
|
type: NumberConstructor;
|
|
12
12
|
default: () => number;
|
|
13
13
|
};
|
|
14
|
+
redirectUrlField: {
|
|
15
|
+
type: StringConstructor;
|
|
16
|
+
default: () => string;
|
|
17
|
+
};
|
|
14
18
|
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
15
19
|
needRealodRouteNames: {
|
|
16
20
|
type: import("vue").PropType<string[]>;
|
|
@@ -24,9 +28,14 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
24
28
|
type: NumberConstructor;
|
|
25
29
|
default: () => number;
|
|
26
30
|
};
|
|
31
|
+
redirectUrlField: {
|
|
32
|
+
type: StringConstructor;
|
|
33
|
+
default: () => string;
|
|
34
|
+
};
|
|
27
35
|
}>>, {
|
|
28
36
|
needRealodRouteNames: string[];
|
|
29
37
|
needScanningRouteNames: string[];
|
|
30
38
|
system: number;
|
|
39
|
+
redirectUrlField: string;
|
|
31
40
|
}, {}>;
|
|
32
41
|
export default _default;
|
|
@@ -46,7 +46,7 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
46
46
|
if (route.value && props.needScanningRouteNames.includes(route.value?.name?.toString() ?? "")) {
|
|
47
47
|
loginUrl.value += "&is_dashboard=1";
|
|
48
48
|
}
|
|
49
|
-
loginUrl.value +=
|
|
49
|
+
loginUrl.value += `&${props.redirectUrlField}=${protocol}//${host}${myPath}`;
|
|
50
50
|
console.log(loginUrl.value);
|
|
51
51
|
};
|
|
52
52
|
vue.watch(
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoginDialog.vue2.js","sources":["../../../../../../../packages/components/src/business/loginDialog/LoginDialog.vue"],"sourcesContent":["<script lang=\"ts\">\nconst loginEnvKey = 'VITE_GIIME_LOGIN_URL'\n</script>\n<template>\
|
|
1
|
+
{"version":3,"file":"LoginDialog.vue2.js","sources":["../../../../../../../packages/components/src/business/loginDialog/LoginDialog.vue"],"sourcesContent":["<script lang=\"ts\">\nconst loginEnvKey = 'VITE_GIIME_LOGIN_URL'\n</script>\n<template>\n <div v-if=\"isSSRShowDialog\">\n <el-dialog v-model=\"loginStore.showLogin\" width=\"80%\" append-to-body>\n <iframe v-if=\"loginStore.showLogin\" class=\"gm-h-[600px] gm-w-full\" :src=\"loginUrl\" />\n </el-dialog>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue';\nimport { ElDialog } from 'element-plus';\nimport Cookies from 'js-cookie';\n// import router from 'vue-router';\nimport { useLoginStore } from '@giime/hooks';\nimport { useGlobalConfig } from '@giime/hooks/base/useGlobalConfig';\nimport { isString } from '@giime/utils';\nimport { loginDialogProps } from './loginDialog';\n\nconst props = defineProps(loginDialogProps);\nconst router = useGlobalConfig('router');\n\n// const router = useRouter();\nconst route = computed(() => (router.value ? router.value.currentRoute.value : undefined));\nconst loginStore = useLoginStore();\nconst loginUrl = ref('');\nconst viteModes = [\n { mode: 'development', loginUrl: 'http://sso-dev.giikin.cn/admin/login/index.html' },\n { mode: 'test', loginUrl: 'http://sso-dev.giikin.cn/admin/login/index.html' },\n { mode: 'production', loginUrl: 'https://gsso.giikin.com/admin/login/logout.html' },\n];\n\n\nconst importMetaEnv = useGlobalConfig('env');\nconst isSSRShowDialog = ref(importMetaEnv.value.SSR === false);\nlet originLoginUrl = ``;\nif (isString(importMetaEnv.value[loginEnvKey])) {\n originLoginUrl = importMetaEnv.value[loginEnvKey];\n} else {\n const curMode = viteModes.find(item => item.mode == importMetaEnv.value.MODE);\n originLoginUrl = curMode?.loginUrl ?? 'https://gsso.giikin.com/admin/login/logout.html';\n}\nconst login = () => {\n const protocol = window.location.protocol;\n const host = window.location.host;\n const myPath = window.location.pathname;\n\n loginUrl.value = `${originLoginUrl}?_system=${props.system}`;\n if (route.value && props.needScanningRouteNames.includes(route.value?.name?.toString() ?? '')) {\n loginUrl.value += '&is_dashboard=1';\n }\n\n loginUrl.value += `&${props.redirectUrlField}=${protocol}//${host}${myPath}`;\n\n // eslint-disable-next-line no-console\n console.log(loginUrl.value);\n};\nwatch(\n () => loginStore.showLogin,\n value => {\n if (value) {\n login();\n }\n },\n);\n// 超过5分钟没扫码 会不能扫码 定时没登录的话3分钟刷新次\nconst reloadTimer = ref<number>();\nif (route.value) {\n watch(route, (newValue, oldValue) => {\n if (!oldValue || !newValue) {\n return;\n }\n if (oldValue.name && props.needScanningRouteNames.includes(oldValue.name.toString())) {\n window.clearInterval(reloadTimer.value);\n }\n if (newValue.name && props.needScanningRouteNames.includes(newValue.name.toString())) {\n reloadTimer.value = window.setInterval(\n () => {\n if (!loginStore.showLogin) {\n return;\n }\n // 登录超时后 3分钟刷新次页面\n window.location.reload();\n },\n 3 * 60 * 1000,\n );\n }\n });\n}\n\nonMounted(() => {\n isSSRShowDialog.value = true;\n if (loginStore.showLogin) {\n login();\n }\n // iframe事件监听\n window.addEventListener('message', async e => {\n // 刷新登陆状态\n if (e.data.type == 'giikin-Logged') {\n // eslint-disable-next-line no-console\n console.log(e.data);\n const token = Cookies.get('token');\n if (\n // 测试环境 但是需要登陆的情况\n (importMetaEnv.value.MODE !== 'production' && e.data?.data?.token) ||\n // 正式环境 登录成功 但是服务器token设置失败\n (importMetaEnv.value.MODE === 'production' && !token && e.data?.data?.token)\n ) {\n const now = new Date();\n let time = now.getTime();\n time += 8 * 60 * 60 * 1000; // 8 小时之后的时间(单位:毫秒)\n now.setTime(time);\n Cookies.set('token', e.data.data.token, { expires: now, domain: importMetaEnv.value.MODE === 'production' ? '.giikin.com' : undefined });\n loginStore.userToken = e.data.data.token;\n loginStore.userId = e.data.data.userId;\n if (!Cookies.get('sso_user_id') && e.data.data.userId) {\n Cookies.set('sso_user_id', e.data.data.userId, {\n expires: now,\n domain: importMetaEnv.value.MODE === 'production' ? '.giikin.com' : undefined,\n });\n }\n }\n // 触发登录成功监听\n if (e.data?.data?.token) {\n await loginStore.triggerLoginResult(e.data.data);\n }\n // ElMessage.success('登录成功,请关闭弹窗');\n loginStore.showLogin = false;\n if (route.value && props.needRealodRouteNames.includes(route.value.name?.toString() ?? '')) {\n window.location.reload();\n }\n }\n });\n});\nonUnmounted(() => {\n window.clearInterval(reloadTimer.value);\n});\n</script>\n"],"names":["useGlobalConfig","computed","useLoginStore","ref","isString","watch","onMounted","onUnmounted"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loginDialog.js","sources":["../../../../../../../packages/components/src/business/loginDialog/loginDialog.ts"],"sourcesContent":["// import { affixEmits as elAffixEmits, affixProps as elAffixProps } from 'element-plus';\
|
|
1
|
+
{"version":3,"file":"loginDialog.js","sources":["../../../../../../../packages/components/src/business/loginDialog/loginDialog.ts"],"sourcesContent":["// import { affixEmits as elAffixEmits, affixProps as elAffixProps } from 'element-plus';\n// import type { ExtractPropTypes } from 'vue';\n\nimport type { PropType } from 'vue';\nexport const loginDialogProps = {\n /**\n * @description 登录成功后,需要刷新的路由名称\n */\n needRealodRouteNames: {\n type: Array as PropType<string[]>,\n default: () => [],\n },\n /**\n * @description 需要扫码登录的路由\n */\n needScanningRouteNames: {\n type: Array as PropType<string[]>,\n default: () => [],\n },\n /**\n * @description 系统 默认18\n */\n system: {\n type: Number,\n default: () => 18,\n },\n /**\n * @description 重定向地址字段\n */\n redirectUrlField: {\n type: String,\n default: () => '_url',\n },\n};\n\n// export const loginDialogEmits = {\n// ...elAffixEmits,\n// // 自定义事件\n// // submit: (value: any) => !!value,\n// };\n"],"names":[],"mappings":";;AAIO,MAAM,gBAAmB,GAAA;AAAA;AAAA;AAAA;AAAA,EAI9B,oBAAsB,EAAA;AAAA,IACpB,IAAM,EAAA,KAAA;AAAA,IACN,OAAA,EAAS,MAAM,EAAC;AAAA,GAClB;AAAA;AAAA;AAAA;AAAA,EAIA,sBAAwB,EAAA;AAAA,IACtB,IAAM,EAAA,KAAA;AAAA,IACN,OAAA,EAAS,MAAM,EAAC;AAAA,GAClB;AAAA;AAAA;AAAA;AAAA,EAIA,MAAQ,EAAA;AAAA,IACN,IAAM,EAAA,MAAA;AAAA,IACN,SAAS,MAAM,EAAA;AAAA,GACjB;AAAA;AAAA;AAAA;AAAA,EAIA,gBAAkB,EAAA;AAAA,IAChB,IAAM,EAAA,MAAA;AAAA,IACN,SAAS,MAAM,MAAA;AAAA,GACjB;AACF;;;;"}
|
package/lib/giime/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "0.5.
|
|
1
|
+
export declare const version = "0.5.2";
|
package/lib/giime/version.js
CHANGED
package/lib/giime/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.5.
|
|
1
|
+
{"version":3,"file":"version.js","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.5.1';\n"],"names":[],"mappings":";;AAAO,MAAM,OAAU,GAAA;;;;"}
|
package/lib/index.css
CHANGED
|
@@ -777,22 +777,6 @@ video {
|
|
|
777
777
|
.gm-group:hover .group-hover\:gm-block {
|
|
778
778
|
display: block;
|
|
779
779
|
}
|
|
780
|
-
.gm-upload-material .el-overlay-dialog {
|
|
781
|
-
display: flex;
|
|
782
|
-
align-items: center;
|
|
783
|
-
justify-content: center;
|
|
784
|
-
}
|
|
785
|
-
.gm-upload-material .el-dialog {
|
|
786
|
-
margin: 0;
|
|
787
|
-
}
|
|
788
|
-
.gm-upload-material .el-dialog__body {
|
|
789
|
-
max-height: calc(100vh - 100px);
|
|
790
|
-
overflow-y: auto;
|
|
791
|
-
}
|
|
792
|
-
.gm-upload-material .el-dialog__body video,
|
|
793
|
-
.gm-upload-material .el-dialog__body img {
|
|
794
|
-
max-height: calc(100vh - 150px);
|
|
795
|
-
}
|
|
796
780
|
[data-v-7c80c3b6] .el-upload-dragger {
|
|
797
781
|
padding: 10px;
|
|
798
782
|
border: none;
|
|
@@ -809,6 +793,22 @@ video {
|
|
|
809
793
|
align-items: center;
|
|
810
794
|
justify-content: center;
|
|
811
795
|
}
|
|
796
|
+
.gm-upload-material .el-overlay-dialog {
|
|
797
|
+
display: flex;
|
|
798
|
+
align-items: center;
|
|
799
|
+
justify-content: center;
|
|
800
|
+
}
|
|
801
|
+
.gm-upload-material .el-dialog {
|
|
802
|
+
margin: 0;
|
|
803
|
+
}
|
|
804
|
+
.gm-upload-material .el-dialog__body {
|
|
805
|
+
max-height: calc(100vh - 100px);
|
|
806
|
+
overflow-y: auto;
|
|
807
|
+
}
|
|
808
|
+
.gm-upload-material .el-dialog__body video,
|
|
809
|
+
.gm-upload-material .el-dialog__body img {
|
|
810
|
+
max-height: calc(100vh - 150px);
|
|
811
|
+
}
|
|
812
812
|
.gm-flex-center[data-v-2a79bac9] {
|
|
813
813
|
align-items: center;
|
|
814
814
|
}
|
|
@@ -44,16 +44,8 @@ const createAxios = (config, options) => {
|
|
|
44
44
|
const res = response.data;
|
|
45
45
|
const msg = (res?.comment ?? res?.message ?? res?.errMsg ?? res?.msg) || "\u63A5\u53E3\u8BF7\u6C42\u9519\u8BEF";
|
|
46
46
|
if (!is.isNumber(res?.code)) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
type: "error",
|
|
50
|
-
grouping: true,
|
|
51
|
-
duration: 5 * 1e3,
|
|
52
|
-
showClose: true
|
|
53
|
-
});
|
|
54
|
-
return Promise.reject({ code: 400, data: null, msg: msg || "\u63A5\u53E3\u8BF7\u6C42\u9519\u8BEF" });
|
|
55
|
-
}
|
|
56
|
-
if (res.code === successCode || res.errCode === successCode) {
|
|
47
|
+
return response;
|
|
48
|
+
} else if (res.code === successCode || res.errCode === successCode) {
|
|
57
49
|
return response;
|
|
58
50
|
} else if (res.code === 401) {
|
|
59
51
|
const res2 = await interceptors.res401Interceptors(service, response.config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createAxios.js","sources":["../../../../../../packages/utils/src/http/createAxios.ts"],"sourcesContent":["import axios from 'axios';\nimport { ElMessage } from 'element-plus';\nimport Cookies from 'js-cookie';\nimport { useLoginStore } from '@giime/hooks/store/useLogin';\nimport { isNumber } from '../is';\nimport { res401Interceptors } from './interceptors';\nimport { responseErrorMessage } from './errorMessage';\nimport type { AxiosError, CreateAxiosDefaults, InternalAxiosRequestConfig } from 'axios';\nexport interface CreateAxiosConfig extends CreateAxiosDefaults {\n baseURL: string;\n /**服务器调用成功的code 一般是 0 或 200 */\n successCode: number;\n}\n\nexport const createAxios = (\n config: CreateAxiosConfig,\n options?: {\n requestInterceptors?: (config: InternalAxiosRequestConfig<any>) => any;\n },\n) => {\n const successCode = config.successCode ?? 0;\n const service = axios.create({\n withCredentials: true, // send cookies when cross-domain requests\n timeout: 120_000,\n headers: {\n 'content-type': 'application/json',\n Accept: '*/*',\n },\n ...config,\n });\n\n // 请求拦截器\n service.interceptors.request.use(\n async config => {\n const logingStore = useLoginStore();\n const _token = Cookies.get('token') ?? logingStore.userToken;\n const _user = Cookies.get('sso_user_id') ?? logingStore.userId;\n if (!config.params) {\n config.params = {};\n }\n config.params._token = _token;\n config.params._user = _user;\n config.headers.Authorization = `Bearer ${_token}`;\n await options?.requestInterceptors?.(config);\n return config;\n },\n error => {\n console.error('请求错误', error); // for debug\n return Promise.reject(error);\n },\n );\n // 添加响应拦截器\n service.interceptors.response.use(\n async response => {\n // 对响应数据做点什么\n const res = response.data;\n const msg = (res?.comment ?? res?.message ?? res?.errMsg ?? res?.msg) || '接口请求错误';\n if (!isNumber(res?.code)) {\n
|
|
1
|
+
{"version":3,"file":"createAxios.js","sources":["../../../../../../packages/utils/src/http/createAxios.ts"],"sourcesContent":["import axios from 'axios';\nimport { ElMessage } from 'element-plus';\nimport Cookies from 'js-cookie';\nimport { useLoginStore } from '@giime/hooks/store/useLogin';\nimport { isNumber } from '../is';\nimport { res401Interceptors } from './interceptors';\nimport { responseErrorMessage } from './errorMessage';\nimport type { AxiosError, CreateAxiosDefaults, InternalAxiosRequestConfig } from 'axios';\nexport interface CreateAxiosConfig extends CreateAxiosDefaults {\n baseURL: string;\n /**服务器调用成功的code 一般是 0 或 200 */\n successCode: number;\n}\n\nexport const createAxios = (\n config: CreateAxiosConfig,\n options?: {\n requestInterceptors?: (config: InternalAxiosRequestConfig<any>) => any;\n },\n) => {\n const successCode = config.successCode ?? 0;\n const service = axios.create({\n withCredentials: true, // send cookies when cross-domain requests\n timeout: 120_000,\n headers: {\n 'content-type': 'application/json',\n Accept: '*/*',\n },\n ...config,\n });\n\n // 请求拦截器\n service.interceptors.request.use(\n async config => {\n const logingStore = useLoginStore();\n const _token = Cookies.get('token') ?? logingStore.userToken;\n const _user = Cookies.get('sso_user_id') ?? logingStore.userId;\n if (!config.params) {\n config.params = {};\n }\n config.params._token = _token;\n config.params._user = _user;\n config.headers.Authorization = `Bearer ${_token}`;\n await options?.requestInterceptors?.(config);\n return config;\n },\n error => {\n console.error('请求错误', error); // for debug\n return Promise.reject(error);\n },\n );\n // 添加响应拦截器\n service.interceptors.response.use(\n async response => {\n // 对响应数据做点什么\n const res = response.data;\n const msg = (res?.comment ?? res?.message ?? res?.errMsg ?? res?.msg) || '接口请求错误';\n if (!isNumber(res?.code)) {\n return response;\n }\n // 成功情况\n else if (res.code === successCode || res.errCode === successCode) {\n return response;\n }\n // 401\n else if (res.code === 401) {\n const res = await res401Interceptors(service, response.config);\n return res;\n }\n ElMessage({\n message: msg,\n type: 'error',\n grouping: true,\n duration: 5 * 1000,\n showClose: true,\n });\n return Promise.reject(response);\n // return response;\n },\n async (err: AxiosError) => {\n console.error(err.config);\n if (err?.response?.status === 401 && !err.message.includes('timeout')) {\n const res = await res401Interceptors(service, err.config!);\n return res;\n } else {\n // 对响应错误做点什么\n responseErrorMessage(err);\n return Promise.reject(err);\n }\n },\n );\n\n return {\n service,\n };\n};\n"],"names":["config","useLoginStore","isNumber","res","res401Interceptors","ElMessage","responseErrorMessage"],"mappings":"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"}
|