whistle.mockbubu 2.1.0 → 2.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/public/js/app.js +60 -26
- package/public/js/app.js.map +1 -1
package/package.json
CHANGED
package/public/js/app.js
CHANGED
|
@@ -753,37 +753,55 @@ const __default__ = {
|
|
|
753
753
|
|
|
754
754
|
// 单个删除 - 直接执行(智能删除,后端自动判断)
|
|
755
755
|
const handleDelete = (row, index) => {
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
756
|
+
// 判断是已保存文件还是缓存数据
|
|
757
|
+
if (row.id) {
|
|
758
|
+
// 已保存文件:需要调用后端接口删除物理文件
|
|
759
|
+
(0,_service__WEBPACK_IMPORTED_MODULE_22__.deleteApi)(row.name).then(data => {
|
|
760
|
+
if (data.code !== 200) {
|
|
761
|
+
element_ui_lib_message__WEBPACK_IMPORTED_MODULE_4___default().error('删除失败: ' + (data.msg || '未知错误'));
|
|
762
|
+
} else {
|
|
763
|
+
element_ui_lib_message__WEBPACK_IMPORTED_MODULE_4___default().success('删除成功');
|
|
761
764
|
|
|
762
|
-
|
|
763
|
-
if (row.id) {
|
|
764
|
-
// 已保存文件:从 savedList 删除
|
|
765
|
+
// 从 savedList 删除(用 URL 匹配)
|
|
765
766
|
const savedIndex = savedList.value.findIndex(item => item.url === row.url);
|
|
766
767
|
if (savedIndex !== -1) {
|
|
767
768
|
savedList.value.splice(savedIndex, 1);
|
|
768
769
|
}
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
cachedList.value.splice(cachedIndex, 1);
|
|
770
|
+
// 从 requestList 删除(用 URL 匹配)
|
|
771
|
+
const requestIndex = requestList.value.findIndex(item => item.url === row.url);
|
|
772
|
+
if (requestIndex !== -1) {
|
|
773
|
+
requestList.value.splice(requestIndex, 1);
|
|
774
774
|
}
|
|
775
|
-
_utils_cache_manager__WEBPACK_IMPORTED_MODULE_25__["default"].remove(row.url);
|
|
776
|
-
}
|
|
777
775
|
|
|
778
|
-
|
|
779
|
-
|
|
776
|
+
// 更新选中行
|
|
777
|
+
changeCurrentRow();
|
|
778
|
+
}
|
|
779
|
+
}).catch(err => {
|
|
780
|
+
element_ui_lib_message__WEBPACK_IMPORTED_MODULE_4___default().error('删除失败: ' + (err.message || '未知错误'));
|
|
781
|
+
});
|
|
782
|
+
} else {
|
|
783
|
+
// 未保存的缓存数据:只删除前端缓存,不调用后端接口
|
|
784
|
+
try {
|
|
785
|
+
// 从 cachedList 删除(用 URL 匹配)
|
|
786
|
+
const cachedIndex = cachedList.value.findIndex(item => item.url === row.url);
|
|
787
|
+
if (cachedIndex !== -1) {
|
|
788
|
+
cachedList.value.splice(cachedIndex, 1);
|
|
789
|
+
}
|
|
790
|
+
// 从 cacheManager 删除
|
|
791
|
+
_utils_cache_manager__WEBPACK_IMPORTED_MODULE_25__["default"].remove(row.url);
|
|
792
|
+
// 从 requestList 删除(用 URL 匹配)
|
|
793
|
+
const requestIndex = requestList.value.findIndex(item => item.url === row.url);
|
|
794
|
+
if (requestIndex !== -1) {
|
|
795
|
+
requestList.value.splice(requestIndex, 1);
|
|
796
|
+
}
|
|
797
|
+
element_ui_lib_message__WEBPACK_IMPORTED_MODULE_4___default().success('删除成功');
|
|
780
798
|
|
|
781
799
|
// 更新选中行
|
|
782
800
|
changeCurrentRow();
|
|
801
|
+
} catch (err) {
|
|
802
|
+
element_ui_lib_message__WEBPACK_IMPORTED_MODULE_4___default().error('删除失败: ' + (err.message || '未知错误'));
|
|
783
803
|
}
|
|
784
|
-
}
|
|
785
|
-
element_ui_lib_message__WEBPACK_IMPORTED_MODULE_4___default().error('删除失败: ' + (err.message || '未知错误'));
|
|
786
|
-
});
|
|
804
|
+
}
|
|
787
805
|
};
|
|
788
806
|
|
|
789
807
|
/**
|
|
@@ -1595,8 +1613,6 @@ const __default__ = {
|
|
|
1595
1613
|
|
|
1596
1614
|
// 解析 payload 为 JSON 对象供 jsoneditor 使用
|
|
1597
1615
|
const parsedPayloadData = (0,vue__WEBPACK_IMPORTED_MODULE_6__.computed)(() => {
|
|
1598
|
-
console.log('%c [ parsedPayloadData 计算属性触发 ]-126', 'font-size:13px; background:yellow; color:black;', 'computed 被调用');
|
|
1599
|
-
console.log('%c [ props.currentRow ]-131', 'font-size:13px; background:pink; color:#bf2c9f;', props.currentRow);
|
|
1600
1616
|
if (!props.currentRow?.payload) {
|
|
1601
1617
|
return null;
|
|
1602
1618
|
}
|
|
@@ -1947,6 +1963,7 @@ const __default__ = {
|
|
|
1947
1963
|
const currentFile = (0,vue__WEBPACK_IMPORTED_MODULE_9__.ref)({
|
|
1948
1964
|
content: {}
|
|
1949
1965
|
});
|
|
1966
|
+
const hasJsonError = (0,vue__WEBPACK_IMPORTED_MODULE_9__.ref)(false); // JSON 格式错误标志
|
|
1950
1967
|
const versionModal = (0,vue__WEBPACK_IMPORTED_MODULE_9__.reactive)({
|
|
1951
1968
|
visible: false,
|
|
1952
1969
|
status: 'create',
|
|
@@ -2484,6 +2501,12 @@ const __default__ = {
|
|
|
2484
2501
|
element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default().warning('原始响应数据为只读,不可修改');
|
|
2485
2502
|
return;
|
|
2486
2503
|
}
|
|
2504
|
+
|
|
2505
|
+
// 如果 JSON 格式错误,禁止保存
|
|
2506
|
+
if (hasJsonError.value) {
|
|
2507
|
+
element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default().error('JSON 格式错误,请修正后再保存');
|
|
2508
|
+
return;
|
|
2509
|
+
}
|
|
2487
2510
|
if (currentFile.value.type === 'history') {
|
|
2488
2511
|
updateHistory();
|
|
2489
2512
|
} else {
|
|
@@ -2717,6 +2740,7 @@ const __default__ = {
|
|
|
2717
2740
|
versionNameInput,
|
|
2718
2741
|
responseList,
|
|
2719
2742
|
currentFile,
|
|
2743
|
+
hasJsonError,
|
|
2720
2744
|
versionModal,
|
|
2721
2745
|
fullScreenModal,
|
|
2722
2746
|
name,
|
|
@@ -4474,6 +4498,7 @@ var render = function render() {
|
|
|
4474
4498
|
}, [_c("i", {
|
|
4475
4499
|
staticClass: "el-icon-lock"
|
|
4476
4500
|
}), _c("span", [_vm._v("只读模式")])]) : _vm._e()], 1), _c(_setup.JsonEditor, {
|
|
4501
|
+
key: `editor-${_setup.currentFile.filename}-${_setup.isSourceReadonly}`,
|
|
4477
4502
|
ref: "editRef",
|
|
4478
4503
|
attrs: {
|
|
4479
4504
|
"show-btns": false,
|
|
@@ -4486,6 +4511,12 @@ var render = function render() {
|
|
|
4486
4511
|
on: {
|
|
4487
4512
|
input: function ($event) {
|
|
4488
4513
|
return _setup.handleFileChange();
|
|
4514
|
+
},
|
|
4515
|
+
"has-error": function ($event) {
|
|
4516
|
+
_setup.hasJsonError = true;
|
|
4517
|
+
},
|
|
4518
|
+
"json-change": function ($event) {
|
|
4519
|
+
_setup.hasJsonError = false;
|
|
4489
4520
|
}
|
|
4490
4521
|
},
|
|
4491
4522
|
nativeOn: {
|
|
@@ -4508,12 +4539,15 @@ var render = function render() {
|
|
|
4508
4539
|
}
|
|
4509
4540
|
}), !_setup.isSourceReadonly && _setup.currentFile.effect && (_setup.currentFile.type === "history" || _vm.api.mock) ? _c("div", {
|
|
4510
4541
|
staticClass: "response-panel__save"
|
|
4511
|
-
}, [_c("span", {
|
|
4542
|
+
}, [_setup.hasJsonError ? _c("span", {
|
|
4543
|
+
staticClass: "response-panel__error-text"
|
|
4544
|
+
}, [_vm._v("JSON 格式错误,无法保存")]) : _c("span", {
|
|
4512
4545
|
staticClass: "response-panel__effect-icon"
|
|
4513
4546
|
}), _c("el-button", {
|
|
4514
4547
|
attrs: {
|
|
4515
4548
|
size: "small",
|
|
4516
|
-
type: "primary"
|
|
4549
|
+
type: "primary",
|
|
4550
|
+
disabled: _setup.hasJsonError
|
|
4517
4551
|
},
|
|
4518
4552
|
on: {
|
|
4519
4553
|
click: _setup.handleUpdate
|
|
@@ -6062,7 +6096,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6062
6096
|
|
|
6063
6097
|
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
|
|
6064
6098
|
// Module
|
|
6065
|
-
___CSS_LOADER_EXPORT___.push([module.id, ".mock-container[data-v-d97322d2] {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n}\n.mock-container__content[data-v-d97322d2] {\n display: flex;\n flex: 1;\n border: 1px solid #ccc;\n border-left: none;\n overflow: hidden;\n}\n", ""]);
|
|
6099
|
+
___CSS_LOADER_EXPORT___.push([module.id, ".mock-container[data-v-d97322d2] {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n}\n.mock-container__content[data-v-d97322d2] {\n padding-bottom: 16px;\n background-image: linear-gradient(0deg, #3f9eff 0, #3f9eff 16px, transparent 100%);\n display: flex;\n flex: 1;\n border: 1px solid #ccc;\n border-left: none;\n overflow: hidden;\n}\n", ""]);
|
|
6066
6100
|
// Exports
|
|
6067
6101
|
/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
|
|
6068
6102
|
|
|
@@ -6158,7 +6192,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6158
6192
|
|
|
6159
6193
|
var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
|
|
6160
6194
|
// Module
|
|
6161
|
-
___CSS_LOADER_EXPORT___.push([module.id, ".response-panel[data-v-c23cd6a6] {\n position: relative;\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n.response-panel__header[data-v-c23cd6a6] {\n display: flex;\n flex-wrap: wrap;\n}\n.response-panel__tab[data-v-c23cd6a6] {\n position: relative;\n cursor: pointer;\n height: 24px;\n padding: 0px 10px;\n font-size: 12px;\n line-height: 24px;\n color: #333333;\n font-weight: 500;\n border-right: 1px solid #ccc;\n border-bottom: 1px solid #ccc;\n}\n.response-panel__tab--selected[data-v-c23cd6a6] {\n background-color: #e0e3e6;\n}\n.response-panel__source-tab[data-v-c23cd6a6] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n color: #e6a23c;\n font-weight: 600;\n}\n.response-panel__source-tab i[data-v-c23cd6a6] {\n font-size: 14px;\n}\n.response-panel__tab-text[data-v-c23cd6a6] {\n display: inline-block;\n max-width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n vertical-align: middle;\n}\n.response-panel__edit-btn[data-v-c23cd6a6] {\n margin-left: 8px;\n color: #909399;\n}\n.response-panel__edit-btn[data-v-c23cd6a6]:hover {\n color: #409eff;\n}\n.response-panel__delete-btn[data-v-c23cd6a6] {\n margin-left: 8px;\n color: #909399;\n}\n.response-panel__delete-btn[data-v-c23cd6a6]:hover {\n color: #f46c6b;\n}\n.response-panel__add-btn[data-v-c23cd6a6] {\n cursor: pointer;\n line-height: 24px;\n padding: 0px 10px;\n color: #333333;\n font-weight: 500;\n}\n.response-panel__content[data-v-c23cd6a6] {\n position: relative;\n flex: 1;\n overflow: hidden;\n}\n.response-panel__toolbar[data-v-c23cd6a6] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background-color: #f5f7fa;\n border-bottom: 1px solid #e4e7ed;\n}\n.response-panel__toolbar .el-button[data-v-c23cd6a6] {\n margin: 0;\n}\n.response-panel__readonly-badge[data-v-c23cd6a6] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n margin-left: auto;\n padding: 4px 12px;\n background-color: #f0f2f5;\n border-radius: 4px;\n font-size: 12px;\n color: #909399;\n font-weight: 500;\n}\n.response-panel__readonly-badge i[data-v-c23cd6a6] {\n font-size: 12px;\n}\n.response-panel__alert[data-v-c23cd6a6] {\n position: absolute;\n top: 8px;\n right: 10px;\n font-size: 12px;\n font-weight: 600;\n color: #e6a23c;\n}\n.response-panel__save[data-v-c23cd6a6] {\n position: absolute;\n top: 100px;\n right: 20px;\n}\n.response-panel__effect-icon[data-v-c23cd6a6] {\n position: absolute;\n top: -5px;\n right: -5px;\n display: block;\n width: 6px;\n height: 6px;\n border-radius: 6px;\n background-color: #f46c6b;\n}\n.response-panel__dialog[data-v-c23cd6a6] {\n display: flex;\n align-items: center;\n}\n.response-panel__dialog-label[data-v-c23cd6a6] {\n white-space: nowrap;\n}\n", ""]);
|
|
6195
|
+
___CSS_LOADER_EXPORT___.push([module.id, ".response-panel[data-v-c23cd6a6] {\n position: relative;\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n.response-panel__header[data-v-c23cd6a6] {\n display: flex;\n flex-wrap: wrap;\n}\n.response-panel__tab[data-v-c23cd6a6] {\n position: relative;\n cursor: pointer;\n height: 24px;\n padding: 0px 10px;\n font-size: 12px;\n line-height: 24px;\n color: #333333;\n font-weight: 500;\n border-right: 1px solid #ccc;\n border-bottom: 1px solid #ccc;\n}\n.response-panel__tab--selected[data-v-c23cd6a6] {\n background-color: #e0e3e6;\n}\n.response-panel__source-tab[data-v-c23cd6a6] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n color: #e6a23c;\n font-weight: 600;\n}\n.response-panel__source-tab i[data-v-c23cd6a6] {\n font-size: 14px;\n}\n.response-panel__tab-text[data-v-c23cd6a6] {\n display: inline-block;\n max-width: 120px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n vertical-align: middle;\n}\n.response-panel__edit-btn[data-v-c23cd6a6] {\n margin-left: 8px;\n color: #909399;\n}\n.response-panel__edit-btn[data-v-c23cd6a6]:hover {\n color: #409eff;\n}\n.response-panel__delete-btn[data-v-c23cd6a6] {\n margin-left: 8px;\n color: #909399;\n}\n.response-panel__delete-btn[data-v-c23cd6a6]:hover {\n color: #f46c6b;\n}\n.response-panel__add-btn[data-v-c23cd6a6] {\n cursor: pointer;\n line-height: 24px;\n padding: 0px 10px;\n color: #333333;\n font-weight: 500;\n}\n.response-panel__content[data-v-c23cd6a6] {\n position: relative;\n flex: 1;\n overflow: hidden;\n}\n.response-panel__toolbar[data-v-c23cd6a6] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background-color: #f5f7fa;\n border-bottom: 1px solid #e4e7ed;\n}\n.response-panel__toolbar .el-button[data-v-c23cd6a6] {\n margin: 0;\n}\n.response-panel__readonly-badge[data-v-c23cd6a6] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n margin-left: auto;\n padding: 4px 12px;\n background-color: #f0f2f5;\n border-radius: 4px;\n font-size: 12px;\n color: #909399;\n font-weight: 500;\n}\n.response-panel__readonly-badge i[data-v-c23cd6a6] {\n font-size: 12px;\n}\n.response-panel__alert[data-v-c23cd6a6] {\n position: absolute;\n top: 8px;\n right: 10px;\n font-size: 12px;\n font-weight: 600;\n color: #e6a23c;\n}\n.response-panel__save[data-v-c23cd6a6] {\n position: absolute;\n top: 100px;\n right: 20px;\n}\n.response-panel__effect-icon[data-v-c23cd6a6] {\n position: absolute;\n top: -5px;\n right: -5px;\n display: block;\n width: 6px;\n height: 6px;\n border-radius: 6px;\n background-color: #f46c6b;\n}\n.response-panel__error-text[data-v-c23cd6a6] {\n position: absolute;\n top: -30px;\n right: 0;\n color: #f56c6c;\n font-size: 12px;\n white-space: nowrap;\n}\n.response-panel__dialog[data-v-c23cd6a6] {\n display: flex;\n align-items: center;\n}\n.response-panel__dialog-label[data-v-c23cd6a6] {\n white-space: nowrap;\n}\n", ""]);
|
|
6162
6196
|
// Exports
|
|
6163
6197
|
/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
|
|
6164
6198
|
|