# 安装npm环境
## 安装npm
从https://nodejs.org/en/download/下载并安装
## 淘宝镜像
```
npm install -g cnpm --registry=https://registry.npm.taobao.org
```
# 安装vue
```
# 最新稳定版
$ npm install vue
```
# 编译
```
npm install 或 cnpm install
```
o-action的例子->考试管理--资格证考试--资格证查询:
action-type:'jumpto' 表示跳转外链接,//opendocument 打开表单,   viewselect视图选择框,  openview 打开视图,  jumpto外部链接打开 
url:''//跳转地址
open-type:'open-eject'  // open_present当前页打开,  open_eject**弹出层**打开, open_tab**标签页**打开,  open_blank**新窗口**打开
```
if(isNotNull(ATTACHMENT)){
  if(ATTACHMENT.indexOf("http")==-1){
    ATTACHMENT="/obpm"+ATTACHMENT
    println("ATTACHMENT2"+ATTACHMENT)
  }
  btn="电子证书";   
}
//新页面北京地区使用
else if(certificateFrom&&certificateFrom.indexOf("北京")>-1){
  btn="电子证书"  
}else{
  //旧页面除北京地区使用
  btn="电子证书"  
}
```
````
http://www.teemlink.com/bbs/forum.php   天翎 论坛
# myApps-good皮肤自定义a标签用法
### 一.视图列值脚本格式
#### (1)以表单的形式打开
##### 1.参数说明
| 参数        | 说明                                                         |
| ----------- | ------------------------------------------------------------ |
| action-type | opendocument:表单打开                                       |
| appid       | 软件id                                                       |
| formid      | 表单id                                                       |
| docid       | 文档id                                                       |
| isRefresh   | 关闭后是否刷新                                               |
| open-type   | 打开类型:
1.open-present:当前页打开
2.open-eject :弹出层打开
3.open-tab: 标签页打开
4.open-blank: 新窗口打开 |
| exparams    | 额外的参数                                                   |
| parentid    | 主表的id                                                     |
##### 2.值脚本格式
```html
弹出层打开表单
```
#### (2)以视图的形式打开
##### 1.参数说明
| 参数        | 说明                                                         |
| ----------- | ------------------------------------------------------------ |
| action-type | openview:视图打开                                           |
| appid       | 软件id                                                       |
| viewid      | 视图id                                                       |
| isRefresh   | 关闭后是否刷新                                               |
| open-type   | 打开类型:
1.open-present:当前页打开
2.open-eject :弹出层打开
3.open-tab: 标签页打开
4.open-blank: 新窗口打开 |
| exparams    | 额外的参数                                                   |
##### 2.值脚本格式
```html
弹出层打开视图
```
#### (3)视图选择框的功能
##### 1.参数说明
| 参数           | 说明                   |
| -------------- | ---------------------- |
| action-type    | viewselect:视图选择框 |
| selectOne      | 视图为单选             |
| viewid         | 视图id                 |
| isRefresh      | 确认后是否刷新         |
| okScript       | 确认条件               |
| callbackScript | 确认后执行脚本         |
| mapping        | 映射字段               |
| dialog-width   | 视图选择框宽           |
| dialog-height  | 视图选择框高           |
##### 2.值脚本格式
```html
视图选择框
```
#### (4)跳转类型
##### 1.参数说明
| 参数        | 说明                                                         |
| ----------- | ------------------------------------------------------------ |
| action-type | jumpto:外部链接打开                                         |
| url         | url地址                                                      |
| title       | 头部信息                                                     |
| isRefresh   | 确认后是否刷新                                               |
| open-type   | 1.open-present:当前页打开
2.open-eject :弹出层打开
3.open-tab: 标签页打开
4.open-blank: 新窗口打开 |
##### 2.值脚本格式
```html
跳转百度
```
//视图列打开视图      
      (function() {               
      	var doc=getCurrentDocument();      
      	var docId=doc.getId();      
      	var lessonName=doc.getItemValueAsString("lessonName");     
      	var exparams = "&lessonName="+lessonName+"";  //拼接参数      
      	var appId=getApplication();                  
      	var domainid=getDomainid();      
      	var viewid="__fwfHNrRJ8rfZavczv2R";      
      	var btn="章节详情";      
      	return btn;                                            
      })();
//弹出层获取参数并赋值到Video标签进行播放视频  
  (function(){  
  var resourceUrl=decodeURI(getParameter("resourceUrl"));  
  var video="";  
  return video;  
  })();
//手机带跳转
  (function(){ 
  var formid='__8C9EDNoBpvXiQ3jc3nm';    
    var docId=getCurrentDocument().getId();    
    var appId=getApplication();    
    var btn="弹出层打开表单";    
    return btn; 
 })()
lessonChapterId
(function(){                        
                        var selectId = getParameterAsText("_selects");                        
                        var it = 0;                          
                        var arrto = splitText(selectId,";");                        
                        var errorStr = "";             
        				var dominId = getDomainid();        
                        it =arrto.length;                          
                                                
                        if(!isNotNull(selectId)){                        
                         return createAlert("请先勾选需要删除的数据");                        
                        }                        
                                        
                    	for(var i=0;i预览";      
      	return btn;                                            
      })();
      __OCUUpXY2HayKO8brl6j
获得公司名称
(function()      
{      
          var  id=getDomainid();     
          var process = getDomainProcess();//获取企业域对象 
         var  system_name=process.doView(id);
         var name = system_name.getName();
   //然后进行返回
return name;
})();
视图按钮跳转表单
(function(){       
         var doc=getCurrentDocument();       
         var request = $WEB.getParamsTable().getHttpRequest();   
         var applicationId=getApplication();             
         var urlt="http://" + request.getServerName()+":" + request.getServerPort() + request.getContextPath(); //获取地址跟项目          
         var url = urlt + "/portal/good/html/form.html?appId="+applicationId+"&formId=__XAp8W0jEHcGkWUhcYxx&containTitle=表单B&opentarget=detail";          
         return url;       
})();
批量删除
(function(){ 
 var selectId = getParameterAsText("_selects");
var arrto = splitText(selectId,";");       
var errorStr = "";            
  var personIdStr = "'";
var dominId = getDomainid();                                                                  
if(!isNotNull(selectId)){                               
  return createAlert("请先勾选需要删除的数据");                               
}           
  for(var i=0;i" + userlist.toJSONString());  
同步监管端
#include "getDsName"; 
#include "sysfunction";   
(function(){
var doc=getCurrentDocument();
var dsName = getDsName();
var sql = "select "+
    "'"+getDomainid()+"' as DOMAINID,"+
    "ID,"+ 
    "ID as item_ID,"+
    "ITEM_OFFICEPOLICEADDRESSID" + 
    " from tlk_setsupervise"+
    " where ITEM_DOMAIN_ID='"+getDomainid()+"'";
var datas = queryByDSName(dsName,sql);
if(datas!=null){
  var data = datas.iterator().next();
  var officePoliceAddressID = data.get("ITEM_OFFICEPOLICEADDRESSID");
  try{                                                 //同步doc //同步表单文档id  //需同步表单id      //需同步的软件id(固定)  //监管地id
    var errstr = sysfunction.sendDateToJgSystemByDocHZH(doc,doc.getFormid(),"__M5n24oDGotjyg7mu2Z0","__wGomeHJBz6CpLFCCl4y",officePoliceAddressID);   
    if(errstr!=null || !"".equals(errstr)) {
      return errstr;
    }
  }catch(e){
    println("异常信息==>" +e);
  }
}else{
  return "提交失败,请联系管理员维护监管机构的配置信息!";
}
})()
解析json
(function(){                 
                 var doc=getCurrentDocument();  
                 var resourceFile = doc.getItemValueAsString("resourceFile");       
                 var str = eval(''+resourceFile+'');   
  				if(str != null){  
    					return str[0].name.split(".")[0];  
                  }  
          
   return "";  
   })()
             var err = eval(''+JSONString+'');
          println("err==>" + err);
          if(err != null){  
            println("err==>" + err);
            var errmsg = err[0].errmsg;
            if(!"ok".equals()){ 
              return "同步数据失败,请联系管理员";     
            }
          }else{
            return "同步数据失败,请联系管理员";     
          }
	      var URLConnector = Packages.cn.hutool.http.HttpRequest;  
      for(var i=0;i" + errStr);
        if(!"undefined".equals(errStr)) {
          return errStr;
        }
      }
//批量赋值
function echoFunction(doc,idArr){
  var arrto = splitText(idArr,";");  
//println("doc==>" +doc);
  for(var i=0;i" +datart);
    for(var iter=datart.getItems().iterator();iter.hasNext();){      
      var itemInfo=iter.next(); 
      var item = doc.findItem(itemInfo.getName());
      if(item != null){
        item.setValue(itemInfo.getValue() != null ? itemInfo.getValue() : "");
      }
    }
  }
}
//格式化时间
format(doc.getItemValueAsDate("contractEndDate"),"yyyy-MM-dd HH:mm:ss")
//获取天翎token
var token = new Packages.cn.myapps.common.util.Security().getToken(userId); //通过用户id获取token,才能以前端账号调用接口	 
(function(){
 var doc=getCurrentDocument();
var isTrue = doc.getItemValueAsString("isTrue"); 
var materialApproveFailReason = doc.getItemValueAsString("materialApproveFailReason"); 
if("0".equals(isTrue)) {
  if("".equals(materialApproveFailReason)){
  	return "审核不通过原因必须填写!";
  }
}
})()
(function(){
var materialApproveStatus = getItemValueAsString("materialApproveStatus"); 
if("0".equals(materialApproveStatus)) {
    return false;
}else{
	return true
}
})()
//获取表字段的sql
SELECT CONCAT('"a.',column_name,'," + //',column_comment) AS columnSql
  FROM information_schema.columns 
 WHERE table_schema = 'tms' -- schema
   AND table_name = 'tlk_system_exam_info' -- 表名
   AND INSTR(column_name,'ITEM_');
````