...
|
...
|
@@ -4880,17 +4880,17 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
4880
|
4880
|
|
4881
|
4881
|
// 获取url的请求参数函数
|
4882
|
4882
|
function getRequest() {
|
4883
|
|
- var url = location.search; //获取url中"?"符后的字串
|
4884
|
|
- var theRequest = new Object();
|
4885
|
|
- if (url.indexOf("?") != -1) {
|
4886
|
|
- var str = url.substring(1);
|
4887
|
|
- strs = str.split("&");
|
4888
|
|
- for(var i = 0; i < strs.length; i ++) {
|
4889
|
|
- theRequest[strs[i].split("=")[0]]=decodeURI(strs[i].split("=")[1]);
|
4890
|
|
- }
|
|
4883
|
+ var url = location.search; //获取url中"?"符后的字串
|
|
4884
|
+ var theRequest = new Object();
|
|
4885
|
+ if (url.indexOf("?") != -1) {
|
|
4886
|
+ var str = url.substring(1);
|
|
4887
|
+ strs = str.split("&");
|
|
4888
|
+ for (var i = 0; i < strs.length; i++) {
|
|
4889
|
+ theRequest[strs[i].split("=")[0]] = decodeURI(strs[i].split("=")[1]);
|
|
4890
|
+ }
|
4891
|
4891
|
}
|
4892
|
|
- return theRequest;
|
4893
|
|
- }
|
|
4892
|
+ return theRequest;
|
|
4893
|
+ }
|
4894
|
4894
|
|
4895
|
4895
|
var dataSourceTitle = this.createTitle("数据源");
|
4896
|
4896
|
dataSourceTitle.style.padding = "6px 0px 6px 6px";
|
...
|
...
|
@@ -4916,26 +4916,25 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
4916
|
4916
|
treeUl.setAttribute("id", "organizationTree");
|
4917
|
4917
|
organizationTree.appendChild(treeUl);
|
4918
|
4918
|
container.appendChild(organizationTree);
|
4919
|
|
-
|
|
4919
|
+ let treeList = [];
|
4920
|
4920
|
// 获取组织数据
|
4921
|
4921
|
(function getTreeList() {
|
4922
|
4922
|
//调用API,获取保存的内容
|
4923
|
|
- DefHttp()
|
4924
|
|
- .get("/yt/organization/me/list")
|
4925
|
|
- .then(function (response) {
|
4926
|
|
- //实例化树形菜单
|
4927
|
|
- $("#organizationTree").tree({
|
4928
|
|
- data: response.data,
|
4929
|
|
- lines: true,
|
4930
|
|
- formatter(node) {
|
4931
|
|
- return node.name;
|
4932
|
|
- },
|
4933
|
|
- onClick(node) {
|
4934
|
|
- // 获取组织下的设备
|
4935
|
|
- getDevicesByOrganizationId(node.id);
|
4936
|
|
- },
|
4937
|
|
- });
|
|
4923
|
+ defHttp.get("/yt/organization/me/list").then(function (res) {
|
|
4924
|
+ //实例化树形菜单
|
|
4925
|
+ treeList = res;
|
|
4926
|
+ $("#organizationTree").tree({
|
|
4927
|
+ data: res,
|
|
4928
|
+ lines: true,
|
|
4929
|
+ formatter(node) {
|
|
4930
|
+ return node.name;
|
|
4931
|
+ },
|
|
4932
|
+ onClick(node) {
|
|
4933
|
+ // 获取组织下的设备
|
|
4934
|
+ getDevicesByOrganizationId(node.id);
|
|
4935
|
+ },
|
4938
|
4936
|
});
|
|
4937
|
+ });
|
4939
|
4938
|
})();
|
4940
|
4939
|
|
4941
|
4940
|
// 选择设备
|
...
|
...
|
@@ -4949,21 +4948,33 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
4949
|
4948
|
deviceSelect.setAttribute("id", "device");
|
4950
|
4949
|
deviceStylePanel.appendChild(deviceSelect);
|
4951
|
4950
|
|
|
4951
|
+ // 获取组织下的所有直连设备和网关子设备
|
|
4952
|
+ async function getDevicesByOrganizationId_DIRECT_CONNECTIONAndSENSOR(
|
|
4953
|
+ organizationId
|
|
4954
|
+ ) {
|
|
4955
|
+ const res1 = await defHttp.get(
|
|
4956
|
+ `/yt/device/list/DIRECT_CONNECTION?organizationId=${organizationId}`
|
|
4957
|
+ );
|
|
4958
|
+ const res2 = await defHttp.get(
|
|
4959
|
+ `/yt/device/list/SENSOR?organizationId=${organizationId}`
|
|
4960
|
+ );
|
|
4961
|
+ return [...res1, ...res2];
|
|
4962
|
+ }
|
|
4963
|
+
|
4952
|
4964
|
// 根据组织id获取组织下的设备列表--在点击组织时调用
|
4953
|
|
- function getDevicesByOrganizationId(organizationId) {
|
|
4965
|
+ async function getDevicesByOrganizationId(organizationId) {
|
4954
|
4966
|
if (organizationId) {
|
4955
|
|
- DefHttp()
|
4956
|
|
- .get(`/yt/device?page=1&pageSize=20&organizationId=${organizationId}`)
|
4957
|
|
- .then(function (response) {
|
4958
|
|
- $("#device").combobox({
|
4959
|
|
- data: response.data.items,
|
4960
|
|
- valueField: "tbDeviceId",
|
4961
|
|
- textField: "name",
|
4962
|
|
- onChange(newValue) {
|
4963
|
|
- getDeviceAttribute(newValue);
|
4964
|
|
- },
|
4965
|
|
- });
|
4966
|
|
- });
|
|
4967
|
+ const items = await getDevicesByOrganizationId_DIRECT_CONNECTIONAndSENSOR(
|
|
4968
|
+ organizationId
|
|
4969
|
+ );
|
|
4970
|
+ $("#device").combobox({
|
|
4971
|
+ data: items,
|
|
4972
|
+ valueField: "tbDeviceId",
|
|
4973
|
+ textField: "name",
|
|
4974
|
+ onChange(newValue) {
|
|
4975
|
+ getDeviceAttribute(newValue);
|
|
4976
|
+ },
|
|
4977
|
+ });
|
4967
|
4978
|
}
|
4968
|
4979
|
}
|
4969
|
4980
|
|
...
|
...
|
@@ -4981,10 +4992,10 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
4981
|
4992
|
// 获取设备下的属性-key--在改变设备时调用
|
4982
|
4993
|
function getDeviceAttribute(tbDeviceId) {
|
4983
|
4994
|
if (tbDeviceId) {
|
4984
|
|
- DefHttp()
|
|
4995
|
+ defHttp
|
4985
|
4996
|
.get(`/plugins/telemetry/DEVICE/${tbDeviceId}/keys/timeseries`)
|
4986
|
4997
|
.then(function (response) {
|
4987
|
|
- const mapRes = response.data.map((item) => {
|
|
4998
|
+ const mapRes = response.map((item) => {
|
4988
|
4999
|
return {
|
4989
|
5000
|
value: item,
|
4990
|
5001
|
text: item,
|
...
|
...
|
@@ -5080,7 +5091,6 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
5080
|
5091
|
|
5081
|
5092
|
genarateCheckbox(dynamicEffect);
|
5082
|
5093
|
|
5083
|
|
-
|
5084
|
5094
|
// 解构全局属性layui要用到的模块
|
5085
|
5095
|
const { layer, form } = layui;
|
5086
|
5096
|
|
...
|
...
|
@@ -5110,260 +5120,178 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
5110
|
5120
|
let currentPageId = ui.currentPage.node;
|
5111
|
5121
|
// 图形的id
|
5112
|
5122
|
let graphId = ss.vertices[0].id;
|
5113
|
|
- console.log('需要的值',configurationId,currentPageId.id,graphId,)
|
|
5123
|
+ // 事件类型
|
5114
|
5124
|
const eventType = {
|
5115
|
|
- 'DOWN':'按下',
|
5116
|
|
- 'UP':'抬起',
|
5117
|
|
- 'SINGLE':'单击',
|
5118
|
|
- 'DOUBLE':'双击',
|
5119
|
|
- }
|
|
5125
|
+ DOWN: "按下",
|
|
5126
|
+ UP: "抬起",
|
|
5127
|
+ SINGLE: "单击",
|
|
5128
|
+ DOUBLE: "双击",
|
|
5129
|
+ };
|
|
5130
|
+ // 动画类型
|
|
5131
|
+ const animType = {
|
|
5132
|
+ FLASH: "闪烁",
|
|
5133
|
+ DISPLAY: "显示/隐藏",
|
|
5134
|
+ ROTATE: "旋转",
|
|
5135
|
+ };
|
5120
|
5136
|
|
5121
|
5137
|
//按下和抬起的事件处理函数
|
5122
|
|
- function handlePressANDupliftEvent(event) {
|
|
5138
|
+ async function handlePressANDupliftEvent(event) {
|
|
5139
|
+ // 获取当前节点(图形)的信息
|
|
5140
|
+ const res = await defHttp.get(`/yt/configuration/node/NODE/${graphId}`);
|
|
5141
|
+ // 查找节点内容
|
|
5142
|
+ const findContent = res.event?.find((item) => {
|
|
5143
|
+ if (item.content.title === event.data.type) return item;
|
|
5144
|
+ });
|
|
5145
|
+ console.log(findContent);
|
|
5146
|
+ // 当前租户的根组织id
|
|
5147
|
+ const rootOrgId = treeList[0].id;
|
|
5148
|
+ console.log(rootOrgId);
|
|
5149
|
+ // 获取根组织下的所有设备
|
|
5150
|
+ async function getOrgAllDevices() {
|
|
5151
|
+ return Promise.all([
|
|
5152
|
+ defHttp.get(
|
|
5153
|
+ `/yt/device/list/DIRECT_CONNECTION?organizationId=${rootOrgId}`
|
|
5154
|
+ ),
|
|
5155
|
+ defHttp.get(`/yt/device/list/GATEWAY?organizationId=${rootOrgId}`),
|
|
5156
|
+ defHttp.get(`/yt/device/list/SENSOR?organizationId=${rootOrgId}`),
|
|
5157
|
+ ]);
|
|
5158
|
+ }
|
|
5159
|
+ const deviceList = await getOrgAllDevices();
|
|
5160
|
+ console.log(deviceList.flat(1))
|
5123
|
5161
|
// 打开弹窗
|
5124
|
5162
|
layer.open({
|
5125
|
5163
|
title: "创建交互",
|
5126
|
5164
|
content: `
|
5127
|
|
- <form class="layui-form">
|
5128
|
|
- <div style="width:400px">
|
5129
|
|
- <div class="layui-form-item">
|
5130
|
|
- <label class="layui-form-label">事件</label>
|
5131
|
|
- <div class="layui-input-block">
|
5132
|
|
- <input type="text" name="title" disabled class="layui-input" value="${event.data.type}">
|
5133
|
|
- </div>
|
5134
|
|
- </div>
|
5135
|
|
- <div class="layui-form-item">
|
5136
|
|
- <label class="layui-form-label">动作</label>
|
5137
|
|
- <div class="layui-input-block">
|
5138
|
|
- <select name="city" lay-verify="required">
|
5139
|
|
- <option value="0" selected>给变量赋值</option>
|
5140
|
|
- </select>
|
5141
|
|
- </div>
|
5142
|
|
- </div>
|
5143
|
|
- <div class="layui-form-item">
|
5144
|
|
- <label class="layui-form-label">类型</label>
|
5145
|
|
- <div class="layui-input-block">
|
5146
|
|
- <input type="radio" name="type" value="1" title="联网设备" checked>
|
5147
|
|
- <input type="radio" name="type" value="2" title="产品/场景" disabled >
|
5148
|
|
- </div>
|
5149
|
|
- </div>
|
5150
|
|
- </div>
|
5151
|
|
- <div style="height:200px;overflow-y:scroll" id="tableContent">
|
5152
|
|
-
|
5153
|
|
- <div style="display:flex;justify-content:center;">
|
5154
|
|
- <button type="button" class="layui-btn layui-btn-primary layui-border-blue" id="addData">添加一条</button>
|
5155
|
|
- </div>
|
5156
|
|
- </div>
|
5157
|
|
- </form>
|
5158
|
|
- `,
|
5159
|
|
- area: ["800px", "500px"],
|
|
5165
|
+ <form class="layui-form" lay-filter="formModal">
|
|
5166
|
+ <div style="width:400px">
|
|
5167
|
+ <div class="layui-form-item">
|
|
5168
|
+ <label class="layui-form-label">事件</label>
|
|
5169
|
+ <div class="layui-input-block">
|
|
5170
|
+ <input type="text" name="event" class="layui-input" value="${event.data.type}" disabled>
|
|
5171
|
+ </div>
|
|
5172
|
+ </div>
|
|
5173
|
+ <div class="layui-form-item">
|
|
5174
|
+ <label class="layui-form-label">动作</label>
|
|
5175
|
+ <div class="layui-input-block">
|
|
5176
|
+ <select name="action" lay-verify="required">
|
|
5177
|
+ <option value="0" selected>给变量赋值</option>
|
|
5178
|
+ </select>
|
|
5179
|
+ </div>
|
|
5180
|
+ </div>
|
|
5181
|
+ <div class="layui-form-item">
|
|
5182
|
+ <label class="layui-form-label">类型</label>
|
|
5183
|
+ <div class="layui-input-block">
|
|
5184
|
+ <input type="radio" name="type" value="1" title="联网设备" checked>
|
|
5185
|
+ <input type="radio" name="type" value="2" title="产品/场景" disabled>
|
|
5186
|
+ </div>
|
|
5187
|
+ </div>
|
|
5188
|
+ </div>
|
|
5189
|
+ <div style="height:255px;overflow-y:scroll" id="tableContent">
|
|
5190
|
+ <div style="display:flex;justify-content:center;">
|
|
5191
|
+ <button type="button" class="layui-btn layui-btn-primary layui-border-blue" id="addData">添加一条</button>
|
|
5192
|
+ </div>
|
|
5193
|
+ </div>
|
|
5194
|
+ </form>
|
|
5195
|
+ `,
|
|
5196
|
+ area: ["800px", "600px"],
|
5160
|
5197
|
btn: ["保存", "取消"],
|
5161
|
|
- yes(index) {
|
|
5198
|
+ shade: ["0.7", "#fafafa"],
|
|
5199
|
+ async yes(index) {
|
|
5200
|
+ // 遍历表格数据
|
|
5201
|
+ const content = [];
|
|
5202
|
+ for (let item of $("#tableBody tr")) {
|
|
5203
|
+ content.push({
|
|
5204
|
+ min: item.children[0].children[0].value,
|
|
5205
|
+ max: item.children[1].children[0].value,
|
|
5206
|
+ });
|
|
5207
|
+ }
|
|
5208
|
+ // 获取其他数据
|
|
5209
|
+ const formModal = {
|
|
5210
|
+ ...form.val("formModal"),
|
|
5211
|
+ configurationId,
|
|
5212
|
+ contentId: currentPageId.id,
|
|
5213
|
+ id: graphId,
|
|
5214
|
+ condition: {
|
|
5215
|
+ content,
|
|
5216
|
+ },
|
|
5217
|
+ };
|
|
5218
|
+ await defHttp.post("/yt/configuration/node/act", formModal);
|
5162
|
5219
|
layer.close(index);
|
5163
|
5220
|
},
|
5164
|
5221
|
btn2(index) {
|
5165
|
5222
|
layer.close(index);
|
5166
|
5223
|
},
|
5167
|
|
- shade: ["0.7", "#fafafa"],
|
5168
|
5224
|
});
|
5169
|
5225
|
|
5170
|
5226
|
// 在tableContent最前面添加元素
|
5171
|
5227
|
$("#tableContent").prepend(`
|
5172
|
|
- <table class="layui-table">
|
5173
|
|
- <colgroup>
|
5174
|
|
- <col width="210">
|
5175
|
|
- <col width="210">
|
5176
|
|
- <col width="210">
|
5177
|
|
- <col width="60">
|
5178
|
|
- </colgroup>
|
5179
|
|
- <thead>
|
5180
|
|
- <tr>
|
5181
|
|
- <th style="text-align:center">选择设备</th>
|
5182
|
|
- <th style="text-align:center">变量</th>
|
5183
|
|
- <th style="text-align:center">下发值</th>
|
5184
|
|
- <th style="text-align:center">操作</th>
|
5185
|
|
- </tr>
|
5186
|
|
- </thead>
|
5187
|
|
- <tbody id="tableBody">
|
5188
|
|
- <tr>
|
5189
|
|
- <td>
|
5190
|
|
- <select name="city" lay-verify="required">
|
5191
|
|
- <option value="0">上海</option>
|
5192
|
|
- <option value="1">北京</option>
|
5193
|
|
- </select>
|
5194
|
|
- </td>
|
5195
|
|
- <td>
|
5196
|
|
- <select name="city" lay-verify="required">
|
5197
|
|
- <option value="3">深圳</option>
|
5198
|
|
- <option value="4">杭州</option>
|
5199
|
|
- </select>
|
5200
|
|
- </td>
|
5201
|
|
- <td>
|
5202
|
|
- <input type="text" name="title" class="layui-input">
|
5203
|
|
- </td>
|
5204
|
|
- <td>
|
5205
|
|
- <button type="button" class="layui-btn layui-btn-primary layui-border-red deleteData">删除</button>
|
5206
|
|
- </td>
|
5207
|
|
- </tr>
|
5208
|
|
- </tbody>
|
5209
|
|
- </table>
|
5210
|
|
- `);
|
5211
|
|
- form.render();
|
5212
|
|
- let typeRadio = "1";
|
5213
|
|
- // 监听的表单radio事件
|
5214
|
|
- form.on("radio", function (data) {
|
5215
|
|
- typeRadio = data.value;
|
5216
|
|
- if (data.value === "1") {
|
5217
|
|
- $("#tableContent").children().first().remove();
|
5218
|
|
- $("#tableContent").prepend(`
|
5219
|
|
- <table class="layui-table">
|
|
5228
|
+ <table class="layui-table">
|
5220
|
5229
|
<colgroup>
|
5221
|
|
- <col width="210">
|
5222
|
|
- <col width="210">
|
5223
|
|
- <col width="210">
|
|
5230
|
+ <col>
|
|
5231
|
+ <col>
|
|
5232
|
+ <col>
|
|
5233
|
+ <col width="240">
|
5224
|
5234
|
<col width="60">
|
5225
|
5235
|
</colgroup>
|
5226
|
5236
|
<thead>
|
5227
|
5237
|
<tr>
|
5228
|
5238
|
<th style="text-align:center">选择设备</th>
|
|
5239
|
+ <th style="text-align:center">选择子设备</th>
|
5229
|
5240
|
<th style="text-align:center">变量</th>
|
5230
|
5241
|
<th style="text-align:center">下发值</th>
|
5231
|
5242
|
<th style="text-align:center">操作</th>
|
5232
|
5243
|
</tr>
|
5233
|
5244
|
</thead>
|
5234
|
|
- <tbody id="tableBody">
|
5235
|
|
- <tr>
|
5236
|
|
- <td>
|
5237
|
|
- <select name="city" lay-verify="required">
|
5238
|
|
- <option value="0">上海</option>
|
5239
|
|
- <option value="1">北京</option>
|
5240
|
|
- </select>
|
5241
|
|
- </td>
|
5242
|
|
- <td>
|
5243
|
|
- <select name="city" lay-verify="required">
|
5244
|
|
- <option value="3">深圳</option>
|
5245
|
|
- <option value="4">杭州</option>
|
5246
|
|
- </select>
|
5247
|
|
- </td>
|
5248
|
|
- <td>
|
5249
|
|
- <input type="text" name="title" class="layui-input">
|
5250
|
|
- </td>
|
5251
|
|
- <td>
|
5252
|
|
- <button type="button" class="layui-btn layui-btn-primary layui-border-red deleteData">删除</button>
|
5253
|
|
- </td>
|
5254
|
|
- </tr>
|
5255
|
|
- </tbody>
|
5256
|
|
- </table>
|
5257
|
|
- `);
|
5258
|
|
- } else {
|
5259
|
|
- $("#tableContent").children().first().remove();
|
5260
|
|
- $("#tableContent").prepend(`
|
|
5245
|
+ <tbody id="tableBody"></tbody>
|
|
5246
|
+ </table>
|
|
5247
|
+ `);
|
|
5248
|
+
|
|
5249
|
+ // 监听的表单radio事件 (暂不实现)
|
|
5250
|
+ form.on("radio", function (data) {
|
|
5251
|
+ $("#tableContent").children().first().remove();
|
|
5252
|
+ $("#tableContent").prepend(`
|
5261
|
5253
|
<table class="layui-table">
|
5262
|
|
- <colgroup>
|
5263
|
|
- <col width="175">
|
5264
|
|
- <col width="175">
|
5265
|
|
- <col width="175">
|
5266
|
|
- <col width="175">
|
5267
|
|
- <col width="60">
|
5268
|
|
- </colgroup>
|
5269
|
|
- <thead>
|
5270
|
|
- <tr>
|
5271
|
|
- <th style="text-align:center">产品/场景</th>
|
5272
|
|
- <th style="text-align:center">数据源</th>
|
5273
|
|
- <th style="text-align:center">变量</th>
|
5274
|
|
- <th style="text-align:center">下发值</th>
|
5275
|
|
- <th style="text-align:center">操作</th>
|
5276
|
|
- </tr>
|
5277
|
|
- </thead>
|
5278
|
|
- <tbody id="tableBody">
|
|
5254
|
+ <colgroup>
|
|
5255
|
+ <col>
|
|
5256
|
+ <col>
|
|
5257
|
+ <col width="60">
|
|
5258
|
+ </colgroup>
|
|
5259
|
+ <thead>
|
|
5260
|
+ <tr>
|
|
5261
|
+ <th style="text-align:center">最小值(>=)</th>
|
|
5262
|
+ <th style="text-align:center">最大值(<=)</th>
|
|
5263
|
+ <th style="text-align:center">操作</th>
|
|
5264
|
+ </tr>
|
|
5265
|
+ </thead>
|
|
5266
|
+ <tbody id="tableBody"></tbody>
|
|
5267
|
+ </table>
|
|
5268
|
+ `);
|
|
5269
|
+ form.render();
|
|
5270
|
+ });
|
|
5271
|
+ // 添加一条
|
|
5272
|
+ $("#addData").click(() => {
|
|
5273
|
+ $("#tableBody").append(`
|
5279
|
5274
|
<tr>
|
5280
|
5275
|
<td>
|
5281
|
|
- <select name="city" lay-verify="required">
|
5282
|
|
- <option value="0">上海</option>
|
5283
|
|
- <option value="1">北京</option>
|
|
5276
|
+ <select name="device" lay-verify="required" id="deviceSelect">
|
5284
|
5277
|
</select>
|
5285
|
5278
|
</td>
|
5286
|
5279
|
<td>
|
5287
|
|
- <select name="city" lay-verify="required">
|
5288
|
|
- <option value="3">深圳</option>
|
5289
|
|
- <option value="4">杭州</option>
|
|
5280
|
+ <select name="childDevice" lay-verify="required" id="childSelect">
|
5290
|
5281
|
</select>
|
5291
|
5282
|
</td>
|
5292
|
5283
|
<td>
|
5293
|
|
- <select name="city" lay-verify="required">
|
5294
|
|
- <option value="0">上海</option>
|
5295
|
|
- <option value="1">北京</option>
|
|
5284
|
+ <select name="veriable" lay-verify="required" id="veriableSelect">
|
5296
|
5285
|
</select>
|
5297
|
5286
|
</td>
|
5298
|
5287
|
<td>
|
5299
|
|
- <input type="text" name="title" class="layui-input">
|
|
5288
|
+ <textarea placeholder="请输入命令" class="layui-textarea" name="value"></textarea>
|
5300
|
5289
|
</td>
|
5301
|
5290
|
<td>
|
5302
|
5291
|
<button type="button" class="layui-btn layui-btn-primary layui-border-red deleteData">删除</button>
|
5303
|
5292
|
</td>
|
5304
|
5293
|
</tr>
|
5305
|
|
- </tbody>
|
5306
|
|
- </table>
|
5307
|
|
- `);
|
5308
|
|
- }
|
5309
|
|
- form.render();
|
5310
|
|
- });
|
5311
|
|
- // 添加一条
|
5312
|
|
- $("#addData").click(() => {
|
5313
|
|
-
|
5314
|
|
- if (typeRadio === "1") {
|
5315
|
|
- $("#tableBody").append(`
|
5316
|
|
- <tr>
|
5317
|
|
- <td>
|
5318
|
|
- <select name="city" lay-verify="required">
|
5319
|
|
- <option value="0">上海</option>
|
5320
|
|
- <option value="1">北京</option>
|
5321
|
|
- </select>
|
5322
|
|
- </td>
|
5323
|
|
- <td>
|
5324
|
|
- <select name="city" lay-verify="required">
|
5325
|
|
- <option value="3">深圳</option>
|
5326
|
|
- <option value="4">杭州</option>
|
5327
|
|
- </select>
|
5328
|
|
- </td>
|
5329
|
|
- <td>
|
5330
|
|
- <input type="text" name="title" class="layui-input">
|
5331
|
|
- </td>
|
5332
|
|
- <td>
|
5333
|
|
- <button type="button" class="layui-btn layui-btn-primary layui-border-red deleteData">删除</button>
|
5334
|
|
- </td>
|
5335
|
|
- </tr>
|
5336
|
|
- `);
|
5337
|
|
- } else {
|
5338
|
|
- $("#tableBody").append(`
|
5339
|
|
- <tr>
|
5340
|
|
- <td>
|
5341
|
|
- <select name="city" lay-verify="required">
|
5342
|
|
- <option value="0">上海</option>
|
5343
|
|
- <option value="1">北京</option>
|
5344
|
|
- </select>
|
5345
|
|
- </td>
|
5346
|
|
- <td>
|
5347
|
|
- <select name="city" lay-verify="required">
|
5348
|
|
- <option value="3">深圳</option>
|
5349
|
|
- <option value="4">杭州</option>
|
5350
|
|
- </select>
|
5351
|
|
- </td>
|
5352
|
|
- <td>
|
5353
|
|
- <select name="city" lay-verify="required">
|
5354
|
|
- <option value="3">深圳</option>
|
5355
|
|
- <option value="4">杭州</option>
|
5356
|
|
- </select>
|
5357
|
|
- </td>
|
5358
|
|
- <td>
|
5359
|
|
- <input type="text" name="title" class="layui-input">
|
5360
|
|
- </td>
|
5361
|
|
- <td>
|
5362
|
|
- <button type="button" class="layui-btn layui-btn-primary layui-border-red deleteData">删除</button>
|
5363
|
|
- </td>
|
5364
|
|
- </tr>
|
5365
|
|
- `);
|
5366
|
|
- }
|
|
5294
|
+ `);
|
5367
|
5295
|
form.render();
|
5368
|
5296
|
// 为添加的每一行绑定删除当前行的事件
|
5369
|
5297
|
$(".deleteData").click(function () {
|
...
|
...
|
@@ -5375,10 +5303,89 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
5375
|
5303
|
$(".deleteData").click(function () {
|
5376
|
5304
|
this.parentNode.parentNode.remove();
|
5377
|
5305
|
});
|
|
5306
|
+ setTimeout(async () => {
|
|
5307
|
+ const len = findContent?.condition?.content?.length;
|
|
5308
|
+ if (!len) {
|
|
5309
|
+ $("#tableBody").prepend(`
|
|
5310
|
+ <tr>
|
|
5311
|
+ <td>
|
|
5312
|
+ <select name="device" lay-verify="required" id="deviceSelect">
|
|
5313
|
+ </select>
|
|
5314
|
+ </td>
|
|
5315
|
+ <td>
|
|
5316
|
+ <select name="childDevice" lay-verify="required" id="childSelect">
|
|
5317
|
+ </select>
|
|
5318
|
+ </td>
|
|
5319
|
+ <td>
|
|
5320
|
+ <select name="veriable" lay-verify="required" id="veriableSelect">
|
|
5321
|
+ </select>
|
|
5322
|
+ </td>
|
|
5323
|
+ <td>
|
|
5324
|
+ <textarea placeholder="请输入命令" class="layui-textarea" name="value"></textarea>
|
|
5325
|
+ </td>
|
|
5326
|
+ <td>
|
|
5327
|
+ <button type="button" class="layui-btn layui-btn-primary layui-border-red deleteData">删除</button>
|
|
5328
|
+ </td>
|
|
5329
|
+ </tr>
|
|
5330
|
+ `);
|
|
5331
|
+
|
|
5332
|
+ $(".deleteData").click(function () {
|
|
5333
|
+ this.parentNode.parentNode.remove();
|
|
5334
|
+ });
|
|
5335
|
+ form.render();
|
|
5336
|
+ return;
|
|
5337
|
+ }
|
|
5338
|
+
|
|
5339
|
+
|
|
5340
|
+ // form.val("formModal", { deviceId: findAnim?.deviceId });
|
|
5341
|
+ // if (!findAnim?.deviceId) return;
|
|
5342
|
+ // const res = await defHttp.get(
|
|
5343
|
+ // `/plugins/telemetry/DEVICE/${findAnim?.deviceId}/keys/timeseries`
|
|
5344
|
+ // );
|
|
5345
|
+ // // 先清空子元素
|
|
5346
|
+ // $("#attrSelect").empty();
|
|
5347
|
+ // $("#attrSelect").append(`<option value="">请选择属性</option>`);
|
|
5348
|
+ // for (let item of res) {
|
|
5349
|
+ // // 在追加
|
|
5350
|
+ // $("#attrSelect").append(`<option value="${item}">${item}</option>`);
|
|
5351
|
+ // }
|
|
5352
|
+ // form.val("formModal", { attr: findAnim?.attr });
|
|
5353
|
+ // for (let i = 0; i < len; i++) {
|
|
5354
|
+ // $("#tableBody").append(`
|
|
5355
|
+ // <tr>
|
|
5356
|
+ // <td>
|
|
5357
|
+ // <select name="device" lay-verify="required" id="deviceSelect">
|
|
5358
|
+ // </select>
|
|
5359
|
+ // </td>
|
|
5360
|
+ // <td>
|
|
5361
|
+ // <select name="veriable" lay-verify="required" id="veriableSelect">
|
|
5362
|
+ // </select>
|
|
5363
|
+ // </td>
|
|
5364
|
+ // <td>
|
|
5365
|
+ // <textarea placeholder="请输入命令" class="layui-textarea" name="value"></textarea>
|
|
5366
|
+ // </td>
|
|
5367
|
+ // <td>
|
|
5368
|
+ // <button type="button" class="layui-btn layui-btn-primary layui-border-red deleteData">删除</button>
|
|
5369
|
+ // </td>
|
|
5370
|
+ // </tr>
|
|
5371
|
+ // `);
|
|
5372
|
+ // }
|
|
5373
|
+
|
|
5374
|
+ // $(".deleteData").click(function () {
|
|
5375
|
+ // this.parentNode.parentNode.remove();
|
|
5376
|
+ // });
|
|
5377
|
+ // form.render();
|
|
5378
|
+ }, 500);
|
5378
|
5379
|
}
|
5379
|
5380
|
|
5380
|
5381
|
//单击和双击的事件处理函数
|
5381
|
|
- function handleClickANDdbClickEvent(event) {
|
|
5382
|
+ async function handleClickANDdbClickEvent(event) {
|
|
5383
|
+ // 查询节点内容
|
|
5384
|
+ const res = await defHttp.get(`/yt/configuration/node/NODE/${graphId}`);
|
|
5385
|
+
|
|
5386
|
+ const findContent = res.event?.find((item) => {
|
|
5387
|
+ if (item.content.title === event.data.type) return item;
|
|
5388
|
+ });
|
5382
|
5389
|
// 打开弹窗
|
5383
|
5390
|
layer.open({
|
5384
|
5391
|
title: "创建交互",
|
...
|
...
|
@@ -5395,41 +5402,47 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
5395
|
5402
|
<label class="layui-form-label">动作</label>
|
5396
|
5403
|
<div class="layui-input-block">
|
5397
|
5404
|
<select name="action" lay-verify="required" lay-filter="actionSelectChange">
|
5398
|
|
- <option value="0" selected>打开链接</option>
|
|
5405
|
+ <option value="0">打开链接</option>
|
5399
|
5406
|
<option value="1">打开页面</option>
|
5400
|
|
- <option value="2">给变量赋值</option>
|
|
5407
|
+ <option value="2" disabled>给变量赋值</option>
|
5401
|
5408
|
</select>
|
5402
|
5409
|
</div>
|
5403
|
5410
|
</div>
|
5404
|
|
- <div class="layui-form-item" id="dynamicInput">
|
|
5411
|
+ <div class="layui-form-item" id="dynamicInputLink">
|
5405
|
5412
|
<label class="layui-form-label">链接</label>
|
5406
|
5413
|
<div class="layui-input-block">
|
5407
|
5414
|
<input type="text" name="link" class="layui-input">
|
5408
|
5415
|
</div>
|
5409
|
5416
|
</div>
|
|
5417
|
+ <div class="layui-form-item" id="dynamicInputPage" style="display:none">
|
|
5418
|
+ <label class="layui-form-label">页面</label>
|
|
5419
|
+ <div class="layui-input-block">
|
|
5420
|
+ <select name="page" lay-verify="required" id="pageSelect">
|
|
5421
|
+ </select>
|
|
5422
|
+ </div>
|
|
5423
|
+ </div>
|
5410
|
5424
|
</div>
|
5411
|
5425
|
<div style="height:200px;overflow-y:scroll" id="tableContent">
|
5412
|
|
-
|
5413
|
5426
|
</div>
|
5414
|
5427
|
</form>
|
5415
|
5428
|
`,
|
5416
|
5429
|
area: ["800px", "500px"],
|
5417
|
5430
|
btn: ["保存", "取消"],
|
5418
|
|
- yes(index) {
|
|
5431
|
+ async yes(index) {
|
5419
|
5432
|
// 获取事件类型的key
|
5420
|
5433
|
let type = null;
|
5421
|
|
- for(let key in eventType){
|
5422
|
|
- if(eventType[key] === event.data.type){
|
|
5434
|
+ for (let key in eventType) {
|
|
5435
|
+ if (eventType[key] === event.data.type) {
|
5423
|
5436
|
type = key;
|
5424
|
5437
|
}
|
5425
|
5438
|
}
|
5426
|
|
- DefHttp().post('/yt/configuration/node/event',{
|
|
5439
|
+ await defHttp.post("/yt/configuration/node/event", {
|
5427
|
5440
|
configurationId,
|
5428
|
|
- contentId:currentPageId.id,
|
5429
|
|
- id:graphId,
|
|
5441
|
+ contentId: currentPageId.id,
|
|
5442
|
+ id: graphId,
|
5430
|
5443
|
type,
|
5431
|
|
- content:form.val('formModal')
|
5432
|
|
- })
|
|
5444
|
+ content: form.val("formModal"),
|
|
5445
|
+ });
|
5433
|
5446
|
layer.close(index);
|
5434
|
5447
|
},
|
5435
|
5448
|
btn2(index) {
|
...
|
...
|
@@ -5437,9 +5450,27 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
5437
|
5450
|
},
|
5438
|
5451
|
shade: ["0.7", "#fafafa"],
|
5439
|
5452
|
});
|
|
5453
|
+
|
|
5454
|
+ // 获取页面数组->转换为option
|
|
5455
|
+ for (let item of ui.pages) {
|
|
5456
|
+ const option = `<option value="${
|
|
5457
|
+ "data:page/id," + item.getId()
|
|
5458
|
+ }">${item.getName()}</option>`;
|
|
5459
|
+ $("#pageSelect").append(option);
|
|
5460
|
+ }
|
|
5461
|
+ if (findContent?.content.action === "1") {
|
|
5462
|
+ $("#dynamicInputLink").css({ display: "none" });
|
|
5463
|
+ $("#dynamicInputPage").css({ display: "block" });
|
|
5464
|
+ }
|
|
5465
|
+
|
|
5466
|
+ form.val("formModal", {
|
|
5467
|
+ action: findContent?.content.action || "0",
|
|
5468
|
+ link: findContent?.content.link,
|
|
5469
|
+ page: findContent?.content.page,
|
|
5470
|
+ });
|
5440
|
5471
|
form.render();
|
5441
|
5472
|
let typeRadio = "1";
|
5442
|
|
- // 监听的表单radio事件
|
|
5473
|
+ // 监听的表单radio事件 (暂不实现)
|
5443
|
5474
|
form.on("radio", function (data) {
|
5444
|
5475
|
typeRadio = data.value;
|
5445
|
5476
|
if (data.value === "1") {
|
...
|
...
|
@@ -5539,32 +5570,17 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
5539
|
5570
|
});
|
5540
|
5571
|
|
5541
|
5572
|
// 监听动作选择框的变化
|
5542
|
|
- form.on("select(actionSelectChange)", function (data) {
|
5543
|
|
- if (data.value === "0") {
|
5544
|
|
- $("#dynamicInput")
|
5545
|
|
- .empty()
|
5546
|
|
- .append(
|
5547
|
|
- `
|
5548
|
|
- <label class="layui-form-label">链接</label>
|
5549
|
|
- <div class="layui-input-block">
|
5550
|
|
- <input type="text" name="title" class="layui-input">
|
5551
|
|
- </div>
|
5552
|
|
- `
|
5553
|
|
- );
|
|
5573
|
+ form.on("select(actionSelectChange)", function ({ value }) {
|
|
5574
|
+ if (value === "0") {
|
|
5575
|
+ $("#dynamicInputPage").css({ display: "none" });
|
|
5576
|
+ $("#dynamicInputLink").css({ display: "block" });
|
|
5577
|
+
|
5554
|
5578
|
$("#tableContent").empty();
|
5555
|
|
- } else if (data.value === "1") {
|
5556
|
|
- $("#dynamicInput")
|
5557
|
|
- .empty()
|
5558
|
|
- .append(
|
5559
|
|
- `
|
5560
|
|
- <label class="layui-form-label">页面</label>
|
5561
|
|
- <div class="layui-input-block">
|
5562
|
|
- <input type="text" name="title" class="layui-input">
|
5563
|
|
- </div>
|
5564
|
|
- `
|
5565
|
|
- );
|
|
5579
|
+ } else if (value === "1") {
|
|
5580
|
+ $("#dynamicInputLink").css({ display: "none" });
|
|
5581
|
+ $("#dynamicInputPage").css({ display: "block" });
|
5566
|
5582
|
$("#tableContent").empty();
|
5567
|
|
- } else if (data.value === "2") {
|
|
5583
|
+ } else if (value === "2") {
|
5568
|
5584
|
$("#dynamicInput")
|
5569
|
5585
|
.empty()
|
5570
|
5586
|
.append(
|
...
|
...
|
@@ -5629,7 +5645,6 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
5629
|
5645
|
});
|
5630
|
5646
|
// 添加一条
|
5631
|
5647
|
$("#addData").click(() => {
|
5632
|
|
-
|
5633
|
5648
|
if (typeRadio === "1") {
|
5634
|
5649
|
$("#tableBody").append(`
|
5635
|
5650
|
<tr>
|
...
|
...
|
@@ -5694,41 +5709,46 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
5694
|
5709
|
}
|
5695
|
5710
|
|
5696
|
5711
|
//数据动效的事件处理函数
|
5697
|
|
- function handleSoundEffectEvent(event) {
|
5698
|
|
- var zNodes = [
|
5699
|
|
- { id: 1, pId: 0, name: "父1 - 展开", open: true },
|
5700
|
|
- { id: 11, pId: 1, name: "父11 - 折叠" },
|
5701
|
|
- { id: 111, pId: 11, name: "叶子节点节点节点111" },
|
5702
|
|
- { id: 113, pId: 11, name: "叶子节点节点节点113" },
|
5703
|
|
- { id: 1131, pId: 113, name: "叶子节点节点节点1131" },
|
5704
|
|
- { id: 1132, pId: 113, name: "叶子节点节点节点1132" },
|
5705
|
|
- { id: 1133, pId: 113, name: "叶子节点节点节点1133" },
|
5706
|
|
- { id: 114, pId: 11, name: "叶子节点节点节点114" },
|
5707
|
|
- { id: 12, pId: 1, name: "父12 - 折叠" },
|
5708
|
|
- { id: 121, pId: 12, name: "叶子节点节点节点121" },
|
5709
|
|
- { id: 122, pId: 12, name: "叶子节点节点节点122" },
|
5710
|
|
- { id: 123, pId: 12, name: "叶子节点节点节点123" },
|
5711
|
|
- { id: 124, pId: 12, name: "叶子节点节点节点124" },
|
5712
|
|
- { id: 13, pId: 1, name: "父13" },
|
5713
|
|
- { id: 2, pId: 0, name: "父2 - 折叠" },
|
5714
|
|
- { id: 21, pId: 2, name: "父21 - 展开", open: true },
|
5715
|
|
- { id: 211, pId: 21, name: "叶子节点节点节点211" },
|
5716
|
|
- { id: 212, pId: 21, name: "叶子节点节点节点212" },
|
5717
|
|
- { id: 213, pId: 21, name: "叶子节点节点节点213" },
|
5718
|
|
- { id: 214, pId: 21, name: "叶子节点节点节点214" },
|
5719
|
|
- ];
|
|
5712
|
+ async function handleSoundEffectEvent(event) {
|
|
5713
|
+ const { act } = await defHttp.get(
|
|
5714
|
+ `/yt/configuration/node/NODE/${graphId}`
|
|
5715
|
+ );
|
|
5716
|
+ // 获取动画类型
|
|
5717
|
+ let type = null;
|
|
5718
|
+ for (let key in animType) {
|
|
5719
|
+ if (animType[key] === event.data.title) {
|
|
5720
|
+ type = key;
|
|
5721
|
+ }
|
|
5722
|
+ }
|
|
5723
|
+ // 查找对应的动画
|
|
5724
|
+ const findAnim = act?.find((item) => {
|
|
5725
|
+ if (item.type === type) return item;
|
|
5726
|
+ });
|
|
5727
|
+
|
|
5728
|
+ // 树结构转为数组list
|
|
5729
|
+ function treeToArr(data, pId = 0, res = []) {
|
|
5730
|
+ data.forEach((item) => {
|
|
5731
|
+ res.push({ pId, id: item.id, name: item.name });
|
|
5732
|
+ if (item.children && item.children.length) {
|
|
5733
|
+ treeToArr(item.children, item.id, res);
|
|
5734
|
+ }
|
|
5735
|
+ });
|
|
5736
|
+ return res;
|
|
5737
|
+ }
|
|
5738
|
+ // 深拷贝一下数据并且拍平这个树形结构数据
|
|
5739
|
+ const flatTreeList = treeToArr(JSON.parse(JSON.stringify(treeList)));
|
5720
|
5740
|
|
5721
|
5741
|
// 打开弹窗
|
5722
|
5742
|
layer.open({
|
5723
|
5743
|
title: event.data.title,
|
5724
|
5744
|
content: `
|
5725
|
|
- <form class="layui-form">
|
|
5745
|
+ <form class="layui-form" lay-filter="formModal">
|
5726
|
5746
|
<div style="width:400px">
|
5727
|
5747
|
<div class="layui-form-item">
|
5728
|
5748
|
<label class="layui-form-label">类型</label>
|
5729
|
5749
|
<div class="layui-input-block">
|
5730
|
5750
|
<input type="radio" name="type" value="1" title="联网设备" checked>
|
5731
|
|
- <input type="radio" name="type" value="2" title="产品/场景" >
|
|
5751
|
+ <input type="radio" name="type" value="2" title="产品/场景" disabled>
|
5732
|
5752
|
</div>
|
5733
|
5753
|
</div>
|
5734
|
5754
|
<div class="layui-form-item">
|
...
|
...
|
@@ -5741,10 +5761,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
5741
|
5761
|
<div class="layui-form-item">
|
5742
|
5762
|
<label class="layui-form-label">设备</label>
|
5743
|
5763
|
<div class="layui-input-block">
|
5744
|
|
- <select name="city" lay-verify="required">
|
5745
|
|
- <option value="0" selected>设备1</option>
|
5746
|
|
- <option value="0">设备2</option>
|
5747
|
|
- <option value="0">设备3</option>
|
|
5764
|
+ <select name="deviceId" lay-verify="required" id="deviceSelect" lay-filter="deviceSelect">
|
5748
|
5765
|
</select>
|
5749
|
5766
|
</div>
|
5750
|
5767
|
</div>
|
...
|
...
|
@@ -5752,11 +5769,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
5752
|
5769
|
<div class="layui-form-item">
|
5753
|
5770
|
<label class="layui-form-label">属性</label>
|
5754
|
5771
|
<div class="layui-input-block">
|
5755
|
|
- <select name="city" lay-verify="required">
|
5756
|
|
- <option value="0" selected>属性1</option>
|
5757
|
|
- <option value="0">属性2</option>
|
5758
|
|
- <option value="0">属性3</option>
|
5759
|
|
- </select>
|
|
5772
|
+ <select name="attr" lay-verify="required" id="attrSelect"></select>
|
5760
|
5773
|
</div>
|
5761
|
5774
|
</div>
|
5762
|
5775
|
</div>
|
...
|
...
|
@@ -5770,7 +5783,35 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
5770
|
5783
|
area: ["800px", "500px"],
|
5771
|
5784
|
btn: ["保存", "取消"],
|
5772
|
5785
|
shade: ["0.7", "#fafafa"],
|
5773
|
|
- yes(index) {
|
|
5786
|
+ async yes(index) {
|
|
5787
|
+ // 获取动画类型
|
|
5788
|
+ let type = null;
|
|
5789
|
+ for (let key in animType) {
|
|
5790
|
+ if (animType[key] === event.data.title) {
|
|
5791
|
+ type = key;
|
|
5792
|
+ }
|
|
5793
|
+ }
|
|
5794
|
+ // 遍历表格数据
|
|
5795
|
+ const content = [];
|
|
5796
|
+ for (let item of $("#tableBody tr")) {
|
|
5797
|
+ content.push({
|
|
5798
|
+ min: item.children[0].children[0].value,
|
|
5799
|
+ max: item.children[1].children[0].value,
|
|
5800
|
+ });
|
|
5801
|
+ }
|
|
5802
|
+ // 获取其他数据
|
|
5803
|
+ const formModal = {
|
|
5804
|
+ ...form.val("formModal"),
|
|
5805
|
+ orgId: $("#select").selectZTreeGet().id,
|
|
5806
|
+ configurationId,
|
|
5807
|
+ contentId: currentPageId.id,
|
|
5808
|
+ id: graphId,
|
|
5809
|
+ condition: {
|
|
5810
|
+ content,
|
|
5811
|
+ },
|
|
5812
|
+ type,
|
|
5813
|
+ };
|
|
5814
|
+ await defHttp.post("/yt/configuration/node/act", formModal);
|
5774
|
5815
|
layer.close(index);
|
5775
|
5816
|
},
|
5776
|
5817
|
btn2(index) {
|
...
|
...
|
@@ -5780,16 +5821,59 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
5780
|
5821
|
|
5781
|
5822
|
$("#select")
|
5782
|
5823
|
.selectZTree({
|
5783
|
|
- data: zNodes,
|
|
5824
|
+ data: flatTreeList,
|
5784
|
5825
|
width: 290,
|
5785
|
5826
|
showSearch: false,
|
5786
|
5827
|
placeholder: "请选择组织",
|
5787
|
|
- onSelected(ele, value) {
|
5788
|
|
- console.log(value);
|
5789
|
|
- console.log("onSelected");
|
|
5828
|
+ async onReady() {
|
|
5829
|
+ if (findAnim?.orgId) {
|
|
5830
|
+ $("#select").selectZTreeSet(findAnim?.orgId);
|
|
5831
|
+ const items =
|
|
5832
|
+ await getDevicesByOrganizationId_DIRECT_CONNECTIONAndSENSOR(
|
|
5833
|
+ findAnim?.orgId
|
|
5834
|
+ );
|
|
5835
|
+ $("#deviceSelect").empty();
|
|
5836
|
+ $("#deviceSelect").append(`<option value="">请选择设备</option>`);
|
|
5837
|
+ for (let item of items) {
|
|
5838
|
+ // 在追加
|
|
5839
|
+ $("#deviceSelect").append(
|
|
5840
|
+ `<option value="${item.tbDeviceId}">${item.name}</option>`
|
|
5841
|
+ );
|
|
5842
|
+ }
|
|
5843
|
+ form.render();
|
|
5844
|
+ }
|
5790
|
5845
|
},
|
5791
|
5846
|
})
|
5792
|
|
-
|
|
5847
|
+ .on("change", async (ele, { id }) => {
|
|
5848
|
+ const items =
|
|
5849
|
+ await getDevicesByOrganizationId_DIRECT_CONNECTIONAndSENSOR(id);
|
|
5850
|
+ // 先清空子元素
|
|
5851
|
+ $("#deviceSelect").empty();
|
|
5852
|
+ $("#deviceSelect").append(`<option value="">请选择设备</option>`);
|
|
5853
|
+ for (let item of items) {
|
|
5854
|
+ // 在追加
|
|
5855
|
+ $("#deviceSelect").append(
|
|
5856
|
+ `<option value="${item.tbDeviceId}">${item.name}</option>`
|
|
5857
|
+ );
|
|
5858
|
+ }
|
|
5859
|
+ form.render();
|
|
5860
|
+ });
|
|
5861
|
+
|
|
5862
|
+ form.on("select(deviceSelect)", async ({ value }) => {
|
|
5863
|
+ if (!value) return;
|
|
5864
|
+ const res = await defHttp.get(
|
|
5865
|
+ `/plugins/telemetry/DEVICE/${value}/keys/timeseries`
|
|
5866
|
+ );
|
|
5867
|
+ // 先清空子元素
|
|
5868
|
+ $("#attrSelect").empty();
|
|
5869
|
+ $("#attrSelect").append(`<option value="">请选择属性</option>`);
|
|
5870
|
+ for (let item of res) {
|
|
5871
|
+ // 在追加
|
|
5872
|
+ $("#attrSelect").append(`<option value="${item}">${item}</option>`);
|
|
5873
|
+ }
|
|
5874
|
+ form.render();
|
|
5875
|
+ });
|
|
5876
|
+
|
5793
|
5877
|
// 在tableContent最前面添加元素
|
5794
|
5878
|
$("#tableContent").prepend(`
|
5795
|
5879
|
<table class="layui-table">
|
...
|
...
|
@@ -5800,28 +5884,16 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
5800
|
5884
|
</colgroup>
|
5801
|
5885
|
<thead>
|
5802
|
5886
|
<tr>
|
5803
|
|
- <th style="text-align:center">最小值(<=)</th>
|
5804
|
|
- <th style="text-align:center">最大值(>=)</th>
|
|
5887
|
+ <th style="text-align:center">最小值(>=)</th>
|
|
5888
|
+ <th style="text-align:center">最大值(<=)</th>
|
5805
|
5889
|
<th style="text-align:center">操作</th>
|
5806
|
5890
|
</tr>
|
5807
|
5891
|
</thead>
|
5808
|
|
- <tbody id="tableBody">
|
5809
|
|
- <tr>
|
5810
|
|
- <td>
|
5811
|
|
- <input type="text" name="title" class="layui-input">
|
5812
|
|
- </td>
|
5813
|
|
- <td>
|
5814
|
|
- <input type="text" name="title" class="layui-input">
|
5815
|
|
- </td>
|
5816
|
|
- <td>
|
5817
|
|
- <button type="button" class="layui-btn layui-btn-primary layui-border-red deleteData">删除</button>
|
5818
|
|
- </td>
|
5819
|
|
- </tr>
|
5820
|
|
- </tbody>
|
|
5892
|
+ <tbody id="tableBody"></tbody>
|
5821
|
5893
|
</table>
|
5822
|
5894
|
`);
|
5823
|
|
- form.render();
|
5824
|
|
- // 监听的表单radio事件
|
|
5895
|
+
|
|
5896
|
+ // 监听的表单radio事件 (暂不实现)
|
5825
|
5897
|
form.on("radio", function (data) {
|
5826
|
5898
|
$("#tableContent").children().first().remove();
|
5827
|
5899
|
$("#tableContent").prepend(`
|
...
|
...
|
@@ -5838,19 +5910,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
5838
|
5910
|
<th style="text-align:center">操作</th>
|
5839
|
5911
|
</tr>
|
5840
|
5912
|
</thead>
|
5841
|
|
- <tbody id="tableBody">
|
5842
|
|
- <tr>
|
5843
|
|
- <td>
|
5844
|
|
- <input type="text" name="title" class="layui-input">
|
5845
|
|
- </td>
|
5846
|
|
- <td>
|
5847
|
|
- <input type="text" name="title" class="layui-input">
|
5848
|
|
- </td>
|
5849
|
|
- <td>
|
5850
|
|
- <button type="button" class="layui-btn layui-btn-primary layui-border-red deleteData">删除</button>
|
5851
|
|
- </td>
|
5852
|
|
- </tr>
|
5853
|
|
- </tbody>
|
|
5913
|
+ <tbody id="tableBody"></tbody>
|
5854
|
5914
|
</table>
|
5855
|
5915
|
`);
|
5856
|
5916
|
form.render();
|
...
|
...
|
@@ -5860,10 +5920,10 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
5860
|
5920
|
$("#tableBody").append(`
|
5861
|
5921
|
<tr>
|
5862
|
5922
|
<td>
|
5863
|
|
- <input type="text" name="title" class="layui-input">
|
|
5923
|
+ <input type="text" name="min" class="layui-input">
|
5864
|
5924
|
</td>
|
5865
|
5925
|
<td>
|
5866
|
|
- <input type="text" name="title" class="layui-input">
|
|
5926
|
+ <input type="text" name="max" class="layui-input">
|
5867
|
5927
|
</td>
|
5868
|
5928
|
<td>
|
5869
|
5929
|
<button type="button" class="layui-btn layui-btn-primary layui-border-red deleteData">删除</button>
|
...
|
...
|
@@ -5881,6 +5941,65 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
5881
|
5941
|
$(".deleteData").click(function () {
|
5882
|
5942
|
this.parentNode.parentNode.remove();
|
5883
|
5943
|
});
|
|
5944
|
+
|
|
5945
|
+ // 回显数据
|
|
5946
|
+ // $("#select").selectZTreeSet(findAnim?.orgId)
|
|
5947
|
+ setTimeout(async () => {
|
|
5948
|
+ form.val("formModal", { deviceId: findAnim?.deviceId });
|
|
5949
|
+ if (!findAnim?.deviceId) return;
|
|
5950
|
+ const res = await defHttp.get(
|
|
5951
|
+ `/plugins/telemetry/DEVICE/${findAnim?.deviceId}/keys/timeseries`
|
|
5952
|
+ );
|
|
5953
|
+ // 先清空子元素
|
|
5954
|
+ $("#attrSelect").empty();
|
|
5955
|
+ $("#attrSelect").append(`<option value="">请选择属性</option>`);
|
|
5956
|
+ for (let item of res) {
|
|
5957
|
+ // 在追加
|
|
5958
|
+ $("#attrSelect").append(`<option value="${item}">${item}</option>`);
|
|
5959
|
+ }
|
|
5960
|
+ form.val("formModal", { attr: findAnim?.attr });
|
|
5961
|
+
|
|
5962
|
+ const len = findAnim?.condition?.content?.length;
|
|
5963
|
+ if (!len) {
|
|
5964
|
+ $("#tableBody").prepend(`
|
|
5965
|
+ <tr>
|
|
5966
|
+ <td>
|
|
5967
|
+ <input type="text" name="min" class="layui-input">
|
|
5968
|
+ </td>
|
|
5969
|
+ <td>
|
|
5970
|
+ <input type="text" name="max" class="layui-input">
|
|
5971
|
+ </td>
|
|
5972
|
+ <td>
|
|
5973
|
+ <button type="button" class="layui-btn layui-btn-primary layui-border-red deleteData">删除</button>
|
|
5974
|
+ </td>
|
|
5975
|
+ </tr>
|
|
5976
|
+ `);
|
|
5977
|
+ $(".deleteData").click(function () {
|
|
5978
|
+ this.parentNode.parentNode.remove();
|
|
5979
|
+ });
|
|
5980
|
+ return;
|
|
5981
|
+ }
|
|
5982
|
+ for (let i = 0; i < len; i++) {
|
|
5983
|
+ $("#tableBody").append(`
|
|
5984
|
+ <tr>
|
|
5985
|
+ <td>
|
|
5986
|
+ <input type="text" name="min" class="layui-input" value="${findAnim.condition.content[i].min}">
|
|
5987
|
+ </td>
|
|
5988
|
+ <td>
|
|
5989
|
+ <input type="text" name="max" class="layui-input" value="${findAnim.condition.content[i].max}">
|
|
5990
|
+ </td>
|
|
5991
|
+ <td>
|
|
5992
|
+ <button type="button" class="layui-btn layui-btn-primary layui-border-red deleteData">删除</button>
|
|
5993
|
+ </td>
|
|
5994
|
+ </tr>
|
|
5995
|
+ `);
|
|
5996
|
+ }
|
|
5997
|
+
|
|
5998
|
+ $(".deleteData").click(function () {
|
|
5999
|
+ this.parentNode.parentNode.remove();
|
|
6000
|
+ });
|
|
6001
|
+ form.render();
|
|
6002
|
+ }, 500);
|
5884
|
6003
|
}
|
5885
|
6004
|
|
5886
|
6005
|
// 数据交互事件
|
...
|
...
|
|