Commit 319a27f09e732d80b62fac509b8f919c3cca7a97
1 parent
b351e0d3
feat: implement display panel static style
Showing
3 changed files
with
391 additions
and
234 deletions
... | ... | @@ -184,6 +184,26 @@ |
184 | 184 | CHARTS: 'charts' |
185 | 185 | } |
186 | 186 | |
187 | + Sidebar.prototype.componentDisplayPanelPermissionMap = new Map() | |
188 | + | |
189 | + Sidebar.prototype.setComponentPermision = function (conmponentType, permission) { | |
190 | + this.componentDisplayPanelPermissionMap.set(componentType, permission) | |
191 | + } | |
192 | + | |
193 | + Sidebar.prototype.getComponentPermission = function (componentType) { | |
194 | + return this.componentDisplayPanelPermissionMap.get(componentType) || [] | |
195 | + } | |
196 | + | |
197 | + /** | |
198 | + * @description 数据面板权限 | |
199 | + */ | |
200 | + Sidebar.prototype.enumPermissionPanel = { | |
201 | + DATA_SOURCE: 'dataSource', | |
202 | + DISPLAY_TYPE: 'displayType', | |
203 | + INTERACTION: 'interaction', | |
204 | + DYNAMIC_EFFECT: 'dynamicEffect', | |
205 | + VAR_IMAGE: 'variableImage' | |
206 | + } | |
187 | 207 | |
188 | 208 | /** |
189 | 209 | * 各图形库里面要加载的图形 | ... | ... |
... | ... | @@ -5093,6 +5093,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
5093 | 5093 | */ |
5094 | 5094 | async function initNode() { |
5095 | 5095 | createDataSourcePanel() |
5096 | + createChartBindPanel() | |
5096 | 5097 | createInteractionPanel() |
5097 | 5098 | createDynamicEffectPanel() |
5098 | 5099 | createSubmitPanel() |
... | ... | @@ -5136,224 +5137,6 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
5136 | 5137 | return eventList |
5137 | 5138 | } |
5138 | 5139 | |
5139 | - | |
5140 | - /** | |
5141 | - * @description 创建数据源模块 | |
5142 | - */ | |
5143 | - // function createDataSourcePanel() { | |
5144 | - // const enumActionEl = { | |
5145 | - // ORG_EL: 'dataSourceOrg', | |
5146 | - // DEVICE_EL: 'dataSourceDevice', | |
5147 | - // SLAVE_DEVICE_EL: 'dataSourceSlaveDevice', | |
5148 | - // ATTR_EL: 'dataSourceAttr', | |
5149 | - // } | |
5150 | - // | |
5151 | - // const fragment = document.createDocumentFragment() | |
5152 | - // const defaultPanel = createPanel() | |
5153 | - // const title = createTitle('数据源') | |
5154 | - // let orgPanel, devicePanel, slaveDevicePanel, attrsPanel; | |
5155 | - // $(title).addClass('override__title--default') | |
5156 | - // $(defaultPanel).addClass('override__panel--default') | |
5157 | - // | |
5158 | - // /** | |
5159 | - // * @description 设备列表 | |
5160 | - // */ | |
5161 | - // let deviceList = [] | |
5162 | - // | |
5163 | - // | |
5164 | - // /** | |
5165 | - // * @description 生成组织选择 | |
5166 | - // */ | |
5167 | - // async function generatorOrgTres() { | |
5168 | - // orgPanel = defaultPanel.cloneNode(false) | |
5169 | - // const orgContainer = `<div id="${ enumActionEl.ORG_EL }"></div>` | |
5170 | - // $(orgPanel).append(orgContainer) | |
5171 | - // | |
5172 | - // const [ err, res ] = await to(ConfigurationNodeApi.getOrgTree()) | |
5173 | - // if (err) return | |
5174 | - // treeList = res | |
5175 | - // | |
5176 | - // UseLayUi.createTreeSelect({ | |
5177 | - // elem: `#${ enumActionEl.ORG_EL }`, | |
5178 | - // layFilter: enumDataSourceConst.ORG_ID, | |
5179 | - // className: 'data-source__org--override', | |
5180 | - // label: '组织', | |
5181 | - // singleUsage: false, | |
5182 | - // treeProps: { | |
5183 | - // data: treeList, | |
5184 | - // onlyIconControl: true, | |
5185 | - // click(node) { | |
5186 | - // currentCheckedOrgNode = node.data.id | |
5187 | - // getDevicesByOrgId(node.data.id) | |
5188 | - // }, | |
5189 | - // }, | |
5190 | - // }) | |
5191 | - // } | |
5192 | - // | |
5193 | - // | |
5194 | - // /** | |
5195 | - // * @description 生成设备选择器 | |
5196 | - // */ | |
5197 | - // function generatorDeviceSelect() { | |
5198 | - // devicePanel = defaultPanel.cloneNode(false) | |
5199 | - // const deviceSelect = UseLayUi.createSelect({ | |
5200 | - // label: '设备', | |
5201 | - // layFilter: enumDataSourceConst.DEVICE_ID, | |
5202 | - // className: 'data-panel__select', | |
5203 | - // }) | |
5204 | - // $(devicePanel).attr('id', enumActionEl.DEVICE_EL).append(deviceSelect) | |
5205 | - // } | |
5206 | - // | |
5207 | - // /** | |
5208 | - // * @description 生成从设备选择器 | |
5209 | - // */ | |
5210 | - // function generatorSlaveDevice() { | |
5211 | - // slaveDevicePanel = defaultPanel.cloneNode(false) | |
5212 | - // const slaveDeviceSelect = UseLayUi.createSelect({ | |
5213 | - // label: '子设备', | |
5214 | - // layFilter: enumDataSourceConst.SLAVE_DEVICE_ID, | |
5215 | - // className: 'data-panel__select', | |
5216 | - // onClick(data) { | |
5217 | - // const { value } = data | |
5218 | - // getAttrByDeviceId(value) | |
5219 | - // }, | |
5220 | - // }) | |
5221 | - // $(slaveDevicePanel).css({ display: 'none' }).attr('id', enumActionEl.SLAVE_DEVICE_EL).append(slaveDeviceSelect) | |
5222 | - // } | |
5223 | - // | |
5224 | - // /** | |
5225 | - // * @description 生成属性选择器 | |
5226 | - // */ | |
5227 | - // function generatorAttrSelect() { | |
5228 | - // attrsPanel = defaultPanel.cloneNode(false) | |
5229 | - // const attrsSelect = UseLayUi.createSelect({ | |
5230 | - // label: '属性', | |
5231 | - // layFilter: enumDataSourceConst.ATTR, | |
5232 | - // className: 'data-panel__select', | |
5233 | - // }) | |
5234 | - // $(attrsPanel).attr('id', enumActionEl.ATTR_EL).append(attrsSelect) | |
5235 | - // | |
5236 | - // } | |
5237 | - // | |
5238 | - // | |
5239 | - // /** | |
5240 | - // * @description 根据组织ID获取设备 | |
5241 | - // */ | |
5242 | - // async function getDevicesByOrgId(organizationId) { | |
5243 | - // if (organizationId) { | |
5244 | - // const items = deviceList = await ConfigurationNodeApi.getMasterDevice(organizationId); | |
5245 | - // $(`#${ enumActionEl.DEVICE_EL }`).find('select').html(UseLayUi.generateOptionTemplate({ dataSource: items })) | |
5246 | - // form.render('select', CONTAINER_FILTER) | |
5247 | - // } | |
5248 | - // } | |
5249 | - // | |
5250 | - // /** | |
5251 | - // * @description 通过主设备ID获取从设备 | |
5252 | - // */ | |
5253 | - // async function getSlaveDeviceByMasterDeviceId(orgId, deviceId) { | |
5254 | - // if (deviceId && currentCheckedOrgNode) { | |
5255 | - // const items = await ConfigurationNodeApi.getSlaveDevice(orgId, deviceId); | |
5256 | - // $(`#${ enumActionEl.SLAVE_DEVICE_EL }`).find('select').html(UseLayUi.generateOptionTemplate({ dataSource: items })) | |
5257 | - // form.render('select', CONTAINER_FILTER) | |
5258 | - // } | |
5259 | - // } | |
5260 | - // | |
5261 | - // /** | |
5262 | - // * @description 根据设备ID获取属性 | |
5263 | - // */ | |
5264 | - // async function getAttrByDeviceId(tbDeviceId) { | |
5265 | - // if (tbDeviceId) { | |
5266 | - // const [ err, res ] = await to(ConfigurationNodeApi.getDeviceAttr(tbDeviceId)) | |
5267 | - // $(`#${ enumActionEl.ATTR_EL }`).find('select').html(UseLayUi.generateOptionTemplate({ dataSource: res })) | |
5268 | - // form.render('select', CONTAINER_FILTER) | |
5269 | - // } | |
5270 | - // } | |
5271 | - // | |
5272 | - // | |
5273 | - // /** | |
5274 | - // * @description 数据回显 | |
5275 | - // */ | |
5276 | - // async function echoData() { | |
5277 | - // | |
5278 | - // echoRefreshFn = () => { | |
5279 | - // echoDataSource() | |
5280 | - // echoActionType() | |
5281 | - // form.render(null, CONTAINER_FILTER) | |
5282 | - // } | |
5283 | - // | |
5284 | - // await getNodeBindInfo() | |
5285 | - // | |
5286 | - // | |
5287 | - // function echoDataSource() { | |
5288 | - // const { dataSources = [] } = currentNodeData || {} | |
5289 | - // const [ dataSource = {} ] = dataSources | |
5290 | - // const { orgId, deviceId, slaveDeviceId, attr } = dataSource | |
5291 | - // const queue = [] | |
5292 | - // if (orgId) { | |
5293 | - // currentCheckedOrgNode = orgId | |
5294 | - // queue.push(getDevicesByOrgId(orgId)) | |
5295 | - // } | |
5296 | - // if (slaveDeviceId) { | |
5297 | - // queue.push(getSlaveDeviceByMasterDeviceId(orgId, deviceId)) | |
5298 | - // $(`#${ enumActionEl.SLAVE_DEVICE_EL }`).css({ display: 'block' }) | |
5299 | - // queue.push(getAttrByDeviceId(slaveDeviceId)) | |
5300 | - // } else { | |
5301 | - // queue.push(getAttrByDeviceId(deviceId)) | |
5302 | - // } | |
5303 | - // Promise.all(queue) | |
5304 | - // .finally(() => { | |
5305 | - // const orgNode = UseLayUi.findTreeObjectByField(treeList, currentCheckedOrgNode) | |
5306 | - // $(`#${ enumActionEl.ORG_EL } input[name="${ enumDataSourceConst.ORG_ID }"]`).parent().find('span').html(orgNode?.name) | |
5307 | - // form.val(CONTAINER_FILTER, { | |
5308 | - // orgId, | |
5309 | - // deviceId, | |
5310 | - // slaveDeviceId, | |
5311 | - // attr, | |
5312 | - // }) | |
5313 | - // }) | |
5314 | - // } | |
5315 | - // | |
5316 | - // async function echoActionType() { | |
5317 | - // const act = currentNodeData.act ?? [] | |
5318 | - // const event = currentNodeData.event ?? [] | |
5319 | - // const actionType = {} | |
5320 | - // for (const item of act) { | |
5321 | - // if (!item.condition || !item.condition?.length) { | |
5322 | - // $(`.interaction__container input[name="${ item.type }"]`).attr('disabled', true) | |
5323 | - // } else { | |
5324 | - // $(`.interaction__container input[name="${ item.type }"]`).attr('disabled', false) | |
5325 | - // } | |
5326 | - // actionType[item.type] = item.enabled | |
5327 | - // } | |
5328 | - // for (const item of event) { | |
5329 | - // if (!item.content) { | |
5330 | - // $(`.interaction__container input[name="${ item.type }"]`).attr('disabled', true) | |
5331 | - // } else { | |
5332 | - // $(`.interaction__container input[name="${ item.type }"]`).attr('disabled', false) | |
5333 | - // } | |
5334 | - // actionType[item.type] = item.enabled | |
5335 | - // } | |
5336 | - // form.val(CONTAINER_FILTER, actionType) | |
5337 | - // } | |
5338 | - // } | |
5339 | - // | |
5340 | - // function mount() { | |
5341 | - // generatorOrgTres() | |
5342 | - // generatorDeviceSelect() | |
5343 | - // generatorSlaveDevice() | |
5344 | - // generatorAttrSelect() | |
5345 | - // echoData() | |
5346 | - // | |
5347 | - // $(fragment).append(title).append(orgPanel).append(devicePanel).append(slaveDevicePanel).append(attrsPanel) | |
5348 | - // | |
5349 | - // $(container).append(fragment) | |
5350 | - // | |
5351 | - // } | |
5352 | - // | |
5353 | - // mount() | |
5354 | - // | |
5355 | - // } | |
5356 | - | |
5357 | 5140 | /** |
5358 | 5141 | * @description 创建数据面板 |
5359 | 5142 | */ |
... | ... | @@ -5412,21 +5195,354 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
5412 | 5195 | mount() |
5413 | 5196 | } |
5414 | 5197 | |
5415 | - // /** | |
5416 | - // * @description 创建功能模块 | |
5417 | - // */ | |
5418 | - // function createFunctionPanel() { | |
5419 | - // const fragment = document.createDocumentFragment() | |
5420 | - // const title = createTitle('功能') | |
5421 | - // $(title).addClass('override__title--default') | |
5422 | - // fragment.append(title) | |
5423 | - // generateActionEventNode(functionList).forEach(item => { | |
5424 | - // const panel = createPanel() | |
5425 | - // $(panel).addClass('override__panel--default').append(item) | |
5426 | - // $(fragment).append(panel) | |
5427 | - // }) | |
5428 | - // $(container).append(fragment) | |
5429 | - // } | |
5198 | + function createChartBindPanel() { | |
5199 | + const fragment = document.createDocumentFragment() | |
5200 | + const chartBindContainer = document.createElement('div') | |
5201 | + chartBindContainer.setAttribute('class', 'chart-panel__style') | |
5202 | + chartBindContainer.style.padding = '10px' | |
5203 | + const title = createTitle('展示类型') | |
5204 | + $(title).addClass('override__title--default') | |
5205 | + | |
5206 | + const enumActionEL = { | |
5207 | + SCOPE_FILTER: 'bindChartScopeFilter', | |
5208 | + | |
5209 | + INTERVAL_EL: 'bindChartIntervalSelect' | |
5210 | + } | |
5211 | + | |
5212 | + const enumConst = { | |
5213 | + DATA_TYPE: 'dataType', | |
5214 | + | |
5215 | + REAL: 'REAL', | |
5216 | + | |
5217 | + HISTORY: 'HISTORY', | |
5218 | + | |
5219 | + /** | |
5220 | + * @description 范围 | |
5221 | + */ | |
5222 | + SCOPE: 'scope', | |
5223 | + | |
5224 | + /** | |
5225 | + * @description 聚合 | |
5226 | + */ | |
5227 | + AGGREGATION: 'aggregation', | |
5228 | + | |
5229 | + /** | |
5230 | + * @description 间隔 | |
5231 | + */ | |
5232 | + INTERVAL: 'interval' | |
5233 | + } | |
5234 | + | |
5235 | + const enumTimeUnit = { | |
5236 | + SECOND: 'second', | |
5237 | + MINUTE: 'MINUTE', | |
5238 | + HOUR: 'HOUR', | |
5239 | + DAY: 'DAY', | |
5240 | + } | |
5241 | + | |
5242 | + const defaultIntervalOptions = [ | |
5243 | + { | |
5244 | + id: 1, | |
5245 | + unit: enumTimeUnit.SECOND, | |
5246 | + linkage: [ | |
5247 | + { id: 1, unit: enumTimeUnit.SECOND } | |
5248 | + ] | |
5249 | + }, | |
5250 | + { | |
5251 | + id: 5, | |
5252 | + unit: enumTimeUnit.SECOND, | |
5253 | + linkage: [ | |
5254 | + { id: 1, unit: enumTimeUnit.SECOND } | |
5255 | + ] | |
5256 | + }, | |
5257 | + { | |
5258 | + id: 10, | |
5259 | + unit: enumTimeUnit.SECOND, | |
5260 | + linkage: [ | |
5261 | + { id: 1, unit: enumTimeUnit.SECOND } | |
5262 | + ] | |
5263 | + }, | |
5264 | + { | |
5265 | + id: 15, | |
5266 | + unit: enumTimeUnit.SECOND, | |
5267 | + linkage: [ | |
5268 | + { id: 1, unit: enumTimeUnit.SECOND } | |
5269 | + ] | |
5270 | + }, | |
5271 | + { | |
5272 | + id: 30, | |
5273 | + unit: enumTimeUnit.SECOND, | |
5274 | + linkage: [ | |
5275 | + { id: 1, unit: enumTimeUnit.SECOND } | |
5276 | + ] | |
5277 | + }, | |
5278 | + { | |
5279 | + id: 1, | |
5280 | + unit: enumTimeUnit.MINUTE, | |
5281 | + linkage: [ | |
5282 | + { id: 1, unit: enumTimeUnit.SECOND }, | |
5283 | + { id: 5, unit: enumTimeUnit.SECOND }, | |
5284 | + ] | |
5285 | + }, | |
5286 | + { | |
5287 | + id: 2, | |
5288 | + unit: enumTimeUnit.MINUTE, | |
5289 | + linkage: [ | |
5290 | + { id: 1, unit: enumTimeUnit.SECOND }, | |
5291 | + { id: 5, unit: enumTimeUnit.SECOND }, | |
5292 | + { id: 10, unit: enumTimeUnit.SECOND }, | |
5293 | + { id: 15, unit: enumTimeUnit.SECOND }, | |
5294 | + ] | |
5295 | + }, | |
5296 | + { | |
5297 | + id: 5, | |
5298 | + unit: enumTimeUnit.MINUTE, | |
5299 | + linkage: [ | |
5300 | + { id: 1, unit: enumTimeUnit.SECOND }, | |
5301 | + { id: 5, unit: enumTimeUnit.SECOND }, | |
5302 | + { id: 10, unit: enumTimeUnit.SECOND }, | |
5303 | + { id: 15, unit: enumTimeUnit.SECOND }, | |
5304 | + { id: 30, unit: enumTimeUnit.SECOND }, | |
5305 | + ] | |
5306 | + }, | |
5307 | + { | |
5308 | + id: 10, | |
5309 | + unit: enumTimeUnit.MINUTE, | |
5310 | + linkage: [ | |
5311 | + { id: 5, unit: enumTimeUnit.SECOND }, | |
5312 | + { id: 10, unit: enumTimeUnit.SECOND }, | |
5313 | + { id: 15, unit: enumTimeUnit.SECOND }, | |
5314 | + { id: 30, unit: enumTimeUnit.SECOND }, | |
5315 | + { id: 1, unit: enumTimeUnit.MINUTE }, | |
5316 | + ] | |
5317 | + }, | |
5318 | + { | |
5319 | + id: 15, | |
5320 | + unit: enumTimeUnit.MINUTE, | |
5321 | + linkage: [ | |
5322 | + { id: 5, unit: enumTimeUnit.SECOND }, | |
5323 | + { id: 10, unit: enumTimeUnit.SECOND }, | |
5324 | + { id: 15, unit: enumTimeUnit.SECOND }, | |
5325 | + { id: 30, unit: enumTimeUnit.SECOND }, | |
5326 | + { id: 1, unit: enumTimeUnit.MINUTE }, | |
5327 | + { id: 2, unit: enumTimeUnit.MINUTE }, | |
5328 | + ] | |
5329 | + }, | |
5330 | + { | |
5331 | + id: 30, | |
5332 | + unit: enumTimeUnit.MINUTE, | |
5333 | + linkage: [ | |
5334 | + { id: 5, unit: enumTimeUnit.SECOND }, | |
5335 | + { id: 10, unit: enumTimeUnit.SECOND }, | |
5336 | + { id: 15, unit: enumTimeUnit.SECOND }, | |
5337 | + { id: 30, unit: enumTimeUnit.SECOND }, | |
5338 | + { id: 1, unit: enumTimeUnit.MINUTE }, | |
5339 | + { id: 2, unit: enumTimeUnit.MINUTE }, | |
5340 | + ] | |
5341 | + }, | |
5342 | + { | |
5343 | + id: 1, | |
5344 | + unit: enumTimeUnit.HOUR, | |
5345 | + linkage: [ | |
5346 | + { id: 10, unit: enumTimeUnit.SECOND }, | |
5347 | + { id: 15, unit: enumTimeUnit.SECOND }, | |
5348 | + { id: 30, unit: enumTimeUnit.SECOND }, | |
5349 | + { id: 1, unit: enumTimeUnit.MINUTE }, | |
5350 | + { id: 2, unit: enumTimeUnit.MINUTE }, | |
5351 | + { id: 5, unit: enumTimeUnit.MINUTE }, | |
5352 | + ] | |
5353 | + }, | |
5354 | + { | |
5355 | + id: 2, | |
5356 | + unit: enumTimeUnit.HOUR, | |
5357 | + linkage: [ | |
5358 | + { id: 15, unit: enumTimeUnit.SECOND }, | |
5359 | + { id: 30, unit: enumTimeUnit.SECOND }, | |
5360 | + { id: 1, unit: enumTimeUnit.MINUTE }, | |
5361 | + { id: 2, unit: enumTimeUnit.MINUTE }, | |
5362 | + { id: 5, unit: enumTimeUnit.MINUTE }, | |
5363 | + { id: 10, unit: enumTimeUnit.MINUTE }, | |
5364 | + { id: 15, unit: enumTimeUnit.MINUTE }, | |
5365 | + ] | |
5366 | + }, | |
5367 | + { | |
5368 | + id: 5, | |
5369 | + unit: enumTimeUnit.HOUR, | |
5370 | + linkage: [ | |
5371 | + { id: 1, unit: enumTimeUnit.MINUTE }, | |
5372 | + { id: 2, unit: enumTimeUnit.MINUTE }, | |
5373 | + { id: 5, unit: enumTimeUnit.MINUTE }, | |
5374 | + { id: 10, unit: enumTimeUnit.MINUTE }, | |
5375 | + { id: 15, unit: enumTimeUnit.MINUTE }, | |
5376 | + { id: 30, unit: enumTimeUnit.MINUTE }, | |
5377 | + ] | |
5378 | + }, | |
5379 | + { | |
5380 | + id: 10, | |
5381 | + unit: enumTimeUnit.HOUR, | |
5382 | + linkage: [ | |
5383 | + { id: 2, unit: enumTimeUnit.MINUTE }, | |
5384 | + { id: 5, unit: enumTimeUnit.MINUTE }, | |
5385 | + { id: 10, unit: enumTimeUnit.MINUTE }, | |
5386 | + { id: 15, unit: enumTimeUnit.MINUTE }, | |
5387 | + { id: 30, unit: enumTimeUnit.MINUTE }, | |
5388 | + { id: 1, unit: enumTimeUnit.HOUR }, | |
5389 | + ] | |
5390 | + }, | |
5391 | + { | |
5392 | + id: 12, | |
5393 | + unit: enumTimeUnit.HOUR, | |
5394 | + linkage: [ | |
5395 | + { id: 2, unit: enumTimeUnit.MINUTE }, | |
5396 | + { id: 5, unit: enumTimeUnit.MINUTE }, | |
5397 | + { id: 10, unit: enumTimeUnit.MINUTE }, | |
5398 | + { id: 15, unit: enumTimeUnit.MINUTE }, | |
5399 | + { id: 30, unit: enumTimeUnit.MINUTE }, | |
5400 | + { id: 1, unit: enumTimeUnit.HOUR }, | |
5401 | + ] | |
5402 | + }, | |
5403 | + { | |
5404 | + id: 1, | |
5405 | + unit: enumTimeUnit.DAY, | |
5406 | + linkage: [ | |
5407 | + { id: 5, unit: enumTimeUnit.MINUTE }, | |
5408 | + { id: 10, unit: enumTimeUnit.MINUTE }, | |
5409 | + { id: 15, unit: enumTimeUnit.MINUTE }, | |
5410 | + { id: 30, unit: enumTimeUnit.MINUTE }, | |
5411 | + { id: 1, unit: enumTimeUnit.HOUR }, | |
5412 | + { id: 2, unit: enumTimeUnit.HOUR }, | |
5413 | + ] | |
5414 | + }, | |
5415 | + { | |
5416 | + id: 7, | |
5417 | + unit: enumTimeUnit.DAY, | |
5418 | + linkage: [ | |
5419 | + { id: 30, unit: enumTimeUnit.MINUTE }, | |
5420 | + { id: 1, unit: enumTimeUnit.HOUR }, | |
5421 | + { id: 2, unit: enumTimeUnit.HOUR }, | |
5422 | + { id: 5, unit: enumTimeUnit.HOUR }, | |
5423 | + { id: 10, unit: enumTimeUnit.HOUR }, | |
5424 | + { id: 12, unit: enumTimeUnit.HOUR }, | |
5425 | + { id: 1, unit: enumTimeUnit.DAY }, | |
5426 | + ] | |
5427 | + }, | |
5428 | + { | |
5429 | + id: 30, | |
5430 | + unit: enumTimeUnit.DAY, | |
5431 | + linkage: [ | |
5432 | + { id: 2, unit: enumTimeUnit.HOUR }, | |
5433 | + { id: 5, unit: enumTimeUnit.HOUR }, | |
5434 | + { id: 10, unit: enumTimeUnit.HOUR }, | |
5435 | + { id: 12, unit: enumTimeUnit.HOUR }, | |
5436 | + { id: 1, unit: enumTimeUnit.DAY }, | |
5437 | + ] | |
5438 | + }, | |
5439 | + ] | |
5440 | + | |
5441 | + | |
5442 | + | |
5443 | + const aggergationOptions = [ | |
5444 | + { id: '1', name: '最小值' }, | |
5445 | + { id: '2', name: '最大值' }, | |
5446 | + { id: '3', name: '平均值' }, | |
5447 | + { id: '4', name: '求和' }, | |
5448 | + { id: '5', name: '计数' }, | |
5449 | + { id: '6', name: '空' }, | |
5450 | + ] | |
5451 | + | |
5452 | + const unitMapping = { | |
5453 | + [enumTimeUnit.SECOND]: '秒', | |
5454 | + [enumTimeUnit.MINUTE]: '分', | |
5455 | + [enumTimeUnit.HOUR]: '小时', | |
5456 | + [enumTimeUnit.DAY]: '天', | |
5457 | + } | |
5458 | + | |
5459 | + const unitConversion = { | |
5460 | + [enumTimeUnit.SECOND]: 1, | |
5461 | + [enumTimeUnit.MINUTE]: 1 * 60, | |
5462 | + [enumTimeUnit.HOUR]: 1 * 60 * 60, | |
5463 | + [enumTimeUnit.DAY]: 1 * 60 * 60 * 24, | |
5464 | + } | |
5465 | + | |
5466 | + function createSwitchBindTypeRadio() { | |
5467 | + return ` | |
5468 | + <div class="layui-form-item"> | |
5469 | + <label class="layui-form-label">数据类型</label> | |
5470 | + <div class="layui-input-block"> | |
5471 | + <input type="radio" name="${enumConst.DATA_TYPE}" value="${enumConst.REAL}" title="实时"> | |
5472 | + <input type="radio" name="${enumConst.DATA_TYPE}" value="${enumConst.HISTORY}" title="历史" checked> | |
5473 | + </div> | |
5474 | + </div> | |
5475 | + ` | |
5476 | + } | |
5477 | + | |
5478 | + function createQueryScopeSelect() { | |
5479 | + const options = defaultIntervalOptions.map((item, index) => ({ id: index, name: item.id + unitMapping[item.unit] })) | |
5480 | + const template = UseLayUi.generateOptionTemplate({ | |
5481 | + dataSource: options, | |
5482 | + addPlaceholderOption: false | |
5483 | + }) | |
5484 | + return ` | |
5485 | + <div class="layui-form-item"> | |
5486 | + <label class="layui-form-label">时间周期</label> | |
5487 | + <div class="layui-input-block"> | |
5488 | + <select name="${enumConst.SCOPE}" lay-filter="${enumActionEL.SCOPE_FILTER}"> | |
5489 | + ${template} | |
5490 | + </select> | |
5491 | + </div> | |
5492 | + </div>` | |
5493 | + } | |
5494 | + | |
5495 | + function createAggregationSelect() { | |
5496 | + const template = UseLayUi.generateOptionTemplate({ | |
5497 | + dataSource: aggergationOptions, | |
5498 | + addPlaceholderOption: false | |
5499 | + }) | |
5500 | + return ` | |
5501 | + <div class="layui-form-item"> | |
5502 | + <label class="layui-form-label">聚合方式</label> | |
5503 | + <div class="layui-input-block"> | |
5504 | + <select name="${enumConst.AGGREGATION}"> | |
5505 | + ${template} | |
5506 | + </select> | |
5507 | + </div> | |
5508 | + </div>` | |
5509 | + } | |
5510 | + | |
5511 | + function createIntervalSelect() { | |
5512 | + return ` | |
5513 | + <div class="layui-form-item"> | |
5514 | + <label class="layui-form-label">间隔时间</label> | |
5515 | + <div class="layui-input-block"> | |
5516 | + <select id="${enumActionEL.INTERVAL_EL}" name="${enumConst.INTERVAL}" lay-filter="${enumConst.INTERVAL}"> | |
5517 | + <option value="1">1秒</option> | |
5518 | + </select> | |
5519 | + </div> | |
5520 | + </div>` | |
5521 | + } | |
5522 | + | |
5523 | + function generatorEventlisten() { | |
5524 | + form.on(`select(${enumActionEL.SCOPE_FILTER})`, event => { | |
5525 | + console.log(event) | |
5526 | + const value = event.value || 0 | |
5527 | + const options = defaultIntervalOptions[value].linkage.map(item => ({ id: item.id * unitConversion[item.unit], name: item.id + unitMapping[item.unit] })) | |
5528 | + const template = UseLayUi.generateOptionTemplate({ | |
5529 | + dataSource: options, | |
5530 | + addPlaceholderOption: false | |
5531 | + }) | |
5532 | + $(`#${enumActionEL.INTERVAL_EL}`).html(template) | |
5533 | + form.render('select') | |
5534 | + }) | |
5535 | + } | |
5536 | + | |
5537 | + fragment.append(title) | |
5538 | + $(chartBindContainer).append(createSwitchBindTypeRadio()) | |
5539 | + $(chartBindContainer).append(createQueryScopeSelect()) | |
5540 | + $(chartBindContainer).append(createAggregationSelect()) | |
5541 | + $(chartBindContainer).append(createIntervalSelect()) | |
5542 | + fragment.append(chartBindContainer) | |
5543 | + $(container).append(fragment) | |
5544 | + generatorEventlisten() | |
5545 | + } | |
5430 | 5546 | |
5431 | 5547 | /** |
5432 | 5548 | * @description 创建数据交互模块 |
... | ... | @@ -6162,7 +6278,7 @@ DataFormatPanel.prototype.addDataFont = function (container) { |
6162 | 6278 | $(event.currentTarget).find('dl').css({ |
6163 | 6279 | position: 'fixed', |
6164 | 6280 | 'min-width': width + 'px', |
6165 | - top: offset.top + height + 'px', | |
6281 | + top: offset.top + height + 'px', | |
6166 | 6282 | left: offset.left + 'px' |
6167 | 6283 | }) |
6168 | 6284 | }) | ... | ... |
... | ... | @@ -459,3 +459,24 @@ |
459 | 459 | margin-left: 110px; |
460 | 460 | min-height: 36px; |
461 | 461 | } |
462 | + | |
463 | +// 展示类型 | |
464 | + | |
465 | +.chart-panel__style { | |
466 | + padding: 10px; | |
467 | +} | |
468 | + | |
469 | +.chart-panel__style .layui-form-item { | |
470 | + display: flex | |
471 | +} | |
472 | + | |
473 | +.chart-panel__style .layui-form-label{ | |
474 | + width: 60px; | |
475 | + box-sizing: border-box; | |
476 | + padding: 9px 10px 9px 0; | |
477 | +} | |
478 | + | |
479 | + | |
480 | +.chart-panel__style .layui-input-block{ | |
481 | + margin-left: 0px !important; | |
482 | +} | ... | ... |