liyu-pc-base 1.0.375 → 1.0.379
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/AttributeNomTable-BV3zeA9I.js +137 -0
- package/dist/AttributeNomTable-BV3zeA9I.js.map +1 -0
- package/dist/AttributeTable-Dztznjrx.js +135 -0
- package/dist/AttributeTable-Dztznjrx.js.map +1 -0
- package/dist/FieldRender-9nTO5iHH.js +955 -0
- package/dist/FieldRender-9nTO5iHH.js.map +1 -0
- package/dist/FieldRender-C0y7Jj4j.js +2 -0
- package/dist/FieldRender2-DLs-3f0-.js +2849 -0
- package/dist/FieldRender2-DLs-3f0-.js.map +1 -0
- package/dist/FormRender3-Bt7fShep.js +324 -0
- package/dist/FormRender3-Bt7fShep.js.map +1 -0
- package/dist/FormRender3-DNQEIsiT.js +2 -0
- package/dist/ImportExcelModal-zaXQBvWZ.js +193 -0
- package/dist/ImportExcelModal-zaXQBvWZ.js.map +1 -0
- package/dist/JsonObj-Bq62nHPb.js +46 -0
- package/dist/JsonObj-Bq62nHPb.js.map +1 -0
- package/dist/JsonStr-DE1QSIsP.js +57 -0
- package/dist/JsonStr-DE1QSIsP.js.map +1 -0
- package/dist/RemoteCascader-DyHXstUo.js +257 -0
- package/dist/RemoteCascader-DyHXstUo.js.map +1 -0
- package/dist/RemoteFilterSelect-CapzhUOg.js +237 -0
- package/dist/RemoteFilterSelect-CapzhUOg.js.map +1 -0
- package/dist/RemoteModal-CcNzhnTv.js +2 -0
- package/dist/RemoteModal-DvG7obRj.js +1880 -0
- package/dist/RemoteModal-DvG7obRj.js.map +1 -0
- package/dist/RemoteSelect-CR0JeMeq.js +772 -0
- package/dist/RemoteSelect-CR0JeMeq.js.map +1 -0
- package/dist/RemoteSelectPro-3UHTtvU6.js +842 -0
- package/dist/RemoteSelectPro-3UHTtvU6.js.map +1 -0
- package/dist/RemoteTable2-DEUCRHzb.js +222 -0
- package/dist/RemoteTable2-DEUCRHzb.js.map +1 -0
- package/dist/RemoteText-BCKZJK52.js +104 -0
- package/dist/RemoteText-BCKZJK52.js.map +1 -0
- package/dist/SearchRender-CcEQ9XvG.js +2 -0
- package/dist/SearchRender-D8vSOjl2.js +456 -0
- package/dist/SearchRender-D8vSOjl2.js.map +1 -0
- package/dist/TinymceEditor-DAZAFl_G.js +32565 -0
- package/dist/TinymceEditor-DAZAFl_G.js.map +1 -0
- package/dist/_plugin-vue_export-helper-D3hKq4w_.js +8 -0
- package/dist/api/api-model.js +30 -33
- package/dist/api/api-model.js.map +1 -1
- package/dist/api/typing.js +37 -64
- package/dist/api/typing.js.map +1 -1
- package/dist/chunk-BdsCSvBP.js +20 -0
- package/dist/components/FormRender/utils.js +18 -18
- package/dist/components/FormRender/utils.js.map +1 -1
- package/dist/components/gridPage/utils.js +5 -6
- package/dist/components/gridPage/utils.js.map +1 -1
- package/dist/components/index.js +3326 -3529
- package/dist/components/index.js.map +1 -1
- package/dist/components/remotePages/index.js +2 -6189
- package/dist/components/remotePages/utils.js +18 -21
- package/dist/components/remotePages/utils.js.map +1 -1
- package/dist/default-DA2gkrqk.js +27 -0
- package/dist/default-DA2gkrqk.js.map +1 -0
- package/dist/function-ynmWsfxq.js +304 -0
- package/dist/function-ynmWsfxq.js.map +1 -0
- package/dist/index.js +9 -11
- package/dist/index.js.map +1 -1
- package/dist/init-plugin-CCr5cWmK.js +150 -0
- package/dist/init-plugin-CCr5cWmK.js.map +1 -0
- package/dist/liyu-pc-base.css +2 -0
- package/dist/lodash-T_IuH2iQ.js +3292 -0
- package/dist/lodash-T_IuH2iQ.js.map +1 -0
- package/dist/md5-Qtffih6R.js +87 -0
- package/dist/md5-Qtffih6R.js.map +1 -0
- package/dist/menu-manage-B3j8Ojpw.js +27 -0
- package/dist/menu-manage-B3j8Ojpw.js.map +1 -0
- package/dist/modal-tools-9zfwQHxQ.js +7 -0
- package/dist/modal-tools-9zfwQHxQ.js.map +1 -0
- package/dist/props-util-CmLAXMMR.js +742 -0
- package/dist/props-util-CmLAXMMR.js.map +1 -0
- package/dist/remotePages-D__cVJVt.js +9397 -0
- package/dist/remotePages-D__cVJVt.js.map +1 -0
- package/dist/tableModal-Bs04PuN6.js +119 -0
- package/dist/tableModal-Bs04PuN6.js.map +1 -0
- package/dist/tablePro-43uHVF_g.js +2 -0
- package/dist/tablePro-exWG7Whz.js +4843 -0
- package/dist/tablePro-exWG7Whz.js.map +1 -0
- package/dist/typing.js +0 -1
- package/dist/utils/excel.js +66 -90
- package/dist/utils/excel.js.map +1 -1
- package/dist/utils/function.js +2 -419
- package/dist/utils/hooks/useFetchData.js +75 -93
- package/dist/utils/hooks/useFetchData.js.map +1 -1
- package/dist/utils/hooks/useTableColumn.js +146 -147
- package/dist/utils/hooks/useTableColumn.js.map +1 -1
- package/package.json +9 -12
- package/dist/FieldRender-b92d5937.js +0 -722
- package/dist/FieldRender-b92d5937.js.map +0 -1
- package/dist/FieldRender2-b79ec734.js +0 -2541
- package/dist/FieldRender2-b79ec734.js.map +0 -1
- package/dist/FormRender3-8de23671.js +0 -340
- package/dist/FormRender3-8de23671.js.map +0 -1
- package/dist/ImportExcelModal-e7686de6.js +0 -213
- package/dist/ImportExcelModal-e7686de6.js.map +0 -1
- package/dist/Portal-2da570b4.js +0 -4861
- package/dist/Portal-2da570b4.js.map +0 -1
- package/dist/RemoteCascader-95ae61c5.js +0 -280
- package/dist/RemoteCascader-95ae61c5.js.map +0 -1
- package/dist/RemoteFilterSelect-a409c987.js +0 -263
- package/dist/RemoteFilterSelect-a409c987.js.map +0 -1
- package/dist/RemoteModal-483f0f40.js +0 -7171
- package/dist/RemoteModal-483f0f40.js.map +0 -1
- package/dist/RemoteSelect-378b198a.js +0 -928
- package/dist/RemoteSelect-378b198a.js.map +0 -1
- package/dist/RemoteSelectPro-77142d08.js +0 -952
- package/dist/RemoteSelectPro-77142d08.js.map +0 -1
- package/dist/RemoteTable2-661b396b.js +0 -229
- package/dist/RemoteTable2-661b396b.js.map +0 -1
- package/dist/RemoteText-d0d9bff0.js +0 -128
- package/dist/RemoteText-d0d9bff0.js.map +0 -1
- package/dist/SearchRender-8c0ece28.js +0 -527
- package/dist/SearchRender-8c0ece28.js.map +0 -1
- package/dist/TinymceEditor-48bc59f5.js +0 -27154
- package/dist/TinymceEditor-48bc59f5.js.map +0 -1
- package/dist/__uno-4ed993c7.js +0 -1
- package/dist/__uno-4ed993c7.js.map +0 -1
- package/dist/_plugin-vue_export-helper-dad06003.js +0 -9
- package/dist/_plugin-vue_export-helper-dad06003.js.map +0 -1
- package/dist/components/remotePages/index.js.map +0 -1
- package/dist/default-4aafb7d0.js +0 -30
- package/dist/default-4aafb7d0.js.map +0 -1
- package/dist/index-a380149d.js +0 -68
- package/dist/index-a380149d.js.map +0 -1
- package/dist/index-d4fcb153.js +0 -159
- package/dist/index-d4fcb153.js.map +0 -1
- package/dist/index-eb15ea94.js +0 -56
- package/dist/index-eb15ea94.js.map +0 -1
- package/dist/index-f0131145.js +0 -157
- package/dist/index-f0131145.js.map +0 -1
- package/dist/init-plugin-b7b03c6f.js +0 -224
- package/dist/init-plugin-b7b03c6f.js.map +0 -1
- package/dist/lodash-18e68795.js +0 -3685
- package/dist/lodash-18e68795.js.map +0 -1
- package/dist/md5-37c2dd18.js +0 -89
- package/dist/md5-37c2dd18.js.map +0 -1
- package/dist/menu-manage-7e48dfbe.js +0 -31
- package/dist/menu-manage-7e48dfbe.js.map +0 -1
- package/dist/modal-tools-60526bc1.js +0 -7
- package/dist/modal-tools-60526bc1.js.map +0 -1
- package/dist/style.css +0 -1
- package/dist/tableModal-eea5facd.js +0 -136
- package/dist/tableModal-eea5facd.js.map +0 -1
- package/dist/tablePro-0541ef21.js +0 -4753
- package/dist/tablePro-0541ef21.js.map +0 -1
- package/dist/typing.js.map +0 -1
- package/dist/utils/function.js.map +0 -1
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { n as e } from "./chunk-BdsCSvBP.js";
|
|
2
|
+
import { t } from "./_plugin-vue_export-helper-D3hKq4w_.js";
|
|
3
|
+
import { Fragment as n, createElementBlock as r, createElementVNode as i, createSlots as a, createTextVNode as o, createVNode as s, defineComponent as c, openBlock as l, reactive as u, ref as d, renderList as f, resolveComponent as p, toDisplayString as m, watch as h, withCtx as g } from "vue";
|
|
4
|
+
import { cloneDeep as _ } from "lodash-es";
|
|
5
|
+
import { PlusOutlined as v } from "@ant-design/icons-vue";
|
|
6
|
+
//#region src/components/FormRender/AttributeNomTable/index.vue?vue&type=script&lang.ts
|
|
7
|
+
var y = [
|
|
8
|
+
{
|
|
9
|
+
title: "序号",
|
|
10
|
+
dataIndex: "key",
|
|
11
|
+
width: "10%"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
title: "日期",
|
|
15
|
+
dataIndex: "name",
|
|
16
|
+
width: "40%",
|
|
17
|
+
slots: { customRender: "name" }
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
title: "数量",
|
|
21
|
+
dataIndex: "value",
|
|
22
|
+
width: "40%",
|
|
23
|
+
slots: { customRender: "value" }
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
title: "操作",
|
|
27
|
+
dataIndex: "operation",
|
|
28
|
+
slots: { customRender: "operation" }
|
|
29
|
+
}
|
|
30
|
+
], b = c({
|
|
31
|
+
name: "AttributeNomTable",
|
|
32
|
+
props: {
|
|
33
|
+
field: {
|
|
34
|
+
type: Object,
|
|
35
|
+
required: !0
|
|
36
|
+
},
|
|
37
|
+
value: {
|
|
38
|
+
type: Array,
|
|
39
|
+
required: !0,
|
|
40
|
+
default: () => []
|
|
41
|
+
},
|
|
42
|
+
formModel: {
|
|
43
|
+
type: Object,
|
|
44
|
+
required: !0
|
|
45
|
+
},
|
|
46
|
+
init_model: {
|
|
47
|
+
type: Object,
|
|
48
|
+
default: () => {}
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
emits: ["update:value"],
|
|
52
|
+
setup(e, { emit: t }) {
|
|
53
|
+
let n = u({}), r = (e) => {
|
|
54
|
+
n[e] = _(i.value.filter((t) => e === t.key)[0]);
|
|
55
|
+
}, i = d([]);
|
|
56
|
+
return e.value && e.value.hasOwnProperty("length") && e.value.map((e, t) => {
|
|
57
|
+
i.value.push({
|
|
58
|
+
key: (t + 1).toString(),
|
|
59
|
+
...e
|
|
60
|
+
}), r((t + 1).toString());
|
|
61
|
+
}), h(() => n, () => {
|
|
62
|
+
t("update:value", i.value.map((e) => ({
|
|
63
|
+
name: n[e.key].name,
|
|
64
|
+
value: n[e.key].value
|
|
65
|
+
})));
|
|
66
|
+
}, { deep: !0 }), {
|
|
67
|
+
props: e,
|
|
68
|
+
columns: y,
|
|
69
|
+
editableData: n,
|
|
70
|
+
dataSource: i,
|
|
71
|
+
add_attr: () => {
|
|
72
|
+
if (i.value.length == 0) i.value.push({
|
|
73
|
+
key: "1",
|
|
74
|
+
name: "",
|
|
75
|
+
value: ""
|
|
76
|
+
}), r("1");
|
|
77
|
+
else {
|
|
78
|
+
let e = i.value[i.value.length - 1], t = (Number(e.key) + 1).toString();
|
|
79
|
+
i.value.push({
|
|
80
|
+
key: t,
|
|
81
|
+
name: "",
|
|
82
|
+
value: ""
|
|
83
|
+
}), r(t);
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
cancel: (e) => {
|
|
87
|
+
i.value = i.value.filter((t) => e !== t.key), delete n[e];
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
},
|
|
91
|
+
data() {
|
|
92
|
+
return { model: this.value };
|
|
93
|
+
},
|
|
94
|
+
components: { PlusOutlined: v }
|
|
95
|
+
}), x = /* @__PURE__ */ e({ default: () => w }), S = { class: "editable-row-operations" };
|
|
96
|
+
function C(e, t, c, u, d, h) {
|
|
97
|
+
let _ = p("plus-outlined"), v = p("a-button"), y = p("a-input"), b = p("a-popconfirm"), x = p("a-table");
|
|
98
|
+
return l(), r(n, null, [s(v, {
|
|
99
|
+
size: "small",
|
|
100
|
+
type: "primary",
|
|
101
|
+
onClick: e.add_attr
|
|
102
|
+
}, {
|
|
103
|
+
icon: g(() => [s(_)]),
|
|
104
|
+
default: g(() => [t[0] ||= o(" 添加一行 ")]),
|
|
105
|
+
_: 1
|
|
106
|
+
}, 8, ["onClick"]), s(x, {
|
|
107
|
+
columns: e.columns,
|
|
108
|
+
"data-source": e.dataSource,
|
|
109
|
+
pagination: !1,
|
|
110
|
+
"row-height": 16,
|
|
111
|
+
scroll: { y: 200 },
|
|
112
|
+
bordered: "",
|
|
113
|
+
class: "ant-table-striped attribute-table",
|
|
114
|
+
size: "small"
|
|
115
|
+
}, a({
|
|
116
|
+
operation: g(({ record: n }) => [i("div", S, [i("span", null, [s(b, {
|
|
117
|
+
title: "确认删除?",
|
|
118
|
+
onConfirm: (t) => e.cancel(n.key)
|
|
119
|
+
}, {
|
|
120
|
+
default: g(() => t[1] ||= [i("a", null, "删除", -1)]),
|
|
121
|
+
_: 2
|
|
122
|
+
}, 1032, ["onConfirm"])])])]),
|
|
123
|
+
footer: g(() => [o("共" + m(e.dataSource.length) + "个属性。", 1)]),
|
|
124
|
+
_: 2
|
|
125
|
+
}, [f(["name", "value"], (t) => ({
|
|
126
|
+
name: t,
|
|
127
|
+
fn: g(({ record: n }) => [i("div", null, [s(y, {
|
|
128
|
+
value: e.editableData[n.key][t],
|
|
129
|
+
"onUpdate:value": (r) => e.editableData[n.key][t] = r,
|
|
130
|
+
size: "small",
|
|
131
|
+
style: { margin: "-5px 0" }
|
|
132
|
+
}, null, 8, ["value", "onUpdate:value"])])])
|
|
133
|
+
}))]), 1032, ["columns", "data-source"])], 64);
|
|
134
|
+
}
|
|
135
|
+
var w = /* @__PURE__ */ t(b, [["render", C]]);
|
|
136
|
+
//#endregion
|
|
137
|
+
export { x as n, w as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AttributeNomTable-BV3zeA9I.js","names":[],"sources":["../src/components/FormRender/AttributeNomTable/index.vue","../src/components/FormRender/AttributeNomTable/index.vue"],"sourcesContent":["<template>\n <a-button size=\"small\" type=\"primary\" @click=\"add_attr\">\n <template #icon>\n <plus-outlined />\n </template>\n 添加一行\n </a-button>\n <a-table\n :columns=\"columns\"\n :data-source=\"dataSource\"\n :pagination=\"false\"\n :row-height=\"16\"\n :scroll=\"{ y: 200 }\"\n bordered\n class=\"ant-table-striped attribute-table\"\n size=\"small\"\n >\n <template v-for=\"col in ['name', 'value']\" :key=\"col\" #[col]=\"{ record }\">\n <div>\n <a-input v-model:value=\"editableData[record.key][col]\" :size=\"'small'\" style=\"margin: -5px 0\" />\n </div>\n </template>\n <template #operation=\"{ record }\">\n <div class=\"editable-row-operations\">\n <span>\n <a-popconfirm title=\"确认删除?\" @confirm=\"cancel(record.key)\">\n <a>删除</a>\n </a-popconfirm>\n </span>\n </div>\n </template>\n <template #footer>共{{ dataSource.length }}个属性。</template>\n </a-table>\n</template>\n\n<script lang=\"ts\">\nimport type { UnwrapRef } from 'vue';\nimport { defineComponent, reactive, ref, watch } from 'vue';\nimport { cloneDeep } from 'lodash-es';\nimport { PlusOutlined } from '@ant-design/icons-vue';\n\nconst columns = [\n {\n title: '序号',\n dataIndex: 'key',\n width: '10%',\n },\n {\n title: '日期',\n dataIndex: 'name',\n width: '40%',\n slots: { customRender: 'name' },\n },\n {\n title: '数量',\n dataIndex: 'value',\n width: '40%',\n slots: { customRender: 'value' },\n },\n {\n title: '操作',\n dataIndex: 'operation',\n slots: { customRender: 'operation' },\n },\n];\n\ninterface DataItem {\n key: string;\n name: string;\n value: string;\n}\n\nexport default defineComponent({\n name: 'AttributeNomTable',\n props: {\n field: {\n type: Object,\n required: true,\n },\n\n value: {\n type: Array,\n required: true,\n default: () => [],\n },\n formModel: {\n type: Object,\n required: true,\n },\n init_model: {\n type: Object,\n default: () => {},\n },\n },\n emits: ['update:value'],\n setup(props, { emit }) {\n const editableData: UnwrapRef<Record<string, DataItem>> = reactive({});\n const edit = (key: string) => {\n editableData[key] = cloneDeep(\n dataSource.value.filter((item: DataItem) => key === item.key)[0],\n );\n };\n\n const dataSource: any = ref([]);\n if (props.value && props.value.hasOwnProperty('length')) {\n props.value.map((item: any, index: number) => {\n dataSource.value.push({ key: (index + 1).toString(), ...item });\n edit((index + 1).toString());\n });\n }\n\n const cancel = (key: string) => {\n dataSource.value = dataSource.value.filter((item: DataItem) => key !== item.key);\n delete editableData[key];\n };\n\n const add_attr = () => {\n if (dataSource.value.length == 0) {\n dataSource.value.push({ key: '1', name: '', value: '' });\n edit('1');\n } else {\n const last: DataItem = dataSource.value[dataSource.value.length - 1];\n const key: string = (Number(last.key) + 1).toString();\n dataSource.value.push({ key: key, name: '', value: '' });\n edit(key);\n }\n };\n\n const handleChange = () => {\n const list = dataSource.value.map((item: DataItem) => {\n return { name: editableData[item.key].name, value: editableData[item.key].value };\n });\n emit('update:value', list);\n };\n\n watch(() => editableData, handleChange, {\n deep: true,\n });\n\n return {\n props,\n columns,\n editableData,\n dataSource,\n add_attr,\n cancel,\n };\n },\n\n data() {\n return {\n model: this.value,\n };\n },\n components: {\n PlusOutlined,\n },\n});\n</script>\n<style lang=\"less\">\n.attribute-table {\n .ant-table-footer {\n padding: 5px;\n }\n}\n</style>\n","<template>\n <a-button size=\"small\" type=\"primary\" @click=\"add_attr\">\n <template #icon>\n <plus-outlined />\n </template>\n 添加一行\n </a-button>\n <a-table\n :columns=\"columns\"\n :data-source=\"dataSource\"\n :pagination=\"false\"\n :row-height=\"16\"\n :scroll=\"{ y: 200 }\"\n bordered\n class=\"ant-table-striped attribute-table\"\n size=\"small\"\n >\n <template v-for=\"col in ['name', 'value']\" :key=\"col\" #[col]=\"{ record }\">\n <div>\n <a-input v-model:value=\"editableData[record.key][col]\" :size=\"'small'\" style=\"margin: -5px 0\" />\n </div>\n </template>\n <template #operation=\"{ record }\">\n <div class=\"editable-row-operations\">\n <span>\n <a-popconfirm title=\"确认删除?\" @confirm=\"cancel(record.key)\">\n <a>删除</a>\n </a-popconfirm>\n </span>\n </div>\n </template>\n <template #footer>共{{ dataSource.length }}个属性。</template>\n </a-table>\n</template>\n\n<script lang=\"ts\">\nimport type { UnwrapRef } from 'vue';\nimport { defineComponent, reactive, ref, watch } from 'vue';\nimport { cloneDeep } from 'lodash-es';\nimport { PlusOutlined } from '@ant-design/icons-vue';\n\nconst columns = [\n {\n title: '序号',\n dataIndex: 'key',\n width: '10%',\n },\n {\n title: '日期',\n dataIndex: 'name',\n width: '40%',\n slots: { customRender: 'name' },\n },\n {\n title: '数量',\n dataIndex: 'value',\n width: '40%',\n slots: { customRender: 'value' },\n },\n {\n title: '操作',\n dataIndex: 'operation',\n slots: { customRender: 'operation' },\n },\n];\n\ninterface DataItem {\n key: string;\n name: string;\n value: string;\n}\n\nexport default defineComponent({\n name: 'AttributeNomTable',\n props: {\n field: {\n type: Object,\n required: true,\n },\n\n value: {\n type: Array,\n required: true,\n default: () => [],\n },\n formModel: {\n type: Object,\n required: true,\n },\n init_model: {\n type: Object,\n default: () => {},\n },\n },\n emits: ['update:value'],\n setup(props, { emit }) {\n const editableData: UnwrapRef<Record<string, DataItem>> = reactive({});\n const edit = (key: string) => {\n editableData[key] = cloneDeep(\n dataSource.value.filter((item: DataItem) => key === item.key)[0],\n );\n };\n\n const dataSource: any = ref([]);\n if (props.value && props.value.hasOwnProperty('length')) {\n props.value.map((item: any, index: number) => {\n dataSource.value.push({ key: (index + 1).toString(), ...item });\n edit((index + 1).toString());\n });\n }\n\n const cancel = (key: string) => {\n dataSource.value = dataSource.value.filter((item: DataItem) => key !== item.key);\n delete editableData[key];\n };\n\n const add_attr = () => {\n if (dataSource.value.length == 0) {\n dataSource.value.push({ key: '1', name: '', value: '' });\n edit('1');\n } else {\n const last: DataItem = dataSource.value[dataSource.value.length - 1];\n const key: string = (Number(last.key) + 1).toString();\n dataSource.value.push({ key: key, name: '', value: '' });\n edit(key);\n }\n };\n\n const handleChange = () => {\n const list = dataSource.value.map((item: DataItem) => {\n return { name: editableData[item.key].name, value: editableData[item.key].value };\n });\n emit('update:value', list);\n };\n\n watch(() => editableData, handleChange, {\n deep: true,\n });\n\n return {\n props,\n columns,\n editableData,\n dataSource,\n add_attr,\n cancel,\n };\n },\n\n data() {\n return {\n model: this.value,\n };\n },\n components: {\n PlusOutlined,\n },\n});\n</script>\n<style lang=\"less\">\n.attribute-table {\n .ant-table-footer {\n padding: 5px;\n }\n}\n</style>\n"],"mappings":"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"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { n as e } from "./chunk-BdsCSvBP.js";
|
|
2
|
+
import { t } from "./_plugin-vue_export-helper-D3hKq4w_.js";
|
|
3
|
+
import { createElementBlock as n, createElementVNode as r, createSlots as i, createTextVNode as a, createVNode as o, defineComponent as s, openBlock as c, reactive as l, ref as u, renderList as d, resolveComponent as f, toDisplayString as p, watch as m, withCtx as h } from "vue";
|
|
4
|
+
import { cloneDeep as g } from "lodash-es";
|
|
5
|
+
import { PlusOutlined as _ } from "@ant-design/icons-vue";
|
|
6
|
+
//#region src/components/FormRender/AttributeTable/index.vue?vue&type=script&lang.ts
|
|
7
|
+
var v = [
|
|
8
|
+
{
|
|
9
|
+
title: "序号",
|
|
10
|
+
dataIndex: "key",
|
|
11
|
+
width: "10%"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
title: "属性",
|
|
15
|
+
dataIndex: "name",
|
|
16
|
+
width: "40%",
|
|
17
|
+
slots: { customRender: "name" }
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
title: "值",
|
|
21
|
+
dataIndex: "value",
|
|
22
|
+
width: "40%",
|
|
23
|
+
slots: { customRender: "value" }
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
title: "操作",
|
|
27
|
+
dataIndex: "operation",
|
|
28
|
+
slots: { customRender: "operation" }
|
|
29
|
+
}
|
|
30
|
+
], y = s({
|
|
31
|
+
name: "AttributeTable",
|
|
32
|
+
props: {
|
|
33
|
+
field: {
|
|
34
|
+
type: Object,
|
|
35
|
+
required: !0
|
|
36
|
+
},
|
|
37
|
+
value: {
|
|
38
|
+
type: [Array, Object],
|
|
39
|
+
required: !1,
|
|
40
|
+
default: () => []
|
|
41
|
+
},
|
|
42
|
+
formModel: {
|
|
43
|
+
type: Object,
|
|
44
|
+
required: !0
|
|
45
|
+
},
|
|
46
|
+
init_model: {
|
|
47
|
+
type: Object,
|
|
48
|
+
default: () => {}
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
emits: ["update:value"],
|
|
52
|
+
setup(e, { emit: t }) {
|
|
53
|
+
let n = l({}), r = (e) => {
|
|
54
|
+
n[e] = g(i.value.filter((t) => e === t.key)[0]);
|
|
55
|
+
}, i = u([]);
|
|
56
|
+
return e.value && e.value.hasOwnProperty("length") && e.value.map((e, t) => {
|
|
57
|
+
i.value.push({
|
|
58
|
+
key: (t + 1).toString(),
|
|
59
|
+
...e
|
|
60
|
+
}), r((t + 1).toString());
|
|
61
|
+
}), m(() => n, () => {
|
|
62
|
+
t("update:value", i.value.map((e) => ({
|
|
63
|
+
name: n[e.key].name,
|
|
64
|
+
value: n[e.key].value
|
|
65
|
+
})));
|
|
66
|
+
}, { deep: !0 }), {
|
|
67
|
+
props: e,
|
|
68
|
+
columns: v,
|
|
69
|
+
editableData: n,
|
|
70
|
+
dataSource: i,
|
|
71
|
+
add_attr: () => {
|
|
72
|
+
if (i.value.length == 0) i.value.push({
|
|
73
|
+
key: "1",
|
|
74
|
+
name: "",
|
|
75
|
+
value: ""
|
|
76
|
+
}), r("1");
|
|
77
|
+
else {
|
|
78
|
+
let e = i.value[i.value.length - 1], t = (Number(e.key) + 1).toString();
|
|
79
|
+
i.value.push({
|
|
80
|
+
key: t,
|
|
81
|
+
name: "",
|
|
82
|
+
value: ""
|
|
83
|
+
}), r(t);
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
cancel: (e) => {
|
|
87
|
+
i.value = i.value.filter((t) => e !== t.key), delete n[e];
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
},
|
|
91
|
+
data() {
|
|
92
|
+
return { model: this.value };
|
|
93
|
+
},
|
|
94
|
+
components: { PlusOutlined: _ }
|
|
95
|
+
}), b = /* @__PURE__ */ e({ default: () => C }), x = { class: "editable-row-operations" };
|
|
96
|
+
function S(e, t, s, l, u, m) {
|
|
97
|
+
let g = f("plus-outlined"), _ = f("a-button"), v = f("a-input"), y = f("a-popconfirm"), b = f("a-table");
|
|
98
|
+
return c(), n("div", null, [o(_, {
|
|
99
|
+
size: "small",
|
|
100
|
+
type: "primary",
|
|
101
|
+
onClick: e.add_attr
|
|
102
|
+
}, {
|
|
103
|
+
icon: h(() => [o(g)]),
|
|
104
|
+
default: h(() => [t[0] ||= a(" 添加一行 ")]),
|
|
105
|
+
_: 1
|
|
106
|
+
}, 8, ["onClick"]), o(b, {
|
|
107
|
+
size: "small",
|
|
108
|
+
class: "ant-table-striped attribute-table",
|
|
109
|
+
columns: e.columns,
|
|
110
|
+
"data-source": e.dataSource,
|
|
111
|
+
bordered: "",
|
|
112
|
+
scroll: { y: 200 },
|
|
113
|
+
pagination: !1
|
|
114
|
+
}, i({
|
|
115
|
+
operation: h(({ record: n }) => [r("div", x, [r("span", null, [o(y, {
|
|
116
|
+
title: "确认删除?",
|
|
117
|
+
onConfirm: (t) => e.cancel(n.key)
|
|
118
|
+
}, {
|
|
119
|
+
default: h(() => t[1] ||= [r("a", null, "删除", -1)]),
|
|
120
|
+
_: 2
|
|
121
|
+
}, 1032, ["onConfirm"])])])]),
|
|
122
|
+
footer: h(() => [a("共" + p(e.dataSource.length) + "个属性。", 1)]),
|
|
123
|
+
_: 2
|
|
124
|
+
}, [d(["name", "value"], (t) => ({
|
|
125
|
+
name: t,
|
|
126
|
+
fn: h(({ record: n }) => [r("div", null, [o(v, {
|
|
127
|
+
value: e.editableData[n.key][t],
|
|
128
|
+
"onUpdate:value": (r) => e.editableData[n.key][t] = r,
|
|
129
|
+
style: { margin: "-5px 0" }
|
|
130
|
+
}, null, 8, ["value", "onUpdate:value"])])])
|
|
131
|
+
}))]), 1032, ["columns", "data-source"])]);
|
|
132
|
+
}
|
|
133
|
+
var C = /* @__PURE__ */ t(y, [["render", S]]);
|
|
134
|
+
//#endregion
|
|
135
|
+
export { b as n, C as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AttributeTable-Dztznjrx.js","names":[],"sources":["../src/components/FormRender/AttributeTable/index.vue","../src/components/FormRender/AttributeTable/index.vue"],"sourcesContent":["<template>\n <div>\n <a-button size=\"small\" type=\"primary\" @click=\"add_attr\">\n <template #icon>\n <plus-outlined/>\n </template>\n 添加一行\n </a-button>\n <a-table\n size=\"small\"\n class=\"ant-table-striped attribute-table\"\n :columns=\"columns\"\n :data-source=\"dataSource\"\n bordered\n :scroll=\"{ y: 200 }\"\n :pagination=\"false\"\n >\n <template v-for=\"col in ['name', 'value']\" #[col]=\"{ record }\" :key=\"col\">\n <div>\n <a-input v-model:value=\"editableData[record.key][col]\" style=\"margin: -5px 0\"/>\n </div>\n </template>\n <template #operation=\"{ record }\">\n <div class=\"editable-row-operations\">\n <span>\n <a-popconfirm title=\"确认删除?\" @confirm=\"cancel(record.key)\">\n <a>删除</a>\n </a-popconfirm>\n </span>\n </div>\n </template>\n <template #footer>共{{ dataSource.length }}个属性。</template>\n </a-table>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport type { UnwrapRef } from 'vue';\nimport { defineComponent, reactive, ref, watch } from 'vue';\nimport { cloneDeep } from 'lodash-es';\nimport { PlusOutlined } from '@ant-design/icons-vue';\n\nconst columns = [\n {\n title: '序号',\n dataIndex: 'key',\n width: '10%',\n },\n {\n title: '属性',\n dataIndex: 'name',\n width: '40%',\n slots: { customRender: 'name' },\n },\n {\n title: '值',\n dataIndex: 'value',\n width: '40%',\n slots: { customRender: 'value' },\n },\n {\n title: '操作',\n dataIndex: 'operation',\n slots: { customRender: 'operation' },\n },\n];\n\ninterface DataItem {\n key: string;\n name: string;\n value: string;\n}\n\nexport default defineComponent({\n name: 'AttributeTable',\n props: {\n field: {\n type: Object,\n required: true,\n },\n\n value: {\n type: [Array, Object],\n required: false,\n default: () => [],\n },\n formModel: {\n type: Object,\n required: true,\n },\n init_model: {\n type: Object,\n default: () => {\n },\n },\n },\n emits: ['update:value'],\n setup(props, { emit }) {\n const editableData: UnwrapRef<Record<string, DataItem>> = reactive({});\n const edit = (key: string) => {\n editableData[key] = cloneDeep(\n dataSource.value.filter((item: DataItem) => key === item.key)[0],\n );\n };\n\n const dataSource: any = ref([]);\n if (props.value && props.value.hasOwnProperty('length')) {\n props.value.map((item: any, index: number) => {\n dataSource.value.push({ key: (index + 1).toString(), ...item });\n edit((index + 1).toString());\n });\n }\n\n const cancel = (key: string) => {\n dataSource.value = dataSource.value.filter((item: DataItem) => key !== item.key);\n delete editableData[key];\n };\n\n const add_attr = () => {\n if (dataSource.value.length == 0) {\n dataSource.value.push({ key: '1', name: '', value: '' });\n edit('1');\n } else {\n const last: DataItem = dataSource.value[dataSource.value.length - 1];\n const key: string = (Number(last.key) + 1).toString();\n dataSource.value.push({ key: key, name: '', value: '' });\n edit(key);\n }\n };\n\n const handleChange = () => {\n const list = dataSource.value.map((item: DataItem) => {\n return { name: editableData[item.key].name, value: editableData[item.key].value };\n });\n emit('update:value', list);\n };\n\n watch(() => editableData, handleChange, {\n deep: true,\n });\n\n return {\n props,\n columns,\n editableData,\n dataSource,\n add_attr,\n cancel,\n };\n },\n\n data() {\n return {\n model: this.value,\n };\n },\n components: {\n PlusOutlined,\n },\n});\n</script>\n<style lang=\"less\">\n.attribute-table {\n .ant-table-footer {\n padding: 5px;\n }\n}\n</style>\n","<template>\n <div>\n <a-button size=\"small\" type=\"primary\" @click=\"add_attr\">\n <template #icon>\n <plus-outlined/>\n </template>\n 添加一行\n </a-button>\n <a-table\n size=\"small\"\n class=\"ant-table-striped attribute-table\"\n :columns=\"columns\"\n :data-source=\"dataSource\"\n bordered\n :scroll=\"{ y: 200 }\"\n :pagination=\"false\"\n >\n <template v-for=\"col in ['name', 'value']\" #[col]=\"{ record }\" :key=\"col\">\n <div>\n <a-input v-model:value=\"editableData[record.key][col]\" style=\"margin: -5px 0\"/>\n </div>\n </template>\n <template #operation=\"{ record }\">\n <div class=\"editable-row-operations\">\n <span>\n <a-popconfirm title=\"确认删除?\" @confirm=\"cancel(record.key)\">\n <a>删除</a>\n </a-popconfirm>\n </span>\n </div>\n </template>\n <template #footer>共{{ dataSource.length }}个属性。</template>\n </a-table>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport type { UnwrapRef } from 'vue';\nimport { defineComponent, reactive, ref, watch } from 'vue';\nimport { cloneDeep } from 'lodash-es';\nimport { PlusOutlined } from '@ant-design/icons-vue';\n\nconst columns = [\n {\n title: '序号',\n dataIndex: 'key',\n width: '10%',\n },\n {\n title: '属性',\n dataIndex: 'name',\n width: '40%',\n slots: { customRender: 'name' },\n },\n {\n title: '值',\n dataIndex: 'value',\n width: '40%',\n slots: { customRender: 'value' },\n },\n {\n title: '操作',\n dataIndex: 'operation',\n slots: { customRender: 'operation' },\n },\n];\n\ninterface DataItem {\n key: string;\n name: string;\n value: string;\n}\n\nexport default defineComponent({\n name: 'AttributeTable',\n props: {\n field: {\n type: Object,\n required: true,\n },\n\n value: {\n type: [Array, Object],\n required: false,\n default: () => [],\n },\n formModel: {\n type: Object,\n required: true,\n },\n init_model: {\n type: Object,\n default: () => {\n },\n },\n },\n emits: ['update:value'],\n setup(props, { emit }) {\n const editableData: UnwrapRef<Record<string, DataItem>> = reactive({});\n const edit = (key: string) => {\n editableData[key] = cloneDeep(\n dataSource.value.filter((item: DataItem) => key === item.key)[0],\n );\n };\n\n const dataSource: any = ref([]);\n if (props.value && props.value.hasOwnProperty('length')) {\n props.value.map((item: any, index: number) => {\n dataSource.value.push({ key: (index + 1).toString(), ...item });\n edit((index + 1).toString());\n });\n }\n\n const cancel = (key: string) => {\n dataSource.value = dataSource.value.filter((item: DataItem) => key !== item.key);\n delete editableData[key];\n };\n\n const add_attr = () => {\n if (dataSource.value.length == 0) {\n dataSource.value.push({ key: '1', name: '', value: '' });\n edit('1');\n } else {\n const last: DataItem = dataSource.value[dataSource.value.length - 1];\n const key: string = (Number(last.key) + 1).toString();\n dataSource.value.push({ key: key, name: '', value: '' });\n edit(key);\n }\n };\n\n const handleChange = () => {\n const list = dataSource.value.map((item: DataItem) => {\n return { name: editableData[item.key].name, value: editableData[item.key].value };\n });\n emit('update:value', list);\n };\n\n watch(() => editableData, handleChange, {\n deep: true,\n });\n\n return {\n props,\n columns,\n editableData,\n dataSource,\n add_attr,\n cancel,\n };\n },\n\n data() {\n return {\n model: this.value,\n };\n },\n components: {\n PlusOutlined,\n },\n});\n</script>\n<style lang=\"less\">\n.attribute-table {\n .ant-table-footer {\n padding: 5px;\n }\n}\n</style>\n"],"mappings":";;;;;;AA0CA,IAAM,IAAU;CACd;EACE,OAAO;EACP,WAAW;EACX,OAAO;EACR;CACD;EACE,OAAO;EACP,WAAW;EACX,OAAO;EACP,OAAO,EAAE,cAAc,QAAQ;EAChC;CACD;EACE,OAAO;EACP,WAAW;EACX,OAAO;EACP,OAAO,EAAE,cAAc,SAAS;EACjC;CACD;EACE,OAAO;EACP,WAAW;EACX,OAAO,EAAE,cAAc,aAAa;EACrC;CACF,EAQD,IAAe,EAAgB;CAC7B,MAAM;CACN,OAAO;EACL,OAAO;GACL,MAAM;GACN,UAAU;GACX;EAED,OAAO;GACL,MAAM,CAAC,OAAO,OAAO;GACrB,UAAU;GACV,eAAe,EAAE;GAClB;EACD,WAAW;GACT,MAAM;GACN,UAAU;GACX;EACD,YAAY;GACV,MAAM;GACN,eAAe;GAEhB;EACF;CACD,OAAO,CAAC,eAAe;CACvB,MAAM,GAAO,EAAE,WAAQ;EACrB,IAAM,IAAoD,EAAS,EAAE,CAAC,EAChE,KAAQ,MAAgB;AAC5B,KAAa,KAAO,EAClB,EAAW,MAAM,QAAQ,MAAmB,MAAQ,EAAK,IAAI,CAAC,GAC/D;KAGG,IAAkB,EAAI,EAAE,CAAC;AAoC/B,SAnCI,EAAM,SAAS,EAAM,MAAM,eAAe,SAAS,IACrD,EAAM,MAAM,KAAK,GAAW,MAAkB;AAE5C,GADA,EAAW,MAAM,KAAK;IAAE,MAAM,IAAQ,GAAG,UAAU;IAAE,GAAG;IAAM,CAAC,EAC/D,GAAM,IAAQ,GAAG,UAAU,CAAC;IAC5B,EA2BJ,QAAY,SAPe;AAIzB,KAAK,gBAHQ,EAAW,MAAM,KAAK,OAC1B;IAAE,MAAM,EAAa,EAAK,KAAK;IAAM,OAAO,EAAa,EAAK,KAAK;IAAO,EACjF,CACwB;KAGY,EACtC,MAAM,IACP,CAAC,EAEK;GACL;GACA;GACA;GACA;GACA,gBA5BqB;AACrB,QAAI,EAAW,MAAM,UAAU,EAE7B,CADA,EAAW,MAAM,KAAK;KAAE,KAAK;KAAK,MAAM;KAAI,OAAO;KAAI,CAAC,EACxD,EAAK,IAAI;SACJ;KACL,IAAM,IAAiB,EAAW,MAAM,EAAW,MAAM,SAAS,IAC5D,KAAe,OAAO,EAAK,IAAG,GAAI,GAAG,UAAU;AAErD,KADA,EAAW,MAAM,KAAK;MAAO;MAAK,MAAM;MAAI,OAAO;MAAI,CAAC,EACxD,EAAK,EAAI;;;GAqBX,SAlCc,MAAgB;AAE9B,IADA,EAAW,QAAQ,EAAW,MAAM,QAAQ,MAAmB,MAAQ,EAAK,IAAI,EAChF,OAAO,EAAa;;GAiCrB;;CAGH,OAAO;AACL,SAAO,EACL,OAAO,KAAK,OACb;;CAEH,YAAY,EACV,iBACD;CACF,CAAC,qDCxIW,OAAM,2BAAyB;;;aAtB1C,EAgCM,OAAA,MAAA,CA/BJ,EAKW,GAAA;EALD,MAAK;EAAQ,MAAK;EAAW,SAAO,EAAA;;EACjC,MAAI,QACG,CAAhB,EAAgB,EAAA,CAAA,CAAA;EAJxB,SAAA,QAOI,CAAA,AAAA,EAAA,OAPJ,EAKiB,SAEb,CAAA,CAAA;EAPJ,GAAA;qBAQI,EAwBU,GAAA;EAvBR,MAAK;EACL,OAAM;EACL,SAAS,EAAA;EACT,eAAa,EAAA;EACd,UAAA;EACC,QAAQ,EAAA,GAAA,KAAU;EAClB,YAAY;IAfnB,EAAA;EAsBiB,WAAS,GAOZ,EAPgB,gBAAM,CAC5B,EAMM,OANN,GAMM,CALJ,EAIO,QAAA,MAAA,CAHL,EAEe,GAAA;GAFD,OAAM;GAAS,YAAO,MAAE,EAAA,OAAO,EAAO,IAAG;;GAzBnE,SAAA,QA0BuB,AAAA,EAAA,OAAA,CAAT,EAAS,KAAA,MAAN,MAAE,GAAA,CAAA,CAAA;GA1BnB,GAAA;;EA+BiB,QAAM,QAAE,CA/BzB,EA+BwB,MAAC,EAAG,EAAA,WAAW,OAAM,GAAG,QAAI,EAAA,CAAA,CAAA;EA/BpD,GAAA;KAAA,EAiB8B,CAAA,QAAA,QAAiB,GAAxB;EAjBvB,MAiBkD;EAjBlD,IAAA,GAoBc,EAH6C,gBAAM,CACzD,EAEM,OAAA,MAAA,CADJ,EAA+E,GAAA;GAA9D,OAAO,EAAA,aAAa,EAAO,KAAK;GAnB3D,mBAAA,MAAA,EAmBkC,aAAa,EAAO,KAAK,KAAG;GAAG,OAAA,EAAA,QAAA,UAAsB"}
|