screenFront/src/store/module/Mechanics.ts

294 lines
7.6 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* @FilePath: \wwwd:\code\screenFront\src\store\module\Mechanics.ts
* @Author: 王路平
* @文件版本: V1.0.0
* @Date: 2023-02-06 15:58:13
* @Description:
*
* 版权信息 : 2023 by ${再登软件}, All Rights Reserved.
*/
import { defineStore } from "pinia";
import { Names } from "@/store/storeName";
import { development, production } from "@/utils/devSever";
import { formatter } from "element-plus";
import { getStoredLanguage, saveStoredLanguage } from "@/utils/languageStorage";
import zhMessages from "@/locales/lang/zh";
import enMessages from "@/locales/lang/en";
let language = getStoredLanguage() || "简体中文";
let messages = language == "简体中文" ? zhMessages.messages : enMessages.messages;
export const useMechanicsStore = defineStore(Names.Mechanics, {
// 使用方式
// const Index= useIndexStore()
// 1、Index.{数据}++
// 2、Index.$patch({数据:??})
// 3、Index.$patch((state)=>{ state.数据=??})
// 4、通过action修改
state: () => {
return {
page: null, //当前页,
allNum: 0,
loading: false,
mechanicsData: [
{
id: null,
index: 1,
title: "精加",
titleChild: messages.DevDiagram_JingJia,
titleI18n:'messages.DevDiagram_JingJia',
type: "精加车间",
num: null,
data: null,
gateway: 1,
dom: null,
domName: "bottontip1",
},
{
id: null,
index: 2,
title: "机加",
titleChild: messages.DevDiagram_JiJia,
titleI18n:'messages.DevDiagram_JiJia',
type: "机加车间",
num: null,
data: null,
gateway: 1,
dom: null,
domName: "bottontip2",
},
{
id: null,
index: 3,
title: "大件",
titleChild: messages.DevDiagram_DaJian,
titleI18n:'messages.DevDiagram_DaJian',
type: "大件车间",
num: null,
data: null,
gateway: 1,
dom: null,
domName: "bottontip3",
},
{
id: null,
index: 4,
title: "精饰",
titleChild: messages.DevDiagram_JingShi,
titleI18n:'messages.DevDiagram_JingShi',
type: "精饰车间",
num: null,
data: null,
gateway: 1,
dom: null,
domName: "bottontip4",
},
{
id: null,
index: 5,
title: "焊接",
titleChild: messages.DevDiagram_HanJie,
titleI18n:'messages.DevDiagram_HanJie',
type: "焊接车间",
num: null,
data: null,
gateway: 0,
dom: null,
domName: "bottontip5",
},
],
devstatus: null,
};
},
//computed 修改一些值
//需要使用return将数据抛出
//getters内可相互使用计算结果
//使用时可直接放入标签内<div>Index.方法()</div>
getters: {},
//methods 可同步/异步提交state
//actions内获取state数据使用this
// 使用方式
// 1、Index.方法()
//异步方法需要添加async和await
actions: {
changePage(val: number) {
this.page = val;
this.changeImgSrc();
},
changegateway(val: any) {
val.forEach((res) => {
this.mechanicsData.forEach((ele) => {
if (ele.type == res.name) {
ele.id = res.id;
ele.gateway = res.status;
}
});
});
},
changegatewaynum(val: any) {
this.allNum = 0;
val.forEach((res) => {
this.mechanicsData.forEach((ele) => {
if (ele.type == res.name) {
ele.num = res.counts;
}
});
this.allNum += res.counts;
});
},
changeMechanicsDatadata(val: any) {
for (let key in val) {
val[key].forEach((ele) => {
//按照环境更改src
if (process.env.NODE_ENV === "development") {
ele.data = development.imgxhr + ele.data;
ele.imgsrc = "";
} else if (process.env.NODE_ENV === "production") {
ele.data = production.imgxhr + ele.data; //正式环境+
ele.imgsrc = "";
}
});
this.mechanicsData.forEach((res) => {
if (res.type == key) {
res.data = val[key];
}
});
}
this.changeImgSrc();
},
socketMechanicsDatadata(val: any) {
val.forEach((res) => {
this.mechanicsData.forEach((ele) => {
if (res.dept == ele.type) {
ele.data?.forEach((item) => {
if (item.id == res.id) {
item.status = res.status;
}
});
}
});
});
// this.changeImgSrc();
},
socketDeviceStatusInMF(val: any){
this.mechanicsData.forEach((ele) => {
ele.data?.forEach((item) => {
if (item.id == val.id) {
item.status == val.status?'':item.status = val.status;
}
});
});
// this.changeImgSrc();
},
changeloading(val: boolean) {
this.loading = val;
},
changedevstatus(val: any) {
let newdata = [];
for (let key in val) {
let data = [];
let status = [0, 0, 0, 0];
val[key].forEach((ele) => {
if (ele.name == "H_ON") {
data.push({
value: ele.counts,
name: messages.work,
itemStyle:{
color:'#91CC75'
}
});
status[0] = 1;
}
if (ele.name == "H_IDLE") {
data.push({
value: ele.counts,
name: messages.halt,
itemStyle:{
color:'#AAAAAA'
}
});
status[1] = 1;
}
if (ele.name == "H_OFF") {
data.push({
value: ele.counts,
name:messages.Standby,
itemStyle:{
color:'#FAC858'
}
});
status[2] = 1;
}
if (ele.name == "H_E_STOP") {
data.push({
value: ele.counts,
name: messages.STOP,
itemStyle:{
color:'#EE6666'
}
});
status[3] = 1;
}
});
if (status[0] == 0) {
data.push({
value: null,
name: messages.work,
itemStyle:{
color:'#91CC75'
}
});
}
if (status[1] == 0) {
data.push({
value: null,
name: messages.halt,
itemStyle:{
color:'#AAAAAA'
}
});
}
if (status[2] == 0) {
data.push({
value: null,
name: messages.Standby,
itemStyle:{
color:'#FAC858'
}
});
}
if (status[3] == 0) {
data.push({
value: null,
name: messages.halt,
itemStyle:{
color:'#EE6666'
}
});
}
newdata.push({
name: key,
data: data,
});
data = [];
status = [0, 0, 0, 0];
}
this.devstatus = newdata;
// console.log(newdata);
},
changeImgSrc() {
this.mechanicsData.forEach((res) => {
if (res.data) {
if (res.index == this.page) {
res.data.forEach((ele) => {
ele.imgsrc = ele.data;
});
}
}
});
},
},
});