记录jsbox api

70 阅读1分钟
let num = 0;
let total = 0;

$ui.render({
  views: [
    {
      type: "label",
      props: {
        text: "Hello, World!",
        align: $align.center
      },
      layout: function(make, view) {
        make.center.equalTo(view.super)
      }
    },
    {
      type: "input",
      props: {
        type: $kbType.number,
        text: ""
      },
      layout: function (make, view) {
        make.top.equalTo(50);
        make.size.equalTo($size(200, 32));
      },

      events: {
        changed: function (sender) {
          num = Number(sender.text);
          // $ui.toast(sender)
        }
      }
    },
    {
      type: "input",
      props: {
        type: $kbType.number,
        text: ""
        // darkKeyboard: true
      },
      layout: function (make, view) {
        make.top.equalTo(100);
        make.size.equalTo($size(200, 32));
      },
      events: {
        changed: function (sender) {
          // console.log(sender.text);
          total = Number(sender.text);
          // $ui.toast(sender)
        }
      }
    },
    {
      type: "button",
      props: {
        title: "计算"
      },
      layout: function (make, view) {
        make.center.equalTo(view.super);
        make.width.equalTo(100);
      },
      events: {
        tapped: function (sender) {
          console.log(num, total);
          let ret = generateSum(num, total);
          console.log(ret);
          $ui.alert(ret)
        }
      }
    }
  ]
});

function generateSum(x, y) {
  if (x === 1) {
    return [y];
  }
  const max = y - x + 1;
  const min = 1;
  const num = Math.floor(Math.random() * (max - min + 1) + min);
  const rest = generateSum(x - 1, y - num);
  return [num, ...rest];
}