|
|
@@ -159,9 +159,9 @@ const state = reactive({
|
|
|
}
|
|
|
},
|
|
|
{label: '功能', prop: 'functions', width: 180, query: true, type: 'text', resizable: true},
|
|
|
- {label: '是否有泡沫', prop: 'hasFoam', width: 120, query: true, type: 'dict', conf: {dict: 'WashDevice.foam'}, resizable: true},
|
|
|
- {label: '是否有水', prop: 'hasWater', width: 120, query: true, type: 'dict', conf: {dict: 'WashDevice.water'}, resizable: true},
|
|
|
- {label: '是否支持PA', prop: 'hasPa', width: 120, query: true, type: 'dict', conf: {dict: 'yes_no'}, resizable: true},
|
|
|
+ {label: '是否有泡沫', prop: 'hasFoam', width: 120, query: true, type: 'dict', conf: {range: [{label: '有', value: '1'}, {label: '无', value: '0'}], dataRange: [{label: '有', value: '1'}, {label: '无', value: '0'}]}, resizable: true},
|
|
|
+ {label: '是否有水', prop: 'hasWater', width: 120, query: true, type: 'dict', conf: {range: [{label: '有', value: '1'}, {label: '无', value: '0'}], dataRange: [{label: '有', value: '1'}, {label: '无', value: '0'}]}, resizable: true},
|
|
|
+ {label: '是否支持PA', prop: 'hasPa', width: 120, query: true, type: 'dict', conf: {range: [{label: '是', value: '1'}, {label: '否', value: '0'}], dataRange: [{label: '是', value: '1'}, {label: '否', value: '0'}]}, resizable: true},
|
|
|
// {label: '当前温度', prop: 'temperatureChip', width: 180, query: false, type: 'text', resizable: true},
|
|
|
{label: '创建时间', prop: 'createTime', query: false, sortable: 'custom', type: 'datetime', resizable: true, conf: {format: (val: any) => u.fmt.fmtDateTime(val)}},
|
|
|
{label: '更新时间', prop: 'updateTime', query: false, sortable: 'custom', type: 'datetime', resizable: true, conf: {format: (val: any) => u.fmt.fmtDateTime(val)}},
|
|
|
@@ -268,6 +268,23 @@ onBeforeUnmount(() => {
|
|
|
})
|
|
|
|
|
|
|
|
|
+// 将 dict 返回的字符串 "0"/"1" 转为 boolean,避免后端 Boolean 字段反序列化失败
|
|
|
+const BOOL_QUERY_FIELDS = ['hasFoam', 'hasWater', 'hasPa']
|
|
|
+
|
|
|
+const normalizeQueryBooleans = (query: Record<string, any>) => {
|
|
|
+ BOOL_QUERY_FIELDS.forEach((key) => {
|
|
|
+ const v = query[key]
|
|
|
+ if (v === undefined || v === null || v === '' || v === -1 || v === '-1') {
|
|
|
+ delete query[key]
|
|
|
+ } else if (v === '1' || v === 1) {
|
|
|
+ query[key] = true
|
|
|
+ } else if (v === '0' || v === 0) {
|
|
|
+ query[key] = false
|
|
|
+ }
|
|
|
+ })
|
|
|
+ return query
|
|
|
+}
|
|
|
+
|
|
|
//region 方法区
|
|
|
// 初始化表格数据
|
|
|
const loadData = (refresh: boolean = false) => {
|
|
|
@@ -275,7 +292,8 @@ const loadData = (refresh: boolean = false) => {
|
|
|
state.pageQuery.pageNum = 1;
|
|
|
}
|
|
|
state.tableData.loading = true;
|
|
|
- $body(`/washDevice/list`, {...state.formQuery, ...state.pageQuery}).then((res: any) => {
|
|
|
+ const query = normalizeQueryBooleans({...state.formQuery, ...state.pageQuery})
|
|
|
+ $body(`/washDevice/list`, query).then((res: any) => {
|
|
|
let {list, total} = res;
|
|
|
state.tableData.data = list;
|
|
|
state.pageQuery.total = total;
|