page-schema-enginer-shun 1.0.4 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -0
- package/dist/{style.css → assets/schema-table-vmQlBlmv.css} +11 -20
- package/dist/assets/schema-table.vue_vue_type_style_index_0_scoped_502fe21c_lang-CdioWh25.js +7 -0
- package/dist/assets/schema-table.vue_vue_type_style_index_0_scoped_502fe21c_lang-CdioWh25.js.map +1 -0
- package/dist/assets/schema-table.vue_vue_type_style_index_0_scoped_502fe21c_lang-v2tkbqJq.js +8 -0
- package/dist/assets/schema-table.vue_vue_type_style_index_0_scoped_502fe21c_lang-v2tkbqJq.js.map +1 -0
- package/dist/assets/schema-view-bW-stnbi.css +10 -0
- package/dist/assets/wigdets-klW8Cf0W.css +4 -0
- package/dist/client.d.ts +2 -0
- package/dist/entrypoints/http.d.ts +4 -0
- package/dist/entrypoints/schema-view.d.ts +7 -0
- package/dist/entrypoints/wigdets.d.ts +11 -0
- package/dist/http.cjs.js +2 -0
- package/dist/http.cjs.js.map +1 -0
- package/dist/http.d.ts +1 -0
- package/dist/http.es.js +2 -0
- package/dist/http.es.js.map +1 -0
- package/dist/index.cjs.js +7 -1414
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +5 -3
- package/dist/index.es.js +7 -1415
- package/dist/index.es.js.map +1 -1
- package/dist/schema-view/router/index.d.ts +8 -0
- package/dist/schema-view.cjs.js +9 -0
- package/dist/schema-view.cjs.js.map +1 -0
- package/dist/schema-view.d.ts +3 -0
- package/dist/schema-view.es.js +8 -0
- package/dist/schema-view.es.js.map +1 -0
- package/dist/wigdets/operation-panel/operation-panel.vue.d.ts +2 -0
- package/dist/wigdets.cjs.js +7 -0
- package/dist/wigdets.cjs.js.map +1 -0
- package/dist/wigdets.d.ts +1 -0
- package/dist/wigdets.es.js +6 -0
- package/dist/wigdets.es.js.map +1 -0
- package/package.json +20 -2
- package/dist/index.umd.js +0 -1415
- package/dist/index.umd.js.map +0 -1
- package/dist/src/index.d.ts +0 -5
- package/dist/vite.config.d.ts +0 -2
- /package/dist/{src/hooks → hooks}/useSchema.d.ts +0 -0
- /package/dist/{src/http → http}/index.d.ts +0 -0
- /package/dist/{src/main.d.ts → main.d.ts} +0 -0
- /package/dist/{src/pinia → pinia}/modules/user.d.ts +0 -0
- /package/dist/{src/router.d.ts → router.d.ts} +0 -0
- /package/dist/{src/schema-view → schema-view}/complex-view/search-panel/search-panel.vue.d.ts +0 -0
- /package/dist/{src/schema-view → schema-view}/complex-view/table-panel/table-panel.vue.d.ts +0 -0
- /package/dist/{src/schema-view → schema-view}/components/component-config.d.ts +0 -0
- /package/dist/{src/schema-view → schema-view}/components/createForm/createForm.vue.d.ts +0 -0
- /package/dist/{src/schema-view → schema-view}/components/editForm/editForm.vue.d.ts +0 -0
- /package/dist/{src/schema-view → schema-view}/hooks/useSchema.d.ts +0 -0
- /package/dist/{src/schema-view → schema-view}/schema-view.vue.d.ts +0 -0
- /package/dist/{src/schema-view → schema-view}/type.d.ts +0 -0
- /package/dist/{src/utils → utils}/request.d.ts +0 -0
- /package/dist/{src/wigdets → wigdets}/schema-form/complex-view/form-item-config.d.ts +0 -0
- /package/dist/{src/wigdets → wigdets}/schema-form/complex-view/input/input.vue.d.ts +0 -0
- /package/dist/{src/wigdets → wigdets}/schema-form/complex-view/input-number/input-number.vue.d.ts +0 -0
- /package/dist/{src/wigdets → wigdets}/schema-form/complex-view/radio/radio.vue.d.ts +0 -0
- /package/dist/{src/wigdets → wigdets}/schema-form/complex-view/select/select.vue.d.ts +0 -0
- /package/dist/{src/wigdets → wigdets}/schema-form/schema-form.vue.d.ts +0 -0
- /package/dist/{src/wigdets → wigdets}/schema-search/complex-view/input/input.vue.d.ts +0 -0
- /package/dist/{src/wigdets → wigdets}/schema-search/schema-item-config.d.ts +0 -0
- /package/dist/{src/wigdets → wigdets}/schema-search/schema-search-bar.vue.d.ts +0 -0
- /package/dist/{src/wigdets → wigdets}/schema-table/schema-table.vue.d.ts +0 -0
- /package/dist/{src/wigdets → wigdets}/schema-table/schema-view/format-date/format-date.vue.d.ts +0 -0
- /package/dist/{src/wigdets → wigdets}/schema-table/schema-view/format-enum/format-enum.vue.d.ts +0 -0
- /package/dist/{src/wigdets → wigdets}/schema-table/schema-view/schema-table-item-config.d.ts +0 -0
- /package/dist/{src/wigdets → wigdets}/schema-table/schema-view/tag/tag.vue.d.ts +0 -0
- /package/dist/{src/wigdets → wigdets}/utls/date.d.ts +0 -0
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/pinia/modules/user.ts","../src/wigdets/schema-form/complex-view/input/input.vue","../src/wigdets/schema-form/complex-view/radio/radio.vue","../src/wigdets/schema-form/complex-view/input-number/input-number.vue","../src/wigdets/schema-form/complex-view/select/select.vue","../src/wigdets/schema-form/complex-view/form-item-config.ts","../src/wigdets/schema-form/schema-form.vue","../src/http/index.ts","../src/schema-view/components/createForm/createForm.vue","../src/schema-view/components/editForm/editForm.vue","../src/schema-view/components/component-config.ts","../src/utils/request.ts","../src/wigdets/schema-table/schema-view/tag/tag.vue","../src/wigdets/schema-table/schema-view/format-enum/format-enum.vue","../src/wigdets/utls/date.ts","../src/wigdets/schema-table/schema-view/format-date/format-date.vue","../src/wigdets/schema-table/schema-view/schema-table-item-config.ts","../src/wigdets/schema-table/schema-table.vue","../src/schema-view/complex-view/table-panel/table-panel.vue","../src/wigdets/schema-search/complex-view/input/input.vue","../src/wigdets/schema-search/schema-item-config.ts","../src/wigdets/schema-search/schema-search-bar.vue","../src/schema-view/complex-view/search-panel/search-panel.vue","../src/schema-view/hooks/useSchema.ts","../src/schema-view/schema-view.vue"],"sourcesContent":["import { defineStore } from 'pinia';\r\n\r\nexport const useUserStore = defineStore('user', {\r\n state: () => ({\r\n name: 'DemoUser',\r\n }),\r\n});\r\n\r\n","<template>\n <div class=\"schema-form-input-container\">\n <div class=\"schema-form-input\">\n <span class=\"schema-form-input-item-label\">{{ schema?.label }}</span>\n <span v-if=\"schema.option?.required\">*</span>\n <el-input\n v-model=\"dataValue\"\n v-bind=\"schema.option\"\n @blur=\"onBlur\"\n @focus=\"onFocus\"\n />\n </div>\n <div v-if=\"tipsMessage\" style=\"color: red; margin-top: 10px\">\n {{ tipsMessage }}\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { onMounted, ref, inject, watch } from 'vue';\nconst ajvInstance: any = inject('ajvInstance');\nconst { model, ItemKey, schema } = defineProps(['model', 'ItemKey', 'schema']);\nconst dataValue = ref();\nconst tipsMessage = ref<any>(null);\nconst valid = () => {\n // debugger;\n if (schema.option?.required && !dataValue.value) {\n tipsMessage.value = '请输入';\n return false;\n }\n const validate = ajvInstance.compile(schema);\n // debugger;\n const valid = validate(dataValue.value);\n console.log(valid, validate.errors);\n if (!valid && validate.errors && validate.errors[0]) {\n if (validate.errors[0].keyword == 'minLength') {\n tipsMessage.value = '最小长度为' + validate.errors[0].params.limit;\n }\n\n return false;\n }\n return true;\n};\nwatch(\n () => model,\n () => {\n initData();\n },\n);\nconst onBlur = () => {\n valid();\n};\nconst onFocus = () => {\n tipsMessage.value = null;\n};\nconst getValue = () => {\n return dataValue.value !== undefined ? { [ItemKey]: dataValue.value } : {};\n};\nconst initData = () => {\n dataValue.value = model ?? schema.option?.default;\n tipsMessage.value = null;\n};\nconst reset = () => {\n dataValue.value = undefined;\n};\nonMounted(() => {\n initData();\n});\ndefineExpose({\n valid,\n getValue,\n reset,\n});\n</script>\n<style scoped lang=\"scss\">\n.schema-form-input {\n display: flex;\n align-items: center;\n .schema-form-input-item-label {\n margin-right: 10px;\n min-width: 70px;\n }\n}\n</style>\n","<template>\n <div class=\"schema-form-radio-container\">\n <div class=\"schema-form-radio\">\n <span class=\"schema-form-radio-label\">{{ schema.label }}</span>\n <el-radio-group v-model=\"radioData\">\n <el-radio\n v-for=\"item in enumerate\"\n :key=\"item.value\"\n :value=\"item.value\"\n size=\"large\"\n >{{ item.label }}</el-radio\n >\n </el-radio-group>\n <div v-if=\"tip\">{{ tip }}</div>\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { onMounted, ref, watch } from 'vue';\nconst { model, ItemKey, schema } = defineProps(['model', 'ItemKey', 'schema']);\nconst radioData = ref();\nconst enumerate = ref([]);\nconst tip = ref();\nwatch(\n () => model,\n () => {\n buildData();\n },\n);\nconst getValue = () => {\n return radioData.value !== undefined ? { [ItemKey]: radioData.value } : {};\n};\nconst buildData = () => {\n tip.value = null;\n enumerate.value = schema.option?.enumList || [];\n radioData.value = model ?? schema.option?.default;\n};\nconst valid = () => {\n if (radioData.value !== undefined) {\n return true;\n }\n tip.value = '请选择一项';\n return false;\n};\nonMounted(() => {\n buildData();\n});\nconst reset = () => {\n radioData.value = undefined;\n};\ndefineExpose({\n getValue,\n valid,\n reset\n});\n</script>\n<style scoped lang=\"scss\">\n.schema-form-radio {\n display: flex;\n align-items: center;\n &-label {\n margin-right: 10px;\n min-width: 70px;\n }\n}\n</style>\n","<template>\n <div class=\"schema-form-input-number-container\">\n <div class=\"schema-form-input-number\">\n <div class=\"schema-form-input-number-label\">{{ schema.label }}</div>\n <el-input-number\n v-model=\"num\"\n v-bind=\"schema.option\"\n @change=\"handleChange\"\n />\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { onMounted, ref } from 'vue';\n\nconst { model, ItemKey, schema } = defineProps(['model', 'ItemKey', 'schema']);\nconst num = ref(0);\nconst tip = ref();\nconst getValue = () => {\n return num.value !== undefined ? { [ItemKey]: num.value } : {};\n};\nconst buildData = () => {\n tip.value = null;\n num.value = model ?? schema.option?.default;\n};\nconst valid = () => {\n if (num.value !== undefined) {\n return true;\n }\n tip.value = '请选择一项';\n return false;\n};\nconst handleChange = () => {};\nconst reset = () => {\n num.value = 0;\n};\nonMounted(() => {\n buildData();\n});\ndefineExpose({\n getValue,\n valid,\n reset,\n});\n</script>\n<style lang=\"scss\" scoped>\n.schema-form-input-number {\n display: flex;\n align-items: center;\n &-label {\n margin-right: 10px;\n min-width: 70px;\n }\n}\n</style>\n","<template>\n <div class=\"schema-form-select-container\">\n <div class=\"schema-form-select\">\n <span class=\"schema-form-select-label\">{{ schema.label }}</span>\n <el-select v-model=\"selectData\" placeholder=\"请选择\">\n <el-option\n v-for=\"item in enumerate\"\n :key=\"item.value\"\n :label=\"item.label\"\n :value=\"item.value\"\n />\n </el-select>\n <div v-if=\"tip\">{{ tip }}</div>\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { onMounted, ref, watch } from 'vue';\nconst { model, ItemKey, schema } = defineProps(['model', 'ItemKey', 'schema']);\nconst selectData = ref();\nconst enumerate = ref([]);\nconst tip = ref();\nwatch(\n () => model,\n () => {\n buildData();\n },\n);\nconst getValue = () => {\n return selectData.value !== undefined ? { [ItemKey]: selectData.value } : {};\n};\nconst buildData = () => {\n tip.value = null;\n enumerate.value = schema.option?.enumList || [];\n selectData.value = model ?? schema.option?.default;\n};\nconst valid = () => {\n if (selectData.value !== undefined) {\n return true;\n }\n tip.value = '请选择一项';\n return false;\n};\nonMounted(() => {\n buildData();\n});\nconst reset = () => {\n selectData.value = undefined;\n};\ndefineExpose({\n getValue,\n valid,\n reset,\n});\n</script>\n<style scoped lang=\"scss\">\n.schema-form-select {\n display: flex;\n align-items: center;\n &-label {\n margin-right: 10px;\n min-width: 70px;\n }\n}\n</style>\n","import type { Component } from 'vue';\nimport input from './input/input.vue';\nimport radio from './radio/radio.vue';\nimport inputNumber from './input-number/input-number.vue';\nimport select from './select/select.vue';\n\nconst formItemConfig: Record<string, { component: Component }> = {\n input: {\n component: input,\n },\n radio: {\n component: radio,\n },\n inputNumber: {\n component: inputNumber,\n },\n select: {\n component: select,\n },\n};\nexport default formItemConfig;\n","<template>\n <div v-if=\"schema && schema.properties\" class=\"schema-form-complex-view\">\n <template v-for=\"(value, key) in schema.properties\" :key=\"key\">\n <component\n v-if=\"resolveFormItemComponent(value.option?.comType)\"\n :is=\"resolveFormItemComponent(value.option?.comType)\"\n ref=\"formItemListRef\"\n :model=\"model ? model[key] : undefined\"\n :ItemKey=\"key\"\n :schema=\"value\"\n />\n </template>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { ref, onMounted, watch, provide } from 'vue';\nimport formItemConfig from './complex-view/form-item-config';\nimport Ajv, { Options as AjvOptions } from 'ajv';\nimport type { DtoSchema } from '@/hooks/useSchema';\nimport type { Component } from 'vue';\n\nconst ajvInstance = new Ajv({ strict: false } as AjvOptions & {\n strict?: boolean;\n});\n\nconst props = defineProps<{\n schema: DtoSchema;\n model?: Record<string, any>;\n}>();\n\nconst formItemListRef = ref<any[]>([]);\n\nconst resolveFormItemComponent = (comType?: string): Component | null => {\n if (!comType) return null;\n return formItemConfig[comType]?.component ?? null;\n};\n\nconst getValue = () => {\n let dtoObj: Record<string, any> = {};\n (formItemListRef.value || []).forEach((item: any) => {\n if (item && typeof item.getValue === 'function') {\n dtoObj = { ...dtoObj, ...item.getValue() };\n }\n });\n return dtoObj;\n};\n\nconst valid = () => {\n return (formItemListRef.value || []).every(\n (item: any) => item && typeof item.valid === 'function' && item.valid(),\n );\n};\n\nconst reset = () => {\n (formItemListRef.value || []).forEach((item: any) => {\n if (item && typeof item.reset === 'function') item.reset();\n });\n};\n\ndefineExpose({\n valid,\n getValue,\n reset,\n});\n\nprovide('ajvInstance', ajvInstance);\n</script>\n<style lang=\"scss\" scoped>\n.schema-form-complex-view {\n .schema-form-input-container {\n margin-bottom: 10px;\n // display: flex;\n }\n .schema-form-radio-container {\n margin-bottom: 10px;\n }\n .schema-form-input-number-container {\n margin-bottom: 10px;\n }\n .schema-form-select-container {\n margin-bottom: 10px;\n }\n}\n</style>\n","// http/index.ts\nexport type RequestFn = (options: {\n url: string;\n method?: string;\n params?: any;\n data?: any;\n}) => Promise<any>;\n\nlet requestFn: RequestFn | null = null;\n\nexport function setRequestClient(fn: RequestFn) {\n requestFn = fn;\n}\n\nexport function request(options: Parameters<RequestFn>[0]) {\n if (!requestFn) throw new Error('请先使用 setRequestClient 注册请求客户端');\n console.log('requestrequestrequest');\n return requestFn(options);\n}\n","<template>\n <div class=\"createForm\">\n <el-dialog v-model=\"isShow\" title=\"新建\" width=\"600\">\n <template #default>\n <schema-form\n ref=\"schemaFormRef\"\n :schema=\"components[name]?.schema\"\n :config=\"components[name]?.config\"\n />\n </template>\n <template #footer>\n <el-button type=\"primary\" @click=\"submit\">提交</el-button>\n <el-button type=\"primary\" @click=\"close\">取消</el-button>\n </template>\n </el-dialog>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n// ---------- 依赖导入 ----------\n// 常用 API:ref、computed、watch、onMounted;路由、Pinia 示例\nimport { ref, computed, watch, onMounted, inject, h } from \"vue\";\nimport { useRouter, useRoute } from \"vue-router\";\nimport { useUserStore } from \"@/pinia/modules/user\";\nimport SchemaForm from \"@/wigdets/schema-form/schema-form.vue\";\nimport { request } from \"../../../http/index\";\nimport { ElNotification } from \"element-plus\";\nimport { SchemeViewDataCtx } from \"../../type\";\n\n// ---------- 类型定义 ----------\n\n// ---------- Props / Emits ----------\nconst { components, api } = inject<SchemeViewDataCtx>(\"schemeViewData\")!;\nconst emit = defineEmits([\"command\"]);\nconst schemaFormRef = ref<InstanceType<typeof SchemaForm> | null>(null);\nconst submit = async () => {\n const values = schemaFormRef.value?.getValue();\n console.log(values);\n if (!api.add) return;\n const res = await request({\n url: api.add,\n method: \"post\",\n data: values,\n });\n if (!res || !res.data) return;\n ElNotification({\n title: \"Title\",\n message: \"添加成功\",\n });\n close();\n emit(\"command\", { event: \"loadTableData\" });\n};\n// ---------- 响应式状态 ----------\n// 组件本地状态\n\nconst name = ref(\"createForm\");\nconst isShow = ref(false);\n// 计算属性\n\n// ---------- 方法 ----------\nconst show = () => {\n isShow.value = true;\n};\nconst close = () => {\n isShow.value = false;\n schemaFormRef.value?.reset();\n};\n// ---------- 生命周期 & 监视 ----------\n// 监听 count 变化(示例)\n\n// onMounted 生命周期钩子\nonMounted(() => {\n // 组件挂载时执行\n});\ndefineExpose({\n name,\n show,\n});\n\n// ---------- 路由 & 全局状态(Pinia)示例 ----------\nconst router = useRouter();\nconst route = useRoute();\nconst userStore = useUserStore();\n\n// 可以在需要的地方使用 router / userStore\n</script>\n\n<style scoped lang=\"scss\">\n.container {\n}\n</style>\n","<template>\n <div class=\"editForm\">\n <el-dialog v-model=\"isDrawer\" title=\"编辑\" width=\"600\">\n <template #default>\n <schema-form\n ref=\"schemaFormRef\"\n :schema=\"components[name]?.schema\"\n :config=\"components[name]?.config\"\n :model=\"model\"\n />\n </template>\n <template #footer>\n <el-button type=\"primary\" @click=\"submit\">修改</el-button>\n </template>\n </el-dialog>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n// ---------- 依赖导入 ----------\n// 常用 API:ref、computed、watch、onMounted;路由、Pinia 示例\nimport { ref, computed, watch, onMounted, inject } from \"vue\";\nimport { useRouter, useRoute } from \"vue-router\";\nimport { useUserStore } from \"@/pinia/modules/user\";\nimport { request } from \"../../../http/index\";\nimport schemaForm from \"@/wigdets/schema-form/schema-form.vue\";\nimport { ElNotification } from \"element-plus\";\nimport { SchemeViewDataCtx } from \"../../type\";\nconst { components, api } = inject<SchemeViewDataCtx>(\"schemeViewData\")!;\n// ---------- 类型定义 ----------\n\n// ---------- Props / Emits ----------\n\nconst emit = defineEmits([\"command\"]);\n\n// ---------- 响应式状态 ----------\n// 组件本地状态\nconst isDrawer = ref(false);\nconst name = ref(\"editForm\");\nconst model = ref();\nconst mainKey = ref();\n// 计算属性\n\n// ---------- 方法 ----------\nconst show = async (rowData: any) => {\n // debugger;\n mainKey.value = components.value[name.value]?.config?.mainKey;\n // if (api.detail) {\n // const res = await service({\n // url: api.detail,\n // method: 'get',\n // params: {\n // [mainKey.value]: rowData[mainKey.value],\n // },\n // });\n // if (!res && !res.data) return;\n // }\n\n model.value = rowData;\n isDrawer.value = true;\n};\nconst close = () => {\n isDrawer.value = false;\n // schemaFormRef.value?.reset();\n model.value = null;\n};\nconst schemaFormRef = ref<InstanceType<typeof schemaForm> | null>(null);\nconst submit = () => {\n if (!schemaFormRef.value?.valid()) return;\n const data = schemaFormRef.value?.getValue();\n // console.log('data', data);\n if (!api.update) return;\n request({\n url: api.update,\n method: \"put\",\n data: {\n [mainKey.value]: model.value[mainKey.value],\n ...data,\n },\n }).then((res) => {\n ElNotification({\n message: \"修改成功\",\n type: \"success\",\n });\n close();\n emit(\"command\", {\n event: \"loadTableData\",\n });\n });\n};\n// ---------- 生命周期 & 监视 ----------\n// 监听 count 变化(示例)\n\n// onMounted 生命周期钩子\nonMounted(() => {\n // 组件挂载时执行\n});\ndefineExpose({\n show,\n name,\n close,\n});\n\n// ---------- 路由 & 全局状态(Pinia)示例 ----------\nconst router = useRouter();\nconst route = useRoute();\nconst userStore = useUserStore();\n\n// 可以在需要的地方使用 router / userStore\n</script>\n\n<style lang=\"scss\">\n.editForm {\n}\n</style>\n","import type { Component } from 'vue';\nimport createFormC from './createForm/createForm.vue';\nimport editFormC from './editForm/editForm.vue';\n\nconst componentConfig: Record<string, { component: Component }> = {\n createForm: {\n component: createFormC,\n },\n editForm: {\n component: editFormC,\n },\n};\n\nexport default componentConfig;\n","import { Axios, AxiosInstance, AxiosRequestConfig } from \"axios\";\r\n\r\ntype RequestConfig = {\r\n url: string;\r\n method: \"get\" | \"post\" | \"put\" | \"delete\" | string;\r\n params?: Record<string, any>;\r\n data?: Record<string, any>;\r\n};\r\nlet requestAdapter: AxiosInstance;\r\n\r\nexport const setRequestAdapter = (adapter: AxiosInstance): void => {\r\n requestAdapter = adapter;\r\n};\r\n\r\nconst service = async (config: AxiosRequestConfig): Promise<Axios> => {\r\n return requestAdapter(config);\r\n};\r\nexport default service;\r\n","<template>\n <div>\n {{ row[itemKey] }}\n </div>\n</template>\n<script setup lang=\"ts\">\ndefineProps({\n row: {\n type: Object,\n default: () => {},\n },\n column: {\n type: Object,\n default: () => {},\n },\n index: {\n type: Number,\n default: 0,\n },\n itemKey: {\n type: String,\n default: '',\n },\n});\n</script>\n<style scoped></style>\n","<template>\n <div>\n <div>\n {{ getLabel(row[itemKey]) }}\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { onMounted, ref, watch } from 'vue';\n\nconst { row, column, index, itemKey } = defineProps({\n row: {\n type: Object,\n default: () => {},\n },\n column: {\n type: Object,\n default: () => {},\n },\n index: {\n type: Number,\n default: 0,\n },\n itemKey: {\n type: String,\n default: '',\n },\n});\nconst enumeration = ref<{ label: string; value: any }[]>([]);\nconst getLabel = (value: any) => {\n if (enumeration.value && enumeration.value.length > 0) {\n const item = enumeration.value?.find((item: any) => item.value == value);\n if (!item) return;\n return item?.label;\n }\n return null;\n};\nwatch([row, column, index, itemKey], (newVal) => {\n initData();\n});\nconst initData = () => {\n // debugger;\n\n enumeration.value = column.option?.formatEnumConfig?.enumeration || [];\n};\nonMounted(() => {\n initData();\n});\n</script>\n<style scoped></style>\n","// 纯函数日期格式化,不修改 Date 原型\n// 支持占位符:y, M, d, h, m, s, q, S(同原实现)\nexport function formatDate(\n input: number | string | Date,\n pattern = 'yyyy-MM-dd hh:mm:ss',\n): string {\n const date = input instanceof Date ? input : new Date(input);\n const map: Record<string, number> = {\n 'M+': date.getMonth() + 1,\n 'd+': date.getDate(),\n 'h+': date.getHours(),\n 'm+': date.getMinutes(),\n 's+': date.getSeconds(),\n 'q+': Math.floor((date.getMonth() + 3) / 3),\n S: date.getMilliseconds(),\n };\n let result = pattern;\n if (/(y+)/.test(result)) {\n result = result.replace(\n RegExp.$1,\n (date.getFullYear() + '').substr(4 - RegExp.$1.length),\n );\n }\n for (const k in map) {\n if (new RegExp('(' + k + ')').test(result)) {\n const val = map[k];\n result = result.replace(\n RegExp.$1,\n RegExp.$1.length === 1\n ? String(val)\n : ('00' + val).substr(('' + val).length),\n );\n }\n }\n return result;\n}\n\nexport function formatTimeToStr(\n times: number | string | Date,\n pattern?: string,\n): string {\n return formatDate(times, pattern ?? 'yyyy-MM-dd hh:mm:ss');\n}\n\nexport function computedAge(birthday: number | string | Date): number {\n const birthDate = new Date(birthday);\n const today = new Date();\n let age = today.getFullYear() - birthDate.getFullYear();\n const monthDifference = today.getMonth() - birthDate.getMonth();\n if (\n monthDifference < 0 ||\n (monthDifference === 0 && today.getDate() < birthDate.getDate())\n ) {\n age--;\n }\n return age;\n}\n","<template>\n <div>\n <div>\n {{ getDate(row[itemKey]) }}\n </div>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { onMounted, ref, watch } from 'vue';\nimport { formatDate } from '@/wigdets/utls/date';\n\nconst { row, column, index, itemKey } = defineProps({\n row: {\n type: Object,\n default: () => {},\n },\n column: {\n type: Object,\n default: () => {},\n },\n index: {\n type: Number,\n default: 0,\n },\n itemKey: {\n type: String,\n default: '',\n },\n});\nconst getDate = (value: any) => {\n const formatString =\n column.option?.formatDateConfig?.formatString || 'yyyy-MM-dd hh:mm:ss';\n return formatDate(value, formatString);\n};\nwatch([row, column, index, itemKey], (newVal) => {\n // initData();\n});\n// onMounted(() => {\n// initData();\n// });\n</script>\n<style scoped></style>\n","import tag from './tag/tag.vue';\nimport formatEnum from './format-enum/format-enum.vue';\nimport formatDate from './format-date/format-date.vue';\n\nexport interface TableConfig {\n tag: {\n component: typeof tag;\n };\n [key: string]: {\n component: any;\n };\n}\n\nconst tableConfig: TableConfig = {\n tag: {\n component: tag,\n },\n formatEnum: {\n component: formatEnum,\n },\n formatDate: {\n component: formatDate,\n },\n};\nexport default tableConfig;\n","<template>\n <div class=\"schema-table\">\n <el-table\n v-if=\"schema && schema.properties\"\n v-loading=\"loading\"\n :data=\"tableData\"\n style=\"width: 100%\"\n border\n >\n <template v-for=\"(value, keyItem) in schema.properties\" :key=\"keyItem\">\n <el-table-column\n v-if=\"value.option?.visible !== false\"\n :prop=\"keyItem\"\n :label=\"value.label\"\n v-bind=\"value.option\"\n >\n <template #default=\"scope\" v-if=\"value.option?.comType\">\n <component\n :is=\"buildComponetnName(value.option.comType)\"\n :row=\"scope.row\"\n :column=\"value\"\n :index=\"scope.$index\"\n :itemKey=\"keyItem\"\n />\n </template>\n </el-table-column>\n </template>\n <el-table-column\n v-if=\"buttons?.length > 0\"\n label=\"操作\"\n align=\"center\"\n :width=\"operationWidth\"\n >\n <template #default=\"scope\">\n <el-button\n v-for=\"(item, index) in buttons\"\n :key=\"index\"\n v-bind=\"item\"\n @click=\"operatetionHandler({ btnConfig: item, rowData: scope.row })\"\n >\n {{ item.label }}\n </el-button>\n </template>\n </el-table-column>\n </el-table>\n <div class=\"gva-pagination\">\n <el-pagination\n layout=\"total, prev, pager, next, sizes\"\n :total=\"total\"\n :page-size=\"pageSize\"\n :current-page=\"currentPage\"\n @size-change=\"onPageSizeChange\"\n @current-change=\"onCureentPage\"\n />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n// ---------- 依赖导入 ----------\n// 常用 API:ref、computed、watch、onMounted;路由、Pinia 示例\nimport { ref, computed, watch, onMounted, inject, nextTick, unref } from 'vue';\nimport type { ApiConfig, DtoSchema } from '@/hooks/useSchema';\nimport { useRouter, useRoute } from 'vue-router';\nimport { useUserStore } from '@/pinia/modules/user';\nimport service from '@/utils/request';\nimport schemaTableItemConfig from './schema-view/schema-table-item-config';\n// ---------- provide/reject ----------\n\n// ---------- 类型定义 ----------\n\n// ---------- Props / Emits ----------\n// defineProps 与 defineEmits(类型化)\nconst { schema, api, buttons, apiParms } = defineProps<{\n schema: DtoSchema;\n api: ApiConfig;\n buttons: any[];\n apiParms: Record<string, any>;\n}>();\n\nconst emit = defineEmits<{\n (e: 'operate', data: { btnConfig: any; rowData: any }): void;\n}>();\n\n// ---------- 响应式状态 ----------\n// 组件本地状态\n// const count = ref(props.schema ?? 0);\nconst tableData = ref<any[]>([]);\nconst pageSize = ref(10);\nconst currentPage = ref(1);\nconst total = ref(0);\nconst loading = ref(false);\nconst operationWidth = computed(() => {\n return buttons?.length > 0\n ? buttons.reduce((prev, cur) => prev + cur.label.length * 40, 50)\n : 50;\n});\n// ---------- 方法 ----------\nconst buildComponetnName = (comTypeName: string) => {\n const componentName = schemaTableItemConfig[comTypeName]?.component;\n return componentName || '';\n};\nconst fetDatbleData = async () => {\n if (!api.getList) {\n return;\n }\n if (loading.value) return;\n showLoding();\n const res = await service({\n url: api.getList,\n method: 'get',\n params: {\n ...apiParms,\n page: currentPage.value,\n pageSize: pageSize.value,\n },\n });\n hideLoding();\n if (!res || !res.data) {\n return;\n }\n\n tableData.value = buildTableData(res.data.list) || [];\n total.value = Number(\n res.data?.total ?? res.data?.count ?? res.data?.pagination?.total ?? 0,\n );\n};\nconst initData = () => {\n currentPage.value = 1;\n pageSize.value = 10;\n total.value = 0;\n nextTick(async () => {\n await loadTableData();\n });\n};\nconst operatetionHandler = ({ btnConfig, rowData }: any) => {\n emit('operate', { btnConfig, rowData });\n};\nconst onPageSizeChange = async (val: number) => {\n console.log(val, 'onPageSizeChange');\n pageSize.value = val;\n await loadTableData();\n};\nconst onCureentPage = async (val: number) => {\n console.log(val, 'onCureentPage');\n currentPage.value = val;\n await loadTableData();\n};\nconst buildTableData = (listData: any) => {\n if (!schema?.properties) return listData;\n return listData.map((dataItem: any) => {\n for (const key in dataItem) {\n const schemaItem = schema.properties[key];\n if (schemaItem?.options?.tofixed && typeof dataItem[key] === 'number') {\n dataItem[key] = dataItem[key].toFixed(schemaItem.options.tofixed);\n }\n }\n return dataItem;\n });\n};\nlet timer: any = null;\nconst loadTableData = async () => {\n clearTimeout(timer);\n timer = setTimeout(async () => {\n await fetDatbleData();\n timer = null;\n }, 100);\n};\nconst showLoding = () => {\n loading.value = true;\n};\nconst hideLoding = () => {\n loading.value = false;\n};\n\n// ---------- 生命周期 & 监视 ----------\nwatch(\n () => [schema, api, apiParms],\n () => {\n initData();\n },\n);\n// onMounted 生命周期钩子\nonMounted(() => {\n initData();\n});\ndefineExpose({\n initData,\n loadTableData,\n showLoding,\n hideLoding,\n});\n// ---------- 路由 & 全局状态(Pinia)示例 ----------\nconst router = useRouter();\nconst route = useRoute();\nconst userStore = useUserStore();\n\n// 可以在需要的地方使用 router / userStore\n</script>\n\n<style scoped lang=\"scss\">\n.schema-table {\n width: 98%;\n margin: 0 auto;\n margin-top: 5px;\n}\n.table-panel {\n height: 100%;\n}\n.gva-pagination {\n margin-top: 16px;\n display: flex;\n justify-content: flex-end;\n padding-bottom: 20px;\n}\n</style>\n","<template>\n <div class=\"table-panel\">\n <div class=\"operation-panel\">\n <!-- {{ tableConfig.headerButtons }} -->\n <el-row v-if=\"tableConfig?.headerButtons.length > 0\">\n <el-button\n v-for=\"buttonItem in tableConfig?.headerButtons\"\n :key=\"buttonItem.eventKey\"\n @click=\"onOperate({ btnConfig: buttonItem })\"\n >\n {{ buttonItem.label }}\n </el-button>\n </el-row>\n </div>\n <schema-table\n ref=\"schemaTableRef\"\n :schema=\"tableSchema\"\n :api=\"api\"\n :buttons=\"tableConfig?.rowButtons ?? []\"\n @operate=\"onOperate\"\n :apiParms=\"apiParms\"\n >\n <template #cell=\"slotProps\">\n <slot name=\"cell\" v-bind=\"slotProps\"></slot>\n </template>\n </schema-table>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n// ---------- 依赖导入 ----------\n// 常用 API:ref、computed、watch、onMounted;路由、Pinia 示例\nimport { ref, computed, watch, onMounted, inject, nextTick, unref } from 'vue';\nimport { useRouter, useRoute } from 'vue-router';\nimport { useUserStore } from '@/pinia/modules/user';\nimport service from '@/utils/request';\nimport SchemaTable from '@/wigdets/schema-table/schema-table.vue';\nimport OperationPanel from '@/wigdets/operation-panel/operation-panel.vue';\nimport { SchemeViewDataCtx } from '../../type';\n// ---------- provide/reject ----------\nconst { tableConfig, tableSchema, api, apiParms } =\n inject<SchemeViewDataCtx>('schemeViewData')!;\n// const tableSchema = computed(() => schemeViewData.tableSchema.value);\n// const tableConfig = computed(() => schemeViewData.tableConfig.value);\n// const api = computed(() => schemeViewData.api);\n// const rowButtons = computed(\n// () => schemeViewData.tableConfig?.value?.rowButtons ?? [],\n// );\n// const apiParms = computed(() => schemeViewData.apiParms?.value ?? {});\n\n// ---------- 类型定义 ----------\n\n// ---------- Props / Emits ----------\n// defineProps 与 defineEmits(类型化)\n\nconst emit = defineEmits(['operate']);\n\n// ---------- 响应式状态 ----------\n// 组件本地状态\n// const count = ref(props.schema ?? 0);\nconst schemaTableRef = ref();\n// ---------- 方法 ----------\ntype OperatePayload = { btnConfig: any; rowData: any };\nconst handlers: Record<string, (payload: OperatePayload) => void> = {\n addEvent: (payload) => addEvent(payload),\n};\nconst onOperate = ({ btnConfig, rowData = null }: any) => {\n console.log('onOperate', btnConfig, rowData);\n const { eventKey } = btnConfig as { eventKey?: string };\n if (eventKey) handlers[eventKey]?.({ btnConfig, rowData });\n emit('operate', { btnConfig, rowData });\n};\nconst addEvent = ({ btnConfig, rowData }: OperatePayload) => {\n console.log('新增按钮');\n emit('operate', { btnConfig, rowData });\n};\nconst initTableData = async () => {\n await schemaTableRef?.value?.initData();\n};\nconst loadTableData = async () => {\n await schemaTableRef?.value?.loadTableData();\n};\n// ---------- 生命周期 & 监视 ----------\n// 监听 count 变化(示例)\n// watch(\n// () => tableSchema,\n// (newV, oldV) => {\n// // 这里可以调试或触发副作用\n// console.log('tableSchema changed', oldV, '->', newV);\n// },\n// {\n// deep: true,\n// },\n// );\n// onMounted 生命周期钩子\nonMounted(() => {});\ndefineExpose({\n initTableData,\n loadTableData,\n});\n// ---------- 路由 & 全局状态(Pinia)示例 ----------\nconst router = useRouter();\nconst route = useRoute();\nconst userStore = useUserStore();\n\n// 可以在需要的地方使用 router / userStore\n</script>\n\n<style scoped lang=\"scss\">\n.table-panel {\n margin: 0 auto;\n height: 100%;\n background-color: #fff;\n .operation-panel {\n padding: 10px;\n }\n}\n</style>\n","<template>\n <el-input type=\"text\" v-model=\"dtoValue\" v-bind=\"schema\" />\n</template>\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\n\nconst dtoValue = ref();\nconst props = defineProps({\n schemaKey: {\n type: String,\n default: '',\n },\n schema: {\n type: Object,\n default: () => {},\n },\n});\nconst getValue = () => {\n return dtoValue.value !== undefined\n ? {\n [props.schemaKey]: dtoValue.value,\n }\n : {};\n};\nconst reset = () => {\n dtoValue.value = props.schema?.option?.default;\n};\nconst emit = defineEmits(['loaded']);\ndefineExpose({\n getValue,\n reset,\n});\n</script>\n<style lang=\"less\" scoped></style>\n","import type { Component } from 'vue';\nimport input from './complex-view/input/input.vue';\n\nconst SearchConfig: Record<string, { component: Component }> = {\n input: {\n component: input,\n },\n};\n\nexport default SearchConfig;\n","<template>\n <div class=\"gva-search-box\">\n <el-form :inline=\"true\" class=\"flex items-center justify-start flex-wrap\">\n <!-- 动态组件 -->\n <el-form-item\n v-for=\"(value, key) in schema.properties\"\n :key=\"key\"\n :label=\"value.label\"\n >\n <template v-if=\"value.option.comType\">\n <component\n :is=\"searchItemConfig[value.option.comType].component\"\n :ref=\"hanleSearchComList\"\n v-bind=\"value.option\"\n @loaded=\"handleChildLoaded\"\n :schema=\"value\"\n :schemaKey=\"key\"\n />\n </template>\n </el-form-item>\n\n <!-- 操作区域 -->\n <el-form-item>\n <el-button type=\"primary\" @click=\"search\"> 查询 </el-button>\n <el-button @click=\"reset\">重置</el-button>\n </el-form-item>\n </el-form>\n </div>\n</template>\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport searchItemConfig from './schema-item-config';\nimport type { DtoSchema } from '@/hooks/useSchema';\n\nconst searchItemConfigRef = ref(searchItemConfig);\n\nconst emit = defineEmits<{\n (e: 'search', payload: Record<string, any>): void;\n (e: 'reset'): void;\n (e: 'load'): void;\n (e: 'loaded', payload: Record<string, any>): void;\n}>();\n\nconst props = defineProps<{\n schema: DtoSchema;\n schemaConfig?: Record<string, any>;\n}>();\n\nconst SearchComList = ref<any[]>([]);\nconst hanleSearchComList = (el: any) => {\n if (el) SearchComList.value.push(el);\n};\n\nconst getValue = () => {\n let dtoObj: Record<string, any> = {};\n (SearchComList.value || []).forEach((item: any) => {\n if (item && typeof item.getValue === 'function') {\n dtoObj = {\n ...dtoObj,\n ...item.getValue(),\n };\n }\n });\n return dtoObj;\n};\n\nlet childComLocadCount = 0;\nconst handleChildLoaded = (el: any) => {\n childComLocadCount++;\n if (childComLocadCount >= Object.keys(props.schema.properties).length) {\n emit('loaded', getValue());\n }\n};\n\nconst search = () => {\n emit('search', getValue());\n};\n\nconst reset = () => {\n emit('reset');\n (SearchComList.value || []).forEach((item: any) => {\n if (item && typeof item.reset === 'function') item.reset();\n });\n};\n\nconst load = () => {\n emit('load');\n};\n\ndefineExpose({\n search,\n reset,\n load,\n});\n</script>\n<style lang=\"less\" scoped></style>\n","<template>\n <div class=\"search-panel\">\n <schema-search-bar\n :schema=\"searchSchema\"\n :schemaConfig=\"serachConfig\"\n @search=\"handleSearch\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\n// ---------- 依赖导入 ----------\n// 常用 API:ref、computed、watch、onMounted;路由、Pinia 示例\nimport { ref, computed, watch, onMounted, inject } from 'vue';\nimport { useRouter, useRoute } from 'vue-router';\nimport { useUserStore } from '@/pinia/modules/user';\nimport schemaSearchBar from '@/wigdets/schema-search/schema-search-bar.vue';\nimport { SchemeViewDataCtx } from '../../type';\n\nconst { serachConfig, searchSchema } =\n inject<SchemeViewDataCtx>('schemeViewData')!;\n\n// ---------- 类型定义 ----------\n\n// ---------- Props / Emits ----------\n// defineProps 与 defineEmits(类型化)\nconst props = defineProps({});\n\nconst emit = defineEmits(['Search', 'Reset']);\n\n// ---------- 响应式状态 ----------\n// 组件本地状态\n\n// 计算属性\n\n// ---------- 方法 ----------\nconst handleSearch = (Searchobj: Record<string, any>) => {\n // console.log(Searchobj);\n emit('Search', Searchobj);\n};\n// const handleReset = (Searchobj: Record<string, any>) => {\n// emit('Reset', Searchobj);\n// };\n// ---------- 生命周期 & 监视 ----------\n// 监听 count 变化(示例)\n\n// onMounted 生命周期钩子\nonMounted(() => {\n // 组件挂载时执行\n});\n\n// ---------- 路由 & 全局状态(Pinia)示例 ----------\n\n// 可以在需要的地方使用 router / userStore\n</script>\n\n<style scoped lang=\"scss\">\n.container {\n}\n</style>\n","import { ref, onMounted, nextTick, Ref } from 'vue';\n\ntype ViewOption = Record<string, any>;\n\ntype SchemaProperty = {\n type?: string;\n label?: string;\n minLength?: number;\n maxLength?: number;\n [key: string]: any;\n tableOption?: ViewOption;\n searchOption?: ViewOption;\n createFormOption?: ViewOption;\n editFormOption?: ViewOption;\n};\n\ntype schema = {\n type?: string;\n properties?: Record<string, SchemaProperty>;\n require?: string[];\n};\n\ntype DtoProperty = {\n [key: string]: any;\n option: ViewOption & {\n required?: boolean;\n comType?: string;\n };\n};\n\nexport type DtoSchema = {\n properties: Record<string, DtoProperty>;\n};\n\ntype ButtonEventOption = {\n comName?: string;\n parms?: Record<string, string>;\n};\n\ntype ButtonConfig = {\n label: string;\n eventKey: string;\n eventOption?: ButtonEventOption;\n};\n\nexport type TableConfig = {\n headerButtons: ButtonConfig[];\n rowButtons: ButtonConfig[];\n [key: string]: any;\n};\n\nexport type SearchConfig = Record<string, any>;\n\nexport type ApiConfig = {\n getList?: string;\n add?: string;\n update?: string;\n delete?: string;\n [key: string]: string | undefined;\n};\n\ntype ComponentsConfig = Record<string, Record<string, any>>;\n\ntype SchemaConfigDoc = {\n api: ApiConfig;\n schema: schema;\n tableConfig: TableConfig;\n searchConfig: SearchConfig;\n components?: ComponentsConfig;\n};\n\nexport type SchemeViewData = {\n tableSchema: Ref<DtoSchema>;\n tableConfig: Ref<TableConfig>;\n api: ApiConfig;\n serachConfig: Ref<SearchConfig>;\n searchSchema: Ref<DtoSchema>;\n components: Ref<Record<string, { schema: DtoSchema; config: any }>>;\n};\n\nexport const useSchema = (schemaConfigDoc: SchemaConfigDoc): SchemeViewData => {\n const {\n api,\n schema,\n tableConfig: tableSchemaConfig,\n searchConfig,\n components: componentsConfig,\n } = schemaConfigDoc;\n const tableSchema = ref<DtoSchema>({ properties: {} });\n const tableConfig = ref<TableConfig>({\n headerButtons: [],\n rowButtons: [],\n });\n const serachConfig = ref<SearchConfig>({});\n const searchSchema = ref<DtoSchema>({ properties: {} });\n\n /**\n * 动态组件配置\n *\n *components{\n * createForm: {\n * schema:{},\n * config:{}\n * },\n * editForm:{...}\n * }\n */\n const components = ref<Record<string, { schema: DtoSchema; config: any }>>(\n {},\n );\n\n /**\n * 数据准备\n */\n const buidData = () => {\n tableSchema.value = { properties: {} };\n\n tableConfig.value.rowButtons = tableSchemaConfig.rowButtons || [];\n tableConfig.value.headerButtons = tableSchemaConfig.headerButtons || [];\n\n serachConfig.value = {} as SearchConfig;\n searchSchema.value = { properties: {} };\n components.value = {};\n nextTick(() => {\n tableSchema.value = buildDtoSchema(schema, 'table');\n tableConfig.value.headerButtons = tableConfig.value.headerButtons || [];\n tableConfig.value.rowButtons = tableConfig.value.rowButtons || [];\n serachConfig.value = searchConfig;\n searchSchema.value = buildDtoSchema(schema, 'search');\n\n if (componentsConfig && Object.keys(componentsConfig).length > 0) {\n const dtoCompontns: Record<string, { schema: DtoSchema; config: any }> =\n {};\n for (const comKey in componentsConfig) {\n dtoCompontns[comKey] = {\n schema: buildDtoSchema(schema, comKey),\n config: componentsConfig[comKey],\n };\n components.value = dtoCompontns;\n }\n }\n });\n };\n\n /**\n * 构建DTO Schema (消音)\n * @param _schema 原始Schema\n * @param comName 字段name\n * @returns\n */\n const buildDtoSchema = (_schema: schema, comName: string): DtoSchema => {\n const dtoSchema: DtoSchema = {\n properties: {},\n };\n if (!_schema.properties) return dtoSchema;\n const { require } = _schema;\n for (const key in _schema.properties) {\n const props = _schema.properties[key];\n if (props[`${comName}Option`]) {\n let dtoProps: Record<string, any> = {};\n for (const pkey in props) {\n if (pkey.indexOf('Option') < 0) {\n dtoProps[pkey] = props[pkey];\n }\n }\n dtoProps = Object.assign({}, dtoProps, {\n option: props[`${comName}Option`] as ViewOption,\n });\n if (\n require &&\n require.length > 0 &&\n require.find((vp: string) => vp === key)\n ) {\n dtoProps.option.required = true;\n }\n dtoSchema.properties[key] = dtoProps as DtoProperty;\n }\n }\n return dtoSchema;\n };\n onMounted(() => {\n buidData();\n });\n return {\n api,\n tableSchema,\n tableConfig,\n serachConfig,\n searchSchema,\n components,\n };\n};\n","<template>\n <div class=\"schema-view\">\n <search-panel @Search=\"handleSearch\" @Reset=\"handleReset\" />\n <table-panel ref=\"tablePanelRef\" @operate=\"handleOperate\" />\n <component\n v-for=\"(value, key) in components\"\n :is=\"componentConfig[key].component\"\n ref=\"componentListRef\"\n :key=\"key\"\n @command=\"onCommand\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\n// ---------- 依赖导入 ----------\nimport componentConfig from \"./components/component-config\";\nimport { ref, onMounted, provide, Ref } from \"vue\";\nimport { request as service } from \"../http/index\";\nimport { ElMessage, ElMessageBox } from \"element-plus\";\nimport { useRouter, useRoute } from \"vue-router\";\nimport { useUserStore } from \"@/pinia/modules/user\";\nimport tablePanel from \"./complex-view/table-panel/table-panel.vue\";\n\nimport searchPanel from \"./complex-view/search-panel/search-panel.vue\";\nimport {\n ApiConfig,\n DtoSchema,\n SearchConfig,\n TableConfig,\n useSchema,\n} from \"./hooks/useSchema\";\nimport { SchemeViewDataCtx } from \"./type\";\n\n// ---------- Props ----------\nconst props = defineProps<{\n config: any;\n}>();\n\n// ---------- hook ----------\nconst {\n api,\n tableSchema,\n tableConfig,\n serachConfig,\n searchSchema,\n components,\n} = useSchema(props.config);\n\n// ---------- 响应式状态 ----------\n// 组件本地状态\nconst apiParms = ref({});\nconst componentListRef = ref<any[]>([]);\nconst tablePanelRef = ref<InstanceType<typeof tablePanel> | null>(null);\n\n// ---------- 方法 ----------\nconst handleSearch = (Searchobj: any) => {\n apiParms.value = Searchobj;\n console.log(Searchobj);\n};\nconst handleReset = (Searchobj: any) => {\n apiParms.value = {};\n console.log(Searchobj);\n};\nconst onCommand = (data: any) => {\n console.log(\"data\", data);\n const { event } = data;\n if (event === \"loadTableData\") {\n tablePanelRef.value?.loadTableData();\n }\n};\nconst remove = async ({ btnConfig, rowData }: any) => {\n const { parms } = btnConfig.eventOption;\n if (!api.delete) {\n ElMessage.error(\"未配置删除接口地址\");\n return;\n }\n\n // 构建请求参数\n let obj = {};\n const key = Object.keys(parms)[0];\n let skey = parms[key].split(\"::\")[1];\n if (skey) {\n obj = { [skey]: rowData[skey] };\n } else {\n obj = { [key]: parms[key] };\n }\n\n // 确认删除\n ElMessageBox.confirm(\"确认删除该记录吗?\", \"提示\", {\n confirmButtonText: \"确定\",\n cancelButtonText: \"取消\",\n type: \"warning\",\n })\n .then(async () => {\n if (api?.delete) {\n const res: any = await service({\n url: api?.delete,\n method: \"delete\",\n data: obj,\n });\n if (res.code === 0) {\n ElMessage.success(\"删除成功\");\n tablePanelRef.value?.loadTableData();\n }\n }\n })\n .catch(() => {});\n};\nconst showComponent = ({ btnConfig, rowData = null }: any) => {\n const { comName } = btnConfig.eventOption;\n\n if (!comName) return;\n const component: any = componentListRef.value.find(\n (item: any) => item.name === comName\n );\n if (!component) return;\n component.show(rowData);\n};\nconst EventHandleMap: any = {\n showComponent: showComponent,\n remove: remove,\n};\nconst handleOperate = ({ btnConfig, rowData = null }: any) => {\n const { eventKey } = btnConfig;\n // debugger;\n EventHandleMap[eventKey]?.({ btnConfig, rowData });\n};\n\n// ---------- 生命周期 & 监视 ----------\nonMounted(() => {\n // 组件挂载时执行\n});\n\n// ---------- 路由 & 全局状态(Pinia)示例 ----------\n\n// ---------- provider ----------\n\nprovide<SchemeViewDataCtx>(\"schemeViewData\", {\n tableSchema,\n tableConfig,\n api,\n serachConfig,\n searchSchema,\n apiParms,\n components,\n});\n</script>\n\n<style scoped lang=\"scss\">\n.schema-view {\n height: 100%;\n}\n</style>\n"],"names":["valid","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","_toDisplayString","_createVNode","_mergeProps","_Fragment","_renderList","_createBlock","_createTextVNode","_resolveDynamicComponent","SchemaForm","_unref","editFormC","item","input","tag","formatEnum","formatDate","schemaTableItemConfig","_a","_createSlots","_withCtx","tableConfig","_renderSlot","searchItemConfig","schemaSearchBar","require","service"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type RouterClient = {
|
|
2
|
+
push: (to: any) => any;
|
|
3
|
+
replace?: (to: any) => any;
|
|
4
|
+
back?: () => any;
|
|
5
|
+
};
|
|
6
|
+
export declare function setRouterClient(client: RouterClient): void;
|
|
7
|
+
export declare function navigate(to: any, type?: 'push' | 'replace'): any;
|
|
8
|
+
export declare function back(): any;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
require("vue");
|
|
3
|
+
require("vue-router");
|
|
4
|
+
require("./assets/schema-table.vue_vue_type_style_index_0_scoped_502fe21c_lang-v2tkbqJq.js");
|
|
5
|
+
require("ajv");
|
|
6
|
+
require("element-plus");
|
|
7
|
+
;/* empty css */
|
|
8
|
+
require("pinia");
|
|
9
|
+
//# sourceMappingURL=schema-view.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-view.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-view.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wigdets.cjs.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './entrypoints/wigdets'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wigdets.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "page-schema-enginer-shun",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.6",
|
|
4
4
|
"description": "页面级别的schema渲染引擎",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.cjs.js",
|
|
@@ -11,7 +11,25 @@
|
|
|
11
11
|
"types": "./dist/index.d.ts",
|
|
12
12
|
"import": "./dist/index.es.js",
|
|
13
13
|
"require": "./dist/index.cjs.js",
|
|
14
|
-
"default": "./dist/index.
|
|
14
|
+
"default": "./dist/index.es.js"
|
|
15
|
+
},
|
|
16
|
+
"./schema-view": {
|
|
17
|
+
"types": "./dist/schema-view.d.ts",
|
|
18
|
+
"import": "./dist/schema-view.es.js",
|
|
19
|
+
"require": "./dist/schema-view.cjs.js",
|
|
20
|
+
"default": "./dist/schema-view.es.js"
|
|
21
|
+
},
|
|
22
|
+
"./wigdets": {
|
|
23
|
+
"types": "./dist/wigdets.d.ts",
|
|
24
|
+
"import": "./dist/wigdets.es.js",
|
|
25
|
+
"require": "./dist/wigdets.cjs.js",
|
|
26
|
+
"default": "./dist/wigdets.es.js"
|
|
27
|
+
},
|
|
28
|
+
"./http": {
|
|
29
|
+
"types": "./dist/http.d.ts",
|
|
30
|
+
"import": "./dist/http.es.js",
|
|
31
|
+
"require": "./dist/http.cjs.js",
|
|
32
|
+
"default": "./dist/http.es.js"
|
|
15
33
|
}
|
|
16
34
|
},
|
|
17
35
|
"files": [
|