Showing
1 changed file
with
481 additions
and
362 deletions
| ... | ... | @@ -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 | // 数据交互事件 | ... | ... |