1 /**
  2  * 实名认证
  3  */
  4 define(["core", "component/process_components","component/form"], function() {
  5 
  6     var _html = '<div class="we_cell_form_box" attr="root"></div>';
  7 
  8     var api = {
  9         /**
 10          * 实名认证
 11          */
 12         setRealName:function (id_card, realname, success, fail)
 13         {
 14             var url = $we.conf.ENV.__API + "/ajaxSafe/setRealName";
 15             $we.utils.request(url, {
 16                 id_card:id_card,
 17                 realname:realname
 18             }, function (data)
 19             {
 20                 success(data);
 21             }, function (data)
 22             {
 23                 fail(data);
 24             }, "POST", true);
 25         }
 26     };
 27 
 28     $we.widget.reg("real_name_auth", {
 29         interfaces:{
 30             /**
 31              * render函数,AAA的接口函数,对于业务流组件来说,它完全可以转变为一个内置函数,
 32              * 业务流组件在大多数情况下,不会调用interfaces
 33              */
 34             render:function ()
 35             {
 36                 var t = this;
 37                 this.tips = $we.widget.add("process.tips.big", this.el, {
 38                     content:"您未填写防沉迷信息,按国家相关规定被纳入防沉迷系统。建议您马上填写防沉迷信息,以更好地获得网络服务。"
 39                 });
 40 
 41                 this.append(this.el, _html);
 42 
 43                 this.form = $we.widget.add("Form", $(this.node['root']), {
 44                     form_elements:[
 45                         {
 46                             label:'姓名',
 47                             name:'xing_ming',
 48                             id:'xing_ming',
 49                             events:'blur',
 50                             require:true,
 51                             success:'正确'//,
 52                             //info:'请输入您的真实姓名'
 53                         },
 54                         {
 55                             label:'身份证号',
 56                             name:'id_number',
 57                             id:'id_number',
 58                             events:'blur',
 59                             expression:'id_card',
 60                             require:true,
 61                             success:'正确'//,
 62                             //info:'请输入您的身份证号码'
 63                         }
 64                     ],
 65                     commit:function(){
 66                         t.notify('next');
 67                     }
 68                 });
 69             },
 70 
 71             /**
 72              * 错误显示
 73              * @param content
 74              */
 75             showError:function (content)
 76             {
 77                 var errorTip = $(this.node['error_tip']);
 78                 errorTip.html('<i class="we_icon_error"></i>' + content);
 79                 errorTip.show();
 80             },
 81 
 82             /**
 83              * 清楚错误
 84              */
 85             cleanError:function ()
 86             {
 87                 var errorTip = $(this.node['error_tip']);
 88                 errorTip.html('');
 89                 errorTip.hide();
 90             }
 91         },
 92         /**
 93          * 初始化函数
 94          * @param  {element} el    通过业务流组件传递过来的参数,该业务流组件的business节点
 95          * @param  {object} params 初始化业务流组件时,每个组件传递的参数
 96          */
 97         init:function (el, params)
 98         {
 99             this.el = el;
100             this.params = params;
101         },
102         /**
103          * 每个组件,如果需要使用业务流的话,需要声明这个
104          */
105         process:{
106             /**
107              * 组件开始调用,业务流组件会调用这个接口来启用组件
108              */
109             start:function ()
110             {
111                 this.render();
112             },
113             /**
114              * 组件结束调用,当这个业务结束的时候,业务流组件会调用它
115              */
116             end:function ()
117             {
118                 $(this.el).empty();
119             },
120             /**
121              * 组件检测是否可以进行下一步
122              * 当组件需要进入下一步时,业务流组件将会调用这个接口,
123              * 这个接口需要通过 this.notify("goNext") 来通知业务流组件它检测通过,
124              * 否则业务流组件在这个地方会停滞下来 通过 this.notify("pause")来通知
125              */
126             checkSucc:function ()
127             {
128                 var t = this;
129                 if (this.form.valid()) {
130                     var xingMing = this.form.getValue('xing_ming');
131                     var idNumber = this.form.getValue('id_number');
132 
133                     api.setRealName(idNumber, xingMing, function (data)
134                     {
135                         t.notify("goNext");
136                     }, function (data)
137                     {
138                         $we.comp.alert(data.msg);
139                     });
140                 }
141             }
142         },
143         events:{
144         }
145     });
146 
147 });