71a8448b2c5c2dd967be83b06fbd1c66.json 37 KB

1
  1. {"remainingRequest":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/src/views/account/locomotiveMsg/index.vue?vue&type=script&lang=js","dependencies":[{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/src/views/account/locomotiveMsg/index.vue","mtime":1708395041886},{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/node_modules/cache-loader/dist/cjs.js","mtime":1708395146433},{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/node_modules/babel-loader/lib/index.js","mtime":1708395147257},{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/node_modules/cache-loader/dist/cjs.js","mtime":1708395146433},{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/node_modules/vue-loader/lib/index.js","mtime":1708395147382}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCB7IGdldFRva2VuIH0gZnJvbSAnQC91dGlscy9hdXRoJwppbXBvcnQgeyBtYXBHZXR0ZXJzIH0gZnJvbSAndnVleCcKaW1wb3J0IHsKICBnZXRMb2NvbW90aXZlTGlzdCwKICBleHBvcnRCYXNlVmVoaWNsZSwKICBkb3dubG9hRXhjZWwsCiAgdmVoaWNsZURlbGV0ZSwKICBpbXBvcnRWZWhpY2xlLAogIGFkZFZlaGljbGUsCiAgdmVoaWNsZVVwZGF0ZSwKICB2ZWhpY2xlVGVybWluYWxBZGQsCiAgdmVoaWNsZVRlcm1pbmFsVW5tb3VudAp9IGZyb20gJ0AvYXBpL2FjY291bnQvbG9jb21vdGl2ZU1zZycKaW1wb3J0IGFkZFZlaGljbGVEaWFsb2cgZnJvbSAnLi9jb21wb25lbnRzL2FkZFZlaGljbGVEaWFsb2cudnVlJwppbXBvcnQgdXBkYXRlVmVoaWNsZURpYWxvZyBmcm9tICcuL2NvbXBvbmVudHMvdXBkYXRlVmVoaWNsZURpYWxvZy52dWUnCmltcG9ydCBtb3VudFZlaGljbGVMaXN0IGZyb20gJy4vY29tcG9uZW50cy9tb3VudFZlaGljbGVMaXN0LnZ1ZScKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICdDYXJ0JywKICBjb21wdXRlZDogewogICAgLi4ubWFwR2V0dGVycyhbJ25hbWUnXSkKICB9LAogIGNvbXBvbmVudHM6IHsKICAgIGFkZFZlaGljbGVEaWFsb2csCiAgICB1cGRhdGVWZWhpY2xlRGlhbG9nLAogICAgbW91bnRWZWhpY2xlTGlzdAogIH0sCiAgZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIHVwbG9hZERpYWxvZzogZmFsc2UsCiAgICAgIGZpbGVMaXN0OiBbXSwKICAgICAgYWRkVmVoaWNsZURhdGE6IHsKICAgICAgICBkaWFsb2dWaXNpYmxlOiBmYWxzZQogICAgICB9LAogICAgICB1cGRhdGVWZWhpY2xlRGF0YTogewogICAgICAgIGRpYWxvZ1Zpc2libGU6IGZhbHNlLAogICAgICAgIGRhdGE6IHt9CiAgICAgIH0sCiAgICAgIHF1ZXJ5UGFyYW1zOiB7CiAgICAgICAgcGFnZU51bTogMSwKICAgICAgICBwYWdlU2l6ZTogMTAsCiAgICAgICAgdmVoaWNsZU5hbWU6ICcnLAogICAgICAgIHZlaGljbGVDb2RlOiAnJwogICAgICB9LAogICAgICB0YWJsZURhdGE6IFtdLAogICAgICB0b3RhbDogMCwKICAgICAgYWN0aW9uOiAnIycsCiAgICAgIGRlbFZlaGljbGVMaXN0OiAnJywKICAgICAgbW91bnRMaXN0RGF0YTogewogICAgICAgIGRpYWxvZ1Zpc2libGU6IGZhbHNlLAogICAgICAgIHZlaGljbGVDb2RlOiAnJwogICAgICB9LAogICAgICBleHBvcnREYXRhOiB7CiAgICAgICAgaWRzOiBbXQogICAgICB9CiAgICB9CiAgfSwKICBjcmVhdGVkKCkgewogICAgdGhpcy5nZXRMb2NvbW90aXZlTGlzdCh0aGlzLnF1ZXJ5UGFyYW1zKQogIH0sCiAgbWV0aG9kczogewogICAgbW91bnRTYXZlQnRuKHBheWxvYWQpIHsKICAgICAgbGV0IHBhcmFtcyA9IHsKICAgICAgICB2ZWhpY2xlQ29kZTogcGF5bG9hZC52ZWhpY2xlQ29kZSwKICAgICAgICB0ZXJtaW5hbENvZGU6IHBheWxvYWQudGVybWluYWxDb2RlCiAgICAgIH0KICAgICAgaWYgKCFwYXlsb2FkLmlzTW91bnQpIHsKICAgICAgICB2ZWhpY2xlVGVybWluYWxBZGQocGFyYW1zKS50aGVuKHJlcyA9PiB7CiAgICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7CiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2UoewogICAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJywKICAgICAgICAgICAgICBtZXNzYWdlOiAn5oyC6L295oiQ5YqfIScKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHRoaXMuZ2V0TG9jb21vdGl2ZUxpc3QodGhpcy5xdWVyeVBhcmFtcykKICAgICAgICAgICAgdGhpcy5tb3VudExpc3REYXRhLmRpYWxvZ1Zpc2libGUgPSBmYWxzZQogICAgICAgICAgfQogICAgICAgIH0pCiAgICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKHBhcmFtcy50ZXJtaW5hbENvZGUgPT0gJycpIHsKICAgICAgICAgIHRoaXMuJGNvbmZpcm0oJ+ehruWumuimgeino+e7keWQlz8nLCAn5L+h5oGv5o+Q56S6JywgewogICAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsCiAgICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLAogICAgICAgICAgICB0eXBlOiAnd2FybmluZycKICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICB2ZWhpY2xlVGVybWluYWxVbm1vdW50KHsKICAgICAgICAgICAgICB2ZWhpY2xlQ29kZTogcGF5bG9hZC52ZWhpY2xlQ29kZQogICAgICAgICAgICB9KS50aGVuKHJlcyA9PiB7CiAgICAgICAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkgewogICAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJywKICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ+ino+e7keaIkOWKnyEnCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIHRoaXMuZ2V0TG9jb21vdGl2ZUxpc3QodGhpcy5xdWVyeVBhcmFtcykKICAgICAgICAgICAgICAgIHRoaXMubW91bnRMaXN0RGF0YS5kaWFsb2dWaXNpYmxlID0gZmFsc2UKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHJlcy5tc2cKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgIH0pLmNhdGNoKCgpID0+IHsKICAgICAgICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgICAgICAgdHlwZTogJ2luZm8nLAogICAgICAgICAgICAgIG1lc3NhZ2U6ICflt7Llj5bmtognCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuJGNvbmZpcm0oYOehruWumuimgeWwhue7iOerr+abtOaUueS4uiR7cGFyYW1zLnRlcm1pbmFsQ29kZX3lkJfvvJ9gLCAn5L+h5oGv5o+Q56S6JywgewogICAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsCiAgICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLAogICAgICAgICAgICB0eXBlOiAnd2FybmluZycKICAgICAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgICAgICB2ZWhpY2xlVGVybWluYWxBZGQocGFyYW1zKS50aGVuKHJlcyA9PiB7CiAgICAgICAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkgewogICAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJywKICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ+abtOaNouaIkOWKnyEnCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIHRoaXMuZ2V0TG9jb21vdGl2ZUxpc3QodGhpcy5xdWVyeVBhcmFtcykKICAgICAgICAgICAgICAgIHRoaXMubW91bnRMaXN0RGF0YS5kaWFsb2dWaXNpYmxlID0gZmFsc2UKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IHJlcy5tc2cKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSkKICAgICAgICAgIH0pLmNhdGNoKCgpID0+IHsKICAgICAgICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgICAgICAgdHlwZTogJ2luZm8nLAogICAgICAgICAgICAgIG1lc3NhZ2U6ICflt7Llj5bmtognCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSk7CiAgICAgICAgfQoKICAgICAgfQogICAgfSwKICAgIGdldExvY29tb3RpdmVMaXN0KHBhcmFtcykgewogICAgICBnZXRMb2NvbW90aXZlTGlzdChwYXJhbXMpLnRoZW4ocmVzID0+IHsKICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7CiAgICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IHJlcy5kYXRhLnJlY29yZHMKICAgICAgICAgIHRoaXMudG90YWwgPSByZXMuZGF0YS50b3RhbAogICAgICAgIH0KICAgICAgfSkKICAgIH0sCiAgICBoYW5kbGVTaXplQ2hhbmdlKHZhbCkgewogICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnBhZ2VTaXplID0gdmFsCiAgICAgIHRoaXMuZ2V0TG9jb21vdGl2ZUxpc3QodGhpcy5xdWVyeVBhcmFtcykKICAgIH0sCiAgICBoYW5kbGVDdXJyZW50Q2hhbmdlKHZhbCkgewogICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnBhZ2VOdW0gPSB2YWwKICAgICAgdGhpcy5nZXRMb2NvbW90aXZlTGlzdCh0aGlzLnF1ZXJ5UGFyYW1zKQogICAgfSwKICAgIGhhbmRsZVF1ZXJ5KCkgewogICAgICB0aGlzLmdldExvY29tb3RpdmVMaXN0KHRoaXMucXVlcnlQYXJhbXMpCiAgICB9LAogICAgcmVzZXQoKSB7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMgPSB7CiAgICAgICAgcGFnZU51bTogMSwKICAgICAgICBwYWdlU2l6ZTogMTAsCiAgICAgICAgdmVoaWNsZU5hbWU6ICcnLAogICAgICAgIHZlaGljbGVDb2RlOiAnJwogICAgICB9CiAgICAgIHRoaXMuZ2V0TG9jb21vdGl2ZUxpc3QodGhpcy5xdWVyeVBhcmFtcykKICAgIH0sCiAgICAvL+WvvOWHuuS/oeaBrwogICAgZXhwb3J0QmFzZVZlaGljbGUoKSB7CiAgICAgIGlmICh0aGlzLmV4cG9ydERhdGEuaWRzLmxlbmd0aCA9PSAwKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuJG1lc3NhZ2UoewogICAgICAgICAgdHlwZTogJ2Vycm9yJywKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nopoHlr7zlh7rnmoTmnLrovabkv6Hmga8hJwogICAgICAgIH0pOwogICAgICB9IGVsc2UgewogICAgICAgIGV4cG9ydEJhc2VWZWhpY2xlKHRoaXMuZXhwb3J0RGF0YSkudGhlbihyZXMgPT4gewogICAgICAgICAgLy8gY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtyZXNdLCB7IHR5cGU6ICd0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgnIH0pOwogICAgICAgICAgLy8gY29uc3QgdXJsID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7CiAgICAgICAgICAvLyBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwogICAgICAgICAgLy8gYS5ocmVmID0gdXJsOwogICAgICAgICAgLy8gYS5kb3dubG9hZCA9ICfmnLrovabkv6Hmga/nrqHnkIYueGxzJzsKICAgICAgICAgIC8vIGEuY2xpY2soKTsKICAgICAgICAgIC8vIHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKHVybCk7CgoKICAgICAgICAgIGlmIChyZXMudHlwZSA9PSAiYXBwbGljYXRpb24vanNvbiIpIHsKICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsgCiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNUZXh0KHJlcywgJ3V0Zi04Jyk7IAogICAgICAgICAgICByZWFkZXIub25sb2FkID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIGNvbnN0IG1zZyA9IEpTT04ucGFyc2UocmVhZGVyLnJlc3VsdCk7CiAgICAgICAgICAgICAgaWYobXNnLmNvZGUgPT0gMjAwKXsKICAgICAgICAgICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbcmVzXSwgeyB0eXBlOiAndGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04JyB9KTsKICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpOwogICAgICAgICAgICAgICAgY29uc3QgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKICAgICAgICAgICAgICAgIGEuaHJlZiA9IHVybDsKICAgICAgICAgICAgICAgIGEuZG93bmxvYWQgPSAn5py66L2m5L+h5oGv566h55CGLnhscyc7CiAgICAgICAgICAgICAgICBhLmNsaWNrKCk7CiAgICAgICAgICAgICAgICB3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1cmwpOwogICAgICAgICAgICAgIH0gZWxzZXsKICAgICAgICAgICAgICAgIE1lc3NhZ2UoewogICAgICAgICAgICAgICAgICB0eXBlOiAnZXJyb3InLAogICAgICAgICAgICAgICAgICBtZXNzYWdlOiBtc2cubXNnCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9ICAgICAgCiAgICAgICAgICAgIH0KICAgICAgICAgIH1lbHNlewogICAgICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW3Jlc10sIHsgdHlwZTogJ3RleHQvcGxhaW47Y2hhcnNldD11dGYtOCcgfSk7CiAgICAgICAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpOwogICAgICAgICAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwogICAgICAgICAgICBhLmhyZWYgPSB1cmw7CiAgICAgICAgICAgIGEuZG93bmxvYWQgPSAn5py66L2m5L+h5oGv566h55CGLnhscyc7CiAgICAgICAgICAgIGEuY2xpY2soKTsKICAgICAgICAgICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwodXJsKTsKICAgICAgICAgIH0KCgoKICAgICAgICB9KQogICAgICB9CiAgICB9LAogICAgZG93bmxvYUV4Y2VsKCkgewogICAgICBkb3dubG9hRXhjZWwoJy9iYXNlVmVoaWNsZS9kb3dubG9hRXhjZWwnKS50aGVuKHJlcyA9PiB7CiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtyZXNdLCB7IHR5cGU6ICd0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgnIH0pOwogICAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpOwogICAgICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CiAgICAgICAgYS5ocmVmID0gdXJsOwogICAgICAgIGEuZG93bmxvYWQgPSAn5py66L2m5L+h5oGv5qih5p2/Lnhscyc7CiAgICAgICAgYS5jbGljaygpOwogICAgICAgIHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKHVybCk7CiAgICAgIH0pCiAgICB9LAogICAgZGVsVmVoaWNsZShzY29wZSkgewogICAgICB0aGlzLiRjb25maXJtKCfnoa7lrpropoHliKDpmaTlkJc/JywgJ+S/oeaBr+aPkOekuicsIHsKICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsCiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsCiAgICAgICAgdHlwZTogJ3dhcm5pbmcnCiAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgIHZlaGljbGVEZWxldGUoc2NvcGUuaWQpLnRoZW4ocmVzID0+IHsKICAgICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHsKICAgICAgICAgICAgdGhpcy5nZXRMb2NvbW90aXZlTGlzdCh0aGlzLnF1ZXJ5UGFyYW1zKQogICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsKICAgICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsCiAgICAgICAgICAgICAgbWVzc2FnZTogJ+WIoOmZpOaIkOWKnyEnCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgICAgICAgdHlwZTogJ2Vycm9yJywKICAgICAgICAgICAgICBtZXNzYWdlOiByZXMubXNnCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0pCiAgICAgIH0pLmNhdGNoKCgpID0+IHsKICAgICAgICB0aGlzLiRtZXNzYWdlKHsKICAgICAgICAgIHR5cGU6ICdpbmZvJywKICAgICAgICAgIG1lc3NhZ2U6ICflt7Llj5bmtojliKDpmaQnCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSwKICAgIGhhbmRsZVNlbGVjdGlvbkNoYW5nZSh2KSB7CiAgICAgIHRoaXMuZXhwb3J0RGF0YS5pZHMgPSBbXQogICAgICBsZXQgZGVsVmVoaWNsZUxpc3QgPSAnJwogICAgICB2LmZvckVhY2goZWxlbWVudCA9PiB7CiAgICAgICAgZGVsVmVoaWNsZUxpc3QgKz0gZWxlbWVudC5pZCArICcsJwogICAgICAgIHRoaXMuZXhwb3J0RGF0YS5pZHMucHVzaChlbGVtZW50LmlkKQogICAgICB9KTsKICAgICAgZGVsVmVoaWNsZUxpc3QgPSBkZWxWZWhpY2xlTGlzdC5zbGljZSgwLCBkZWxWZWhpY2xlTGlzdC5sZW5ndGggLSAxKQogICAgICB0aGlzLmRlbFZlaGljbGVMaXN0ID0gZGVsVmVoaWNsZUxpc3QKICAgIH0sCiAgICBiYXRjaERlbFZlaGljbGUoKSB7CiAgICAgIGlmICh0aGlzLmRlbFZlaGljbGVMaXN0Lmxlbmd0aCA9PSAwKSB7CiAgICAgICAgcmV0dXJuIHRoaXMuJG1lc3NhZ2UoewogICAgICAgICAgdHlwZTogJ2Vycm9yJywKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nopoHliKDpmaTnmoTmnLrovabkv6Hmga8hJwogICAgICAgIH0pOwogICAgICB9CiAgICAgIHRoaXMuJGNvbmZpcm0oJ+ehruWumuimgeWIoOmZpOWQlz8nLCAn5L+h5oGv5o+Q56S6JywgewogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu5a6aJywKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywKICAgICAgICB0eXBlOiAnd2FybmluZycKICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgdmVoaWNsZURlbGV0ZSh0aGlzLmRlbFZlaGljbGVMaXN0KS50aGVuKHJlcyA9PiB7CiAgICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7CiAgICAgICAgICAgIHRoaXMuZ2V0TG9jb21vdGl2ZUxpc3QodGhpcy5xdWVyeVBhcmFtcykKICAgICAgICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLAogICAgICAgICAgICAgIG1lc3NhZ2U6ICfliKDpmaTmiJDlip8hJwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2UoewogICAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsCiAgICAgICAgICAgICAgbWVzc2FnZTogcmVzLm1zZwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9KQogICAgICB9KS5jYXRjaCgoKSA9PiB7CiAgICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgICB0eXBlOiAnaW5mbycsCiAgICAgICAgICBtZXNzYWdlOiAn5bey5Y+W5raI5Yig6ZmkJwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0sCiAgICBpbXBvcnRMb2FkSW46IGZ1bmN0aW9uICgpIHsKICAgICAgdGhpcy51cGxvYWREaWFsb2cgPSB0cnVlCiAgICB9LAogICAgdXBsb2FkRmlsZUxpc3QoZmlsZSkgewogICAgICBpZiAoZmlsZS5zdGF0dXMgPT09ICdyZWFkeScpIHsKICAgICAgICB0aGlzLmZpbGVMaXN0LnB1c2goZmlsZSkKICAgICAgICBpZiAodGhpcy5maWxlTGlzdC5sZW5ndGggPiAxKSB7CiAgICAgICAgICB0aGlzLmZpbGVMaXN0LnNwbGljZSgwLCAxKQogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIC8vIOWvvOWFpQogICAgaHR0cFJlcXVlc3QocGFyYW0pIHsKICAgICAgbGV0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7CiAgICAgIC8vIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIHRoaXMuZGF0YUZvcm0uZmlsZS5yYXcpOwogICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCB0aGlzLmZpbGVMaXN0WzBdLnJhdykKICAgICAgbGV0IGNvbmZpZ0hlYWRlcnMgPSB7CiAgICAgICAgaGVhZGVyczogeyAiQ29udGVudC1UeXBlIjogIm11bHRpcGFydC9mb3JtLWRhdGEiIH0KICAgICAgfTsKICAgICAgaW1wb3J0VmVoaWNsZShmb3JtRGF0YSkudGhlbihyZXMgPT4gewogICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHsKICAgICAgICAgIHRoaXMuJG1lc3NhZ2UoewogICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsCiAgICAgICAgICAgIG1lc3NhZ2U6ICflr7zlhaXmiJDlip8hJwogICAgICAgICAgfSk7CiAgICAgICAgICBsZXQgdWlkID0gdGhpcy5maWxlTGlzdFswXS5yYXcudWlkCiAgICAgICAgICBsZXQgaWR4ID0gdGhpcy4kcmVmcy51cGxvYWRGaWxlLnVwbG9hZEZpbGVzLmZpbmRJbmRleChpdGVtID0+IGl0ZW0udWlkID09PSB1aWQpCiAgICAgICAgICB0aGlzLiRyZWZzLnVwbG9hZEZpbGUudXBsb2FkRmlsZXMuc3BsaWNlKGlkeCwgMSkKICAgICAgICAgIHRoaXMuZ2V0TG9jb21vdGl2ZUxpc3QodGhpcy5xdWVyeVBhcmFtcykKICAgICAgICAgIHRoaXMudXBsb2FkRGlhbG9nID0gZmFsc2UKICAgICAgICB9IGVsc2UgewogICAgICAgICAgbGV0IHVpZCA9IHRoaXMuZmlsZUxpc3RbMF0ucmF3LnVpZAogICAgICAgICAgbGV0IGlkeCA9IHRoaXMuJHJlZnMudXBsb2FkRmlsZS51cGxvYWRGaWxlcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtLnVpZCA9PT0gdWlkKQogICAgICAgICAgdGhpcy4kcmVmcy51cGxvYWRGaWxlLnVwbG9hZEZpbGVzLnNwbGljZShpZHgsIDEpCiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsKICAgICAgICAgICAgdHlwZTogJ2Vycm9yJywKICAgICAgICAgICAgbWVzc2FnZTogcmVzLm1zZwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9KQogICAgfSwKICAgIGFkZFZlaGljbGUoKSB7CiAgICAgIHRoaXMuYWRkVmVoaWNsZURhdGEuZGlhbG9nVmlzaWJsZSA9IHRydWUKICAgIH0sCiAgICB1cGRhdGVWZWhpY2xlKHJvdykgewogICAgICBsZXQgbmV3Um93ID0geyAuLi5yb3cgfQogICAgICB0aGlzLnVwZGF0ZVZlaGljbGVEYXRhLmRhdGEgPSBuZXdSb3cKICAgICAgdGhpcy51cGRhdGVWZWhpY2xlRGF0YS5kaWFsb2dWaXNpYmxlID0gdHJ1ZQogICAgfSwKICAgIGFkZFZlaGljbGVCdG4ocGF5bG9hZCkgewogICAgICBhZGRWZWhpY2xlKHBheWxvYWQpLnRoZW4ocmVzID0+IHsKICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7CiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsKICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLAogICAgICAgICAgICBtZXNzYWdlOiAn5paw5aKe5oiQ5YqfIScKICAgICAgICAgIH0pOwogICAgICAgICAgdGhpcy5nZXRMb2NvbW90aXZlTGlzdCh0aGlzLnF1ZXJ5UGFyYW1zKQogICAgICAgICAgdGhpcy5hZGRWZWhpY2xlRGF0YS5kaWFsb2dWaXNpYmxlID0gZmFsc2UKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsCiAgICAgICAgICAgIG1lc3NhZ2U6IHJlcy5tc2cKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfSkKICAgIH0sCiAgICB1cGRhdGVWZWhpY2xlQnRuKHBheWxvYWQpIHsKICAgICAgbGV0IHBhcmFtcyA9IHsKICAgICAgICBpZDogcGF5bG9hZC5kYXRhLmlkLAogICAgICAgIHZlaGljbGVDb2RlOiBwYXlsb2FkLmRhdGEudmVoaWNsZUNvZGUsCiAgICAgICAgdmVoaWNsZU5hbWU6IHBheWxvYWQuZGF0YS52ZWhpY2xlTmFtZSwKICAgICAgICByZW1hcms6IHBheWxvYWQuZGF0YS5yZW1hcmsKICAgICAgfQogICAgICB2ZWhpY2xlVXBkYXRlKHBhcmFtcykudGhlbihyZXMgPT4gewogICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHsKICAgICAgICAgIHRoaXMuJG1lc3NhZ2UoewogICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsCiAgICAgICAgICAgIG1lc3NhZ2U6ICfkv67mlLnmiJDlip8hJwogICAgICAgICAgfSk7CiAgICAgICAgICB0aGlzLmdldExvY29tb3RpdmVMaXN0KHRoaXMucXVlcnlQYXJhbXMpCiAgICAgICAgICB0aGlzLnVwZGF0ZVZlaGljbGVEYXRhLmRpYWxvZ1Zpc2libGUgPSBmYWxzZQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsKICAgICAgICAgICAgdHlwZTogJ2Vycm9yJywKICAgICAgICAgICAgbWVzc2FnZTogcmVzLm1zZwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9KQogICAgfSwKICAgIG9wZW5MaXN0KHJvdykgewogICAgICB0aGlzLm1vdW50TGlzdERhdGEuZGlhbG9nVmlzaWJsZSA9IHRydWUsCiAgICAgICAgdGhpcy5tb3VudExpc3REYXRhLnZlaGljbGVDb2RlID0gcm93LnZlaGljbGVDb2RlCiAgICB9CiAgfQp9Cg=="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/views/account/locomotiveMsg","sourcesContent":["<template>\n <div class=\"dashboard-container\">\n <div class=\"search-content\">\n <!-- <el-input v-model=\"queryParams.vehicleName\" placeholder=\"请输入机车名称\" style=\"width: 220px;\" clearable /> -->\n <el-input v-model=\"queryParams.vehicleCode\" placeholder=\"请输入机车号\" style=\"width: 220px;\" clearable />\n <div class=\"search-btn\">\n <div class=\"search\" @click=\"handleQuery\">查询</div>\n <div class=\"reset\" @click=\"reset\">重置</div>\n </div>\n </div>\n\n <div class=\"table-content\">\n <div style=\"width: 100%;height: 30px;\">\n <div class=\"btn\" @click=\"addVehicle\">\n <span class=\"icon font_family\">&#xe604;</span>\n 新增\n </div>\n <div class=\"btn\" @click=\"batchDelVehicle\">\n <span class=\"icon font_family\">&#xe607;</span>\n 批量删除\n </div>\n <div class=\"btn\" @click=\"importLoadIn\">\n <span class=\"icon font_family\">&#xe606;</span>\n 导入\n </div>\n <div class=\"btn\" @click=\"exportBaseVehicle\">\n <span class=\"icon font_family\">&#xe605;</span>\n 导出\n </div>\n <div class=\"btn\" @click=\"downloaExcel\">\n <span class=\"icon font_family\">&#xe603;</span>\n 下载模板\n </div>\n </div>\n <el-table :data=\"tableData\" style=\"width: 100%\" @selection-change=\"handleSelectionChange\">\n <el-table-column type=\"selection\" width=\"55\" />\n <el-table-column prop=\"vehicleCode\" label=\"机车号\" align=\"center\" />\n <!-- <el-table-column prop=\"vehicleName\" label=\"机车名称\" align=\"center\" /> -->\n <el-table-column prop=\"terminalName\" label=\"车载终端\" align=\"center\" />\n <el-table-column prop=\"remark\" label=\"备注\" align=\"center\" />\n <el-table-column prop=\"createTime\" label=\"创建时间\" align=\"center\" width=\"170px;\" />\n <el-table-column prop=\"updateTime\" label=\"更新时间\" align=\"center\" width=\"170px;\" />\n <el-table-column label=\"操作\" align=\"center\" width=\"250px;\">\n <template slot-scope=\"scope\">\n <div class=\"operateBtn\">\n <div type=\"text\" @click=\"openList(scope.row)\">车载终端挂载</div>\n <div type=\"text\" @click=\"updateVehicle(scope.row)\">修改</div>\n <div type=\"text\" @click=\"delVehicle(scope.row)\"><span>删除</span></div>\n </div>\n </template>\n </el-table-column>\n </el-table>\n <div class=\"pagination\">\n <el-pagination :page-sizes=\"[10, 15, 20]\" layout=\"total, sizes, prev, pager, next, jumper\" :total=\"total\"\n @size-change=\"handleSizeChange\" @current-change=\"handleCurrentChange\" />\n </div>\n </div>\n <addVehicleDialog v-if=\"addVehicleData.dialogVisible\" :addVehicleData=\"addVehicleData\" @addVehicleBtn=\"addVehicleBtn\"></addVehicleDialog>\n <updateVehicleDialog v-if=\"updateVehicleData.dialogVisible\" :updateVehicleData=\"updateVehicleData\"\n @updateVehicleBtn=\"updateVehicleBtn\">\n </updateVehicleDialog>\n <mountVehicleList @mountSave=\"mountSaveBtn\" :mountListData=\"mountListData\" v-if=\"mountListData.dialogVisible\">\n </mountVehicleList>\n <el-dialog center :visible.sync=\"uploadDialog\" title=\"机车信息导入\" width=\"620px\">\n <el-upload style=\"text-align: center\" ref=\"uploadFile\" class=\"upload-demo\" drag action=\"#\"\n :http-request=\"uploadHttpRequest\" :auto-upload=\"false\" :file-list=\"fileList\" :on-change=\"uploadFileList\">\n <i class=\"el-icon-upload\" />\n <div class=\"el-upload__text\">将文件拖到此处,或<em>点击上传</em></div>\n <!-- <div class=\"el-upload__tip\">只能上传xls/xlsx文件,且不超过500kb</div> -->\n </el-upload>\n <div class=\"hxj\">支持扩展名:.xlsx</div>\n <div class=\"hxj\">请先下载模板,根据模板内容填写,再上传文件 <span class=\"xzmba\" @click=\"downloaExcel\">下载模板</span> </div>\n <div slot=\"footer\" class=\"dialog-footer\">\n <div class=\"search\" @click=\"httpRequest\">保 存</div>\n <div class=\"reset\" @click=\"uploadDialog = false\">取 消</div>\n </div>\n\n </el-dialog>\n </div>\n</template>\n \n<script>\nimport { getToken } from '@/utils/auth'\nimport { mapGetters } from 'vuex'\nimport {\n getLocomotiveList,\n exportBaseVehicle,\n downloaExcel,\n vehicleDelete,\n importVehicle,\n addVehicle,\n vehicleUpdate,\n vehicleTerminalAdd,\n vehicleTerminalUnmount\n} from '@/api/account/locomotiveMsg'\nimport addVehicleDialog from './components/addVehicleDialog.vue'\nimport updateVehicleDialog from './components/updateVehicleDialog.vue'\nimport mountVehicleList from './components/mountVehicleList.vue'\nexport default {\n name: 'Cart',\n computed: {\n ...mapGetters(['name'])\n },\n components: {\n addVehicleDialog,\n updateVehicleDialog,\n mountVehicleList\n },\n data() {\n return {\n uploadDialog: false,\n fileList: [],\n addVehicleData: {\n dialogVisible: false\n },\n updateVehicleData: {\n dialogVisible: false,\n data: {}\n },\n queryParams: {\n pageNum: 1,\n pageSize: 10,\n vehicleName: '',\n vehicleCode: ''\n },\n tableData: [],\n total: 0,\n action: '#',\n delVehicleList: '',\n mountListData: {\n dialogVisible: false,\n vehicleCode: ''\n },\n exportData: {\n ids: []\n }\n }\n },\n created() {\n this.getLocomotiveList(this.queryParams)\n },\n methods: {\n mountSaveBtn(payload) {\n let params = {\n vehicleCode: payload.vehicleCode,\n terminalCode: payload.terminalCode\n }\n if (!payload.isMount) {\n vehicleTerminalAdd(params).then(res => {\n if (res.code == 200) {\n this.$message({\n type: 'success',\n message: '挂载成功!'\n });\n this.getLocomotiveList(this.queryParams)\n this.mountListData.dialogVisible = false\n }\n })\n } else {\n if (params.terminalCode == '') {\n this.$confirm('确定要解绑吗?', '信息提示', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n }).then(() => {\n vehicleTerminalUnmount({\n vehicleCode: payload.vehicleCode\n }).then(res => {\n if (res.code == 200) {\n this.$message({\n type: 'success',\n message: '解绑成功!'\n });\n this.getLocomotiveList(this.queryParams)\n this.mountListData.dialogVisible = false\n } else {\n this.$message({\n type: 'error',\n message: res.msg\n });\n }\n })\n }).catch(() => {\n this.$message({\n type: 'info',\n message: '已取消'\n });\n });\n } else {\n this.$confirm(`确定要将终端更改为${params.terminalCode}吗?`, '信息提示', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n }).then(() => {\n vehicleTerminalAdd(params).then(res => {\n if (res.code == 200) {\n this.$message({\n type: 'success',\n message: '更换成功!'\n });\n this.getLocomotiveList(this.queryParams)\n this.mountListData.dialogVisible = false\n } else {\n this.$message({\n type: 'error',\n message: res.msg\n });\n }\n })\n }).catch(() => {\n this.$message({\n type: 'info',\n message: '已取消'\n });\n });\n }\n\n }\n },\n getLocomotiveList(params) {\n getLocomotiveList(params).then(res => {\n if (res.code == 200) {\n this.tableData = res.data.records\n this.total = res.data.total\n }\n })\n },\n handleSizeChange(val) {\n this.queryParams.pageSize = val\n this.getLocomotiveList(this.queryParams)\n },\n handleCurrentChange(val) {\n this.queryParams.pageNum = val\n this.getLocomotiveList(this.queryParams)\n },\n handleQuery() {\n this.getLocomotiveList(this.queryParams)\n },\n reset() {\n this.queryParams = {\n pageNum: 1,\n pageSize: 10,\n vehicleName: '',\n vehicleCode: ''\n }\n this.getLocomotiveList(this.queryParams)\n },\n //导出信息\n exportBaseVehicle() {\n if (this.exportData.ids.length == 0) {\n return this.$message({\n type: 'error',\n message: '请选择要导出的机车信息!'\n });\n } else {\n exportBaseVehicle(this.exportData).then(res => {\n // const blob = new Blob([res], { type: 'text/plain;charset=utf-8' });\n // const url = window.URL.createObjectURL(blob);\n // const a = document.createElement('a');\n // a.href = url;\n // a.download = '机车信息管理.xls';\n // a.click();\n // window.URL.revokeObjectURL(url);\n\n\n if (res.type == \"application/json\") {\n const reader = new FileReader(); \n reader.readAsText(res, 'utf-8'); \n reader.onload = function () {\n const msg = JSON.parse(reader.result);\n if(msg.code == 200){\n const blob = new Blob([res], { type: 'text/plain;charset=utf-8' });\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = '机车信息管理.xls';\n a.click();\n window.URL.revokeObjectURL(url);\n } else{\n Message({\n type: 'error',\n message: msg.msg\n });\n } \n }\n }else{\n const blob = new Blob([res], { type: 'text/plain;charset=utf-8' });\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = '机车信息管理.xls';\n a.click();\n window.URL.revokeObjectURL(url);\n }\n\n\n\n })\n }\n },\n downloaExcel() {\n downloaExcel('/baseVehicle/downloaExcel').then(res => {\n const blob = new Blob([res], { type: 'text/plain;charset=utf-8' });\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = '机车信息模板.xls';\n a.click();\n window.URL.revokeObjectURL(url);\n })\n },\n delVehicle(scope) {\n this.$confirm('确定要删除吗?', '信息提示', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n }).then(() => {\n vehicleDelete(scope.id).then(res => {\n if (res.code == 200) {\n this.getLocomotiveList(this.queryParams)\n this.$message({\n type: 'success',\n message: '删除成功!'\n });\n } else {\n this.$message({\n type: 'error',\n message: res.msg\n });\n }\n })\n }).catch(() => {\n this.$message({\n type: 'info',\n message: '已取消删除'\n });\n });\n },\n handleSelectionChange(v) {\n this.exportData.ids = []\n let delVehicleList = ''\n v.forEach(element => {\n delVehicleList += element.id + ','\n this.exportData.ids.push(element.id)\n });\n delVehicleList = delVehicleList.slice(0, delVehicleList.length - 1)\n this.delVehicleList = delVehicleList\n },\n batchDelVehicle() {\n if (this.delVehicleList.length == 0) {\n return this.$message({\n type: 'error',\n message: '请选择要删除的机车信息!'\n });\n }\n this.$confirm('确定要删除吗?', '信息提示', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n }).then(() => {\n vehicleDelete(this.delVehicleList).then(res => {\n if (res.code == 200) {\n this.getLocomotiveList(this.queryParams)\n this.$message({\n type: 'success',\n message: '删除成功!'\n });\n } else {\n this.$message({\n type: 'error',\n message: res.msg\n });\n }\n })\n }).catch(() => {\n this.$message({\n type: 'info',\n message: '已取消删除'\n });\n });\n },\n importLoadIn: function () {\n this.uploadDialog = true\n },\n uploadFileList(file) {\n if (file.status === 'ready') {\n this.fileList.push(file)\n if (this.fileList.length > 1) {\n this.fileList.splice(0, 1)\n }\n }\n },\n // 导入\n httpRequest(param) {\n let formData = new FormData();\n // formData.append('file', this.dataForm.file.raw);\n formData.append('file', this.fileList[0].raw)\n let configHeaders = {\n headers: { \"Content-Type\": \"multipart/form-data\" }\n };\n importVehicle(formData).then(res => {\n if (res.code == 200) {\n this.$message({\n type: 'success',\n message: '导入成功!'\n });\n let uid = this.fileList[0].raw.uid\n let idx = this.$refs.uploadFile.uploadFiles.findIndex(item => item.uid === uid)\n this.$refs.uploadFile.uploadFiles.splice(idx, 1)\n this.getLocomotiveList(this.queryParams)\n this.uploadDialog = false\n } else {\n let uid = this.fileList[0].raw.uid\n let idx = this.$refs.uploadFile.uploadFiles.findIndex(item => item.uid === uid)\n this.$refs.uploadFile.uploadFiles.splice(idx, 1)\n this.$message({\n type: 'error',\n message: res.msg\n });\n }\n })\n },\n addVehicle() {\n this.addVehicleData.dialogVisible = true\n },\n updateVehicle(row) {\n let newRow = { ...row }\n this.updateVehicleData.data = newRow\n this.updateVehicleData.dialogVisible = true\n },\n addVehicleBtn(payload) {\n addVehicle(payload).then(res => {\n if (res.code == 200) {\n this.$message({\n type: 'success',\n message: '新增成功!'\n });\n this.getLocomotiveList(this.queryParams)\n this.addVehicleData.dialogVisible = false\n } else {\n this.$message({\n type: 'error',\n message: res.msg\n });\n }\n })\n },\n updateVehicleBtn(payload) {\n let params = {\n id: payload.data.id,\n vehicleCode: payload.data.vehicleCode,\n vehicleName: payload.data.vehicleName,\n remark: payload.data.remark\n }\n vehicleUpdate(params).then(res => {\n if (res.code == 200) {\n this.$message({\n type: 'success',\n message: '修改成功!'\n });\n this.getLocomotiveList(this.queryParams)\n this.updateVehicleData.dialogVisible = false\n } else {\n this.$message({\n type: 'error',\n message: res.msg\n });\n }\n })\n },\n openList(row) {\n this.mountListData.dialogVisible = true,\n this.mountListData.vehicleCode = row.vehicleCode\n }\n }\n}\n</script>\n \n<style lang=\"scss\" scoped>\n.dashboard {\n &-container {\n margin: 30px;\n }\n\n &-text {\n font-size: 30px;\n line-height: 46px;\n }\n}\n\n.dashboard-container {\n .search-content {\n width: 100%;\n height: 74px;\n background-color: #fff;\n display: flex;\n align-items: center;\n padding-left: 10px;\n\n .el-input {\n margin: 0 10px;\n }\n\n .el-select {\n margin: 0 10px;\n }\n\n .search-btn {\n display: flex;\n align-items: center;\n height: 100%;\n margin-left: 10px;\n\n div {\n // margin: 0 6px;\n display: inline-block;\n width: 80px;\n height: 40px;\n border-radius: 2px;\n font-size: 14px;\n line-height: 40px;\n text-align: center;\n }\n\n div:hover {\n cursor: pointer;\n }\n\n .search {\n margin-right: 10px;\n background-color: #2766DD;\n color: #F7F8FB;\n }\n\n .search:hover {\n background-color: #4D85F4;\n }\n\n .reset {\n color: #333334;\n border: 1px solid #D7D7D7;\n }\n\n .reset:hover {\n color: #1F9FFF;\n border: 1px solid #1F9FFF;\n }\n }\n }\n\n .table-content {\n margin-top: 15px;\n width: 100%;\n background-color: #fff;\n padding: 0 20px 20px;\n\n .btn {\n margin: 15px 20px 15px 0;\n cursor: pointer;\n float: left;\n text-align: center;\n width: 98px;\n height: 34px;\n border-radius: 2px;\n border: 1px solid #ABC7FD;\n line-height: 34px;\n font-weight: 400;\n font-size: 14px;\n color: #2250C8;\n background-color: #E7EEFF;\n }\n\n .btn:hover {\n color: #FFFFFF;\n background-color: #2250C8;\n border: 1px solid #2250C8;\n }\n\n .btn:active {\n color: #FFFFFF;\n background-color: #194DA4;\n border: 1px solid #194DA4;\n }\n\n .startUsing {\n width: 60px;\n height: 25px;\n margin: 14.5px auto 0;\n line-height: 25px;\n text-align: center;\n font-size: 12px;\n color: #fff;\n border-radius: 5px;\n background-color: #00974B;\n }\n\n .Deactivate {\n width: 60px;\n height: 25px;\n margin: 14.5px auto 0;\n line-height: 25px;\n text-align: center;\n font-size: 12px;\n color: #fff;\n border-radius: 5px;\n background-color: #FF9933;\n }\n\n .operateBtn {\n display: flex;\n justify-content: center;\n color: #2866DD;\n\n div {\n font-size: 14px;\n margin: 0 5px;\n cursor: pointer;\n }\n }\n\n .pagination {\n margin: 10px 0;\n width: 100%;\n height: 20px;\n\n .el-pagination {\n float: right;\n margin: 10px 0;\n }\n }\n }\n}\n\n.hxj {\n height: 46px;\n line-height: 46px;\n text-align: center;\n}\n\n.xzmba {\n color: #2766dd;\n text-decoration: underline;\n cursor: pointer;\n}\n\n.operateBtn {\n display: flex;\n justify-content: center;\n color: #2866DD;\n\n div {\n font-size: 16px;\n margin: 0 5px;\n cursor: pointer;\n }\n}\n</style>\n "]}]}