天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 3969|回复: 0

[javascript] MyApps4.4 代码示例

[复制链接]
smart 发表于 2020-12-3 09:32:40 | 显示全部楼层 |阅读模式
本帖最后由 smart 于 2020-12-10 17:27 编辑

更多示例


  1. /**
  2.         调用用户添加接口 添加用户
  3. **/
  4. (function () {
  5.     var URLConnector = new Packages.cn.myapps.util.http.HttpRequestUtil();
  6.     var applicationId = getApplication();
  7.     var domainid = getDomainid()
  8.     var outputStr = "{\n" +
  9.         "\n" +
  10.         "    "name": "ekko",\n" +
  11.         "\n" +
  12.         "    "loginno": "ekko",\n" +
  13.         "    \n" +
  14.         "    "loginpwd":"IzNDU2MT",\n" +
  15.         "\n" +
  16.         "    "email": "email@teemlink.com",\n" +
  17.         "\n" +
  18.         "    "emailPublic": true,\n" +
  19.         "\n" +
  20.         "    "telephone": "13192286346",\n" +
  21.         "\n" +
  22.         "    "telephonePublic": true,\n" +
  23.         "\n" +
  24.         "    "calendarType": "i7xj207zBMEwBp8aATE",\n" +
  25.         "\n" +
  26.         "    "calendarTypeName": "夜班日历",\n" +
  27.         "\n" +
  28.         "    "telephone2": "13192286349",\n" +
  29.         "\n" +
  30.         "    "telephonePublic2": true,\n" +
  31.         "\n" +
  32.         "    "reportTree": "",\n" +
  33.         "\n" +
  34.         "    "superiorid": "",\n" +
  35.         "\n" +
  36.         "    "proxyUserid": "",\n" +
  37.         "\n" +
  38.         "    "remarks": "",\n" +
  39.         "\n" +
  40.         "    "startProxyTime": "",\n" +
  41.         "\n" +
  42.         "    "endProxyTime": "",\n" +
  43.         "\n" +
  44.         "    "permissionType": "public",\n" +
  45.         "\n" +
  46.         "    "lockFlag": 1,\n" +
  47.         "    \n" +
  48.         "    "status":1,\n" +
  49.         "\n" +
  50.         "    "dimission": 1,\n" +
  51.         "\n" +
  52.         "    "defaultDepartment": "BFMzxTaCTWI6TbWLKXT",\n" +
  53.         "\n" +
  54.         "\n" +
  55.         "    "_userRoleDepartmentJson":'[{"roleId":"UELSgsHXdMcRKv8s1DW","departmentId":"BFMzxTaCTWI6TbWLKXT","applicationId":"" + applicationId + "","isDefaultDepartment":"true"}]',\n" +
  56.         "\n" +
  57.         "    "_userKMRoleJson": '[]',\n" +
  58.         "\n" +
  59.         "    "_kmRoleJson":'[]',\n" +
  60.         "\n" +
  61.         "    "_kmRole": '[]'\n" +
  62.         "\n" +
  63.         "}";
  64.     var HostUrl = "http://localhost:8080/obpm/authtime/domain/" + domainid + "/user";
  65.     var JSONString = URLConnector.post(HostUrl, outputStr);
  66.     println("JSONString--->" + JSONString);
  67.     var accessToken = JSONString.get("errmsg");
  68.     var docProcess = getDocumentProcess();
  69.     var formProcess = getFormProcess();
  70.     var Sequence = new Packages.cn.myapps.util.sequence.Sequence();
  71.     var uuid = Sequence.getSequence();
  72.     var newForm = formProcess.doViewByFormName("用户添加", getApplication());
  73.     var newDoc = docProcess.doNew(newForm, getWebUser(), createParamsTable());
  74.     newDoc.addStringItem("测试字段", accessToken);
  75.     newDoc.setId(uuid);
  76.     docProcess.doCreate(newDoc);
  77. })()

  78. /**
  79.         视图SQL示例
  80. */
  81. (function(){
  82.         var doc = getCurrentDocument();//获取查询头doc对象
  83.         var PurchaseOrderNumber = doc.getItemValueAsString("PurchaseOrderNumber")//获取查询头对应字段的值
  84.         var sql="select domainid,id,formid,item_PurchaseOrderNumber from tlk_Number where 1=1";
  85.         if(PurchaseOrderNumber!="" && PurchaseOrderNumber != null){
  86.                 sql+=" and item_PurchaseOrderNumber like '%"+PurchaseOrderNumber+"%'";
  87.         }
  88.        
  89.         return sql;
  90. })();


  91. /**
  92. 校验函数库
  93. 身份证号合法性验证 支持15位和18位身份证号、支持地址编码、出生日期、校验位验证
  94. **/
  95. function IdentityCodeValid(code) {
  96.     var code = getItemValue(code);
  97.     var city = {
  98.         11: "北京",
  99.         12: "天津",
  100.         13: "河北",
  101.         14: "山西",
  102.         15: "内蒙古",
  103.         21: "辽宁",
  104.         22: "吉林",
  105.         23: "黑龙江",
  106.         31: "上海",
  107.         32: "江苏",
  108.         33: "浙江",
  109.         34: "安徽",
  110.         35: "福建",
  111.         36: "江西",
  112.         37: "山东",
  113.         41: "河南",
  114.         42: "湖北",
  115.         43: "湖南",
  116.         44: "广东",
  117.         45: "广西",
  118.         46: "海南",
  119.         50: "重庆",
  120.         51: "四川",
  121.         52: "贵州",
  122.         53: "云南",
  123.         54: "西藏",
  124.         61: "陕西",
  125.         62: "甘肃",
  126.         63: "青海",
  127.         64: "宁夏",
  128.         65: "新疆",
  129.         71: "台湾",
  130.         81: "香港",
  131.         82: "澳门",
  132.         91: "国外"
  133.     };
  134.     var tip = "";
  135.     var pass = true;
  136.     //验证身份证格式(6位地区编码,8位出生日期,3位顺序号,1位校验位)
  137.     if (!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(code)) {
  138.         tip = "身份证号格式错误";
  139.         return tip;
  140.         pass = false;
  141.     } else if (!city[code.substr(0, 2)]) {
  142.         tip = "地址编码错误";
  143.         pass = false;
  144.         return tip;
  145.     } else {
  146.         //18位身份证需要验证最后一位校验位
  147.         if (code.length == 18) {
  148.             code = code.split('');
  149.             //∑(ai×Wi)(mod 11)
  150.             //加权因子
  151.             var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
  152.             //校验位
  153.             var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2];
  154.             var sum = 0;
  155.             var ai = 0;
  156.             var wi = 0;
  157.             for (var i = 0; i < 17; i++) {
  158.                 ai = code[i];
  159.                 wi = factor[i];
  160.                 sum += ai * wi;
  161.             }
  162.             var last = parity[sum % 11];
  163.             if (parity[sum % 11] != code[17]) {
  164.                 tip = "校验位错误";
  165.                 pass = false;
  166.                 return tip;
  167.             }
  168.         }
  169.     }

  170. }

  171. /**

  172. 获取提交时填写的意见显示在表单中
  173. STARTNODEID 流程节点Id 可以通过查看流程源码获取

  174. **/
  175. (function(){
  176.     var sql = "";
  177.     var doc = getCurrentDocument();
  178.     var state = doc.getStateLabel();
  179.     sql = "SELECT DISTINCT '" + getDomainid() + "' AS DOMAINID,NAME AS ITEM_NAME,PROCESSTIME AS ITEM_PROCESSTIME,ATTITUDE AS ITEM_ATTITUDE,SIGNATURE AS ITEM_SIGNATURE FROM T_ACTORHIS T WHERE DOC_ID='" + getId() + "' AND EXISTS( SELECT 1 FROM T_RELATIONHIS WHERE STARTNODEID='1583766936149' AND ID=T.NODEHIS_ID) ORDER BY PROCESSTIME ASC ";
  180.     var count = countBySQL(sql);
  181.     if (count == 0) {
  182.         sql = "SELECT DISTINCT '" + getDomainid() + "' AS DOMAINID,NAME AS ITEM_NAME,PROCESSTIME AS ITEM_PROCESSTIME,ATTITUDE AS ITEM_ATTITUDE,SIGNATURE AS ITEM_SIGNATURE FROM t_flowhistory T WHERE DOC_ID='" + getId() + "' AND STARTNODEID='1583766936149' ORDER BY PROCESSTIME ASC ";
  183.     }
  184.     var str = "";
  185.     var datas = queryBySQL(sql);
  186.     if (datas != null && datas.size() > 0) {
  187.         for (var iter = datas.iterator(); iter.hasNext(); ) {
  188.             var data = iter.next();
  189.             var name = data.getItemValueAsString("NAME");
  190.             var processtime = data.getItemValueAsString("PROCESSTIME");
  191.             var attitude = data.getItemValueAsString("ATTITUDE");
  192.             var signature = data.getItemValueAsString("SIGNATURE");
  193.             if (!isNotNull(attitude)) {
  194.                 attitude = "已阅。"
  195.             }
  196.             str += "<div>" + name + "于" + processtime + "填写意见:" + attitude;
  197.             if (isNotNull(signature)) {
  198.                 var jsonObject = Packages.net.sf.json.JSONObject.fromObject(signature);
  199.                 var imgBase64Code = jsonObject.get("data");
  200.                 str += ",手签意见:<img src='data:image/jpg;base64," + imgBase64Code + "' style='height: 70px;'/>";
  201.             }
  202.             str += "</div>"
  203.         }
  204.     }
  205.     return str;
  206. })();

  207. /**
  208.         下拉框选项脚本示例
  209. */
  210. (function(){
  211. var opts=createOptions();
  212. opts.add("显示值","真实值");
  213. opts.add("显示值","真实值",true); //true 表示默认选中该选项
  214. return opts;
  215. })()

  216. /**
  217. //获取表单的用户字段
  218. **/
  219. (function(){
  220.         var doc = getCurrentDocument();
  221.         var aa = doc.getItemValueAsString("用户选择框"); //表单用户选择框字段
  222.         var docids = splitText(aa, ";");
  223.         var userlist = createObject("java.util.ArrayList");
  224.         for (var i = 0; i < docids.length; i++) {
  225.                 if(docids != null) {
  226.                    var userVO = getUserById(docids[i]);
  227.                         userlist.add(userVO);
  228.                 }
  229.         }
  230. return userlist;
  231. })()

  232. /**
  233.         获取登录用户的部门
  234. **/
  235. (function(){
  236.         var value = "";//部门名称
  237.         var user = getWebUser();
  238.         var depts = user.getDepartments();
  239.         for(var iter = depts.iterator(); iter.hasNext();) {
  240.                 var dept = iter.next();
  241.                 value += dept.getName();
  242.         }
  243. return value;
  244. })()
复制代码


更多示例

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 04:00

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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