下拉默认全选,选择展示对象的字段list
opened + selection-changed
已选中 ID: {{ selectedItems }} import { DxDropDownBox } from \'devextreme-vue/drop-down-box\';import { DxDataGrid, DxColumn, DxSelection } from \'devextreme-vue/data-grid\';export default { components: { DxDropDownBox, DxDataGrid, DxColumn, DxSelection, }, data() { return { selectedItems: [], dataSource: [ { id: 1, name: \'苹果\', color: \'红色\' }, { id: 2, name: \'香蕉\', color: \'黄色\' }, { id: 3, name: \'橙子\', color: \'橙色\' }, { id: 4, name: \'葡萄\', color: \'紫色\' }, ], }; }, methods: { onOpened() { const grid = this.$refs.dataGrid?.instance; if (grid) { grid.clearSelection(); // (可选,顺序会重排)清除当前选择,再全选 grid.selectAll(); // 注意:selectAll() 会触发 @selection-changed,所以 selectedItems 会由 onSelectionChanged 自动更新 } }, onSelectionChanged(e) { this.selectedItems = e.selectedRowKeys.map(item =>item.id); }, },};
async onMaterialInput(record, code) {
const res = await fetch(`/api/material?code=${code}`);
const data = await res.json();
// ✅ 关键:断开引用,创建新数组
record.dataSource = data.map(item => ({ ...item }));
// ✅ 确保 selectedItems 从新数组取
record.selectedItems = record.dataSource.map(item => item.id);
}
排序:
const array = [\"A#1\", \"B#2\"];
// 升序排序
const ascending = array.sort((a, b) => {
const numA = parseInt(a.split(\"#\")[1], 10);
const numB = parseInt(b.split(\"#\")[1], 10);
return numA - numB;
});
console.log(\"升序:\", ascending); // [\"A#1\", \"B#2\"]
// 降序排序
const descending = array.sort((a, b) => {
const numA = parseInt(a.split(\"#\")[1], 10);
const numB = parseInt(b.split(\"#\")[1], 10);
return numB - numA;
});
console.log(\"降序:\", descending); // [\"B#2\", \"A#1\"]
java:
import java.util.*;
public class Main {
public static void main(String[] args) {
String[] array = {\"A#1\", \"B#2\"};
System.out.println(\"原数组: \" + Arrays.toString(array));
// 升序排序
Arrays.sort(array, new HashComparator());
System.out.println(\"升序: \" + Arrays.toString(array));
// 降序排序
Arrays.sort(array, new HashComparator().reversed());
System.out.println(\"降序: \" + Arrays.toString(array));
}
}
class HashComparator implements Comparator {
@Override
public int compare(String s1, String s2) {
int num1 = Integer.parseInt(s1.split(\"#\")[1]);
int num2 = Integer.parseInt(s2.split(\"#\")[1]);
return Integer.compare(num1, num2); // 升序
}
}