yh-report 2.4.81 → 2.4.83

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 s, onMounted as c, openBlock as r, createElementBlock as m, createVNode as d } from "vue";
2
2
  import { useRoute as l } from "vue-router";
3
- import { z as u } from "./index-Bma6Os_9.mjs";
3
+ import { H as u } from "./index-Eu4uQnBg.mjs";
4
4
  const _ = { class: "statement-detail-container" }, h = /* @__PURE__ */ o({
5
5
  __name: "StatementDetail",
6
6
  setup(p) {
@@ -21,4 +21,4 @@ const _ = { class: "statement-detail-container" }, h = /* @__PURE__ */ o({
21
21
  export {
22
22
  h as default
23
23
  };
24
- //# sourceMappingURL=StatementDetail-BFv2a1SZ.mjs.map
24
+ //# sourceMappingURL=StatementDetail-BqTj5q_U.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatementDetail-BFv2a1SZ.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/reportRun.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","_openBlock","_createElementBlock","_hoisted_1","_createVNode","reportRun"],"mappings":";;;;;;AASA,UAAMA,IAAQC,EAAA,GACRC,IAAKC,EAAA;AAEX,WAAAC,EAAY,MAAM;;AAChB,OAAAC,IAAA,SAAS,cAAc,iBAAiB,MAAxC,QAAAA,EAA2C,UAAU,IAAI;AAAA,IAC3D,CAAC,GAEDC,EAAc,MAAM;;AAClB,OAAAD,IAAA,SAAS,cAAc,iBAAiB,MAAxC,QAAAA,EAA2C,UAAU,OAAO;AAAA,IAC9D,CAAC,GAEDE,EAAU,MAAM;AACd,MAAAL,EAAG,QAAQF,EAAM,OAAO;AAAA,IAC1B,CAAC,cArBCQ,EAAA,GAAAC,EAEU,WAFVC,GAEU;AAAA,MADRC,EAAkCC,GAAA,EAArB,IAAIV,EAAA,MAAA,GAAE,MAAA,GAAA,CAAA,IAAA,CAAA;AAAA,IAAA;;;"}
1
+ {"version":3,"file":"StatementDetail-BqTj5q_U.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/reportRun.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","_openBlock","_createElementBlock","_hoisted_1","_createVNode","reportRun"],"mappings":";;;;;;AASA,UAAMA,IAAQC,EAAA,GACRC,IAAKC,EAAA;AAEX,WAAAC,EAAY,MAAM;;AAChB,OAAAC,IAAA,SAAS,cAAc,iBAAiB,MAAxC,QAAAA,EAA2C,UAAU,IAAI;AAAA,IAC3D,CAAC,GAEDC,EAAc,MAAM;;AAClB,OAAAD,IAAA,SAAS,cAAc,iBAAiB,MAAxC,QAAAA,EAA2C,UAAU,OAAO;AAAA,IAC9D,CAAC,GAEDE,EAAU,MAAM;AACd,MAAAL,EAAG,QAAQF,EAAM,OAAO;AAAA,IAC1B,CAAC,cArBCQ,EAAA,GAAAC,EAEU,WAFVC,GAEU;AAAA,MADRC,EAAkCC,GAAA,EAArB,IAAIV,EAAA,MAAA,GAAE,MAAA,GAAA,CAAA,IAAA,CAAA;AAAA,IAAA;;;"}
@@ -1,178 +1,168 @@
1
- import { defineComponent as G, reactive as L, ref as D, onMounted as Q, watch as R, openBlock as W, createElementBlock as X, createElementVNode as y, createTextVNode as u, toDisplayString as c, unref as e, createVNode as n, withCtx as i, withKeys as Z } from "vue";
2
- import { useRouter as ee } from "vue-router";
3
- import { r as a, g as te, s as U, d as oe, a as le } from "./index-Bma6Os_9.mjs";
4
- import { ElButton as m, ElFormItem as w, ElInput as $, ElTable as ne, ElTableColumn as C, ElPagination as ae, ElDialog as ie, ElForm as re, ElMessage as b, ElLoading as se, ElMessageBox as j } from "element-plus";
1
+ import { defineComponent as I, reactive as T, ref as E, onMounted as G, watch as L, openBlock as Q, createElementBlock as W, createElementVNode as f, createTextVNode as u, toDisplayString as c, unref as e, createVNode as n, withCtx as i, withKeys as X } from "vue";
2
+ import { useRouter as Z } from "vue-router";
3
+ import { r as a, g as ee, c as te, s as N, d as le, a as oe } from "./index-Eu4uQnBg.mjs";
4
+ import { ElButton as m, ElFormItem as w, ElInput as x, ElTable as ne, ElTableColumn as v, ElPagination as ae, ElDialog as ie, ElForm as re, ElMessage as k, ElLoading as se, ElMessageBox as D } from "element-plus";
5
5
  import { l as de, u as ue } from "./editorLock-DdAYyg2u.mjs";
6
- function ce(h) {
7
- if (navigator.clipboard && window.isSecureContext)
8
- return navigator.clipboard.writeText(h), Promise.resolve();
9
- {
10
- let f = document.createElement("textarea");
11
- f.value = h, f.style.position = "absolute", f.style.opacity = "0", f.style.left = "-200%", f.style.top = "-200%", document.body.appendChild(f), f.focus(), f.select();
12
- let r = document.execCommand("copy");
13
- return f.remove(), r ? Promise.resolve() : Promise.reject(new Error("copy error"));
14
- }
15
- }
16
- const pe = { class: "statement-list-container" }, me = { class: "actions" }, fe = { class: "el-button is-text import-excel-button" }, ye = { class: "form-context" }, ge = { class: "dialog-footer" }, we = /* @__PURE__ */ G({
6
+ const ce = { class: "statement-list-container" }, pe = { class: "actions" }, me = { class: "el-button is-text import-excel-button" }, fe = { class: "form-context" }, ge = { class: "dialog-footer" }, xe = /* @__PURE__ */ I({
17
7
  __name: "StatementList",
18
- setup(h) {
19
- const f = ee(), r = L({
8
+ setup(ye) {
9
+ const U = Z(), d = T({
20
10
  key: "",
21
11
  pageSize: 10,
22
12
  pageNumber: 1,
23
13
  total: 0
24
- }), z = D([]);
25
- async function g(l = !1) {
26
- l && (r.pageNumber = 1, r.total = 0);
27
- const t = await te({
28
- key: r.key,
29
- pageSize: r.pageSize,
30
- pageNumber: r.pageNumber
14
+ }), z = E([]);
15
+ async function g(o = !1) {
16
+ o && (d.pageNumber = 1, d.total = 0);
17
+ const t = await ee({
18
+ key: d.key,
19
+ pageSize: d.pageSize,
20
+ pageNumber: d.pageNumber
31
21
  });
32
- z.value = t.data.list, r.total = t.data.total;
22
+ z.value = t.data.list, d.total = t.data.total;
33
23
  }
34
- function V(l, t) {
35
- let o = "", s = "链接";
24
+ function $(o, t) {
25
+ let l = "", r = "链接";
36
26
  switch (t) {
37
27
  case "admin":
38
- o = `/admin/statement/detail/${l.id}`, s = "后台链接";
28
+ l = `/admin/statement/detail/${o.id}`, r = "后台链接";
39
29
  break;
40
30
  case "inner":
41
- o = `innerStatementdetail/${l.id}`, s = "菜单链接";
31
+ l = `innerStatementdetail/${o.id}`, r = "菜单链接";
42
32
  break;
43
33
  default:
44
- o = `${window.location.origin}${window.location.pathname}#/statementdetail/${l.id}`, s = "外部链接";
34
+ l = `${window.location.origin}${window.location.pathname}#/statementdetail/${o.id}`, r = "外部链接";
45
35
  }
46
- ce(o).then(() => {
47
- b.success(s + "复制成功");
36
+ te(l).then(() => {
37
+ k.success(r + "复制成功");
48
38
  }).catch(() => {
49
- b.error(s + "复制遇到问题");
39
+ k.error(r + "复制遇到问题");
50
40
  });
51
41
  }
52
- const E = D([]), F = (l) => {
53
- E.value = l;
54
- }, _ = async (l) => {
55
- const t = l.target.files[0];
42
+ const h = E([]), R = (o) => {
43
+ h.value = o;
44
+ }, F = async (o) => {
45
+ const t = o.target.files[0];
56
46
  if (!t) return;
57
- const o = new FileReader();
58
- o.onload = async (s) => {
59
- l.target.value = "";
47
+ const l = new FileReader();
48
+ l.onload = async (r) => {
49
+ o.target.value = "";
60
50
  try {
61
- if (s.target) {
62
- const k = JSON.parse(s.target.result);
63
- if (Array.isArray(k) && k.every((p) => typeof p == "object" && "code" in p && "config" in p && "description" in p && "name" in p)) {
51
+ if (r.target) {
52
+ const y = JSON.parse(r.target.result);
53
+ if (Array.isArray(y) && y.every((p) => typeof p == "object" && "code" in p && "config" in p && "description" in p && "name" in p)) {
64
54
  const p = se.service({
65
55
  fullscreen: !0,
66
- text: `正在导入报表,共 ${k.length} 个,请稍候...`
56
+ text: `正在导入报表,共 ${y.length} 个,请稍候...`
67
57
  });
68
- for (let v = 0; v < k.length; v++) {
69
- p.setText(`正在保存第 ${v + 1} 个,共 ${k.length} 个,请稍候...`);
70
- const N = k[v];
71
- await U(N);
58
+ for (let b = 0; b < y.length; b++) {
59
+ p.setText(`正在保存第 ${b + 1} 个,共 ${y.length} 个,请稍候...`);
60
+ const S = y[b];
61
+ await N(S);
72
62
  }
73
63
  p.close(), g(!0);
74
64
  } else
75
- b.error("格式错误,请确保导入的文件未被修改过!");
65
+ k.error("格式错误,请确保导入的文件未被修改过!");
76
66
  }
77
67
  } catch {
78
- b.error("文件解析失败,请检查文件是否为有效的 JSON 格式!");
68
+ k.error("文件解析失败,请检查文件是否为有效的 JSON 格式!");
79
69
  }
80
- }, o.readAsText(t);
81
- }, O = () => {
82
- if (E.value.length > 0) {
83
- const l = JSON.stringify(
84
- E.value.map(({ code: v, config: N, description: K, name: I }) => ({
85
- code: v,
86
- config: N,
70
+ }, l.readAsText(t);
71
+ }, _ = () => {
72
+ if (h.value.length > 0) {
73
+ const o = JSON.stringify(
74
+ h.value.map(({ code: b, config: S, description: K, name: P }) => ({
75
+ code: b,
76
+ config: S,
87
77
  description: K,
88
- name: I
78
+ name: P
89
79
  })),
90
80
  null,
91
81
  2
92
- ), t = new Blob([l], { type: "application/json" }), o = URL.createObjectURL(t), k = `报表导出-${oe().format("YYYYMMDDHHmm")}.json`, p = document.createElement("a");
93
- p.href = o, p.download = k, document.body.appendChild(p), p.click(), document.body.removeChild(p), URL.revokeObjectURL(o);
82
+ ), t = new Blob([o], { type: "application/json" }), l = URL.createObjectURL(t), y = `报表导出-${le().format("YYYYMMDDHHmm")}.json`, p = document.createElement("a");
83
+ p.href = l, p.download = y, document.body.appendChild(p), p.click(), document.body.removeChild(p), URL.revokeObjectURL(l);
94
84
  } else
95
- b.warning("请选择要操作的报表!");
96
- }, T = async (l) => {
97
- await de(l.id) === "OK" ? f.push(`/admin/statement/design/${l.id}`) : await j.alert("报表正在被其他用户锁定,是否强制解锁?", "提示", {
85
+ k.warning("请选择要操作的报表!");
86
+ }, j = async (o) => {
87
+ await de(o.id) === "OK" ? U.push(`/admin/statement/design/${o.id}`) : await D.alert("报表正在被其他用户锁定,是否强制解锁?", "提示", {
98
88
  confirmButtonText: "解锁",
99
89
  cancelButtonText: "取消"
100
- }) === "confirm" && (await ue(l.id) ? T(l) : b.error("解锁失败,请稍后再试!"));
101
- }, P = (l) => {
102
- f.push(`/admin/statement/detail/${l.id}`);
90
+ }) === "confirm" && (await ue(o.id) ? j(o) : k.error("解锁失败,请稍后再试!"));
91
+ }, O = (o) => {
92
+ U.push(`/admin/statement/detail/${o.id}`);
103
93
  };
104
- Q(() => {
94
+ G(() => {
105
95
  g(!0);
106
96
  });
107
- const x = D(!1), d = L({
97
+ const C = E(!1), s = T({
108
98
  id: void 0,
109
99
  name: "",
110
100
  code: "",
111
101
  description: ""
112
- }), A = () => {
113
- x.value = !0;
114
- }, M = (l) => {
115
- x.value = !0, d.id = l.id, d.name = l.name, d.code = l.code, d.description = l.description;
116
- }, Y = (l) => {
117
- j.confirm("当前操作会复制选定的报表,确认继续吗?", "提醒", {
102
+ }), M = () => {
103
+ C.value = !0;
104
+ }, A = (o) => {
105
+ C.value = !0, s.id = o.id, s.name = o.name, s.code = o.code, s.description = o.description;
106
+ }, Y = (o) => {
107
+ D.confirm("当前操作会复制选定的报表,确认继续吗?", "提醒", {
118
108
  confirmButtonText: "复制",
119
109
  cancelButtonText: "取消",
120
110
  type: "warning"
121
111
  }).then(() => {
122
112
  let t = {
123
- name: `${l.name}-copy`,
124
- code: `${l.code}-copy`,
125
- description: `${l.description}-copy`,
126
- chartConfig: l.chartConfig,
127
- config: l.config,
128
- listData: l.listData
113
+ name: `${o.name}-copy`,
114
+ code: `${o.code}-copy`,
115
+ description: `${o.description}-copy`,
116
+ chartConfig: o.chartConfig,
117
+ config: o.config,
118
+ listData: o.listData
129
119
  };
130
- U(t).then(() => {
131
- b.success("复制成功"), g(!0);
120
+ N(t).then(() => {
121
+ k.success("复制成功"), g(!0);
132
122
  }).catch(() => {
133
- b.error("复制失败");
123
+ k.error("复制失败");
134
124
  });
135
125
  });
136
- }, q = (l) => {
137
- j.confirm("当前操作会删除选定的报表,确认继续吗?", "警告", {
126
+ }, q = (o) => {
127
+ D.confirm("当前操作会删除选定的报表,确认继续吗?", "警告", {
138
128
  confirmButtonText: "删除",
139
129
  cancelButtonText: "取消",
140
130
  type: "warning"
141
131
  }).then(async () => {
142
- (await le(l.id)).data && g(!0);
132
+ (await oe(o.id)).data && g(!0);
143
133
  });
144
- }, S = () => {
145
- x.value = !1, d.id = void 0, d.name = "", d.code = "", d.description = "";
134
+ }, V = () => {
135
+ C.value = !1, s.id = void 0, s.name = "", s.code = "", s.description = "";
146
136
  }, H = async () => {
147
- await U(d), g(!0), S();
148
- }, B = (l) => {
149
- l && (l.preventDefault(), l.stopPropagation()), g(!1);
137
+ await N(s), g(!0), V();
138
+ }, B = (o) => {
139
+ o && (o.preventDefault(), o.stopPropagation()), g(!1);
150
140
  }, J = () => {
151
- r.key = "", g(!0);
141
+ d.key = "", g(!0);
152
142
  };
153
- return R(
154
- () => r.pageNumber,
143
+ return L(
144
+ () => d.pageNumber,
155
145
  () => {
156
146
  g();
157
147
  }
158
- ), R(
159
- () => r.pageSize,
148
+ ), L(
149
+ () => d.pageSize,
160
150
  () => {
161
151
  g();
162
152
  }
163
- ), (l, t) => (W(), X("section", pe, [
164
- y("div", me, [
165
- y("div", fe, [
166
- y("input", {
153
+ ), (o, t) => (Q(), W("section", ce, [
154
+ f("div", pe, [
155
+ f("div", me, [
156
+ f("input", {
167
157
  class: "import-excel-input",
168
158
  type: "file",
169
- onChange: t[0] || (t[0] = (o) => _(o))
159
+ onChange: t[0] || (t[0] = (l) => F(l))
170
160
  }, null, 32),
171
161
  u(" " + c(e(a)("导入")), 1)
172
162
  ]),
173
163
  n(e(m), {
174
164
  text: "",
175
- onClick: O
165
+ onClick: _
176
166
  }, {
177
167
  default: i(() => [
178
168
  u(c(e(a)("导出")), 1)
@@ -181,22 +171,22 @@ const pe = { class: "statement-list-container" }, me = { class: "actions" }, fe
181
171
  }),
182
172
  n(e(m), {
183
173
  type: "primary",
184
- onClick: A
174
+ onClick: M
185
175
  }, {
186
176
  default: i(() => [
187
177
  u(c(e(a)("新增")), 1)
188
178
  ]),
189
179
  _: 1
190
180
  }),
191
- y("div", ye, [
181
+ f("div", fe, [
192
182
  n(e(w), {
193
183
  label: e(a)("报表名称")
194
184
  }, {
195
185
  default: i(() => [
196
- n(e($), {
197
- modelValue: r.key,
198
- "onUpdate:modelValue": t[1] || (t[1] = (o) => r.key = o),
199
- onKeyup: Z(B, ["enter"]),
186
+ n(e(x), {
187
+ modelValue: d.key,
188
+ "onUpdate:modelValue": t[1] || (t[1] = (l) => d.key = l),
189
+ onKeyup: X(B, ["enter"]),
200
190
  placeholder: e(a)("键入关键字搜索报表")
201
191
  }, null, 8, ["modelValue", "placeholder"])
202
192
  ]),
@@ -205,7 +195,7 @@ const pe = { class: "statement-list-container" }, me = { class: "actions" }, fe
205
195
  ]),
206
196
  n(e(m), {
207
197
  type: "primary",
208
- onClick: t[2] || (t[2] = (o) => B())
198
+ onClick: t[2] || (t[2] = (l) => B())
209
199
  }, {
210
200
  default: i(() => [
211
201
  u(c(e(a)("搜索")), 1)
@@ -213,7 +203,7 @@ const pe = { class: "statement-list-container" }, me = { class: "actions" }, fe
213
203
  _: 1
214
204
  }),
215
205
  n(e(m), {
216
- onClick: t[3] || (t[3] = (o) => J())
206
+ onClick: t[3] || (t[3] = (l) => J())
217
207
  }, {
218
208
  default: i(() => [
219
209
  u(c(e(a)("重置")), 1)
@@ -224,44 +214,44 @@ const pe = { class: "statement-list-container" }, me = { class: "actions" }, fe
224
214
  n(e(ne), {
225
215
  data: z.value,
226
216
  "row-key": "id",
227
- onSelectionChange: F
217
+ onSelectionChange: R
228
218
  }, {
229
219
  default: i(() => [
230
- n(e(C), {
220
+ n(e(v), {
231
221
  type: "selection",
232
222
  width: "50"
233
223
  }),
234
- n(e(C), {
224
+ n(e(v), {
235
225
  label: "#",
236
226
  type: "index",
237
227
  width: "66",
238
228
  left: ""
239
229
  }),
240
- n(e(C), {
230
+ n(e(v), {
241
231
  label: e(a)("报表代码"),
242
232
  "min-width": "100",
243
233
  prop: "code"
244
234
  }, null, 8, ["label"]),
245
- n(e(C), {
235
+ n(e(v), {
246
236
  label: e(a)("报表名称"),
247
237
  "min-width": "100",
248
238
  prop: "name"
249
239
  }, null, 8, ["label"]),
250
- n(e(C), {
240
+ n(e(v), {
251
241
  label: e(a)("描述"),
252
242
  "min-width": "200",
253
243
  prop: "description"
254
244
  }, null, 8, ["label"]),
255
- n(e(C), {
245
+ n(e(v), {
256
246
  label: e(a)("操作"),
257
247
  width: "490",
258
248
  fixed: "right"
259
249
  }, {
260
- default: i((o) => [
250
+ default: i((l) => [
261
251
  n(e(m), {
262
252
  link: "",
263
253
  title: e(a)("本系统前台菜单地址"),
264
- onClick: (s) => V(o.row, "inner")
254
+ onClick: (r) => $(l.row, "inner")
265
255
  }, {
266
256
  default: i(() => [
267
257
  u(c(e(a)("菜单")), 1)
@@ -271,7 +261,7 @@ const pe = { class: "statement-list-container" }, me = { class: "actions" }, fe
271
261
  n(e(m), {
272
262
  link: "",
273
263
  title: e(a)("后台测试"),
274
- onClick: (s) => V(o.row, "admin")
264
+ onClick: (r) => $(l.row, "admin")
275
265
  }, {
276
266
  default: i(() => [
277
267
  u(c(e(a)("后台")), 1)
@@ -281,7 +271,7 @@ const pe = { class: "statement-list-container" }, me = { class: "actions" }, fe
281
271
  n(e(m), {
282
272
  link: "",
283
273
  title: e(a)("其他系统嵌入地址"),
284
- onClick: (s) => V(o.row, "outside")
274
+ onClick: (r) => $(l.row, "outside")
285
275
  }, {
286
276
  default: i(() => [
287
277
  u(c(e(a)("外嵌")), 1)
@@ -291,10 +281,10 @@ const pe = { class: "statement-list-container" }, me = { class: "actions" }, fe
291
281
  n(e(m), {
292
282
  type: "primary",
293
283
  link: "",
294
- onClick: (s) => T(o.row)
284
+ onClick: (r) => j(l.row)
295
285
  }, {
296
286
  default: i(() => [
297
- t[11] || (t[11] = y("i", { class: "yhreport-icon report-sheji" }, null, -1)),
287
+ t[11] || (t[11] = f("i", { class: "yhreport-icon report-sheji" }, null, -1)),
298
288
  u(" " + c(e(a)("设计")), 1)
299
289
  ]),
300
290
  _: 1
@@ -302,10 +292,10 @@ const pe = { class: "statement-list-container" }, me = { class: "actions" }, fe
302
292
  n(e(m), {
303
293
  type: "primary",
304
294
  link: "",
305
- onClick: (s) => P(o.row)
295
+ onClick: (r) => O(l.row)
306
296
  }, {
307
297
  default: i(() => [
308
- t[12] || (t[12] = y("i", { class: "yhreport-icon report-preview" }, null, -1)),
298
+ t[12] || (t[12] = f("i", { class: "yhreport-icon report-preview" }, null, -1)),
309
299
  u(" " + c(e(a)("查看")), 1)
310
300
  ]),
311
301
  _: 1
@@ -313,10 +303,10 @@ const pe = { class: "statement-list-container" }, me = { class: "actions" }, fe
313
303
  n(e(m), {
314
304
  type: "primary",
315
305
  link: "",
316
- onClick: (s) => M(o.row)
306
+ onClick: (r) => A(l.row)
317
307
  }, {
318
308
  default: i(() => [
319
- t[13] || (t[13] = y("i", { class: "yhreport-icon report-bianji" }, null, -1)),
309
+ t[13] || (t[13] = f("i", { class: "yhreport-icon report-bianji" }, null, -1)),
320
310
  u(" " + c(e(a)("编辑")), 1)
321
311
  ]),
322
312
  _: 1
@@ -324,10 +314,10 @@ const pe = { class: "statement-list-container" }, me = { class: "actions" }, fe
324
314
  n(e(m), {
325
315
  type: "primary",
326
316
  link: "",
327
- onClick: (s) => Y(o.row)
317
+ onClick: (r) => Y(l.row)
328
318
  }, {
329
319
  default: i(() => [
330
- t[14] || (t[14] = y("i", { class: "yhreport-icon report-fuzhi" }, null, -1)),
320
+ t[14] || (t[14] = f("i", { class: "yhreport-icon report-fuzhi" }, null, -1)),
331
321
  u(" " + c(e(a)("复制")), 1)
332
322
  ]),
333
323
  _: 1
@@ -335,10 +325,10 @@ const pe = { class: "statement-list-container" }, me = { class: "actions" }, fe
335
325
  n(e(m), {
336
326
  type: "danger",
337
327
  link: "",
338
- onClick: (s) => q(o.row)
328
+ onClick: (r) => q(l.row)
339
329
  }, {
340
330
  default: i(() => [
341
- t[15] || (t[15] = y("i", { class: "yhreport-icon report-shanchusekuai" }, null, -1)),
331
+ t[15] || (t[15] = f("i", { class: "yhreport-icon report-shanchusekuai" }, null, -1)),
342
332
  u(" " + c(e(a)("删除")), 1)
343
333
  ]),
344
334
  _: 1
@@ -353,22 +343,22 @@ const pe = { class: "statement-list-container" }, me = { class: "actions" }, fe
353
343
  background: "",
354
344
  style: { "padding-top": "10px", "justify-content": "flex-end" },
355
345
  "page-sizes": [10, 20, 50, 100],
356
- "page-size": r.pageSize,
357
- "onUpdate:pageSize": t[4] || (t[4] = (o) => r.pageSize = o),
358
- total: r.total,
359
- "current-page": r.pageNumber,
360
- "onUpdate:currentPage": t[5] || (t[5] = (o) => r.pageNumber = o),
346
+ "page-size": d.pageSize,
347
+ "onUpdate:pageSize": t[4] || (t[4] = (l) => d.pageSize = l),
348
+ total: d.total,
349
+ "current-page": d.pageNumber,
350
+ "onUpdate:currentPage": t[5] || (t[5] = (l) => d.pageNumber = l),
361
351
  layout: "sizes,prev,pager,next,total"
362
352
  }, null, 8, ["page-size", "total", "current-page"]),
363
353
  n(e(ie), {
364
- modelValue: x.value,
365
- "onUpdate:modelValue": t[10] || (t[10] = (o) => x.value = o),
366
- onClose: S,
367
- title: d.id ? e(a)("编辑报表") : e(a)("新建报表")
354
+ modelValue: C.value,
355
+ "onUpdate:modelValue": t[10] || (t[10] = (l) => C.value = l),
356
+ onClose: V,
357
+ title: s.id ? e(a)("编辑报表") : e(a)("新建报表")
368
358
  }, {
369
359
  footer: i(() => [
370
- y("span", ge, [
371
- n(e(m), { onClick: S }, {
360
+ f("span", ge, [
361
+ n(e(m), { onClick: V }, {
372
362
  default: i(() => [
373
363
  u(c(e(a)("取消")), 1)
374
364
  ]),
@@ -376,7 +366,7 @@ const pe = { class: "statement-list-container" }, me = { class: "actions" }, fe
376
366
  }),
377
367
  n(e(m), {
378
368
  type: "primary",
379
- onClick: t[9] || (t[9] = (o) => H())
369
+ onClick: t[9] || (t[9] = (l) => H())
380
370
  }, {
381
371
  default: i(() => [
382
372
  u(c(e(a)("保存")), 1)
@@ -387,7 +377,7 @@ const pe = { class: "statement-list-container" }, me = { class: "actions" }, fe
387
377
  ]),
388
378
  default: i(() => [
389
379
  n(e(re), {
390
- model: d,
380
+ model: s,
391
381
  "label-width": "120"
392
382
  }, {
393
383
  default: i(() => [
@@ -396,9 +386,9 @@ const pe = { class: "statement-list-container" }, me = { class: "actions" }, fe
396
386
  required: ""
397
387
  }, {
398
388
  default: i(() => [
399
- n(e($), {
400
- modelValue: d.code,
401
- "onUpdate:modelValue": t[6] || (t[6] = (o) => d.code = o),
389
+ n(e(x), {
390
+ modelValue: s.code,
391
+ "onUpdate:modelValue": t[6] || (t[6] = (l) => s.code = l),
402
392
  autocomplete: "off"
403
393
  }, null, 8, ["modelValue"])
404
394
  ]),
@@ -409,9 +399,9 @@ const pe = { class: "statement-list-container" }, me = { class: "actions" }, fe
409
399
  required: ""
410
400
  }, {
411
401
  default: i(() => [
412
- n(e($), {
413
- modelValue: d.name,
414
- "onUpdate:modelValue": t[7] || (t[7] = (o) => d.name = o),
402
+ n(e(x), {
403
+ modelValue: s.name,
404
+ "onUpdate:modelValue": t[7] || (t[7] = (l) => s.name = l),
415
405
  autocomplete: "off"
416
406
  }, null, 8, ["modelValue"])
417
407
  ]),
@@ -422,9 +412,9 @@ const pe = { class: "statement-list-container" }, me = { class: "actions" }, fe
422
412
  required: ""
423
413
  }, {
424
414
  default: i(() => [
425
- n(e($), {
426
- modelValue: d.description,
427
- "onUpdate:modelValue": t[8] || (t[8] = (o) => d.description = o),
415
+ n(e(x), {
416
+ modelValue: s.description,
417
+ "onUpdate:modelValue": t[8] || (t[8] = (l) => s.description = l),
428
418
  type: "textarea",
429
419
  autocomplete: "off"
430
420
  }, null, 8, ["modelValue"])
@@ -441,6 +431,6 @@ const pe = { class: "statement-list-container" }, me = { class: "actions" }, fe
441
431
  }
442
432
  });
443
433
  export {
444
- we as default
434
+ xe as default
445
435
  };
446
- //# sourceMappingURL=StatementList-CgsgavMK.mjs.map
436
+ //# sourceMappingURL=StatementList-BGo1kjFv.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatementList-BGo1kjFv.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 {{ rct('导入') }}\n </div>\n <el-button\n text\n @click=\"exportReport\">\n {{ rct('导出') }}\n </el-button>\n <el-button\n type=\"primary\"\n @click=\"toAddForm\">\n {{ rct('新增') }}\n </el-button>\n <div class=\"form-context\">\n <el-form-item :label=\"rct('报表名称')\">\n <el-input\n v-model=\"listForm.key\"\n @keyup.enter=\"onSearch\"\n :placeholder=\"rct('键入关键字搜索报表')\"></el-input>\n </el-form-item>\n </div>\n <el-button\n type=\"primary\"\n @click=\"onSearch()\">\n {{ rct('搜索') }}\n </el-button>\n <el-button @click=\"onReset()\">{{ rct('重置') }}</el-button>\n </div>\n <el-table\n :data=\"data\"\n row-key=\"id\"\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=\"rct('报表代码')\"\n min-width=\"100\"\n prop=\"code\"></el-table-column>\n <el-table-column\n :label=\"rct('报表名称')\"\n min-width=\"100\"\n prop=\"name\"></el-table-column>\n <el-table-column\n :label=\"rct('描述')\"\n min-width=\"200\"\n prop=\"description\"></el-table-column>\n <el-table-column\n :label=\"rct('操作')\"\n width=\"490\"\n fixed=\"right\">\n <template #default=\"scope\">\n <el-button\n link\n :title=\"rct('本系统前台菜单地址')\"\n @click=\"copyLink(scope.row, 'inner')\">\n {{ rct('菜单') }}\n </el-button>\n <el-button\n link\n :title=\"rct('后台测试')\"\n @click=\"copyLink(scope.row, 'admin')\">\n {{ rct('后台') }}\n </el-button>\n <el-button\n link\n :title=\"rct('其他系统嵌入地址')\"\n @click=\"copyLink(scope.row, 'outside')\">\n {{ rct('外嵌') }}\n </el-button>\n <el-button\n type=\"primary\"\n link\n @click=\"toDesign(scope.row)\">\n <i class=\"yhreport-icon report-sheji\"></i>\n {{ rct('设计') }}\n </el-button>\n <el-button\n type=\"primary\"\n link\n @click=\"toView(scope.row)\">\n <i class=\"yhreport-icon report-preview\"></i>\n {{ rct('查看') }}\n </el-button>\n <el-button\n type=\"primary\"\n link\n @click=\"toEditor(scope.row)\">\n <i class=\"yhreport-icon report-bianji\"></i>\n {{ rct('编辑') }}\n </el-button>\n <el-button\n type=\"primary\"\n link\n @click=\"toCopy(scope.row)\">\n <i class=\"yhreport-icon report-fuzhi\"></i>\n {{ rct('复制') }}\n </el-button>\n <el-button\n type=\"danger\"\n link\n @click=\"toDelete(scope.row)\">\n <i class=\"yhreport-icon report-shanchusekuai\"></i>\n {{ rct('删除') }}\n </el-button>\n </template>\n </el-table-column>\n </el-table>\n <el-pagination\n background\n style=\"padding-top: 10px; 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 ? rct('编辑报表') : rct('新建报表')\">\n <el-form\n :model=\"form\"\n label-width=\"120\">\n <el-form-item\n :label=\"rct('报表代码')\"\n required>\n <el-input\n v-model=\"form.code\"\n autocomplete=\"off\" />\n </el-form-item>\n <el-form-item\n :label=\"rct('报表名称')\"\n required>\n <el-input\n v-model=\"form.name\"\n autocomplete=\"off\" />\n </el-form-item>\n <el-form-item\n :label=\"rct('描述')\"\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\">{{ rct('取消') }}</el-button>\n <el-button\n type=\"primary\"\n @click=\"saveForm()\">\n {{ rct('保存') }}\n </el-button>\n </span>\n </template>\n </el-dialog>\n </section>\n</template>\n<script setup lang=\"ts\">\nimport {ref, reactive, computed, 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';\nimport {lockEditor, unlockEditor} from 'yh-report/libs/editorLock';\nimport {rct} from 'yh-report';\n\nconst router = useRouter();\n\n// @ts-ignore\nconst listForm = reactive({\n key: '',\n pageSize: 10,\n pageNumber: 1,\n total: 0,\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({\n key: listForm.key,\n pageSize: listForm.pageSize,\n pageNumber: listForm.pageNumber,\n });\n data.value = res.data.list;\n listForm.total = res.data.total;\n}\n\nfunction copyLink(row, type) {\n let href = '';\n let hrefName = '链接';\n switch (type) {\n case 'admin':\n href = `/admin/statement/detail/${row.id}`;\n hrefName = '后台链接';\n break;\n case 'inner':\n href = `innerStatementdetail/${row.id}`;\n hrefName = '菜单链接';\n break;\n default:\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};\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\nconst toDesign = async (row) => {\n let res = await lockEditor(row.id);\n if (res === 'OK') {\n router.push(`/admin/statement/design/${row.id}`);\n } else {\n const toUnlock = await ElMessageBox.alert('报表正在被其他用户锁定,是否强制解锁?', '提示', {\n confirmButtonText: '解锁',\n cancelButtonText: '取消',\n });\n if (toUnlock === 'confirm') {\n let flag = await unlockEditor(row.id);\n if (flag) {\n toDesign(row);\n } else {\n ElMessage.error('解锁失败,请稍后再试!');\n }\n }\n }\n};\n\nconst toView = (row) => {\n router.push(`/admin/statement/detail/${row.id}`);\n};\n\nonMounted(() => {\n getStatementList(true);\n});\n\n//新增报表\nconst dialogFormVisible = ref(false);\n\nconst form = reactive({\n id: undefined,\n name: '',\n code: '',\n description: '',\n});\n\nconst toAddForm = () => {\n dialogFormVisible.value = true;\n};\n\nconst 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\nconst toCopy = (row) => {\n ElMessageBox.confirm('当前操作会复制选定的报表,确认继续吗?', '提醒', {\n confirmButtonText: '复制',\n cancelButtonText: '取消',\n type: 'warning',\n }).then(() => {\n let form = {\n name: `${row.name}-copy`,\n code: `${row.code}-copy`,\n description: `${row.description}-copy`,\n chartConfig: row.chartConfig,\n config: row.config,\n listData: row.listData,\n };\n save(form)\n .then(() => {\n ElMessage.success('复制成功');\n getStatementList(true);\n })\n .catch(() => {\n ElMessage.error('复制失败');\n });\n });\n};\n\nconst 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\nconst cancelForm = () => {\n dialogFormVisible.value = false;\n form.id = undefined;\n form.name = '';\n form.code = '';\n form.description = '';\n};\nconst saveForm = async () => {\n await save(form);\n getStatementList(true);\n cancelForm();\n};\n\n//搜索报表\nconst onSearch = (e?) => {\n if (e) {\n e.preventDefault();\n e.stopPropagation();\n }\n getStatementList(false);\n};\n\n//重置\nconst 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 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 .form-context {\n flex: 1;\n margin: 0 10px;\n display: flex;\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","lockEditor","ElMessageBox","unlockEditor","toView","onMounted","dialogFormVisible","form","toAddForm","toEditor","toCopy","toDelete","del","cancelForm","saveForm","onSearch","onReset","watch","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_hoisted_3","_cache","$event","_createTextVNode","_unref","rct","_createVNode","ElButton","_hoisted_4","ElFormItem","ElInput","ElTable","ElTableColumn","_withCtx","scope","ElPagination","ElDialog","_hoisted_5","ElForm"],"mappings":"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"}