98 lines
4.0 KiB
TypeScript
98 lines
4.0 KiB
TypeScript
import './utils/patch-el-select-filterable'
|
|
import App from './App.vue'
|
|
import { createApp } from 'vue'
|
|
import { ElTable } from 'element-plus'
|
|
|
|
ElTable.props.border = { type: Boolean, default: true }
|
|
|
|
import { initStore } from './store' // Store
|
|
import { initRouter } from './router' // Router
|
|
import language from './locales' // 国际化
|
|
import '@styles/core/tailwind.css' // tailwind
|
|
import '@styles/index.scss' // 样式
|
|
import '@utils/sys/console.ts' // 控制台输出内容
|
|
import { setupGlobDirectives } from './directives'
|
|
import { setupErrorHandle } from './utils/sys/error-handle'
|
|
import FcDesigner from '@form-create/designer'
|
|
import formCreateAutoImport from '@form-create/element-ui/auto-import'
|
|
import { setupFormCreateUpload } from '@/utils/oa-form-create-upload'
|
|
import { setupOaRelatedApproval } from '@/utils/oa-form-create-related-approval'
|
|
import { setupOaDeptSelect } from '@/utils/oa-form-create-dept'
|
|
import { setupOaMoneyField } from '@/utils/oa-form-create-money'
|
|
import { setupOaPersonSelect } from '@/utils/oa-form-create-person'
|
|
import { setupOaOwnerPersonSelect } from '@/utils/oa-form-create-owner-person'
|
|
import { setupOaOwnerDeptSelect } from '@/utils/oa-form-create-owner-dept'
|
|
import { setupOaPostSelect } from '@/utils/oa-form-create-post'
|
|
import { setupOaReceiveAccountSelect } from '@/utils/oa-form-create-receive-account'
|
|
import { setupOaLeaveKit } from '@/utils/oa-form-create-leave-kit'
|
|
import { setupOaConfirmationKit } from '@/utils/oa-form-create-confirmation-kit'
|
|
import { setupOaOvertimeKit } from '@/utils/oa-form-create-overtime-kit'
|
|
import { setupOaResignationKit } from '@/utils/oa-form-create-resignation-kit'
|
|
import { setupOaTripItinerary } from '@/utils/oa-form-create-trip-itinerary'
|
|
import { setupOaTripKit } from '@/utils/oa-form-create-trip-kit'
|
|
|
|
// FormCreate 按字符串解析 el-input / fc-radio 等,主应用是按需自动导入,不会全局注册;
|
|
// 必须挂上官方 auto-import,否则发起审批/详情里动态表单控件会残缺(如单选项只剩文字)。
|
|
FcDesigner.formCreate.use(formCreateAutoImport)
|
|
// 内置「上传」默认 action=/,改为走附件上传 API,避免 POST 前端原点 404
|
|
setupFormCreateUpload(FcDesigner.formCreate)
|
|
setupOaRelatedApproval(FcDesigner.formCreate)
|
|
setupOaDeptSelect(FcDesigner.formCreate)
|
|
setupOaMoneyField(FcDesigner.formCreate)
|
|
setupOaPersonSelect(FcDesigner.formCreate)
|
|
setupOaOwnerPersonSelect(FcDesigner.formCreate)
|
|
setupOaOwnerDeptSelect(FcDesigner.formCreate)
|
|
setupOaPostSelect(FcDesigner.formCreate)
|
|
setupOaReceiveAccountSelect(FcDesigner.formCreate)
|
|
setupOaTripItinerary(FcDesigner.formCreate)
|
|
setupOaTripKit(FcDesigner.formCreate)
|
|
setupOaLeaveKit(FcDesigner.formCreate)
|
|
setupOaConfirmationKit(FcDesigner.formCreate)
|
|
setupOaOvertimeKit(FcDesigner.formCreate)
|
|
setupOaResignationKit(FcDesigner.formCreate)
|
|
|
|
function maskSecret(value?: string) {
|
|
if (!value) return '(empty)'
|
|
if (value.length <= 6) return '*'.repeat(value.length)
|
|
return `${value.slice(0, 3)}***${value.slice(-3)}`
|
|
}
|
|
|
|
function logApiCryptoBootInfo() {
|
|
const {
|
|
VITE_API_ENCRYPT_ENABLED,
|
|
VITE_API_ENCRYPT_FAIL_OPEN,
|
|
VITE_API_ENCRYPT_FIXED_SECRET,
|
|
VITE_API_ENCRYPT_EXCLUDE_PATHS
|
|
} = import.meta.env
|
|
const excludeCount = String(VITE_API_ENCRYPT_EXCLUDE_PATHS || '')
|
|
.split(',')
|
|
.map((item) => item.trim())
|
|
.filter(Boolean).length
|
|
console.info(
|
|
'[API_CRYPTO_BOOT] enabled=%s failOpen=%s fixedSecret=%s excludeCount=%s mode=%s',
|
|
String(VITE_API_ENCRYPT_ENABLED || 'false'),
|
|
String(VITE_API_ENCRYPT_FAIL_OPEN || 'true'),
|
|
maskSecret(String(VITE_API_ENCRYPT_FIXED_SECRET || '')),
|
|
excludeCount,
|
|
import.meta.env.MODE
|
|
)
|
|
}
|
|
|
|
document.addEventListener(
|
|
'touchstart',
|
|
function () {},
|
|
{ passive: false }
|
|
)
|
|
|
|
logApiCryptoBootInfo()
|
|
|
|
const app = createApp(App)
|
|
initStore(app)
|
|
initRouter(app)
|
|
setupGlobDirectives(app)
|
|
setupErrorHandle(app)
|
|
|
|
app.use(language)
|
|
app.use(FcDesigner)
|
|
app.use(FcDesigner.formCreate)
|
|
app.mount('#app') |