1 /** 2 * 设置别名 3 */ 4 define(["core", "component/process_components"], function() { 5 6 var _html = '<div class="we_cell_form_box" attr="root"></div>'; 7 8 var _title = '确认继续更换手机请点击下一步,否则点击取消放弃操作'; 9 10 var _btmTips = ["<strong>温馨提示:</strong>如果是手机账号,更换手机后登录名将变成新手机号<br>", 11 "<strong>手机账号:</strong>可以用手机号码作为登录名的账号"].join(''); 12 13 /** 14 * API 15 * @type {Object} 16 */ 17 var api = { 18 setLoginName:function (loginName, handler) 19 { 20 //handler(); 21 var url = $we.conf.ENV.__API + "/ajaxSafe/setAlias"; 22 $we.utils.request(url, { 23 alias:loginName 24 }, function(data) { 25 handler(data.data); 26 }, function(data) { 27 $we.comp.alert(data.msg); 28 }, "POST", true); 29 } 30 }; 31 32 33 $we.widget.reg("set_login_name", { 34 interfaces:{ 35 /** 36 * render函数,AAA的接口函数,对于业务流组件来说,它完全可以转变为一个内置函数, 37 * 业务流组件在大多数情况下,不会调用interfaces 38 */ 39 render:function () 40 { 41 var phone = $we.process.getData("phone"); 42 var defaultTip=[]; 43 defaultTip.push("更改手机后,原手机账号"); 44 defaultTip.push('<span class="we_yellow">'+phone+'</span>'); 45 defaultTip.push("将不能用手机号码直接登录,请设置新的登录名"); 46 47 var tips = $we.utils.setValue(this.params.tips, defaultTip.join('')); 48 var title = $we.utils.setValue(this.params.title, _title); 49 var btmTips = $we.utils.setValue(this.params.btmTips, _btmTips); 50 51 this.tips = $we.widget.add("process.tips.small", this.el, { 52 content:tips 53 }); 54 this.append(this.el, _html); 55 this.form = $we.widget.add("Form", $(this.node['root']), { 56 form_elements:[ 57 { 58 label:'新的登录名', 59 name:'login_name', 60 id:'login_name', 61 events:'blur', 62 info:'4-16位数字和字母的组合,首位为字母', 63 require:true 64 } 65 ], 66 title:title 67 }); 68 69 this.notify("renderBottom", btmTips); 70 this.notify("setButton", {cancel:true}); 71 } 72 }, 73 /** 74 * 初始化函数 75 * @param {element} el 通过业务流组件传递过来的参数,该业务流组件的business节点 76 * @param {object} params 初始化业务流组件时,每个组件传递的参数 77 */ 78 init:function (el, params) 79 { 80 params = params || {}; 81 82 this.el = el; 83 this.params = params; 84 }, 85 /** 86 * 每个组件,如果需要使用业务流的话,需要声明这个 87 */ 88 process:{ 89 /** 90 * 组件开始调用,业务流组件会调用这个接口来启用组件 91 */ 92 start:function () 93 { 94 this.render(); 95 }, 96 /** 97 * 组件结束调用,当这个业务结束的时候,业务流组件会调用它 98 */ 99 end:function () 100 { 101 this.tips.remove(); 102 $(this.el).empty(); 103 }, 104 /** 105 * 组件检测是否可以进行下一步 106 * 当组件需要进入下一步时,业务流组件将会调用这个接口, 107 * 这个接口需要通过 this.notify("goNext") 来通知业务流组件它检测通过, 108 * 否则业务流组件在这个地方会停滞下来 通过 this.notify("pause")来通知 109 */ 110 checkSucc:function () 111 { 112 var t = this; 113 var result = this.form.valid(); 114 if (result) { 115 var loginName = this.form.getElement('login_name').val(); 116 api.setLoginName(loginName,function(){ 117 $we.process.setData("alias",loginName); 118 t.notify("goNext"); 119 }); 120 } 121 } 122 }, 123 events:{ 124 } 125 }); 126 127 });