giime 0.3.12 → 0.3.14
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 +12 -12
- package/es/api/gatewayApi/cross/getListCustom.mjs +1 -1
- package/es/api/gatewayApi/cross/getListCustom.mjs.map +1 -1
- package/es/components/src/composite/memoryForm/MemoryForm.vue.mjs +1 -1
- package/es/components/src/composite/memoryForm/MemoryForm.vue2.mjs +4 -1
- package/es/components/src/composite/memoryForm/MemoryForm.vue2.mjs.map +1 -1
- package/es/components/src/composite/operateButton/operateButtonForm/OperateButtonForm.vue2.mjs +4 -1
- package/es/components/src/composite/operateButton/operateButtonForm/OperateButtonForm.vue2.mjs.map +1 -1
- package/es/components/src/composite/tablePro/TablePro.vue.mjs +1 -1
- package/es/components/src/composite/tablePro/TablePro.vue2.mjs +10 -6
- package/es/components/src/composite/tablePro/TablePro.vue2.mjs.map +1 -1
- package/es/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue.d.ts +1 -0
- package/es/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue2.mjs +7 -3
- package/es/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue2.mjs.map +1 -1
- package/es/components/src/composite/tablePro/tableHeaderForm/index.d.ts +1 -0
- 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/hooks/store/useCustomSettings/index.mjs +3 -0
- package/es/hooks/store/useCustomSettings/index.mjs.map +1 -1
- package/es/index.css +12 -12
- package/es/utils/src/http/axios.d.mjs +2 -0
- package/es/utils/src/http/axios.d.mjs.map +1 -0
- package/es/utils/src/http/errorMessage.mjs +3 -0
- package/es/utils/src/http/errorMessage.mjs.map +1 -1
- package/lib/api/gatewayApi/cross/getListCustom.js +1 -1
- package/lib/api/gatewayApi/cross/getListCustom.js.map +1 -1
- package/lib/components/src/composite/memoryForm/MemoryForm.vue.js +1 -1
- package/lib/components/src/composite/memoryForm/MemoryForm.vue2.js +4 -1
- package/lib/components/src/composite/memoryForm/MemoryForm.vue2.js.map +1 -1
- package/lib/components/src/composite/operateButton/operateButtonForm/OperateButtonForm.vue2.js +4 -1
- package/lib/components/src/composite/operateButton/operateButtonForm/OperateButtonForm.vue2.js.map +1 -1
- package/lib/components/src/composite/tablePro/TablePro.vue.js +1 -1
- package/lib/components/src/composite/tablePro/TablePro.vue2.js +10 -6
- package/lib/components/src/composite/tablePro/TablePro.vue2.js.map +1 -1
- package/lib/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue.d.ts +1 -0
- package/lib/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue2.js +7 -3
- package/lib/components/src/composite/tablePro/tableHeaderForm/TableHeaderForm.vue2.js.map +1 -1
- package/lib/components/src/composite/tablePro/tableHeaderForm/index.d.ts +1 -0
- 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/hooks/store/useCustomSettings/index.js +3 -0
- package/lib/hooks/store/useCustomSettings/index.js.map +1 -1
- package/lib/index.css +12 -12
- package/lib/utils/src/http/axios.d.js +5 -0
- package/lib/utils/src/http/axios.d.js.map +1 -0
- package/lib/utils/src/http/errorMessage.js +3 -0
- package/lib/utils/src/http/errorMessage.js.map +1 -1
- package/package.json +1 -1
|
@@ -78,6 +78,9 @@ const useCustomSettingsStore = pinia.defineStore("gmCustomSettings", () => {
|
|
|
78
78
|
});
|
|
79
79
|
const getCustomSettings = async (params, options) => {
|
|
80
80
|
await getCustomList(params);
|
|
81
|
+
if (!customSettings.value[params.key_word]) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
81
84
|
if (!objects.hasOwn(customSettings.value[params.key_word], params.type)) {
|
|
82
85
|
customSettings.value[params.key_word][params.type] = options.defaultValue;
|
|
83
86
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../packages/hooks/store/useCustomSettings/index.ts"],"sourcesContent":["import { ref } from 'vue';\r\nimport { defineStore } from 'pinia';\r\nimport { type AddListCustomParams, addListCustom, getListCustom } from '@giime/api';\r\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nimport { type EventHookOn, type EventHookTrigger, createEventHook } from '@vueuse/core';\r\nimport { useIDBKeyval } from '@giime/hooks/base/useIDBKeyval';\r\nimport { hasOwn } from '@giime/utils/src/objects';\r\n\r\ninterface CustomSettings {\r\n [key_word: string]: {\r\n [type: string]: any;\r\n };\r\n}\r\n\r\nexport interface GetCustomSettingsParams {\r\n key_word: string;\r\n type: string;\r\n}\r\n\r\nexport const useCustomSettingsStore = defineStore('gmCustomSettings', () => {\r\n // const customSettings = ref<CustomSettings>({});\r\n const { data: customSettings, initIndexedDBComplete } = useIDBKeyval<CustomSettings>('gmCustomSettingsStore', {}, { deep: true });\r\n const customResult = createEventHook<GetCustomSettingsParams>();\r\n /**\r\n * 正在loading的key_word\r\n */\r\n const isLoadingKeyWords = ref(new Set<string>());\r\n\r\n // 添加自定义设置\r\n const addCustomSettings = async (params: AddListCustomParams) => {\r\n const res = await addListCustom(params);\r\n if (res.data.code === 0) {\r\n if (!customSettings.value[params.key_word]) {\r\n customSettings.value[params.key_word] = {};\r\n }\r\n let value = params.value;\r\n try {\r\n value = JSON.parse(params.value);\r\n } catch {}\r\n customSettings.value[params.key_word][params.type] = value;\r\n }\r\n return res;\r\n };\r\n /**\r\n * 同步远程数据到本地\r\n */\r\n const syncRemoteSetting = async (params: GetCustomSettingsParams) => {\r\n const { key_word, type } = params;\r\n isLoadingKeyWords.value.add(key_word);\r\n try {\r\n const { data } = await getListCustom({ key_word });\r\n if (data.code !== 0) {\r\n isLoadingKeyWords.value.delete(key_word);\r\n customResult.trigger({ key_word, type });\r\n return;\r\n }\r\n // 将json字符串转成对象\r\n for (const key in data.data) {\r\n if (hasOwn(data.data, key)) {\r\n const value = data.data[key];\r\n try {\r\n data.data[key] = JSON.parse(value);\r\n } catch {\r\n data.data[key] = value;\r\n }\r\n }\r\n }\r\n customSettings.value[key_word] = Array.isArray(data.data) ? {} : data.data;\r\n isLoadingKeyWords.value.delete(key_word);\r\n customResult.trigger({ key_word, type });\r\n } catch {\r\n isLoadingKeyWords.value.delete(key_word);\r\n customResult.trigger({ key_word, type });\r\n }\r\n };\r\n // 获取自定义设置\r\n const getCustomList = async (params: GetCustomSettingsParams) => {\r\n const { key_word, type } = params;\r\n // 等待indexedDB 初始化完成\r\n await initIndexedDBComplete();\r\n // 如果已存在\r\n if (customSettings.value[key_word] && hasOwn(customSettings.value[key_word], type)) {\r\n customResult.trigger({ key_word, type });\r\n return;\r\n }\r\n // 如果正在loading,则 等待之前请求的结果\r\n if (isLoadingKeyWords.value.has(key_word)) {\r\n await onCustomResultPromise({ key_word, type });\r\n return;\r\n }\r\n await syncRemoteSetting(params);\r\n };\r\n /**监听 已请求列表 promise版 */\r\n const onCustomResultPromise = (params: GetCustomSettingsParams) =>\r\n new Promise<GetCustomSettingsParams>(resolve => {\r\n customResult.on(value => {\r\n if (params.key_word === value.key_word) {\r\n resolve(value);\r\n }\r\n });\r\n });\r\n const getCustomSettings = async (params: GetCustomSettingsParams, options: { defaultValue: any }) => {\r\n await getCustomList(params);\r\n if (!hasOwn(customSettings.value[params.key_word], params.type)) {\r\n customSettings.value[params.key_word][params.type] = options.defaultValue;\r\n }\r\n return customSettings.value[params.key_word][params.type];\r\n };\r\n\r\n return {\r\n addCustomSettings,\r\n getCustomSettings,\r\n syncRemoteSetting,\r\n customSettings,\r\n };\r\n});\r\n"],"names":["defineStore","useIDBKeyval","createEventHook","ref","addListCustom","getListCustom","hasOwn"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../packages/hooks/store/useCustomSettings/index.ts"],"sourcesContent":["import { ref } from 'vue';\r\nimport { defineStore } from 'pinia';\r\nimport { type AddListCustomParams, addListCustom, getListCustom } from '@giime/api';\r\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nimport { type EventHookOn, type EventHookTrigger, createEventHook } from '@vueuse/core';\r\nimport { useIDBKeyval } from '@giime/hooks/base/useIDBKeyval';\r\nimport { hasOwn } from '@giime/utils/src/objects';\r\n\r\ninterface CustomSettings {\r\n [key_word: string]: {\r\n [type: string]: any;\r\n };\r\n}\r\n\r\nexport interface GetCustomSettingsParams {\r\n key_word: string;\r\n type: string;\r\n}\r\n\r\nexport const useCustomSettingsStore = defineStore('gmCustomSettings', () => {\r\n // const customSettings = ref<CustomSettings>({});\r\n const { data: customSettings, initIndexedDBComplete } = useIDBKeyval<CustomSettings>('gmCustomSettingsStore', {}, { deep: true });\r\n const customResult = createEventHook<GetCustomSettingsParams>();\r\n /**\r\n * 正在loading的key_word\r\n */\r\n const isLoadingKeyWords = ref(new Set<string>());\r\n\r\n // 添加自定义设置\r\n const addCustomSettings = async (params: AddListCustomParams) => {\r\n const res = await addListCustom(params);\r\n if (res.data.code === 0) {\r\n if (!customSettings.value[params.key_word]) {\r\n customSettings.value[params.key_word] = {};\r\n }\r\n let value = params.value;\r\n try {\r\n value = JSON.parse(params.value);\r\n } catch {}\r\n customSettings.value[params.key_word][params.type] = value;\r\n }\r\n return res;\r\n };\r\n /**\r\n * 同步远程数据到本地\r\n */\r\n const syncRemoteSetting = async (params: GetCustomSettingsParams) => {\r\n const { key_word, type } = params;\r\n isLoadingKeyWords.value.add(key_word);\r\n try {\r\n const { data } = await getListCustom({ key_word });\r\n if (data.code !== 0) {\r\n isLoadingKeyWords.value.delete(key_word);\r\n customResult.trigger({ key_word, type });\r\n return;\r\n }\r\n // 将json字符串转成对象\r\n for (const key in data.data) {\r\n if (hasOwn(data.data, key)) {\r\n const value = data.data[key];\r\n try {\r\n data.data[key] = JSON.parse(value);\r\n } catch {\r\n data.data[key] = value;\r\n }\r\n }\r\n }\r\n customSettings.value[key_word] = Array.isArray(data.data) ? {} : data.data;\r\n isLoadingKeyWords.value.delete(key_word);\r\n customResult.trigger({ key_word, type });\r\n } catch {\r\n isLoadingKeyWords.value.delete(key_word);\r\n customResult.trigger({ key_word, type });\r\n }\r\n };\r\n // 获取自定义设置\r\n const getCustomList = async (params: GetCustomSettingsParams) => {\r\n const { key_word, type } = params;\r\n // 等待indexedDB 初始化完成\r\n await initIndexedDBComplete();\r\n // 如果已存在\r\n if (customSettings.value[key_word] && hasOwn(customSettings.value[key_word], type)) {\r\n customResult.trigger({ key_word, type });\r\n return;\r\n }\r\n // 如果正在loading,则 等待之前请求的结果\r\n if (isLoadingKeyWords.value.has(key_word)) {\r\n await onCustomResultPromise({ key_word, type });\r\n return;\r\n }\r\n await syncRemoteSetting(params);\r\n };\r\n /**监听 已请求列表 promise版 */\r\n const onCustomResultPromise = (params: GetCustomSettingsParams) =>\r\n new Promise<GetCustomSettingsParams>(resolve => {\r\n customResult.on(value => {\r\n if (params.key_word === value.key_word) {\r\n resolve(value);\r\n }\r\n });\r\n });\r\n const getCustomSettings = async (params: GetCustomSettingsParams, options: { defaultValue: any }) => {\r\n await getCustomList(params);\r\n if (!customSettings.value[params.key_word]) {\r\n return;\r\n }\r\n if (!hasOwn(customSettings.value[params.key_word], params.type)) {\r\n customSettings.value[params.key_word][params.type] = options.defaultValue;\r\n }\r\n return customSettings.value[params.key_word][params.type];\r\n };\r\n\r\n return {\r\n addCustomSettings,\r\n getCustomSettings,\r\n syncRemoteSetting,\r\n customSettings,\r\n };\r\n});\r\n"],"names":["defineStore","useIDBKeyval","createEventHook","ref","addListCustom","getListCustom","hasOwn"],"mappings":"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"}
|
package/lib/index.css
CHANGED
|
@@ -755,17 +755,17 @@ video {
|
|
|
755
755
|
margin: 0;
|
|
756
756
|
}
|
|
757
757
|
|
|
758
|
-
|
|
758
|
+
[data-v-ec3af0bb] .gmSearchForm .el-form-item {
|
|
759
|
+
margin-right: 0;
|
|
760
|
+
margin-bottom: 4px;
|
|
761
|
+
}
|
|
762
|
+
.gm-flex-center[data-v-2a79bac9] {
|
|
759
763
|
align-items: center;
|
|
760
764
|
}
|
|
761
765
|
|
|
762
|
-
.gm-flex-justify-between[data-v-
|
|
766
|
+
.gm-flex-justify-between[data-v-2a79bac9] {
|
|
763
767
|
justify-content: space-between;
|
|
764
768
|
}
|
|
765
|
-
[data-v-ec3af0bb] .gmSearchForm .el-form-item {
|
|
766
|
-
margin-right: 0;
|
|
767
|
-
margin-bottom: 4px;
|
|
768
|
-
}
|
|
769
769
|
.gm-number-interval-single[data-v-47a13fd0] {
|
|
770
770
|
border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
|
|
771
771
|
box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
|
|
@@ -784,27 +784,27 @@ video {
|
|
|
784
784
|
.gm-number-interval-single[data-v-47a13fd0]:hover .gm-number-interval-close[data-v-47a13fd0] {
|
|
785
785
|
display: flex;
|
|
786
786
|
}
|
|
787
|
-
[data-v-
|
|
787
|
+
[data-v-72a53f6c] .gmTableNoBorder .el-table__body .el-table__cell {
|
|
788
788
|
border-right: none;
|
|
789
789
|
}
|
|
790
790
|
|
|
791
|
-
[data-v-
|
|
791
|
+
[data-v-72a53f6c] .gmTableNoBorder .el-table__inner-wrapper:before {
|
|
792
792
|
height: 0;
|
|
793
793
|
}
|
|
794
794
|
|
|
795
|
-
[data-v-
|
|
795
|
+
[data-v-72a53f6c] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
|
|
796
796
|
height: 0;
|
|
797
797
|
}
|
|
798
798
|
|
|
799
|
-
[data-v-
|
|
799
|
+
[data-v-72a53f6c] .gmTableNoBorder.el-table--border:after {
|
|
800
800
|
height: 0;
|
|
801
801
|
}
|
|
802
802
|
|
|
803
|
-
[data-v-
|
|
803
|
+
[data-v-72a53f6c] .gmTableNoBorder.el-table--border:before {
|
|
804
804
|
height: 0;
|
|
805
805
|
}
|
|
806
806
|
|
|
807
|
-
[data-v-
|
|
807
|
+
[data-v-72a53f6c] .gmTableNoBorder .el-table__border-left-patch {
|
|
808
808
|
height: 0;
|
|
809
809
|
}
|
|
810
810
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"axios.d.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorMessage.js","sources":["../../../../../../packages/utils/src/http/errorMessage.ts"],"sourcesContent":["import { ElMessage, type MessageOptions } from 'element-plus';\r\nimport type { AxiosError } from 'axios';\r\n\r\n/**\r\n * 统一错误弹窗\r\n */\r\nexport const errorMessage = (options: MessageOptions) => {\r\n return ElMessage({\r\n type: 'error',\r\n duration: 5 * 1000,\r\n showClose: true,\r\n grouping: true,\r\n ...options,\r\n message: options?.message || '未知错误',\r\n });\r\n};\r\n// 抛错时 error\r\nexport const responseErrorMessage = (error: AxiosError<any, any>) => {\r\n if (error.code === 'ERR_CANCELED') {\r\n return Promise.reject(error);\r\n }\r\n const serviceMessage =\r\n (error?.response?.data?.message || error?.response?.data?.comment || error?.response?.data?.msg || error?.response?.data?.errMsg) ?? '';\r\n switch (error.response?.status) {\r\n case 400:\r\n return errorMessage({\r\n message: `400-客户端错误,请求失败。${serviceMessage}`,\r\n });\r\n case 403:\r\n return errorMessage({\r\n message: `403-无权访问。${serviceMessage}`,\r\n });\r\n case 404:\r\n return errorMessage({\r\n message: `404-无效的请求。${serviceMessage}`,\r\n });\r\n case 413:\r\n return errorMessage({\r\n message: `413-请求内容过大。${serviceMessage}`,\r\n });\r\n case 500:\r\n return errorMessage({\r\n message: `500-服务器内部错误o(╥﹏╥)o。${serviceMessage}`,\r\n });\r\n case 502:\r\n return errorMessage({\r\n message: `502-网关错误。${serviceMessage}`,\r\n });\r\n case 504:\r\n return errorMessage({\r\n message: `504-网关超时。${serviceMessage}`,\r\n });\r\n\r\n default:\r\n break;\r\n }\r\n console.error('error', error);\r\n // console.error('error.message', error.message);\r\n // console.error('error.status', error.status);\r\n // console.error('error.response', error.response);\r\n // console.error('error.code', error.code);\r\n // console.error('error.name', error.name);\r\n // 对响应错误做点什么\r\n if (error.message.includes('timeout')) {\r\n errorMessage({\r\n duration: 10 * 1000,\r\n message: `请求超时。${serviceMessage}\r\n 接口地址:${error.config?.url ?? ''}`,\r\n });\r\n } else if (error.message.includes('Network Error')) {\r\n errorMessage({\r\n duration: 10 * 1000,\r\n message: `网络错误。${serviceMessage}\r\n 接口地址:${error.config?.url ?? ''}`,\r\n });\r\n } else {\r\n errorMessage({\r\n message: `${error.message}。${serviceMessage}\r\n 接口地址:${error.config?.url ?? ''}`,\r\n });\r\n }\r\n};\r\n"],"names":["ElMessage"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"errorMessage.js","sources":["../../../../../../packages/utils/src/http/errorMessage.ts"],"sourcesContent":["import { ElMessage, type MessageOptions } from 'element-plus';\r\nimport type { AxiosError } from 'axios';\r\n\r\n/**\r\n * 统一错误弹窗\r\n */\r\nexport const errorMessage = (options: MessageOptions) => {\r\n return ElMessage({\r\n type: 'error',\r\n duration: 5 * 1000,\r\n showClose: true,\r\n grouping: true,\r\n ...options,\r\n message: options?.message || '未知错误',\r\n });\r\n};\r\n// 抛错时 error\r\nexport const responseErrorMessage = (error: AxiosError<any, any>) => {\r\n if (error.config?.disableMessage) {\r\n return;\r\n }\r\n if (error.code === 'ERR_CANCELED') {\r\n return Promise.reject(error);\r\n }\r\n const serviceMessage =\r\n (error?.response?.data?.message || error?.response?.data?.comment || error?.response?.data?.msg || error?.response?.data?.errMsg) ?? '';\r\n switch (error.response?.status) {\r\n case 400:\r\n return errorMessage({\r\n message: `400-客户端错误,请求失败。${serviceMessage}`,\r\n });\r\n case 403:\r\n return errorMessage({\r\n message: `403-无权访问。${serviceMessage}`,\r\n });\r\n case 404:\r\n return errorMessage({\r\n message: `404-无效的请求。${serviceMessage}`,\r\n });\r\n case 413:\r\n return errorMessage({\r\n message: `413-请求内容过大。${serviceMessage}`,\r\n });\r\n case 500:\r\n return errorMessage({\r\n message: `500-服务器内部错误o(╥﹏╥)o。${serviceMessage}`,\r\n });\r\n case 502:\r\n return errorMessage({\r\n message: `502-网关错误。${serviceMessage}`,\r\n });\r\n case 504:\r\n return errorMessage({\r\n message: `504-网关超时。${serviceMessage}`,\r\n });\r\n\r\n default:\r\n break;\r\n }\r\n console.error('error', error);\r\n // console.error('error.message', error.message);\r\n // console.error('error.status', error.status);\r\n // console.error('error.response', error.response);\r\n // console.error('error.code', error.code);\r\n // console.error('error.name', error.name);\r\n // 对响应错误做点什么\r\n if (error.message.includes('timeout')) {\r\n errorMessage({\r\n duration: 10 * 1000,\r\n message: `请求超时。${serviceMessage}\r\n 接口地址:${error.config?.url ?? ''}`,\r\n });\r\n } else if (error.message.includes('Network Error')) {\r\n errorMessage({\r\n duration: 10 * 1000,\r\n message: `网络错误。${serviceMessage}\r\n 接口地址:${error.config?.url ?? ''}`,\r\n });\r\n } else {\r\n errorMessage({\r\n message: `${error.message}。${serviceMessage}\r\n 接口地址:${error.config?.url ?? ''}`,\r\n });\r\n }\r\n};\r\n"],"names":["ElMessage"],"mappings":"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"}
|