| 1 |
- {"remainingRequest":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\front\\item\\zyAdmin\\src\\pages\\system\\backendRouting\\debugging.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\front\\item\\zyAdmin\\src\\pages\\system\\backendRouting\\debugging.vue","mtime":1761614939067},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\babel-loader\\lib\\index.js","mtime":1761614927320},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js","mtime":1761614937402}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:DQppbXBvcnQgcmVxdWVzdCBmcm9tICcuL3JlcXVlc3QnOw0KaW1wb3J0IE1vbmFjb0VkaXRvciBmcm9tICcuL2NvbXBvbmVudHMvTW9uYWNvRWRpdG9yLnZ1ZSc7DQppbXBvcnQgdnVlZHJhZ2dhYmxlIGZyb20gJ3Z1ZWRyYWdnYWJsZSc7DQppbXBvcnQgeyBnZXRDb29raWVzIH0gZnJvbSAnQC9saWJzL3V0aWwnOw0KDQpmdW5jdGlvbiByZXF1ZXN0TWV0aG9kKHVybCwgbWV0aG9kLCBwYXJhbXMsIGRhdGEsIGhlYWRlckl0ZW0pIHsNCiAgcmV0dXJuIHJlcXVlc3Qoew0KICAgIHVybCwNCiAgICBtZXRob2QsDQogICAgcGFyYW1zLA0KICAgIGRhdGEsDQogICAgaGVhZGVySXRlbSwNCiAgfSk7DQp9DQpleHBvcnQgZGVmYXVsdCB7DQogIGNvbXBvbmVudHM6IHsgTW9uYWNvRWRpdG9yIH0sDQogIHByb3BzOiB7DQogICAgZm9ybVZhbGlkYXRlOiB7DQogICAgICB0eXBlOiBPYmplY3QsDQogICAgICBkZWZhdWx0OiAoKSA9PiB7DQogICAgICAgIHJldHVybiB7fTsNCiAgICAgIH0sDQogICAgfSwNCiAgICByZXF1ZXN0VHlwZUxpc3Q6IHsNCiAgICAgIHR5cGU6IEFycmF5LA0KICAgICAgZGVmYXVsdDogKCkgPT4gew0KICAgICAgICByZXR1cm4gW107DQogICAgICB9LA0KICAgIH0sDQogICAgdHlwZUxpc3Q6IHsNCiAgICAgIHR5cGU6IEFycmF5LA0KICAgICAgZGVmYXVsdDogKCkgPT4gew0KICAgICAgICByZXR1cm4gW107DQogICAgICB9LA0KICAgIH0sDQogICAgYXBpVHlwZTogew0KICAgICAgdHlwZTogU3RyaW5nLA0KICAgICAgZGVmYXVsdDogJ2FkbWluYXBpJywNCiAgICB9LA0KICB9LA0KICBkYXRhKCkgew0KICAgIHJldHVybiB7DQogICAgICBib2R5VHlwZTogJ2Zvcm0tZGF0YScsDQogICAgICBpbnRlcmZhY2VEYXRhOiB1bmRlZmluZWQsDQogICAgICBwYXJhbXNUeXBlOiAnUGFyYW1zJywNCiAgICAgIGVkaXRvcjogJycsIC8v5b2T5YmN57yW6L6R5Zmo5a+56LGhDQogICAgICBjb2RlczogJycsDQogICAgICBqc29uQm9keTogJycsDQogICAgfTsNCiAgfSwNCiAgY3JlYXRlZCgpIHsNCiAgICB0aGlzLmludGVyZmFjZURhdGEgPSB0aGlzLmZvcm1WYWxpZGF0ZTsNCiAgICB0aGlzLmludGVyZmFjZURhdGEucmVxdWVzdF9ib2R5ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmludGVyZmFjZURhdGEucmVxdWVzdCkpOw0KICB9LA0KICBtb3VudGVkKCkgew0KICAgIGlmICghdGhpcy4kcmVmcy56VGFibGUuZ2V0VGFibGVEYXRhKCkudGFibGVEYXRhLmxlbmd0aCAmJiB0aGlzLmFwaVR5cGUgPT0gJ2FkbWluYXBpJykgew0KICAgICAgdGhpcy5pbnNlcnRFdmVudCgnelRhYmxlJywgew0KICAgICAgICBhdHRyaWJ1dGU6ICdBdXRob3JpLVphdGlvbicsDQogICAgICAgIHZhbHVlOiAnQmVhcmVyICcgKyBnZXRDb29raWVzKCd0b2tlbicpLA0KICAgICAgfSk7DQogICAgICAvLyB0aGlzLmluc2VydEV2ZW50KCd6YVRhYmxlJyk7DQogICAgfSBlbHNlIHsNCiAgICAgIGlmICh0aGlzLmludGVyZmFjZURhdGEuaGVhZGVyKSB7DQogICAgICAgIHRoaXMuaW50ZXJmYWNlRGF0YS5oZWFkZXIuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHsNCiAgICAgICAgICB0aGlzLmluc2VydEV2ZW50KCd6VGFibGUnLCB7DQogICAgICAgICAgICBhdHRyaWJ1dGU6IGl0ZW0uYXR0cmlidXRlIHx8ICcnLA0KICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUgfHwgJycsDQogICAgICAgICAgfSk7DQogICAgICAgIH0pOw0KICAgICAgfQ0KICAgIH0NCiAgfSwNCiAgbWV0aG9kczogew0KICAgIGFzeW5jIGhhbmRsZUNoYW5nZShlLCByb3csIHR5cGUpIHsNCiAgICAgIGlmIChlLnZhbHVlICE9PSAnYXJyYXknICYmIGUudmFsdWUgIT09ICdvYmplY3QnKSB7DQogICAgICAgIGlmIChyb3cuY2hpbGRyZW4ubGVuZ3RoKSB7DQogICAgICAgICAgbGV0IGFyciA9IHRoaXMuJHJlZnNbdHlwZV0uZ2V0VGFibGVEYXRhKCkudGFibGVEYXRhOw0KICAgICAgICAgIGxldCBpZCA9IHJvdy5jaGlsZHJlblswXS5wYXJlbnRJZDsNCiAgICAgICAgICBjb25zdCAkdGFibGUgPSB0aGlzLiRyZWZzW3R5cGVdOw0KICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyLmxlbmd0aDsgaSsrKSB7DQogICAgICAgICAgICBpZiAoYXJyW2ldLnBhcmVudElkID09IGlkKSB7DQogICAgICAgICAgICAgIGF3YWl0ICR0YWJsZS5yZW1vdmUoYXJyW2ldKTsNCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9LA0KICAgIGluc2VydENvcHkoKSB7DQogICAgICB0aGlzLiRjb3B5VGV4dCh0aGlzLmNvZGVzKQ0KICAgICAgICAudGhlbigobWVzc2FnZSkgPT4gew0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2Vzcygn5aSN5Yi25oiQ5YqfJyk7DQogICAgICAgIH0pDQogICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7DQogICAgICAgICAgdGhpcy4kbWVzc2FnZS5lcnJvcign5aSN5Yi25aSx6LSlJyk7DQogICAgICAgIH0pOw0KICAgIH0sDQogICAgYXN5bmMgcmVxdWVzdERhdGEoKSB7DQogICAgICBsZXQgdXJsLCBtZXRob2QsIHBhcmFtcywgYm9keSwgaGVhZGVyczsNCiAgICAgIHVybCA9IHRoaXMuYXBpVHlwZSArICcvJyArIHRoaXMuaW50ZXJmYWNlRGF0YS5wYXRoOw0KICAgICAgbWV0aG9kID0gdGhpcy5pbnRlcmZhY2VEYXRhLm1ldGhvZDsNCiAgICAgIHBhcmFtcyA9IHRoaXMuZmlsdGVyc0RhdGEoKGF3YWl0IHRoaXMuJHJlZnMueFRhYmxlLmdldFRhYmxlRGF0YSgpLnRhYmxlRGF0YSkgfHwgW10pOw0KICAgICAgYm9keSA9DQogICAgICAgIHRoaXMuYm9keVR5cGUgPT09ICdqc29uJw0KICAgICAgICAgID8gdGhpcy5qc29uQm9keQ0KICAgICAgICAgIDogdGhpcy5maWx0ZXJzRGF0YSgoYXdhaXQgdGhpcy4kcmVmcy55VGFibGUuZ2V0VGFibGVEYXRhKCkudGFibGVEYXRhKSB8fCBbXSk7DQogICAgICBsZXQgaCA9IHRoaXMuZmlsdGVyc0RhdGEoKGF3YWl0IHRoaXMuJHJlZnMuelRhYmxlLmdldFRhYmxlRGF0YSgpLnRhYmxlRGF0YSkgfHwgW10pOw0KICAgICAgaGVhZGVycyA9IGg7DQogICAgICB0aGlzLmNvZGVzID0gJyc7DQogICAgICByZXF1ZXN0TWV0aG9kKHVybCwgbWV0aG9kLCBwYXJhbXMsIGJvZHksIGhlYWRlcnMpDQogICAgICAgIC50aGVuKChyZXMpID0+IHsNCiAgICAgICAgICBpZiAoIXJlcykgcmV0dXJuIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+aOpeWPo+W8guW4uCcpOw0KICAgICAgICAgIHRoaXMuY29kZXMgPSBKU09OLnN0cmluZ2lmeShyZXMpOw0KICAgICAgICB9KQ0KICAgICAgICAuY2F0Y2goKGVycikgPT4gew0KICAgICAgICAgIGlmICghZXJyKSByZXR1cm4gdGhpcy4kbWVzc2FnZS5lcnJvcign5o6l5Y+j5byC5bi4Jyk7DQogICAgICAgICAgdGhpcy5jb2RlcyA9IEpTT04uc3RyaW5naWZ5KGVycik7DQogICAgICAgIH0pOw0KICAgIH0sDQogICAgZmlsdGVyc0RhdGEoYXJyKSB7DQogICAgICB0cnkgew0KICAgICAgICBsZXQgeCA9IHt9Ow0KICAgICAgICBhcnIubWFwKChlKSA9PiB7DQogICAgICAgICAgaWYgKCFlLnBhcmVudElkKSB7DQogICAgICAgICAgICBmb3IgKGxldCBpIGluIGUpIHsNCiAgICAgICAgICAgICAgaWYgKGkgPT0gJ2F0dHJpYnV0ZScpIHsNCiAgICAgICAgICAgICAgICBpZiAoZS50eXBlID09PSAnb2JqZWN0Jykgew0KICAgICAgICAgICAgICAgICAgbGV0IG9iaiA9IHt9Ow0KDQogICAgICAgICAgICAgICAgICBlLmNoaWxkcmVuLm1hcCgoaXRlbSwgaW5kZXgpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgb2JqID0gdGhpcy5maWx0ZXJzT2JqKGl0ZW0sIDEpOw0KICAgICAgICAgICAgICAgICAgfSk7DQogICAgICAgICAgICAgICAgICB4W2VbaV1dID0gb2JqOw0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZS50eXBlICE9PSAnYXJyYXknKSB7DQogICAgICAgICAgICAgICAgICB4W2VbaV1dID0gZS52YWx1ZSB8fCAnJzsNCiAgICAgICAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgICAgICAgbGV0IGFyciA9IFtdOw0KICAgICAgICAgICAgICAgICAgZS5jaGlsZHJlbi5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7DQogICAgICAgICAgICAgICAgICAgIGFycltpbmRleF0gPSB0aGlzLmZpbHRlcnNPYmooaXRlbSk7DQogICAgICAgICAgICAgICAgICB9KTsNCiAgICAgICAgICAgICAgICAgIHhbZVtpXV0gPSBhcnI7DQogICAgICAgICAgICAgICAgfQ0KICAgICAgICAgICAgICB9DQogICAgICAgICAgICB9DQogICAgICAgICAgfQ0KICAgICAgICB9KTsNCiAgICAgICAgcmV0dXJuIHg7DQogICAgICB9IGNhdGNoIChlcnJvcikgew0KICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7DQogICAgICB9DQogICAgfSwNCiAgICAvLyB0eXBlIDEg5Li6b2Jq5bGe5oCnDQogICAgZmlsdGVyc09iaihvYmosIHR5cGUpIHsNCiAgICAgIGxldCB4ID0ge307DQogICAgICBmb3IgKGxldCBpIGluIG9iaikgew0KICAgICAgICBpZiAoaSA9PSAnYXR0cmlidXRlJykgew0KICAgICAgICAgIGlmIChvYmoudHlwZSA9PT0gJ29iamVjdCcpIHsNCiAgICAgICAgICAgIGxldCBvaiA9IHt9Ow0KICAgICAgICAgICAgb2JqLmNoaWxkcmVuLm1hcCgoaXRlbSwgaW5kZXgpID0+IHsNCiAgICAgICAgICAgICAgb2pbb2JqLmF0dHJpYnV0ZV0gPSB0aGlzLmZpbHRlcnNPYmooaXRlbSk7DQogICAgICAgICAgICB9KTsNCiAgICAgICAgICAgIHggPSBvajsNCiAgICAgICAgICB9IGVsc2UgaWYgKG9iai50eXBlICE9PSAnYXJyYXknKSB7DQogICAgICAgICAgICBpZiAodHlwZSkgew0KICAgICAgICAgICAgICB4W29iai5hdHRyaWJ1dGVdID0gb2JqLnZhbHVlIHx8ICcnOw0KICAgICAgICAgICAgfSBlbHNlIHsNCiAgICAgICAgICAgICAgeFtvYmpbaV1dID0gb2JqLnZhbHVlIHx8ICcnOw0KICAgICAgICAgICAgfQ0KICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICBsZXQgYXJyID0gW107DQogICAgICAgICAgICBvYmouY2hpbGRyZW4ubWFwKChpdGVtLCBpbmRleCkgPT4gew0KICAgICAgICAgICAgICBhcnJbaW5kZXhdID0gdGhpcy5maWx0ZXJzT2JqKGl0ZW0pOw0KICAgICAgICAgICAgfSk7DQogICAgICAgICAgICB4W29ialtpXV0gPSBhcnI7DQogICAgICAgICAgfQ0KICAgICAgICB9DQogICAgICB9DQogICAgICByZXR1cm4geDsNCiAgICB9LA0KICAgIGNoYW5nZVRhYihuYW1lKSB7DQogICAgICAvLyBpZiAobmFtZSA9PT0gJ0hlYWRlcicpIHsNCiAgICAgIC8vICAgaWYgKCF0aGlzLiRyZWZzLnpUYWJsZS5nZXRUYWJsZURhdGEoKS50YWJsZURhdGEubGVuZ3RoKSB7DQogICAgICAvLyAgICAgdGhpcy5pbnNlcnRFdmVudCgnelRhYmxlJywgew0KICAgICAgLy8gICAgICAgYXR0cmlidXRlOiAnQXV0aG9yaS1aYXRpb24nLA0KICAgICAgLy8gICAgICAgdmFsdWU6ICdCZWFyZXIgJyArIGdldENvb2tpZXMoJ3Rva2VuJyksDQogICAgICAvLyAgICAgfSk7DQogICAgICAvLyAgICAgdGhpcy5pbnNlcnRFdmVudCgnemFUYWJsZScpOw0KICAgICAgLy8gICB9DQogICAgICAvLyB9DQogICAgfSwNCiAgICBhc3luYyBpbnNlcnRFdmVudCh0eXBlLCBkKSB7DQogICAgICBjb25zdCAkdGFibGUgPSB0aGlzLiRyZWZzW3R5cGVdOw0KICAgICAgbGV0IG5ld1JvdzsNCiAgICAgIGlmICh0eXBlID09ICd4VGFibGUnKSB7DQogICAgICAgIG5ld1JvdyA9IHsNCiAgICAgICAgICBhdHRyaWJ1dGU6ICcnLA0KICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLA0KICAgICAgICAgIG11c3Q6IDAsDQogICAgICAgICAgdmFsdWU6ICcnLA0KICAgICAgICAgIHRyaXA6ICcnLA0KICAgICAgICB9Ow0KICAgICAgfSBlbHNlIGlmICh0eXBlID09ICd5VGFibGUnKSB7DQogICAgICAgIG5ld1JvdyA9IHsNCiAgICAgICAgICBhdHRyaWJ1dGU6ICcnLA0KICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLA0KICAgICAgICAgIHZhbHVlOiAnJywNCiAgICAgICAgICBtdXN0OiAwLA0KICAgICAgICAgIHRyaXA6ICcnLA0KICAgICAgICB9Ow0KICAgICAgfSBlbHNlIGlmICh0eXBlID09ICd6VGFibGUnKSB7DQogICAgICAgIG5ld1JvdyA9IHsNCiAgICAgICAgICBhdHRyaWJ1dGU6ICcnLA0KICAgICAgICAgIHR5cGU6ICcnLA0KICAgICAgICAgIHZhbHVlOiAnJywNCiAgICAgICAgICB0cmlwOiAnJywNCiAgICAgICAgfTsNCiAgICAgICAgbmV3Um93ID0geyAuLi5uZXdSb3csIC4uLmQgfTsNCiAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSAnemFUYWJsZScpIHsNCiAgICAgICAgbmV3Um93ID0gew0KICAgICAgICAgIGF0dHJpYnV0ZTogJ3Rva2VuJywNCiAgICAgICAgICB0eXBlOiAnc3RyaW5nJywNCiAgICAgICAgICB2YWx1ZTogJycsDQogICAgICAgICAgbXVzdDogMCwNCiAgICAgICAgICB0cmlwOiAnJywNCiAgICAgICAgfTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIG5ld1JvdyA9IHsNCiAgICAgICAgICBjb2RlOiAnJywNCiAgICAgICAgICB2YWx1ZTogJycsDQogICAgICAgICAgc29sdXRpb246ICcnLA0KICAgICAgICB9Ow0KICAgICAgfQ0KICAgICAgY29uc3QgeyByb3c6IGRhdGEgfSA9IGF3YWl0ICR0YWJsZS5pbnNlcnRBdChuZXdSb3csIC0xKTsNCiAgICAgIGF3YWl0ICR0YWJsZS5zZXRBY3RpdmVDZWxsKGRhdGEsICduYW1lJyk7DQogICAgfSwNCiAgICBhc3luYyBpbnNlcnRSb3coY3VyclJvdywgdHlwZSkgew0KICAgICAgY29uc3QgJHRhYmxlID0gdGhpcy4kcmVmc1t0eXBlXTsNCiAgICAgIC8vIOWmguaenCBudWxsIOWImeaPkuWFpeWIsOebruagh+iKgueCuemhtumDqA0KICAgICAgLy8g5aaC5p6cIC0xIOWImeaPkuWFpeWIsOebruagh+iKgueCueW6lemDqA0KICAgICAgLy8g5aaC5p6cIHJvdyDliJnmnInmj5LlhaXliLDmlYjnmoTnm67moIfoioLngrnor6XooYznmoTkvY3nva4NCiAgICAgIGxldCByZWNvcmQ7DQogICAgICBpZiAodHlwZSA9PSAneFRhYmxlJykgew0KICAgICAgICByZWNvcmQgPSB7DQogICAgICAgICAgYXR0cmlidXRlOiAnJywNCiAgICAgICAgICB0eXBlOiAnc3RyaW5nJywNCiAgICAgICAgICBtdXN0OiAwLA0KICAgICAgICAgIHZhbHVlOiAnJywNCiAgICAgICAgICB0cmlwOiAnJywNCiAgICAgICAgICBpZDogRGF0ZS5ub3coKSwNCiAgICAgICAgICBwYXJlbnRJZDogY3VyclJvdy5pZCwgLy8g6ZyA6KaB5oyH5a6a54i26IqC54K577yM6Ieq5Yqo5o+S5YWl6K+l6IqC54K55LitDQogICAgICAgIH07DQogICAgICB9IGVsc2Ugew0KICAgICAgICByZWNvcmQgPSB7DQogICAgICAgICAgY29kZTogJycsDQogICAgICAgICAgdmFsdWU6ICcnLA0KICAgICAgICAgIHNvbHV0aW9uOiAnJywNCiAgICAgICAgICBpZDogRGF0ZS5ub3coKSwNCiAgICAgICAgICBwYXJlbnRJZDogY3VyclJvdy5pZCwgLy8g6ZyA6KaB5oyH5a6a54i26IqC54K577yM6Ieq5Yqo5o+S5YWl6K+l6IqC54K55LitDQogICAgICAgIH07DQogICAgICB9DQogICAgICBjb25zdCB7IHJvdzogbmV3Um93IH0gPSBhd2FpdCAkdGFibGUuaW5zZXJ0QXQocmVjb3JkLCAtMSk7DQogICAgICBhd2FpdCAkdGFibGUuc2V0VHJlZUV4cGFuZChjdXJyUm93LCB0cnVlKTsgLy8g5bCG54i26IqC54K55bGV5byADQogICAgICBhd2FpdCAkdGFibGUuc2V0QWN0aXZlUm93KG5ld1Jvdyk7IC8vIOaPkuWFpeWtkOiKgueCuQ0KICAgIH0sDQogICAgYXN5bmMgcmVtb3ZlUm93KHJvdywgdHlwZSkgew0KICAgICAgY29uc3QgJHRhYmxlID0gdGhpcy4kcmVmc1t0eXBlXTsNCiAgICAgIGF3YWl0ICR0YWJsZS5yZW1vdmUocm93KTsNCiAgICB9LA0KICB9LA0KfTsNCg=="},{"version":3,"sources":["debugging.vue"],"names":[],"mappings":";AA4NA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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":"debugging.vue","sourceRoot":"src/pages/system/backendRouting","sourcesContent":["<template>\r\n <div class=\"content\" v-if=\"interfaceData\">\r\n <div class=\"head\">\r\n <el-input v-model=\"interfaceData.path\">\r\n <template #prepend>\r\n <el-select v-model=\"interfaceData.method\" style=\"width: 120px\">\r\n <el-option\r\n v-for=\"(item, index) in requestTypeList\"\r\n :key=\"index\"\r\n :value=\"item.value\"\r\n :label=\"item.label\"\r\n ></el-option>\r\n </el-select>\r\n </template>\r\n </el-input>\r\n <el-button class=\"ml20\" type=\"primary\" v-db-click @click=\"requestData\">请求</el-button>\r\n <el-button v-if=\"codes\" class=\"ml10 copy-btn\" type=\"success\" v-db-click @click=\"insertCopy()\">复制结果</el-button>\r\n </div>\r\n <div class=\"params\">\r\n <el-tabs class=\"mt10\" v-model=\"paramsType\" @tab-click=\"changeTab\">\r\n <el-tab-pane label=\"Params\" name=\"Params\"> </el-tab-pane>\r\n <el-tab-pane label=\"Body\" name=\"Body\"> </el-tab-pane>\r\n <el-tab-pane label=\"Header\" name=\"Header\"> </el-tab-pane>\r\n </el-tabs>\r\n <div v-show=\"paramsType === 'Params'\">\r\n <vxe-table\r\n class=\"mt10\"\r\n resizable\r\n show-overflow\r\n keep-source\r\n ref=\"xTable\"\r\n row-id=\"id\"\r\n :print-config=\"{}\"\r\n :export-config=\"{}\"\r\n :tree-config=\"{ transform: true, rowField: 'id', parentField: 'parentId' }\"\r\n :data=\"interfaceData.query\"\r\n >\r\n <vxe-column field=\"attribute\" width=\"150\" title=\"属性\" tree-node :edit-render=\"{}\">\r\n <template #default=\"{ row }\">\r\n <vxe-input v-model=\"row.attribute\" type=\"text\"></vxe-input>\r\n </template>\r\n </vxe-column>\r\n <vxe-column field=\"value\" title=\"参数值\" :edit-render=\"{}\">\r\n <template #default=\"{ row }\">\r\n <vxe-input v-model=\"row.value\" type=\"text\"></vxe-input>\r\n </template>\r\n </vxe-column>\r\n <vxe-column field=\"type\" title=\"类型\" width=\"120\" :edit-render=\"{}\">\r\n <template #default=\"{ row }\">\r\n <vxe-select\r\n v-model=\"row.type\"\r\n transfer\r\n @change=\"\r\n (val) => {\r\n handleChange(val, row, 'xTable');\r\n }\r\n \"\r\n >\r\n <vxe-option\r\n v-for=\"item in typeList\"\r\n :key=\"item.value\"\r\n :value=\"item.value\"\r\n :label=\"item.label\"\r\n ></vxe-option>\r\n </vxe-select>\r\n </template>\r\n </vxe-column>\r\n <!-- <vxe-column field=\"must\" title=\"必填\" width=\"50\" :edit-render=\"{}\">\r\n <template #default=\"{ row }\">\r\n <span>{{ row.must == '1' ? '是' : '否' }}</span>\r\n </template>\r\n </vxe-column>\r\n <vxe-column field=\"trip\" width=\"150\" title=\"说明\" :edit-render=\"{}\">\r\n <template #default=\"{ row }\">\r\n <vxe-input v-model=\"row.trip\" type=\"text\"></vxe-input>\r\n </template>\r\n </vxe-column> -->\r\n <vxe-column title=\"操作\" width=\"120\">\r\n <template #default=\"{ row }\">\r\n <vxe-button\r\n type=\"text\"\r\n v-if=\"['array', 'object'].includes(row.type)\"\r\n status=\"primary\"\r\n v-db-click\r\n @click=\"insertRow(row, 'xTable')\"\r\n >插入</vxe-button\r\n >\r\n <vxe-button type=\"text\" status=\"primary\" v-db-click @click=\"removeRow(row, 'xTable')\">删除</vxe-button>\r\n </template>\r\n </vxe-column>\r\n </vxe-table>\r\n <el-button class=\"mt10\" type=\"primary\" v-db-click @click=\"insertEvent('xTable')\">添加参数</el-button>\r\n </div>\r\n <div v-show=\"paramsType === 'Body'\">\r\n <el-radio-group v-model=\"bodyType\" class=\"mt10\">\r\n <el-radio label=\"form-data\"></el-radio>\r\n <el-radio label=\"json\"></el-radio>\r\n </el-radio-group>\r\n <vxe-table\r\n v-if=\"bodyType == 'form-data'\"\r\n class=\"mt10\"\r\n resizable\r\n show-overflow\r\n keep-source\r\n ref=\"yTable\"\r\n row-id=\"id\"\r\n :print-config=\"{}\"\r\n :export-config=\"{}\"\r\n :tree-config=\"{ transform: true, rowField: 'id', parentField: 'parentId' }\"\r\n :data=\"interfaceData.request_body\"\r\n >\r\n <vxe-column field=\"attribute\" width=\"150\" title=\"属性\" tree-node :edit-render=\"{}\">\r\n <template #default=\"{ row }\">\r\n <vxe-input v-model=\"row.attribute\" type=\"text\"></vxe-input>\r\n </template>\r\n </vxe-column>\r\n <vxe-column field=\"value\" title=\"参数值\" :edit-render=\"{}\">\r\n <template #default=\"{ row }\">\r\n <vxe-input v-model=\"row.value\" type=\"text\"></vxe-input>\r\n </template>\r\n </vxe-column>\r\n <vxe-column field=\"type\" title=\"类型\" width=\"120\" :edit-render=\"{}\">\r\n <template #default=\"{ row }\">\r\n <vxe-select\r\n v-model=\"row.type\"\r\n transfer\r\n @change=\"\r\n (val) => {\r\n handleChange(val, row, 'yTable');\r\n }\r\n \"\r\n >\r\n <vxe-option\r\n v-for=\"item in typeList\"\r\n :key=\"item.value\"\r\n :value=\"item.value\"\r\n :label=\"item.label\"\r\n ></vxe-option>\r\n </vxe-select>\r\n </template>\r\n </vxe-column>\r\n <!-- <vxe-column field=\"must\" title=\"必填\" width=\"50\" :edit-render=\"{}\">\r\n <template #default=\"{ row }\">\r\n <span>{{ row.must == '1' ? '是' : '否' }}</span>\r\n </template>\r\n </vxe-column>\r\n <vxe-column field=\"trip\" title=\"说明\" width=\"150\" :edit-render=\"{}\">\r\n <template #default=\"{ row }\">\r\n <vxe-input v-model=\"row.trip\" type=\"text\"></vxe-input>\r\n </template>\r\n </vxe-column> -->\r\n <vxe-column title=\"操作\" width=\"120\">\r\n <template #default=\"{ row }\">\r\n <vxe-button\r\n type=\"text\"\r\n v-if=\"['array', 'object'].includes(row.type)\"\r\n status=\"primary\"\r\n v-db-click\r\n @click=\"insertRow(row, 'yTable')\"\r\n >插入</vxe-button\r\n >\r\n <vxe-button type=\"text\" status=\"primary\" v-db-click @click=\"removeRow(row, 'yTable')\">删除</vxe-button>\r\n </template>\r\n </vxe-column>\r\n </vxe-table>\r\n <div v-else>\r\n <el-input v-model=\"jsonBody\" type=\"textarea\" :rows=\"8\" placeholder=\"请求数据\" />\r\n </div>\r\n <el-button v-if=\"bodyType == 'form-data'\" class=\"mt10\" type=\"primary\" v-db-click @click=\"insertEvent('yTable')\"\r\n >添加参数</el-button\r\n >\r\n </div>\r\n\r\n <div v-show=\"paramsType === 'Header'\">\r\n <vxe-table\r\n class=\"mt10\"\r\n resizable\r\n show-overflow\r\n keep-source\r\n ref=\"zTable\"\r\n row-id=\"id\"\r\n :print-config=\"{}\"\r\n :export-config=\"{}\"\r\n :tree-config=\"{ transform: true, rowField: 'id', parentField: 'parentId' }\"\r\n :data=\"interfaceData.headerData\"\r\n >\r\n <vxe-column field=\"attribute\" width=\"300\" title=\"属性\" tree-node :edit-render=\"{}\">\r\n <template #default=\"{ row }\">\r\n <vxe-input v-model=\"row.attribute\" type=\"text\"></vxe-input>\r\n </template>\r\n </vxe-column>\r\n <vxe-column field=\"value\" title=\"参数值\" :edit-render=\"{}\">\r\n <template #default=\"{ row }\">\r\n <vxe-input v-model=\"row.value\" type=\"text\"></vxe-input>\r\n </template>\r\n </vxe-column>\r\n <vxe-column title=\"操作\" width=\"100\">\r\n <template #default=\"{ row }\">\r\n <vxe-button\r\n type=\"text\"\r\n v-if=\"['array', 'object'].includes(row.type)\"\r\n status=\"primary\"\r\n v-db-click\r\n @click=\"insertRow(row, 'zTable')\"\r\n >插入</vxe-button\r\n >\r\n <vxe-button type=\"text\" status=\"primary\" v-db-click @click=\"removeRow(row, 'zTable')\">删除</vxe-button>\r\n </template>\r\n </vxe-column>\r\n </vxe-table>\r\n <el-button class=\"mt10\" type=\"primary\" v-db-click @click=\"insertEvent('zTable')\">添加参数</el-button>\r\n </div>\r\n </div>\r\n <div class=\"res mt10 mb10\" v-if=\"codes\">\r\n <MonacoEditor :codes=\"codes\" :readOnly=\"true\" />\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport request from './request';\r\nimport MonacoEditor from './components/MonacoEditor.vue';\r\nimport vuedraggable from 'vuedraggable';\r\nimport { getCookies } from '@/libs/util';\r\n\r\nfunction requestMethod(url, method, params, data, headerItem) {\r\n return request({\r\n url,\r\n method,\r\n params,\r\n data,\r\n headerItem,\r\n });\r\n}\r\nexport default {\r\n components: { MonacoEditor },\r\n props: {\r\n formValidate: {\r\n type: Object,\r\n default: () => {\r\n return {};\r\n },\r\n },\r\n requestTypeList: {\r\n type: Array,\r\n default: () => {\r\n return [];\r\n },\r\n },\r\n typeList: {\r\n type: Array,\r\n default: () => {\r\n return [];\r\n },\r\n },\r\n apiType: {\r\n type: String,\r\n default: 'adminapi',\r\n },\r\n },\r\n data() {\r\n return {\r\n bodyType: 'form-data',\r\n interfaceData: undefined,\r\n paramsType: 'Params',\r\n editor: '', //当前编辑器对象\r\n codes: '',\r\n jsonBody: '',\r\n };\r\n },\r\n created() {\r\n this.interfaceData = this.formValidate;\r\n this.interfaceData.request_body = JSON.parse(JSON.stringify(this.interfaceData.request));\r\n },\r\n mounted() {\r\n if (!this.$refs.zTable.getTableData().tableData.length && this.apiType == 'adminapi') {\r\n this.insertEvent('zTable', {\r\n attribute: 'Authori-Zation',\r\n value: 'Bearer ' + getCookies('token'),\r\n });\r\n // this.insertEvent('zaTable');\r\n } else {\r\n if (this.interfaceData.header) {\r\n this.interfaceData.header.forEach((item, index) => {\r\n this.insertEvent('zTable', {\r\n attribute: item.attribute || '',\r\n value: item.value || '',\r\n });\r\n });\r\n }\r\n }\r\n },\r\n methods: {\r\n async handleChange(e, row, type) {\r\n if (e.value !== 'array' && e.value !== 'object') {\r\n if (row.children.length) {\r\n let arr = this.$refs[type].getTableData().tableData;\r\n let id = row.children[0].parentId;\r\n const $table = this.$refs[type];\r\n for (let i = 0; i < arr.length; i++) {\r\n if (arr[i].parentId == id) {\r\n await $table.remove(arr[i]);\r\n }\r\n }\r\n }\r\n }\r\n },\r\n insertCopy() {\r\n this.$copyText(this.codes)\r\n .then((message) => {\r\n this.$message.success('复制成功');\r\n })\r\n .catch((err) => {\r\n this.$message.error('复制失败');\r\n });\r\n },\r\n async requestData() {\r\n let url, method, params, body, headers;\r\n url = this.apiType + '/' + this.interfaceData.path;\r\n method = this.interfaceData.method;\r\n params = this.filtersData((await this.$refs.xTable.getTableData().tableData) || []);\r\n body =\r\n this.bodyType === 'json'\r\n ? this.jsonBody\r\n : this.filtersData((await this.$refs.yTable.getTableData().tableData) || []);\r\n let h = this.filtersData((await this.$refs.zTable.getTableData().tableData) || []);\r\n headers = h;\r\n this.codes = '';\r\n requestMethod(url, method, params, body, headers)\r\n .then((res) => {\r\n if (!res) return this.$message.error('接口异常');\r\n this.codes = JSON.stringify(res);\r\n })\r\n .catch((err) => {\r\n if (!err) return this.$message.error('接口异常');\r\n this.codes = JSON.stringify(err);\r\n });\r\n },\r\n filtersData(arr) {\r\n try {\r\n let x = {};\r\n arr.map((e) => {\r\n if (!e.parentId) {\r\n for (let i in e) {\r\n if (i == 'attribute') {\r\n if (e.type === 'object') {\r\n let obj = {};\r\n\r\n e.children.map((item, index) => {\r\n obj = this.filtersObj(item, 1);\r\n });\r\n x[e[i]] = obj;\r\n } else if (e.type !== 'array') {\r\n x[e[i]] = e.value || '';\r\n } else {\r\n let arr = [];\r\n e.children.map((item, index) => {\r\n arr[index] = this.filtersObj(item);\r\n });\r\n x[e[i]] = arr;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n return x;\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n },\r\n // type 1 为obj属性\r\n filtersObj(obj, type) {\r\n let x = {};\r\n for (let i in obj) {\r\n if (i == 'attribute') {\r\n if (obj.type === 'object') {\r\n let oj = {};\r\n obj.children.map((item, index) => {\r\n oj[obj.attribute] = this.filtersObj(item);\r\n });\r\n x = oj;\r\n } else if (obj.type !== 'array') {\r\n if (type) {\r\n x[obj.attribute] = obj.value || '';\r\n } else {\r\n x[obj[i]] = obj.value || '';\r\n }\r\n } else {\r\n let arr = [];\r\n obj.children.map((item, index) => {\r\n arr[index] = this.filtersObj(item);\r\n });\r\n x[obj[i]] = arr;\r\n }\r\n }\r\n }\r\n return x;\r\n },\r\n changeTab(name) {\r\n // if (name === 'Header') {\r\n // if (!this.$refs.zTable.getTableData().tableData.length) {\r\n // this.insertEvent('zTable', {\r\n // attribute: 'Authori-Zation',\r\n // value: 'Bearer ' + getCookies('token'),\r\n // });\r\n // this.insertEvent('zaTable');\r\n // }\r\n // }\r\n },\r\n async insertEvent(type, d) {\r\n const $table = this.$refs[type];\r\n let newRow;\r\n if (type == 'xTable') {\r\n newRow = {\r\n attribute: '',\r\n type: 'string',\r\n must: 0,\r\n value: '',\r\n trip: '',\r\n };\r\n } else if (type == 'yTable') {\r\n newRow = {\r\n attribute: '',\r\n type: 'string',\r\n value: '',\r\n must: 0,\r\n trip: '',\r\n };\r\n } else if (type == 'zTable') {\r\n newRow = {\r\n attribute: '',\r\n type: '',\r\n value: '',\r\n trip: '',\r\n };\r\n newRow = { ...newRow, ...d };\r\n } else if (type == 'zaTable') {\r\n newRow = {\r\n attribute: 'token',\r\n type: 'string',\r\n value: '',\r\n must: 0,\r\n trip: '',\r\n };\r\n } else {\r\n newRow = {\r\n code: '',\r\n value: '',\r\n solution: '',\r\n };\r\n }\r\n const { row: data } = await $table.insertAt(newRow, -1);\r\n await $table.setActiveCell(data, 'name');\r\n },\r\n async insertRow(currRow, type) {\r\n const $table = this.$refs[type];\r\n // 如果 null 则插入到目标节点顶部\r\n // 如果 -1 则插入到目标节点底部\r\n // 如果 row 则有插入到效的目标节点该行的位置\r\n let record;\r\n if (type == 'xTable') {\r\n record = {\r\n attribute: '',\r\n type: 'string',\r\n must: 0,\r\n value: '',\r\n trip: '',\r\n id: Date.now(),\r\n parentId: currRow.id, // 需要指定父节点,自动插入该节点中\r\n };\r\n } else {\r\n record = {\r\n code: '',\r\n value: '',\r\n solution: '',\r\n id: Date.now(),\r\n parentId: currRow.id, // 需要指定父节点,自动插入该节点中\r\n };\r\n }\r\n const { row: newRow } = await $table.insertAt(record, -1);\r\n await $table.setTreeExpand(currRow, true); // 将父节点展开\r\n await $table.setActiveRow(newRow); // 插入子节点\r\n },\r\n async removeRow(row, type) {\r\n const $table = this.$refs[type];\r\n await $table.remove(row);\r\n },\r\n },\r\n};\r\n</script>\r\n<style>\r\n.vxe-select--panel.is--transfer {\r\n z-index: 99999 !important;\r\n}\r\n</style>\r\n<style lang=\"scss\" scoped>\r\n.content {\r\n padding: 12px;\r\n .head {\r\n display: flex;\r\n align-items: center;\r\n .item {\r\n display: flex;\r\n align-items: center;\r\n margin-bottom: 12px;\r\n font-size: 14px;\r\n .title {\r\n margin-right: 14px;\r\n }\r\n }\r\n }\r\n}\r\n.copy-btn {\r\n display: flex;\r\n justify-content: right;\r\n}\r\n::v-deep .monaco-editor {\r\n min-height: 700px;\r\n}\r\n</style>\r\n"]}]}
|