我们已在全局作用域中添加了 jQuery 和 $CS ,允许用户使用 jQuery(v 1.8.3)和 $CS 库编写代码。
要求 | 函数 | 示例 | 备注 |
获取字段值 | $CS.getValue(field) |
| 要保留现有已选中的资源,请将它们存储在数组中,并向其中添加资源。然后,使用这个更新后的数组来设置资源字段。 |
获取请求者字段值 | $CS.getValue(field.attribute) |
|
|
设置字段值 | $CS.setValue(field,value) |
|
|
获取文本 | $CS.getText(field) | var status=$CS.getText("STATUS"); var impactdetail=$CS.getText("IMPACTDETAILS"); |
|
设置文本 | $CS.setText(field,text) | $CS.setText("STATUS","Open"); |
|
添加选项 | $CS.addOptions(field,options) | $CS.addOptions("STATUS",["Open","Closed"]); | 请确保它们是选择类型字段,并且参数为数组。 |
移除选项 | $CS.removeOptions(field,options) | $CS.removeOptions("STATUS",["Open","Closed"]); | 与上面相同。 |
移除所有选项 | CS.removeAllOptions(fields) | $CS.removeAllOptions(["STATUS"]); // 如果移除了状态字段的所有选项,则无法创建新请求。因为每个请求都应具有一个状态。 $CS.removeAllOptions(["STATUS","PRIORITY"]); | 与上面相同。 |
启用字段 | $CS.enableField(fields) | $CS.enableField(["LEVEL","PRIORITY","URGENCY"]); |
|
禁用字段 | $CS.disableField(fields) | $CS.disableField(["LEVEL","PRIORITY","URGENCY"]); |
|
隐藏字段 | $CS.hideField(fields) | $CS.hideField(["LEVEL","PRIORITY","URGENCY"]); |
|
显示字段 | $CS.showField(fields) | $CS.showField(["LEVEL","PRIORITY","URGENCY"]) |
|
必填字段 | $CS.mandateField(fields) | $CS.mandateField(["LEVEL","PRIORITY","URGENCY"]); |
|
将字段设为可选 | $CS.nonMandateField(fields) | $CS.nonMandateField(["LEVEL","PRIORITY","URGENCY"]); |
|
阻止表单提交 | $CS.stopFormSubmission() | var status=$CS.getText("STATUS"); if(status==="Closed"){ $CS.stopFormSubmission(); } |
|
查找请求人的登录状态 | $CS.isRequester() |
|
|
检查技术人员登录 | $CS.isTechnician() |
|
|
查找用户角色 | $CS.hasRole(role) | $CS.hasRole("SDAdmin"); |
|
查找已登录用户 ID | $CS.getLoggedInUserName() | var userName= $CS.getLoggedInUserName(); |
|
设置字段依赖对象 | $CS.setFieldDependency(dependencyObject) | var dependencyObj= { 'FIELDS': [ 'Country', 'City', 'Support Rep' ], 'VALUES': { 'India': { 'Mumbai': [ 'Ali Hassan', 'Neha Agarwal' ], 'Chennai': [ 'Guru Prasath', 'Ramesh Kumar' ] }, 'America': { 'California': [ 'Donald Miller', 'Lisa Turner' ], 'Chicago': [ 'Margaret Taylor', 'Ronald Lewis' ] }, 'Russia': {} } }; $CS.setFieldDependency(dependencyObj); | 在这里,同一个函数既适用于两个字段依赖,也适用于三个字段依赖。此方法仅用于在附加字段之间创建依赖关系。依赖对象的格式应如下所示:应在 FIELDS 数组中按从右到左的顺序提供依赖字段,即 FIELDS 数组中第二个位置的字段应依赖于第一个位置的字段。此外,VALUES 中最右侧字段的选项应采用数组格式,而所有其他字段的选项应采用 JSON 对象格式。请为字段标签和选项标签提供正确的大小写形式。否则,依赖关系将无法正常工作。请参考上面的示例了解依赖对象格式。 |
设置任务 | $CS.setTasks(tasksArray) | $CS.setTasks(["templateTask1","templateTask2","templateTask3"]); |
|
取消设置任务 | $CS.unSetTasks(tasksArray) | $CS.unSetTasks(["templateTask1","templateTask2","templateTask3"]); |
|
添加描述 | $CS.setDescription(description) | $CS.setDescription("应用程序在用户环境中频繁崩溃/挂起,导致系统不稳定。"); | |
获取描述 | $CS.getDescription() | var descriptionContent=$CS.getDescription(); |
|
禁用选项 | $CS.disableOptions(fieldId,options) | $CS.disableOptions("STATUS",["Open","Closed"]); |
|
启用选项 | $CS.enableOptions(fieldId,options) | $CS.enableOptions("STATUS",["Open","Closed"]); |
|
检查字段可见性 | $CS.isVisible(field) | var isPriorityFieldVisiable=$CS.isVisible("PRIORITY"); |
|
检查资源编辑状态 | $CS.isEnabled(field) | $CS.isEnabled("PRIORITY"); |
|
检查必填状态 | $CS.isMandated(field). | $CS.isMandated("PRIORITY"); |
|
| $CS.getLoggedInUserEmailId() | var userEmail= $CS.getLoggedInUserEmailId(); |
|
查找已登录用户的域名 | $CS.getLoggedInUserDomainName() | var userDomainName= $CS.getLoggedInUserDomainName(); |
|
获取Server时间 | $CS.getServerTime() | var ServerTime=$CS.getServerTime(); |
|
模块/部分 | 触发事件 | 使用场景 | 脚本 |
字段和表单规则中的自定义事件 | |||
资产详情 |
| 在资产详情页面中隐藏供应商字段。 | $CS.findElement("asset_detailview").on("page:load",()=>{ //资产页面加载后应运行的代码 $CS.hideElement("vendor"); }) tab_ |
更改角色 | 当“更改角色”页面加载时触发。 |
| $CS.executeEvent("change_roles_container","page:load",()=>{ $CS.hideElement("change_manager"); }) ; |
更改备注 | 当“更改备注”部分分阶段加载时触发。 | 在备注页面中隐藏删除按钮。 | $CS.executeEvent("change_notes_container").on("page:load",()=>{ //更改备注渲染后应运行的代码 }); |
更改工作日志 | 在工作日志列表视图页面加载后触发。 | 在工作日志页面中隐藏删除按钮。 | $CS.executeEvent("worklog_listview","page:load",()=>{//代码 })
|
任务列表视图 | 在任务列表视图页面加载后触发。 | 隐藏任务列表视图页面中的“新建”按钮。 | $CS.findElement("task_listview").on("page:load",()=>{//code})
|
标签切换自定义事件 | |||
标签切换事件 | 当任一阶段标签发生切换时触发。 |
| console.log("stage changed " + data); let active_tab = data; $CS.findElement("stages-tabs-panel").off("tab_change").on("tab_change", function (e, d) { active_tab = window.location.hash && window.location.hash.split("/")[0].substring(1); e.stopPropagation(); $CS.findElement(active_tab + "-tabs-panel").on("tab_change", function (e, d) { console.log("sub tab changed " + d); }) console.log(`stage tab changed ${d}`); }) }) |
隐藏变更中的任意子标签。 | //变更模块 $CS.executeEvent("change_stage", "tab_change", function (e, data) { $CS.hideElement("approvals-tab") }) | ||
隐藏 Releases 中的任意子选项卡。 | //release $CS.executeEvent("release_stage", "tab_change", function (e, data) { $CS.hideElement("approvals-tab") }) | ||
listen:click 事件 | |||
服务目录 | 当点击任意服务类别时触发。 | listen:click 事件 | $CS.findElement("service_category","starts_with").on("listen:click",function(event){console.log("clicked");}) |
请求 | 当在请求详情页面点击“全部回复”按钮时触发。 |
| $CS.findElement("reply_btn").on("listen:click",()=>{//code}); |
当在请求详情页面点击“推荐”按钮时触发。 |
| $CS.findElement("recommend_btn").on("listen:click",()=>{//code}); | |
当在请求详情页面点击“回复给”按钮时触发。 |
| $CS.findElement("reply_to_btn").on("listen:click",()=>{//code}); | |
在“请求详细信息”页面中单击“转发”按钮时触发。 |
| $CS.findElement("forward_btn").on("listen:click",()=>{}); | |
在“请求详细信息”页面中单击“重新发送”按钮时触发。 |
| $CS.findElement("resend_btn").on("listen:click",()=>{});//No I18N | |
Outlook 页面事件 | |||
Outlook 页面 | 仅在 Outlook 页面上触发。此事件中会传递表单部分元数据,其中包含 Outlook 数据。 |
| $CS.findElement("outlook_page").off("outlook_request_form").on("outlook_request_form", function(evnt,data,meta){ console.log(data);$CS.setText("SUBJECT",$CS.getText("SUBJECT")+" "+data.user_email); }); |
字段和表单规则函数 | |||
函数 | 备注 | 参数 | 脚本 |
readAndPopulateData | 读取 CSV 文件,并将 CSV 中的值作为选项填充到单行字段中。readAndPopulateData(path, map, options) | path 参数是 CSV 文件路径。CSV 文件必须放置在 custom 文件夹中。map 参数包含 CSV 与字段的映射关系。第一个键被视为主字段,并且应当唯一。options 参数为字段填充时的依赖顺序。此对象中应提供 primarykey 字段和表单规则键。若 Map 中配置的任一字段发生更改,将触发 onchange 函数。autopopulate 参数用于主键更改时;如果 autopopulate 设置为 True,则会根据 Map 提供相应的选项。 | $CS.readAndPopulateData("Catalog.csv",{ "WorkOrder_Fields_UDF_CHAR3":"Incident Type", "CATEGORY": "Service Category", "SUBCATEGORY": "Sub Category", "ITEM": "Sub Sub Category", },{ dependency:["WorkOrder_Fields_UDF_CHAR3","CATEGORY","SUBCATEGORY"], default_value:"Unable to launch MS Excel", primarykey:"WorkOrder_Fields_UDF_CHAR3", onChange:(a,b)=>{ //代码 } }) |
referField | 将 API 中的选项填充到单行字段。函数:(fieldId, entityName, options) | fieldId - 应提供 FAFR 键 entityName - 应提供实体名称。例如:("udf_pick_119", "requests", 等) options 对象类型为 select2 - 应提供带有 url 的选项。 | $CS.referField("WorkOrder_Fields_UDF_CHAR1","udf_pick_119",{url:"api/v3/requests/udf_pick_119"}) |