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.
- package/{StatementDesign-1bbd443e.mjs → StatementDesign-df9afb8d.mjs} +621 -620
- package/StatementDesign-df9afb8d.mjs.map +1 -0
- package/{StatementDetail-78ad54fa.mjs → StatementDetail-8c150a0e.mjs} +2 -2
- package/{StatementDetail-78ad54fa.mjs.map → StatementDetail-8c150a0e.mjs.map} +1 -1
- package/{StatementList-33bfb81d.mjs → StatementList-966556cb.mjs} +57 -57
- package/StatementList-966556cb.mjs.map +1 -0
- package/{index-eaaf292b.mjs → index-0e50ad4c.mjs} +6 -6
- package/index-0e50ad4c.mjs.map +1 -0
- package/index.es.js +1 -1
- package/package.json +1 -1
- package/StatementDesign-1bbd443e.mjs.map +0 -1
- package/StatementList-33bfb81d.mjs.map +0 -1
- package/index-eaaf292b.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-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-
|
|
28
|
+
//# sourceMappingURL=StatementDetail-8c150a0e.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatementDetail-
|
|
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
|
|
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-
|
|
4
|
-
import { ElButton as c, ElForm as
|
|
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),
|
|
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(
|
|
11
|
-
const
|
|
12
|
-
|
|
10
|
+
setup(me) {
|
|
11
|
+
const $ = K(), r = S({
|
|
12
|
+
key: "",
|
|
13
13
|
pageSize: 10,
|
|
14
14
|
total: 0,
|
|
15
15
|
pageNumber: 1
|
|
16
|
-
}),
|
|
17
|
-
async function
|
|
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
|
-
|
|
20
|
+
h.value = t.data.list, r.total;
|
|
21
21
|
}
|
|
22
|
-
function
|
|
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
|
-
|
|
25
|
+
v.success(d + "复制成功");
|
|
26
26
|
}).catch(() => {
|
|
27
|
-
|
|
27
|
+
v.error(d + "复制遇到问题");
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
|
-
const w =
|
|
30
|
+
const w = V([]), j = (l) => {
|
|
31
31
|
w.value = l;
|
|
32
|
-
},
|
|
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
|
|
42
|
-
if (Array.isArray(
|
|
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: `正在导入报表,共 ${
|
|
45
|
+
text: `正在导入报表,共 ${p.length} 个,请稍候...`
|
|
46
46
|
});
|
|
47
|
-
for (let g = 0; g <
|
|
48
|
-
s.setText(`正在保存第 ${g + 1} 个,共 ${
|
|
49
|
-
const x =
|
|
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(),
|
|
52
|
+
s.close(), m(!0);
|
|
53
53
|
} else
|
|
54
|
-
|
|
54
|
+
v.error("格式错误,请确保导入的文件未被修改过!");
|
|
55
55
|
}
|
|
56
56
|
} catch {
|
|
57
|
-
|
|
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),
|
|
72
|
-
s.href = e, s.download =
|
|
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
|
-
|
|
74
|
+
v.warning("请选择要操作的报表!");
|
|
75
75
|
};
|
|
76
76
|
function R(l) {
|
|
77
|
-
|
|
77
|
+
$.push(`/admin/statement/design/${l.id}`);
|
|
78
78
|
}
|
|
79
79
|
function F(l) {
|
|
80
|
-
|
|
80
|
+
$.push(`/admin/statement/detail/${l.id}`);
|
|
81
81
|
}
|
|
82
82
|
I(() => {
|
|
83
|
-
|
|
83
|
+
m(!0);
|
|
84
84
|
});
|
|
85
|
-
const
|
|
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
|
-
|
|
92
|
+
k.value = !0;
|
|
93
93
|
}
|
|
94
94
|
function T(l) {
|
|
95
|
-
|
|
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 &&
|
|
103
|
+
(await Z(l.id)).data && m(!0);
|
|
104
104
|
});
|
|
105
105
|
}
|
|
106
106
|
function C() {
|
|
107
|
-
|
|
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),
|
|
110
|
+
await U(i), m(!0), C();
|
|
111
111
|
}
|
|
112
112
|
function A() {
|
|
113
|
-
|
|
113
|
+
m(!1);
|
|
114
114
|
}
|
|
115
115
|
function Y() {
|
|
116
|
-
r.
|
|
116
|
+
r.key = "", m(!0);
|
|
117
117
|
}
|
|
118
118
|
return N(
|
|
119
119
|
() => r.pageNumber,
|
|
120
120
|
() => {
|
|
121
|
-
|
|
121
|
+
m();
|
|
122
122
|
}
|
|
123
123
|
), N(
|
|
124
124
|
() => r.pageSize,
|
|
125
125
|
() => {
|
|
126
|
-
|
|
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) =>
|
|
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(
|
|
156
|
+
n(o(L), { inline: "" }, {
|
|
157
157
|
default: a(() => [
|
|
158
|
-
n(o(
|
|
158
|
+
n(o(b), { label: "报表名称" }, {
|
|
159
159
|
default: a(() => [
|
|
160
160
|
n(o(_), {
|
|
161
|
-
modelValue: r.
|
|
162
|
-
"onUpdate:modelValue": t[1] || (t[1] = (e) => r.
|
|
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:
|
|
191
|
-
onSelectionChange:
|
|
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) =>
|
|
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) =>
|
|
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:
|
|
308
|
-
"onUpdate:modelValue": t[10] || (t[10] = (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",
|
|
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(
|
|
332
|
+
n(o(L), {
|
|
333
333
|
model: i,
|
|
334
334
|
"label-width": "120"
|
|
335
335
|
}, {
|
|
336
336
|
default: a(() => [
|
|
337
|
-
n(o(
|
|
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(
|
|
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(
|
|
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-
|
|
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: "
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
3303
|
+
//# sourceMappingURL=index-0e50ad4c.mjs.map
|