UNPKG

ze-react-component-library

Version:
1,178 lines (979 loc) 35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; require("antd/lib/table/style"); var _table = _interopRequireDefault(require("antd/lib/table")); require("antd/lib/alert/style"); var _alert = _interopRequireDefault(require("antd/lib/alert")); require("antd/lib/modal/style"); var _modal = _interopRequireDefault(require("antd/lib/modal")); require("antd/lib/drawer/style"); var _drawer = _interopRequireDefault(require("antd/lib/drawer")); require("antd/lib/radio/style"); var _radio = _interopRequireDefault(require("antd/lib/radio")); require("antd/lib/spin/style"); var _spin = _interopRequireDefault(require("antd/lib/spin")); require("antd/lib/popconfirm/style"); var _popconfirm = _interopRequireDefault(require("antd/lib/popconfirm")); require("antd/lib/button/style"); var _button = _interopRequireDefault(require("antd/lib/button")); require("antd/lib/space/style"); var _space = _interopRequireDefault(require("antd/lib/space")); require("antd/lib/dropdown/style"); var _dropdown = _interopRequireDefault(require("antd/lib/dropdown")); require("antd/lib/menu/style"); var _menu = _interopRequireDefault(require("antd/lib/menu")); require("antd/lib/message/style"); var _message2 = _interopRequireDefault(require("antd/lib/message")); var _react = _interopRequireWildcard(require("react")); var _zeroetpApiSdk = require("zeroetp-api-sdk"); var _hooks = require("@umijs/hooks"); var _proTable = _interopRequireDefault(require("@ant-design/pro-table")); var _deepmerge = _interopRequireDefault(require("deepmerge")); var _request = require("../request"); var _JsonEditor = _interopRequireWildcard(require("./JsonEditor")); var _icons = require("@ant-design/icons"); var _SchemaEasyEditor = _interopRequireWildcard(require("./SchemaEasyEditor")); var _ER = _interopRequireDefault(require("./ER")); require("./index.less"); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } var __assign = void 0 && (void 0).__assign || function () { __assign = Object.assign || function (t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) { if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } } return t; }; return __assign.apply(this, arguments); }; var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = void 0 && (void 0).__generator || function (thisArg, body) { var _ = { label: 0, sent: function sent() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (_) { try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; var __rest = void 0 && (void 0).__rest || function (s, e) { var t = {}; for (var p in s) { if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; } if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; var __spreadArray = void 0 && (void 0).__spreadArray || function (to, from) { for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) { to[j] = from[i]; } return to; }; var mergeOptions = { arrayMerge: function arrayMerge(oldValues, newValues, options) { var arr = []; var stringArr = []; newValues === null || newValues === void 0 ? void 0 : newValues.forEach(function (item) { // 对象类型 if (_typeof(item) === "object" && item !== null && !(item instanceof Array)) { arr.push(item); return; } // 非对象类型 var t; if (item instanceof Array && _typeof(item[0]) !== "object") { t = item.join(","); } else { t = String(item); } if (!stringArr.includes(t)) { stringArr.push(t); if (t.includes(",")) { arr.push(t.split(",")); } else { arr.push(item); } } }); return arr; } }; var ZESchemaEditor = function ZESchemaEditor(_a) { var _b = _a.showAutoSchema, showAutoSchema = _b === void 0 ? false : _b; var _c = (0, _hooks.useRequest)(_zeroetpApiSdk.getSchemas, { formatResult: function formatResult(res) { return ((res === null || res === void 0 ? void 0 : res.schemas) || []).sort(function (a, b) { return (a.order || 0) - (b.order || 0); }); } }), _d = _c.data, schemas = _d === void 0 ? [] : _d, fetchSchemas = _c.run, loading = _c.loading; var _e = (0, _hooks.useRequest)(function (schema) { return (0, _request.request)((0, _zeroetpApiSdk.commonRequest)("/learn", { method: "GET", params: { schema: schema } })); }, { manual: true, fetchKey: function fetchKey(schema) { return schema || "all"; }, onSuccess: function onSuccess(data, params) { var schema = params === null || params === void 0 ? void 0 : params[0]; _message2.default.success((schema || "所有") + "\u8868\u91CD\u65B0\u5B66\u4E60\u547D\u4EE4\u53D1\u9001\u6210\u529F\uFF0C\u8BF7\u7B49\u5F85\u540E\u53F0\u5904\u7406\uFF01"); }, onError: function onError(data, params) { var schema = params === null || params === void 0 ? void 0 : params[0]; _message2.default.error((schema || "所有") + "\u8868\u91CD\u65B0\u5B66\u4E60\u547D\u4EE4\u53D1\u9001\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5\uFF01"); } }), learnSchema = _e.run, learnFetches = _e.fetches; var _f = (0, _react.useState)(false), openER = _f[0], setOpenER = _f[1]; var _g = (0, _react.useState)(false), drawerVisible = _g[0], setDrawerVisible = _g[1]; var _h = (0, _react.useState)(false), isChecking = _h[0], setIsChecking = _h[1]; var _j = (0, _react.useState)({ items: [], record: undefined }), checkData = _j[0], setCheckData = _j[1]; var _k = (0, _react.useState)(false), checkModalOpen = _k[0], setCheckModalOpen = _k[1]; var _l = (0, _react.useState)(false), easyDrawerOpen = _l[0], setEasyDrawerOpen = _l[1]; var _m = (0, _react.useState)(), _editingRecord = _m[0], setEditingRecord = _m[1]; var _o = (0, _hooks.useLocalStorageState)("ZESchemaEditorTmpValues"), tmpRecord = _o[0], setTmpRecord = _o[1]; var tmpRecordRef = (0, _react.useRef)(tmpRecord); var editorRef = (0, _react.useRef)(); var formRef = (0, _react.useRef)(); var _q = (0, _react.useState)(false), saveLoading = _q[0], setSaveLoading = _q[1]; var _r = (0, _react.useState)("entity"), type = _r[0], setType = _r[1]; var _s = (0, _react.useState)(false), isSynoSuggestButtonLoading = _s[0], setIsSynoSuggestButtonLoading = _s[1]; var _t = (0, _hooks.useRequest)(function () { return _editingRecord ? (0, _zeroetpApiSdk.getSchemaByID)(_editingRecord === null || _editingRecord === void 0 ? void 0 : _editingRecord._id) : Promise.resolve({ schema: null }); }, { formatResult: function formatResult(res) { return res === null || res === void 0 ? void 0 : res.schema; }, refreshDeps: [_editingRecord === null || _editingRecord === void 0 ? void 0 : _editingRecord._id] }), _u = _t.data, editingRecord = _u === void 0 ? null : _u, editingRecordLoading = _t.loading; var revertProperty = function revertProperty(p) { var _a, _b; if (!p) { return {}; } var newEnums = ((_b = (_a = p.constraints) === null || _a === void 0 ? void 0 : _a.enum) === null || _b === void 0 ? void 0 : _b.map(function (e) { if (("" + e).includes(",")) { return ("" + e).split(","); } return e; })) || []; var newP = __assign(__assign({}, p), { constraints: __assign(__assign({}, p.constraints), { enum: newEnums.length > 0 ? newEnums : null }) }); if (p.ID) { newP._id = p.ID; } delete newP.ID; return newP; }; var getEasyValues = function getEasyValues() { var _a; var values = (_a = formRef.current) === null || _a === void 0 ? void 0 : _a.getFieldsValue(); var properties = values.properties, ID = values.ID, restValues = __rest(values, ["properties", "ID"]); var _b = tmpRecord || editingRecord || {}, _properties = _b.properties, oldValues = __rest(_b, ["properties"]); // 注意这里要分开合并处理,不然会有问题 var newPropertyValues = { properties: properties === null || properties === void 0 ? void 0 : properties.map(function (d) { var _a; var p = revertProperty((_a = d === null || d === void 0 ? void 0 : d.properties) !== null && _a !== void 0 ? _a : {}); p._sid = d.id; var _p = revertProperty(_properties === null || _properties === void 0 ? void 0 : _properties.find(function (f) { return f._sid === p._sid; })); var mergedP = (0, _deepmerge.default)(_p, p, mergeOptions); return mergedP; }) }; var newRestValues = (0, _deepmerge.default)(oldValues !== null && oldValues !== void 0 ? oldValues : {}, __assign({ _id: ID }, restValues), mergeOptions); var newValues = __assign(__assign({}, newRestValues), newPropertyValues); return newValues; }; var cacheEasyValues = function cacheEasyValues() { tmpRecordRef.current = getEasyValues(); }; var cacheExpertValues = function cacheExpertValues() { var record = editorRef.current.get(); var properties = record.properties, restValues = __rest(record, ["properties"]); var curValues = __assign(__assign({}, restValues), { properties: properties === null || properties === void 0 ? void 0 : properties.map(function (p) { var newP = __assign({}, p); newP.ID = p._id; return newP; }) }); tmpRecordRef.current = curValues; }; var onCancel = function onCancel(clearCache) { setEasyDrawerOpen(false); setDrawerVisible(false); setTimeout(function () { setEditingRecord(null); if (clearCache) { tmpRecordRef.current = null; } setTmpRecord(tmpRecordRef.current); }, 500); }; var toEasyMode = function toEasyMode() { cacheExpertValues(); setTmpRecord(tmpRecordRef.current); setEasyDrawerOpen(true); setDrawerVisible(false); }; var toExpertMode = function toExpertMode() { cacheEasyValues(); setTmpRecord(tmpRecordRef.current); setEasyDrawerOpen(false); setDrawerVisible(true); }; var guessSchema = function guessSchema() { return __awaiter(void 0, void 0, void 0, function () { var values, guessed; return __generator(this, function (_a) { switch (_a.label) { case 0: values = getEasyValues(); if (!values._id) { _message2.default.error("此功能需要先填写Schema的ID属性"); } return [4 /*yield*/ , (0, _request.requestGuessSchema)(values.type, values._id)]; case 1: guessed = _a.sent(); // console.log(guessed); setTmpRecord(guessed.schema); return [2 /*return*/ ]; } }); }); }; var onFinish = function onFinish(record, editMode, inCheckModal) { return __awaiter(void 0, void 0, void 0, function () { var res, checkRes, payload, error_1; var _a; return __generator(this, function (_b) { switch (_b.label) { case 0: _b.trys.push([0, 7,, 8]); setSaveLoading(true); res = void 0; if (!editMode) return [3 /*break*/ , 4]; if (!!inCheckModal) return [3 /*break*/ , 2]; setIsChecking(true); return [4 /*yield*/ , (0, _request.request)((0, _zeroetpApiSdk.commonRequest)("/schema/checkUpdate", { method: "POST", data: { before: editingRecord, after: record } }))]; case 1: checkRes = _b.sent(); setIsChecking(false); if (((_a = checkRes === null || checkRes === void 0 ? void 0 : checkRes.data) === null || _a === void 0 ? void 0 : _a.length) > 0) { setCheckModalOpen(true); setCheckData({ items: checkRes.data, record: record }); setSaveLoading(false); return [2 /*return*/ , false]; } _b.label = 2; case 2: payload = __assign({}, record); delete payload._id; return [4 /*yield*/ , (0, _request.request)((0, _zeroetpApiSdk.updateSchema)(record._id, payload))]; case 3: res = _b.sent(); return [3 /*break*/ , 6]; case 4: return [4 /*yield*/ , (0, _request.request)((0, _zeroetpApiSdk.createSchema)(record))]; case 5: res = _b.sent(); _b.label = 6; case 6: setSaveLoading(false); if (res) { _message2.default.success("保存成功"); onCancel(true); fetchSchemas(); } else { _message2.default.error("保存失败,请重试"); } return [3 /*break*/ , 8]; case 7: error_1 = _b.sent(); console.log(error_1); setSaveLoading(false); return [2 /*return*/ , false]; case 8: return [2 /*return*/ , true]; } }); }); }; var onDelete = function onDelete(id) { return __awaiter(void 0, void 0, void 0, function () { var res; return __generator(this, function (_a) { switch (_a.label) { case 0: if (!id) return [3 /*break*/ , 2]; return [4 /*yield*/ , (0, _request.request)((0, _zeroetpApiSdk.deleteSchema)(id))]; case 1: res = _a.sent(); if (res) { _message2.default.success("删除成功"); fetchSchemas(); } else { _message2.default.error("删除失败,请重试!"); } _a.label = 2; case 2: return [2 /*return*/ ]; } }); }); }; var modeMenu = function modeMenu(record) { return /*#__PURE__*/_react.default.createElement(_menu.default, { items: [{ key: "easy", label: /*#__PURE__*/_react.default.createElement("a", { onClick: function onClick() { setEasyDrawerOpen(true); setEditingRecord(record); if (record) { setTmpRecord(null); } } }, "\u7B80\u5355\u6A21\u5F0F") }, { key: "expert", label: /*#__PURE__*/_react.default.createElement("a", { onClick: function onClick() { setDrawerVisible(true); setEditingRecord(record); if (record) { setTmpRecord(null); } } }, "\u4E13\u5BB6\u6A21\u5F0F") }] }); }; var columns = [{ title: "_id", dataIndex: "_id" }, { title: "name", dataIndex: "name" }, { title: "type", dataIndex: "type" }, { title: "syno", dataIndex: "syno", render: function render(text, record) { var syno = (record === null || record === void 0 ? void 0 : record.syno) || []; return syno.length > 0 ? syno.join(", ") : "-"; } }, { title: "description", dataIndex: "description" }].map(function (d) { return __assign(__assign({}, d), { width: 200 }); }).concat([{ title: "操作", fixed: "right", width: 220, valueType: "option", render: function render(text, record) { var _a; return [/*#__PURE__*/_react.default.createElement(_dropdown.default, { key: "dropdown", overlay: modeMenu(record) }, /*#__PURE__*/_react.default.createElement("a", { key: "edit", onClick: function onClick(e) { e.preventDefault(); } }, /*#__PURE__*/_react.default.createElement(_space.default, null, "\u7F16\u8F91", /*#__PURE__*/_react.default.createElement(_icons.DownOutlined, null)))), /*#__PURE__*/_react.default.createElement(_button.default, { type: "link", key: "learn", loading: (_a = learnFetches === null || learnFetches === void 0 ? void 0 : learnFetches[record === null || record === void 0 ? void 0 : record._id]) === null || _a === void 0 ? void 0 : _a.loading, onClick: function onClick() { learnSchema(record === null || record === void 0 ? void 0 : record._id); } }, "\u91CD\u65B0\u5B66\u4E60"), /*#__PURE__*/_react.default.createElement(_popconfirm.default, { title: "\u662F\u5426\u786E\u5B9A\u5220\u9664", key: "delete", onConfirm: function onConfirm() { onDelete(record === null || record === void 0 ? void 0 : record._id); } }, /*#__PURE__*/_react.default.createElement(_button.default, { type: "link", danger: true, style: { padding: 0 } }, "\u5220\u9664"))]; } }]); var onCheckModalClose = function onCheckModalClose() { setCheckModalOpen(false); setCheckData({ items: [], record: undefined }); }; var onCheckModalOk = function onCheckModalOk() { return __awaiter(void 0, void 0, void 0, function () { var res; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/ , onFinish(checkData.record, true, true)]; case 1: res = _a.sent(); if (res) { onCheckModalClose(); } return [2 /*return*/ ]; } }); }); }; (0, _react.useEffect)(function () { tmpRecordRef.current = null; }, [tmpRecord]); (0, _react.useEffect)(function () { return function () { // 卸载时清除缓存 setTmpRecord(null); }; }, []); return /*#__PURE__*/_react.default.createElement(_spin.default, { spinning: loading }, /*#__PURE__*/_react.default.createElement(_proTable.default, { toolBarRender: function toolBarRender() { var _a; return [/*#__PURE__*/_react.default.createElement(_radio.default.Group, { key: "type", options: _JsonEditor.types.map(function (d) { return { label: d === "entity" ? "实体" : "事件", value: d }; }), onChange: function onChange(e) { setType(e.target.value); // 切换时清除缓存 setTmpRecord(null); }, value: type, optionType: "button" }), /*#__PURE__*/_react.default.createElement(_button.default, { key: "er", onClick: function onClick() { setOpenER(true); } }, "ER\u5173\u7CFB\u56FE"), /*#__PURE__*/_react.default.createElement(_button.default, { key: "learn", loading: (_a = learnFetches === null || learnFetches === void 0 ? void 0 : learnFetches.all) === null || _a === void 0 ? void 0 : _a.loading, onClick: function onClick() { learnSchema(); } }, "\u91CD\u65B0\u5B66\u4E60\u6240\u6709\u8868"), /*#__PURE__*/_react.default.createElement(_dropdown.default, { overlay: modeMenu(null), key: "add" }, /*#__PURE__*/_react.default.createElement(_button.default, { key: "add", type: "primary", onClick: function onClick(e) { e.preventDefault(); } }, "\u65B0\u5EFA", /*#__PURE__*/_react.default.createElement(_icons.DownOutlined, null)))]; }, rowKey: "_id", headerTitle: "Schema\u5217\u8868", dataSource: schemas.filter(function (d) { return d.type === type; }), columns: columns, search: false, options: false, scroll: { x: columns.reduce(function (p, c) { return p + c.width; }, 0) }, pagination: false }), /*#__PURE__*/_react.default.createElement(_drawer.default, { open: drawerVisible, extra: /*#__PURE__*/_react.default.createElement(_button.default, { onClick: toEasyMode }, "\u8F6C\u6210\u7B80\u5355\u6A21\u5F0F"), width: "90%", maskClosable: false, onClose: function onClose(e) { // 取消按esc退出弹窗 if (e.type === "keydown") { return; } onCancel(editingRecord !== null); }, title: editingRecord ? "更新Schema" : "新增Schema", destroyOnClose: true, className: "ze-schema-editor-expert-drawer", footer: /*#__PURE__*/_react.default.createElement("div", { style: { display: "flex", flexDirection: "row-reverse" } }, /*#__PURE__*/_react.default.createElement(_space.default, null, /*#__PURE__*/_react.default.createElement(_button.default, { onClick: function onClick() { cacheExpertValues(); onCancel(editingRecord !== null); } }, "\u53D6\u6D88"), /*#__PURE__*/_react.default.createElement(_button.default, { type: "primary", onClick: function onClick() { return __awaiter(void 0, void 0, void 0, function () { var errors, record; return __generator(this, function (_a) { switch (_a.label) { case 0: cacheExpertValues(); if (!editorRef.current) return [3 /*break*/ , 3]; return [4 /*yield*/ , editorRef.current.validate()]; case 1: errors = _a.sent(); if (errors && errors.length > 0) { _message2.default.error("schema校验不通过,请检查!"); return [2 /*return*/ ]; } record = editorRef.current.get(); return [4 /*yield*/ , onFinish(record, editingRecord != null)]; case 2: _a.sent(); _a.label = 3; case 3: return [2 /*return*/ ]; } }); }); }, loading: saveLoading }, "\u786E\u5B9A"))) }, /*#__PURE__*/_react.default.createElement(_spin.default, { spinning: editingRecordLoading }, /*#__PURE__*/_react.default.createElement(_react.Suspense, { fallback: /*#__PURE__*/_react.default.createElement("strong", null, "\u52A0\u8F7D\u4E2D...") }, /*#__PURE__*/_react.default.createElement(_JsonEditor.default, { value: tmpRecord || editingRecord, editorRef: editorRef, editable: true, isCreate: editingRecord === null, type: type })))), /*#__PURE__*/_react.default.createElement(_drawer.default, { open: easyDrawerOpen, extra: /*#__PURE__*/_react.default.createElement(_space.default, null, showAutoSchema && /*#__PURE__*/_react.default.createElement(_button.default, { onClick: guessSchema }, "\u81EA\u52A8\u751F\u6210\u8868\u7ED3\u6784"), /*#__PURE__*/_react.default.createElement(_button.default, { loading: isSynoSuggestButtonLoading, onClick: function onClick() { return __awaiter(void 0, void 0, void 0, function () { var useLLM, values, properties, name, result, _i, properties_1, property, key; var _a, _b; var _c; return __generator(this, function (_d) { switch (_d.label) { case 0: if (!formRef.current) return [2 /*return*/ ]; setIsSynoSuggestButtonLoading(true); return [4 /*yield*/ , (0, _request.request)((0, _request.requestSetting)("llm"))]; case 1: useLLM = _d.sent(); if (!useLLM || !useLLM.enable) { _message2.default.info("此功能需要配置并开启大语言模型"); setIsSynoSuggestButtonLoading(false); return [2 /*return*/ ]; } values = (_c = formRef.current) === null || _c === void 0 ? void 0 : _c.getFieldsValue(); properties = values.properties, name = values.name; return [4 /*yield*/ , (0, _request.request)((0, _zeroetpApiSdk.commonRequest)("/llm/synoSuggestion", { method: "POST", data: { keywords: __spreadArray([name], properties.map(function (p) { return (p.properties.name || "").trim(); })).filter(function (n) { return n && n.length > 0; }) } }))]; case 2: result = _d.sent(); if (name in result) { if (!values.syno) { values.syno = []; } (_a = values.syno).push.apply(_a, result[name]); values.syno = Array.from(new Set(values.syno)); } for (_i = 0, properties_1 = properties; _i < properties_1.length; _i++) { property = properties_1[_i]; key = (property.properties.name || "").trim(); if (key in result) { if (!property.properties.syno) property.properties.syno = []; } (_b = property.properties.syno).push.apply(_b, result[key]); property.properties.syno = Array.from(new Set(property.properties.syno)); } setTmpRecord((0, _SchemaEasyEditor.formValueToSchema)(values)); setIsSynoSuggestButtonLoading(false); return [2 /*return*/ ]; } }); }); } }, "\u81EA\u52A8\u751F\u6210\u540C\u4E49\u8BCD"), /*#__PURE__*/_react.default.createElement(_button.default, { onClick: toExpertMode }, "\u8F6C\u6210\u4E13\u5BB6\u6A21\u5F0F")), width: "90%", maskClosable: false, destroyOnClose: true, onClose: function onClose(e) { // 取消按esc退出弹窗 if (e.type === "keydown") { return; } onCancel(editingRecord !== null); }, title: editingRecord ? "更新Schema" : "新增Schema", footer: /*#__PURE__*/_react.default.createElement("div", { style: { display: "flex", flexDirection: "row-reverse" } }, /*#__PURE__*/_react.default.createElement(_space.default, null, /*#__PURE__*/_react.default.createElement(_button.default, { onClick: function onClick() { cacheEasyValues(); onCancel(editingRecord !== null); } }, "\u53D6\u6D88"), /*#__PURE__*/_react.default.createElement(_button.default, { type: "primary", onClick: function onClick() { var _a; cacheEasyValues(); (_a = formRef === null || formRef === void 0 ? void 0 : formRef.current) === null || _a === void 0 ? void 0 : _a.submit(); }, loading: isChecking || saveLoading }, isChecking ? "检查中..." : "确定"))) }, /*#__PURE__*/_react.default.createElement(_spin.default, { spinning: editingRecordLoading }, /*#__PURE__*/_react.default.createElement(_SchemaEasyEditor.default, { onSubmit: function onSubmit() { return __awaiter(void 0, void 0, void 0, function () { var res; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/ , onFinish(getEasyValues(), editingRecord != null)]; case 1: res = _a.sent(); if (res) { onCancel(true); } return [2 /*return*/ ]; } }); }); }, formRef: formRef, schemas: schemas, initialSchema: tmpRecord || editingRecord || { type: type }, editingRecord: editingRecord, submitter: false }))), /*#__PURE__*/_react.default.createElement(_modal.default, { title: "\u68C0\u67E5Schema", open: checkModalOpen, width: "calc(90vw - 48px)", closable: false, destroyOnClose: true, centered: true, footer: [/*#__PURE__*/_react.default.createElement(_button.default, { key: "cancel", onClick: onCheckModalClose }, "\u53D6\u6D88"), /*#__PURE__*/_react.default.createElement(_button.default, { key: "save", type: "primary", loading: saveLoading, onClick: onCheckModalOk }, "\u7EE7\u7EED\u4FDD\u5B58")] }, /*#__PURE__*/_react.default.createElement(_alert.default, { type: "warning", style: { marginBottom: 12 }, showIcon: true, description: /*#__PURE__*/_react.default.createElement("div", null, "\u7CFB\u7EDF\u68C0\u6D4B\u5230\u672C\u6B21\u4FEE\u6539\u4F1A\u5F71\u54CD\u5230\u4EE5\u4E0B\u81EA\u5B9A\u4E49\u8BCD\u6C47\uFF0C\u662F\u5426\u8981\u7EE7\u7EED\u4FDD\u5B58\uFF1F") }), /*#__PURE__*/_react.default.createElement(_table.default, { size: "small", bordered: false, dataSource: checkData.items, pagination: false, columns: [{ dataIndex: "关键词", title: "关键词", width: 120 }, { dataIndex: "logicform", title: "logicform" }] })), /*#__PURE__*/_react.default.createElement(_modal.default, { open: openER, footer: false, width: "calc(100vw - 48px)", bodyStyle: { display: "flex", height: "calc(100vh - 48px)", padding: 0 }, destroyOnClose: true, centered: true, onCancel: function onCancel() { setOpenER(false); } }, /*#__PURE__*/_react.default.createElement(_ER.default, { schemas: schemas }))); }; var _default = ZESchemaEditor; exports.default = _default;