liyu-pc-base 1.0.717 → 1.0.719

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.
@@ -2,12 +2,12 @@ import { F as e, o as t } from "./init-plugin-CvgtEpwY.js";
2
2
  import { t as n } from "./_plugin-vue_export-helper-B3ysoDQm.js";
3
3
  import { getApiData as r } from "./api/api-model.js";
4
4
  import { exportJsonToExcel as i } from "./utils/excel.js";
5
- import { Fragment as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createTextVNode as u, createVNode as d, defineComponent as f, onMounted as p, openBlock as m, ref as h, resolveComponent as g, shallowRef as _, toDisplayString as v, unref as y, withCtx as b } from "vue";
6
- import { message as x } from "ant-design-vue";
7
- import { DownloadOutlined as S, PlusOutlined as C, UploadOutlined as w } from "@ant-design/icons-vue";
8
- import { read as T, utils as E } from "xlsx";
5
+ import { Fragment as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createTextVNode as u, createVNode as d, defineComponent as f, onMounted as p, openBlock as m, ref as h, resolveComponent as g, toDisplayString as _, unref as v, withCtx as y } from "vue";
6
+ import { message as b } from "ant-design-vue";
7
+ import { DownloadOutlined as x, PlusOutlined as S, UploadOutlined as C } from "@ant-design/icons-vue";
8
+ import { read as w, utils as T } from "xlsx";
9
9
  //#region src/components/batchCreateUser/batchCreateUser.vue?vue&type=script&setup=true&lang.ts
10
- var D = { class: "batch-toolbar" }, O = { class: "batch-tip" }, k = { key: 1 }, A = { key: 1 }, j = "id", M = /*#__PURE__*/ n(/* @__PURE__ */ f({
10
+ var E = { class: "batch-toolbar" }, D = { class: "batch-tip" }, O = { key: 1 }, k = { key: 1 }, A = "id", j = /*#__PURE__*/ n(/* @__PURE__ */ f({
11
11
  __name: "batchCreateUser",
12
12
  props: {
13
13
  title: {},
@@ -15,8 +15,8 @@ var D = { class: "batch-toolbar" }, O = { class: "batch-tip" }, k = { key: 1 },
15
15
  },
16
16
  emits: ["cancel", "ok"],
17
17
  setup(n, { emit: f }) {
18
- let M = f, N = h(!0), P = h(!1), F = h([]), I = h(0), L = h([]), R = _([]), z = h(""), B = e(), V = B.currentOrg, H = (() => {
19
- let e = B.person?.manage_type;
18
+ let j = f, M = h(!0), N = h(!1), P = h([]), F = h(0), I = h([]), L = h([]), R = h(""), z = e(), B = z.currentOrg, V = (() => {
19
+ let e = z.person?.manage_type;
20
20
  return e === 2 ? [
21
21
  {
22
22
  label: "普通用户",
@@ -40,7 +40,7 @@ var D = { class: "batch-toolbar" }, O = { class: "batch-tip" }, k = { key: 1 },
40
40
  label: "普通用户",
41
41
  value: 0
42
42
  }];
43
- })(), U = [
43
+ })(), H = [
44
44
  {
45
45
  title: "序号",
46
46
  dataIndex: "index",
@@ -63,23 +63,23 @@ var D = { class: "batch-toolbar" }, O = { class: "batch-tip" }, k = { key: 1 },
63
63
  width: 140,
64
64
  fixed: "right"
65
65
  }
66
- ], W = 0, G = () => `row_${++W}`, K = () => {
67
- let e = G();
68
- z.value = e, R.value = [...R.value, {
66
+ ], U = 0, W = () => `row_${++U}`, G = () => {
67
+ let e = W();
68
+ R.value = e, L.value = [...L.value, {
69
69
  id: e,
70
70
  username: "",
71
71
  realname: ""
72
72
  }];
73
- }, q = (e) => {
74
- z.value = e.id, R.value = [...R.value];
73
+ }, K = (e) => {
74
+ R.value = e.id, L.value = [...L.value];
75
+ }, q = () => {
76
+ R.value = "", L.value = [...L.value];
75
77
  }, J = () => {
76
- z.value = "", R.value = [...R.value];
77
- }, Y = () => {
78
- R.value = [];
79
- }, X = (e) => {
80
- let t = R.value.findIndex((t) => t.id === e.id);
81
- t > -1 && R.value.splice(t, 1), R.value = [...R.value];
82
- }, Z = () => {
78
+ L.value = [];
79
+ }, Y = (e) => {
80
+ let t = L.value.findIndex((t) => t.id === e.id);
81
+ t > -1 && L.value.splice(t, 1), L.value = [...L.value];
82
+ }, X = () => {
83
83
  i({
84
84
  header: ["账号", "姓名"],
85
85
  data: [],
@@ -88,11 +88,11 @@ var D = { class: "batch-toolbar" }, O = { class: "batch-tip" }, k = { key: 1 },
88
88
  autoWidth: !0,
89
89
  percent: h(0)
90
90
  });
91
- }, Q = (e) => {
91
+ }, Z = (e) => {
92
92
  let t = new FileReader();
93
93
  return t.onload = (e) => {
94
94
  try {
95
- let t = T(new Uint8Array(e.target.result), { type: "array" }), n = t.SheetNames[0], r = t.Sheets[n], i = E.sheet_to_json(r, { header: 1 }), a = (i[0] || []).map((e) => String(e ?? "").trim().toLowerCase()), o = a.findIndex((e) => [
95
+ let t = w(new Uint8Array(e.target.result), { type: "array" }), n = t.SheetNames[0], r = t.Sheets[n], i = T.sheet_to_json(r, { header: 1 }), a = (i[0] || []).map((e) => String(e ?? "").trim().toLowerCase()), o = a.findIndex((e) => [
96
96
  "账号",
97
97
  "用户名",
98
98
  "username"
@@ -103,113 +103,113 @@ var D = { class: "batch-toolbar" }, O = { class: "batch-tip" }, k = { key: 1 },
103
103
  "name"
104
104
  ].includes(e));
105
105
  if (o === -1 && s === -1) {
106
- x.warning("未识别到“账号/姓名”列,请使用下载的模板");
106
+ b.warning("未识别到“账号/姓名”列,请使用下载的模板");
107
107
  return;
108
108
  }
109
109
  let c = i.slice(1).filter((e) => e && e.some((e) => e !== "" && e != null)), l = 0, u = [];
110
110
  c.forEach((e) => {
111
111
  let t = o > -1 ? String(e[o] ?? "").trim() : "", n = s > -1 ? String(e[s] ?? "").trim() : "";
112
112
  !t && !n || (u.push({
113
- id: G(),
113
+ id: W(),
114
114
  username: t,
115
115
  realname: n
116
116
  }), l++);
117
- }), R.value = [...R.value, ...u], l > 0 ? x.success(`已导入 ${l} 条`) : x.info("文件中没有可导入的数据");
117
+ }), L.value = [...L.value, ...u], l > 0 ? b.success(`已导入 ${l} 条`) : b.info("文件中没有可导入的数据");
118
118
  } catch (e) {
119
- console.error(e), x.error("解析 Excel 失败");
119
+ console.error(e), b.error("解析 Excel 失败");
120
120
  }
121
121
  }, t.readAsArrayBuffer(e), !1;
122
- }, $ = async () => {
123
- if (!F.value || F.value.length === 0) {
124
- x.error("请至少选择一个组织");
122
+ }, Q = async () => {
123
+ if (!P.value || P.value.length === 0) {
124
+ b.error("请至少选择一个组织");
125
125
  return;
126
126
  }
127
- if (I.value === null || I.value === void 0) {
128
- x.error("请选择用户类型");
127
+ if (F.value === null || F.value === void 0) {
128
+ b.error("请选择用户类型");
129
129
  return;
130
130
  }
131
- if (R.value.length === 0) {
132
- x.error("请至少添加一条用户信息");
131
+ if (L.value.length === 0) {
132
+ b.error("请至少添加一条用户信息");
133
133
  return;
134
134
  }
135
135
  let e = /* @__PURE__ */ new Set();
136
- for (let t of R.value) {
136
+ for (let t of L.value) {
137
137
  let n = (t.username || "").trim(), r = (t.realname || "").trim();
138
138
  if (!n) {
139
- x.error("账号不能为空,请检查表格");
139
+ b.error("账号不能为空,请检查表格");
140
140
  return;
141
141
  }
142
142
  if (!r) {
143
- x.error(`账号 [${n}] 的姓名不能为空`);
143
+ b.error(`账号 [${n}] 的姓名不能为空`);
144
144
  return;
145
145
  }
146
146
  if (e.has(n)) {
147
- x.error(`账号 [${n}] 重复,请检查`);
147
+ b.error(`账号 [${n}] 重复,请检查`);
148
148
  return;
149
149
  }
150
150
  e.add(n);
151
151
  }
152
152
  let n = {
153
- org_ids: F.value,
154
- manage_type: I.value,
155
- user_list: R.value.map((e) => ({
153
+ org_ids: P.value,
154
+ manage_type: F.value,
155
+ user_list: L.value.map((e) => ({
156
156
  username: (e.username || "").trim(),
157
157
  realname: (e.realname || "").trim()
158
158
  })),
159
- org_id: V?.id
159
+ org_id: B?.id
160
160
  };
161
- P.value = !0;
161
+ N.value = !0;
162
162
  try {
163
- await r(n, "/sys/create_batch_user"), x.success("批量创建完成"), t()?.emit("refresh"), M("ok");
163
+ await r(n, "/sys/create_batch_user"), b.success("批量创建完成"), t()?.emit("refresh"), j("ok");
164
164
  } catch (e) {
165
165
  console.error(e);
166
166
  } finally {
167
- P.value = !1;
167
+ N.value = !1;
168
168
  }
169
- }, ee = () => M("cancel");
169
+ }, $ = () => j("cancel");
170
170
  return p(async () => {
171
171
  try {
172
172
  let e = await r({ is_pagination: !1 }, "/org/query_org_for_person_admin"), t = e?.data ?? e ?? [];
173
- L.value = Array.isArray(t) ? t : [];
173
+ I.value = Array.isArray(t) ? t : [];
174
174
  } catch (e) {
175
175
  console.error("加载组织列表失败", e);
176
176
  }
177
177
  }), (e, t) => {
178
- let n = g("a-select"), r = g("a-form-item"), i = g("a-col"), f = g("a-row"), p = g("a-form"), h = g("a-button"), _ = g("a-upload"), x = g("a-popconfirm"), T = g("a-input"), E = g("a-space"), M = g("s-table"), B = g("a-modal");
178
+ let n = g("a-select"), r = g("a-form-item"), i = g("a-col"), f = g("a-row"), p = g("a-form"), h = g("a-button"), b = g("a-upload"), w = g("a-popconfirm"), T = g("a-input"), j = g("a-space"), z = g("s-table"), B = g("a-modal");
179
179
  return m(), o(B, {
180
180
  title: e.title,
181
181
  width: "900px",
182
- open: N.value,
182
+ open: M.value,
183
183
  bodyStyle: {
184
184
  height: "75vh",
185
185
  overflowY: "auto",
186
186
  padding: "0 24px"
187
187
  },
188
- "confirm-loading": P.value,
188
+ "confirm-loading": N.value,
189
189
  "cancel-text": "取消",
190
190
  "ok-text": "确定",
191
191
  centered: "",
192
192
  "destroy-on-close": "",
193
- onCancel: ee,
194
- onOk: $
193
+ onCancel: $,
194
+ onOk: Q
195
195
  }, {
196
- default: b(() => [
196
+ default: y(() => [
197
197
  d(p, {
198
198
  layout: "vertical",
199
199
  size: "small"
200
200
  }, {
201
- default: b(() => [d(f, { gutter: 16 }, {
202
- default: b(() => [d(i, { span: 12 }, {
203
- default: b(() => [d(r, {
201
+ default: y(() => [d(f, { gutter: 16 }, {
202
+ default: y(() => [d(i, { span: 12 }, {
203
+ default: y(() => [d(r, {
204
204
  label: "组织",
205
205
  required: ""
206
206
  }, {
207
- default: b(() => [d(n, {
208
- value: F.value,
209
- "onUpdate:value": t[0] ||= (e) => F.value = e,
207
+ default: y(() => [d(n, {
208
+ value: P.value,
209
+ "onUpdate:value": t[0] ||= (e) => P.value = e,
210
210
  mode: "multiple",
211
211
  placeholder: "请选择组织(可多选)",
212
- options: L.value,
212
+ options: I.value,
213
213
  "field-names": {
214
214
  label: "name",
215
215
  value: "id"
@@ -222,15 +222,15 @@ var D = { class: "batch-toolbar" }, O = { class: "batch-tip" }, k = { key: 1 },
222
222
  })]),
223
223
  _: 1
224
224
  }), d(i, { span: 12 }, {
225
- default: b(() => [d(r, {
225
+ default: y(() => [d(r, {
226
226
  label: "用户类型",
227
227
  required: ""
228
228
  }, {
229
- default: b(() => [d(n, {
230
- value: I.value,
231
- "onUpdate:value": t[1] ||= (e) => I.value = e,
229
+ default: y(() => [d(n, {
230
+ value: F.value,
231
+ "onUpdate:value": t[1] ||= (e) => F.value = e,
232
232
  placeholder: "请选择用户类型",
233
- options: y(H)
233
+ options: v(V)
234
234
  }, null, 8, ["value", "options"])]),
235
235
  _: 1
236
236
  })]),
@@ -240,93 +240,93 @@ var D = { class: "batch-toolbar" }, O = { class: "batch-tip" }, k = { key: 1 },
240
240
  })]),
241
241
  _: 1
242
242
  }),
243
- l("div", D, [
243
+ l("div", E, [
244
244
  d(h, {
245
245
  type: "primary",
246
- onClick: K
246
+ onClick: G
247
247
  }, {
248
- default: b(() => [d(y(C)), t[4] ||= u(" 添加 ")]),
248
+ default: y(() => [d(v(S)), t[4] ||= u(" 添加 ")]),
249
249
  _: 1
250
250
  }),
251
- d(_, {
251
+ d(b, {
252
252
  "show-upload-list": !1,
253
- "before-upload": Q,
253
+ "before-upload": Z,
254
254
  accept: ".xlsx,.xls"
255
255
  }, {
256
- default: b(() => [d(h, null, {
257
- default: b(() => [d(y(w)), t[5] ||= u(" 导入 ")]),
256
+ default: y(() => [d(h, null, {
257
+ default: y(() => [d(v(C)), t[5] ||= u(" 导入 ")]),
258
258
  _: 1
259
259
  })]),
260
260
  _: 1
261
261
  }),
262
- d(h, { onClick: Z }, {
263
- default: b(() => [d(y(S)), t[6] ||= u(" 下载导入模板 ")]),
262
+ d(h, { onClick: X }, {
263
+ default: y(() => [d(v(x)), t[6] ||= u(" 下载导入模板 ")]),
264
264
  _: 1
265
265
  }),
266
- R.value.length > 0 ? (m(), o(x, {
266
+ L.value.length > 0 ? (m(), o(w, {
267
267
  key: 0,
268
268
  title: "确认清空所有数据?",
269
- onConfirm: t[2] ||= (e) => Y()
269
+ onConfirm: t[2] ||= (e) => J()
270
270
  }, {
271
- default: b(() => [d(h, {
271
+ default: y(() => [d(h, {
272
272
  type: "default",
273
273
  danger: ""
274
274
  }, {
275
- default: b(() => t[7] ||= [u(" 清空 ")]),
275
+ default: y(() => t[7] ||= [u(" 清空 ")]),
276
276
  _: 1
277
277
  })]),
278
278
  _: 1
279
279
  })) : s("", !0),
280
- l("span", O, "共 " + v(R.value.length) + " 条", 1)
280
+ l("span", D, "共 " + _(L.value.length) + " 条", 1)
281
281
  ]),
282
- d(M, {
283
- columns: U,
284
- "data-source": R.value,
285
- rowKey: j,
282
+ d(z, {
283
+ columns: H,
284
+ "data-source": L.value,
285
+ rowKey: A,
286
286
  bordered: !0,
287
287
  size: "small",
288
288
  pagination: !1,
289
289
  scroll: { y: 320 }
290
290
  }, {
291
- bodyCell: b(({ column: e, index: n, record: r }) => [e.dataIndex === "index" ? (m(), c(a, { key: 0 }, [u(v(n + 1), 1)], 64)) : e.dataIndex === "username" ? (m(), c(a, { key: 1 }, [r.id === z.value ? (m(), o(T, {
291
+ bodyCell: y(({ column: e, index: n, record: r, recordIndexs: i }) => [e.dataIndex === "index" ? (m(), c(a, { key: 0 }, [u(_(n + 1), 1)], 64)) : e.dataIndex === "username" ? (m(), c(a, { key: 1 }, [r.id === R.value ? (m(), o(T, {
292
292
  key: 0,
293
- value: r.username,
294
- "onUpdate:value": (e) => r.username = e,
293
+ value: L.value[i[0]].username,
294
+ "onUpdate:value": (e) => L.value[i[0]].username = e,
295
295
  placeholder: "请输入账号",
296
296
  "allow-clear": ""
297
- }, null, 8, ["value", "onUpdate:value"])) : (m(), c("span", k, v(r.username), 1))], 64)) : e.dataIndex === "realname" ? (m(), c(a, { key: 2 }, [r.id === z.value ? (m(), o(T, {
297
+ }, null, 8, ["value", "onUpdate:value"])) : (m(), c("span", O, _(r.username), 1))], 64)) : e.dataIndex === "realname" ? (m(), c(a, { key: 2 }, [r.id === R.value ? (m(), o(T, {
298
298
  key: 0,
299
- value: r.realname,
300
- "onUpdate:value": (e) => r.realname = e,
299
+ value: L.value[i[0]].realname,
300
+ "onUpdate:value": (e) => L.value[i[0]].realname = e,
301
301
  placeholder: "请输入姓名",
302
302
  "allow-clear": ""
303
- }, null, 8, ["value", "onUpdate:value"])) : (m(), c("span", A, v(r.realname), 1))], 64)) : e.dataIndex === "action" ? (m(), o(E, { key: 3 }, {
304
- default: b(() => [r.id === z.value ? (m(), o(h, {
303
+ }, null, 8, ["value", "onUpdate:value"])) : (m(), c("span", k, _(r.realname), 1))], 64)) : e.dataIndex === "action" ? (m(), o(j, { key: 3 }, {
304
+ default: y(() => [r.id === R.value ? (m(), o(h, {
305
305
  key: 1,
306
306
  type: "link",
307
307
  size: "small",
308
- onClick: t[3] ||= (e) => J()
308
+ onClick: t[3] ||= (e) => q()
309
309
  }, {
310
- default: b(() => t[9] ||= [u(" 完成 ")]),
310
+ default: y(() => t[9] ||= [u(" 完成 ")]),
311
311
  _: 1
312
312
  })) : (m(), o(h, {
313
313
  key: 0,
314
314
  type: "link",
315
315
  size: "small",
316
- onClick: (e) => q(r)
316
+ onClick: (e) => K(r)
317
317
  }, {
318
- default: b(() => t[8] ||= [u(" 编辑 ")]),
318
+ default: y(() => t[8] ||= [u(" 编辑 ")]),
319
319
  _: 2
320
- }, 1032, ["onClick"])), d(x, {
320
+ }, 1032, ["onClick"])), d(w, {
321
321
  title: "确认删除该行?",
322
- onConfirm: (e) => X(r)
322
+ onConfirm: (e) => Y(r)
323
323
  }, {
324
- default: b(() => [d(h, {
324
+ default: y(() => [d(h, {
325
325
  type: "link",
326
326
  size: "small",
327
327
  danger: ""
328
328
  }, {
329
- default: b(() => t[10] ||= [u(" 删除 ")]),
329
+ default: y(() => t[10] ||= [u(" 删除 ")]),
330
330
  _: 1
331
331
  })]),
332
332
  _: 2
@@ -344,6 +344,6 @@ var D = { class: "batch-toolbar" }, O = { class: "batch-tip" }, k = { key: 1 },
344
344
  ]);
345
345
  };
346
346
  }
347
- }), [["__scopeId", "data-v-aecb1aff"]]);
347
+ }), [["__scopeId", "data-v-237ef1f1"]]);
348
348
  //#endregion
349
- export { M as default };
349
+ export { j as default };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batchCreateUser-B4zAXSR6.js","names":[],"sources":["../src/components/batchCreateUser/batchCreateUser.vue","../src/components/batchCreateUser/batchCreateUser.vue"],"sourcesContent":["<template>\n <a-modal\n :title=\"title\"\n width=\"900px\"\n :open=\"open\"\n :bodyStyle=\"{ height: '75vh', overflowY: 'auto', padding: '0 24px' }\"\n :confirm-loading=\"loading\"\n cancel-text=\"取消\"\n ok-text=\"确定\"\n centered\n destroy-on-close\n @cancel=\"handleCancel\"\n @ok=\"handleOk\"\n >\n <a-form\n layout=\"vertical\"\n size=\"small\"\n >\n <a-row :gutter=\"16\">\n <a-col :span=\"12\">\n <a-form-item\n label=\"组织\"\n required\n >\n <a-select\n v-model:value=\"orgIds\"\n mode=\"multiple\"\n placeholder=\"请选择组织(可多选)\"\n :options=\"orgOptions\"\n :field-names=\"{ label: 'name', value: 'id' }\"\n allow-clear\n show-search\n option-filter-prop=\"name\"\n />\n </a-form-item>\n </a-col>\n <a-col :span=\"12\">\n <a-form-item\n label=\"用户类型\"\n required\n >\n <a-select\n v-model:value=\"manageType\"\n placeholder=\"请选择用户类型\"\n :options=\"manageTypeOptions\"\n />\n </a-form-item>\n </a-col>\n </a-row>\n </a-form>\n\n <div class=\"batch-toolbar\">\n <a-button\n type=\"primary\"\n @click=\"handleAddRow\"\n >\n <plus-outlined />\n 添加\n </a-button>\n <a-upload\n :show-upload-list=\"false\"\n :before-upload=\"beforeImportUpload\"\n accept=\".xlsx,.xls\"\n >\n <a-button>\n <upload-outlined />\n 导入\n </a-button>\n </a-upload>\n <a-button @click=\"handleDownloadTemplate\">\n <download-outlined />\n 下载导入模板\n </a-button>\n <a-popconfirm\n title=\"确认清空所有数据?\"\n @confirm=\"handleClear()\"\n v-if=\"dataSource.length > 0\"\n >\n <a-button\n type=\"default\"\n danger\n >\n 清空\n </a-button>\n </a-popconfirm>\n <span class=\"batch-tip\">共 {{ dataSource.length }} 条</span>\n </div>\n\n <s-table\n :columns=\"columns\"\n :data-source=\"dataSource\"\n :rowKey=\"rowKey\"\n :bordered=\"true\"\n size=\"small\"\n :pagination=\"false\"\n :scroll=\"{ y: 320 }\"\n >\n <template #bodyCell=\"{ column, index, record, recordIndexs }\">\n <template v-if=\"column.dataIndex === 'index'\">\n {{ index + 1 }}\n </template>\n <template v-else-if=\"column.dataIndex === 'username'\">\n <a-input\n v-if=\"record.id === currentEditId\"\n v-model:value=\"dataSource[recordIndexs[0]].username\"\n placeholder=\"请输入账号\"\n allow-clear\n />\n <span v-else>{{ record.username }}</span>\n </template>\n <template v-else-if=\"column.dataIndex === 'realname'\">\n <a-input\n v-if=\"record.id === currentEditId\"\n v-model:value=\"dataSource[recordIndexs[0]].realname\"\n placeholder=\"请输入姓名\"\n allow-clear\n />\n <span v-else>{{ record.realname }}</span>\n </template>\n <template v-else-if=\"column.dataIndex === 'action'\">\n <a-space>\n <a-button\n type=\"link\"\n size=\"small\"\n v-if=\"record.id !== currentEditId\"\n @click=\"handleEdit(record)\"\n >\n 编辑\n </a-button>\n <a-button\n type=\"link\"\n size=\"small\"\n v-else\n @click=\"handleComplete()\"\n >\n 完成\n </a-button>\n <a-popconfirm\n title=\"确认删除该行?\"\n @confirm=\"handleDelete(record)\"\n >\n <a-button\n type=\"link\"\n size=\"small\"\n danger\n >\n 删除\n </a-button>\n </a-popconfirm>\n </a-space>\n </template>\n </template>\n </s-table>\n </a-modal>\n</template>\n\n<script setup lang=\"ts\">\nimport { DownloadOutlined, PlusOutlined, UploadOutlined } from '@ant-design/icons-vue';\nimport { message } from 'ant-design-vue';\nimport { read, utils } from 'xlsx';\nimport type { Ref } from 'vue';\nimport { onMounted, ref } from 'vue';\nimport { event_obj, useUserStore } from 'liyu-pc-base/init-plugin';\nimport { getApiData } from 'liyu-pc-base/api/api-model';\nimport { exportJsonToExcel } from 'liyu-pc-base/utils/excel';\n\ninterface Props {\n title?: string;\n record?: any;\n}\nconst props = defineProps<Props>();\nconst emit = defineEmits(['cancel', 'ok']);\n\nconst open = ref(true);\nconst loading = ref(false);\nconst orgIds = ref<any[]>([]);\nconst manageType = ref<number>(0);\nconst orgOptions = ref<any[]>([]);\nconst dataSource = ref<any[]>([]);\nconst currentEditId = ref<string>('');\n\nconst userStore = useUserStore();\nconst current_org = userStore.currentOrg;\n\n// 用户类型可选项:受当前账号 manage_type 约束(与 permission-user 保持一致)\nconst manageTypeOptions = (() => {\n const curr = userStore.person?.manage_type;\n if (curr === 2) {\n return [\n { label: '普通用户', value: 0 },\n { label: '管理员', value: 1 },\n { label: '超级管理员', value: 2 },\n ];\n } else if (curr === 1) {\n return [\n { label: '普通用户', value: 0 },\n { label: '管理员', value: 1 },\n ];\n }\n return [{ label: '普通用户', value: 0 }];\n})();\n\nconst columns = [\n { title: '序号', dataIndex: 'index', width: 70, fixed: 'left' },\n { title: '账号', dataIndex: 'username', width: 220 },\n { title: '姓名', dataIndex: 'realname', width: 220 },\n { title: '操作', dataIndex: 'action', width: 140, fixed: 'right' },\n];\nconst rowKey = 'id';\n\nlet uid = 0;\nconst genId = () => `row_${++uid}`;\n\nconst handleAddRow = () => {\n const id = genId();\n currentEditId.value = id;\n dataSource.value = [...dataSource.value, { id, username: '', realname: '' }];\n};\n\nconst handleEdit = (record: any) => {\n currentEditId.value = record.id;\n dataSource.value = [...dataSource.value];\n};\nconst handleComplete = () => {\n currentEditId.value = '';\n dataSource.value = [...dataSource.value];\n};\nconst handleClear = () => {\n dataSource.value = [];\n};\n\nconst handleDelete = (record: any) => {\n const idx = dataSource.value.findIndex(r => r.id === record.id);\n if (idx > -1) dataSource.value.splice(idx, 1);\n dataSource.value = [...dataSource.value];\n};\n\n// 下载导入模板(账号 / 姓名 两列)\nconst handleDownloadTemplate = () => {\n const percent: Ref<number> = ref(0);\n exportJsonToExcel({\n header: ['账号', '姓名'],\n data: [],\n filename: '批量创建用户导入模板',\n bookType: 'xlsx',\n autoWidth: true,\n percent,\n } as any);\n};\n\n// 导入 Excel:解析“账号 / 姓名”列,追加到表格\nconst beforeImportUpload = (file: any) => {\n const reader = new FileReader();\n reader.onload = (e: any) => {\n try {\n const data = new Uint8Array(e.target.result);\n const workbook = read(data, { type: 'array' });\n const firstSheet = workbook.SheetNames[0];\n const worksheet = workbook.Sheets[firstSheet];\n const sheetData: any[][] = utils.sheet_to_json(worksheet, { header: 1 });\n const headers = (sheetData[0] || []).map((h: any) =>\n String(h ?? '')\n .trim()\n .toLowerCase(),\n );\n const userCol = headers.findIndex(h => ['账号', '用户名', 'username'].includes(h));\n const nameCol = headers.findIndex(h => ['姓名', '名字', 'realname', 'name'].includes(h));\n if (userCol === -1 && nameCol === -1) {\n message.warning('未识别到“账号/姓名”列,请使用下载的模板');\n return;\n }\n const rows = sheetData\n .slice(1)\n .filter((row: any[]) => row && row.some(c => c !== '' && c != null));\n let added = 0;\n const newRows = [];\n rows.forEach((row: any[]) => {\n const username = userCol > -1 ? String(row[userCol] ?? '').trim() : '';\n const realname = nameCol > -1 ? String(row[nameCol] ?? '').trim() : '';\n if (!username && !realname) return;\n newRows.push({ id: genId(), username, realname });\n added++;\n });\n dataSource.value = [...dataSource.value, ...newRows];\n if (added > 0) message.success(`已导入 ${added} 条`);\n else message.info('文件中没有可导入的数据');\n } catch (err) {\n console.error(err);\n message.error('解析 Excel 失败');\n }\n };\n reader.readAsArrayBuffer(file);\n return false; // 阻止自动上传\n};\n\nconst handleOk = async () => {\n // 前置校验\n if (!orgIds.value || orgIds.value.length === 0) {\n message.error('请至少选择一个组织');\n return;\n }\n if (manageType.value === null || manageType.value === undefined) {\n message.error('请选择用户类型');\n return;\n }\n if (dataSource.value.length === 0) {\n message.error('请至少添加一条用户信息');\n return;\n }\n // 校验账号/姓名非空,且账号不重复\n const seen = new Set<string>();\n for (const row of dataSource.value) {\n const username = (row.username || '').trim();\n const realname = (row.realname || '').trim();\n if (!username) {\n message.error('账号不能为空,请检查表格');\n return;\n }\n if (!realname) {\n message.error(`账号 [${username}] 的姓名不能为空`);\n return;\n }\n if (seen.has(username)) {\n message.error(`账号 [${username}] 重复,请检查`);\n return;\n }\n seen.add(username);\n }\n\n const payload = {\n org_ids: orgIds.value,\n manage_type: manageType.value,\n user_list: dataSource.value.map(r => ({\n username: (r.username || '').trim(),\n realname: (r.realname || '').trim(),\n })),\n org_id: current_org?.id,\n };\n\n loading.value = true;\n try {\n await getApiData(payload, '/sys/create_batch_user');\n message.success(`批量创建完成`);\n event_obj()?.emit('refresh');\n emit('ok');\n } catch (err) {\n console.error(err);\n // 错误提示已由请求拦截器统一处理\n } finally {\n loading.value = false;\n }\n};\n\nconst handleCancel = () => emit('cancel');\n\nonMounted(async () => {\n try {\n const res: any = await getApiData({ is_pagination: false }, '/org/query_org_for_person_admin');\n const list = res?.data ?? res ?? [];\n orgOptions.value = Array.isArray(list) ? list : [];\n } catch (err) {\n console.error('加载组织列表失败', err);\n }\n});\n</script>\n\n<style scoped lang=\"less\">\n.batch-toolbar {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 12px;\n}\n.batch-tip {\n margin-left: auto;\n color: #999;\n font-size: 12px;\n}\n</style>\n","<template>\n <a-modal\n :title=\"title\"\n width=\"900px\"\n :open=\"open\"\n :bodyStyle=\"{ height: '75vh', overflowY: 'auto', padding: '0 24px' }\"\n :confirm-loading=\"loading\"\n cancel-text=\"取消\"\n ok-text=\"确定\"\n centered\n destroy-on-close\n @cancel=\"handleCancel\"\n @ok=\"handleOk\"\n >\n <a-form\n layout=\"vertical\"\n size=\"small\"\n >\n <a-row :gutter=\"16\">\n <a-col :span=\"12\">\n <a-form-item\n label=\"组织\"\n required\n >\n <a-select\n v-model:value=\"orgIds\"\n mode=\"multiple\"\n placeholder=\"请选择组织(可多选)\"\n :options=\"orgOptions\"\n :field-names=\"{ label: 'name', value: 'id' }\"\n allow-clear\n show-search\n option-filter-prop=\"name\"\n />\n </a-form-item>\n </a-col>\n <a-col :span=\"12\">\n <a-form-item\n label=\"用户类型\"\n required\n >\n <a-select\n v-model:value=\"manageType\"\n placeholder=\"请选择用户类型\"\n :options=\"manageTypeOptions\"\n />\n </a-form-item>\n </a-col>\n </a-row>\n </a-form>\n\n <div class=\"batch-toolbar\">\n <a-button\n type=\"primary\"\n @click=\"handleAddRow\"\n >\n <plus-outlined />\n 添加\n </a-button>\n <a-upload\n :show-upload-list=\"false\"\n :before-upload=\"beforeImportUpload\"\n accept=\".xlsx,.xls\"\n >\n <a-button>\n <upload-outlined />\n 导入\n </a-button>\n </a-upload>\n <a-button @click=\"handleDownloadTemplate\">\n <download-outlined />\n 下载导入模板\n </a-button>\n <a-popconfirm\n title=\"确认清空所有数据?\"\n @confirm=\"handleClear()\"\n v-if=\"dataSource.length > 0\"\n >\n <a-button\n type=\"default\"\n danger\n >\n 清空\n </a-button>\n </a-popconfirm>\n <span class=\"batch-tip\">共 {{ dataSource.length }} 条</span>\n </div>\n\n <s-table\n :columns=\"columns\"\n :data-source=\"dataSource\"\n :rowKey=\"rowKey\"\n :bordered=\"true\"\n size=\"small\"\n :pagination=\"false\"\n :scroll=\"{ y: 320 }\"\n >\n <template #bodyCell=\"{ column, index, record, recordIndexs }\">\n <template v-if=\"column.dataIndex === 'index'\">\n {{ index + 1 }}\n </template>\n <template v-else-if=\"column.dataIndex === 'username'\">\n <a-input\n v-if=\"record.id === currentEditId\"\n v-model:value=\"dataSource[recordIndexs[0]].username\"\n placeholder=\"请输入账号\"\n allow-clear\n />\n <span v-else>{{ record.username }}</span>\n </template>\n <template v-else-if=\"column.dataIndex === 'realname'\">\n <a-input\n v-if=\"record.id === currentEditId\"\n v-model:value=\"dataSource[recordIndexs[0]].realname\"\n placeholder=\"请输入姓名\"\n allow-clear\n />\n <span v-else>{{ record.realname }}</span>\n </template>\n <template v-else-if=\"column.dataIndex === 'action'\">\n <a-space>\n <a-button\n type=\"link\"\n size=\"small\"\n v-if=\"record.id !== currentEditId\"\n @click=\"handleEdit(record)\"\n >\n 编辑\n </a-button>\n <a-button\n type=\"link\"\n size=\"small\"\n v-else\n @click=\"handleComplete()\"\n >\n 完成\n </a-button>\n <a-popconfirm\n title=\"确认删除该行?\"\n @confirm=\"handleDelete(record)\"\n >\n <a-button\n type=\"link\"\n size=\"small\"\n danger\n >\n 删除\n </a-button>\n </a-popconfirm>\n </a-space>\n </template>\n </template>\n </s-table>\n </a-modal>\n</template>\n\n<script setup lang=\"ts\">\nimport { DownloadOutlined, PlusOutlined, UploadOutlined } from '@ant-design/icons-vue';\nimport { message } from 'ant-design-vue';\nimport { read, utils } from 'xlsx';\nimport type { Ref } from 'vue';\nimport { onMounted, ref } from 'vue';\nimport { event_obj, useUserStore } from 'liyu-pc-base/init-plugin';\nimport { getApiData } from 'liyu-pc-base/api/api-model';\nimport { exportJsonToExcel } from 'liyu-pc-base/utils/excel';\n\ninterface Props {\n title?: string;\n record?: any;\n}\nconst props = defineProps<Props>();\nconst emit = defineEmits(['cancel', 'ok']);\n\nconst open = ref(true);\nconst loading = ref(false);\nconst orgIds = ref<any[]>([]);\nconst manageType = ref<number>(0);\nconst orgOptions = ref<any[]>([]);\nconst dataSource = ref<any[]>([]);\nconst currentEditId = ref<string>('');\n\nconst userStore = useUserStore();\nconst current_org = userStore.currentOrg;\n\n// 用户类型可选项:受当前账号 manage_type 约束(与 permission-user 保持一致)\nconst manageTypeOptions = (() => {\n const curr = userStore.person?.manage_type;\n if (curr === 2) {\n return [\n { label: '普通用户', value: 0 },\n { label: '管理员', value: 1 },\n { label: '超级管理员', value: 2 },\n ];\n } else if (curr === 1) {\n return [\n { label: '普通用户', value: 0 },\n { label: '管理员', value: 1 },\n ];\n }\n return [{ label: '普通用户', value: 0 }];\n})();\n\nconst columns = [\n { title: '序号', dataIndex: 'index', width: 70, fixed: 'left' },\n { title: '账号', dataIndex: 'username', width: 220 },\n { title: '姓名', dataIndex: 'realname', width: 220 },\n { title: '操作', dataIndex: 'action', width: 140, fixed: 'right' },\n];\nconst rowKey = 'id';\n\nlet uid = 0;\nconst genId = () => `row_${++uid}`;\n\nconst handleAddRow = () => {\n const id = genId();\n currentEditId.value = id;\n dataSource.value = [...dataSource.value, { id, username: '', realname: '' }];\n};\n\nconst handleEdit = (record: any) => {\n currentEditId.value = record.id;\n dataSource.value = [...dataSource.value];\n};\nconst handleComplete = () => {\n currentEditId.value = '';\n dataSource.value = [...dataSource.value];\n};\nconst handleClear = () => {\n dataSource.value = [];\n};\n\nconst handleDelete = (record: any) => {\n const idx = dataSource.value.findIndex(r => r.id === record.id);\n if (idx > -1) dataSource.value.splice(idx, 1);\n dataSource.value = [...dataSource.value];\n};\n\n// 下载导入模板(账号 / 姓名 两列)\nconst handleDownloadTemplate = () => {\n const percent: Ref<number> = ref(0);\n exportJsonToExcel({\n header: ['账号', '姓名'],\n data: [],\n filename: '批量创建用户导入模板',\n bookType: 'xlsx',\n autoWidth: true,\n percent,\n } as any);\n};\n\n// 导入 Excel:解析“账号 / 姓名”列,追加到表格\nconst beforeImportUpload = (file: any) => {\n const reader = new FileReader();\n reader.onload = (e: any) => {\n try {\n const data = new Uint8Array(e.target.result);\n const workbook = read(data, { type: 'array' });\n const firstSheet = workbook.SheetNames[0];\n const worksheet = workbook.Sheets[firstSheet];\n const sheetData: any[][] = utils.sheet_to_json(worksheet, { header: 1 });\n const headers = (sheetData[0] || []).map((h: any) =>\n String(h ?? '')\n .trim()\n .toLowerCase(),\n );\n const userCol = headers.findIndex(h => ['账号', '用户名', 'username'].includes(h));\n const nameCol = headers.findIndex(h => ['姓名', '名字', 'realname', 'name'].includes(h));\n if (userCol === -1 && nameCol === -1) {\n message.warning('未识别到“账号/姓名”列,请使用下载的模板');\n return;\n }\n const rows = sheetData\n .slice(1)\n .filter((row: any[]) => row && row.some(c => c !== '' && c != null));\n let added = 0;\n const newRows = [];\n rows.forEach((row: any[]) => {\n const username = userCol > -1 ? String(row[userCol] ?? '').trim() : '';\n const realname = nameCol > -1 ? String(row[nameCol] ?? '').trim() : '';\n if (!username && !realname) return;\n newRows.push({ id: genId(), username, realname });\n added++;\n });\n dataSource.value = [...dataSource.value, ...newRows];\n if (added > 0) message.success(`已导入 ${added} 条`);\n else message.info('文件中没有可导入的数据');\n } catch (err) {\n console.error(err);\n message.error('解析 Excel 失败');\n }\n };\n reader.readAsArrayBuffer(file);\n return false; // 阻止自动上传\n};\n\nconst handleOk = async () => {\n // 前置校验\n if (!orgIds.value || orgIds.value.length === 0) {\n message.error('请至少选择一个组织');\n return;\n }\n if (manageType.value === null || manageType.value === undefined) {\n message.error('请选择用户类型');\n return;\n }\n if (dataSource.value.length === 0) {\n message.error('请至少添加一条用户信息');\n return;\n }\n // 校验账号/姓名非空,且账号不重复\n const seen = new Set<string>();\n for (const row of dataSource.value) {\n const username = (row.username || '').trim();\n const realname = (row.realname || '').trim();\n if (!username) {\n message.error('账号不能为空,请检查表格');\n return;\n }\n if (!realname) {\n message.error(`账号 [${username}] 的姓名不能为空`);\n return;\n }\n if (seen.has(username)) {\n message.error(`账号 [${username}] 重复,请检查`);\n return;\n }\n seen.add(username);\n }\n\n const payload = {\n org_ids: orgIds.value,\n manage_type: manageType.value,\n user_list: dataSource.value.map(r => ({\n username: (r.username || '').trim(),\n realname: (r.realname || '').trim(),\n })),\n org_id: current_org?.id,\n };\n\n loading.value = true;\n try {\n await getApiData(payload, '/sys/create_batch_user');\n message.success(`批量创建完成`);\n event_obj()?.emit('refresh');\n emit('ok');\n } catch (err) {\n console.error(err);\n // 错误提示已由请求拦截器统一处理\n } finally {\n loading.value = false;\n }\n};\n\nconst handleCancel = () => emit('cancel');\n\nonMounted(async () => {\n try {\n const res: any = await getApiData({ is_pagination: false }, '/org/query_org_for_person_admin');\n const list = res?.data ?? res ?? [];\n orgOptions.value = Array.isArray(list) ? list : [];\n } catch (err) {\n console.error('加载组织列表失败', err);\n }\n});\n</script>\n\n<style scoped lang=\"less\">\n.batch-toolbar {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 12px;\n}\n.batch-tip {\n margin-left: auto;\n color: #999;\n font-size: 12px;\n}\n</style>\n"],"mappings":";;;;;;;;;gGAgNM,IAAS;;;;;;;;EArCf,IAAM,IAAO,GAEP,IAAO,EAAI,EAAI,GACf,IAAU,EAAI,EAAK,GACnB,IAAS,EAAW,CAAC,CAAC,GACtB,IAAa,EAAY,CAAC,GAC1B,IAAa,EAAW,CAAC,CAAC,GAC1B,IAAa,EAAW,CAAC,CAAC,GAC1B,IAAgB,EAAY,EAAE,GAE9B,IAAY,EAAa,GACzB,IAAc,EAAU,YAGxB,WAA2B;GAC/B,IAAM,IAAO,EAAU,QAAQ;GAa/B,OAZI,MAAS,IACJ;IACL;KAAE,OAAO;KAAQ,OAAO;IAAE;IAC1B;KAAE,OAAO;KAAO,OAAO;IAAE;IACzB;KAAE,OAAO;KAAS,OAAO;IAAE;GAC7B,IACS,MAAS,IACX,CACL;IAAE,OAAO;IAAQ,OAAO;GAAE,GAC1B;IAAE,OAAO;IAAO,OAAO;GAAE,CAC3B,IAEK,CAAC;IAAE,OAAO;IAAQ,OAAO;GAAE,CAAC;EACrC,EAAA,CAAG,GAEG,IAAU;GACd;IAAE,OAAO;IAAM,WAAW;IAAS,OAAO;IAAI,OAAO;GAAO;GAC5D;IAAE,OAAO;IAAM,WAAW;IAAY,OAAO;GAAI;GACjD;IAAE,OAAO;IAAM,WAAW;IAAY,OAAO;GAAI;GACjD;IAAE,OAAO;IAAM,WAAW;IAAU,OAAO;IAAK,OAAO;GAAQ;EACjE,GAGI,IAAM,GACJ,UAAc,OAAO,EAAE,KAEvB,UAAqB;GACzB,IAAM,IAAK,EAAM;GAEjB,AADA,EAAc,QAAQ,GACtB,EAAW,QAAQ,CAAC,GAAG,EAAW,OAAO;IAAE;IAAI,UAAU;IAAI,UAAU;GAAG,CAAC;EAC7E,GAEM,KAAc,MAAgB;GAElC,AADA,EAAc,QAAQ,EAAO,IAC7B,EAAW,QAAQ,CAAC,GAAG,EAAW,KAAK;EACzC,GACM,UAAuB;GAE3B,AADA,EAAc,QAAQ,IACtB,EAAW,QAAQ,CAAC,GAAG,EAAW,KAAK;EACzC,GACM,UAAoB;GACxB,EAAW,QAAQ,CAAC;EACtB,GAEM,KAAgB,MAAgB;GACpC,IAAM,IAAM,EAAW,MAAM,WAAU,MAAK,EAAE,OAAO,EAAO,EAAE;GAE9D,AADI,IAAM,MAAI,EAAW,MAAM,OAAO,GAAK,CAAC,GAC5C,EAAW,QAAQ,CAAC,GAAG,EAAW,KAAK;EACzC,GAGM,UAA+B;GAEnC,EAAkB;IAChB,QAAQ,CAAC,MAAM,IAAI;IACnB,MAAM,CAAC;IACP,UAAU;IACV,UAAU;IACV,WAAW;IACX,SAP2B,EAAI,CAO/B;GACF,CAAQ;EACV,GAGM,KAAsB,MAAc;GACxC,IAAM,IAAS,IAAI,WAAW;GAwC9B,OAvCA,EAAO,UAAU,MAAW;IAC1B,IAAI;KAEF,IAAM,IAAW,EAAK,IADL,WAAW,EAAE,OAAO,MACf,GAAM,EAAE,MAAM,QAAQ,CAAC,GACvC,IAAa,EAAS,WAAW,IACjC,IAAY,EAAS,OAAO,IAC5B,IAAqB,EAAM,cAAc,GAAW,EAAE,QAAQ,EAAE,CAAC,GACjE,KAAW,EAAU,MAAM,CAAC,EAAA,CAAG,KAAK,MACxC,OAAO,KAAK,EAAE,CAAC,CACZ,KAAK,CAAC,CACN,YAAY,CACjB,GACM,IAAU,EAAQ,WAAU,MAAK;MAAC;MAAM;MAAO;KAAU,CAAC,CAAC,SAAS,CAAC,CAAC,GACtE,IAAU,EAAQ,WAAU,MAAK;MAAC;MAAM;MAAM;MAAY;KAAM,CAAC,CAAC,SAAS,CAAC,CAAC;KACnF,IAAI,MAAY,MAAM,MAAY,IAAI;MACpC,EAAQ,QAAQ,uBAAuB;MACvC;KACF;KACA,IAAM,IAAO,EACV,MAAM,CAAC,CAAC,CACR,QAAQ,MAAe,KAAO,EAAI,MAAK,MAAK,MAAM,MAAM,KAAK,IAAI,CAAC,GACjE,IAAQ,GACN,IAAU,CAAC;KASjB,AARA,EAAK,SAAS,MAAe;MAC3B,IAAM,IAAW,IAAU,KAAK,OAAO,EAAI,MAAY,EAAE,CAAC,CAAC,KAAK,IAAI,IAC9D,IAAW,IAAU,KAAK,OAAO,EAAI,MAAY,EAAE,CAAC,CAAC,KAAK,IAAI;MAChE,CAAC,KAAY,CAAC,MAClB,EAAQ,KAAK;OAAE,IAAI,EAAM;OAAG;OAAU;MAAS,CAAC,GAChD;KACF,CAAC,GACD,EAAW,QAAQ,CAAC,GAAG,EAAW,OAAO,GAAG,CAAO,GAC/C,IAAQ,IAAG,EAAQ,QAAQ,OAAO,EAAM,GAAG,IAC1C,EAAQ,KAAK,aAAa;IACjC,SAAS,GAAK;KAEZ,AADA,QAAQ,MAAM,CAAG,GACjB,EAAQ,MAAM,aAAa;IAC7B;GACF,GACA,EAAO,kBAAkB,CAAI,GACtB;EACT,GAEM,IAAW,YAAY;GAE3B,IAAI,CAAC,EAAO,SAAS,EAAO,MAAM,WAAW,GAAG;IAC9C,EAAQ,MAAM,WAAW;IACzB;GACF;GACA,IAAI,EAAW,UAAU,QAAQ,EAAW,UAAU,KAAA,GAAW;IAC/D,EAAQ,MAAM,SAAS;IACvB;GACF;GACA,IAAI,EAAW,MAAM,WAAW,GAAG;IACjC,EAAQ,MAAM,aAAa;IAC3B;GACF;GAEA,IAAM,oBAAO,IAAI,IAAY;GAC7B,KAAK,IAAM,KAAO,EAAW,OAAO;IAClC,IAAM,KAAY,EAAI,YAAY,GAAA,CAAI,KAAK,GACrC,KAAY,EAAI,YAAY,GAAA,CAAI,KAAK;IAC3C,IAAI,CAAC,GAAU;KACb,EAAQ,MAAM,cAAc;KAC5B;IACF;IACA,IAAI,CAAC,GAAU;KACb,EAAQ,MAAM,OAAO,EAAS,UAAU;KACxC;IACF;IACA,IAAI,EAAK,IAAI,CAAQ,GAAG;KACtB,EAAQ,MAAM,OAAO,EAAS,SAAS;KACvC;IACF;IACA,EAAK,IAAI,CAAQ;GACnB;GAEA,IAAM,IAAU;IACd,SAAS,EAAO;IAChB,aAAa,EAAW;IACxB,WAAW,EAAW,MAAM,KAAI,OAAM;KACpC,WAAW,EAAE,YAAY,GAAA,CAAI,KAAK;KAClC,WAAW,EAAE,YAAY,GAAA,CAAI,KAAK;IACpC,EAAE;IACF,QAAQ,GAAa;GACvB;GAEA,EAAQ,QAAQ;GAChB,IAAI;IAIF,AAHA,MAAM,EAAW,GAAS,wBAAwB,GAClD,EAAQ,QAAQ,QAAQ,GACxB,EAAU,CAAC,EAAE,KAAK,SAAS,GAC3B,EAAK,IAAI;GACX,SAAS,GAAK;IACZ,QAAQ,MAAM,CAAG;GAEnB,UAAU;IACR,EAAQ,QAAQ;GAClB;EACF,GAEM,UAAqB,EAAK,QAAQ;SAExC,EAAU,YAAY;GACpB,IAAI;IACF,IAAM,IAAW,MAAM,EAAW,EAAE,eAAe,GAAM,GAAG,iCAAiC,GACvF,IAAO,GAAK,QAAQ,KAAO,CAAC;IAClC,EAAW,QAAQ,MAAM,QAAQ,CAAI,IAAI,IAAO,CAAC;GACnD,SAAS,GAAK;IACZ,QAAQ,MAAM,YAAY,CAAG;GAC/B;EACF,CAAC"}
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ import { I as e, P as t, R as n, _ as r, a as i, c as a, d as o, f as s, h as c,
3
3
  import { defineAsyncComponent as b } from "vue";
4
4
  //#region src/index.ts
5
5
  var x = { install(x, S) {
6
- S?.env && x.use(i(S.env)), S?.globMap && x.use(d(S.globMap)), S?.bus && x.use(g(S.bus)), S?.useAppStore && x.use(v(S.useAppStore)), S?.useUserStore && x.use(e(S.useUserStore)), S?.request && x.use(c(S.request)), S?.useRequiredConditionStore && x.use(t(S.useRequiredConditionStore)), S?.required_condition_event_obj && x.use(r(S.required_condition_event_obj)), S?.event_obj && x.use(h(S.event_obj)), S?.ls && x.use(o(S.ls)), S?.sourceStore && x.use(y(S.sourceStore)), S?.usePageConfigStore && x.use(u(S.usePageConfigStore)), S?.remoteSelectStore && x.use(f(S.remoteSelectStore)), S?.cellComponentMap && x.use(p(S.cellComponentMap)), S?.cellFormatExcelValueMap && x.use(m(S.cellFormatExcelValueMap)), S?.menuComponents && x.use(s(S.menuComponents)), S?.debugCodeComponent && x.use(l(S.debugCodeComponent)), S?.extraMenuIcons && x.use(a(S.extraMenuIcons)), S?.workerHostFunctions && x.use(n(S.workerHostFunctions)), S?.injectMenuState && x.use(_(S.injectMenuState)), x.component("FieldRender", b(() => import("./FieldRender-_Q75X-lX.js").then((e) => e.n))).component("AttributeTable", b(() => import("./AttributeTable-BeZnyj9P.js").then((e) => e.n))).component("AttributeNomTable", b(() => import("./AttributeNomTable-HiLsOuv9.js").then((e) => e.n))).component("SearchRender", b(() => import("./SearchRender-CdYwARiH.js").then((e) => e.n))).component("RemoteSelect", b(() => import("./RemoteSelect-C9PN5B3f.js").then((e) => e.n))).component("RemoteCascader", b(() => import("./RemoteCascader-CGdD6rUw.js").then((e) => e.n))).component("RemoteFilterSelect", b(() => import("./RemoteFilterSelect-BCv2zIHS.js").then((e) => e.n))).component("RemoteModal", b(() => import("./RemoteModal-LBD1h5AF.js").then((e) => e.n))).component("JsonStr", b(() => import("./JsonStr-Bx2WI6jK.js").then((e) => e.n))).component("JsonObj", b(() => import("./JsonObj-DIlhMCbj.js").then((e) => e.n))).component("RemoteText", b(() => import("./RemoteText-BVqSMfSl.js").then((e) => e.n))).component("RemoteTable2", b(() => import("./RemoteTable2-CVz2AJZ2.js").then((e) => e.n))).component("syncDataSourceConfig", b(() => import("./syncDataSourceConfig-BZTsbx51.js"))).component("syncModelTypeConfig", b(() => import("./syncModelTypeConfig-B2vV_kKb.js"))).component("syncExportRawData", b(() => import("./syncExportRawData-B8xySuut.js"))).component("aiGenModel", b(() => import("./aiGenModel-C7SZpnoO.js"))).component("batchCreateUser", b(() => import("./batchCreateUser-Bpy8EFVm.js"))).component("FormRender3", b(() => import("./FormRender3-DDE-yVTe.js").then((e) => e.n)));
6
+ S?.env && x.use(i(S.env)), S?.globMap && x.use(d(S.globMap)), S?.bus && x.use(g(S.bus)), S?.useAppStore && x.use(v(S.useAppStore)), S?.useUserStore && x.use(e(S.useUserStore)), S?.request && x.use(c(S.request)), S?.useRequiredConditionStore && x.use(t(S.useRequiredConditionStore)), S?.required_condition_event_obj && x.use(r(S.required_condition_event_obj)), S?.event_obj && x.use(h(S.event_obj)), S?.ls && x.use(o(S.ls)), S?.sourceStore && x.use(y(S.sourceStore)), S?.usePageConfigStore && x.use(u(S.usePageConfigStore)), S?.remoteSelectStore && x.use(f(S.remoteSelectStore)), S?.cellComponentMap && x.use(p(S.cellComponentMap)), S?.cellFormatExcelValueMap && x.use(m(S.cellFormatExcelValueMap)), S?.menuComponents && x.use(s(S.menuComponents)), S?.debugCodeComponent && x.use(l(S.debugCodeComponent)), S?.extraMenuIcons && x.use(a(S.extraMenuIcons)), S?.workerHostFunctions && x.use(n(S.workerHostFunctions)), S?.injectMenuState && x.use(_(S.injectMenuState)), x.component("FieldRender", b(() => import("./FieldRender-_Q75X-lX.js").then((e) => e.n))).component("AttributeTable", b(() => import("./AttributeTable-BeZnyj9P.js").then((e) => e.n))).component("AttributeNomTable", b(() => import("./AttributeNomTable-HiLsOuv9.js").then((e) => e.n))).component("SearchRender", b(() => import("./SearchRender-CdYwARiH.js").then((e) => e.n))).component("RemoteSelect", b(() => import("./RemoteSelect-C9PN5B3f.js").then((e) => e.n))).component("RemoteCascader", b(() => import("./RemoteCascader-CGdD6rUw.js").then((e) => e.n))).component("RemoteFilterSelect", b(() => import("./RemoteFilterSelect-BCv2zIHS.js").then((e) => e.n))).component("RemoteModal", b(() => import("./RemoteModal-LBD1h5AF.js").then((e) => e.n))).component("JsonStr", b(() => import("./JsonStr-Bx2WI6jK.js").then((e) => e.n))).component("JsonObj", b(() => import("./JsonObj-DIlhMCbj.js").then((e) => e.n))).component("RemoteText", b(() => import("./RemoteText-BVqSMfSl.js").then((e) => e.n))).component("RemoteTable2", b(() => import("./RemoteTable2-CVz2AJZ2.js").then((e) => e.n))).component("syncDataSourceConfig", b(() => import("./syncDataSourceConfig-BZTsbx51.js"))).component("syncModelTypeConfig", b(() => import("./syncModelTypeConfig-B2vV_kKb.js"))).component("syncExportRawData", b(() => import("./syncExportRawData-B8xySuut.js"))).component("aiGenModel", b(() => import("./aiGenModel-C7SZpnoO.js"))).component("batchCreateUser", b(() => import("./batchCreateUser-B4zAXSR6.js"))).component("FormRender3", b(() => import("./FormRender3-DDE-yVTe.js").then((e) => e.n)));
7
7
  } };
8
8
  //#endregion
9
9
  export { x as default };
@@ -1,2 +1,2 @@
1
- *,:before,:after,::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 #0000;--un-ring-shadow:0 0 #0000;--un-shadow-inset: ;--un-shadow:0 0 #0000;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:#93c5fd80;--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.container{width:100%}@media (width>=640px){.container{max-width:640px}}@media (width>=768px){.container{max-width:768px}}@media (width>=1024px){.container{max-width:1024px}}@media (width>=1280px){.container{max-width:1280px}}@media (width>=1536px){.container{max-width:1536px}}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.static{position:static}.grid{display:grid}.inline{display:inline}.block{display:block}.inline-block{display:inline-block}.contents{display:contents}.hidden{display:none}.h1{height:.25rem}.h2{height:.5rem}.h3{height:.75rem}.h4{height:1rem}.h6{height:1.5rem}.flex{display:flex}.inline-flex{display:inline-flex}.flex-shrink{flex-shrink:1}.grow{flex-grow:1}.flex-wrap{flex-wrap:wrap}.table{display:table}.border-collapse{border-collapse:collapse}.transform{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.resize{resize:both}.break-all{word-break:break-all}.b,.border{border-width:1px}.px{padding-left:1rem;padding-right:1rem}.pie{padding-inline-end:1rem}.indent{text-indent:1.5rem}.italic{font-style:italic}.underline{text-decoration-line:underline}.tab{tab-size:4}.shadow{--un-shadow:0px 2px 14px 0px var(--un-shadow-color,#00000014);box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.outline{outline-style:solid}.filter{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease{transition-timing-function:cubic-bezier(.4,0,.2,1)}.remote-select-pro[data-v-1b82cc96]{flex-wrap:nowrap;align-items:flex-start;gap:4px;display:flex}.ant-input-group.ant-input-group-compact .remote-select-pro[data-v-1b82cc96]{display:flex}.ant-form-inline .ant-input-group.ant-input-group-compact .remote-select-pro[data-v-1b82cc96]{display:inline-flex}.table-search-icon[data-v-1b82cc96]{color:#000;font-size:17px}.json-str-group[data-v-d718bf4e]{flex-direction:column;align-items:flex-end;gap:4px;width:100%;display:inline-flex}.attribute-table .ant-table-footer{padding:5px;padding:5px}.ant-calendar-picker[data-v-7666b6e4]{width:100%!important}.CodeMirror{font-family:Monaco,monospace;height:300px!important;font-size:15px!important;line-height:1.4!important}.CodeMirror-lines{min-height:1px;padding:4px 0}.CodeMirror-hints{background:#2d2d2d;border:1px solid #555;border-radius:3px;max-height:20em;margin:0 0 0 5px;padding:2px;font-family:monospace;font-size:100%;list-style:none;position:absolute;overflow:hidden auto;box-shadow:2px 3px 5px #0003;z-index:9999!important}.CodeMirror-hint{white-space:pre;color:#fff;cursor:pointer;border-radius:2px;margin:0;padding:0 4px}li.CodeMirror-hint-active{color:#fff;background:#08f}.head_btn[data-v-bcfee82b]{flex-wrap:wrap;justify-content:end;gap:4px;margin-bottom:4px;display:flex}:root,:host{--w-e-textarea-bg-color:#fff;--w-e-textarea-color:#333;--w-e-textarea-border-color:#ccc;--w-e-textarea-slight-border-color:#e8e8e8;--w-e-textarea-slight-color:#d4d4d4;--w-e-textarea-slight-bg-color:#f5f2f0;--w-e-textarea-selected-border-color:#b4d5ff;--w-e-textarea-handler-bg-color:#4290f7;--w-e-toolbar-color:#595959;--w-e-toolbar-bg-color:#fff;--w-e-toolbar-active-color:#333;--w-e-toolbar-active-bg-color:#f1f1f1;--w-e-toolbar-disabled-color:#999;--w-e-toolbar-border-color:#e8e8e8;--w-e-modal-button-bg-color:#fafafa;--w-e-modal-button-border-color:#d9d9d9}.w-e-text-container *,.w-e-toolbar *{box-sizing:border-box;outline:none;margin:0;padding:0}.w-e-text-container blockquote,.w-e-text-container li,.w-e-text-container p,.w-e-text-container td,.w-e-text-container th,.w-e-toolbar *{line-height:1.5}.w-e-text-container{background-color:var(--w-e-textarea-bg-color);color:var(--w-e-textarea-color);height:100%;position:relative}.w-e-text-container .w-e-scroll{-webkit-overflow-scrolling:touch;height:100%}.w-e-text-container [data-slate-editor]{word-wrap:break-word;white-space:pre-wrap;border-top:1px solid #0000;outline:0;min-height:100%;padding:0 10px}.w-e-text-container [data-slate-editor] p{margin:15px 0}.w-e-text-container [data-slate-editor] h1,.w-e-text-container [data-slate-editor] h2,.w-e-text-container [data-slate-editor] h3,.w-e-text-container [data-slate-editor] h4,.w-e-text-container [data-slate-editor] h5{margin:20px 0}.w-e-text-container [data-slate-editor] img{cursor:default;min-width:20px;max-width:100%;min-height:20px;display:inline!important}.w-e-text-container [data-slate-editor] span{text-indent:0}.w-e-text-container [data-slate-editor] [data-selected=true]{box-shadow:0 0 0 2px var(--w-e-textarea-selected-border-color)}.w-e-text-placeholder{width:90%;font-style:italic;top:17px;left:10px}.w-e-max-length-info,.w-e-text-placeholder{color:var(--w-e-textarea-slight-color);pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute}.w-e-max-length-info{bottom:.5em;right:1em}.w-e-bar{background-color:var(--w-e-toolbar-bg-color);color:var(--w-e-toolbar-color);padding:0 5px;font-size:14px}.w-e-bar svg{fill:var(--w-e-toolbar-color);width:14px;height:14px}.w-e-bar-show{display:flex}.w-e-bar-hidden{display:none}.w-e-hover-bar{border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;position:absolute;box-shadow:0 2px 5px #0000001f}.w-e-toolbar{flex-wrap:wrap;position:relative}.w-e-bar-divider{background-color:var(--w-e-toolbar-border-color);width:1px;height:40px;margin:0 5px;display:inline-flex}.w-e-bar-item{text-align:center;height:40px;padding:4px;display:flex;position:relative}.w-e-bar-item,.w-e-bar-item button{justify-content:center;align-items:center}.w-e-bar-item button{color:var(--w-e-toolbar-color);cursor:pointer;white-space:nowrap;background:0 0;border:none;height:32px;padding:0 8px;display:inline-flex;overflow:hidden}.w-e-bar-item button:hover{background-color:var(--w-e-toolbar-active-bg-color);color:var(--w-e-toolbar-active-color)}.w-e-bar-item button .title{margin-left:5px}.w-e-bar-item .active{background-color:var(--w-e-toolbar-active-bg-color);color:var(--w-e-toolbar-active-color)}.w-e-bar-item .disabled{color:var(--w-e-toolbar-disabled-color);cursor:not-allowed}.w-e-bar-item .disabled svg{fill:var(--w-e-toolbar-disabled-color)}.w-e-bar-item .disabled:hover{background-color:var(--w-e-toolbar-bg-color);color:var(--w-e-toolbar-disabled-color)}.w-e-bar-item .disabled:hover svg{fill:var(--w-e-toolbar-disabled-color)}.w-e-menu-tooltip-v5:before{background-color:var(--w-e-toolbar-active-color);color:var(--w-e-toolbar-bg-color);content:attr(data-tooltip);opacity:0;text-align:center;visibility:hidden;white-space:pre;z-index:1;border-radius:5px;padding:5px 10px;font-size:.75em;transition:opacity .6s;position:absolute;top:40px}.w-e-menu-tooltip-v5:after{border:5px solid #0000;border-bottom:5px solid var(--w-e-toolbar-active-color);content:"";opacity:0;visibility:hidden;transition:opacity .6s;position:absolute;top:30px}.w-e-menu-tooltip-v5:hover:after,.w-e-menu-tooltip-v5:hover:before{opacity:1;visibility:visible}.w-e-menu-tooltip-v5.tooltip-right:before{top:10px;left:100%}.w-e-menu-tooltip-v5.tooltip-right:after{border-bottom-color:#0000;border-left-color:#0000;border-right-color:var(--w-e-toolbar-active-color);border-top-color:#0000;margin-left:-10px;top:16px;left:100%}.w-e-bar-item-group .w-e-bar-item-menus-container{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);z-index:1;border-radius:3px;margin-top:40px;display:none;position:absolute;top:0;left:0;box-shadow:0 2px 10px #0000001f}.w-e-bar-item-group:hover .w-e-bar-item-menus-container{display:block}.w-e-select-list{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);z-index:1;border-radius:3px;min-width:100px;max-height:350px;margin-top:40px;position:absolute;top:0;left:0;overflow-y:auto;box-shadow:0 2px 10px #0000001f}.w-e-select-list ul{line-height:1;list-style:none}.w-e-select-list ul .selected{background-color:var(--w-e-toolbar-active-bg-color)}.w-e-select-list ul li{cursor:pointer;text-align:left;white-space:nowrap;padding:7px 0 7px 25px;position:relative}.w-e-select-list ul li:hover{background-color:var(--w-e-toolbar-active-bg-color)}.w-e-select-list ul li svg{margin-top:-7px;margin-left:5px;position:absolute;top:50%;left:0}.w-e-bar-bottom .w-e-select-list{bottom:0;top:inherit;margin-top:0;margin-bottom:40px}.w-e-drop-panel{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);z-index:1;border-radius:3px;min-width:200px;margin-top:40px;padding:10px;position:absolute;top:0;box-shadow:0 2px 10px #0000001f}.w-e-bar-bottom .w-e-drop-panel{bottom:0;top:inherit;margin-top:0;margin-bottom:40px}.w-e-modal{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);color:var(--w-e-toolbar-color);text-align:left;z-index:1;border-radius:3px;min-width:100px;min-height:40px;padding:20px 15px 0;font-size:14px;position:absolute;box-shadow:0 2px 10px #0000001f}.w-e-modal .btn-close{cursor:pointer;padding:5px;line-height:1;position:absolute;top:7px;right:8px}.w-e-modal .btn-close svg{fill:var(--w-e-toolbar-color);width:10px;height:10px}.w-e-modal .babel-container{margin-bottom:15px;display:block}.w-e-modal .babel-container span{margin-bottom:10px;display:block}.w-e-modal .button-container{margin-bottom:15px}.w-e-modal button{background-color:var(--w-e-modal-button-bg-color);border:1px solid var(--w-e-modal-button-border-color);color:var(--w-e-toolbar-color);cursor:pointer;text-align:center;touch-action:manipulation;-webkit-user-select:none;user-select:none;white-space:nowrap;border-radius:4px;height:32px;padding:4.5px 15px;font-weight:400;transition:all .3s cubic-bezier(.645,.045,.355,1)}.w-e-modal input[type=number],.w-e-modal input[type=text],.w-e-modal textarea{font-feature-settings:"tnum";background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-modal-button-border-color);color:var(--w-e-toolbar-color);font-variant:tabular-nums;border-radius:4px;width:100%;padding:4.5px 11px;transition:all .3s}.w-e-modal textarea{min-height:60px}body .w-e-modal,body .w-e-modal *{box-sizing:border-box}.w-e-progress-bar{background-color:var(--w-e-textarea-handler-bg-color);width:0;height:1px;transition:width .3s;position:absolute}.w-e-full-screen-container{position:fixed;flex-direction:column!important;width:100%!important;height:100%!important;margin:0!important;padding:0!important;display:flex!important;inset:0!important}.w-e-full-screen-container [data-w-e-textarea=true]{flex:1!important}.w-e-text-container [data-slate-editor] code{background-color:var(--w-e-textarea-slight-bg-color);border-radius:3px;padding:3px;font-family:monospace}.w-e-panel-content-color{text-align:left;width:230px;list-style:none}.w-e-panel-content-color li{border:1px solid var(--w-e-toolbar-bg-color);cursor:pointer;border-radius:3px;padding:2px;display:inline-block}.w-e-panel-content-color li:hover{border-color:var(--w-e-toolbar-color)}.w-e-panel-content-color li .color-block{border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;width:17px;height:17px}.w-e-panel-content-color .active{border-color:var(--w-e-toolbar-color)}.w-e-panel-content-color .clear{width:100%;margin-bottom:5px;line-height:1.5}.w-e-panel-content-color .clear svg{width:16px;height:16px;margin-bottom:-4px}.w-e-text-container [data-slate-editor] blockquote{background-color:var(--w-e-textarea-slight-bg-color);border-left:8px solid var(--w-e-textarea-selected-border-color);margin:10px 0;padding:10px;font-size:100%;line-height:1.5;display:block}.w-e-panel-content-emotion{text-align:left;width:300px;font-size:20px;list-style:none}.w-e-panel-content-emotion li{cursor:pointer;border-radius:3px;padding:0 5px;display:inline-block}.w-e-panel-content-emotion li:hover{background-color:var(--w-e-textarea-slight-bg-color)}.w-e-textarea-divider{border-radius:3px;margin:20px auto;padding:20px}.w-e-textarea-divider hr{background-color:var(--w-e-textarea-border-color);border:0;height:1px;display:block}.w-e-text-container [data-slate-editor] pre>code{background-color:var(--w-e-textarea-slight-bg-color);border:1px solid var(--w-e-textarea-slight-border-color);text-indent:0;border-radius:4px;padding:10px;font-size:14px;display:block}.w-e-text-container [data-slate-editor] .w-e-image-container{margin:0 3px;display:inline-block}.w-e-text-container [data-slate-editor] .w-e-image-container:hover{box-shadow:0 0 0 2px var(--w-e-textarea-selected-border-color)}.w-e-text-container [data-slate-editor] .w-e-selected-image-container{position:relative;overflow:hidden}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .w-e-image-dragger{background-color:var(--w-e-textarea-handler-bg-color);width:7px;height:7px;position:absolute}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .left-top{cursor:nwse-resize;top:0;left:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .right-top{cursor:nesw-resize;top:0;right:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .left-bottom{cursor:nesw-resize;bottom:0;left:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .right-bottom{cursor:nwse-resize;bottom:0;right:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container:hover,.w-e-text-container [contenteditable=false] .w-e-image-container:hover{box-shadow:none}.w-e-text-container [data-slate-editor] .table-container{border:1px dashed var(--w-e-textarea-border-color);border-radius:5px;width:100%;margin-top:10px;padding:10px;overflow-x:auto}.w-e-text-container [data-slate-editor] table{border-collapse:collapse}.w-e-text-container [data-slate-editor] table td,.w-e-text-container [data-slate-editor] table th{border:1px solid var(--w-e-textarea-border-color);text-align:left;min-width:30px;padding:3px 5px;line-height:1.5}.w-e-text-container [data-slate-editor] table th{background-color:var(--w-e-textarea-slight-bg-color);text-align:center;font-weight:700}.w-e-panel-content-table{background-color:var(--w-e-toolbar-bg-color)}.w-e-panel-content-table table{border-collapse:collapse}.w-e-panel-content-table td{border:1px solid var(--w-e-toolbar-border-color);cursor:pointer;width:20px;height:15px;padding:3px 5px}.w-e-panel-content-table td.active{background-color:var(--w-e-toolbar-active-bg-color)}.w-e-textarea-video-container{border:1px dashed var(--w-e-textarea-border-color);text-align:center;background-image:linear-gradient(45deg,#eee 25%,#0000 0 75%,#eee 0,#eee),linear-gradient(45deg,#eee 25%,#fff 0 75%,#eee 0,#eee);background-position:0 0,10px 10px;background-size:20px 20px;border-radius:5px;margin:10px auto 0;padding:10px 0}.w-e-text-container [data-slate-editor] pre>code{word-wrap:normal;-webkit-hyphens:none;hyphens:none;tab-size:4;text-align:left;text-shadow:0 1px #fff;white-space:pre;word-break:normal;word-spacing:normal;margin:.5em 0;padding:1em;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;line-height:1.5;overflow:auto}.w-e-text-container [data-slate-editor] pre>code .token.cdata,.w-e-text-container [data-slate-editor] pre>code .token.comment,.w-e-text-container [data-slate-editor] pre>code .token.doctype,.w-e-text-container [data-slate-editor] pre>code .token.prolog{color:#708090}.w-e-text-container [data-slate-editor] pre>code .token.punctuation{color:#999}.w-e-text-container [data-slate-editor] pre>code .token.namespace{opacity:.7}.w-e-text-container [data-slate-editor] pre>code .token.boolean,.w-e-text-container [data-slate-editor] pre>code .token.constant,.w-e-text-container [data-slate-editor] pre>code .token.deleted,.w-e-text-container [data-slate-editor] pre>code .token.number,.w-e-text-container [data-slate-editor] pre>code .token.property,.w-e-text-container [data-slate-editor] pre>code .token.symbol,.w-e-text-container [data-slate-editor] pre>code .token.tag{color:#905}.w-e-text-container [data-slate-editor] pre>code .token.attr-name,.w-e-text-container [data-slate-editor] pre>code .token.builtin,.w-e-text-container [data-slate-editor] pre>code .token.char,.w-e-text-container [data-slate-editor] pre>code .token.inserted,.w-e-text-container [data-slate-editor] pre>code .token.selector,.w-e-text-container [data-slate-editor] pre>code .token.string{color:#690}.w-e-text-container [data-slate-editor] pre>code .language-css .token.string,.w-e-text-container [data-slate-editor] pre>code .style .token.string,.w-e-text-container [data-slate-editor] pre>code .token.entity,.w-e-text-container [data-slate-editor] pre>code .token.operator,.w-e-text-container [data-slate-editor] pre>code .token.url{color:#9a6e3a}.w-e-text-container [data-slate-editor] pre>code .token.atrule,.w-e-text-container [data-slate-editor] pre>code .token.attr-value,.w-e-text-container [data-slate-editor] pre>code .token.keyword{color:#07a}.w-e-text-container [data-slate-editor] pre>code .token.class-name,.w-e-text-container [data-slate-editor] pre>code .token.function{color:#dd4a68}.w-e-text-container [data-slate-editor] pre>code .token.important,.w-e-text-container [data-slate-editor] pre>code .token.regex,.w-e-text-container [data-slate-editor] pre>code .token.variable{color:#e90}.w-e-text-container [data-slate-editor] pre>code .token.bold,.w-e-text-container [data-slate-editor] pre>code .token.important{font-weight:700}.w-e-text-container [data-slate-editor] pre>code .token.italic{font-style:italic}.w-e-text-container [data-slate-editor] pre>code .token.entity{cursor:help}.icon-select-container[data-v-29ac0e84]{flex-direction:column;height:600px;display:flex;position:relative}.icon-select-container .search-bar[data-v-29ac0e84]{z-index:1;background:#fff;border-bottom:1px solid #f0f0f0;padding:12px;position:sticky;top:0}.icon-select-container .icon-content[data-v-29ac0e84]{flex:1;padding:12px;overflow-y:auto}.icon-select-container .icon-groups .icon-group[data-v-29ac0e84]{margin-bottom:4px}.icon-select-container .icon-groups .icon-group .group-title[data-v-29ac0e84]{color:#1f1f1f;margin-bottom:2px;font-size:16px;font-weight:500}.icon-select-container .icon-groups .icon-group .icon-grid[data-v-29ac0e84]{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:2px;display:grid}.icon-select-container .icon-groups .icon-group .icon-grid .icon-item[data-v-29ac0e84]{cursor:pointer;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;padding:2px 20px;transition:all .3s;display:flex}.icon-select-container .icon-groups .icon-group .icon-grid .icon-item[data-v-29ac0e84]:hover{background-color:#e6f7ff;border-color:#1890ff}.icon-select-container .icon-groups .icon-group .icon-grid .icon-item.icon-selected[data-v-29ac0e84]{color:#fff;background-color:#1677ff;border-color:#1890ff}.icon-select-container .icon-groups .icon-group .icon-grid .icon-item.icon-selected .icon-name[data-v-29ac0e84]{color:#fff}.icon-select-container .icon-groups .icon-group .icon-grid .icon-item .anticon[data-v-29ac0e84]{margin-bottom:8px;font-size:24px}.icon-select-container .icon-groups .icon-group .icon-grid .icon-item .icon-name[data-v-29ac0e84]{color:#666;text-align:center;word-break:break-all;font-size:12px}.top_btn[data-v-d6626b20]{flex-direction:column;align-items:flex-end;gap:8px;margin-bottom:8px;display:flex}.form-wrap[data-v-d6626b20]{border:1px solid #e8e8e8;border-radius:4px;flex-direction:row;align-items:flex-start;width:100%;margin-bottom:4px;padding:4px;display:flex}.form-wrap .form-content[data-v-d6626b20]{flex:1;min-width:0;overflow:hidden}.form-wrap .form-action[data-v-d6626b20]{flex-shrink:0;justify-content:center;align-items:center;padding-top:8px;display:flex}.table-cell-form[data-v-00188241]{display:block}.field-cell-item[data-v-00188241]{box-sizing:border-box;height:100%;padding:8px}.field-cell-item[data-v-00188241] .ant-input-clear-icon{display:none}.field-cell-item[data-v-00188241]:hover .ant-input-clear-icon{display:block}.field-cell-item[data-v-00188241]:has(:focus) .ant-input-clear-icon{display:block}[data-v-00188241] .ant-form-item{margin:0!important}[data-v-00188241] .ant-input-affix-wrapper{box-shadow:none!important;background-color:#0000!important;border:0!important;outline:none!important;padding:0!important}[data-v-00188241] .ant-input{box-shadow:none!important;background-color:#0000!important;border:0!important;outline:none!important}[data-v-00188241] .ant-select-selector{box-shadow:none!important;background:0 0!important;border:0!important;padding:0!important}[data-v-00188241] .ant-input-number{box-shadow:none!important;background-color:#0000!important;border:0!important;outline:none!important}[data-v-00188241] .ant-input-group-addon,[data-v-00188241] .ant-input-number-group-addon,[data-v-00188241] .ant-input-number-affix-wrapper{background:0 0!important;border:none!important}[data-v-00188241] .ant-input-number-input{padding:0!important}[data-v-00188241] .ant-input-number-handler-wrap{display:none!important}[data-v-00188241] .ant-form-item-control-input-content .ant-layout{background:0 0}.editable.item-required[data-v-00188241] .ant-form-item:before{color:#ff4d4f;content:"*";margin-right:4px;font-family:SimSun,sans-serif;font-size:14px;line-height:1;display:inline-block;position:absolute;top:50%;right:0;transform:translateY(-50%)}[data-v-00188241] .ant-picker{box-shadow:none!important;background-color:#0000!important;border:0!important;outline:none!important}[data-v-f3f0dcf2] .surely-table-cell .surely-table-cell-inner{height:100%}[data-v-f3f0dcf2] .surely-table-cell .surely-table-cell-inner:has(.editable){background-color:#f8e83537;border:1px solid #0000!important}[data-v-f3f0dcf2] .surely-table-cell .surely-table-cell-inner:has(.editable) input{text-overflow:ellipsis}[data-v-f3f0dcf2] .surely-table-cell .surely-table-cell-inner:has(.editable) input:focus{text-overflow:clip}:is([data-v-f3f0dcf2] .surely-table-cell .surely-table-cell-inner:has(.editable:hover),[data-v-f3f0dcf2] .surely-table-cell .surely-table-cell-inner:has(.editable:focus),[data-v-f3f0dcf2] .surely-table-cell .surely-table-cell-inner:has(.editable input:focus),[data-v-f3f0dcf2] .surely-table-cell .surely-table-cell-inner:has(.editable textarea:focus)){background-color:#fcee55bc;border-radius:6px;box-shadow:0 0 0 2px #1890ff33;border-color:#40a9ff!important}[data-v-f3f0dcf2] .surely-table-cell .surely-table-cell-inner:has(.ant-form-item-has-error){border-radius:6px;border:1px solid #ff4d4f!important}[data-v-f3f0dcf2] .surely-table-cell .surely-table-cell-inner .surely-table-cell-content{padding:0!important}[data-v-f3f0dcf2] .surely-table-cell .ant-form-item-explain-error{font-size:10px}.required-star[data-v-f3f0dcf2]{color:red;margin-left:4px}.cell-item[data-v-f3f0dcf2]{padding:8px}.top_btn[data-v-c86c2d37]{flex-flow:wrap;justify-content:flex-end;gap:8px;margin-bottom:8px;display:flex}.form-wrap[data-v-c86c2d37]{border:1px solid #e8e8e8;border-radius:4px;flex-direction:row;align-items:flex-start;width:100%;margin-bottom:4px;padding:4px;display:flex}.form-wrap .form-content[data-v-c86c2d37]{flex:1;min-width:0;overflow:hidden}.form-wrap .form-action[data-v-c86c2d37]{flex-shrink:0;justify-content:center;align-items:center;padding-top:8px;display:flex}.error-msg[data-v-fa20c879]{color:#ff4d4f}.head_btn[data-v-1c2384e8]{flex-wrap:wrap;justify-content:end;gap:4px;margin-bottom:4px;display:flex}[data-v-a5e3757b] .ant-input[readonly],.ant-input-affix-wrapper-readonly[data-v-a5e3757b],[data-v-a5e3757b] .ant-input-affix-wrapper-readonly{background-color:#f5f5f5}.ant-calendar-picker[data-v-4d903c12]{width:100%!important}[data-v-13a27c20] .ant-select-selection-placeholder{width:100%;overflow:hidden}.cards[data-v-bd6bf9b4] .ant-card-head,.cards[data-v-823e4644] .ant-card-head{background-color:#00000005;min-height:44px;padding:0 8px}.group-custom-btn-list[data-v-823e4644]{flex-wrap:wrap;gap:5px;margin-right:2px;display:inline-flex}.ant-calendar-picker[data-v-168ff853]{width:100%!important}.search-summary[data-v-daae65bd]{padding:4px 2px;display:inline-block}.search-config-container[data-v-f069cba6]{align-items:center;gap:16px;height:70vh;display:flex}.search-config-container .table-wrapper[data-v-f069cba6]{border:1px solid #f0f0f0;border-radius:4px;flex-direction:column;width:450px;height:100%;display:flex;overflow:auto}.search-config-container .table-wrapper .table-title[data-v-f069cba6]{background:#fafafa;border-bottom:1px solid #f0f0f0;padding:8px 12px;font-weight:700}.search-config-container .middle-btns[data-v-f069cba6]{flex-direction:column;gap:16px;display:flex}.search-field-group-title[data-v-5239b541]{color:var(--primary-color,#1890ff);border-bottom:1px solid #f0f0f0;flex-basis:100%;align-items:center;width:100%;margin-bottom:4px;padding:8px 4px 4px;font-weight:700;display:flex}.search-field-group-title[data-v-5239b541]:not(:first-child){margin-top:8px}.search-form-grid-inner[data-v-5239b541]{grid-template-columns:repeat(var(--column-count), max-content 1fr);align-items:center;gap:2px 8px;display:grid}.search-form-grid-inner .search-field-group-title[data-v-5239b541]{grid-column:span calc(var(--column-count) * 2)}.search-form-grid-inner .search-field-group-title[data-v-5239b541]:not(:first-child){margin-top:8px}.search-form-grid-inner[data-v-5239b541] .ant-form-item{margin-bottom:2px;margin-right:0;display:contents}.search-form-grid-inner[data-v-5239b541] .ant-form-item .ant-form-item-row,.search-form-grid-inner[data-v-5239b541] .ant-form-item .ant-form-item-label,.search-form-grid-inner[data-v-5239b541] .ant-form-item .ant-form-item-control,.search-form-grid-inner[data-v-5239b541] .ant-form-item .ant-form-item-control-input,.search-form-grid-inner[data-v-5239b541] .ant-form-item .ant-form-item-control-input-content{display:contents}.search-form-grid-inner[data-v-5239b541] .ant-form-item-label{justify-self:end;align-items:center;max-width:150px;display:flex!important}.search-form-grid-inner[data-v-5239b541] .ant-form-item-label .search-item-label-text{text-overflow:ellipsis;white-space:nowrap;text-align:right;padding-right:8px;overflow:hidden}.search-form-grid-inner[data-v-5239b541] .ant-input-group{width:100%;display:flex!important}.search-form-grid-inner .btn-content[data-v-5239b541]{grid-column:span calc(var(--column-count) * 2)}.btn-content[data-v-5239b541]{margin-left:auto;padding:4px}.range[data-v-5239b541]{padding:0 4px}[data-v-5239b541] .ant-select-selection-placeholder{width:100%;overflow:hidden}.search-form-wraper[data-v-3b64723c]{max-height:300px;padding-left:2px;padding-right:2px;overflow-y:auto}.search-switch[data-v-3b64723c]{height:32px;line-height:32px;display:inline-block}.bottom-content[data-v-3b64723c]{justify-content:flex-end;padding:8px 26px 8px 8px;display:flex}.search-switch[data-v-e443a7be]{height:32px;line-height:32px;display:inline-block}.search-groups-container[data-v-e443a7be]{max-height:300px;padding:4px 0;overflow-y:auto}.search-group-item[data-v-e443a7be]{background:#fafafa;border:1px solid #f0f0f0;border-radius:4px;margin-bottom:8px;padding:8px}.search-group-header[data-v-e443a7be]{border-bottom:1px dashed #e0e0e0;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:4px;display:flex}.search-group-header-title[data-v-e443a7be]{color:var(--primary-color,#1890ff);font-size:13px;font-weight:700}.search-group-actions[data-v-e443a7be]{gap:4px;display:flex}.search-form-wraper[data-v-e443a7be]{padding-left:2px;padding-right:2px}.add-group-btn[data-v-e443a7be]{margin:4px 0 8px 8px}.bottom-content[data-v-e443a7be]{justify-content:flex-end;padding:8px 26px 8px 8px;display:flex}.group-or-separator[data-v-e443a7be]{color:#999;padding:0 8px;font-size:12px;font-weight:700;line-height:32px;display:inline-block}.columns-config-wrapper[data-v-6797490e]{padding:8px 0}.pivot-zone-item-label[data-v-837ceec0]{text-overflow:ellipsis;white-space:nowrap;flex:none;min-width:0;overflow:hidden}.vf-display-expr[data-v-837ceec0]{flex-wrap:wrap;align-items:center;gap:2px;display:inline-flex}.vf-display-token[data-v-837ceec0]{border-radius:3px;padding:0 4px;font-size:12px}.vf-display-token.vf-token-field[data-v-837ceec0]{color:#0958d9;background:#e6f7ff}.vf-display-token.vf-token-op[data-v-837ceec0]{color:#333;font-weight:700}.vf-display-token.vf-token-number[data-v-837ceec0]{color:#389e0d;background:#f6ffed}.vf-display-token.vf-token-string[data-v-837ceec0]{color:#c41d7f;background:#fff0f6}.vf-display-token.vf-token-bool[data-v-837ceec0]{color:#722ed1;background:#f9f0ff}.vf-display-token.vf-token-paren[data-v-837ceec0]{color:#d46b08;font-weight:700}.vf-display-token.vf-token-subexpr[data-v-837ceec0]{color:#722ed1;background:#f9f0ff}.vf-display-filter[data-v-837ceec0],.vf-display-warn[data-v-837ceec0]{margin-left:4px}.vee-wrap[data-v-ac442b30]{flex-direction:column;gap:10px;display:flex}.vee-ops[data-v-ac442b30]{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.vee-ops .vee-ops-label[data-v-ac442b30]{color:#666;font-size:13px}.vee-ops .vee-op-btn[data-v-ac442b30]{cursor:grab;min-width:32px;font-weight:600}.vee-ops .vee-bool-btn[data-v-ac442b30]{font-family:monospace}.vee-ops .vee-num-input[data-v-ac442b30],.vee-ops .vee-str-input[data-v-ac442b30]{width:200px}.vee-canvas[data-v-ac442b30]{border:2px dashed #d9d9d9;border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px;min-height:64px;padding:10px;transition:all .2s;display:flex;position:relative}.vee-canvas.drag-over[data-v-ac442b30]{background:#f0f7ff;border-color:#1890ff}.vee-canvas .vee-canvas-placeholder[data-v-ac442b30]{color:#bbb;font-size:12px}.vee-canvas .vee-insert-line[data-v-ac442b30]{pointer-events:none;z-index:2;border-left:2px solid #1890ff;width:0;position:absolute;box-shadow:0 0 4px #1890ffb3}.vee-canvas .vee-token[data-v-ac442b30]{cursor:grab;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:4px;align-items:center;gap:2px;padding:2px 8px;font-size:13px;display:inline-flex}.vee-canvas .vee-token.vee-token-field[data-v-ac442b30]{color:#0958d9;background:#e6f7ff;border-color:#91d5ff}.vee-canvas .vee-token.vee-token-op[data-v-ac442b30]{background:#fafafa;border-color:#d9d9d9;font-weight:700}.vee-canvas .vee-token.vee-token-number[data-v-ac442b30]{color:#389e0d;background:#f6ffed;border-color:#b7eb8f}.vee-canvas .vee-token.vee-token-string[data-v-ac442b30]{color:#c41d7f;background:#fff0f6;border-color:#ffadd2}.vee-canvas .vee-token.vee-token-bool[data-v-ac442b30]{color:#722ed1;background:#f9f0ff;border-color:#d3adf7;font-family:monospace}.vee-canvas .vee-token.vee-token-paren[data-v-ac442b30]{background:#fff7e6;border-color:#ffd591;font-weight:700}.vee-canvas .vee-token .vee-token-remove[data-v-ac442b30]{color:#999;cursor:pointer;font-size:10px}.vee-canvas .vee-token .vee-token-remove[data-v-ac442b30]:hover{color:#ff4d4f}.vee-preview-row[data-v-ac442b30]{flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.vee-preview-row .vee-preview-label[data-v-ac442b30]{color:#666}.vee-preview-row .vee-preview[data-v-ac442b30]{color:#333;background:#f5f5f5;border-radius:4px;padding:2px 8px;font-weight:600}.vee-preview-row .vee-preview.vee-preview-invalid[data-v-ac442b30]{color:#cf1322;background:#fff1f0}.vee-preview-row .vee-warn[data-v-ac442b30]{color:#fa8c16;font-size:12px}.vee-input-wrap[data-v-ac442b30]{flex-flow:wrap;align-items:flex-start;gap:6px;width:100%;display:flex}.vee-subexpr-panel[data-v-ac442b30]{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.vee-subexpr-panel .vee-subexpr-chip[data-v-ac442b30]{color:#722ed1;cursor:grab;-webkit-user-select:none;user-select:none;background:#f9f0ff;border:1px solid #d3adf7;border-radius:4px;padding:2px 8px;font-size:12px}.vee-subexpr-panel .vee-subexpr-chip[data-v-ac442b30]:hover{background:#efdbff;border-color:#9254de}.vee-subexpr-panel .vee-subexpr-chip[data-v-ac442b30]:active{cursor:grabbing}.vee-token-subexpr[data-v-ac442b30]{color:#722ed1;background:#f9f0ff;border-color:#d3adf7}.vee-date-row[data-v-ac442b30]{flex-wrap:nowrap;align-items:center;gap:6px;display:flex}.vee-date-row .vee-date-mode[data-v-ac442b30]{flex-shrink:0}.vee-date-row .vee-date-mode-label[data-v-ac442b30]{color:#666;flex-shrink:0;font-size:13px}.vee-date-row .vee-date-picker[data-v-ac442b30]{width:220px}.vee-op-item[data-v-ac442b30]{cursor:grab}.se-wrap[data-v-c8ea4551]{gap:16px;height:100%;min-height:360px;display:flex}.se-left[data-v-c8ea4551]{border:1px solid #f0f0f0;border-radius:6px;flex-direction:column;flex-shrink:0;width:240px;padding:8px;display:flex;overflow:hidden}.se-left .se-section-title[data-v-c8ea4551]{margin-bottom:8px;font-size:13px;font-weight:600}.se-left .se-field-search[data-v-c8ea4551]{flex-shrink:0;margin-bottom:8px}.se-left .se-field-pool[data-v-c8ea4551]{flex:1;min-height:0;overflow-y:auto}.se-left .se-field-item[data-v-c8ea4551]{cursor:grab;-webkit-user-select:none;user-select:none;border:1px solid #f0f0f0;border-radius:4px;align-items:center;gap:6px;margin-bottom:4px;padding:6px 8px;font-size:13px;transition:all .2s;display:flex}.se-left .se-field-item[data-v-c8ea4551]:hover{background:#f0f7ff;border-color:#1890ff}.se-left .se-field-item[data-v-c8ea4551]:active{cursor:grabbing}.se-left .se-field-item .se-field-icon[data-v-c8ea4551]{color:#1890ff;font-size:12px}.se-left .se-field-item .se-field-label[data-v-c8ea4551]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.se-left .se-field-group[data-v-c8ea4551]{cursor:default;background:#fafafa;font-weight:600}.se-left .se-field-group[data-v-c8ea4551]:hover{background:#fafafa;border-color:#f0f0f0}.se-left .se-field-branch-dot[data-v-c8ea4551]{background:#d9d9d9;border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.se-left .se-empty[data-v-c8ea4551]{text-align:center;color:#999;padding:20px 0;font-size:12px}.se-right[data-v-c8ea4551]{flex-direction:column;flex:1;gap:12px;min-width:0;display:flex;overflow-y:auto}.se-right .se-name-row[data-v-c8ea4551]{align-items:center;gap:8px;display:flex}.se-right .se-name-row .se-name-label[data-v-c8ea4551]{color:#333;flex-shrink:0;font-size:13px;font-weight:600}.se-right .se-name-row .se-name-input[data-v-c8ea4551]{flex:1;max-width:360px}.pivot-config-wrapper[data-v-1753c56f]{flex-direction:column;gap:12px;height:100%;display:flex}.pivot-config-main[data-v-1753c56f]{flex:1;gap:16px;min-height:0;display:flex}.pivot-field-list[data-v-1753c56f]{border:1px solid #f0f0f0;border-radius:6px;flex-direction:column;flex-shrink:0;width:220px;padding:8px;display:flex;overflow:hidden}.pivot-field-list .pivot-section-title[data-v-1753c56f]{color:#333;margin-bottom:8px;font-size:13px;font-weight:600}.pivot-field-list .pivot-field-pool[data-v-1753c56f]{flex:1;min-height:0;overflow-y:auto}.pivot-field-list .pivot-field-item[data-v-1753c56f]{cursor:grab;-webkit-user-select:none;user-select:none;border:1px solid #f0f0f0;border-radius:4px;align-items:center;gap:6px;margin-bottom:4px;padding:6px 8px;font-size:13px;transition:all .2s;display:flex}.pivot-field-list .pivot-field-item[data-v-1753c56f]:hover{background:#f0f7ff;border-color:#1890ff}.pivot-field-list .pivot-field-item[data-v-1753c56f]:active{cursor:grabbing}.pivot-field-list .pivot-field-item .pivot-field-icon[data-v-1753c56f]{color:#1890ff;font-size:12px}.pivot-field-list .pivot-field-item .pivot-field-label[data-v-1753c56f]{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.pivot-field-list .pivot-field-item .pivot-field-tag[data-v-1753c56f]{color:#fff;background:#1890ff;border-radius:8px;flex-shrink:0;padding:1px 6px;font-size:10px;line-height:16px}.pivot-field-list .pivot-field-group[data-v-1753c56f]{cursor:default;background:#fafafa;font-weight:600}.pivot-field-list .pivot-field-group[data-v-1753c56f]:hover{background:#fafafa;border-color:#f0f0f0}.pivot-field-list .pivot-field-group .pivot-field-icon[data-v-1753c56f]{color:#bfbfbf}.pivot-field-list .pivot-field-branch-dot[data-v-1753c56f]{background:#d9d9d9;border-radius:50%;width:8px;height:8px;display:inline-block}.pivot-field-list .pivot-field-empty[data-v-1753c56f]{text-align:center;color:#999;padding:20px 0;font-size:12px}.pivot-drop-zones[data-v-1753c56f]{flex-direction:column;flex:1;gap:12px;min-width:0;display:flex;overflow-y:auto}.pivot-drop-zone[data-v-1753c56f]{border:2px dashed #d9d9d9;border-radius:6px;flex-shrink:0;min-height:80px;padding:8px;transition:all .2s}.pivot-drop-zone.drag-over[data-v-1753c56f]{background:#f0f7ff;border-color:#1890ff}.pivot-drop-zone .pivot-zone-header[data-v-1753c56f]{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.pivot-drop-zone .pivot-zone-header .pivot-zone-title[data-v-1753c56f]{color:#333;align-items:center;gap:4px;font-size:13px;font-weight:600;display:flex}.pivot-drop-zone .pivot-zone-header .pivot-zone-tip[data-v-1753c56f]{color:#999;cursor:help;font-size:12px}.pivot-drop-zone .pivot-zone-items[data-v-1753c56f]{flex-wrap:wrap;gap:6px;min-height:32px;display:flex}.pivot-drop-zone .pivot-zone-placeholder[data-v-1753c56f]{color:#bbb;text-align:center;width:100%;padding:4px 8px;font-size:12px}.pivot-zone-item[data-v-1753c56f]{cursor:grab;-webkit-user-select:none;user-select:none;box-sizing:border-box;background:#fafafa;border:1px solid #d9d9d9;border-radius:4px;align-items:center;gap:4px;max-width:100%;padding:4px 8px;font-size:12px;transition:all .2s;display:flex;position:relative}.pivot-zone-item[data-v-1753c56f]:hover{background:#f0f7ff;border-color:#1890ff}.pivot-zone-item[data-v-1753c56f]:active{cursor:grabbing}.pivot-zone-item .pivot-zone-item-remove[data-v-1753c56f]{color:#999;cursor:pointer;flex-shrink:0;margin-left:2px;font-size:10px}.pivot-zone-item .pivot-zone-item-remove[data-v-1753c56f]:hover{color:#ff4d4f}.pivot-value-item[data-v-1753c56f]{cursor:grab;-webkit-user-select:none;user-select:none;background:#fff7e6;border-color:#ffd591;flex-flow:column wrap;align-items:flex-start;width:100%;max-width:100%;display:flex}.pivot-value-item[data-v-1753c56f]:hover{background:#fff7e6;border-color:#fa8c16}.pivot-value-item[data-v-1753c56f]:active{cursor:grabbing}.pivot-value-item.drag-before[data-v-1753c56f]{box-shadow:0 -2px #1890ff}.pivot-value-item.drag-after[data-v-1753c56f]{box-shadow:0 2px #1890ff}.pivot-value-item[data-v-1753c56f] .ant-select,.pivot-value-item[data-v-1753c56f] .ant-input{flex:auto;min-width:70px}.pivot-drop-zone-values[data-v-1753c56f]{min-height:80px}.pivot-dim-group[data-v-1753c56f]{box-sizing:border-box;cursor:grab;-webkit-user-select:none;user-select:none;background:#f6ffed;border:1px solid #b7eb8f;border-radius:6px;flex-direction:column;gap:6px;width:100%;max-width:100%;padding:6px 8px;transition:all .2s;display:flex;position:relative}.pivot-dim-group[data-v-1753c56f]:hover{background:#f6ffed;border-color:#52c41a}.pivot-dim-group.drag-over[data-v-1753c56f]{border-color:#52c41a;box-shadow:inset 0 0 0 2px #52c41a}.pivot-dim-group.drop-group-before[data-v-1753c56f]:before,.pivot-dim-group.drop-group-after[data-v-1753c56f]:after{content:"";pointer-events:none;z-index:2;border-top:2px solid #1890ff;height:0;position:absolute;left:-2px;right:-2px;box-shadow:0 0 4px #1890ffb3}.pivot-dim-group.drop-group-before[data-v-1753c56f]:before{top:-4px}.pivot-dim-group.drop-group-after[data-v-1753c56f]:after{bottom:-4px}.pivot-dim-group .pivot-dim-group-header[data-v-1753c56f]{align-items:center;gap:6px;width:100%;display:flex}.pivot-dim-group .pivot-dim-group-header .pivot-group-label-input[data-v-1753c56f]{flex:auto;min-width:0}.pivot-dim-group .pivot-dim-group-header .pivot-group-remove[data-v-1753c56f]{color:#999;cursor:pointer;flex-shrink:0;font-size:11px}.pivot-dim-group .pivot-dim-group-header .pivot-group-remove[data-v-1753c56f]:hover{color:#ff4d4f}.pivot-dim-group .pivot-dim-group-fields[data-v-1753c56f]{flex-flow:column wrap;align-items:flex-start;gap:4px;width:100%;display:flex}.pivot-dim-group .pivot-field-chip[data-v-1753c56f]{cursor:grab;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #d9d9d9;border-radius:4px;align-items:center;gap:4px;width:100%;padding:2px 6px;font-size:12px;display:flex;position:relative}.pivot-dim-group .pivot-field-chip.drop-before[data-v-1753c56f]:before,.pivot-dim-group .pivot-field-chip.drop-after[data-v-1753c56f]:after{content:"";pointer-events:none;border-top:2px solid #1890ff;height:0;position:absolute;left:-1px;right:-1px;box-shadow:0 0 4px #1890ffb3}.pivot-dim-group .pivot-field-chip.drop-before[data-v-1753c56f]:before{top:-3px}.pivot-dim-group .pivot-field-chip.drop-after[data-v-1753c56f]:after{bottom:-3px}.pivot-dim-group .pivot-field-chip[data-v-1753c56f]:hover{border-color:#52c41a}.pivot-dim-group .pivot-field-chip .pivot-chip-label[data-v-1753c56f]{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.pivot-dim-group .pivot-field-chip .pivot-chip-remove[data-v-1753c56f]{color:#999;cursor:pointer;flex-shrink:0;font-size:10px}.pivot-dim-group .pivot-field-chip .pivot-chip-remove[data-v-1753c56f]:hover{color:#ff4d4f}.pivot-dim-group .pivot-field-chip[data-v-1753c56f] .ant-select{flex:auto;min-width:80px}.pivot-dim-group .pivot-sort-row[data-v-1753c56f]{border-top:1px dashed #d9d9d9;flex-wrap:wrap;align-items:center;gap:6px;width:100%;padding-top:6px;display:flex}.pivot-dim-group .pivot-sort-row .pivot-sort-label[data-v-1753c56f]{color:#999;flex-shrink:0;font-size:11px}.pivot-dim-group .pivot-sort-row[data-v-1753c56f] .ant-select{flex:0 auto;min-width:0}.pivot-options[data-v-1753c56f]{border-top:1px solid #f0f0f0;flex-direction:column;flex-shrink:0;gap:10px;padding:10px 0 4px;display:flex}.pivot-options .pivot-options-group[data-v-1753c56f]{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.pivot-options .pivot-options-group .pivot-options-label[data-v-1753c56f]{color:#666;flex-shrink:0;font-size:12px;font-weight:600}.pivot-options .pivot-options-group .pivot-option-switch[data-v-1753c56f]{color:#333;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;font-size:12px;display:inline-flex}.pivot-options .pivot-options-group .pivot-option-switch span[data-v-1753c56f]{white-space:nowrap}.value-item-header[data-v-1753c56f]{flex-direction:row;justify-content:space-between;gap:6px;width:100%;display:flex}.value-item-content[data-v-1753c56f]{flex-direction:row;align-items:center;gap:6px;display:flex}.pivot-drop-zone-subexpr[data-v-1753c56f]{background:#fafaff}.subexpr-items[data-v-1753c56f]{align-items:stretch}.pivot-subexpr-card[data-v-1753c56f]{background:#fff;border:1px solid #efd6ff;border-radius:6px;flex-direction:column;gap:4px;min-width:220px;max-width:100%;padding:6px 10px;display:flex}.pivot-subexpr-card .subexpr-card-head[data-v-1753c56f]{justify-content:space-between;align-items:center;gap:8px;display:flex}.pivot-subexpr-card .subexpr-card-head .subexpr-card-name[data-v-1753c56f]{color:#722ed1;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.pivot-subexpr-card .subexpr-card-head .subexpr-card-actions[data-v-1753c56f]{flex-shrink:0;align-items:center;gap:2px;display:flex}.pivot-charts-config-wrapper[data-v-d3a9c5f9]{flex-direction:column;gap:12px;height:100%;display:flex}.pivot-charts-config-main[data-v-d3a9c5f9]{flex:1;gap:16px;min-height:0;display:flex}.pivot-field-list[data-v-d3a9c5f9]{border:1px solid #f0f0f0;border-radius:6px;flex-direction:column;flex-shrink:0;width:220px;padding:8px;display:flex;overflow:hidden}.pivot-field-list .pivot-section-title[data-v-d3a9c5f9]{color:#333;margin-bottom:8px;font-size:13px;font-weight:600}.pivot-field-list .pivot-field-pool[data-v-d3a9c5f9]{flex:1;min-height:0;overflow-y:auto}.pivot-field-list .pivot-field-item[data-v-d3a9c5f9]{cursor:grab;-webkit-user-select:none;user-select:none;border:1px solid #f0f0f0;border-radius:4px;align-items:center;gap:6px;margin-bottom:4px;padding:6px 8px;font-size:13px;transition:all .2s;display:flex}.pivot-field-list .pivot-field-item[data-v-d3a9c5f9]:hover{background:#f0f7ff;border-color:#1890ff}.pivot-field-list .pivot-field-item[data-v-d3a9c5f9]:active{cursor:grabbing}.pivot-field-list .pivot-field-item .pivot-field-icon[data-v-d3a9c5f9]{color:#1890ff;font-size:12px}.pivot-field-list .pivot-field-item .pivot-field-label[data-v-d3a9c5f9]{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.pivot-field-list .pivot-field-item .pivot-field-tag[data-v-d3a9c5f9]{color:#fff;background:#1890ff;border-radius:8px;flex-shrink:0;padding:1px 6px;font-size:10px;line-height:16px}.pivot-field-list .pivot-field-group[data-v-d3a9c5f9]{cursor:default;background:#fafafa;font-weight:600}.pivot-field-list .pivot-field-group[data-v-d3a9c5f9]:hover{background:#fafafa;border-color:#f0f0f0}.pivot-field-list .pivot-field-group .pivot-field-icon[data-v-d3a9c5f9]{color:#bfbfbf}.pivot-field-list .pivot-field-branch-dot[data-v-d3a9c5f9]{background:#d9d9d9;border-radius:50%;width:8px;height:8px;display:inline-block}.pivot-field-list .pivot-field-empty[data-v-d3a9c5f9]{text-align:center;color:#999;padding:20px 0;font-size:12px}.pivot-drop-zones[data-v-d3a9c5f9]{flex-direction:column;flex:1;gap:12px;min-width:0;display:flex;overflow-y:auto}.pivot-drop-zone[data-v-d3a9c5f9]{border:2px dashed #d9d9d9;border-radius:6px;flex-shrink:0;min-height:80px;padding:8px;transition:all .2s}.pivot-drop-zone.drag-over[data-v-d3a9c5f9]{background:#f0f7ff;border-color:#1890ff}.pivot-drop-zone .pivot-zone-header[data-v-d3a9c5f9]{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.pivot-drop-zone .pivot-zone-header .pivot-zone-title[data-v-d3a9c5f9]{color:#333;align-items:center;gap:4px;font-size:13px;font-weight:600;display:flex}.pivot-drop-zone .pivot-zone-header .pivot-zone-tip[data-v-d3a9c5f9]{color:#999;cursor:help;font-size:12px}.pivot-drop-zone .pivot-zone-items[data-v-d3a9c5f9]{flex-wrap:wrap;gap:6px;min-height:32px;display:flex}.pivot-drop-zone .pivot-zone-placeholder[data-v-d3a9c5f9]{color:#bbb;text-align:center;width:100%;padding:4px 8px;font-size:12px}.pivot-zone-item[data-v-d3a9c5f9]{cursor:grab;-webkit-user-select:none;user-select:none;box-sizing:border-box;background:#fafafa;border:1px solid #d9d9d9;border-radius:4px;align-items:center;gap:4px;max-width:100%;padding:4px 8px;font-size:12px;transition:all .2s;display:flex;position:relative}.pivot-zone-item[data-v-d3a9c5f9]:hover{background:#f0f7ff;border-color:#1890ff}.pivot-zone-item[data-v-d3a9c5f9]:active{cursor:grabbing}.pivot-zone-item .pivot-zone-item-label[data-v-d3a9c5f9]{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;overflow:hidden}.pivot-zone-item .pivot-zone-item-remove[data-v-d3a9c5f9]{color:#999;cursor:pointer;flex-shrink:0;margin-left:2px;font-size:10px}.pivot-zone-item .pivot-zone-item-remove[data-v-d3a9c5f9]:hover{color:#ff4d4f}.pivot-value-item[data-v-d3a9c5f9]{cursor:grab;-webkit-user-select:none;user-select:none;background:#fff7e6;border-color:#ffd591;flex-flow:column wrap;align-items:flex-start;width:100%;max-width:100%;display:flex}.pivot-value-item[data-v-d3a9c5f9]:hover{background:#fff7e6;border-color:#fa8c16}.pivot-value-item[data-v-d3a9c5f9]:active{cursor:grabbing}.pivot-value-item.value-item-invalid[data-v-d3a9c5f9]{background:#fff1f0;border-color:#ff4d4f}.pivot-value-item.drag-before[data-v-d3a9c5f9]{box-shadow:0 -2px #1890ff}.pivot-value-item.drag-after[data-v-d3a9c5f9]{box-shadow:0 2px #1890ff}.pivot-value-item .pivot-zone-item-label[data-v-d3a9c5f9]{flex-shrink:0}.pivot-value-item[data-v-d3a9c5f9] .ant-select,.pivot-value-item[data-v-d3a9c5f9] .ant-input{flex:auto;min-width:70px}.pivot-drop-zone-values[data-v-d3a9c5f9]{min-height:80px}.pivot-dim-group[data-v-d3a9c5f9]{box-sizing:border-box;cursor:grab;-webkit-user-select:none;user-select:none;background:#f6ffed;border:1px solid #b7eb8f;border-radius:6px;flex-direction:column;gap:6px;width:100%;max-width:100%;padding:6px 8px;transition:all .2s;display:flex;position:relative}.pivot-dim-group[data-v-d3a9c5f9]:hover{background:#f6ffed;border-color:#52c41a}.pivot-dim-group.drag-over[data-v-d3a9c5f9]{border-color:#52c41a;box-shadow:inset 0 0 0 2px #52c41a}.pivot-dim-group.drop-group-before[data-v-d3a9c5f9]:before,.pivot-dim-group.drop-group-after[data-v-d3a9c5f9]:after{content:"";pointer-events:none;z-index:2;border-top:2px solid #1890ff;height:0;position:absolute;left:-2px;right:-2px;box-shadow:0 0 4px #1890ffb3}.pivot-dim-group.drop-group-before[data-v-d3a9c5f9]:before{top:-4px}.pivot-dim-group.drop-group-after[data-v-d3a9c5f9]:after{bottom:-4px}.pivot-dim-group .pivot-dim-group-header[data-v-d3a9c5f9]{align-items:center;gap:6px;width:100%;display:flex}.pivot-dim-group .pivot-dim-group-header .pivot-group-label-input[data-v-d3a9c5f9]{flex:auto;min-width:0}.pivot-dim-group .pivot-dim-group-header .pivot-group-remove[data-v-d3a9c5f9]{color:#999;cursor:pointer;flex-shrink:0;font-size:11px}.pivot-dim-group .pivot-dim-group-header .pivot-group-remove[data-v-d3a9c5f9]:hover{color:#ff4d4f}.pivot-dim-group .pivot-dim-group-fields[data-v-d3a9c5f9]{flex-flow:column wrap;align-items:flex-start;gap:4px;width:100%;display:flex}.pivot-dim-group .pivot-field-chip[data-v-d3a9c5f9]{cursor:grab;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #d9d9d9;border-radius:4px;align-items:center;gap:4px;width:100%;padding:2px 6px;font-size:12px;display:flex;position:relative}.pivot-dim-group .pivot-field-chip.drop-before[data-v-d3a9c5f9]:before,.pivot-dim-group .pivot-field-chip.drop-after[data-v-d3a9c5f9]:after{content:"";pointer-events:none;border-top:2px solid #1890ff;height:0;position:absolute;left:-1px;right:-1px;box-shadow:0 0 4px #1890ffb3}.pivot-dim-group .pivot-field-chip.drop-before[data-v-d3a9c5f9]:before{top:-3px}.pivot-dim-group .pivot-field-chip.drop-after[data-v-d3a9c5f9]:after{bottom:-3px}.pivot-dim-group .pivot-field-chip[data-v-d3a9c5f9]:hover{border-color:#52c41a}.pivot-dim-group .pivot-field-chip .pivot-chip-label[data-v-d3a9c5f9]{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.pivot-dim-group .pivot-field-chip .pivot-chip-remove[data-v-d3a9c5f9]{color:#999;cursor:pointer;flex-shrink:0;font-size:10px}.pivot-dim-group .pivot-field-chip .pivot-chip-remove[data-v-d3a9c5f9]:hover{color:#ff4d4f}.pivot-dim-group .pivot-field-chip[data-v-d3a9c5f9] .ant-select{flex:auto;min-width:80px}.pivot-dim-group .pivot-sort-row[data-v-d3a9c5f9]{border-top:1px dashed #d9d9d9;flex-wrap:wrap;align-items:center;gap:6px;width:100%;padding-top:6px;display:flex}.pivot-dim-group .pivot-sort-row .pivot-sort-label[data-v-d3a9c5f9]{color:#999;flex-shrink:0;font-size:11px}.pivot-dim-group .pivot-sort-row[data-v-d3a9c5f9] .ant-select{flex:0 auto;min-width:0}.pivot-options[data-v-d3a9c5f9]{border-top:1px solid #f0f0f0;flex-shrink:0;padding:8px 0}.value-item-header[data-v-d3a9c5f9]{flex-direction:row;justify-content:space-between;gap:6px;width:100%;display:flex}.value-item-content[data-v-d3a9c5f9]{flex-direction:row;align-items:center;gap:6px;display:flex}.pivot-drop-zone-subexpr[data-v-d3a9c5f9]{background:#fafaff}.subexpr-items[data-v-d3a9c5f9]{align-items:stretch}.pivot-subexpr-card[data-v-d3a9c5f9]{background:#fff;border:1px solid #efd6ff;border-radius:6px;flex-direction:column;gap:4px;min-width:220px;max-width:100%;padding:6px 10px;display:flex}.pivot-subexpr-card .subexpr-card-head[data-v-d3a9c5f9]{justify-content:space-between;align-items:center;gap:8px;display:flex}.pivot-subexpr-card .subexpr-card-head .subexpr-card-name[data-v-d3a9c5f9]{color:#722ed1;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.pivot-subexpr-card .subexpr-card-head .subexpr-card-actions[data-v-d3a9c5f9]{flex-shrink:0;align-items:center;gap:2px;display:flex}.view-manage-container[data-v-b431b3c2]{gap:16px;height:400px;display:flex;overflow-y:auto}.view-manage-container .view-section[data-v-b431b3c2]{border:1px solid #f0f0f0;border-radius:4px;flex:1;padding:8px}.view-manage-container .view-section .section-header[data-v-b431b3c2]{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:4px;display:flex}.view-manage-container .view-section .section-header .title[data-v-b431b3c2]{font-weight:700}.view-manage-container .view-section .section-header .header-actions[data-v-b431b3c2]{align-items:center;display:flex}.view-item-row[data-v-b431b3c2]{justify-content:space-between;align-items:center;width:100%;display:flex}.view-item-row .view-name[data-v-b431b3c2]{cursor:pointer;text-overflow:ellipsis;white-space:nowrap;flex:0 auto;padding:4px 0;overflow:hidden}.view-item-row .view-name[data-v-b431b3c2]:hover{color:#1890ff}.view-item-row .view-actions[data-v-b431b3c2]{opacity:0;gap:4px;transition:opacity .2s;display:flex}.view-item-row:hover .view-actions[data-v-b431b3c2]{opacity:1}.view-num[data-v-b431b3c2]{white-space:nowrap;display:inline-block}.vf-wrap[data-v-79177f5f]{gap:16px;height:100%;min-height:360px;display:flex}.vf-left[data-v-79177f5f]{border:1px solid #f0f0f0;border-radius:6px;flex-direction:column;flex-shrink:0;width:240px;padding:8px;display:flex;overflow:hidden}.vf-left .vf-section-title[data-v-79177f5f]{margin-bottom:8px;font-size:13px;font-weight:600}.vf-left .vf-field-search[data-v-79177f5f]{flex-shrink:0;margin-bottom:8px}.vf-left .vf-field-pool[data-v-79177f5f]{flex:1;min-height:0;overflow-y:auto}.vf-left .vf-field-item[data-v-79177f5f]{cursor:grab;-webkit-user-select:none;user-select:none;border:1px solid #f0f0f0;border-radius:4px;align-items:center;gap:6px;margin-bottom:4px;padding:6px 8px;font-size:13px;transition:all .2s;display:flex}.vf-left .vf-field-item[data-v-79177f5f]:hover{background:#f0f7ff;border-color:#1890ff}.vf-left .vf-field-item[data-v-79177f5f]:active{cursor:grabbing}.vf-left .vf-field-item .vf-field-icon[data-v-79177f5f]{color:#1890ff;font-size:12px}.vf-left .vf-field-item .vf-field-label[data-v-79177f5f]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vf-left .vf-field-group[data-v-79177f5f]{cursor:default;background:#fafafa;font-weight:600}.vf-left .vf-field-group[data-v-79177f5f]:hover{background:#fafafa;border-color:#f0f0f0}.vf-left .vf-field-branch-dot[data-v-79177f5f]{background:#d9d9d9;border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.vf-left .vf-empty[data-v-79177f5f]{text-align:center;color:#999;padding:20px 0;font-size:12px}.vf-right[data-v-79177f5f]{flex-direction:column;flex:1;gap:12px;min-width:0;display:flex;overflow-y:auto}.vf-switch-row[data-v-79177f5f]{align-items:center;gap:8px;display:flex}.vf-switch-row .vf-switch-label[data-v-79177f5f]{color:#333;font-size:13px}.vf-single[data-v-79177f5f]{flex-direction:column;gap:8px;display:flex}.vf-single .vf-single-drop[data-v-79177f5f]{border:2px dashed #d9d9d9;border-radius:6px;align-items:center;gap:8px;min-height:40px;padding:0 10px;transition:all .2s;display:flex}.vf-single .vf-single-drop.drag-over[data-v-79177f5f]{background:#f0f7ff;border-color:#1890ff}.vf-single .vf-single-drop .vf-single-field[data-v-79177f5f]{color:#1890ff;font-size:13px;font-weight:600}.vf-single .vf-single-drop .vf-single-placeholder[data-v-79177f5f]{color:#bbb;font-size:12px}.vf-single .vf-single-drop .vf-single-remove[data-v-79177f5f]{color:#999;cursor:pointer}.vf-single .vf-single-drop .vf-single-remove[data-v-79177f5f]:hover{color:#ff4d4f}.vf-single .vf-single-select[data-v-79177f5f]{max-width:320px}.vf-single .vf-tip[data-v-79177f5f]{color:#999;font-size:12px}.vf-collapse[data-v-79177f5f]{background:0 0}.vf-collapse[data-v-79177f5f] .ant-collapse-item{background:#fff;border:1px solid #f0f0f0;border-radius:6px;margin-bottom:12px;overflow:hidden}.vf-collapse[data-v-79177f5f] .ant-collapse-header{font-size:13px;font-weight:600}.column-edit-view-wrapper[data-v-f4dad853]{height:100%;padding:0 8px}.tab-content-scroll[data-v-f4dad853]{height:100%;overflow-y:auto}[data-v-f4dad853] .ant-tabs,[data-v-f4dad853] .ant-tabs-content{height:100%}.ant-pro-table-list-toolbar-container[data-v-6b272373]{height:30px;padding:0 8px;line-height:30px}.ant-pro-table-list-toolbar-setting-item[data-v-6b272373]{font-size:14px}.current-view-name[data-v-6b272373]{text-overflow:ellipsis;white-space:nowrap;max-width:150px;display:inline-block;overflow:hidden}.current-view-container[data-v-6b272373]{gap:4px;height:100%;padding:2px;display:flex}.view-menu[data-v-6b272373]{cursor:pointer;background:#fafafa;border:1px solid #f0f0f0;border-radius:4px;padding:0 4px;font-size:12px;font-weight:400;line-height:26px}.popup-divider[data-v-d0b9bee1] .ant-divider-horizontal{margin-top:1px;margin-bottom:1px}.btn-wraper[data-v-d40ed682]{justify-content:flex-end;display:flex}.table-wraper[data-v-d40ed682]{height:100%;overflow:hidden}.modify-row-height[data-v-d40ed682] .surely-table-header,.modify-row-height[data-v-d40ed682] .surely-table-header-cell,.modify-row-height[data-v-d40ed682] .surely-table-summary{height:var(--row-heigth)!important}.popup-divider[data-v-d40ed682] .ant-divider-horizontal{margin-top:1px;margin-bottom:1px}.highlight[data-v-d40ed682]{background-color:#ffc069;padding:0}.my-card[data-v-25d1dc13],.my-card[data-v-52b515e0]{background-color:#f6f7f9;padding:20px}.card[data-v-d12629e4]{background:#f2f5f7;max-height:300px;overflow:auto}.condition-group[data-v-d12629e4]{padding:5px}.range[data-v-d12629e4]{margin-top:5px}.close-icon[data-v-d12629e4]{color:red;width:15px;margin-top:5px;margin-left:5px}.search-bar[data-v-d12629e4]{text-align:right;background:#f2f5f7}[data-v-d12629e4] .divider .ant-divider{margin:0}.num{display:inline-block}.dropdown{display:none}.table:hover .dropdown{display:inline-block}.table:hover .num{display:none}.pivot-table-wraper[data-v-72dfa192]{height:100%;overflow:hidden}.pivot-vtable-container[data-v-72dfa192]{width:100%;position:relative;overflow:hidden}.pivot-vtable-container .pivot-vtable-loading[data-v-72dfa192]{z-index:10;background:#fff9;flex-direction:column;justify-content:center;align-items:center;gap:16px;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.pivot-vtable-container .pivot-vtable-loading .pivot-progress[data-v-72dfa192]{width:200px}.pivot-vtable-container .pivot-empty-tip[data-v-72dfa192]{color:#999;justify-content:center;align-items:center;height:100%;font-size:14px;display:flex}.pivot-charts-wraper[data-v-3ca6164d]{height:100%;overflow:hidden}.pivot-echarts-container[data-v-3ca6164d]{width:100%;position:relative;overflow:hidden}.pivot-echarts-container .pivot-echarts-loading[data-v-3ca6164d]{z-index:10;background:#fff9;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.pivot-echarts-container .echarts-dom[data-v-3ca6164d]{width:100%;height:100%}.pivot-echarts-container .pivot-empty-tip[data-v-3ca6164d]{color:#999;justify-content:center;align-items:center;height:100%;font-size:14px;display:flex}.full-layout[data-v-744a0d2d]{height:calc(100vh - var(--current-top,0px));margin:-24px -24px 0;position:relative;overflow:auto}.vue-grid-item{transition:left,top,right}.vue-grid-item.no-touch{-ms-touch-action:none;touch-action:none}.vue-grid-item.cssTransforms{transition-property:transform;left:0;right:auto}.vue-grid-item.cssTransforms.render-rtl{left:auto;right:0}.vue-grid-item.resizing{z-index:3;opacity:.6}.vue-grid-item.vue-draggable-dragging{z-index:3;transition:none}.vue-grid-item.vue-grid-placeholder{z-index:2;-webkit-user-select:none;user-select:none;-o-user-select:none;background:pink;transition-duration:.1s}.vue-grid-item>.vue-resizable-handle{box-sizing:border-box;cursor:se-resize;background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg08IS0tIEdlbmVyYXRvcjogQWRvYmUgRmlyZXdvcmtzIENTNiwgRXhwb3J0IFNWRyBFeHRlbnNpb24gYnkgQWFyb24gQmVhbGwgKGh0dHA6Ly9maXJld29ya3MuYWJlYWxsLmNvbSkgLiBWZXJzaW9uOiAwLjYuMSAgLS0+DTwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DTxzdmcgaWQ9IlVudGl0bGVkLVBhZ2UlMjAxIiB2aWV3Qm94PSIwIDAgNiA2IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmMDAiIHZlcnNpb249IjEuMSINCXhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiDQl4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjZweCIgaGVpZ2h0PSI2cHgiDT4NCTxnIG9wYWNpdHk9IjAuMzAyIj4NCQk8cGF0aCBkPSJNIDYgNiBMIDAgNiBMIDAgNC4yIEwgNCA0LjIgTCA0LjIgNC4yIEwgNC4yIDAgTCA2IDAgTCA2IDYgTCA2IDYgWiIgZmlsbD0iIzAwMDAwMCIvPg0JPC9nPg08L3N2Zz4=) 100% 100% no-repeat content-box border-box;width:20px;height:20px;padding:0 3px 3px 0;position:absolute;bottom:0;right:0}.vue-grid-item>.vue-rtl-resizable-handle{cursor:sw-resize;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAuMDAwMDAwMDAwMDAwMDAyIiBoZWlnaHQ9IjEwLjAwMDAwMDAwMDAwMDAwMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KIDwhLS0gQ3JlYXRlZCB3aXRoIE1ldGhvZCBEcmF3IC0gaHR0cDovL2dpdGh1Yi5jb20vZHVvcGl4ZWwvTWV0aG9kLURyYXcvIC0tPgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIxMiIgd2lkdGg9IjEyIiB5PSItMSIgeD0iLTEiLz4KICA8ZyBkaXNwbGF5PSJub25lIiBvdmVyZmxvdz0idmlzaWJsZSIgeT0iMCIgeD0iMCIgaGVpZ2h0PSIxMDAlIiB3aWR0aD0iMTAwJSIgaWQ9ImNhbnZhc0dyaWQiPgogICA8cmVjdCBmaWxsPSJ1cmwoI2dyaWRwYXR0ZXJuKSIgc3Ryb2tlLXdpZHRoPSIwIiB5PSIwIiB4PSIwIiBoZWlnaHQ9IjEwMCUiIHdpZHRoPSIxMDAlIi8+CiAgPC9nPgogPC9nPgogPGc+CiAgPHRpdGxlPkxheWVyIDE8L3RpdGxlPgogIDxsaW5lIGNhbnZhcz0iI2ZmZmZmZiIgY2FudmFzLW9wYWNpdHk9IjEiIHN0cm9rZS1saW5lY2FwPSJ1bmRlZmluZWQiIHN0cm9rZS1saW5lam9pbj0idW5kZWZpbmVkIiBpZD0ic3ZnXzEiIHkyPSItNzAuMTc4NDA3IiB4Mj0iMTI0LjQ2NDA3NSIgeTE9Ii0zOC4zOTI3MzciIHgxPSIxNDQuODIxMjg5IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlPSIjMDAwIiBmaWxsPSJub25lIi8+CiAgPGxpbmUgc3Ryb2tlPSIjNjY2NjY2IiBzdHJva2UtbGluZWNhcD0idW5kZWZpbmVkIiBzdHJva2UtbGluZWpvaW49InVuZGVmaW5lZCIgaWQ9InN2Z181IiB5Mj0iOS4xMDY5NTciIHgyPSIwLjk0NzI0NyIgeTE9Ii0wLjAxODEyOCIgeDE9IjAuOTQ3MjQ3IiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9Im5vbmUiLz4KICA8bGluZSBzdHJva2UtbGluZWNhcD0idW5kZWZpbmVkIiBzdHJva2UtbGluZWpvaW49InVuZGVmaW5lZCIgaWQ9InN2Z183IiB5Mj0iOSIgeDI9IjEwLjA3MzUyOSIgeTE9IjkiIHgxPSItMC42NTU2NCIgc3Ryb2tlLXdpZHRoPSIwIiBzdHJva2U9IiM2NjY2NjYiIGZpbGw9Im5vbmUiLz4KIDwvZz4KPC9zdmc+) 0 100% no-repeat content-box border-box;padding-left:3px;bottom:0;left:0;right:auto}.vue-grid-item.disable-userselect{-webkit-user-select:none;user-select:none}.vue-grid-layout,.item[data-v-668f099b]{position:relative}.border[data-v-668f099b]{border:1px solid #ccc}.item-content[data-v-668f099b]{background:#fff;border-radius:2px;width:100%;height:100%;overflow:hidden}.grid-page-wraper{width:100%;height:100%;padding:5px}.grid-page-content{border-radius:4px;width:100%;height:100%}.view-item-row[data-v-47b7eabd]{cursor:pointer;justify-content:space-between;align-items:center;width:100%;display:flex}.view-item-row .view-name-container[data-v-47b7eabd]{flex:1;align-items:center;min-width:0;padding:4px 0;display:flex}.view-item-row .view-name-container .view-name[data-v-47b7eabd]{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;overflow:hidden}.view-item-row .view-name-container .view-name[data-v-47b7eabd]:hover{color:#1890ff}.view-item-row .view-name-container .view-default-tag[data-v-47b7eabd]{flex:none;margin-left:4px}.view-item-container[data-v-47b7eabd]{position:relative}.view-item-container .view-actions[data-v-47b7eabd]{opacity:0;background:#f9f9f9;border-radius:4px;align-items:center;gap:4px;height:30px;transition:opacity .2s;display:flex;position:absolute;top:0;right:0}.view-item-container .view-actions.current[data-v-47b7eabd]{background:#b9defd}.view-item-container:hover .view-actions[data-v-47b7eabd]{opacity:1}.collapses .ant-collapse-item .ant-collapse-content .ant-collapse-content-box{padding:0}.config-container[data-v-681bc6f1]{background:#fff;flex-direction:column;justify-content:space-between;height:100%;display:flex}.config-container[data-v-681bc6f1] .ant-tabs{flex:1;padding:0;overflow:hidden}.config-container[data-v-681bc6f1] .ant-tabs .ant-tabs-content-top{height:100%}.config-container[data-v-681bc6f1] .ant-tabs .ant-tabs-nav{padding:0 10px}.left-extra[data-v-681bc6f1]{margin-right:10px}[data-v-681bc6f1] .ant-tabs-nav{margin-bottom:0}.global-filter-loading[data-v-a7f4228e]{z-index:3000;background:#ffffffa6;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:fixed;inset:0}.global-filter-loading__text[data-v-a7f4228e]{color:#333;font-size:14px}.table-wrapper[data-v-4fd73b2f]{flex-direction:column;flex:1;height:100%;display:flex;overflow:hidden}.toggle-button[data-v-4fd73b2f]{cursor:pointer;height:46px;font-size:20px;line-height:33px}.toggle-button[data-v-4fd73b2f]:hover{color:#1890ff;filter:drop-shadow(2px 2px 2px #bddfff)}.filter-message[data-v-4fd73b2f]{gap:14px;display:flex}.pri-page[data-v-76801f0e]{height:100%;padding-top:4px;padding-left:4px;padding-right:4px}.pri-wrapper[data-v-76801f0e]{flex-direction:row;justify-content:space-between;gap:4px;height:100%;display:flex;overflow:hidden}.left-slide-outer[data-v-76801f0e]{background-color:#fff;width:220px;height:100%;overflow:hidden}.left-wrapper[data-v-76801f0e]{background-color:#fff;width:220px;height:100%;padding-left:4px;padding-right:4px;overflow:hidden}.left-slide-enter-active[data-v-76801f0e],.left-slide-leave-active[data-v-76801f0e]{transition:width .3s,opacity .3s;overflow:hidden}.left-slide-enter-from[data-v-76801f0e],.left-slide-leave-to[data-v-76801f0e]{opacity:0;width:0}.left-slide-leave-from[data-v-76801f0e],.left-slide-enter-to[data-v-76801f0e]{opacity:1;width:220px}.right-wrapper[data-v-76801f0e]{background-color:#fff;flex-direction:row;flex:1;justify-content:space-between;height:100%;display:flex;overflow:hidden}.left-space[data-v-76801f0e]{width:0;transition:width .2s}.left-space.setting-open[data-v-76801f0e]{width:calc(var(--drawer_width) - var(--x))}.right-space[data-v-76801f0e]{width:0;transition:width .2s}.right-space.detail-open[data-v-76801f0e]{width:calc(var(--detail_width))}.table-modal[data-v-9a04fe22]{flex-direction:column;gap:8px;display:flex}.table-modal .header[data-v-9a04fe22]{padding:4px}.field-extra[data-v-02b9ac99]{color:#999;margin-top:2px;font-size:12px;line-height:1.4}.field-hint[data-v-0c465e84]{color:#999;margin-bottom:8px;font-size:12px}.pl-item[data-v-0c465e84]{align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.pl-subtitle[data-v-0c465e84]{color:#000000d9;margin:4px 0 8px;font-size:13px;font-weight:500}.field-card[data-v-0c465e84]{margin-bottom:12px}.import-col-toolbar[data-v-0c465e84]{align-items:center;gap:8px;margin-bottom:12px;display:flex}.import-col-label[data-v-0c465e84]{color:#000000d9;font-size:13px}.modal-footer[data-v-0c465e84]{flex-direction:column;display:flex}.footer-error[data-v-0c465e84]{margin-bottom:8px}.footer-buttons[data-v-0c465e84]{justify-content:flex-end;gap:8px;display:flex}.field-name[data-v-0c465e84]{color:#1890ff;font-weight:500}.qb-group[data-v-1c5e0123]{border-left:2px solid #f0f0f0;padding-left:8px}.qb-group-head[data-v-1c5e0123]{gap:8px;margin-bottom:8px;display:flex}.qb-group-body[data-v-1c5e0123]{flex-direction:column;gap:6px;display:flex}.qb-rule[data-v-1c5e0123]{align-items:center;gap:8px;display:flex}.qb-subgroup[data-v-1c5e0123]{border-left:2px dashed #f0f0f0;padding:6px 0 6px 8px}.qb-group[data-v-1f8cf6f5]{border-left:2px solid #f0f0f0;padding-left:8px}.qb-group-head[data-v-1f8cf6f5]{gap:8px;margin-bottom:8px;display:flex}.qb-group-body[data-v-1f8cf6f5]{flex-direction:column;gap:6px;display:flex}.qb-rule[data-v-1f8cf6f5]{align-items:center;gap:8px;display:flex}.qb-subgroup[data-v-1f8cf6f5]{border-left:2px dashed #f0f0f0;padding:6px 0 6px 8px}.conditions-scroll[data-v-1f8cf6f5]{max-height:200px;padding-right:8px;overflow-y:auto}.time-range-row[data-v-1f8cf6f5]{align-items:center;gap:8px;margin-top:8px;display:flex}.field-label[data-v-1f8cf6f5]{color:#000000d9;font-weight:500}.mark-container{color:#2d3748;overflow-wrap:break-word;word-break:break-word;box-sizing:border-box;background-color:#fff;margin:0 auto;padding:1rem 0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.6}.mark-container h1,.mark-container h2,.mark-container h3,.mark-container h4,.mark-container h5,.mark-container h6{margin-top:2.5rem;margin-bottom:1.5rem;padding-bottom:.5rem;font-weight:700;position:relative}.mark-container h1{color:#4299e1;font-size:2.25rem}.mark-container h2{border-bottom:2px solid #e2e8f0;font-size:1.75rem}.mark-container h3{color:#4299e1;font-size:1.5rem}.mark-container h4{color:#4299e1;font-size:1.25rem}.mark-container h5,.mark-container h6{color:#4299e1;font-size:1rem}.mark-container p{color:#4a5568;margin-bottom:1.25rem}.mark-container ul,.mark-container ol{margin-bottom:1.25rem;padding-left:2rem}.mark-container li,.mark-container li>p{margin-bottom:.5rem}.mark-container pre{background-color:#f0f4f8;border-radius:.5rem;margin:1.5rem 0;padding:1.5rem;font-family:Fira Code,Consolas,monospace;font-size:.95rem;line-height:1.5;overflow-x:auto;box-shadow:0 4px 6px -1px #0000001a}.mark-container pre code{font-size:inherit;line-height:inherit;color:inherit;background-color:#0000;padding:0}.mark-container blockquote{color:#4a5568;background-color:#4299e10d;border-left:.25rem solid #4299e1;border-radius:0 .5rem .5rem 0;margin:1.5rem 0;padding:1rem 1.5rem}.mark-container table{border-collapse:collapse;width:100%;margin:1.5rem 0}.mark-container th,.mark-container td{text-align:left;border:1px solid #e2e8f0;padding:.75rem 1rem}.mark-container th{background-color:#f8fafc;font-weight:600}.mark-container a{color:#4299e1;text-decoration:none}.mark-container a:hover{color:#2b6cb0;text-decoration:underline}.mark-container hr{border:0;border-top:1px solid #e2e8f0;margin:2rem 0}.mark-container code{color:#2d3748;background-color:#f0f4f8;border-radius:.25rem;padding:.2rem .4rem;font-family:Fira Code,Consolas,monospace;font-size:.95rem}.mark-container strong{color:#4299e1;font-weight:600}@media (width<=768px){.mark-container{padding:1.5rem;font-size:15px}.mark-container h1{font-size:1.8rem}.mark-container h2{font-size:1.4rem}}.mark-container .mark-code-block{position:relative}.mark-container .md-copy-btn{z-index:2;color:#4a5568;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #cbd5e0;border-radius:.25rem;padding:2px 10px;font-size:12px;line-height:1.6;position:absolute;top:.6rem;right:.6rem}.mark-container .md-copy-btn:hover{color:#4299e1;border-color:#4299e1}.mark-container .md-copy-btn:active{background:#f0f4f8}.batch-toolbar[data-v-aecb1aff]{align-items:center;gap:8px;margin-bottom:12px;display:flex}.batch-tip[data-v-aecb1aff]{color:#999;margin-left:auto;font-size:12px}
1
+ *,:before,:after,::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 #0000;--un-ring-shadow:0 0 #0000;--un-shadow-inset: ;--un-shadow:0 0 #0000;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:#93c5fd80;--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.container{width:100%}@media (width>=640px){.container{max-width:640px}}@media (width>=768px){.container{max-width:768px}}@media (width>=1024px){.container{max-width:1024px}}@media (width>=1280px){.container{max-width:1280px}}@media (width>=1536px){.container{max-width:1536px}}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.static{position:static}.grid{display:grid}.inline{display:inline}.block{display:block}.inline-block{display:inline-block}.contents{display:contents}.hidden{display:none}.h1{height:.25rem}.h2{height:.5rem}.h3{height:.75rem}.h4{height:1rem}.h6{height:1.5rem}.flex{display:flex}.inline-flex{display:inline-flex}.flex-shrink{flex-shrink:1}.grow{flex-grow:1}.flex-wrap{flex-wrap:wrap}.table{display:table}.border-collapse{border-collapse:collapse}.transform{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z))}.resize{resize:both}.break-all{word-break:break-all}.b,.border{border-width:1px}.px{padding-left:1rem;padding-right:1rem}.pie{padding-inline-end:1rem}.indent{text-indent:1.5rem}.italic{font-style:italic}.underline{text-decoration-line:underline}.tab{tab-size:4}.shadow{--un-shadow:0px 2px 14px 0px var(--un-shadow-color,#00000014);box-shadow:var(--un-ring-offset-shadow), var(--un-ring-shadow), var(--un-shadow)}.outline{outline-style:solid}.filter{filter:var(--un-blur) var(--un-brightness) var(--un-contrast) var(--un-drop-shadow) var(--un-grayscale) var(--un-hue-rotate) var(--un-invert) var(--un-saturate) var(--un-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease{transition-timing-function:cubic-bezier(.4,0,.2,1)}.remote-select-pro[data-v-1b82cc96]{flex-wrap:nowrap;align-items:flex-start;gap:4px;display:flex}.ant-input-group.ant-input-group-compact .remote-select-pro[data-v-1b82cc96]{display:flex}.ant-form-inline .ant-input-group.ant-input-group-compact .remote-select-pro[data-v-1b82cc96]{display:inline-flex}.table-search-icon[data-v-1b82cc96]{color:#000;font-size:17px}.json-str-group[data-v-d718bf4e]{flex-direction:column;align-items:flex-end;gap:4px;width:100%;display:inline-flex}.attribute-table .ant-table-footer{padding:5px;padding:5px}.ant-calendar-picker[data-v-7666b6e4]{width:100%!important}.CodeMirror{font-family:Monaco,monospace;height:300px!important;font-size:15px!important;line-height:1.4!important}.CodeMirror-lines{min-height:1px;padding:4px 0}.CodeMirror-hints{background:#2d2d2d;border:1px solid #555;border-radius:3px;max-height:20em;margin:0 0 0 5px;padding:2px;font-family:monospace;font-size:100%;list-style:none;position:absolute;overflow:hidden auto;box-shadow:2px 3px 5px #0003;z-index:9999!important}.CodeMirror-hint{white-space:pre;color:#fff;cursor:pointer;border-radius:2px;margin:0;padding:0 4px}li.CodeMirror-hint-active{color:#fff;background:#08f}.head_btn[data-v-bcfee82b]{flex-wrap:wrap;justify-content:end;gap:4px;margin-bottom:4px;display:flex}:root,:host{--w-e-textarea-bg-color:#fff;--w-e-textarea-color:#333;--w-e-textarea-border-color:#ccc;--w-e-textarea-slight-border-color:#e8e8e8;--w-e-textarea-slight-color:#d4d4d4;--w-e-textarea-slight-bg-color:#f5f2f0;--w-e-textarea-selected-border-color:#b4d5ff;--w-e-textarea-handler-bg-color:#4290f7;--w-e-toolbar-color:#595959;--w-e-toolbar-bg-color:#fff;--w-e-toolbar-active-color:#333;--w-e-toolbar-active-bg-color:#f1f1f1;--w-e-toolbar-disabled-color:#999;--w-e-toolbar-border-color:#e8e8e8;--w-e-modal-button-bg-color:#fafafa;--w-e-modal-button-border-color:#d9d9d9}.w-e-text-container *,.w-e-toolbar *{box-sizing:border-box;outline:none;margin:0;padding:0}.w-e-text-container blockquote,.w-e-text-container li,.w-e-text-container p,.w-e-text-container td,.w-e-text-container th,.w-e-toolbar *{line-height:1.5}.w-e-text-container{background-color:var(--w-e-textarea-bg-color);color:var(--w-e-textarea-color);height:100%;position:relative}.w-e-text-container .w-e-scroll{-webkit-overflow-scrolling:touch;height:100%}.w-e-text-container [data-slate-editor]{word-wrap:break-word;white-space:pre-wrap;border-top:1px solid #0000;outline:0;min-height:100%;padding:0 10px}.w-e-text-container [data-slate-editor] p{margin:15px 0}.w-e-text-container [data-slate-editor] h1,.w-e-text-container [data-slate-editor] h2,.w-e-text-container [data-slate-editor] h3,.w-e-text-container [data-slate-editor] h4,.w-e-text-container [data-slate-editor] h5{margin:20px 0}.w-e-text-container [data-slate-editor] img{cursor:default;min-width:20px;max-width:100%;min-height:20px;display:inline!important}.w-e-text-container [data-slate-editor] span{text-indent:0}.w-e-text-container [data-slate-editor] [data-selected=true]{box-shadow:0 0 0 2px var(--w-e-textarea-selected-border-color)}.w-e-text-placeholder{width:90%;font-style:italic;top:17px;left:10px}.w-e-max-length-info,.w-e-text-placeholder{color:var(--w-e-textarea-slight-color);pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute}.w-e-max-length-info{bottom:.5em;right:1em}.w-e-bar{background-color:var(--w-e-toolbar-bg-color);color:var(--w-e-toolbar-color);padding:0 5px;font-size:14px}.w-e-bar svg{fill:var(--w-e-toolbar-color);width:14px;height:14px}.w-e-bar-show{display:flex}.w-e-bar-hidden{display:none}.w-e-hover-bar{border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;position:absolute;box-shadow:0 2px 5px #0000001f}.w-e-toolbar{flex-wrap:wrap;position:relative}.w-e-bar-divider{background-color:var(--w-e-toolbar-border-color);width:1px;height:40px;margin:0 5px;display:inline-flex}.w-e-bar-item{text-align:center;height:40px;padding:4px;display:flex;position:relative}.w-e-bar-item,.w-e-bar-item button{justify-content:center;align-items:center}.w-e-bar-item button{color:var(--w-e-toolbar-color);cursor:pointer;white-space:nowrap;background:0 0;border:none;height:32px;padding:0 8px;display:inline-flex;overflow:hidden}.w-e-bar-item button:hover{background-color:var(--w-e-toolbar-active-bg-color);color:var(--w-e-toolbar-active-color)}.w-e-bar-item button .title{margin-left:5px}.w-e-bar-item .active{background-color:var(--w-e-toolbar-active-bg-color);color:var(--w-e-toolbar-active-color)}.w-e-bar-item .disabled{color:var(--w-e-toolbar-disabled-color);cursor:not-allowed}.w-e-bar-item .disabled svg{fill:var(--w-e-toolbar-disabled-color)}.w-e-bar-item .disabled:hover{background-color:var(--w-e-toolbar-bg-color);color:var(--w-e-toolbar-disabled-color)}.w-e-bar-item .disabled:hover svg{fill:var(--w-e-toolbar-disabled-color)}.w-e-menu-tooltip-v5:before{background-color:var(--w-e-toolbar-active-color);color:var(--w-e-toolbar-bg-color);content:attr(data-tooltip);opacity:0;text-align:center;visibility:hidden;white-space:pre;z-index:1;border-radius:5px;padding:5px 10px;font-size:.75em;transition:opacity .6s;position:absolute;top:40px}.w-e-menu-tooltip-v5:after{border:5px solid #0000;border-bottom:5px solid var(--w-e-toolbar-active-color);content:"";opacity:0;visibility:hidden;transition:opacity .6s;position:absolute;top:30px}.w-e-menu-tooltip-v5:hover:after,.w-e-menu-tooltip-v5:hover:before{opacity:1;visibility:visible}.w-e-menu-tooltip-v5.tooltip-right:before{top:10px;left:100%}.w-e-menu-tooltip-v5.tooltip-right:after{border-bottom-color:#0000;border-left-color:#0000;border-right-color:var(--w-e-toolbar-active-color);border-top-color:#0000;margin-left:-10px;top:16px;left:100%}.w-e-bar-item-group .w-e-bar-item-menus-container{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);z-index:1;border-radius:3px;margin-top:40px;display:none;position:absolute;top:0;left:0;box-shadow:0 2px 10px #0000001f}.w-e-bar-item-group:hover .w-e-bar-item-menus-container{display:block}.w-e-select-list{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);z-index:1;border-radius:3px;min-width:100px;max-height:350px;margin-top:40px;position:absolute;top:0;left:0;overflow-y:auto;box-shadow:0 2px 10px #0000001f}.w-e-select-list ul{line-height:1;list-style:none}.w-e-select-list ul .selected{background-color:var(--w-e-toolbar-active-bg-color)}.w-e-select-list ul li{cursor:pointer;text-align:left;white-space:nowrap;padding:7px 0 7px 25px;position:relative}.w-e-select-list ul li:hover{background-color:var(--w-e-toolbar-active-bg-color)}.w-e-select-list ul li svg{margin-top:-7px;margin-left:5px;position:absolute;top:50%;left:0}.w-e-bar-bottom .w-e-select-list{bottom:0;top:inherit;margin-top:0;margin-bottom:40px}.w-e-drop-panel{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);z-index:1;border-radius:3px;min-width:200px;margin-top:40px;padding:10px;position:absolute;top:0;box-shadow:0 2px 10px #0000001f}.w-e-bar-bottom .w-e-drop-panel{bottom:0;top:inherit;margin-top:0;margin-bottom:40px}.w-e-modal{background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-toolbar-border-color);color:var(--w-e-toolbar-color);text-align:left;z-index:1;border-radius:3px;min-width:100px;min-height:40px;padding:20px 15px 0;font-size:14px;position:absolute;box-shadow:0 2px 10px #0000001f}.w-e-modal .btn-close{cursor:pointer;padding:5px;line-height:1;position:absolute;top:7px;right:8px}.w-e-modal .btn-close svg{fill:var(--w-e-toolbar-color);width:10px;height:10px}.w-e-modal .babel-container{margin-bottom:15px;display:block}.w-e-modal .babel-container span{margin-bottom:10px;display:block}.w-e-modal .button-container{margin-bottom:15px}.w-e-modal button{background-color:var(--w-e-modal-button-bg-color);border:1px solid var(--w-e-modal-button-border-color);color:var(--w-e-toolbar-color);cursor:pointer;text-align:center;touch-action:manipulation;-webkit-user-select:none;user-select:none;white-space:nowrap;border-radius:4px;height:32px;padding:4.5px 15px;font-weight:400;transition:all .3s cubic-bezier(.645,.045,.355,1)}.w-e-modal input[type=number],.w-e-modal input[type=text],.w-e-modal textarea{font-feature-settings:"tnum";background-color:var(--w-e-toolbar-bg-color);border:1px solid var(--w-e-modal-button-border-color);color:var(--w-e-toolbar-color);font-variant:tabular-nums;border-radius:4px;width:100%;padding:4.5px 11px;transition:all .3s}.w-e-modal textarea{min-height:60px}body .w-e-modal,body .w-e-modal *{box-sizing:border-box}.w-e-progress-bar{background-color:var(--w-e-textarea-handler-bg-color);width:0;height:1px;transition:width .3s;position:absolute}.w-e-full-screen-container{position:fixed;flex-direction:column!important;width:100%!important;height:100%!important;margin:0!important;padding:0!important;display:flex!important;inset:0!important}.w-e-full-screen-container [data-w-e-textarea=true]{flex:1!important}.w-e-text-container [data-slate-editor] code{background-color:var(--w-e-textarea-slight-bg-color);border-radius:3px;padding:3px;font-family:monospace}.w-e-panel-content-color{text-align:left;width:230px;list-style:none}.w-e-panel-content-color li{border:1px solid var(--w-e-toolbar-bg-color);cursor:pointer;border-radius:3px;padding:2px;display:inline-block}.w-e-panel-content-color li:hover{border-color:var(--w-e-toolbar-color)}.w-e-panel-content-color li .color-block{border:1px solid var(--w-e-toolbar-border-color);border-radius:3px;width:17px;height:17px}.w-e-panel-content-color .active{border-color:var(--w-e-toolbar-color)}.w-e-panel-content-color .clear{width:100%;margin-bottom:5px;line-height:1.5}.w-e-panel-content-color .clear svg{width:16px;height:16px;margin-bottom:-4px}.w-e-text-container [data-slate-editor] blockquote{background-color:var(--w-e-textarea-slight-bg-color);border-left:8px solid var(--w-e-textarea-selected-border-color);margin:10px 0;padding:10px;font-size:100%;line-height:1.5;display:block}.w-e-panel-content-emotion{text-align:left;width:300px;font-size:20px;list-style:none}.w-e-panel-content-emotion li{cursor:pointer;border-radius:3px;padding:0 5px;display:inline-block}.w-e-panel-content-emotion li:hover{background-color:var(--w-e-textarea-slight-bg-color)}.w-e-textarea-divider{border-radius:3px;margin:20px auto;padding:20px}.w-e-textarea-divider hr{background-color:var(--w-e-textarea-border-color);border:0;height:1px;display:block}.w-e-text-container [data-slate-editor] pre>code{background-color:var(--w-e-textarea-slight-bg-color);border:1px solid var(--w-e-textarea-slight-border-color);text-indent:0;border-radius:4px;padding:10px;font-size:14px;display:block}.w-e-text-container [data-slate-editor] .w-e-image-container{margin:0 3px;display:inline-block}.w-e-text-container [data-slate-editor] .w-e-image-container:hover{box-shadow:0 0 0 2px var(--w-e-textarea-selected-border-color)}.w-e-text-container [data-slate-editor] .w-e-selected-image-container{position:relative;overflow:hidden}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .w-e-image-dragger{background-color:var(--w-e-textarea-handler-bg-color);width:7px;height:7px;position:absolute}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .left-top{cursor:nwse-resize;top:0;left:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .right-top{cursor:nesw-resize;top:0;right:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .left-bottom{cursor:nesw-resize;bottom:0;left:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container .right-bottom{cursor:nwse-resize;bottom:0;right:0}.w-e-text-container [data-slate-editor] .w-e-selected-image-container:hover,.w-e-text-container [contenteditable=false] .w-e-image-container:hover{box-shadow:none}.w-e-text-container [data-slate-editor] .table-container{border:1px dashed var(--w-e-textarea-border-color);border-radius:5px;width:100%;margin-top:10px;padding:10px;overflow-x:auto}.w-e-text-container [data-slate-editor] table{border-collapse:collapse}.w-e-text-container [data-slate-editor] table td,.w-e-text-container [data-slate-editor] table th{border:1px solid var(--w-e-textarea-border-color);text-align:left;min-width:30px;padding:3px 5px;line-height:1.5}.w-e-text-container [data-slate-editor] table th{background-color:var(--w-e-textarea-slight-bg-color);text-align:center;font-weight:700}.w-e-panel-content-table{background-color:var(--w-e-toolbar-bg-color)}.w-e-panel-content-table table{border-collapse:collapse}.w-e-panel-content-table td{border:1px solid var(--w-e-toolbar-border-color);cursor:pointer;width:20px;height:15px;padding:3px 5px}.w-e-panel-content-table td.active{background-color:var(--w-e-toolbar-active-bg-color)}.w-e-textarea-video-container{border:1px dashed var(--w-e-textarea-border-color);text-align:center;background-image:linear-gradient(45deg,#eee 25%,#0000 0 75%,#eee 0,#eee),linear-gradient(45deg,#eee 25%,#fff 0 75%,#eee 0,#eee);background-position:0 0,10px 10px;background-size:20px 20px;border-radius:5px;margin:10px auto 0;padding:10px 0}.w-e-text-container [data-slate-editor] pre>code{word-wrap:normal;-webkit-hyphens:none;hyphens:none;tab-size:4;text-align:left;text-shadow:0 1px #fff;white-space:pre;word-break:normal;word-spacing:normal;margin:.5em 0;padding:1em;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;line-height:1.5;overflow:auto}.w-e-text-container [data-slate-editor] pre>code .token.cdata,.w-e-text-container [data-slate-editor] pre>code .token.comment,.w-e-text-container [data-slate-editor] pre>code .token.doctype,.w-e-text-container [data-slate-editor] pre>code .token.prolog{color:#708090}.w-e-text-container [data-slate-editor] pre>code .token.punctuation{color:#999}.w-e-text-container [data-slate-editor] pre>code .token.namespace{opacity:.7}.w-e-text-container [data-slate-editor] pre>code .token.boolean,.w-e-text-container [data-slate-editor] pre>code .token.constant,.w-e-text-container [data-slate-editor] pre>code .token.deleted,.w-e-text-container [data-slate-editor] pre>code .token.number,.w-e-text-container [data-slate-editor] pre>code .token.property,.w-e-text-container [data-slate-editor] pre>code .token.symbol,.w-e-text-container [data-slate-editor] pre>code .token.tag{color:#905}.w-e-text-container [data-slate-editor] pre>code .token.attr-name,.w-e-text-container [data-slate-editor] pre>code .token.builtin,.w-e-text-container [data-slate-editor] pre>code .token.char,.w-e-text-container [data-slate-editor] pre>code .token.inserted,.w-e-text-container [data-slate-editor] pre>code .token.selector,.w-e-text-container [data-slate-editor] pre>code .token.string{color:#690}.w-e-text-container [data-slate-editor] pre>code .language-css .token.string,.w-e-text-container [data-slate-editor] pre>code .style .token.string,.w-e-text-container [data-slate-editor] pre>code .token.entity,.w-e-text-container [data-slate-editor] pre>code .token.operator,.w-e-text-container [data-slate-editor] pre>code .token.url{color:#9a6e3a}.w-e-text-container [data-slate-editor] pre>code .token.atrule,.w-e-text-container [data-slate-editor] pre>code .token.attr-value,.w-e-text-container [data-slate-editor] pre>code .token.keyword{color:#07a}.w-e-text-container [data-slate-editor] pre>code .token.class-name,.w-e-text-container [data-slate-editor] pre>code .token.function{color:#dd4a68}.w-e-text-container [data-slate-editor] pre>code .token.important,.w-e-text-container [data-slate-editor] pre>code .token.regex,.w-e-text-container [data-slate-editor] pre>code .token.variable{color:#e90}.w-e-text-container [data-slate-editor] pre>code .token.bold,.w-e-text-container [data-slate-editor] pre>code .token.important{font-weight:700}.w-e-text-container [data-slate-editor] pre>code .token.italic{font-style:italic}.w-e-text-container [data-slate-editor] pre>code .token.entity{cursor:help}.icon-select-container[data-v-29ac0e84]{flex-direction:column;height:600px;display:flex;position:relative}.icon-select-container .search-bar[data-v-29ac0e84]{z-index:1;background:#fff;border-bottom:1px solid #f0f0f0;padding:12px;position:sticky;top:0}.icon-select-container .icon-content[data-v-29ac0e84]{flex:1;padding:12px;overflow-y:auto}.icon-select-container .icon-groups .icon-group[data-v-29ac0e84]{margin-bottom:4px}.icon-select-container .icon-groups .icon-group .group-title[data-v-29ac0e84]{color:#1f1f1f;margin-bottom:2px;font-size:16px;font-weight:500}.icon-select-container .icon-groups .icon-group .icon-grid[data-v-29ac0e84]{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:2px;display:grid}.icon-select-container .icon-groups .icon-group .icon-grid .icon-item[data-v-29ac0e84]{cursor:pointer;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;padding:2px 20px;transition:all .3s;display:flex}.icon-select-container .icon-groups .icon-group .icon-grid .icon-item[data-v-29ac0e84]:hover{background-color:#e6f7ff;border-color:#1890ff}.icon-select-container .icon-groups .icon-group .icon-grid .icon-item.icon-selected[data-v-29ac0e84]{color:#fff;background-color:#1677ff;border-color:#1890ff}.icon-select-container .icon-groups .icon-group .icon-grid .icon-item.icon-selected .icon-name[data-v-29ac0e84]{color:#fff}.icon-select-container .icon-groups .icon-group .icon-grid .icon-item .anticon[data-v-29ac0e84]{margin-bottom:8px;font-size:24px}.icon-select-container .icon-groups .icon-group .icon-grid .icon-item .icon-name[data-v-29ac0e84]{color:#666;text-align:center;word-break:break-all;font-size:12px}.top_btn[data-v-d6626b20]{flex-direction:column;align-items:flex-end;gap:8px;margin-bottom:8px;display:flex}.form-wrap[data-v-d6626b20]{border:1px solid #e8e8e8;border-radius:4px;flex-direction:row;align-items:flex-start;width:100%;margin-bottom:4px;padding:4px;display:flex}.form-wrap .form-content[data-v-d6626b20]{flex:1;min-width:0;overflow:hidden}.form-wrap .form-action[data-v-d6626b20]{flex-shrink:0;justify-content:center;align-items:center;padding-top:8px;display:flex}.table-cell-form[data-v-00188241]{display:block}.field-cell-item[data-v-00188241]{box-sizing:border-box;height:100%;padding:8px}.field-cell-item[data-v-00188241] .ant-input-clear-icon{display:none}.field-cell-item[data-v-00188241]:hover .ant-input-clear-icon{display:block}.field-cell-item[data-v-00188241]:has(:focus) .ant-input-clear-icon{display:block}[data-v-00188241] .ant-form-item{margin:0!important}[data-v-00188241] .ant-input-affix-wrapper{box-shadow:none!important;background-color:#0000!important;border:0!important;outline:none!important;padding:0!important}[data-v-00188241] .ant-input{box-shadow:none!important;background-color:#0000!important;border:0!important;outline:none!important}[data-v-00188241] .ant-select-selector{box-shadow:none!important;background:0 0!important;border:0!important;padding:0!important}[data-v-00188241] .ant-input-number{box-shadow:none!important;background-color:#0000!important;border:0!important;outline:none!important}[data-v-00188241] .ant-input-group-addon,[data-v-00188241] .ant-input-number-group-addon,[data-v-00188241] .ant-input-number-affix-wrapper{background:0 0!important;border:none!important}[data-v-00188241] .ant-input-number-input{padding:0!important}[data-v-00188241] .ant-input-number-handler-wrap{display:none!important}[data-v-00188241] .ant-form-item-control-input-content .ant-layout{background:0 0}.editable.item-required[data-v-00188241] .ant-form-item:before{color:#ff4d4f;content:"*";margin-right:4px;font-family:SimSun,sans-serif;font-size:14px;line-height:1;display:inline-block;position:absolute;top:50%;right:0;transform:translateY(-50%)}[data-v-00188241] .ant-picker{box-shadow:none!important;background-color:#0000!important;border:0!important;outline:none!important}[data-v-f3f0dcf2] .surely-table-cell .surely-table-cell-inner{height:100%}[data-v-f3f0dcf2] .surely-table-cell .surely-table-cell-inner:has(.editable){background-color:#f8e83537;border:1px solid #0000!important}[data-v-f3f0dcf2] .surely-table-cell .surely-table-cell-inner:has(.editable) input{text-overflow:ellipsis}[data-v-f3f0dcf2] .surely-table-cell .surely-table-cell-inner:has(.editable) input:focus{text-overflow:clip}:is([data-v-f3f0dcf2] .surely-table-cell .surely-table-cell-inner:has(.editable:hover),[data-v-f3f0dcf2] .surely-table-cell .surely-table-cell-inner:has(.editable:focus),[data-v-f3f0dcf2] .surely-table-cell .surely-table-cell-inner:has(.editable input:focus),[data-v-f3f0dcf2] .surely-table-cell .surely-table-cell-inner:has(.editable textarea:focus)){background-color:#fcee55bc;border-radius:6px;box-shadow:0 0 0 2px #1890ff33;border-color:#40a9ff!important}[data-v-f3f0dcf2] .surely-table-cell .surely-table-cell-inner:has(.ant-form-item-has-error){border-radius:6px;border:1px solid #ff4d4f!important}[data-v-f3f0dcf2] .surely-table-cell .surely-table-cell-inner .surely-table-cell-content{padding:0!important}[data-v-f3f0dcf2] .surely-table-cell .ant-form-item-explain-error{font-size:10px}.required-star[data-v-f3f0dcf2]{color:red;margin-left:4px}.cell-item[data-v-f3f0dcf2]{padding:8px}.top_btn[data-v-c86c2d37]{flex-flow:wrap;justify-content:flex-end;gap:8px;margin-bottom:8px;display:flex}.form-wrap[data-v-c86c2d37]{border:1px solid #e8e8e8;border-radius:4px;flex-direction:row;align-items:flex-start;width:100%;margin-bottom:4px;padding:4px;display:flex}.form-wrap .form-content[data-v-c86c2d37]{flex:1;min-width:0;overflow:hidden}.form-wrap .form-action[data-v-c86c2d37]{flex-shrink:0;justify-content:center;align-items:center;padding-top:8px;display:flex}.error-msg[data-v-fa20c879]{color:#ff4d4f}.head_btn[data-v-1c2384e8]{flex-wrap:wrap;justify-content:end;gap:4px;margin-bottom:4px;display:flex}[data-v-a5e3757b] .ant-input[readonly],.ant-input-affix-wrapper-readonly[data-v-a5e3757b],[data-v-a5e3757b] .ant-input-affix-wrapper-readonly{background-color:#f5f5f5}.ant-calendar-picker[data-v-4d903c12]{width:100%!important}[data-v-13a27c20] .ant-select-selection-placeholder{width:100%;overflow:hidden}.cards[data-v-bd6bf9b4] .ant-card-head,.cards[data-v-823e4644] .ant-card-head{background-color:#00000005;min-height:44px;padding:0 8px}.group-custom-btn-list[data-v-823e4644]{flex-wrap:wrap;gap:5px;margin-right:2px;display:inline-flex}.ant-calendar-picker[data-v-168ff853]{width:100%!important}.search-summary[data-v-daae65bd]{padding:4px 2px;display:inline-block}.search-config-container[data-v-f069cba6]{align-items:center;gap:16px;height:70vh;display:flex}.search-config-container .table-wrapper[data-v-f069cba6]{border:1px solid #f0f0f0;border-radius:4px;flex-direction:column;width:450px;height:100%;display:flex;overflow:auto}.search-config-container .table-wrapper .table-title[data-v-f069cba6]{background:#fafafa;border-bottom:1px solid #f0f0f0;padding:8px 12px;font-weight:700}.search-config-container .middle-btns[data-v-f069cba6]{flex-direction:column;gap:16px;display:flex}.search-field-group-title[data-v-5239b541]{color:var(--primary-color,#1890ff);border-bottom:1px solid #f0f0f0;flex-basis:100%;align-items:center;width:100%;margin-bottom:4px;padding:8px 4px 4px;font-weight:700;display:flex}.search-field-group-title[data-v-5239b541]:not(:first-child){margin-top:8px}.search-form-grid-inner[data-v-5239b541]{grid-template-columns:repeat(var(--column-count), max-content 1fr);align-items:center;gap:2px 8px;display:grid}.search-form-grid-inner .search-field-group-title[data-v-5239b541]{grid-column:span calc(var(--column-count) * 2)}.search-form-grid-inner .search-field-group-title[data-v-5239b541]:not(:first-child){margin-top:8px}.search-form-grid-inner[data-v-5239b541] .ant-form-item{margin-bottom:2px;margin-right:0;display:contents}.search-form-grid-inner[data-v-5239b541] .ant-form-item .ant-form-item-row,.search-form-grid-inner[data-v-5239b541] .ant-form-item .ant-form-item-label,.search-form-grid-inner[data-v-5239b541] .ant-form-item .ant-form-item-control,.search-form-grid-inner[data-v-5239b541] .ant-form-item .ant-form-item-control-input,.search-form-grid-inner[data-v-5239b541] .ant-form-item .ant-form-item-control-input-content{display:contents}.search-form-grid-inner[data-v-5239b541] .ant-form-item-label{justify-self:end;align-items:center;max-width:150px;display:flex!important}.search-form-grid-inner[data-v-5239b541] .ant-form-item-label .search-item-label-text{text-overflow:ellipsis;white-space:nowrap;text-align:right;padding-right:8px;overflow:hidden}.search-form-grid-inner[data-v-5239b541] .ant-input-group{width:100%;display:flex!important}.search-form-grid-inner .btn-content[data-v-5239b541]{grid-column:span calc(var(--column-count) * 2)}.btn-content[data-v-5239b541]{margin-left:auto;padding:4px}.range[data-v-5239b541]{padding:0 4px}[data-v-5239b541] .ant-select-selection-placeholder{width:100%;overflow:hidden}.search-form-wraper[data-v-3b64723c]{max-height:300px;padding-left:2px;padding-right:2px;overflow-y:auto}.search-switch[data-v-3b64723c]{height:32px;line-height:32px;display:inline-block}.bottom-content[data-v-3b64723c]{justify-content:flex-end;padding:8px 26px 8px 8px;display:flex}.search-switch[data-v-e443a7be]{height:32px;line-height:32px;display:inline-block}.search-groups-container[data-v-e443a7be]{max-height:300px;padding:4px 0;overflow-y:auto}.search-group-item[data-v-e443a7be]{background:#fafafa;border:1px solid #f0f0f0;border-radius:4px;margin-bottom:8px;padding:8px}.search-group-header[data-v-e443a7be]{border-bottom:1px dashed #e0e0e0;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:4px;display:flex}.search-group-header-title[data-v-e443a7be]{color:var(--primary-color,#1890ff);font-size:13px;font-weight:700}.search-group-actions[data-v-e443a7be]{gap:4px;display:flex}.search-form-wraper[data-v-e443a7be]{padding-left:2px;padding-right:2px}.add-group-btn[data-v-e443a7be]{margin:4px 0 8px 8px}.bottom-content[data-v-e443a7be]{justify-content:flex-end;padding:8px 26px 8px 8px;display:flex}.group-or-separator[data-v-e443a7be]{color:#999;padding:0 8px;font-size:12px;font-weight:700;line-height:32px;display:inline-block}.columns-config-wrapper[data-v-6797490e]{padding:8px 0}.pivot-zone-item-label[data-v-837ceec0]{text-overflow:ellipsis;white-space:nowrap;flex:none;min-width:0;overflow:hidden}.vf-display-expr[data-v-837ceec0]{flex-wrap:wrap;align-items:center;gap:2px;display:inline-flex}.vf-display-token[data-v-837ceec0]{border-radius:3px;padding:0 4px;font-size:12px}.vf-display-token.vf-token-field[data-v-837ceec0]{color:#0958d9;background:#e6f7ff}.vf-display-token.vf-token-op[data-v-837ceec0]{color:#333;font-weight:700}.vf-display-token.vf-token-number[data-v-837ceec0]{color:#389e0d;background:#f6ffed}.vf-display-token.vf-token-string[data-v-837ceec0]{color:#c41d7f;background:#fff0f6}.vf-display-token.vf-token-bool[data-v-837ceec0]{color:#722ed1;background:#f9f0ff}.vf-display-token.vf-token-paren[data-v-837ceec0]{color:#d46b08;font-weight:700}.vf-display-token.vf-token-subexpr[data-v-837ceec0]{color:#722ed1;background:#f9f0ff}.vf-display-filter[data-v-837ceec0],.vf-display-warn[data-v-837ceec0]{margin-left:4px}.vee-wrap[data-v-ac442b30]{flex-direction:column;gap:10px;display:flex}.vee-ops[data-v-ac442b30]{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.vee-ops .vee-ops-label[data-v-ac442b30]{color:#666;font-size:13px}.vee-ops .vee-op-btn[data-v-ac442b30]{cursor:grab;min-width:32px;font-weight:600}.vee-ops .vee-bool-btn[data-v-ac442b30]{font-family:monospace}.vee-ops .vee-num-input[data-v-ac442b30],.vee-ops .vee-str-input[data-v-ac442b30]{width:200px}.vee-canvas[data-v-ac442b30]{border:2px dashed #d9d9d9;border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px;min-height:64px;padding:10px;transition:all .2s;display:flex;position:relative}.vee-canvas.drag-over[data-v-ac442b30]{background:#f0f7ff;border-color:#1890ff}.vee-canvas .vee-canvas-placeholder[data-v-ac442b30]{color:#bbb;font-size:12px}.vee-canvas .vee-insert-line[data-v-ac442b30]{pointer-events:none;z-index:2;border-left:2px solid #1890ff;width:0;position:absolute;box-shadow:0 0 4px #1890ffb3}.vee-canvas .vee-token[data-v-ac442b30]{cursor:grab;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:4px;align-items:center;gap:2px;padding:2px 8px;font-size:13px;display:inline-flex}.vee-canvas .vee-token.vee-token-field[data-v-ac442b30]{color:#0958d9;background:#e6f7ff;border-color:#91d5ff}.vee-canvas .vee-token.vee-token-op[data-v-ac442b30]{background:#fafafa;border-color:#d9d9d9;font-weight:700}.vee-canvas .vee-token.vee-token-number[data-v-ac442b30]{color:#389e0d;background:#f6ffed;border-color:#b7eb8f}.vee-canvas .vee-token.vee-token-string[data-v-ac442b30]{color:#c41d7f;background:#fff0f6;border-color:#ffadd2}.vee-canvas .vee-token.vee-token-bool[data-v-ac442b30]{color:#722ed1;background:#f9f0ff;border-color:#d3adf7;font-family:monospace}.vee-canvas .vee-token.vee-token-paren[data-v-ac442b30]{background:#fff7e6;border-color:#ffd591;font-weight:700}.vee-canvas .vee-token .vee-token-remove[data-v-ac442b30]{color:#999;cursor:pointer;font-size:10px}.vee-canvas .vee-token .vee-token-remove[data-v-ac442b30]:hover{color:#ff4d4f}.vee-preview-row[data-v-ac442b30]{flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.vee-preview-row .vee-preview-label[data-v-ac442b30]{color:#666}.vee-preview-row .vee-preview[data-v-ac442b30]{color:#333;background:#f5f5f5;border-radius:4px;padding:2px 8px;font-weight:600}.vee-preview-row .vee-preview.vee-preview-invalid[data-v-ac442b30]{color:#cf1322;background:#fff1f0}.vee-preview-row .vee-warn[data-v-ac442b30]{color:#fa8c16;font-size:12px}.vee-input-wrap[data-v-ac442b30]{flex-flow:wrap;align-items:flex-start;gap:6px;width:100%;display:flex}.vee-subexpr-panel[data-v-ac442b30]{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.vee-subexpr-panel .vee-subexpr-chip[data-v-ac442b30]{color:#722ed1;cursor:grab;-webkit-user-select:none;user-select:none;background:#f9f0ff;border:1px solid #d3adf7;border-radius:4px;padding:2px 8px;font-size:12px}.vee-subexpr-panel .vee-subexpr-chip[data-v-ac442b30]:hover{background:#efdbff;border-color:#9254de}.vee-subexpr-panel .vee-subexpr-chip[data-v-ac442b30]:active{cursor:grabbing}.vee-token-subexpr[data-v-ac442b30]{color:#722ed1;background:#f9f0ff;border-color:#d3adf7}.vee-date-row[data-v-ac442b30]{flex-wrap:nowrap;align-items:center;gap:6px;display:flex}.vee-date-row .vee-date-mode[data-v-ac442b30]{flex-shrink:0}.vee-date-row .vee-date-mode-label[data-v-ac442b30]{color:#666;flex-shrink:0;font-size:13px}.vee-date-row .vee-date-picker[data-v-ac442b30]{width:220px}.vee-op-item[data-v-ac442b30]{cursor:grab}.se-wrap[data-v-c8ea4551]{gap:16px;height:100%;min-height:360px;display:flex}.se-left[data-v-c8ea4551]{border:1px solid #f0f0f0;border-radius:6px;flex-direction:column;flex-shrink:0;width:240px;padding:8px;display:flex;overflow:hidden}.se-left .se-section-title[data-v-c8ea4551]{margin-bottom:8px;font-size:13px;font-weight:600}.se-left .se-field-search[data-v-c8ea4551]{flex-shrink:0;margin-bottom:8px}.se-left .se-field-pool[data-v-c8ea4551]{flex:1;min-height:0;overflow-y:auto}.se-left .se-field-item[data-v-c8ea4551]{cursor:grab;-webkit-user-select:none;user-select:none;border:1px solid #f0f0f0;border-radius:4px;align-items:center;gap:6px;margin-bottom:4px;padding:6px 8px;font-size:13px;transition:all .2s;display:flex}.se-left .se-field-item[data-v-c8ea4551]:hover{background:#f0f7ff;border-color:#1890ff}.se-left .se-field-item[data-v-c8ea4551]:active{cursor:grabbing}.se-left .se-field-item .se-field-icon[data-v-c8ea4551]{color:#1890ff;font-size:12px}.se-left .se-field-item .se-field-label[data-v-c8ea4551]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.se-left .se-field-group[data-v-c8ea4551]{cursor:default;background:#fafafa;font-weight:600}.se-left .se-field-group[data-v-c8ea4551]:hover{background:#fafafa;border-color:#f0f0f0}.se-left .se-field-branch-dot[data-v-c8ea4551]{background:#d9d9d9;border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.se-left .se-empty[data-v-c8ea4551]{text-align:center;color:#999;padding:20px 0;font-size:12px}.se-right[data-v-c8ea4551]{flex-direction:column;flex:1;gap:12px;min-width:0;display:flex;overflow-y:auto}.se-right .se-name-row[data-v-c8ea4551]{align-items:center;gap:8px;display:flex}.se-right .se-name-row .se-name-label[data-v-c8ea4551]{color:#333;flex-shrink:0;font-size:13px;font-weight:600}.se-right .se-name-row .se-name-input[data-v-c8ea4551]{flex:1;max-width:360px}.pivot-config-wrapper[data-v-1753c56f]{flex-direction:column;gap:12px;height:100%;display:flex}.pivot-config-main[data-v-1753c56f]{flex:1;gap:16px;min-height:0;display:flex}.pivot-field-list[data-v-1753c56f]{border:1px solid #f0f0f0;border-radius:6px;flex-direction:column;flex-shrink:0;width:220px;padding:8px;display:flex;overflow:hidden}.pivot-field-list .pivot-section-title[data-v-1753c56f]{color:#333;margin-bottom:8px;font-size:13px;font-weight:600}.pivot-field-list .pivot-field-pool[data-v-1753c56f]{flex:1;min-height:0;overflow-y:auto}.pivot-field-list .pivot-field-item[data-v-1753c56f]{cursor:grab;-webkit-user-select:none;user-select:none;border:1px solid #f0f0f0;border-radius:4px;align-items:center;gap:6px;margin-bottom:4px;padding:6px 8px;font-size:13px;transition:all .2s;display:flex}.pivot-field-list .pivot-field-item[data-v-1753c56f]:hover{background:#f0f7ff;border-color:#1890ff}.pivot-field-list .pivot-field-item[data-v-1753c56f]:active{cursor:grabbing}.pivot-field-list .pivot-field-item .pivot-field-icon[data-v-1753c56f]{color:#1890ff;font-size:12px}.pivot-field-list .pivot-field-item .pivot-field-label[data-v-1753c56f]{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.pivot-field-list .pivot-field-item .pivot-field-tag[data-v-1753c56f]{color:#fff;background:#1890ff;border-radius:8px;flex-shrink:0;padding:1px 6px;font-size:10px;line-height:16px}.pivot-field-list .pivot-field-group[data-v-1753c56f]{cursor:default;background:#fafafa;font-weight:600}.pivot-field-list .pivot-field-group[data-v-1753c56f]:hover{background:#fafafa;border-color:#f0f0f0}.pivot-field-list .pivot-field-group .pivot-field-icon[data-v-1753c56f]{color:#bfbfbf}.pivot-field-list .pivot-field-branch-dot[data-v-1753c56f]{background:#d9d9d9;border-radius:50%;width:8px;height:8px;display:inline-block}.pivot-field-list .pivot-field-empty[data-v-1753c56f]{text-align:center;color:#999;padding:20px 0;font-size:12px}.pivot-drop-zones[data-v-1753c56f]{flex-direction:column;flex:1;gap:12px;min-width:0;display:flex;overflow-y:auto}.pivot-drop-zone[data-v-1753c56f]{border:2px dashed #d9d9d9;border-radius:6px;flex-shrink:0;min-height:80px;padding:8px;transition:all .2s}.pivot-drop-zone.drag-over[data-v-1753c56f]{background:#f0f7ff;border-color:#1890ff}.pivot-drop-zone .pivot-zone-header[data-v-1753c56f]{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.pivot-drop-zone .pivot-zone-header .pivot-zone-title[data-v-1753c56f]{color:#333;align-items:center;gap:4px;font-size:13px;font-weight:600;display:flex}.pivot-drop-zone .pivot-zone-header .pivot-zone-tip[data-v-1753c56f]{color:#999;cursor:help;font-size:12px}.pivot-drop-zone .pivot-zone-items[data-v-1753c56f]{flex-wrap:wrap;gap:6px;min-height:32px;display:flex}.pivot-drop-zone .pivot-zone-placeholder[data-v-1753c56f]{color:#bbb;text-align:center;width:100%;padding:4px 8px;font-size:12px}.pivot-zone-item[data-v-1753c56f]{cursor:grab;-webkit-user-select:none;user-select:none;box-sizing:border-box;background:#fafafa;border:1px solid #d9d9d9;border-radius:4px;align-items:center;gap:4px;max-width:100%;padding:4px 8px;font-size:12px;transition:all .2s;display:flex;position:relative}.pivot-zone-item[data-v-1753c56f]:hover{background:#f0f7ff;border-color:#1890ff}.pivot-zone-item[data-v-1753c56f]:active{cursor:grabbing}.pivot-zone-item .pivot-zone-item-remove[data-v-1753c56f]{color:#999;cursor:pointer;flex-shrink:0;margin-left:2px;font-size:10px}.pivot-zone-item .pivot-zone-item-remove[data-v-1753c56f]:hover{color:#ff4d4f}.pivot-value-item[data-v-1753c56f]{cursor:grab;-webkit-user-select:none;user-select:none;background:#fff7e6;border-color:#ffd591;flex-flow:column wrap;align-items:flex-start;width:100%;max-width:100%;display:flex}.pivot-value-item[data-v-1753c56f]:hover{background:#fff7e6;border-color:#fa8c16}.pivot-value-item[data-v-1753c56f]:active{cursor:grabbing}.pivot-value-item.drag-before[data-v-1753c56f]{box-shadow:0 -2px #1890ff}.pivot-value-item.drag-after[data-v-1753c56f]{box-shadow:0 2px #1890ff}.pivot-value-item[data-v-1753c56f] .ant-select,.pivot-value-item[data-v-1753c56f] .ant-input{flex:auto;min-width:70px}.pivot-drop-zone-values[data-v-1753c56f]{min-height:80px}.pivot-dim-group[data-v-1753c56f]{box-sizing:border-box;cursor:grab;-webkit-user-select:none;user-select:none;background:#f6ffed;border:1px solid #b7eb8f;border-radius:6px;flex-direction:column;gap:6px;width:100%;max-width:100%;padding:6px 8px;transition:all .2s;display:flex;position:relative}.pivot-dim-group[data-v-1753c56f]:hover{background:#f6ffed;border-color:#52c41a}.pivot-dim-group.drag-over[data-v-1753c56f]{border-color:#52c41a;box-shadow:inset 0 0 0 2px #52c41a}.pivot-dim-group.drop-group-before[data-v-1753c56f]:before,.pivot-dim-group.drop-group-after[data-v-1753c56f]:after{content:"";pointer-events:none;z-index:2;border-top:2px solid #1890ff;height:0;position:absolute;left:-2px;right:-2px;box-shadow:0 0 4px #1890ffb3}.pivot-dim-group.drop-group-before[data-v-1753c56f]:before{top:-4px}.pivot-dim-group.drop-group-after[data-v-1753c56f]:after{bottom:-4px}.pivot-dim-group .pivot-dim-group-header[data-v-1753c56f]{align-items:center;gap:6px;width:100%;display:flex}.pivot-dim-group .pivot-dim-group-header .pivot-group-label-input[data-v-1753c56f]{flex:auto;min-width:0}.pivot-dim-group .pivot-dim-group-header .pivot-group-remove[data-v-1753c56f]{color:#999;cursor:pointer;flex-shrink:0;font-size:11px}.pivot-dim-group .pivot-dim-group-header .pivot-group-remove[data-v-1753c56f]:hover{color:#ff4d4f}.pivot-dim-group .pivot-dim-group-fields[data-v-1753c56f]{flex-flow:column wrap;align-items:flex-start;gap:4px;width:100%;display:flex}.pivot-dim-group .pivot-field-chip[data-v-1753c56f]{cursor:grab;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #d9d9d9;border-radius:4px;align-items:center;gap:4px;width:100%;padding:2px 6px;font-size:12px;display:flex;position:relative}.pivot-dim-group .pivot-field-chip.drop-before[data-v-1753c56f]:before,.pivot-dim-group .pivot-field-chip.drop-after[data-v-1753c56f]:after{content:"";pointer-events:none;border-top:2px solid #1890ff;height:0;position:absolute;left:-1px;right:-1px;box-shadow:0 0 4px #1890ffb3}.pivot-dim-group .pivot-field-chip.drop-before[data-v-1753c56f]:before{top:-3px}.pivot-dim-group .pivot-field-chip.drop-after[data-v-1753c56f]:after{bottom:-3px}.pivot-dim-group .pivot-field-chip[data-v-1753c56f]:hover{border-color:#52c41a}.pivot-dim-group .pivot-field-chip .pivot-chip-label[data-v-1753c56f]{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.pivot-dim-group .pivot-field-chip .pivot-chip-remove[data-v-1753c56f]{color:#999;cursor:pointer;flex-shrink:0;font-size:10px}.pivot-dim-group .pivot-field-chip .pivot-chip-remove[data-v-1753c56f]:hover{color:#ff4d4f}.pivot-dim-group .pivot-field-chip[data-v-1753c56f] .ant-select{flex:auto;min-width:80px}.pivot-dim-group .pivot-sort-row[data-v-1753c56f]{border-top:1px dashed #d9d9d9;flex-wrap:wrap;align-items:center;gap:6px;width:100%;padding-top:6px;display:flex}.pivot-dim-group .pivot-sort-row .pivot-sort-label[data-v-1753c56f]{color:#999;flex-shrink:0;font-size:11px}.pivot-dim-group .pivot-sort-row[data-v-1753c56f] .ant-select{flex:0 auto;min-width:0}.pivot-options[data-v-1753c56f]{border-top:1px solid #f0f0f0;flex-direction:column;flex-shrink:0;gap:10px;padding:10px 0 4px;display:flex}.pivot-options .pivot-options-group[data-v-1753c56f]{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.pivot-options .pivot-options-group .pivot-options-label[data-v-1753c56f]{color:#666;flex-shrink:0;font-size:12px;font-weight:600}.pivot-options .pivot-options-group .pivot-option-switch[data-v-1753c56f]{color:#333;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;font-size:12px;display:inline-flex}.pivot-options .pivot-options-group .pivot-option-switch span[data-v-1753c56f]{white-space:nowrap}.value-item-header[data-v-1753c56f]{flex-direction:row;justify-content:space-between;gap:6px;width:100%;display:flex}.value-item-content[data-v-1753c56f]{flex-direction:row;align-items:center;gap:6px;display:flex}.pivot-drop-zone-subexpr[data-v-1753c56f]{background:#fafaff}.subexpr-items[data-v-1753c56f]{align-items:stretch}.pivot-subexpr-card[data-v-1753c56f]{background:#fff;border:1px solid #efd6ff;border-radius:6px;flex-direction:column;gap:4px;min-width:220px;max-width:100%;padding:6px 10px;display:flex}.pivot-subexpr-card .subexpr-card-head[data-v-1753c56f]{justify-content:space-between;align-items:center;gap:8px;display:flex}.pivot-subexpr-card .subexpr-card-head .subexpr-card-name[data-v-1753c56f]{color:#722ed1;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.pivot-subexpr-card .subexpr-card-head .subexpr-card-actions[data-v-1753c56f]{flex-shrink:0;align-items:center;gap:2px;display:flex}.pivot-charts-config-wrapper[data-v-d3a9c5f9]{flex-direction:column;gap:12px;height:100%;display:flex}.pivot-charts-config-main[data-v-d3a9c5f9]{flex:1;gap:16px;min-height:0;display:flex}.pivot-field-list[data-v-d3a9c5f9]{border:1px solid #f0f0f0;border-radius:6px;flex-direction:column;flex-shrink:0;width:220px;padding:8px;display:flex;overflow:hidden}.pivot-field-list .pivot-section-title[data-v-d3a9c5f9]{color:#333;margin-bottom:8px;font-size:13px;font-weight:600}.pivot-field-list .pivot-field-pool[data-v-d3a9c5f9]{flex:1;min-height:0;overflow-y:auto}.pivot-field-list .pivot-field-item[data-v-d3a9c5f9]{cursor:grab;-webkit-user-select:none;user-select:none;border:1px solid #f0f0f0;border-radius:4px;align-items:center;gap:6px;margin-bottom:4px;padding:6px 8px;font-size:13px;transition:all .2s;display:flex}.pivot-field-list .pivot-field-item[data-v-d3a9c5f9]:hover{background:#f0f7ff;border-color:#1890ff}.pivot-field-list .pivot-field-item[data-v-d3a9c5f9]:active{cursor:grabbing}.pivot-field-list .pivot-field-item .pivot-field-icon[data-v-d3a9c5f9]{color:#1890ff;font-size:12px}.pivot-field-list .pivot-field-item .pivot-field-label[data-v-d3a9c5f9]{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.pivot-field-list .pivot-field-item .pivot-field-tag[data-v-d3a9c5f9]{color:#fff;background:#1890ff;border-radius:8px;flex-shrink:0;padding:1px 6px;font-size:10px;line-height:16px}.pivot-field-list .pivot-field-group[data-v-d3a9c5f9]{cursor:default;background:#fafafa;font-weight:600}.pivot-field-list .pivot-field-group[data-v-d3a9c5f9]:hover{background:#fafafa;border-color:#f0f0f0}.pivot-field-list .pivot-field-group .pivot-field-icon[data-v-d3a9c5f9]{color:#bfbfbf}.pivot-field-list .pivot-field-branch-dot[data-v-d3a9c5f9]{background:#d9d9d9;border-radius:50%;width:8px;height:8px;display:inline-block}.pivot-field-list .pivot-field-empty[data-v-d3a9c5f9]{text-align:center;color:#999;padding:20px 0;font-size:12px}.pivot-drop-zones[data-v-d3a9c5f9]{flex-direction:column;flex:1;gap:12px;min-width:0;display:flex;overflow-y:auto}.pivot-drop-zone[data-v-d3a9c5f9]{border:2px dashed #d9d9d9;border-radius:6px;flex-shrink:0;min-height:80px;padding:8px;transition:all .2s}.pivot-drop-zone.drag-over[data-v-d3a9c5f9]{background:#f0f7ff;border-color:#1890ff}.pivot-drop-zone .pivot-zone-header[data-v-d3a9c5f9]{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.pivot-drop-zone .pivot-zone-header .pivot-zone-title[data-v-d3a9c5f9]{color:#333;align-items:center;gap:4px;font-size:13px;font-weight:600;display:flex}.pivot-drop-zone .pivot-zone-header .pivot-zone-tip[data-v-d3a9c5f9]{color:#999;cursor:help;font-size:12px}.pivot-drop-zone .pivot-zone-items[data-v-d3a9c5f9]{flex-wrap:wrap;gap:6px;min-height:32px;display:flex}.pivot-drop-zone .pivot-zone-placeholder[data-v-d3a9c5f9]{color:#bbb;text-align:center;width:100%;padding:4px 8px;font-size:12px}.pivot-zone-item[data-v-d3a9c5f9]{cursor:grab;-webkit-user-select:none;user-select:none;box-sizing:border-box;background:#fafafa;border:1px solid #d9d9d9;border-radius:4px;align-items:center;gap:4px;max-width:100%;padding:4px 8px;font-size:12px;transition:all .2s;display:flex;position:relative}.pivot-zone-item[data-v-d3a9c5f9]:hover{background:#f0f7ff;border-color:#1890ff}.pivot-zone-item[data-v-d3a9c5f9]:active{cursor:grabbing}.pivot-zone-item .pivot-zone-item-label[data-v-d3a9c5f9]{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;overflow:hidden}.pivot-zone-item .pivot-zone-item-remove[data-v-d3a9c5f9]{color:#999;cursor:pointer;flex-shrink:0;margin-left:2px;font-size:10px}.pivot-zone-item .pivot-zone-item-remove[data-v-d3a9c5f9]:hover{color:#ff4d4f}.pivot-value-item[data-v-d3a9c5f9]{cursor:grab;-webkit-user-select:none;user-select:none;background:#fff7e6;border-color:#ffd591;flex-flow:column wrap;align-items:flex-start;width:100%;max-width:100%;display:flex}.pivot-value-item[data-v-d3a9c5f9]:hover{background:#fff7e6;border-color:#fa8c16}.pivot-value-item[data-v-d3a9c5f9]:active{cursor:grabbing}.pivot-value-item.value-item-invalid[data-v-d3a9c5f9]{background:#fff1f0;border-color:#ff4d4f}.pivot-value-item.drag-before[data-v-d3a9c5f9]{box-shadow:0 -2px #1890ff}.pivot-value-item.drag-after[data-v-d3a9c5f9]{box-shadow:0 2px #1890ff}.pivot-value-item .pivot-zone-item-label[data-v-d3a9c5f9]{flex-shrink:0}.pivot-value-item[data-v-d3a9c5f9] .ant-select,.pivot-value-item[data-v-d3a9c5f9] .ant-input{flex:auto;min-width:70px}.pivot-drop-zone-values[data-v-d3a9c5f9]{min-height:80px}.pivot-dim-group[data-v-d3a9c5f9]{box-sizing:border-box;cursor:grab;-webkit-user-select:none;user-select:none;background:#f6ffed;border:1px solid #b7eb8f;border-radius:6px;flex-direction:column;gap:6px;width:100%;max-width:100%;padding:6px 8px;transition:all .2s;display:flex;position:relative}.pivot-dim-group[data-v-d3a9c5f9]:hover{background:#f6ffed;border-color:#52c41a}.pivot-dim-group.drag-over[data-v-d3a9c5f9]{border-color:#52c41a;box-shadow:inset 0 0 0 2px #52c41a}.pivot-dim-group.drop-group-before[data-v-d3a9c5f9]:before,.pivot-dim-group.drop-group-after[data-v-d3a9c5f9]:after{content:"";pointer-events:none;z-index:2;border-top:2px solid #1890ff;height:0;position:absolute;left:-2px;right:-2px;box-shadow:0 0 4px #1890ffb3}.pivot-dim-group.drop-group-before[data-v-d3a9c5f9]:before{top:-4px}.pivot-dim-group.drop-group-after[data-v-d3a9c5f9]:after{bottom:-4px}.pivot-dim-group .pivot-dim-group-header[data-v-d3a9c5f9]{align-items:center;gap:6px;width:100%;display:flex}.pivot-dim-group .pivot-dim-group-header .pivot-group-label-input[data-v-d3a9c5f9]{flex:auto;min-width:0}.pivot-dim-group .pivot-dim-group-header .pivot-group-remove[data-v-d3a9c5f9]{color:#999;cursor:pointer;flex-shrink:0;font-size:11px}.pivot-dim-group .pivot-dim-group-header .pivot-group-remove[data-v-d3a9c5f9]:hover{color:#ff4d4f}.pivot-dim-group .pivot-dim-group-fields[data-v-d3a9c5f9]{flex-flow:column wrap;align-items:flex-start;gap:4px;width:100%;display:flex}.pivot-dim-group .pivot-field-chip[data-v-d3a9c5f9]{cursor:grab;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #d9d9d9;border-radius:4px;align-items:center;gap:4px;width:100%;padding:2px 6px;font-size:12px;display:flex;position:relative}.pivot-dim-group .pivot-field-chip.drop-before[data-v-d3a9c5f9]:before,.pivot-dim-group .pivot-field-chip.drop-after[data-v-d3a9c5f9]:after{content:"";pointer-events:none;border-top:2px solid #1890ff;height:0;position:absolute;left:-1px;right:-1px;box-shadow:0 0 4px #1890ffb3}.pivot-dim-group .pivot-field-chip.drop-before[data-v-d3a9c5f9]:before{top:-3px}.pivot-dim-group .pivot-field-chip.drop-after[data-v-d3a9c5f9]:after{bottom:-3px}.pivot-dim-group .pivot-field-chip[data-v-d3a9c5f9]:hover{border-color:#52c41a}.pivot-dim-group .pivot-field-chip .pivot-chip-label[data-v-d3a9c5f9]{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.pivot-dim-group .pivot-field-chip .pivot-chip-remove[data-v-d3a9c5f9]{color:#999;cursor:pointer;flex-shrink:0;font-size:10px}.pivot-dim-group .pivot-field-chip .pivot-chip-remove[data-v-d3a9c5f9]:hover{color:#ff4d4f}.pivot-dim-group .pivot-field-chip[data-v-d3a9c5f9] .ant-select{flex:auto;min-width:80px}.pivot-dim-group .pivot-sort-row[data-v-d3a9c5f9]{border-top:1px dashed #d9d9d9;flex-wrap:wrap;align-items:center;gap:6px;width:100%;padding-top:6px;display:flex}.pivot-dim-group .pivot-sort-row .pivot-sort-label[data-v-d3a9c5f9]{color:#999;flex-shrink:0;font-size:11px}.pivot-dim-group .pivot-sort-row[data-v-d3a9c5f9] .ant-select{flex:0 auto;min-width:0}.pivot-options[data-v-d3a9c5f9]{border-top:1px solid #f0f0f0;flex-shrink:0;padding:8px 0}.value-item-header[data-v-d3a9c5f9]{flex-direction:row;justify-content:space-between;gap:6px;width:100%;display:flex}.value-item-content[data-v-d3a9c5f9]{flex-direction:row;align-items:center;gap:6px;display:flex}.pivot-drop-zone-subexpr[data-v-d3a9c5f9]{background:#fafaff}.subexpr-items[data-v-d3a9c5f9]{align-items:stretch}.pivot-subexpr-card[data-v-d3a9c5f9]{background:#fff;border:1px solid #efd6ff;border-radius:6px;flex-direction:column;gap:4px;min-width:220px;max-width:100%;padding:6px 10px;display:flex}.pivot-subexpr-card .subexpr-card-head[data-v-d3a9c5f9]{justify-content:space-between;align-items:center;gap:8px;display:flex}.pivot-subexpr-card .subexpr-card-head .subexpr-card-name[data-v-d3a9c5f9]{color:#722ed1;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.pivot-subexpr-card .subexpr-card-head .subexpr-card-actions[data-v-d3a9c5f9]{flex-shrink:0;align-items:center;gap:2px;display:flex}.view-manage-container[data-v-b431b3c2]{gap:16px;height:400px;display:flex;overflow-y:auto}.view-manage-container .view-section[data-v-b431b3c2]{border:1px solid #f0f0f0;border-radius:4px;flex:1;padding:8px}.view-manage-container .view-section .section-header[data-v-b431b3c2]{border-bottom:1px solid #f0f0f0;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:4px;display:flex}.view-manage-container .view-section .section-header .title[data-v-b431b3c2]{font-weight:700}.view-manage-container .view-section .section-header .header-actions[data-v-b431b3c2]{align-items:center;display:flex}.view-item-row[data-v-b431b3c2]{justify-content:space-between;align-items:center;width:100%;display:flex}.view-item-row .view-name[data-v-b431b3c2]{cursor:pointer;text-overflow:ellipsis;white-space:nowrap;flex:0 auto;padding:4px 0;overflow:hidden}.view-item-row .view-name[data-v-b431b3c2]:hover{color:#1890ff}.view-item-row .view-actions[data-v-b431b3c2]{opacity:0;gap:4px;transition:opacity .2s;display:flex}.view-item-row:hover .view-actions[data-v-b431b3c2]{opacity:1}.view-num[data-v-b431b3c2]{white-space:nowrap;display:inline-block}.vf-wrap[data-v-79177f5f]{gap:16px;height:100%;min-height:360px;display:flex}.vf-left[data-v-79177f5f]{border:1px solid #f0f0f0;border-radius:6px;flex-direction:column;flex-shrink:0;width:240px;padding:8px;display:flex;overflow:hidden}.vf-left .vf-section-title[data-v-79177f5f]{margin-bottom:8px;font-size:13px;font-weight:600}.vf-left .vf-field-search[data-v-79177f5f]{flex-shrink:0;margin-bottom:8px}.vf-left .vf-field-pool[data-v-79177f5f]{flex:1;min-height:0;overflow-y:auto}.vf-left .vf-field-item[data-v-79177f5f]{cursor:grab;-webkit-user-select:none;user-select:none;border:1px solid #f0f0f0;border-radius:4px;align-items:center;gap:6px;margin-bottom:4px;padding:6px 8px;font-size:13px;transition:all .2s;display:flex}.vf-left .vf-field-item[data-v-79177f5f]:hover{background:#f0f7ff;border-color:#1890ff}.vf-left .vf-field-item[data-v-79177f5f]:active{cursor:grabbing}.vf-left .vf-field-item .vf-field-icon[data-v-79177f5f]{color:#1890ff;font-size:12px}.vf-left .vf-field-item .vf-field-label[data-v-79177f5f]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vf-left .vf-field-group[data-v-79177f5f]{cursor:default;background:#fafafa;font-weight:600}.vf-left .vf-field-group[data-v-79177f5f]:hover{background:#fafafa;border-color:#f0f0f0}.vf-left .vf-field-branch-dot[data-v-79177f5f]{background:#d9d9d9;border-radius:50%;flex-shrink:0;width:8px;height:8px;display:inline-block}.vf-left .vf-empty[data-v-79177f5f]{text-align:center;color:#999;padding:20px 0;font-size:12px}.vf-right[data-v-79177f5f]{flex-direction:column;flex:1;gap:12px;min-width:0;display:flex;overflow-y:auto}.vf-switch-row[data-v-79177f5f]{align-items:center;gap:8px;display:flex}.vf-switch-row .vf-switch-label[data-v-79177f5f]{color:#333;font-size:13px}.vf-single[data-v-79177f5f]{flex-direction:column;gap:8px;display:flex}.vf-single .vf-single-drop[data-v-79177f5f]{border:2px dashed #d9d9d9;border-radius:6px;align-items:center;gap:8px;min-height:40px;padding:0 10px;transition:all .2s;display:flex}.vf-single .vf-single-drop.drag-over[data-v-79177f5f]{background:#f0f7ff;border-color:#1890ff}.vf-single .vf-single-drop .vf-single-field[data-v-79177f5f]{color:#1890ff;font-size:13px;font-weight:600}.vf-single .vf-single-drop .vf-single-placeholder[data-v-79177f5f]{color:#bbb;font-size:12px}.vf-single .vf-single-drop .vf-single-remove[data-v-79177f5f]{color:#999;cursor:pointer}.vf-single .vf-single-drop .vf-single-remove[data-v-79177f5f]:hover{color:#ff4d4f}.vf-single .vf-single-select[data-v-79177f5f]{max-width:320px}.vf-single .vf-tip[data-v-79177f5f]{color:#999;font-size:12px}.vf-collapse[data-v-79177f5f]{background:0 0}.vf-collapse[data-v-79177f5f] .ant-collapse-item{background:#fff;border:1px solid #f0f0f0;border-radius:6px;margin-bottom:12px;overflow:hidden}.vf-collapse[data-v-79177f5f] .ant-collapse-header{font-size:13px;font-weight:600}.column-edit-view-wrapper[data-v-f4dad853]{height:100%;padding:0 8px}.tab-content-scroll[data-v-f4dad853]{height:100%;overflow-y:auto}[data-v-f4dad853] .ant-tabs,[data-v-f4dad853] .ant-tabs-content{height:100%}.ant-pro-table-list-toolbar-container[data-v-6b272373]{height:30px;padding:0 8px;line-height:30px}.ant-pro-table-list-toolbar-setting-item[data-v-6b272373]{font-size:14px}.current-view-name[data-v-6b272373]{text-overflow:ellipsis;white-space:nowrap;max-width:150px;display:inline-block;overflow:hidden}.current-view-container[data-v-6b272373]{gap:4px;height:100%;padding:2px;display:flex}.view-menu[data-v-6b272373]{cursor:pointer;background:#fafafa;border:1px solid #f0f0f0;border-radius:4px;padding:0 4px;font-size:12px;font-weight:400;line-height:26px}.popup-divider[data-v-d0b9bee1] .ant-divider-horizontal{margin-top:1px;margin-bottom:1px}.btn-wraper[data-v-d40ed682]{justify-content:flex-end;display:flex}.table-wraper[data-v-d40ed682]{height:100%;overflow:hidden}.modify-row-height[data-v-d40ed682] .surely-table-header,.modify-row-height[data-v-d40ed682] .surely-table-header-cell,.modify-row-height[data-v-d40ed682] .surely-table-summary{height:var(--row-heigth)!important}.popup-divider[data-v-d40ed682] .ant-divider-horizontal{margin-top:1px;margin-bottom:1px}.highlight[data-v-d40ed682]{background-color:#ffc069;padding:0}.my-card[data-v-25d1dc13],.my-card[data-v-52b515e0]{background-color:#f6f7f9;padding:20px}.card[data-v-d12629e4]{background:#f2f5f7;max-height:300px;overflow:auto}.condition-group[data-v-d12629e4]{padding:5px}.range[data-v-d12629e4]{margin-top:5px}.close-icon[data-v-d12629e4]{color:red;width:15px;margin-top:5px;margin-left:5px}.search-bar[data-v-d12629e4]{text-align:right;background:#f2f5f7}[data-v-d12629e4] .divider .ant-divider{margin:0}.num{display:inline-block}.dropdown{display:none}.table:hover .dropdown{display:inline-block}.table:hover .num{display:none}.pivot-table-wraper[data-v-72dfa192]{height:100%;overflow:hidden}.pivot-vtable-container[data-v-72dfa192]{width:100%;position:relative;overflow:hidden}.pivot-vtable-container .pivot-vtable-loading[data-v-72dfa192]{z-index:10;background:#fff9;flex-direction:column;justify-content:center;align-items:center;gap:16px;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.pivot-vtable-container .pivot-vtable-loading .pivot-progress[data-v-72dfa192]{width:200px}.pivot-vtable-container .pivot-empty-tip[data-v-72dfa192]{color:#999;justify-content:center;align-items:center;height:100%;font-size:14px;display:flex}.pivot-charts-wraper[data-v-3ca6164d]{height:100%;overflow:hidden}.pivot-echarts-container[data-v-3ca6164d]{width:100%;position:relative;overflow:hidden}.pivot-echarts-container .pivot-echarts-loading[data-v-3ca6164d]{z-index:10;background:#fff9;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.pivot-echarts-container .echarts-dom[data-v-3ca6164d]{width:100%;height:100%}.pivot-echarts-container .pivot-empty-tip[data-v-3ca6164d]{color:#999;justify-content:center;align-items:center;height:100%;font-size:14px;display:flex}.full-layout[data-v-744a0d2d]{height:calc(100vh - var(--current-top,0px));margin:-24px -24px 0;position:relative;overflow:auto}.vue-grid-item{transition:left,top,right}.vue-grid-item.no-touch{-ms-touch-action:none;touch-action:none}.vue-grid-item.cssTransforms{transition-property:transform;left:0;right:auto}.vue-grid-item.cssTransforms.render-rtl{left:auto;right:0}.vue-grid-item.resizing{z-index:3;opacity:.6}.vue-grid-item.vue-draggable-dragging{z-index:3;transition:none}.vue-grid-item.vue-grid-placeholder{z-index:2;-webkit-user-select:none;user-select:none;-o-user-select:none;background:pink;transition-duration:.1s}.vue-grid-item>.vue-resizable-handle{box-sizing:border-box;cursor:se-resize;background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pg08IS0tIEdlbmVyYXRvcjogQWRvYmUgRmlyZXdvcmtzIENTNiwgRXhwb3J0IFNWRyBFeHRlbnNpb24gYnkgQWFyb24gQmVhbGwgKGh0dHA6Ly9maXJld29ya3MuYWJlYWxsLmNvbSkgLiBWZXJzaW9uOiAwLjYuMSAgLS0+DTwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DTxzdmcgaWQ9IlVudGl0bGVkLVBhZ2UlMjAxIiB2aWV3Qm94PSIwIDAgNiA2IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmMDAiIHZlcnNpb249IjEuMSINCXhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHhtbDpzcGFjZT0icHJlc2VydmUiDQl4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjZweCIgaGVpZ2h0PSI2cHgiDT4NCTxnIG9wYWNpdHk9IjAuMzAyIj4NCQk8cGF0aCBkPSJNIDYgNiBMIDAgNiBMIDAgNC4yIEwgNCA0LjIgTCA0LjIgNC4yIEwgNC4yIDAgTCA2IDAgTCA2IDYgTCA2IDYgWiIgZmlsbD0iIzAwMDAwMCIvPg0JPC9nPg08L3N2Zz4=) 100% 100% no-repeat content-box border-box;width:20px;height:20px;padding:0 3px 3px 0;position:absolute;bottom:0;right:0}.vue-grid-item>.vue-rtl-resizable-handle{cursor:sw-resize;background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAuMDAwMDAwMDAwMDAwMDAyIiBoZWlnaHQ9IjEwLjAwMDAwMDAwMDAwMDAwMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KIDwhLS0gQ3JlYXRlZCB3aXRoIE1ldGhvZCBEcmF3IC0gaHR0cDovL2dpdGh1Yi5jb20vZHVvcGl4ZWwvTWV0aG9kLURyYXcvIC0tPgogPGc+CiAgPHRpdGxlPmJhY2tncm91bmQ8L3RpdGxlPgogIDxyZWN0IGZpbGw9Im5vbmUiIGlkPSJjYW52YXNfYmFja2dyb3VuZCIgaGVpZ2h0PSIxMiIgd2lkdGg9IjEyIiB5PSItMSIgeD0iLTEiLz4KICA8ZyBkaXNwbGF5PSJub25lIiBvdmVyZmxvdz0idmlzaWJsZSIgeT0iMCIgeD0iMCIgaGVpZ2h0PSIxMDAlIiB3aWR0aD0iMTAwJSIgaWQ9ImNhbnZhc0dyaWQiPgogICA8cmVjdCBmaWxsPSJ1cmwoI2dyaWRwYXR0ZXJuKSIgc3Ryb2tlLXdpZHRoPSIwIiB5PSIwIiB4PSIwIiBoZWlnaHQ9IjEwMCUiIHdpZHRoPSIxMDAlIi8+CiAgPC9nPgogPC9nPgogPGc+CiAgPHRpdGxlPkxheWVyIDE8L3RpdGxlPgogIDxsaW5lIGNhbnZhcz0iI2ZmZmZmZiIgY2FudmFzLW9wYWNpdHk9IjEiIHN0cm9rZS1saW5lY2FwPSJ1bmRlZmluZWQiIHN0cm9rZS1saW5lam9pbj0idW5kZWZpbmVkIiBpZD0ic3ZnXzEiIHkyPSItNzAuMTc4NDA3IiB4Mj0iMTI0LjQ2NDA3NSIgeTE9Ii0zOC4zOTI3MzciIHgxPSIxNDQuODIxMjg5IiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlPSIjMDAwIiBmaWxsPSJub25lIi8+CiAgPGxpbmUgc3Ryb2tlPSIjNjY2NjY2IiBzdHJva2UtbGluZWNhcD0idW5kZWZpbmVkIiBzdHJva2UtbGluZWpvaW49InVuZGVmaW5lZCIgaWQ9InN2Z181IiB5Mj0iOS4xMDY5NTciIHgyPSIwLjk0NzI0NyIgeTE9Ii0wLjAxODEyOCIgeDE9IjAuOTQ3MjQ3IiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9Im5vbmUiLz4KICA8bGluZSBzdHJva2UtbGluZWNhcD0idW5kZWZpbmVkIiBzdHJva2UtbGluZWpvaW49InVuZGVmaW5lZCIgaWQ9InN2Z183IiB5Mj0iOSIgeDI9IjEwLjA3MzUyOSIgeTE9IjkiIHgxPSItMC42NTU2NCIgc3Ryb2tlLXdpZHRoPSIwIiBzdHJva2U9IiM2NjY2NjYiIGZpbGw9Im5vbmUiLz4KIDwvZz4KPC9zdmc+) 0 100% no-repeat content-box border-box;padding-left:3px;bottom:0;left:0;right:auto}.vue-grid-item.disable-userselect{-webkit-user-select:none;user-select:none}.vue-grid-layout,.item[data-v-668f099b]{position:relative}.border[data-v-668f099b]{border:1px solid #ccc}.item-content[data-v-668f099b]{background:#fff;border-radius:2px;width:100%;height:100%;overflow:hidden}.grid-page-wraper{width:100%;height:100%;padding:5px}.grid-page-content{border-radius:4px;width:100%;height:100%}.view-item-row[data-v-47b7eabd]{cursor:pointer;justify-content:space-between;align-items:center;width:100%;display:flex}.view-item-row .view-name-container[data-v-47b7eabd]{flex:1;align-items:center;min-width:0;padding:4px 0;display:flex}.view-item-row .view-name-container .view-name[data-v-47b7eabd]{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;overflow:hidden}.view-item-row .view-name-container .view-name[data-v-47b7eabd]:hover{color:#1890ff}.view-item-row .view-name-container .view-default-tag[data-v-47b7eabd]{flex:none;margin-left:4px}.view-item-container[data-v-47b7eabd]{position:relative}.view-item-container .view-actions[data-v-47b7eabd]{opacity:0;background:#f9f9f9;border-radius:4px;align-items:center;gap:4px;height:30px;transition:opacity .2s;display:flex;position:absolute;top:0;right:0}.view-item-container .view-actions.current[data-v-47b7eabd]{background:#b9defd}.view-item-container:hover .view-actions[data-v-47b7eabd]{opacity:1}.collapses .ant-collapse-item .ant-collapse-content .ant-collapse-content-box{padding:0}.config-container[data-v-681bc6f1]{background:#fff;flex-direction:column;justify-content:space-between;height:100%;display:flex}.config-container[data-v-681bc6f1] .ant-tabs{flex:1;padding:0;overflow:hidden}.config-container[data-v-681bc6f1] .ant-tabs .ant-tabs-content-top{height:100%}.config-container[data-v-681bc6f1] .ant-tabs .ant-tabs-nav{padding:0 10px}.left-extra[data-v-681bc6f1]{margin-right:10px}[data-v-681bc6f1] .ant-tabs-nav{margin-bottom:0}.global-filter-loading[data-v-a7f4228e]{z-index:3000;background:#ffffffa6;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:fixed;inset:0}.global-filter-loading__text[data-v-a7f4228e]{color:#333;font-size:14px}.table-wrapper[data-v-4fd73b2f]{flex-direction:column;flex:1;height:100%;display:flex;overflow:hidden}.toggle-button[data-v-4fd73b2f]{cursor:pointer;height:46px;font-size:20px;line-height:33px}.toggle-button[data-v-4fd73b2f]:hover{color:#1890ff;filter:drop-shadow(2px 2px 2px #bddfff)}.filter-message[data-v-4fd73b2f]{gap:14px;display:flex}.pri-page[data-v-76801f0e]{height:100%;padding-top:4px;padding-left:4px;padding-right:4px}.pri-wrapper[data-v-76801f0e]{flex-direction:row;justify-content:space-between;gap:4px;height:100%;display:flex;overflow:hidden}.left-slide-outer[data-v-76801f0e]{background-color:#fff;width:220px;height:100%;overflow:hidden}.left-wrapper[data-v-76801f0e]{background-color:#fff;width:220px;height:100%;padding-left:4px;padding-right:4px;overflow:hidden}.left-slide-enter-active[data-v-76801f0e],.left-slide-leave-active[data-v-76801f0e]{transition:width .3s,opacity .3s;overflow:hidden}.left-slide-enter-from[data-v-76801f0e],.left-slide-leave-to[data-v-76801f0e]{opacity:0;width:0}.left-slide-leave-from[data-v-76801f0e],.left-slide-enter-to[data-v-76801f0e]{opacity:1;width:220px}.right-wrapper[data-v-76801f0e]{background-color:#fff;flex-direction:row;flex:1;justify-content:space-between;height:100%;display:flex;overflow:hidden}.left-space[data-v-76801f0e]{width:0;transition:width .2s}.left-space.setting-open[data-v-76801f0e]{width:calc(var(--drawer_width) - var(--x))}.right-space[data-v-76801f0e]{width:0;transition:width .2s}.right-space.detail-open[data-v-76801f0e]{width:calc(var(--detail_width))}.table-modal[data-v-9a04fe22]{flex-direction:column;gap:8px;display:flex}.table-modal .header[data-v-9a04fe22]{padding:4px}.field-extra[data-v-02b9ac99]{color:#999;margin-top:2px;font-size:12px;line-height:1.4}.field-hint[data-v-0c465e84]{color:#999;margin-bottom:8px;font-size:12px}.pl-item[data-v-0c465e84]{align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.pl-subtitle[data-v-0c465e84]{color:#000000d9;margin:4px 0 8px;font-size:13px;font-weight:500}.field-card[data-v-0c465e84]{margin-bottom:12px}.import-col-toolbar[data-v-0c465e84]{align-items:center;gap:8px;margin-bottom:12px;display:flex}.import-col-label[data-v-0c465e84]{color:#000000d9;font-size:13px}.modal-footer[data-v-0c465e84]{flex-direction:column;display:flex}.footer-error[data-v-0c465e84]{margin-bottom:8px}.footer-buttons[data-v-0c465e84]{justify-content:flex-end;gap:8px;display:flex}.field-name[data-v-0c465e84]{color:#1890ff;font-weight:500}.qb-group[data-v-1c5e0123]{border-left:2px solid #f0f0f0;padding-left:8px}.qb-group-head[data-v-1c5e0123]{gap:8px;margin-bottom:8px;display:flex}.qb-group-body[data-v-1c5e0123]{flex-direction:column;gap:6px;display:flex}.qb-rule[data-v-1c5e0123]{align-items:center;gap:8px;display:flex}.qb-subgroup[data-v-1c5e0123]{border-left:2px dashed #f0f0f0;padding:6px 0 6px 8px}.qb-group[data-v-1f8cf6f5]{border-left:2px solid #f0f0f0;padding-left:8px}.qb-group-head[data-v-1f8cf6f5]{gap:8px;margin-bottom:8px;display:flex}.qb-group-body[data-v-1f8cf6f5]{flex-direction:column;gap:6px;display:flex}.qb-rule[data-v-1f8cf6f5]{align-items:center;gap:8px;display:flex}.qb-subgroup[data-v-1f8cf6f5]{border-left:2px dashed #f0f0f0;padding:6px 0 6px 8px}.conditions-scroll[data-v-1f8cf6f5]{max-height:200px;padding-right:8px;overflow-y:auto}.time-range-row[data-v-1f8cf6f5]{align-items:center;gap:8px;margin-top:8px;display:flex}.field-label[data-v-1f8cf6f5]{color:#000000d9;font-weight:500}.mark-container{color:#2d3748;overflow-wrap:break-word;word-break:break-word;box-sizing:border-box;background-color:#fff;margin:0 auto;padding:1rem 0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.6}.mark-container h1,.mark-container h2,.mark-container h3,.mark-container h4,.mark-container h5,.mark-container h6{margin-top:2.5rem;margin-bottom:1.5rem;padding-bottom:.5rem;font-weight:700;position:relative}.mark-container h1{color:#4299e1;font-size:2.25rem}.mark-container h2{border-bottom:2px solid #e2e8f0;font-size:1.75rem}.mark-container h3{color:#4299e1;font-size:1.5rem}.mark-container h4{color:#4299e1;font-size:1.25rem}.mark-container h5,.mark-container h6{color:#4299e1;font-size:1rem}.mark-container p{color:#4a5568;margin-bottom:1.25rem}.mark-container ul,.mark-container ol{margin-bottom:1.25rem;padding-left:2rem}.mark-container li,.mark-container li>p{margin-bottom:.5rem}.mark-container pre{background-color:#f0f4f8;border-radius:.5rem;margin:1.5rem 0;padding:1.5rem;font-family:Fira Code,Consolas,monospace;font-size:.95rem;line-height:1.5;overflow-x:auto;box-shadow:0 4px 6px -1px #0000001a}.mark-container pre code{font-size:inherit;line-height:inherit;color:inherit;background-color:#0000;padding:0}.mark-container blockquote{color:#4a5568;background-color:#4299e10d;border-left:.25rem solid #4299e1;border-radius:0 .5rem .5rem 0;margin:1.5rem 0;padding:1rem 1.5rem}.mark-container table{border-collapse:collapse;width:100%;margin:1.5rem 0}.mark-container th,.mark-container td{text-align:left;border:1px solid #e2e8f0;padding:.75rem 1rem}.mark-container th{background-color:#f8fafc;font-weight:600}.mark-container a{color:#4299e1;text-decoration:none}.mark-container a:hover{color:#2b6cb0;text-decoration:underline}.mark-container hr{border:0;border-top:1px solid #e2e8f0;margin:2rem 0}.mark-container code{color:#2d3748;background-color:#f0f4f8;border-radius:.25rem;padding:.2rem .4rem;font-family:Fira Code,Consolas,monospace;font-size:.95rem}.mark-container strong{color:#4299e1;font-weight:600}@media (width<=768px){.mark-container{padding:1.5rem;font-size:15px}.mark-container h1{font-size:1.8rem}.mark-container h2{font-size:1.4rem}}.mark-container .mark-code-block{position:relative}.mark-container .md-copy-btn{z-index:2;color:#4a5568;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #cbd5e0;border-radius:.25rem;padding:2px 10px;font-size:12px;line-height:1.6;position:absolute;top:.6rem;right:.6rem}.mark-container .md-copy-btn:hover{color:#4299e1;border-color:#4299e1}.mark-container .md-copy-btn:active{background:#f0f4f8}.batch-toolbar[data-v-237ef1f1]{align-items:center;gap:8px;margin-bottom:12px;display:flex}.batch-tip[data-v-237ef1f1]{color:#999;margin-left:auto;font-size:12px}
2
2
  /*$vite$:1*/
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "liyu-pc-base",
3
3
  "type": "module",
4
4
  "license": "MIT",
5
- "version": "1.0.717",
5
+ "version": "1.0.719",
6
6
  "scripts": {
7
7
  "build": "vite build",
8
8
  "build:watch": "vite build --watch --mode development",
@@ -1 +0,0 @@
1
- {"version":3,"file":"batchCreateUser-Bpy8EFVm.js","names":[],"sources":["../src/components/batchCreateUser/batchCreateUser.vue","../src/components/batchCreateUser/batchCreateUser.vue"],"sourcesContent":["<template>\n <a-modal\n :title=\"title\"\n width=\"900px\"\n :open=\"open\"\n :bodyStyle=\"{ height: '75vh', overflowY: 'auto', padding: '0 24px' }\"\n :confirm-loading=\"loading\"\n cancel-text=\"取消\"\n ok-text=\"确定\"\n centered\n destroy-on-close\n @cancel=\"handleCancel\"\n @ok=\"handleOk\"\n >\n <a-form\n layout=\"vertical\"\n size=\"small\"\n >\n <a-row :gutter=\"16\">\n <a-col :span=\"12\">\n <a-form-item\n label=\"组织\"\n required\n >\n <a-select\n v-model:value=\"orgIds\"\n mode=\"multiple\"\n placeholder=\"请选择组织(可多选)\"\n :options=\"orgOptions\"\n :field-names=\"{ label: 'name', value: 'id' }\"\n allow-clear\n show-search\n option-filter-prop=\"name\"\n />\n </a-form-item>\n </a-col>\n <a-col :span=\"12\">\n <a-form-item\n label=\"用户类型\"\n required\n >\n <a-select\n v-model:value=\"manageType\"\n placeholder=\"请选择用户类型\"\n :options=\"manageTypeOptions\"\n />\n </a-form-item>\n </a-col>\n </a-row>\n </a-form>\n\n <div class=\"batch-toolbar\">\n <a-button\n type=\"primary\"\n @click=\"handleAddRow\"\n >\n <plus-outlined />\n 添加\n </a-button>\n <a-upload\n :show-upload-list=\"false\"\n :before-upload=\"beforeImportUpload\"\n accept=\".xlsx,.xls\"\n >\n <a-button>\n <upload-outlined />\n 导入\n </a-button>\n </a-upload>\n <a-button @click=\"handleDownloadTemplate\">\n <download-outlined />\n 下载导入模板\n </a-button>\n <a-popconfirm\n title=\"确认清空所有数据?\"\n @confirm=\"handleClear()\"\n v-if=\"dataSource.length > 0\"\n >\n <a-button\n type=\"default\"\n danger\n >\n 清空\n </a-button>\n </a-popconfirm>\n <span class=\"batch-tip\">共 {{ dataSource.length }} 条</span>\n </div>\n\n <s-table\n :columns=\"columns\"\n :data-source=\"dataSource\"\n :rowKey=\"rowKey\"\n :bordered=\"true\"\n size=\"small\"\n :pagination=\"false\"\n :scroll=\"{ y: 320 }\"\n >\n <template #bodyCell=\"{ column, index, record }\">\n <template v-if=\"column.dataIndex === 'index'\">\n {{ index + 1 }}\n </template>\n <template v-else-if=\"column.dataIndex === 'username'\">\n <a-input\n v-if=\"record.id === currentEditId\"\n v-model:value=\"record.username\"\n placeholder=\"请输入账号\"\n allow-clear\n />\n <span v-else>{{ record.username }}</span>\n </template>\n <template v-else-if=\"column.dataIndex === 'realname'\">\n <a-input\n v-if=\"record.id === currentEditId\"\n v-model:value=\"record.realname\"\n placeholder=\"请输入姓名\"\n allow-clear\n />\n <span v-else>{{ record.realname }}</span>\n </template>\n <template v-else-if=\"column.dataIndex === 'action'\">\n <a-space>\n <a-button\n type=\"link\"\n size=\"small\"\n v-if=\"record.id !== currentEditId\"\n @click=\"handleEdit(record)\"\n >\n 编辑\n </a-button>\n <a-button\n type=\"link\"\n size=\"small\"\n v-else\n @click=\"handleComplete()\"\n >\n 完成\n </a-button>\n <a-popconfirm\n title=\"确认删除该行?\"\n @confirm=\"handleDelete(record)\"\n >\n <a-button\n type=\"link\"\n size=\"small\"\n danger\n >\n 删除\n </a-button>\n </a-popconfirm>\n </a-space>\n </template>\n </template>\n </s-table>\n </a-modal>\n</template>\n\n<script setup lang=\"ts\">\nimport { DownloadOutlined, PlusOutlined, UploadOutlined } from '@ant-design/icons-vue';\nimport { message } from 'ant-design-vue';\nimport { read, utils } from 'xlsx';\nimport type { Ref } from 'vue';\nimport { onMounted, ref, shallowRef } from 'vue';\nimport { event_obj, useUserStore } from 'liyu-pc-base/init-plugin';\nimport { getApiData } from 'liyu-pc-base/api/api-model';\nimport { exportJsonToExcel } from 'liyu-pc-base/utils/excel';\n\ninterface Props {\n title?: string;\n record?: any;\n}\nconst props = defineProps<Props>();\nconst emit = defineEmits(['cancel', 'ok']);\n\nconst open = ref(true);\nconst loading = ref(false);\nconst orgIds = ref<any[]>([]);\nconst manageType = ref<number>(0);\nconst orgOptions = ref<any[]>([]);\nconst dataSource = shallowRef<any[]>([]);\nconst currentEditId = ref<string>('');\n\nconst userStore = useUserStore();\nconst current_org = userStore.currentOrg;\n\n// 用户类型可选项:受当前账号 manage_type 约束(与 permission-user 保持一致)\nconst manageTypeOptions = (() => {\n const curr = userStore.person?.manage_type;\n if (curr === 2) {\n return [\n { label: '普通用户', value: 0 },\n { label: '管理员', value: 1 },\n { label: '超级管理员', value: 2 },\n ];\n } else if (curr === 1) {\n return [\n { label: '普通用户', value: 0 },\n { label: '管理员', value: 1 },\n ];\n }\n return [{ label: '普通用户', value: 0 }];\n})();\n\nconst columns = [\n { title: '序号', dataIndex: 'index', width: 70, fixed: 'left' },\n { title: '账号', dataIndex: 'username', width: 220 },\n { title: '姓名', dataIndex: 'realname', width: 220 },\n { title: '操作', dataIndex: 'action', width: 140, fixed: 'right' },\n];\nconst rowKey = 'id';\n\nlet uid = 0;\nconst genId = () => `row_${++uid}`;\n\nconst handleAddRow = () => {\n const id = genId();\n currentEditId.value = id;\n dataSource.value = [...dataSource.value, { id, username: '', realname: '' }];\n};\n\nconst handleEdit = (record: any) => {\n currentEditId.value = record.id;\n dataSource.value = [...dataSource.value];\n};\nconst handleComplete = () => {\n currentEditId.value = '';\n dataSource.value = [...dataSource.value];\n};\nconst handleClear = () => {\n dataSource.value = [];\n};\n\nconst handleDelete = (record: any) => {\n const idx = dataSource.value.findIndex(r => r.id === record.id);\n if (idx > -1) dataSource.value.splice(idx, 1);\n dataSource.value = [...dataSource.value];\n};\n\n// 下载导入模板(账号 / 姓名 两列)\nconst handleDownloadTemplate = () => {\n const percent: Ref<number> = ref(0);\n exportJsonToExcel({\n header: ['账号', '姓名'],\n data: [],\n filename: '批量创建用户导入模板',\n bookType: 'xlsx',\n autoWidth: true,\n percent,\n } as any);\n};\n\n// 导入 Excel:解析“账号 / 姓名”列,追加到表格\nconst beforeImportUpload = (file: any) => {\n const reader = new FileReader();\n reader.onload = (e: any) => {\n try {\n const data = new Uint8Array(e.target.result);\n const workbook = read(data, { type: 'array' });\n const firstSheet = workbook.SheetNames[0];\n const worksheet = workbook.Sheets[firstSheet];\n const sheetData: any[][] = utils.sheet_to_json(worksheet, { header: 1 });\n const headers = (sheetData[0] || []).map((h: any) =>\n String(h ?? '')\n .trim()\n .toLowerCase(),\n );\n const userCol = headers.findIndex(h => ['账号', '用户名', 'username'].includes(h));\n const nameCol = headers.findIndex(h => ['姓名', '名字', 'realname', 'name'].includes(h));\n if (userCol === -1 && nameCol === -1) {\n message.warning('未识别到“账号/姓名”列,请使用下载的模板');\n return;\n }\n const rows = sheetData\n .slice(1)\n .filter((row: any[]) => row && row.some(c => c !== '' && c != null));\n let added = 0;\n const newRows = [];\n rows.forEach((row: any[]) => {\n const username = userCol > -1 ? String(row[userCol] ?? '').trim() : '';\n const realname = nameCol > -1 ? String(row[nameCol] ?? '').trim() : '';\n if (!username && !realname) return;\n newRows.push({ id: genId(), username, realname });\n added++;\n });\n dataSource.value = [...dataSource.value, ...newRows];\n if (added > 0) message.success(`已导入 ${added} 条`);\n else message.info('文件中没有可导入的数据');\n } catch (err) {\n console.error(err);\n message.error('解析 Excel 失败');\n }\n };\n reader.readAsArrayBuffer(file);\n return false; // 阻止自动上传\n};\n\nconst handleOk = async () => {\n // 前置校验\n if (!orgIds.value || orgIds.value.length === 0) {\n message.error('请至少选择一个组织');\n return;\n }\n if (manageType.value === null || manageType.value === undefined) {\n message.error('请选择用户类型');\n return;\n }\n if (dataSource.value.length === 0) {\n message.error('请至少添加一条用户信息');\n return;\n }\n // 校验账号/姓名非空,且账号不重复\n const seen = new Set<string>();\n for (const row of dataSource.value) {\n const username = (row.username || '').trim();\n const realname = (row.realname || '').trim();\n if (!username) {\n message.error('账号不能为空,请检查表格');\n return;\n }\n if (!realname) {\n message.error(`账号 [${username}] 的姓名不能为空`);\n return;\n }\n if (seen.has(username)) {\n message.error(`账号 [${username}] 重复,请检查`);\n return;\n }\n seen.add(username);\n }\n\n const payload = {\n org_ids: orgIds.value,\n manage_type: manageType.value,\n user_list: dataSource.value.map(r => ({\n username: (r.username || '').trim(),\n realname: (r.realname || '').trim(),\n })),\n org_id: current_org?.id,\n };\n\n loading.value = true;\n try {\n await getApiData(payload, '/sys/create_batch_user');\n message.success(`批量创建完成`);\n event_obj()?.emit('refresh');\n emit('ok');\n } catch (err) {\n console.error(err);\n // 错误提示已由请求拦截器统一处理\n } finally {\n loading.value = false;\n }\n};\n\nconst handleCancel = () => emit('cancel');\n\nonMounted(async () => {\n try {\n const res: any = await getApiData({ is_pagination: false }, '/org/query_org_for_person_admin');\n const list = res?.data ?? res ?? [];\n orgOptions.value = Array.isArray(list) ? list : [];\n } catch (err) {\n console.error('加载组织列表失败', err);\n }\n});\n</script>\n\n<style scoped lang=\"less\">\n.batch-toolbar {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 12px;\n}\n.batch-tip {\n margin-left: auto;\n color: #999;\n font-size: 12px;\n}\n</style>\n","<template>\n <a-modal\n :title=\"title\"\n width=\"900px\"\n :open=\"open\"\n :bodyStyle=\"{ height: '75vh', overflowY: 'auto', padding: '0 24px' }\"\n :confirm-loading=\"loading\"\n cancel-text=\"取消\"\n ok-text=\"确定\"\n centered\n destroy-on-close\n @cancel=\"handleCancel\"\n @ok=\"handleOk\"\n >\n <a-form\n layout=\"vertical\"\n size=\"small\"\n >\n <a-row :gutter=\"16\">\n <a-col :span=\"12\">\n <a-form-item\n label=\"组织\"\n required\n >\n <a-select\n v-model:value=\"orgIds\"\n mode=\"multiple\"\n placeholder=\"请选择组织(可多选)\"\n :options=\"orgOptions\"\n :field-names=\"{ label: 'name', value: 'id' }\"\n allow-clear\n show-search\n option-filter-prop=\"name\"\n />\n </a-form-item>\n </a-col>\n <a-col :span=\"12\">\n <a-form-item\n label=\"用户类型\"\n required\n >\n <a-select\n v-model:value=\"manageType\"\n placeholder=\"请选择用户类型\"\n :options=\"manageTypeOptions\"\n />\n </a-form-item>\n </a-col>\n </a-row>\n </a-form>\n\n <div class=\"batch-toolbar\">\n <a-button\n type=\"primary\"\n @click=\"handleAddRow\"\n >\n <plus-outlined />\n 添加\n </a-button>\n <a-upload\n :show-upload-list=\"false\"\n :before-upload=\"beforeImportUpload\"\n accept=\".xlsx,.xls\"\n >\n <a-button>\n <upload-outlined />\n 导入\n </a-button>\n </a-upload>\n <a-button @click=\"handleDownloadTemplate\">\n <download-outlined />\n 下载导入模板\n </a-button>\n <a-popconfirm\n title=\"确认清空所有数据?\"\n @confirm=\"handleClear()\"\n v-if=\"dataSource.length > 0\"\n >\n <a-button\n type=\"default\"\n danger\n >\n 清空\n </a-button>\n </a-popconfirm>\n <span class=\"batch-tip\">共 {{ dataSource.length }} 条</span>\n </div>\n\n <s-table\n :columns=\"columns\"\n :data-source=\"dataSource\"\n :rowKey=\"rowKey\"\n :bordered=\"true\"\n size=\"small\"\n :pagination=\"false\"\n :scroll=\"{ y: 320 }\"\n >\n <template #bodyCell=\"{ column, index, record }\">\n <template v-if=\"column.dataIndex === 'index'\">\n {{ index + 1 }}\n </template>\n <template v-else-if=\"column.dataIndex === 'username'\">\n <a-input\n v-if=\"record.id === currentEditId\"\n v-model:value=\"record.username\"\n placeholder=\"请输入账号\"\n allow-clear\n />\n <span v-else>{{ record.username }}</span>\n </template>\n <template v-else-if=\"column.dataIndex === 'realname'\">\n <a-input\n v-if=\"record.id === currentEditId\"\n v-model:value=\"record.realname\"\n placeholder=\"请输入姓名\"\n allow-clear\n />\n <span v-else>{{ record.realname }}</span>\n </template>\n <template v-else-if=\"column.dataIndex === 'action'\">\n <a-space>\n <a-button\n type=\"link\"\n size=\"small\"\n v-if=\"record.id !== currentEditId\"\n @click=\"handleEdit(record)\"\n >\n 编辑\n </a-button>\n <a-button\n type=\"link\"\n size=\"small\"\n v-else\n @click=\"handleComplete()\"\n >\n 完成\n </a-button>\n <a-popconfirm\n title=\"确认删除该行?\"\n @confirm=\"handleDelete(record)\"\n >\n <a-button\n type=\"link\"\n size=\"small\"\n danger\n >\n 删除\n </a-button>\n </a-popconfirm>\n </a-space>\n </template>\n </template>\n </s-table>\n </a-modal>\n</template>\n\n<script setup lang=\"ts\">\nimport { DownloadOutlined, PlusOutlined, UploadOutlined } from '@ant-design/icons-vue';\nimport { message } from 'ant-design-vue';\nimport { read, utils } from 'xlsx';\nimport type { Ref } from 'vue';\nimport { onMounted, ref, shallowRef } from 'vue';\nimport { event_obj, useUserStore } from 'liyu-pc-base/init-plugin';\nimport { getApiData } from 'liyu-pc-base/api/api-model';\nimport { exportJsonToExcel } from 'liyu-pc-base/utils/excel';\n\ninterface Props {\n title?: string;\n record?: any;\n}\nconst props = defineProps<Props>();\nconst emit = defineEmits(['cancel', 'ok']);\n\nconst open = ref(true);\nconst loading = ref(false);\nconst orgIds = ref<any[]>([]);\nconst manageType = ref<number>(0);\nconst orgOptions = ref<any[]>([]);\nconst dataSource = shallowRef<any[]>([]);\nconst currentEditId = ref<string>('');\n\nconst userStore = useUserStore();\nconst current_org = userStore.currentOrg;\n\n// 用户类型可选项:受当前账号 manage_type 约束(与 permission-user 保持一致)\nconst manageTypeOptions = (() => {\n const curr = userStore.person?.manage_type;\n if (curr === 2) {\n return [\n { label: '普通用户', value: 0 },\n { label: '管理员', value: 1 },\n { label: '超级管理员', value: 2 },\n ];\n } else if (curr === 1) {\n return [\n { label: '普通用户', value: 0 },\n { label: '管理员', value: 1 },\n ];\n }\n return [{ label: '普通用户', value: 0 }];\n})();\n\nconst columns = [\n { title: '序号', dataIndex: 'index', width: 70, fixed: 'left' },\n { title: '账号', dataIndex: 'username', width: 220 },\n { title: '姓名', dataIndex: 'realname', width: 220 },\n { title: '操作', dataIndex: 'action', width: 140, fixed: 'right' },\n];\nconst rowKey = 'id';\n\nlet uid = 0;\nconst genId = () => `row_${++uid}`;\n\nconst handleAddRow = () => {\n const id = genId();\n currentEditId.value = id;\n dataSource.value = [...dataSource.value, { id, username: '', realname: '' }];\n};\n\nconst handleEdit = (record: any) => {\n currentEditId.value = record.id;\n dataSource.value = [...dataSource.value];\n};\nconst handleComplete = () => {\n currentEditId.value = '';\n dataSource.value = [...dataSource.value];\n};\nconst handleClear = () => {\n dataSource.value = [];\n};\n\nconst handleDelete = (record: any) => {\n const idx = dataSource.value.findIndex(r => r.id === record.id);\n if (idx > -1) dataSource.value.splice(idx, 1);\n dataSource.value = [...dataSource.value];\n};\n\n// 下载导入模板(账号 / 姓名 两列)\nconst handleDownloadTemplate = () => {\n const percent: Ref<number> = ref(0);\n exportJsonToExcel({\n header: ['账号', '姓名'],\n data: [],\n filename: '批量创建用户导入模板',\n bookType: 'xlsx',\n autoWidth: true,\n percent,\n } as any);\n};\n\n// 导入 Excel:解析“账号 / 姓名”列,追加到表格\nconst beforeImportUpload = (file: any) => {\n const reader = new FileReader();\n reader.onload = (e: any) => {\n try {\n const data = new Uint8Array(e.target.result);\n const workbook = read(data, { type: 'array' });\n const firstSheet = workbook.SheetNames[0];\n const worksheet = workbook.Sheets[firstSheet];\n const sheetData: any[][] = utils.sheet_to_json(worksheet, { header: 1 });\n const headers = (sheetData[0] || []).map((h: any) =>\n String(h ?? '')\n .trim()\n .toLowerCase(),\n );\n const userCol = headers.findIndex(h => ['账号', '用户名', 'username'].includes(h));\n const nameCol = headers.findIndex(h => ['姓名', '名字', 'realname', 'name'].includes(h));\n if (userCol === -1 && nameCol === -1) {\n message.warning('未识别到“账号/姓名”列,请使用下载的模板');\n return;\n }\n const rows = sheetData\n .slice(1)\n .filter((row: any[]) => row && row.some(c => c !== '' && c != null));\n let added = 0;\n const newRows = [];\n rows.forEach((row: any[]) => {\n const username = userCol > -1 ? String(row[userCol] ?? '').trim() : '';\n const realname = nameCol > -1 ? String(row[nameCol] ?? '').trim() : '';\n if (!username && !realname) return;\n newRows.push({ id: genId(), username, realname });\n added++;\n });\n dataSource.value = [...dataSource.value, ...newRows];\n if (added > 0) message.success(`已导入 ${added} 条`);\n else message.info('文件中没有可导入的数据');\n } catch (err) {\n console.error(err);\n message.error('解析 Excel 失败');\n }\n };\n reader.readAsArrayBuffer(file);\n return false; // 阻止自动上传\n};\n\nconst handleOk = async () => {\n // 前置校验\n if (!orgIds.value || orgIds.value.length === 0) {\n message.error('请至少选择一个组织');\n return;\n }\n if (manageType.value === null || manageType.value === undefined) {\n message.error('请选择用户类型');\n return;\n }\n if (dataSource.value.length === 0) {\n message.error('请至少添加一条用户信息');\n return;\n }\n // 校验账号/姓名非空,且账号不重复\n const seen = new Set<string>();\n for (const row of dataSource.value) {\n const username = (row.username || '').trim();\n const realname = (row.realname || '').trim();\n if (!username) {\n message.error('账号不能为空,请检查表格');\n return;\n }\n if (!realname) {\n message.error(`账号 [${username}] 的姓名不能为空`);\n return;\n }\n if (seen.has(username)) {\n message.error(`账号 [${username}] 重复,请检查`);\n return;\n }\n seen.add(username);\n }\n\n const payload = {\n org_ids: orgIds.value,\n manage_type: manageType.value,\n user_list: dataSource.value.map(r => ({\n username: (r.username || '').trim(),\n realname: (r.realname || '').trim(),\n })),\n org_id: current_org?.id,\n };\n\n loading.value = true;\n try {\n await getApiData(payload, '/sys/create_batch_user');\n message.success(`批量创建完成`);\n event_obj()?.emit('refresh');\n emit('ok');\n } catch (err) {\n console.error(err);\n // 错误提示已由请求拦截器统一处理\n } finally {\n loading.value = false;\n }\n};\n\nconst handleCancel = () => emit('cancel');\n\nonMounted(async () => {\n try {\n const res: any = await getApiData({ is_pagination: false }, '/org/query_org_for_person_admin');\n const list = res?.data ?? res ?? [];\n orgOptions.value = Array.isArray(list) ? list : [];\n } catch (err) {\n console.error('加载组织列表失败', err);\n }\n});\n</script>\n\n<style scoped lang=\"less\">\n.batch-toolbar {\n display: flex;\n align-items: center;\n gap: 8px;\n margin-bottom: 12px;\n}\n.batch-tip {\n margin-left: auto;\n color: #999;\n font-size: 12px;\n}\n</style>\n"],"mappings":";;;;;;;;;gGAgNM,IAAS;;;;;;;;EArCf,IAAM,IAAO,GAEP,IAAO,EAAI,EAAI,GACf,IAAU,EAAI,EAAK,GACnB,IAAS,EAAW,CAAC,CAAC,GACtB,IAAa,EAAY,CAAC,GAC1B,IAAa,EAAW,CAAC,CAAC,GAC1B,IAAa,EAAkB,CAAC,CAAC,GACjC,IAAgB,EAAY,EAAE,GAE9B,IAAY,EAAa,GACzB,IAAc,EAAU,YAGxB,WAA2B;GAC/B,IAAM,IAAO,EAAU,QAAQ;GAa/B,OAZI,MAAS,IACJ;IACL;KAAE,OAAO;KAAQ,OAAO;IAAE;IAC1B;KAAE,OAAO;KAAO,OAAO;IAAE;IACzB;KAAE,OAAO;KAAS,OAAO;IAAE;GAC7B,IACS,MAAS,IACX,CACL;IAAE,OAAO;IAAQ,OAAO;GAAE,GAC1B;IAAE,OAAO;IAAO,OAAO;GAAE,CAC3B,IAEK,CAAC;IAAE,OAAO;IAAQ,OAAO;GAAE,CAAC;EACrC,EAAA,CAAG,GAEG,IAAU;GACd;IAAE,OAAO;IAAM,WAAW;IAAS,OAAO;IAAI,OAAO;GAAO;GAC5D;IAAE,OAAO;IAAM,WAAW;IAAY,OAAO;GAAI;GACjD;IAAE,OAAO;IAAM,WAAW;IAAY,OAAO;GAAI;GACjD;IAAE,OAAO;IAAM,WAAW;IAAU,OAAO;IAAK,OAAO;GAAQ;EACjE,GAGI,IAAM,GACJ,UAAc,OAAO,EAAE,KAEvB,UAAqB;GACzB,IAAM,IAAK,EAAM;GAEjB,AADA,EAAc,QAAQ,GACtB,EAAW,QAAQ,CAAC,GAAG,EAAW,OAAO;IAAE;IAAI,UAAU;IAAI,UAAU;GAAG,CAAC;EAC7E,GAEM,KAAc,MAAgB;GAElC,AADA,EAAc,QAAQ,EAAO,IAC7B,EAAW,QAAQ,CAAC,GAAG,EAAW,KAAK;EACzC,GACM,UAAuB;GAE3B,AADA,EAAc,QAAQ,IACtB,EAAW,QAAQ,CAAC,GAAG,EAAW,KAAK;EACzC,GACM,UAAoB;GACxB,EAAW,QAAQ,CAAC;EACtB,GAEM,KAAgB,MAAgB;GACpC,IAAM,IAAM,EAAW,MAAM,WAAU,MAAK,EAAE,OAAO,EAAO,EAAE;GAE9D,AADI,IAAM,MAAI,EAAW,MAAM,OAAO,GAAK,CAAC,GAC5C,EAAW,QAAQ,CAAC,GAAG,EAAW,KAAK;EACzC,GAGM,UAA+B;GAEnC,EAAkB;IAChB,QAAQ,CAAC,MAAM,IAAI;IACnB,MAAM,CAAC;IACP,UAAU;IACV,UAAU;IACV,WAAW;IACX,SAP2B,EAAI,CAO/B;GACF,CAAQ;EACV,GAGM,KAAsB,MAAc;GACxC,IAAM,IAAS,IAAI,WAAW;GAwC9B,OAvCA,EAAO,UAAU,MAAW;IAC1B,IAAI;KAEF,IAAM,IAAW,EAAK,IADL,WAAW,EAAE,OAAO,MACf,GAAM,EAAE,MAAM,QAAQ,CAAC,GACvC,IAAa,EAAS,WAAW,IACjC,IAAY,EAAS,OAAO,IAC5B,IAAqB,EAAM,cAAc,GAAW,EAAE,QAAQ,EAAE,CAAC,GACjE,KAAW,EAAU,MAAM,CAAC,EAAA,CAAG,KAAK,MACxC,OAAO,KAAK,EAAE,CAAC,CACZ,KAAK,CAAC,CACN,YAAY,CACjB,GACM,IAAU,EAAQ,WAAU,MAAK;MAAC;MAAM;MAAO;KAAU,CAAC,CAAC,SAAS,CAAC,CAAC,GACtE,IAAU,EAAQ,WAAU,MAAK;MAAC;MAAM;MAAM;MAAY;KAAM,CAAC,CAAC,SAAS,CAAC,CAAC;KACnF,IAAI,MAAY,MAAM,MAAY,IAAI;MACpC,EAAQ,QAAQ,uBAAuB;MACvC;KACF;KACA,IAAM,IAAO,EACV,MAAM,CAAC,CAAC,CACR,QAAQ,MAAe,KAAO,EAAI,MAAK,MAAK,MAAM,MAAM,KAAK,IAAI,CAAC,GACjE,IAAQ,GACN,IAAU,CAAC;KASjB,AARA,EAAK,SAAS,MAAe;MAC3B,IAAM,IAAW,IAAU,KAAK,OAAO,EAAI,MAAY,EAAE,CAAC,CAAC,KAAK,IAAI,IAC9D,IAAW,IAAU,KAAK,OAAO,EAAI,MAAY,EAAE,CAAC,CAAC,KAAK,IAAI;MAChE,CAAC,KAAY,CAAC,MAClB,EAAQ,KAAK;OAAE,IAAI,EAAM;OAAG;OAAU;MAAS,CAAC,GAChD;KACF,CAAC,GACD,EAAW,QAAQ,CAAC,GAAG,EAAW,OAAO,GAAG,CAAO,GAC/C,IAAQ,IAAG,EAAQ,QAAQ,OAAO,EAAM,GAAG,IAC1C,EAAQ,KAAK,aAAa;IACjC,SAAS,GAAK;KAEZ,AADA,QAAQ,MAAM,CAAG,GACjB,EAAQ,MAAM,aAAa;IAC7B;GACF,GACA,EAAO,kBAAkB,CAAI,GACtB;EACT,GAEM,IAAW,YAAY;GAE3B,IAAI,CAAC,EAAO,SAAS,EAAO,MAAM,WAAW,GAAG;IAC9C,EAAQ,MAAM,WAAW;IACzB;GACF;GACA,IAAI,EAAW,UAAU,QAAQ,EAAW,UAAU,KAAA,GAAW;IAC/D,EAAQ,MAAM,SAAS;IACvB;GACF;GACA,IAAI,EAAW,MAAM,WAAW,GAAG;IACjC,EAAQ,MAAM,aAAa;IAC3B;GACF;GAEA,IAAM,oBAAO,IAAI,IAAY;GAC7B,KAAK,IAAM,KAAO,EAAW,OAAO;IAClC,IAAM,KAAY,EAAI,YAAY,GAAA,CAAI,KAAK,GACrC,KAAY,EAAI,YAAY,GAAA,CAAI,KAAK;IAC3C,IAAI,CAAC,GAAU;KACb,EAAQ,MAAM,cAAc;KAC5B;IACF;IACA,IAAI,CAAC,GAAU;KACb,EAAQ,MAAM,OAAO,EAAS,UAAU;KACxC;IACF;IACA,IAAI,EAAK,IAAI,CAAQ,GAAG;KACtB,EAAQ,MAAM,OAAO,EAAS,SAAS;KACvC;IACF;IACA,EAAK,IAAI,CAAQ;GACnB;GAEA,IAAM,IAAU;IACd,SAAS,EAAO;IAChB,aAAa,EAAW;IACxB,WAAW,EAAW,MAAM,KAAI,OAAM;KACpC,WAAW,EAAE,YAAY,GAAA,CAAI,KAAK;KAClC,WAAW,EAAE,YAAY,GAAA,CAAI,KAAK;IACpC,EAAE;IACF,QAAQ,GAAa;GACvB;GAEA,EAAQ,QAAQ;GAChB,IAAI;IAIF,AAHA,MAAM,EAAW,GAAS,wBAAwB,GAClD,EAAQ,QAAQ,QAAQ,GACxB,EAAU,CAAC,EAAE,KAAK,SAAS,GAC3B,EAAK,IAAI;GACX,SAAS,GAAK;IACZ,QAAQ,MAAM,CAAG;GAEnB,UAAU;IACR,EAAQ,QAAQ;GAClB;EACF,GAEM,WAAqB,EAAK,QAAQ;SAExC,EAAU,YAAY;GACpB,IAAI;IACF,IAAM,IAAW,MAAM,EAAW,EAAE,eAAe,GAAM,GAAG,iCAAiC,GACvF,IAAO,GAAK,QAAQ,KAAO,CAAC;IAClC,EAAW,QAAQ,MAAM,QAAQ,CAAI,IAAI,IAAO,CAAC;GACnD,SAAS,GAAK;IACZ,QAAQ,MAAM,YAAY,CAAG;GAC/B;EACF,CAAC"}