| 1 |
- {"remainingRequest":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\setting\\systemOutInterface\\debugging.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\src\\pages\\setting\\systemOutInterface\\debugging.vue","mtime":1761185180190},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"C:\\Users\\Administrator\\Desktop\\crmeb5.0\\template\\admin\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:DQppbXBvcnQgcmVxdWVzdCBmcm9tICcuL3JlcXVlc3QnOw0KaW1wb3J0IE1vbmFjb0VkaXRvciBmcm9tICcuL2NvbXBvbmVudHMvTW9uYWNvRWRpdG9yLnZ1ZSc7DQpmdW5jdGlvbiByZXF1ZXN0TWV0aG9kKHVybCwgbWV0aG9kLCBwYXJhbXMsIGRhdGEsIGhlYWRlckl0ZW0pIHsNCiAgcmV0dXJuIHJlcXVlc3Qoew0KICAgIHVybCwNCiAgICBtZXRob2QsDQogICAgcGFyYW1zLA0KICAgIGRhdGEsDQogICAgaGVhZGVySXRlbSwNCiAgfSk7DQp9DQpleHBvcnQgZGVmYXVsdCB7DQogIGNvbXBvbmVudHM6IHsgTW9uYWNvRWRpdG9yIH0sDQogIHByb3BzOiB7DQogICAgZm9ybVZhbGlkYXRlOiB7DQogICAgICB0eXBlOiBPYmplY3QsDQogICAgICBkZWZhdWx0OiAoKSA9PiB7DQogICAgICAgIHJldHVybiB7fTsNCiAgICAgIH0sDQogICAgfSwNCiAgICByZXF1ZXN0VHlwZUxpc3Q6IHsNCiAgICAgIHR5cGU6IEFycmF5LA0KICAgICAgZGVmYXVsdDogKCkgPT4gew0KICAgICAgICByZXR1cm4gW107DQogICAgICB9LA0KICAgIH0sDQogICAgdHlwZUxpc3Q6IHsNCiAgICAgIHR5cGU6IEFycmF5LA0KICAgICAgZGVmYXVsdDogKCkgPT4gew0KICAgICAgICByZXR1cm4gW107DQogICAgICB9LA0KICAgIH0sDQogIH0sDQogIGRhdGEoKSB7DQogICAgcmV0dXJuIHsNCiAgICAgIGludGVyZmFjZURhdGE6IHVuZGVmaW5lZCwNCiAgICAgIHBhcmFtc1R5cGU6ICdQYXJhbXMnLA0KICAgICAgZWRpdG9yOiAnJywgLy/lvZPliY3nvJbovpHlmajlr7nosaENCiAgICAgIGNvZGVzOiAnJywNCiAgICB9Ow0KICB9LA0KICBjcmVhdGVkKCkgew0KICAgIHRoaXMuaW50ZXJmYWNlRGF0YSA9IHRoaXMuZm9ybVZhbGlkYXRlOw0KICAgIHRoaXMuaW50ZXJmYWNlRGF0YS5yZXF1ZXN0X2JvZHkgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuaW50ZXJmYWNlRGF0YS5yZXF1ZXN0X3BhcmFtcykpOw0KICB9LA0KICBtb3VudGVkKCkge30sDQogIG1ldGhvZHM6IHsNCiAgICBpbnNlcnRDb3B5KCkgew0KICAgICAgdGhpcy4kY29weVRleHQodGhpcy5jb2RlcykNCiAgICAgICAgLnRoZW4oKG1lc3NhZ2UpID0+IHsNCiAgICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MoJ+WkjeWItuaIkOWKnycpOw0KICAgICAgICB9KQ0KICAgICAgICAuY2F0Y2goKGVycikgPT4gew0KICAgICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+WkjeWItuWksei0pScpOw0KICAgICAgICB9KTsNCiAgICB9LA0KICAgIGFzeW5jIHJlcXVlc3REYXRhKCkgew0KICAgICAgbGV0IHVybCwgbWV0aG9kLCBwYXJhbXMsIGJvZHksIGhlYWRlcnM7DQogICAgICB1cmwgPSB0aGlzLmludGVyZmFjZURhdGEudXJsOw0KICAgICAgbWV0aG9kID0gdGhpcy5pbnRlcmZhY2VEYXRhLm1ldGhvZDsNCiAgICAgIHBhcmFtcyA9IHRoaXMuZmlsdGVyc0RhdGEoKGF3YWl0IHRoaXMuJHJlZnMueFRhYmxlLmdldFRhYmxlRGF0YSgpLnRhYmxlRGF0YSkgfHwgW10pOw0KICAgICAgYm9keSA9IHRoaXMuZmlsdGVyc0RhdGEoKGF3YWl0IHRoaXMuJHJlZnMueVRhYmxlLmdldFRhYmxlRGF0YSgpLnRhYmxlRGF0YSkgfHwgW10pOw0KICAgICAgbGV0IGggPSB0aGlzLmZpbHRlcnNEYXRhKChhd2FpdCB0aGlzLiRyZWZzLnpUYWJsZS5nZXRUYWJsZURhdGEoKS50YWJsZURhdGEpIHx8IFtdKTsNCiAgICAgIGxldCBoMSA9IHRoaXMuZmlsdGVyc0RhdGEoKGF3YWl0IHRoaXMuJHJlZnMuemFUYWJsZS5nZXRUYWJsZURhdGEoKS50YWJsZURhdGEpIHx8IFtdKTsNCiAgICAgIGhlYWRlcnMgPSB7DQogICAgICAgIC4uLmgsDQogICAgICAgIC4uLmgxLA0KICAgICAgfTsNCiAgICAgIHJlcXVlc3RNZXRob2QodXJsLCBtZXRob2QsIHBhcmFtcywgYm9keSwgaGVhZGVycykNCiAgICAgICAgLnRoZW4oKHJlcykgPT4gew0KICAgICAgICAgIHRoaXMuY29kZXMgPSByZXMgKyAnJzsNCiAgICAgICAgfSkNCiAgICAgICAgLmNhdGNoKChlcnIpID0+IHsNCiAgICAgICAgICB0aGlzLmNvZGVzID0gSlNPTi5zdHJpbmdpZnkoZXJyKTsNCiAgICAgICAgfSk7DQogICAgfSwNCiAgICBmaWx0ZXJzRGF0YShhcnIpIHsNCiAgICAgIHRyeSB7DQogICAgICAgIGxldCB4ID0ge307DQogICAgICAgIGFyci5tYXAoKGUpID0+IHsNCiAgICAgICAgICBpZiAoIWUucGFyZW50SWQpIHsNCiAgICAgICAgICAgIGZvciAobGV0IGkgaW4gZSkgew0KICAgICAgICAgICAgICBpZiAoaSA9PSAnYXR0cmlidXRlJykgew0KICAgICAgICAgICAgICAgIGlmIChlLnR5cGUgIT09ICdhcnJheScpIHsNCiAgICAgICAgICAgICAgICAgIHhbZVtpXV0gPSBlLnZhbHVlIHx8ICcnOw0KICAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgICBsZXQgYXJyID0gW107DQogICAgICAgICAgICAgICAgICBlLmNoaWxkcmVuLm1hcCgoaXRlbSwgaW5kZXgpID0+IHsNCiAgICAgICAgICAgICAgICAgICAgYXJyW2luZGV4XSA9IHRoaXMuZmlsdGVyc09iaihpdGVtKTsNCiAgICAgICAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgICAgICAgeFtlW2ldXSA9IGFycjsNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIH0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICB9DQogICAgICAgIH0pOw0KICAgICAgICByZXR1cm4geDsNCiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7DQogICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTsNCiAgICAgIH0NCiAgICB9LA0KICAgIGZpbHRlcnNPYmoob2JqKSB7DQogICAgICBsZXQgeCA9IHt9Ow0KICAgICAgZm9yIChsZXQgaSBpbiBvYmopIHsNCiAgICAgICAgaWYgKGkgPT0gJ2F0dHJpYnV0ZScpIHsNCiAgICAgICAgICBpZiAob2JqLnR5cGUgIT09ICdhcnJheScpIHsNCiAgICAgICAgICAgIHhbb2JqW2ldXSA9IG9iai52YWx1ZSB8fCAnJzsNCiAgICAgICAgICB9IGVsc2Ugew0KICAgICAgICAgICAgbGV0IGFyciA9IFtdOw0KICAgICAgICAgICAgb2JqLmNoaWxkcmVuLm1hcCgoaXRlbSwgaW5kZXgpID0+IHsNCiAgICAgICAgICAgICAgYXJyW2luZGV4XSA9IHRoaXMuZmlsdGVyc09iaihpdGVtKTsNCiAgICAgICAgICAgIH0pOw0KICAgICAgICAgICAgeFtvYmpbaV1dID0gYXJyOw0KICAgICAgICAgIH0NCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgcmV0dXJuIHg7DQogICAgfSwNCiAgICBjaGFuZ2VUYWIoKSB7DQogICAgICBpZiAodGhpcy5wYXJhbXNUeXBlID09PSAnSGVhZGVyJykgew0KICAgICAgICBpZiAoIXRoaXMuaW50ZXJmYWNlRGF0YS5oZWFkZXJEYXRhKSB7DQogICAgICAgICAgdGhpcy5pbnNlcnRFdmVudCgnelRhYmxlJywgew0KICAgICAgICAgICAgYXR0cmlidXRlOiAnQ29udGVudC1UeXBlJywNCiAgICAgICAgICAgIHZhbHVlOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJywNCiAgICAgICAgICB9KTsNCiAgICAgICAgICB0aGlzLmluc2VydEV2ZW50KCd6YVRhYmxlJyk7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICB9LA0KICAgIGFzeW5jIGluc2VydEV2ZW50KHR5cGUsIGQpIHsNCiAgICAgIGNvbnN0ICR0YWJsZSA9IHRoaXMuJHJlZnNbdHlwZV07DQogICAgICBsZXQgbmV3Um93Ow0KICAgICAgaWYgKHR5cGUgPT0gJ3hUYWJsZScpIHsNCiAgICAgICAgbmV3Um93ID0gew0KICAgICAgICAgIGF0dHJpYnV0ZTogJycsDQogICAgICAgICAgdHlwZTogJ3N0cmluZycsDQogICAgICAgICAgbXVzdDogMCwNCiAgICAgICAgICB2YWx1ZTogJycsDQogICAgICAgICAgdHJpcDogJycsDQogICAgICAgIH07DQogICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ3lUYWJsZScpIHsNCiAgICAgICAgbmV3Um93ID0gew0KICAgICAgICAgIGF0dHJpYnV0ZTogJycsDQogICAgICAgICAgdHlwZTogJ3N0cmluZycsDQogICAgICAgICAgdmFsdWU6ICcnLA0KICAgICAgICAgIG11c3Q6IDAsDQogICAgICAgICAgdHJpcDogJycsDQogICAgICAgIH07DQogICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ3pUYWJsZScpIHsNCiAgICAgICAgbmV3Um93ID0gew0KICAgICAgICAgIGF0dHJpYnV0ZTogJycsDQogICAgICAgICAgdHlwZTogJycsDQogICAgICAgICAgdmFsdWU6ICcnLA0KICAgICAgICAgIHRyaXA6ICcnLA0KICAgICAgICB9Ow0KICAgICAgICBuZXdSb3cgPSB7IC4uLm5ld1JvdywgLi4uZCB9Ow0KICAgICAgfSBlbHNlIGlmICh0eXBlID09ICd6YVRhYmxlJykgew0KICAgICAgICBuZXdSb3cgPSB7DQogICAgICAgICAgYXR0cmlidXRlOiAndG9rZW4nLA0KICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLA0KICAgICAgICAgIHZhbHVlOiAnJywNCiAgICAgICAgICBtdXN0OiAwLA0KICAgICAgICAgIHRyaXA6ICcnLA0KICAgICAgICB9Ow0KICAgICAgfSBlbHNlIHsNCiAgICAgICAgbmV3Um93ID0gew0KICAgICAgICAgIGNvZGU6ICcnLA0KICAgICAgICAgIHZhbHVlOiAnJywNCiAgICAgICAgICBzb2x1dGlvbjogJycsDQogICAgICAgIH07DQogICAgICB9DQogICAgICBjb25zdCB7IHJvdzogZGF0YSB9ID0gYXdhaXQgJHRhYmxlLmluc2VydEF0KG5ld1JvdywgLTEpOw0KICAgICAgYXdhaXQgJHRhYmxlLnNldEFjdGl2ZUNlbGwoZGF0YSwgJ25hbWUnKTsNCiAgICB9LA0KICAgIGFzeW5jIGluc2VydFJvdyhjdXJyUm93LCB0eXBlKSB7DQogICAgICBjb25zdCAkdGFibGUgPSB0aGlzLiRyZWZzW3R5cGVdOw0KICAgICAgLy8g5aaC5p6cIG51bGwg5YiZ5o+S5YWl5Yiw55uu5qCH6IqC54K56aG26YOoDQogICAgICAvLyDlpoLmnpwgLTEg5YiZ5o+S5YWl5Yiw55uu5qCH6IqC54K55bqV6YOoDQogICAgICAvLyDlpoLmnpwgcm93IOWImeacieaPkuWFpeWIsOaViOeahOebruagh+iKgueCueivpeihjOeahOS9jee9rg0KICAgICAgbGV0IHJlY29yZDsNCiAgICAgIGlmICh0eXBlID09ICd4VGFibGUnKSB7DQogICAgICAgIHJlY29yZCA9IHsNCiAgICAgICAgICBhdHRyaWJ1dGU6ICcnLA0KICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLA0KICAgICAgICAgIG11c3Q6IDAsDQogICAgICAgICAgdmFsdWU6ICcnLA0KICAgICAgICAgIHRyaXA6ICcnLA0KICAgICAgICAgIGlkOiBEYXRlLm5vdygpLA0KICAgICAgICAgIHBhcmVudElkOiBjdXJyUm93LmlkLCAvLyDpnIDopoHmjIflrprniLboioLngrnvvIzoh6rliqjmj5LlhaXor6XoioLngrnkuK0NCiAgICAgICAgfTsNCiAgICAgIH0gZWxzZSB7DQogICAgICAgIHJlY29yZCA9IHsNCiAgICAgICAgICBjb2RlOiAnJywNCiAgICAgICAgICB2YWx1ZTogJycsDQogICAgICAgICAgc29sdXRpb246ICcnLA0KICAgICAgICAgIGlkOiBEYXRlLm5vdygpLA0KICAgICAgICAgIHBhcmVudElkOiBjdXJyUm93LmlkLCAvLyDpnIDopoHmjIflrprniLboioLngrnvvIzoh6rliqjmj5LlhaXor6XoioLngrnkuK0NCiAgICAgICAgfTsNCiAgICAgIH0NCiAgICAgIGNvbnN0IHsgcm93OiBuZXdSb3cgfSA9IGF3YWl0ICR0YWJsZS5pbnNlcnRBdChyZWNvcmQsIC0xKTsNCiAgICAgIGF3YWl0ICR0YWJsZS5zZXRUcmVlRXhwYW5kKGN1cnJSb3csIHRydWUpOyAvLyDlsIbniLboioLngrnlsZXlvIANCiAgICAgIGF3YWl0ICR0YWJsZS5zZXRBY3RpdmVSb3cobmV3Um93KTsgLy8g5o+S5YWl5a2Q6IqC54K5DQogICAgfSwNCiAgICBhc3luYyByZW1vdmVSb3cocm93LCB0eXBlKSB7DQogICAgICBjb25zdCAkdGFibGUgPSB0aGlzLiRyZWZzW3R5cGVdOw0KICAgICAgYXdhaXQgJHRhYmxlLnJlbW92ZShyb3cpOw0KICAgIH0sDQogIH0sDQp9Ow0K"},{"version":3,"sources":["debugging.vue"],"names":[],"mappings":";AA+OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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/setting/systemOutInterface","sourcesContent":["<template>\r\n <div class=\"content\" v-if=\"interfaceData\">\r\n <div class=\"head\">\r\n <el-input v-model=\"interfaceData.url\">\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 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.request_params\"\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 v-model=\"row.type\" transfer>\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=\"row.type === 'array'\"\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 <vxe-table\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 v-model=\"row.type\" transfer>\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=\"row.type === 'array'\"\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 <el-button class=\"mt10\" type=\"primary\" v-db-click @click=\"insertEvent('yTable')\">添加参数</el-button>\r\n </div>\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 field=\"type\" title=\"类型\" width=\"200\" :edit-render=\"{}\">\r\n <template #default=\"{ row }\">\r\n <vxe-select v-model=\"row.type\" transfer>\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 title=\"操作\" width=\"100\">\r\n <template #default=\"{ row }\">\r\n <vxe-button\r\n type=\"text\"\r\n v-if=\"row.type === 'array'\"\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 <h4 class=\"mt10 title\">全局Header参数</h4>\r\n <vxe-table\r\n class=\"mt10\"\r\n resizable\r\n show-overflow\r\n keep-source\r\n ref=\"zaTable\"\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.allHeaderData\"\r\n >\r\n <vxe-column field=\"attribute\" width=\"300\" title=\"属性\" tree-node :edit-render=\"{}\">\r\n <template #default=\"{ row }\">\r\n <span>{{ row.attribute || '' }}</span>\r\n </template>\r\n </vxe-column>\r\n <vxe-column field=\"value\" title=\"参数值\" :edit-render=\"{}\">\r\n <template #default=\"{ row }\">\r\n <span>{{ row.value || '' }}</span>\r\n </template>\r\n </vxe-column>\r\n <vxe-column field=\"type\" title=\"类型\" width=\"200\" :edit-render=\"{}\">\r\n <template #default=\"{ row }\">\r\n <span>{{ row.type || '' }}</span>\r\n </template>\r\n </vxe-column>\r\n <vxe-column field=\"trip\" title=\"说明\" :edit-render=\"{}\">\r\n <template #default=\"{ row }\">\r\n <span>{{ row.trip || '' }}</span>\r\n </template>\r\n </vxe-column>\r\n </vxe-table>\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\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 },\r\n data() {\r\n return {\r\n interfaceData: undefined,\r\n paramsType: 'Params',\r\n editor: '', //当前编辑器对象\r\n codes: '',\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_params));\r\n },\r\n mounted() {},\r\n methods: {\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.interfaceData.url;\r\n method = this.interfaceData.method;\r\n params = this.filtersData((await this.$refs.xTable.getTableData().tableData) || []);\r\n body = this.filtersData((await this.$refs.yTable.getTableData().tableData) || []);\r\n let h = this.filtersData((await this.$refs.zTable.getTableData().tableData) || []);\r\n let h1 = this.filtersData((await this.$refs.zaTable.getTableData().tableData) || []);\r\n headers = {\r\n ...h,\r\n ...h1,\r\n };\r\n requestMethod(url, method, params, body, headers)\r\n .then((res) => {\r\n this.codes = res + '';\r\n })\r\n .catch((err) => {\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 !== '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 filtersObj(obj) {\r\n let x = {};\r\n for (let i in obj) {\r\n if (i == 'attribute') {\r\n if (obj.type !== 'array') {\r\n x[obj[i]] = obj.value || '';\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() {\r\n if (this.paramsType === 'Header') {\r\n if (!this.interfaceData.headerData) {\r\n this.insertEvent('zTable', {\r\n attribute: 'Content-Type',\r\n value: 'application/x-www-form-urlencoded',\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</style>\r\n"]}]}
|