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.
- package/{StatementDesign-d556a432.mjs → StatementDesign-6c5fe32e.mjs} +211 -211
- package/{StatementDesign-d556a432.mjs.map → StatementDesign-6c5fe32e.mjs.map} +1 -1
- package/{StatementDetail-baf9e626.mjs → StatementDetail-f32c92b1.mjs} +2 -2
- package/{StatementDetail-baf9e626.mjs.map → StatementDetail-f32c92b1.mjs.map} +1 -1
- package/{StatementList-b4f08154.mjs → StatementList-0cdc088a.mjs} +2 -2
- package/{StatementList-b4f08154.mjs.map → StatementList-0cdc088a.mjs.map} +1 -1
- package/{index-f102cf35.mjs → index-d33c144b.mjs} +41 -41
- package/index-d33c144b.mjs.map +1 -0
- package/index.es.js +1 -1
- package/package.json +1 -1
- package/index-f102cf35.mjs.map +0 -1
|
@@ -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-
|
|
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-
|
|
28
|
+
//# sourceMappingURL=StatementDetail-f32c92b1.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatementDetail-
|
|
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-
|
|
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-
|
|
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":";;;;;;;;;;AAsKA,UAAMA,IAASC,KAGTC,IAAWC,EAAS;AAAA,MACxB,KAAK;AAAA,MACL,UAAU;AAAA,MACV,OAAO;AAAA,MACP,YAAY;AAAA,IAAA,CACb,GACKC,IAAOC,EAAiB,CAAA,CAAE;AAGjB,mBAAAC,EAAiBC,IAAO,IAAO;AAC5C,MAAIA,MACFL,EAAS,aAAa,GACtBA,EAAS,QAAQ;AAEb,YAAAM,IAAM,MAAMC,EAAQP,CAAQ;AAC7B,MAAAE,EAAA,QAAQI,EAAI,KAAK,MACbN,EAAA;AAAA,IACX;AAES,aAAAQ,EAASC,GAAKC,GAAM;AAC3B,UAAIC,IAAO,IACPC,IAAW;AACf,MAAIF,MAAS,WACXC,IAAO,GAAG,OAAO,SAAS,QAAQ,qBAAqBF,EAAI,EAAE,IAClDG,IAAA,WAEJD,IAAA,GAAG,OAAO,SAAS,MAAM,GAAG,OAAO,SAAS,QAAQ,qBAAqBF,EAAI,EAAE,IAC3EG,IAAA,SAEFC,EAAAF,CAAI,EACZ,KAAK,MAAM;AACA,QAAAG,EAAA,QAAQF,IAAW,MAAM;AAAA,MAAA,CACpC,EACA,MAAM,MAAM;AACD,QAAAE,EAAA,MAAMF,IAAW,QAAQ;AAAA,MAAA,CACpC;AAAA,IACL;AAEM,UAAAG,IAAkBZ,EAAI,CAAA,CAAE,GACxBa,IAAwB,CAACC,MAAe;AAC5C,MAAAF,EAAgB,QAAQE;AAAA,IAAA,GAEpBC,IAAe,OAAOC,MAAM;AAChC,YAAMC,IAAOD,EAAE,OAAO,MAAM,CAAC;AAC7B,UAAI,CAACC;AAAM;AAEL,YAAAC,IAAS,IAAI;AACZ,MAAAA,EAAA,SAAS,OAAOC,MAAU;AAC/B,QAAAH,EAAE,OAAO,QAAQ;AACb,YAAA;AACF,cAAIG,EAAM,QAAQ;AAChB,kBAAMC,IAAW,KAAK,MAAMD,EAAM,OAAO,MAAgB;AACzD,gBAAI,MAAM,QAAQC,CAAQ,KAAKA,EAAS,MAAM,CAACC,MAAS,OAAOA,KAAS,YAAY,UAAUA,KAAQ,YAAYA,KAAQ,iBAAiBA,KAAQ,UAAUA,CAAI,GAAG;AAC5J,oBAAAC,IAAUC,GAAU,QAAQ;AAAA,gBAChC,YAAY;AAAA,gBACZ,MAAM,YAAYH,EAAS,MAAM;AAAA,cAAA,CAClC;AACD,uBAASI,IAAI,GAAGA,IAAIJ,EAAS,QAAQI,KAAK;AACxC,gBAAAF,EAAQ,QAAQ,SAASE,IAAI,CAAC,QAAQJ,EAAS,MAAM,WAAW;AAC1D,sBAAAC,IAAOD,EAASI,CAAC;AACvB,sBAAMC,EAAKJ,CAAI;AAAA,cACjB;AACA,cAAAC,EAAQ,MAAM,GACdrB,EAAiB,EAAI;AAAA,YAAA;AAErB,cAAAU,EAAU,MAAM,qBAAqB;AAAA,UAEzC;AAAA,gBACc;AACd,UAAAA,EAAU,MAAM,6BAA6B;AAAA,QAC/C;AAAA,MAAA,GAEFO,EAAO,WAAWD,CAAI;AAAA,IAAA,GAGlBS,IAAe,MAAM;AACrB,UAAAd,EAAgB,MAAM,SAAS,GAAG;AACpC,cAAMQ,IAAW,KAAK;AAAA,UACpBR,EAAgB,MAAM,IAAI,CAAC,EAAC,MAAAe,GAAM,QAAAC,GAAQ,aAAAC,GAAa,MAAAC,SAC9C;AAAA,YACL,MAAAH;AAAA,YACA,QAAAC;AAAA,YACA,aAAAC;AAAA,YACA,MAAAC;AAAA,UAAA,EAEH;AAAA,UACD;AAAA,UACA;AAAA,QAAA,GAEIC,IAAO,IAAI,KAAK,CAACX,CAAQ,GAAG,EAAC,MAAM,mBAAA,CAAmB,GAEtDY,IAAM,IAAI,gBAAgBD,CAAI,GAG9BE,IAAW,QADKC,EAAA,EAAQ,OAAO,cAAc,CACb,SAEhCC,IAAI,SAAS,cAAc,GAAG;AACpC,QAAAA,EAAE,OAAOH,GACTG,EAAE,WAAWF,GACJ,SAAA,KAAK,YAAYE,CAAC,GAC3BA,EAAE,MAAM,GACC,SAAA,KAAK,YAAYA,CAAC,GAE3B,IAAI,gBAAgBH,CAAG;AAAA,MAAA;AAEvB,QAAArB,EAAU,QAAQ,YAAY;AAAA,IAChC;AAGF,aAASyB,EAAS9B,GAAK;AACrB,MAAAX,EAAO,KAAK,2BAA2BW,EAAI,EAAE,EAAE;AAAA,IACjD;AAEA,aAAS+B,EAAO/B,GAAK;AACnB,MAAAX,EAAO,KAAK,2BAA2BW,EAAI,EAAE,EAAE;AAAA,IACjD;AAEA,IAAAgC,EAAU,MAAM;AACd,MAAArC,EAAiB,EAAI;AAAA,IAAA,CACtB;AAGK,UAAAsC,IAAoBvC,EAAI,EAAK,GAC7BwC,IAAO1C,EAAS;AAAA,MACpB,IAAI;AAAA,MACJ,MAAM;AAAA,MACN,MAAM;AAAA,MACN,aAAa;AAAA,IAAA,CACd;AAED,aAAS2C,IAAY;AACnB,MAAAF,EAAkB,QAAQ;AAAA,IAC5B;AAEA,aAASG,EAASpC,GAAK;AACrB,MAAAiC,EAAkB,QAAQ,IAC1BC,EAAK,KAAKlC,EAAI,IACdkC,EAAK,OAAOlC,EAAI,MAChBkC,EAAK,OAAOlC,EAAI,MAChBkC,EAAK,cAAclC,EAAI;AAAA,IACzB;AAEA,aAASqC,EAASrC,GAAK;AACR,MAAAsC,GAAA,QAAQ,uBAAuB,MAAM;AAAA,QAChD,mBAAmB;AAAA,QACnB,kBAAkB;AAAA,QAClB,MAAM;AAAA,MAAA,CACP,EAAE,KAAK,YAAY;AAElB,SADU,MAAMC,EAAIvC,EAAI,EAAE,GAClB,QACNL,EAAiB,EAAI;AAAA,MACvB,CACD;AAAA,IACH;AAEA,aAAS6C,IAAa;AACpB,MAAAP,EAAkB,QAAQ,IAC1BC,EAAK,KAAK,QACVA,EAAK,OAAO,IACZA,EAAK,OAAO,IACZA,EAAK,cAAc;AAAA,IACrB;AACA,mBAAeO,IAAW;AACxB,YAAMtB,EAAKe,CAAI,GACfvC,EAAiB,EAAI,GACV6C;IACb;AAGA,aAASE,IAAW;AAClB,MAAA/C,EAAiB,EAAK;AAAA,IACxB;AAGA,aAASgD,IAAU;AACjB,MAAApD,EAAS,MAAM,IACfI,EAAiB,EAAI;AAAA,IACvB;AAGA,WAAAiD;AAAA,MACE,MAAMrD,EAAS;AAAA,MACf,MAAM;AACa,QAAAI;MACnB;AAAA,IAAA,GAEFiD;AAAA,MACE,MAAMrD,EAAS;AAAA,MACf,MAAM;AACa,QAAAI;MACnB;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -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
|
|
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,
|
|
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
|
|
1068
|
+
return V(d.monthsShort, U, L, 3);
|
|
1069
1069
|
case "MMMM":
|
|
1070
|
-
return
|
|
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
|
|
1078
|
+
return V(d.weekdaysMin, p.$W, F, 2);
|
|
1079
1079
|
case "ddd":
|
|
1080
|
-
return
|
|
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
|
|
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] =
|
|
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],
|
|
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(
|
|
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
|
|
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,
|
|
2624
|
-
const K =
|
|
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((
|
|
2630
|
+
let H = D.combineKeys.map((z, G) => {
|
|
2631
2631
|
const K = D.combineValues[G];
|
|
2632
2632
|
return {
|
|
2633
|
-
key:
|
|
2633
|
+
key: z,
|
|
2634
2634
|
val: K
|
|
2635
2635
|
};
|
|
2636
|
-
}).every((
|
|
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
|
|
2642
|
+
let z = {
|
|
2643
2643
|
...D
|
|
2644
2644
|
};
|
|
2645
|
-
delete
|
|
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((
|
|
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
|
|
2675
|
-
u.splice(a.index, 1, ...
|
|
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
|
|
2683
|
-
|
|
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
|
|
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) || (
|
|
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
|
|
2721
|
-
return L +
|
|
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
|
|
2733
|
-
if (
|
|
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
|
-
}),
|
|
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
|
-
}),
|
|
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
|
-
}),
|
|
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
|
-
}),
|
|
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
|
-
}),
|
|
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
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
3303
|
+
//# sourceMappingURL=index-d33c144b.mjs.map
|