whistle.mockbubu 2.1.1 → 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 +22 -6
- package/public/js/app.js.map +1 -1
package/package.json
CHANGED
package/public/js/app.js
CHANGED
|
@@ -1613,8 +1613,6 @@ const __default__ = {
|
|
|
1613
1613
|
|
|
1614
1614
|
// 解析 payload 为 JSON 对象供 jsoneditor 使用
|
|
1615
1615
|
const parsedPayloadData = (0,vue__WEBPACK_IMPORTED_MODULE_6__.computed)(() => {
|
|
1616
|
-
console.log('%c [ parsedPayloadData 计算属性触发 ]-126', 'font-size:13px; background:yellow; color:black;', 'computed 被调用');
|
|
1617
|
-
console.log('%c [ props.currentRow ]-131', 'font-size:13px; background:pink; color:#bf2c9f;', props.currentRow);
|
|
1618
1616
|
if (!props.currentRow?.payload) {
|
|
1619
1617
|
return null;
|
|
1620
1618
|
}
|
|
@@ -1965,6 +1963,7 @@ const __default__ = {
|
|
|
1965
1963
|
const currentFile = (0,vue__WEBPACK_IMPORTED_MODULE_9__.ref)({
|
|
1966
1964
|
content: {}
|
|
1967
1965
|
});
|
|
1966
|
+
const hasJsonError = (0,vue__WEBPACK_IMPORTED_MODULE_9__.ref)(false); // JSON 格式错误标志
|
|
1968
1967
|
const versionModal = (0,vue__WEBPACK_IMPORTED_MODULE_9__.reactive)({
|
|
1969
1968
|
visible: false,
|
|
1970
1969
|
status: 'create',
|
|
@@ -2502,6 +2501,12 @@ const __default__ = {
|
|
|
2502
2501
|
element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default().warning('原始响应数据为只读,不可修改');
|
|
2503
2502
|
return;
|
|
2504
2503
|
}
|
|
2504
|
+
|
|
2505
|
+
// 如果 JSON 格式错误,禁止保存
|
|
2506
|
+
if (hasJsonError.value) {
|
|
2507
|
+
element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default().error('JSON 格式错误,请修正后再保存');
|
|
2508
|
+
return;
|
|
2509
|
+
}
|
|
2505
2510
|
if (currentFile.value.type === 'history') {
|
|
2506
2511
|
updateHistory();
|
|
2507
2512
|
} else {
|
|
@@ -2735,6 +2740,7 @@ const __default__ = {
|
|
|
2735
2740
|
versionNameInput,
|
|
2736
2741
|
responseList,
|
|
2737
2742
|
currentFile,
|
|
2743
|
+
hasJsonError,
|
|
2738
2744
|
versionModal,
|
|
2739
2745
|
fullScreenModal,
|
|
2740
2746
|
name,
|
|
@@ -4492,6 +4498,7 @@ var render = function render() {
|
|
|
4492
4498
|
}, [_c("i", {
|
|
4493
4499
|
staticClass: "el-icon-lock"
|
|
4494
4500
|
}), _c("span", [_vm._v("只读模式")])]) : _vm._e()], 1), _c(_setup.JsonEditor, {
|
|
4501
|
+
key: `editor-${_setup.currentFile.filename}-${_setup.isSourceReadonly}`,
|
|
4495
4502
|
ref: "editRef",
|
|
4496
4503
|
attrs: {
|
|
4497
4504
|
"show-btns": false,
|
|
@@ -4504,6 +4511,12 @@ var render = function render() {
|
|
|
4504
4511
|
on: {
|
|
4505
4512
|
input: function ($event) {
|
|
4506
4513
|
return _setup.handleFileChange();
|
|
4514
|
+
},
|
|
4515
|
+
"has-error": function ($event) {
|
|
4516
|
+
_setup.hasJsonError = true;
|
|
4517
|
+
},
|
|
4518
|
+
"json-change": function ($event) {
|
|
4519
|
+
_setup.hasJsonError = false;
|
|
4507
4520
|
}
|
|
4508
4521
|
},
|
|
4509
4522
|
nativeOn: {
|
|
@@ -4526,12 +4539,15 @@ var render = function render() {
|
|
|
4526
4539
|
}
|
|
4527
4540
|
}), !_setup.isSourceReadonly && _setup.currentFile.effect && (_setup.currentFile.type === "history" || _vm.api.mock) ? _c("div", {
|
|
4528
4541
|
staticClass: "response-panel__save"
|
|
4529
|
-
}, [_c("span", {
|
|
4542
|
+
}, [_setup.hasJsonError ? _c("span", {
|
|
4543
|
+
staticClass: "response-panel__error-text"
|
|
4544
|
+
}, [_vm._v("JSON 格式错误,无法保存")]) : _c("span", {
|
|
4530
4545
|
staticClass: "response-panel__effect-icon"
|
|
4531
4546
|
}), _c("el-button", {
|
|
4532
4547
|
attrs: {
|
|
4533
4548
|
size: "small",
|
|
4534
|
-
type: "primary"
|
|
4549
|
+
type: "primary",
|
|
4550
|
+
disabled: _setup.hasJsonError
|
|
4535
4551
|
},
|
|
4536
4552
|
on: {
|
|
4537
4553
|
click: _setup.handleUpdate
|
|
@@ -6080,7 +6096,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6080
6096
|
|
|
6081
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()));
|
|
6082
6098
|
// Module
|
|
6083
|
-
___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", ""]);
|
|
6084
6100
|
// Exports
|
|
6085
6101
|
/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
|
|
6086
6102
|
|
|
@@ -6176,7 +6192,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
6176
6192
|
|
|
6177
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()));
|
|
6178
6194
|
// Module
|
|
6179
|
-
___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", ""]);
|
|
6180
6196
|
// Exports
|
|
6181
6197
|
/* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
|
|
6182
6198
|
|