更新时间:2024-06-25 GMT+08:00
分享

创建“查询设备列表”脚本

查询设备列表脚本是为了实现将查询的所有设备并以选项列表的形式返回,并通过页面调用将查询结果展示到页面上,此脚本将会在开发“生成工单”功能章节被调用。

操作步骤

  1. 进入创建“设备维修管理系统”应用中创建的应用。
  2. 在“Equipment”目录中,将鼠标放在“Script”上,单击界面上出现的“+”,在弹出菜单中选择“脚本”。
  3. 选中“创建一个新脚本”,在“名称”文本框中输入“equipmentSelectListQuery”,单击“添加”。
  4. 在代码编辑器中插入如下脚本代码。

    脚本中红色内容请替换为实际的对象名、字段名。

    import * as context from 'context';
    import * as decimal from 'decimal';
    import * as db from 'db';
    //使用数据库对象HW__Equipment__CST
    @useObject(['HW__Equipment__CST'])
    @action.object({ type: "param" })
    export class ActionInput {
        @action.param({ type: 'String' })
        id: string;
    }
    @action.object({ type: "param" })
    export class ActionOutput {
        @action.param({ type: 'Any', label: 'object', isCollection: true })
        equipList: object[];
        @action.param({ type: 'Any', label: 'object' })
        equipment: object;
    }
    @action.object({ type: "method" })
    export class EquipmentSelectListQuery {
        @action.method({ input: 'ActionInput', output: 'ActionOutput' })
        public equipmentSelectListQuery(input: ActionInput): ActionOutput {
            let out = new ActionOutput();
            let error = new Error;
            try {
                let objAct = db.object('HW__Equipment__CST');
                if (input.id) {
                    out.equipment = objAct.query(input.id);
                    return out;
                }
                let option = {
                    "options": {
                        "orderby": [
                            {
                                "field": "lastModifiedDate",
                                "order": "desc"
                            }
                        ],
                        "skip": 0,
                        "limit": 1000
                    }
                };
                let equipList = objAct.queryByCondition(null, option);
                let selectValue = equipList.map(function (v, i, a) {
                    return {
                        'value': v['id'],
                        'display': v['name']
                    }
                });
                out.equipList = selectValue;
            } catch (error) {
                console.error(error.name, error.message);
                context.setError(error.name, error.message);
            }
            return out;
        }
    }

  5. 单击脚本编辑器上方的,保存脚本。

验证

  1. 单击脚本编辑器上方的,执行脚本。
  2. 在界面底部单击测试窗口右上角执行图标,进行测试。

    如果不设置输入参数,会出现类似如下样例的测试结果(设备名称和设备id)。

    {
        "equipList": [
            {
                "display": "百草园B栋2单元2号",
                "value": "cQue000000e1qnhgtCng"
            }
        ]
    }

    如果设置如下输入参数。

    {
      "id":"cQue000000e1qnhgtCng"
    }

    则脚本返回设备的详细信息,样例如下。

  3. 测试成功,单击编辑器上方的,发布脚本。

相关文档