Index: ssts-web/src/main/webapp/disinfectsystem/basedatamanager/holiday/holidayListView.js =================================================================== diff -u -r41405 -r41409 --- ssts-web/src/main/webapp/disinfectsystem/basedatamanager/holiday/holidayListView.js (.../holidayListView.js) (revision 41405) +++ ssts-web/src/main/webapp/disinfectsystem/basedatamanager/holiday/holidayListView.js (.../holidayListView.js) (revision 41409) @@ -88,6 +88,15 @@ closeAction: 'hide', layout: 'fit', width: 450, + listeners: { + show: function() { + // 每次显示窗口时设置 accept 属性 + var fileField = this.down('filefield'); + if (fileField) { + fileField.setFileAccept(); + } + } + }, items: [{ xtype: 'form', bodyPadding: 15, @@ -121,9 +130,36 @@ name: 'file', fieldLabel: '导入文件', buttonText: '选择文件', + emptyText: '请选择JSON格式文件', listeners: { - change: function(field, newValue) { + afterrender: function(field) { + field.setFileAccept(); + }, + change: function(field, value) { + if (value) { + var fileName = value.toLowerCase(); + if (!fileName.endsWith('.json')) { + showResult('请选择JSON格式的文件(.json)!'); + field.clearFileInput(); + } + } } + }, + // 自定义方法:设置 accept 属性 + setFileAccept: function() { + var fileInput = this.fileInputEl.dom; + if (fileInput) { + fileInput.setAttribute('accept', '.json,application/json'); + } + }, + // 自定义方法:清空文件输入 + clearFileInput: function() { + // 重置字段 + this.reset(); + // 延迟重新设置 accept + Ext4.defer(function() { + this.setFileAccept(); + }, 100, this); } }] }],