(function () { var simpleEntityName = 'deviceConfig'; var entityName = 'DeviceConfig'; var primaryKeyField = 'id'; var fieldMeta = dedupeFieldMeta([ { field: 'id', columnName: 'id', label: '*编 号', tableProp: 'id', exportField: 'id', kind: 'text', valueType: 'number', required: true, primaryKey: true, sortable: true, textarea: false, minWidth: 90, enumOptions: [], foreignQuery: '', checkboxActiveRaw: '1', checkboxInactiveRaw: '0' }, { field: 'ip', columnName: 'ip', label: '设备ip', tableProp: 'ip', exportField: 'ip', kind: 'text', valueType: 'string', required: false, primaryKey: false, sortable: false, textarea: false, minWidth: 110, enumOptions: [], foreignQuery: '', checkboxActiveRaw: 'Y', checkboxInactiveRaw: 'N' }, { field: 'port', columnName: 'port', label: '设备端口', tableProp: 'port', exportField: 'port', kind: 'text', valueType: 'number', required: false, primaryKey: false, sortable: false, textarea: false, minWidth: 110, enumOptions: [], foreignQuery: '', checkboxActiveRaw: '1', checkboxInactiveRaw: '0' }, { field: 'threadImpl', columnName: 'thread_impl', label: '实 现 类', tableProp: 'threadImpl', exportField: 'threadImpl', kind: 'text', valueType: 'string', required: false, primaryKey: false, sortable: false, textarea: false, minWidth: 116, enumOptions: [], foreignQuery: '', checkboxActiveRaw: 'Y', checkboxInactiveRaw: 'N' }, { field: 'createTime', columnName: 'create_time', label: '创建时间', tableProp: 'createTime$', exportField: 'createTime$', kind: 'date', valueType: 'string', required: false, primaryKey: false, sortable: false, textarea: false, minWidth: 168, enumOptions: [], foreignQuery: '', checkboxActiveRaw: 'Y', checkboxInactiveRaw: 'N' }, { field: 'deviceType', columnName: 'device_type', label: '设备类型', tableProp: 'deviceType', exportField: 'deviceType', kind: 'text', valueType: 'string', required: false, primaryKey: false, sortable: false, textarea: false, minWidth: 110, enumOptions: [], foreignQuery: '', checkboxActiveRaw: 'Y', checkboxInactiveRaw: 'N' }, { field: 'deviceNo', columnName: 'device_no', label: '设备编号', tableProp: 'deviceNo', exportField: 'deviceNo', kind: 'text', valueType: 'number', required: false, primaryKey: false, sortable: false, textarea: false, minWidth: 110, enumOptions: [], foreignQuery: '', checkboxActiveRaw: '1', checkboxInactiveRaw: '0' }, { field: 'fake', columnName: 'fake', label: '虚拟设备', tableProp: 'fake$', exportField: 'fake$', kind: 'enum', valueType: 'number', required: false, primaryKey: false, sortable: false, textarea: false, minWidth: 120, enumOptions: [{ rawValue: '0', label: '否' }, { rawValue: '1', label: '是' }], foreignQuery: '', checkboxActiveRaw: '1', checkboxInactiveRaw: '0' }, { field: 'fakeInitStatus', columnName: 'fake_init_status', label: '虚拟设备初始化状态', tableProp: 'fakeInitStatus', exportField: 'fakeInitStatus', kind: 'text', valueType: 'string', required: false, primaryKey: false, sortable: false, textarea: false, minWidth: 180, enumOptions: [], foreignQuery: '', checkboxActiveRaw: 'Y', checkboxInactiveRaw: 'N' }, { field: 'gatewayId', columnName: 'gateway_id', label: '网关编号', tableProp: 'gatewayId', exportField: 'gatewayId', kind: 'text', valueType: 'number', required: false, primaryKey: false, sortable: false, textarea: false, minWidth: 110, enumOptions: [], foreignQuery: '', checkboxActiveRaw: '1', checkboxInactiveRaw: '0' }, { field: 'id', columnName: 'id', label: '*编 号', tableProp: 'id', exportField: 'id', kind: 'text', valueType: 'number', required: true, primaryKey: true, sortable: true, textarea: false, minWidth: 90, enumOptions: [], foreignQuery: '', checkboxActiveRaw: '1', checkboxInactiveRaw: '0' }, { field: 'ip', columnName: 'ip', label: '设备ip', tableProp: 'ip', exportField: 'ip', kind: 'text', valueType: 'string', required: false, primaryKey: false, sortable: false, textarea: false, minWidth: 110, enumOptions: [], foreignQuery: '', checkboxActiveRaw: 'Y', checkboxInactiveRaw: 'N' }, { field: 'port', columnName: 'port', label: '设备端口', tableProp: 'port', exportField: 'port', kind: 'text', valueType: 'number', required: false, primaryKey: false, sortable: false, textarea: false, minWidth: 110, enumOptions: [], foreignQuery: '', checkboxActiveRaw: '1', checkboxInactiveRaw: '0' }, { field: 'threadImpl', columnName: 'thread_impl', label: '实 现 类', tableProp: 'threadImpl', exportField: 'threadImpl', kind: 'text', valueType: 'string', required: false, primaryKey: false, sortable: false, textarea: false, minWidth: 116, enumOptions: [], foreignQuery: '', checkboxActiveRaw: 'Y', checkboxInactiveRaw: 'N' }, { field: 'createTime', columnName: 'create_time', label: '创建时间', tableProp: 'createTime$', exportField: 'createTime$', kind: 'date', valueType: 'string', required: false, primaryKey: false, sortable: false, textarea: false, minWidth: 168, enumOptions: [], foreignQuery: '', checkboxActiveRaw: 'Y', checkboxInactiveRaw: 'N' }, { field: 'deviceType', columnName: 'device_type', label: '设备类型', tableProp: 'deviceType', exportField: 'deviceType', kind: 'text', valueType: 'string', required: false, primaryKey: false, sortable: false, textarea: false, minWidth: 110, enumOptions: [], foreignQuery: '', checkboxActiveRaw: 'Y', checkboxInactiveRaw: 'N' }, { field: 'deviceNo', columnName: 'device_no', label: '设备编号', tableProp: 'deviceNo', exportField: 'deviceNo', kind: 'text', valueType: 'number', required: false, primaryKey: false, sortable: false, textarea: false, minWidth: 110, enumOptions: [], foreignQuery: '', checkboxActiveRaw: '1', checkboxInactiveRaw: '0' }, { field: 'fake', columnName: 'fake', label: '虚拟设备', tableProp: 'fake$', exportField: 'fake$', kind: 'enum', valueType: 'number', required: false, primaryKey: false, sortable: false, textarea: false, minWidth: 120, enumOptions: [{ rawValue: '0', label: '否' }, { rawValue: '1', label: '是' }], foreignQuery: '', checkboxActiveRaw: '1', checkboxInactiveRaw: '0' }, { field: 'fakeInitStatus', columnName: 'fake_init_status', label: '虚拟设备初始化状态', tableProp: 'fakeInitStatus', exportField: 'fakeInitStatus', kind: 'text', valueType: 'string', required: false, primaryKey: false, sortable: false, textarea: false, minWidth: 180, enumOptions: [], foreignQuery: '', checkboxActiveRaw: 'Y', checkboxInactiveRaw: 'N' }, { field: 'gatewayId', columnName: 'gateway_id', label: '网关编号', tableProp: 'gatewayId', exportField: 'gatewayId', kind: 'text', valueType: 'number', required: false, primaryKey: false, sortable: false, textarea: false, minWidth: 110, enumOptions: [], foreignQuery: '', checkboxActiveRaw: '1', checkboxInactiveRaw: '0' } ]); function formatFieldLabel(field) { var raw = field && field.label ? String(field.label).trim() : ''; if (raw) { return raw; } raw = field && field.columnName ? field.columnName : (field && field.field ? field.field : ''); if (!raw) { return ''; } raw = String(raw) .replace(/\$/g, '') .replace(/([a-z0-9])([A-Z])/g, '$1_$2') .replace(/_/g, ' ') .replace(/\s+/g, ' ') .trim(); return raw.replace(/\b[a-z]/g, function (letter) { return letter.toUpperCase(); }); } function dedupeFieldMeta(list) { var result = []; var seen = {}; (list || []).forEach(function (field) { if (!field || !field.field || seen[field.field]) { return; } field.label = formatFieldLabel(field); seen[field.field] = true; result.push(field); }); return result; } function isEmptyValue(value) { return value === null || value === undefined || value === ''; } function stringValue(value) { return isEmptyValue(value) ? '' : String(value); } function valueOrDash(value) { return isEmptyValue(value) ? '--' : value; } function normalizeOptionValue(field, rawValue) { if (rawValue === null || rawValue === undefined) { return null; } if (rawValue === '') { return ''; } if (field && field.valueType === 'number') { var numberVal = Number(rawValue); return isNaN(numberVal) ? rawValue : numberVal; } return String(rawValue); } function isSearchableField(field) { return !!field && field.kind !== 'image' && !field.textarea; } function isSortableField(field) { if (!field) { return false; } if (field.primaryKey) { return true; } return field.kind !== 'image' && !field.textarea && field.kind !== 'foreign'; } function defaultFieldValue(field) { if (field.primaryKey) { return null; } if (field.kind === 'checkbox') { return normalizeOptionValue(field, field.checkboxInactiveRaw); } return ''; } function defaultSearchFieldValue(field) { if (field.kind === 'date') { return []; } if (field.kind === 'enum' || field.kind === 'checkbox') { return null; } return ''; } function createSearchDefaults() { var result = { condition: '' }; fieldMeta.forEach(function (field) { if (!isSearchableField(field)) { return; } result[field.field] = defaultSearchFieldValue(field); }); return result; } function createSearchDisplayDefaults() { var result = {}; fieldMeta.forEach(function (field) { if (field.kind === 'foreign' && isSearchableField(field)) { result[field.field] = ''; } }); return result; } function createDefaultVisibleColumnKeys() { return fieldMeta.map(function (field) { return field.field; }); } function createFormDefaults() { var result = {}; fieldMeta.forEach(function (field) { result[field.field] = defaultFieldValue(field); }); return result; } function createDisplayDefaults() { var result = {}; fieldMeta.forEach(function (field) { if (field.kind === 'foreign') { result[field.field] = ''; } }); return result; } function createFormRules() { var rules = {}; fieldMeta.forEach(function (field) { if (field.primaryKey || !field.required) { return; } rules[field.field] = [{ required: true, message: (field.kind === 'date' || field.kind === 'enum' ? '请选择' : '请输入') + field.label, trigger: (field.kind === 'date' || field.kind === 'enum') ? 'change' : 'blur' }]; }); return rules; } function getTableValue(row, field) { var prop = field.tableProp || field.field; if (row && !isEmptyValue(row[prop])) { return row[prop]; } return row ? row[field.field] : ''; } function isCheckboxChecked(row, field) { var value = row ? row[field.field] : null; var activeValue = normalizeOptionValue(field, field.checkboxActiveRaw); return String(value) === String(activeValue); } function exportCell(value) { return stringValue(value).replace(/\t/g, ' ').replace(/\r?\n/g, ' '); } function escapeHtml(value) { return exportCell(value) .replace(/&/g, '&') .replace(//g, '>') .replace(/"/g, '"') .replace(/'/g, '''); } function buildPayload(form) { var payload = {}; fieldMeta.forEach(function (field) { var value = form[field.field]; if (field.primaryKey) { if (!isEmptyValue(value)) { payload[field.field] = value; } return; } if (field.kind === 'foreign' && isEmptyValue(value)) { value = null; } if (field.kind === 'enum' && value === '') { value = null; } if (field.kind === 'checkbox' && isEmptyValue(value)) { value = normalizeOptionValue(field, field.checkboxInactiveRaw); } if (field.valueType === 'number' && !isEmptyValue(value)) { value = Number(value); } if (field.valueType === 'number' && value === '') { value = null; } payload[field.field] = value; }); return payload; } function fillFormFromRow(row, form, display) { fieldMeta.forEach(function (field) { if (field.primaryKey) { form[field.field] = row[field.field]; return; } if (field.kind === 'date') { form[field.field] = row[field.tableProp] || row[field.field] || ''; return; } if (field.kind === 'foreign') { form[field.field] = isEmptyValue(row[field.field]) ? '' : normalizeOptionValue(field, row[field.field]); if (display) { display[field.field] = row[field.tableProp] || (isEmptyValue(row[field.field]) ? '' : String(row[field.field])); } return; } if (field.kind === 'enum') { form[field.field] = isEmptyValue(row[field.field]) ? '' : normalizeOptionValue(field, row[field.field]); return; } if (field.kind === 'checkbox') { form[field.field] = isEmptyValue(row[field.field]) ? normalizeOptionValue(field, field.checkboxInactiveRaw) : normalizeOptionValue(field, row[field.field]); return; } form[field.field] = isEmptyValue(row[field.field]) ? '' : (field.valueType === 'number' ? String(row[field.field]) : row[field.field]); }); } function resolveSearchParam(field) { if (field.kind === 'date' && field.columnName) { return field.columnName; } return field.field; } function createDownloadFile(filename, titles, rows) { var html = [ '', '
| ' + escapeHtml(title) + ' | '; }).join(''), '
|---|
| ' + escapeHtml(value) + ' | '; }).join('') + '