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 | // 数据交互事件 | ... | ... |