话不多说,先上代码(以下接口是中经社的接口地址,其他项目需要更换接口地址):
/**用于更新标题组件数据*/
let updateText = (id, target)=>{
fetch("https://fininfov.cnfic.com.cn/api/easyv/v3/component/data/update",{
method:'POST',
headers: {
'Content-Type': 'application/json'
},
body:JSON.stringify({
type:"static",
id:id,
data:[{
text:target
}]
})
}).then(res=>{
return res.json();
}).then(res=>{
console.log(id+" is ok!")
})
}
/**用于获取所有大屏*/
let getScreen=async ()=>{
let screens = await fetch("https://fininfov.cnfic.com.cn/api/easyv/v3/screen/list")
let json = await screens.json();
return json.data.screens.filter(d=>!d.deletedAt);
}
/**用于获取大屏中所有的图层,包含动态面板*/
let getLayer=async (screenId)=>{
let data = await fetch("https://fininfov.cnfic.com.cn/api/easyv/v5/screens/"+screenId);
let json = await data.json();
return json && json.data && json.data.layers || [];
}
/**用于获取动态面板的所有状态ID*/
let getState = async (panelId)=>{
let data = await fetch("https://fininfov.cnfic.com.cn/api/easyv/v3/panel/get?id="+panelId);
let json = await data.json();
return json && json.data && json.data.states || [];
}
/**主函数*/
let start = async (name, value)=>{
let screens = await getScreen();
let components = [];
const digui = async (screens_)=>{
//screens_为空数组时中断递归
if(!screens_.length)return
let panels = [];
await Promise.all(screens_.map(async s=>{
let layers = await getLayer(s);
layers.forEach(l=>{
if(l.name==name){
components.push(l)
}
let id_ = l.id;
if(typeof id_=='string' && id_.includes('panel')){
panels.push(+id_.split("_")[1]);
}
});
}));
//存在动态面板时,获取动态面板各个状态,并将每一个状态视为一个单独的大屏
if(panels.length){
let nextScreens = [];
await Promise.all(panels.map(async p=>{
let states = await getState(p);
states.forEach(state=>{
nextScreens.push(state)
})
}));
if(nextScreens.length)await digui(nextScreens);
}
};
await digui(screens.map(s=>s.id));
//当获取到所有需要修改的标题组件后,开始修改它们的静态数据
Promise.all(components.map(c=>{
updateText(c.id,value)
}))
}
start("孟德的标题","mengde"); //第一个参数是组件名称,第二个参数是标题内容
1.先登录easyv,然后进入工作台。
2.按下F12打开浏览器控制台,并切换到如下页面。
3.将代码复制控制台中,并修改代码最后一行中的两个字符串,第一个字符串是标题组件的名称,第二个字符串是需要替换后的文本。
4.按下回车,当控制台输出一堆 xxx is ok! 并停止后,刷新页面即可。
文章
10.5W+人气
19粉丝
1关注
©Copyrights 2016-2022 杭州易知微科技有限公司 浙ICP备2021017017号-3 浙公网安备33011002011932号
互联网信息服务业务 合字B2-20220090