@tmagic/form 1.3.8 → 1.3.9

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/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.3.8",
2
+ "version": "1.3.9",
3
3
  "name": "@tmagic/form",
4
4
  "type": "module",
5
5
  "sideEffects": [
@@ -32,8 +32,8 @@
32
32
  },
33
33
  "dependencies": {
34
34
  "@element-plus/icons-vue": "^2.3.1",
35
- "@tmagic/design": "1.3.8",
36
- "@tmagic/utils": "1.3.8",
35
+ "@tmagic/design": "1.3.9",
36
+ "@tmagic/utils": "1.3.9",
37
37
  "lodash-es": "^4.17.21",
38
38
  "sortablejs": "^1.14.0",
39
39
  "vue": "^3.3.8"
@@ -1,182 +1,190 @@
1
1
  <template>
2
- <teleport to="body" :disabled="!isFullscreen">
3
- <div ref="mTable" class="m-fields-table" :class="{ 'm-fields-table-item-extra': config.itemExtra }">
4
- <span v-if="config.extra" style="color: rgba(0, 0, 0, 0.45)" v-html="config.extra"></span>
5
- <TMagicTooltip content="拖拽可排序" placement="left-start" :disabled="config.dropSort !== true">
6
- <TMagicTable
7
- v-if="model[modelName]"
8
- ref="tMagicTable"
9
- style="width: 100%"
10
- :row-key="config.rowKey || 'id'"
11
- :data="data"
12
- :lastData="lastData"
13
- :border="config.border"
14
- :max-height="config.maxHeight"
15
- :default-expand-all="true"
16
- :key="updateKey"
17
- @select="selectHandle"
18
- @sort-change="sortChange"
19
- >
20
- <TMagicTableColumn v-if="config.itemExtra" :fixed="'left'" width="30" type="expand">
21
- <template v-slot="scope">
22
- <span v-html="itemExtra(config.itemExtra, scope.$index)" class="m-form-tip"></span>
23
- </template>
24
- </TMagicTableColumn>
25
-
26
- <TMagicTableColumn
27
- label="操作"
28
- :width="config.operateColWidth || 55"
29
- align="center"
30
- :fixed="config.fixed === false ? undefined : 'left'"
2
+ <div>
3
+ <teleport to="body" :disabled="!isFullscreen">
4
+ <div ref="mTable" class="m-fields-table" :class="{ 'm-fields-table-item-extra': config.itemExtra }">
5
+ <span v-if="config.extra" style="color: rgba(0, 0, 0, 0.45)" v-html="config.extra"></span>
6
+ <TMagicTooltip content="拖拽可排序" placement="left-start" :disabled="config.dropSort !== true">
7
+ <TMagicTable
8
+ v-if="model[modelName]"
9
+ ref="tMagicTable"
10
+ style="width: 100%"
11
+ :row-key="config.rowKey || 'id'"
12
+ :data="data"
13
+ :lastData="lastData"
14
+ :border="config.border"
15
+ :max-height="config.maxHeight"
16
+ :default-expand-all="true"
17
+ :key="updateKey"
18
+ @select="selectHandle"
19
+ @sort-change="sortChange"
31
20
  >
32
- <template v-slot="scope">
33
- <slot name="operateCol" :scope="scope"></slot>
34
- <TMagicIcon
35
- v-show="showDelete(scope.$index + 1 + pagecontext * pagesize - 1)"
36
- class="m-table-delete-icon"
37
- @click="removeHandler(scope.$index + 1 + pagecontext * pagesize - 1)"
38
- ><Delete
39
- /></TMagicIcon>
40
- </template>
41
- </TMagicTableColumn>
42
-
43
- <TMagicTableColumn v-if="sort && model[modelName] && model[modelName].length > 1" label="排序" width="60">
44
- <template v-slot="scope">
45
- <TMagicTooltip
46
- v-if="scope.$index + 1 + pagecontext * pagesize - 1 !== 0"
47
- content="点击上移,双击置顶"
48
- placement="top"
49
- >
50
- <TMagicButton
51
- plain
52
- size="small"
53
- type="primary"
54
- :icon="ArrowUp"
55
- :disabled="disabled"
56
- text
57
- @click="upHandler(scope.$index + 1 + pagecontext * pagesize - 1)"
58
- @dblclick="topHandler(scope.$index + 1 + pagecontext * pagesize - 1)"
59
- ></TMagicButton>
60
- </TMagicTooltip>
61
- <TMagicTooltip
62
- v-if="scope.$index + 1 + pagecontext * pagesize - 1 !== model[modelName].length - 1"
63
- content="点击下移,双击置底"
64
- placement="top"
65
- >
66
- <TMagicButton
67
- plain
68
- size="small"
69
- type="primary"
70
- :icon="ArrowDown"
71
- :disabled="disabled"
72
- text
73
- @click="downHandler(scope.$index + 1 + pagecontext * pagesize - 1)"
74
- @dblclick="bottomHandler(scope.$index + 1 + pagecontext * pagesize - 1)"
75
- ></TMagicButton>
76
- </TMagicTooltip>
77
- </template>
78
- </TMagicTableColumn>
79
-
80
- <TMagicTableColumn
81
- v-if="selection"
82
- align="center"
83
- header-align="center"
84
- type="selection"
85
- width="45"
86
- ></TMagicTableColumn>
87
-
88
- <TMagicTableColumn width="60" label="序号" v-if="showIndex && config.showIndex">
89
- <template v-slot="scope">{{ scope.$index + 1 + pagecontext * pagesize }}</template>
90
- </TMagicTableColumn>
21
+ <TMagicTableColumn v-if="config.itemExtra" :fixed="'left'" width="30" type="expand">
22
+ <template v-slot="scope">
23
+ <span v-html="itemExtra(config.itemExtra, scope.$index)" class="m-form-tip"></span>
24
+ </template>
25
+ </TMagicTableColumn>
91
26
 
92
- <template v-for="(column, index) in config.items">
93
27
  <TMagicTableColumn
94
- v-if="column.type !== 'hidden' && display(column.display)"
95
- :prop="column.name"
96
- :width="column.width"
97
- :label="column.label"
98
- :sortable="column.sortable"
99
- :sort-orders="['ascending', 'descending']"
100
- :key="column[mForm?.keyProp || '__key'] ?? index"
101
- :class-name="config.dropSort === true ? 'el-table__column--dropable' : ''"
28
+ label="操作"
29
+ :width="config.operateColWidth || 55"
30
+ align="center"
31
+ :fixed="config.fixed === false ? undefined : 'left'"
102
32
  >
103
- <template #default="scope">
104
- <Container
105
- v-if="scope.$index > -1"
106
- labelWidth="0"
107
- :disabled="disabled"
108
- :prop="getProp(scope.$index)"
109
- :rules="column.rules"
110
- :config="makeConfig(column, scope.row)"
111
- :model="scope.row"
112
- :lastValues="lastData[scope.$index]"
113
- :is-compare="isCompare"
114
- :size="size"
115
- @change="$emit('change', model[modelName])"
116
- @addDiffCount="onAddDiffCount()"
117
- ></Container>
33
+ <template v-slot="scope">
34
+ <slot name="operateCol" :scope="scope"></slot>
35
+ <TMagicIcon
36
+ v-show="showDelete(scope.$index + 1 + pagecontext * pagesize - 1)"
37
+ class="m-table-delete-icon"
38
+ @click="removeHandler(scope.$index + 1 + pagecontext * pagesize - 1)"
39
+ ><Delete
40
+ /></TMagicIcon>
118
41
  </template>
119
42
  </TMagicTableColumn>
120
- </template>
121
- </TMagicTable>
122
- </TMagicTooltip>
123
- <slot></slot>
124
-
125
- <div style="display: flex; justify-content: space-between; margin: 10px 0">
126
- <TMagicButton v-if="addable" size="small" type="primary" :disabled="disabled" plain @click="newHandler()"
127
- >新增一行</TMagicButton
128
- >
129
-
130
- <div style="display: flex">
131
- <TMagicButton
132
- :icon="Grid"
133
- size="small"
134
- type="primary"
135
- @click="toggleMode"
136
- v-if="enableToggleMode && config.enableToggleMode !== false && !isFullscreen"
137
- >展开配置</TMagicButton
138
- >
139
- <TMagicButton
140
- :icon="FullScreen"
141
- size="small"
142
- type="primary"
143
- @click="toggleFullscreen"
144
- v-if="config.enableFullscreen !== false"
145
- >
146
- {{ isFullscreen ? '退出全屏' : '全屏编辑' }}
147
- </TMagicButton>
148
- <TMagicUpload
149
- v-if="importable"
150
- style="display: inline-block"
151
- ref="excelBtn"
152
- action="/noop"
153
- :disabled="disabled"
154
- :on-change="excelHandler"
155
- :auto-upload="false"
156
- >
157
- <TMagicButton size="small" type="success" :disabled="disabled" plain>导入EXCEL</TMagicButton>
158
- </TMagicUpload>
159
- <TMagicButton v-if="importable" size="small" type="warning" :disabled="disabled" plain @click="clearHandler()"
160
- >清空</TMagicButton
43
+
44
+ <TMagicTableColumn v-if="sort && model[modelName] && model[modelName].length > 1" label="排序" width="60">
45
+ <template v-slot="scope">
46
+ <TMagicTooltip
47
+ v-if="scope.$index + 1 + pagecontext * pagesize - 1 !== 0"
48
+ content="点击上移,双击置顶"
49
+ placement="top"
50
+ >
51
+ <TMagicButton
52
+ plain
53
+ size="small"
54
+ type="primary"
55
+ :icon="ArrowUp"
56
+ :disabled="disabled"
57
+ text
58
+ @click="upHandler(scope.$index + 1 + pagecontext * pagesize - 1)"
59
+ @dblclick="topHandler(scope.$index + 1 + pagecontext * pagesize - 1)"
60
+ ></TMagicButton>
61
+ </TMagicTooltip>
62
+ <TMagicTooltip
63
+ v-if="scope.$index + 1 + pagecontext * pagesize - 1 !== model[modelName].length - 1"
64
+ content="点击下移,双击置底"
65
+ placement="top"
66
+ >
67
+ <TMagicButton
68
+ plain
69
+ size="small"
70
+ type="primary"
71
+ :icon="ArrowDown"
72
+ :disabled="disabled"
73
+ text
74
+ @click="downHandler(scope.$index + 1 + pagecontext * pagesize - 1)"
75
+ @dblclick="bottomHandler(scope.$index + 1 + pagecontext * pagesize - 1)"
76
+ ></TMagicButton>
77
+ </TMagicTooltip>
78
+ </template>
79
+ </TMagicTableColumn>
80
+
81
+ <TMagicTableColumn
82
+ v-if="selection"
83
+ align="center"
84
+ header-align="center"
85
+ type="selection"
86
+ width="45"
87
+ ></TMagicTableColumn>
88
+
89
+ <TMagicTableColumn width="60" label="序号" v-if="showIndex && config.showIndex">
90
+ <template v-slot="scope">{{ scope.$index + 1 + pagecontext * pagesize }}</template>
91
+ </TMagicTableColumn>
92
+
93
+ <template v-for="(column, index) in config.items">
94
+ <TMagicTableColumn
95
+ v-if="column.type !== 'hidden' && display(column.display)"
96
+ :prop="column.name"
97
+ :width="column.width"
98
+ :label="column.label"
99
+ :sortable="column.sortable"
100
+ :sort-orders="['ascending', 'descending']"
101
+ :key="column[mForm?.keyProp || '__key'] ?? index"
102
+ :class-name="config.dropSort === true ? 'el-table__column--dropable' : ''"
103
+ >
104
+ <template #default="scope">
105
+ <Container
106
+ v-if="scope.$index > -1"
107
+ labelWidth="0"
108
+ :disabled="disabled"
109
+ :prop="getProp(scope.$index)"
110
+ :rules="column.rules"
111
+ :config="makeConfig(column, scope.row)"
112
+ :model="scope.row"
113
+ :lastValues="lastData[scope.$index]"
114
+ :is-compare="isCompare"
115
+ :size="size"
116
+ @change="$emit('change', model[modelName])"
117
+ @addDiffCount="onAddDiffCount()"
118
+ ></Container>
119
+ </template>
120
+ </TMagicTableColumn>
121
+ </template>
122
+ </TMagicTable>
123
+ </TMagicTooltip>
124
+ <slot></slot>
125
+
126
+ <div style="display: flex; justify-content: space-between; margin: 10px 0">
127
+ <TMagicButton v-if="addable" size="small" type="primary" :disabled="disabled" plain @click="newHandler()"
128
+ >新增一行</TMagicButton
161
129
  >
130
+
131
+ <div style="display: flex">
132
+ <TMagicButton
133
+ :icon="Grid"
134
+ size="small"
135
+ type="primary"
136
+ @click="toggleMode"
137
+ v-if="enableToggleMode && config.enableToggleMode !== false && !isFullscreen"
138
+ >展开配置</TMagicButton
139
+ >
140
+ <TMagicButton
141
+ :icon="FullScreen"
142
+ size="small"
143
+ type="primary"
144
+ @click="toggleFullscreen"
145
+ v-if="config.enableFullscreen !== false"
146
+ >
147
+ {{ isFullscreen ? '退出全屏' : '全屏编辑' }}
148
+ </TMagicButton>
149
+ <TMagicUpload
150
+ v-if="importable"
151
+ style="display: inline-block"
152
+ ref="excelBtn"
153
+ action="/noop"
154
+ :disabled="disabled"
155
+ :on-change="excelHandler"
156
+ :auto-upload="false"
157
+ >
158
+ <TMagicButton size="small" type="success" :disabled="disabled" plain>导入EXCEL</TMagicButton>
159
+ </TMagicUpload>
160
+ <TMagicButton
161
+ v-if="importable"
162
+ size="small"
163
+ type="warning"
164
+ :disabled="disabled"
165
+ plain
166
+ @click="clearHandler()"
167
+ >清空</TMagicButton
168
+ >
169
+ </div>
162
170
  </div>
163
- </div>
164
171
 
165
- <div class="bottom" style="text-align: right" v-if="config.pagination">
166
- <TMagicPagination
167
- layout="total, sizes, prev, pager, next, jumper"
168
- :hide-on-single-page="model[modelName].length < pagesize"
169
- :current-page="pagecontext + 1"
170
- :page-sizes="[pagesize, 60, 120, 300]"
171
- :page-size="pagesize"
172
- :total="model[modelName].length"
173
- @size-change="handleSizeChange"
174
- @current-change="handleCurrentChange"
175
- >
176
- </TMagicPagination>
172
+ <div class="bottom" style="text-align: right" v-if="config.pagination">
173
+ <TMagicPagination
174
+ layout="total, sizes, prev, pager, next, jumper"
175
+ :hide-on-single-page="model[modelName].length < pagesize"
176
+ :current-page="pagecontext + 1"
177
+ :page-sizes="[pagesize, 60, 120, 300]"
178
+ :page-size="pagesize"
179
+ :total="model[modelName].length"
180
+ @size-change="handleSizeChange"
181
+ @current-change="handleCurrentChange"
182
+ >
183
+ </TMagicPagination>
184
+ </div>
177
185
  </div>
178
- </div>
179
- </teleport>
186
+ </teleport>
187
+ </div>
180
188
  </template>
181
189
 
182
190
  <script setup lang="ts">