name: instance_save
amis_schema: |-
  {
      "type": "service",
      "body": [
          {
              "type": "button",
              "label": "保存",
              "id": "u:instance_save",
              "className": "  ",
              "onEvent": {
                  "click": {
                      "actions": [
                          {
                              "args": {
                                  "api": {
                                      "url": "${context.rootUrl}/api/workflow/v2/instance/save",
                                      "method": "post",
                                      "sendOn": "",
                                      "requestAdaptor": "var _SteedosUI$getRef$get, _approveValues$next_s;\nconst formValues = SteedosUI.getRef(api.body.$scopeId).getComponentById(\"instance_form\").getValues();\nconst approveValues = (_SteedosUI$getRef$get = SteedosUI.getRef(api.body.$scopeId).getComponentById(\"instance_approval\")) === null || _SteedosUI$getRef$get === void 0 ? void 0 : _SteedosUI$getRef$get.getValues();\nlet nextUsers = approveValues === null || approveValues === void 0 ? void 0 : approveValues.next_users;\nif (_.isString(nextUsers)) {\n  nextUsers = [approveValues.next_users];\n}\nconst instance = api.data.record;\nconst body = {\n  instance: {\n    _id: instance._id,\n    applicant: formValues.applicant,\n    submitter: formValues.submitter,\n    traces: [{\n      _id: instance.trace._id,\n      step: instance.step._id,\n      approves: [{\n        _id: instance.approve._id,\n        next_steps: [{\n          step: approveValues === null || approveValues === void 0 || (_approveValues$next_s = approveValues.next_step) === null || _approveValues$next_s === void 0 ? void 0 : _approveValues$next_s._id,\n          users: nextUsers\n        }],\n        description: approveValues === null || approveValues === void 0 ? void 0 : approveValues.suggestion,\n        values: formValues\n      }]\n    }]\n  }\n};\napi.data = body;\nreturn api;",
                                      "headers": {
                                          "Authorization": "Bearer ${context.tenantId},${context.authToken}"
                                      },
                                      "data": {
                                          "&": "$$"
                                      }
                                  },
                                  "messages": {
                                      "success": "暂存成功",
                                      "failed": "暂存失败"
                                  }
                              },
                              "actionType": "ajax",
                              "expression": "record.box === 'draft' || record.state == 'draft'"
                          },
                          {
                              "args": {
                                  "api": {
                                      "url": "${context.rootUrl}/api/workflow/v2/approve/save",
                                      "method": "post",
                                      "sendOn": "",
                                      "requestAdaptor": "var _SteedosUI$getRef$get, _approveValues$next_s;\nconst formValues = SteedosUI.getRef(api.body.$scopeId).getComponentById(\"instance_form\").getValues();\nconst approveValues = (_SteedosUI$getRef$get = SteedosUI.getRef(api.body.$scopeId).getComponentById(\"instance_approval\")) === null || _SteedosUI$getRef$get === void 0 ? void 0 : _SteedosUI$getRef$get.getValues();\nlet nextUsers = approveValues === null || approveValues === void 0 ? void 0 : approveValues.next_users;\nif (_.isString(nextUsers)) {\n  nextUsers = [approveValues.next_users];\n}\nconst instance = api.data.record;\nconst body = {\n  approve: {\n    id: instance.approve._id,\n    instance: instance._id,\n    trace: instance.trace._id,\n    next_steps: [{\n      step: approveValues === null || approveValues === void 0 || (_approveValues$next_s = approveValues.next_step) === null || _approveValues$next_s === void 0 ? void 0 : _approveValues$next_s._id,\n      users: nextUsers\n    }],\n    description: approveValues === null || approveValues === void 0 ? void 0 : approveValues.suggestion,\n    judge: approveValues === null || approveValues === void 0 ? void 0 : approveValues.judge,\n    values: formValues\n  }\n};\napi.data = body;\nreturn api;",
                                      "headers": {
                                          "Authorization": "Bearer ${context.tenantId},${context.authToken}"
                                      },
                                      "data": {
                                          "&": "$$"
                                      }
                                  },
                                  "messages": {
                                      "success": "暂存成功",
                                      "failed": "暂存失败"
                                  }
                              },
                              "actionType": "ajax",
                              "expression": "record.box != 'draft' && record.state != 'draft'"
                          }
                      ],
                      "weight": 0
                  }
              },
              "hiddenOn": "record.box != 'inbox' && record.box != 'draft'"
          }
      ],
      "regions": [
          "body"
      ],
      "data": {
      },
      "bodyClassName": "p-0",
      "id": "u:f41c9d7ebaab"
  }
is_enable: true
label: 保存
'on': record_only
type: amis_button
visible: true
