logic-post-method

This commit is contained in:
Eason010212
2023-04-19 17:11:12 +08:00
parent 842e6a02d2
commit a3caa815c6
4 changed files with 53 additions and 0 deletions

View File

@@ -18,6 +18,26 @@ Blockly.Blocks['GET'] = {
}
};
Blockly.Blocks['POST'] = {
init: function() {
this.setColour(network_HUE);
this.appendDummyInput().appendField(Blockly.POSTREQ);
this.appendValueInput("url").setCheck("String");
this.appendDummyInput().appendField(Blockly.USEDATA);
this.appendValueInput("data").setCheck("String");
this.appendDummyInput().appendField(Blockly.WAITREQ);
this.appendDummyInput().appendField(Blockly.Msg.PROCEDURES_CALL_BEFORE_PARAMS+"data"+","+"status");
this.setInputsInline(true);
this.appendStatementInput('DO0').appendField(Blockly.Msg.CONTROLS_REPEAT_INPUT_DO);
this.setPreviousStatement(true);
this.setNextStatement(true);
this.setTooltip("");
},
getVars:function(){
return ["data", "status"]
}
};
Blockly.Blocks['GETJSON'] = {
init: function() {
this.setColour(network_HUE);

View File

@@ -16,6 +16,25 @@ Blockly.JavaScript.GET=function(block) {
return code;
};
Blockly.JavaScript.POST=function(block) {
var url = Blockly.JavaScript.valueToCode(this, 'url', Blockly.JavaScript.ORDER_ATOMIC);
var data = Blockly.JavaScript.valueToCode(this, 'data', Blockly.JavaScript.ORDER_ATOMIC);
var statement_code=Blockly.JavaScript.statementToCode(block, "DO0" );
var code_piece=[];
code_piece=statement_code.split("\n");
for(var i=0;i<code_piece.length;i++){
if((code_piece[i].indexOf(" ") >= 0)){
code_piece[i]=code_piece[i].replace(" "," ");
}
}
statement_code=""
for(var i=0;i<code_piece.length;i++){
statement_code+=code_piece[i]+'\n'
}
var code="$.post("+url+", " + data + ", function(data, status){\n\t"+statement_code+"\n"+"})\n"
return code;
};
Blockly.JavaScript.GETJSON=function(block) {
var url = Blockly.JavaScript.valueToCode(this, 'url', Blockly.JavaScript.ORDER_ATOMIC);
var statement_code=Blockly.JavaScript.statementToCode(block, "DO0" );

View File

@@ -429,6 +429,8 @@ Blockly.ANY_MESSAGE="任意消息时";
Blockly.TOPIC_MESSAGE="主题消息时";
Blockly.PUBLISH_MESSAGE="主题发布";
Blockly.GETREQ="GET请求";
Blockly.POSTREQ="POST请求";
Blockly.USEDATA="使用数据";
Blockly.WAITREQ="并等待响应";
Blockly.WAITJSONREQ="并等待JSON响应";