constructor()

in src/routes/Plugin/Discovery/DiscoveryUpstreamTable.js [104:238]


  constructor(props) {
    super(props);
    this.state = {
      editingKey: "",
      isLocal: this.props.isLocal,
    };
    this.columns = [
      {
        title: "protocol",
        dataIndex: "protocol",
        editable: true,
        width: "25%",
        align: "center",
      },
      {
        title: "url",
        dataIndex: "url",
        editable: this.state.isLocal,
        width: "35%",
        align: "center",
      },
      {
        title: "status",
        dataIndex: "status",
        editable: true,
        width: "19%",
        align: "center",
        render: (text) => {
          return text === 0 || text === "0" ? "open" : "close";
        },
      },
      {
        title: "weight",
        dataIndex: "weight",
        editable: true,
        align: "center",
      },
      {
        title: "startupTime",
        dataIndex: "startupTime",
        editable: this.state.isLocal,
        align: "center",
      },
      {
        title: "warmupTime",
        dataIndex: "warmupTime",
        editable: true,
        align: "center",
      },
      {
        title: "gray",
        dataIndex: "gray",
        editable: true,
        align: "center",
        render: (text, record) => {
          return (
            <Switch
              disabled={record.status === 1}
              checked={record.gray === "true" || record.gray === true}
              onChange={(v) => {
                record.gray = v;
                this.saveGray(record, record.key);
              }}
            />
          );
        },
      },
      {
        title: getIntlContent("SHENYU.DISCOVERY.SELECTOR.UPSTREAM.OPERATION"),
        dataIndex: "operation",
        width: "18%",
        align: "center",
        render: (text, record) => {
          const { editingKey } = this.state;
          const editable = this.isEditing(record);
          return (
            <span>
              {editable ? (
                <span>
                  <EditableContext.Consumer>
                    {(form) => (
                      <a
                        onClick={() => this.save(form, record.key)}
                        style={{ marginRight: 8 }}
                      >
                        {getIntlContent(
                          "SHENYU.DISCOVERY.SELECTOR.UPSTREAM.SAVE",
                        )}
                      </a>
                    )}
                  </EditableContext.Consumer>
                  <Popconfirm
                    title={getIntlContent(
                      "SHENYU.DISCOVERY.SELECTOR.UPSTREAM.CANCEL.CONFIRM",
                    )}
                    onConfirm={() => this.cancel(record.key)}
                    okText={getIntlContent("SHENYU.COMMON.SURE")}
                    cancelText={getIntlContent("SHENYU.COMMON.CALCEL")}
                  >
                    <a>
                      {getIntlContent(
                        "SHENYU.DISCOVERY.SELECTOR.UPSTREAM.CANCEL",
                      )}
                    </a>
                  </Popconfirm>
                </span>
              ) : (
                <span>
                  <Button
                    type="link"
                    disabled={editingKey !== ""}
                    onClick={() => this.edit(record.key)}
                  >
                    {getIntlContent("SHENYU.DISCOVERY.SELECTOR.UPSTREAM.EDIT")}
                  </Button>{" "}
                  {this.props.dataSource.length >= 1 && this.state.isLocal ? (
                    <Popconfirm
                      title={getIntlContent(
                        "SHENYU.DISCOVERY.SELECTOR.UPSTREAM.DELETE.CONFIRM",
                      )}
                      onConfirm={() => this.handleDelete(record.key)}
                      okText={getIntlContent("SHENYU.COMMON.SURE")}
                      cancelText={getIntlContent("SHENYU.COMMON.CALCEL")}
                    >
                      <a>{getIntlContent("SHENYU.BUTTON.SYSTEM.DELETE")}</a>
                    </Popconfirm>
                  ) : null}
                </span>
              )}
            </span>
          );
        },
      },
    ];
  }