import Vue from 'vue' import uniqueId from 'lodash' import AuthorityFilter from '../commands/AuthorityFilter' import DeleteConfigDialog from '@/components/DialogComponents/ConfigDialog/DeleteConfigDialog.vue' import downloadConfigToDeviceInConfigConfiguration from '@/components/DialogComponents/ConfigDialog/downloadConfigToDeviceInConfigConfiguration.vue' import UpdateConfigDialog from '@/components/DialogComponents/ConfigDialog/UpdateConfigDialog.vue' import UploadConfigFileDialog from '@/components/DialogComponents/ConfigDialog/UploadConfigFileDialog.vue' import UploadDeviceConfigFileInConfigConfiguration from '@/components/DialogComponents/ConfigDialog/UploadDeviceConfigFileInConfigConfiguration.vue' import LocalConfigToDevice from '@/components/DialogComponents/ConfigDialog/LocalConfigToDeviceDialog.vue' Vue.component('DeleteConfigDialog', DeleteConfigDialog) Vue.component('downloadConfigToDeviceInConfigConfiguration', downloadConfigToDeviceInConfigConfiguration) Vue.component('UpdateConfigDialog', UpdateConfigDialog) Vue.component('UploadConfigFileDialog', UploadConfigFileDialog) Vue.component('UploadDeviceConfigFileInConfigConfiguration', UploadDeviceConfigFileInConfigConfiguration) Vue.component('LocalConfigToDevice', LocalConfigToDevice) let CommandTypes = { LOCAL_CONFIG_TO_DEVICE_CMD: { type: 'localConfigToDevice', executeComponent: 'LocalConfigToDevice', registerComponent: LocalConfigToDevice // 对应的对话框组件 }, DElETE_CONFIG__CMD: { type: 'DeleteConfigType', executeComponent: 'DeleteConfigDialog', registerComponent: DeleteConfigDialog // 对应的对话框组件 }, DOWNLOAD_CONFIG_TO_DEVICE_IN_CONFIG_CMD: { type: 'DownLoadConfigToDeviceInConfigType', executeComponent: 'downloadConfigToDeviceInConfigConfiguration', registerComponent: downloadConfigToDeviceInConfigConfiguration // import对应的对话框组件 }, UPDATE_CONFIG_CMD: { type: 'UpdateConfigType', executeComponent: 'UpdateConfigDialog', registerComponent: UpdateConfigDialog // import对应的对话框组件 }, UPLOAD_CONFIG_FILE_CMD: { type: 'UploadConfigFileType', executeComponent: 'UploadConfigFileDialog', registerComponent: UploadConfigFileDialog // import对应的对话框组件 }, UPLOAD_DEVICE_CONFIG_FILE_IN_CONFIG_CMD: { type: 'UploadDeviceConfigFileInConfigType', executeComponent: 'UploadDeviceConfigFileInConfigConfiguration', registerComponent: UploadDeviceConfigFileInConfigConfiguration // import对应的对话框组件 } } class ConfigFileCommands { static deleteConfigCommand (deleteList, commandContext) { let command = { id: uniqueId(CommandTypes.DElETE_CONFIG__CMD.type), visible: true, disabled: false, target: deleteList, executeComponent: CommandTypes.DElETE_CONFIG__CMD.executeComponent, execute: undefined, done: undefined } command.execute = function () { Vue.set(commandContext, command.id, command) } command.done = function () { Vue.delete(commandContext, command.id) } return AuthorityFilter.configurationFileAuthorityFilter(command) } static updateConfigCommand (updateInitList, commandContext) { let command = { id: uniqueId(CommandTypes.UPDATE_CONFIG_CMD.type), visible: true, disabled: false, target: updateInitList, executeComponent: CommandTypes.UPDATE_CONFIG_CMD.executeComponent, execute: undefined, done: undefined } command.execute = function () { Vue.set(commandContext, command.id, command) } command.done = function () { Vue.delete(commandContext, command.id) } return AuthorityFilter.configurationFileAuthorityFilter(command) } static downloadConfigToDeviceCommand (updateConfigFileKey, commandContext) { let command = { id: uniqueId(CommandTypes.DOWNLOAD_CONFIG_TO_DEVICE_IN_CONFIG_CMD.type), visible: true, disabled: false, target: updateConfigFileKey, executeComponent: CommandTypes.DOWNLOAD_CONFIG_TO_DEVICE_IN_CONFIG_CMD.executeComponent, execute: undefined, done: undefined } command.execute = function () { Vue.set(commandContext, command.id, command) } command.done = function () { Vue.delete(commandContext, command.id) } return AuthorityFilter.configurationFileAuthorityFilter(command) } static localConfigToDeviceCommand (updateConfigFileKey, commandContext) { let command = { id: uniqueId(CommandTypes.LOCAL_CONFIG_TO_DEVICE_CMD.type), visible: true, disabled: false, target: updateConfigFileKey, executeComponent: CommandTypes.LOCAL_CONFIG_TO_DEVICE_CMD.executeComponent, execute: undefined, done: undefined } command.execute = function () { Vue.set(commandContext, command.id, command) } command.done = function () { Vue.delete(commandContext, command.id) } return AuthorityFilter.configurationFileAuthorityFilter(command) } static uploadConfigToDeviceCommand (updateConfigFileKey, commandContext) { let command = { id: uniqueId(CommandTypes.UPLOAD_DEVICE_CONFIG_FILE_IN_CONFIG_CMD.type), visible: true, disabled: false, target: updateConfigFileKey, executeComponent: CommandTypes.UPLOAD_DEVICE_CONFIG_FILE_IN_CONFIG_CMD.executeComponent, execute: undefined, done: undefined } command.execute = function () { Vue.set(commandContext, command.id, command) } command.done = function () { Vue.delete(commandContext, command.id) } return AuthorityFilter.configurationFileAuthorityFilter(command) } static importConfigCommand (commandContext) { let command = { id: uniqueId(CommandTypes.UPLOAD_CONFIG_FILE_CMD.type), visible: true, disabled: false, executeComponent: CommandTypes.UPLOAD_CONFIG_FILE_CMD.executeComponent, execute: undefined, done: undefined } command.execute = function () { Vue.set(commandContext, command.id, command) } command.done = function () { Vue.delete(commandContext, command.id) } return AuthorityFilter.configurationFileAuthorityFilter(command) } } ConfigFileCommands.CommandTypes = CommandTypes export default ConfigFileCommands