config.data.ts 4.55 KB
import { BasicColumn, FormSchema } from '/@/components/Table';
import moment from 'moment';
import { h } from 'vue';

// 表格配置
export const columns: BasicColumn[] = [
  {
    title: '脚本名称',
    dataIndex: 'name',
    width: 80,
  },
  {
    title: '脚本状态',
    dataIndex: 'status',
    width: 120,
    slots: { customRender: 'status' },
  },
  {
    title: '脚本内容',
    dataIndex: 'convertJs',
    width: 120,
    slots: { customRender: 'convertJs' },
  },
  {
    title: '备注',
    dataIndex: 'description',
    width: 120,
  },
  {
    title: '创建时间',
    dataIndex: 'createTime',
    width: 180,
  },
];

// 查询配置
export const searchFormSchema: FormSchema[] = [
  {
    field: 'name',
    label: '脚本名称',
    component: 'Input',
    colProps: { span: 6 },
    componentProps: {
      maxLength: 36,
      placeholder: '请输入配置名称',
    },
  },
  {
    field: 'sendTime',
    label: '创建时间',
    component: 'RangePicker',
    componentProps: {
      showTime: {
        defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')],
      },
    },
    colProps: { span: 6 },
  },
];

export const defaultAuthTitle = h('div', { style: 'background:#404040' }, [
  h('h3', { style: 'color:white' }, '设备鉴权示例'),
  h('h3', { style: 'color:white' }, '输入参数:为16进制字符串'),
  h('h3', { style: 'color:white' }, '输出参数:{"password":"","success":""}'),
  h('h3', { style: 'color:white' }, 'password为设备鉴权信息,success为鉴权成功后响应给设备的内容'),
]);

export const defaultUpTitle = h('div', { style: 'background:#404040' }, [
  h('h3', { style: 'color:white' }, '上行数据解析示例'),
  h('h3', { style: 'color:white' }, '输入参数:为字符串'),
  h(
    'h3',
    { style: 'color:white' },
    `输出参数:{"datas":{"source":""},"telemetry":true,"ackMsg":"","deviceName":"","ts":1681701034289}`
  ),
  h(
    'h3',
    { style: 'color:white' },
    `datas:json对象,属性名为遥测指标或子设备名称
  telemetry:  datas内容是否为遥测数据
  ackMsg:  响应给设备的确认消息
  deviceName:  设备名称
  ts:  数据采集时间`
  ),
]);

// TRANSPORT_TCP_DOWN: 'out.datas = "";out.deviceName = "sensor";',
export const defaultScriptTypeContent = {
  TRANSPORT_TCP_UP: `var teleData = {};
/*
物模型数据(可选):原始数据
*/
teleData.source= params;
/*
直连/网关子设备设备:temperature是产品物模型中所定义属性的标识符
*/
tempVal = params;
teleData.temperature= tempVal;
/*
网关设备:变量slaveDevice是网关子设备的“设备标识”
*/
slaveDevice = params.substr(0,2);
teleData[slaveDevice]= params;
out.datas = teleData;
/*
必填:true表示设备上报的遥测数据,false表示命令下发的响应数据
*/
out.telemetry = true;
/*
必填:设备或命令下发的唯一标识,设备的唯一标识必须与设备信息的“设备名称”一致
*/
out.identifier = "01";
/*
可选:服务端收到设备数据后,响应的消息内容
*/
out.ackMsg = params;
/*
可选:默认使用服务器时间,可以使用数据内的时间
*/
out.ts = Date.now();`,
  TRANSPORT_TCP_AUTH: `/*
    必填:设备的访问令牌
  */
  out.password = params;
  /*
    选填:设备鉴权成功后响应给设备的信息
   */
  out.success = params;
  `,
};

export const defaultTestUpExample = `var teleData = {};
/*
物模型数据(可选):原始数据
*/
teleData.source= params;
/*
直连/网关子设备设备:temperature是产品物模型中所定义属性的标识符
*/
tempVal = params;
teleData.temperature= tempVal;
/*
网关设备:变量slaveDevice是网关子设备的“设备标识”
*/
slaveDevice = params.substr(0,2);
teleData[slaveDevice]= params;
out.datas = teleData;
/*
必填:true表示设备上报的遥测数据,false表示命令下发的响应数据
*/
out.telemetry = true;
/*
必填:设备或命令下发的唯一标识,设备的唯一标识必须与设备信息的“设备名称”一致
*/
out.identifier = "01";
/*
可选:服务端收到设备数据后,响应的消息内容
*/
out.ackMsg = params;
/*
可选:默认使用服务器时间,可以使用数据内的时间
*/
out.ts = Date.now();`;

export const defaultTestAuthExample = `/*
  必填:设备的访问令牌
 */
out.password = params;
/*
  选填:设备鉴权成功后响应给设备的信息
 */
out.success = params;
`;