yh-report 2.0.5 → 2.0.7

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-eaaf292b.mjs";
3
+ import { k as u } from "./index-0e50ad4c.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-78ad54fa.mjs.map
28
+ //# sourceMappingURL=StatementDetail-8c150a0e.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatementDetail-78ad54fa.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-8c150a0e.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,35 +1,35 @@
1
- import { defineComponent as J, reactive as E, ref as h, 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";
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-eaaf292b.mjs";
4
- import { ElButton as c, ElForm as z, ElFormItem as k, ElInput as _, ElTable as ee, ElTableColumn as y, ElPagination as te, ElDialog as ne, ElMessage as b, ElLoading as oe, ElMessageBox as le } from "element-plus";
3
+ import { g as Q, c as W, s as U, d as X, a as Z } from "./index-0e50ad4c.mjs";
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";
7
7
  import "echarts";
8
- const ae = { class: "statement-list-container" }, ie = { class: "actions" }, re = { class: "el-button is-text import-excel-button" }, de = /* @__PURE__ */ f("i", { class: "iconfont icon-antdesign" }, null, -1), se = /* @__PURE__ */ f("i", { class: "iconfont icon-view" }, null, -1), ue = /* @__PURE__ */ f("i", { class: "iconfont icon-edit-outline" }, null, -1), ce = /* @__PURE__ */ f("i", { class: "iconfont icon-delete" }, null, -1), me = { class: "dialog-footer" }, we = /* @__PURE__ */ J({
8
+ const ae = { class: "statement-list-container" }, ie = { class: "actions" }, re = { class: "el-button is-text import-excel-button" }, de = /* @__PURE__ */ f("i", { class: "iconfont icon-antdesign" }, null, -1), se = /* @__PURE__ */ f("i", { class: "iconfont icon-view" }, null, -1), ue = /* @__PURE__ */ f("i", { class: "iconfont icon-edit-outline" }, null, -1), ce = /* @__PURE__ */ f("i", { class: "iconfont icon-delete" }, null, -1), pe = { class: "dialog-footer" }, we = /* @__PURE__ */ J({
9
9
  __name: "StatementList",
10
- setup(pe) {
11
- const V = K(), r = E({
12
- name: "",
10
+ setup(me) {
11
+ const $ = K(), r = S({
12
+ key: "",
13
13
  pageSize: 10,
14
14
  total: 0,
15
15
  pageNumber: 1
16
- }), $ = h([]);
17
- async function p(l = !1) {
16
+ }), h = V([]);
17
+ async function m(l = !1) {
18
18
  l && (r.pageNumber = 1, r.total = 0);
19
19
  const t = await Q(r);
20
- $.value = t.data.list, r.total = r.pageSize = t.data.list.length;
20
+ h.value = t.data.list, r.total;
21
21
  }
22
- function S(l, t) {
22
+ function E(l, t) {
23
23
  let e = "", d = "链接";
24
24
  t === "inner" ? (e = `${window.location.pathname}#/statementdetail/${l.id}`, d = "内部链接") : (e = `${window.location.origin}${window.location.pathname}#/statementdetail/${l.id}`, d = "外部链接"), W(e).then(() => {
25
- b.success(d + "复制成功");
25
+ v.success(d + "复制成功");
26
26
  }).catch(() => {
27
- b.error(d + "复制遇到问题");
27
+ v.error(d + "复制遇到问题");
28
28
  });
29
29
  }
30
- const w = h([]), L = (l) => {
30
+ const w = V([]), j = (l) => {
31
31
  w.value = l;
32
- }, j = async (l) => {
32
+ }, z = async (l) => {
33
33
  const t = l.target.files[0];
34
34
  if (!t)
35
35
  return;
@@ -38,23 +38,23 @@ const ae = { class: "statement-list-container" }, ie = { class: "actions" }, re
38
38
  l.target.value = "";
39
39
  try {
40
40
  if (d.target) {
41
- const m = JSON.parse(d.target.result);
42
- if (Array.isArray(m) && m.every((s) => typeof s == "object" && "code" in s && "config" in s && "description" in s && "name" in s)) {
41
+ const p = JSON.parse(d.target.result);
42
+ if (Array.isArray(p) && p.every((s) => typeof s == "object" && "code" in s && "config" in s && "description" in s && "name" in s)) {
43
43
  const s = oe.service({
44
44
  fullscreen: !0,
45
- text: `正在导入报表,共 ${m.length} 个,请稍候...`
45
+ text: `正在导入报表,共 ${p.length} 个,请稍候...`
46
46
  });
47
- for (let g = 0; g < m.length; g++) {
48
- s.setText(`正在保存第 ${g + 1} 个,共 ${m.length} 个,请稍候...`);
49
- const x = m[g];
47
+ for (let g = 0; g < p.length; g++) {
48
+ s.setText(`正在保存第 ${g + 1} 个,共 ${p.length} 个,请稍候...`);
49
+ const x = p[g];
50
50
  await U(x);
51
51
  }
52
- s.close(), p(!0);
52
+ s.close(), m(!0);
53
53
  } else
54
- b.error("格式错误,请确保导入的文件未被修改过!");
54
+ v.error("格式错误,请确保导入的文件未被修改过!");
55
55
  }
56
56
  } catch {
57
- b.error("文件解析失败,请检查文件是否为有效的 JSON 格式!");
57
+ v.error("文件解析失败,请检查文件是否为有效的 JSON 格式!");
58
58
  }
59
59
  }, e.readAsText(t);
60
60
  }, D = () => {
@@ -68,31 +68,31 @@ const ae = { class: "statement-list-container" }, ie = { class: "actions" }, re
68
68
  })),
69
69
  null,
70
70
  2
71
- ), t = new Blob([l], { type: "application/json" }), e = URL.createObjectURL(t), m = `报表导出-${X().format("YYYYMMDDHHmm")}.json`, s = document.createElement("a");
72
- s.href = e, s.download = m, document.body.appendChild(s), s.click(), document.body.removeChild(s), URL.revokeObjectURL(e);
71
+ ), t = new Blob([l], { type: "application/json" }), e = URL.createObjectURL(t), p = `报表导出-${X().format("YYYYMMDDHHmm")}.json`, s = document.createElement("a");
72
+ s.href = e, s.download = p, document.body.appendChild(s), s.click(), document.body.removeChild(s), URL.revokeObjectURL(e);
73
73
  } else
74
- b.warning("请选择要操作的报表!");
74
+ v.warning("请选择要操作的报表!");
75
75
  };
76
76
  function R(l) {
77
- V.push(`/admin/statement/design/${l.id}`);
77
+ $.push(`/admin/statement/design/${l.id}`);
78
78
  }
79
79
  function F(l) {
80
- V.push(`/admin/statement/detail/${l.id}`);
80
+ $.push(`/admin/statement/detail/${l.id}`);
81
81
  }
82
82
  I(() => {
83
- p(!0);
83
+ m(!0);
84
84
  });
85
- const v = h(!1), i = E({
85
+ const k = V(!1), i = S({
86
86
  id: void 0,
87
87
  name: "",
88
88
  code: "",
89
89
  description: ""
90
90
  });
91
91
  function B() {
92
- v.value = !0;
92
+ k.value = !0;
93
93
  }
94
94
  function T(l) {
95
- v.value = !0, i.id = l.id, i.name = l.name, i.code = l.code, i.description = l.description;
95
+ k.value = !0, i.id = l.id, i.name = l.name, i.code = l.code, i.description = l.description;
96
96
  }
97
97
  function M(l) {
98
98
  le.confirm("当前操作会删除选定的报表,确认继续吗?", "警告", {
@@ -100,30 +100,30 @@ const ae = { class: "statement-list-container" }, ie = { class: "actions" }, re
100
100
  cancelButtonText: "取消",
101
101
  type: "warning"
102
102
  }).then(async () => {
103
- (await Z(l.id)).data && p(!0);
103
+ (await Z(l.id)).data && m(!0);
104
104
  });
105
105
  }
106
106
  function C() {
107
- v.value = !1, i.id = void 0, i.name = "", i.code = "", i.description = "";
107
+ k.value = !1, i.id = void 0, i.name = "", i.code = "", i.description = "";
108
108
  }
109
109
  async function O() {
110
- await U(i), p(!0), C();
110
+ await U(i), m(!0), C();
111
111
  }
112
112
  function A() {
113
- p(!1);
113
+ m(!1);
114
114
  }
115
115
  function Y() {
116
- r.name = "", p(!0);
116
+ r.key = "", m(!0);
117
117
  }
118
118
  return N(
119
119
  () => r.pageNumber,
120
120
  () => {
121
- p();
121
+ m();
122
122
  }
123
123
  ), N(
124
124
  () => r.pageSize,
125
125
  () => {
126
- p();
126
+ m();
127
127
  }
128
128
  ), (l, t) => (P(), G("section", ae, [
129
129
  f("div", ie, [
@@ -131,7 +131,7 @@ const ae = { class: "statement-list-container" }, ie = { class: "actions" }, re
131
131
  f("input", {
132
132
  class: "import-excel-input",
133
133
  type: "file",
134
- onChange: t[0] || (t[0] = (e) => j(e))
134
+ onChange: t[0] || (t[0] = (e) => z(e))
135
135
  }, null, 32),
136
136
  u(" 导入 ")
137
137
  ]),
@@ -153,13 +153,13 @@ const ae = { class: "statement-list-container" }, ie = { class: "actions" }, re
153
153
  ]),
154
154
  _: 1
155
155
  }),
156
- n(o(z), { inline: "" }, {
156
+ n(o(L), { inline: "" }, {
157
157
  default: a(() => [
158
- n(o(k), { label: "报表名称" }, {
158
+ n(o(b), { label: "报表名称" }, {
159
159
  default: a(() => [
160
160
  n(o(_), {
161
- modelValue: r.name,
162
- "onUpdate:modelValue": t[1] || (t[1] = (e) => r.name = e),
161
+ modelValue: r.key,
162
+ "onUpdate:modelValue": t[1] || (t[1] = (e) => r.key = e),
163
163
  placeholder: "键入关键字搜索报表"
164
164
  }, null, 8, ["modelValue"])
165
165
  ]),
@@ -187,8 +187,8 @@ const ae = { class: "statement-list-container" }, ie = { class: "actions" }, re
187
187
  })
188
188
  ]),
189
189
  n(o(ee), {
190
- data: $.value,
191
- onSelectionChange: L
190
+ data: h.value,
191
+ onSelectionChange: j
192
192
  }, {
193
193
  default: a(() => [
194
194
  n(o(y), {
@@ -225,7 +225,7 @@ const ae = { class: "statement-list-container" }, ie = { class: "actions" }, re
225
225
  n(o(c), {
226
226
  link: "",
227
227
  title: "本系统前台页面嵌入地址",
228
- onClick: (d) => S(e.row, "inner")
228
+ onClick: (d) => E(e.row, "inner")
229
229
  }, {
230
230
  default: a(() => [
231
231
  u(" 内部链接 ")
@@ -235,7 +235,7 @@ const ae = { class: "statement-list-container" }, ie = { class: "actions" }, re
235
235
  n(o(c), {
236
236
  link: "",
237
237
  title: "其他系统嵌入地址",
238
- onClick: (d) => S(e.row, "outside")
238
+ onClick: (d) => E(e.row, "outside")
239
239
  }, {
240
240
  default: a(() => [
241
241
  u(" 外部链接 ")
@@ -304,13 +304,13 @@ const ae = { class: "statement-list-container" }, ie = { class: "actions" }, re
304
304
  layout: "sizes,prev,pager,next,total"
305
305
  }, null, 8, ["page-size", "total", "current-page"]),
306
306
  n(o(ne), {
307
- modelValue: v.value,
308
- "onUpdate:modelValue": t[10] || (t[10] = (e) => v.value = e),
307
+ modelValue: k.value,
308
+ "onUpdate:modelValue": t[10] || (t[10] = (e) => k.value = e),
309
309
  onClose: C,
310
310
  title: i.id ? "编辑报表" : "新建报表"
311
311
  }, {
312
312
  footer: a(() => [
313
- f("span", me, [
313
+ f("span", pe, [
314
314
  n(o(c), { onClick: C }, {
315
315
  default: a(() => [
316
316
  u("取消")
@@ -329,12 +329,12 @@ const ae = { class: "statement-list-container" }, ie = { class: "actions" }, re
329
329
  ])
330
330
  ]),
331
331
  default: a(() => [
332
- n(o(z), {
332
+ n(o(L), {
333
333
  model: i,
334
334
  "label-width": "120"
335
335
  }, {
336
336
  default: a(() => [
337
- n(o(k), {
337
+ n(o(b), {
338
338
  label: "报表代码",
339
339
  required: ""
340
340
  }, {
@@ -347,7 +347,7 @@ const ae = { class: "statement-list-container" }, ie = { class: "actions" }, re
347
347
  ]),
348
348
  _: 1
349
349
  }),
350
- n(o(k), {
350
+ n(o(b), {
351
351
  label: "报表名称",
352
352
  required: ""
353
353
  }, {
@@ -360,7 +360,7 @@ const ae = { class: "statement-list-container" }, ie = { class: "actions" }, re
360
360
  ]),
361
361
  _: 1
362
362
  }),
363
- n(o(k), {
363
+ n(o(b), {
364
364
  label: "描述",
365
365
  required: ""
366
366
  }, {
@@ -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-33bfb81d.mjs.map
389
+ //# sourceMappingURL=StatementList-966556cb.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatementList-966556cb.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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"}
@@ -836,7 +836,7 @@ function getList(e) {
836
836
  return axios.request({
837
837
  url: "sysReport/list",
838
838
  method: "post",
839
- type: "json",
839
+ type: "form",
840
840
  data: e
841
841
  });
842
842
  }
@@ -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-33bfb81d.mjs")
3219
+ component: () => import("./StatementList-966556cb.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-1bbd443e.mjs")
3228
+ component: () => import("./StatementDesign-df9afb8d.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-78ad54fa.mjs")
3237
+ component: () => import("./StatementDetail-8c150a0e.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-78ad54fa.mjs")
3246
+ component: () => import("./StatementDetail-8c150a0e.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-eaaf292b.mjs.map
3303
+ //# sourceMappingURL=index-0e50ad4c.mjs.map