@gis_victory/curd-form 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/curd-form.css +1 -1
- package/dist/curd-form.es.js +35 -33
- package/dist/curd-form.umd.js +2 -2
- package/package.json +1 -1
package/dist/curd-form.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.map-draw-container[data-v-fa667d3f]{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap}[data-v-fa667d3f] .el-button.active{background-color:#67c23a;border-color:#67c23a;color:#fff}[data-v-fa667d3f] .el-button.active:hover{background-color:#85ce61;border-color:#85ce61;color:#fff}.curd-map[data-v-e1f42b56]{position:relative;height:100%}.column-item[data-v-a28ea63e]{text-align:left;margin-bottom:8px}[data-v-a28ea63e] .el-dialog__title{text-align:left}.field-select-container[data-v-a28ea63e]{max-height:400px;overflow-y:auto;padding:10px;border:1px solid #DCDFE6;border-radius:4px}.column-manager-popover[data-v-ef5ba627]{padding:0!important}.column-manager-popover .column-manager[data-v-ef5ba627]{padding:0!important;max-height:300px;overflow-y:auto}.column-manager-popover .column-item[data-v-ef5ba627]{display:flex;justify-content:space-between;align-items:center;padding:4px;border-radius:4px;cursor:pointer}.column-manager-popover .column-item[data-v-ef5ba627]:hover{background-color:#f5f7fa}.curd-container[data-v-
|
|
1
|
+
.map-draw-container[data-v-fa667d3f]{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap}[data-v-fa667d3f] .el-button.active{background-color:#67c23a;border-color:#67c23a;color:#fff}[data-v-fa667d3f] .el-button.active:hover{background-color:#85ce61;border-color:#85ce61;color:#fff}.curd-map[data-v-e1f42b56]{position:relative;height:100%}.column-item[data-v-a28ea63e]{text-align:left;margin-bottom:8px}[data-v-a28ea63e] .el-dialog__title{text-align:left}.field-select-container[data-v-a28ea63e]{max-height:400px;overflow-y:auto;padding:10px;border:1px solid #DCDFE6;border-radius:4px}.column-manager-popover[data-v-ef5ba627]{padding:0!important}.column-manager-popover .column-manager[data-v-ef5ba627]{padding:0!important;max-height:300px;overflow-y:auto}.column-manager-popover .column-item[data-v-ef5ba627]{display:flex;justify-content:space-between;align-items:center;padding:4px;border-radius:4px;cursor:pointer}.column-manager-popover .column-item[data-v-ef5ba627]:hover{background-color:#f5f7fa}.curd-container[data-v-da85121d]{display:flex;flex-direction:column;height:100%}.curd-container .curd-search[data-v-da85121d]{background-color:#fff;padding:20px 20px 0;border-top-right-radius:8px;border-top-left-radius:8px}.curd-container .curd-search .el-form-item[data-v-da85121d]{margin-right:10px!important}.curd-container .table-actions[data-v-da85121d]{display:flex;flex-direction:row;margin-top:10px;background-color:#fff;padding:20px}.curd-container .table-actions .table-actions-left[data-v-da85121d]{flex:1}.curd-container .table-actions .table-actions-right[data-v-da85121d]{display:flex;flex-flow:row;flex:1;justify-content:flex-end}.curd-container .table-actions .table-actions-right>div[data-v-da85121d]{margin-left:10px}.curd-container .curd-table[data-v-da85121d]{flex:1;background-color:#fff;padding:0 20px}.curd-container .curd-pagination[data-v-da85121d]{padding:20px;text-align:right;background-color:#fff;border-bottom-right-radius:8px;border-bottom-left-radius:8px}.curd-form-details{border:1px solid #DCDFE6;border-bottom:none;border-left:none}.curd-form-details .el-form-item{height:auto!important;margin-bottom:16px;border-bottom:1px solid #DCDFE6}.curd-form-details .el-form-item:last-child{margin-bottom:0}.curd-form-details .el-form-item .el-form-item__label{padding:4px 0;height:auto!important;align-items:center;background:#f5f7fa!important;border-right:1px solid #DCDFE6;border-left:1px solid #DCDFE6}.curd-form-details .el-form-item .el-form-item__content{display:block;padding:4px 10px}
|
package/dist/curd-form.es.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { defineComponent as j, ref as
|
|
1
|
+
import { defineComponent as j, ref as T, watch as H, resolveComponent as k, openBlock as d, createBlock as C, unref as _, withCtx as h, createElementBlock as P, Fragment as R, renderList as K, onMounted as ne, toDisplayString as re, createElementVNode as Y, normalizeClass as te, createCommentVNode as N, reactive as J, onUnmounted as Pe, createVNode as b, renderSlot as q, createTextVNode as B, nextTick as se, normalizeStyle as Le, createSlots as Te } from "vue";
|
|
2
2
|
import { dayjs as oe, ElMessage as E, ElMessageBox as ue } from "element-plus";
|
|
3
|
-
import { GisMapView as
|
|
3
|
+
import { GisMapView as Me, GisMapSwitch as Oe } from "@gis_victory/gismap";
|
|
4
4
|
const xe = {
|
|
5
5
|
name: "FormItem"
|
|
6
6
|
}, ce = /* @__PURE__ */ j({
|
|
@@ -29,7 +29,7 @@ const xe = {
|
|
|
29
29
|
let o = e.modelValue;
|
|
30
30
|
const l = e.item.type === "multiple-select" || e.item.type === "checkbox" || e.item.searchFormType === "multiple-select" || e.item.searchFormType === "checkbox";
|
|
31
31
|
l && typeof o == "string" && o && (o = o.split(","));
|
|
32
|
-
const a =
|
|
32
|
+
const a = T(o), g = t, p = computed(() => {
|
|
33
33
|
switch (e.currentOperationType) {
|
|
34
34
|
case "default":
|
|
35
35
|
return !1;
|
|
@@ -61,7 +61,7 @@ const xe = {
|
|
|
61
61
|
let i = u;
|
|
62
62
|
l && typeof u == "string" && u && (i = u.split(",")), a.value = i;
|
|
63
63
|
}), (u, i) => {
|
|
64
|
-
const s = k("el-option"), c = k("el-select"), V = k("el-date-picker"), F = k("el-checkbox"),
|
|
64
|
+
const s = k("el-option"), c = k("el-select"), V = k("el-date-picker"), F = k("el-checkbox"), M = k("el-checkbox-group"), I = k("el-radio"), S = k("el-radio-group"), O = k("el-input");
|
|
65
65
|
return r.item.searchFormType === "select" || r.item.type === "select" ? (d(), C(c, {
|
|
66
66
|
key: 0,
|
|
67
67
|
modelValue: a.value,
|
|
@@ -118,7 +118,7 @@ const xe = {
|
|
|
118
118
|
disabled: _(p),
|
|
119
119
|
readonly: _(n),
|
|
120
120
|
clearable: ""
|
|
121
|
-
}, null, 8, ["modelValue", "placeholder", "disabled", "readonly"])) : r.item.searchFormType === "checkbox" || r.item.type === "checkbox" ? (d(), C(
|
|
121
|
+
}, null, 8, ["modelValue", "placeholder", "disabled", "readonly"])) : r.item.searchFormType === "checkbox" || r.item.type === "checkbox" ? (d(), C(M, {
|
|
122
122
|
key: 4,
|
|
123
123
|
modelValue: a.value,
|
|
124
124
|
"onUpdate:modelValue": i[4] || (i[4] = (f) => a.value = f),
|
|
@@ -199,7 +199,7 @@ const xe = {
|
|
|
199
199
|
let e = t.modelValue;
|
|
200
200
|
const o = t.item.type === "multiple-select" || t.item.type === "checkbox" || t.item.searchFormType === "multiple-select" || t.item.searchFormType === "checkbox";
|
|
201
201
|
typeof e == "object" && e !== null && !Array.isArray(e) && (e = Object.values(e).join(",")), o && typeof e == "string" && e && (e = e.split(","));
|
|
202
|
-
const l =
|
|
202
|
+
const l = T(e);
|
|
203
203
|
return ne(() => {
|
|
204
204
|
switch (t.item.type) {
|
|
205
205
|
case "select":
|
|
@@ -280,7 +280,7 @@ function $e() {
|
|
|
280
280
|
coordinates: v[0]
|
|
281
281
|
};
|
|
282
282
|
}
|
|
283
|
-
function
|
|
283
|
+
function M() {
|
|
284
284
|
if (!u(/^(multipoint)/i)) return null;
|
|
285
285
|
s();
|
|
286
286
|
var v = g.substring(g.indexOf("(") + 1, g.length - 1).replace(/\(/g, "").replace(/\)/g, "");
|
|
@@ -337,7 +337,7 @@ function $e() {
|
|
|
337
337
|
} : null;
|
|
338
338
|
}
|
|
339
339
|
function W() {
|
|
340
|
-
return F() || S() || O() ||
|
|
340
|
+
return F() || S() || O() || M() || I() || f() || L();
|
|
341
341
|
}
|
|
342
342
|
return i(W());
|
|
343
343
|
}
|
|
@@ -403,11 +403,11 @@ function pe(r) {
|
|
|
403
403
|
}
|
|
404
404
|
function me(r, t, e) {
|
|
405
405
|
if (r !== null)
|
|
406
|
-
for (var o, l, a, g, p, n, u, i = 0, s = 0, c, V = r.type, F = V === "FeatureCollection",
|
|
406
|
+
for (var o, l, a, g, p, n, u, i = 0, s = 0, c, V = r.type, F = V === "FeatureCollection", M = V === "Feature", I = F ? r.features.length : 1, S = 0; S < I; S++) {
|
|
407
407
|
u = F ? (
|
|
408
408
|
// @ts-expect-error: Known type conflict
|
|
409
409
|
r.features[S].geometry
|
|
410
|
-
) :
|
|
410
|
+
) : M ? (
|
|
411
411
|
// @ts-expect-error: Known type conflict
|
|
412
412
|
r.geometry
|
|
413
413
|
) : r, c = u ? u.type === "GeometryCollection" : !1, p = c ? u.geometries.length : 1;
|
|
@@ -889,8 +889,8 @@ const Ke = { class: "map-draw-container" }, qe = {
|
|
|
889
889
|
},
|
|
890
890
|
emits: ["draw-start", "draw-end", "draw-cancel"],
|
|
891
891
|
setup(r, { emit: t }) {
|
|
892
|
-
const e = t, o =
|
|
893
|
-
|
|
892
|
+
const e = t, o = T("none");
|
|
893
|
+
T(!1), T(null);
|
|
894
894
|
const l = Re, a = Ye, g = Je, p = (n) => {
|
|
895
895
|
o.value = n, n === "none" ? e("draw-cancel") : e("draw-start", n);
|
|
896
896
|
};
|
|
@@ -956,7 +956,7 @@ const Ke = { class: "map-draw-container" }, qe = {
|
|
|
956
956
|
},
|
|
957
957
|
emits: ["update:modelValue"],
|
|
958
958
|
setup(r, { emit: t }) {
|
|
959
|
-
const e = r, o =
|
|
959
|
+
const e = r, o = T(e.modelValue);
|
|
960
960
|
let l, a;
|
|
961
961
|
const g = J({
|
|
962
962
|
mapViewData: {
|
|
@@ -1009,7 +1009,7 @@ const Ke = { class: "map-draw-container" }, qe = {
|
|
|
1009
1009
|
return Pe(() => {
|
|
1010
1010
|
a && (a.destroy(), a = void 0);
|
|
1011
1011
|
}), (s, c) => (d(), P("div", Qe, [
|
|
1012
|
-
b(_(
|
|
1012
|
+
b(_(Me), {
|
|
1013
1013
|
options: g.mapViewData,
|
|
1014
1014
|
onLoad: n
|
|
1015
1015
|
}, {
|
|
@@ -1047,7 +1047,7 @@ const Ke = { class: "map-draw-container" }, qe = {
|
|
|
1047
1047
|
}
|
|
1048
1048
|
},
|
|
1049
1049
|
setup(r) {
|
|
1050
|
-
const t = r, e =
|
|
1050
|
+
const t = r, e = T(!1), o = J({
|
|
1051
1051
|
filename: "",
|
|
1052
1052
|
dataType: "current",
|
|
1053
1053
|
// current: 当前页数据, selected: 选择中数据
|
|
@@ -1064,8 +1064,8 @@ const Ke = { class: "map-draw-container" }, qe = {
|
|
|
1064
1064
|
}
|
|
1065
1065
|
const p = g.map((V) => {
|
|
1066
1066
|
const F = {};
|
|
1067
|
-
return o.selectedFields.forEach((
|
|
1068
|
-
F[
|
|
1067
|
+
return o.selectedFields.forEach((M) => {
|
|
1068
|
+
F[M] = V[M];
|
|
1069
1069
|
}), F;
|
|
1070
1070
|
}), n = o.filename || `导出数据_${(/* @__PURE__ */ new Date()).getTime()}`, u = a(p), i = new Blob([u], { type: "text/csv;charset=utf-8;" }), s = document.createElement("a"), c = URL.createObjectURL(i);
|
|
1071
1071
|
s.setAttribute("href", c), s.setAttribute("download", `${n}.csv`), s.style.visibility = "hidden", document.body.appendChild(s), s.click(), document.body.removeChild(s), e.value = !1, E.success("导出成功");
|
|
@@ -1084,7 +1084,7 @@ const Ke = { class: "map-draw-container" }, qe = {
|
|
|
1084
1084
|
`);
|
|
1085
1085
|
};
|
|
1086
1086
|
return (g, p) => {
|
|
1087
|
-
const n = k("el-icon-download"), u = k("el-icon"), i = k("el-button"), s = k("el-input"), c = k("el-form-item"), V = k("el-checkbox"), F = k("el-checkbox-group"),
|
|
1087
|
+
const n = k("el-icon-download"), u = k("el-icon"), i = k("el-button"), s = k("el-input"), c = k("el-form-item"), V = k("el-checkbox"), F = k("el-checkbox-group"), M = k("el-form"), I = k("el-dialog");
|
|
1088
1088
|
return d(), P("div", null, [
|
|
1089
1089
|
b(i, {
|
|
1090
1090
|
type: "default",
|
|
@@ -1128,7 +1128,7 @@ const Ke = { class: "map-draw-container" }, qe = {
|
|
|
1128
1128
|
})
|
|
1129
1129
|
]),
|
|
1130
1130
|
default: h(() => [
|
|
1131
|
-
b(
|
|
1131
|
+
b(M, {
|
|
1132
1132
|
model: o,
|
|
1133
1133
|
"label-width": "100px"
|
|
1134
1134
|
}, {
|
|
@@ -1198,7 +1198,7 @@ const Ke = { class: "map-draw-container" }, qe = {
|
|
|
1198
1198
|
},
|
|
1199
1199
|
emits: ["update:visibleColumns", "update:columns"],
|
|
1200
1200
|
setup(r, { emit: t }) {
|
|
1201
|
-
const e = r, o = t, l =
|
|
1201
|
+
const e = r, o = t, l = T(!1), a = T([...e.visibleColumns]), g = (p, n) => {
|
|
1202
1202
|
n ? a.value.push(p) : a.value = a.value.filter((u) => u !== p), o("update:visibleColumns", a.value);
|
|
1203
1203
|
};
|
|
1204
1204
|
return H(
|
|
@@ -1242,7 +1242,7 @@ const Ke = { class: "map-draw-container" }, qe = {
|
|
|
1242
1242
|
}, [
|
|
1243
1243
|
b(c, {
|
|
1244
1244
|
modelValue: a.value.includes(F.columnProperty),
|
|
1245
|
-
onChange: (
|
|
1245
|
+
onChange: (M) => g(F.columnProperty, M)
|
|
1246
1246
|
}, {
|
|
1247
1247
|
default: h(() => [
|
|
1248
1248
|
B(re(F.columnLabel || F.columnProperty), 1)
|
|
@@ -1450,7 +1450,7 @@ const dt = { class: "curd-container" }, pt = { class: "curd-search" }, mt = {
|
|
|
1450
1450
|
},
|
|
1451
1451
|
emits: ["loadDataSuccess"],
|
|
1452
1452
|
setup(r, { expose: t, emit: e }) {
|
|
1453
|
-
const o = r, l =
|
|
1453
|
+
const o = r, l = T(!1), a = T(null), g = e, p = T(), n = new ct({ serverConfig: o.serverConfig }), u = T(""), i = T("details"), s = J({
|
|
1454
1454
|
priKey: "id",
|
|
1455
1455
|
priKeyType: "string",
|
|
1456
1456
|
sortField: "id",
|
|
@@ -1481,16 +1481,16 @@ const dt = { class: "curd-container" }, pt = { class: "curd-search" }, mt = {
|
|
|
1481
1481
|
title: "弹框表单",
|
|
1482
1482
|
formDialogWidth: "800px",
|
|
1483
1483
|
labelWidth: "120px"
|
|
1484
|
-
}),
|
|
1484
|
+
}), M = J({
|
|
1485
1485
|
columns: [],
|
|
1486
1486
|
formColumns: []
|
|
1487
1487
|
}), I = J({
|
|
1488
1488
|
searchLabelWidth: "80",
|
|
1489
1489
|
searchFormWidth: "290",
|
|
1490
1490
|
columns: []
|
|
1491
|
-
}), S =
|
|
1491
|
+
}), S = T({}), O = T(!1), f = T([]), L = J({
|
|
1492
1492
|
data: {}
|
|
1493
|
-
}), W =
|
|
1493
|
+
}), W = T({}), v = T(!1), D = T(!1), x = T(), U = T([]), A = async () => {
|
|
1494
1494
|
if (o.serverConfig?.list)
|
|
1495
1495
|
try {
|
|
1496
1496
|
l.value = !0;
|
|
@@ -1518,7 +1518,7 @@ const dt = { class: "curd-container" }, pt = { class: "curd-search" }, mt = {
|
|
|
1518
1518
|
}, fe = () => {
|
|
1519
1519
|
S.value = JSON.parse(n.cloneSearchForm), A();
|
|
1520
1520
|
}, he = async () => {
|
|
1521
|
-
o.serverConfig?.add && (i.value = "add",
|
|
1521
|
+
o.serverConfig?.add && (i.value = "add", M.formColumns = n.getFormItems("add"), F.title = "新增信息", O.value = !0, L.data = JSON.parse(n.cloneFormData));
|
|
1522
1522
|
}, ye = async () => {
|
|
1523
1523
|
if (o.serverConfig?.deleteBatch && a?.value) {
|
|
1524
1524
|
const w = a.value.getSelectionRows();
|
|
@@ -1541,7 +1541,7 @@ const dt = { class: "curd-container" }, pt = { class: "curd-search" }, mt = {
|
|
|
1541
1541
|
V.currentPage = w, A();
|
|
1542
1542
|
}, we = async (w) => {
|
|
1543
1543
|
if (o.serverConfig?.view) {
|
|
1544
|
-
i.value = "details",
|
|
1544
|
+
i.value = "details", M.formColumns = n.getFormItems("details"), F.title = "查看详情";
|
|
1545
1545
|
try {
|
|
1546
1546
|
const y = w[s.priKey || "id"];
|
|
1547
1547
|
if (!y) {
|
|
@@ -1557,7 +1557,7 @@ const dt = { class: "curd-container" }, pt = { class: "curd-search" }, mt = {
|
|
|
1557
1557
|
}
|
|
1558
1558
|
}
|
|
1559
1559
|
}, be = async (w) => {
|
|
1560
|
-
o.serverConfig?.update && (i.value = "update",
|
|
1560
|
+
o.serverConfig?.update && (i.value = "update", M.formColumns = n.getFormItems("update"), F.title = "编辑信息", O.value = !0, L.data = { ...w });
|
|
1561
1561
|
}, Ce = (w) => {
|
|
1562
1562
|
o.serverConfig?.delete && ue.confirm("确定删除选中项吗?", "提示", {
|
|
1563
1563
|
confirmButtonText: "确定",
|
|
@@ -1597,7 +1597,9 @@ const dt = { class: "curd-container" }, pt = { class: "curd-search" }, mt = {
|
|
|
1597
1597
|
const w = await o.serverConfig.init();
|
|
1598
1598
|
if (w.success && w.data) {
|
|
1599
1599
|
const y = w.data || {}, z = y.dataExt ? JSON.parse(y.dataExt) : {};
|
|
1600
|
-
Object.assign(s, y || {}), Object.assign(c, z?.tableConfig || {}), Object.assign(F, z?.dialogConfig || {}), Object.assign(
|
|
1600
|
+
Object.assign(s, y || {}), Object.assign(c, z?.tableConfig || {}), Object.assign(F, z?.dialogConfig || {}), Object.assign(M?.columns || [], z?.editorConfig || {}), V.pageSize = c.defaultPageSize || V.pageSize, c.visibleOperationButtons = (c.operationButtons || []).map(($) => $.type), console.log("curdConfig", s), console.log("tableConfig", c), console.log("dialogConfig", F), console.log("editorConfig", M), I.searchFormWidth = c.searchFormWidth && c.searchFormWidth !== "" ? c.searchFormWidth : I.searchFormWidth, I.searchLabelWidth = c.searchLabelWidth && c.searchLabelWidth !== "" ? c.searchLabelWidth : I.searchLabelWidth, n.setConfig({ curdConfig: s, searchConfig: I, tableConfig: c, editorConfig: M }), U.value = n.initVisibleColumns(), S.value = n.formatSearchConfigForm(), L.data = n.formatFormConfigData(), W.value = n.formatFormRules(), x.value = n.hasGeometryField(), await n.loadDictionary(), setTimeout(() => {
|
|
1601
|
+
A();
|
|
1602
|
+
}, 500), se(() => {
|
|
1601
1603
|
u.value = "100%";
|
|
1602
1604
|
});
|
|
1603
1605
|
} else
|
|
@@ -1763,7 +1765,7 @@ const dt = { class: "curd-container" }, pt = { class: "curd-search" }, mt = {
|
|
|
1763
1765
|
key: 0,
|
|
1764
1766
|
scope: G
|
|
1765
1767
|
}, void 0, !0) : (d(), P(R, { key: 1 }, [
|
|
1766
|
-
B(re(_(n).formatColumnValue(m, G
|
|
1768
|
+
B(re(_(n).formatColumnValue(m, G?.row[m.columnProperty])), 1)
|
|
1767
1769
|
], 64))
|
|
1768
1770
|
]),
|
|
1769
1771
|
_: 2
|
|
@@ -1846,7 +1848,7 @@ const dt = { class: "curd-container" }, pt = { class: "curd-search" }, mt = {
|
|
|
1846
1848
|
draggable: "",
|
|
1847
1849
|
"append-to-body": !0,
|
|
1848
1850
|
"align-center": ""
|
|
1849
|
-
},
|
|
1851
|
+
}, Te({
|
|
1850
1852
|
default: h(() => [
|
|
1851
1853
|
b(ae, null, {
|
|
1852
1854
|
default: h(() => [
|
|
@@ -1871,7 +1873,7 @@ const dt = { class: "curd-container" }, pt = { class: "curd-search" }, mt = {
|
|
|
1871
1873
|
default: h(() => [
|
|
1872
1874
|
b(ae, null, {
|
|
1873
1875
|
default: h(() => [
|
|
1874
|
-
(d(!0), P(R, null, K(
|
|
1876
|
+
(d(!0), P(R, null, K(M.formColumns, (m) => (d(), C(ee, {
|
|
1875
1877
|
key: m.columnProperty,
|
|
1876
1878
|
span: m.span || 12
|
|
1877
1879
|
}, {
|
|
@@ -1973,7 +1975,7 @@ const dt = { class: "curd-container" }, pt = { class: "curd-search" }, mt = {
|
|
|
1973
1975
|
], 64);
|
|
1974
1976
|
};
|
|
1975
1977
|
}
|
|
1976
|
-
}), St = /* @__PURE__ */ Q(wt, [["__scopeId", "data-v-
|
|
1978
|
+
}), St = /* @__PURE__ */ Q(wt, [["__scopeId", "data-v-da85121d"]]);
|
|
1977
1979
|
export {
|
|
1978
1980
|
St as CurdForm,
|
|
1979
1981
|
St as default
|
package/dist/curd-form.umd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(P,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("element-plus"),require("@gis_victory/gismap")):typeof define=="function"&&define.amd?define(["exports","vue","element-plus","@gis_victory/gismap"],e):(P=typeof globalThis<"u"?globalThis:P||self,e(P.CurdForm={},P.Vue,P.ElementPlus,P.GisMap))})(this,(function(P,e,S,R){"use strict";const H={name:"FormItem"},G=e.defineComponent({...H,props:{modelValue:{type:[String,Number,Array],default:()=>""},item:{type:Object,default:()=>({})},dropdownOptions:{type:Array,default:()=>[]},currentOperationType:{type:String,default:"default"}},emits:["update:modelValue"],setup(a,{emit:o}){const t=a;let r=t.modelValue;const n=t.item.type==="multiple-select"||t.item.type==="checkbox"||t.item.searchFormType==="multiple-select"||t.item.searchFormType==="checkbox";n&&typeof r=="string"&&r&&(r=r.split(","));const l=e.ref(r),y=o,m=computed(()=>{switch(t.currentOperationType){case"default":return!1;case"details":return!0;case"add":return t.item.createFormStatus=="disabled";case"edit":return t.item.updateFormStatus=="disabled"}return!1}),i=computed(()=>{switch(t.currentOperationType){case"default":return!1;case"details":return!0;case"add":return t.item.createFormStatus=="disabled";case"edit":return t.item.updateFormStatus=="disabled"}return!1});return e.watch(l,d=>{let s=d;n&&Array.isArray(d)&&(s=d.join(",")),y("update:modelValue",s)}),e.watch(()=>t.modelValue,d=>{let s=d;n&&typeof d=="string"&&d&&(s=d.split(",")),l.value=s}),(d,s)=>{const c=e.resolveComponent("el-option"),p=e.resolveComponent("el-select"),b=e.resolveComponent("el-date-picker"),k=e.resolveComponent("el-checkbox"),x=e.resolveComponent("el-checkbox-group"),M=e.resolveComponent("el-radio"),C=e.resolveComponent("el-radio-group"),F=e.resolveComponent("el-input");return a.item.searchFormType==="select"||a.item.type==="select"?(e.openBlock(),e.createBlock(p,{key:0,modelValue:l.value,"onUpdate:modelValue":s[0]||(s[0]=f=>l.value=f),placeholder:a.item.placeholder||"请选择",disabled:e.unref(m),readonly:e.unref(i),clearable:""},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.dropdownOptions,f=>(e.openBlock(),e.createBlock(c,{key:f.id,label:f.name,value:f.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","disabled","readonly"])):a.item.searchFormType==="multiple-select"||a.item.type==="multiple-select"?(e.openBlock(),e.createBlock(p,{key:1,modelValue:l.value,"onUpdate:modelValue":s[1]||(s[1]=f=>l.value=f),placeholder:a.item.placeholder||"请选择",multiple:"",disabled:e.unref(m),readonly:e.unref(i),clearable:""},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.dropdownOptions,f=>(e.openBlock(),e.createBlock(c,{key:f.id,label:f.name,value:f.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","disabled","readonly"])):a.item.searchFormType==="date"||a.item.type==="date"?(e.openBlock(),e.createBlock(b,{key:2,modelValue:l.value,"onUpdate:modelValue":s[2]||(s[2]=f=>l.value=f),type:"date","value-format":"YYYY-MM-DD",placeholder:a.item.placeholder||"请选择日期",disabled:e.unref(m),readonly:e.unref(i),clearable:"",style:{width:"100%"}},null,8,["modelValue","placeholder","disabled","readonly"])):a.item.searchFormType==="daterange"||a.item.type==="daterange"?(e.openBlock(),e.createBlock(b,{key:3,modelValue:l.value,"onUpdate:modelValue":s[3]||(s[3]=f=>l.value=f),type:"daterange","value-format":"yyyy-MM-dd",placeholder:a.item.placeholder||"请选择日期范围",disabled:e.unref(m),readonly:e.unref(i),clearable:""},null,8,["modelValue","placeholder","disabled","readonly"])):a.item.searchFormType==="checkbox"||a.item.type==="checkbox"?(e.openBlock(),e.createBlock(x,{key:4,modelValue:l.value,"onUpdate:modelValue":s[4]||(s[4]=f=>l.value=f),disabled:e.unref(m),readonly:e.unref(i)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.dropdownOptions,f=>(e.openBlock(),e.createBlock(k,{key:f.id,label:f.name,value:f.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","disabled","readonly"])):a.item.searchFormType==="radio"||a.item.type==="radio"?(e.openBlock(),e.createBlock(C,{key:5,modelValue:l.value,"onUpdate:modelValue":s[5]||(s[5]=f=>l.value=f),disabled:e.unref(m),readonly:e.unref(i)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.dropdownOptions,f=>(e.openBlock(),e.createBlock(M,{key:f.id,label:f.name,value:f.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","disabled","readonly"])):a.item.searchFormType==="textarea"||a.item.type==="textarea"?(e.openBlock(),e.createBlock(F,{key:6,modelValue:l.value,"onUpdate:modelValue":s[6]||(s[6]=f=>l.value=f),type:"textarea",placeholder:a.item.placeholder||"请输入",disabled:e.unref(m),readonly:e.unref(i),clearable:""},null,8,["modelValue","placeholder","disabled","readonly"])):a.item.searchFormType==="input"||a.item.type==="input"?(e.openBlock(),e.createBlock(F,{key:7,modelValue:l.value,"onUpdate:modelValue":s[7]||(s[7]=f=>l.value=f),placeholder:a.item.placeholder||"请输入",disabled:e.unref(m),readonly:e.unref(i),clearable:""},null,8,["modelValue","placeholder","disabled","readonly"])):(e.openBlock(),e.createBlock(F,{key:8,modelValue:l.value,"onUpdate:modelValue":s[8]||(s[8]=f=>l.value=f),placeholder:a.item.placeholder||"请输入",disabled:e.unref(m),readonly:e.unref(i),clearable:""},null,8,["modelValue","placeholder","disabled","readonly"]))}}}),Z={name:"FormItemDetail"},Q=e.defineComponent({...Z,props:{modelValue:{type:[String,Number,Array,Object],default:()=>""},item:{type:Object,default:()=>({})},dropdownOptions:{type:Array,default:()=>[]}},setup(a){const o=a;let t=o.modelValue;const r=o.item.type==="multiple-select"||o.item.type==="checkbox"||o.item.searchFormType==="multiple-select"||o.item.searchFormType==="checkbox";typeof t=="object"&&t!==null&&!Array.isArray(t)&&(t=Object.values(t).join(",")),r&&typeof t=="string"&&t&&(t=t.split(","));const n=e.ref(t);return e.onMounted(()=>{switch(o.item.type){case"select":case"radio":const l=o.dropdownOptions.find(i=>i.id===o.modelValue);n.value=l?.name||"";break;case"checkbox":case"multiple-select":const m=(Array.isArray(n.value)?n.value:n.value?.split(",")||[]).map(i=>o.dropdownOptions.find(s=>s.id===i)?.name||i).filter(Boolean);n.value=m.join(",")||"";break;case"date":n.value=o.modelValue?S.dayjs(o.modelValue).format(o.item.formatter||"YYYY-MM-DD"):"";break;case"datetime":n.value=o.modelValue?S.dayjs(o.modelValue).format(o.item.formatter||"YYYY-MM-DD HH:mm:ss"):"";break;default:n.value=o.modelValue;break}}),(l,y)=>(e.openBlock(),e.createElementBlock("span",null,e.toDisplayString(n.value),1))}});var z={exports:{}},Y;function X(){if(Y)return z.exports;Y=1,z.exports=t,z.exports.parse=t,z.exports.stringify=r;var a=/[-+]?([0-9]*\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/,o=new RegExp("^"+a.source+"(\\s"+a.source+"){1,}");function t(n){var l=n.split(";"),y=l.pop(),m=(l.shift()||"").split("=").pop(),i=0;function d(g){var V=y.substring(i).match(g);return V?(i+=V[0].length,V[0]):null}function s(g){return g&&m.match(/\d+/)&&(g.crs={type:"name",properties:{name:"urn:ogc:def:crs:EPSG::"+m}}),g}function c(){d(/^\s*/)}function p(){c();for(var g=0,V=[],N=[V],E=V,T;T=d(/^(\()/)||d(/^(\))/)||d(/^(,)/)||d(o);){if(T==="(")N.push(E),E=[],N[N.length-1].push(E),g++;else if(T===")"){if(E.length===0||(E=N.pop(),!E))return null;if(g--,g===0)break}else if(T===",")E=[],N[N.length-1].push(E);else if(!T.split(/\s/g).some(isNaN))Array.prototype.push.apply(E,T.split(/\s/g).map(parseFloat));else return null;c()}return g!==0?null:V}function b(){for(var g=[],V,N;N=d(o)||d(/^(,)/);)N===","?(g.push(V),V=[]):N.split(/\s/g).some(isNaN)||(V||(V=[]),Array.prototype.push.apply(V,N.split(/\s/g).map(parseFloat))),c();if(V)g.push(V);else return null;return g.length?g:null}function k(){if(!d(/^(point(\sz)?)/i)||(c(),!d(/^(\()/)))return null;var g=b();return!g||(c(),!d(/^(\))/))?null:{type:"Point",coordinates:g[0]}}function x(){if(!d(/^(multipoint)/i))return null;c();var g=y.substring(y.indexOf("(")+1,y.length-1).replace(/\(/g,"").replace(/\)/g,"");y="MULTIPOINT ("+g+")";var V=p();return V?(c(),{type:"MultiPoint",coordinates:V}):null}function M(){if(!d(/^(multilinestring)/i))return null;c();var g=p();return g?(c(),{type:"MultiLineString",coordinates:g}):null}function C(){if(!d(/^(linestring(\sz)?)/i)||(c(),!d(/^(\()/)))return null;var g=b();return!g||!d(/^(\))/)?null:{type:"LineString",coordinates:g}}function F(){if(!d(/^(polygon(\sz)?)/i))return null;c();var g=p();return g?{type:"Polygon",coordinates:g}:null}function f(){if(!d(/^(multipolygon)/i))return null;c();var g=p();return g?{type:"MultiPolygon",coordinates:g}:null}function B(){var g=[],V;if(!d(/^(geometrycollection)/i)||(c(),!d(/^(\()/)))return null;for(;V=L();)g.push(V),c(),d(/^(,)/),c();return d(/^(\))/)?{type:"GeometryCollection",geometries:g}:null}function L(){return k()||C()||F()||x()||M()||f()||B()}return s(L())}function r(n){n.type==="Feature"&&(n=n.geometry);function l(s){return s.join(" ")}function y(s){return s.map(l).join(", ")}function m(s){return s.map(y).map(d).join(", ")}function i(s){return s.map(m).map(d).join(", ")}function d(s){return"("+s+")"}switch(n.type){case"Point":return"POINT ("+l(n.coordinates)+")";case"LineString":return"LINESTRING ("+y(n.coordinates)+")";case"Polygon":return"POLYGON ("+m(n.coordinates)+")";case"MultiPoint":return"MULTIPOINT ("+y(n.coordinates)+")";case"MultiPolygon":return"MULTIPOLYGON ("+i(n.coordinates)+")";case"MultiLineString":return"MULTILINESTRING ("+m(n.coordinates)+")";case"GeometryCollection":return"GEOMETRYCOLLECTION ("+n.geometries.map(r).join(", ")+")";default:throw new Error("stringify requires a valid GeoJSON Feature or geometry object as input")}}return z.exports}var W=X();function v(a,o,t={}){const r={type:"Feature"};return(t.id===0||t.id)&&(r.id=t.id),t.bbox&&(r.bbox=t.bbox),r.properties=o||{},r.geometry=a,r}function ee(a,o,t={}){if(!a)throw new Error("coordinates is required");if(!Array.isArray(a))throw new Error("coordinates must be an Array");if(a.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!j(a[0])||!j(a[1]))throw new Error("coordinates must contain numbers");return v({type:"Point",coordinates:a},o,t)}function j(a){return!isNaN(a)&&a!==null&&!Array.isArray(a)}function J(a,o,t){if(a!==null)for(var r,n,l,y,m,i,d,s=0,c=0,p,b=a.type,k=b==="FeatureCollection",x=b==="Feature",M=k?a.features.length:1,C=0;C<M;C++){d=k?a.features[C].geometry:x?a.geometry:a,p=d?d.type==="GeometryCollection":!1,m=p?d.geometries.length:1;for(var F=0;F<m;F++){var f=0,B=0;if(y=p?d.geometries[F]:d,y!==null){i=y.coordinates;var L=y.type;switch(s=L==="Polygon"||L==="MultiPolygon"?1:0,L){case null:break;case"Point":if(o(i,c,C,f,B)===!1)return!1;c++,f++;break;case"LineString":case"MultiPoint":for(r=0;r<i.length;r++){if(o(i[r],c,C,f,B)===!1)return!1;c++,L==="MultiPoint"&&f++}L==="LineString"&&f++;break;case"Polygon":case"MultiLineString":for(r=0;r<i.length;r++){for(n=0;n<i[r].length-s;n++){if(o(i[r][n],c,C,f,B)===!1)return!1;c++}L==="MultiLineString"&&f++,L==="Polygon"&&B++}L==="Polygon"&&f++;break;case"MultiPolygon":for(r=0;r<i.length;r++){for(B=0,n=0;n<i[r].length;n++){for(l=0;l<i[r][n].length-s;l++){if(o(i[r][n][l],c,C,f,B)===!1)return!1;c++}B++}f++}break;case"GeometryCollection":for(r=0;r<y.geometries.length;r++)if(J(y.geometries[r],o)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function te(a,o={}){let t=0,r=0,n=0;return J(a,function(l){t+=l[0],r+=l[1],n++}),ee([t/n,r/n],o.properties)}class oe{map;sourceId="curd-map-source";layerId="curd-map-layer";featureCollection={type:"FeatureCollection",features:[]};constructor(o){this.map=o,this.setSource()}setSource(){this.map.addSource(this.sourceId,{type:"geojson",data:this.featureCollection})}setLayer(o){if(!this.map.getLayer(this.layerId))switch(o.toLowerCase()){case"polygon":case"multipolygon":this.map.addLayer({id:this.layerId,type:"fill",source:this.sourceId,paint:{"fill-color":"#ff0000","fill-opacity":.5}});break;case"linestring":case"multilinestring":this.map.addLayer({id:this.layerId,type:"line",source:this.sourceId,paint:{"line-color":"#ff0000","line-opacity":.8,"line-width":3}});break;case"point":this.map.addLayer({id:this.layerId,type:"circle",source:this.sourceId,paint:{"circle-color":"#ff0000","circle-opacity":.8,"circle-radius":5,"circle-stroke-color":"#fff","circle-stroke-width":2,"circle-stroke-opacity":1}});break}}setData(o){if(!o)return;const t={type:"Feature",geometry:o},r=this.map.getSource(this.sourceId);r&&(this.featureCollection.features=[t],r?.setData(this.featureCollection))}flyTo(){if(this.featureCollection.features.length!==0)try{let o=this.featureCollection.features[0];if(!o)return;let t=null;if(o.geometry.type.toLowerCase()==="point"?t=o.geometry.coordinates:t=te(this.featureCollection)?.geometry?.coordinates||null,!t)return;this.map.flyTo({center:t,zoom:16})}catch(o){console.error("计算外包边框中心点失败:",o)}}formatWktToGeoJson(o){if(!o)return null;try{return W.parse(o)}catch(t){return console.error("WKT 转换为 GeoJSON 失败:",t),null}}formatGeoJsonToWkt(o){if(!o)return"";try{return W.stringify(o)}catch(t){return console.error("GeoJSON 转换为 WKT 失败:",t),""}}clear(){this.map.removeLayer(this.layerId),this.map.removeSource(this.sourceId)}}class re{map;drawSourceId="curd-map-draw-source";drawLayerId="curd-map-draw-layer";drawLineLayerId="curd-map-draw-line-layer";drawPointLayerId="curd-map-draw-point-layer";drawFeatureCollection={type:"FeatureCollection",features:[]};drawType="none";drawCoordinates=[];drawCallback=null;constructor(o){this.map=o,this.initDrawSource()}initDrawSource(){this.map.getSource(this.drawSourceId)||this.map.addSource(this.drawSourceId,{type:"geojson",data:this.drawFeatureCollection})}startDraw(o,t){this.clearDraw(),this.drawType=o,this.drawCallback=t,this.drawCoordinates=[],this.setupDrawLayers(),this.setupDrawEvents(),this.map.getCanvas().style.cursor="crosshair"}stopDraw(){this.drawType="none",this.drawCallback=null,this.clearDraw(),this.removeDrawEvents(),this.map.getCanvas().style.cursor=""}clearDraw(){this.drawCoordinates=[],this.drawFeatureCollection.features=[];const o=this.map.getSource(this.drawSourceId);o&&o.setData(this.drawFeatureCollection),[this.drawLayerId,this.drawLineLayerId,this.drawPointLayerId,`${this.drawLayerId}-outline`].forEach(t=>{this.map.getLayer(t)&&this.map.removeLayer(t)})}setupDrawLayers(){[this.drawLayerId,this.drawLineLayerId,this.drawPointLayerId,`${this.drawLayerId}-outline`].forEach(t=>{this.map.getLayer(t)&&this.map.removeLayer(t)});const o="#ff0000";this.drawType==="point"&&this.map.addLayer({id:this.drawLayerId,type:"circle",source:this.drawSourceId,paint:{"circle-color":o,"circle-opacity":.8,"circle-radius":6,"circle-stroke-color":"#fff","circle-stroke-width":2,"circle-stroke-opacity":1}}),(this.drawType==="line"||this.drawType==="polygon")&&(this.map.addLayer({id:this.drawLineLayerId,type:"line",source:this.drawSourceId,paint:{"line-color":o,"line-opacity":.8,"line-width":3}}),this.map.addLayer({id:this.drawPointLayerId,type:"circle",source:this.drawSourceId,paint:{"circle-color":o,"circle-opacity":.8,"circle-radius":4,"circle-stroke-color":"#fff","circle-stroke-width":2,"circle-stroke-opacity":1}})),this.drawType==="polygon"&&(this.map.addLayer({id:this.drawLayerId,type:"fill",source:this.drawSourceId,paint:{"fill-color":o,"fill-opacity":.3}}),this.map.addLayer({id:`${this.drawLayerId}-outline`,type:"line",source:this.drawSourceId,paint:{"line-color":o,"line-opacity":.8,"line-width":2}}))}setupDrawEvents(){this.map.on("click",this.handleMapClick.bind(this)),this.map.on("mousemove",this.handleMapMouseMove.bind(this)),this.map.on("dblclick",this.handleMapDoubleClick.bind(this)),this.map.doubleClickZoom.disable()}removeDrawEvents(){this.map.off("click",this.handleMapClick.bind(this)),this.map.off("mousemove",this.handleMapMouseMove.bind(this)),this.map.off("dblclick",this.handleMapDoubleClick.bind(this)),this.map.doubleClickZoom.enable()}handleMapClick(o){const t=o.lngLat.toArray();this.drawCoordinates.push(t),this.updateDrawFeature(),this.drawType==="point"&&this.finishDraw()}handleMapMouseMove(o){if(this.drawType==="none"||this.drawCoordinates.length===0)return;const t=o.lngLat.toArray(),r=[...this.drawCoordinates,t];this.updateDrawFeature(r)}handleMapDoubleClick(){(this.drawType==="line"||this.drawType==="polygon")&&this.finishDraw()}updateDrawFeature(o){const t=o||this.drawCoordinates;if(t.length===0)return;let r=null;switch(this.drawType){case"point":r={type:"Point",coordinates:t[0]};break;case"line":r={type:"LineString",coordinates:t};break;case"polygon":r={type:"Polygon",coordinates:[t]};break}if(r){this.drawFeatureCollection.features=[{type:"Feature",geometry:r}];const n=this.map.getSource(this.drawSourceId);n&&n.setData(this.drawFeatureCollection)}}finishDraw(){if(this.drawCoordinates.length===0)return;let o=null;switch(this.drawType){case"point":o={type:"Point",coordinates:this.drawCoordinates[0]};break;case"line":if(this.drawCoordinates.length<2){this.clearDraw();return}o={type:"LineString",coordinates:this.drawCoordinates};break;case"polygon":if(this.drawCoordinates.length<3){this.clearDraw();return}o={type:"Polygon",coordinates:[[...this.drawCoordinates,this.drawCoordinates[0]]]};break}if(o&&this.drawCallback){const t=W.stringify(o);this.drawCallback(this.drawType,o,t),this.map.getCanvas().style.cursor="",this.drawType="none",this.map.off("click",this.handleMapClick.bind(this)),this.map.off("mousemove",this.handleMapMouseMove.bind(this)),this.map.off("dblclick",this.handleMapDoubleClick.bind(this)),setTimeout(()=>{this.map.doubleClickZoom.enable()},0)}}destroy(){this.stopDraw(),this.map.getSource(this.drawSourceId)&&this.map.removeSource(this.drawSourceId)}}var ae=e.defineComponent({name:"CircleClose",__name:"circle-close",setup(a){return(o,t)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z"}),e.createElementVNode("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"})]))}}),le=ae,ne=e.defineComponent({name:"EditPen",__name:"edit-pen",setup(a){return(o,t)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"m199.04 672.64 193.984 112 224-387.968-193.92-112-224 388.032zm-23.872 60.16 32.896 148.288 144.896-45.696zM455.04 229.248l193.92 112 56.704-98.112-193.984-112zM104.32 708.8l384-665.024 304.768 175.936L409.152 884.8h.064l-248.448 78.336zm384 254.272v-64h448v64z"})]))}}),ie=ne,se=e.defineComponent({name:"MoreFilled",__name:"more-filled",setup(a){return(o,t)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M176 416a112 112 0 1 1 0 224 112 112 0 0 1 0-224m336 0a112 112 0 1 1 0 224 112 112 0 0 1 0-224m336 0a112 112 0 1 1 0 224 112 112 0 0 1 0-224"})]))}}),ce=se;const de={class:"map-draw-container"},pe={name:"FormItemMapDraw"},me=e.defineComponent({...pe,props:{geomType:{type:String,default:"point"}},emits:["draw-start","draw-end","draw-cancel"],setup(a,{emit:o}){const t=o,r=e.ref("none");e.ref(!1),e.ref(null);const n=le,l=ie,y=ce,m=i=>{r.value=i,i==="none"?t("draw-cancel"):t("draw-start",i)};return(i,d)=>{const s=e.resolveComponent("el-button");return e.openBlock(),e.createElementBlock("div",de,[a.geomType==="point"?(e.openBlock(),e.createBlock(s,{key:0,type:"primary",size:"small",circle:"",onClick:d[0]||(d[0]=c=>m("point")),icon:e.unref(n),class:e.normalizeClass({active:r.value==="point"})},null,8,["icon","class"])):e.createCommentVNode("",!0),a.geomType==="linestring"?(e.openBlock(),e.createBlock(s,{key:1,type:"primary",size:"small",circle:"",onClick:d[1]||(d[1]=c=>m("line")),icon:e.unref(l),class:e.normalizeClass({active:r.value==="line"})},null,8,["icon","class"])):e.createCommentVNode("",!0),a.geomType==="polygon"?(e.openBlock(),e.createBlock(s,{key:2,type:"primary",size:"small",circle:"",onClick:d[2]||(d[2]=c=>m("polygon")),icon:e.unref(y),class:e.normalizeClass({active:r.value==="polygon"})},null,8,["icon","class"])):e.createCommentVNode("",!0)])}}}),I=(a,o)=>{const t=a.__vccOpts||a;for(const[r,n]of o)t[r]=n;return t},ue=I(me,[["__scopeId","data-v-fa667d3f"]]),fe={class:"curd-map"},he={name:"FormItemMap"},ye=e.defineComponent({...he,props:{modelValue:{type:String||void 0,default:()=>""},glyphs:{type:String||void 0,default:()=>""},mapViewData:{type:Object||void 0,default:()=>({})},currentOperationType:{type:String,default:()=>"details"}},emits:["update:modelValue"],setup(a,{emit:o}){const t=a,r=e.ref(t.modelValue);let n,l;const y=e.reactive({mapViewData:{zoom:t.mapViewData.zoom||13,center:t.mapViewData.center||[120.656774,29.8],maxPitch:t.mapViewData.maxPitch||0,dragRotate:t.mapViewData.dragRotate||!1,style:{glyphs:t.glyphs},...t.mapViewData},switchData:{layers:[{name:"tdt-vec",label:"地图",iconName:"vector",checked:!0},{name:"tdt-img",label:"影像",iconName:"satellite",checked:!1}],extensions:[{name:"tdt-cia",label:"注记",checked:!0}]}}),m=o;e.watch(r,c=>{m("update:modelValue",c)}),e.watch(()=>t.modelValue,c=>{r.value=c});const i=c=>{n=new oe(c),l=new re(c);const p=n.formatWktToGeoJson(r.value);p&&(n.setLayer(p.type),n.setData(p),n.flyTo())},d=c=>{l&&l.startDraw(c,(p,b,k)=>{r.value=k})},s=()=>{l&&l.stopDraw()};return e.onUnmounted(()=>{l&&(l.destroy(),l=void 0)}),(c,p)=>(e.openBlock(),e.createElementBlock("div",fe,[e.createVNode(e.unref(R.GisMapView),{options:y.mapViewData,onLoad:i},{"top-left":e.withCtx(()=>[a.currentOperationType!=="details"?(e.openBlock(),e.createBlock(ue,{key:0,onDrawStart:d,onDrawCancel:s})):e.createCommentVNode("",!0)]),"bottom-right":e.withCtx(()=>[e.createVNode(e.unref(R.GisMapSwitch),{data:y.switchData},null,8,["data"])]),default:e.withCtx(()=>[e.renderSlot(c.$slots,"default",{},void 0,!0)]),_:3},8,["options"])]))}}),ge=I(ye,[["__scopeId","data-v-e1f42b56"]]),we={class:"field-select-container"},Ce={name:"ExportButton"},ke=e.defineComponent({...Ce,props:{columns:{type:Array,default:()=>[]},data:{type:Array,default:()=>[]}},setup(a){const o=a,t=e.ref(!1),r=e.reactive({filename:"",dataType:"current",selectedFields:[]});e.onMounted(()=>{r.selectedFields=o.columns.map(y=>y.columnProperty)});const n=()=>{let y=[...o.data];if(y.length===0){S.ElMessage.warning("没有数据可导出");return}const m=y.map(b=>{const k={};return r.selectedFields.forEach(x=>{k[x]=b[x]}),k}),i=r.filename||`导出数据_${new Date().getTime()}`,d=l(m),s=new Blob([d],{type:"text/csv;charset=utf-8;"}),c=document.createElement("a"),p=URL.createObjectURL(s);c.setAttribute("href",p),c.setAttribute("download",`${i}.csv`),c.style.visibility="hidden",document.body.appendChild(c),c.click(),document.body.removeChild(c),t.value=!1,S.ElMessage.success("导出成功")},l=y=>{if(y.length===0)return"";const m=Object.keys(y[0])||[],i=[];i.push(m.join(","));for(const d of y){const s=m.map(c=>{const p=d[c];return typeof p=="string"?`"${p.replace(/"/g,'""')}"`:p});i.push(s.join(","))}return i.join(`
|
|
2
|
-
`)};return(y,m)=>{const i=e.resolveComponent("el-icon-download"),d=e.resolveComponent("el-icon"),s=e.resolveComponent("el-button"),c=e.resolveComponent("el-input"),p=e.resolveComponent("el-form-item"),b=e.resolveComponent("el-checkbox"),k=e.resolveComponent("el-checkbox-group"),x=e.resolveComponent("el-form"),M=e.resolveComponent("el-dialog");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(s,{type:"default",round:"",onClick:m[0]||(m[0]=C=>t.value=!0)},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.createVNode(i)]),_:1})]),_:1}),e.createVNode(M,{modelValue:t.value,"onUpdate:modelValue":m[4]||(m[4]=C=>t.value=C),title:"导出数据",width:"400px","close-on-click-modal":!1},{footer:e.withCtx(()=>[e.createVNode(s,{onClick:m[3]||(m[3]=C=>t.value=!1)},{default:e.withCtx(()=>[...m[5]||(m[5]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(s,{type:"primary",onClick:n},{default:e.withCtx(()=>[...m[6]||(m[6]=[e.createTextVNode("导出",-1)])]),_:1})]),default:e.withCtx(()=>[e.createVNode(x,{model:r,"label-width":"100px"},{default:e.withCtx(()=>[e.createVNode(p,{label:"文件名称"},{default:e.withCtx(()=>[e.createVNode(c,{modelValue:r.filename,"onUpdate:modelValue":m[1]||(m[1]=C=>r.filename=C),placeholder:"请输入文件名称"},null,8,["modelValue"])]),_:1}),e.createVNode(p,{label:"选择字段"},{default:e.withCtx(()=>[e.createElementVNode("div",we,[e.createVNode(k,{modelValue:r.selectedFields,"onUpdate:modelValue":m[2]||(m[2]=C=>r.selectedFields=C)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.columns,C=>(e.openBlock(),e.createElementBlock("div",{key:C.columnProperty,class:"column-item"},[e.createVNode(b,{value:C.columnProperty},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(C.columnLabel),1)]),_:2},1032,["value"])]))),128))]),_:1},8,["modelValue"])])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),be=I(ke,[["__scopeId","data-v-a28ea63e"]]),Ve={class:"column-manager"},Be={name:"ColumnManager"},Se=e.defineComponent({...Be,props:{tableColumns:{type:Array,default:()=>({columns:[]})},visibleColumns:{type:Array,default:()=>[]}},emits:["update:visibleColumns","update:columns"],setup(a,{emit:o}){const t=a,r=o,n=e.ref(!1),l=e.ref([...t.visibleColumns]),y=(m,i)=>{i?l.value.push(m):l.value=l.value.filter(d=>d!==m),r("update:visibleColumns",l.value)};return e.watch(()=>t.visibleColumns,m=>{l.value=[...m]},{deep:!0}),(m,i)=>{const d=e.resolveComponent("el-icon-menu"),s=e.resolveComponent("el-icon"),c=e.resolveComponent("el-button"),p=e.resolveComponent("el-checkbox"),b=e.resolveComponent("el-popover");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(b,{visible:n.value,"onUpdate:visible":i[0]||(i[0]=k=>n.value=k),placement:"bottom-end",width:220,trigger:"click","popper-class":"column-manager-popover"},{reference:e.withCtx(()=>[e.createVNode(c,{type:"default",round:""},{default:e.withCtx(()=>[e.createVNode(s,null,{default:e.withCtx(()=>[e.createVNode(d)]),_:1})]),_:1})]),default:e.withCtx(()=>[e.createElementVNode("div",Ve,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.tableColumns,k=>(e.openBlock(),e.createElementBlock("div",{class:"column-item",key:k.columnProperty},[e.createVNode(p,{modelValue:l.value.includes(k.columnProperty),onChange:x=>y(k.columnProperty,x)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(k.columnLabel||k.columnProperty),1)]),_:2},1032,["modelValue","onChange"])]))),128))])]),_:1},8,["visible"])])}}}),xe=I(Se,[["__scopeId","data-v-ef5ba627"]]);class Fe{serverConfig;curdConfig={};searchConfig={};tableConfig={};editorConfig={};searchFormMap=new Map;cloneSearchForm="{}";cloneFormData="{}";dictionaryMap=new Map;constructor({serverConfig:o}){this.serverConfig=o}setConfig({curdConfig:o,searchConfig:t,tableConfig:r,editorConfig:n}){this.curdConfig=o||this.curdConfig,this.searchConfig=t||this.searchConfig,this.tableConfig=r||this.tableConfig,this.editorConfig=n||this.editorConfig}async loadDictionary(){if(!this.tableConfig?.columns)return this.dictionaryMap;const o=this.tableConfig.columns.filter(t=>["code","table"].includes(t.dictType||"")&&t.dictService).map(t=>{let r=t.fieldType||"String";return r==="integer"&&(r="Integer"),(t.dictType==="code"?this.serverConfig?.dict({dictCode:t.dictService,itemIdType:r}):this.serverConfig?.dictServer(t.dictService,{})).then(l=>{l&&t.dictService&&this.dictionaryMap.set(t.dictService,l||[])}).catch(l=>{console.error(`加载字典 ${t.dictService} 失败:`,l)})});return await Promise.all(o),this.dictionaryMap}getDictOptionsByCode(o){return o?this.dictionaryMap.get(o)||[]:[]}getDictOptionsByColumnProperty(o){if(!o)return[];const t=this.tableConfig?.columns?.find(r=>r.columnProperty===o)?.dictService;return this.getDictOptionsByCode(t||void 0)}formatColumnValue(o,t){if(!t||t==="")return t;if(o.dictType&&o.dictService){const r=this.dictionaryMap.get(o.dictService)||[];if(!r||r.length===0)return t;const n=r.find(l=>l.id===t);return n?n.name:t}if(!o.formatter||o.formatter==="")return t;switch(o.fieldType){case"date":return t?S.dayjs(t).format(o.formatter||"YYYY-MM-DD"):"";case"datetime":return t?S.dayjs(t).format(o.formatter||"YYYY-MM-DD HH:mm:ss"):"";default:return t}}formatFormRules(){const o={};return(this.editorConfig?.columns||[]).forEach(t=>{o[t.columnProperty]=[],t.isRequired&&o[t.columnProperty].push({required:!0,message:"请输入"+t.columnLabel,trigger:"blur"})}),o}formatSearchConfigForm(){this.searchConfig.columns=this.tableConfig?.columns?.filter(t=>t.searchable!="no")||[],this.searchConfig?.columns.forEach(t=>{this.searchFormMap.set(t.columnProperty,t)});const o={};return this.searchConfig?.columns.forEach(t=>{o[t.columnProperty]=t.searchDefaultValue}),this.cloneSearchForm=JSON.stringify(o),o}formatFormConfigData(){const o={};return(this.editorConfig?.columns||[]).filter(r=>r.columnProperty===this.curdConfig?.priKey?!0:r.type!=="hidden").forEach(r=>{o[r.columnProperty]=r.defaultValue}),this.cloneFormData=JSON.stringify(o),o}formatSearchForm(o){const t={};return this.searchFormMap.forEach((r,n)=>{const l=o[n];if(l!=null&&l!==""){let y="";switch(r.searchable){case"=":y=`= '${l}'`;break;case"like":y=`like '%${l}%'`;break;case"in":y=`in (${l})`;break}t[n]=y}}),t}formatFormData(o){if(!o||Object.keys(o).length===0)return{};let t={};return(this.tableConfig?.columns||[]).forEach(r=>{r?.fieldType==="integer"?t[r.columnProperty]=Number(o[r.columnProperty]):t[r.columnProperty]=o[r.columnProperty]}),o.wktstr&&(t.wktstr=o.wktstr),t}initVisibleColumns(){return(this.tableConfig?.columns||[]).filter(o=>o.showMethod!="hidden").map(o=>o.columnProperty)}getFormItems(o=""){let t=[];switch(o){case"details":t=(this.editorConfig?.columns||[]).filter(r=>r.type!=="hidden"&&r.updateFormStatus!=="hidden"&&r.type!=="shape");break;case"add":t=(this.editorConfig?.columns||[]).filter(r=>r.type!=="hidden"&&r.createFormStatus!=="hidden"&&r.type!=="shape");break;case"update":t=(this.editorConfig?.columns||[]).filter(r=>r.type!=="hidden"&&r.updateFormStatus!=="hidden"&&r.type!=="shape");break}return t}hasGeometryField(){return(this.editorConfig?.columns||[]).find(t=>t.type==="shape")||void 0}}const Ne={class:"curd-container"},_e={class:"curd-search"},Me={key:0,class:"table-actions"},De={class:"table-actions-left"},Te={class:"table-actions-right"},Le={class:"curd-table"},Ee={key:1,class:"curd-pagination"},Oe={name:"CurdForm"},Pe=e.defineComponent({...Oe,props:{size:{type:String,default:"default"},title:{type:String,default:"信息管理"},permissions:{type:Object,default:()=>({add:!1,edit:!1,delete:!1,deleteBatch:!1,export:!1})},serverConfig:{type:Object,default:()=>({init:Function,list:Function,view:Function,add:Function,delete:Function,deleteBatch:Function,update:Function,dict:Function,dictServer:Function})},mapViewData:{type:Object,default:()=>({})}},emits:["loadDataSuccess"],setup(a,{expose:o,emit:t}){const r=a,n=e.ref(!1),l=e.ref(null),y=t,m=e.ref(),i=new Fe({serverConfig:r.serverConfig}),d=e.ref(""),s=e.ref("details"),c=e.reactive({priKey:"id",priKeyType:"string",sortField:"id",sortOrder:0,geomType:"point",webFunction:[],dataExt:"{}"}),p=e.reactive({showIndex:!0,indexWidth:50,showCheckbox:!0,showOperation:!0,operationWidth:120,operationLocation:"right",operationButtons:[],visibleOperationButtons:[],operationAlign:"center",showPagination:!0,defaultPageSize:10,pageUISize:"default",showExpand:!1,columns:[]}),b=e.reactive({total:0,pageSize:p.defaultPageSize,currentPage:1}),k=e.reactive({title:"弹框表单",formDialogWidth:"800px",labelWidth:"120px"}),x=e.reactive({columns:[],formColumns:[]}),M=e.reactive({searchLabelWidth:"80",searchFormWidth:"290",columns:[]}),C=e.ref({}),F=e.ref(!1),f=e.ref([]),B=e.reactive({data:{}}),L=e.ref({}),g=e.ref(!1),V=e.ref(!1),N=e.ref(),E=e.ref([]),T=async()=>{if(r.serverConfig?.list)try{n.value=!0;const w=await r.serverConfig?.list({whereClause:i.formatSearchForm(C.value),orderParam:[{fieldName:c.sortField,asc:c.sortOrder===0}],pageParam:{pageNum:b.currentPage,pageSize:b.pageSize}});if(w){const h=w.data;f.value=h.dataList||[],b.total=h.totalCount,y("loadDataSuccess",f.value)}}catch{}finally{n.value=!1}},ze=()=>{C.value=JSON.parse(i.cloneSearchForm),T()},Ie=async()=>{r.serverConfig?.add&&(s.value="add",x.formColumns=i.getFormItems("add"),k.title="新增信息",F.value=!0,B.data=JSON.parse(i.cloneFormData))},$e=async()=>{if(r.serverConfig?.deleteBatch&&l?.value){const w=l.value.getSelectionRows();if(w.length===0){S.ElMessage.warning("请选择要删除的项");return}const h=w.map(_=>_[c.priKey||"id"]);h.length>0&&S.ElMessageBox.confirm("确定删除选中项吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(async()=>{await r.serverConfig?.deleteBatch?.(h.join(","))?S.ElMessage.success("删除成功"):S.ElMessage.error("删除失败"),T()})}},Ae=w=>{b.pageSize=Number(w),T()},We=w=>{b.currentPage=w,T()},Ue=async w=>{if(r.serverConfig?.view){s.value="details",x.formColumns=i.getFormItems("details"),k.title="查看详情";try{const h=w[c.priKey||"id"];if(!h){S.ElMessage.error("查看失败,未获取到主键值");return}const _=await r.serverConfig?.view?.({key:h});_.success&&_.data?(B.data={..._.data},F.value=!0):S.ElMessage.error("查询失败")}catch{S.ElMessage.error("查询失败")}}},Re=async w=>{r.serverConfig?.update&&(s.value="update",x.formColumns=i.getFormItems("update"),k.title="编辑信息",F.value=!0,B.data={...w})},Ge=w=>{r.serverConfig?.delete&&S.ElMessageBox.confirm("确定删除选中项吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(async()=>{const h=w[c.priKey||"id"];if(!h){S.ElMessage.error("删除失败,未获取到主键值");return}await r.serverConfig?.delete?.(h)?(S.ElMessage.success("删除成功"),T()):S.ElMessage.error("删除失败")})},Ye=()=>{g.value=!0,m.value?.validate(async(w,h)=>{if(w){let _=s.value==="add"?r.serverConfig?.add:r.serverConfig?.update;if(_)try{const D=await _({params:{...i.formatFormData(B.data)}});D.success?(S.ElMessage.success(s.value==="add"?"新增成功":"编辑成功"),F.value=!1,T()):S.ElMessage.error("保存失败"+D.msg)}catch(D){S.ElMessage.error("保存失败"+D.message)}finally{g.value=!1}}else g.value=!1})};e.onMounted(async()=>{if(r.serverConfig?.init){const w=await r.serverConfig.init();if(w.success&&w.data){const h=w.data||{},_=h.dataExt?JSON.parse(h.dataExt):{};Object.assign(c,h||{}),Object.assign(p,_?.tableConfig||{}),Object.assign(k,_?.dialogConfig||{}),Object.assign(x?.columns||[],_?.editorConfig||{}),b.pageSize=p.defaultPageSize||b.pageSize,p.visibleOperationButtons=(p.operationButtons||[]).map(D=>D.type),console.log("curdConfig",c),console.log("tableConfig",p),console.log("dialogConfig",k),console.log("editorConfig",x),M.searchFormWidth=p.searchFormWidth&&p.searchFormWidth!==""?p.searchFormWidth:M.searchFormWidth,M.searchLabelWidth=p.searchLabelWidth&&p.searchLabelWidth!==""?p.searchLabelWidth:M.searchLabelWidth,i.setConfig({curdConfig:c,searchConfig:M,tableConfig:p,editorConfig:x}),E.value=i.initVisibleColumns(),C.value=i.formatSearchConfigForm(),B.data=i.formatFormConfigData(),L.value=i.formatFormRules(),N.value=i.hasGeometryField(),await i.loadDictionary(),T(),e.nextTick(()=>{d.value="100%"})}else S.ElMessage.error("未查询到有效配置")}else S.ElMessage.error("请配置init方法")}),e.watch(F,w=>{w?e.nextTick(()=>{V.value=!0}):V.value=!1});const je=w=>{f.value=w},Je=w=>{p.columns=w};return o({setTableData:je,getTableData:()=>f.value}),(w,h)=>{const _=e.resolveComponent("el-form-item"),D=e.resolveComponent("el-button"),q=e.resolveComponent("el-form"),$=e.resolveComponent("el-table-column"),Ke=e.resolveComponent("el-table"),qe=e.resolveComponent("el-pagination"),A=e.resolveComponent("el-col"),U=e.resolveComponent("el-row"),He=e.resolveComponent("el-dialog");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",Ne,[e.createElementVNode("div",_e,[e.createVNode(q,{inline:!0,class:"form-inline","label-width":M.searchLabelWidth},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(M.columns,u=>(e.openBlock(),e.createBlock(_,{key:u.columnProperty,label:u.searchFormLabel||u.columnLabel,style:e.normalizeStyle(`width: ${M.searchFormWidth}px;`)},{default:e.withCtx(()=>[u.showMethod==="slot"?e.renderSlot(w.$slots,"search-"+u.columnProperty,{key:0,scope:{...w.scope,searchForm:C.value,data:C.value[u.columnProperty]}},void 0,!0):(e.openBlock(),e.createBlock(G,{key:1,modelValue:C.value[u.columnProperty],"onUpdate:modelValue":O=>C.value[u.columnProperty]=O,item:u,dropdownOptions:e.unref(i).getDictOptionsByCode(u.dictService)},null,8,["modelValue","onUpdate:modelValue","item","dropdownOptions"]))]),_:2},1032,["label","style"]))),128)),e.createVNode(_,{style:{"margin-left":"10px"}},{default:e.withCtx(()=>[e.createVNode(D,{type:"primary",size:a.size,icon:"Search",onClick:T},{default:e.withCtx(()=>[...h[6]||(h[6]=[e.createTextVNode("查询",-1)])]),_:1},8,["size"]),e.createVNode(D,{type:"default",size:a.size,icon:"Refresh",onClick:ze},{default:e.withCtx(()=>[...h[7]||(h[7]=[e.createTextVNode("重置",-1)])]),_:1},8,["size"])]),_:1})]),_:3},8,["label-width"])]),c.webFunction.length>0?(e.openBlock(),e.createElementBlock("div",Me,[e.createElementVNode("div",De,[a.permissions.add&&c.webFunction.includes("add")?(e.openBlock(),e.createBlock(D,{key:0,type:"primary",size:a.size,icon:"CirclePlus",onClick:Ie},{default:e.withCtx(()=>[...h[8]||(h[8]=[e.createTextVNode("新增",-1)])]),_:1},8,["size"])):e.createCommentVNode("",!0),a.permissions.delete&&c.webFunction.includes("batchDelete")?(e.openBlock(),e.createBlock(D,{key:1,type:"danger",size:a.size,icon:"Delete",onClick:$e},{default:e.withCtx(()=>[...h[9]||(h[9]=[e.createTextVNode("批量删除",-1)])]),_:1},8,["size"])):e.createCommentVNode("",!0),e.renderSlot(w.$slots,"table-actions",{},void 0,!0)]),e.createElementVNode("div",Te,[e.renderSlot(w.$slots,"table-actions-right",{},void 0,!0),e.createVNode(be,{columns:p.columns,data:f.value},null,8,["columns","data"]),e.createVNode(xe,{"table-columns":p.columns,"visible-columns":E.value,"onUpdate:visibleColumns":h[0]||(h[0]=u=>E.value=u),"onUpdate:columns":Je},null,8,["table-columns","visible-columns"])])])):e.createCommentVNode("",!0),e.createElementVNode("div",Le,[e.createVNode(Ke,{ref_key:"tableRef",ref:l,data:f.value,border:"",stripe:"",size:a.size,height:d.value,"header-cell-style":{background:"#F5F7FA"}},{default:e.withCtx(()=>[p.showIndex?(e.openBlock(),e.createBlock($,{key:0,type:"index",width:p.indexWidth,label:"#",align:"center"},null,8,["width"])):e.createCommentVNode("",!0),a.permissions.delete&&c.webFunction.includes("batchDelete")?(e.openBlock(),e.createBlock($,{key:1,type:"selection",width:"55",align:"center"})):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.columns,u=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u.prop},[E.value.includes(u.columnProperty)?(e.openBlock(),e.createBlock($,{key:0,label:u.columnLabel,width:(u.width||"")+"px",fixed:u.fixed,"show-overflow-tooltip":!u.noWrap,align:u.align,"header-align":u.headerAlign},{default:e.withCtx(O=>[w.$slots["table-column-"+u.columnProperty]?e.renderSlot(w.$slots,"table-column-"+u.columnProperty,{key:0,scope:O},void 0,!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(e.unref(i).formatColumnValue(u,O.row[u.columnProperty])),1)],64))]),_:2},1032,["label","width","fixed","show-overflow-tooltip","align","header-align"])):e.createCommentVNode("",!0)],64))),128)),e.createVNode($,{align:p.operationAlign,fixed:"right",width:p.operationWidth,label:"操作"},{default:e.withCtx(u=>[p.visibleOperationButtons.includes("detail")?(e.openBlock(),e.createBlock(D,{key:0,type:"primary",plain:"",size:p.operationSize,onClick:O=>Ue(u.row)},{default:e.withCtx(()=>[...h[10]||(h[10]=[e.createTextVNode("详情",-1)])]),_:1},8,["size","onClick"])):e.createCommentVNode("",!0),p.visibleOperationButtons.includes("edit")&&a.permissions.edit?(e.openBlock(),e.createBlock(D,{key:1,type:"success",plain:"",size:p.operationSize,onClick:O=>Re(u.row)},{default:e.withCtx(()=>[...h[11]||(h[11]=[e.createTextVNode("编辑",-1)])]),_:1},8,["size","onClick"])):e.createCommentVNode("",!0),p.visibleOperationButtons.includes("delete")&&a.permissions.delete?(e.openBlock(),e.createBlock(D,{key:2,type:"danger",plain:"",size:p.operationSize,onClick:O=>Ge(u.row)},{default:e.withCtx(()=>[...h[12]||(h[12]=[e.createTextVNode("删除",-1)])]),_:1},8,["size","onClick"])):e.createCommentVNode("",!0),e.renderSlot(w.$slots,"table-column-action",{scope:u},void 0,!0)]),_:3},8,["align","width"])]),_:3},8,["data","size","height"])]),p.showPagination?(e.openBlock(),e.createElementBlock("div",Ee,[e.createVNode(qe,{"current-page":b.currentPage,"onUpdate:currentPage":h[1]||(h[1]=u=>b.currentPage=u),"page-size":b.pageSize,"onUpdate:pageSize":h[2]||(h[2]=u=>b.pageSize=u),total:b.total,layout:"total, sizes, prev, pager, next",background:"",size:a.size,onSizeChange:Ae,onCurrentChange:We},null,8,["current-page","page-size","total","size"])])):e.createCommentVNode("",!0)]),e.createVNode(He,{title:k.title,"close-on-click-modal":!1,"close-on-press-escape":!1,width:k.formDialogWidth,modelValue:F.value,"onUpdate:modelValue":h[5]||(h[5]=u=>F.value=u),"destroy-on-close":!0,draggable:"","append-to-body":!0,"align-center":""},e.createSlots({default:e.withCtx(()=>[e.createVNode(U,null,{default:e.withCtx(()=>[e.createVNode(A,{span:N.value?24-N.value.span:24},{default:e.withCtx(()=>[e.createVNode(q,{ref_key:"formRef",ref:m,model:B.data,rules:L.value,size:"default","label-width":k.labelWidth,"label-suffix":":",class:e.normalizeClass({"curd-form-details":s.value==="details"})},{default:e.withCtx(()=>[e.createVNode(U,null,{default:e.withCtx(()=>[e.createVNode(A,{span:24},{default:e.withCtx(()=>[e.createVNode(U,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.formColumns,u=>(e.openBlock(),e.createBlock(A,{key:u.columnProperty,span:u.span||12},{default:e.withCtx(()=>[e.createVNode(_,{label:u.columnLabel,prop:u.columnProperty},{default:e.withCtx(()=>[s.value==="details"?(e.openBlock(),e.createBlock(Q,{key:0,item:u,modelValue:B.data[u.columnProperty],"onUpdate:modelValue":O=>B.data[u.columnProperty]=O,dropdownOptions:e.unref(i).getDictOptionsByColumnProperty(u.columnProperty)},null,8,["item","modelValue","onUpdate:modelValue","dropdownOptions"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[u.showMethod==="slot"?e.renderSlot(w.$slots,"form-"+u.columnProperty,{key:0,item:u,scope:{...w.scope,formData:B.data,data:B.data[u.columnProperty]}},void 0,!0):(e.openBlock(),e.createBlock(G,{key:1,item:u,modelValue:B.data[u.columnProperty],"onUpdate:modelValue":O=>B.data[u.columnProperty]=O,dropdownOptions:e.unref(i).getDictOptionsByColumnProperty(u.columnProperty),currentOperationType:s.value},null,8,["item","modelValue","onUpdate:modelValue","dropdownOptions","currentOperationType"]))],64))]),_:2},1032,["label","prop"])]),_:2},1032,["span"]))),128))]),_:3})]),_:3})]),_:3})]),_:3},8,["model","rules","label-width","class"])]),_:3},8,["span"]),N.value?(e.openBlock(),e.createBlock(A,{key:0,span:N.value?N.value.span:0,style:{padding:"0 10px"}},{default:e.withCtx(()=>[V.value?(e.openBlock(),e.createBlock(ge,{key:0,modelValue:B.data.wktstr,"onUpdate:modelValue":h[3]||(h[3]=u=>B.data.wktstr=u),currentOperationType:s.value,mapViewData:a.mapViewData,geomType:w.geomType},null,8,["modelValue","currentOperationType","mapViewData","geomType"])):e.createCommentVNode("",!0)]),_:1},8,["span"])):e.createCommentVNode("",!0)]),_:3})]),_:2},[s.value!=="details"?{name:"footer",fn:e.withCtx(()=>[e.createVNode(D,{type:"primary",onClick:Ye,loading:g.value},{default:e.withCtx(()=>[...h[13]||(h[13]=[e.createTextVNode("确定",-1)])]),_:1},8,["loading"]),e.createVNode(D,{onClick:h[4]||(h[4]=u=>F.value=!1)},{default:e.withCtx(()=>[...h[14]||(h[14]=[e.createTextVNode("取消",-1)])]),_:1})]),key:"0"}:void 0]),1032,["title","width","modelValue"])],64)}}}),K=I(Pe,[["__scopeId","data-v-844ae082"]]);P.CurdForm=K,P.default=K,Object.defineProperties(P,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|
|
1
|
+
(function(P,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("element-plus"),require("@gis_victory/gismap")):typeof define=="function"&&define.amd?define(["exports","vue","element-plus","@gis_victory/gismap"],e):(P=typeof globalThis<"u"?globalThis:P||self,e(P.CurdForm={},P.Vue,P.ElementPlus,P.GisMap))})(this,(function(P,e,S,R){"use strict";const H={name:"FormItem"},G=e.defineComponent({...H,props:{modelValue:{type:[String,Number,Array],default:()=>""},item:{type:Object,default:()=>({})},dropdownOptions:{type:Array,default:()=>[]},currentOperationType:{type:String,default:"default"}},emits:["update:modelValue"],setup(a,{emit:o}){const t=a;let r=t.modelValue;const n=t.item.type==="multiple-select"||t.item.type==="checkbox"||t.item.searchFormType==="multiple-select"||t.item.searchFormType==="checkbox";n&&typeof r=="string"&&r&&(r=r.split(","));const l=e.ref(r),y=o,m=computed(()=>{switch(t.currentOperationType){case"default":return!1;case"details":return!0;case"add":return t.item.createFormStatus=="disabled";case"edit":return t.item.updateFormStatus=="disabled"}return!1}),i=computed(()=>{switch(t.currentOperationType){case"default":return!1;case"details":return!0;case"add":return t.item.createFormStatus=="disabled";case"edit":return t.item.updateFormStatus=="disabled"}return!1});return e.watch(l,d=>{let s=d;n&&Array.isArray(d)&&(s=d.join(",")),y("update:modelValue",s)}),e.watch(()=>t.modelValue,d=>{let s=d;n&&typeof d=="string"&&d&&(s=d.split(",")),l.value=s}),(d,s)=>{const c=e.resolveComponent("el-option"),p=e.resolveComponent("el-select"),b=e.resolveComponent("el-date-picker"),k=e.resolveComponent("el-checkbox"),x=e.resolveComponent("el-checkbox-group"),M=e.resolveComponent("el-radio"),C=e.resolveComponent("el-radio-group"),F=e.resolveComponent("el-input");return a.item.searchFormType==="select"||a.item.type==="select"?(e.openBlock(),e.createBlock(p,{key:0,modelValue:l.value,"onUpdate:modelValue":s[0]||(s[0]=f=>l.value=f),placeholder:a.item.placeholder||"请选择",disabled:e.unref(m),readonly:e.unref(i),clearable:""},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.dropdownOptions,f=>(e.openBlock(),e.createBlock(c,{key:f.id,label:f.name,value:f.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","disabled","readonly"])):a.item.searchFormType==="multiple-select"||a.item.type==="multiple-select"?(e.openBlock(),e.createBlock(p,{key:1,modelValue:l.value,"onUpdate:modelValue":s[1]||(s[1]=f=>l.value=f),placeholder:a.item.placeholder||"请选择",multiple:"",disabled:e.unref(m),readonly:e.unref(i),clearable:""},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.dropdownOptions,f=>(e.openBlock(),e.createBlock(c,{key:f.id,label:f.name,value:f.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","disabled","readonly"])):a.item.searchFormType==="date"||a.item.type==="date"?(e.openBlock(),e.createBlock(b,{key:2,modelValue:l.value,"onUpdate:modelValue":s[2]||(s[2]=f=>l.value=f),type:"date","value-format":"YYYY-MM-DD",placeholder:a.item.placeholder||"请选择日期",disabled:e.unref(m),readonly:e.unref(i),clearable:"",style:{width:"100%"}},null,8,["modelValue","placeholder","disabled","readonly"])):a.item.searchFormType==="daterange"||a.item.type==="daterange"?(e.openBlock(),e.createBlock(b,{key:3,modelValue:l.value,"onUpdate:modelValue":s[3]||(s[3]=f=>l.value=f),type:"daterange","value-format":"yyyy-MM-dd",placeholder:a.item.placeholder||"请选择日期范围",disabled:e.unref(m),readonly:e.unref(i),clearable:""},null,8,["modelValue","placeholder","disabled","readonly"])):a.item.searchFormType==="checkbox"||a.item.type==="checkbox"?(e.openBlock(),e.createBlock(x,{key:4,modelValue:l.value,"onUpdate:modelValue":s[4]||(s[4]=f=>l.value=f),disabled:e.unref(m),readonly:e.unref(i)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.dropdownOptions,f=>(e.openBlock(),e.createBlock(k,{key:f.id,label:f.name,value:f.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","disabled","readonly"])):a.item.searchFormType==="radio"||a.item.type==="radio"?(e.openBlock(),e.createBlock(C,{key:5,modelValue:l.value,"onUpdate:modelValue":s[5]||(s[5]=f=>l.value=f),disabled:e.unref(m),readonly:e.unref(i)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.dropdownOptions,f=>(e.openBlock(),e.createBlock(M,{key:f.id,label:f.name,value:f.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue","disabled","readonly"])):a.item.searchFormType==="textarea"||a.item.type==="textarea"?(e.openBlock(),e.createBlock(F,{key:6,modelValue:l.value,"onUpdate:modelValue":s[6]||(s[6]=f=>l.value=f),type:"textarea",placeholder:a.item.placeholder||"请输入",disabled:e.unref(m),readonly:e.unref(i),clearable:""},null,8,["modelValue","placeholder","disabled","readonly"])):a.item.searchFormType==="input"||a.item.type==="input"?(e.openBlock(),e.createBlock(F,{key:7,modelValue:l.value,"onUpdate:modelValue":s[7]||(s[7]=f=>l.value=f),placeholder:a.item.placeholder||"请输入",disabled:e.unref(m),readonly:e.unref(i),clearable:""},null,8,["modelValue","placeholder","disabled","readonly"])):(e.openBlock(),e.createBlock(F,{key:8,modelValue:l.value,"onUpdate:modelValue":s[8]||(s[8]=f=>l.value=f),placeholder:a.item.placeholder||"请输入",disabled:e.unref(m),readonly:e.unref(i),clearable:""},null,8,["modelValue","placeholder","disabled","readonly"]))}}}),Z={name:"FormItemDetail"},Q=e.defineComponent({...Z,props:{modelValue:{type:[String,Number,Array,Object],default:()=>""},item:{type:Object,default:()=>({})},dropdownOptions:{type:Array,default:()=>[]}},setup(a){const o=a;let t=o.modelValue;const r=o.item.type==="multiple-select"||o.item.type==="checkbox"||o.item.searchFormType==="multiple-select"||o.item.searchFormType==="checkbox";typeof t=="object"&&t!==null&&!Array.isArray(t)&&(t=Object.values(t).join(",")),r&&typeof t=="string"&&t&&(t=t.split(","));const n=e.ref(t);return e.onMounted(()=>{switch(o.item.type){case"select":case"radio":const l=o.dropdownOptions.find(i=>i.id===o.modelValue);n.value=l?.name||"";break;case"checkbox":case"multiple-select":const m=(Array.isArray(n.value)?n.value:n.value?.split(",")||[]).map(i=>o.dropdownOptions.find(s=>s.id===i)?.name||i).filter(Boolean);n.value=m.join(",")||"";break;case"date":n.value=o.modelValue?S.dayjs(o.modelValue).format(o.item.formatter||"YYYY-MM-DD"):"";break;case"datetime":n.value=o.modelValue?S.dayjs(o.modelValue).format(o.item.formatter||"YYYY-MM-DD HH:mm:ss"):"";break;default:n.value=o.modelValue;break}}),(l,y)=>(e.openBlock(),e.createElementBlock("span",null,e.toDisplayString(n.value),1))}});var z={exports:{}},Y;function X(){if(Y)return z.exports;Y=1,z.exports=t,z.exports.parse=t,z.exports.stringify=r;var a=/[-+]?([0-9]*\.[0-9]+|[0-9]+)([eE][-+]?[0-9]+)?/,o=new RegExp("^"+a.source+"(\\s"+a.source+"){1,}");function t(n){var l=n.split(";"),y=l.pop(),m=(l.shift()||"").split("=").pop(),i=0;function d(g){var V=y.substring(i).match(g);return V?(i+=V[0].length,V[0]):null}function s(g){return g&&m.match(/\d+/)&&(g.crs={type:"name",properties:{name:"urn:ogc:def:crs:EPSG::"+m}}),g}function c(){d(/^\s*/)}function p(){c();for(var g=0,V=[],N=[V],E=V,D;D=d(/^(\()/)||d(/^(\))/)||d(/^(,)/)||d(o);){if(D==="(")N.push(E),E=[],N[N.length-1].push(E),g++;else if(D===")"){if(E.length===0||(E=N.pop(),!E))return null;if(g--,g===0)break}else if(D===",")E=[],N[N.length-1].push(E);else if(!D.split(/\s/g).some(isNaN))Array.prototype.push.apply(E,D.split(/\s/g).map(parseFloat));else return null;c()}return g!==0?null:V}function b(){for(var g=[],V,N;N=d(o)||d(/^(,)/);)N===","?(g.push(V),V=[]):N.split(/\s/g).some(isNaN)||(V||(V=[]),Array.prototype.push.apply(V,N.split(/\s/g).map(parseFloat))),c();if(V)g.push(V);else return null;return g.length?g:null}function k(){if(!d(/^(point(\sz)?)/i)||(c(),!d(/^(\()/)))return null;var g=b();return!g||(c(),!d(/^(\))/))?null:{type:"Point",coordinates:g[0]}}function x(){if(!d(/^(multipoint)/i))return null;c();var g=y.substring(y.indexOf("(")+1,y.length-1).replace(/\(/g,"").replace(/\)/g,"");y="MULTIPOINT ("+g+")";var V=p();return V?(c(),{type:"MultiPoint",coordinates:V}):null}function M(){if(!d(/^(multilinestring)/i))return null;c();var g=p();return g?(c(),{type:"MultiLineString",coordinates:g}):null}function C(){if(!d(/^(linestring(\sz)?)/i)||(c(),!d(/^(\()/)))return null;var g=b();return!g||!d(/^(\))/)?null:{type:"LineString",coordinates:g}}function F(){if(!d(/^(polygon(\sz)?)/i))return null;c();var g=p();return g?{type:"Polygon",coordinates:g}:null}function f(){if(!d(/^(multipolygon)/i))return null;c();var g=p();return g?{type:"MultiPolygon",coordinates:g}:null}function B(){var g=[],V;if(!d(/^(geometrycollection)/i)||(c(),!d(/^(\()/)))return null;for(;V=L();)g.push(V),c(),d(/^(,)/),c();return d(/^(\))/)?{type:"GeometryCollection",geometries:g}:null}function L(){return k()||C()||F()||x()||M()||f()||B()}return s(L())}function r(n){n.type==="Feature"&&(n=n.geometry);function l(s){return s.join(" ")}function y(s){return s.map(l).join(", ")}function m(s){return s.map(y).map(d).join(", ")}function i(s){return s.map(m).map(d).join(", ")}function d(s){return"("+s+")"}switch(n.type){case"Point":return"POINT ("+l(n.coordinates)+")";case"LineString":return"LINESTRING ("+y(n.coordinates)+")";case"Polygon":return"POLYGON ("+m(n.coordinates)+")";case"MultiPoint":return"MULTIPOINT ("+y(n.coordinates)+")";case"MultiPolygon":return"MULTIPOLYGON ("+i(n.coordinates)+")";case"MultiLineString":return"MULTILINESTRING ("+m(n.coordinates)+")";case"GeometryCollection":return"GEOMETRYCOLLECTION ("+n.geometries.map(r).join(", ")+")";default:throw new Error("stringify requires a valid GeoJSON Feature or geometry object as input")}}return z.exports}var W=X();function v(a,o,t={}){const r={type:"Feature"};return(t.id===0||t.id)&&(r.id=t.id),t.bbox&&(r.bbox=t.bbox),r.properties=o||{},r.geometry=a,r}function ee(a,o,t={}){if(!a)throw new Error("coordinates is required");if(!Array.isArray(a))throw new Error("coordinates must be an Array");if(a.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!j(a[0])||!j(a[1]))throw new Error("coordinates must contain numbers");return v({type:"Point",coordinates:a},o,t)}function j(a){return!isNaN(a)&&a!==null&&!Array.isArray(a)}function J(a,o,t){if(a!==null)for(var r,n,l,y,m,i,d,s=0,c=0,p,b=a.type,k=b==="FeatureCollection",x=b==="Feature",M=k?a.features.length:1,C=0;C<M;C++){d=k?a.features[C].geometry:x?a.geometry:a,p=d?d.type==="GeometryCollection":!1,m=p?d.geometries.length:1;for(var F=0;F<m;F++){var f=0,B=0;if(y=p?d.geometries[F]:d,y!==null){i=y.coordinates;var L=y.type;switch(s=L==="Polygon"||L==="MultiPolygon"?1:0,L){case null:break;case"Point":if(o(i,c,C,f,B)===!1)return!1;c++,f++;break;case"LineString":case"MultiPoint":for(r=0;r<i.length;r++){if(o(i[r],c,C,f,B)===!1)return!1;c++,L==="MultiPoint"&&f++}L==="LineString"&&f++;break;case"Polygon":case"MultiLineString":for(r=0;r<i.length;r++){for(n=0;n<i[r].length-s;n++){if(o(i[r][n],c,C,f,B)===!1)return!1;c++}L==="MultiLineString"&&f++,L==="Polygon"&&B++}L==="Polygon"&&f++;break;case"MultiPolygon":for(r=0;r<i.length;r++){for(B=0,n=0;n<i[r].length;n++){for(l=0;l<i[r][n].length-s;l++){if(o(i[r][n][l],c,C,f,B)===!1)return!1;c++}B++}f++}break;case"GeometryCollection":for(r=0;r<y.geometries.length;r++)if(J(y.geometries[r],o)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function te(a,o={}){let t=0,r=0,n=0;return J(a,function(l){t+=l[0],r+=l[1],n++}),ee([t/n,r/n],o.properties)}class oe{map;sourceId="curd-map-source";layerId="curd-map-layer";featureCollection={type:"FeatureCollection",features:[]};constructor(o){this.map=o,this.setSource()}setSource(){this.map.addSource(this.sourceId,{type:"geojson",data:this.featureCollection})}setLayer(o){if(!this.map.getLayer(this.layerId))switch(o.toLowerCase()){case"polygon":case"multipolygon":this.map.addLayer({id:this.layerId,type:"fill",source:this.sourceId,paint:{"fill-color":"#ff0000","fill-opacity":.5}});break;case"linestring":case"multilinestring":this.map.addLayer({id:this.layerId,type:"line",source:this.sourceId,paint:{"line-color":"#ff0000","line-opacity":.8,"line-width":3}});break;case"point":this.map.addLayer({id:this.layerId,type:"circle",source:this.sourceId,paint:{"circle-color":"#ff0000","circle-opacity":.8,"circle-radius":5,"circle-stroke-color":"#fff","circle-stroke-width":2,"circle-stroke-opacity":1}});break}}setData(o){if(!o)return;const t={type:"Feature",geometry:o},r=this.map.getSource(this.sourceId);r&&(this.featureCollection.features=[t],r?.setData(this.featureCollection))}flyTo(){if(this.featureCollection.features.length!==0)try{let o=this.featureCollection.features[0];if(!o)return;let t=null;if(o.geometry.type.toLowerCase()==="point"?t=o.geometry.coordinates:t=te(this.featureCollection)?.geometry?.coordinates||null,!t)return;this.map.flyTo({center:t,zoom:16})}catch(o){console.error("计算外包边框中心点失败:",o)}}formatWktToGeoJson(o){if(!o)return null;try{return W.parse(o)}catch(t){return console.error("WKT 转换为 GeoJSON 失败:",t),null}}formatGeoJsonToWkt(o){if(!o)return"";try{return W.stringify(o)}catch(t){return console.error("GeoJSON 转换为 WKT 失败:",t),""}}clear(){this.map.removeLayer(this.layerId),this.map.removeSource(this.sourceId)}}class re{map;drawSourceId="curd-map-draw-source";drawLayerId="curd-map-draw-layer";drawLineLayerId="curd-map-draw-line-layer";drawPointLayerId="curd-map-draw-point-layer";drawFeatureCollection={type:"FeatureCollection",features:[]};drawType="none";drawCoordinates=[];drawCallback=null;constructor(o){this.map=o,this.initDrawSource()}initDrawSource(){this.map.getSource(this.drawSourceId)||this.map.addSource(this.drawSourceId,{type:"geojson",data:this.drawFeatureCollection})}startDraw(o,t){this.clearDraw(),this.drawType=o,this.drawCallback=t,this.drawCoordinates=[],this.setupDrawLayers(),this.setupDrawEvents(),this.map.getCanvas().style.cursor="crosshair"}stopDraw(){this.drawType="none",this.drawCallback=null,this.clearDraw(),this.removeDrawEvents(),this.map.getCanvas().style.cursor=""}clearDraw(){this.drawCoordinates=[],this.drawFeatureCollection.features=[];const o=this.map.getSource(this.drawSourceId);o&&o.setData(this.drawFeatureCollection),[this.drawLayerId,this.drawLineLayerId,this.drawPointLayerId,`${this.drawLayerId}-outline`].forEach(t=>{this.map.getLayer(t)&&this.map.removeLayer(t)})}setupDrawLayers(){[this.drawLayerId,this.drawLineLayerId,this.drawPointLayerId,`${this.drawLayerId}-outline`].forEach(t=>{this.map.getLayer(t)&&this.map.removeLayer(t)});const o="#ff0000";this.drawType==="point"&&this.map.addLayer({id:this.drawLayerId,type:"circle",source:this.drawSourceId,paint:{"circle-color":o,"circle-opacity":.8,"circle-radius":6,"circle-stroke-color":"#fff","circle-stroke-width":2,"circle-stroke-opacity":1}}),(this.drawType==="line"||this.drawType==="polygon")&&(this.map.addLayer({id:this.drawLineLayerId,type:"line",source:this.drawSourceId,paint:{"line-color":o,"line-opacity":.8,"line-width":3}}),this.map.addLayer({id:this.drawPointLayerId,type:"circle",source:this.drawSourceId,paint:{"circle-color":o,"circle-opacity":.8,"circle-radius":4,"circle-stroke-color":"#fff","circle-stroke-width":2,"circle-stroke-opacity":1}})),this.drawType==="polygon"&&(this.map.addLayer({id:this.drawLayerId,type:"fill",source:this.drawSourceId,paint:{"fill-color":o,"fill-opacity":.3}}),this.map.addLayer({id:`${this.drawLayerId}-outline`,type:"line",source:this.drawSourceId,paint:{"line-color":o,"line-opacity":.8,"line-width":2}}))}setupDrawEvents(){this.map.on("click",this.handleMapClick.bind(this)),this.map.on("mousemove",this.handleMapMouseMove.bind(this)),this.map.on("dblclick",this.handleMapDoubleClick.bind(this)),this.map.doubleClickZoom.disable()}removeDrawEvents(){this.map.off("click",this.handleMapClick.bind(this)),this.map.off("mousemove",this.handleMapMouseMove.bind(this)),this.map.off("dblclick",this.handleMapDoubleClick.bind(this)),this.map.doubleClickZoom.enable()}handleMapClick(o){const t=o.lngLat.toArray();this.drawCoordinates.push(t),this.updateDrawFeature(),this.drawType==="point"&&this.finishDraw()}handleMapMouseMove(o){if(this.drawType==="none"||this.drawCoordinates.length===0)return;const t=o.lngLat.toArray(),r=[...this.drawCoordinates,t];this.updateDrawFeature(r)}handleMapDoubleClick(){(this.drawType==="line"||this.drawType==="polygon")&&this.finishDraw()}updateDrawFeature(o){const t=o||this.drawCoordinates;if(t.length===0)return;let r=null;switch(this.drawType){case"point":r={type:"Point",coordinates:t[0]};break;case"line":r={type:"LineString",coordinates:t};break;case"polygon":r={type:"Polygon",coordinates:[t]};break}if(r){this.drawFeatureCollection.features=[{type:"Feature",geometry:r}];const n=this.map.getSource(this.drawSourceId);n&&n.setData(this.drawFeatureCollection)}}finishDraw(){if(this.drawCoordinates.length===0)return;let o=null;switch(this.drawType){case"point":o={type:"Point",coordinates:this.drawCoordinates[0]};break;case"line":if(this.drawCoordinates.length<2){this.clearDraw();return}o={type:"LineString",coordinates:this.drawCoordinates};break;case"polygon":if(this.drawCoordinates.length<3){this.clearDraw();return}o={type:"Polygon",coordinates:[[...this.drawCoordinates,this.drawCoordinates[0]]]};break}if(o&&this.drawCallback){const t=W.stringify(o);this.drawCallback(this.drawType,o,t),this.map.getCanvas().style.cursor="",this.drawType="none",this.map.off("click",this.handleMapClick.bind(this)),this.map.off("mousemove",this.handleMapMouseMove.bind(this)),this.map.off("dblclick",this.handleMapDoubleClick.bind(this)),setTimeout(()=>{this.map.doubleClickZoom.enable()},0)}}destroy(){this.stopDraw(),this.map.getSource(this.drawSourceId)&&this.map.removeSource(this.drawSourceId)}}var ae=e.defineComponent({name:"CircleClose",__name:"circle-close",setup(a){return(o,t)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z"}),e.createElementVNode("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"})]))}}),le=ae,ne=e.defineComponent({name:"EditPen",__name:"edit-pen",setup(a){return(o,t)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"m199.04 672.64 193.984 112 224-387.968-193.92-112-224 388.032zm-23.872 60.16 32.896 148.288 144.896-45.696zM455.04 229.248l193.92 112 56.704-98.112-193.984-112zM104.32 708.8l384-665.024 304.768 175.936L409.152 884.8h.064l-248.448 78.336zm384 254.272v-64h448v64z"})]))}}),ie=ne,se=e.defineComponent({name:"MoreFilled",__name:"more-filled",setup(a){return(o,t)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M176 416a112 112 0 1 1 0 224 112 112 0 0 1 0-224m336 0a112 112 0 1 1 0 224 112 112 0 0 1 0-224m336 0a112 112 0 1 1 0 224 112 112 0 0 1 0-224"})]))}}),ce=se;const de={class:"map-draw-container"},pe={name:"FormItemMapDraw"},me=e.defineComponent({...pe,props:{geomType:{type:String,default:"point"}},emits:["draw-start","draw-end","draw-cancel"],setup(a,{emit:o}){const t=o,r=e.ref("none");e.ref(!1),e.ref(null);const n=le,l=ie,y=ce,m=i=>{r.value=i,i==="none"?t("draw-cancel"):t("draw-start",i)};return(i,d)=>{const s=e.resolveComponent("el-button");return e.openBlock(),e.createElementBlock("div",de,[a.geomType==="point"?(e.openBlock(),e.createBlock(s,{key:0,type:"primary",size:"small",circle:"",onClick:d[0]||(d[0]=c=>m("point")),icon:e.unref(n),class:e.normalizeClass({active:r.value==="point"})},null,8,["icon","class"])):e.createCommentVNode("",!0),a.geomType==="linestring"?(e.openBlock(),e.createBlock(s,{key:1,type:"primary",size:"small",circle:"",onClick:d[1]||(d[1]=c=>m("line")),icon:e.unref(l),class:e.normalizeClass({active:r.value==="line"})},null,8,["icon","class"])):e.createCommentVNode("",!0),a.geomType==="polygon"?(e.openBlock(),e.createBlock(s,{key:2,type:"primary",size:"small",circle:"",onClick:d[2]||(d[2]=c=>m("polygon")),icon:e.unref(y),class:e.normalizeClass({active:r.value==="polygon"})},null,8,["icon","class"])):e.createCommentVNode("",!0)])}}}),I=(a,o)=>{const t=a.__vccOpts||a;for(const[r,n]of o)t[r]=n;return t},ue=I(me,[["__scopeId","data-v-fa667d3f"]]),fe={class:"curd-map"},he={name:"FormItemMap"},ye=e.defineComponent({...he,props:{modelValue:{type:String||void 0,default:()=>""},glyphs:{type:String||void 0,default:()=>""},mapViewData:{type:Object||void 0,default:()=>({})},currentOperationType:{type:String,default:()=>"details"}},emits:["update:modelValue"],setup(a,{emit:o}){const t=a,r=e.ref(t.modelValue);let n,l;const y=e.reactive({mapViewData:{zoom:t.mapViewData.zoom||13,center:t.mapViewData.center||[120.656774,29.8],maxPitch:t.mapViewData.maxPitch||0,dragRotate:t.mapViewData.dragRotate||!1,style:{glyphs:t.glyphs},...t.mapViewData},switchData:{layers:[{name:"tdt-vec",label:"地图",iconName:"vector",checked:!0},{name:"tdt-img",label:"影像",iconName:"satellite",checked:!1}],extensions:[{name:"tdt-cia",label:"注记",checked:!0}]}}),m=o;e.watch(r,c=>{m("update:modelValue",c)}),e.watch(()=>t.modelValue,c=>{r.value=c});const i=c=>{n=new oe(c),l=new re(c);const p=n.formatWktToGeoJson(r.value);p&&(n.setLayer(p.type),n.setData(p),n.flyTo())},d=c=>{l&&l.startDraw(c,(p,b,k)=>{r.value=k})},s=()=>{l&&l.stopDraw()};return e.onUnmounted(()=>{l&&(l.destroy(),l=void 0)}),(c,p)=>(e.openBlock(),e.createElementBlock("div",fe,[e.createVNode(e.unref(R.GisMapView),{options:y.mapViewData,onLoad:i},{"top-left":e.withCtx(()=>[a.currentOperationType!=="details"?(e.openBlock(),e.createBlock(ue,{key:0,onDrawStart:d,onDrawCancel:s})):e.createCommentVNode("",!0)]),"bottom-right":e.withCtx(()=>[e.createVNode(e.unref(R.GisMapSwitch),{data:y.switchData},null,8,["data"])]),default:e.withCtx(()=>[e.renderSlot(c.$slots,"default",{},void 0,!0)]),_:3},8,["options"])]))}}),ge=I(ye,[["__scopeId","data-v-e1f42b56"]]),we={class:"field-select-container"},Ce={name:"ExportButton"},ke=e.defineComponent({...Ce,props:{columns:{type:Array,default:()=>[]},data:{type:Array,default:()=>[]}},setup(a){const o=a,t=e.ref(!1),r=e.reactive({filename:"",dataType:"current",selectedFields:[]});e.onMounted(()=>{r.selectedFields=o.columns.map(y=>y.columnProperty)});const n=()=>{let y=[...o.data];if(y.length===0){S.ElMessage.warning("没有数据可导出");return}const m=y.map(b=>{const k={};return r.selectedFields.forEach(x=>{k[x]=b[x]}),k}),i=r.filename||`导出数据_${new Date().getTime()}`,d=l(m),s=new Blob([d],{type:"text/csv;charset=utf-8;"}),c=document.createElement("a"),p=URL.createObjectURL(s);c.setAttribute("href",p),c.setAttribute("download",`${i}.csv`),c.style.visibility="hidden",document.body.appendChild(c),c.click(),document.body.removeChild(c),t.value=!1,S.ElMessage.success("导出成功")},l=y=>{if(y.length===0)return"";const m=Object.keys(y[0])||[],i=[];i.push(m.join(","));for(const d of y){const s=m.map(c=>{const p=d[c];return typeof p=="string"?`"${p.replace(/"/g,'""')}"`:p});i.push(s.join(","))}return i.join(`
|
|
2
|
+
`)};return(y,m)=>{const i=e.resolveComponent("el-icon-download"),d=e.resolveComponent("el-icon"),s=e.resolveComponent("el-button"),c=e.resolveComponent("el-input"),p=e.resolveComponent("el-form-item"),b=e.resolveComponent("el-checkbox"),k=e.resolveComponent("el-checkbox-group"),x=e.resolveComponent("el-form"),M=e.resolveComponent("el-dialog");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(s,{type:"default",round:"",onClick:m[0]||(m[0]=C=>t.value=!0)},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.createVNode(i)]),_:1})]),_:1}),e.createVNode(M,{modelValue:t.value,"onUpdate:modelValue":m[4]||(m[4]=C=>t.value=C),title:"导出数据",width:"400px","close-on-click-modal":!1},{footer:e.withCtx(()=>[e.createVNode(s,{onClick:m[3]||(m[3]=C=>t.value=!1)},{default:e.withCtx(()=>[...m[5]||(m[5]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(s,{type:"primary",onClick:n},{default:e.withCtx(()=>[...m[6]||(m[6]=[e.createTextVNode("导出",-1)])]),_:1})]),default:e.withCtx(()=>[e.createVNode(x,{model:r,"label-width":"100px"},{default:e.withCtx(()=>[e.createVNode(p,{label:"文件名称"},{default:e.withCtx(()=>[e.createVNode(c,{modelValue:r.filename,"onUpdate:modelValue":m[1]||(m[1]=C=>r.filename=C),placeholder:"请输入文件名称"},null,8,["modelValue"])]),_:1}),e.createVNode(p,{label:"选择字段"},{default:e.withCtx(()=>[e.createElementVNode("div",we,[e.createVNode(k,{modelValue:r.selectedFields,"onUpdate:modelValue":m[2]||(m[2]=C=>r.selectedFields=C)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.columns,C=>(e.openBlock(),e.createElementBlock("div",{key:C.columnProperty,class:"column-item"},[e.createVNode(b,{value:C.columnProperty},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(C.columnLabel),1)]),_:2},1032,["value"])]))),128))]),_:1},8,["modelValue"])])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),be=I(ke,[["__scopeId","data-v-a28ea63e"]]),Ve={class:"column-manager"},Be={name:"ColumnManager"},Se=e.defineComponent({...Be,props:{tableColumns:{type:Array,default:()=>({columns:[]})},visibleColumns:{type:Array,default:()=>[]}},emits:["update:visibleColumns","update:columns"],setup(a,{emit:o}){const t=a,r=o,n=e.ref(!1),l=e.ref([...t.visibleColumns]),y=(m,i)=>{i?l.value.push(m):l.value=l.value.filter(d=>d!==m),r("update:visibleColumns",l.value)};return e.watch(()=>t.visibleColumns,m=>{l.value=[...m]},{deep:!0}),(m,i)=>{const d=e.resolveComponent("el-icon-menu"),s=e.resolveComponent("el-icon"),c=e.resolveComponent("el-button"),p=e.resolveComponent("el-checkbox"),b=e.resolveComponent("el-popover");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(b,{visible:n.value,"onUpdate:visible":i[0]||(i[0]=k=>n.value=k),placement:"bottom-end",width:220,trigger:"click","popper-class":"column-manager-popover"},{reference:e.withCtx(()=>[e.createVNode(c,{type:"default",round:""},{default:e.withCtx(()=>[e.createVNode(s,null,{default:e.withCtx(()=>[e.createVNode(d)]),_:1})]),_:1})]),default:e.withCtx(()=>[e.createElementVNode("div",Ve,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.tableColumns,k=>(e.openBlock(),e.createElementBlock("div",{class:"column-item",key:k.columnProperty},[e.createVNode(p,{modelValue:l.value.includes(k.columnProperty),onChange:x=>y(k.columnProperty,x)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(k.columnLabel||k.columnProperty),1)]),_:2},1032,["modelValue","onChange"])]))),128))])]),_:1},8,["visible"])])}}}),xe=I(Se,[["__scopeId","data-v-ef5ba627"]]);class Fe{serverConfig;curdConfig={};searchConfig={};tableConfig={};editorConfig={};searchFormMap=new Map;cloneSearchForm="{}";cloneFormData="{}";dictionaryMap=new Map;constructor({serverConfig:o}){this.serverConfig=o}setConfig({curdConfig:o,searchConfig:t,tableConfig:r,editorConfig:n}){this.curdConfig=o||this.curdConfig,this.searchConfig=t||this.searchConfig,this.tableConfig=r||this.tableConfig,this.editorConfig=n||this.editorConfig}async loadDictionary(){if(!this.tableConfig?.columns)return this.dictionaryMap;const o=this.tableConfig.columns.filter(t=>["code","table"].includes(t.dictType||"")&&t.dictService).map(t=>{let r=t.fieldType||"String";return r==="integer"&&(r="Integer"),(t.dictType==="code"?this.serverConfig?.dict({dictCode:t.dictService,itemIdType:r}):this.serverConfig?.dictServer(t.dictService,{})).then(l=>{l&&t.dictService&&this.dictionaryMap.set(t.dictService,l||[])}).catch(l=>{console.error(`加载字典 ${t.dictService} 失败:`,l)})});return await Promise.all(o),this.dictionaryMap}getDictOptionsByCode(o){return o?this.dictionaryMap.get(o)||[]:[]}getDictOptionsByColumnProperty(o){if(!o)return[];const t=this.tableConfig?.columns?.find(r=>r.columnProperty===o)?.dictService;return this.getDictOptionsByCode(t||void 0)}formatColumnValue(o,t){if(!t||t==="")return t;if(o.dictType&&o.dictService){const r=this.dictionaryMap.get(o.dictService)||[];if(!r||r.length===0)return t;const n=r.find(l=>l.id===t);return n?n.name:t}if(!o.formatter||o.formatter==="")return t;switch(o.fieldType){case"date":return t?S.dayjs(t).format(o.formatter||"YYYY-MM-DD"):"";case"datetime":return t?S.dayjs(t).format(o.formatter||"YYYY-MM-DD HH:mm:ss"):"";default:return t}}formatFormRules(){const o={};return(this.editorConfig?.columns||[]).forEach(t=>{o[t.columnProperty]=[],t.isRequired&&o[t.columnProperty].push({required:!0,message:"请输入"+t.columnLabel,trigger:"blur"})}),o}formatSearchConfigForm(){this.searchConfig.columns=this.tableConfig?.columns?.filter(t=>t.searchable!="no")||[],this.searchConfig?.columns.forEach(t=>{this.searchFormMap.set(t.columnProperty,t)});const o={};return this.searchConfig?.columns.forEach(t=>{o[t.columnProperty]=t.searchDefaultValue}),this.cloneSearchForm=JSON.stringify(o),o}formatFormConfigData(){const o={};return(this.editorConfig?.columns||[]).filter(r=>r.columnProperty===this.curdConfig?.priKey?!0:r.type!=="hidden").forEach(r=>{o[r.columnProperty]=r.defaultValue}),this.cloneFormData=JSON.stringify(o),o}formatSearchForm(o){const t={};return this.searchFormMap.forEach((r,n)=>{const l=o[n];if(l!=null&&l!==""){let y="";switch(r.searchable){case"=":y=`= '${l}'`;break;case"like":y=`like '%${l}%'`;break;case"in":y=`in (${l})`;break}t[n]=y}}),t}formatFormData(o){if(!o||Object.keys(o).length===0)return{};let t={};return(this.tableConfig?.columns||[]).forEach(r=>{r?.fieldType==="integer"?t[r.columnProperty]=Number(o[r.columnProperty]):t[r.columnProperty]=o[r.columnProperty]}),o.wktstr&&(t.wktstr=o.wktstr),t}initVisibleColumns(){return(this.tableConfig?.columns||[]).filter(o=>o.showMethod!="hidden").map(o=>o.columnProperty)}getFormItems(o=""){let t=[];switch(o){case"details":t=(this.editorConfig?.columns||[]).filter(r=>r.type!=="hidden"&&r.updateFormStatus!=="hidden"&&r.type!=="shape");break;case"add":t=(this.editorConfig?.columns||[]).filter(r=>r.type!=="hidden"&&r.createFormStatus!=="hidden"&&r.type!=="shape");break;case"update":t=(this.editorConfig?.columns||[]).filter(r=>r.type!=="hidden"&&r.updateFormStatus!=="hidden"&&r.type!=="shape");break}return t}hasGeometryField(){return(this.editorConfig?.columns||[]).find(t=>t.type==="shape")||void 0}}const Ne={class:"curd-container"},_e={class:"curd-search"},Me={key:0,class:"table-actions"},Te={class:"table-actions-left"},De={class:"table-actions-right"},Le={class:"curd-table"},Ee={key:1,class:"curd-pagination"},Oe={name:"CurdForm"},Pe=e.defineComponent({...Oe,props:{size:{type:String,default:"default"},title:{type:String,default:"信息管理"},permissions:{type:Object,default:()=>({add:!1,edit:!1,delete:!1,deleteBatch:!1,export:!1})},serverConfig:{type:Object,default:()=>({init:Function,list:Function,view:Function,add:Function,delete:Function,deleteBatch:Function,update:Function,dict:Function,dictServer:Function})},mapViewData:{type:Object,default:()=>({})}},emits:["loadDataSuccess"],setup(a,{expose:o,emit:t}){const r=a,n=e.ref(!1),l=e.ref(null),y=t,m=e.ref(),i=new Fe({serverConfig:r.serverConfig}),d=e.ref(""),s=e.ref("details"),c=e.reactive({priKey:"id",priKeyType:"string",sortField:"id",sortOrder:0,geomType:"point",webFunction:[],dataExt:"{}"}),p=e.reactive({showIndex:!0,indexWidth:50,showCheckbox:!0,showOperation:!0,operationWidth:120,operationLocation:"right",operationButtons:[],visibleOperationButtons:[],operationAlign:"center",showPagination:!0,defaultPageSize:10,pageUISize:"default",showExpand:!1,columns:[]}),b=e.reactive({total:0,pageSize:p.defaultPageSize,currentPage:1}),k=e.reactive({title:"弹框表单",formDialogWidth:"800px",labelWidth:"120px"}),x=e.reactive({columns:[],formColumns:[]}),M=e.reactive({searchLabelWidth:"80",searchFormWidth:"290",columns:[]}),C=e.ref({}),F=e.ref(!1),f=e.ref([]),B=e.reactive({data:{}}),L=e.ref({}),g=e.ref(!1),V=e.ref(!1),N=e.ref(),E=e.ref([]),D=async()=>{if(r.serverConfig?.list)try{n.value=!0;const w=await r.serverConfig?.list({whereClause:i.formatSearchForm(C.value),orderParam:[{fieldName:c.sortField,asc:c.sortOrder===0}],pageParam:{pageNum:b.currentPage,pageSize:b.pageSize}});if(w){const h=w.data;f.value=h.dataList||[],b.total=h.totalCount,y("loadDataSuccess",f.value)}}catch{}finally{n.value=!1}},ze=()=>{C.value=JSON.parse(i.cloneSearchForm),D()},Ie=async()=>{r.serverConfig?.add&&(s.value="add",x.formColumns=i.getFormItems("add"),k.title="新增信息",F.value=!0,B.data=JSON.parse(i.cloneFormData))},$e=async()=>{if(r.serverConfig?.deleteBatch&&l?.value){const w=l.value.getSelectionRows();if(w.length===0){S.ElMessage.warning("请选择要删除的项");return}const h=w.map(_=>_[c.priKey||"id"]);h.length>0&&S.ElMessageBox.confirm("确定删除选中项吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(async()=>{await r.serverConfig?.deleteBatch?.(h.join(","))?S.ElMessage.success("删除成功"):S.ElMessage.error("删除失败"),D()})}},Ae=w=>{b.pageSize=Number(w),D()},We=w=>{b.currentPage=w,D()},Ue=async w=>{if(r.serverConfig?.view){s.value="details",x.formColumns=i.getFormItems("details"),k.title="查看详情";try{const h=w[c.priKey||"id"];if(!h){S.ElMessage.error("查看失败,未获取到主键值");return}const _=await r.serverConfig?.view?.({key:h});_.success&&_.data?(B.data={..._.data},F.value=!0):S.ElMessage.error("查询失败")}catch{S.ElMessage.error("查询失败")}}},Re=async w=>{r.serverConfig?.update&&(s.value="update",x.formColumns=i.getFormItems("update"),k.title="编辑信息",F.value=!0,B.data={...w})},Ge=w=>{r.serverConfig?.delete&&S.ElMessageBox.confirm("确定删除选中项吗?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(async()=>{const h=w[c.priKey||"id"];if(!h){S.ElMessage.error("删除失败,未获取到主键值");return}await r.serverConfig?.delete?.(h)?(S.ElMessage.success("删除成功"),D()):S.ElMessage.error("删除失败")})},Ye=()=>{g.value=!0,m.value?.validate(async(w,h)=>{if(w){let _=s.value==="add"?r.serverConfig?.add:r.serverConfig?.update;if(_)try{const T=await _({params:{...i.formatFormData(B.data)}});T.success?(S.ElMessage.success(s.value==="add"?"新增成功":"编辑成功"),F.value=!1,D()):S.ElMessage.error("保存失败"+T.msg)}catch(T){S.ElMessage.error("保存失败"+T.message)}finally{g.value=!1}}else g.value=!1})};e.onMounted(async()=>{if(r.serverConfig?.init){const w=await r.serverConfig.init();if(w.success&&w.data){const h=w.data||{},_=h.dataExt?JSON.parse(h.dataExt):{};Object.assign(c,h||{}),Object.assign(p,_?.tableConfig||{}),Object.assign(k,_?.dialogConfig||{}),Object.assign(x?.columns||[],_?.editorConfig||{}),b.pageSize=p.defaultPageSize||b.pageSize,p.visibleOperationButtons=(p.operationButtons||[]).map(T=>T.type),console.log("curdConfig",c),console.log("tableConfig",p),console.log("dialogConfig",k),console.log("editorConfig",x),M.searchFormWidth=p.searchFormWidth&&p.searchFormWidth!==""?p.searchFormWidth:M.searchFormWidth,M.searchLabelWidth=p.searchLabelWidth&&p.searchLabelWidth!==""?p.searchLabelWidth:M.searchLabelWidth,i.setConfig({curdConfig:c,searchConfig:M,tableConfig:p,editorConfig:x}),E.value=i.initVisibleColumns(),C.value=i.formatSearchConfigForm(),B.data=i.formatFormConfigData(),L.value=i.formatFormRules(),N.value=i.hasGeometryField(),await i.loadDictionary(),setTimeout(()=>{D()},500),e.nextTick(()=>{d.value="100%"})}else S.ElMessage.error("未查询到有效配置")}else S.ElMessage.error("请配置init方法")}),e.watch(F,w=>{w?e.nextTick(()=>{V.value=!0}):V.value=!1});const je=w=>{f.value=w},Je=w=>{p.columns=w};return o({setTableData:je,getTableData:()=>f.value}),(w,h)=>{const _=e.resolveComponent("el-form-item"),T=e.resolveComponent("el-button"),q=e.resolveComponent("el-form"),$=e.resolveComponent("el-table-column"),Ke=e.resolveComponent("el-table"),qe=e.resolveComponent("el-pagination"),A=e.resolveComponent("el-col"),U=e.resolveComponent("el-row"),He=e.resolveComponent("el-dialog");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",Ne,[e.createElementVNode("div",_e,[e.createVNode(q,{inline:!0,class:"form-inline","label-width":M.searchLabelWidth},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(M.columns,u=>(e.openBlock(),e.createBlock(_,{key:u.columnProperty,label:u.searchFormLabel||u.columnLabel,style:e.normalizeStyle(`width: ${M.searchFormWidth}px;`)},{default:e.withCtx(()=>[u.showMethod==="slot"?e.renderSlot(w.$slots,"search-"+u.columnProperty,{key:0,scope:{...w.scope,searchForm:C.value,data:C.value[u.columnProperty]}},void 0,!0):(e.openBlock(),e.createBlock(G,{key:1,modelValue:C.value[u.columnProperty],"onUpdate:modelValue":O=>C.value[u.columnProperty]=O,item:u,dropdownOptions:e.unref(i).getDictOptionsByCode(u.dictService)},null,8,["modelValue","onUpdate:modelValue","item","dropdownOptions"]))]),_:2},1032,["label","style"]))),128)),e.createVNode(_,{style:{"margin-left":"10px"}},{default:e.withCtx(()=>[e.createVNode(T,{type:"primary",size:a.size,icon:"Search",onClick:D},{default:e.withCtx(()=>[...h[6]||(h[6]=[e.createTextVNode("查询",-1)])]),_:1},8,["size"]),e.createVNode(T,{type:"default",size:a.size,icon:"Refresh",onClick:ze},{default:e.withCtx(()=>[...h[7]||(h[7]=[e.createTextVNode("重置",-1)])]),_:1},8,["size"])]),_:1})]),_:3},8,["label-width"])]),c.webFunction.length>0?(e.openBlock(),e.createElementBlock("div",Me,[e.createElementVNode("div",Te,[a.permissions.add&&c.webFunction.includes("add")?(e.openBlock(),e.createBlock(T,{key:0,type:"primary",size:a.size,icon:"CirclePlus",onClick:Ie},{default:e.withCtx(()=>[...h[8]||(h[8]=[e.createTextVNode("新增",-1)])]),_:1},8,["size"])):e.createCommentVNode("",!0),a.permissions.delete&&c.webFunction.includes("batchDelete")?(e.openBlock(),e.createBlock(T,{key:1,type:"danger",size:a.size,icon:"Delete",onClick:$e},{default:e.withCtx(()=>[...h[9]||(h[9]=[e.createTextVNode("批量删除",-1)])]),_:1},8,["size"])):e.createCommentVNode("",!0),e.renderSlot(w.$slots,"table-actions",{},void 0,!0)]),e.createElementVNode("div",De,[e.renderSlot(w.$slots,"table-actions-right",{},void 0,!0),e.createVNode(be,{columns:p.columns,data:f.value},null,8,["columns","data"]),e.createVNode(xe,{"table-columns":p.columns,"visible-columns":E.value,"onUpdate:visibleColumns":h[0]||(h[0]=u=>E.value=u),"onUpdate:columns":Je},null,8,["table-columns","visible-columns"])])])):e.createCommentVNode("",!0),e.createElementVNode("div",Le,[e.createVNode(Ke,{ref_key:"tableRef",ref:l,data:f.value,border:"",stripe:"",size:a.size,height:d.value,"header-cell-style":{background:"#F5F7FA"}},{default:e.withCtx(()=>[p.showIndex?(e.openBlock(),e.createBlock($,{key:0,type:"index",width:p.indexWidth,label:"#",align:"center"},null,8,["width"])):e.createCommentVNode("",!0),a.permissions.delete&&c.webFunction.includes("batchDelete")?(e.openBlock(),e.createBlock($,{key:1,type:"selection",width:"55",align:"center"})):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.columns,u=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u.prop},[E.value.includes(u.columnProperty)?(e.openBlock(),e.createBlock($,{key:0,label:u.columnLabel,width:(u.width||"")+"px",fixed:u.fixed,"show-overflow-tooltip":!u.noWrap,align:u.align,"header-align":u.headerAlign},{default:e.withCtx(O=>[w.$slots["table-column-"+u.columnProperty]?e.renderSlot(w.$slots,"table-column-"+u.columnProperty,{key:0,scope:O},void 0,!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(e.unref(i).formatColumnValue(u,O?.row[u.columnProperty])),1)],64))]),_:2},1032,["label","width","fixed","show-overflow-tooltip","align","header-align"])):e.createCommentVNode("",!0)],64))),128)),e.createVNode($,{align:p.operationAlign,fixed:"right",width:p.operationWidth,label:"操作"},{default:e.withCtx(u=>[p.visibleOperationButtons.includes("detail")?(e.openBlock(),e.createBlock(T,{key:0,type:"primary",plain:"",size:p.operationSize,onClick:O=>Ue(u.row)},{default:e.withCtx(()=>[...h[10]||(h[10]=[e.createTextVNode("详情",-1)])]),_:1},8,["size","onClick"])):e.createCommentVNode("",!0),p.visibleOperationButtons.includes("edit")&&a.permissions.edit?(e.openBlock(),e.createBlock(T,{key:1,type:"success",plain:"",size:p.operationSize,onClick:O=>Re(u.row)},{default:e.withCtx(()=>[...h[11]||(h[11]=[e.createTextVNode("编辑",-1)])]),_:1},8,["size","onClick"])):e.createCommentVNode("",!0),p.visibleOperationButtons.includes("delete")&&a.permissions.delete?(e.openBlock(),e.createBlock(T,{key:2,type:"danger",plain:"",size:p.operationSize,onClick:O=>Ge(u.row)},{default:e.withCtx(()=>[...h[12]||(h[12]=[e.createTextVNode("删除",-1)])]),_:1},8,["size","onClick"])):e.createCommentVNode("",!0),e.renderSlot(w.$slots,"table-column-action",{scope:u},void 0,!0)]),_:3},8,["align","width"])]),_:3},8,["data","size","height"])]),p.showPagination?(e.openBlock(),e.createElementBlock("div",Ee,[e.createVNode(qe,{"current-page":b.currentPage,"onUpdate:currentPage":h[1]||(h[1]=u=>b.currentPage=u),"page-size":b.pageSize,"onUpdate:pageSize":h[2]||(h[2]=u=>b.pageSize=u),total:b.total,layout:"total, sizes, prev, pager, next",background:"",size:a.size,onSizeChange:Ae,onCurrentChange:We},null,8,["current-page","page-size","total","size"])])):e.createCommentVNode("",!0)]),e.createVNode(He,{title:k.title,"close-on-click-modal":!1,"close-on-press-escape":!1,width:k.formDialogWidth,modelValue:F.value,"onUpdate:modelValue":h[5]||(h[5]=u=>F.value=u),"destroy-on-close":!0,draggable:"","append-to-body":!0,"align-center":""},e.createSlots({default:e.withCtx(()=>[e.createVNode(U,null,{default:e.withCtx(()=>[e.createVNode(A,{span:N.value?24-N.value.span:24},{default:e.withCtx(()=>[e.createVNode(q,{ref_key:"formRef",ref:m,model:B.data,rules:L.value,size:"default","label-width":k.labelWidth,"label-suffix":":",class:e.normalizeClass({"curd-form-details":s.value==="details"})},{default:e.withCtx(()=>[e.createVNode(U,null,{default:e.withCtx(()=>[e.createVNode(A,{span:24},{default:e.withCtx(()=>[e.createVNode(U,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.formColumns,u=>(e.openBlock(),e.createBlock(A,{key:u.columnProperty,span:u.span||12},{default:e.withCtx(()=>[e.createVNode(_,{label:u.columnLabel,prop:u.columnProperty},{default:e.withCtx(()=>[s.value==="details"?(e.openBlock(),e.createBlock(Q,{key:0,item:u,modelValue:B.data[u.columnProperty],"onUpdate:modelValue":O=>B.data[u.columnProperty]=O,dropdownOptions:e.unref(i).getDictOptionsByColumnProperty(u.columnProperty)},null,8,["item","modelValue","onUpdate:modelValue","dropdownOptions"])):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[u.showMethod==="slot"?e.renderSlot(w.$slots,"form-"+u.columnProperty,{key:0,item:u,scope:{...w.scope,formData:B.data,data:B.data[u.columnProperty]}},void 0,!0):(e.openBlock(),e.createBlock(G,{key:1,item:u,modelValue:B.data[u.columnProperty],"onUpdate:modelValue":O=>B.data[u.columnProperty]=O,dropdownOptions:e.unref(i).getDictOptionsByColumnProperty(u.columnProperty),currentOperationType:s.value},null,8,["item","modelValue","onUpdate:modelValue","dropdownOptions","currentOperationType"]))],64))]),_:2},1032,["label","prop"])]),_:2},1032,["span"]))),128))]),_:3})]),_:3})]),_:3})]),_:3},8,["model","rules","label-width","class"])]),_:3},8,["span"]),N.value?(e.openBlock(),e.createBlock(A,{key:0,span:N.value?N.value.span:0,style:{padding:"0 10px"}},{default:e.withCtx(()=>[V.value?(e.openBlock(),e.createBlock(ge,{key:0,modelValue:B.data.wktstr,"onUpdate:modelValue":h[3]||(h[3]=u=>B.data.wktstr=u),currentOperationType:s.value,mapViewData:a.mapViewData,geomType:w.geomType},null,8,["modelValue","currentOperationType","mapViewData","geomType"])):e.createCommentVNode("",!0)]),_:1},8,["span"])):e.createCommentVNode("",!0)]),_:3})]),_:2},[s.value!=="details"?{name:"footer",fn:e.withCtx(()=>[e.createVNode(T,{type:"primary",onClick:Ye,loading:g.value},{default:e.withCtx(()=>[...h[13]||(h[13]=[e.createTextVNode("确定",-1)])]),_:1},8,["loading"]),e.createVNode(T,{onClick:h[4]||(h[4]=u=>F.value=!1)},{default:e.withCtx(()=>[...h[14]||(h[14]=[e.createTextVNode("取消",-1)])]),_:1})]),key:"0"}:void 0]),1032,["title","width","modelValue"])],64)}}}),K=I(Pe,[["__scopeId","data-v-da85121d"]]);P.CurdForm=K,P.default=K,Object.defineProperties(P,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|