已删除10个文件
已添加3个文件
已修改15个文件
| | |
| | | */ |
| | | export const companies: Record<string, CompanyConfig> = { |
| | | TEST: { |
| | | name: 'æµè¯å
¬å¸', |
| | | logo: '/logos/TEST.png', |
| | | favicon: '/logos/TEST.ico', |
| | | name: 'æ°é«æ°å工忧å¶ä¸å¿', |
| | | logo: '/logos/xgdl.svg', |
| | | favicon: '/logos/xgdl.svg', |
| | | apiUrl: 'http://36.213.90.123:9501/admin-api', |
| | | }, |
| | | JHHG: { |
| | |
| | | /> |
| | | <!-- ç± vite 注å
¥ VITE_APP_TITLE åéï¼å¨ .env æä»¶å
é
ç½® --> |
| | | <title>%VITE_APP_TITLE%</title> |
| | | <link rel="icon" href="/favicon.ico" /> |
| | | <link rel="icon" href="/logos/xgdl.svg" /> |
| | | <script> |
| | | var HM_ID = '%VITE_APP_BAIDU_CODE%'; |
| | | if (HM_ID) { |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"> |
| | | <defs> |
| | | <linearGradient id="xgdl-bg" x1="0" y1="0" x2="1" y2="1"> |
| | | <stop offset="0" stop-color="#0B3E9B"/> |
| | | <stop offset="1" stop-color="#0057D8"/> |
| | | </linearGradient> |
| | | </defs> |
| | | <!-- æ·±èæ¸ååå¾½ç« ï¼çµåä¸ä¸åºè° --> |
| | | <circle cx="32" cy="32" r="30" fill="url(#xgdl-bg)"/> |
| | | <circle cx="32" cy="32" r="30" fill="none" stroke="#13C2C2" stroke-width="1.5" stroke-opacity="0.55"/> |
| | | <!-- ç½è²éªçµï¼çµåç¬¦å· --> |
| | | <path d="M36 8 L17 35 L27 35 L23 56 L47 23 L35 23 Z" fill="#FFFFFF"/> |
| | | <!-- çµå
éè½éå路弧线 --> |
| | | <path d="M10 46 A 30 30 0 0 0 18 54" fill="none" stroke="#13C2C2" stroke-width="3.5" stroke-linecap="round"/> |
| | | </svg> |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"> |
| | | <defs> |
| | | <linearGradient id="xgdl-bg" x1="0" y1="0" x2="1" y2="1"> |
| | | <stop offset="0" stop-color="#0B3E9B"/> |
| | | <stop offset="1" stop-color="#0057D8"/> |
| | | </linearGradient> |
| | | </defs> |
| | | <!-- æ·±èæ¸ååå¾½ç« ï¼çµåä¸ä¸åºè° --> |
| | | <circle cx="32" cy="32" r="30" fill="url(#xgdl-bg)"/> |
| | | <circle cx="32" cy="32" r="30" fill="none" stroke="#13C2C2" stroke-width="1.5" stroke-opacity="0.55"/> |
| | | <!-- ç½è²éªçµï¼çµåç¬¦å· --> |
| | | <path d="M36 8 L17 35 L27 35 L23 56 L47 23 L35 23 Z" fill="#FFFFFF"/> |
| | | <!-- çµå
éè½éå路弧线 --> |
| | | <path d="M10 46 A 30 30 0 0 0 18 54" fill="none" stroke="#13C2C2" stroke-width="3.5" stroke-linecap="round"/> |
| | | </svg> |
| | |
| | | |
| | | import { overridesPreferences, preferencesExtension } from './preferences'; |
| | | |
| | | declare const __APP_LOGO__: string; |
| | | declare const __APP_FAVICON__: string; |
| | | declare const __APP_NAME__: string; |
| | | |
| | | /** |
| | | * åºç¨åå§å宿ä¹ååè¿è¡é¡µé¢å 载渲æ |
| | |
| | | overrides: overridesPreferences, |
| | | }); |
| | | |
| | | // 强å¶è¦çå
¬å¸ logo å faviconï¼ç»è¿ localStorage ç¼å |
| | | if (__APP_LOGO__) { |
| | | preferencesManager.updatePreferences({ logo: { source: __APP_LOGO__ } }); |
| | | } |
| | | // 强å¶è¦çå
¬å¸åç§°ï¼ç»è¿ localStorage ç¼å |
| | | if (__APP_NAME__) { |
| | | preferencesManager.updatePreferences({ |
| | | app: { name: __APP_NAME__ }, |
| | | copyright: { companyName: __APP_NAME__ }, |
| | | }); |
| | | } |
| | | // 强å¶è¦çå
¬å¸ logo ååç§°ï¼é¿å
æ§ç¼åæ¢å¤åå²åçé
ç½® |
| | | preferencesManager.updatePreferences({ |
| | | app: { name: 'æ°é«çµåæºé å¹³å°' }, |
| | | copyright: { companyName: 'æ°é«çµåæºé å¹³å°' }, |
| | | logo: { source: '/logos/xgdl.svg' }, |
| | | }); |
| | | if (__APP_FAVICON__) { |
| | | const link = document.querySelector('link[rel="icon"]'); |
| | | if (link) { |
| | |
| | | |
| | | /* 主é¢é¢è² */ |
| | | |
| | | /* --primary: 245 82% 67%; */ |
| | | --primary: 207 78% 58%; |
| | | --primary-foreground: 0 0% 98%; |
| | | |
| | | /* Used for destructive actions such as <Button variant="destructive"> */ |
| | |
| | | --secondary-foreground: 0 0% 98%; |
| | | |
| | | /* Used for accents such as hover effects on <DropdownMenuItem>, <SelectItem>...etc */ |
| | | --accent: 216 5% 19%; |
| | | --accent-dark: 240 0% 22%; |
| | | --accent-darker: 240 0% 26%; |
| | | --accent-lighter: 216 5% 12%; |
| | | --accent-hover: 216 5% 24%; |
| | | --accent: 214 18% 18%; |
| | | --accent-dark: 214 18% 22%; |
| | | --accent-darker: 214 18% 26%; |
| | | --accent-lighter: 214 18% 13%; |
| | | --accent-hover: 214 22% 24%; |
| | | --accent-foreground: 0 0% 98%; |
| | | |
| | | /* Darker color */ |
| | |
| | | --heavy-foreground: var(--accent-foreground); |
| | | |
| | | /* Default border color */ |
| | | --border: 240 3.7% 22%; |
| | | --border: 214 18% 28%; |
| | | |
| | | /* Border color for inputs such as <Input />, <Select />, <Textarea /> */ |
| | | --input: 0deg 0% 100% / 10%; |
| | | --input: 214 18% 34%; |
| | | --input-placeholder: 218deg 11% 65%; |
| | | --input-background: 0deg 0% 100% / 5%; |
| | | |
| | |
| | | --background: 0 0% 100%; |
| | | |
| | | /* 主ä½åºåèæ¯è² */ |
| | | --background-deep: 216 20.11% 95.47%; |
| | | --foreground: 210 6% 21%; |
| | | --background-deep: 214 24% 96%; |
| | | --foreground: 213 32% 18%; |
| | | |
| | | /* Background color for <Card /> */ |
| | | --card: 0 0% 100%; |
| | |
| | | |
| | | /* 主é¢é¢è² */ |
| | | |
| | | --primary: 212 100% 45%; |
| | | --primary: 207 78% 35%; |
| | | --primary-foreground: 0 0% 98%; |
| | | |
| | | /* Used for destructive actions such as <Button variant="destructive"> */ |
| | |
| | | --secondary-foreground: 240 6% 10%; |
| | | |
| | | /* Used for accents such as hover effects on <DropdownMenuItem>, <SelectItem>...etc */ |
| | | --accent: 240 5% 96%; |
| | | --accent-dark: 216 14% 93%; |
| | | --accent-darker: 216 11% 91%; |
| | | --accent-lighter: 240 0% 98%; |
| | | --accent-hover: 200deg 10% 90%; |
| | | --accent: 214 24% 95%; |
| | | --accent-dark: 214 22% 92%; |
| | | --accent-darker: 214 20% 88%; |
| | | --accent-lighter: 214 30% 98%; |
| | | --accent-hover: 214 28% 91%; |
| | | --accent-foreground: 240 6% 10%; |
| | | |
| | | /* Darker color */ |
| | |
| | | --heavy-foreground: var(--accent-foreground); |
| | | |
| | | /* Default border color */ |
| | | --border: 240 5.9% 90%; |
| | | --border: 214 20% 86%; |
| | | |
| | | /* Border color for inputs such as <Input />, <Select />, <Textarea /> */ |
| | | --input: 240deg 5.88% 90%; |
| | | --input: 214 20% 82%; |
| | | --input-placeholder: 217 10.6% 65%; |
| | | --input-background: 0 0% 100%; |
| | | |
| | |
| | | --background: 0 0% 100%; |
| | | |
| | | /* 主ä½åºåèæ¯è² */ |
| | | --background-deep: 216 20.11% 95.47%; |
| | | --foreground: 210 6% 21%; |
| | | --background-deep: 214 24% 96%; |
| | | --foreground: 213 32% 18%; |
| | | |
| | | /* Background color for <Card /> */ |
| | | --card: 0 0% 100%; |
| | |
| | | --secondary-foreground: 240 6% 10%; |
| | | |
| | | /* Used for accents such as hover effects on <DropdownMenuItem>, <SelectItem>...etc */ |
| | | --accent: 240 5% 96%; |
| | | --accent-dark: 216 14% 93%; |
| | | --accent-darker: 216 11% 91%; |
| | | --accent-lighter: 240 0% 98%; |
| | | --accent-hover: 200deg 10% 90%; |
| | | --accent: 214 24% 95%; |
| | | --accent-dark: 214 22% 92%; |
| | | --accent-darker: 214 20% 88%; |
| | | --accent-lighter: 214 30% 98%; |
| | | --accent-hover: 214 28% 91%; |
| | | --accent-foreground: 240 6% 10%; |
| | | |
| | | /* Darker color */ |
| | |
| | | --heavy-foreground: var(--accent-foreground); |
| | | |
| | | /* Default border color */ |
| | | --border: 240 5.9% 90%; |
| | | --border: 214 20% 86%; |
| | | |
| | | /* Border color for inputs such as <Input />, <Select />, <Textarea /> */ |
| | | --input: 240deg 5.88% 90%; |
| | | --input: 214 20% 82%; |
| | | --input-placeholder: 217 10.6% 65%; |
| | | --input-background: 0 0% 100%; |
| | | |
| | |
| | | const cls = [ |
| | | 'flex', |
| | | 'items-center', |
| | | 'gap-3', |
| | | 'gap-2', |
| | | 'pt-2', |
| | | props.compact ? 'pb-2' : 'pb-4', |
| | | props.layout === 'vertical' ? 'self-end' : 'self-center', |
| | | props.layout === 'inline' ? '' : 'w-full', |
| | |
| | | <component |
| | | :is="COMPONENT_MAP.PrimaryButton" |
| | | v-if="submitButtonOptions.show" |
| | | class="min-w-20" |
| | | type="button" |
| | | @click="handleSubmit" |
| | | v-bind="submitButtonOptions" |
| | |
| | | <component |
| | | :is="COMPONENT_MAP.DefaultButton" |
| | | v-if="resetButtonOptions.show" |
| | | class="min-w-20" |
| | | type="button" |
| | | @click="handleReset" |
| | | v-bind="resetButtonOptions" |
| | |
| | | <component |
| | | :is="COMPONENT_MAP.PrimaryButton" |
| | | v-if="submitButtonOptions.show" |
| | | class="min-w-20" |
| | | type="button" |
| | | @click="handleSubmit" |
| | | v-bind="submitButtonOptions" |
| | |
| | | |
| | | // ç¼åæ ¹èç¹ç±»åï¼é¿å
æ¯æ¬¡æ¸²æé½æ§è¡ cn()ï¼å
é¨ tailwind-merge è§£æå¼éè¾å¤§ï¼ |
| | | const wrapperClass = computed(() => |
| | | cn('flex items-center gap-1', alignClass.value, props.class), |
| | | cn('flex items-center gap-0.5', alignClass.value, props.class), |
| | | ); |
| | | |
| | | function tooltipSide(action: ActionItem) { |
| | |
| | | return { |
| | | action, |
| | | buttonClass: cn( |
| | | 'gap-1 p-2', |
| | | 'gap-1 rounded-md px-2 py-1.5', |
| | | action.danger && 'text-destructive hover:text-destructive', |
| | | action.class, |
| | | ), |
| | |
| | | |
| | | /* table */ |
| | | --vxe-ui-table-header-background-color: hsl(var(--accent)); |
| | | --vxe-ui-table-header-font-weight: 600; |
| | | --vxe-ui-table-border-color: hsl(var(--border)); |
| | | --vxe-ui-table-row-hover-background-color: hsl(var(--accent-hover)); |
| | | --vxe-ui-table-row-striped-background-color: hsl(var(--accent) / 60%); |
| | |
| | | /* --vxe-ui-table-fixed-scrolling-box-shadow-color: rgb(0 0 0 / 80%); */ |
| | | } |
| | | |
| | | .vxe-table--render-default .vxe-body--row.row--current, |
| | | .vxe-table--render-default .vxe-body--row.row--radio, |
| | | .vxe-table--render-default .vxe-body--row.row--checked { |
| | | background-color: hsl(var(--accent)); |
| | | } |
| | | |
| | | .vxe-table--render-default .vxe-body--row:hover { |
| | | background-color: hsl(var(--accent-hover)); |
| | | } |
| | | |
| | | .vxe-pager { |
| | | .vxe-pager--prev-btn:not(.is--disabled):active, |
| | | .vxe-pager--next-btn:not(.is--disabled):active, |
| | |
| | | } |
| | | |
| | | .ant-btn { |
| | | border-radius: calc(var(--radius) - 0.125rem); |
| | | font-weight: 500; |
| | | transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease; |
| | | |
| | | &:focus-visible { |
| | | outline: 2px solid hsl(var(--primary) / 35%); |
| | | outline-offset: 2px; |
| | | } |
| | | |
| | | .anticon { |
| | | display: inline-flex; |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | .ant-input, |
| | | .ant-input-affix-wrapper, |
| | | .ant-input-number, |
| | | .ant-select-selector, |
| | | .ant-picker { |
| | | border-color: hsl(var(--input)); |
| | | border-radius: calc(var(--radius) - 0.125rem); |
| | | |
| | | &:focus, |
| | | &:focus-within { |
| | | border-color: hsl(var(--primary)); |
| | | box-shadow: 0 0 0 2px hsl(var(--primary) / 16%); |
| | | } |
| | | } |
| | | |
| | | .ant-tag { |
| | | border-radius: calc(var(--radius) - 0.2rem); |
| | | |
| | | > svg { |
| | | display: inline-block; |
| | | } |
| | |
| | | |
| | | import formCreate from '@form-create/ant-design-vue'; |
| | | import install from '@form-create/ant-design-vue/auto-import'; |
| | | import FcDesigner from '@form-create/antd-designer'; |
| | | // ðä½¿ç¨ form-create éé¢å¤å
¨å±å¼å
¥ ant-design-vue ç»ä»¶ |
| | | import { |
| | | Alert, |
| | |
| | | app.component('AMessage', message); |
| | | formCreate.use(install); |
| | | app.use(formCreate); |
| | | app.use(FcDesigner); |
| | | } |
| | |
| | | companySiteLink: '#', |
| | | }, |
| | | logo: { |
| | | source: __APP_LOGO__ || undefined, |
| | | source: '/logos/xgdl.svg', |
| | | }, |
| | | tabbar: { |
| | | /** å·æ°æµè§å¨ååªä¿çå½å页é¢ï¼ä¸æä¹
åæææ ç¾é¡µ */ |
| | |
| | | .login-card { padding: clamp(30px, 3.4vw, 48px); border: 1px solid rgb(6 27 51 / 8%); border-radius: 20px; background: #fff; box-shadow: 0 24px 70px rgb(6 27 51 / 10%), 0 4px 14px rgb(6 27 51 / 5%); } |
| | | .login-card-top, .login-card-footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; } |
| | | .card-kicker, .lock-mark { color: #9aa8b7; font-size: 9px; letter-spacing: .1em; }.lock-mark { color: #5c9a76; } |
| | | .login-card :deep(.mb-7) { margin-bottom: 34px; }.login-card :deep(h2) { margin-top: 26px; color: var(--ink); font-size: 34px; font-weight: 650; letter-spacing: -.06em; }.login-card :deep(.text-muted-foreground) { display: block; margin-top: 9px; color: var(--muted); font-size: 13px; line-height: 1.6; }.login-card :deep(.grid) { gap: 17px; }.login-card :deep(label) { margin: 0; color: inherit; font-size: inherit; font-weight: inherit; }.login-card :deep([data-slot='checkbox'] + label) { margin-left: 8px; color: #51657a; font-size: 13px; font-weight: 500; line-height: 16px; }.login-card :deep(input) { min-height: 52px; border: 1px solid #d9e0e8; border-radius: 10px; color: var(--ink); background: #fff; box-shadow: none; font-family: inherit; font-size: 14px; transition: border-color .25s ease, box-shadow .25s ease, transform .25s ease; }.login-card :deep(input::placeholder) { color: #9aa7b6; }.login-card :deep(input:hover), .login-card :deep(input:focus) { border-color: var(--tech-blue); box-shadow: 0 0 0 4px rgb(22 119 255 / 10%); transform: translateY(-1px); }.login-card :deep([data-slot='input-group']) { border: 1px solid #d9e0e8; border-radius: 10px; background: #fff; }.login-card :deep([data-slot='input-group']:focus-within) { border-color: var(--tech-blue); box-shadow: 0 0 0 4px rgb(22 119 255 / 10%); }.login-card :deep([data-slot='input-group'] input) { border: 0; box-shadow: none; transform: none; }.login-card :deep(button:not([data-slot='checkbox'])) { min-height: 52px; border-radius: 10px; font-family: inherit; transition: transform .25s ease, background .25s ease, box-shadow .25s ease; }.login-card :deep(button[type='submit']) { margin-top: 10px; color: #fff; background: var(--tech-blue); font-size: 14px; font-weight: 650; letter-spacing: .05em; }.login-card :deep(button[type='submit']:hover) { background: #0f65db; box-shadow: 0 12px 24px rgb(22 119 255 / 22%); transform: translateY(-2px); }.login-card :deep(button[type='submit']:active) { transform: translateY(0) scale(.985); }.login-card :deep([data-slot='checkbox']) { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; flex: none; border: 1px solid #c2ccd6; border-radius: 4px; color: #fff; background: transparent; box-shadow: none; cursor: pointer; transition: border-color .2s ease, background .2s ease, box-shadow .2s ease; }.login-card :deep([data-slot='checkbox']:hover) { border-color: var(--tech-blue); }.login-card :deep([data-slot='checkbox'][data-state='checked']) { border-color: var(--tech-blue); background: var(--tech-blue); }.login-card :deep([data-slot='checkbox']:focus-visible) { box-shadow: 0 0 0 3px rgb(22 119 255 / 22%); outline: none; }.login-card-footer { margin-top: 30px; padding-top: 16px; border-top: 1px solid #e8edf2; color: #9aa7b6; font-size: 10px; }.security-caption { display: flex; align-items: center; justify-content: center; gap: 9px; margin: 18px 0 0; color: #8a98a8; font-size: 11px; } |
| | | .login-card :deep(.mb-7) { margin-bottom: 34px; }.login-card :deep(h2) { margin-top: 26px; color: var(--ink); font-size: 34px; font-weight: 650; letter-spacing: -.06em; }.login-card :deep(.text-muted-foreground) { display: block; margin-top: 9px; color: var(--muted); font-size: 13px; line-height: 1.6; }.login-card :deep(.grid) { gap: 17px; }.login-card :deep(label) { margin: 0; color: inherit; font-size: inherit; font-weight: inherit; }.login-card :deep([data-slot='checkbox'] + label) { margin-left: 8px; color: #51657a; font-size: 13px; font-weight: 500; line-height: 16px; }.login-card :deep(input) { min-height: 52px; box-sizing: border-box; border: 1px solid #d9e0e8; border-radius: 10px; color: var(--ink); background: #fff; box-shadow: none; font-family: inherit; font-size: 14px; transition: border-color .2s ease, box-shadow .2s ease; }.login-card :deep(input::placeholder) { color: #9aa7b6; }.login-card :deep(input:hover), .login-card :deep(input:focus) { border-color: var(--tech-blue); box-shadow: 0 0 0 3px rgb(22 119 255 / 10%); outline: none; }.login-card :deep([data-slot='input-group']) { box-sizing: border-box; border: 1px solid #d9e0e8; border-radius: 10px; background: #fff; transition: border-color .2s ease, box-shadow .2s ease; }.login-card :deep([data-slot='input-group']:hover), .login-card :deep([data-slot='input-group']:focus-within) { border-color: var(--tech-blue); box-shadow: 0 0 0 3px rgb(22 119 255 / 10%); }.login-card :deep([data-slot='input-group'] input) { min-height: 50px; border: 0; border-radius: 9px; box-shadow: none; outline: none; }.login-card :deep([data-slot='input-group'] input:hover), .login-card :deep([data-slot='input-group'] input:focus) { border: 0; box-shadow: none; }.login-card :deep(button:not([data-slot='checkbox'])) { min-height: 52px; border-radius: 10px; font-family: inherit; transition: transform .25s ease, background .25s ease, box-shadow .25s ease; }.login-card :deep(button[type='submit']) { margin-top: 10px; color: #fff; background: var(--tech-blue); font-size: 14px; font-weight: 650; letter-spacing: .05em; }.login-card :deep(button[type='submit']:hover) { background: #0f65db; box-shadow: 0 12px 24px rgb(22 119 255 / 22%); transform: translateY(-2px); }.login-card :deep(button[type='submit']:active) { transform: translateY(0) scale(.985); }.login-card :deep([data-slot='checkbox']) { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; flex: none; border: 1px solid #c2ccd6; border-radius: 4px; color: #fff; background: transparent; box-shadow: none; cursor: pointer; transition: border-color .2s ease, background .2s ease, box-shadow .2s ease; }.login-card :deep([data-slot='checkbox']:hover) { border-color: var(--tech-blue); }.login-card :deep([data-slot='checkbox'][data-state='checked']) { border-color: var(--tech-blue); background: var(--tech-blue); }.login-card :deep([data-slot='checkbox']:focus-visible) { box-shadow: 0 0 0 3px rgb(22 119 255 / 22%); outline: none; }.login-card-footer { margin-top: 30px; padding-top: 16px; border-top: 1px solid #e8edf2; color: #9aa7b6; font-size: 10px; }.security-caption { display: flex; align-items: center; justify-content: center; gap: 9px; margin: 18px 0 0; color: #8a98a8; font-size: 11px; } |
| | | @media (max-width: 1050px) { .mes-login-page { grid-template-columns: minmax(0, 55%) minmax(400px, 45%); }.industrial-hero { padding-inline: 42px; }.capability-item { font-size: 12px; }.capability-item b { font-size: 7px; } } |
| | | @media (max-width: 760px) { .mes-login-page { display: block; }.industrial-hero { min-height: 430px; padding: 28px 24px 22px; }.hero-content { margin: 66px 0 0; }.hero-content h1 { margin-top: 16px; font-size: 48px; }.capability-list { margin-top: 28px; }.capability-item { padding-top: 11px; font-size: 11px; }.capability-item:not(:first-child) { padding-left: 10px; }.capability-item b, .system-mark, .data-widget { display: none; }.factory-visual { bottom: 24px; opacity: .65; }.hero-footer { position: relative; z-index: 2; margin-top: auto; font-size: 7px; }.hero-footer span:nth-child(2) { display: none; }.login-side { padding: 38px 22px 48px; }.login-card { padding: 30px 24px; } } |
| | | @media (max-width: 400px) { .industrial-hero { min-height: 390px; padding-inline: 20px; }.company-logo { width: 40px; height: 40px; }.company-name strong { font-size: 16px; }.company-name span { font-size: 9px; }.hero-content h1 { font-size: 41px; }.capability-list { grid-template-columns: repeat(2, 1fr); gap: 10px 0; border-bottom: 1px solid var(--line-blue); padding-bottom: 10px; }.capability-item:nth-child(2) { border-right: 0; }.capability-item:nth-child(3) { padding-left: 0; }.login-side { padding-inline: 18px; } } |
| | |
| | | |
| | | <template> |
| | | <Page auto-content-height> |
| | | <div class="p-4"> |
| | | <Tabs v-model:activeKey="activeKey"> |
| | | <div class="basedata-page flex h-full min-h-0 flex-col p-4"> |
| | | <Tabs v-model:activeKey="activeKey" class="basedata-tabs min-h-0 flex-1"> |
| | | <Tabs.TabPane |
| | | v-for="cfg in BaseDataConfigs" |
| | | :key="cfg.key" |
| | | :tab="cfg.title" |
| | | class="min-h-0" |
| | | > |
| | | <BaseTable :key="cfg.key" :config="cfg" /> |
| | | <div class="h-full min-h-0"> |
| | | <BaseTable :key="cfg.key" :config="cfg" /> |
| | | </div> |
| | | </Tabs.TabPane> |
| | | </Tabs> |
| | | </div> |
| | | </Page> |
| | | </template> |
| | | |
| | | <style scoped> |
| | | .basedata-tabs :deep(.ant-tabs-content), |
| | | .basedata-tabs :deep(.ant-tabs-tabpane) { |
| | | height: 100%; |
| | | } |
| | | |
| | | .basedata-tabs :deep(.ant-tabs-content) { |
| | | min-height: 0; |
| | | } |
| | | </style> |
| | |
| | | enable: false, |
| | | }, |
| | | optimizeDeps: { |
| | | include: ["vue", "vue-router", "pinia", "ant-design-vue", "dayjs", "@vueuse/core", "axios", "@vue-office/pdf", "@vue-office/docx", "@vue-office/excel", "@vue-office/pptx"], |
| | | include: ["vue", "vue-router", "pinia", "ant-design-vue", "dayjs", "@vueuse/core", "axios"], |
| | | exclude: ["dhtmlx-gantt", "tinymce", "bpmn-js", "bpmn-js-properties-panel", "video.js"], |
| | | }, |
| | | build: { |