yh-report 2.0.9 → 2.0.11

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.
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as o, ref as a, onActivated as i, onDeactivated as r, onMounted as m, openBlock as s, createElementBlock as c, createVNode as d } from "vue";
2
2
  import { useRoute as l } from "vue-router";
3
- import { k as u } from "./index-f102cf35.mjs";
3
+ import { k as u } from "./index-d33c144b.mjs";
4
4
  import "element-plus";
5
5
  import "@/libs/api.request.js";
6
6
  import "lodash-es";
@@ -25,4 +25,4 @@ const p = { class: "statement-detail-container" }, y = /* @__PURE__ */ o({
25
25
  export {
26
26
  y as default
27
27
  };
28
- //# sourceMappingURL=StatementDetail-baf9e626.mjs.map
28
+ //# sourceMappingURL=StatementDetail-f32c92b1.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatementDetail-baf9e626.mjs","sources":["../StatementDetail.vue"],"sourcesContent":["<template>\n <section class=\"statement-detail-container\">\n <report-run :id=\"id\"></report-run>\n </section>\n</template>\n<script setup lang=\"ts\">\nimport {ref, onMounted, onActivated, onDeactivated} from 'vue';\nimport {useRoute} from 'vue-router';\nimport reportRun from './component/report-run.vue';\nconst route = useRoute();\nconst id = ref();\n\nonActivated(() => {\n document.querySelector('.main-container')?.classList.add('statement-design-main');\n});\n\nonDeactivated(() => {\n document.querySelector('.main-container')?.classList.remove('statement-design-main');\n});\n\nonMounted(() => {\n id.value = route.params.id;\n});\n</script>\n"],"names":["route","useRoute","id","ref","onActivated","_a","onDeactivated","onMounted"],"mappings":";;;;;;;;;;AASA,UAAMA,IAAQC,KACRC,IAAKC;AAEX,WAAAC,EAAY,MAAM;;AAChB,OAAAC,IAAA,SAAS,cAAc,iBAAiB,MAAxC,QAAAA,EAA2C,UAAU,IAAI;AAAA,IAAuB,CACjF,GAEDC,EAAc,MAAM;;AAClB,OAAAD,IAAA,SAAS,cAAc,iBAAiB,MAAxC,QAAAA,EAA2C,UAAU,OAAO;AAAA,IAAuB,CACpF,GAEDE,EAAU,MAAM;AACX,MAAAL,EAAA,QAAQF,EAAM,OAAO;AAAA,IAAA,CACzB;;;;;"}
1
+ {"version":3,"file":"StatementDetail-f32c92b1.mjs","sources":["../StatementDetail.vue"],"sourcesContent":["<template>\n <section class=\"statement-detail-container\">\n <report-run :id=\"id\"></report-run>\n </section>\n</template>\n<script setup lang=\"ts\">\nimport {ref, onMounted, onActivated, onDeactivated} from 'vue';\nimport {useRoute} from 'vue-router';\nimport reportRun from './component/report-run.vue';\nconst route = useRoute();\nconst id = ref();\n\nonActivated(() => {\n document.querySelector('.main-container')?.classList.add('statement-design-main');\n});\n\nonDeactivated(() => {\n document.querySelector('.main-container')?.classList.remove('statement-design-main');\n});\n\nonMounted(() => {\n id.value = route.params.id;\n});\n</script>\n"],"names":["route","useRoute","id","ref","onActivated","_a","onDeactivated","onMounted"],"mappings":";;;;;;;;;;AASA,UAAMA,IAAQC,KACRC,IAAKC;AAEX,WAAAC,EAAY,MAAM;;AAChB,OAAAC,IAAA,SAAS,cAAc,iBAAiB,MAAxC,QAAAA,EAA2C,UAAU,IAAI;AAAA,IAAuB,CACjF,GAEDC,EAAc,MAAM;;AAClB,OAAAD,IAAA,SAAS,cAAc,iBAAiB,MAAxC,QAAAA,EAA2C,UAAU,OAAO;AAAA,IAAuB,CACpF,GAEDE,EAAU,MAAM;AACX,MAAAL,EAAA,QAAQF,EAAM,OAAO;AAAA,IAAA,CACzB;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as J, reactive as S, ref as V, onMounted as I, watch as N, openBlock as P, createElementBlock as G, createElementVNode as f, createTextVNode as u, createVNode as n, unref as o, withCtx as a } from "vue";
2
2
  import { useRouter as K } from "vue-router";
3
- import { g as Q, c as W, s as U, d as X, a as Z } from "./index-f102cf35.mjs";
3
+ import { g as Q, c as W, s as U, d as X, a as Z } from "./index-d33c144b.mjs";
4
4
  import { ElButton as c, ElForm as L, ElFormItem as b, ElInput as _, ElTable as ee, ElTableColumn as y, ElPagination as te, ElDialog as ne, ElMessage as v, ElLoading as oe, ElMessageBox as le } from "element-plus";
5
5
  import "@/libs/api.request.js";
6
6
  import "lodash-es";
@@ -386,4 +386,4 @@ const ae = { class: "statement-list-container" }, ie = { class: "actions" }, re
386
386
  export {
387
387
  we as default
388
388
  };
389
- //# sourceMappingURL=StatementList-b4f08154.mjs.map
389
+ //# sourceMappingURL=StatementList-0cdc088a.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatementList-b4f08154.mjs","sources":["../StatementList.vue"],"sourcesContent":["<template>\n <section class=\"statement-list-container\">\n <div class=\"actions\">\n <div class=\"el-button is-text import-excel-button\">\n <input\n class=\"import-excel-input\"\n type=\"file\"\n @change=\"importReport($event)\" />\n 导入\n </div>\n <el-button\n text\n @click=\"exportReport\">\n 导出\n </el-button>\n <el-button\n type=\"primary\"\n @click=\"toAddForm\">\n 新增\n </el-button>\n <el-form inline>\n <el-form-item label=\"报表名称\">\n <el-input\n v-model=\"listForm.key\"\n placeholder=\"键入关键字搜索报表\"></el-input>\n </el-form-item>\n </el-form>\n <el-button\n type=\"primary\"\n @click=\"onSearch()\">\n 搜索\n </el-button>\n <el-button @click=\"onReset()\">重置</el-button>\n </div>\n <el-table\n :data=\"data\"\n @selection-change=\"selectionChangeHandle\">\n <el-table-column\n type=\"selection\"\n width=\"50\"></el-table-column>\n <el-table-column\n label=\"#\"\n type=\"index\"\n width=\"66\"\n left></el-table-column>\n <el-table-column\n label=\"表单编码\"\n min-width=\"100\"\n prop=\"code\"></el-table-column>\n <el-table-column\n label=\"表单名称\"\n min-width=\"100\"\n prop=\"name\"></el-table-column>\n <el-table-column\n label=\"描述\"\n min-width=\"200\"\n prop=\"description\"></el-table-column>\n <el-table-column\n label=\"操作\"\n width=\"500\"\n fixed=\"right\">\n <template #default=\"scope\">\n <el-button\n link\n title=\"本系统前台页面嵌入地址\"\n @click=\"copyLink(scope.row, 'inner')\">\n 内部链接\n </el-button>\n <el-button\n link\n title=\"其他系统嵌入地址\"\n @click=\"copyLink(scope.row, 'outside')\">\n 外部链接\n </el-button>\n <el-button\n type=\"primary\"\n link\n @click=\"toDesign(scope.row)\">\n <i class=\"iconfont icon-antdesign\"></i>\n 设计\n </el-button>\n <el-button\n type=\"primary\"\n link\n @click=\"toView(scope.row)\">\n <i class=\"iconfont icon-view\"></i>\n 查看\n </el-button>\n <el-button\n type=\"primary\"\n link\n @click=\"toEditor(scope.row)\">\n <i class=\"iconfont icon-edit-outline\"></i>\n 编辑\n </el-button>\n <el-button\n type=\"danger\"\n link\n @click=\"toDelete(scope.row)\">\n <i class=\"iconfont icon-delete\"></i>\n 删除\n </el-button>\n </template>\n </el-table-column>\n </el-table>\n <el-pagination\n background\n style=\"padding-top: 30px; justify-content: flex-end\"\n :page-sizes=\"[10, 20, 50, 100]\"\n v-model:page-size=\"listForm.pageSize\"\n :total=\"listForm.total\"\n v-model:current-page=\"listForm.pageNumber\"\n layout=\"sizes,prev,pager,next,total\"></el-pagination>\n <!-- 新增报表对话框 -->\n <el-dialog\n v-model=\"dialogFormVisible\"\n @close=\"cancelForm\"\n :title=\"form.id ? '编辑报表' : '新建报表'\">\n <el-form\n :model=\"form\"\n label-width=\"120\">\n <el-form-item\n label=\"报表代码\"\n required>\n <el-input\n v-model=\"form.code\"\n autocomplete=\"off\" />\n </el-form-item>\n <el-form-item\n label=\"报表名称\"\n required>\n <el-input\n v-model=\"form.name\"\n autocomplete=\"off\" />\n </el-form-item>\n <el-form-item\n label=\"描述\"\n required>\n <el-input\n v-model=\"form.description\"\n type=\"textarea\"\n autocomplete=\"off\" />\n </el-form-item>\n </el-form>\n <template #footer>\n <span class=\"dialog-footer\">\n <el-button @click=\"cancelForm\">取消</el-button>\n <el-button\n type=\"primary\"\n @click=\"saveForm()\">\n 保存\n </el-button>\n </span>\n </template>\n </el-dialog>\n </section>\n</template>\n<script setup lang=\"ts\">\nimport {ref, reactive, watch, onMounted} from 'vue';\nimport {useRouter} from 'vue-router';\nimport {Statement} from './types';\nimport {getList, save, del} from './api/form';\nimport {ElMessageBox, ElMessage, ElButton, ElForm, ElFormItem, ElInput, ElTable, ElTableColumn, ElPagination, ElDialog, ElLoading} from 'element-plus';\nimport {copyString} from './libs/util';\nimport dayjs from 'dayjs';\n\nconst router = useRouter();\n\n// @ts-ignore\nconst listForm = reactive({\n key: '',\n pageSize: 10,\n total: 0,\n pageNumber: 1,\n});\nconst data = ref<Statement[]>([]);\n\n//获取报表列表\nasync function getStatementList(flag = false) {\n if (flag) {\n listForm.pageNumber = 1;\n listForm.total = 0;\n }\n const res = await getList(listForm);\n data.value = res.data.list;\n listForm.total;\n}\n\nfunction copyLink(row, type) {\n let href = '';\n let hrefName = '链接';\n if (type === 'inner') {\n href = `${window.location.pathname}#/statementdetail/${row.id}`;\n hrefName = '内部链接';\n } else {\n href = `${window.location.origin}${window.location.pathname}#/statementdetail/${row.id}`;\n hrefName = '外部链接';\n }\n copyString(href)\n .then(() => {\n ElMessage.success(hrefName + '复制成功');\n })\n .catch(() => {\n ElMessage.error(hrefName + '复制遇到问题');\n });\n}\n\nconst tableSelections = ref([]);\nconst selectionChangeHandle = (selections) => {\n tableSelections.value = selections;\n};\nconst importReport = async (e) => {\n const file = e.target.files[0];\n if (!file) return;\n\n const reader = new FileReader();\n reader.onload = async (event) => {\n e.target.value = '';\n try {\n if (event.target) {\n const jsonData = JSON.parse(event.target.result as string);\n if (Array.isArray(jsonData) && jsonData.every((item) => typeof item === 'object' && 'code' in item && 'config' in item && 'description' in item && 'name' in item)) {\n const loading = ElLoading.service({\n fullscreen: true,\n text: `正在导入报表,共 ${jsonData.length} 个,请稍候...`,\n });\n for (let i = 0; i < jsonData.length; i++) {\n loading.setText(`正在保存第 ${i + 1} 个,共 ${jsonData.length} 个,请稍候...`);\n const item = jsonData[i];\n await save(item);\n }\n loading.close();\n getStatementList(true);\n } else {\n ElMessage.error('格式错误,请确保导入的文件未被修改过!');\n }\n }\n } catch (error) {\n ElMessage.error('文件解析失败,请检查文件是否为有效的 JSON 格式!');\n }\n };\n reader.readAsText(file);\n};\n\nconst exportReport = () => {\n if (tableSelections.value.length > 0) {\n const jsonData = JSON.stringify(\n tableSelections.value.map(({code, config, description, name}) => {\n return {\n code,\n config,\n description,\n name,\n };\n }),\n null,\n 2\n );\n const blob = new Blob([jsonData], {type: 'application/json'});\n\n const url = URL.createObjectURL(blob);\n\n const formattedDate = dayjs().format('YYYYMMDDHHmm');\n const fileName = `报表导出-${formattedDate}.json`;\n\n const a = document.createElement('a');\n a.href = url;\n a.download = fileName;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n\n URL.revokeObjectURL(url);\n } else {\n ElMessage.warning('请选择要操作的报表!');\n }\n};\n\nfunction toDesign(row) {\n router.push(`/admin/statement/design/${row.id}`);\n}\n\nfunction toView(row) {\n router.push(`/admin/statement/detail/${row.id}`);\n}\n\nonMounted(() => {\n getStatementList(true);\n});\n\n//新增报表\nconst dialogFormVisible = ref(false);\nconst form = reactive({\n id: undefined,\n name: '',\n code: '',\n description: '',\n});\n\nfunction toAddForm() {\n dialogFormVisible.value = true;\n}\n\nfunction toEditor(row) {\n dialogFormVisible.value = true;\n form.id = row.id;\n form.name = row.name;\n form.code = row.code;\n form.description = row.description;\n}\n\nfunction toDelete(row) {\n ElMessageBox.confirm('当前操作会删除选定的报表,确认继续吗?', '警告', {\n confirmButtonText: '删除',\n cancelButtonText: '取消',\n type: 'warning',\n }).then(async () => {\n let res = await del(row.id);\n if (res.data) {\n getStatementList(true);\n }\n });\n}\n\nfunction cancelForm() {\n dialogFormVisible.value = false;\n form.id = undefined;\n form.name = '';\n form.code = '';\n form.description = '';\n}\nasync function saveForm() {\n await save(form);\n getStatementList(true);\n cancelForm();\n}\n\n//搜索报表\nfunction onSearch() {\n getStatementList(false);\n}\n\n//重置\nfunction onReset() {\n listForm.key = '';\n getStatementList(true);\n}\n\n//分页功能\nwatch(\n () => listForm.pageNumber,\n () => {\n getStatementList();\n }\n);\nwatch(\n () => listForm.pageSize,\n () => {\n getStatementList();\n }\n);\n</script>\n\n<style lang=\"scss\">\n.statement-list-container {\n width: 100%;\n height: 100%;\n padding: 10px 0;\n box-sizing: border-box;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n .actions {\n display: flex;\n align-items: center;\n\n .el-form {\n flex: 1;\n margin: 0 10px;\n }\n\n .el-form-item {\n margin-bottom: 0;\n margin-right: 10px;\n }\n }\n\n .el-table {\n flex: 1;\n }\n\n .el-dialog {\n .el-button--text {\n margin-right: 15px;\n }\n\n .el-form-item {\n width: 100%;\n }\n\n .el-select {\n width: 100%;\n }\n\n .el-input {\n width: 100%;\n }\n\n .dialog-footer button:first-child {\n margin-right: 10px;\n }\n }\n .import-excel-button {\n position: relative;\n .import-excel-input {\n position: absolute;\n left: 0;\n top: 0;\n opacity: 0;\n width: 100%;\n height: 100%;\n z-index: 10;\n }\n }\n}\n</style>\n"],"names":["router","useRouter","listForm","reactive","data","ref","getStatementList","flag","res","getList","copyLink","row","type","href","hrefName","copyString","ElMessage","tableSelections","selectionChangeHandle","selections","importReport","e","file","reader","event","jsonData","item","loading","ElLoading","i","save","exportReport","code","config","description","name","blob","url","fileName","dayjs","a","toDesign","toView","onMounted","dialogFormVisible","form","toAddForm","toEditor","toDelete","ElMessageBox","del","cancelForm","saveForm","onSearch","onReset","watch"],"mappings":"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"}
1
+ {"version":3,"file":"StatementList-0cdc088a.mjs","sources":["../StatementList.vue"],"sourcesContent":["<template>\n <section class=\"statement-list-container\">\n <div class=\"actions\">\n <div class=\"el-button is-text import-excel-button\">\n <input\n class=\"import-excel-input\"\n type=\"file\"\n @change=\"importReport($event)\" />\n 导入\n </div>\n <el-button\n text\n @click=\"exportReport\">\n 导出\n </el-button>\n <el-button\n type=\"primary\"\n @click=\"toAddForm\">\n 新增\n </el-button>\n <el-form inline>\n <el-form-item label=\"报表名称\">\n <el-input\n v-model=\"listForm.key\"\n placeholder=\"键入关键字搜索报表\"></el-input>\n </el-form-item>\n </el-form>\n <el-button\n type=\"primary\"\n @click=\"onSearch()\">\n 搜索\n </el-button>\n <el-button @click=\"onReset()\">重置</el-button>\n </div>\n <el-table\n :data=\"data\"\n @selection-change=\"selectionChangeHandle\">\n <el-table-column\n type=\"selection\"\n width=\"50\"></el-table-column>\n <el-table-column\n label=\"#\"\n type=\"index\"\n width=\"66\"\n left></el-table-column>\n <el-table-column\n label=\"表单编码\"\n min-width=\"100\"\n prop=\"code\"></el-table-column>\n <el-table-column\n label=\"表单名称\"\n min-width=\"100\"\n prop=\"name\"></el-table-column>\n <el-table-column\n label=\"描述\"\n min-width=\"200\"\n prop=\"description\"></el-table-column>\n <el-table-column\n label=\"操作\"\n width=\"500\"\n fixed=\"right\">\n <template #default=\"scope\">\n <el-button\n link\n title=\"本系统前台页面嵌入地址\"\n @click=\"copyLink(scope.row, 'inner')\">\n 内部链接\n </el-button>\n <el-button\n link\n title=\"其他系统嵌入地址\"\n @click=\"copyLink(scope.row, 'outside')\">\n 外部链接\n </el-button>\n <el-button\n type=\"primary\"\n link\n @click=\"toDesign(scope.row)\">\n <i class=\"iconfont icon-antdesign\"></i>\n 设计\n </el-button>\n <el-button\n type=\"primary\"\n link\n @click=\"toView(scope.row)\">\n <i class=\"iconfont icon-view\"></i>\n 查看\n </el-button>\n <el-button\n type=\"primary\"\n link\n @click=\"toEditor(scope.row)\">\n <i class=\"iconfont icon-edit-outline\"></i>\n 编辑\n </el-button>\n <el-button\n type=\"danger\"\n link\n @click=\"toDelete(scope.row)\">\n <i class=\"iconfont icon-delete\"></i>\n 删除\n </el-button>\n </template>\n </el-table-column>\n </el-table>\n <el-pagination\n background\n style=\"padding-top: 30px; justify-content: flex-end\"\n :page-sizes=\"[10, 20, 50, 100]\"\n v-model:page-size=\"listForm.pageSize\"\n :total=\"listForm.total\"\n v-model:current-page=\"listForm.pageNumber\"\n layout=\"sizes,prev,pager,next,total\"></el-pagination>\n <!-- 新增报表对话框 -->\n <el-dialog\n v-model=\"dialogFormVisible\"\n @close=\"cancelForm\"\n :title=\"form.id ? '编辑报表' : '新建报表'\">\n <el-form\n :model=\"form\"\n label-width=\"120\">\n <el-form-item\n label=\"报表代码\"\n required>\n <el-input\n v-model=\"form.code\"\n autocomplete=\"off\" />\n </el-form-item>\n <el-form-item\n label=\"报表名称\"\n required>\n <el-input\n v-model=\"form.name\"\n autocomplete=\"off\" />\n </el-form-item>\n <el-form-item\n label=\"描述\"\n required>\n <el-input\n v-model=\"form.description\"\n type=\"textarea\"\n autocomplete=\"off\" />\n </el-form-item>\n </el-form>\n <template #footer>\n <span class=\"dialog-footer\">\n <el-button @click=\"cancelForm\">取消</el-button>\n <el-button\n type=\"primary\"\n @click=\"saveForm()\">\n 保存\n </el-button>\n </span>\n </template>\n </el-dialog>\n </section>\n</template>\n<script setup lang=\"ts\">\nimport {ref, reactive, watch, onMounted} from 'vue';\nimport {useRouter} from 'vue-router';\nimport {Statement} from './types';\nimport {getList, save, del} from './api/form';\nimport {ElMessageBox, ElMessage, ElButton, ElForm, ElFormItem, ElInput, ElTable, ElTableColumn, ElPagination, ElDialog, ElLoading} from 'element-plus';\nimport {copyString} from './libs/util';\nimport dayjs from 'dayjs';\n\nconst router = useRouter();\n\n// @ts-ignore\nconst listForm = reactive({\n key: '',\n pageSize: 10,\n total: 0,\n pageNumber: 1,\n});\nconst data = ref<Statement[]>([]);\n\n//获取报表列表\nasync function getStatementList(flag = false) {\n if (flag) {\n listForm.pageNumber = 1;\n listForm.total = 0;\n }\n const res = await getList(listForm);\n data.value = res.data.list;\n listForm.total;\n}\n\nfunction copyLink(row, type) {\n let href = '';\n let hrefName = '链接';\n if (type === 'inner') {\n href = `${window.location.pathname}#/statementdetail/${row.id}`;\n hrefName = '内部链接';\n } else {\n href = `${window.location.origin}${window.location.pathname}#/statementdetail/${row.id}`;\n hrefName = '外部链接';\n }\n copyString(href)\n .then(() => {\n ElMessage.success(hrefName + '复制成功');\n })\n .catch(() => {\n ElMessage.error(hrefName + '复制遇到问题');\n });\n}\n\nconst tableSelections = ref([]);\nconst selectionChangeHandle = (selections) => {\n tableSelections.value = selections;\n};\nconst importReport = async (e) => {\n const file = e.target.files[0];\n if (!file) return;\n\n const reader = new FileReader();\n reader.onload = async (event) => {\n e.target.value = '';\n try {\n if (event.target) {\n const jsonData = JSON.parse(event.target.result as string);\n if (Array.isArray(jsonData) && jsonData.every((item) => typeof item === 'object' && 'code' in item && 'config' in item && 'description' in item && 'name' in item)) {\n const loading = ElLoading.service({\n fullscreen: true,\n text: `正在导入报表,共 ${jsonData.length} 个,请稍候...`,\n });\n for (let i = 0; i < jsonData.length; i++) {\n loading.setText(`正在保存第 ${i + 1} 个,共 ${jsonData.length} 个,请稍候...`);\n const item = jsonData[i];\n await save(item);\n }\n loading.close();\n getStatementList(true);\n } else {\n ElMessage.error('格式错误,请确保导入的文件未被修改过!');\n }\n }\n } catch (error) {\n ElMessage.error('文件解析失败,请检查文件是否为有效的 JSON 格式!');\n }\n };\n reader.readAsText(file);\n};\n\nconst exportReport = () => {\n if (tableSelections.value.length > 0) {\n const jsonData = JSON.stringify(\n tableSelections.value.map(({code, config, description, name}) => {\n return {\n code,\n config,\n description,\n name,\n };\n }),\n null,\n 2\n );\n const blob = new Blob([jsonData], {type: 'application/json'});\n\n const url = URL.createObjectURL(blob);\n\n const formattedDate = dayjs().format('YYYYMMDDHHmm');\n const fileName = `报表导出-${formattedDate}.json`;\n\n const a = document.createElement('a');\n a.href = url;\n a.download = fileName;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n\n URL.revokeObjectURL(url);\n } else {\n ElMessage.warning('请选择要操作的报表!');\n }\n};\n\nfunction toDesign(row) {\n router.push(`/admin/statement/design/${row.id}`);\n}\n\nfunction toView(row) {\n router.push(`/admin/statement/detail/${row.id}`);\n}\n\nonMounted(() => {\n getStatementList(true);\n});\n\n//新增报表\nconst dialogFormVisible = ref(false);\nconst form = reactive({\n id: undefined,\n name: '',\n code: '',\n description: '',\n});\n\nfunction toAddForm() {\n dialogFormVisible.value = true;\n}\n\nfunction toEditor(row) {\n dialogFormVisible.value = true;\n form.id = row.id;\n form.name = row.name;\n form.code = row.code;\n form.description = row.description;\n}\n\nfunction toDelete(row) {\n ElMessageBox.confirm('当前操作会删除选定的报表,确认继续吗?', '警告', {\n confirmButtonText: '删除',\n cancelButtonText: '取消',\n type: 'warning',\n }).then(async () => {\n let res = await del(row.id);\n if (res.data) {\n getStatementList(true);\n }\n });\n}\n\nfunction cancelForm() {\n dialogFormVisible.value = false;\n form.id = undefined;\n form.name = '';\n form.code = '';\n form.description = '';\n}\nasync function saveForm() {\n await save(form);\n getStatementList(true);\n cancelForm();\n}\n\n//搜索报表\nfunction onSearch() {\n getStatementList(false);\n}\n\n//重置\nfunction onReset() {\n listForm.key = '';\n getStatementList(true);\n}\n\n//分页功能\nwatch(\n () => listForm.pageNumber,\n () => {\n getStatementList();\n }\n);\nwatch(\n () => listForm.pageSize,\n () => {\n getStatementList();\n }\n);\n</script>\n\n<style lang=\"scss\">\n.statement-list-container {\n width: 100%;\n height: 100%;\n padding: 10px 0;\n box-sizing: border-box;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n .actions {\n display: flex;\n align-items: center;\n\n .el-form {\n flex: 1;\n margin: 0 10px;\n }\n\n .el-form-item {\n margin-bottom: 0;\n margin-right: 10px;\n }\n }\n\n .el-table {\n flex: 1;\n }\n\n .el-dialog {\n .el-button--text {\n margin-right: 15px;\n }\n\n .el-form-item {\n width: 100%;\n }\n\n .el-select {\n width: 100%;\n }\n\n .el-input {\n width: 100%;\n }\n\n .dialog-footer button:first-child {\n margin-right: 10px;\n }\n }\n .import-excel-button {\n position: relative;\n .import-excel-input {\n position: absolute;\n left: 0;\n top: 0;\n opacity: 0;\n width: 100%;\n height: 100%;\n z-index: 10;\n }\n }\n}\n</style>\n"],"names":["router","useRouter","listForm","reactive","data","ref","getStatementList","flag","res","getList","copyLink","row","type","href","hrefName","copyString","ElMessage","tableSelections","selectionChangeHandle","selections","importReport","e","file","reader","event","jsonData","item","loading","ElLoading","i","save","exportReport","code","config","description","name","blob","url","fileName","dayjs","a","toDesign","toView","onMounted","dialogFormVisible","form","toAddForm","toEditor","toDelete","ElMessageBox","del","cancelForm","saveForm","onSearch","onReset","watch"],"mappings":"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"}
@@ -994,7 +994,7 @@ var dayjs_min = { exports: {} };
994
994
  case x:
995
995
  return E ? v(1, F) : v(0, F + 1);
996
996
  case C:
997
- var z = this.$locale().weekStart || 0, D = (U < z ? U + 7 : U) - z;
997
+ var V = this.$locale().weekStart || 0, D = (U < V ? U + 7 : U) - V;
998
998
  return v(E ? L - D : L + (6 - D), F);
999
999
  case y:
1000
1000
  case b:
@@ -1045,7 +1045,7 @@ var dayjs_min = { exports: {} };
1045
1045
  var p = this, d = this.$locale();
1046
1046
  if (!this.isValid())
1047
1047
  return d.invalidDate || N;
1048
- var E = a || "YYYY-MM-DDTHH:mm:ssZ", o = j.z(this), v = this.$H, A = this.$m, U = this.$M, F = d.weekdays, L = d.months, M = d.meridiem, z = function(k, $, _, I) {
1048
+ var E = a || "YYYY-MM-DDTHH:mm:ssZ", o = j.z(this), v = this.$H, A = this.$m, U = this.$M, F = d.weekdays, L = d.months, M = d.meridiem, V = function(k, $, _, I) {
1049
1049
  return k && (k[$] || k(p, E)) || _[$].slice(0, I);
1050
1050
  }, D = function(k) {
1051
1051
  return j.s(v % 12 || 12, k, "0");
@@ -1065,9 +1065,9 @@ var dayjs_min = { exports: {} };
1065
1065
  case "MM":
1066
1066
  return j.s(U + 1, 2, "0");
1067
1067
  case "MMM":
1068
- return z(d.monthsShort, U, L, 3);
1068
+ return V(d.monthsShort, U, L, 3);
1069
1069
  case "MMMM":
1070
- return z(L, U);
1070
+ return V(L, U);
1071
1071
  case "D":
1072
1072
  return p.$D;
1073
1073
  case "DD":
@@ -1075,9 +1075,9 @@ var dayjs_min = { exports: {} };
1075
1075
  case "d":
1076
1076
  return String(p.$W);
1077
1077
  case "dd":
1078
- return z(d.weekdaysMin, p.$W, F, 2);
1078
+ return V(d.weekdaysMin, p.$W, F, 2);
1079
1079
  case "ddd":
1080
- return z(d.weekdaysShort, p.$W, F, 3);
1080
+ return V(d.weekdaysShort, p.$W, F, 3);
1081
1081
  case "dddd":
1082
1082
  return F[p.$W];
1083
1083
  case "H":
@@ -2559,7 +2559,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
2559
2559
  let _ = D - 1;
2560
2560
  Array.from(o[_]).forEach((B) => {
2561
2561
  const H = `${_}-${B}`;
2562
- let V = o[H].map((G) => {
2562
+ let z = o[H].map((G) => {
2563
2563
  if ($) {
2564
2564
  let K = G[$];
2565
2565
  if (K) {
@@ -2569,7 +2569,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
2569
2569
  }
2570
2570
  }
2571
2571
  }).filter((G) => !!G);
2572
- o[H] = V;
2572
+ o[H] = z;
2573
2573
  });
2574
2574
  }
2575
2575
  });
@@ -2589,13 +2589,13 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
2589
2589
  let k = M[R];
2590
2590
  if (E.includes(R))
2591
2591
  Array.from(o[D.col]).forEach((_, I) => {
2592
- let B = U && R === A ? 1 : P(o, _, A, U, E), H = o[_], T = H[o[_].length - 1], V = {
2592
+ let B = U && R === A ? 1 : P(o, _, A, U, E), H = o[_], T = H[o[_].length - 1], z = {
2593
2593
  ...D,
2594
2594
  text: T,
2595
2595
  rowSpan: B,
2596
2596
  rowData: H
2597
2597
  };
2598
- k.push(V);
2598
+ k.push(z);
2599
2599
  let G = {
2600
2600
  ...D,
2601
2601
  text: T,
@@ -2616,33 +2616,33 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
2616
2616
  val: ie
2617
2617
  };
2618
2618
  });
2619
- const V = H.filter((K) => T.every((te) => K[te.key] === te.val));
2619
+ const z = H.filter((K) => T.every((te) => K[te.key] === te.val));
2620
2620
  let G = {
2621
2621
  ...D
2622
2622
  };
2623
- if (delete G.combineKeys, delete G.combineValues, delete G.isRowColCombine, V && V.length) {
2624
- const K = V[0];
2623
+ if (delete G.combineKeys, delete G.combineValues, delete G.isRowColCombine, z && z.length) {
2624
+ const K = z[0];
2625
2625
  G.text = K[_], G.rowData = K;
2626
2626
  } else
2627
2627
  G.text = "", G.rowData = {};
2628
2628
  k.push(G);
2629
2629
  }) : p.forEach((I) => {
2630
- let H = D.combineKeys.map((V, G) => {
2630
+ let H = D.combineKeys.map((z, G) => {
2631
2631
  const K = D.combineValues[G];
2632
2632
  return {
2633
- key: V,
2633
+ key: z,
2634
2634
  val: K
2635
2635
  };
2636
- }).every((V) => I[V.key] === V.val), T = {
2636
+ }).every((z) => I[z.key] === z.val), T = {
2637
2637
  ...D
2638
2638
  };
2639
2639
  delete T.combineKeys, delete T.combineValues, delete T.isRowColCombine, H ? (T.text = I[_], T.rowData = I) : T.text = "", k.push(T);
2640
2640
  }) : $.length ? $.forEach((I, B) => {
2641
2641
  o[`${A}-${I}`].forEach((T) => {
2642
- let V = {
2642
+ let z = {
2643
2643
  ...D
2644
2644
  };
2645
- delete V.combineKeys, delete V.combineValues, delete V.isRowColCombine, T[_] ? (V.text = T[_], V.rowData = T) : V.text = "", k.push(V);
2645
+ delete z.combineKeys, delete z.combineValues, delete z.isRowColCombine, T[_] ? (z.text = T[_], z.rowData = T) : z.text = "", k.push(z);
2646
2646
  });
2647
2647
  }) : p.forEach((I) => {
2648
2648
  let B = {
@@ -2656,7 +2656,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
2656
2656
  rowData: p[0]
2657
2657
  };
2658
2658
  if (D.rowSpan === 0 && D.mergeTarget && D.mergeTarget.length === 2) {
2659
- let [B, H] = D.mergeTarget, T = u.reduce((V, G) => V.concat(G), []).filter((V) => V.row === B && V.col === H)[0];
2659
+ let [B, H] = D.mergeTarget, T = u.reduce((z, G) => z.concat(G), []).filter((z) => z.row === B && z.col === H)[0];
2660
2660
  T && (T.rowSpan += v - 1);
2661
2661
  } else
2662
2662
  $.rowSpan += v - 1;
@@ -2671,16 +2671,16 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
2671
2671
  k.push($, ...I);
2672
2672
  }
2673
2673
  });
2674
- const z = N(M);
2675
- u.splice(a.index, 1, ...z);
2674
+ const V = N(M);
2675
+ u.splice(a.index, 1, ...V);
2676
2676
  });
2677
2677
  }
2678
2678
  function W(O, w, u, l) {
2679
2679
  w.forEach((a) => {
2680
2680
  let p = l[a.data], d = [], E = [];
2681
2681
  u.forEach((L, M) => {
2682
- let z = L[a.index];
2683
- z.type === CellType.FIELD && z.data && z.isGroup && E.push(M), d.push(z);
2682
+ let V = L[a.index];
2683
+ V.type === CellType.FIELD && V.data && V.isGroup && E.push(M), d.push(V);
2684
2684
  });
2685
2685
  let o = {};
2686
2686
  E.forEach((L, M) => {
@@ -2704,9 +2704,9 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
2704
2704
  if (D) {
2705
2705
  let T = H[D];
2706
2706
  if (T) {
2707
- let V = !1;
2707
+ let z = !1;
2708
2708
  const G = `${L}-${$}-${T}`, K = `${$}-${T}`;
2709
- return o[G] ? o[G].push(H) : o[G] = [H], o[K + "-data"] ? o[K + "-data"].push(H) : o[K + "-data"] = [H], o[L].has(K) || (V = !0), o[L].add(K), o[K] = o[$].concat([T]), V ? T : null;
2709
+ return o[G] ? o[G].push(H) : o[G] = [H], o[K + "-data"] ? o[K + "-data"].push(H) : o[K + "-data"] = [H], o[L].has(K) || (z = !0), o[L].add(K), o[K] = o[$].concat([T]), z ? T : null;
2710
2710
  }
2711
2711
  }
2712
2712
  }).filter((H) => !!H);
@@ -2717,8 +2717,8 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
2717
2717
  let v = 1, A = Math.max(...E), U = Math.min(...E);
2718
2718
  const F = d.some((L) => L.isRowColCombine);
2719
2719
  E.length > 0 ? F ? v = o[A].size : v = Array.from(o[A]).reduce((L, M) => {
2720
- let z = o[`${A}-${M}`];
2721
- return L + z.length;
2720
+ let V = o[`${A}-${M}`];
2721
+ return L + V.length;
2722
2722
  }, 0) : v = p.length;
2723
2723
  for (let L = 0; L < d.length; L++) {
2724
2724
  const M = d[L];
@@ -2729,8 +2729,8 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
2729
2729
  }, R = Array.from({ length: v }, () => cloneDeep(D));
2730
2730
  O.splice(a.index, 1, ...R);
2731
2731
  }
2732
- let z = u[M.row];
2733
- if (z && Array.isArray(z)) {
2732
+ let V = u[M.row];
2733
+ if (V && Array.isArray(V)) {
2734
2734
  let D = [];
2735
2735
  if (E.includes(L))
2736
2736
  Array.from(o[M.row]).forEach((k, $) => {
@@ -2751,7 +2751,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
2751
2751
  for (let T = 0; T < _ - 1; T++)
2752
2752
  D.push(H);
2753
2753
  }
2754
- }), z.splice(M.col, 1, ...D);
2754
+ }), V.splice(M.col, 1, ...D);
2755
2755
  else {
2756
2756
  if (L > U && L < A) {
2757
2757
  let R = J(E, L);
@@ -2765,7 +2765,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
2765
2765
  colSpan: $.colSpan,
2766
2766
  rowSpan: $.rowSpan
2767
2767
  };
2768
- }), z.splice(a.index, 1, ...k);
2768
+ }), V.splice(a.index, 1, ...k);
2769
2769
  continue;
2770
2770
  }
2771
2771
  }
@@ -2780,7 +2780,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
2780
2780
  combineValues: o[I]
2781
2781
  };
2782
2782
  _.push(H);
2783
- }), z.splice(M.col, 1, ..._);
2783
+ }), V.splice(M.col, 1, ..._);
2784
2784
  } else if (R.length)
2785
2785
  R.forEach(($, _) => {
2786
2786
  let I = o[`${A}-${$}`], B = [];
@@ -2789,7 +2789,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
2789
2789
  ...M
2790
2790
  };
2791
2791
  delete T.combineKeys, delete T.combineValues, delete T.isRowColCombine, H[k] ? (T.text = H[k], T.colData = H) : T.text = "", B.push(T);
2792
- }), z.splice(M.col, 1, ...B);
2792
+ }), V.splice(M.col, 1, ...B);
2793
2793
  });
2794
2794
  else {
2795
2795
  let $ = [];
@@ -2798,7 +2798,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
2798
2798
  ...M
2799
2799
  };
2800
2800
  delete I.combineKeys, delete I.combineValues, delete I.isRowColCombine, _[k] ? (I.text = _[k], I.colData = _) : I.text = "", $.push(I);
2801
- }), z.splice(M.col, 1, ...$);
2801
+ }), V.splice(M.col, 1, ...$);
2802
2802
  }
2803
2803
  } else {
2804
2804
  const R = {
@@ -2816,7 +2816,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
2816
2816
  rowSpan: 0
2817
2817
  };
2818
2818
  let $ = Array.from({ length: v - 1 }, () => cloneDeep(k));
2819
- z.splice(M.col, 1, R, ...$);
2819
+ V.splice(M.col, 1, R, ...$);
2820
2820
  }
2821
2821
  }
2822
2822
  }
@@ -2865,7 +2865,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
2865
2865
  o.isFixed && (v.style.top = `${p - 1}px`, v.classList.add("fixed-row")), p += o.size, v.style.height = `${o.size}px`;
2866
2866
  for (let A = 0; A < w.length; A++) {
2867
2867
  const U = u[E][A];
2868
- if (o && U) {
2868
+ if (o && U && o.size > 0) {
2869
2869
  const F = q(o, U);
2870
2870
  F.setAttribute("data-cell-data", `${E}-${A}`), U.rowSpan === 0 || U.colSpan === 0 || v.appendChild(F);
2871
2871
  }
@@ -3216,7 +3216,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
3216
3216
  title: "报表列表",
3217
3217
  icon: "iconfont icon-s-grid"
3218
3218
  },
3219
- component: () => import("./StatementList-b4f08154.mjs")
3219
+ component: () => import("./StatementList-0cdc088a.mjs")
3220
3220
  }), r.addRoute("Index", {
3221
3221
  path: "statement/design/:id",
3222
3222
  name: "报表设计",
@@ -3225,7 +3225,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
3225
3225
  title: "报表设计",
3226
3226
  icon: "iconfont icon-s-grid"
3227
3227
  },
3228
- component: () => import("./StatementDesign-d556a432.mjs")
3228
+ component: () => import("./StatementDesign-6c5fe32e.mjs")
3229
3229
  })), r.addRoute("Index", {
3230
3230
  path: "statement/detail/:id",
3231
3231
  name: "后台报表查看",
@@ -3234,7 +3234,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
3234
3234
  title: "后台报表查看",
3235
3235
  icon: "iconfont icon-s-grid"
3236
3236
  },
3237
- component: () => import("./StatementDetail-baf9e626.mjs")
3237
+ component: () => import("./StatementDetail-f32c92b1.mjs")
3238
3238
  }), r.addRoute({
3239
3239
  path: "/statementdetail/:id",
3240
3240
  name: "报表查看",
@@ -3243,7 +3243,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
3243
3243
  title: "报表查看",
3244
3244
  icon: "iconfont icon-s-grid"
3245
3245
  },
3246
- component: () => import("./StatementDetail-baf9e626.mjs")
3246
+ component: () => import("./StatementDetail-f32c92b1.mjs")
3247
3247
  });
3248
3248
  }
3249
3249
  };
@@ -3300,4 +3300,4 @@ export {
3300
3300
  save as s,
3301
3301
  validateAndCompleteOptions as v
3302
3302
  };
3303
- //# sourceMappingURL=index-f102cf35.mjs.map
3303
+ //# sourceMappingURL=index-d33c144b.mjs.map