130 lines
6.7 KiB
XML
130 lines
6.7 KiB
XML
{% set sms_code_url = entire_url('/rbac/gen_sms_code.dspy') %}
|
|
{% set code_login_url = entire_url('/rbac/user/code_login.dspy') %}
|
|
{
|
|
"id": "login_window",
|
|
"widgettype": "PopupWindow",
|
|
"options": {
|
|
"title": "登录/注册",
|
|
"auto_open": true,
|
|
"anthor": "cc",
|
|
"cwidth": 22,
|
|
"cheight": 22
|
|
},
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "TabPanel",
|
|
"id": "login_tabs",
|
|
"options": {
|
|
"tab_wide": "auto",
|
|
"height": "100%",
|
|
"width": "100%",
|
|
"tab_pos": "top",
|
|
"items": [
|
|
{
|
|
"name": "userpasswd",
|
|
"label": "用户密码",
|
|
"content": {
|
|
"widgettype": "Form",
|
|
"options": {
|
|
"cols": 1,
|
|
"fields": [
|
|
{"name": "username", "label": "用户名", "uitype": "str"},
|
|
{"name": "password", "label": "密码", "uitype": "password"}
|
|
]
|
|
},
|
|
"binds": [
|
|
{
|
|
"wid": "self",
|
|
"event": "submit",
|
|
"actiontype": "urlwidget",
|
|
"target": "self",
|
|
"options": {
|
|
"method": "POST",
|
|
"url": "{{entire_url('up_login.dspy')}}"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "phonecode",
|
|
"label": "手机验证码",
|
|
"content": {
|
|
"widgettype": "VBox",
|
|
"subwidgets": [
|
|
{
|
|
"widgettype": "Form",
|
|
"id": "phone_form",
|
|
"options": {
|
|
"description": "限中国国内手机号",
|
|
"cols": 1,
|
|
"fields": [
|
|
{"name": "cell_no", "label": "手机号", "uitype": "str"},
|
|
{"name": "codeid", "uitype": "hide", "value": ""},
|
|
{"name": "check_code", "label": "验证码", "uitype": "str"}
|
|
]
|
|
},
|
|
"binds": [
|
|
{
|
|
"wid": "self",
|
|
"event": "submit",
|
|
"actiontype": "urlwidget",
|
|
"target": "self",
|
|
"options": {
|
|
"method": "POST",
|
|
"url": "{{code_login_url}}"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"widgettype": "Button",
|
|
"id": "gen_code_btn",
|
|
"options": {"label": "发送验证码"},
|
|
"binds": [
|
|
{
|
|
"wid": "self",
|
|
"event": "click",
|
|
"actiontype": "script",
|
|
"target": "self",
|
|
"script": "var form=bricks.getWidgetById('phone_form',bricks.app);if(!form)return;var cell=form._getValue().cell_no;if(!cell||cell.length<11){alert('请输入正确的手机号');return;}var btn=this;btn.disabled=true;btn.text_w&&btn.text_w.set_otext('发送中...');fetch('{{sms_code_url}}?_webbricks_=1&cellphone='+encodeURIComponent(cell)).then(function(r){return r.json()}).then(function(d){if(d.status==='ok'){var w=form.name_inputs['codeid'];if(w)w.value=d.data.key;btn.text_w&&btn.text_w.set_otext('已发送');var s=60;var t=setInterval(function(){s--;if(s<=0){clearInterval(t);btn.disabled=false;btn.text_w&&btn.text_w.set_otext('重新发送')}else btn.text_w&&btn.text_w.set_otext(s+'s')},1000)}else{alert(d.data.message||'发送验证码出错');btn.disabled=false;btn.text_w&&btn.text_w.set_otext('发送验证码')}}).catch(function(e){alert('网络错误: '+e);btn.disabled=false;btn.text_w&&btn.text_w.set_otext('发送验证码')})"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "register",
|
|
"label": "注册",
|
|
"content": {
|
|
"widgettype": "Form",
|
|
"options": {
|
|
"cols": 1,
|
|
"fields": [
|
|
{"name": "username", "label": "用户名", "uitype": "str"},
|
|
{"name": "mobile", "label": "手机号", "uitype": "str"},
|
|
{"name": "password", "label": "密码", "uitype": "password"},
|
|
{"name": "cfm_password", "label": "确认密码", "uitype": "password"}
|
|
]
|
|
},
|
|
"binds": [
|
|
{
|
|
"wid": "self",
|
|
"event": "submit",
|
|
"actiontype": "urlwidget",
|
|
"target": "self",
|
|
"options": {
|
|
"method": "POST",
|
|
"url": "{{entire_url('register.dspy')}}"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|