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.
Files changed (148) hide show
  1. package/dist/AttributeNomTable-BV3zeA9I.js +137 -0
  2. package/dist/AttributeNomTable-BV3zeA9I.js.map +1 -0
  3. package/dist/AttributeTable-Dztznjrx.js +135 -0
  4. package/dist/AttributeTable-Dztznjrx.js.map +1 -0
  5. package/dist/FieldRender-9nTO5iHH.js +955 -0
  6. package/dist/FieldRender-9nTO5iHH.js.map +1 -0
  7. package/dist/FieldRender-C0y7Jj4j.js +2 -0
  8. package/dist/FieldRender2-DLs-3f0-.js +2849 -0
  9. package/dist/FieldRender2-DLs-3f0-.js.map +1 -0
  10. package/dist/FormRender3-Bt7fShep.js +324 -0
  11. package/dist/FormRender3-Bt7fShep.js.map +1 -0
  12. package/dist/FormRender3-DNQEIsiT.js +2 -0
  13. package/dist/ImportExcelModal-zaXQBvWZ.js +193 -0
  14. package/dist/ImportExcelModal-zaXQBvWZ.js.map +1 -0
  15. package/dist/JsonObj-Bq62nHPb.js +46 -0
  16. package/dist/JsonObj-Bq62nHPb.js.map +1 -0
  17. package/dist/JsonStr-DE1QSIsP.js +57 -0
  18. package/dist/JsonStr-DE1QSIsP.js.map +1 -0
  19. package/dist/RemoteCascader-DyHXstUo.js +257 -0
  20. package/dist/RemoteCascader-DyHXstUo.js.map +1 -0
  21. package/dist/RemoteFilterSelect-CapzhUOg.js +237 -0
  22. package/dist/RemoteFilterSelect-CapzhUOg.js.map +1 -0
  23. package/dist/RemoteModal-CcNzhnTv.js +2 -0
  24. package/dist/RemoteModal-DvG7obRj.js +1880 -0
  25. package/dist/RemoteModal-DvG7obRj.js.map +1 -0
  26. package/dist/RemoteSelect-CR0JeMeq.js +772 -0
  27. package/dist/RemoteSelect-CR0JeMeq.js.map +1 -0
  28. package/dist/RemoteSelectPro-3UHTtvU6.js +842 -0
  29. package/dist/RemoteSelectPro-3UHTtvU6.js.map +1 -0
  30. package/dist/RemoteTable2-DEUCRHzb.js +222 -0
  31. package/dist/RemoteTable2-DEUCRHzb.js.map +1 -0
  32. package/dist/RemoteText-BCKZJK52.js +104 -0
  33. package/dist/RemoteText-BCKZJK52.js.map +1 -0
  34. package/dist/SearchRender-CcEQ9XvG.js +2 -0
  35. package/dist/SearchRender-D8vSOjl2.js +456 -0
  36. package/dist/SearchRender-D8vSOjl2.js.map +1 -0
  37. package/dist/TinymceEditor-DAZAFl_G.js +32565 -0
  38. package/dist/TinymceEditor-DAZAFl_G.js.map +1 -0
  39. package/dist/_plugin-vue_export-helper-D3hKq4w_.js +8 -0
  40. package/dist/api/api-model.js +30 -33
  41. package/dist/api/api-model.js.map +1 -1
  42. package/dist/api/typing.js +37 -64
  43. package/dist/api/typing.js.map +1 -1
  44. package/dist/chunk-BdsCSvBP.js +20 -0
  45. package/dist/components/FormRender/utils.js +18 -18
  46. package/dist/components/FormRender/utils.js.map +1 -1
  47. package/dist/components/gridPage/utils.js +5 -6
  48. package/dist/components/gridPage/utils.js.map +1 -1
  49. package/dist/components/index.js +3326 -3529
  50. package/dist/components/index.js.map +1 -1
  51. package/dist/components/remotePages/index.js +2 -6189
  52. package/dist/components/remotePages/utils.js +18 -21
  53. package/dist/components/remotePages/utils.js.map +1 -1
  54. package/dist/default-DA2gkrqk.js +27 -0
  55. package/dist/default-DA2gkrqk.js.map +1 -0
  56. package/dist/function-ynmWsfxq.js +304 -0
  57. package/dist/function-ynmWsfxq.js.map +1 -0
  58. package/dist/index.js +9 -11
  59. package/dist/index.js.map +1 -1
  60. package/dist/init-plugin-CCr5cWmK.js +150 -0
  61. package/dist/init-plugin-CCr5cWmK.js.map +1 -0
  62. package/dist/liyu-pc-base.css +2 -0
  63. package/dist/lodash-T_IuH2iQ.js +3292 -0
  64. package/dist/lodash-T_IuH2iQ.js.map +1 -0
  65. package/dist/md5-Qtffih6R.js +87 -0
  66. package/dist/md5-Qtffih6R.js.map +1 -0
  67. package/dist/menu-manage-B3j8Ojpw.js +27 -0
  68. package/dist/menu-manage-B3j8Ojpw.js.map +1 -0
  69. package/dist/modal-tools-9zfwQHxQ.js +7 -0
  70. package/dist/modal-tools-9zfwQHxQ.js.map +1 -0
  71. package/dist/props-util-CmLAXMMR.js +742 -0
  72. package/dist/props-util-CmLAXMMR.js.map +1 -0
  73. package/dist/remotePages-D__cVJVt.js +9397 -0
  74. package/dist/remotePages-D__cVJVt.js.map +1 -0
  75. package/dist/tableModal-Bs04PuN6.js +119 -0
  76. package/dist/tableModal-Bs04PuN6.js.map +1 -0
  77. package/dist/tablePro-43uHVF_g.js +2 -0
  78. package/dist/tablePro-exWG7Whz.js +4843 -0
  79. package/dist/tablePro-exWG7Whz.js.map +1 -0
  80. package/dist/typing.js +0 -1
  81. package/dist/utils/excel.js +66 -90
  82. package/dist/utils/excel.js.map +1 -1
  83. package/dist/utils/function.js +2 -419
  84. package/dist/utils/hooks/useFetchData.js +75 -93
  85. package/dist/utils/hooks/useFetchData.js.map +1 -1
  86. package/dist/utils/hooks/useTableColumn.js +146 -147
  87. package/dist/utils/hooks/useTableColumn.js.map +1 -1
  88. package/package.json +9 -12
  89. package/dist/FieldRender-b92d5937.js +0 -722
  90. package/dist/FieldRender-b92d5937.js.map +0 -1
  91. package/dist/FieldRender2-b79ec734.js +0 -2541
  92. package/dist/FieldRender2-b79ec734.js.map +0 -1
  93. package/dist/FormRender3-8de23671.js +0 -340
  94. package/dist/FormRender3-8de23671.js.map +0 -1
  95. package/dist/ImportExcelModal-e7686de6.js +0 -213
  96. package/dist/ImportExcelModal-e7686de6.js.map +0 -1
  97. package/dist/Portal-2da570b4.js +0 -4861
  98. package/dist/Portal-2da570b4.js.map +0 -1
  99. package/dist/RemoteCascader-95ae61c5.js +0 -280
  100. package/dist/RemoteCascader-95ae61c5.js.map +0 -1
  101. package/dist/RemoteFilterSelect-a409c987.js +0 -263
  102. package/dist/RemoteFilterSelect-a409c987.js.map +0 -1
  103. package/dist/RemoteModal-483f0f40.js +0 -7171
  104. package/dist/RemoteModal-483f0f40.js.map +0 -1
  105. package/dist/RemoteSelect-378b198a.js +0 -928
  106. package/dist/RemoteSelect-378b198a.js.map +0 -1
  107. package/dist/RemoteSelectPro-77142d08.js +0 -952
  108. package/dist/RemoteSelectPro-77142d08.js.map +0 -1
  109. package/dist/RemoteTable2-661b396b.js +0 -229
  110. package/dist/RemoteTable2-661b396b.js.map +0 -1
  111. package/dist/RemoteText-d0d9bff0.js +0 -128
  112. package/dist/RemoteText-d0d9bff0.js.map +0 -1
  113. package/dist/SearchRender-8c0ece28.js +0 -527
  114. package/dist/SearchRender-8c0ece28.js.map +0 -1
  115. package/dist/TinymceEditor-48bc59f5.js +0 -27154
  116. package/dist/TinymceEditor-48bc59f5.js.map +0 -1
  117. package/dist/__uno-4ed993c7.js +0 -1
  118. package/dist/__uno-4ed993c7.js.map +0 -1
  119. package/dist/_plugin-vue_export-helper-dad06003.js +0 -9
  120. package/dist/_plugin-vue_export-helper-dad06003.js.map +0 -1
  121. package/dist/components/remotePages/index.js.map +0 -1
  122. package/dist/default-4aafb7d0.js +0 -30
  123. package/dist/default-4aafb7d0.js.map +0 -1
  124. package/dist/index-a380149d.js +0 -68
  125. package/dist/index-a380149d.js.map +0 -1
  126. package/dist/index-d4fcb153.js +0 -159
  127. package/dist/index-d4fcb153.js.map +0 -1
  128. package/dist/index-eb15ea94.js +0 -56
  129. package/dist/index-eb15ea94.js.map +0 -1
  130. package/dist/index-f0131145.js +0 -157
  131. package/dist/index-f0131145.js.map +0 -1
  132. package/dist/init-plugin-b7b03c6f.js +0 -224
  133. package/dist/init-plugin-b7b03c6f.js.map +0 -1
  134. package/dist/lodash-18e68795.js +0 -3685
  135. package/dist/lodash-18e68795.js.map +0 -1
  136. package/dist/md5-37c2dd18.js +0 -89
  137. package/dist/md5-37c2dd18.js.map +0 -1
  138. package/dist/menu-manage-7e48dfbe.js +0 -31
  139. package/dist/menu-manage-7e48dfbe.js.map +0 -1
  140. package/dist/modal-tools-60526bc1.js +0 -7
  141. package/dist/modal-tools-60526bc1.js.map +0 -1
  142. package/dist/style.css +0 -1
  143. package/dist/tableModal-eea5facd.js +0 -136
  144. package/dist/tableModal-eea5facd.js.map +0 -1
  145. package/dist/tablePro-0541ef21.js +0 -4753
  146. package/dist/tablePro-0541ef21.js.map +0 -1
  147. package/dist/typing.js.map +0 -1
  148. 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":"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"}