1 |
- {"remainingRequest":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/node_modules/vue-loader/lib/index.js??vue-loader-options!/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/src/views/system/department/index.vue?vue&type=script&lang=js","dependencies":[{"path":"/Users/caoge/Desktop/地质现场/VehicleMonitor-WEB/src/views/system/department/index.vue","mtime":1708395041890},{"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:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQppbXBvcnQgeyBNZXNzYWdlIH0gZnJvbSAiZWxlbWVudC11aSI7DQppbXBvcnQgeyBtYXBHZXR0ZXJzIH0gZnJvbSAndnVleCcNCmltcG9ydCB7IGdldERlcHRMaXN0LCBkZWxEZXB0LCB1cGRhdGVEZXB0LCBleHBvcnREZXB0TGlzdCwgYWRkRGVwdCB9IGZyb20gJ0AvYXBpL3N5c01hbmFnZScNCmltcG9ydCBlZGl0RGVwdERpYWxvZyBmcm9tICcuL2NvbXBvbmVudHMvZWRpdERlcHREaWFsb2cudnVlJw0KaW1wb3J0IGFkZERlcHREaWFsb2cgZnJvbSAnLi9jb21wb25lbnRzL2FkZERlcHREaWFsb2cudnVlJw0KaW1wb3J0IGFkZFRvcERlcHREaWFsb2cgZnJvbSAnLi9jb21wb25lbnRzL2FkZFRvcERlcHREaWFsb2cudnVlJw0KZXhwb3J0IGRlZmF1bHQgew0KICBuYW1lOiAnaG9tZScsDQogIGNvbXB1dGVkOiB7DQogICAgLi4ubWFwR2V0dGVycyhbDQogICAgICAnbmFtZScNCiAgICBdKQ0KICB9LA0KICBjb21wb25lbnRzOiB7DQogICAgZWRpdERlcHREaWFsb2csDQogICAgYWRkRGVwdERpYWxvZywNCiAgICBhZGRUb3BEZXB0RGlhbG9nDQogIH0sDQogIGRhdGEoKSB7DQogICAgcmV0dXJuIHsNCiAgICAgIHNlYXJjaERhdGE6IHsNCiAgICAgICAgZGVwdE5hbWU6ICcnLA0KICAgICAgICBzdGF0dXM6ICcnDQogICAgICB9LA0KICAgICAgbG9hZGluZzogdHJ1ZSwNCiAgICAgIGRlcHRMaXN0OiBbXSwNCiAgICAgIHN0YXR1c09wdGlvbnM6IFsNCiAgICAgICAgew0KICAgICAgICAgIGxhYmVsOiAn5ZCv55SoJywNCiAgICAgICAgICB2YWx1ZTogJzEnDQogICAgICAgIH0sDQogICAgICAgIHsNCiAgICAgICAgICBsYWJlbDogJ+WBnOeUqCcsDQogICAgICAgICAgdmFsdWU6ICcyJw0KICAgICAgICB9DQogICAgICBdLA0KICAgICAgZWRpdERlcHREYXRhOiB7DQogICAgICAgIGRpYWxvZ1Zpc2libGU6IGZhbHNlLA0KICAgICAgICBkYXRhOiB7fQ0KICAgICAgfSwNCiAgICAgIGFkZERlcHREYXRhOiB7DQogICAgICAgIGRpYWxvZ1Zpc2libGU6IGZhbHNlLA0KICAgICAgICBkYXRhOiB7fQ0KICAgICAgfSwNCiAgICAgIGFkZFRvcERlcHREYXRhOiB7DQogICAgICAgIGRpYWxvZ1Zpc2libGU6IGZhbHNlLA0KICAgICAgfQ0KICAgIH0NCiAgfSwNCiAgY3JlYXRlZCgpIHsNCiAgICB0aGlzLmdldERlcHRMaXN0KHRoaXMuc2VhcmNoRGF0YSkNCiAgfSwNCiAgbWV0aG9kczogew0KICAgIGhhbmRsZVVwZGF0ZShyb3csIHN0YXR1cykgew0KICAgICAgaWYgKHN0YXR1cyA9PSAiMSIpIHsNCiAgICAgICAgcm93LnN0YXR1cyA9IHRydWUNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHJvdy5zdGF0dXMgPSBmYWxzZQ0KICAgICAgfQ0KICAgICAgdGhpcy5lZGl0RGVwdERhdGEuZGF0YSA9IHsgLi4ucm93IH0NCiAgICAgIHRoaXMuZWRpdERlcHREYXRhLmRpYWxvZ1Zpc2libGUgPSB0cnVlDQogICAgfSwNCiAgICBoYW5kbGVBZGQocm93KSB7DQogICAgICB0aGlzLmFkZERlcHREYXRhLmRhdGEgPSByb3cNCiAgICAgIHRoaXMuYWRkRGVwdERhdGEuZGlhbG9nVmlzaWJsZSA9IHRydWUNCiAgICB9LA0KICAgIGFkZFRvcERlcHQoKSB7DQogICAgICB0aGlzLmFkZFRvcERlcHREYXRhLmRpYWxvZ1Zpc2libGUgPSB0cnVlDQogICAgfSwNCiAgICBhZGREZXB0QnRuKHBheWxvYWQpIHsNCiAgICAgIGxldCB1cGRhdGVEYXRhID0geyAuLi5wYXlsb2FkIH0NCiAgICAgIGRlbGV0ZSB1cGRhdGVEYXRhLnBhcmVudE5hbWUNCiAgICAgIGlmICh1cGRhdGVEYXRhLnN0YXR1cykgew0KICAgICAgICB1cGRhdGVEYXRhLnN0YXR1cyA9IDENCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHVwZGF0ZURhdGEuc3RhdHVzID0gMg0KICAgICAgfQ0KICAgICAgYWRkRGVwdCh1cGRhdGVEYXRhKS50aGVuKHJlcyA9PiB7DQogICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsNCiAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJywNCiAgICAgICAgICAgIG1lc3NhZ2U6ICfmt7vliqDmiJDlip/vvIEnDQogICAgICAgICAgfSk7DQogICAgICAgICAgdGhpcy5nZXREZXB0TGlzdCh0aGlzLnNlYXJjaERhdGEpDQogICAgICAgICAgdGhpcy5hZGREZXB0RGF0YS5kaWFsb2dWaXNpYmxlID0gZmFsc2UNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsNCiAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsDQogICAgICAgICAgICBtZXNzYWdlOiByZXMubXNnDQogICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgIH0pDQogICAgfSwNCiAgICBhZGRUb3BEZXB0QnRuKHBheWxvYWQpIHsNCiAgICAgIGxldCB1cGRhdGVEYXRhID0geyAuLi5wYXlsb2FkIH0NCiAgICAgIGlmICh1cGRhdGVEYXRhLnN0YXR1cykgew0KICAgICAgICB1cGRhdGVEYXRhLnN0YXR1cyA9IDENCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHVwZGF0ZURhdGEuc3RhdHVzID0gMg0KICAgICAgfQ0KICAgICAgZGVsZXRlIHVwZGF0ZURhdGEucGFyZW50TmFtZQ0KICAgICAgYWRkRGVwdCh1cGRhdGVEYXRhKS50aGVuKHJlcyA9PiB7DQogICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsNCiAgICAgICAgICAgIHR5cGU6ICdzdWNjZXNzJywNCiAgICAgICAgICAgIG1lc3NhZ2U6ICfmt7vliqDmiJDlip/vvIEnDQogICAgICAgICAgfSk7DQogICAgICAgICAgdGhpcy5nZXREZXB0TGlzdCh0aGlzLnNlYXJjaERhdGEpDQogICAgICAgICAgdGhpcy5hZGRUb3BEZXB0RGF0YS5kaWFsb2dWaXNpYmxlID0gZmFsc2UNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsNCiAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsDQogICAgICAgICAgICBtZXNzYWdlOiByZXMubXNnDQogICAgICAgICAgfSk7DQogICAgICAgIH0NCiAgICAgIH0pDQogICAgfSwNCiAgICBleHBvcnREZXB0TGlzdCgpIHsNCiAgICAgIGxldCBwYXJhbXMgPSB7DQogICAgICAgIGRlcHROYW1lOnRoaXMuc2VhcmNoRGF0YS5kZXB0TmFtZSwNCiAgICAgICAgc3RhdHVzOnRoaXMuc2VhcmNoRGF0YS5zdGF0dXMNCiAgICAgIH0NCiAgICAgIGV4cG9ydERlcHRMaXN0KHBhcmFtcykudGhlbihyZXMgPT4gew0KICAgIA0KICAgICAgICBpZiAocmVzLnR5cGUgPT0gImFwcGxpY2F0aW9uL2pzb24iKSB7DQogICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsgDQogICAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQocmVzLCAndXRmLTgnKTsgDQogICAgICAgICAgcmVhZGVyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHsNCiAgICAgICAgICAgIGNvbnN0IG1zZyA9IEpTT04ucGFyc2UocmVhZGVyLnJlc3VsdCk7DQogICAgICAgICAgICBpZihtc2cuY29kZSA9PSAyMDApew0KICAgICAgICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW3Jlc10sIHsgdHlwZTogJ3RleHQvcGxhaW47Y2hhcnNldD11dGYtOCcgfSk7DQogICAgICAgICAgICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpOw0KICAgICAgICAgICAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOw0KICAgICAgICAgICAgICBhLmhyZWYgPSB1cmw7DQogICAgICAgICAgICAgIGEuZG93bmxvYWQgPSAn6YOo6Zeo5L+h5oGvLnhsc3gnOw0KICAgICAgICAgICAgICBhLmNsaWNrKCk7DQogICAgICAgICAgICAgIHdpbmRvdy5VUkwucmV2b2tlT2JqZWN0VVJMKHVybCk7DQogICAgICAgICAgICB9IGVsc2V7DQogICAgICAgICAgICAgIE1lc3NhZ2Uoew0KICAgICAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsDQogICAgICAgICAgICAgICAgbWVzc2FnZTogbXNnLm1zZw0KICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIH0gICAgICANCiAgICAgICAgICB9DQogICAgICAgIH1lbHNlew0KICAgICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbcmVzXSwgeyB0eXBlOiAndGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04JyB9KTsNCiAgICAgICAgICBjb25zdCB1cmwgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTsNCiAgICAgICAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOw0KICAgICAgICAgIGEuaHJlZiA9IHVybDsNCiAgICAgICAgICBhLmRvd25sb2FkID0gJ+mDqOmXqOS/oeaBry54bHN4JzsNCiAgICAgICAgICBhLmNsaWNrKCk7DQogICAgICAgICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwodXJsKTsNCiAgICAgICAgfQ0KDQoNCg0KICAgICAgfSkNCiAgICB9LA0KICAgIGdldERlcHRMaXN0KHBhcmFtcykgew0KICAgICAgZ2V0RGVwdExpc3QocGFyYW1zKS50aGVuKHJlcyA9PiB7DQogICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7DQogICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHsNCiAgICAgICAgICB0aGlzLmRlcHRMaXN0ID0gdGhpcy5oYW5kbGVUcmVlKHJlcy5kYXRhLCAiZGVwdElkIikNCiAgICAgICAgICAvLyB0aGlzLmRlcHRMaXN0ID0gcmVzLmRhdGENCiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsNCiAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsNCiAgICAgICAgICAgIHR5cGU6ICdlcnJvcicsDQogICAgICAgICAgICBtZXNzYWdlOiByZXMubXNnDQogICAgICAgICAgfSkNCiAgICAgICAgfQ0KICAgICAgfSkNCiAgICB9LA0KICAgIHBhcnNlVGltZSh0aW1lLCBwYXR0ZXJuKSB7DQogICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCB8fCAhdGltZSkgew0KICAgICAgICByZXR1cm4gbnVsbA0KICAgICAgfQ0KICAgICAgY29uc3QgZm9ybWF0ID0gcGF0dGVybiB8fCAne3l9LXttfS17ZH0ge2h9OntpfTp7c30nDQogICAgICBsZXQgZGF0ZQ0KICAgICAgaWYgKHR5cGVvZiB0aW1lID09PSAnb2JqZWN0Jykgew0KICAgICAgICBkYXRlID0gdGltZQ0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgaWYgKCh0eXBlb2YgdGltZSA9PT0gJ3N0cmluZycpICYmICgvXlswLTldKyQvLnRlc3QodGltZSkpKSB7DQogICAgICAgICAgdGltZSA9IHBhcnNlSW50KHRpbWUpDQogICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHRpbWUgPT09ICdzdHJpbmcnKSB7DQogICAgICAgICAgdGltZSA9IHRpbWUucmVwbGFjZShuZXcgUmVnRXhwKC8tL2dtKSwgJy8nKS5yZXBsYWNlKCdUJywgJyAnKS5yZXBsYWNlKG5ldyBSZWdFeHAoL1wuW1xkXXszfS9nbSksICcnKTsNCiAgICAgICAgfQ0KICAgICAgICBpZiAoKHR5cGVvZiB0aW1lID09PSAnbnVtYmVyJykgJiYgKHRpbWUudG9TdHJpbmcoKS5sZW5ndGggPT09IDEwKSkgew0KICAgICAgICAgIHRpbWUgPSB0aW1lICogMTAwMA0KICAgICAgICB9DQogICAgICAgIGRhdGUgPSBuZXcgRGF0ZSh0aW1lKQ0KICAgICAgfQ0KICAgICAgY29uc3QgZm9ybWF0T2JqID0gew0KICAgICAgICB5OiBkYXRlLmdldEZ1bGxZZWFyKCksDQogICAgICAgIG06IGRhdGUuZ2V0TW9udGgoKSArIDEsDQogICAgICAgIGQ6IGRhdGUuZ2V0RGF0ZSgpLA0KICAgICAgICBoOiBkYXRlLmdldEhvdXJzKCksDQogICAgICAgIGk6IGRhdGUuZ2V0TWludXRlcygpLA0KICAgICAgICBzOiBkYXRlLmdldFNlY29uZHMoKSwNCiAgICAgICAgYTogZGF0ZS5nZXREYXkoKQ0KICAgICAgfQ0KICAgICAgY29uc3QgdGltZV9zdHIgPSBmb3JtYXQucmVwbGFjZSgveyh5fG18ZHxofGl8c3xhKSt9L2csIChyZXN1bHQsIGtleSkgPT4gew0KICAgICAgICBsZXQgdmFsdWUgPSBmb3JtYXRPYmpba2V5XQ0KICAgICAgICAvLyBOb3RlOiBnZXREYXkoKSByZXR1cm5zIDAgb24gU3VuZGF5DQogICAgICAgIGlmIChrZXkgPT09ICdhJykgeyByZXR1cm4gWyfml6UnLCAn5LiAJywgJ+S6jCcsICfkuIknLCAn5ZubJywgJ+S6lCcsICflha0nXVt2YWx1ZV0gfQ0KICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCA+IDAgJiYgdmFsdWUgPCAxMCkgew0KICAgICAgICAgIHZhbHVlID0gJzAnICsgdmFsdWUNCiAgICAgICAgfQ0KICAgICAgICByZXR1cm4gdmFsdWUgfHwgMA0KICAgICAgfSkNCiAgICAgIHJldHVybiB0aW1lX3N0cg0KICAgIH0sDQogICAgLy/liKDpmaTpg6jpl6gNCiAgICBoYW5kbGVEZWxldGUoc2NvcGUpIHsNCiAgICAgIHRoaXMuJGNvbmZpcm0oJ+ehruWumuimgeWIoOmZpOWQlz8nLCAn5L+h5oGv5o+Q56S6Jywgew0KICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruWumicsDQogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLA0KICAgICAgICB0eXBlOiAnd2FybmluZycNCiAgICAgIH0pLnRoZW4oKCkgPT4gew0KICAgICAgICBkZWxEZXB0KHNjb3BlLmRlcHRJZCkudGhlbihyZXMgPT4gew0KICAgICAgICAgIGlmIChyZXMuY29kZSA9PSAyMDApIHsNCiAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoew0KICAgICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsDQogICAgICAgICAgICAgIG1lc3NhZ2U6ICfliKDpmaTmiJDlip/vvIEnDQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHRoaXMuZ2V0RGVwdExpc3QodGhpcy5zZWFyY2hEYXRhKQ0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsNCiAgICAgICAgICAgICAgdHlwZTogJ2Vycm9yJywNCiAgICAgICAgICAgICAgbWVzc2FnZTogcmVzLm1zZw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgfQ0KICAgICAgICB9KQ0KICAgICAgfSkuY2F0Y2goKCkgPT4gew0KICAgICAgICB0aGlzLiRtZXNzYWdlKHsNCiAgICAgICAgICB0eXBlOiAnaW5mbycsDQogICAgICAgICAgbWVzc2FnZTogJ+W3suWPlua2iOWIoOmZpCcNCiAgICAgICAgfSk7DQogICAgICB9KTsNCiAgICB9LA0KICAgIC8v5L+u5pS5DQogICAgZWRpdERlcHQoc2NvcGUpIHsNCiAgICAgIGxldCBuZXdTY29wZSA9IHsgLi4uc2NvcGUgfQ0KICAgICAgaWYgKG5ld1Njb3BlLnN0YXR1cyA9PSAnMScpIHsNCiAgICAgICAgbmV3U2NvcGUuc3RhdHVzID0gZmFsc2UNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIG5ld1Njb3BlLnN0YXR1cyA9IHRydWUNCiAgICAgIH0NCiAgICAgIHRoaXMuZWRpdERlcHREYXRhLmRhdGEgPSB7IC4uLnNjb3BlIH0NCiAgICAgIHRoaXMuZWRpdERlcHREYXRhLmRpYWxvZ1Zpc2libGUgPSB0cnVlDQogICAgfSwNCiAgICB1cGRhdGVEZXB0KHBheWxvYWQpIHsNCiAgICAgIHVwZGF0ZURlcHQocGF5bG9hZCkudGhlbihyZXMgPT4gew0KICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZSh7DQogICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsDQogICAgICAgICAgICBtZXNzYWdlOiAn5L+u5pS55oiQ5Yqf77yBJw0KICAgICAgICAgIH0pOw0KICAgICAgICAgIHRoaXMuZWRpdERlcHREYXRhLmRpYWxvZ1Zpc2libGUgPSBmYWxzZQ0KICAgICAgICAgIHRoaXMuZ2V0RGVwdExpc3QodGhpcy5zZWFyY2hEYXRhKQ0KICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uoew0KICAgICAgICAgICAgdHlwZTogJ2Vycm9yJywNCiAgICAgICAgICAgIG1lc3NhZ2U6IHJlcy5tc2cNCiAgICAgICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgfSkNCiAgICB9LA0KICAgIHNlYXJjaEJ0bigpIHsNCiAgICAgIHRoaXMuZ2V0RGVwdExpc3QodGhpcy5zZWFyY2hEYXRhKQ0KICAgIH0sDQogICAgcmVzZXQoKSB7DQogICAgICB0aGlzLnNlYXJjaERhdGEgPSB7DQogICAgICAgIGRlcHROYW1lOiAnJywNCiAgICAgICAgc3RhdHVzOiAnJw0KICAgICAgfQ0KICAgICAgdGhpcy5nZXREZXB0TGlzdCh0aGlzLnNlYXJjaERhdGEpDQogICAgfSwNCiAgICBoYW5kbGVUcmVlKGRhdGEsIGlkLCBwYXJlbnRJZCwgY2hpbGRyZW4pIHsNCiAgICAgIGxldCBjb25maWcgPSB7DQogICAgICAgIGlkOiBpZCB8fCAnaWQnLA0KICAgICAgICBwYXJlbnRJZDogcGFyZW50SWQgfHwgJ3BhcmVudElkJywNCiAgICAgICAgY2hpbGRyZW5MaXN0OiBjaGlsZHJlbiB8fCAnY2hpbGRyZW4nDQogICAgICB9Ow0KDQogICAgICB2YXIgY2hpbGRyZW5MaXN0TWFwID0ge307DQogICAgICB2YXIgbm9kZUlkcyA9IHt9Ow0KICAgICAgdmFyIHRyZWUgPSBbXTsNCg0KICAgICAgZm9yIChsZXQgZCBvZiBkYXRhKSB7DQogICAgICAgIGxldCBwYXJlbnRJZCA9IGRbY29uZmlnLnBhcmVudElkXTsNCiAgICAgICAgaWYgKGNoaWxkcmVuTGlzdE1hcFtwYXJlbnRJZF0gPT0gbnVsbCkgew0KICAgICAgICAgIGNoaWxkcmVuTGlzdE1hcFtwYXJlbnRJZF0gPSBbXTsNCiAgICAgICAgfQ0KICAgICAgICBub2RlSWRzW2RbY29uZmlnLmlkXV0gPSBkOw0KICAgICAgICBjaGlsZHJlbkxpc3RNYXBbcGFyZW50SWRdLnB1c2goZCk7DQogICAgICB9DQoNCiAgICAgIGZvciAobGV0IGQgb2YgZGF0YSkgew0KICAgICAgICBsZXQgcGFyZW50SWQgPSBkW2NvbmZpZy5wYXJlbnRJZF07DQogICAgICAgIGlmIChub2RlSWRzW3BhcmVudElkXSA9PSBudWxsKSB7DQogICAgICAgICAgdHJlZS5wdXNoKGQpOw0KICAgICAgICB9DQogICAgICB9DQoNCiAgICAgIGZvciAobGV0IHQgb2YgdHJlZSkgew0KICAgICAgICBhZGFwdFRvQ2hpbGRyZW5MaXN0KHQpOw0KICAgICAgfQ0KDQogICAgICBmdW5jdGlvbiBhZGFwdFRvQ2hpbGRyZW5MaXN0KG8pIHsNCiAgICAgICAgaWYgKGNoaWxkcmVuTGlzdE1hcFtvW2NvbmZpZy5pZF1dICE9PSBudWxsKSB7DQogICAgICAgICAgb1tjb25maWcuY2hpbGRyZW5MaXN0XSA9IGNoaWxkcmVuTGlzdE1hcFtvW2NvbmZpZy5pZF1dOw0KICAgICAgICB9DQogICAgICAgIGlmIChvW2NvbmZpZy5jaGlsZHJlbkxpc3RdKSB7DQogICAgICAgICAgZm9yIChsZXQgYyBvZiBvW2NvbmZpZy5jaGlsZHJlbkxpc3RdKSB7DQogICAgICAgICAgICBhZGFwdFRvQ2hpbGRyZW5MaXN0KGMpOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgcmV0dXJuIHRyZWU7DQogICAgfQ0KICB9DQp9DQo="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;;;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;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/views/system/department","sourcesContent":["<template>\r\n <div class=\"dashboard-container\">\r\n <div class=\"search-content\">\r\n <el-input style=\"width: 220px;\" v-model=\"searchData.deptName\" placeholder=\"请输入部门名称\" clearable></el-input>\r\n <el-select style=\"width: 220px;\" clearable placeholder=\"请选择状态\" v-model=\"searchData.status\">\r\n <el-option v-for=\"item in statusOptions\" :key=\"item.value\" :label=\"item.label\" :value=\"item.value\">\r\n </el-option>\r\n </el-select>\r\n <div class=\"search-btn\">\r\n <!-- <el-button type=\"primary\" @click=\"searchBtn()\">搜索</el-button>\r\n <el-button @click=\"reset()\">重置</el-button> -->\r\n <div class=\"search\" @click=\"searchBtn()\">查询</div>\r\n <div class=\"reset\" @click=\"reset()\">重置</div>\r\n </div>\r\n </div>\r\n <div class=\"table-content\">\r\n <div style=\"width: 100%;height: 30px;\">\r\n <div class=\"btn\" @click=\"addTopDept()\">\r\n <span class=\"icon font_family\"></span>\r\n 新增\r\n </div>\r\n <div class=\"btn\" @click=\"exportDeptList()\">\r\n <span class=\"icon font_family\"></span>\r\n <a>导出</a>\r\n </div>\r\n </div>\r\n <el-table :indent=\"50\" ref=\"tableRef\" v-loading=\"loading\" :data=\"deptList\" row-key=\"deptId\"\r\n :default-expand-all=\"true\" highlight-current-row style=\"width: 100%\"\r\n :tree-props=\"{ children: 'children', hasChildren: 'hasChildren' }\">\r\n <el-table-column prop=\"deptName\" label=\"部门名称\" width=\"320\"></el-table-column>\r\n <el-table-column prop=\"deptCode\" label=\"部门编码\"></el-table-column>\r\n <el-table-column prop=\"orderNum\" label=\"排序\" width=\"200\"></el-table-column>\r\n <el-table-column prop=\"status\" label=\"状态\" width=\"80\">\r\n <template slot-scope=\"scope\">\r\n <div class=\"startUsing\" v-if=\"scope.row.status == '1'\">启用</div>\r\n <div class=\"Deactivate\" v-else>停用</div>\r\n </template>\r\n </el-table-column>\r\n <!-- <el-table-column prop=\"remarks\" label=\"备注\" show-overflow-tooltip></el-table-column> -->\r\n <el-table-column label=\"创建时间\" align=\"center\" prop=\"createTime\" width=\"200\">\r\n <template #default=\"scope\">\r\n <span>{{ parseTime(scope.row.createTime) }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"操作\" align=\"center\" class-name=\"small-padding fixed-width\" width=\"200\">\r\n <template slot-scope=\"scope\">\r\n <el-button type=\"text\" style=\"color: #2866DD;font-size: 14px;\"\r\n @click=\"handleUpdate(scope.row, scope.row.status)\">修改</el-button>\r\n <el-divider direction=\"vertical\"></el-divider>\r\n <el-button type=\"text\" style=\"color: #2866DD;font-size: 14px\" @click=\"handleAdd(scope.row)\"\r\n v-hasPermi=\"['system:dept:add']\">新增</el-button>\r\n <el-divider direction=\"vertical\"></el-divider>\r\n <el-button type=\"text\" style=\"color: #2866DD;font-size: 14px\" @click=\"handleDelete(scope.row)\">删除</el-button>\r\n </template>\r\n </el-table-column>\r\n <template v-slot:empty>\r\n <svg-icon icon-class=\"search-none\" style=\"font-size: 64px\" />\r\n <p>暂无数据</p>\r\n </template>\r\n </el-table>\r\n <editDeptDialog :editDeptData=\"editDeptData\" @updateDept=\"updateDept\"></editDeptDialog>\r\n <addDeptDialog :addDeptData=\"addDeptData\" v-if=\"addDeptData.dialogVisible\" @addDeptBtn=\"addDeptBtn\"></addDeptDialog>\r\n <addTopDeptDialog v-if=\"addTopDeptData.dialogVisible\" :addTopDeptData=\"addTopDeptData\"\r\n @addTopDeptBtn=\"addTopDeptBtn\"></addTopDeptDialog>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { Message } from \"element-ui\";\r\nimport { mapGetters } from 'vuex'\r\nimport { getDeptList, delDept, updateDept, exportDeptList, addDept } from '@/api/sysManage'\r\nimport editDeptDialog from './components/editDeptDialog.vue'\r\nimport addDeptDialog from './components/addDeptDialog.vue'\r\nimport addTopDeptDialog from './components/addTopDeptDialog.vue'\r\nexport default {\r\n name: 'home',\r\n computed: {\r\n ...mapGetters([\r\n 'name'\r\n ])\r\n },\r\n components: {\r\n editDeptDialog,\r\n addDeptDialog,\r\n addTopDeptDialog\r\n },\r\n data() {\r\n return {\r\n searchData: {\r\n deptName: '',\r\n status: ''\r\n },\r\n loading: true,\r\n deptList: [],\r\n statusOptions: [\r\n {\r\n label: '启用',\r\n value: '1'\r\n },\r\n {\r\n label: '停用',\r\n value: '2'\r\n }\r\n ],\r\n editDeptData: {\r\n dialogVisible: false,\r\n data: {}\r\n },\r\n addDeptData: {\r\n dialogVisible: false,\r\n data: {}\r\n },\r\n addTopDeptData: {\r\n dialogVisible: false,\r\n }\r\n }\r\n },\r\n created() {\r\n this.getDeptList(this.searchData)\r\n },\r\n methods: {\r\n handleUpdate(row, status) {\r\n if (status == \"1\") {\r\n row.status = true\r\n } else {\r\n row.status = false\r\n }\r\n this.editDeptData.data = { ...row }\r\n this.editDeptData.dialogVisible = true\r\n },\r\n handleAdd(row) {\r\n this.addDeptData.data = row\r\n this.addDeptData.dialogVisible = true\r\n },\r\n addTopDept() {\r\n this.addTopDeptData.dialogVisible = true\r\n },\r\n addDeptBtn(payload) {\r\n let updateData = { ...payload }\r\n delete updateData.parentName\r\n if (updateData.status) {\r\n updateData.status = 1\r\n } else {\r\n updateData.status = 2\r\n }\r\n addDept(updateData).then(res => {\r\n if (res.code == 200) {\r\n this.$message({\r\n type: 'success',\r\n message: '添加成功!'\r\n });\r\n this.getDeptList(this.searchData)\r\n this.addDeptData.dialogVisible = false\r\n } else {\r\n this.$message({\r\n type: 'error',\r\n message: res.msg\r\n });\r\n }\r\n })\r\n },\r\n addTopDeptBtn(payload) {\r\n let updateData = { ...payload }\r\n if (updateData.status) {\r\n updateData.status = 1\r\n } else {\r\n updateData.status = 2\r\n }\r\n delete updateData.parentName\r\n addDept(updateData).then(res => {\r\n if (res.code == 200) {\r\n this.$message({\r\n type: 'success',\r\n message: '添加成功!'\r\n });\r\n this.getDeptList(this.searchData)\r\n this.addTopDeptData.dialogVisible = false\r\n } else {\r\n this.$message({\r\n type: 'error',\r\n message: res.msg\r\n });\r\n }\r\n })\r\n },\r\n exportDeptList() {\r\n let params = {\r\n deptName:this.searchData.deptName,\r\n status:this.searchData.status\r\n }\r\n exportDeptList(params).then(res => {\r\n \r\n if (res.type == \"application/json\") {\r\n const reader = new FileReader(); \r\n reader.readAsText(res, 'utf-8'); \r\n reader.onload = function () {\r\n const msg = JSON.parse(reader.result);\r\n if(msg.code == 200){\r\n const blob = new Blob([res], { type: 'text/plain;charset=utf-8' });\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = '部门信息.xlsx';\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n } else{\r\n Message({\r\n type: 'error',\r\n message: msg.msg\r\n });\r\n } \r\n }\r\n }else{\r\n const blob = new Blob([res], { type: 'text/plain;charset=utf-8' });\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = '部门信息.xlsx';\r\n a.click();\r\n window.URL.revokeObjectURL(url);\r\n }\r\n\r\n\r\n\r\n })\r\n },\r\n getDeptList(params) {\r\n getDeptList(params).then(res => {\r\n this.loading = true;\r\n if (res.code == 200) {\r\n this.deptList = this.handleTree(res.data, \"deptId\")\r\n // this.deptList = res.data\r\n this.loading = false;\r\n } else {\r\n this.$message({\r\n type: 'error',\r\n message: res.msg\r\n })\r\n }\r\n })\r\n },\r\n parseTime(time, pattern) {\r\n if (arguments.length === 0 || !time) {\r\n return null\r\n }\r\n const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'\r\n let date\r\n if (typeof time === 'object') {\r\n date = time\r\n } else {\r\n if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {\r\n time = parseInt(time)\r\n } else if (typeof time === 'string') {\r\n time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\\.[\\d]{3}/gm), '');\r\n }\r\n if ((typeof time === 'number') && (time.toString().length === 10)) {\r\n time = time * 1000\r\n }\r\n date = new Date(time)\r\n }\r\n const formatObj = {\r\n y: date.getFullYear(),\r\n m: date.getMonth() + 1,\r\n d: date.getDate(),\r\n h: date.getHours(),\r\n i: date.getMinutes(),\r\n s: date.getSeconds(),\r\n a: date.getDay()\r\n }\r\n const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {\r\n let value = formatObj[key]\r\n // Note: getDay() returns 0 on Sunday\r\n if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] }\r\n if (result.length > 0 && value < 10) {\r\n value = '0' + value\r\n }\r\n return value || 0\r\n })\r\n return time_str\r\n },\r\n //删除部门\r\n handleDelete(scope) {\r\n this.$confirm('确定要删除吗?', '信息提示', {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n type: 'warning'\r\n }).then(() => {\r\n delDept(scope.deptId).then(res => {\r\n if (res.code == 200) {\r\n this.$message({\r\n type: 'success',\r\n message: '删除成功!'\r\n });\r\n this.getDeptList(this.searchData)\r\n } else {\r\n this.$message({\r\n type: 'error',\r\n message: res.msg\r\n });\r\n }\r\n })\r\n }).catch(() => {\r\n this.$message({\r\n type: 'info',\r\n message: '已取消删除'\r\n });\r\n });\r\n },\r\n //修改\r\n editDept(scope) {\r\n let newScope = { ...scope }\r\n if (newScope.status == '1') {\r\n newScope.status = false\r\n } else {\r\n newScope.status = true\r\n }\r\n this.editDeptData.data = { ...scope }\r\n this.editDeptData.dialogVisible = true\r\n },\r\n updateDept(payload) {\r\n updateDept(payload).then(res => {\r\n if (res.code == 200) {\r\n this.$message({\r\n type: 'success',\r\n message: '修改成功!'\r\n });\r\n this.editDeptData.dialogVisible = false\r\n this.getDeptList(this.searchData)\r\n } else {\r\n this.$message({\r\n type: 'error',\r\n message: res.msg\r\n });\r\n }\r\n })\r\n },\r\n searchBtn() {\r\n this.getDeptList(this.searchData)\r\n },\r\n reset() {\r\n this.searchData = {\r\n deptName: '',\r\n status: ''\r\n }\r\n this.getDeptList(this.searchData)\r\n },\r\n handleTree(data, id, parentId, children) {\r\n let config = {\r\n id: id || 'id',\r\n parentId: parentId || 'parentId',\r\n childrenList: children || 'children'\r\n };\r\n\r\n var childrenListMap = {};\r\n var nodeIds = {};\r\n var tree = [];\r\n\r\n for (let d of data) {\r\n let parentId = d[config.parentId];\r\n if (childrenListMap[parentId] == null) {\r\n childrenListMap[parentId] = [];\r\n }\r\n nodeIds[d[config.id]] = d;\r\n childrenListMap[parentId].push(d);\r\n }\r\n\r\n for (let d of data) {\r\n let parentId = d[config.parentId];\r\n if (nodeIds[parentId] == null) {\r\n tree.push(d);\r\n }\r\n }\r\n\r\n for (let t of tree) {\r\n adaptToChildrenList(t);\r\n }\r\n\r\n function adaptToChildrenList(o) {\r\n if (childrenListMap[o[config.id]] !== null) {\r\n o[config.childrenList] = childrenListMap[o[config.id]];\r\n }\r\n if (o[config.childrenList]) {\r\n for (let c of o[config.childrenList]) {\r\n adaptToChildrenList(c);\r\n }\r\n }\r\n }\r\n return tree;\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.dashboard {\r\n &-container {\r\n margin: 30px;\r\n }\r\n\r\n &-text {\r\n font-size: 30px;\r\n line-height: 46px;\r\n }\r\n}\r\n\r\n.dashboard-container {\r\n .search-content {\r\n width: 100%;\r\n height: 74px;\r\n background-color: #fff;\r\n display: flex;\r\n align-items: center;\r\n padding-left: 10px;\r\n\r\n .el-input {\r\n margin: 0 10px;\r\n }\r\n\r\n .el-select {\r\n margin: 0 10px;\r\n }\r\n\r\n .search-btn {\r\n display: flex;\r\n align-items: center;\r\n height: 100%;\r\n margin-left: 10px;\r\n\r\n div {\r\n // margin: 0 6px;\r\n display: inline-block;\r\n width: 80px;\r\n height: 40px;\r\n border-radius: 2px;\r\n font-size: 14px;\r\n line-height: 40px;\r\n text-align: center;\r\n }\r\n\r\n div:hover {\r\n cursor: pointer;\r\n }\r\n\r\n .search {\r\n margin-right: 10px;\r\n background-color: #2766DD;\r\n color: #F7F8FB;\r\n }\r\n\r\n .search:hover {\r\n background-color: #4D85F4;\r\n }\r\n\r\n .reset {\r\n color: #333334;\r\n border: 1px solid #D7D7D7;\r\n }\r\n\r\n .reset:hover {\r\n color: #1F9FFF;\r\n border: 1px solid #1F9FFF;\r\n }\r\n }\r\n }\r\n\r\n .table-content {\r\n margin-top: 15px;\r\n width: 100%;\r\n background-color: #fff;\r\n padding: 0 20px;\r\n\r\n .btn {\r\n margin: 15px 20px 15px 0;\r\n cursor: pointer;\r\n float: left;\r\n text-align: center;\r\n width: 98px;\r\n height: 34px;\r\n border-radius: 2px;\r\n border: 1px solid #ABC7FD;\r\n line-height: 34px;\r\n font-weight: 400;\r\n font-size: 14px;\r\n color: #2250C8;\r\n background-color: #E7EEFF;\r\n }\r\n\r\n .btn:hover {\r\n color: #FFFFFF;\r\n background-color: #2250C8;\r\n border: 1px solid #2250C8;\r\n }\r\n\r\n .btn:active {\r\n color: #FFFFFF;\r\n background-color: #194DA4;\r\n border: 1px solid #194DA4;\r\n }\r\n\r\n .startUsing {\r\n width: 54px;\r\n height: 24px;\r\n margin: 14.5px auto 0;\r\n line-height: 24px;\r\n text-align: center;\r\n font-size: 12px;\r\n color: #00974D;\r\n border-radius: 4px;\r\n background-color: #E7FAF0;\r\n border: 1px solid #BEFDDD;\r\n }\r\n\r\n .Deactivate {\r\n width: 54px;\r\n height: 24px;\r\n margin: 14.5px auto 0;\r\n line-height: 24px;\r\n text-align: center;\r\n font-size: 12px;\r\n color: #FF9933;\r\n border-radius: 4px;\r\n background-color: #FFF3E8;\r\n border: 1px solid #FDE6CF;\r\n }\r\n .operateBtn {\r\n display: flex;\r\n justify-content: center;\r\n color: #1E9FFF;\r\n\r\n div {\r\n margin: 0 5px;\r\n cursor: pointer;\r\n }\r\n }\r\n\r\n .pagination {\r\n margin: 10px 0;\r\n width: 100%;\r\n height: 20px;\r\n\r\n .el-pagination {\r\n float: right;\r\n }\r\n }\r\n }\r\n\r\n}\r\n</style>\r\n"]}]}
|