giime 0.9.3-beta.1 → 0.9.4-beta.1

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.
Files changed (76) hide show
  1. package/dist/index.css +116 -116
  2. package/es/components/src/base/configProvider/ConfigProvider.vue.d.ts +1 -1
  3. package/es/components/src/base/configProvider/index.d.ts +3 -3
  4. package/es/components/src/base/image/Image.vue.d.ts +1 -1
  5. package/es/components/src/base/image/index.d.ts +2 -2
  6. package/es/components/src/base/imageViewer/ImageViewer.vue.d.ts +1 -1
  7. package/es/components/src/base/imageViewer/index.d.ts +1 -1
  8. package/es/components/src/base/progress/Progress.vue.d.ts +1 -1
  9. package/es/components/src/base/progress/index.d.ts +3 -3
  10. package/es/components/src/base/space/Space.vue.d.ts +2 -2
  11. package/es/components/src/base/space/index.d.ts +6 -6
  12. package/es/components/src/base/step/Step.vue.d.ts +1 -1
  13. package/es/components/src/base/step/index.d.ts +3 -3
  14. package/es/components/src/business/loginDialog/LoginDialog.vue2.mjs +6 -3
  15. package/es/components/src/business/loginDialog/LoginDialog.vue2.mjs.map +1 -1
  16. package/es/components/src/composite/tableCustom/TableColumnVNodeRenderer.mjs +11 -9
  17. package/es/components/src/composite/tableCustom/TableColumnVNodeRenderer.mjs.map +1 -1
  18. package/es/components/src/composite/tableCustom/TableCustom.vue.mjs +1 -1
  19. package/es/components/src/composite/tableCustom/TableCustom.vue2.mjs +1 -1
  20. package/es/components/src/composite/tableCustom/TableCustom.vue2.mjs.map +1 -1
  21. package/es/components/src/composite/tableCustom/tableCustomHeader/TableCustomHeader.vue2.mjs +7 -1
  22. package/es/components/src/composite/tableCustom/tableCustomHeader/TableCustomHeader.vue2.mjs.map +1 -1
  23. package/es/giime/index.mjs +1 -0
  24. package/es/giime/index.mjs.map +1 -1
  25. package/es/giime/version.d.ts +1 -1
  26. package/es/giime/version.mjs +1 -1
  27. package/es/giime/version.mjs.map +1 -1
  28. package/es/hooks/store/common/useLangList/index.d.ts +1 -1
  29. package/es/hooks/store/useLineList/index.d.ts +1 -1
  30. package/es/index.css +116 -116
  31. package/es/utils/index.d.ts +1 -0
  32. package/es/utils/index.mjs +1 -0
  33. package/es/utils/index.mjs.map +1 -1
  34. package/es/utils/src/clarity/index.d.ts +67 -0
  35. package/es/utils/src/clarity/index.mjs +93 -0
  36. package/es/utils/src/clarity/index.mjs.map +1 -0
  37. package/es/utils/src/http/devProxy.mjs +1 -3
  38. package/es/utils/src/http/devProxy.mjs.map +1 -1
  39. package/lib/components/src/base/configProvider/ConfigProvider.vue.d.ts +1 -1
  40. package/lib/components/src/base/configProvider/index.d.ts +3 -3
  41. package/lib/components/src/base/image/Image.vue.d.ts +1 -1
  42. package/lib/components/src/base/image/index.d.ts +2 -2
  43. package/lib/components/src/base/imageViewer/ImageViewer.vue.d.ts +1 -1
  44. package/lib/components/src/base/imageViewer/index.d.ts +1 -1
  45. package/lib/components/src/base/progress/Progress.vue.d.ts +1 -1
  46. package/lib/components/src/base/progress/index.d.ts +3 -3
  47. package/lib/components/src/base/space/Space.vue.d.ts +2 -2
  48. package/lib/components/src/base/space/index.d.ts +6 -6
  49. package/lib/components/src/base/step/Step.vue.d.ts +1 -1
  50. package/lib/components/src/base/step/index.d.ts +3 -3
  51. package/lib/components/src/business/loginDialog/LoginDialog.vue2.js +6 -3
  52. package/lib/components/src/business/loginDialog/LoginDialog.vue2.js.map +1 -1
  53. package/lib/components/src/composite/tableCustom/TableColumnVNodeRenderer.js +11 -9
  54. package/lib/components/src/composite/tableCustom/TableColumnVNodeRenderer.js.map +1 -1
  55. package/lib/components/src/composite/tableCustom/TableCustom.vue.js +1 -1
  56. package/lib/components/src/composite/tableCustom/TableCustom.vue2.js +1 -1
  57. package/lib/components/src/composite/tableCustom/TableCustom.vue2.js.map +1 -1
  58. package/lib/components/src/composite/tableCustom/tableCustomHeader/TableCustomHeader.vue2.js +7 -1
  59. package/lib/components/src/composite/tableCustom/tableCustomHeader/TableCustomHeader.vue2.js.map +1 -1
  60. package/lib/giime/index.js +375 -373
  61. package/lib/giime/index.js.map +1 -1
  62. package/lib/giime/version.d.ts +1 -1
  63. package/lib/giime/version.js +1 -1
  64. package/lib/giime/version.js.map +1 -1
  65. package/lib/hooks/store/common/useLangList/index.d.ts +1 -1
  66. package/lib/hooks/store/useLineList/index.d.ts +1 -1
  67. package/lib/index.css +116 -116
  68. package/lib/utils/index.d.ts +1 -0
  69. package/lib/utils/index.js +2 -0
  70. package/lib/utils/index.js.map +1 -1
  71. package/lib/utils/src/clarity/index.d.ts +67 -0
  72. package/lib/utils/src/clarity/index.js +95 -0
  73. package/lib/utils/src/clarity/index.js.map +1 -0
  74. package/lib/utils/src/http/devProxy.js +1 -3
  75. package/lib/utils/src/http/devProxy.js.map +1 -1
  76. package/package.json +1 -1
@@ -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>\n <div v-if=\"isSSRShowDialog\">\n <el-dialog v-model=\"loginStore.showLogin\" width=\"80%\" append-to-body>\n <!-- 正常登录状态:显示iframe -->\n <iframe v-if=\"loginStore.showLogin && !loginStore.isLoginBlocked\" class=\"gm-h-[600px] gm-w-full\" :src=\"loginUrl\" />\n <!-- 异常状态:显示错误提示 -->\n <div v-else-if=\"loginStore.isLoginBlocked\" class=\"gm-py-10\">\n <el-result icon=\"warning\" title=\"登录异常\" sub-title=\"短时间内多次登录失败,请稍后重试\">\n <template #extra>\n <el-button type=\"primary\" @click=\"handleRetryLogin\">重新登录</el-button>\n <el-button type=\"warning\" @click=\"handleClearCache\">清空缓存</el-button>\n <el-button @click=\"loginStore.showLogin = false\">关闭</el-button>\n </template>\n </el-result>\n </div>\n </el-dialog>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue';\n// import { isObject } from '@vue/shared';\nimport { ElButton, ElDialog, ElMessage, ElResult } 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 { isDingTalk, isMobile, isString } from '@giime/utils';\nimport { getDomain, urlJoin } from '@giime/utils/src/http/url';\nimport { getTenantType, isGiikin } from '@giime/utils/src/tenant';\nimport { envConfigs } from '@giime/utils/src/http/createModes';\nimport { loginDialogProps } from './loginDialog';\nimport { resetEnvMode } from '@giime/constants/key';\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('');\n\n\nconst importMetaEnv = useGlobalConfig('env');\nconst isSSRShowDialog = ref(importMetaEnv.value.SSR === false);\n\n/**\n * 获取登录URL\n * 优先级:环境变量 > resetEnvMode > 租户类型判断 > 默认值\n */\nlet originLoginUrl = '';\n// 1. 优先使用环境变量配置的 loginUrl\nif (isString(importMetaEnv.value[loginEnvKey])) {\n originLoginUrl = importMetaEnv.value[loginEnvKey];\n} else {\n // 2. 根据租户类型获取登录路径\n const loginPath = isGiikin() ? '/guard/sso/public/auth' : '/fe/basic/login';\n\n // 3. 根据 resetEnvMode 获取环境配置并拼接完整URL\n const resetMode = importMetaEnv.value[resetEnvMode];\n const hostname = window.location.hostname;\n // 获取域名对应的环境配置\n const findEnvConfig = Object.values(envConfigs).find(config => config.domain === hostname);\n if (resetMode && envConfigs[resetMode]) {\n originLoginUrl = urlJoin(envConfigs[resetMode].url, loginPath);\n } else if (findEnvConfig) {\n // 4. 根据域名获取环境配置并拼接完整URL\n originLoginUrl = urlJoin(findEnvConfig.url, loginPath);\n } else {\n // 5. 默认使用开发环境登录路径\n originLoginUrl = urlJoin(envConfigs.develop.url, loginPath);\n }\n}\nconst handleLogin = () => {\n const protocol = window.location.protocol;\n const host = window.location.host;\n const myPath = window.location.pathname;\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 // 公司id\n const guard_company = Cookies.get('guard_company');\n if (guard_company) {\n loginUrl.value += `&companyId=${guard_company}`;\n }\n\n loginUrl.value += `&${props.redirectUrlField}=${protocol}//${host}${myPath}`;\n\n // eslint-disable-next-line no-console\n console.log(loginUrl.value);\n if (isMobile() || isDingTalk()) {\n window.location.href = loginUrl.value;\n }\n};\n\n/** 重试登录:重置循环保护计数器并重新加载登录页 */\nconst handleRetryLogin = () => {\n loginStore.resetLoginBlock();\n handleLogin();\n};\n\n/** 清空缓存:清除 Cookies、localStorage 和 sessionStorage */\nconst handleClearCache = () => {\n // 清除所有 Cookies\n const cookies = document.cookie.split(';');\n const curDomain = getDomain();\n cookies.forEach(cookie => {\n const name = cookie.split('=')[0].trim();\n if (name) {\n // 尝试多种方式删除 cookie\n Cookies.remove(name);\n Cookies.remove(name, { domain: curDomain });\n Cookies.remove(name, { domain: `.${curDomain}` });\n }\n });\n\n // 提示操作成功\n ElMessage.success('清除cookie缓存成功');\n};\nwatch(\n () => loginStore.showLogin,\n value => {\n if (value) {\n handleLogin();\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\ninterface GiikinLogged {\n type: string;\n data: {\n token: string;\n userId: string;\n /**token 或者 loginSuccess 控制当前登录是否成功*/\n loginSuccess?: boolean;\n /**禁止写入cookie */\n disabledWrite?: boolean;\n disabledClose?: boolean;\n tokens: { key: string; value: string }[];\n };\n cookies?: string[];\n}\n\nonMounted(() => {\n isSSRShowDialog.value = true;\n if (loginStore.showLogin) {\n handleLogin();\n }\n // iframe事件监听\n window.addEventListener('message', async e => {\n // 刷新登陆状态\n if (e.data.type == 'giikin-Logged') {\n const data: GiikinLogged = e.data;\n // eslint-disable-next-line no-console\n console.log(e.data);\n const token = Cookies.get('token');\n // const isProduction = importMetaEnv.value.MODE === 'production' || importMetaEnv.value.MODE === 'giiktok.production';\n const isProduction = importMetaEnv.value.MODE.includes('production');\n if (\n // 测试环境 但是需要登陆的情况\n (!isProduction && data?.data?.token) ||\n // 正式环境 登录成功 但是服务器token设置失败\n (isProduction && !token && data?.data?.token)\n ) {\n // loginStore.userToken = data.data.token;\n loginStore.userId = data.data.userId;\n const now = new Date();\n let time = now.getTime();\n time += 8 * 60 * 60 * 1000; // 8 小时之后的时间(单位:毫秒)\n now.setTime(time);\n const curDomain = getDomain();\n // 不禁用 则写入cookie\n if (!data.data.disabledWrite) {\n // cookieMap\n if (data.cookies && Array.isArray(data.cookies)) {\n data.cookies.forEach((cookie: string) => {\n document.cookie = cookie;\n });\n }\n // 可能出现测试环境调正式,需要写入token\n Cookies.set('token', data.data.token, { expires: now, domain: isProduction ? curDomain : undefined });\n // 本地开发时 写入token\n if (importMetaEnv.value.DEV && data.data.tokens) {\n data.data.tokens.forEach((token: { key: string; value: string }) => {\n Cookies.set(token.key, token.value, { expires: now, domain: curDomain });\n });\n }\n\n if (!Cookies.get('sso_user_id') && data.data.userId) {\n Cookies.set('sso_user_id', data.data.userId, {\n expires: now,\n domain: isProduction ? curDomain : undefined,\n });\n }\n }\n }\n if (!data.data.disabledClose) {\n // 触发登录成功监听\n if (data?.data?.token || data?.data?.loginSuccess) {\n await loginStore.triggerLoginResult(true);\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 });\n});\nonUnmounted(() => {\n window.clearInterval(reloadTimer.value);\n});\n</script>\n"],"names":["token"],"mappings":"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"}
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 -->\n <iframe v-if=\"loginStore.showLogin && !loginStore.isLoginBlocked\" class=\"gm-h-[600px] gm-w-full\" :src=\"loginUrl\" />\n <!-- 异常状态:显示错误提示 -->\n <div v-else-if=\"loginStore.isLoginBlocked\" class=\"gm-py-10\" :src=\"loginUrl\">\n <el-result icon=\"warning\" title=\"登录异常\" sub-title=\"短时间内多次登录失败,请稍后重试\">\n <template #extra>\n <el-button type=\"primary\" @click=\"handleRetryLogin\">重新登录</el-button>\n <el-button type=\"warning\" @click=\"handleClearCache\">清空缓存</el-button>\n <el-button @click=\"loginStore.showLogin = false\">关闭</el-button>\n </template>\n </el-result>\n </div>\n </el-dialog>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { computed, onMounted, onUnmounted, ref, watch } from 'vue';\n// import { isObject } from '@vue/shared';\nimport { ElButton, ElDialog, ElMessage, ElResult } 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 { isDingTalk, isMobile, isString } from '@giime/utils';\nimport { getDomain, urlJoin } from '@giime/utils/src/http/url';\nimport { getTenantType, isGiikin } from '@giime/utils/src/tenant';\nimport { envConfigs } from '@giime/utils/src/http/createModes';\nimport { loginDialogProps } from './loginDialog';\nimport { resetEnvMode } from '@giime/constants/key';\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('');\n\n\nconst importMetaEnv = useGlobalConfig('env');\nconst isSSRShowDialog = ref(importMetaEnv.value.SSR === false);\n\n/**\n * 获取登录URL\n * 优先级:环境变量 > resetEnvMode > 租户类型判断 > 默认值\n */\nlet originLoginUrl = '';\n// 1. 优先使用环境变量配置的 loginUrl\nif (isString(importMetaEnv.value[loginEnvKey])) {\n originLoginUrl = importMetaEnv.value[loginEnvKey];\n} else {\n // 2. 根据租户类型获取登录路径\n const loginPath = isGiikin() ? '/guard/sso/public/auth' : '/fe/basic/login';\n\n // 3. 根据 resetEnvMode 获取环境配置并拼接完整URL\n const resetMode = importMetaEnv.value[resetEnvMode];\n const hostname = window.location.hostname;\n // 获取域名对应的环境配置\n const findEnvConfig = Object.values(envConfigs).find(config => config.domain === hostname);\n if (resetMode && envConfigs[resetMode]) {\n originLoginUrl = urlJoin(envConfigs[resetMode].url, loginPath);\n } else if (findEnvConfig) {\n // 4. 根据域名获取环境配置并拼接完整URL\n originLoginUrl = urlJoin(findEnvConfig.url, loginPath);\n } else {\n // 5. 默认使用开发环境登录路径\n originLoginUrl = urlJoin(envConfigs.develop.url, loginPath);\n }\n}\nconst handleLogin = () => {\n const protocol = window.location.protocol;\n const host = window.location.host;\n const myPath = window.location.pathname;\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 // 公司id\n const guard_company = Cookies.get('guard_company');\n if (guard_company) {\n loginUrl.value += `&companyId=${guard_company}`;\n }\n\n loginUrl.value += `&${props.redirectUrlField}=${protocol}//${host}${myPath}`;\n\n // eslint-disable-next-line no-console\n console.log(loginUrl.value);\n if (isMobile() || isDingTalk()) {\n window.location.href = loginUrl.value;\n }\n};\n\n/** 重试登录:重置循环保护计数器并重新加载登录页 */\nconst handleRetryLogin = () => {\n loginStore.resetLoginBlock();\n handleLogin();\n};\n\n/** 清空缓存:清除 Cookies、localStorage 和 sessionStorage */\nconst handleClearCache = () => {\n // 清除所有 Cookies\n const cookies = document.cookie.split(';');\n const curDomain = getDomain();\n cookies.forEach(cookie => {\n const name = cookie.split('=')[0].trim();\n if (name) {\n // 尝试多种方式删除 cookie\n Cookies.remove(name);\n Cookies.remove(name, { domain: curDomain });\n Cookies.remove(name, { domain: `.${curDomain}` });\n }\n });\n\n // 提示操作成功\n ElMessage.success('清除cookie缓存成功');\n};\nwatch(\n () => loginStore.showLogin,\n value => {\n if (value) {\n handleLogin();\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\ninterface GiikinLogged {\n type: string;\n data: {\n token: string;\n userId: string;\n /**token 或者 loginSuccess 控制当前登录是否成功*/\n loginSuccess?: boolean;\n /**禁止写入cookie */\n disabledWrite?: boolean;\n disabledClose?: boolean;\n tokens: { key: string; value: string }[];\n };\n cookies?: string[];\n}\n\nonMounted(() => {\n isSSRShowDialog.value = true;\n if (loginStore.showLogin) {\n handleLogin();\n }\n // iframe事件监听\n window.addEventListener('message', async e => {\n // 刷新登陆状态\n if (e.data.type == 'giikin-Logged') {\n const data: GiikinLogged = e.data;\n // eslint-disable-next-line no-console\n console.log(e.data);\n const token = Cookies.get('token');\n // const isProduction = importMetaEnv.value.MODE === 'production' || importMetaEnv.value.MODE === 'giiktok.production';\n const isProduction = importMetaEnv.value.MODE.includes('production');\n if (\n // 测试环境 但是需要登陆的情况\n (!isProduction && data?.data?.token) ||\n // 正式环境 登录成功 但是服务器token设置失败\n (isProduction && !token && data?.data?.token)\n ) {\n // loginStore.userToken = data.data.token;\n loginStore.userId = data.data.userId;\n const now = new Date();\n let time = now.getTime();\n time += 8 * 60 * 60 * 1000; // 8 小时之后的时间(单位:毫秒)\n now.setTime(time);\n const curDomain = getDomain();\n // 不禁用 则写入cookie\n if (!data.data.disabledWrite) {\n // cookieMap\n if (data.cookies && Array.isArray(data.cookies)) {\n data.cookies.forEach((cookie: string) => {\n document.cookie = cookie;\n });\n }\n // 可能出现测试环境调正式,需要写入token\n Cookies.set('token', data.data.token, { expires: now, domain: isProduction ? curDomain : undefined });\n // 本地开发时 写入token\n if (importMetaEnv.value.DEV && data.data.tokens) {\n data.data.tokens.forEach((token: { key: string; value: string }) => {\n Cookies.set(token.key, token.value, { expires: now, domain: curDomain });\n });\n }\n\n if (!Cookies.get('sso_user_id') && data.data.userId) {\n Cookies.set('sso_user_id', data.data.userId, {\n expires: now,\n domain: isProduction ? curDomain : undefined,\n });\n }\n }\n }\n if (!data.data.disabledClose) {\n // 触发登录成功监听\n if (data?.data?.token || data?.data?.loginSuccess) {\n await loginStore.triggerLoginResult(true);\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 });\n});\nonUnmounted(() => {\n window.clearInterval(reloadTimer.value);\n});\n</script>\n"],"names":["token"],"mappings":"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"}
@@ -20,19 +20,22 @@ var TableColumnVNodeRenderer = /* @__PURE__ */ defineComponent({
20
20
  },
21
21
  setup(props) {
22
22
  const mergePropsList = computed(() => {
23
- return props.propsList.map((it) => {
24
- const findProp = props.defaultPropsList.find((item) => item.prop === it.prop);
25
- if (findProp) {
26
- return findProp;
27
- }
28
- return it;
23
+ const matchedItems = props.propsList.filter((propsItem) => {
24
+ return props.defaultPropsList.some((defaultItem) => defaultItem.prop === propsItem.prop);
25
+ });
26
+ const additionalItems = props.defaultPropsList.filter((defaultItem) => {
27
+ return !props.propsList.some((propsItem) => propsItem.prop === defaultItem.prop);
29
28
  });
29
+ return [...matchedItems, ...additionalItems];
30
30
  });
31
31
  const processVNode = (vnode) => {
32
32
  if (!vnode) return null;
33
33
  if (vnode.type?.name === "GmTableColumnPro") {
34
+ if (vnode.props?.type === "edit") {
35
+ return null;
36
+ }
34
37
  const propsConfig = mergePropsList.value.find((it) => it.prop === vnode.props?.prop);
35
- if (propsConfig && (!propsConfig.isShow || propsConfig.type === "edit")) {
38
+ if (propsConfig && !propsConfig.isShow) {
36
39
  return null;
37
40
  }
38
41
  if (propsConfig) {
@@ -91,8 +94,7 @@ var TableColumnVNodeRenderer = /* @__PURE__ */ defineComponent({
91
94
  processedProps.add(propsConfig.prop);
92
95
  }
93
96
  });
94
- const remainingColumns = topLevelColumns.filter((col) => col?.props?.prop && !processedProps.has(col.props.prop));
95
- return [...multiLevelHeaders, ...orderedColumns, ...remainingColumns].map((vnode) => vnode ? h(vnode) : null).filter(Boolean);
97
+ return [...multiLevelHeaders, ...orderedColumns].map((vnode) => vnode ? h(vnode) : null).filter(Boolean);
96
98
  });
97
99
  return () => render.value;
98
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TableColumnVNodeRenderer.mjs","sources":["../../../../../../../packages/components/src/composite/tableCustom/TableColumnVNodeRenderer.tsx"],"sourcesContent":["// TableColumnVNodeRenderer - 支持多级表头\nimport { computed, defineComponent, h, cloneVNode } from 'vue';\nimport type { TableColumnProProps } from '../tablePro/tableColumnPro/tableColumnPro';\nimport type { PropType, VNode } from 'vue';\n\nexport default defineComponent({\n functional: true,\n props: {\n // 当前原始vnode vue模板中的attribute\n vnode: {\n type: [Object, Array],\n required: true,\n },\n // 真实渲染的propsList\n propsList: {\n type: Array as PropType<TableColumnProProps[]>,\n default: () => [],\n },\n defaultPropsList: {\n type: Array as PropType<TableColumnProProps[]>,\n default: () => [],\n },\n },\n setup(props) {\n /** 合并propsList和defaultPropsList */\n const mergePropsList = computed(() => {\n return props.propsList.map(it => {\n const findProp = props.defaultPropsList.find(item => item.prop === it.prop);\n if (findProp) {\n return findProp;\n }\n return it;\n });\n });\n\n /**\n * 递归处理 vnode 树,应用 propsList 配置\n * @param vnode 要处理的 vnode\n * @returns 处理后的 vnode\n */\n const processVNode = (vnode: any): any => {\n if (!vnode) return null;\n\n // 如果是 GmTableColumnPro,查找并应用配置\n if (vnode.type?.name === 'GmTableColumnPro') {\n const propsConfig = mergePropsList.value.find(it => it.prop === vnode.props?.prop);\n\n // 如果配置中标记为不显示或类型是 edit,跳过渲染\n if (propsConfig && (!propsConfig.isShow || propsConfig.type === 'edit')) {\n return null;\n }\n\n // 应用配置到 vnode props\n if (propsConfig) {\n const newProps = {\n ...vnode.props,\n width: propsConfig.width,\n label: propsConfig.label,\n fixed: propsConfig.fixed,\n };\n return cloneVNode(vnode, newProps);\n }\n\n return vnode;\n }\n\n // 如果是其他组件(如 gm-table-column 用于多级表头),递归处理子节点\n if (vnode.children) {\n let newChildren = vnode.children;\n\n // 如果 children 是对象(包含 slots),递归处理 default slot\n if (typeof vnode.children === 'object' && vnode.children.default) {\n const originalDefault = vnode.children.default;\n newChildren = {\n ...vnode.children,\n default: (slotProps: any) => {\n const childVnodes = originalDefault(slotProps);\n if (Array.isArray(childVnodes)) {\n return childVnodes.map(processVNode).filter(Boolean);\n }\n return processVNode(childVnodes);\n },\n };\n }\n // 如果 children 是数组,递归处理每个子节点\n else if (Array.isArray(vnode.children)) {\n newChildren = vnode.children.map(processVNode).filter(Boolean);\n }\n\n return cloneVNode(vnode, vnode.props, newChildren);\n }\n\n return vnode;\n };\n\n const render = computed(() => {\n const vnodeArray = Array.isArray(props.vnode) ? props.vnode : [props.vnode];\n\n // 先处理所有 vnode\n const processedVnodes = vnodeArray.map(vnode => processVNode(vnode)).filter(Boolean);\n\n // 分离顶层列和多级表头\n const topLevelColumns: any[] = [];\n const multiLevelHeaders: any[] = [];\n\n processedVnodes.forEach(vnode => {\n // 如果是 GmTableColumnPro(顶层列),收集起来\n if (vnode?.type?.name === 'GmTableColumnPro') {\n topLevelColumns.push(vnode);\n } else {\n // 其他情况(多级表头等),保持原样\n multiLevelHeaders.push(vnode);\n }\n });\n\n // 按照 mergePropsList 的顺序来排序顶层列\n const orderedColumns: any[] = [];\n const processedProps = new Set<string>();\n\n mergePropsList.value.forEach(propsConfig => {\n // 如果配置中标记为不显示或类型是 edit,跳过渲染\n if (!propsConfig.isShow || propsConfig.type === 'edit') {\n return;\n }\n\n // 查找对应的顶层列\n const matchedColumn = topLevelColumns.find(col => col?.props?.prop === propsConfig.prop);\n\n if (matchedColumn) {\n orderedColumns.push(matchedColumn);\n processedProps.add(propsConfig.prop);\n }\n });\n\n // 对于不在 mergePropsList 中的顶层列,也保留(可能是新增的列)\n const remainingColumns = topLevelColumns.filter(col => col?.props?.prop && !processedProps.has(col.props.prop));\n\n // 合并:多级表头 + 按顺序的顶层列 + 剩余的顶层列\n return [...multiLevelHeaders, ...orderedColumns, ...remainingColumns].map(vnode => (vnode ? h(vnode) : null)).filter(Boolean);\n });\n\n return () => render.value;\n },\n});\n"],"names":["functional","props","vnode","type","Object","Array","required","propsList","default","defaultPropsList","setup","mergePropsList","computed","map","it","findProp","find","item","prop","processVNode","name","propsConfig","value","isShow","newProps","width","label","fixed","cloneVNode","children","newChildren","originalDefault","slotProps","childVnodes","isArray","filter","Boolean","render","vnodeArray","processedVnodes","topLevelColumns","multiLevelHeaders","forEach","push","orderedColumns","processedProps","Set","matchedColumn","col","add","remainingColumns","has","h"],"mappings":"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"}
1
+ {"version":3,"file":"TableColumnVNodeRenderer.mjs","sources":["../../../../../../../packages/components/src/composite/tableCustom/TableColumnVNodeRenderer.tsx"],"sourcesContent":["// TableColumnVNodeRenderer - 支持多级表头\nimport { computed, defineComponent, h, cloneVNode } from 'vue';\nimport type { TableColumnProProps } from '../tablePro/tableColumnPro/tableColumnPro';\nimport type { PropType, VNode } from 'vue';\n\nexport default defineComponent({\n functional: true,\n props: {\n // 当前原始vnode vue模板中的attribute\n vnode: {\n type: [Object, Array],\n required: true,\n },\n // 真实渲染的propsList\n propsList: {\n type: Array as PropType<TableColumnProProps[]>,\n default: () => [],\n },\n defaultPropsList: {\n type: Array as PropType<TableColumnProProps[]>,\n default: () => [],\n },\n },\n setup(props) {\n /** 合并propsList和defaultPropsList,优先循环propsList,存在时返回propsList内的对象,同时将defaultPropsList内多出的对象插入数组后面 */\n const mergePropsList = computed(() => {\n // 获取 propsList 中在 defaultPropsList 中也存在的项(使用 propsList 中的对象)\n const matchedItems = props.propsList.filter(propsItem => {\n return props.defaultPropsList.some(defaultItem => defaultItem.prop === propsItem.prop);\n });\n\n // 获取 defaultPropsList 中存在但 propsList 中不存在的项\n const additionalItems = props.defaultPropsList.filter(defaultItem => {\n return !props.propsList.some(propsItem => propsItem.prop === defaultItem.prop);\n });\n\n // 合并:propsList 中的项在前,defaultPropsList 中多出的项在后\n return [...matchedItems, ...additionalItems];\n });\n\n /**\n * 递归处理 vnode 树,应用 propsList 配置\n * @param vnode 要处理的 vnode\n * @returns 处理后的 vnode\n */\n const processVNode = (vnode: any): any => {\n if (!vnode) return null;\n\n // 如果是 GmTableColumnPro,查找并应用配置\n if (vnode.type?.name === 'GmTableColumnPro') {\n // type=\"edit\" 的列由 TablePro 的 gmEdit 列统一处理,这里跳过\n // 直接检查 vnode.props.type,避免因 prop 相同导致的误匹配\n if (vnode.props?.type === 'edit') {\n return null;\n }\n\n const propsConfig = mergePropsList.value.find(it => it.prop === vnode.props?.prop);\n\n // 如果配置中标记为不显示,跳过渲染\n if (propsConfig && !propsConfig.isShow) {\n return null;\n }\n\n // 应用配置到 vnode props\n if (propsConfig) {\n const newProps = {\n ...vnode.props,\n width: propsConfig.width,\n label: propsConfig.label,\n fixed: propsConfig.fixed,\n };\n return cloneVNode(vnode, newProps);\n }\n\n return vnode;\n }\n\n // 如果是其他组件(如 gm-table-column 用于多级表头),递归处理子节点\n if (vnode.children) {\n let newChildren = vnode.children;\n\n // 如果 children 是对象(包含 slots),递归处理 default slot\n if (typeof vnode.children === 'object' && vnode.children.default) {\n const originalDefault = vnode.children.default;\n newChildren = {\n ...vnode.children,\n default: (slotProps: any) => {\n const childVnodes = originalDefault(slotProps);\n if (Array.isArray(childVnodes)) {\n return childVnodes.map(processVNode).filter(Boolean);\n }\n return processVNode(childVnodes);\n },\n };\n }\n // 如果 children 是数组,递归处理每个子节点\n else if (Array.isArray(vnode.children)) {\n newChildren = vnode.children.map(processVNode).filter(Boolean);\n }\n\n return cloneVNode(vnode, vnode.props, newChildren);\n }\n\n return vnode;\n };\n\n const render = computed(() => {\n const vnodeArray = Array.isArray(props.vnode) ? props.vnode : [props.vnode];\n\n // 先处理所有 vnode\n const processedVnodes = vnodeArray.map(vnode => processVNode(vnode)).filter(Boolean);\n\n // 分离顶层列和多级表头\n const topLevelColumns: any[] = [];\n const multiLevelHeaders: any[] = [];\n\n processedVnodes.forEach(vnode => {\n // 如果是 GmTableColumnPro(顶层列),收集起来\n if (vnode?.type?.name === 'GmTableColumnPro') {\n topLevelColumns.push(vnode);\n } else {\n // 其他情况(多级表头等),保持原样\n multiLevelHeaders.push(vnode);\n }\n });\n\n // 按照 mergePropsList 的顺序来排序顶层列\n const orderedColumns: any[] = [];\n const processedProps = new Set<string>();\n\n mergePropsList.value.forEach(propsConfig => {\n // 如果配置中标记为不显示或类型是 edit,跳过渲染\n if (!propsConfig.isShow || propsConfig.type === 'edit') {\n return;\n }\n\n // 查找对应的顶层列\n const matchedColumn = topLevelColumns.find(col => col?.props?.prop === propsConfig.prop);\n\n if (matchedColumn) {\n orderedColumns.push(matchedColumn);\n processedProps.add(propsConfig.prop);\n }\n });\n\n // 合并:多级表头 + 按顺序的顶层列 + 剩余的顶层列\n return [...multiLevelHeaders, ...orderedColumns].map(vnode => (vnode ? h(vnode) : null)).filter(Boolean);\n });\n\n return () => render.value;\n },\n});\n"],"names":["functional","props","vnode","type","Object","Array","required","propsList","default","defaultPropsList","setup","mergePropsList","computed","matchedItems","filter","propsItem","some","defaultItem","prop","additionalItems","processVNode","name","propsConfig","value","find","it","isShow","newProps","width","label","fixed","cloneVNode","children","newChildren","originalDefault","slotProps","childVnodes","isArray","map","Boolean","render","vnodeArray","processedVnodes","topLevelColumns","multiLevelHeaders","forEach","push","orderedColumns","processedProps","Set","matchedColumn","col","add","h"],"mappings":"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"}
@@ -2,7 +2,7 @@ import _sfc_main from './TableCustom.vue2.mjs';
2
2
  import './TableCustom.vue3.mjs';
3
3
  import _export_sfc from '../../../../_virtual/_plugin-vue_export-helper.mjs';
4
4
 
5
- var TableCustom = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-1e1d88ac"]]);
5
+ var TableCustom = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-3f2c8504"]]);
6
6
 
7
7
  export { TableCustom as default };
8
8
  //# sourceMappingURL=TableCustom.vue.mjs.map
@@ -12,7 +12,7 @@ import TableColumnVNodeRenderer from './TableColumnVNodeRenderer.mjs';
12
12
  import { tableCustomEmits, tableCustomProps } from './tableCustom.mjs';
13
13
  import { customOperateButtonProps } from './customOperate/customOperate.mjs';
14
14
 
15
- const _withScopeId = (n) => (pushScopeId("data-v-1e1d88ac"), n = n(), popScopeId(), n);
15
+ const _withScopeId = (n) => (pushScopeId("data-v-3f2c8504"), n = n(), popScopeId(), n);
16
16
  const _hoisted_1 = { class: "gm-text-center" };
17
17
  const _hoisted_2 = {
18
18
  key: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"TableCustom.vue2.mjs","sources":["../../../../../../../packages/components/src/composite/tableCustom/TableCustom.vue"],"sourcesContent":["<template>\n <div ref=\"gmTableCustomDivRef\">\n <gm-table\n v-if=\"gmCustomTableHeaderRef?.isInited\"\n ref=\"GmTbaleCustomRef\"\n v-bind=\"props\"\n :height=\"autoHeight ? tableMaxHeight : height\"\n class=\"gmTableCustom\"\n :class=\"[props.border ? '' : 'gmTableNoBorder']\"\n v-on=\"elEvents\"\n @selection-change=\"(value: TableColumnProProps[]) => $emit('selection-change', value)\"\n @sort-change=\"handleSortChange\"\n @header-dragend=\"headerDragend\"\n >\n <slot name=\"native\" />\n <template v-if=\"slots.append\" #append>\n <slot name=\"append\" />\n </template>\n <template v-if=\"slots.empty\" #empty>\n <slot name=\"empty\" />\n </template>\n <template v-if=\"props.selection\">\n <gm-table-column :key=\"999999\" type=\"selection\" width=\"55\" />\n </template>\n <TableColumnVNodeRenderer :vnode=\"tableColumnVnode\" :propsList=\"colPropsList\" :defaultPropsList=\"colDefaultPropsList\" />\n <!-- 操作 -->\n <gm-table-column\n v-if=\"customHeader || customOperate\"\n prop=\"gmEdit\"\n min-width=\"100\"\n :width=\"editProps?.width\"\n :fixed=\"operateFixed ? 'right' : false\"\n >\n <template #header>\n <div class=\"gm-text-center\">\n <gm-button v-if=\"customHeader\" type=\"primary\" link size=\"small\" @click=\"setTable('header')\"> 表头 </gm-button>\n <gm-button v-if=\"customOperate\" type=\"primary\" link size=\"small\" @click=\"setTable('operate')\"> 操作 </gm-button>\n </div>\n </template>\n <template #default=\"slotValue\">\n <div\n v-if=\"\n tableOperateVnode &&\n tableOperateVnode.children &&\n gmCustomOperateRef &&\n gmCustomOperateRef.isInited &&\n slotValue &&\n slotValue.row &&\n tableOperateVnode.children?.default(slotValue) &&\n customBtnPropsList\n \"\n class=\"gm-flex gm-flex-wrap gm-justify-center\"\n >\n <TableOperateVNodeRenderer :vnode=\"tableOperateVnode.children?.default(slotValue)\" :customPropsList=\"customBtnPropsList\" />\n </div>\n </template>\n </gm-table-column>\n </gm-table>\n </div>\n\n <gm-table-custom-header\n ref=\"gmCustomTableHeaderRef\"\n v-model:isShowDrawer=\"drawerHeaderVisible\"\n v-model:colPropsList=\"colPropsList\"\n :colDefaultPropsList=\"colDefaultPropsList\"\n :keyWord=\"props.page\"\n :disabledRemoteCol=\"props.disabledRemoteCol\"\n :drag-header=\"props.dragHeader\"\n type=\"CustomHeaderList\"\n @updateColumns=\"resetWidthOnHeaderDrag()\"\n />\n\n <gm-custom-operate\n ref=\"gmCustomOperateRef\"\n v-model:isShowDrawer=\"drawerOperateVisible\"\n v-model:customBtnPropsList=\"customBtnPropsList\"\n :customDefaultPropsList=\"customDefaultPropsList\"\n :keyWord=\"props.page\"\n :disabledRemoteBtn=\"props.disabledRemoteBtn\"\n type=\"CustomOperateList\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, inject, nextTick, ref } from 'vue';\nimport { hasOwn } from '@giime/utils/src/objects';\nimport { getGmExports } from '@giime/utils/src/elementPlus/exports';\nimport { getGmEvent } from '@giime/utils/src/elementPlus/event';\nimport { TableCtxKey } from '@giime/constants/table';\nimport { useElementRemainingHeight } from '@giime/hooks/base/useElementRemainingHeight';\nimport TableOperateVNodeRenderer from '../tablePro/TableOperateVNodeRenderer';\nimport { getVnodesByGmName } from '../tablePro/tableHelper';\nimport { TableColumnProName, type TableColumnProProps, tableColumnProProps } from '../tablePro/tableColumnPro/tableColumnPro';\nimport GmCustomOperate, { customOperateButtonProps } from './customOperate';\nimport TableColumnVNodeRenderer from './TableColumnVNodeRenderer';\nimport { tableCustomEmits, tableCustomProps } from './tableCustom';\nimport type { TableColumnSortValue } from './tableCustom';\nimport type { OperateButtonFormInstance } from '../operateButton/operateButtonForm';\nimport type { TableHeaderFormInstance } from '../tablePro/tableHeaderForm';\nimport type { CustomOperateButtonProps } from './customOperate';\nimport type { Sort, TableInstance } from 'element-plus';\n\ndefineOptions({\n name: 'GmTableCustom',\n});\nconst tableCtx = inject(TableCtxKey);\nconst props = defineProps(tableCustomProps);\n\nconst GmTbaleCustomRef = ref<TableInstance>();\nif (tableCtx && tableCtx.tableId === props.page) {\n tableCtx.tableRef = GmTbaleCustomRef;\n}\nconst gmCustomOperateRef = ref<OperateButtonFormInstance>();\nconst gmCustomTableHeaderRef = ref<TableHeaderFormInstance>();\n\nconst emit = defineEmits(tableCustomEmits);\n// 需要手动重新实现的事件\nconst notResendEvents = ['sort-change', 'header-dragend', 'selection-change'];\nconst resendEvent = { ...tableCustomEmits };\nnotResendEvents.forEach(it => Reflect.deleteProperty(resendEvent, it));\n// 重发el的事件\nconst elEvents = getGmEvent(resendEvent, emit);\nconst slots = defineSlots<{\n default(data?: any): any[];\n append?(data?: any): any[];\n empty?(data?: any): any[];\n native?(data?: any): any[];\n}>();\n// 列 当前原始vnode\nconst tableColumnVnode = computed(() => {\n const vNodes = slots.default?.() || [];\n return vNodes;\n});\n// 默认表头Props列表\nconst colDefaultPropsList = computed(() => {\n const vNodes = slots.default?.() || [];\n const children = getVnodesByGmName(vNodes, TableColumnProName);\n\n const colProps: TableColumnProProps[] = children.map((vNode: { props: any }) => vNode.props) ?? [];\n // 循环插入props所需的默认值\n colProps.forEach(it => {\n for (const key in tableColumnProProps) {\n // 如果当前props含有默认值\n if (hasOwn(it, key)) {\n continue;\n }\n if (hasOwn(tableColumnProProps, key)) {\n const element = tableColumnProProps[key as keyof TableColumnProProps];\n // 如果btn 定义中含有默认值 则赋值给props\n if (hasOwn(element, 'default')) {\n Reflect.set(it, key, Reflect.get(element, 'default'));\n }\n }\n }\n });\n return colProps;\n});\n\n// 已选中表头\nconst colPropsList = ref<TableColumnProProps[]>(colDefaultPropsList.value);\nconst editProps = computed(() => colPropsList.value.find(it => it.type === 'edit'));\n\n// 操作按钮组 当前原始vnode\nconst tableOperateVnode = computed(() => {\n const vNodes = slots.default?.() || [];\n const nodes = vNodes.find(vNode => vNode.props && vNode.props.type === 'edit');\n return nodes;\n});\n\nconst customDefaultPropsList = computed(() => {\n const defaultVnodes = tableOperateVnode.value?.children?.default?.({ row: {} });\n if (Array.isArray(defaultVnodes) && defaultVnodes.some(it => it?.children === 'v-if')) {\n console.error(`警告:为确保表格操作按钮能正常渲染,请把表格${props.page}操作按钮中使用的\"v-if\"替换为\"v-see\"`);\n }\n const children = getVnodesByGmName(defaultVnodes, 'GmOperateButton');\n const btnProps: CustomOperateButtonProps[] = children.map((vNode: { props: any }) => vNode.props) ?? [];\n // console.log(btnProps);\n // 循环插入props所需的默认值\n btnProps.forEach(it => {\n for (const key in customOperateButtonProps) {\n // 如果当前props含有默认值\n if (hasOwn(it, key)) {\n continue;\n }\n if (hasOwn(customOperateButtonProps, key)) {\n const element = customOperateButtonProps[key as keyof CustomOperateButtonProps];\n // 如果btn 定义中含有默认值 则赋值给props\n if (hasOwn(element, 'default')) {\n Reflect.set(it, key, Reflect.get(element, 'default'));\n }\n }\n }\n });\n return btnProps;\n});\nconst customBtnPropsList = ref<CustomOperateButtonProps[]>(customDefaultPropsList.value);\n\n// 表格头部弹层\nconst drawerHeaderVisible = ref(false); // 表头设置弹层\nconst drawerOperateVisible = ref(false); // 按钮设置弹层\nconst setTable = (event: string) => {\n if (event === 'header') {\n drawerHeaderVisible.value = true;\n }\n if (event === 'operate') {\n drawerOperateVisible.value = true;\n }\n};\n\n/**\n * 表头拖动,修改width\n */\nconst headerDragend = async (newWidth: number, oldWidth: number, column: any) => {\n const findItem = colPropsList.value.find(it => it.prop === column.property);\n const editItem = column.property === 'gmEdit' ? colPropsList.value.find(it => it.type === 'edit') : null;\n if (!findItem && !editItem) {\n return;\n }\n if (findItem) {\n findItem.width = newWidth;\n }\n if (editItem) {\n editItem.width = newWidth;\n }\n // 设置列宽\n await nextTick();\n resetWidthOnHeaderDrag(column);\n gmCustomTableHeaderRef.value?.syncPropsList();\n gmCustomTableHeaderRef.value?.submitSettings({ hiddenMessage: true });\n};\n/**\n * 当表头拖动后,重新计算补充列宽度\n * 当全部列都设置了宽度,把设置过minWidth的列设置为补充列,补充表格剩余宽度\n */\nconst resetWidthOnHeaderDrag = (column?: any) => {\n // console.log('resetWidthOnHeaderDrag', column);\n if (props.disabledResetWidth) {\n return;\n }\n // // 当全部列都设置了宽度 才执行后续步骤\n // if (colPropsList.value.some(it => it.isShow && !it.width)) {\n // return;\n // }\n // console.log('colPropsList', colPropsList.value);\n const minWidthCols = colPropsList.value.filter(\n // 是在展示中的列,并且不是操作列,并且设置了最小宽度\n it => it.isShow === true && it.type !== 'edit' && it.prop !== 'edit' && ((it as any)['min-width'] || it.minWidth),\n );\n for (const item of minWidthCols) {\n // 只有一个minWidth时, 也需要设置width = ''\n if (column?.property === item.prop && minWidthCols.length !== 1) {\n continue;\n }\n item.width = '';\n }\n};\n/**\n * 搜索模块\n */\nconst sortValue = defineModel<TableColumnSortValue[]>('sortValue');\n\nconst handleSortChange = (sort: Sort) => {\n if (sortValue.value) {\n sortValue.value.length = 0;\n switch (sort.order) {\n case 'ascending':\n sortValue.value.push({ field: sort.prop, order: 'asc' });\n break;\n case 'descending':\n sortValue.value.push({ field: sort.prop, order: 'desc' });\n break;\n }\n }\n\n emit('sort-change', sort);\n};\nconst exposeEvents = [\n 'clearSelection',\n 'getSelectionRows',\n 'toggleRowSelection',\n 'toggleAllSelection',\n 'toggleRowExpansion',\n 'setCurrentRow',\n 'setChecked',\n 'clearSort',\n 'clearFilter',\n 'doLayout',\n 'sort',\n 'scrollTo',\n 'setScrollTop',\n 'setScrollLeft',\n] as const;\nconst { exposeFns } = getGmExports(GmTbaleCustomRef, exposeEvents);\n\n// 用于计算table高度\nconst gmTableCustomDivRef = ref<HTMLDivElement>();\nconst { height: tableMaxHeight } = useElementRemainingHeight(gmTableCustomDivRef, {\n bottomOffset: props.heightOffset || 30, // 高度 - 顶部距离 - 分页器\n minHeight: 300,\n});\n\ndefineExpose({\n colPropsList,\n ...exposeFns,\n});\n</script>\n\n<style lang=\"scss\" scoped>\n:deep(.gmTableNoBorder .el-table__body .el-table__cell) {\n border-right: none;\n}\n:deep(.gmTableNoBorder .el-table__inner-wrapper:before) {\n height: 0;\n}\n:deep(.gmTableNoBorder.el-table--border .el-table__inner-wrapper:after) {\n height: 0;\n}\n:deep(.gmTableNoBorder.el-table--border:after) {\n height: 0;\n}\n:deep(.gmTableNoBorder.el-table--border:before) {\n height: 0;\n}\n:deep(.gmTableNoBorder .el-table__border-left-patch) {\n height: 0;\n}\n</style>\n"],"names":["_useSlots","_useModel"],"mappings":"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"}
1
+ {"version":3,"file":"TableCustom.vue2.mjs","sources":["../../../../../../../packages/components/src/composite/tableCustom/TableCustom.vue"],"sourcesContent":["<template>\n <div ref=\"gmTableCustomDivRef\">\n <gm-table\n v-if=\"gmCustomTableHeaderRef?.isInited\"\n ref=\"GmTbaleCustomRef\"\n v-bind=\"props\"\n :height=\"autoHeight ? tableMaxHeight : height\"\n class=\"gmTableCustom\"\n :class=\"[props.border ? '' : 'gmTableNoBorder']\"\n v-on=\"elEvents\"\n @selection-change=\"(value: TableColumnProProps[]) => $emit('selection-change', value)\"\n @sort-change=\"handleSortChange\"\n @header-dragend=\"headerDragend\"\n >\n <slot name=\"native\" />\n <template v-if=\"slots.append\" #append>\n <slot name=\"append\" />\n </template>\n <template v-if=\"slots.empty\" #empty>\n <slot name=\"empty\" />\n </template>\n <template v-if=\"props.selection\">\n <gm-table-column :key=\"999999\" type=\"selection\" width=\"55\" />\n </template>\n <TableColumnVNodeRenderer :vnode=\"tableColumnVnode\" :propsList=\"colPropsList\" :defaultPropsList=\"colDefaultPropsList\" />\n <!-- 操作 -->\n <gm-table-column\n v-if=\"customHeader || customOperate\"\n prop=\"gmEdit\"\n min-width=\"100\"\n :width=\"editProps?.width\"\n :fixed=\"operateFixed ? 'right' : false\"\n >\n <template #header>\n <div class=\"gm-text-center\">\n <gm-button v-if=\"customHeader\" type=\"primary\" link size=\"small\" @click=\"setTable('header')\"> 表头 </gm-button>\n <gm-button v-if=\"customOperate\" type=\"primary\" link size=\"small\" @click=\"setTable('operate')\"> 操作 </gm-button>\n </div>\n </template>\n <template #default=\"slotValue\">\n <div\n v-if=\"\n tableOperateVnode &&\n tableOperateVnode.children &&\n gmCustomOperateRef &&\n gmCustomOperateRef.isInited &&\n slotValue &&\n slotValue.row &&\n tableOperateVnode.children?.default(slotValue) &&\n customBtnPropsList\n \"\n class=\"gm-flex gm-flex-wrap gm-justify-center\"\n >\n <TableOperateVNodeRenderer :vnode=\"tableOperateVnode.children?.default(slotValue)\" :customPropsList=\"customBtnPropsList\" />\n </div>\n </template>\n </gm-table-column>\n </gm-table>\n </div>\n\n <gm-table-custom-header\n ref=\"gmCustomTableHeaderRef\"\n v-model:isShowDrawer=\"drawerHeaderVisible\"\n v-model:colPropsList=\"colPropsList\"\n :colDefaultPropsList=\"colDefaultPropsList\"\n :keyWord=\"props.page\"\n :disabledRemoteCol=\"props.disabledRemoteCol\"\n :drag-header=\"props.dragHeader\"\n type=\"CustomHeaderList\"\n @updateColumns=\"resetWidthOnHeaderDrag()\"\n />\n\n <gm-custom-operate\n ref=\"gmCustomOperateRef\"\n v-model:isShowDrawer=\"drawerOperateVisible\"\n v-model:customBtnPropsList=\"customBtnPropsList\"\n :customDefaultPropsList=\"customDefaultPropsList\"\n :keyWord=\"props.page\"\n :disabledRemoteBtn=\"props.disabledRemoteBtn\"\n type=\"CustomOperateList\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, inject, nextTick, ref } from 'vue';\nimport { hasOwn } from '@giime/utils/src/objects';\nimport { getGmExports } from '@giime/utils/src/elementPlus/exports';\nimport { getGmEvent } from '@giime/utils/src/elementPlus/event';\nimport { TableCtxKey } from '@giime/constants/table';\nimport { useElementRemainingHeight } from '@giime/hooks/base/useElementRemainingHeight';\nimport TableOperateVNodeRenderer from '../tablePro/TableOperateVNodeRenderer';\nimport { getVnodesByGmName } from '../tablePro/tableHelper';\nimport { TableColumnProName, type TableColumnProProps, tableColumnProProps } from '../tablePro/tableColumnPro/tableColumnPro';\nimport GmCustomOperate, { customOperateButtonProps } from './customOperate';\nimport TableColumnVNodeRenderer from './TableColumnVNodeRenderer';\nimport { tableCustomEmits, tableCustomProps } from './tableCustom';\nimport type { TableColumnSortValue } from './tableCustom';\nimport type { OperateButtonFormInstance } from '../operateButton/operateButtonForm';\nimport type { TableHeaderFormInstance } from '../tablePro/tableHeaderForm';\nimport type { CustomOperateButtonProps } from './customOperate';\nimport type { Sort, TableInstance } from 'element-plus';\n\ndefineOptions({\n name: 'GmTableCustom',\n});\nconst tableCtx = inject(TableCtxKey);\nconst props = defineProps(tableCustomProps);\n\nconst GmTbaleCustomRef = ref<TableInstance>();\nif (tableCtx && tableCtx.tableId === props.page) {\n tableCtx.tableRef = GmTbaleCustomRef;\n}\nconst gmCustomOperateRef = ref<OperateButtonFormInstance>();\nconst gmCustomTableHeaderRef = ref<TableHeaderFormInstance>();\n\nconst emit = defineEmits(tableCustomEmits);\n// 需要手动重新实现的事件\nconst notResendEvents = ['sort-change', 'header-dragend', 'selection-change'];\nconst resendEvent = { ...tableCustomEmits };\nnotResendEvents.forEach(it => Reflect.deleteProperty(resendEvent, it));\n// 重发el的事件\nconst elEvents = getGmEvent(resendEvent, emit);\nconst slots = defineSlots<{\n default(data?: any): any[];\n append?(data?: any): any[];\n empty?(data?: any): any[];\n native?(data?: any): any[];\n}>();\n// 列 当前原始vnode\nconst tableColumnVnode = computed(() => {\n const vNodes = slots.default?.() || [];\n return vNodes;\n});\n// 默认表头Props列表\nconst colDefaultPropsList = computed(() => {\n const vNodes = slots.default?.() || [];\n const children = getVnodesByGmName(vNodes, TableColumnProName);\n\n const colProps: TableColumnProProps[] = children.map((vNode: { props: any }) => vNode.props) ?? [];\n // 循环插入props所需的默认值\n colProps.forEach(it => {\n for (const key in tableColumnProProps) {\n // 如果当前props含有默认值\n if (hasOwn(it, key)) {\n continue;\n }\n if (hasOwn(tableColumnProProps, key)) {\n const element = tableColumnProProps[key as keyof TableColumnProProps];\n // 如果btn 定义中含有默认值 则赋值给props\n if (hasOwn(element, 'default')) {\n Reflect.set(it, key, Reflect.get(element, 'default'));\n }\n }\n }\n });\n return colProps;\n});\n\n// 已选中表头\nconst colPropsList = ref<TableColumnProProps[]>(colDefaultPropsList.value);\nconst editProps = computed(() => colPropsList.value.find(it => it.type === 'edit'));\n\n// 操作按钮组 当前原始vnode\nconst tableOperateVnode = computed(() => {\n const vNodes = slots.default?.() || [];\n const nodes = vNodes.find(vNode => vNode.props && vNode.props.type === 'edit');\n return nodes;\n});\n\nconst customDefaultPropsList = computed(() => {\n const defaultVnodes = tableOperateVnode.value?.children?.default?.({ row: {} });\n if (Array.isArray(defaultVnodes) && defaultVnodes.some(it => it?.children === 'v-if')) {\n console.error(`警告:为确保表格操作按钮能正常渲染,请把表格${props.page}操作按钮中使用的\"v-if\"替换为\"v-see\"`);\n }\n const children = getVnodesByGmName(defaultVnodes, 'GmOperateButton');\n const btnProps: CustomOperateButtonProps[] = children.map((vNode: { props: any }) => vNode.props) ?? [];\n // console.log(btnProps);\n // 循环插入props所需的默认值\n btnProps.forEach(it => {\n for (const key in customOperateButtonProps) {\n // 如果当前props含有默认值\n if (hasOwn(it, key)) {\n continue;\n }\n if (hasOwn(customOperateButtonProps, key)) {\n const element = customOperateButtonProps[key as keyof CustomOperateButtonProps];\n // 如果btn 定义中含有默认值 则赋值给props\n if (hasOwn(element, 'default')) {\n Reflect.set(it, key, Reflect.get(element, 'default'));\n }\n }\n }\n });\n return btnProps;\n});\nconst customBtnPropsList = ref<CustomOperateButtonProps[]>(customDefaultPropsList.value);\n\n// 表格头部弹层\nconst drawerHeaderVisible = ref(false); // 表头设置弹层\nconst drawerOperateVisible = ref(false); // 按钮设置弹层\nconst setTable = (event: string) => {\n if (event === 'header') {\n drawerHeaderVisible.value = true;\n }\n if (event === 'operate') {\n drawerOperateVisible.value = true;\n }\n};\n\n/**\n * 表头拖动,修改width\n */\nconst headerDragend = async (newWidth: number, oldWidth: number, column: any) => {\n const findItem = colPropsList.value.find(it => it.prop === column.property);\n const editItem = column.property === 'gmEdit' ? colPropsList.value.find(it => it.type === 'edit') : null;\n if (!findItem && !editItem) {\n return;\n }\n if (findItem) {\n findItem.width = newWidth;\n }\n if (editItem) {\n editItem.width = newWidth;\n }\n // 设置列宽\n await nextTick();\n resetWidthOnHeaderDrag(column);\n gmCustomTableHeaderRef.value?.syncPropsList();\n gmCustomTableHeaderRef.value?.submitSettings({ hiddenMessage: true });\n};\n/**\n * 当表头拖动后,重新计算补充列宽度\n * 当全部列都设置了宽度,把设置过minWidth的列设置为补充列,补充表格剩余宽度\n */\nconst resetWidthOnHeaderDrag = (column?: any) => {\n // console.log('resetWidthOnHeaderDrag', column);\n if (props.disabledResetWidth) {\n return;\n }\n // // 当全部列都设置了宽度 才执行后续步骤\n // if (colPropsList.value.some(it => it.isShow && !it.width)) {\n // return;\n // }\n const minWidthCols = colPropsList.value.filter(\n // 是在展示中的列,并且不是操作列,并且设置了最小宽度\n it => it.isShow === true && it.type !== 'edit' && it.prop !== 'edit' && ((it as any)['min-width'] || it.minWidth),\n );\n for (const item of minWidthCols) {\n // 只有一个minWidth时, 也需要设置width = ''\n if (column?.property === item.prop && minWidthCols.length !== 1) {\n continue;\n }\n item.width = '';\n }\n};\n/**\n * 搜索模块\n */\nconst sortValue = defineModel<TableColumnSortValue[]>('sortValue');\n\nconst handleSortChange = (sort: Sort) => {\n if (sortValue.value) {\n sortValue.value.length = 0;\n switch (sort.order) {\n case 'ascending':\n sortValue.value.push({ field: sort.prop, order: 'asc' });\n break;\n case 'descending':\n sortValue.value.push({ field: sort.prop, order: 'desc' });\n break;\n }\n }\n\n emit('sort-change', sort);\n};\nconst exposeEvents = [\n 'clearSelection',\n 'getSelectionRows',\n 'toggleRowSelection',\n 'toggleAllSelection',\n 'toggleRowExpansion',\n 'setCurrentRow',\n 'setChecked',\n 'clearSort',\n 'clearFilter',\n 'doLayout',\n 'sort',\n 'scrollTo',\n 'setScrollTop',\n 'setScrollLeft',\n] as const;\nconst { exposeFns } = getGmExports(GmTbaleCustomRef, exposeEvents);\n\n// 用于计算table高度\nconst gmTableCustomDivRef = ref<HTMLDivElement>();\nconst { height: tableMaxHeight } = useElementRemainingHeight(gmTableCustomDivRef, {\n bottomOffset: props.heightOffset || 30, // 高度 - 顶部距离 - 分页器\n minHeight: 300,\n});\n\ndefineExpose({\n colPropsList,\n ...exposeFns,\n});\n</script>\n\n<style lang=\"scss\" scoped>\n:deep(.gmTableNoBorder .el-table__body .el-table__cell) {\n border-right: none;\n}\n:deep(.gmTableNoBorder .el-table__inner-wrapper:before) {\n height: 0;\n}\n:deep(.gmTableNoBorder.el-table--border .el-table__inner-wrapper:after) {\n height: 0;\n}\n:deep(.gmTableNoBorder.el-table--border:after) {\n height: 0;\n}\n:deep(.gmTableNoBorder.el-table--border:before) {\n height: 0;\n}\n:deep(.gmTableNoBorder .el-table__border-left-patch) {\n height: 0;\n}\n</style>\n"],"names":["_useSlots","_useModel"],"mappings":"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"}
@@ -121,7 +121,13 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
121
121
  const { cloned: clonedColPropsList, sync: syncPropsList } = useCloned(colPropsList);
122
122
  watch(isShowDrawer, (newValue) => {
123
123
  if (newValue) {
124
- clonedColPropsList.value = cloneDeep(colPropsList.value);
124
+ const cloned = cloneDeep(colPropsList.value);
125
+ const editIndex = cloned.findIndex((it) => it.type === "edit");
126
+ const editItem = cloned[editIndex];
127
+ if (editIndex > -1) {
128
+ cloned.splice(editIndex, 1);
129
+ }
130
+ clonedColPropsList.value = [...cloned, editItem];
125
131
  }
126
132
  });
127
133
  const customSettingsValue = computed(() => customSettingsStore.customSettings[props.keyWord]?.[props.type] || []);
@@ -1 +1 @@
1
- {"version":3,"file":"TableCustomHeader.vue2.mjs","sources":["../../../../../../../../packages/components/src/composite/tableCustom/tableCustomHeader/TableCustomHeader.vue"],"sourcesContent":["<template>\n <gm-drawer\n v-model=\"isShowDrawer\"\n title=\"自定义表头\"\n direction=\"rtl\"\n size=\"600px\"\n append-to-body\n destroy-on-close\n class=\"table-custom-header-drawer\"\n >\n <div class=\"gm-mb-4 gm-flex gm-items-center gm-rounded gm-border gm-border-cyan-300 gm-bg-cyan-50 gm-p-2 gm-text-sm gm-text-[#777]\">\n <gm-icon><InfoFilled /></gm-icon>\n <p class=\"gm-ml-2\">\n 已选中 <span class=\"gm-text-cyan-500\">{{ checkedNumber }}</span> 项\n </p>\n </div>\n\n <div class=\"custom-content gm-text-sm\">\n <ul\n class=\"gm-flex gm-items-center gm-border gm-border-y-0 gm-border-gray-200 gm-bg-gray-200 gm-font-semibold gm-text-[#333]\"\n :style=\"titleStyle\"\n >\n <li class=\"gm-flex gm-w-14 gm-justify-center\">\n <gm-checkbox v-model=\"checkedAll\" :indeterminate=\"isIndeterminate\" />\n </li>\n <li class=\"gm-flex-1 gm-border-l gm-border-white\">列名</li>\n <li class=\"gm-w-36 gm-border-l gm-border-white\">列宽</li>\n <li class=\"gm-w-24 gm-border-l gm-border-white\">固定</li>\n <li v-if=\"dragHeader\" class=\"gm-w-28 gm-border-l gm-border-white\">拖地调整顺序</li>\n </ul>\n <transition-group class=\"custom-group gm-border-b gm-border-gray-200 gm-text-gray-600\" name=\"sort\" tag=\"div\">\n <template v-for=\"item in clonedColPropsList\" :key=\"item.prop\">\n <ul v-if=\"item.type === 'edit'\" class=\"gm-flex gm-items-center gm-border gm-border-b-0 gm-border-gray-200\">\n <li class=\"gm-flex gm-w-14 gm-justify-center\">\n <gm-checkbox v-model=\"item.isShow\" disabled />\n </li>\n <li class=\"gm-flex-1 gm-border-l gm-border-gray-200\">操作</li>\n <li class=\"gm-w-36 gm-border-l gm-border-gray-200 gm-px-2\">\n <gm-input v-model=\"item.width\" class=\"gm-w-full\" placeholder=\"设置宽度\" clearable />\n </li>\n <li class=\"gm-flex gm-w-24 gm-items-center gm-justify-center gm-gap-4 gm-border-l gm-border-gray-200\" />\n <li v-if=\"dragHeader\" class=\"gm-w-28 gm-cursor-grabbing gm-border-l gm-border-gray-200\" />\n </ul>\n <ul\n v-else\n class=\"gm-flex gm-items-center gm-border gm-border-b-0 gm-border-gray-200\"\n :draggable=\"dragHeader\"\n @dragstart=\"dragstart(item)\"\n @dragenter=\"dragenter(item, $event)\"\n @dragend=\"dragend\"\n @dragover=\"dragover($event)\"\n >\n <li class=\"gm-flex gm-w-14 gm-justify-center\">\n <gm-checkbox v-model=\"item.isShow\" />\n </li>\n <li class=\"gm-flex-1 gm-border-l gm-border-gray-200\">{{ item.label }}</li>\n <li class=\"gm-w-36 gm-border-l gm-border-gray-200 gm-px-2\">\n <gm-input v-model=\"item.width\" class=\"gm-w-full\" placeholder=\"设置宽度\" clearable />\n </li>\n <li class=\"gm-flex gm-w-24 gm-items-center gm-justify-center gm-gap-4 gm-border-l gm-border-gray-200\">\n <gm-tooltip effect=\"dark\" content=\"固定在左侧\" placement=\"top\">\n <div class=\"gm-cursor-pointer\" @click=\"handleToogleFixed(item, 'left')\">\n <svg\n t=\"1748946230868\"\n class=\"icon\"\n viewBox=\"0 0 1024 1024\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n p-id=\"15386\"\n width=\"18\"\n height=\"18\"\n >\n <path\n d=\"M958.9 895.8L732 668.9l-63 63 227 226.9 64 1.3zM792.3 379l-102.5-12.7-311-284.7c-25.2-24-65.7-23.4-90.1 1l-206 205.9c-24.6 24.6-25 65.1-1.1 90.2l284.8 311.1 12.7 102.5c0 74.7 55.1 104.7 108 51.7L844 487.1c53-53 23.1-108.1-51.7-108.1zM439.7 610.1c-4.2 4.2-9.7 6.4-15.6 6.4s-11.4-2.3-15.7-6.5l-254-254.3c-8.4-8.4-8.6-22.5-0.2-31l43.7-45c4.2-4.4 9.7-6.7 15.9-6.7 5.7 0 11.2 2.3 15.3 6.3 4.3 4 6.5 9.6 6.8 15.4 0.1 5.9-2.1 11.5-6.3 15.8l-28.5 29.3 238.6 239c8.6 8.6 8.5 22.6 0 31.3z\"\n p-id=\"15387\"\n :fill=\"item.fixed === 'left' ? '#217efd' : '#bbbbbb'\"\n />\n </svg>\n </div>\n </gm-tooltip>\n <gm-tooltip effect=\"dark\" content=\"固定在右侧\" placement=\"top\">\n <div class=\"gm-rotate-90 gm-cursor-pointer\" @click=\"handleToogleFixed(item, 'right')\">\n <svg\n t=\"1748946230868\"\n class=\"icon\"\n viewBox=\"0 0 1024 1024\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n p-id=\"15386\"\n width=\"18\"\n height=\"18\"\n >\n <path\n d=\"M958.9 895.8L732 668.9l-63 63 227 226.9 64 1.3zM792.3 379l-102.5-12.7-311-284.7c-25.2-24-65.7-23.4-90.1 1l-206 205.9c-24.6 24.6-25 65.1-1.1 90.2l284.8 311.1 12.7 102.5c0 74.7 55.1 104.7 108 51.7L844 487.1c53-53 23.1-108.1-51.7-108.1zM439.7 610.1c-4.2 4.2-9.7 6.4-15.6 6.4s-11.4-2.3-15.7-6.5l-254-254.3c-8.4-8.4-8.6-22.5-0.2-31l43.7-45c4.2-4.4 9.7-6.7 15.9-6.7 5.7 0 11.2 2.3 15.3 6.3 4.3 4 6.5 9.6 6.8 15.4 0.1 5.9-2.1 11.5-6.3 15.8l-28.5 29.3 238.6 239c8.6 8.6 8.5 22.6 0 31.3z\"\n p-id=\"15387\"\n :fill=\"item.fixed === 'right' ? '#217efd' : '#bbbbbb'\"\n />\n </svg>\n </div>\n </gm-tooltip>\n </li>\n <li v-if=\"dragHeader\" class=\"gm-w-28 gm-cursor-grabbing gm-border-l gm-border-gray-200\">\n <el-icon color=\"#217efd\"><Rank /></el-icon>\n </li>\n </ul>\n </template>\n </transition-group>\n </div>\n\n <template v-if=\"!disabledRemoteCol\" #footer>\n <div class=\"gm-flex gm-justify-between\">\n <div>\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onReset\">重置</gm-button>\n <gm-button :loading=\"submitLoading\" type=\"success\" size=\"default\" @click=\"onSyncRemote\">同步</gm-button>\n </div>\n <div>\n <gm-button :loading=\"submitLoading\" size=\"default\" @click=\"isShowDrawer = false\">取消</gm-button>\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"submitSettings()\">保存</gm-button>\n </div>\n </div>\n </template>\n </gm-drawer>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref, watch } from 'vue';\nimport { useCloned } from '@vueuse/core';\nimport { useCustomSettingsStore } from '@giime/hooks';\nimport { GmMessage } from '@giime/components/src/plugins/message';\nimport { cloneDeep } from 'lodash-es';\nimport { InfoFilled, Rank } from '@element-plus/icons-vue';\nimport { tableCustomHeaderProps } from './tableCustomHeader';\nimport type { CheckboxValueType } from 'element-plus';\nimport type { TableColumnProProps } from '../../tablePro/tableColumnPro/tableColumnPro';\n\ndefineOptions({\n name: 'GmTableCustomHeader',\n});\n\nconst props = defineProps(tableCustomHeaderProps);\nconst emit = defineEmits([\"updateColumns\"]);\n/**抽屉显示 */\nconst isShowDrawer = defineModel<boolean>('isShowDrawer', {\n required: true,\n});\n\n/**自定义按钮 props列表 */\nconst colPropsList = defineModel<TableColumnProProps[]>('colPropsList', {\n required: true,\n});\nconst customSettingsStore = useCustomSettingsStore();\n\n/**\n * 数据是否初始化完成\n */\nconst isInited = ref(false);\n/**内部克隆一份,当点击保存时 应用修改的内容 */\nconst { cloned: clonedColPropsList, sync: syncPropsList } = useCloned(colPropsList);\n// 重新打开弹窗时, 克隆一份新数据\nwatch(isShowDrawer, newValue => {\n if (newValue) {\n clonedColPropsList.value = cloneDeep(colPropsList.value);\n }\n});\nconst customSettingsValue = computed<TableColumnProProps[]>(() => customSettingsStore.customSettings[props.keyWord]?.[props.type] || []);\nconst { cloned: clonedStore } = useCloned(customSettingsValue);\n\n/** 设置表头位置样式,调整表格对齐 */\nconst titleStyle = computed(() => {\n const h = props.colDefaultPropsList.length * 44;\n const H = document.documentElement.clientHeight || document.body.clientHeight;\n return h > H - 240 ? { paddingRight: '4px' } : { paddingRight: 0 };\n});\n\n// 更新选中数据\nconst updateColumns = () => {\n colPropsList.value = clonedColPropsList.value;\n};\n// 初始化数据\nconst initColumns = async () => {\n try {\n await customSettingsStore.getCustomSettings({ key_word: props.keyWord, type: props.type }, { defaultValue: [] });\n } catch {}\n\n const colnedDefaultColumns = cloneDeep(props.colDefaultPropsList);\n\n let columns = colnedDefaultColumns;\n\n if (clonedStore.value.length) {\n columns = [];\n clonedStore.value.forEach(it => {\n const index = colnedDefaultColumns.findIndex(v => v.prop === it.prop);\n if (index > -1) {\n const item = colnedDefaultColumns.splice(index, 1)[0];\n\n columns.push({\n ...it,\n ...item,\n isShow: it.isShow,\n width: it.width,\n fixed: it.fixed,\n });\n }\n });\n clonedColPropsList.value = [...columns, ...colnedDefaultColumns];\n }\n updateColumns();\n isInited.value = true;\n};\n\n// 已选中条数\nconst checkedNumber = computed(() => {\n return clonedColPropsList.value.filter(v => v.isShow).length;\n});\n// 全选\nconst checkedAll = computed({\n get() {\n return clonedColPropsList.value.filter(it => it.type !== 'edit').every(v => v.isShow);\n },\n set(value: CheckboxValueType) {\n clonedColPropsList.value.forEach(v => {\n if (v.type !== 'edit') {\n v.isShow = Boolean(value);\n }\n });\n },\n});\n// 半选\nconst isIndeterminate = computed(() => !checkedAll.value && clonedColPropsList.value.filter(it => it.type !== 'edit').some(v => v.isShow));\n\n/** 拖拽开始 */\nconst start = ref<TableColumnProProps>();\nconst end = ref<TableColumnProProps>();\nconst dragstart = (item: TableColumnProProps) => {\n if (!props.dragHeader) return;\n document.body.style.userSelect = 'none';\n start.value = item;\n};\n/** 拖拽过程 */\nconst dragenter = (item: TableColumnProProps, e: DragEvent) => {\n if (!props.dragHeader) return;\n end.value = item;\n e.preventDefault();\n};\n/** 拖拽结束 */\nconst dragend = () => {\n if (!props.dragHeader) return;\n document.body.style.userSelect = 'text';\n if (start.value === end.value) return;\n if (start.value && end.value) {\n const oldIndex: number = clonedColPropsList.value.findIndex(v => v.prop === start.value?.prop);\n const newIndex: number = clonedColPropsList.value.findIndex(v => v.prop === end.value?.prop);\n const newItems = [...clonedColPropsList.value];\n // 删除老节点\n newItems.splice(oldIndex, 1);\n\n // 目标位置新增节点\n newItems.splice(newIndex, 0, start.value);\n clonedColPropsList.value = [...newItems];\n }\n};\n/** 拖拽事件 */\nconst dragover = (e: DragEvent) => {\n if (!props.dragHeader) return;\n e.preventDefault();\n};\n\nconst submitLoading = ref(false);\n// 保存\nconst submitSettings = async (options?: { hiddenMessage?: boolean }) => {\n try {\n submitLoading.value = true;\n const { data } = await customSettingsStore.addCustomSettings({\n key_word: props.keyWord,\n value: JSON.stringify(clonedColPropsList.value),\n type: props.type,\n });\n submitLoading.value = false;\n if (data.code !== 200) {\n return;\n }\n updateColumns();\n if (!options?.hiddenMessage) {\n GmMessage.success('保存成功');\n }\n emit('updateColumns');\n } catch (e) {\n console.error(e);\n submitLoading.value = false;\n }\n};\n/**同步远程设置 */\nconst onSyncRemote = async () => {\n try {\n submitLoading.value = true;\n await customSettingsStore.syncRemoteSetting({\n key_word: props.keyWord,\n type: props.type,\n });\n submitLoading.value = false;\n initColumns();\n GmMessage.success('同步成功');\n } catch (e) {\n console.error(e);\n submitLoading.value = false;\n }\n};\n// 重置\nconst onReset = () => {\n clonedColPropsList.value = cloneDeep(props.colDefaultPropsList);\n};\n// 点击固定列\nconst handleToogleFixed = (row: TableColumnProProps, fixed: string) => {\n if (row.fixed === fixed) {\n row.fixed = false;\n return;\n }\n row.fixed = fixed;\n};\n\nonMounted(() => {\n if (props.disabledRemoteCol) {\n isInited.value = true;\n } else {\n initColumns();\n }\n});\ndefineExpose({\n isInited,\n submitSettings,\n syncPropsList,\n});\n</script>\n\n<style lang=\"scss\">\n.table-custom-header-drawer {\n .el-drawer__header {\n padding: 10px 15px;\n margin: 0;\n border-bottom: 1px solid #ebeef5;\n }\n .el-drawer__title {\n font-size: 14px;\n color: #333;\n }\n .el-drawer__body {\n padding: 15px;\n }\n .el-drawer__footer {\n padding: 10px 15px;\n border-top: 1px solid #ebeef5;\n }\n .el-checkbox {\n display: flex;\n align-items: center;\n }\n .el-input__inner {\n text-align: center;\n }\n .el-input__suffix {\n position: absolute;\n right: 10px;\n }\n .custom-content {\n li {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 44px;\n }\n }\n .custom-group {\n max-height: calc(100vh - 226px);\n overflow-y: auto;\n\n &::-webkit-scrollbar {\n /*滚动条整体样式*/\n width: 4px;\n /*高宽分别对应横竖滚动条的尺寸*/\n height: 1px;\n }\n\n &::-webkit-scrollbar-thumb {\n /*滚动条里面小方块*/\n border-radius: 10px;\n box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.1);\n background: #999;\n }\n\n &::-webkit-scrollbar-track {\n /*滚动条里面轨道*/\n box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.1);\n border-radius: 10px;\n background: #eee;\n }\n }\n}\n</style>\n"],"names":["_useModel"],"mappings":"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"}
1
+ {"version":3,"file":"TableCustomHeader.vue2.mjs","sources":["../../../../../../../../packages/components/src/composite/tableCustom/tableCustomHeader/TableCustomHeader.vue"],"sourcesContent":["<template>\n <gm-drawer\n v-model=\"isShowDrawer\"\n title=\"自定义表头\"\n direction=\"rtl\"\n size=\"600px\"\n append-to-body\n destroy-on-close\n class=\"table-custom-header-drawer\"\n >\n <div class=\"gm-mb-4 gm-flex gm-items-center gm-rounded gm-border gm-border-cyan-300 gm-bg-cyan-50 gm-p-2 gm-text-sm gm-text-[#777]\">\n <gm-icon><InfoFilled /></gm-icon>\n <p class=\"gm-ml-2\">\n 已选中 <span class=\"gm-text-cyan-500\">{{ checkedNumber }}</span> 项\n </p>\n </div>\n\n <div class=\"custom-content gm-text-sm\">\n <ul\n class=\"gm-flex gm-items-center gm-border gm-border-y-0 gm-border-gray-200 gm-bg-gray-200 gm-font-semibold gm-text-[#333]\"\n :style=\"titleStyle\"\n >\n <li class=\"gm-flex gm-w-14 gm-justify-center\">\n <gm-checkbox v-model=\"checkedAll\" :indeterminate=\"isIndeterminate\" />\n </li>\n <li class=\"gm-flex-1 gm-border-l gm-border-white\">列名</li>\n <li class=\"gm-w-36 gm-border-l gm-border-white\">列宽</li>\n <li class=\"gm-w-24 gm-border-l gm-border-white\">固定</li>\n <li v-if=\"dragHeader\" class=\"gm-w-28 gm-border-l gm-border-white\">拖地调整顺序</li>\n </ul>\n <transition-group class=\"custom-group gm-border-b gm-border-gray-200 gm-text-gray-600\" name=\"sort\" tag=\"div\">\n <template v-for=\"item in clonedColPropsList\" :key=\"item.prop\">\n <ul v-if=\"item.type === 'edit'\" class=\"gm-flex gm-items-center gm-border gm-border-b-0 gm-border-gray-200\">\n <li class=\"gm-flex gm-w-14 gm-justify-center\">\n <gm-checkbox v-model=\"item.isShow\" disabled />\n </li>\n <li class=\"gm-flex-1 gm-border-l gm-border-gray-200\">操作</li>\n <li class=\"gm-w-36 gm-border-l gm-border-gray-200 gm-px-2\">\n <gm-input v-model=\"item.width\" class=\"gm-w-full\" placeholder=\"设置宽度\" clearable />\n </li>\n <li class=\"gm-flex gm-w-24 gm-items-center gm-justify-center gm-gap-4 gm-border-l gm-border-gray-200\" />\n <li v-if=\"dragHeader\" class=\"gm-w-28 gm-cursor-grabbing gm-border-l gm-border-gray-200\" />\n </ul>\n <ul\n v-else\n class=\"gm-flex gm-items-center gm-border gm-border-b-0 gm-border-gray-200\"\n :draggable=\"dragHeader\"\n @dragstart=\"dragstart(item)\"\n @dragenter=\"dragenter(item, $event)\"\n @dragend=\"dragend\"\n @dragover=\"dragover($event)\"\n >\n <li class=\"gm-flex gm-w-14 gm-justify-center\">\n <gm-checkbox v-model=\"item.isShow\" />\n </li>\n <li class=\"gm-flex-1 gm-border-l gm-border-gray-200\">{{ item.label }}</li>\n <li class=\"gm-w-36 gm-border-l gm-border-gray-200 gm-px-2\">\n <gm-input v-model=\"item.width\" class=\"gm-w-full\" placeholder=\"设置宽度\" clearable />\n </li>\n <li class=\"gm-flex gm-w-24 gm-items-center gm-justify-center gm-gap-4 gm-border-l gm-border-gray-200\">\n <gm-tooltip effect=\"dark\" content=\"固定在左侧\" placement=\"top\">\n <div class=\"gm-cursor-pointer\" @click=\"handleToogleFixed(item, 'left')\">\n <svg\n t=\"1748946230868\"\n class=\"icon\"\n viewBox=\"0 0 1024 1024\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n p-id=\"15386\"\n width=\"18\"\n height=\"18\"\n >\n <path\n d=\"M958.9 895.8L732 668.9l-63 63 227 226.9 64 1.3zM792.3 379l-102.5-12.7-311-284.7c-25.2-24-65.7-23.4-90.1 1l-206 205.9c-24.6 24.6-25 65.1-1.1 90.2l284.8 311.1 12.7 102.5c0 74.7 55.1 104.7 108 51.7L844 487.1c53-53 23.1-108.1-51.7-108.1zM439.7 610.1c-4.2 4.2-9.7 6.4-15.6 6.4s-11.4-2.3-15.7-6.5l-254-254.3c-8.4-8.4-8.6-22.5-0.2-31l43.7-45c4.2-4.4 9.7-6.7 15.9-6.7 5.7 0 11.2 2.3 15.3 6.3 4.3 4 6.5 9.6 6.8 15.4 0.1 5.9-2.1 11.5-6.3 15.8l-28.5 29.3 238.6 239c8.6 8.6 8.5 22.6 0 31.3z\"\n p-id=\"15387\"\n :fill=\"item.fixed === 'left' ? '#217efd' : '#bbbbbb'\"\n />\n </svg>\n </div>\n </gm-tooltip>\n <gm-tooltip effect=\"dark\" content=\"固定在右侧\" placement=\"top\">\n <div class=\"gm-rotate-90 gm-cursor-pointer\" @click=\"handleToogleFixed(item, 'right')\">\n <svg\n t=\"1748946230868\"\n class=\"icon\"\n viewBox=\"0 0 1024 1024\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n p-id=\"15386\"\n width=\"18\"\n height=\"18\"\n >\n <path\n d=\"M958.9 895.8L732 668.9l-63 63 227 226.9 64 1.3zM792.3 379l-102.5-12.7-311-284.7c-25.2-24-65.7-23.4-90.1 1l-206 205.9c-24.6 24.6-25 65.1-1.1 90.2l284.8 311.1 12.7 102.5c0 74.7 55.1 104.7 108 51.7L844 487.1c53-53 23.1-108.1-51.7-108.1zM439.7 610.1c-4.2 4.2-9.7 6.4-15.6 6.4s-11.4-2.3-15.7-6.5l-254-254.3c-8.4-8.4-8.6-22.5-0.2-31l43.7-45c4.2-4.4 9.7-6.7 15.9-6.7 5.7 0 11.2 2.3 15.3 6.3 4.3 4 6.5 9.6 6.8 15.4 0.1 5.9-2.1 11.5-6.3 15.8l-28.5 29.3 238.6 239c8.6 8.6 8.5 22.6 0 31.3z\"\n p-id=\"15387\"\n :fill=\"item.fixed === 'right' ? '#217efd' : '#bbbbbb'\"\n />\n </svg>\n </div>\n </gm-tooltip>\n </li>\n <li v-if=\"dragHeader\" class=\"gm-w-28 gm-cursor-grabbing gm-border-l gm-border-gray-200\">\n <el-icon color=\"#217efd\"><Rank /></el-icon>\n </li>\n </ul>\n </template>\n </transition-group>\n </div>\n\n <template v-if=\"!disabledRemoteCol\" #footer>\n <div class=\"gm-flex gm-justify-between\">\n <div>\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"onReset\">重置</gm-button>\n <gm-button :loading=\"submitLoading\" type=\"success\" size=\"default\" @click=\"onSyncRemote\">同步</gm-button>\n </div>\n <div>\n <gm-button :loading=\"submitLoading\" size=\"default\" @click=\"isShowDrawer = false\">取消</gm-button>\n <gm-button :loading=\"submitLoading\" type=\"primary\" size=\"default\" @click=\"submitSettings()\">保存</gm-button>\n </div>\n </div>\n </template>\n </gm-drawer>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, onMounted, ref, watch } from 'vue';\nimport { useCloned } from '@vueuse/core';\nimport { useCustomSettingsStore } from '@giime/hooks';\nimport { GmMessage } from '@giime/components/src/plugins/message';\nimport { cloneDeep } from 'lodash-es';\nimport { InfoFilled, Rank } from '@element-plus/icons-vue';\nimport { tableCustomHeaderProps } from './tableCustomHeader';\nimport type { CheckboxValueType } from 'element-plus';\nimport type { TableColumnProProps } from '../../tablePro/tableColumnPro/tableColumnPro';\n\ndefineOptions({\n name: 'GmTableCustomHeader',\n});\n\nconst props = defineProps(tableCustomHeaderProps);\nconst emit = defineEmits([\"updateColumns\"]);\n/**抽屉显示 */\nconst isShowDrawer = defineModel<boolean>('isShowDrawer', {\n required: true,\n});\n\n/**自定义按钮 props列表 */\nconst colPropsList = defineModel<TableColumnProProps[]>('colPropsList', {\n required: true,\n});\nconst customSettingsStore = useCustomSettingsStore();\n\n/**\n * 数据是否初始化完成\n */\nconst isInited = ref(false);\n/**内部克隆一份,当点击保存时 应用修改的内容 */\nconst { cloned: clonedColPropsList, sync: syncPropsList } = useCloned(colPropsList);\n// 重新打开弹窗时, 克隆一份新数据\nwatch(isShowDrawer, newValue => {\n if (newValue) {\n const cloned = cloneDeep(colPropsList.value);\n\n // 操作列单独处理,放在最后面\n const editIndex = cloned.findIndex(it => it.type === 'edit');\n const editItem = cloned[editIndex];\n if (editIndex > -1) {\n cloned.splice(editIndex, 1);\n }\n clonedColPropsList.value = [...cloned, editItem];\n }\n});\nconst customSettingsValue = computed<TableColumnProProps[]>(() => customSettingsStore.customSettings[props.keyWord]?.[props.type] || []);\nconst { cloned: clonedStore } = useCloned(customSettingsValue);\n\n/** 设置表头位置样式,调整表格对齐 */\nconst titleStyle = computed(() => {\n const h = props.colDefaultPropsList.length * 44;\n const H = document.documentElement.clientHeight || document.body.clientHeight;\n return h > H - 240 ? { paddingRight: '4px' } : { paddingRight: 0 };\n});\n\n// 更新选中数据\nconst updateColumns = () => {\n colPropsList.value = clonedColPropsList.value;\n};\n// 初始化数据\nconst initColumns = async () => {\n try {\n await customSettingsStore.getCustomSettings({ key_word: props.keyWord, type: props.type }, { defaultValue: [] });\n } catch {}\n\n const colnedDefaultColumns = cloneDeep(props.colDefaultPropsList);\n\n let columns = colnedDefaultColumns;\n\n if (clonedStore.value.length) {\n columns = [];\n clonedStore.value.forEach(it => {\n const index = colnedDefaultColumns.findIndex(v => v.prop === it.prop);\n if (index > -1) {\n const item = colnedDefaultColumns.splice(index, 1)[0];\n\n columns.push({\n ...it,\n ...item,\n isShow: it.isShow,\n width: it.width,\n fixed: it.fixed,\n });\n }\n });\n clonedColPropsList.value = [...columns, ...colnedDefaultColumns];\n }\n updateColumns();\n isInited.value = true;\n};\n\n// 已选中条数\nconst checkedNumber = computed(() => {\n return clonedColPropsList.value.filter(v => v.isShow).length;\n});\n// 全选\nconst checkedAll = computed({\n get() {\n return clonedColPropsList.value.filter(it => it.type !== 'edit').every(v => v.isShow);\n },\n set(value: CheckboxValueType) {\n clonedColPropsList.value.forEach(v => {\n if (v.type !== 'edit') {\n v.isShow = Boolean(value);\n }\n });\n },\n});\n// 半选\nconst isIndeterminate = computed(() => !checkedAll.value && clonedColPropsList.value.filter(it => it.type !== 'edit').some(v => v.isShow));\n\n/** 拖拽开始 */\nconst start = ref<TableColumnProProps>();\nconst end = ref<TableColumnProProps>();\nconst dragstart = (item: TableColumnProProps) => {\n if (!props.dragHeader) return;\n document.body.style.userSelect = 'none';\n start.value = item;\n};\n/** 拖拽过程 */\nconst dragenter = (item: TableColumnProProps, e: DragEvent) => {\n if (!props.dragHeader) return;\n end.value = item;\n e.preventDefault();\n};\n/** 拖拽结束 */\nconst dragend = () => {\n if (!props.dragHeader) return;\n document.body.style.userSelect = 'text';\n if (start.value === end.value) return;\n if (start.value && end.value) {\n const oldIndex: number = clonedColPropsList.value.findIndex(v => v.prop === start.value?.prop);\n const newIndex: number = clonedColPropsList.value.findIndex(v => v.prop === end.value?.prop);\n const newItems = [...clonedColPropsList.value];\n // 删除老节点\n newItems.splice(oldIndex, 1);\n\n // 目标位置新增节点\n newItems.splice(newIndex, 0, start.value);\n clonedColPropsList.value = [...newItems];\n }\n};\n/** 拖拽事件 */\nconst dragover = (e: DragEvent) => {\n if (!props.dragHeader) return;\n e.preventDefault();\n};\n\nconst submitLoading = ref(false);\n// 保存\nconst submitSettings = async (options?: { hiddenMessage?: boolean }) => {\n try {\n submitLoading.value = true;\n const { data } = await customSettingsStore.addCustomSettings({\n key_word: props.keyWord,\n value: JSON.stringify(clonedColPropsList.value),\n type: props.type,\n });\n submitLoading.value = false;\n if (data.code !== 200) {\n return;\n }\n updateColumns();\n if (!options?.hiddenMessage) {\n GmMessage.success('保存成功');\n }\n emit('updateColumns');\n } catch (e) {\n console.error(e);\n submitLoading.value = false;\n }\n};\n/**同步远程设置 */\nconst onSyncRemote = async () => {\n try {\n submitLoading.value = true;\n await customSettingsStore.syncRemoteSetting({\n key_word: props.keyWord,\n type: props.type,\n });\n submitLoading.value = false;\n initColumns();\n GmMessage.success('同步成功');\n } catch (e) {\n console.error(e);\n submitLoading.value = false;\n }\n};\n// 重置\nconst onReset = () => {\n clonedColPropsList.value = cloneDeep(props.colDefaultPropsList);\n};\n// 点击固定列\nconst handleToogleFixed = (row: TableColumnProProps, fixed: string) => {\n if (row.fixed === fixed) {\n row.fixed = false;\n return;\n }\n row.fixed = fixed;\n};\n\nonMounted(() => {\n if (props.disabledRemoteCol) {\n isInited.value = true;\n } else {\n initColumns();\n }\n});\ndefineExpose({\n isInited,\n submitSettings,\n syncPropsList,\n});\n</script>\n\n<style lang=\"scss\">\n.table-custom-header-drawer {\n .el-drawer__header {\n padding: 10px 15px;\n margin: 0;\n border-bottom: 1px solid #ebeef5;\n }\n .el-drawer__title {\n font-size: 14px;\n color: #333;\n }\n .el-drawer__body {\n padding: 15px;\n }\n .el-drawer__footer {\n padding: 10px 15px;\n border-top: 1px solid #ebeef5;\n }\n .el-checkbox {\n display: flex;\n align-items: center;\n }\n .el-input__inner {\n text-align: center;\n }\n .el-input__suffix {\n position: absolute;\n right: 10px;\n }\n .custom-content {\n li {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 44px;\n }\n }\n .custom-group {\n max-height: calc(100vh - 226px);\n overflow-y: auto;\n\n &::-webkit-scrollbar {\n /*滚动条整体样式*/\n width: 4px;\n /*高宽分别对应横竖滚动条的尺寸*/\n height: 1px;\n }\n\n &::-webkit-scrollbar-thumb {\n /*滚动条里面小方块*/\n border-radius: 10px;\n box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.1);\n background: #999;\n }\n\n &::-webkit-scrollbar-track {\n /*滚动条里面轨道*/\n box-shadow: inset 0 0 3px rgba(0, 0, 0, 0.1);\n border-radius: 10px;\n background: #eee;\n }\n }\n}\n</style>\n"],"names":["_useModel"],"mappings":"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"}
@@ -34,6 +34,7 @@ export { mergePropsToArray } from '../utils/src/array.mjs';
34
34
  export { integerPattern, moneyPattern, nonNegativeIntegerPattern, nonNegativeNumberPattern, nonZeroNumberPattern, numberPattern, positiveIntegerPattern, positiveNumberPattern } from '../utils/src/regexPatterns/number.mjs';
35
35
  export { base64Pattern, domainPattern, emailPattern, urlPattern } from '../utils/src/regexPatterns/url.mjs';
36
36
  export { getTenantType, isGiikin, isGiiktok } from '../utils/src/tenant.mjs';
37
+ export { Clarity } from '../utils/src/clarity/index.mjs';
37
38
  export { affixEmits, affixProps } from '../components/src/base/affix/affix.mjs';
38
39
  export { GmAffix } from '../components/src/base/affix/index.mjs';
39
40
  export { alertEffects, alertEmits, alertProps } from '../components/src/base/alert/alert.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../packages/giime/index.ts"],"sourcesContent":["import installer from './defaults';\nimport './tailwind.css';\nexport * from '@giime/utils';\nexport * from '@giime/components';\nexport * from '@giime/hooks';\n// export * from '@giime/api'; // 用户通过giime/es/api 导入类型\nexport const install = installer.install;\nexport const version = installer.version;\nexport default installer;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMO,MAAM,UAAU,SAAA,CAAU;AAC1B,MAAM,UAAU,SAAA,CAAU;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../packages/giime/index.ts"],"sourcesContent":["import installer from './defaults';\nimport './tailwind.css';\nexport * from '@giime/utils';\nexport * from '@giime/components';\nexport * from '@giime/hooks';\n// export * from '@giime/api'; // 用户通过giime/es/api 导入类型\nexport const install = installer.install;\nexport const version = installer.version;\nexport default installer;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMO,MAAM,UAAU,SAAA,CAAU;AAC1B,MAAM,UAAU,SAAA,CAAU;;;;"}
@@ -1 +1 @@
1
- export declare const version = "0.9.3-beta.1";
1
+ export declare const version = "0.9.4-beta.1";
@@ -1,4 +1,4 @@
1
- const version = "0.9.2";
1
+ const version = "0.9.4-beta.1";
2
2
 
3
3
  export { version };
4
4
  //# sourceMappingURL=version.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.mjs","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.9.2';\n"],"names":[],"mappings":"AAAO,MAAM,OAAA,GAAU;;;;"}
1
+ {"version":3,"file":"version.mjs","sources":["../../../../packages/giime/version.ts"],"sourcesContent":["export const version = '0.9.4-beta.1';\n"],"names":[],"mappings":"AAAO,MAAM,OAAA,GAAU;;;;"}
@@ -7,7 +7,7 @@ export declare const useLangListStore: import("pinia").StoreDefinition<"gmLangLi
7
7
  isFinished: import("vue").Ref<boolean>;
8
8
  getLangList: () => Promise<void>;
9
9
  getDataFinally: () => Promise<unknown>;
10
- }, "isFinished" | "isLoading" | "langList">, Pick<{
10
+ }, "isLoading" | "isFinished" | "langList">, Pick<{
11
11
  langList: import("@vueuse/shared").RemovableRef<LanguageOpenVo[]>;
12
12
  isLoading: import("vue").Ref<boolean>;
13
13
  isFinished: import("vue").Ref<boolean>;
@@ -5,7 +5,7 @@ export declare const useLineListStore: import("pinia").StoreDefinition<"gmLineLi
5
5
  lineList: import("@vueuse/shared").RemovableRef<PostShopAdminStoreFilterResponseDataLine[]>;
6
6
  isLoading: import("vue").Ref<boolean>;
7
7
  getLineList: () => Promise<void>;
8
- }, "lineList" | "isLoading">, Pick<{
8
+ }, "isLoading" | "lineList">, Pick<{
9
9
  lineList: import("@vueuse/shared").RemovableRef<PostShopAdminStoreFilterResponseDataLine[]>;
10
10
  isLoading: import("vue").Ref<boolean>;
11
11
  getLineList: () => Promise<void>;