@leevan/jtui 2.0.54-beta.5 → 2.0.54-beta.6

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,6 +1,6 @@
1
1
  {
2
2
  "name": "@leevan/jtui",
3
- "version": "2.0.54-beta.5",
3
+ "version": "2.0.54-beta.6",
4
4
  "scripts": {
5
5
  "serve": "vue-cli-service serve",
6
6
  "build": "vue-cli-service build",
@@ -132,10 +132,6 @@ export default {
132
132
  watch: {
133
133
  value(newVal) {
134
134
  this.currentValue = newVal;
135
- },
136
- // 监听 currentValue 变化,实时同步给父组件
137
- currentValue(newVal) {
138
- this.$emit('input', newVal);
139
135
  }
140
136
  },
141
137
  mounted() {
@@ -156,6 +152,7 @@ export default {
156
152
  this.doComplete();
157
153
  },
158
154
  doComplete() {
155
+ this.$emit('input', this.currentValue);
159
156
  this.closeEdit();
160
157
  },
161
158
  closeEdit() {
@@ -59,7 +59,7 @@
59
59
  </div>
60
60
  <EditInput
61
61
  v-else-if="item && item.edit && item.edit.name == '$input'"
62
- :value="row[subSubItem.prop]"
62
+ v-model="row[subSubItem.prop]"
63
63
  :type="(item.edit.props && item.edit.props.type) || 'text'"
64
64
  @input="(val) => handleInputChange(val, row, subSubItem.prop)"
65
65
  />
@@ -111,7 +111,7 @@
111
111
  </div>
112
112
  <EditInput
113
113
  v-else-if="item && item.edit && item.edit.name == '$input'"
114
- :value="row[subItem.prop]"
114
+ v-model="row[subItem.prop]"
115
115
  :type="(item.edit.props && item.edit.props.type) || 'text'"
116
116
  @input="(val) => handleInputChange(val, row, subItem.prop)"
117
117
  />
@@ -164,7 +164,7 @@
164
164
  </div>
165
165
  <EditInput
166
166
  v-else-if="item && item.edit && item.edit.name == '$input'"
167
- :value="row[item.prop]"
167
+ v-model="row[item.prop]"
168
168
  :type="(item.edit.props && item.edit.props.type) || 'text'"
169
169
  @input="(val) => handleInputChange(val, row, item.prop)"
170
170
  />
@@ -181,7 +181,7 @@ export default {
181
181
  components: {
182
182
  EditInput
183
183
  },
184
-
184
+
185
185
  data() {
186
186
  return {
187
187
  isOpen: false,
@@ -226,7 +226,7 @@ export default {
226
226
  default: 0
227
227
  }
228
228
  },
229
-
229
+
230
230
  methods: {
231
231
  findVxeTable() {
232
232
  // 向上查找vxe-table实例
@@ -262,8 +262,8 @@ export default {
262
262
  return findItem ? findItem.label : (value || '请选择');
263
263
  },
264
264
  handleInputChange(val, row, prop) {
265
- // 无论字段是否存在,都使用 $set 来确保响应式
266
- this.$set(row, prop, val);
265
+ // 这个方法现在主要是为了保持接口兼容性
266
+ // 实际的值更新由 v-model 处理
267
267
  },
268
268
  toggleDropdown() {
269
269
  this.isOpen = !this.isOpen;
@@ -414,4 +414,4 @@ export default {
414
414
  width: 100%;
415
415
  }
416
416
  }
417
- </style>
417
+ </style>
@@ -77,6 +77,7 @@
77
77
  @radio-change="radioSelectChangeEvent"
78
78
  @cell-click="cellClickEvent"
79
79
  @keydown="keyEnter"
80
+ @edit-actived="handleEditActived"
80
81
  >
81
82
  <!-- 复选框列 -->
82
83
  <vxe-table-column
@@ -249,6 +250,7 @@
249
250
  @radio-change="radioSelectChangeEvent"
250
251
  @cell-click="cellClickEvent"
251
252
  @keydown="keyEnter"
253
+ @edit-actived="handleEditActived"
252
254
  >
253
255
  <!-- 复选框列 -->
254
256
  <vxe-table-column
@@ -559,6 +561,7 @@
559
561
  :loading="loading"
560
562
  @keydown="keyEnter"
561
563
  @scroll="scroll1"
564
+ @edit-actived="handleEditActived"
562
565
  :expand-config="{
563
566
  visibleMethod,
564
567
  loadMethod: expandConfig.loadMethod,
@@ -1651,6 +1654,13 @@ export default {
1651
1654
  syncData() {
1652
1655
  this.$refs[this.id].syncData();
1653
1656
  },
1657
+ // 编辑激活时,确保 row 对象中有对应的字段
1658
+ handleEditActived({ row, column }) {
1659
+ const prop = column.property;
1660
+ if (prop && !(prop in row)) {
1661
+ this.$set(row, prop, '');
1662
+ }
1663
+ },
1654
1664
  },
1655
1665
  };
1656
1666
  </script>