起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: 一诺佳人

[结贴] 中控ID100二代身份证读卡器信息SDK如何接口到BEX5的员工档案

  [复制链接]

21

主题

122

帖子

442

积分

中级会员

Rank: 3Rank: 3

积分
442
QQ
 楼主| 发表于 2017-6-27 19:22:48 | 显示全部楼层
补充下,button 的onclick事件是这样写的:
  1.         Model.prototype.button7Click = function(event){
  2.         debugger;
  3.          var path = "$UI/DEMOERP/HR/process/HR_EP_Employee/baseISSOnline";
  4.                   require([path], function(){
  5.         Device.prototype.startFun();
  6.                 })
  7.         }
复制代码
回复 支持 反对

使用道具 举报

21

主题

122

帖子

442

积分

中级会员

Rank: 3Rank: 3

积分
442
QQ
 楼主| 发表于 2017-6-28 09:21:08 | 显示全部楼层
本帖最后由 一诺佳人 于 2017-6-28 09:28 编辑

您好!现在这个驱动读卡信息按照SDK可以读取出来。        alert(result.Certificate.Name);,但是赋值这句好像没起到作用        $("#fName").val(result.Certificate.Name);
请问我应该怎么修改这句或者有没有办法在别的地方再次输出result.Certificate所有字段值?

  1. var issOnlineUrl = "http://127.0.0.1:24010/ZKIDROnline";
  2. var browserFlag = getBrowserType();
  3. /*
  4. $().ready(function(){
  5.         $(document).off("DOMNodeInserted","#cert_message_type");
  6.         $("#cert_message_type").on("DOMNodeInserted",function(e){
  7.                 openMessage($("#cert_message_type").text(), $("#cert_message").text());
  8.         });
  9. });
  10. */
  11. //身份证
  12. //includeScript("baseISSObject.js", function(){
  13. //includeScript("baseISSOnline.js", function(){
  14.         var setting = {
  15.                         Cert : {
  16.                                 callBack : function(result){
  17.                                         setCertificateData(result);
  18.                                 },
  19.                                 select : "#button7"
  20.                         },
  21.                         Methods : {
  22.                                 showMessage : function(type,message){
  23.                                         $("#cert_message").text(message);
  24.                                         $("#cert_message_type").text(msgType[type]);
  25.                                 },
  26.                                 downloadDrive : function(){
  27.                                         $.jBox.closeTip();
  28.                                         messageBox({messageType: "confirm", text: "请安装相关硬件驱动!点击确定下载驱动。",
  29.                                                 callback: function(result){
  30.                                                         if(result)
  31.                                                         {
  32.                                                                 window.location.href = "middleware/ZKIDROnline.exe";
  33.                                                         }
  34.                                                         closeMessage();
  35.                                         }});
  36.                                 }
  37.                         }
  38.                 }
  39.                 createISSonlineDevice(setting);
  40. //});
  41. //});

  42. function setCertificateData(result)
  43. {   /*var mainData = this.comp("mainData")
  44.         mainData.setValue("fName", result.Certificate.Name);*/

  45.         $("#fName").val(result.Certificate.Name);
  46.         alert(result.Certificate.Name);
  47.         //this.comp("mainData").val(result.Certificate.Name);
  48.         
  49.         $("#birthday").val(result.Certificate.Birthday.replace(/\./g,"-").substr(0,10));

  50.         $("#certNumber").val(result.Certificate.IDNumber);

  51.         $("#idIssued").val(result.Certificate.IDIssued);
  52.         $("#issuedValidDate").val(result.Certificate.IssuedData+"-"+result.Certificate.ValidDate);
  53.         
  54.         imgData =result.Certificate.Base64Photo;
  55.         $("#id_img_pers").attr("src","data:image/jpg;base64,"+imgData);

  56.         $("#personIdPhoto").val(imgData);
  57.         $("#personPhoto").val("");

  58.         $("#gender").val(result.Certificate.Sex);
  59.         $("#nation").val(result.Certificate.Nation);
  60.         $("#address").val(result.Certificate.Address);
  61. }
  62.         
  63. function getRandomNum()
  64. {
  65.     var random = parseInt(Math.random() * 10000);
  66.     return random;
  67. }

  68. //消息控件的使用类型的类
  69. var msgType =
  70. {
  71.         info : "info",
  72.         success : "success",
  73.         warning : "warning",
  74.         error : "error",
  75.         loading : "loading"
  76. };

  77. function getBrowserType()
  78. {
  79.         var browserFlag = "";
  80.          //是否支持html5的cors跨域
  81.     if (typeof(Worker) !== "undefined")
  82.     {
  83.         browserFlag = "html5";
  84.     }
  85.     //此处判断ie8、ie9
  86.     else if(navigator.userAgent.indexOf("MSIE 7.0")>0||navigator.userAgent.indexOf("MSIE 8.0")>0 || navigator.userAgent.indexOf("MSIE 9.0")>0)
  87.     {
  88.         browserFlag = "simple";
  89.     }
  90.     else
  91.         {
  92.                 browserFlag = "upgradeBrowser";//当前浏览器不支持该功能,请升级浏览器
  93.         }
  94.     return browserFlag;
  95. }


  96. function openMessage(type, text, ptimeout)
  97. {
  98.         text = (text == "" ? null : text);
  99.         var timeout = 1000;
  100.         if(type == msgType.warning || type == msgType.info)//警告
  101.         {
  102.                 timeout = 3000;
  103.         }
  104.         else if(type == msgType.success)//成功
  105.         {
  106.                
  107.                 text = (text && text != null ? text : "操作成功");//${common_op_succeed}:操作成功
  108.                 var num = strlen(text)/30;
  109.                 num = num > 8 ? 8 : num;
  110.                 timeout = Math.ceil(num) * timeout;//动态判断显示字符数的长度来延长显示时间
  111.         }
  112.         else if(type == msgType.error)//失败
  113.         {
  114.                 text = (text && text != null) ? text : "操作失败";//${common_op_failed}:操作失败,程序出现异常
  115.                 timeout = 3000;
  116.         }
  117.         else if(type == msgType.loading)//处理中
  118.         {
  119.                 timeout = 0;//当为'loading'时,timeout值会被设置为0,表示不会自动关闭。
  120.                 text = text && text != null ? text : "处理中";//${common_op_processing}:处理中
  121.         }
  122.         var width = strlen(text) * 6.1 + 45;//按字符计算宽度
  123.         timeout = ptimeout ? ptimeout : timeout;
  124.         $.jBox.tip(text, type,{timeout: timeout, width: (width > 400 ? 400 : "auto")});//设定最大宽度为400
  125. }


  126. function closeMessage(timeout)
  127. {
  128.         timeout = timeout ? timeout : 1000;
  129.         window.setTimeout("$.jBox.closeTip();", timeout);//设定最小等待时间
  130. }

  131. function strlen(str)
  132. {  
  133.     var len = 0;  
  134.     if(str != null)
  135.     {
  136.                    for (var i=0; i<str.length; i++)
  137.             {   
  138.                         var c = str.charCodeAt(i);
  139.                         if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f))
  140.                         {
  141.                                 len++;   
  142.                         }        
  143.                         else
  144.                         {
  145.                                 len+=2;   
  146.                         }
  147.             }
  148.     }
  149.     return len;
  150. }  

  151. function messageBox(paramsJson)
  152. {

  153.         this.messageType = paramsJson.messageType ? $.trim(paramsJson.messageType) : "confirm";
  154.         this.types = "";
  155.           if(paramsJson.type)
  156.           {
  157.                   this.typeArray = paramsJson.type.split(" ");
  158.                   for(var i=0; i<this.typeArray.length; i++)
  159.                   {
  160.                           this.types += this.typeArray[i]+" ";
  161.                   }
  162.           }
  163.           switch(this.messageType)
  164.         {
  165.                 case "confirm":
  166.                           $.jBox.confirm(paramsJson.text, "提示", function(v, h, f) {
  167.                              if (v == "ok")
  168.                              {
  169.                                       paramsJson.callback(true);
  170.                              }
  171.                         });
  172.                         break;
  173.         }
  174. }
复制代码
QQ图片20170628091350.png
QQ图片20170628091502.png
回复 支持 反对

使用道具 举报

21

主题

122

帖子

442

积分

中级会员

Rank: 3Rank: 3

积分
442
QQ
 楼主| 发表于 2017-6-28 09:32:43 | 显示全部楼层
补充说明下:如何将$("#fName").val(result.Certificate.Name);转换成类似如:this.comp("mainData").setValue("fName",result.Certificate.Name)?是不是在外部JS文件中,缺少什么东东导致无法直接使用后面这句?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2017-6-28 10:23:17 | 显示全部楼层
12楼发的是在平台.w的js文件中写的代码吗?
如果是可以在方法的外面定义var self = this;
然后里面用self.comp("XX")的方式获取

如果不是在平台的js文件中操作的可以在需要赋值的input上加一个唯一的class样式
然后用jquery获取样式进行赋值操作
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

21

主题

122

帖子

442

积分

中级会员

Rank: 3Rank: 3

积分
442
QQ
 楼主| 发表于 2017-6-28 11:21:47 | 显示全部楼层
第一个问题回复:12#代码为外部js,非平台.w的源码或.js代码(见图一)
第二个问题追问:.w的源码<div>下<input ....xid=fname>是可以作为唯一class样式。$(#fname).val(result...)的赋值按照jquery的做法是没问题的。到.w这边就有问题。见图二。
同时图三即为纯jquery下的一个源码,可以显示。
追问,怎么转换?

QQ图片20170628110611.png
QQ图片20170628111328.png
QQ图片20170628112024.png
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2017-6-28 14:07:16 | 显示全部楼层
写的是定义一个特殊的class不是按照xid获取,在class加一个唯一的标志
jquery用class去获取元素
$(".XXX").val("XXX")
class.png
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

21

主题

122

帖子

442

积分

中级会员

Rank: 3Rank: 3

积分
442
QQ
 楼主| 发表于 2017-6-28 14:51:04 | 显示全部楼层
补充下:JQUERY里<input readonly="readonly" type="text" value="" id="fName"/>  赋值时$(#fName).val()传给value='',但是.w里是要把值传给bind-ref="mainData.ref('fName')"  源码为【 <input component="$UI/system/components/justep/input/input"
                    class="form-control" xid="fName" bind-ref="mainData.ref('fName')"/>】,这个地方应该怎么处理?怎么转换下?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2017-6-28 15:48:36 | 显示全部楼层
16楼的方式不行吗?
那就自己在第三方中返回要填写的值,在平台的js中获取到值调用data的setValue赋值
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

21

主题

122

帖子

442

积分

中级会员

Rank: 3Rank: 3

积分
442
QQ
 楼主| 发表于 2017-6-29 14:03:46 | 显示全部楼层
本帖最后由 一诺佳人 于 2017-6-29 14:11 编辑

我在<div></div>标签中加了id=fname,然后就上来了。原因是X5里调用不支持document.getelementbyid。现在数据传到页面了,请问,如何将页面传过来的数据通过保存,存进数据库对应的概念的关系里?如图()。保存这个位置应该怎么写?本身有个保存按钮,默认的。现在把这写数据写过去。data.saveData()这个应该写在哪里?
QQ图片20170629140150.png
QQ图片20170629141002.png
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
36067
发表于 2017-6-29 14:31:28 | 显示全部楼层
可以直接点保存按钮啊

如果是赋值后就保存就在自己调用赋值后调用data的saveData()
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-23 20:08 , Processed in 0.064441 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表