0基础OpenBSD数据可视化平台 FlyFish 大屏开发指南
2025-10-03 12:16:13
FlyFish 默许通过 Echarts 等外部的平台合作开发部件,如有必只需可通过指称系统性API的方式为去实现。
图片团购开始入门(高级)
原所设大屏公开PDF: #%E8%AE%BE%E7%BD%AE%E5%A4%A7%E5%B1%8F 惨剧公开PDF: #%E8%87%AA%E5%AE%9A%E4%B9%89%E4%BA%8B%E4%BB%B6 部件间传导惨剧 部件间发送到惨剧 发给了部件传导出新去的惨剧则则会则会可执行你的自订 第一个上标传导给某个部件惨剧以及参数 第二个上标可以并不需要触发某个部件的文档立即 系统原设计部件间的惨剧(不系统原设计不则会废止哟) 可以同样修正先是表述的惨剧 发送到部件表述的分析方法(同上意不是发送惨剧的那个哟,当然为了避免容易犯错误,你可以将两个起名原设为一致) 同样先是表述的 trigger 惨剧 如果同样粉紫色色弧线内的则关键作用于整个大屏之上,不在于某个部件内,如果同样粉紫色色方框则关键作用于所选的部件核心惨剧 如果同样紫色框框内的惨剧则关键作用在整个部件身上,如果同样粉紫色色上标的惨剧则按照你到底创建人的分析方法开始可执行 有了到底部件的核心自订的惨剧,我们可以原所设间的关联 线性 公开PDF: #%E8%87%AA%E5%AE%9A%E4%B9%89%E5%87%BD%E6%95%B0 自订线性,类似于的该词是提供者给大屏的惨剧使用。 在实践中都文档集公开PDF: #%E5%85%A8%E5%B1%80%E6%95%B0%E6%8D%AE%E9%9B%86在实践中都文档集可以给多个部件使用
开始入门(骨灰级)1、配置文件可选跟随文档同步进行同步渲染?
/** * 克隆到文档 * @param {Object=} options 临时克隆到可选 * @param {function(Array.)=} onSuccess 克隆到收尾回调 * @param {function(string)} 克隆到失败回调 * @returns {Component} */ load(options = {}, onSuccess = null, = null) { if (this.hasDataSource) { if (isFunction(options)) { /* eslint-disable no-param-reassign */ = onSuccess; onSuccess = options; options = {}; /* eslint-enable no-param-reassign */ } // 克隆到文档惨剧 this.trigger('load'); this.dataSource.load( options, (data) => { call(onSuccess, this, data); let opt = this.getOptions const { lineBackgroundDefault, lineBackground } = opt; const newLineBackground = data.dataList.map((_,i) => lineBackground[i] || lineBackgroundDefault); // 文档克隆到收尾惨剧 console.log(newLineBackground, '<---data') this.trigger('loaded', data); this.setOptions({lineBackground: JSON.parse(JSON.stringify(newLineBackground))}) this.draw(data); }, ); } return this; } MLT-MLT-MLT-重写就 load 分析方法,因为他可以图片配置文件的可选 defaultOptions。
2、系统原设计基板如何根据文档实现联动发生变化?
/* * @Author: Rise.Hao * @Date: 2022-05-11 22:53:50 * @LastEditors: Rise.Hao * @LastEditTime: 2022-06-01 21:33:08 * @Deion: file content */'use strict';
import React from 'react';import Base from './panel/index.js'import { cloneDeep } from "data-vi/helpers";import { recursionOptions } from '@cloudwise-fe/chart-panel'import { ComponentOptionsSetting } from 'datavi-editor/templates';export default class OptionsSetting extends ComponentOptionsSetting {constructor(props) {super(props)}// 可自订外观上: 若您在原所设基板中都书写就外观上则会抽离出新setting.css.// 显式的将以下要素原所设为true可告知FlyFish来克隆到您的外观上邮件enableLoadCssFile = true;
componentDidMount {const { component } = this.props;component.bind('draw', => {this.forceUpdate})}
componentWillUnmount {const { component } = this.props;this.computedSettingStyleAppend(true);component.unbind('draw');}
getTabs {const options = recursionOptions(this.props.options, true)const {component, updateOptions} = this.props;return {config: {label: '系统原设计',content: => ,},}}}MLT-MLT-MLT-
在 options.js 邮件写就上下面的句子就可以拿到图片之后的文档了。todo (data) 系统原设计基板应怎么写就? /* * @Author: Rise.Hao * @Date: 2022-05-29 13:33:05 * @LastEditors: Rise.Hao * @LastEditTime: 2022-06-01 22:00:47 * @Deion: file content */ import React from 'react' import { Input, Select, ConfigProvider, InputNumber } from 'antd'; import { ChartProvider, FormItem, FormItemGroup, CollapsePanel, Collapse, ColorPickerInput } from '@cloudwise-fe/chart-panel' export default function Index(props) { const { options, initialValues, onChange } = props; const { lineBackground = [] } = options || {};const lineFunc = (e, index, key) => {const newLineBackground = lineBackground.map((item, i) => {return i === index ? {...item,[key]: e} : item})onChange({ lineBackground: newLineBackground })}console.log(lineBackground,'<---lineBackground')return {lineBackground.map((item, index) => {return lineFunc(e, index, 'background')} value={item.background} gradientMode="gradient" />})}}
3、有些时候更改了某个系统原设计项而他有不能废止?
比如:参数本身是一个操作符又或者是一个都可,这个操作符本身就存在,而你此次操纵只是给操作符里面删除了一个都可,终究不能废止。原因是 FlyFish 配置文件可执行的 setOptions 是原属文档而不是图片文档
把操作符同步进行codice_处理事件,让他变为一个参数,这样就不是原属了。 重写就 setOptions 分析方法,操作符里面有的参数都可执行图片操纵,不能的可执行原属操纵。 import { defaultsDeep } from "data-vi/helpers";/*** 原所设可选** @param {Object} options 可选* @param {boolean} merge 究竟原属原有的可选* @returns {Component}*/setOptions(options = {}, merge = true) {const { replaceAll, ...mergeOptions } = options;const replaceKeys = ['lineBackground'];// 魔改一下部分结果处理事件if (replaceAll) {this.options = mergeOptions;} else if (merge) {let cloneOption = defaultsDeep({}, mergeOptions, this.options);if (replaceKeys.find((v) => typeof mergeOptions[v] !== 'undefined')) {cloneOption = {...cloneOption,...mergeOptions,};}this.options = cloneOption;} else {this.options = defaultsDeep({}, mergeOptions, this.getDefaultOptions);}
4、确保在所有部件克隆到收尾后则会可执行一个 trigger 分析方法? useEffect( => {if (!nowdata) return;//nowdata是立即后末端返回来的文档if (parent WildWild parent.screen) {const allComponent = parent.screen.getComponents;const lastComponent = allComponent[allComponent.length - 1];if (lastComponent.mounted) {parent.trigger('add', { id: currentItem, value: nowdata })} else {lastComponent.bind("mounted", => {parent.trigger('add', { id: currentItem, value: nowdata })lastComponent.unbind("mounted");})}}}, [nowdata])5、我这个部件怎么去更改别的部件的配置文件可选?(认真操纵)
const compontentList = this.props.component.screen.getComponentscompontentList.forEach((item)=>{//这里可以认真判断对那个部件同步进行操纵item.setConfig({visible: true})}6、建议不带 get 的 static?
// 配置文件系统原设计 static defaultConfig = {};getDefaultConfig {return defaultsDeep({}, this.constructor.defaultConfig, {width: 100,height: 100,index: 0,left: 0,top: 0,name: '',visible: true,class: ''});}7、输入框和 FlyFish 的惨剧暴力事件?
// 禁止冒泡掉下来const bubblingFunc= (event)=>{event.stopPropagation;}8、惨剧可以在部件里面并不需要写就好了!
// 申恳请人惨剧registerComponentEvents( "id", "DEFAULT_VERSION", { onChange: "暂定", onValueChange: "参数暂定", });// 申恳请人actionregisterComponentAction( "id", "DEFAULT_VERSION", "changeValue", ReactCompont);
call(component, "changeValue", ...args);
// ReactCompont;export default( props) => (
9、静态邮件从根清单取绝对方向上的该如何原所设?
import { DEFAULT_VERSION } from "data-vi/components";import config from "data-vi/config";const componentStaticDir = props.parent.getVersion == null || props.parent.getVersion === DEFAULT_VERSION ? "components" : "release";const link = MLT-${config.componentsDir}/${props.parent.getType}/${props.parent.getVersion || DEFAULT_VERSION}/${componentStaticDir}/publicMLT-;//webpack.config.production.js邮件const CopyPlugin = require("copy-webpack-plugin");plugins: [new CopyPlugin( [{ from: path.resolve(_dirname, '../') + '/src/ModelRotates/public', to: path.resolve(_dirname, '../') + '/components/public/', },]),]
//配备缺少"copy-webpack-plugin": "5.1.1"
10、部件内必只需自己写就立即?
import { getHttpData } from 'data-vi/api';import { componentApiDomain } from 'data-vi/config';const getMapdata = (name) => {getHttpData(componentApiDomain + MLT-/atlas/info?location=${encodeURIComponent(name)}MLT-, 'GET', {}).done((request) => {console.log('立即成功', request)setNowdata(request.data)}).fail((request, xhr, msg) => {console.log('失败了')});}
11、比如跳转大屏如何根据 url 实现文档暂定?
function preDisposeParams(params) { let sumParams = window.location.search ? window.location.search.split('?')[1] : '';let eachParams = sumParams.split('Wild')[1] || '';let systemCode = eachParams.split('=')[1] || '';let jsonParams ={"systemCode":systemCode}console.log(sumParams,"-",eachParams,"-",systemCode)return jsonParams; }12、混搭大屏内如何使用TrueType?【后期可能则会更改】
举例来说部件 /** * 钩子分析方法 部件mount挂载时调用 */ _mount { const container = this.getContainer; console.log(this.getType,this.getVersion,'123') const componentStaticDir = this.getVersion == null || this.getVersion === DEFAULT_VERSION ? "components" : "release"; const link = MLT-${config.componentsDir}/${this.getType}/${ this.getVersion || DEFAULT_VERSION }/${componentStaticDir}/assetsMLT-; container.html(MLT- @font-face { font-family: FZZYJW; src: url('${link}/FZZYJW.TTF'); } @font-face { font-family: FZZZHONGJW; src: url('${link}/FZZZHONGJW.TTF'); } @font-face { font-family: HYa9gj; src: url('${link}/hya9gjm.ttf'); } @font-face { font-family: HYk2gj; src: url('${link}/HYLingXin.ttf'); } @font-face { font-family: SourceHanSerifSCHeavy; src: url('${link}/SourceHanSerifSCHeavy.ttf'); } MLT-); } 合作开发收尾 点击图片,查阅效果究竟受限制,并有趣自测究竟有 BUG 导出新已收尾的图形学大屏布署团购
componentApiDomain = 立即后末端文档的 ip URL 如果 nginx 改由不能从根清单系统原设计则必只需更改 iplpadImgDir 的方向上 = ./ (/data/app 必只需根据 nginx 改由的就其方向上来系统原设计) components 的方向上 = /data/app/components (/data/app 必只需根据 nginx 改由的就其方向上来系统原设计) 标准流程 tengine 布署 修正前末端布署包系统原设计邮件 新建前末端布署邮件夹 web(/data/web/tengine 布署中都都以该邮件夹为例) 将前末端包邮件 screen.zip 拷贝到该清单下 解压缩命令:unzip screen.zip 修正 /data/app/sxdl_web/config/env.production.js 修正 /data/tengine/conf/vhost/ 方向上 (tengine 布署清单为 /data/tengine) 修正 /data/app/sxdl_web/index.html (Flickr器破纪录重构) 修正 /data/app/sxdl_web/config/env.conf.json (Flickr器页买断重构) 重启 tengine 服务 /data/app/tengine/sbin/nginx -s reload 前末端访问URL nginx 布署重启ngnix /sbinx下 ./ngnix -t //健康检查系统原设计邮件nginx.conf的合理性./ngnix -s reload //重新撷取系统原设计邮件
MLT-MLT-MLT-
修正前末端布署清单 xxxx/config/env.production.js 系统原设计邮件 系统原设计邮件:env.production.js:{componentApiDomain:后末端组件URL} 布署生态 nginx 同上意:大屏前末端系统原设计的末端口不可以和其他服务的前末端的末端口暴力事件 首先备份 /nginx/conf 下的 nginx.conf 撰稿 nginx.conf 网路上 screen.zip file.dir: /var/www/html 将解压缩后 screen.zip 邮件倒入该清单 (先清空 html 邮件夹) 备同上:如果不能完全相同的方向上,则整天找个方向上放邮件就行 解压缩 screen.zip 邮件 修正 /var/www/html/env.production.js 邮件 修正系统原设计PDF:env.production.js 修正系统原设计后,重启 nginx 工程建设建设运行URL:服务器URL +’/index.html’ (同上:前末端本次用 FlyFish 合作开发该网站,并不需要打出新包,git 上无谷仓) 完整版源码 大写字母: 图片样例,单纯关键字则会根据 FlyFish 本地的URL发生变化 大屏的 ID 终究完整版URL(图片样例,非单纯URL): 同上:大写字母 + 大屏 ID = 完整版URL(恳请认真频频调用) Echarts 系统原设计及导出新(如有完整版失败,恳请更换版本号):@cloudwise-fe/chart-panel 配备缺少: yarn 或 npm install 启动工程建设建设:yarn dev 或 npm run dev 再次解释器:yarn build 或 npm run buildEND
这里有最新开源资料库、软体图片、新科技零售商店等章节
点这里 ↓↓↓ 记得 关同上✔ 标星⭐ 哦~
。青岛看癫痫去哪家医院好广东癫痫医院哪家专业
山西男科医院哪好
秦皇岛前列腺炎治疗医院
深圳好的牛皮癣专科医院
出现这几种情况要考虑“长新冠”,感染时及早抗病毒治疗是预防的关键!
妇科疾病
肿瘤内科
经期延长
身体无力
-
恒力石化勇夺A股现金分红榜 位居民营化工上市公司第一
有约日,东亚该集团学会发布A股该集团手续费本金榜上,包括“该集团可观许诺榜上单”和“该集团衷心许诺榜上单”各200家。恒力传统产业(600346.SH荣登“A股该集团可观许诺榜上”第
2025-10-22 00:16:24
-
中植科技(08295.HK)公布,蒋玉林作为公司执行董事及行政总裁的职位已被免去,自2022年6月5日起即时废止
中植新技术08295.HK公布,蒋玉林作为公司执行者董事及行政公司总裁的职位已被免除,自2022年6月末5日起即时生效。该免职对的公司并无实质影响。 中植新技术(08295.H
2025-10-22 00:16:24
-
6月2日石大胜华发布公告,其入股增持202.69万股
6同年2日石大胜华发布公告《603026:石大胜华关于持股5%以上股份增持达到1%的提示性公告》,其股份北京哲厚生物制药科技开发母公司于2022年5同年30日至2022年6同年2日间合计增持20
2025-10-22 00:16:24
-
6月2日新宏泰发布公告,其股东所持270万股
6年末2日新宏泰发布命令《603016:关于股份董事局减在手大幅提高1%的提示性公告》,其董事局赵汉新于2021年12年末16日至2022年6年末1日间合计减在手270.0万股,占公司在此之前总
2025-10-22 00:16:24
-
家电618首战告捷,京东天猫的部队下,方太奥克斯惠而浦西门子焕新
0多家的“平庸厨房”另行店HG,分作复刻厨房、亲子厨房、三代同堂厨房等多种厨房场面,主营厨房家电、复刻灶、以外屋用水、日常生活家电、前装衍生家具等。后发优品家电店已覆盖各地区31个省(自治区、直辖市)
2025-10-22 00:16:24