Compare commits
34 Commits
master
...
a7c986fa3e
| Author | SHA1 | Date | |
|---|---|---|---|
| a7c986fa3e | |||
| 41b5d50cd4 | |||
| ced281252b | |||
| 878101ceb3 | |||
| 76be37f361 | |||
| 0fcb882e5d | |||
| a909c3897c | |||
| e1798023c2 | |||
| 9b0d792dbf | |||
| 085e76d179 | |||
| 4e73084a56 | |||
| beb0ac27ac | |||
| 2dcbcd7e8b | |||
| 00fb627dd3 | |||
| f8c94f2cdb | |||
| 24c86519e4 | |||
| 2c826c767d | |||
| ad1d898e7d | |||
| b0a6891bce | |||
| 4c3039ade7 | |||
| a46c4d23bf | |||
| cbb1d7a8a9 | |||
| caef804c14 | |||
| b3608320a8 | |||
| c6ea4a8c52 | |||
| 6b4e5cd036 | |||
| a1830ec4bf | |||
| 9258bcc0a9 | |||
| 4199ceee48 | |||
| d07d6e7ff2 | |||
| 59954beeca | |||
| de8e81a5e2 | |||
| 79d755fbad | |||
| c9c793e1e3 |
20
App.vue
@ -5,10 +5,25 @@ export default {
|
||||
async onShow() {
|
||||
const res = await this.$u.api.GetLanguageConfig('zh')
|
||||
const res2 = await this.$u.api.GetLanguageConfig('en')
|
||||
const res3 = await this.$u.api.GetLanguageConfig('fr')
|
||||
const res4 = await this.$u.api.GetLanguageConfig('es')
|
||||
const res5 = await this.$u.api.GetLanguageConfig('ar')
|
||||
const res6 = await this.$u.api.GetLanguageConfig('de')
|
||||
const res7 = await this.$u.api.GetLanguageConfig('pl')
|
||||
const result = JSON.parse(res.data[0].content)
|
||||
const result2 = JSON.parse(res2.data[0].content)
|
||||
this.$i18n.mergeLocaleMessage('en_US',result2) //添加英文
|
||||
this.$i18n.mergeLocaleMessage('zh_CN',result) //添加中文
|
||||
const result3 = JSON.parse(res3.data[0].content)
|
||||
const result4 = JSON.parse(res4.data[0].content)
|
||||
const result5 = JSON.parse(res5.data[0].content)
|
||||
const result6 = JSON.parse(res6.data[0].content)
|
||||
const result7 = JSON.parse(res7.data[0].content)
|
||||
this.$i18n.mergeLocaleMessage('en_US', result2) //添加英文
|
||||
this.$i18n.mergeLocaleMessage('zh_CN', result) //添加中文
|
||||
this.$i18n.mergeLocaleMessage('fr_FR', result3) //添加法语
|
||||
this.$i18n.mergeLocaleMessage('es_ES', result4) //添加西班牙语
|
||||
this.$i18n.mergeLocaleMessage('ar_EG', result5) //添加阿拉伯语
|
||||
this.$i18n.mergeLocaleMessage('de_DE', result6) //添加德语
|
||||
this.$i18n.mergeLocaleMessage('pl_PL', result7) //添加波兰语
|
||||
},
|
||||
onLaunch() {
|
||||
// 国际化,设置当前语言
|
||||
@ -33,6 +48,7 @@ export default {
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
@import "@/static/scss/init.scss";
|
||||
@import "uview-ui/index.scss";
|
||||
page{
|
||||
background: #f8f8f8;
|
||||
|
||||
@ -52,3 +52,6 @@
|
||||
* <a href="https://uviewui.com/js/intro.html" target="blank">uView JS 文档</a>
|
||||
|
||||
|
||||
####
|
||||
|
||||
测试提交11
|
||||
@ -1,17 +1,17 @@
|
||||
{
|
||||
"version" : "1",
|
||||
"prompt" : "template",
|
||||
"title" : "服务协议和隐私政策",
|
||||
"message" : " 请你务必审慎阅读、充分理解“服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br/> 你可阅读<a href=\"https://ecloud.hoenergypower.cn/app-privacy-zh.html\">《服务协议》</a>和<a href=\"https://ecloud.hoenergypower.cn/app-privacy-zh.html\">《隐私政策》</a>了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。",
|
||||
"buttonAccept" : "同意并接受",
|
||||
"buttonRefuse" : "暂不同意",
|
||||
"title" : "Service Agreement and Privacy Policy",
|
||||
"message" : " Please carefully read and fully understand the terms of the 'Service Agreement' and 'Privacy Policy', including but not limited to: In order to better provide services to you, we need to collect information such as your device identifier and operation logs for analyzing and optimizing application performance.<br/> You can read the <a href=\"https://zetatech.zzkj-cloud.com/app-privacy-en.html\">《Service Agreement》</a> and <a href=\"https://zetatech.zzkj-cloud.com/app-privacy-en.html\">《Privacy Policy》</a> to learn detailed information. If you agree, please click the button below to start accepting our services.",
|
||||
"buttonAccept" : "Agree and accept",
|
||||
"buttonRefuse" : "Disagree",
|
||||
"hrefLoader" : "system",
|
||||
"backToExit" : "false",
|
||||
"second" : {
|
||||
"title" : "确认提示",
|
||||
"message" : " 进入应用前,你需先同意<a href=\"https://ecloud.hoenergypower.cn/app-privacy-zh.html\">《服务协议》</a>和<a href=\"https://ecloud.hoenergypower.cn/app-privacy-zh.html\">《隐私政策》</a>,否则将退出应用。",
|
||||
"buttonAccept" : "同意并继续",
|
||||
"buttonRefuse" : "退出应用"
|
||||
"title" : "confirmation prompt",
|
||||
"message" : " Before entering the application, you need to agree to the <a href=\"https://zetatech.zzkj-cloud.com/app-privacy-en.html\">《Service Agreement》</a>and<a href=\"https://zetatech.zzkj-cloud.com/app-privacy-en.html\">《Privacy Policy》</a>, otherwise you will be logged out of the application.",
|
||||
"buttonAccept" : "Agree and continue",
|
||||
"buttonRefuse" : "Exit the application"
|
||||
},
|
||||
"disagreeMode" : {
|
||||
"support" : false,
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
const config = {
|
||||
|
||||
// 产品名称
|
||||
productName: 'Zetatech',
|
||||
productName: 'Zeta Cloud',
|
||||
|
||||
// 公司名称
|
||||
companyName: 'Zetatech',
|
||||
@ -22,5 +22,6 @@ const config = {
|
||||
}
|
||||
|
||||
// 设置后台接口服务的基础地址
|
||||
config.baseUrl = "https://zzkj-cloud.com/api"
|
||||
config.baseUrl = "https://zetatech.zzkj-cloud.com/api"
|
||||
// config.baseUrl = 'http://1.95.170.86:8002/api'
|
||||
export default config
|
||||
1857
common/form.js
Normal file
@ -72,7 +72,7 @@ const install = (Vue, vm) => {
|
||||
UpdateMessageStatus: (params = {}) =>
|
||||
vm.$u.post("/business/messageInfo/updateMessageReadStatus", params),
|
||||
|
||||
GetLanguageConfig:(params = {}) =>
|
||||
GetLanguageConfig: (params = {}) =>
|
||||
vm.$u.post("/business/station/getTermDictionary", params),
|
||||
|
||||
// 个人信息修改
|
||||
@ -176,7 +176,9 @@ const install = (Vue, vm) => {
|
||||
getStationListByStatus: (params = {}) =>
|
||||
vm.$u.post(config.adminPath + "/business/station/findListByStationStatus ", params),
|
||||
getStationPostionData: (params = {}) =>
|
||||
vm.$u.post(config.adminPath + "/business/dynamicConfig/pointListData", params)
|
||||
vm.$u.post(config.adminPath + "/business/dynamicConfig/pointListData", params),
|
||||
getStationPostionSn: (params = {}) =>
|
||||
vm.$u.post(config.adminPath + "/business/point/getSN", params)
|
||||
},
|
||||
|
||||
//设备
|
||||
@ -400,6 +402,8 @@ const install = (Vue, vm) => {
|
||||
GetFireConfig: (params = {}) =>
|
||||
vm.$u.post(config.adminPath + "/business/topologyAttribute/DataConfig", params),
|
||||
|
||||
getPvElecData: (params = {}) =>
|
||||
vm.$u.post(config.adminPath + "/business/openStation/getPvData", params)
|
||||
|
||||
},
|
||||
|
||||
@ -433,9 +437,9 @@ const install = (Vue, vm) => {
|
||||
|
||||
|
||||
|
||||
//获取电站下的设备
|
||||
// GetPageDevice: (params = {}) =>
|
||||
// vm.$u.post(config.adminPath + "/business/device/appHomePageDevices", params),
|
||||
//获取光伏发电功率
|
||||
GetPvCurve: (params = {}) =>
|
||||
vm.$u.post(config.adminPath + "/business/pcs/pvCurve", params),
|
||||
|
||||
|
||||
GetPageDevice: (params = {}) =>
|
||||
@ -455,6 +459,9 @@ const install = (Vue, vm) => {
|
||||
enrnings: {
|
||||
GetTotal: (params = {}) =>
|
||||
vm.$u.post(config.adminPath + "/business/earningsCalculate/getTotal", params),
|
||||
GetPvMonthData: (params = {}) =>
|
||||
vm.$u.post(config.adminPath + "/business/earningsCalculate/getPvMonthData", params),
|
||||
|
||||
},
|
||||
|
||||
|
||||
@ -462,6 +469,9 @@ const install = (Vue, vm) => {
|
||||
// 查询区域
|
||||
GetIndustrialElecRegionList: (params = {}) => vm.$u.post(config.adminPath +
|
||||
"/business/industrialElecRegion/list", params),
|
||||
/** 查询自定义电价*/
|
||||
GetCustomElecPricePage: (params = {}) => vm.$u.post(config.adminPath +
|
||||
"/business/elecPriceCurve/all", params),
|
||||
/** 查询所有代理电价-分页*/
|
||||
GetIndustrialElecPricePage: (params = {}) => vm.$u.post(config.adminPath +
|
||||
"/business/industrialElecPrice/page", params),
|
||||
|
||||
47
common/lang.js
Normal file
@ -0,0 +1,47 @@
|
||||
export const Langlist = [{
|
||||
label: '中文',
|
||||
prop: 'zh',
|
||||
disabled: false,
|
||||
value: 'zh_CN'
|
||||
},
|
||||
{
|
||||
label: 'English',
|
||||
prop: 'en',
|
||||
disabled: false,
|
||||
value: 'en_US'
|
||||
},
|
||||
{
|
||||
label: 'German',
|
||||
prop: 'gr',
|
||||
disabled: false,
|
||||
value: 'de_DE'
|
||||
},
|
||||
{
|
||||
label: 'French',
|
||||
prop: 'fr',
|
||||
disabled: false,
|
||||
value: 'fr_FR'
|
||||
},
|
||||
{
|
||||
label: 'Arabic',
|
||||
prop: 'al',
|
||||
disabled: false,
|
||||
value: 'ar_EG'
|
||||
},
|
||||
{
|
||||
label: 'Spanish',
|
||||
prop: 'es',
|
||||
disabled: false,
|
||||
value: 'es_ES'
|
||||
},
|
||||
{
|
||||
label: 'Polish',
|
||||
prop: 'bl',
|
||||
disabled: false,
|
||||
prop: 'pl_PL'
|
||||
}
|
||||
|
||||
]
|
||||
|
||||
|
||||
|
||||
63
common/locales/ar_EG.js
Normal file
@ -0,0 +1,63 @@
|
||||
import homePage from './homePage/ar'
|
||||
export default {
|
||||
homePage,
|
||||
common: {
|
||||
title: 'Aidex',
|
||||
},
|
||||
nav: {
|
||||
home: 'الصفحة الرئيسية',
|
||||
run: 'تشغيل',
|
||||
energyStorage: 'تخزين الطاقة',
|
||||
user: 'حسابي'
|
||||
},
|
||||
login: {
|
||||
title: 'تسجيل الدخول',
|
||||
account: 'الحساب',
|
||||
placeholderAccount: 'أدخل الحساب',
|
||||
pwd: 'كلمة المرور',
|
||||
placeholderPassword: 'أدخل كلمة المرور',
|
||||
code: 'رمز التحقق',
|
||||
codeTip: 'أدخل رمز التحقق',
|
||||
autoLogin: 'تسجيل الدخول تلقائيًا',
|
||||
loginButton: 'تسجيل الدخول',
|
||||
logoutButton: 'تسجيل الخروج',
|
||||
forget: 'نسيت كلمة المرور',
|
||||
reg: 'إنشاء حساب',
|
||||
noLogin: 'غير مسجل الدخول',
|
||||
privacyPolicy: 'سياسة الخصوصية',
|
||||
userAgreement: 'اتفاقية المستخدم',
|
||||
codeLoading: 'جارٍ الحصول على رمز التحقق',
|
||||
noStation: 'لا توجد محطة',
|
||||
noFunction: 'الوظيفة مش متاحة دلوقتي',
|
||||
lang: 'ZH'
|
||||
},
|
||||
home: {
|
||||
title: 'الرسائل'
|
||||
},
|
||||
workbench: {
|
||||
title: 'لوحة العمل'
|
||||
},
|
||||
user: {
|
||||
title: 'مركز المستخدم',
|
||||
privacyPolicy: 'سياسة الخصوصية',
|
||||
userAgreement: 'اتفاقية المستخدم',
|
||||
edition: 'الإصدار',
|
||||
language: 'اللغة',
|
||||
loginOut: 'تسجيل الخروج',
|
||||
chinese: 'الصينية',
|
||||
english: 'الإنجليزية',
|
||||
german: 'الألمانية',
|
||||
italian: 'الإيطالية',
|
||||
spanish: 'الإسبانية',
|
||||
changeSuccess: 'تم التغيير بنجاح',
|
||||
languageChange: 'تغيير اللغة',
|
||||
privacy: 'سياسة الخصوصية',
|
||||
agreement: 'اتفاقية المستخدم'
|
||||
},
|
||||
msg: {
|
||||
title: 'الرسائل'
|
||||
},
|
||||
tips: {
|
||||
noData: 'مفيش بيانات'
|
||||
}
|
||||
}
|
||||
63
common/locales/de_DE.js
Normal file
@ -0,0 +1,63 @@
|
||||
import homePage from './homePage/de'
|
||||
export default {
|
||||
homePage,
|
||||
common: {
|
||||
title: 'Aidex',
|
||||
},
|
||||
nav: {
|
||||
home: 'Startseite',
|
||||
run: 'Betrieb',
|
||||
energyStorage: 'Energiespeicher',
|
||||
user: 'Mein Konto'
|
||||
},
|
||||
login: {
|
||||
title: 'Anmelden',
|
||||
account: 'Konto',
|
||||
placeholderAccount: 'Bitte Konto eingeben',
|
||||
pwd: 'Passwort',
|
||||
placeholderPassword: 'Bitte Passwort eingeben',
|
||||
code: 'Verifizierungscode',
|
||||
codeTip: 'Bitte Verifizierungscode eingeben',
|
||||
autoLogin: 'Automatisch anmelden',
|
||||
loginButton: 'Anmelden',
|
||||
logoutButton: 'Abmelden',
|
||||
forget: 'Passwort vergessen',
|
||||
reg: 'Konto registrieren',
|
||||
noLogin: 'Nicht angemeldet',
|
||||
privacyPolicy: 'Datenschutzrichtlinie',
|
||||
userAgreement: 'Nutzungsvereinbarung',
|
||||
codeLoading: 'Verifizierungscode wird abgerufen',
|
||||
noStation: 'Keine Station vorhanden',
|
||||
noFunction: 'Funktion noch nicht verfügbar',
|
||||
lang: 'ZH'
|
||||
},
|
||||
home: {
|
||||
title: 'Benachrichtigungen'
|
||||
},
|
||||
workbench: {
|
||||
title: 'Arbeitsplatz'
|
||||
},
|
||||
user: {
|
||||
title: 'Benutzerzentrum',
|
||||
privacyPolicy: 'Datenschutzrichtlinie',
|
||||
userAgreement: 'Nutzungsvereinbarung',
|
||||
edition: 'Version',
|
||||
language: 'Sprache',
|
||||
loginOut: 'Abmelden',
|
||||
chinese: 'Chinesisch',
|
||||
english: 'Englisch',
|
||||
german: 'Deutsch',
|
||||
italian: 'Italienisch',
|
||||
spanish: 'Spanisch',
|
||||
changeSuccess: 'Erfolgreich gewechselt',
|
||||
languageChange: 'Sprache wechseln',
|
||||
privacy: 'Datenschutzrichtlinie',
|
||||
agreement: 'Nutzungsvereinbarung'
|
||||
},
|
||||
msg: {
|
||||
title: 'Benachrichtigungen'
|
||||
},
|
||||
tips: {
|
||||
noData: 'Keine Daten verfügbar'
|
||||
}
|
||||
}
|
||||
@ -1,4 +1,60 @@
|
||||
import homePage from './homePage/en'
|
||||
export default {
|
||||
homePage
|
||||
homePage,
|
||||
common: {
|
||||
title: 'Aidex',
|
||||
},
|
||||
nav: {
|
||||
home: 'Home page',
|
||||
run:"Run",
|
||||
energyStorage: 'Energy storage',
|
||||
user: 'Mine',
|
||||
},
|
||||
login: {
|
||||
title: 'Login',
|
||||
account:"Account",
|
||||
placeholderAccount: 'Enter Account',
|
||||
pwd:"Password",
|
||||
placeholderPassword: 'Enter Password',
|
||||
code:"Verification code",
|
||||
codeTip:"Please enter the verification code",
|
||||
autoLogin: 'Auto Login',
|
||||
loginButton: 'Login',
|
||||
logoutButton: 'Logout',
|
||||
forget: 'Forget Password',
|
||||
reg: 'Resister Account',
|
||||
noLogin: 'No Login',
|
||||
privacyPolicy:"Privacy Policy",
|
||||
userAgreement:"User agreement",
|
||||
codeLoading:"Getting verification code",
|
||||
noStation:"No power station",
|
||||
noFunction:"The function is not yet open.",
|
||||
lang:'EN'
|
||||
},
|
||||
home: {
|
||||
title: 'Home'
|
||||
},
|
||||
user: {
|
||||
title: 'User',
|
||||
privacyPolicy:"Privacy Policy",
|
||||
userAgreement:"User agreement",
|
||||
edition:"Version",
|
||||
language:"Language",
|
||||
loginOut:"Log out",
|
||||
chinese:"Chinese",
|
||||
english:"English",
|
||||
german:'German',
|
||||
italian:'Italian',
|
||||
spanish:'Spanish',
|
||||
changeSuccess:"The switch was successful",
|
||||
languageChange:"Language Switch",
|
||||
privacy:"Privacy Policy",
|
||||
agreement:"User Agreement"
|
||||
},
|
||||
msg: {
|
||||
title: 'Message'
|
||||
},
|
||||
tips:{
|
||||
noData:"No data available"
|
||||
}
|
||||
}
|
||||
|
||||
63
common/locales/es_ES.js
Normal file
@ -0,0 +1,63 @@
|
||||
import homePage from './homePage/es'
|
||||
export default {
|
||||
homePage,
|
||||
common: {
|
||||
title: 'Aidex',
|
||||
},
|
||||
nav: {
|
||||
home: 'Inicio',
|
||||
run: 'Funcionamiento',
|
||||
energyStorage: 'Almacenamiento de energía',
|
||||
user: 'Mi cuenta'
|
||||
},
|
||||
login: {
|
||||
title: 'Inicio de sesión',
|
||||
account: 'Cuenta',
|
||||
placeholderAccount: 'Por favor, ingrese la cuenta',
|
||||
pwd: 'Contraseña',
|
||||
placeholderPassword: 'Por favor, ingrese la contraseña',
|
||||
code: 'Código de verificación',
|
||||
codeTip: 'Por favor, ingrese el código de verificación',
|
||||
autoLogin: 'Inicio de sesión automático',
|
||||
loginButton: 'Iniciar sesión',
|
||||
logoutButton: 'Cerrar sesión',
|
||||
forget: 'Olvidé la contraseña',
|
||||
reg: 'Registrar cuenta',
|
||||
noLogin: 'Sin iniciar sesión',
|
||||
privacyPolicy: 'Política de privacidad',
|
||||
userAgreement: 'Acuerdo de usuario',
|
||||
codeLoading: 'Obteniendo el código de verificación',
|
||||
noStation: 'Sin central eléctrica',
|
||||
noFunction: 'Función no disponible aún',
|
||||
lang: 'ES'
|
||||
},
|
||||
home: {
|
||||
title: 'Mensajes'
|
||||
},
|
||||
workbench: {
|
||||
title: 'Panel de trabajo'
|
||||
},
|
||||
user: {
|
||||
title: 'Centro de usuario',
|
||||
privacyPolicy: 'Política de privacidad',
|
||||
userAgreement: 'Acuerdo de usuario',
|
||||
edition: 'Versión',
|
||||
language: 'Idioma',
|
||||
loginOut: 'Cerrar sesión',
|
||||
chinese: 'Chino',
|
||||
english: 'Inglés',
|
||||
german: 'Alemán',
|
||||
italian: 'Italiano',
|
||||
spanish: 'Español',
|
||||
changeSuccess: 'Cambio exitoso',
|
||||
languageChange: 'Cambio de idioma',
|
||||
privacy: 'Política de privacidad',
|
||||
agreement: 'Acuerdo de usuario'
|
||||
},
|
||||
msg: {
|
||||
title: 'Mensajes'
|
||||
},
|
||||
tips: {
|
||||
noData: 'Sin datos disponibles'
|
||||
}
|
||||
}
|
||||
63
common/locales/fr_FR.js
Normal file
@ -0,0 +1,63 @@
|
||||
import homePage from './homePage/fr'
|
||||
export default {
|
||||
homePage,
|
||||
common: {
|
||||
title: 'Aidex',
|
||||
},
|
||||
nav: {
|
||||
home: 'Accueil',
|
||||
run: 'Fonctionnement',
|
||||
energyStorage: 'Stockage d\'énergie',
|
||||
user: 'Mon compte'
|
||||
},
|
||||
login: {
|
||||
title: 'Connexion',
|
||||
account: 'Compte',
|
||||
placeholderAccount: 'Veuillez saisir le compte',
|
||||
pwd: 'Mot de passe',
|
||||
placeholderPassword: 'Veuillez saisir le mot de passe',
|
||||
code: 'Code de vérification',
|
||||
codeTip: 'Veuillez saisir le code de vérification',
|
||||
autoLogin: 'Connexion automatique',
|
||||
loginButton: 'Se connecter',
|
||||
logoutButton: 'Se déconnecter',
|
||||
forget: 'Mot de passe oublié',
|
||||
reg: 'Créer un compte',
|
||||
noLogin: 'Non connecté',
|
||||
privacyPolicy: 'Politique de confidentialité',
|
||||
userAgreement: 'Conditions d\'utilisation',
|
||||
codeLoading: 'Obtention du code de vérification en cours',
|
||||
noStation: 'Aucune centrale électrique',
|
||||
noFunction: 'Fonctionnalité non encore disponible',
|
||||
lang: 'FR'
|
||||
},
|
||||
home: {
|
||||
title: 'Messages'
|
||||
},
|
||||
workbench: {
|
||||
title: 'Bureau de travail'
|
||||
},
|
||||
user: {
|
||||
title: 'Espace utilisateur',
|
||||
privacyPolicy: 'Politique de confidentialité',
|
||||
userAgreement: 'Conditions d\'utilisation',
|
||||
edition: 'Version',
|
||||
language: 'Langue',
|
||||
loginOut: 'Se déconnecter',
|
||||
chinese: 'Chinois',
|
||||
english: 'Anglais',
|
||||
german: 'Allemand',
|
||||
italian: 'Italien',
|
||||
spanish: 'Espagnol',
|
||||
changeSuccess: 'Changement réussi',
|
||||
languageChange: 'Changement de langue',
|
||||
privacy: 'Politique de confidentialité',
|
||||
agreement: 'Conditions d\'utilisation'
|
||||
},
|
||||
msg: {
|
||||
title: 'Messages'
|
||||
},
|
||||
tips: {
|
||||
noData: 'Aucune donnée disponible'
|
||||
}
|
||||
}
|
||||
526
common/locales/homePage/ar.js
Normal file
@ -0,0 +1,526 @@
|
||||
export default {
|
||||
home: {
|
||||
login: 'تسجيل الدخول',
|
||||
account: 'رقم الحساب',
|
||||
password: 'كلمة المرور',
|
||||
placeAccount: 'يرجى إدخال رقم الحساب',
|
||||
placePassword: 'يرجى إدخال كلمة المرور',
|
||||
noLogin: 'الوظيفة غير متاحة مؤقتاً',
|
||||
loadAmmeter: 'عداد التحميل',
|
||||
dieselGeneratorMeter: 'عداد مولد الديزل',
|
||||
energyStorageMeter: 'عداد تخزين الطاقة',
|
||||
alarmTypeList: [
|
||||
{
|
||||
name: 'تنبيهات في الوقت الفعلي'
|
||||
},
|
||||
{
|
||||
name: 'تنبيهات تاريخية'
|
||||
}
|
||||
],
|
||||
lang: 'تبديل اللغة',
|
||||
ydty: 'قراءة وموافقة',
|
||||
yhxy: 'اتفاقية المستخدم',
|
||||
and: 'و',
|
||||
yszc: 'سياسة الخصوصية',
|
||||
yhxyhyszc: 'اتفاقية المستخدم وسياسة الخصوصية',
|
||||
msgf: 'مرحباً بك في تطبيق "زيتا كلاود"، نحن نولي أهمية كبيرة لحماية معلوماتك الشخصية وخصوصيتك. يرجى القراءة بعناية قبل استخدام هذا التطبيق',
|
||||
msgs: 'استخدام هذا التطبيق فانك تقر بأنك قد قرأت وفهمت ووافقت على جميع شروط هذه الاتفاقية. إذا كنت لا توافق على أي جزء من هذه الاتفاقية يرجى التوقف عن استخدام هذا التطبيق فوراً',
|
||||
agree: 'موافق',
|
||||
quit: 'غير موافق',
|
||||
guestLogin: 'تسجيل دخول الضيف',
|
||||
checkFirst: 'يرجى أولاً وضع علامة للموافقة على اتفاقية المستخدم وسياسة الخصوصية',
|
||||
emsControl: 'تحكم EMS',
|
||||
stationType: [
|
||||
{
|
||||
name: 'موقع الصين'
|
||||
},
|
||||
{
|
||||
name: 'موقع الخارج'
|
||||
}
|
||||
],
|
||||
useElecPrice: 'سعر الكهرباء',
|
||||
workStatus: 'حالة التشغيل: ',
|
||||
standing: 'خامل',
|
||||
activePowerpcs: 'الطاقة النشطة: ',
|
||||
operatingPower: 'طاقة التشغيل',
|
||||
accumulatedElectricityConsumption: 'الاستهلاك التراكمي للكهرباء',
|
||||
pvKpi: 'KPI للطاقة الكهروضوئية',
|
||||
saveStandardCoal: 'توفير الفحم القياسي (طن)',
|
||||
equivalentCo2Reduction: 'انبعاثات CO2 المخفضة (طن)',
|
||||
equivalentTreePlantings: 'الأشجار المزروعة المكافئة (شجرة)',
|
||||
dailyPowerGeneration: 'التوليد اليومي',
|
||||
cumulativePowerGeneration: 'التوليد التراكمي',
|
||||
socialContribution: 'المساهمة الاجتماعية',
|
||||
energyStorageRevenueReport: 'تقرير إيرادات تخزين الطاقة',
|
||||
pvStorageRevenueReport: 'تقرير إيرادات الألواح الكهروضوئية',
|
||||
projectMonthlyPower: 'حجم التوليد الشهري للمشروع',
|
||||
powerGeneration: 'حجم التوليد',
|
||||
mpptTopu: 'مخطط طوبولوجيا MPPT',
|
||||
powerGenerationCapacity: 'طاقة التوليد',
|
||||
batVoltage: 'جهد BAT',
|
||||
batCurrent: 'تيار BAT',
|
||||
busVoltage: 'جهد BAT',
|
||||
busCurrent: 'تيار BAT',
|
||||
dc: 'تيار التيار المستمر',
|
||||
dcVoltage: 'جهد التيار المستمر',
|
||||
operatingPower: 'طاقة التشغيل',
|
||||
pvPower: 'الطاقة',
|
||||
enmonthTotalChargePrice: 'إجمالي المبلغ الإجمالي لإجمالي حجم الشحن الشهري (يوان صيني)',
|
||||
enmonthTotalDisChargePrice: 'إجمالي المبلغ الإجمالي لحجم التفريغ الشهري (يوان صيني)',
|
||||
enearnings: 'الإيرادات (يوان صيني)',
|
||||
pvSwitch: 'مفتاح PV',
|
||||
stationDatacom: 'بيانات محطة توليد الكهرباء',
|
||||
sevenDaycom:'أسابيع',
|
||||
todayEarning: 'مكاسب اليوم ( EGP )',
|
||||
totalRevenue: 'الدخل التراكمي(EGP)',
|
||||
ratedPower: 'تصنيف السلطة(kW)',
|
||||
currentMonthlyPowerGeneration: 'توليد الطاقة في هذا الشهر',
|
||||
ratedPowernokw: 'تصنيف السلطة',
|
||||
powerGenerationStatus: 'مشروع توليد الطاقة',
|
||||
monthlyIncome: 'دخل الشهر(EGP)',
|
||||
lowV:'الجهد المنخفض الجانب',
|
||||
lowI:'الجانب المنخفض الحالي',
|
||||
highV:'الجانب عالية الجهد',
|
||||
timesArr: [{
|
||||
text: '1 دقيقة',
|
||||
value: 1
|
||||
},
|
||||
{
|
||||
text: '1 دقيقة',
|
||||
value: 5
|
||||
},
|
||||
{
|
||||
text: '10 دقيقة',
|
||||
value: 10
|
||||
},
|
||||
{
|
||||
text: '15 دقيقة',
|
||||
value: 15
|
||||
},
|
||||
{
|
||||
text: '20 دقيقة',
|
||||
value: 20
|
||||
},
|
||||
{
|
||||
text: '30 دقيقة',
|
||||
value: 30
|
||||
}
|
||||
],
|
||||
esiCab: 'خزانة تخزين الطاقة المدمجة',
|
||||
gridCab: 'خزانة توصيل الشبكة',
|
||||
grid: 'توزيع الطاقة للمستخدمين',
|
||||
activePower: 'الطاقة النشطة (كيلوواط): ',
|
||||
charge: 'الشحن',
|
||||
disCharge: 'التفريغ',
|
||||
load: 'الحمل',
|
||||
gridCabSwitch: 'مفتاح خزانة توصيل الشبكة: ',
|
||||
dCCabin: 'حجرة التيار المستمر',
|
||||
PCSCab: 'حجرة PCS المدمجة المضغوطة',
|
||||
legend: 'المثال',
|
||||
normal: 'التشغيل العادي',
|
||||
fault: 'الخلل',
|
||||
overhaul: 'الصيانة',
|
||||
shutStan: 'الاستعداد/الإغلاق',
|
||||
reactivePower: 'الطاقة التفاعلية (كيلوواط): ',
|
||||
totalV: 'إجمالي الجهد (فولت): ',
|
||||
current: 'التيار (أمبير): ',
|
||||
maxCellVol: 'الجهد الأقصى للخلية: ',
|
||||
minCellVol: 'الجهد الأدنى للخلية: ',
|
||||
shutdown: 'الإغلاق',
|
||||
standby: 'الاستعداد',
|
||||
run: 'التشغيل',
|
||||
allActivePower: 'إجمالي الطاقة النشطة (كيلوواط): ',
|
||||
cabinet: 'خزانة تخزين الطاقة',
|
||||
gridMeter: 'عداد جانب الشبكة',
|
||||
photovoltaic: 'الطاقة الكهروضوئية',
|
||||
battery: 'البطارية',
|
||||
status: 'الحالة: ',
|
||||
busbar: 'الناقل',
|
||||
dieselGenerator: 'مولد الديزل',
|
||||
ammeter: 'عداد الكهرباء',
|
||||
device: 'المعدات',
|
||||
earning: 'الإيرادات',
|
||||
alarm: 'إنذار',
|
||||
policy: 'استراتيجية',
|
||||
stationTopo: 'توبولوجيا محطة الطاقة',
|
||||
deviceMonitor: 'مراقبة المعدات',
|
||||
runCurve: 'منحنيات التشغيل',
|
||||
chargeDisData: 'بيانات الشحن والتفريغ',
|
||||
stationData: 'بيانات محطة الطاقة',
|
||||
environmentalData: 'بيانات التحكم البيئي',
|
||||
sevenDay: 'آخر سبعة أيام',
|
||||
monthDay: 'آخر شهر',
|
||||
monthThree: 'آخر ثلاثة أشهر',
|
||||
yearDay: 'العام الماضي',
|
||||
tip: 'تنبيه',
|
||||
loading: 'تحميل الموارد...',
|
||||
power: 'الطاقة (كيلوواط)',
|
||||
photovoltaicCharge: 'الشحن الكهروضوئي',
|
||||
chargingandDischarging: 'حجم الشحن والتفريغ',
|
||||
safeDaysUnit: 'أيام التشغيل الآمن (أيام)',
|
||||
totalCapacity: 'إجمالي السعة المركبة',
|
||||
systemConversionEfficiency: 'كفاءة تحويل النظام',
|
||||
currentPower: 'الطاقة الحالية',
|
||||
totalCharge: 'إجمالي حجم الشحن',
|
||||
totalDischarge: 'إجمالي حجم التفريغ',
|
||||
dailyCharge: 'حجم الشحن اليومي',
|
||||
dailyDischarge: 'حجم التفريغ اليومي',
|
||||
dayPhotovoltaic: 'حجم التوليد الكهروضوئي',
|
||||
noData: 'لا توجد بيانات متاحة',
|
||||
station: 'محطة طاقة',
|
||||
electricityPrice: 'سعر الكهرباء الوطنية',
|
||||
mine: 'الخاص بي',
|
||||
on: 'مجمع',
|
||||
off: 'مجزأ',
|
||||
noPermission: 'رفض الوصول',
|
||||
contactAdmin: 'نظام جماعي، لم يفتح للجمهور بعد، اتصل بالمسؤول لتفعيل الحساب',
|
||||
title: 'وضع الضيف'
|
||||
},
|
||||
price: {
|
||||
elePriceQuery: 'استفسار عن سعر الكهرباء',
|
||||
queryCriteria: 'معايير البحث',
|
||||
sift: 'تصفية',
|
||||
station: 'محطة الطاقة',
|
||||
selectStation: 'اختر محطة الطاقة',
|
||||
provinceRegion: 'المناطق الإقليمية والبلدية',
|
||||
selectProvinceRegion: 'اختر المناطق الإقليمية والبلدية',
|
||||
customerType: 'مستهلك الكهرباء',
|
||||
selectEleCustomers: 'يرجى تحديد مستهلك الكهرباء',
|
||||
eleType: 'نظام/تصنيف إدارة الكهرباء',
|
||||
selectEleType: 'يرجى تحديد نظام/تصنيف إدارة الكهرباء',
|
||||
volLevel: 'مستوى الجهد',
|
||||
selectVoltageLevel: 'يرجى تحديد مستوى الجهد',
|
||||
exeTime: 'تاريخ التنفيذ',
|
||||
selectExeTime: 'يرجى تحديد تاريخ التنفيذ',
|
||||
noData: 'البيانات فارغة',
|
||||
eleLevel: 'مستوى سعر الكهرباء',
|
||||
fsdd: 'سعر الكهرباء حسب وقت الاستخدام',
|
||||
useElecPrice: 'سعر الكهرباء',
|
||||
dietailUnit: '(يوان صيني/كيلوواط ساعة)',
|
||||
eleprice: 'سعر الكهرباء',
|
||||
nonTime: 'سعر الكهرباء غير مرتبطة بوقت الاستخدام',
|
||||
proxyPrice: 'سعر شراء الكهرباء من الوكالة',
|
||||
transmission: 'سعر نقل الكهرباء',
|
||||
attachPrice: 'الأموال الحكومية والرسوم الإضافية',
|
||||
curve: 'منحنى',
|
||||
list: 'قائمة',
|
||||
noMoreData: 'لا توجد بيانات أخرى متاحة',
|
||||
spike: 'ذروة',
|
||||
speak: 'قمة',
|
||||
regular: 'عادية',
|
||||
lowValley: 'وادي',
|
||||
deepValley: 'وادي عميق',
|
||||
peakDifference: 'أقصى فرق بين الذروة والوادي',
|
||||
peakDifferencePrice: 'أقصى فرق في السعر بين الذروة والوادي',
|
||||
dayHighPrice: 'أعلى السعر اليومي',
|
||||
dayLowtPrice: 'أدنى السعر اليومي',
|
||||
historytrend: 'الاتجاهات التاريخية',
|
||||
reset: 'إعادة الضبط',
|
||||
sure: 'تأكيد',
|
||||
sharp: 'ذروة',
|
||||
peak: 'قمة',
|
||||
flat: 'عادية',
|
||||
valley: 'وادي'
|
||||
},
|
||||
mine: {
|
||||
accountSec: 'أمان الحساب',
|
||||
aboutUs: 'نبذة عنا',
|
||||
message: 'إشعارات الرسائل',
|
||||
changeLanguage: 'تبديل اللغة',
|
||||
sysSetting: 'إعدادات النظام',
|
||||
messageAlerts: 'تنبيهات الرسائل',
|
||||
acceptMessageAlerts: 'تلقي تنبيهات الرسائل',
|
||||
messageDetail: 'تفاصيل الرسالة',
|
||||
closeMessage: 'عند تعطيل هذه الميزة، سيبظهر مؤشر الإشعار فقط عند تلقي الرسالة دون عرض المحتوى.',
|
||||
sound: 'الصوت والاهتزاز',
|
||||
acceptSound: 'تشغيل الصوت أو الاهتزاز عند استلام الرسالة',
|
||||
settingSound: 'تعديل الصوت والاهتزاز في إعدادات النظام',
|
||||
update: 'تذكير بتحديث البرنامج',
|
||||
updateAlerts: 'تلقي إشعارات عند توفر إصدارات جديدة من البرنامج',
|
||||
noUpdate: 'حدث بالفعل، لا داعي للإصدار H5 المصغر أو إصدار! حقق من وجود تحديثات!',
|
||||
general: 'عام',
|
||||
version: 'الإصدار الحالي',
|
||||
Privacy: 'سياسة الخصوصية',
|
||||
UserAgreement: 'اتفاقية المستخدم',
|
||||
logOut: 'تسجيل الخروج',
|
||||
notAva: 'هذه الميزة غير متاحة حاليًا',
|
||||
setPassword: 'يرجى تعيين كلمة مرور لتسجيل الدخول',
|
||||
passwordService: 'تحديث كلمة المرور بانتظام لتعزيز الأمان',
|
||||
oldPassword: 'كلمة المرور القديمة',
|
||||
inputOldPossword: 'يرجى إدخال كلمة المرور القديمة',
|
||||
newPassword: 'كلمة المرور الجديدة',
|
||||
inputNewPassword: 'يرجى إدخال كلمة مرور جديدة',
|
||||
surePassword: 'تأكيد كلمة المرور',
|
||||
inputSurePassword: 'يرجى تأكيد كلمة المرور',
|
||||
PasswordError: 'يجب أن تتكون كلمات المرور من 6 إلى 12 حرفاً وتشتمل على مزيج من الأرقام والحروف (وليس أرقاماً فقط)',
|
||||
submit: 'إرسال',
|
||||
resetSubmit: 'يرجى إعادة إدخال كلمة المرور',
|
||||
passwordEqual: 'كلمات المرور المدخلة غير متطابقة',
|
||||
tip: 'تنذير',
|
||||
updateSuccess: 'تم تغيير كلمة المرور بنجاح، يرجى تسجيل الدخول مرة أخرى',
|
||||
inputError: 'للمعلومات التي أدخلتها غير صحيحة، يرجى تصحيحها وفقاً للمطلبات.',
|
||||
hoenergypower: 'سينوكتات تخزين الطاقة',
|
||||
companyHomepage: 'الصفحة الرئيسية للشركة',
|
||||
technicalServices: 'الخدمات الفنية',
|
||||
termsOfService: 'شروط الخدمة',
|
||||
downUpdate: 'سواءاً تنزيل التحديثات؟',
|
||||
appTitle: 'منصة إدارة تخزين الطاقة الذكية',
|
||||
lookDetail: 'عرض التفاصيل',
|
||||
noMessage: 'لا توجد رسائل حالية',
|
||||
sureRead: 'تأكيد القراءة',
|
||||
cancel: 'الغاء',
|
||||
messageDetail: 'تفاصيل الرسالة',
|
||||
operateSuccess: 'نجح العملية',
|
||||
operateFail: 'فشل العملية',
|
||||
messageReaded: 'تمت قراءة هذه الرسالة، لا داعي لتكرار الإجراء'
|
||||
},
|
||||
device: {
|
||||
inputNameQuery: 'أدخل الاسم للبحث',
|
||||
query: 'بحث',
|
||||
all: 'كل',
|
||||
queryResult: 'نتائج البحث',
|
||||
pcsTopu: 'مخطط طوبولوجيا PCS',
|
||||
totalAcReaPower: 'إجمالي الطاقة النشطة/الطاقة التفاعلية',
|
||||
timeGranularity: 'دقة الوقت',
|
||||
deviceData: 'بيانات المعدات',
|
||||
acPower: 'الطاقة النشطة لتيار المتردد',
|
||||
acRecPower: 'الطاقة التفاعلية لتيار المتردد',
|
||||
gridFrequency: 'درت الشبكة',
|
||||
abLineVol: 'خط جهد AB',
|
||||
bcLineVol: 'خط جهد BC',
|
||||
caLineVol: 'خط جهد CA',
|
||||
acur: 'تيار فاز A',
|
||||
bcur: 'تيار فاز B',
|
||||
ccur: 'تيار فاز C',
|
||||
DCPower: 'طاقة التيار المستمر',
|
||||
DCVol: 'جهد التيار المستمر',
|
||||
DCCurrent: 'تيار التيار المستمر',
|
||||
acbreaker: 'قطع زرارة التيار المتردد',
|
||||
dcbreaker: 'قطع زرارة التيار المستمر',
|
||||
runState: 'حالة التشغيل',
|
||||
rsState: 'حالة التوصيل عن بعد أو بالقرب من الشبكة',
|
||||
gridMode: 'حالة التوصيل والانفصال عن الشبكة',
|
||||
deviceState: 'حالة الجهاز',
|
||||
totalActivePower: 'إجمالي الطاقة النشطة',
|
||||
totalReactivePower: 'إجمالي الطاقة التفاعلية',
|
||||
local: 'على الموقع',
|
||||
distance: 'عن بعد',
|
||||
grid: 'متصل بشبكة',
|
||||
offGrid: 'غير متصل بشبكة',
|
||||
standby: 'الاستعداد',
|
||||
shutdown: 'الإغلاق',
|
||||
run: 'التشغيل',
|
||||
fault: 'الخلل',
|
||||
charge: 'الشحن',
|
||||
discharge: 'التفريغ',
|
||||
standing: 'خامل',
|
||||
localAutomatic: 'تنفيذ محلي',
|
||||
localManual: 'يدوي محلي',
|
||||
timesArr: [
|
||||
{
|
||||
label: '1 دقيقة',
|
||||
value: 1
|
||||
},
|
||||
{
|
||||
label: '5 دقائق',
|
||||
value: 5
|
||||
},
|
||||
{
|
||||
label: '10 دقائق',
|
||||
value: 10
|
||||
},
|
||||
{
|
||||
label: '15 دقيقة',
|
||||
value: 15
|
||||
},
|
||||
{
|
||||
label: '20 دقيقة',
|
||||
value: 20
|
||||
},
|
||||
{
|
||||
label: '30 دقيقة',
|
||||
value: 30
|
||||
}
|
||||
],
|
||||
yx: 'المكثف عن بعد',
|
||||
yc: 'القيان عن بعد',
|
||||
data: 'البيانات',
|
||||
noData: 'البيانات فارغة',
|
||||
loadText: {
|
||||
loadmore: 'سحب رفقة لأعلى',
|
||||
loading: 'تمت بجهد',
|
||||
nomore: 'أصبح لا يوجد المزيد'
|
||||
},
|
||||
clusterTotalVol: 'مستوى الجهد الكلي للبطارية / SOC',
|
||||
runData: 'بيانات التشغيل',
|
||||
cumCharge: 'الشحن التراكمي',
|
||||
cumDischarge: 'التفريغ التراكمي',
|
||||
avgTem: 'متوسط درجة الحرارة',
|
||||
avgVol: 'متوسط الجهد',
|
||||
maxCellVol: 'الجهد الأقصى للخلية',
|
||||
minCellVol: 'الجهد الأدنى للخلية',
|
||||
maxCellTem: 'أعلى درجة حرارة للخلية',
|
||||
minCellTem: 'أدنى درجة حرارة للخلية',
|
||||
maxvolDiff: 'أقصى فرق جهد كهربائي',
|
||||
maxTemDiff: 'أقصى فرق في درجة الحرارة',
|
||||
batteryGroupNum: 'رقم مجموعة البطارية',
|
||||
cellPostion: 'موقع الخلية',
|
||||
vol: 'الجهد',
|
||||
volqua: 'جودة الجهد الكهربائي',
|
||||
curqua: 'جودة التيار',
|
||||
acRea: 'الطاقة النشطة/التفاعلية',
|
||||
avol: 'جهد فاز A',
|
||||
bvol: 'جهد فاز B',
|
||||
cvol: 'جهد فاز C',
|
||||
zxygzdl: 'إجمالي الطاقة النشطة الأمامية',
|
||||
dlj: 'الطاقة (ذروة)',
|
||||
dlf: 'الطاقة (قمة)',
|
||||
dlp: 'الطاقة (عادية)',
|
||||
dlg: 'الطاقة (وادي)',
|
||||
fxygzdl: 'إجمالي الطاقة النشطة العكسية',
|
||||
hxyggl: 'الطاقة النشطة للطور المركب',
|
||||
hxwggl: 'الطاقة التفاعلية للطور المركب',
|
||||
hxglys: 'معامل القدرة للطور المركب',
|
||||
a: 'الطور A',
|
||||
b: 'الطور B',
|
||||
c: 'الطور C',
|
||||
active: 'الطاقة النشطة',
|
||||
reactive: 'الطاقة التفاعلية',
|
||||
current: 'التيار',
|
||||
EMU: 'بيانات تشغيل خزانة توصيل الشبكة',
|
||||
on: 'مجمع',
|
||||
off: 'مجزأ',
|
||||
emuSwitchPosition: 'وضع مفتاح خزانة توصيل الشبكة',
|
||||
emuRemoteOperation: 'تشغيل خزانة توصيل الشبكة عن بعد',
|
||||
emuKnifePosition: 'وضع مفتاح الأرض للخزانة المتصلة بالشبكة',
|
||||
online: 'متصل',
|
||||
offline: 'غير متصل',
|
||||
temConCabRunData: 'بيانات تشغيل وحدة التحكم في درجة الحرارة',
|
||||
aTem: 'درجة حرارة فاز A',
|
||||
bTem: 'درجة حرارة فاز B',
|
||||
cTem: 'درجة حرارة فاز C',
|
||||
dehumidifierRunData: 'بيانات تشغيل جهاز التهوية',
|
||||
tem: 'درجة الحرارة',
|
||||
hum: 'الرطوبة',
|
||||
humStartValue: 'قيمة بدء الرطوبة',
|
||||
humStopValue: 'قيمة توقف الرطوبة',
|
||||
ammeterRunData: 'بيانات تشغيل عداد الكهرباء',
|
||||
frequency: 'التردد',
|
||||
perceptualPower: 'الطاقة الحثية',
|
||||
CapacitivePower: 'الطاقة السعة',
|
||||
volRatio: 'نسبة توزيع الجهد',
|
||||
maxVol: 'الجهد الأقصى',
|
||||
cellPostion: 'موقع CELL',
|
||||
minVol: 'الجهد الأدنى',
|
||||
maxTem: 'أعلى درجة حرارة',
|
||||
minTem: 'أدنى درجة حرارة',
|
||||
cellVolChart: 'مخطط شريطي لجهد الخلية',
|
||||
cellTemChart: 'مخطط شريطي لدرجة حرارة الخلية',
|
||||
volUnit: 'الجهد/وحدة',
|
||||
temUnit: 'درجة الحرارة/وحدة',
|
||||
num: 'وحدة',
|
||||
stackTotalVol: 'جهد التجميع',
|
||||
leftTemCabin: 'درجة حرارة الجانب الأيسر للحُجرة',
|
||||
leftHubCabin: 'الرطوبة الجانب الأيسر للحُجرة',
|
||||
rightTemCabin: 'درجة حرارة الجانب الأيمن للحُجرة',
|
||||
rightHubCabin: 'الرطوبة الجانب الأيمن للحُجرة',
|
||||
stackCurrent: 'تيار التجميع',
|
||||
stackTotalVol: 'جهد التجميع',
|
||||
stackTotalCurrent: 'تيار التجميع الكلي',
|
||||
stackSoc: 'SOC للتجميع',
|
||||
CumulativeCharge: 'الشحن التراكمي',
|
||||
CumulativeDischarge: 'التفريغ التراكمي',
|
||||
zdz: 'مقاومة العزل الموجبة',
|
||||
fdz: 'مقاومة العزل السالبة',
|
||||
rechargeCapacity: 'الطاقة الممكنة للشحن',
|
||||
dischargeCapacity: 'الطاقة الممكنة للتفريغ',
|
||||
totalMaxVolData: 'أقصى جهد كلي للبطارية',
|
||||
stackCell: 'رقم الكتلة',
|
||||
totalMinVolData: 'أدنى جهد كلي للبطارية',
|
||||
stackNum: 'رقم الكتلة',
|
||||
groupNum: 'رقم مجموعة البطارية',
|
||||
cellLocation: 'موقع الخلية',
|
||||
historyData: 'البيانات التاريخية'
|
||||
},
|
||||
earning: {
|
||||
changeDischargePro: 'نظرة عامة على شحن وتفريغ المشروع',
|
||||
capacity: 'السعة المركبة',
|
||||
monthTotalCharge: 'إجمالي طاقة الشحن لهذا الشهر',
|
||||
monthTotalDischarge: 'إجمالي طاقة التفريغ لهذا الشهر',
|
||||
monthEff: 'كفاءة تحويل النظام الشهرية',
|
||||
chargeVol: 'الشحن التراكمي',
|
||||
dischargeVol: 'التفريغ التراكمي',
|
||||
totalEff: 'كفاءة تحويل النظام التراكمية',
|
||||
projectRevenue: 'حالة إيرادات المشروع',
|
||||
monthTotalChargePrice: 'إجمالي المبلغ لإجمالي حجم الشحن الشهري (يوان صيني)',
|
||||
monthTotalDisChargePrice: 'إجمالي المبلغ لإجمالي حجم التفريغ الشهري (يوان صيني)',
|
||||
earnings: 'الإيرادات (يوان صيني)',
|
||||
earningsDetail: 'تفاصيل الإيرادات',
|
||||
charge: 'الشحن',
|
||||
ele: 'الطاقة (كيلوواط ساعة)',
|
||||
expend: 'المصروفات (يوان صيني)',
|
||||
noChargeData: 'لا توجد بيانات شحن متاحة',
|
||||
disCharge: 'التفريغ',
|
||||
noDisChargeData: 'لا توجد بيانات تفريغ متاحة',
|
||||
year: 'سنة',
|
||||
month: 'شهر',
|
||||
day: 'يوم',
|
||||
hour: 'ساعة',
|
||||
minute: 'دقيقة',
|
||||
second: 'ثانية'
|
||||
},
|
||||
policy: {
|
||||
planCurve: 'منحنى الجدول الزمني',
|
||||
planCurveTem: 'قالب منحنى الجدول الزمني',
|
||||
IssueDevice: 'جهاز إصدار الأوامر',
|
||||
operateOrNot: 'سواء في التشغيل',
|
||||
socUplimit: 'الحد الأعلى لـ SOC',
|
||||
socDownlimit: 'الحد الأدنى لـ SOC',
|
||||
effectiveTime: 'وقت السريان',
|
||||
selectEffectiveTime: 'يرجى تحديد وقت السريان',
|
||||
distributeResult: 'نتيجة الإصدار',
|
||||
notDelivered: 'لم يتم الإصدار',
|
||||
commandDistribution: 'إصدار الأوامر',
|
||||
controlDistribution: 'إصدار التحكم',
|
||||
genSetting: 'الإعدادات العامة',
|
||||
save: 'حفظ',
|
||||
pleaseInputValue: 'يرجى إدخال القيمة',
|
||||
pleaseInputPassword: 'يرجى إدخال كلمة المرور',
|
||||
password: 'كلمة المرور',
|
||||
policyTypeList: [
|
||||
{
|
||||
name: 'إصدار الأوامر'
|
||||
},
|
||||
{
|
||||
name: 'الإعدادات العامة'
|
||||
}
|
||||
],
|
||||
radioList: [
|
||||
{
|
||||
name: 'تشغيل',
|
||||
disabled: false
|
||||
},
|
||||
{
|
||||
name: 'عدم تشغيل',
|
||||
disabled: false
|
||||
}
|
||||
],
|
||||
selectIssueDevice: 'يرجى تحديد جهاز إصدار الأوامر',
|
||||
deliverErrorNewTip: 'خطأ في تكوين التعيين أو لم يتم التكوين، يرجى التحقق وإعادة المحاولة!',
|
||||
passwordSuccess: 'كلمة المرور صحيحة',
|
||||
passwordError: 'كلمة المرور غير صحيحة',
|
||||
isOpen: 'سواء تمكين',
|
||||
isClose: 'سواء تعطيل',
|
||||
distributeSuccess: 'نجح الإصدار',
|
||||
distributeFail: 'فشل الإصدار',
|
||||
isNum: 'يرجى التحقق من أن قيمة الإدخال رقمية',
|
||||
saveSuccess: 'نجح الحفظ',
|
||||
saveError: 'فشل الحفظ',
|
||||
delivered: 'اكتمل الإصدار',
|
||||
selectPlanCurveTem: 'يرجى تحديد قالب منحنى الجدول الزمني',
|
||||
deliverErrorTip: 'تجاوز طاقة الشحن والتفريغ الطاقة المقدرة، يرجى التحقق من إعدادات منحنى الجدول الزمني!',
|
||||
deliverTip: 'سواء تأكيد إصدار الأمر?',
|
||||
policyTitle: 'إصدار الاستراتيجية'
|
||||
}
|
||||
|
||||
}
|
||||
562
common/locales/homePage/de.js
Normal file
@ -0,0 +1,562 @@
|
||||
export default {
|
||||
home: {
|
||||
login: 'Anmelden',
|
||||
account: 'Konto',
|
||||
password: 'Passwort',
|
||||
placeAccount: 'Bitte geben Sie Ihr Konto ein',
|
||||
placePassword: 'Bitte geben Sie Ihr Passwort ein',
|
||||
noLogin: 'Funktion vorübergehend nicht verfügbar',
|
||||
loadAmmeter: 'Lastzähler',
|
||||
dieselGeneratorMeter: 'Dieselerzeugungszähler',
|
||||
energyStorageMeter: 'Energiespeicherzähler',
|
||||
emsControl: 'EMS-Kontrolle',
|
||||
alarmTypeList: [
|
||||
{
|
||||
name: 'Echtzeit-Alarm'
|
||||
},
|
||||
{
|
||||
name: 'Historischer Alarm'
|
||||
}
|
||||
],
|
||||
lang: 'Sprache wechseln',
|
||||
ydty: 'Lesen und zustimmen',
|
||||
yhxy: 'Nutzungsbedingungen',
|
||||
and: 'und',
|
||||
yszc: 'Datenschutzrichtlinie',
|
||||
yhxyhyszc: 'Nutzungsbedingungen und Datenschutzrichtlinie',
|
||||
msgf: 'Willkommen bei der „Zeta Cloud“ APP, wir legen großen Wert auf den Schutz Ihrer persönlichen Daten und Ihrer Privatsphäre. Bitte lesen Sie sie aufmerksam, bevor Sie diese App nutzen.',
|
||||
msgs: 'Wenn Sie diese App nutzen, bedeutet dies, dass Sie alle Bestimmungen dieser Vereinbarung gelesen, verstanden und akzeptiert haben. Wenn Sie mit irgendeinem Inhalt dieser Vereinbarung nicht einverstanden sind, beenden Sie die Nutzung dieser App bitte sofort.',
|
||||
agree: 'Zustimmen',
|
||||
quit: 'Nicht zustimmen',
|
||||
guestLogin: 'Gast-Anmeldung',
|
||||
checkFirst: 'Bitte stimmen Sie zuerst den Nutzungsbedingungen und Datenschutzrichtlinien zu',
|
||||
stationType: [
|
||||
{
|
||||
name: 'Chinesische Station'
|
||||
},
|
||||
{
|
||||
name: 'Internationale Station'
|
||||
}
|
||||
],
|
||||
useElecPrice: 'Strompreis',
|
||||
workStatus: 'Betriebsstatus: ',
|
||||
standing: 'Ruhezustand',
|
||||
activePowerpcs: 'Wirkleistung: ',
|
||||
operatingPower: 'Betriebsleistung',
|
||||
accumulatedElectricityConsumption: 'Kumulierte Strommenge',
|
||||
pvKpi: 'Photovoltaik-KPI',
|
||||
saveStandardCoal: 'Eingesparte Standardkohle (Tonnen)',
|
||||
equivalentCo2Reduction: 'CO₂-Reduktion (Tonnen)',
|
||||
equivalentTreePlantings: 'Equivalent gepflanzt Bäume (Stück)',
|
||||
dailyPowerGeneration: 'Täglicher Stromertrag',
|
||||
cumulativePowerGeneration: 'Kumulierter Stromertrag',
|
||||
socialContribution: 'Gesellschaftlicher Beitrag',
|
||||
energyStorageRevenueReport: 'Energiespeicher-Ertragsbericht',
|
||||
pvStorageRevenueReport: 'Photovoltaik-Ertragsbericht',
|
||||
projectMonthlyPower: 'Monatlicher Stromertrag des Projekts',
|
||||
powerGeneration: 'Stromertrag',
|
||||
mpptTopu: 'MPPT-Topologiediagramm',
|
||||
powerGenerationCapacity: 'Erzeugungsleistung',
|
||||
batVoltage: 'BAT-Spannung',
|
||||
batCurrent: 'BAT-Strom',
|
||||
busVoltage: 'BAT-Spannung',
|
||||
busCurrent: 'BAT-Strom',
|
||||
dc: 'Gleichstrom',
|
||||
dcVoltage: 'Gleichspannung',
|
||||
operatingPower: 'Betriebsleistung',
|
||||
pvPower: 'Leistung',
|
||||
enmonthTotalChargePrice: 'Gesamtwert der monatlichen Ladungsmenge (EUR)',
|
||||
enmonthTotalDisChargePrice: 'Gesamtwert der monatlichen Entladungsmenge (EUR)',
|
||||
enearnings: 'Ertrag (EUR)',
|
||||
pvSwitch: 'PV-Schalter',
|
||||
stationDatacom: 'Kraftwerksdaten',
|
||||
sevenDaycom: 'Woche',
|
||||
todayEarning: 'Heutiger Gewinn (EUR)',
|
||||
totalRevenue: 'Gesamtgewinn (EUR)',
|
||||
ratedPower: 'Nennleistung (kW)',
|
||||
currentMonthlyPowerGeneration: 'Stromerzeugung in diesem Monat',
|
||||
ratedPowernokw: 'Nennleistung',
|
||||
powerGenerationStatus: 'Projekterzeugung',
|
||||
monthlyIncome: 'Gewinn in diesem Monat (EUR)',
|
||||
lowV: 'Niederspannung Seitenspannung',
|
||||
lowI: 'Niederspannungs-Seitenstrom',
|
||||
highV: 'Hochspannung Seitenspannung',
|
||||
timesArr: [
|
||||
{
|
||||
text: '1 Minute',
|
||||
value: 1
|
||||
},
|
||||
{
|
||||
text: '5 Minuten',
|
||||
value: 5
|
||||
},
|
||||
{
|
||||
text: '10 Minuten',
|
||||
value: 10
|
||||
},
|
||||
{
|
||||
text: '15 Minuten',
|
||||
value: 15
|
||||
},
|
||||
{
|
||||
text: '20 Minuten',
|
||||
value: 20
|
||||
},
|
||||
{
|
||||
text: '30 Minuten',
|
||||
value: 30
|
||||
}
|
||||
],
|
||||
esiCab: 'Integrierter Energiespeicherschrank',
|
||||
gridCab: 'Netzkopplungsschrank',
|
||||
grid: 'Nutzerstromverteilung',
|
||||
activePower: 'Wirkleistung (kW):',
|
||||
charge: 'Laden',
|
||||
disCharge: 'Entladen',
|
||||
load: 'Last',
|
||||
gridCabSwitch: 'Netzkopplungsschrank-Schalter:',
|
||||
dCCabin: 'Gleichstrom-Container',
|
||||
PCSCab: 'PCS-Hochspannungs-Integrierter Container',
|
||||
legend: 'Legende',
|
||||
normal: 'Normaler Betrieb',
|
||||
fault: 'Fehler',
|
||||
overhaul: 'Wartung',
|
||||
shutStan: 'Standby/Stillstand',
|
||||
reactivePower: 'Blindleistung (kW):',
|
||||
totalV: 'Gesamtspannung (V):',
|
||||
current: 'Strom (A):',
|
||||
maxCellVol: 'Maximale Einzelzellenspannung:',
|
||||
minCellVol: 'Minimale Einzelzellenspannung:',
|
||||
shutdown: 'Stillstand',
|
||||
standby: 'Standby',
|
||||
run: 'Betrieb',
|
||||
allActivePower: 'Gesamtwirkleistung (kW):',
|
||||
cabinet: 'Energiespeicherschrank',
|
||||
gridMeter: 'Netzseitiger Zähler',
|
||||
photovoltaic: 'Photovoltaik',
|
||||
battery: 'Batterie',
|
||||
status: 'Status:',
|
||||
busbar: 'Sammlungsschiene',
|
||||
dieselGenerator: 'Dieselgenerator',
|
||||
ammeter: 'Zähler',
|
||||
device: 'Gerät',
|
||||
earning: 'Ertrag',
|
||||
alarm: 'Alarm',
|
||||
policy: 'Strategie',
|
||||
stationTopo: 'Kraftwerkstopologie',
|
||||
deviceMonitor: 'Geräteüberwachung',
|
||||
runCurve: 'Betriebskurve',
|
||||
chargeDisData: 'Lade- und Entladedaten',
|
||||
stationData: 'Kraftwerksdaten',
|
||||
environmentalData: 'Umgebungskontrollsl Daten',
|
||||
sevenDay: 'Letzte 7 Tage',
|
||||
monthDay: 'Letzter Monat',
|
||||
monthThree: 'Letzte 3 Monate',
|
||||
yearDay: 'Letztes Jahr',
|
||||
tip: 'Hinweis',
|
||||
loading: 'Ressourcen werden geladen...',
|
||||
power: 'Leistung (kW)',
|
||||
photovoltaicCharge: 'Photovoltaik-Ladung',
|
||||
chargingandDischarging: 'Lade- und Entlademenge',
|
||||
safeDaysUnit: 'Tage des sicheren Betriebs (Tage)',
|
||||
totalCapacity: 'Installierte Gesamtkapazität',
|
||||
systemConversionEfficiency: 'Systemumwandlungseffizienz',
|
||||
currentPower: 'Aktuelle Leistung',
|
||||
totalCharge: 'Gesamtladungsmenge',
|
||||
totalDischarge: 'Gesamtentladungsmenge',
|
||||
dailyCharge: 'Tägliche Ladungsmenge',
|
||||
dailyDischarge: 'Tägliche Entladungsmenge',
|
||||
dayPhotovoltaic: 'Photovoltaik-Stromerzeugung',
|
||||
noData: 'Keine Daten verfügbar',
|
||||
station: 'Kraftwerk',
|
||||
electricityPrice: 'Landesweite Strompreise',
|
||||
mine: 'Mein',
|
||||
on: 'Eingeschaltet',
|
||||
off: 'Ausgeschaltet',
|
||||
noPermission: 'Kein Zugriffsrecht',
|
||||
contactAdmin: 'Gruppensystem, vorübergehend nicht öffentlich zugänglich, bitte kontaktieren Sie den Administrator zur Kontoeröffnung',
|
||||
title: 'Gastmodus'
|
||||
},
|
||||
price: {
|
||||
elePriceQuery: 'Strompreisanfrage',
|
||||
queryCriteria: 'Abfragebedingungen',
|
||||
sift: 'Filtern',
|
||||
station: 'Kraftwerk',
|
||||
selectStation: 'Bitte wählen Sie ein Kraftwerk aus',
|
||||
provinceRegion: 'Provinz-/Stadtregion',
|
||||
selectProvinceRegion: 'Bitte wählen Sie eine Provinz-/Stadtregion aus',
|
||||
customerType: 'Stromkunde',
|
||||
selectEleCustomers: 'Bitte wählen Sie einen Stromkunden aus',
|
||||
eleType: 'Stromabteilungsstruktur/-kategorie',
|
||||
selectEleType: 'Bitte wählen Sie eine Stromabteilungsstruktur/-kategorie aus',
|
||||
volLevel: 'Spannungsebene',
|
||||
selectVoltageLevel: 'Bitte wählen Sie eine Spannungsebene aus',
|
||||
exeTime: 'Ausführungsdatum',
|
||||
selectExeTime: 'Bitte wählen Sie ein Ausführungsdatum aus',
|
||||
noData: 'Daten sind leer',
|
||||
eleLevel: 'Strompreisniveau',
|
||||
fsdd: 'Zeitabhängiger Strompreis',
|
||||
useElecPrice: 'Strompreis',
|
||||
dietailUnit: '(EUR/kWh)',
|
||||
eleprice: 'Strompreis',
|
||||
nonTime: 'Nicht-zeitabhängiger Strompreis',
|
||||
proxyPrice: 'Stromeinkaufspreis des Händlers',
|
||||
transmission: 'Durchleitungsentgelt',
|
||||
attachPrice: 'Strompreis für staatliche Fonds und Zusatzkosten',
|
||||
curve: 'Kurve',
|
||||
list: 'Liste',
|
||||
noMoreData: 'Vorläufig keine weiteren Daten',
|
||||
spike: 'Spitzenlast',
|
||||
speak: 'Hochlast',
|
||||
regular: 'Normallast',
|
||||
lowValley: 'Schwachlast',
|
||||
deepValley: 'Talast',
|
||||
peakDifference: 'Maximale Spitzenlast-Talast-Differenz',
|
||||
peakDifferencePrice: 'Maximale Spitzenlast-Talast-Preisdifferenz',
|
||||
dayHighPrice: 'Tageshöchststrompreis',
|
||||
dayLowtPrice: 'Tagestiefststrompreis',
|
||||
historytrend: 'Historischer Trend',
|
||||
reset: 'Zurücksetzen',
|
||||
sure: 'Bestätigen',
|
||||
sharp: 'Spitzenlast',
|
||||
peak: 'Hochlast',
|
||||
flat: 'Normallast',
|
||||
valley: 'Talast'
|
||||
},
|
||||
mine: {
|
||||
accountSec: 'Kontosicherheit',
|
||||
aboutUs: 'Über uns',
|
||||
message: 'Benachrichtigungen',
|
||||
changeLanguage: 'Sprache wechseln',
|
||||
sysSetting: 'Systemeinstellungen',
|
||||
messageAlerts: 'Nachrichtenbenachrichtigung',
|
||||
acceptMessageAlerts: 'Nachrichtenbenachrichtigungen empfangen',
|
||||
messageDetail: 'Nachrichtendetails',
|
||||
closeMessage: 'Wenn deaktiviert, wird bei Empfang einer Nachricht nur ein Hinweis angezeigt, nicht der Nachrichteninhalt.',
|
||||
sound: 'Ton und Vibration',
|
||||
acceptSound: 'Ton oder Vibration bei Nachrichtenempfang abspielen',
|
||||
settingSound: 'Gehen Sie zu den Systemeinstellungen, um Ton und Vibration zu ändern.',
|
||||
update: 'Softwareupdate-Benachrichtigung',
|
||||
updateAlerts: 'Benachrichtigung bei Veröffentlichung einer neuen Version dieser Software',
|
||||
noUpdate: 'Die Mini-Programm- oder H5-Version ist bereits die neueste, keine Überprüfung auf Updates erforderlich!',
|
||||
general: 'Allgemein',
|
||||
version: 'Aktuelle Version',
|
||||
Privacy: 'Datenschutzrichtlinie',
|
||||
UserAgreement: 'Nutzungsbedingungen',
|
||||
logOut: 'Abmelden',
|
||||
notAva: 'Diese Funktion ist vorübergehend nicht verfügbar',
|
||||
setPassword: 'Bitte legen Sie ein Anmeldepasswort fest',
|
||||
passwordService: 'Erhöhen Sie die Sicherheit durch regelmäßige Passwortaktualisierung',
|
||||
oldPassword: 'Altes Passwort',
|
||||
inputOldPossword: 'Bitte geben Sie Ihr altes Passwort ein',
|
||||
newPassword: 'Neues Passwort',
|
||||
inputNewPassword: 'Bitte geben Sie Ihr neues Passwort ein',
|
||||
surePassword: 'Passwort bestätigen',
|
||||
inputSurePassword: 'Bitte bestätigen Sie Ihr Passwort',
|
||||
PasswordError: 'Das Passwort muss eine Kombination aus 6-12 Ziffern und Zeichen sein (darf nicht nur aus Ziffern bestehen)',
|
||||
submit: 'Absenden',
|
||||
resetSubmit: 'Bitte geben Sie das Passwort erneut ein',
|
||||
passwordEqual: 'Die eingegebenen Passwörter stimmen nicht überein',
|
||||
tip: 'Hinweis',
|
||||
updateSuccess: 'Passwort erfolgreich geändert, bitte melden Sie sich erneut an.',
|
||||
inputError: 'Die von Ihnen eingegebenen Informationen sind fehlerhaft, bitte korrigieren Sie sie gemäß den Hinweisen.',
|
||||
hoenergypower: 'Sinotech Energy Storage',
|
||||
companyHomepage: 'Unternehmensstartseite',
|
||||
technicalServices: 'Technischer Service',
|
||||
termsOfService: 'Servicebedingungen',
|
||||
downUpdate: 'Update herunterladen?',
|
||||
appTitle: 'Intelligente Energiespeicher-Management-Plattform',
|
||||
lookDetail: 'Details anzeigen',
|
||||
noMessage: 'Keine Nachrichten',
|
||||
sureRead: 'Als gelesen bestätigen',
|
||||
cancel: 'Abbrechen',
|
||||
messageDetail: 'Nachrichtendetails',
|
||||
operateSuccess: 'Aktion erfolgreich',
|
||||
operateFail: 'Aktion fehlgeschlagen',
|
||||
messageReaded: 'Diese Nachricht wurde bereits gelesen, keine Wiederholung der Aktion erforderlich'
|
||||
},
|
||||
device: {
|
||||
inputNameQuery: 'Namen zur Suche eingeben',
|
||||
query: 'Suchen',
|
||||
all: 'Alle',
|
||||
queryResult: 'Suchergebnisse',
|
||||
pcsTopu: 'PCS-Topologiediagramm',
|
||||
totalAcReaPower: 'Gesamtwirk-/Gesamtblindleistung',
|
||||
timeGranularity: 'Zeitgranularität',
|
||||
deviceData: 'Gerätedaten',
|
||||
acPower: 'Wechselstrom-Wirkleistung',
|
||||
acRecPower: 'Wechselstrom-Blindleistung',
|
||||
gridFrequency: 'Netzfrequenz',
|
||||
abLineVol: 'AB-Leiterspannung',
|
||||
bcLineVol: 'BC-Leiterspannung',
|
||||
caLineVol: 'CA-Leiterspannung',
|
||||
acur: 'A-Phasenstrom',
|
||||
bcur: 'B-Phasenstrom',
|
||||
ccur: 'C-Phasenstrom',
|
||||
DCPower: 'Gleichstromleistung',
|
||||
DCVol: 'Gleichspannung',
|
||||
DCCurrent: 'Gleichstrom',
|
||||
acbreaker: 'Wechselstromschalter',
|
||||
dcbreaker: 'Gleichstromschalter',
|
||||
runState: 'Betriebsstatus',
|
||||
rsState: 'Fern-/Vor-Ort-Status',
|
||||
gridMode: 'Netzparallel-/Inselbetriebsstatus',
|
||||
deviceState: 'Gerätestatus',
|
||||
totalActivePower: 'Gesamtwirkleistung',
|
||||
totalReactivePower: 'Gesamtblindleistung',
|
||||
local: 'Vor Ort',
|
||||
distance: 'Fern',
|
||||
grid: 'Netzparallel',
|
||||
offGrid: 'Inselnetz',
|
||||
standby: 'Standby',
|
||||
shutdown: 'Stillstand',
|
||||
run: 'Betrieb',
|
||||
fault: 'Fehler',
|
||||
charge: 'Laden',
|
||||
discharge: 'Entladen',
|
||||
standing: 'Ruhezustand',
|
||||
localAutomatic: 'Lokal automatisch',
|
||||
localManual: 'Lokal manuell',
|
||||
timesArr: [
|
||||
{
|
||||
label: '1 Minute',
|
||||
value: 1
|
||||
},
|
||||
{
|
||||
label: '5 Minuten',
|
||||
value: 5
|
||||
},
|
||||
{
|
||||
label: '10 Minuten',
|
||||
value: 10
|
||||
},
|
||||
{
|
||||
label: '15 Minuten',
|
||||
value: 15
|
||||
},
|
||||
{
|
||||
label: '20 Minuten',
|
||||
value: 20
|
||||
},
|
||||
{
|
||||
label: '30 Minuten',
|
||||
value: 30
|
||||
}
|
||||
],
|
||||
yx: 'Fernsignal',
|
||||
yc: 'Fernmessung',
|
||||
data: 'Daten',
|
||||
noData: 'Keine Daten verfügbar',
|
||||
loadText: {
|
||||
loadmore: 'Leicht nach oben ziehen',
|
||||
loading: 'Wird geladen',
|
||||
nomore: 'Keine Daten mehr'
|
||||
},
|
||||
clusterTotalVol: 'Bundesamtsspannung/SOC',
|
||||
runData: 'Betriebsdaten',
|
||||
cumCharge: 'Kumulierte Ladungsmenge',
|
||||
cumDischarge: 'Kumulierte Entladungsmenge',
|
||||
avgTem: 'Durchschnittstemperatur',
|
||||
avgVol: 'Durchschnittsspannung',
|
||||
maxCellVol: 'Maximale Einzelzellenspannung',
|
||||
minCellVol: 'Minimale Einzelzellenspannung',
|
||||
maxCellTem: 'Maximale Einzelzellentemperatur',
|
||||
minCellTem: 'Minimale Einzelzellentemperatur',
|
||||
maxvolDiff: 'Maximale Spannungs differenz',
|
||||
maxTemDiff: 'Maximale Temperaturdifferenz',
|
||||
batteryGroupNum: 'Batteriepacknummer',
|
||||
cellPostion: 'CELL-Position',
|
||||
vol: 'Spannung',
|
||||
volqua: 'Spannungsqualität',
|
||||
curqua: 'Stromqualität',
|
||||
acRea: 'Wirk-/Blindleistung',
|
||||
avol: 'A-Phasenspannung',
|
||||
bvol: 'B-Phasenspannung',
|
||||
cvol: 'C-Phasenspannung',
|
||||
zxygzdl: 'Vorwärts-Wirkgesamtenergie',
|
||||
dlj: 'Energie (Spitzenspitze)',
|
||||
dlf: 'Energie (Spitze)',
|
||||
dlp: 'Energie (Normal)',
|
||||
dlg: 'Energie (Talast)',
|
||||
fxygzdl: 'Rückwärts-Wirkgesamtenergie',
|
||||
hxyggl: 'Gesamtwirkleistung',
|
||||
hxwggl: 'Gesamtblindleistung',
|
||||
hxglys: 'Gesamtleistungsfaktor',
|
||||
a: 'A-Phase',
|
||||
b: 'B-Phase',
|
||||
c: 'C-Phase',
|
||||
active: 'Wirkleistung',
|
||||
reactive: 'Blindleistung',
|
||||
current: 'Strom',
|
||||
EMU: 'Netzkopplungsschrank-Betriebsdaten',
|
||||
on: 'Eingeschaltet',
|
||||
off: 'Ausgeschaltet',
|
||||
emuSwitchPosition: 'Netzkopplungsschrank-Schalterposition',
|
||||
emuRemoteOperation: 'Netzkopplungsschrank-Fernbedienung',
|
||||
emuKnifePosition: 'Netzkopplungsschrank-Erdungsmesserposition',
|
||||
online: 'Online',
|
||||
offline: 'Offline',
|
||||
temConCabRunData: 'Temperaturregelungsgehäuse-Betriebsdaten',
|
||||
aTem: 'A-Phasentemperatur',
|
||||
bTem: 'B-Phasentemperatur',
|
||||
cTem: 'C-Phasentemperatur',
|
||||
dehumidifierRunData: 'Entfeuchtungsgerät-Betriebsdaten',
|
||||
tem: 'Temperatur',
|
||||
hum: 'Luftfeuchtigkeit',
|
||||
humStartValue: 'Luftfeuchtigkeitsstartwert',
|
||||
humStopValue: 'Luftfeuchtigkeitsstopppwert',
|
||||
ammeterRunData: 'Zähler-Betriebsdaten',
|
||||
frequency: 'Frequenz',
|
||||
perceptualPower: 'Induktive Wirkenergie',
|
||||
CapacitivePower: 'Kapazitive Wirkenergie',
|
||||
volRatio: 'Spannungsgrößenverteilungsverhältnis',
|
||||
maxVol: 'Höchstspannung',
|
||||
cellPostion: 'CELL-Position',
|
||||
minVol: 'Mindestspannung',
|
||||
maxTem: 'Höchsttemperatur',
|
||||
minTem: 'Mindesttemperatur',
|
||||
cellVolChart: 'Einzelzellenspannungshistogramm',
|
||||
cellTemChart: 'Einzelzellentemperaturhistogramm',
|
||||
volUnit: 'Spannung/Stück',
|
||||
temUnit: 'Temperatur/Stück',
|
||||
num: 'Stück',
|
||||
stackTotalVol: 'Stapelgesamtspannung',
|
||||
leftTemCabin: 'Containerlinke Seitentemperatur',
|
||||
leftHubCabin: 'Containerlinke Seitenluftfeuchtigkeit',
|
||||
rightTemCabin: 'Containerrechte Seitentemperatur',
|
||||
rightHubCabin: 'Containerrechte Seitenluftfeuchtigkeit',
|
||||
stackCurrent: 'Stapelstrom',
|
||||
stackTotalVol: 'Stapelgesamtspannung',
|
||||
stackTotalCurrent: 'Stapelgesamtstrom',
|
||||
stackSoc: 'Stapel-SOC',
|
||||
CumulativeCharge: 'Kumulierte Ladungsmenge',
|
||||
CumulativeDischarge: 'Kumulierte Entladungsmenge',
|
||||
zdz: 'Isolationspositivwiderstand',
|
||||
fdz: 'Isolationsnegativwiderstand',
|
||||
rechargeCapacity: 'Ladelfähige Menge',
|
||||
dischargeCapacity: 'Entladefähige Menge',
|
||||
totalMaxVolData: 'Höchste Bundesamtsspannung',
|
||||
stackCell: 'Bundnummer',
|
||||
totalMinVolData: 'Niedrigste Bundesamtsspannung',
|
||||
stackNum: 'Batteriepacknummer',
|
||||
groupNum: 'Batteriepacknummer',
|
||||
cellLocation: 'Zellposition',
|
||||
historyData: 'Verlaufsdaten'
|
||||
},
|
||||
earning: {
|
||||
changeDischargePro: 'Projekt-Lade- und Entladeübersicht',
|
||||
capacity: 'Installierte Kapazität',
|
||||
monthTotalCharge: 'Monatliche Gesamtladungsmenge',
|
||||
monthTotalDischarge: 'Monatliche Gesamtentladungsmenge',
|
||||
monthEff: 'Monatliche Systemumwandlungseffizienz',
|
||||
chargeVol: 'Kumulierte Ladungsmenge',
|
||||
dischargeVol: 'Kumulierte Entladungsmenge',
|
||||
totalEff: 'Kumulierte Systemumwandlungseffizienz',
|
||||
projectRevenue: 'Projektertragssituation',
|
||||
monthTotalChargePrice: 'Gesamtwert der monatlichen Ladungsmenge (EUR)',
|
||||
monthTotalDisChargePrice: 'Gesamtwert der monatlichen Entladungsmenge (EUR)',
|
||||
earnings: 'Ertrag (EUR)',
|
||||
earningsDetail: 'Ertragsdetails',
|
||||
charge: 'Laden',
|
||||
ele: 'Energiemenge (kWh)',
|
||||
expend: 'Ausgaben (EUR)',
|
||||
noChargeData: 'Vorläufig keine Ladedaten',
|
||||
disCharge: 'Entladen',
|
||||
noDisChargeData: 'Vorläufig keine Entladedaten',
|
||||
year: 'Jahr',
|
||||
month: 'Monat',
|
||||
day: 'Tag',
|
||||
hour: 'Stunde',
|
||||
minute: 'Minute',
|
||||
second: 'Sekunde'
|
||||
},
|
||||
alarm: {
|
||||
sift: 'Filtern',
|
||||
device: 'Zugehöriges Gerät',
|
||||
placeSelect: 'Bitte wählen Sie',
|
||||
event: 'Ereignis',
|
||||
level: 'Alarmstufe',
|
||||
timeRange: 'Zeitbereich',
|
||||
placeholderDate: 'Bitte wählen Sie einen Zeitbereich aus',
|
||||
reset: 'Zurücksetzen',
|
||||
sure: 'Bestätigen',
|
||||
noData: 'Daten sind leer',
|
||||
confirm: 'Bestätigt',
|
||||
noConfirmed: 'Unbestätigt',
|
||||
alarmTypeList: [
|
||||
{
|
||||
name: 'Echtzeit-Alarm'
|
||||
},
|
||||
{
|
||||
name: 'Historischer Alarm'
|
||||
}
|
||||
],
|
||||
loadText: {
|
||||
loadmore: 'Leicht nach oben ziehen',
|
||||
loading: 'Wird geladen',
|
||||
nomore: 'Keine weiteren Daten'
|
||||
},
|
||||
allStation: 'Alle Kraftwerke',
|
||||
alarm: 'Alarm',
|
||||
noDevice: 'Vorläufig keine Gerätedaten',
|
||||
placeholderInput: 'Bitte Alarminhalt eingeben',
|
||||
status: 'Status',
|
||||
station: 'Zugehöriges Kraftwerk',
|
||||
alarmTime: 'Alarmzeit',
|
||||
confirmer: 'Bestätiger',
|
||||
confirmTime: 'Bestätigungszeit'
|
||||
},
|
||||
policy: {
|
||||
planCurve: 'Plan-Kurve',
|
||||
planCurveTem: 'Plan-Kurvenvorlage',
|
||||
IssueDevice: 'Befehlszielgerät',
|
||||
operateOrNot: 'In Betrieb',
|
||||
socUplimit: 'SOC-Obergrenze',
|
||||
socDownlimit: 'SOC-Untergrenze',
|
||||
effectiveTime: 'Gültigkeitszeit',
|
||||
selectEffectiveTime: 'Bitte wählen Sie die Gültigkeitszeit',
|
||||
distributeResult: 'Übertragungsergebnis',
|
||||
notDelivered: 'Nicht übertragen',
|
||||
commandDistribution: 'Befehlssendung',
|
||||
controlDistribution: 'Steuerungssendung',
|
||||
genSetting: 'Allgemeine Einstellungen',
|
||||
save: 'Speichern',
|
||||
pleaseInputValue: 'Bitte Wert eingeben',
|
||||
pleaseInputPassword: 'Bitte geben Sie Ihr Passwort ein',
|
||||
password: 'Passwort',
|
||||
policyTypeList: [
|
||||
{
|
||||
name: 'Befehlssendung'
|
||||
},
|
||||
{
|
||||
name: 'Allgemeine Einstellungen'
|
||||
}
|
||||
],
|
||||
radioList: [
|
||||
{
|
||||
name: 'In Betrieb',
|
||||
disabled: false
|
||||
},
|
||||
{
|
||||
name: 'Außer Betrieb',
|
||||
disabled: false
|
||||
}
|
||||
],
|
||||
selectIssueDevice: 'Bitte wählen Sie das Befehlssendegerät',
|
||||
deliverErrorNewTip: 'Zuordnungskonfiguration fehlerhaft oder nicht konfiguriert, bitte überprüfen und erneut versuchen!',
|
||||
passwordSuccess: 'Passwort korrekt',
|
||||
passwordError: 'Passwort falsch',
|
||||
isOpen: 'Aktivieren',
|
||||
isClose: 'Deaktivieren',
|
||||
distributeSuccess: 'Sendung erfolgreich',
|
||||
distributeFail: 'Sendung fehlgeschlagen',
|
||||
isNum: 'Bitte überprüfen Sie, ob der eingegebene Wert eine Zahl ist',
|
||||
saveSuccess: 'Speichern erfolgreich',
|
||||
saveError: 'Speichern fehlgeschlagen',
|
||||
delivered: 'Bereits gesendet',
|
||||
selectPlanCurveTem: 'Bitte wählen Sie eine Plan-Kurvenvorlage',
|
||||
deliverErrorTip: 'Lade-/Entladeleistung größer als Nennleistung, bitte überprüfen Sie die Plan-Kurven-Einstellungen!',
|
||||
deliverTip: 'Befehlssendung wirklich bestätigen?',
|
||||
policyTitle: 'Strategieübertragung'
|
||||
}
|
||||
};
|
||||
@ -3,33 +3,527 @@ export default {
|
||||
login: 'Login',
|
||||
account: 'Account',
|
||||
password: 'Password',
|
||||
placeAccount: "Place input account",
|
||||
placePassword: 'Place input password',
|
||||
noLogin: 'The feature is not available yet',
|
||||
loadAmmeter: 'Load Meter',
|
||||
dieselGeneratorMeter: 'Diesel Meter',
|
||||
energyStorageMeter: 'Cabinet Meter',
|
||||
placeAccount: 'Please enter account',
|
||||
placePassword: 'Please enter password',
|
||||
noLogin: 'Function not available yet',
|
||||
loadAmmeter: 'Load electric meter',
|
||||
dieselGeneratorMeter: 'Diesel generator electric meter',
|
||||
energyStorageMeter: 'Energy storage electric meter',
|
||||
emsControl: 'EMS Control',
|
||||
alarmTypeList: [{
|
||||
name: 'Real-Time Alarm'
|
||||
name: 'Real-time alarms'
|
||||
}, {
|
||||
name: 'History Alarm'
|
||||
name: 'Historical alarms'
|
||||
}],
|
||||
lang: 'Switch languages',
|
||||
lang: 'Switch language',
|
||||
ydty: 'Read and agree',
|
||||
yhxy: 'User Agreement',
|
||||
and: 'and',
|
||||
yszc: 'Privacy Policy',
|
||||
yhxyhyszc: 'User Agreement and Privacy Policy',
|
||||
msgf: 'Welcome to the "Small Savings and Great Energy" APP, we attach great importance to the protection of your personal information and privacy. Please read this app carefully before you use it',
|
||||
msgs: 'When you use this application, it means that you have read, understood and agreed to accept all the terms of this agreement. If you do not agree with any of the contents of this Agreement, please stop using this Application immediately.',
|
||||
agree: 'Agree',
|
||||
quit: 'Disagree',
|
||||
guestLogin: 'Guest Login',
|
||||
checkFirst: 'Please check the box to agree to the User Agreement and Privacy Policy',
|
||||
stationType:[{
|
||||
name:'China Station'
|
||||
},{
|
||||
name:'Overseas Station'
|
||||
}]
|
||||
yhxy: 'User agreement',
|
||||
and: 'And',
|
||||
yszc: 'Privacy policy',
|
||||
yhxyhyszc: 'User agreement and privacy policy',
|
||||
msgf: 'Welcome to the "Zeta Cloud" APP. We attach great importance to your personal information and privacy protection. Please read carefully before using this app',
|
||||
msgs: 'By using this app, you acknowledge that you have read, understood, and agreed to all terms of this Agreement. If you do not agree to any part of this Agreement, please stop using the app immediately.',
|
||||
agree: 'Yes',
|
||||
quit: 'No',
|
||||
guestLogin: 'Guest login',
|
||||
checkFirst: 'Please check to agree to the User Agreement and Privacy Policy first',
|
||||
stationType: [{
|
||||
name: 'China site'
|
||||
}, {
|
||||
name: 'Overseas site'
|
||||
}],
|
||||
useElecPrice: 'Electricity price',
|
||||
workStatus: 'Operating status:',
|
||||
standing: 'Standby',
|
||||
activePowerpcs: 'Active power:',
|
||||
operatingPower: 'Operating power',
|
||||
accumulatedElectricityConsumption: 'Cumulative electricity',
|
||||
pvKpi: 'PV KPI',
|
||||
saveStandardCoal: 'Standard coal saved (ton)',
|
||||
equivalentCo2Reduction: 'CO2 emission reduction (ton)',
|
||||
equivalentTreePlantings: 'Equivalent trees planted (tree)',
|
||||
dailyPowerGeneration: 'Daily power generation',
|
||||
cumulativePowerGeneration: 'Cumulative power generation',
|
||||
socialContribution: 'Social contribution',
|
||||
energyStorageRevenueReport: 'Energy storage revenue report',
|
||||
pvStorageRevenueReport: 'PV revenue report',
|
||||
projectMonthlyPower: 'Monthly project power generation',
|
||||
powerGeneration: 'Power generation',
|
||||
mpptTopu: 'MPPT Topology Diagram',
|
||||
powerGenerationCapacity: 'Generation power',
|
||||
batVoltage: 'BAT voltage',
|
||||
batCurrent: 'BAT current',
|
||||
busVoltage: 'BAT voltage',
|
||||
busCurrent: 'BAT current',
|
||||
dc: 'DC current',
|
||||
dcVoltage: 'DC voltage',
|
||||
pvPower: 'Power',
|
||||
enmonthTotalChargePrice: 'Total charging capacity & price this month (EUR)',
|
||||
enmonthTotalDisChargePrice: 'Total discharging capacity & price this month',
|
||||
enearnings: 'Revenue (EUR)',
|
||||
pvSwitch: 'PV switch',
|
||||
stationDatacom: 'Station Data',
|
||||
sevenDaycom: 'Week',
|
||||
todayEarning: 'Today Earning(EUR)',
|
||||
totalRevenue: 'Cumulative Earnings(EUR)',
|
||||
ratedPower: 'Rated Power(kW)',
|
||||
currentMonthlyPowerGeneration: 'Current monthly power generation',
|
||||
ratedPowernokw: 'Rated Power',
|
||||
powerGenerationStatus: 'power Generation Status',
|
||||
monthlyIncome: 'Monthly income(EUR)',
|
||||
lowV: 'low-side voltage',
|
||||
lowI: 'low-side current',
|
||||
highV: 'high-side voltage',
|
||||
timesArr: [{
|
||||
text: '1 minute',
|
||||
value: 1
|
||||
}, {
|
||||
text: '5 minutes',
|
||||
value: 5
|
||||
}, {
|
||||
text: '10 minutes',
|
||||
value: 10
|
||||
}, {
|
||||
text: '15 minutes',
|
||||
value: 15
|
||||
}, {
|
||||
text: '20 minutes',
|
||||
value: 20
|
||||
}, {
|
||||
text: '30 minutes',
|
||||
value: 30
|
||||
}],
|
||||
esiCab: 'Integrated energy storage cabinet',
|
||||
gridCab: 'Grid-connected cabinet',
|
||||
grid: 'User power distribution',
|
||||
activePower: 'Active power (kW):',
|
||||
charge: 'Charging',
|
||||
disCharge: 'Discharging',
|
||||
load: 'Load',
|
||||
gridCabSwitch: 'Grid-connected cabinet switch:',
|
||||
dCCabin: 'DC cabin',
|
||||
PCSCab: 'PCS boost integrated cabin',
|
||||
legend: 'Legend',
|
||||
normal: 'Normal operation',
|
||||
fault: 'Fault',
|
||||
overhaul: 'Maintenance',
|
||||
shutStan: 'Standby/Shutdown',
|
||||
reactivePower: 'Reactive power (kW):',
|
||||
totalV: 'Total voltage (V):',
|
||||
current: 'Current (A):',
|
||||
maxCellVol: 'Max. cell voltage:',
|
||||
minCellVol: 'Min. cell voltage:',
|
||||
shutdown: 'Shutdown',
|
||||
standby: 'Standby',
|
||||
run: 'Running',
|
||||
allActivePower: 'Total active power (kW):',
|
||||
cabinet: 'Energy storage cabinet',
|
||||
gridMeter: 'Grid-side electric meter',
|
||||
photovoltaic: 'Photovoltaic (PV)',
|
||||
battery: 'Battery',
|
||||
status: 'Status:',
|
||||
busbar: 'Busbar',
|
||||
dieselGenerator: 'Diesel generator',
|
||||
ammeter: 'Electric meter',
|
||||
device: 'Equipment',
|
||||
earning: 'Revenue',
|
||||
alarm: 'Alarms',
|
||||
policy: 'Strategy',
|
||||
stationTopo: 'Power station topology',
|
||||
deviceMonitor: 'Equipment monitoring',
|
||||
runCurve: 'Operation curve',
|
||||
chargeDisData: 'Charging/Discharging data',
|
||||
stationData: 'Power station data',
|
||||
environmentalData: 'Environmental control data',
|
||||
sevenDay: 'Last 7 days',
|
||||
monthDay: 'Last month',
|
||||
monthThree: 'Last 3 months',
|
||||
yearDay: 'Last year',
|
||||
tip: 'Prompt',
|
||||
loading: 'Resource loading...',
|
||||
power: 'Power (kW)',
|
||||
photovoltaicCharge: 'PV charging',
|
||||
chargingandDischarging: 'Charging/Discharging capacity',
|
||||
safeDaysUnit: 'Safe operation days',
|
||||
totalCapacity: 'Total installed capacity',
|
||||
systemConversionEfficiency: 'System conversion efficiency',
|
||||
currentPower: 'Current power',
|
||||
totalCharge: 'Total charging capacity',
|
||||
totalDischarge: 'Total discharging capacity',
|
||||
dailyCharge: 'Daily charging capacity',
|
||||
dailyDischarge: 'Daily discharging capacity',
|
||||
dayPhotovoltaic: 'PV power generation',
|
||||
noData: 'No data available',
|
||||
station: 'Power station',
|
||||
electricityPrice: 'National electricity prices',
|
||||
mine: 'Me',
|
||||
on: 'Combined position',
|
||||
off: 'Split position',
|
||||
noPermission: 'No permission to access',
|
||||
contactAdmin: 'Group system not open to the public. Please contact the administrator to activate your account',
|
||||
title: 'Guest mode'
|
||||
},
|
||||
price: {
|
||||
elePriceQuery: 'Electricity price query',
|
||||
queryCriteria: 'Query conditions',
|
||||
sift: 'Filter',
|
||||
station: 'Power station',
|
||||
selectStation: 'Please select power station',
|
||||
provinceRegion: 'Province/City',
|
||||
selectProvinceRegion: 'Please select province/city',
|
||||
customerType: 'Electricity consumer',
|
||||
selectEleCustomers: 'Please select electricity consumer',
|
||||
eleType: 'Electricity department/Classification',
|
||||
selectEleType: 'Please select electricity department/classification',
|
||||
volLevel: 'Voltage level',
|
||||
selectVoltageLevel: 'Please select voltage level',
|
||||
exeTime: 'Implementation date',
|
||||
selectExeTime: 'Please select implementation date',
|
||||
noData: 'No data',
|
||||
eleLevel: 'Electricity price level',
|
||||
fsdd: 'Time-of-use electricity price',
|
||||
useElecPrice: 'Electricity price',
|
||||
dietailUnit: '(RMB/kWh)',
|
||||
eleprice: 'Electricity energy price',
|
||||
nonTime: 'Non-time-of-use electricity price',
|
||||
proxyPrice: 'Agent purchasing electricity price',
|
||||
transmission: 'Transmission price',
|
||||
attachPrice: 'Government funds and surcharges',
|
||||
curve: 'Curve',
|
||||
list: 'List',
|
||||
noMoreData: 'No more data',
|
||||
spike: 'Sharp',
|
||||
speak: 'Peak',
|
||||
regular: 'Shoulder',
|
||||
lowValley: 'Valley',
|
||||
deepValley: 'Deep valley',
|
||||
peakDifference: 'Max. peak-valley difference',
|
||||
peakDifferencePrice: 'Max. peak-valley price difference',
|
||||
dayHighPrice: 'Daily max. electricity price',
|
||||
dayLowtPrice: 'Daily min. electricity price',
|
||||
historytrend: 'Historical trend',
|
||||
reset: 'Reset',
|
||||
sure: 'Confirm',
|
||||
sharp: 'Sharp',
|
||||
peak: 'Peak',
|
||||
flat: 'Shoulder',
|
||||
valley: 'Valley'
|
||||
},
|
||||
mine: {
|
||||
accountSec: 'Account security',
|
||||
aboutUs: 'About us',
|
||||
message: 'Notifications',
|
||||
changeLanguage: 'Switch language',
|
||||
sysSetting: 'System settings',
|
||||
messageAlerts: 'Alerts',
|
||||
acceptMessageAlerts: 'Receive alerts',
|
||||
messageDetail: 'Details',
|
||||
closeMessage: 'After closing when receiving messages, only alerts will be displayed without message content.',
|
||||
sound: 'Sound and vibration',
|
||||
acceptSound: 'Play sound or vibrate when receiving messages',
|
||||
settingSound: 'Go to system settings to modify sound and vibration',
|
||||
update: 'Software update reminder',
|
||||
updateAlerts: 'Remind when a new version of the software is released',
|
||||
noUpdate: 'The Mini Programs or H5 version is already up to date. No need to check for updates!',
|
||||
general: 'General',
|
||||
version: 'Current version',
|
||||
Privacy: 'Privacy policy',
|
||||
UserAgreement: 'User agreement',
|
||||
logOut: 'Logout',
|
||||
notAva: 'This function is not available yet',
|
||||
setPassword: 'Please set login password',
|
||||
passwordService: 'Regularly update password to enhance security',
|
||||
oldPassword: 'Old password',
|
||||
inputOldPossword: 'Please enter old password',
|
||||
newPassword: 'New password',
|
||||
inputNewPassword: 'Please enter new password',
|
||||
surePassword: 'Confirm password',
|
||||
inputSurePassword: 'Please confirm password',
|
||||
PasswordError: 'Password must be 6-12 characters, combining numbers and letters (pure numbers not allowed)',
|
||||
submit: 'Submit',
|
||||
resetSubmit: 'Please re-enter password',
|
||||
passwordEqual: 'Two passwords do not match',
|
||||
tip: 'Prompt',
|
||||
updateSuccess: 'Password changed successfully. Please log in again.',
|
||||
inputError: 'The information you entered is incorrect. Please correct it according to the prompts.',
|
||||
hoenergypower: 'Sinotech Energy Storage',
|
||||
companyHomepage: 'Home',
|
||||
technicalServices: 'Technical Services',
|
||||
termsOfService: 'Terms of service',
|
||||
downUpdate: 'Download and update?',
|
||||
appTitle: 'Smart energy storage control platform',
|
||||
lookDetail: 'View details',
|
||||
noMessage: 'No messages',
|
||||
sureRead: 'Confirm as read',
|
||||
cancel: 'Cancel',
|
||||
operateSuccess: 'Operation successful',
|
||||
operateFail: 'Operation failed',
|
||||
messageReaded: 'This message has been read. No need to repeat the'
|
||||
},
|
||||
device: {
|
||||
inputNameQuery: 'Search by name',
|
||||
query: 'Search',
|
||||
all: 'All',
|
||||
queryResult: 'Search results',
|
||||
pcsTopu: 'PCS Topology Diagram',
|
||||
totalAcReaPower: 'Total active/reactive power',
|
||||
timeGranularity: 'Time granularity',
|
||||
deviceData: 'Equipment data',
|
||||
acPower: 'AC active power',
|
||||
acRecPower: 'AC reactive power',
|
||||
gridFrequency: 'Grid frequency',
|
||||
abLineVol: 'AB line voltage',
|
||||
bcLineVol: 'BC line voltage',
|
||||
caLineVol: 'CA line voltage',
|
||||
acur: 'Phase A current',
|
||||
bcur: 'Phase B current',
|
||||
ccur: 'Phase C current',
|
||||
DCPower: 'DC power',
|
||||
DCVol: 'DC voltage',
|
||||
DCCurrent: 'DC current',
|
||||
acbreaker: 'AC circuit breaker',
|
||||
dcbreaker: 'DC circuit breaker',
|
||||
runState: 'Operating status',
|
||||
rsState: 'Remote/Local status',
|
||||
gridMode: 'Grid-connected/Off-grid status',
|
||||
deviceState: 'Equipment status',
|
||||
totalActivePower: 'Total active power',
|
||||
totalReactivePower: 'Total reactive power',
|
||||
local: 'Local',
|
||||
distance: 'Remote',
|
||||
grid: 'Grid-connected',
|
||||
offGrid: 'Off-grid',
|
||||
standby: 'Standby',
|
||||
shutdown: 'Shutdown',
|
||||
run: 'Running',
|
||||
fault: 'Fault',
|
||||
charge: 'Charging',
|
||||
discharge: 'Discharging',
|
||||
standing: 'Standby',
|
||||
localAutomatic: 'Local auto',
|
||||
localManual: 'Local manual',
|
||||
timesArr: [{
|
||||
label: '1 Minute',
|
||||
value: 1
|
||||
}, {
|
||||
label: '5 Minutes',
|
||||
value: 5
|
||||
}, {
|
||||
label: '10 Minutes',
|
||||
value: 10
|
||||
}, {
|
||||
label: '15 Minutes',
|
||||
value: 15
|
||||
}, {
|
||||
label: '20 Minutes',
|
||||
value: 20
|
||||
}, {
|
||||
label: '30 Minutes',
|
||||
value: 30
|
||||
}],
|
||||
yx: 'Telesignaling',
|
||||
yc: 'Telemeasuring',
|
||||
data: 'Data',
|
||||
noData: 'No data available',
|
||||
loadText: {
|
||||
loadmore: 'Pull up to load more',
|
||||
loading: 'Loading...',
|
||||
nomore: 'No more'
|
||||
},
|
||||
clusterTotalVol: 'Total cluster voltage/SOC',
|
||||
runData: 'Operation data',
|
||||
cumCharge: 'Cumulative charging capacity',
|
||||
cumDischarge: 'Cumulative discharging capacity',
|
||||
avgTem: 'Average temperature',
|
||||
avgVol: 'Average voltage',
|
||||
maxCellVol: 'Max. cell voltage',
|
||||
minCellVol: 'Min. cell voltage',
|
||||
maxCellTem: 'Max. cell temperature',
|
||||
minCellTem: 'Min. cell temperature',
|
||||
maxvolDiff: 'Max. voltage difference',
|
||||
maxTemDiff: 'Max. temperature difference',
|
||||
batteryGroupNum: 'Battery pack no.',
|
||||
cellPostion: 'CELL position',
|
||||
vol: 'Voltage',
|
||||
volqua: 'Voltage quality',
|
||||
curqua: 'Current quality',
|
||||
acRea: 'Active/Reactive',
|
||||
avol: 'Phase A voltage',
|
||||
bvol: 'Phase B voltage',
|
||||
cvol: 'Phase C voltage',
|
||||
zxygzdl: 'Total forward active electricity',
|
||||
dlj: 'Electricity (sharp)',
|
||||
dlf: 'Electricity (peak)',
|
||||
dlp: 'Electricity (shoulder)',
|
||||
dlg: 'Electricity (valley)',
|
||||
fxygzdl: 'Total reverse active electricity',
|
||||
hxyggl: 'Combined phase active power',
|
||||
hxwggl: 'Combined phase reactive power',
|
||||
hxglys: 'Combined phase power factor',
|
||||
a: 'Phase A',
|
||||
b: 'Phase B',
|
||||
c: 'Phase C',
|
||||
active: 'Active',
|
||||
reactive: 'Reactive',
|
||||
current: 'Current',
|
||||
EMU: 'Grid-connected cabinet operation data',
|
||||
on: 'Combined position',
|
||||
off: 'Split position',
|
||||
emuSwitchPosition: 'Grid-connected cabinet switch position',
|
||||
emuRemoteOperation: 'Remote operation of grid-connected cabinet',
|
||||
emuKnifePosition: 'Earthing switch position of grid-connected cabinet',
|
||||
online: 'Online',
|
||||
offline: 'Offline',
|
||||
temConCabRunData: 'Temperature control box operation data',
|
||||
aTem: 'Phase A temperature',
|
||||
bTem: 'Phase B temperature',
|
||||
cTem: 'Phase C temperature',
|
||||
dehumidifierRunData: 'Dehumidifier operation data',
|
||||
tem: 'Temperature',
|
||||
hum: 'Humidity',
|
||||
humStartValue: 'Humidity start value',
|
||||
humStopValue: 'Humidity stop value',
|
||||
ammeterRunData: 'Electric meter operation data',
|
||||
frequency: 'Frequency',
|
||||
perceptualPower: 'Inductive energy',
|
||||
CapacitivePower: 'Capacitive energy',
|
||||
volRatio: 'Voltage distribution ratio',
|
||||
maxVol: 'Max. voltage',
|
||||
minVol: 'Min. voltage',
|
||||
maxTem: 'Max. temperature',
|
||||
minTem: 'Min. temperature',
|
||||
cellVolChart: 'Cell Voltage Bar Chart',
|
||||
cellTemChart: 'Cell Temperature Bar Chart',
|
||||
volUnit: 'Voltage/Unit',
|
||||
temUnit: 'Temperature/Unit',
|
||||
num: 'Unit',
|
||||
stackTotalVol: 'Total stack voltage/SOC',
|
||||
leftTemCabin: 'Cabin left temperature',
|
||||
leftHubCabin: 'Cabin left humidity',
|
||||
rightTemCabin: 'Cabin right temperature',
|
||||
rightHubCabin: 'Cabin right humidity',
|
||||
stackCurrent: 'Stack current',
|
||||
stackTotalCurrent: 'Total stack current',
|
||||
stackSoc: 'Stack SOC',
|
||||
CumulativeCharge: 'Cumulative charging capacity',
|
||||
CumulativeDischarge: 'Cumulative discharging capacity',
|
||||
zdz: 'Positive insulation resistance',
|
||||
fdz: 'Negative insulation resistance',
|
||||
rechargeCapacity: 'Chargeable capacity',
|
||||
dischargeCapacity: 'Dischargeable capacity',
|
||||
totalMaxVolData: 'Max. total cluster voltage',
|
||||
stackCell: 'Cluster no.',
|
||||
totalMinVolData: 'Min. total cluster voltage',
|
||||
stackNum: 'Battery cluster no.',
|
||||
groupNum: 'Battery pack no.',
|
||||
cellLocation: 'Cell position',
|
||||
historyData: 'Historical data'
|
||||
},
|
||||
earning: {
|
||||
changeDischargePro: 'Project charging/discharging overview',
|
||||
capacity: 'Installed capacity',
|
||||
monthTotalCharge: 'Total charging capacity this month',
|
||||
monthTotalDischarge: 'Total discharging capacity this month',
|
||||
monthEff: 'Monthly system conversion efficiency',
|
||||
chargeVol: 'Cumulative charging capacity',
|
||||
dischargeVol: 'Cumulative discharging capacity',
|
||||
totalEff: 'Cumulative system conversion efficiency',
|
||||
projectRevenue: 'Project revenue status',
|
||||
monthTotalChargePrice: 'Total charging capacity & price this month (RMB)',
|
||||
monthTotalDisChargePrice: 'Total discharging capacity & price this month',
|
||||
earnings: 'Revenue (RMB)',
|
||||
earningsDetail: 'Revenue details',
|
||||
charge: 'Charging',
|
||||
ele: 'Electricity (kWh)',
|
||||
expend: 'Expense (RMB)',
|
||||
noChargeData: 'No charging data available',
|
||||
disCharge: 'Discharging',
|
||||
noDisChargeData: 'No discharging data available',
|
||||
year: 'Year',
|
||||
month: 'Month',
|
||||
day: 'Day',
|
||||
hour: 'Hour',
|
||||
minute: 'Minute',
|
||||
second: 'Second'
|
||||
},
|
||||
alarm: {
|
||||
sift: 'Filter',
|
||||
device: 'Affiliated equipment',
|
||||
placeSelect: 'Please select',
|
||||
event: 'Event',
|
||||
level: 'Alarm level',
|
||||
timeRange: 'Time range',
|
||||
placeholderDate: 'Please select time range',
|
||||
reset: 'Reset',
|
||||
sure: 'Confirm',
|
||||
noData: 'No data',
|
||||
confirm: 'Confirmed',
|
||||
noConfirmed: 'Unconfirmed',
|
||||
alarmTypeList: [{
|
||||
name: 'Real-time Alarms'
|
||||
}, {
|
||||
name: 'Historical Alarms'
|
||||
}],
|
||||
loadText: {
|
||||
loadmore: 'Pull up to load more',
|
||||
loading: 'Loading...',
|
||||
nomore: 'No more'
|
||||
},
|
||||
allStation: 'All power stations',
|
||||
alarm: 'Alarms',
|
||||
noDevice: 'No equipment data available',
|
||||
placeholderInput: 'Please enter alarm content',
|
||||
status: 'Status',
|
||||
station: 'Affiliated power station',
|
||||
alarmTime: 'Alarm time',
|
||||
confirmer: 'Confirmer',
|
||||
confirmTime: 'Confirmation time'
|
||||
},
|
||||
policy: {
|
||||
planCurve: 'Planned curve',
|
||||
planCurveTem: 'Planned curve template',
|
||||
IssueDevice: 'Command issuance equipment',
|
||||
operateOrNot: 'Commission or not',
|
||||
socUplimit: 'SOC upper limit',
|
||||
socDownlimit: 'SOC lower limit',
|
||||
effectiveTime: 'Effective time',
|
||||
selectEffectiveTime: 'Please select effective time',
|
||||
distributeResult: 'Issuance result',
|
||||
notDelivered: 'Not issued',
|
||||
commandDistribution: 'Command issuance',
|
||||
controlDistribution: 'Control issuance',
|
||||
genSetting: 'General settings',
|
||||
save: 'Save',
|
||||
pleaseInputValue: 'Please enter value',
|
||||
pleaseInputPassword: 'Please enter password',
|
||||
password: 'Password',
|
||||
policyTypeList: [{
|
||||
name: 'Command Issuance'
|
||||
}, {
|
||||
name: 'General Settings'
|
||||
}],
|
||||
radioList: [{
|
||||
name: "In Operation",
|
||||
disabled: false
|
||||
}, {
|
||||
name: "Not In Operation",
|
||||
disabled: false
|
||||
}],
|
||||
selectIssueDevice: 'Please select command issuance equipment',
|
||||
deliverErrorNewTip: 'Mapping configuration error or not configured. Please confirm and try again!',
|
||||
passwordSuccess: 'Password correct',
|
||||
passwordError: 'Password incorrect',
|
||||
isOpen: 'Enable or not',
|
||||
isClose: 'Disable or not',
|
||||
distributeSuccess: 'Issuance successful',
|
||||
distributeFail: 'Issuance failed',
|
||||
isNum: 'Please check if the input value is a number',
|
||||
saveSuccess: 'Save successful',
|
||||
saveError: 'Save failed',
|
||||
delivered: 'Issued',
|
||||
selectPlanCurveTem: 'Please select planned curve template',
|
||||
deliverErrorTip: 'Charging/discharging power exceeds rated power. Please confirm the planned curve.',
|
||||
deliverTip: 'Confirm command issuance?',
|
||||
policyTitle: 'Strategy Issuance'
|
||||
}
|
||||
}
|
||||
529
common/locales/homePage/es.js
Normal file
@ -0,0 +1,529 @@
|
||||
export default {
|
||||
home: {
|
||||
login: 'Iniciar sesión',
|
||||
account: 'Cuenta',
|
||||
password: 'Contraseña',
|
||||
placeAccount: 'Ingrese la cuenta',
|
||||
placePassword: 'Ingrese la contraseña',
|
||||
noLogin: 'Función no disponible por el momento',
|
||||
loadAmmeter: 'Medidor de carga',
|
||||
dieselGeneratorMeter: 'Medidor de generador diésel',
|
||||
energyStorageMeter: 'Medidor de almacenamiento de energía',
|
||||
emsControl: 'Control Ems',
|
||||
alarmTypeList: [{
|
||||
name: 'Alertas en tiempo real'
|
||||
}, {
|
||||
name: 'Alertas históricas'
|
||||
}],
|
||||
lang: 'Cambiar idioma',
|
||||
ydty: 'Leer y aceptar',
|
||||
yhxy: 'Acuerdo de usuario',
|
||||
and: 'y',
|
||||
yszc: 'Política de privacidad',
|
||||
yhxyhyszc: 'Acuerdo de usuario y política de privacidad',
|
||||
msgf: 'Bienvenido(a) a la aplicación “Zeta Cloud”. Valoramos enormemente su información personal y la protección de su privacidad. Lea atentamente antes de utilizar esta aplicación',
|
||||
msgs: 'Al utilizar esta aplicación, usted declara que ha leído, comprendido y aceptado todos los términos de este acuerdo. Si no está de acuerdo con cualquier parte de este acuerdo, deje de usar esta aplicación de inmediato.',
|
||||
agree: 'Aceptar',
|
||||
quit: 'No aceptar',
|
||||
guestLogin: 'Acceso como invitado',
|
||||
checkFirst: 'Marque primero para aceptar el acuerdo de usuario y la política de privacidad',
|
||||
stationType: [{
|
||||
name: 'Sitio de China'
|
||||
}, {
|
||||
name: 'Sitio internacional'
|
||||
}],
|
||||
useElecPrice: 'Tarifa de energía',
|
||||
workStatus: 'Estado de funcionamiento:',
|
||||
standing: 'En reposo',
|
||||
activePowerpcs: 'Potencia activa:',
|
||||
operatingPower: 'Potencia operativa',
|
||||
accumulatedElectricityConsumption: 'Energía acumulada',
|
||||
pvKpi: 'KPI fotovoltaico',
|
||||
saveStandardCoal: 'Carbón estándar ahorrado (t)',
|
||||
equivalentCo2Reduction: 'Reducción de CO₂ (t)',
|
||||
equivalentTreePlantings: 'Árboles equivalentes plantados',
|
||||
dailyPowerGeneration: 'Generación diaria',
|
||||
cumulativePowerGeneration: 'Generación acumulada',
|
||||
socialContribution: 'Contribución social',
|
||||
energyStorageRevenueReport: 'Informe de ingresos del almacenamiento de energía',
|
||||
pvStorageRevenueReport: 'Informe de ingresos fotovoltaicos',
|
||||
projectMonthlyPower: 'Generación mensual del proyecto',
|
||||
powerGeneration: 'Generación de energía',
|
||||
mpptTopu: 'Diagrama de topología MPPT',
|
||||
powerGenerationCapacity: 'Potencia de generación',
|
||||
batVoltage: 'Tensión de BAT',
|
||||
batCurrent: 'Corriente de BAT',
|
||||
busVoltage: 'Tensión de BAT',
|
||||
busCurrent: 'Corriente de BAT',
|
||||
dc: 'Corriente de DC',
|
||||
dcVoltage: 'Tensión de DC',
|
||||
pvPower: 'Potencia',
|
||||
enmonthTotalChargePrice: 'Precio total de la carga del mes (EUR)',
|
||||
enmonthTotalDisChargePrice: 'Precio total de la descarga del mes (EUR)',
|
||||
enearnings: 'Ingresos (EUR)',
|
||||
pvSwitch: 'Interruptor PV',
|
||||
stationDatacom: 'datos de la central eléctrica',
|
||||
sevenDaycom: 'Semana',
|
||||
todayEarning: 'Ingresos de hoy (EUR)',
|
||||
totalRevenue: 'Beneficio acumulado (EUR)',
|
||||
ratedPower: 'Potencia nominal (kW)',
|
||||
currentMonthlyPowerGeneration: 'Producción de electricidad de este mes',
|
||||
ratedPowernokw: 'potencia nominal',
|
||||
powerGenerationStatus: 'Situación de generación de energía del proyecto',
|
||||
monthlyIncome: 'Ingresos del mes (EUR)',
|
||||
lowV: 'tensión del lado de baja tensión',
|
||||
lowI: 'corriente del lado de baja tensión',
|
||||
highV: 'tensión del lado de alta tensión',
|
||||
timesArr: [{
|
||||
text: '1 minuto',
|
||||
value: 1
|
||||
}, {
|
||||
text: '5 minutos',
|
||||
value: 5
|
||||
}, {
|
||||
text: '10 minutos',
|
||||
value: 10
|
||||
}, {
|
||||
text: '15 minutos',
|
||||
value: 15
|
||||
}, {
|
||||
text: '20 minutos',
|
||||
value: 20
|
||||
}, {
|
||||
text: '30 minutos',
|
||||
value: 30
|
||||
}],
|
||||
esiCab: 'Gabinete integrado de almacenamiento de energía',
|
||||
gridCab: 'Gabinete de conexión a la red',
|
||||
grid: 'Distribución de usuario',
|
||||
activePower: 'Potencia activa (kW):',
|
||||
charge: 'Carga',
|
||||
disCharge: 'Descarga',
|
||||
load: 'Carga',
|
||||
gridCabSwitch: 'Interruptor del gabinete de conexión a la red:',
|
||||
dCCabin: 'Compartimento de DC',
|
||||
PCSCab: 'Compartimento integrado elevador de tensión PCS',
|
||||
legend: 'Leyenda',
|
||||
normal: 'Funcionamiento normal',
|
||||
fault: 'Falla',
|
||||
overhaul: 'Mantenimiento',
|
||||
shutStan: 'En espera / Parado',
|
||||
reactivePower: 'Potencia reactiva (kW):',
|
||||
totalV: 'Tensión total (V):',
|
||||
current: 'Corriente (A):',
|
||||
maxCellVol: 'Tensión máxima de celda:',
|
||||
minCellVol: 'Tensión mínima de celda:',
|
||||
shutdown: 'Parado',
|
||||
standby: 'En espera',
|
||||
run: 'En funcionamiento',
|
||||
allActivePower: 'Potencia activa total (kW):',
|
||||
cabinet: 'Gabinete de almacenamiento de energía',
|
||||
gridMeter: 'Medidor del lado de la red',
|
||||
photovoltaic: 'Fotovoltaico',
|
||||
battery: 'Batería',
|
||||
status: 'Estado:',
|
||||
busbar: 'Barra colectora',
|
||||
dieselGenerator: 'Generador diésel',
|
||||
ammeter: 'Medidor',
|
||||
device: 'Equipos',
|
||||
earning: 'Ingresos',
|
||||
alarm: 'Alarmas',
|
||||
policy: 'Estrategia',
|
||||
stationTopo: 'Topología de la planta',
|
||||
deviceMonitor: 'Monitoreo de equipos',
|
||||
runCurve: 'Curva de operación',
|
||||
chargeDisData: 'Datos de carga y descarga',
|
||||
stationData: 'Datos de la planta',
|
||||
environmentalData: 'Datos de control ambiental',
|
||||
sevenDay: 'Últimos 7 días',
|
||||
monthDay: 'Último mes',
|
||||
monthThree: 'Últimos 3 meses',
|
||||
yearDay: 'Último año',
|
||||
tip: 'Aviso',
|
||||
loading: 'Cargando recursos...',
|
||||
power: 'Potencia (kW)',
|
||||
photovoltaicCharge: 'Carga fotovoltaica',
|
||||
chargingandDischarging: 'Energía de carga y descarga',
|
||||
safeDaysUnit: 'Días de operación segura (días)',
|
||||
totalCapacity: 'Capacidad total instalada',
|
||||
systemConversionEfficiency: 'Eficiencia de conversión del sistema',
|
||||
currentPower: 'Potencia actual',
|
||||
totalCharge: 'Energía de carga total',
|
||||
totalDischarge: 'Descarga total',
|
||||
dailyCharge: 'Energía de carga diaria',
|
||||
dailyDischarge: 'Descarga diaria',
|
||||
dayPhotovoltaic: 'Generación fotovoltaica',
|
||||
noData: 'Sin datos',
|
||||
station: 'Planta',
|
||||
electricityPrice: 'Tarifa eléctrica nacional',
|
||||
mine: 'Mi',
|
||||
on: 'Posición de cierre',
|
||||
off: 'Posición de apertura',
|
||||
noPermission: 'Sin permiso de acceso',
|
||||
contactAdmin: 'El sistema del grupo no está abierto al público. Comuníquese con el administrador para activar una cuenta.',
|
||||
title: 'Modo invitado'
|
||||
},
|
||||
price: {
|
||||
elePriceQuery: 'Consulta de tarifas eléctricas',
|
||||
queryCriteria: 'Condiciones de consulta',
|
||||
sift: 'Filtrar',
|
||||
station: 'Planta',
|
||||
selectStation: 'Seleccione la planta',
|
||||
provinceRegion: 'Región/provincia',
|
||||
selectProvinceRegion: 'Seleccione la región/provincia',
|
||||
customerType: 'Cliente de consumo eléctrico',
|
||||
selectEleCustomers: 'Seleccione el cliente de consumo eléctrico',
|
||||
eleType: 'Régimen / clasificación de consumo eléctrico',
|
||||
selectEleType: 'Seleccione el régimen / clasificación de consumo eléctrico',
|
||||
volLevel: 'Nivel de tensión',
|
||||
selectVoltageLevel: 'Seleccione el nivel de tensión',
|
||||
exeTime: 'Fecha de ejecución',
|
||||
selectExeTime: 'Seleccione la fecha de ejecución',
|
||||
noData: 'Los datos están vacíos',
|
||||
eleLevel: 'Nivel de tarifa eléctrica',
|
||||
fsdd: 'Tarifa de energía por franjas horarias',
|
||||
useElecPrice: 'Tarifa de energía',
|
||||
dietailUnit: '(yuanes/kWh)',
|
||||
eleprice: 'Tarifa de energía eléctrica',
|
||||
nonTime: 'Tarifa sin discriminación horaria',
|
||||
proxyPrice: 'Precio de compra de electricidad por intermediario',
|
||||
transmission: 'Tarifa de transmisión eléctrica',
|
||||
attachPrice: 'Fondos gubernamentales y recargos',
|
||||
curve: 'Curva',
|
||||
list: 'Lista',
|
||||
noMoreData: 'No hay más datos',
|
||||
spike: 'Punta',
|
||||
speak: 'Pico',
|
||||
regular: 'Lano',
|
||||
lowValley: 'Valle',
|
||||
deepValley: 'Valle profundo',
|
||||
peakDifference: 'Máxima diferencia pico-valle',
|
||||
peakDifferencePrice: 'Máxima diferencia de precio pico-valle',
|
||||
dayHighPrice: 'Precio máximo diario de la electricidad',
|
||||
dayLowtPrice: 'Precio mínimo diario de la electricidad',
|
||||
historytrend: 'Tendencia histórica',
|
||||
reset: 'Restablecer',
|
||||
sure: 'Confirmar',
|
||||
sharp: 'Punta',
|
||||
peak: 'Pico',
|
||||
flat: 'Lano',
|
||||
valley: 'Valle'
|
||||
},
|
||||
mine: {
|
||||
accountSec: 'Seguridad de la cuenta',
|
||||
aboutUs: 'Sobre nosotros',
|
||||
message: 'Notificaciones',
|
||||
changeLanguage: 'Cambiar idioma',
|
||||
sysSetting: 'Configuración del sistema',
|
||||
messageAlerts: 'Avisos de mensajes',
|
||||
acceptMessageAlerts: 'Recibir avisos de mensajes',
|
||||
messageDetail: 'Detalles del mensaje',
|
||||
closeMessage: 'Al desactivarlo, al recibir mensajes solo se mostrará un aviso, no el contenido.',
|
||||
sound: 'Sonido y vibración',
|
||||
acceptSound: 'Reproducir sonido o vibrar al recibir mensajes',
|
||||
settingSound: 'Vaya a la configuración del sistema para ajustar sonido y vibración',
|
||||
update: 'Aviso de actualización del software',
|
||||
updateAlerts: 'Avisar cuando haya una nueva versión',
|
||||
noUpdate: 'La versión Mini Program o H5 ya es la más reciente; no es necesario buscar actualizaciones!',
|
||||
general: 'General',
|
||||
version: 'Versión actual',
|
||||
Privacy: 'Política de privacidad',
|
||||
UserAgreement: 'Acuerdo de usuario',
|
||||
logOut: 'Cerrar sesión',
|
||||
notAva: 'Esta función no está disponible por el momento',
|
||||
setPassword: 'Configura una contraseña de inicio de sesión',
|
||||
passwordService: 'Actualice la contraseña periódicamente para mayor seguridad',
|
||||
oldPassword: 'Contraseña anterior',
|
||||
inputOldPossword: 'Ingrese la contraseña anterior',
|
||||
newPassword: 'Nueva contraseña',
|
||||
inputNewPassword: 'Ingrese la nueva contraseña',
|
||||
surePassword: 'Confirmar contraseña',
|
||||
inputSurePassword: 'Confirme la contraseña',
|
||||
PasswordError: 'La contraseña debe tener 6-12 caracteres y ser una combinación de números y caracteres (no solo números)',
|
||||
submit: 'Enviar',
|
||||
resetSubmit: 'Vuelva a ingresar la contraseña',
|
||||
passwordEqual: 'Las dos contraseñas no coinciden',
|
||||
tip: 'Aviso',
|
||||
updateSuccess: 'Contraseña modificada con éxito. Inicie sesión nuevamente.',
|
||||
inputError: 'La información ingresada es incorrecta. Corríjala según las indicaciones.',
|
||||
hoenergypower: 'Sinotech Energy Storage',
|
||||
companyHomepage: 'Inicio',
|
||||
technicalServices: 'Servicios técnicos',
|
||||
termsOfService: 'Términos de servicio',
|
||||
downUpdate: '¿Desea descargar la actualización?',
|
||||
appTitle: 'Plataforma inteligente de gestión del almacenamiento de energía',
|
||||
lookDetail: 'Ver detalles',
|
||||
noMessage: 'No hay mensajes',
|
||||
sureRead: 'Confirmar como leído',
|
||||
cancel: 'Cancelar',
|
||||
operateSuccess: 'Operación realizada con éxito',
|
||||
operateFail: 'Operación fallida',
|
||||
messageReaded: 'Este mensaje ya fue leído; no es necesario repetir la operación'
|
||||
},
|
||||
device: {
|
||||
inputNameQuery: 'Buscar por nombre',
|
||||
query: 'Buscar',
|
||||
all: 'Todo',
|
||||
queryResult: 'Resultados de búsqueda',
|
||||
pcsTopu: 'Diagrama de topología PCS',
|
||||
totalAcReaPower: 'Potencia activa/reactiva total',
|
||||
timeGranularity: 'Granularidad temporal',
|
||||
deviceData: 'Datos del equipo',
|
||||
acPower: 'Potencia activa AC',
|
||||
acRecPower: 'Potencia reactiva AC',
|
||||
gridFrequency: 'Frecuencia de red',
|
||||
abLineVol: 'Tensión de línea AB',
|
||||
bcLineVol: 'Tensión de línea BC',
|
||||
caLineVol: 'Tensión de línea CA',
|
||||
acur: 'Corriente de fase A',
|
||||
bcur: 'Corriente de fase B',
|
||||
ccur: 'Corriente de fase C',
|
||||
DCPower: 'Potencia DC',
|
||||
DCVol: 'Tensión de DC',
|
||||
DCCurrent: 'Corriente de DC',
|
||||
acbreaker: 'Interruptor de AC',
|
||||
dcbreaker: 'Interruptor de DC',
|
||||
runState: 'Estado de operación',
|
||||
rsState: 'Estado remoto/local',
|
||||
gridMode: 'Estado de conexión/desconexión de la red',
|
||||
deviceState: 'Estado del equipo',
|
||||
totalActivePower: 'Potencia activa total',
|
||||
totalReactivePower: 'Potencia reactiva total',
|
||||
local: 'Local',
|
||||
distance: 'Remoto',
|
||||
grid: 'Conexión a la red',
|
||||
offGrid: 'Desconexión de la red',
|
||||
standby: 'En espera',
|
||||
shutdown: 'Parado',
|
||||
run: 'En funcionamiento',
|
||||
fault: 'Falla',
|
||||
charge: 'Carga',
|
||||
discharge: 'Descarga',
|
||||
standing: 'En reposo',
|
||||
localAutomatic: 'Automático local',
|
||||
localManual: 'Manual local',
|
||||
timesArr: [{
|
||||
label: '1 minuto',
|
||||
value: 1
|
||||
}, {
|
||||
label: '5 minutos',
|
||||
value: 5
|
||||
}, {
|
||||
label: '10 minutos',
|
||||
value: 10
|
||||
}, {
|
||||
label: '15 minutos',
|
||||
value: 15
|
||||
}, {
|
||||
label: '20 minutos',
|
||||
value: 20
|
||||
}, {
|
||||
label: '30 minutos',
|
||||
value: 30
|
||||
}],
|
||||
yx: 'Teleindicación',
|
||||
yc: 'Telemedición',
|
||||
data: 'Datos',
|
||||
noData: 'Sin datos',
|
||||
loadText: {
|
||||
loadmore: 'Cargar más',
|
||||
loading: 'Cargando',
|
||||
nomore: 'No más'
|
||||
},
|
||||
clusterTotalVol: 'Tensión total del clúster / SOC',
|
||||
runData: 'Datos de operación',
|
||||
cumCharge: 'Energía de carga acumulada',
|
||||
cumDischarge: 'Energía de descarga acumulada',
|
||||
avgTem: 'Temperatura promedio',
|
||||
avgVol: 'Tensión promedia',
|
||||
maxCellVol: 'Tensión máxima de celda',
|
||||
minCellVol: 'Tensión mínima de celda',
|
||||
maxCellTem: 'Temperatura máxima de celda',
|
||||
minCellTem: 'Temperatura mínima de celda',
|
||||
maxvolDiff: 'Diferencia máxima de tensión',
|
||||
maxTemDiff: 'Diferencia máxima de temperatura',
|
||||
batteryGroupNum: 'Número del grupo de baterías',
|
||||
cellPostion: 'Posición de la celda',
|
||||
vol: 'Tensión',
|
||||
volqua: 'Calidad de la tensión',
|
||||
curqua: 'Calidad de la corriente',
|
||||
acRea: 'Activa / reactiva',
|
||||
avol: 'Tensión de fase A',
|
||||
bvol: 'Tensión de fase B',
|
||||
cvol: 'Tensión de fase C',
|
||||
zxygzdl: 'Energía activa total en sentido directo',
|
||||
dlj: 'Energía (punta)',
|
||||
dlf: 'Energía (pico)',
|
||||
dlp: 'Energía (llano)',
|
||||
dlg: 'Energía (valle)',
|
||||
fxygzdl: 'Energía activa total en sentido inverso',
|
||||
hxyggl: 'Potencia activa de fase combinada',
|
||||
hxwggl: 'Potencia reactiva de fase combinada',
|
||||
hxglys: 'Factor de potencia de fase combinada',
|
||||
a: 'Fase A',
|
||||
b: 'Fase B',
|
||||
c: 'Fase C',
|
||||
active: 'Activa',
|
||||
reactive: 'Reactiva',
|
||||
current: 'Corriente',
|
||||
EMU: 'Datos de operación del gabinete de conexión a red',
|
||||
on: 'Posición de cierre',
|
||||
off: 'Posición de apertura',
|
||||
emuSwitchPosition: 'Posición del interruptor del gabinete de conexión a red',
|
||||
emuRemoteOperation: 'Operación remota del gabinete de conexión a red',
|
||||
emuKnifePosition: 'Posición del seccionador de puesta a tierra del gabinete de conexión a red',
|
||||
online: 'En línea',
|
||||
offline: 'Fuera de línea',
|
||||
temConCabRunData: 'Datos de operación del armario de control de temperatura',
|
||||
aTem: 'Temperatura de fase A',
|
||||
bTem: 'Temperatura de fase B',
|
||||
cTem: 'Temperatura de fase C',
|
||||
dehumidifierRunData: 'Datos de operación del deshumidificador',
|
||||
tem: 'Temperatura',
|
||||
hum: 'Humedad',
|
||||
humStartValue: 'Umbral de arranque de humedad',
|
||||
humStopValue: 'Umbral de parada de humedad',
|
||||
ammeterRunData: 'Datos de operación del medidor eléctrico',
|
||||
frequency: 'Frecuencia',
|
||||
perceptualPower: 'Energía reactiva inductiva',
|
||||
CapacitivePower: 'Energía reactiva capacitiva',
|
||||
volRatio: 'Proporción de distribución del nivel de tensión',
|
||||
maxVol: 'Tensión máxima',
|
||||
minVol: 'Tensión mínima',
|
||||
maxTem: 'Temperatura máxima',
|
||||
minTem: 'Temperatura mínima',
|
||||
cellVolChart: 'Histograma de tensión de celdas',
|
||||
cellTemChart: 'Histograma de la temperatura de celdas',
|
||||
volUnit: 'Tensión / unidad',
|
||||
temUnit: 'Temperatura / unidad',
|
||||
num: 'Unidad',
|
||||
stackTotalVol: 'Tensión total de la pila / SOC',
|
||||
leftTemCabin: 'Temperatura del lado izquierdo del compartimento',
|
||||
leftHubCabin: 'Humedad del lado izquierdo del compartimento',
|
||||
rightTemCabin: 'Temperatura del lado derecho del compartimento',
|
||||
rightHubCabin: 'Humedad del lado derecho del compartimento',
|
||||
stackCurrent: 'Corriente de la pila',
|
||||
stackTotalCurrent: 'Corriente total de la pila',
|
||||
stackSoc: 'SOC de la pila',
|
||||
CumulativeCharge: 'Energía de carga acumulada',
|
||||
CumulativeDischarge: 'Energía de descarga acumulada',
|
||||
zdz: 'Resistencia de aislamiento positiva',
|
||||
fdz: 'Resistencia de aislamiento negativa',
|
||||
rechargeCapacity: 'Energía disponible para carga',
|
||||
dischargeCapacity: 'Energía disponible para descarga',
|
||||
totalMaxVolData: 'Tensión total máxima del clúster',
|
||||
stackCell: 'Número del clúster',
|
||||
totalMinVolData: 'Tensión total mínima del clúster',
|
||||
stackNum: 'Número del clúster de batería',
|
||||
groupNum: 'Número del grupo de baterías',
|
||||
cellLocation: 'Posición de la celda',
|
||||
historyData: 'Datos históricos'
|
||||
},
|
||||
earning: {
|
||||
changeDischargePro: 'Resumen de carga y descarga del proyecto',
|
||||
capacity: 'Capacidad instalada',
|
||||
monthTotalCharge: 'Energía total de carga del mes',
|
||||
monthTotalDischarge: 'Descarga total del mes',
|
||||
monthEff: 'Eficiencia mensual de conversión del sistema',
|
||||
chargeVol: 'Energía de carga acumulada',
|
||||
dischargeVol: 'Energía de descarga acumulada',
|
||||
totalEff: 'Eficiencia acumulada de conversión del sistema',
|
||||
projectRevenue: 'Ingresos del proyecto',
|
||||
monthTotalChargePrice: 'Precio total de la carga del mes (yuanes)',
|
||||
monthTotalDisChargePrice: 'Precio total de la descarga del mes (yuanes)',
|
||||
earnings: 'Ingresos (yuanes)',
|
||||
earningsDetail: 'Detalles de ingresos',
|
||||
charge: 'Carga',
|
||||
ele: 'Energía (kWh)',
|
||||
expend: 'Gastos (yuanes)',
|
||||
noChargeData: 'No hay datos de carga',
|
||||
disCharge: 'Descarga',
|
||||
noDisChargeData: 'No hay datos de descarga',
|
||||
year: 'Año',
|
||||
month: 'Mes',
|
||||
day: 'Día',
|
||||
hour: 'Hora',
|
||||
minute: 'Minuto',
|
||||
second: 'Segundo'
|
||||
},
|
||||
alarm: {
|
||||
sift: 'Filtrar',
|
||||
device: 'Equipo asociado',
|
||||
placeSelect: 'Seleccione',
|
||||
event: 'Evento',
|
||||
level: 'Nivel de alarma',
|
||||
timeRange: 'Rango de tiempo',
|
||||
placeholderDate: 'Seleccione un rango de tiempo',
|
||||
reset: 'Restablecer',
|
||||
sure: 'Confirmar',
|
||||
noData: 'Los datos están vacíos',
|
||||
confirm: 'Confirmado',
|
||||
noConfirmed: 'Sin confirmar',
|
||||
alarmTypeList: [{
|
||||
name: 'Alarmas en tiempo real'
|
||||
}, {
|
||||
name: 'Alarmas históricas'
|
||||
}],
|
||||
loadText: {
|
||||
loadmore: 'Cargar más',
|
||||
loading: 'Cargando',
|
||||
nomore: 'No más'
|
||||
},
|
||||
allStation: 'Todas las plantas',
|
||||
alarm: 'Alarmas',
|
||||
noDevice: 'No hay datos de equipos',
|
||||
placeholderInput: 'Ingrese el contenido de la alarma',
|
||||
status: 'Estado',
|
||||
station: 'Planta asociada',
|
||||
alarmTime: 'Hora de la alarma',
|
||||
confirmer: 'Persona de confirmación',
|
||||
confirmTime: 'Hora de confirmación'
|
||||
},
|
||||
policy: {
|
||||
policyTitle: 'Estrategia de envío',
|
||||
planCurve: 'Curva planificada',
|
||||
planCurveTem: 'Plantilla de curva planificada',
|
||||
IssueDevice: 'Equipo para emitir el comando',
|
||||
operateOrNot: 'Activar/desactivar',
|
||||
socUplimit: 'Límite superior de SOC',
|
||||
socDownlimit: 'Límite inferior de SOC',
|
||||
effectiveTime: 'Hora de entrada en vigor',
|
||||
selectEffectiveTime: 'Seleccione la hora de entrada en vigor',
|
||||
distributeResult: 'Resultado de la emisión',
|
||||
notDelivered: 'No emitido',
|
||||
commandDistribution: 'Emisión de comando',
|
||||
controlDistribution: 'Emisión de control',
|
||||
genSetting: 'Configuración general',
|
||||
save: 'Guardar',
|
||||
pleaseInputValue: 'Ingrese un valor',
|
||||
pleaseInputPassword: 'Ingrese la contraseña',
|
||||
password: 'Contraseña',
|
||||
policyTypeList: [{
|
||||
name: 'Emisión de comando'
|
||||
}, {
|
||||
name: 'Configuración general'
|
||||
}],
|
||||
radioList: [{
|
||||
name: "Activar",
|
||||
disabled: false
|
||||
}, {
|
||||
name: "Desactivar",
|
||||
disabled: false
|
||||
}],
|
||||
selectIssueDevice: 'Seleccione el equipo para emitir el comando',
|
||||
deliverErrorNewTip: 'La configuración de mapa es incorrecta o no está configurada. Verifíquelo e inténtelo nuevamente!',
|
||||
passwordSuccess: 'Contraseña correcta',
|
||||
passwordError: 'Contraseña incorrecta',
|
||||
isOpen: 'Activar',
|
||||
isClose: 'Desactivar',
|
||||
distributeSuccess: 'Emisión exitosa',
|
||||
distributeFail: 'Emisión fallida',
|
||||
isNum: 'Verifique que el valor ingresado sea numérico',
|
||||
saveSuccess: 'Guardado con éxito',
|
||||
saveError: 'Error al guardar',
|
||||
delivered: 'Emitido',
|
||||
selectPlanCurveTem: 'Seleccione una plantilla de curva planificada',
|
||||
deliverErrorTip: 'La potencia de carga/descarga supera la potencia nominal. Verifique la configuración de la curva planificada!',
|
||||
deliverTip: '¿Confirma la emisión del comando?'
|
||||
}
|
||||
}
|
||||
529
common/locales/homePage/fr.js
Normal file
@ -0,0 +1,529 @@
|
||||
export default {
|
||||
home: {
|
||||
login: 'Se connecter',
|
||||
account: 'Compte',
|
||||
password: 'Mot de passe',
|
||||
placeAccount: 'Veuillez saisir votre compte',
|
||||
placePassword: 'Veuillez saisir votre mot de passe',
|
||||
noLogin: 'Fonctionnalité temporairement non disponible',
|
||||
loadAmmeter: 'Compteur de charge',
|
||||
dieselGeneratorMeter: 'Compteur de générateur diesel',
|
||||
energyStorageMeter: "Compteur de stockage d'énergie",
|
||||
emsControl: 'Contrôle EMS',
|
||||
alarmTypeList: [{
|
||||
name: 'Alarmes en temps réel'
|
||||
}, {
|
||||
name: 'Alarme historique'
|
||||
}],
|
||||
lang: 'Changement de langue',
|
||||
ydty: 'Avoir lu et accepté',
|
||||
yhxy: "Accord d'abonné",
|
||||
and: 'et',
|
||||
yszc: 'Politique de confidentialité',
|
||||
yhxyhyszc: "Accord d'abonné et politique de confidentialité",
|
||||
msgf: "Bienvenue dans l'application « Zeta Cloud ». Nous accordons une grande importance à la protection de vos informations personnelles et de votre vie privée. Veuillez lire attentivement les informations avant d'utilisation de la présente application.",
|
||||
msgs: "L'utilisation de la présente application signifie que vous avez lu, compris et accepté toutes les conditions du présent accord. En cas de désaccord avec l'une des clauses du présent accord, veuillez cesser immédiatement d'utiliser la présente application.",
|
||||
agree: 'Accepter',
|
||||
quit: 'Refuser',
|
||||
guestLogin: 'Connexion visiteur',
|
||||
checkFirst: "Veuillez cocher la case pour accepter les conditions d'utilisation et la politique de confidentialité",
|
||||
stationType: [{
|
||||
name: 'Site en Chine'
|
||||
}, {
|
||||
name: 'Site international'
|
||||
}],
|
||||
useElecPrice: 'Tarif',
|
||||
workStatus: 'État de service :',
|
||||
standing: 'Inactif',
|
||||
activePowerpcs: 'Puissance active :',
|
||||
operatingPower: 'Puissance de service',
|
||||
accumulatedElectricityConsumption: 'Électricité cumulée',
|
||||
pvKpi: 'Indicateurs clés de performance photovoltaïque',
|
||||
saveStandardCoal: 'Économies de charbon standard (en tonne)',
|
||||
equivalentCo2Reduction: 'Réduction des émissions de CO2 (en tonne))',
|
||||
equivalentTreePlantings: "Plantation d'arbres équivalente (U)",
|
||||
dailyPowerGeneration: 'Production journalière',
|
||||
cumulativePowerGeneration: "Quantité cumulative de production d'électricité",
|
||||
socialContribution: 'Contribution sociale',
|
||||
energyStorageRevenueReport: "Bilan de gains du stockage d'énergie",
|
||||
pvStorageRevenueReport: 'Bilan de gains photovoltaïques',
|
||||
projectMonthlyPower: 'Production mensuelle du projet',
|
||||
powerGeneration: "Production d'électricité",
|
||||
mpptTopu: 'Schéma de topologie MPPT',
|
||||
powerGenerationCapacity: 'Puissance de production en électricité',
|
||||
batVoltage: 'Tension BAT',
|
||||
batCurrent: 'Courant BAT',
|
||||
busVoltage: 'Tension BAT',
|
||||
busCurrent: 'Courant BAT',
|
||||
dc: 'Courant continu',
|
||||
dcVoltage: 'Tension continue',
|
||||
pvPower: 'Puissance',
|
||||
enmonthTotalChargePrice: 'Tarif mensuel total de chargement (EUR)',
|
||||
enmonthTotalDisChargePrice: 'Tarif mensuel total de déchargement (EUR)',
|
||||
enearnings: 'Gain (EUR)',
|
||||
pvSwitch: 'Interrupteur photovoltaïque',
|
||||
stationDatacom: 'Données de la centrale électrique',
|
||||
sevenDaycom: 'Semaine',
|
||||
todayEarning: "Revenus d'aujourd'hui (EUR)",
|
||||
totalRevenue: 'Bénéfices cumulés (EUR)',
|
||||
ratedPower: 'Puissance nominale (kW)',
|
||||
currentMonthlyPowerGeneration: "Production d'électricité ce mois-ci",
|
||||
ratedPowernokw: 'Puissance nominale',
|
||||
powerGenerationStatus: "Situation de production d'électricité du projet",
|
||||
monthlyIncome: 'Revenus du mois (EUR)',
|
||||
lowV: 'Tension côté basse tension',
|
||||
lowI: 'Courant côté basse tension',
|
||||
highV: 'Tension côté haute tension',
|
||||
timesArr: [{
|
||||
text: '1 minute',
|
||||
value: 1
|
||||
}, {
|
||||
text: '5 minutes',
|
||||
value: 5
|
||||
}, {
|
||||
text: '10 minutes',
|
||||
value: 10
|
||||
}, {
|
||||
text: '15 minutes',
|
||||
value: 15
|
||||
}, {
|
||||
text: '20 minutes',
|
||||
value: 20
|
||||
}, {
|
||||
text: '30 minutes',
|
||||
value: 30
|
||||
}],
|
||||
esiCab: "Armoire intégrée de stockage d'énergie",
|
||||
gridCab: "Armoire d'interconnexion",
|
||||
grid: 'Distribution aux abonnés',
|
||||
activePower: 'Puissance active (kW) :',
|
||||
charge: 'Chargement',
|
||||
disCharge: 'Déchargement',
|
||||
load: 'Charge',
|
||||
gridCabSwitch: "Interrupteur de l'armoire d'interconnexion :",
|
||||
dCCabin: 'Compartiment CC',
|
||||
PCSCab: 'Compartiment intégré Boost PCS',
|
||||
legend: 'Légende',
|
||||
normal: 'Service normal',
|
||||
fault: 'Défaut',
|
||||
overhaul: 'Maintenance',
|
||||
shutStan: 'Veille/Arrêt',
|
||||
reactivePower: 'Puissance réactive (kW) :',
|
||||
totalV: 'Tension totale (V) :',
|
||||
current: 'Courant (A) :',
|
||||
maxCellVol: 'Tension maximale par cellule :',
|
||||
minCellVol: 'Tension minimale par cellule :',
|
||||
shutdown: 'Arrêt',
|
||||
standby: 'Veille',
|
||||
run: 'Marche',
|
||||
allActivePower: 'Puissance active totale (kW) :',
|
||||
cabinet: "Armoire de stockage d'énergie",
|
||||
gridMeter: 'Compteur du côté de secteur',
|
||||
photovoltaic: 'Photovoltaïque',
|
||||
battery: 'Batterie',
|
||||
status: 'État :',
|
||||
busbar: 'Jeu de barres',
|
||||
dieselGenerator: 'Générateur diesel',
|
||||
ammeter: 'Compteur',
|
||||
device: 'Équipement',
|
||||
earning: 'Gain',
|
||||
alarm: 'Alarmes',
|
||||
policy: 'Stratégie',
|
||||
stationTopo: 'Schéma topologique du poste',
|
||||
deviceMonitor: 'Surveillance des équipements',
|
||||
runCurve: 'Courbes opérationnelles',
|
||||
chargeDisData: 'Données de chargement/déchargement',
|
||||
stationData: 'Données du poste',
|
||||
environmentalData: 'Données de contrôle environnemental',
|
||||
sevenDay: '7 derniers jours',
|
||||
monthDay: '1 dernier mois',
|
||||
monthThree: '3 derniers mois',
|
||||
yearDay: '1 dernière année',
|
||||
tip: 'Indications',
|
||||
loading: 'Chargement en cours...',
|
||||
power: 'Puissance (kW)',
|
||||
photovoltaicCharge: 'Chargement PV',
|
||||
chargingandDischarging: 'Énergie chargée et de déchargement',
|
||||
safeDaysUnit: 'Nombre de jour de service en sécurité (jour)',
|
||||
totalCapacity: 'Puissance installée totale',
|
||||
systemConversionEfficiency: 'Efficacité de conversion du système',
|
||||
currentPower: 'Puissance actuelle',
|
||||
totalCharge: 'Énergie chargée totale',
|
||||
totalDischarge: 'Énergie déchargée totale',
|
||||
dailyCharge: 'Énergie chargée journalière',
|
||||
dailyDischarge: 'Énergie déchargée journalière',
|
||||
dayPhotovoltaic: 'Énergie de production photovoltaïque',
|
||||
noData: 'Aucune donnée disponible',
|
||||
station: 'Poste',
|
||||
electricityPrice: 'Tarif national',
|
||||
mine: 'Mon compte',
|
||||
on: "Position d'enclenchement",
|
||||
off: 'Position de déclenchement',
|
||||
noPermission: 'Accès non autorisé pour le moment',
|
||||
contactAdmin: "Système de groupe, non disponible au public pour le moment. Veuillez contacter l'administrateur pour créer un compte.",
|
||||
title: 'Mode visiteur'
|
||||
},
|
||||
price: {
|
||||
elePriceQuery: "Demande d'un tarif",
|
||||
queryCriteria: 'Condition de la demande',
|
||||
sift: 'Filtrer',
|
||||
station: 'Poste',
|
||||
selectStation: 'Veuillez choisir un poste',
|
||||
provinceRegion: 'Province/ville',
|
||||
selectProvinceRegion: 'Veuillez choisir une province/ville',
|
||||
customerType: 'Abonné',
|
||||
selectEleCustomers: 'Veuillez choisir un abonné',
|
||||
eleType: "Système départemental / classification de l'électricité",
|
||||
selectEleType: "Veuillez choisir un système départemental ou une classification de l'électricité",
|
||||
volLevel: 'Niveau de tension',
|
||||
selectVoltageLevel: 'Veuillez choisir un niveau de tension',
|
||||
exeTime: "Date d'entrée en vigueur",
|
||||
selectExeTime: "Veuillez choisir une date d'entrée en vigueur",
|
||||
noData: 'Aucune donnée',
|
||||
eleLevel: 'Tarif',
|
||||
fsdd: 'Tarif horaire hors heures pleines',
|
||||
useElecPrice: 'Tarif',
|
||||
dietailUnit: '(RMB/kWh)',
|
||||
eleprice: 'Tarif hors heures pleines',
|
||||
nonTime: 'Tarif non horaire',
|
||||
proxyPrice: "Prix d'achat d'électricité par procuration",
|
||||
transmission: 'Tarif de transmission',
|
||||
attachPrice: 'Financement public et surtaxes sur les tarifs',
|
||||
curve: 'Courbe',
|
||||
list: 'Liste',
|
||||
noMoreData: 'Aucune donnée supplémentaire',
|
||||
spike: 'Heures de pointe extrême',
|
||||
speak: 'Heures de pointe',
|
||||
regular: 'Heures pleines',
|
||||
lowValley: 'Heures creuses',
|
||||
deepValley: 'Heures super-creuses',
|
||||
peakDifference: 'Écart maximal pointe/creuse',
|
||||
peakDifferencePrice: 'Écart maximal tarifaire pointe/creuse',
|
||||
dayHighPrice: 'Tarif maximal journalier',
|
||||
dayLowtPrice: 'Tarif minimal journalier',
|
||||
historytrend: 'Tendances historiques',
|
||||
reset: 'Réinitialiser',
|
||||
sure: 'Confirmer',
|
||||
sharp: 'Pointe extrême',
|
||||
peak: 'Pointe',
|
||||
flat: 'Pleine',
|
||||
valley: 'Creuse'
|
||||
},
|
||||
mine: {
|
||||
accountSec: 'Sécurité du compte',
|
||||
aboutUs: 'À propos de nous',
|
||||
message: 'Notifications',
|
||||
changeLanguage: 'Changement de langue',
|
||||
sysSetting: 'Réglages',
|
||||
messageAlerts: 'Rappels de messages',
|
||||
acceptMessageAlerts: 'Accepter les rappels de messages',
|
||||
messageDetail: 'Détails du message',
|
||||
closeMessage: "Après la désactivation et lors de réception d'un message, seule une notification apparaîtra au lieu d'indiquer l'élément de message.",
|
||||
sound: 'Son et vibration',
|
||||
acceptSound: "Émettre un son ou déclencher une vibration à la réception d'un message",
|
||||
settingSound: 'Accéder aux Réglages pour modifier le son et la vibration',
|
||||
update: 'Rappel de mise à jour logicielle',
|
||||
updateAlerts: "Un rappel sera envoyé en cas de publication d'une nouvelle version du présent logiciel.",
|
||||
noUpdate: "La version mini-programme ou H5 est déjà la dernière version. Aucune vérification de mise à jour n'est nécessaire !",
|
||||
general: 'Général',
|
||||
version: 'Version actuelle',
|
||||
Privacy: 'Politique de confidentialité',
|
||||
UserAgreement: "Accord d'abonné",
|
||||
logOut: 'Se déconnecter',
|
||||
notAva: 'Fonction non disponible',
|
||||
setPassword: 'Veuillez définir un mot de passe de connexion',
|
||||
passwordService: 'Mettre à jour régulièrement le mot de passe pour améliorer la sécurité',
|
||||
oldPassword: 'Ancien mot de passe',
|
||||
inputOldPossword: "Veuillez saisir l'ancien mot de passe",
|
||||
newPassword: 'Nouveau mot de passe',
|
||||
inputNewPassword: 'Veuillez saisir le nouveau mot de passe',
|
||||
surePassword: 'Confirmer le mot de passe',
|
||||
inputSurePassword: 'Veuillez confirmer le mot de passe',
|
||||
PasswordError: "Le mot de passe doit être une combinaison de 6 à 12 chiffres et caractères (au lieu d'être unique en chiffres)",
|
||||
submit: 'Soumettre',
|
||||
resetSubmit: 'Veuillez ressaisir le mot de passe',
|
||||
passwordEqual: 'Les deux mots de passe saisis ne correspondent pas.',
|
||||
tip: 'Indications',
|
||||
updateSuccess: 'Votre mot de passe a été modifié avec succès. Veuillez vous reconnecter.',
|
||||
inputError: 'Vos informations sont incorrectes. Veuillez les corriger selon les instructions.',
|
||||
hoenergypower: 'Sinotech Energy Storage',
|
||||
companyHomepage: "Page d'accueil",
|
||||
technicalServices: 'Services techniques',
|
||||
termsOfService: 'Conditions de service',
|
||||
downUpdate: 'Télécharger la mise à jour ?',
|
||||
appTitle: "Plate-forme de gestion intelligente du stockage d'énergie",
|
||||
lookDetail: 'Voir les détails',
|
||||
noMessage: 'Aucun message disponible',
|
||||
sureRead: 'Confirmer la lecture',
|
||||
cancel: 'Annuler',
|
||||
operateSuccess: 'Opération réussie',
|
||||
operateFail: 'Opération échouée',
|
||||
messageReaded: "La lecture du message a été effectuée. Aucune répétition n'est nécessaire !"
|
||||
},
|
||||
device: {
|
||||
inputNameQuery: 'Saisir le nom à rechercher',
|
||||
query: 'Rechercher',
|
||||
all: 'Tout',
|
||||
queryResult: 'Résultats de la recherche',
|
||||
pcsTopu: 'Schéma topologique PCS',
|
||||
totalAcReaPower: 'Puissance active/réactive totale',
|
||||
timeGranularity: 'Granularité temporelle',
|
||||
deviceData: "Données relatives à l'équipement",
|
||||
acPower: 'Puissance active CA',
|
||||
acRecPower: 'Puissance réactive CA',
|
||||
gridFrequency: 'Fréquence du secteur',
|
||||
abLineVol: 'Tension de câble AB',
|
||||
bcLineVol: 'Tension de câble BC',
|
||||
caLineVol: 'Tension de câble CA',
|
||||
acur: 'Courant de phase A',
|
||||
bcur: 'Courant de phase B',
|
||||
ccur: 'Courant de phase C',
|
||||
DCPower: 'Puissance CC',
|
||||
DCVol: 'Tension continue',
|
||||
DCCurrent: 'Courant continu',
|
||||
acbreaker: 'Disjoncteur CA',
|
||||
dcbreaker: 'Disjoncteur CC',
|
||||
runState: 'État de service',
|
||||
rsState: 'État distant/local',
|
||||
gridMode: 'État connecté/déconnecté',
|
||||
deviceState: 'État de périphérique',
|
||||
totalActivePower: 'Puissance active totale',
|
||||
totalReactivePower: 'Puissance réactive totale',
|
||||
local: 'Local',
|
||||
distance: 'Distant',
|
||||
grid: 'État connecté',
|
||||
offGrid: 'État déconnecté',
|
||||
standby: 'Veille',
|
||||
shutdown: 'Arrêt',
|
||||
run: 'Marche',
|
||||
fault: 'Défaut',
|
||||
charge: 'Chargement',
|
||||
discharge: 'Déchargement',
|
||||
standing: 'Inactif',
|
||||
localAutomatic: 'Local automatique',
|
||||
localManual: 'Local manuel',
|
||||
timesArr: [{
|
||||
label: '1 minute',
|
||||
value: 1
|
||||
}, {
|
||||
label: '5 minutes',
|
||||
value: 5
|
||||
}, {
|
||||
label: '10 minutes',
|
||||
value: 10
|
||||
}, {
|
||||
label: '15 minutes',
|
||||
value: 15
|
||||
}, {
|
||||
label: '20 minutes',
|
||||
value: 20
|
||||
}, {
|
||||
label: '30 minutes',
|
||||
value: 30
|
||||
}],
|
||||
yx: 'Télésignalisation',
|
||||
yc: 'Télémesure',
|
||||
data: 'Données',
|
||||
noData: 'Aucune donnée disponible',
|
||||
loadText: {
|
||||
loadmore: 'Tirer légèrement vers haut',
|
||||
loading: 'Chargement',
|
||||
nomore: 'Fin de données'
|
||||
},
|
||||
clusterTotalVol: 'Tension totale de cluster/état de charge',
|
||||
runData: 'Données de service',
|
||||
cumCharge: 'Énergie chargée cumulée',
|
||||
cumDischarge: 'Énergie déchargée cumulée',
|
||||
avgTem: 'Température moyenne',
|
||||
avgVol: 'Tension moyenne',
|
||||
maxCellVol: 'Tension maximale par cellule',
|
||||
minCellVol: 'Tension minimale par cellule',
|
||||
maxCellTem: 'Température maximale par cellule',
|
||||
minCellTem: 'Température minimale par cellule',
|
||||
maxvolDiff: 'Différence de tension maximale',
|
||||
maxTemDiff: 'Différence de température maximale',
|
||||
batteryGroupNum: 'No. de bloc-batterie',
|
||||
cellPostion: 'Position de CELL',
|
||||
vol: 'Tension',
|
||||
volqua: 'Qualité de tension',
|
||||
curqua: 'Qualité de courant',
|
||||
acRea: 'Puissance active/réactive',
|
||||
avol: 'Tension de phase A',
|
||||
bvol: 'Tension de phase B',
|
||||
cvol: 'Tension de phase C',
|
||||
zxygzdl: 'Énergie active positive totale',
|
||||
dlj: 'Électricité (pointe extrême)',
|
||||
dlf: 'Électricité (pointe)',
|
||||
dlp: 'Électricité (pleine)',
|
||||
dlg: 'Électricité (creuse)',
|
||||
fxygzdl: 'Énergie active négative totale',
|
||||
hxyggl: "Puissance active d'enclenchement",
|
||||
hxwggl: "Puissance réactive d'enclenchement",
|
||||
hxglys: "Facteur de puissance d'enclenchement",
|
||||
a: 'Phase A',
|
||||
b: 'Phase B',
|
||||
c: 'Phase C',
|
||||
active: 'Puissance active',
|
||||
reactive: 'Puissance réactive',
|
||||
current: 'Courant',
|
||||
EMU: "Données de service de l'armoire d'interconnexion",
|
||||
on: "Position d'enclenchement",
|
||||
off: 'Position de déclenchement',
|
||||
emuSwitchPosition: "Position de disjoncteur de l'armoire d'interconnexion",
|
||||
emuRemoteOperation: "Opération distante de l'armoire d'interconnexion",
|
||||
emuKnifePosition: "Position du disjoncteur de mise à la terre de l'armoire d'interconnexion",
|
||||
online: 'En ligne',
|
||||
offline: 'Hors ligne',
|
||||
temConCabRunData: 'Données de service du thermostat',
|
||||
aTem: 'Température de phase A',
|
||||
bTem: 'Température de phase B',
|
||||
cTem: 'Température de phase C',
|
||||
dehumidifierRunData: 'Données de service du déshumidificateur',
|
||||
tem: 'Température',
|
||||
hum: 'Humidité',
|
||||
humStartValue: "Seuil de départ d'humidité",
|
||||
humStopValue: "Seuil d'arrêt d'humidité",
|
||||
ammeterRunData: 'Données de service du compteur',
|
||||
frequency: 'Fréquence',
|
||||
perceptualPower: 'Énergie inductive',
|
||||
CapacitivePower: 'Énergie capacitive',
|
||||
volRatio: 'Rapport de distribution de la tension',
|
||||
maxVol: 'Tension maximale',
|
||||
minVol: 'Tension minimale',
|
||||
maxTem: 'Température maximale',
|
||||
minTem: 'Température minimale',
|
||||
cellVolChart: 'Histogramme des tensions par cellule',
|
||||
cellTemChart: 'Histogramme des températures par cellule',
|
||||
volUnit: 'Tension / cellule',
|
||||
temUnit: 'Température / cellule',
|
||||
num: 'Cellule',
|
||||
stackTotalVol: 'Tension totale du rack/état de charge',
|
||||
leftTemCabin: 'Température gauche du compartiment',
|
||||
leftHubCabin: 'Humidité gauche du compartiment',
|
||||
rightTemCabin: 'Température droite du compartiment',
|
||||
rightHubCabin: 'Humidité droite du compartiment',
|
||||
stackCurrent: 'Courant rack',
|
||||
stackTotalCurrent: 'Courant total du rack',
|
||||
stackSoc: 'État de charge du rack',
|
||||
CumulativeCharge: 'Énergie chargée cumulée',
|
||||
CumulativeDischarge: 'Énergie déchargée cumulée',
|
||||
zdz: "Résistance d'isolation positive",
|
||||
fdz: "Résistance d'isolation négative",
|
||||
rechargeCapacity: 'Énergie chargée disponible',
|
||||
dischargeCapacity: 'Énergie déchargée disponible',
|
||||
totalMaxVolData: 'Tension maximale du cluster',
|
||||
stackCell: 'No. du cluster',
|
||||
totalMinVolData: 'Tension minimale du cluster',
|
||||
stackNum: 'No. du cluster de batteries',
|
||||
groupNum: 'No. de bloc-batterie',
|
||||
cellLocation: 'Position de la cellule',
|
||||
historyData: 'Données historiques'
|
||||
},
|
||||
earning: {
|
||||
changeDischargePro: 'Généralités de chargement/déchargement du projet',
|
||||
capacity: 'Puissance installée',
|
||||
monthTotalCharge: 'Énergie chargée mensuelle totale',
|
||||
monthTotalDischarge: 'Énergie déchargée mensuelle totale',
|
||||
monthEff: 'Efficacité de conversion mensuelle du système',
|
||||
chargeVol: 'Énergie chargée cumulée',
|
||||
dischargeVol: 'Énergie déchargée cumulée',
|
||||
totalEff: 'Efficacité de conversion cumulée du système',
|
||||
projectRevenue: 'Gains du projet',
|
||||
monthTotalChargePrice: 'Tarif mensuel total de chargement (RMB)',
|
||||
monthTotalDisChargePrice: 'Tarif mensuel total de déchargement (RMB)',
|
||||
earnings: 'Gain (RMB)',
|
||||
earningsDetail: 'Détails des gains',
|
||||
charge: 'Chargement',
|
||||
ele: 'Énergie (kWh)',
|
||||
expend: 'Dépenses (RMB)',
|
||||
noChargeData: 'Aucune donnée de chargement disponible',
|
||||
disCharge: 'Déchargement',
|
||||
noDisChargeData: 'Aucune donnée de déchargement disponible',
|
||||
year: 'Année',
|
||||
month: 'Mois',
|
||||
day: 'Jour',
|
||||
hour: 'Heure',
|
||||
minute: 'Minute',
|
||||
second: 'Seconde'
|
||||
},
|
||||
alarm: {
|
||||
sift: 'Filtrer',
|
||||
device: 'Équipement concerné',
|
||||
placeSelect: 'Veuillez choisir',
|
||||
event: 'Événement',
|
||||
level: "Niveau d'alarme",
|
||||
timeRange: 'Plage horaire',
|
||||
placeholderDate: 'Veuillez choisir une plage horaire',
|
||||
reset: 'Réinitialiser',
|
||||
sure: 'Confirmer',
|
||||
noData: 'Aucune donnée',
|
||||
confirm: 'État confirmé',
|
||||
noConfirmed: 'État non confirmé',
|
||||
alarmTypeList: [{
|
||||
name: 'Alarme en temps réel'
|
||||
}, {
|
||||
name: 'Alarme historique'
|
||||
}],
|
||||
loadText: {
|
||||
loadmore: 'Tirer légèrement vers haut',
|
||||
loading: 'Chargement',
|
||||
nomore: 'Fin de données'
|
||||
},
|
||||
allStation: 'Tous les postes',
|
||||
alarm: 'Alarms',
|
||||
noDevice: 'Aucune donnée de périphérique disponible',
|
||||
placeholderInput: "Veuillez saisir l'information sur l'alarme",
|
||||
status: 'État',
|
||||
station: 'Poste concerné',
|
||||
alarmTime: "Heure d'alarme",
|
||||
confirmer: 'Confirmé par',
|
||||
confirmTime: 'Heure de confirmation'
|
||||
},
|
||||
policy: {
|
||||
policyTitle: 'Stratégie de distribution',
|
||||
planCurve: 'Courbe programmée',
|
||||
planCurveTem: 'Modèle de courbe programmée',
|
||||
IssueDevice: "Équipement cable d'envoi d'ordre",
|
||||
operateOrNot: 'Mise en service ?',
|
||||
socUplimit: "Limite supérieure d'état de charge",
|
||||
socDownlimit: "Limite inférieure d'état de charge",
|
||||
effectiveTime: 'Heure de validation',
|
||||
selectEffectiveTime: "Veuillez choisir l'heure de validation",
|
||||
distributeResult: "Résultat d'envoi",
|
||||
notDelivered: 'Non envoyé',
|
||||
commandDistribution: "Envoi d'ordre",
|
||||
controlDistribution: "Commande d'envoi",
|
||||
genSetting: 'Réglages généraux',
|
||||
save: 'Sauvegarder',
|
||||
pleaseInputValue: 'Veuillez saisir une valeur',
|
||||
pleaseInputPassword: 'Veuillez saisir votre mot de passe',
|
||||
password: 'Mot de passe',
|
||||
policyTypeList: [{
|
||||
name: "Envoi d'ordre"
|
||||
}, {
|
||||
name: 'Réglages généraux'
|
||||
}],
|
||||
radioList: [{
|
||||
name: "Mise en service",
|
||||
disabled: false
|
||||
}, {
|
||||
name: "Non mise en service",
|
||||
disabled: false
|
||||
}],
|
||||
selectIssueDevice: "Veuillez choisir un équipement cable d'envoi d'ordre",
|
||||
deliverErrorNewTip: 'Erreur de configuration ou configuration manquante du mapping ! Veuillez réessayer après confirmation !',
|
||||
passwordSuccess: 'Mot de passe correct',
|
||||
passwordError: 'Mot de passe incorrect',
|
||||
isOpen: 'Activer ?',
|
||||
isClose: 'Désactiver ?',
|
||||
distributeSuccess: 'Envoi réussi',
|
||||
distributeFail: 'Envoi échoué',
|
||||
isNum: 'Veuillez contrôler si la valeur saisie est un chiffre',
|
||||
saveSuccess: 'Sauvegarde réussie',
|
||||
saveError: 'Sauvegarde échouée',
|
||||
delivered: 'Envoi fini',
|
||||
selectPlanCurveTem: 'Veuillez choisir un modèle de courbe programmée',
|
||||
deliverErrorTip: 'La puissance de chargement/déchargement dépasse la puissance nominale. Veuillez confirmer les réglages de courbe programmée !',
|
||||
deliverTip: "Voulez-vous envoyer l'ordre ?"
|
||||
}
|
||||
}
|
||||
561
common/locales/homePage/pl.js
Normal file
@ -0,0 +1,561 @@
|
||||
export default {
|
||||
home: {
|
||||
login: 'Zaloguj',
|
||||
account: 'Nazwa użytkownika',
|
||||
password: 'Hasło',
|
||||
placeAccount: 'Wprowadź numer konta',
|
||||
placePassword: 'Wprowadź hasło',
|
||||
noLogin: 'Funkcje jeszcze niedostępne',
|
||||
loadAmmeter: 'Miernik obciążenia',
|
||||
dieselGeneratorMeter: 'Miernik energii z paliwa',
|
||||
energyStorageMeter: 'Miernik energii akumulatora',
|
||||
emsControl: "Kontrola EMS",
|
||||
alarmTypeList: [
|
||||
{
|
||||
name: 'Alarmy w czasie rzeczywistym'
|
||||
},
|
||||
{
|
||||
name: 'Alarmy historyczne'
|
||||
}
|
||||
],
|
||||
lang: 'Przełącz język',
|
||||
ydty: 'Przeczytaj i zaakceptuj',
|
||||
yhxy: 'Umowa użytkownika',
|
||||
and: 'oraz',
|
||||
yszc: 'Polityka prywatności',
|
||||
yhxyhyszc: 'Umowa użytkownika i polityka prywatności',
|
||||
msgf: 'Witamy w Zeta Cloud, bardzo poważnie traktujemy ochronę danych osobowych i prywatności użytkowników. Przeczytaj uważnie przed użyciem tej aplikacji',
|
||||
msgs: 'Korzystając z Aplikacji, użytkownik potwierdza, że przeczytał, zrozumiał i zgadza się zaakceptować wszystkie warunki niniejszej Umowy. Jeśli użytkownik nie zgadza się z jakimkolwiek postanowieniami niniejszej Umowy, powinien natychmiast zaprzestać korzystania z Aplikacji.',
|
||||
agree: 'Zgadzam się z',
|
||||
quit: 'Nie zgadzam się',
|
||||
guestLogin: 'Zaloguj się jako gość',
|
||||
checkFirst: 'Zaznacz pole, aby zaakceptować Umowę użytkownika i Politykę prywatności.',
|
||||
stationType: [
|
||||
{
|
||||
name: 'Platforma chińska'
|
||||
},
|
||||
{
|
||||
name: 'Platforma zagraniczna'
|
||||
}
|
||||
],
|
||||
useElecPrice: 'Taryfa',
|
||||
workStatus: 'Status pracy: ',
|
||||
standing: 'statyczny',
|
||||
activePowerpcs: 'Moc czynna: ',
|
||||
operatingPower: 'Moc operacyjna',
|
||||
accumulatedElectricityConsumption: 'Łączny pobór mocy',
|
||||
pvKpi: 'Fotowoltaiczny wskaźnik KPI',
|
||||
saveStandardCoal: 'Oszczędność węgla standardowego (w tonach)',
|
||||
equivalentCo2Reduction: 'Redukcja emisji CO₂ (w tonach)',
|
||||
equivalentTreePlantings: 'Równoważność nasadzenia drzew (szt.)',
|
||||
dailyPowerGeneration: 'Dzienne wytwarzanie energii',
|
||||
cumulativePowerGeneration: 'Łączna produkcja energii',
|
||||
socialContribution: 'Wkład społeczny',
|
||||
energyStorageRevenueReport: 'Rachunek zysków magazynowania energii',
|
||||
pvStorageRevenueReport: 'Fotowoltaiczny rachunek zysków',
|
||||
projectMonthlyPower: 'Miesięczna produkcja energii w ramach projektu',
|
||||
powerGeneration: 'Generowana energia elektryczna',
|
||||
mpptTopu: 'Schemat topologii MPPT',
|
||||
powerGenerationCapacity: 'Generowana moc',
|
||||
batVoltage: 'Napięcie AKU',
|
||||
batCurrent: 'Prąd AKU',
|
||||
busVoltage: 'Napięcie AKU',
|
||||
busCurrent: 'Prąd AKU',
|
||||
dc: 'Prąd stały',
|
||||
dcVoltage: 'Napięcie stałe',
|
||||
operatingPower: 'Moc operacyjna',
|
||||
pvPower: 'Moc',
|
||||
enmonthTotalChargePrice: 'Całkowita cena ładowania w tym miesiącu (PLN)',
|
||||
enmonthTotalDisChargePrice: 'Całkowita cena rozładowania w tym miesiącu (PLN)',
|
||||
enearnings: 'Wpływy (PLN)',
|
||||
pvSwitch: 'Przełącznik PV',
|
||||
stationDatacom: 'Dane elektrowni',
|
||||
sevenDaycom:'Tydzień',
|
||||
todayEarning: 'Dzisiejsze zyski (EUR)',
|
||||
totalRevenue: 'Skumulowane zyski(EUR)',
|
||||
ratedPower: 'Moc nominalna(kW)',
|
||||
currentMonthlyPowerGeneration: 'Produkcja energii w tym miesiącu',
|
||||
ratedPowernokw: 'Moc nominalna',
|
||||
powerGenerationStatus: 'Produkcja energii elektrycznej w projekcie',
|
||||
monthlyIncome: 'W tym miesiącu zyski(EUR)',
|
||||
lowV:'Napięcie boczne niskiego napięcia',
|
||||
lowI:'Prąd boczny niskiego napięcia',
|
||||
highV:'Napięcie boczne wysokiego napięcia',
|
||||
timesArr: [{
|
||||
text: '1 minuta.',
|
||||
value: 1
|
||||
},
|
||||
{
|
||||
text: '5 minut.',
|
||||
value: 5
|
||||
},
|
||||
{
|
||||
text: '10 minut.',
|
||||
value: 10
|
||||
},
|
||||
{
|
||||
text: '15 minut.',
|
||||
value: 15
|
||||
},
|
||||
{
|
||||
text: '20 minut.',
|
||||
value: 20
|
||||
},
|
||||
{
|
||||
text: '30 minut.',
|
||||
value: 30
|
||||
}
|
||||
],
|
||||
esiCab: 'Zintegrowana szafa magazynu energii',
|
||||
gridCab: 'Szafa połączona z siecią',
|
||||
grid: 'Rozdzielnia użytkownika',
|
||||
activePower: 'Moc czynna (kW):',
|
||||
charge: 'Ładowanie',
|
||||
disCharge: 'Rozładowanie',
|
||||
load: 'Obciążenie',
|
||||
gridCabSwitch: 'Przełącznik szafa połączonej z siecią:',
|
||||
dCCabin: 'Moduł prądu stałego',
|
||||
PCSCab: 'Komora wspomagająca PCS',
|
||||
legend: 'Legenda',
|
||||
normal: 'Normalne działanie',
|
||||
fault: 'Awaria',
|
||||
overhaul: 'Naprawa',
|
||||
shutStan: 'Tryb gotowości/wyl.',
|
||||
reactivePower: 'Moc bierna (kW):',
|
||||
totalV: 'Napięcie całkowite (V):',
|
||||
current: 'Natężenie prądu (A):',
|
||||
maxCellVol: 'Maksymalne napięcie na jednostkę:',
|
||||
minCellVol: 'Minimalne napięcie na jednostkę:',
|
||||
shutdown: 'Wyl. urząd.',
|
||||
standby: 'Tryb gotowości',
|
||||
run: 'Praca',
|
||||
allActivePower: 'Całkowita moc czynna (kW):',
|
||||
cabinet: 'Szafa magazyn energii',
|
||||
gridMeter: 'Liczniki po stronie sieci',
|
||||
photovoltaic: 'Fotowoltaika',
|
||||
battery: 'Akumulator',
|
||||
status: 'Status:',
|
||||
busbar: 'Szyna zbiorcza',
|
||||
dieselGenerator: 'Generator diesla',
|
||||
ammeter: 'Watomierz',
|
||||
device: 'Urządzenie',
|
||||
earning: 'Zysk',
|
||||
alarm: 'Ostrzeżenie',
|
||||
policy: 'Strategia',
|
||||
stationTopo: 'Topologia stacji',
|
||||
deviceMonitor: 'Monitorowanie sprzętu',
|
||||
runCurve: 'Krzywa działania',
|
||||
chargeDisData: 'Dane ładowania i rozładowania',
|
||||
stationData: 'Dane stacji',
|
||||
environmentalData: 'Dane kontroli środ.',
|
||||
sevenDay: 'Ostatnie siedem dni',
|
||||
monthDay: 'Ostatni miesiąc',
|
||||
monthThree: 'Ostatnie trzy miesiące',
|
||||
yearDay: 'Ostatni rok',
|
||||
tip: 'Informacja',
|
||||
loading: 'Ładowanie zasobów...',
|
||||
power: 'Moc (kW)',
|
||||
photovoltaicCharge: 'Ładowanie fotowoltaiczne',
|
||||
chargingandDischarging: 'Wolumen ładowania i rozładowania',
|
||||
safeDaysUnit: 'Dni bezpiecznej pracy',
|
||||
totalCapacity: 'Całkowita zainstalowana moc',
|
||||
systemConversionEfficiency: 'Wydajność konwersji systemu',
|
||||
currentPower: 'Bieżąca moc',
|
||||
totalCharge: 'Całkowite ładowanie',
|
||||
totalDischarge: 'Całkowite rozładowanie',
|
||||
dailyCharge: 'Dzienna ładowanie',
|
||||
dailyDischarge: 'Dzienne rozładowanie',
|
||||
dayPhotovoltaic: 'Wytworzona energia fotowoltaiczna',
|
||||
noData: 'Brak danych',
|
||||
station: 'Stacja zasilania',
|
||||
electricityPrice: 'Taryfa krajowa',
|
||||
mine: 'Moje',
|
||||
on: 'Pozycja sumaryczna',
|
||||
off: 'Pozycja procentowa',
|
||||
noPermission: 'Brak dostępu w tym momencie',
|
||||
contactAdmin: 'System grup kapitałowych, jeszcze niedostępny dla publiczności, prosimy o kontakt z administratorem w celu założenia konta.',
|
||||
title: 'Tryb gościa'
|
||||
},
|
||||
price: {
|
||||
elePriceQuery: 'Wyszukiwanie taryf',
|
||||
queryCriteria: 'Warunki wyszukiwania',
|
||||
sift: 'Filtruj',
|
||||
station: 'Stacja zasilania',
|
||||
selectStation: 'Wybierz stację zasilania',
|
||||
provinceRegion: 'Obszary prowincjonalne i miejskie',
|
||||
selectProvinceRegion: 'Wybierz prowincję lub miasto',
|
||||
customerType: 'Klient',
|
||||
selectEleCustomers: 'Wybierz klienta',
|
||||
eleType: 'Dział/klasyfikacja zużycia energii',
|
||||
selectEleType: 'Wybierz dział/klasyfikację energii elektrycznej',
|
||||
volLevel: 'Poziom napięcia',
|
||||
selectVoltageLevel: 'Wybierz poziom napięcia',
|
||||
exeTime: 'Data wdrożenia',
|
||||
selectExeTime: 'Wybierz datę wdrożenia',
|
||||
noData: 'Dane są puste',
|
||||
eleLevel: 'Poziom taryfy',
|
||||
fsdd: 'Taryfy czasowe',
|
||||
useElecPrice: 'Taryfa',
|
||||
dietailUnit: '(PLN/kWh)',
|
||||
eleprice: 'Taryfa',
|
||||
nonTime: 'Taryfa bez podziału czasu',
|
||||
proxyPrice: 'Cena zakupu energii przez pośrednika',
|
||||
transmission: 'Opłata przesyłowa',
|
||||
attachPrice: 'Fundusze rządowe i dodatkowe taryfy',
|
||||
curve: 'Wykres',
|
||||
list: 'Lista',
|
||||
noMoreData: 'Brak dalszych dostępnych danych',
|
||||
spike: 'Super szczyt',
|
||||
speak: 'Szczyt',
|
||||
regular: 'Zwykły',
|
||||
lowValley: 'Dolina',
|
||||
deepValley: 'Głęboka dolina',
|
||||
peakDifference: 'Maksymalna różnica między szczytem a doliną',
|
||||
peakDifferencePrice: 'Maksymalny rozrzut między szczytami',
|
||||
dayHighPrice: 'Maksymalna taryfa dzienna',
|
||||
dayLowtPrice: 'Minimalna taryfa dzienna',
|
||||
historytrend: 'Trend historyczny',
|
||||
reset: 'Reset',
|
||||
sure: 'Zatwierdź',
|
||||
sharp: 'Super szczyt',
|
||||
peak: 'Szczyt',
|
||||
flat: 'Zwykły',
|
||||
valley: 'Dolina'
|
||||
},
|
||||
mine: {
|
||||
accountSec: 'Bezpieczeństwo konta',
|
||||
aboutUs: 'O nas',
|
||||
message: 'Powiadomienia',
|
||||
changeLanguage: 'Przełącz język',
|
||||
sysSetting: 'Ustawienia systemu',
|
||||
messageAlerts: 'Przypomnienie o wiadomości',
|
||||
acceptMessageAlerts: 'Otrzymuj przypomnienia o wiadomościach',
|
||||
messageDetail: 'Szczegóły wiadomości',
|
||||
closeMessage: 'Gdy zamknięte, po otrzymaniu wiadomości wyświetli się tylko informacja o alercie, a nie treść wiadomości.',
|
||||
sound: 'Dźwięk i wibracje',
|
||||
acceptSound: 'Odtwarzanie dźwięku lub wibracji po otrzymaniu wiadomości',
|
||||
settingSound: 'Przejdź do Ustawień systemowych i zmień dźwięk i wibracje',
|
||||
update: 'Alerty o aktualizacjach oprogramowania',
|
||||
updateAlerts: 'Powiadomienia o wydaniu nowej wersji oprogramowania',
|
||||
noUpdate: 'Aplikacja lub klient H5 jest już w najnowszej wersji, nie ma potrzeby sprawdzania aktualizacji!',
|
||||
general: 'Ogólne',
|
||||
version: 'Aktualna wersja',
|
||||
Privacy: 'Polityka prywatności',
|
||||
UserAgreement: 'Umowa użytkownika',
|
||||
logOut: 'Wyloguj',
|
||||
notAva: 'Ta funkcja nie jest jeszcze dostępna',
|
||||
setPassword: 'Ustaw hasło logowania',
|
||||
passwordService: 'Regularnie aktualizuj hasła w celu zwiększenia bezpieczeństwa',
|
||||
oldPassword: 'Stare hasło',
|
||||
inputOldPossword: 'Proszę wprowadzić stare hasło',
|
||||
newPassword: 'Nowe hasło',
|
||||
inputNewPassword: 'Wprowadź nowe hasło',
|
||||
surePassword: 'Potwierdź hasło',
|
||||
inputSurePassword: 'Proszę potwierdzić hasło',
|
||||
PasswordError: 'Hasło musi składać się z 6-12 cyfr, kombinacji znaków (nie czystych cyfr).',
|
||||
submit: 'Prześlij',
|
||||
resetSubmit: 'Wprowadź ponownie hasło',
|
||||
passwordEqual: 'Wprowadzone hasła się nie zgadzają',
|
||||
tip: 'Informacja',
|
||||
updateSuccess: 'Hasło zostało pomyślnie zmienione, zaloguj się ponownie.',
|
||||
inputError: 'Wprowadzone informacje są nieprawidłowe, postępuj zgodnie z instrukcjami, aby je poprawić.',
|
||||
hoenergypower: 'Sinocat Energy Storage',
|
||||
companyHomepage: 'Strona główna',
|
||||
technicalServices: 'Usługi techniczne',
|
||||
termsOfService: 'Warunki świadczenia usług',
|
||||
downUpdate: 'Czy pobrałeś(aś) aktualizację?',
|
||||
appTitle: 'Inteligentna platforma kontroli magazynowania energii',
|
||||
lookDetail: 'Wyświetl szczegóły',
|
||||
noMessage: 'Na razie brak wiadomości',
|
||||
sureRead: 'Przeczytałem(am)',
|
||||
cancel: 'Anuluj',
|
||||
messageDetail: 'Szczegóły wiadomości',
|
||||
operateSuccess: 'Operacja zakończona sukcesem',
|
||||
operateFail: 'Operacja nie powiodła się',
|
||||
messageReaded: 'Wiadomość została odczytana, nie ma potrzeby powtarzania akcji.'
|
||||
},
|
||||
device: {
|
||||
inputNameQuery: 'Wyszukiwanie według nazwy',
|
||||
query: 'Wyszukiwanie',
|
||||
all: 'Wszystko',
|
||||
queryResult: 'Wyyniki wyszukiwania',
|
||||
pcsTopu: 'Schemat topologii PCS',
|
||||
totalAcReaPower: 'Calkowita moc czynna/calkowita moc bierna',
|
||||
timeGranularity: 'Granulacja czasu',
|
||||
deviceData: 'Dane sprzętu',
|
||||
acPower: 'Moc czynna prądu zmiennego',
|
||||
acRecPower: 'Moc bierna prądu zmiennego',
|
||||
gridFrequency: 'Częstotliwość sieci',
|
||||
abLineVol: 'Napięcie linii AB',
|
||||
bcLineVol: 'Napięcie linii BC',
|
||||
caLineVol: 'Napięcie linii CA',
|
||||
acur: 'Prąd fazy A',
|
||||
bcur: 'Prąd fazy B',
|
||||
ccur: 'Prąd fazy C',
|
||||
DCPower: 'Moc prądu stałego',
|
||||
DCVol: 'Napięcie stałe',
|
||||
DCCurrent: 'Prąd stały',
|
||||
acbreaker: 'Wyłącznik obwodu prądu zmiennego',
|
||||
dcbreaker: 'Wyłącznik obwodu prądu stałego',
|
||||
runState: 'Stan pracy',
|
||||
rsState: 'Stan zdalny/lokalny',
|
||||
gridMode: 'Stan sieci/Poza siecią',
|
||||
deviceState: 'Stan urządzenia',
|
||||
totalActivePower: 'Calkowita moc czynna',
|
||||
totalReactivePower: 'Calkowita moc bierna',
|
||||
local: 'Lokalnie',
|
||||
distance: 'Zdalnie',
|
||||
grid: 'Podłączenie do sieci',
|
||||
offGrid: 'Poza siecią',
|
||||
standby: 'Tryb gotowości',
|
||||
shutdown: 'Wyl. urzadz.',
|
||||
run: 'Praca',
|
||||
fault: 'Awaria',
|
||||
charge: 'Ładowanie',
|
||||
discharge: 'Rozładowanie',
|
||||
standing: 'statyczny',
|
||||
localAutomatic: 'Lokalnie auto',
|
||||
localManual: 'Lokalnie ręcznie',
|
||||
timesArr: [
|
||||
{
|
||||
label: '1 minuta',
|
||||
value: 1
|
||||
},
|
||||
{
|
||||
label: '5 minut',
|
||||
value: 5
|
||||
},
|
||||
{
|
||||
label: '10 minut',
|
||||
value: 10
|
||||
},
|
||||
{
|
||||
label: '15 minut',
|
||||
value: 15
|
||||
},
|
||||
{
|
||||
label: '20 minut',
|
||||
value: 20
|
||||
},
|
||||
{
|
||||
label: '30 minut',
|
||||
value: 30
|
||||
}
|
||||
],
|
||||
yx: 'Zdalny sygnał',
|
||||
yc: 'DANE pomiar',
|
||||
data: 'Dane',
|
||||
noData: 'Brak danych',
|
||||
loadText: {
|
||||
loadmore: 'Delikatnie pociągnij',
|
||||
loading: 'Próbuję załadować',
|
||||
nomore: 'Nie ma więcej'
|
||||
},
|
||||
clusterTotalVol: 'Calkowite napięcie klastra/SOC',
|
||||
runData: 'Dane operacyjne',
|
||||
cumCharge: 'Łączne obciążenie',
|
||||
cumDischarge: 'Łączne rozładowanie',
|
||||
avgTem: 'Średnia temperatura',
|
||||
avgVol: 'Średnie napięcie',
|
||||
maxCellVol: 'Maksymalne napięcie na jednostkę',
|
||||
minCellVol: 'Minimalne napięcie na jednostkę',
|
||||
maxCellTem: 'Maksymalna temperatura pojedynczej jednostki',
|
||||
minCellTem: 'Minimalna temperatura jednostki',
|
||||
maxvolDiff: 'Maksymalna różnica napięcia',
|
||||
maxTemDiff: 'Maksymalna różnica temperatur',
|
||||
batteryGroupNum: 'Numer akumulatora',
|
||||
cellPostion: 'Lokalizacja OGNIWA',
|
||||
vol: 'Napięcie prądu',
|
||||
volqua: 'Jakość napięcia',
|
||||
curqua: 'Jakość prądu',
|
||||
acRea: 'Czynna/Bierna',
|
||||
avol: 'Napięcie fazy A',
|
||||
bvol: 'Napięcie fazy B',
|
||||
cvol: 'Napięcie fazy C',
|
||||
zxygzdl: 'Calkowita dodatnia moc czynna',
|
||||
dlj: 'Energia elektryczna (super szczyt)',
|
||||
dlf: 'Energia elektryczna (szczyt)',
|
||||
dlp: 'Energia elektryczna (zwykły)',
|
||||
dlg: 'Energia elektryczna (dolina)',
|
||||
fxygzdl: 'Calkowita odwrotna moc czynna',
|
||||
hxyggl: 'Moc czynna w fazie kombinowanej',
|
||||
hxwggl: 'Moc bierna w fazie kombinowanej',
|
||||
hxglys: 'Współczynnik mocy fazy kombinowanej',
|
||||
a: 'Faza A',
|
||||
b: 'Faza B',
|
||||
c: 'Faza C',
|
||||
active: 'Moc czynna',
|
||||
reactive: 'Moc bierna',
|
||||
current: 'Prąd',
|
||||
EMU: 'Dane operacyjne szafy podłączonej do sieci',
|
||||
on: 'Pozycja sumaryczna',
|
||||
off: 'Pozycja procentowa',
|
||||
emuSwitchPosition: 'Pozycja przełącznika szafy podłączonej do sieci',
|
||||
emuRemoteOperation: 'Zdalna obsługa szafy podłączonej do sieci',
|
||||
emuKnifePosition: 'Pozycja noża uziemiającego szafy podłączonej do sieci',
|
||||
online: 'On-line',
|
||||
offline: 'Offline',
|
||||
temConCabRunData: 'Dane operacyjne modułu regulacji temperatury',
|
||||
aTem: 'Temperatura fazy A',
|
||||
bTem: 'Temperatura fazy B',
|
||||
cTem: 'Temperatura fazy C',
|
||||
dehumidifierRunData: 'Dane operacyjne osuszacza',
|
||||
tem: 'Temperatura',
|
||||
hum: 'Poziom wilgotności',
|
||||
humStartValue: 'Wartość początkowa wilgotności',
|
||||
humStopValue: 'Wartość zatrzymania wilgotności',
|
||||
ammeterRunData: 'Dane operacyjne licznika',
|
||||
frequency: 'Częstotliwość',
|
||||
perceptualPower: 'Energia mocy indukcyjnej',
|
||||
CapacitivePower: 'Energia mocy pojemnościowej',
|
||||
volRatio: 'Współczynnik rozkładu wielkości napięcia',
|
||||
maxVol: 'Maksymalne napięcie',
|
||||
cellPostion: 'Lokalizacja OGNIWA',
|
||||
minVol: 'Minimalne napięcie',
|
||||
maxTem: 'Najwyższa temperatura',
|
||||
minTem: 'Minimalna temperatura',
|
||||
cellVolChart: 'Histogram napięcia jednostki',
|
||||
cellTemChart: 'Histogram temperatury jednostki',
|
||||
volUnit: 'Napięcie/szt.',
|
||||
temUnit: 'Temperatura/szt.',
|
||||
num: 'szt.',
|
||||
stackTotalVol: 'Calkowite napięcie stosu',
|
||||
leftTemCabin: 'Temperatura po lewej stronie kabiny',
|
||||
leftHubCabin: 'Wilgotność po lewej stronie kabiny',
|
||||
rightTemCabin: 'Temperatura po prawej stronie kabiny',
|
||||
rightHubCabin: 'Wilgotność po prawej stronie kabiny',
|
||||
stackCurrent: 'Wiłgotność po prawej stronie kabiny',
|
||||
stackTotalVol: 'Calkowite napięcie stosu',
|
||||
stackTotalCurrent: 'Prąd stosu',
|
||||
stackSoc: 'SOC stosu',
|
||||
CumulativeCharge: 'Łączne obciążenie',
|
||||
CumulativeDischarge: 'Łączne rozładowanie',
|
||||
zdz: 'Dodatnia rezystancja izolacji',
|
||||
fdz: 'Ujemna rezystancja izolacji',
|
||||
rechargeCapacity: 'Pojemność ładowania',
|
||||
dischargeCapacity: 'Pojemność rozładowania',
|
||||
totalMaxVolData: 'Najwyższe całkowite napięcie klastra',
|
||||
stackCell: 'Numer klastra',
|
||||
totalMinVolData: 'Najniższe całkowite napięcie klastra',
|
||||
stackNum: 'Numer klastra akumulatorów',
|
||||
groupNum: 'Numer akumulatora',
|
||||
cellLocation: 'Lokalizacja OGNIWA',
|
||||
historyData: 'Dane historyczne'
|
||||
},
|
||||
earning: {
|
||||
changeDischargePro: 'Ogólna charakterystyka ładowania i rozładowania projektu',
|
||||
capacity: 'Zainstalowana moc',
|
||||
monthTotalCharge: 'Łączna ilość ładowania w tym miesiącu',
|
||||
monthTotalDischarge: 'Łączna ilość rozładowania w tym miesiącu',
|
||||
monthEff: 'Miesięczna sprawność systemu',
|
||||
chargeVol: 'Łączne obciążenie',
|
||||
dischargeVol: 'Łączne rozładowanie',
|
||||
totalEff: 'Skumulowana sprawność systemu',
|
||||
projectRevenue: 'Skumulowana sprawność systemu',
|
||||
monthTotalChargePrice: 'Całkowita cena ładowania w tym miesiącu (PLN)',
|
||||
monthTotalDisChargePrice: 'Całkowita cena rozładowania w tym miesiącu (PLN)',
|
||||
earnings: 'Wpływy (PLN)',
|
||||
earningsDetail: 'Szczegóły przychodów',
|
||||
charge: 'Ładowanie',
|
||||
ele: 'Energia elektryczna (kWh)',
|
||||
expend: 'Wydatki (PLN)',
|
||||
noChargeData: 'Brak danych dotyczących ładowania',
|
||||
disCharge: 'Rozładowanie',
|
||||
noDisChargeData: 'Brak dostępnych danych dotyczących rozładowania',
|
||||
year: 'Rok',
|
||||
month: 'Miesiąc',
|
||||
day: 'Dzień',
|
||||
hour: 'Godz.',
|
||||
minute: 'Min.',
|
||||
second: 'Sek.'
|
||||
},
|
||||
alarm: {
|
||||
sift: 'Filtruj',
|
||||
device: 'Powiązany sprzęt',
|
||||
placeSelect: 'Wybierz',
|
||||
event: 'Wydarzenie',
|
||||
level: 'Poziom ostrzeżenia',
|
||||
timeRange: 'Skala czasu',
|
||||
placeholderDate: 'Wybierz zakres czasu',
|
||||
reset: 'Reset',
|
||||
sure: 'Zatwierdź',
|
||||
noData: 'Dane są puste',
|
||||
confirm: 'Potwierdzono',
|
||||
noConfirmed: 'Niepotwierdzono',
|
||||
alarmTypeList: [
|
||||
{
|
||||
name: 'alarm w czasie rzeczywistym'
|
||||
},
|
||||
{
|
||||
name: 'alarm historyczny'
|
||||
}
|
||||
],
|
||||
loadText: {
|
||||
loadmore: 'Delikatnie podciągnij',
|
||||
loading: 'Próbuje załadować',
|
||||
nomore: 'Nie ma więcej'
|
||||
},
|
||||
allStation: 'Wszystkie stacje',
|
||||
alarm: 'Ostrzeżenie',
|
||||
noDevice: 'Brak dostępnych danych dotyczących sprzętu',
|
||||
placeholderInput: 'Wprowadź treść alarmu',
|
||||
status: 'Status',
|
||||
station: 'Powiązania stacja zasilania',
|
||||
alarmTime: 'Czas ostrzeżenia',
|
||||
confirmer: 'Potwierdzający',
|
||||
confirmTime: 'Czas potwierdzenia'
|
||||
},
|
||||
policy: {
|
||||
policyTitle: 'Strategia dystrybucji',
|
||||
planCurve: 'Krzywa planowania',
|
||||
planCurveTem: 'Szablon krzywej planowania',
|
||||
IssueDevice: 'Polecenie wydane urządzeniu',
|
||||
operateOrNot: 'Czy uruchomić',
|
||||
socUplimit: 'Górny limit SOC',
|
||||
socDownlimit: 'Dolny limit SOC',
|
||||
effectiveTime: 'Data rozpoczęcia',
|
||||
selectEffectiveTime: 'Wybierz efektywny czas',
|
||||
distributeResult: 'Wynik wysłania',
|
||||
notDelivered: 'Nie wysłano',
|
||||
commandDistribution: 'Wysłanie polecenia',
|
||||
controlDistribution: 'Wysłanie sterowania',
|
||||
genSetting: 'Ustawienia ogólne',
|
||||
save: 'Zapisz',
|
||||
pleaseInputValue: 'Wprowadź wartość',
|
||||
pleaseInputPassword: 'Wprowadź hasło',
|
||||
password: 'Hasło',
|
||||
policyTypeList: [
|
||||
{
|
||||
name: 'wysłanie polecenia'
|
||||
},
|
||||
{
|
||||
name: 'ustawienia ogólne'
|
||||
}
|
||||
],
|
||||
radioList: [
|
||||
{
|
||||
name: 'uruchomić',
|
||||
disabled: false
|
||||
},
|
||||
{
|
||||
name: 'nie uruchamiać',
|
||||
disabled: false
|
||||
}
|
||||
],
|
||||
selectIssueDevice: 'Wybierz urządzenie wydające polecenie',
|
||||
deliverErrorNewTip: 'Relacja mapowania jest nieprawidłowo skonfigurowana lub nie została skonfigurowana, potwierdź i spróbuj ponownie!',
|
||||
passwordSuccess: 'Hasło jest prawidłowe',
|
||||
passwordError: 'Błędne hasło',
|
||||
isOpen: 'Czy włączyć',
|
||||
isClose: 'Czy wyłączyć',
|
||||
distributeSuccess: 'Wysłano pomyślnie',
|
||||
distributeFail: 'Wysłanie nie powiodło się',
|
||||
isNum: 'Sprawdź, czy wprowadzona wartość jest liczbą',
|
||||
saveSuccess: 'Zapisano pomyślnie',
|
||||
saveError: 'Zapis nie powiódł się',
|
||||
delivered: 'Wysłano',
|
||||
selectPlanCurveTem: 'Wybierz szablon krzywej planu',
|
||||
deliverErrorTip: 'Moc ładowania/rozładowania jest większa niż moc znamionowa, sprawdź ustawienie krzywej harmonogramu!',
|
||||
deliverTip: 'Czy na pewno wysłać polecenie?'
|
||||
}
|
||||
}
|
||||
@ -9,27 +9,547 @@ export default {
|
||||
loadAmmeter: '负载电表',
|
||||
dieselGeneratorMeter: '柴发电表',
|
||||
energyStorageMeter: '储能电表',
|
||||
emsControl: 'EMS控制',
|
||||
alarmTypeList: [{
|
||||
name: '实时告警'
|
||||
}, {
|
||||
name: '历史告警'
|
||||
}],
|
||||
lang:'切换语言',
|
||||
ydty:'阅读并同意',
|
||||
yhxy:'用户协议',
|
||||
and:'和',
|
||||
yszc:'隐私政策',
|
||||
yhxyhyszc:'用户协议和隐私政策',
|
||||
msgf:'欢迎使用“小储大能”APP,我们非常重视您的个人信息和隐私保护。在您使用本应用前请仔细阅读',
|
||||
msgs:'您在使用本应用时,即表示您已阅读、理解并同意接受本协议的所有条款。如果您不同意本协议的任何内容,请立即停止使用本应用。',
|
||||
agree:'同意',
|
||||
quit:'不同意',
|
||||
lang: '切换语言',
|
||||
ydty: '阅读并同意',
|
||||
yhxy: '用户协议',
|
||||
and: '和',
|
||||
yszc: '隐私政策',
|
||||
yhxyhyszc: '用户协议和隐私政策',
|
||||
msgf: '欢迎使用“澤泰云”APP,我们非常重视您的个人信息和隐私保护。在您使用本应用前请仔细阅读',
|
||||
msgs: '您在使用本应用时,即表示您已阅读、理解并同意接受本协议的所有条款。如果您不同意本协议的任何内容,请立即停止使用本应用。',
|
||||
agree: '同意',
|
||||
quit: '不同意',
|
||||
guestLogin: '游客登录',
|
||||
checkFirst:'请先勾选同意用户协议和隐私政策',
|
||||
stationType:[{
|
||||
name:'中国站'
|
||||
},{
|
||||
name:'海外站'
|
||||
}]
|
||||
checkFirst: '请先勾选同意用户协议和隐私政策',
|
||||
stationType: [{
|
||||
name: '中国站'
|
||||
}, {
|
||||
name: '海外站'
|
||||
}],
|
||||
useElecPrice: '用电价格',
|
||||
workStatus: '工作状态:',
|
||||
standing:'静置',
|
||||
activePowerpcs:'有功功率:',
|
||||
operatingPower:'运行功率',
|
||||
accumulatedElectricityConsumption:'累计电量',
|
||||
pvKpi: '光伏KPI',
|
||||
saveStandardCoal: '节约标准煤(吨)',
|
||||
equivalentCo2Reduction: 'CO2减排(吨)',
|
||||
equivalentTreePlantings: '等效植树(棵)',
|
||||
dailyPowerGeneration: '日发电量',
|
||||
cumulativePowerGeneration: '累计发电量',
|
||||
socialContribution: '社会贡献',
|
||||
energyStorageRevenueReport:'储能收益报表',
|
||||
pvStorageRevenueReport:'光伏收益报表',
|
||||
projectMonthlyPower:'项目月发电量',
|
||||
powerGeneration:'发电量',
|
||||
mpptTopu:'MPPT拓扑图',
|
||||
powerGenerationCapacity: '发电功率',
|
||||
batVoltage: 'BAT电压',
|
||||
batCurrent: 'BAT电流',
|
||||
busVoltage: 'BAT电压',
|
||||
busCurrent: 'BAT电流',
|
||||
dc: '直流电流',
|
||||
dcVoltage: '直流电压',
|
||||
operatingPower: '运行功率',
|
||||
pvPower:'功率',
|
||||
enmonthTotalChargePrice: '本月总充电量总价(元)',
|
||||
enmonthTotalDisChargePrice: '本月总放电量总价(元)',
|
||||
enearnings: '收益(元)',
|
||||
pvSwitch:'PV开关',
|
||||
stationDatacom: '电站数据',
|
||||
sevenDaycom:'近七天',
|
||||
todayEarning: '今日收益(元)',
|
||||
totalRevenue: '累计收益(元)',
|
||||
ratedPower: '额定功率(kW)',
|
||||
currentMonthlyPowerGeneration: '本月发电量',
|
||||
ratedPowernokw: '额定功率',
|
||||
powerGenerationStatus: '项目发电情况',
|
||||
monthlyIncome: '本月收益(元)',
|
||||
lowV:'低压侧电压',
|
||||
lowI:'低压侧电流',
|
||||
highV:'高压侧电压',
|
||||
timesArr: [{
|
||||
text: '1分钟',
|
||||
value: 1
|
||||
},
|
||||
{
|
||||
text: '5分钟',
|
||||
value: 5
|
||||
},
|
||||
{
|
||||
text: '10分钟',
|
||||
value: 10
|
||||
},
|
||||
{
|
||||
text: '15分钟',
|
||||
value: 15
|
||||
},
|
||||
{
|
||||
text: '20分钟',
|
||||
value: 20
|
||||
},
|
||||
{
|
||||
text: '30分钟',
|
||||
value: 30
|
||||
}
|
||||
],
|
||||
esiCab: "储能一体柜",
|
||||
gridCab: "并网柜",
|
||||
grid: "用户配电",
|
||||
activePower: "有功功率(kW):",
|
||||
charge: "充电",
|
||||
disCharge: "放电",
|
||||
load: "负载",
|
||||
gridCabSwitch: "并网柜开关:",
|
||||
dCCabin: "直流舱",
|
||||
PCSCab: "PCS升压一体舱",
|
||||
legend: "图例",
|
||||
normal: "正常运行",
|
||||
fault: "故障",
|
||||
overhaul: "检修",
|
||||
shutStan: "待机/停机",
|
||||
reactivePower: "无功功率(kW):",
|
||||
totalV: "总电压(V):",
|
||||
current: "电流(A):",
|
||||
maxCellVol: "单体最高电压:",
|
||||
minCellVol: "单体最低电压:",
|
||||
shutdown: "停机",
|
||||
standby: "待机",
|
||||
run: "运行",
|
||||
allActivePower: "总有功功率(kW):",
|
||||
cabinet: "储能柜",
|
||||
gridMeter: "电网侧电表",
|
||||
photovoltaic: "光伏",
|
||||
battery: "电池",
|
||||
status: "状态:",
|
||||
busbar: "母线",
|
||||
dieselGenerator: "柴油发电机",
|
||||
ammeter: "电表",
|
||||
device: "设备",
|
||||
earning: "收益",
|
||||
alarm: "告警",
|
||||
policy: "策略",
|
||||
stationTopo: "电站拓扑",
|
||||
deviceMonitor: "设备监控",
|
||||
runCurve: "运行曲线",
|
||||
chargeDisData: "充放电数据",
|
||||
stationData: "电站数据",
|
||||
environmentalData: "环控数据",
|
||||
sevenDay: "近七天",
|
||||
monthDay: "近一月",
|
||||
monthThree: "近三月",
|
||||
yearDay: "近一年",
|
||||
tip: "提示",
|
||||
loading: "资源加载中...",
|
||||
power: "功率(kW)",
|
||||
photovoltaicCharge: "光伏充电",
|
||||
chargingandDischarging: "充放电量",
|
||||
safeDaysUnit: "安全运行天数(天)",
|
||||
totalCapacity: "装机总容量",
|
||||
systemConversionEfficiency: "系统转化效率",
|
||||
currentPower: "当前功率",
|
||||
totalCharge: "总充电量",
|
||||
totalDischarge: "总放电量",
|
||||
dailyCharge: "日充电量",
|
||||
dailyDischarge: "日放电量",
|
||||
dayPhotovoltaic: "光伏发电量",
|
||||
noData: "暂无数据",
|
||||
station: "电站",
|
||||
electricityPrice: "全国电价",
|
||||
mine: "我的",
|
||||
on: "合位",
|
||||
off: "分位",
|
||||
noPermission: "暂无权限访问",
|
||||
contactAdmin: "集团系统,暂未对外开放,请联系管理员开通账号",
|
||||
title: "游客模式"
|
||||
},
|
||||
price: {
|
||||
elePriceQuery: '电价查询',
|
||||
queryCriteria: '查询条件',
|
||||
sift: '筛选',
|
||||
station: '电站',
|
||||
selectStation: '请选择电站',
|
||||
provinceRegion: '省市区域',
|
||||
selectProvinceRegion: '请选择省市区域',
|
||||
customerType: '用电客户',
|
||||
selectEleCustomers: '请选择用电客户',
|
||||
eleType: '用电部制/分类',
|
||||
selectEleType: '请选择用电部制/分类',
|
||||
volLevel: '电压等级',
|
||||
selectVoltageLevel: '请选择电压等级',
|
||||
exeTime: '执行日期',
|
||||
selectExeTime: '请选择执行日期',
|
||||
noData: '数据为空',
|
||||
eleLevel: '电价水平',
|
||||
fsdd: '分时电度用电价格',
|
||||
useElecPrice:'用电价格',
|
||||
dietailUnit: '(元/千瓦时)',
|
||||
eleprice: '电度用电价格',
|
||||
nonTime: '非分时电价',
|
||||
proxyPrice: '代理购电价格',
|
||||
transmission: '输电电价',
|
||||
attachPrice: '政府性基金及附加电价',
|
||||
curve: '曲线',
|
||||
list: '列表',
|
||||
noMoreData: '暂无更多数据',
|
||||
spike: '尖峰',
|
||||
speak: '高峰',
|
||||
regular: '平时',
|
||||
lowValley: '低谷',
|
||||
deepValley: '深谷',
|
||||
peakDifference: '最大峰谷差',
|
||||
peakDifferencePrice: '最大峰谷差价',
|
||||
dayHighPrice: '日最高电价',
|
||||
dayLowtPrice: '日最低电价',
|
||||
historytrend: '历史趋势',
|
||||
reset: '重置',
|
||||
sure: '确认',
|
||||
sharp: '尖',
|
||||
peak: '峰',
|
||||
flat: '平',
|
||||
valley: '谷',
|
||||
},
|
||||
mine: {
|
||||
accountSec: '账号安全',
|
||||
aboutUs: '关于我们',
|
||||
message: '消息通知',
|
||||
changeLanguage: '切换语言',
|
||||
sysSetting: '系统设置',
|
||||
messageAlerts: '消息提醒',
|
||||
acceptMessageAlerts: '接受消息提醒',
|
||||
messageDetail: '通知栏显示消息详情',
|
||||
closeMessage: '关闭后,当收到消息的时候,只显示有提示,不显示消息内容。',
|
||||
sound: '声音与振动',
|
||||
acceptSound: '收到消息后播放声音或振动',
|
||||
settingSound: '前往系统设置中,修改声音与振动',
|
||||
update: '软件更新提醒',
|
||||
updateAlerts: '当本软件有新版本发布时,给予提醒',
|
||||
noUpdate: '小程序端或H5端已是最新版,无需检查更新!',
|
||||
general: '通用',
|
||||
version: '当前版本',
|
||||
Privacy: '隐私政策',
|
||||
UserAgreement: '用户协议',
|
||||
logOut: '退出登录',
|
||||
notAva: '此功能暂未开放',
|
||||
setPassword: '请设置登录密码',
|
||||
passwordService: '定期更新密码提高安全性',
|
||||
oldPassword: '旧密码',
|
||||
inputOldPossword: '请输入旧密码',
|
||||
newPassword: '新密码',
|
||||
inputNewPassword: '请输入新密码',
|
||||
surePassword: '确认密码',
|
||||
inputSurePassword: '请确认密码',
|
||||
PasswordError: '密码必须是6-12位的数字,字符组合(不能是纯数字)',
|
||||
submit: '提交',
|
||||
resetSubmit: '请重新输入密码',
|
||||
passwordEqual: '两次输入的密码不相等',
|
||||
tip: '提示',
|
||||
updateSuccess: '密码修改成功,请重新登录。',
|
||||
inputError: '您填写的信息有误,请根据提示修正。',
|
||||
hoenergypower: '中自储能',
|
||||
companyHomepage: '公司首页',
|
||||
technicalServices: '技术服务',
|
||||
termsOfService: '服务条款',
|
||||
downUpdate: '是否下载更新?',
|
||||
appTitle: '智慧储能管控平台',
|
||||
lookDetail: '查看详情',
|
||||
noMessage: '暂无消息',
|
||||
sureRead: '确认已读',
|
||||
cancel: '取消',
|
||||
messageDetail: '消息详情',
|
||||
operateSuccess: '操作成功',
|
||||
operateFail: '操作失败',
|
||||
messageReaded: '该消息已读,无需重复操作'
|
||||
},
|
||||
device: {
|
||||
inputNameQuery: '输入名称搜索',
|
||||
query: '搜索',
|
||||
all: '全部',
|
||||
queryResult: '搜索结果',
|
||||
pcsTopu: 'PCS拓扑图',
|
||||
totalAcReaPower: '总有功/总无功功率',
|
||||
timeGranularity: '时间粒度',
|
||||
deviceData: '设备数据',
|
||||
acPower: '交流有功',
|
||||
acRecPower: '交流无功',
|
||||
gridFrequency: '电网频率',
|
||||
abLineVol: 'AB线电压',
|
||||
bcLineVol: 'BC线电压',
|
||||
caLineVol: 'CA线电压',
|
||||
acur: 'A相电流',
|
||||
bcur: 'B相电流',
|
||||
ccur: 'C相电流',
|
||||
DCPower: '直流功率',
|
||||
DCVol: '直流电压',
|
||||
DCCurrent: '直流电流',
|
||||
acbreaker: '交流断路器',
|
||||
dcbreaker: '直流断路器',
|
||||
runState: '运行状态',
|
||||
rsState: '远方/就地状态',
|
||||
gridMode: '并离网状态',
|
||||
deviceState: '设备状态',
|
||||
totalActivePower: '总有功功率',
|
||||
totalReactivePower: '总无功功率',
|
||||
local: '就地',
|
||||
distance: '远方',
|
||||
grid: '并网',
|
||||
offGrid: '离网',
|
||||
standby: '待机',
|
||||
shutdown: '停机',
|
||||
run: '运行',
|
||||
fault: '故障',
|
||||
charge: '充电',
|
||||
discharge: '放电',
|
||||
standing: '静置',
|
||||
localAutomatic: '本地自动',
|
||||
localManual: '本地手动',
|
||||
timesArr: [{
|
||||
label: '1分钟',
|
||||
value: 1
|
||||
},
|
||||
{
|
||||
label: '5分钟',
|
||||
value: 5
|
||||
},
|
||||
{
|
||||
label: '10分钟',
|
||||
value: 10
|
||||
},
|
||||
{
|
||||
label: '15分钟',
|
||||
value: 15
|
||||
},
|
||||
{
|
||||
label: '20分钟',
|
||||
value: 20
|
||||
},
|
||||
{
|
||||
label: '30分钟',
|
||||
value: 30
|
||||
}
|
||||
],
|
||||
yx: '遥信',
|
||||
yc: '遥测',
|
||||
data: '数据',
|
||||
noData: '暂无数据',
|
||||
loadText: {
|
||||
loadmore: '轻轻上拉',
|
||||
loading: '努力加载中',
|
||||
nomore: '实在没有了',
|
||||
},
|
||||
clusterTotalVol: '簇总压/SOC',
|
||||
runData: '运行数据',
|
||||
cumCharge: '累计充电量',
|
||||
cumDischarge: '累计放电量',
|
||||
avgTem: '平均温度',
|
||||
avgVol: '平均电压',
|
||||
maxCellVol: '单体最高电压',
|
||||
minCellVol: '单体最低电压',
|
||||
maxCellTem: '单体最高温度',
|
||||
minCellTem: '单体最低温度',
|
||||
maxvolDiff: '最大电压差',
|
||||
maxTemDiff: '最大温度差',
|
||||
batteryGroupNum: '电池组号',
|
||||
cellPostion: '电芯位置',
|
||||
vol: '电压',
|
||||
volqua: '电压质量',
|
||||
curqua: '电流质量',
|
||||
acRea: '有功/无功',
|
||||
avol: 'A相电压',
|
||||
bvol: 'B相电压',
|
||||
cvol: 'C相电压',
|
||||
zxygzdl: '正向有功总电量',
|
||||
dlj: '电量(尖)',
|
||||
dlf: '电量(峰)',
|
||||
dlp: '电量(平)',
|
||||
dlg: '电量(谷)',
|
||||
fxygzdl: '反向有功总电量',
|
||||
hxyggl: '合相有功功率',
|
||||
hxwggl: '合相无功功率',
|
||||
hxglys: '合相功率因数',
|
||||
a: 'A相',
|
||||
b: 'B相',
|
||||
c: 'C相',
|
||||
active: '有功',
|
||||
reactive: '无功',
|
||||
current: '电流',
|
||||
EMU: '并网柜运行数据',
|
||||
on: '合位',
|
||||
off: '分位',
|
||||
emuSwitchPosition: '并网柜开关位置',
|
||||
emuRemoteOperation: '并网柜远方操作',
|
||||
emuKnifePosition: '并网柜地刀位置',
|
||||
online: '在线',
|
||||
offline: '离线',
|
||||
temConCabRunData: '温控箱运行数据',
|
||||
aTem: 'A相温度',
|
||||
bTem: 'B相温度',
|
||||
cTem: 'C相温度',
|
||||
dehumidifierRunData: '除湿仪运行数据',
|
||||
tem: '温度',
|
||||
hum: '湿度',
|
||||
humStartValue: '湿度启动值',
|
||||
humStopValue: '湿度停止值',
|
||||
ammeterRunData: '电表运行数据',
|
||||
frequency: '频率',
|
||||
perceptualPower: '感性功电量',
|
||||
CapacitivePower: '容性功电量',
|
||||
volRatio: '电压大小分布比例',
|
||||
maxVol: '最高电压',
|
||||
cellPostion: 'CELL位置',
|
||||
minVol: '最低电压',
|
||||
maxTem: '最高温度',
|
||||
minTem: '最低温度',
|
||||
cellVolChart: '单体电压柱状图',
|
||||
cellTemChart: '单体温度柱状图',
|
||||
volUnit: '电压/个',
|
||||
temUnit: '温度/个',
|
||||
num: '个',
|
||||
stackTotalVol: '堆总压/SOC',
|
||||
leftTemCabin: '舱左侧温度',
|
||||
leftHubCabin: '舱左侧湿度',
|
||||
rightTemCabin: '舱右侧温度',
|
||||
rightHubCabin: '舱右侧湿度',
|
||||
stackCurrent: '堆电流',
|
||||
stackTotalVol: '堆总压',
|
||||
stackTotalCurrent: '堆总电流',
|
||||
stackSoc: '堆SOC',
|
||||
CumulativeCharge: '累积充电量',
|
||||
CumulativeDischarge: '累计放电量',
|
||||
zdz: '绝缘正电阻',
|
||||
fdz: '绝缘负电阻',
|
||||
rechargeCapacity: '可充电量',
|
||||
dischargeCapacity: '可放电量',
|
||||
totalMaxVolData: '最高簇总压',
|
||||
stackCell: '簇号',
|
||||
totalMinVolData: '最低簇总压',
|
||||
stackNum: '电池簇号',
|
||||
groupNum: '电池组号',
|
||||
cellLocation: '电芯位置',
|
||||
historyData: '历史数据'
|
||||
},
|
||||
earning: {
|
||||
changeDischargePro: '项目充放电概况',
|
||||
capacity: '装机容量',
|
||||
monthTotalCharge: '本月总充电量',
|
||||
monthTotalDischarge: '本月总放电量',
|
||||
monthEff: '月系统转换效率',
|
||||
chargeVol: '累计充电量',
|
||||
dischargeVol: '累计放电量',
|
||||
totalEff: '累计系统转换效率',
|
||||
projectRevenue: '项目收益情况',
|
||||
monthTotalChargePrice: '本月总充电量总价(元)',
|
||||
monthTotalDisChargePrice: '本月总放电量总价(元)',
|
||||
earnings: '收益(元)',
|
||||
earningsDetail: '收益详情',
|
||||
charge: '充电',
|
||||
ele: '电量(kWh)',
|
||||
expend: '支出(元)',
|
||||
noChargeData: '暂无充电数据',
|
||||
disCharge: '放电',
|
||||
noDisChargeData: '暂无放电数据',
|
||||
year: '年',
|
||||
month: '月',
|
||||
day: '日',
|
||||
hour: '时',
|
||||
minute: '分',
|
||||
second: '秒'
|
||||
|
||||
},
|
||||
alarm: {
|
||||
sift: '筛选',
|
||||
device: '所属设备',
|
||||
placeSelect: '请选择',
|
||||
event: '事件',
|
||||
level: '告警等级',
|
||||
timeRange: '时间范围',
|
||||
placeholderDate: '请选择时间范围',
|
||||
reset: '重置',
|
||||
sure: '确认',
|
||||
noData: '数据为空',
|
||||
confirm: '已确认',
|
||||
noConfirmed: '未确认',
|
||||
alarmTypeList: [{
|
||||
name: '实时告警'
|
||||
},
|
||||
{
|
||||
name: '历史告警'
|
||||
}
|
||||
],
|
||||
// realTimeAlarm: '实时告警',
|
||||
// HistoryAlarm: '历史告警',
|
||||
loadText: {
|
||||
loadmore: '轻轻上拉',
|
||||
loading: '努力加载中',
|
||||
nomore: '实在没有了',
|
||||
},
|
||||
allStation: '所有电站',
|
||||
alarm: '告警',
|
||||
noDevice: '暂无设备数据',
|
||||
placeholderInput: '请输入告警内容',
|
||||
status: '状态',
|
||||
station: '所属电站',
|
||||
alarmTime: '告警时间',
|
||||
confirmer: '确认人',
|
||||
confirmTime: '确认时间',
|
||||
|
||||
},
|
||||
policy: {
|
||||
planCurve: '计划曲线',
|
||||
planCurveTem: '计划曲线模板',
|
||||
IssueDevice: '命令下发设备',
|
||||
operateOrNot: '是否投运',
|
||||
socUplimit: 'SOC上限',
|
||||
socDownlimit: 'SOC下限',
|
||||
effectiveTime: '生效时间',
|
||||
selectEffectiveTime: '请选择生效时间',
|
||||
distributeResult: '下发结果',
|
||||
notDelivered: '未下发',
|
||||
commandDistribution: '命令下发',
|
||||
controlDistribution: '控制下发',
|
||||
genSetting: '通用设置',
|
||||
save: '保存',
|
||||
pleaseInputValue: '请输入值',
|
||||
pleaseInputPassword: '请输入密码',
|
||||
password: '密码',
|
||||
policyTypeList: [{
|
||||
name: '命令下发'
|
||||
},
|
||||
{
|
||||
name: '通用设置'
|
||||
}
|
||||
],
|
||||
radioList: [{
|
||||
name: "投运",
|
||||
disabled: false,
|
||||
},
|
||||
{
|
||||
name: "不投运",
|
||||
disabled: false,
|
||||
},
|
||||
],
|
||||
selectIssueDevice: '请选择命令下发设备',
|
||||
deliverErrorNewTip: '映射关系配置错误或未配置,请确认后重试!',
|
||||
passwordSuccess: '密码正确',
|
||||
passwordError: '密码错误',
|
||||
isOpen: '是否开启',
|
||||
isClose: '是否关闭',
|
||||
distributeSuccess: '下发成功',
|
||||
distributeFail: '下发失败',
|
||||
isNum: '请检查输入的值是否为数字',
|
||||
saveSuccess: '保存成功',
|
||||
saveError: '保存失败',
|
||||
delivered: '已下发',
|
||||
selectPlanCurveTem: '请选择计划曲线模板',
|
||||
deliverErrorTip: '充放电功率大于额定功率,请确认计划曲线设置!',
|
||||
deliverTip: '是否确定下发命令?',
|
||||
policyTitle: '策略下发',
|
||||
}
|
||||
};
|
||||
63
common/locales/pl_PL.js
Normal file
@ -0,0 +1,63 @@
|
||||
import homePage from './homePage/pl'
|
||||
export default {
|
||||
homePage,
|
||||
common: {
|
||||
title: 'Aidex',
|
||||
},
|
||||
nav: {
|
||||
home: 'Strona główna',
|
||||
run: 'Działanie',
|
||||
energyStorage: 'Magazyn energii',
|
||||
user: 'Moje konto'
|
||||
},
|
||||
login: {
|
||||
title: 'Zaloguj się',
|
||||
account: 'Konto',
|
||||
placeholderAccount: 'Wprowadź nazwę konta',
|
||||
pwd: 'Hasło',
|
||||
placeholderPassword: 'Wprowadź hasło',
|
||||
code: 'Kod weryfikacyjny',
|
||||
codeTip: 'Wprowadź kod weryfikacyjny',
|
||||
autoLogin: 'Automatyczne logowanie',
|
||||
loginButton: 'Zaloguj się',
|
||||
logoutButton: 'Wyloguj się',
|
||||
forget: 'Zapomniałeś hasła?',
|
||||
reg: 'Zarejestruj konto',
|
||||
noLogin: 'Nie zalogowany',
|
||||
privacyPolicy: 'Polityka prywatności',
|
||||
userAgreement: 'Umowa użytkownika',
|
||||
codeLoading: 'Pobieranie kodu weryfikacyjnego',
|
||||
noStation: 'Brak elektrowni',
|
||||
noFunction: 'Funkcja nie jest jeszcze dostępna',
|
||||
lang: 'ZH'
|
||||
},
|
||||
home: {
|
||||
title: 'Wiadomości'
|
||||
},
|
||||
workbench: {
|
||||
title: 'Pulpit roboczy'
|
||||
},
|
||||
user: {
|
||||
title: 'Centrum użytkownika',
|
||||
privacyPolicy: 'Polityka prywatności',
|
||||
userAgreement: 'Umowa użytkownika',
|
||||
edition: 'Wersja',
|
||||
language: 'Język',
|
||||
loginOut: 'Wyloguj się',
|
||||
chinese: 'Chiński',
|
||||
english: 'Angielski',
|
||||
german: 'Niemiecki',
|
||||
italian: 'Włoski',
|
||||
spanish: 'Hiszpański',
|
||||
changeSuccess: 'Pomyślnie zmieniono',
|
||||
languageChange: 'Zmiana języka',
|
||||
privacy: 'Polityka prywatności',
|
||||
agreement: 'Umowa użytkownika'
|
||||
},
|
||||
msg: {
|
||||
title: 'Wiadomości'
|
||||
},
|
||||
tips: {
|
||||
noData: 'Brak danych'
|
||||
}
|
||||
}
|
||||
@ -1,4 +1,63 @@
|
||||
import homePage from './homePage/zh'
|
||||
export default {
|
||||
homePage,
|
||||
common: {
|
||||
title: 'Aidex',
|
||||
},
|
||||
nav: {
|
||||
home: '首页',
|
||||
run:"运行",
|
||||
energyStorage: '储能',
|
||||
user: '我的',
|
||||
},
|
||||
login: {
|
||||
title: '登录',
|
||||
account:"账号",
|
||||
placeholderAccount: '请输入账号',
|
||||
pwd:"密码",
|
||||
placeholderPassword: '请输入密码',
|
||||
code:"验证码",
|
||||
codeTip:"请输入验证码",
|
||||
autoLogin: '自动登录',
|
||||
loginButton: '登录',
|
||||
logoutButton: '退出登录',
|
||||
forget: '忘记密码',
|
||||
reg: '注册账号',
|
||||
noLogin: '未登录',
|
||||
privacyPolicy:"隐私政策",
|
||||
userAgreement:"用户协议",
|
||||
codeLoading:"正在获取验证码",
|
||||
noStation:"无电站",
|
||||
noFunction:"功能暂未开放",
|
||||
lang:'ZH'
|
||||
},
|
||||
home: {
|
||||
title: '消息'
|
||||
},
|
||||
workbench: {
|
||||
title: '工作台'
|
||||
},
|
||||
user: {
|
||||
title: '用户中心',
|
||||
privacyPolicy:"隐私政策",
|
||||
userAgreement:"用户协议",
|
||||
edition:"版本",
|
||||
language:"语言",
|
||||
loginOut:"退出登录",
|
||||
chinese:"中文",
|
||||
english:"英文",
|
||||
german:'德语',
|
||||
italian:'意大利语',
|
||||
spanish:'西班牙语',
|
||||
changeSuccess:"切换成功",
|
||||
languageChange:"语言切换",
|
||||
privacy:"隐私政策",
|
||||
agreement:"用户协议",
|
||||
},
|
||||
msg: {
|
||||
title: '消息'
|
||||
},
|
||||
tips:{
|
||||
noData:"暂无数据"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<view class="search">
|
||||
<img src="/static/aidex/images/search.png" class="filterImg">
|
||||
<image src="/static/aidex/images/search.png" class="filterImg"></image>
|
||||
<u-input v-model="dec" style="width: 100%" type="text" :placeholder="placeholder" :clearable="false" @blur="blur" />
|
||||
<view class="shaixuan" @click="open" id="search">
|
||||
<text style="white-space: nowrap">{{ $t('homePage.alarm.sift') }}</text>
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
<view class="chart-box">
|
||||
<zero-loading v-if="chartLoading"></zero-loading>
|
||||
<charts v-else-if="!chartLoading && valData.length" :id="'historyChart'" :options="history_option"></charts>
|
||||
<view v-else-if="!chartLoading && !valData.length" class="empty">{{this.$t('homePage.home.noData')}}</view>
|
||||
<view v-else-if="!chartLoading && !valData.length" class="empty">{{$t('homePage.home.noData')}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -123,7 +123,7 @@ export default {
|
||||
resolve();
|
||||
})
|
||||
.catch((err) => {
|
||||
reject("错误");
|
||||
reject("error");
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
@ -50,12 +50,18 @@
|
||||
watch: {
|
||||
canvasData: {
|
||||
handler(val) {
|
||||
if (val && val.length) {
|
||||
this.getSystemInfo()
|
||||
// 等待 windowWidth 初始化完成后再绘制
|
||||
if (this.windowWidth) {
|
||||
this.draw(null); // 直接绘制
|
||||
} else {
|
||||
// 若 windowWidth 未获取,先获取再绘制
|
||||
this.getSystemInfo().then(() => {
|
||||
this.draw(null);
|
||||
});
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
immediate: true
|
||||
immediate: false
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
@ -64,14 +70,10 @@
|
||||
methods: {
|
||||
getSystemInfo() {
|
||||
const self = this
|
||||
// 获取屏幕尺寸
|
||||
uni.getSystemInfo({
|
||||
success: (res) => {
|
||||
this.windowWidth = res.windowWidth
|
||||
},
|
||||
})
|
||||
uni.getSystemInfo({
|
||||
success: function(res) {
|
||||
// 获取屏幕尺寸
|
||||
self.windowWidth = res.windowWidth
|
||||
// const platform = res.hostName.toLowerCase()
|
||||
if (res.uniPlatform || res.uniPlatform === 'app') {
|
||||
self.type = 'app'
|
||||
@ -87,20 +89,25 @@
|
||||
})
|
||||
},
|
||||
clear() {
|
||||
// if (this.type === 'wx') {
|
||||
// this.ctx.globalCompositeOperation = 'destination-out';
|
||||
// this.ctx.beginPath();
|
||||
// this.ctx.fillStyle = 'red';
|
||||
// this.ctx.fillRect(0, 0, 8000, 80000);
|
||||
// this.ctx.fill();
|
||||
// this.ctx.globalCompositeOperation = 'source-over';
|
||||
// // this.ctx.draw();
|
||||
// } else {
|
||||
// // this.ctx.clearRect(2000, 2000, 2000, 2000);
|
||||
// // this.ctx.fillStyle = '#ffffff'
|
||||
// // this.ctx.draw(true);
|
||||
// }
|
||||
if (this.type === 'wx') {
|
||||
this.ctx.globalCompositeOperation = 'destination-out';
|
||||
this.ctx.beginPath();
|
||||
this.ctx.fillStyle = 'red';
|
||||
this.ctx.fillRect(0, 0, 8000, 80000);
|
||||
this.ctx.fill();
|
||||
this.ctx.globalCompositeOperation = 'source-over';
|
||||
// this.ctx.draw();
|
||||
this.ctx.clearRect(0, 0, this.canvasWidth, this.canvasHeight);
|
||||
} else {
|
||||
// this.ctx.clearRect(2000, 2000, 2000, 2000);
|
||||
// this.ctx.fillStyle = '#ffffff'
|
||||
// this.ctx.draw(true);
|
||||
// App 平台
|
||||
this.ctx.clearRect(0, 0, 8000, 8000);
|
||||
}
|
||||
|
||||
},
|
||||
//获取app的canvas DOM
|
||||
getAppDom() {
|
||||
@ -215,56 +222,73 @@
|
||||
})
|
||||
|
||||
},
|
||||
countChineseAndEnglishCharacters(str, x) {
|
||||
var chineseCount = str.match(/[\u4e00-\u9fa5]/g)
|
||||
? str.match(/[\u4e00-\u9fa5]/g).length
|
||||
: 0;
|
||||
var englishCount = str.match(/[a-zA-Z]/g)
|
||||
? str.match(/[a-zA-Z]/g).length
|
||||
: 0;
|
||||
var otherCount = str.length - chineseCount - englishCount;
|
||||
const obj = {
|
||||
otherCount: otherCount,
|
||||
chineseCount: chineseCount,
|
||||
englishCount: englishCount,
|
||||
};
|
||||
return (
|
||||
obj.englishCount * 6 + obj.chineseCount * 12 + obj.otherCount * 7.5 + x
|
||||
);
|
||||
},
|
||||
// countChineseAndEnglishCharacters(str, x) {
|
||||
// var chineseCount = str.match(/[\u4e00-\u9fa5]/g) ?
|
||||
// str.match(/[\u4e00-\u9fa5]/g).length :
|
||||
// 0;
|
||||
// var englishCount = str.match(/[a-zA-Z]/g) ?
|
||||
// str.match(/[a-zA-Z]/g).length :
|
||||
// 0;
|
||||
// var otherCount = str.length - chineseCount - englishCount;
|
||||
// const obj = {
|
||||
// otherCount: otherCount,
|
||||
// chineseCount: chineseCount,
|
||||
// englishCount: englishCount,
|
||||
// };
|
||||
// return (
|
||||
// obj.englishCount * 6 + obj.chineseCount * 12 + obj.otherCount * 7.5 + x
|
||||
// );
|
||||
// },
|
||||
|
||||
drawText(draw) {
|
||||
draw.forEach((item, index) => {
|
||||
if (item.font.length) {
|
||||
if (item.font.length > 1) {
|
||||
// 记录前一个文本的结束位置(用于后续文本偏移)
|
||||
let prevTextEndX = this.fitSize(item.coord[0][0]);
|
||||
|
||||
item.font.forEach((item2, index2) => {
|
||||
// 设置字体大小和颜色
|
||||
if (this.type === 'app') {
|
||||
this.ctx.setFontSize(item2.size)
|
||||
this.ctx.setFontSize(item2.size);
|
||||
} else {
|
||||
this.ctx.fontSize = item2.size
|
||||
this.ctx.font = `${item2.size}px sans-serif`; // 小程序端补全font属性
|
||||
}
|
||||
this.ctx.fillStyle = item2.color
|
||||
const x = this.countChineseAndEnglishCharacters(item.font[0].text,item.coord[0][0])
|
||||
this.ctx.fillText(item2.text, this.fitSize( index2 === 1 ? x : item.coord[0][0]), this.fitSize(item.coord[0][1]))
|
||||
this.ctx.closePath()
|
||||
})
|
||||
} else {
|
||||
this.ctx.fillStyle = item2.color;
|
||||
|
||||
// 计算当前文本的绘制X坐标
|
||||
let currentX = prevTextEndX;
|
||||
// 非第一个文本,加上配置的偏移量(默认8px)
|
||||
if (index2 > 0) {
|
||||
const offsetX = item2.offsetX || 6;
|
||||
currentX += this.fitSize(offsetX); // 适配设备尺寸的偏移量
|
||||
}
|
||||
|
||||
// 绘制文本
|
||||
this.ctx.fillText(
|
||||
item2.text,
|
||||
currentX,
|
||||
this.fitSize(item.coord[0][1])
|
||||
);
|
||||
|
||||
// 更新前一个文本的结束位置(当前文本的X + 文本宽度)
|
||||
const textWidth = this.getTextWidth(item2.text, item2.size);
|
||||
prevTextEndX = currentX + textWidth;
|
||||
|
||||
this.ctx.closePath();
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
// 新增:计算文本的实际绘制宽度(适配app/小程序)
|
||||
getTextWidth(text, fontSize) {
|
||||
if (this.type === 'app') {
|
||||
this.ctx.setFontSize(item.font[0].size)
|
||||
// App端通过measureText计算
|
||||
return this.ctx.measureText(text).width;
|
||||
} else {
|
||||
this.ctx.fontSize = item.font[0].size
|
||||
// 小程序端手动计算(更稳定)
|
||||
this.ctx.font = `${fontSize}px sans-serif`;
|
||||
return this.ctx.measureText(text).width;
|
||||
}
|
||||
this.ctx.fillStyle = item.font[0].color
|
||||
this.ctx.fillText(item.font[0].text, this.fitSize(item.coord[0][0]), this.fitSize(item
|
||||
.coord[0][1]))
|
||||
this.ctx.closePath()
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
},
|
||||
drawImages(draw, canvas) {
|
||||
let x,
|
||||
@ -347,9 +371,12 @@
|
||||
})
|
||||
},
|
||||
fitSize(coordinate) {
|
||||
let newWindowWidth = this.windowWidth //这个windowWidth指的是该设备宽度,可以onLoad监听页面加载中获取
|
||||
let v = 375 / newWindowWidth //375是设计稿的大小,得到的v值是:设计稿和设备宽度的比例关系,也可理解成在设计稿的大小基础上放大或缩小的倍数
|
||||
return coordinate / v //返回的是当前坐标值或者大小与v的比例
|
||||
let newWindowWidth = this.windowWidth;
|
||||
const designWidth = 375; // 设计稿宽度
|
||||
// 修正比例计算:设备宽度 / 设计稿宽度 = 缩放比例
|
||||
const scale = newWindowWidth / designWidth;
|
||||
// 设计稿的坐标 * 缩放比例 = 设备实际坐标
|
||||
return coordinate * scale;
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
<template>
|
||||
<view class="search" >
|
||||
<img src="/static/aidex/images/search.png" class="filterImg">
|
||||
<image src="/static/aidex/images/search.png" class="filterImg"></image>
|
||||
|
||||
<u-input v-model="dec" style="width:100%;" type="text" :placeholder="this.$t('homePage.device.inputNameQuery')" :clearable='false'/>
|
||||
<u-input v-model="dec" style="width:100%;" type="text" :placeholder="$t('homePage.device.inputNameQuery')" :clearable='false'/>
|
||||
<view class="shaixuan" id="search">
|
||||
<u-button @click="search" size="mini" shape="circle" :custom-style="{backgroundColor:'#009458',color:'#FFFFFF'}">{{this.$t('homePage.device.query')}}</u-button>
|
||||
<u-button @click="search" size="mini" shape="circle" :custom-style="{backgroundColor:'#009458',color:'#FFFFFF'}">{{$t('homePage.device.query')}}</u-button>
|
||||
</view>
|
||||
<!-- <input type="text" :value="dec" :input-align="right" placeholder="请输入告警内容筛选"/> -->
|
||||
<!-- <view class="proper" v-if="show_" id="popup">
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
export default {
|
||||
data () {
|
||||
return {
|
||||
stationName: '所有电站',
|
||||
stationName: '',
|
||||
selectStaion: false,
|
||||
StationShow: [],
|
||||
defaultArr: [],
|
||||
@ -98,6 +98,7 @@ export default {
|
||||
// val[2].StationShow = this.StationShow
|
||||
this.$u.vuex("vuex_currentStation", val[2])
|
||||
this.$u.vuex("vuex_StationShow", this.StationShow)
|
||||
this.$u.vuex("vuex_inverterFlag", value.list[valIndex].list[newValIndex].inverterFlag)
|
||||
this.$emit('openPop', false)
|
||||
}
|
||||
}
|
||||
|
||||
281
hybrid/html/demo.html
Normal file
@ -0,0 +1,281 @@
|
||||
<<<<<<< .mine
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="keywords" content="PoweredByAidex"/>
|
||||
<meta name="description" content="PoweredByAidex"/>
|
||||
</head>
|
||||
<body>
|
||||
<svg width="128" height="128"
|
||||
xmlns="http://www.w3.org/2000/svg" version="1.1">
|
||||
<style>path {fill-opacity:1; stroke:none;}</style>
|
||||
<path d="M 42,0L 0,0L 0,128L 62,128L 62,126L 60.7072,125.2928L 58.146,123.854L 55.6451,122.3549L 53.2063,120.7937L 52,120L 50.6822,119.3178L 48.0777,117.9223L 45.5826,116.4174L 43.3111,114.6889L 41.3966,112.6034L 39.9425,110.0575L 38.9719,107.0281L 38.4156,103.5844L 38.148,99.852L 38.0423,95.9577L 38.0079,91.9921L 38,90L 35.5885,88.4115L 33.1929,86.8071L 32,86L 29.3498,84.6502L 26.7241,83.2759L 24.1496,81.8504L 21.6456,80.3544L 19.2063,78.7937L 18,78L 16.6822,77.3178L 14.0777,75.9223L 11.5826,74.4174L 9.3111,72.6889L 7.3966,70.6034L 5.9425,68.0575L 4.9719,65.0281L 4.4156,61.5844L 4.2818,59.7182L 4.0952,55.9048L 4.0607,53.9395L 4.0386,51.9623L 4.0124,47.9936L 4.0168,44.0132L 4.0578,40.0573L 4.1791,36.179L 4.3221,34.3221L 4.7484,30.7484L 5.1291,29.129L 6.0983,26.0983L 7.4879,23.4879L 8.3791,22.3791L 10.3181,20.3181L 12.5253,18.5253L 14.9196,16.9196L 17.4387,15.4387L 20.0358,14.0358L 22.6744,12.6744L 24,12L 26.4247,10.4247L 27.6601,9.6601L 30.165,8.165L 32.7351,6.7351L 35.3557,5.3557L 38.0055,4.0055L 40.6675,2.6675L 42,2Z" style="fill:rgb(254,254,254);"/>
|
||||
<path d="M 58,62L 59.3709,62.6291L 62.0751,63.9249L 64.7042,65.2958L 66,66L 70,66L 70,62L 68,60L 65.6634,58.3366L 63.3818,56.6182L 61.182,54.818L 59.0518,52.9482L 58,52L 55.6723,50.3277L 53.488,48.512L 51.5906,46.4094L 50.1002,43.8998L 49.071,40.929L 48.4623,37.5377L 48.1554,33.8446L 48,30L 47.2582,26.7418L 46.5916,23.4084L 46,20L 44,20L 42,22L 41.9814,23.9814L 41.917,27.917L 41.7622,31.7622L 41.4385,35.4385L 40.8635,38.8635L 39.9723,41.9723L 38.7311,44.7311L 37.1392,47.1392L 35.2342,49.2342L 33.1055,51.1055L 32,52L 29.793,53.793L 27.5268,55.5268L 25.1866,57.1866L 24,58L 22,60L 20,62L 20,66L 26,66L 28.6926,64.6926L 31.4189,63.4189L 34.2096,62.2096L 37.0777,61.0777L 38.4931,60.5638L 41.2382,59.6271L 43.8451,58.9301L 46.3927,58.5947L 48.9354,58.717L 50.2132,59.0062L 52.7823,59.7624L 55.3802,60.8068Z" style="fill:rgb(254,254,254);"/>
|
||||
<path d="M 85.2331,17.2701L 86.4837,16.5847L 87.7563,15.9652L 90.3475,14.8965L 93.0246,14.2314L 95.7591,14.0611L 98.5014,14.3992L 101.2011,15.1859L 103.8206,16.3207L 106.3454,17.6971L 108.792,19.2165L 110,20L 111.3178,20.6822L 113.9223,22.0777L 116.4174,23.5826L 118.6889,25.3111L 120.6034,27.3966L 121.3304,28.6696L 122.5428,31.4572L 123.3061,34.6936L 123.7166,38.2802L 123.8055,40.1826L 123.9106,44.0318L 123.8774,47.9088L 123.6792,51.6854L 123.2186,55.2195L 122.37,58.3701L 121.046,61.046L 120.151,62.151L 119.1695,63.1695L 118.1211,64.1211L 115.922,65.922L 113.5629,67.5629L 111.1037,69.1037L 108.5654,70.5654L 105.9647,71.9647L 103.3257,73.3257L 102,74L 99.3198,75.3198L 96.5065,76.5065L 93.5268,77.5268L 92,78L 92,80L 92.3524,81.6476L 92.6727,83.3272L 92.9526,85.0465L 93.4244,88.5695L 93.7174,92.2526L 93.7775,94.15L 93.8123,97.9511L 93.6565,101.699L 93.2447,105.2551L 92.4795,108.4814L 91.2758,111.2761L 89.6104,113.6105L 87.5449,115.5449L 85.2126,117.2126L 84,118L 81.5753,119.5753L 79.1045,121.1045L 76.5654,122.5654L 73.9647,123.9647L 71.3257,125.3257L 70,126L 70,128L 128,128L 128,0L 50,0L 50,2L 52,4L 54.6502,5.3498L 57.2759,6.7241L 59.8504,8.1496L 62.3544,9.6456L 64.7937,11.2063L 66,12L 67.3333,12.6667L 70,14L 71.3333,14.6667L 74,16L 75.3333,16.6667L 78,18L 84,18Z" style="fill:rgb(254,254,254);"/>
|
||||
<path d="M 84,74L 84,76L 88,76L 88,74Z" style="fill:rgb(254,254,254);"/>
|
||||
<path d="M 88,76L 88,78L 92,78L 92,76Z" style="fill:rgb(254,254,254);"/>
|
||||
<path d="M 82,20L 80,18L 78,18L 75.3333,19.3333L 74,20L 74,22L 82,22Z" style="fill:rgb(212,228,213);"/>
|
||||
<path d="M 84,72L 80,72L 80,74L 84,74Z" style="fill:rgb(212,228,213);"/>
|
||||
<path d="M 70,18L 68,16L 66.7072,15.2928L 64.146,13.854L 61.6451,12.3549L 59.2063,10.7937L 58,10L 56.6667,9.3333L 54,8L 50.998,7.002L 48,6L 42,6L 39.5753,7.5753L 38.3399,8.3399L 35.835,9.835L 33.2649,11.2649L 30.6443,12.6443L 27.9945,13.9945L 25.3325,15.3325L 24,16L 22.7944,16.7944L 20.3566,18.3566L 17.8559,19.8559L 15.2937,21.2937L 14,22L 12,24L 10,26L 10,68L 12,70L 14,72L 16.6502,73.3498L 19.2759,74.7241L 21.8504,76.1496L 24.3544,77.6456L 26.7937,79.2063L 28,80L 29.3333,80.6667L 32,82L 36,82L 38,80L 38.7389,78.9578L 40.3681,77.0458L 42.366,75.5475L 43.5513,75.0035L 46.1174,73.9788L 48.998,72.998L 52,72L 52.5916,70.5916L 53.2207,69.2207L 54.5415,66.5832L 55.9374,64.1874L 57.3208,62.0292L 58,61L 58,60L 56.6667,59.3333L 54,58L 52.6667,57.3333L 50,56L 44,56L 42.608,56.608L 39.7965,57.7965L 36.9233,58.9233L 34.0999,59.953L 32.7929,60.281L 31.5625,60.2742L 30.5423,59.7222L 29.5169,58.149L 30.4488,56.2218L 32.5088,54.4707L 34.8159,52.8129L 36,52L 38,50L 40,48L 40.1183,44.1183L 40.3327,40.3327L 40.5256,38.5268L 40.7716,36.7769L 41.3801,33.4141L 41.8269,31.9259L 42.4253,30.6286L 43.2715,29.6633L 45.1308,28.6799L 46.7589,29.7437L 47.5856,32.5325L 47.8986,36.1197L 48,38L 48.7418,41.2582L 49.4084,44.5916L 50,48L 52,50L 54,52L 55.3333,52.6667L 58,54L 60,54L 60.0024,52.0028L 60.0175,48.0198L 60.0826,44.0909L 60.2949,40.3144L 60.5551,38.5801L 60.9297,36.9578L 61.9123,33.9411L 63.3325,31.3529L 64.2076,30.2225L 66.0465,28.0526L 67.0259,27.0296L 69.0026,25.0034L 71,23.0001L 72,22L 72,20Z" style="fill:rgb(254,220,188);"/>
|
||||
<path d="M 64,78L 60,78L 60,80L 64,80Z" style="fill:rgb(94,170,125);"/>
|
||||
<path d="M 64,68L 64,70L 72,70L 72,68Z" style="fill:rgb(94,170,125);"/>
|
||||
<path d="M 70,58L 68,58L 68,62L 70,62Z" style="fill:rgb(94,170,125);"/>
|
||||
<path d="M 42,86L 36,86L 36,90L 38,92L 40,92L 42,90Z" style="fill:rgb(227,236,224);"/>
|
||||
<path d="M 68,76L 66,74L 60,74L 57.3198,75.3198L 54.5065,76.5065L 51.5268,77.5268L 50,78L 48.4115,80.4115L 46.8071,82.8071L 46,84L 46,86L 54,86L 56.0945,84.0945L 58.3099,82.3099L 60.7558,80.7558L 63.4888,79.4888L 66.4645,78.4645L 68,78Z" style="fill:rgb(33,149,100);"/>
|
||||
<path d="M 80,64L 80,26L 76,26L 73.3333,27.3333L 72,28L 72,58L 73.6143,60.3857L 75.2088,62.7912L 76,64Z" style="fill:rgb(33,149,100);"/>
|
||||
<path d="M 70,24L 71,25L 72,25L 74.998,24.499L 78,24L 78,22L 70,22Z" style="fill:rgb(148,187,146);"/>
|
||||
<path d="M 42,72L 38,72L 38,80L 40,80L 42,78Z" style="fill:rgb(240,215,182);"/>
|
||||
<path d="M 56,64L 52,64L 52,68L 56,68Z" style="fill:rgb(240,215,182);"/>
|
||||
<path d="M 58,61L 57,61L 56,62L 56,66L 60,66L 60,62Z" style="fill:rgb(240,215,182);"/>
|
||||
<path d="M 62,24L 60,24L 60,56L 62,56Z" style="fill:rgb(240,215,182);"/>
|
||||
<path d="M 42,88L 40,90L 40,92L 52,92L 52,90L 50,88Z" style="fill:rgb(166,213,193);"/>
|
||||
<path d="M 54,86L 50,86L 50,90L 54,90Z" style="fill:rgb(166,213,193);"/>
|
||||
<path d="M 59.2582,87.2582L 61.8498,85.8498L 64.5916,84.5916L 66,84L 66,82L 64,80L 60,80L 57.3333,81.3333L 56,82L 54,84L 54,88L 58,88Z" style="fill:rgb(166,213,193);"/>
|
||||
<path d="M 68,78L 64,78L 64,82L 68,82Z" style="fill:rgb(166,213,193);"/>
|
||||
<path d="M 74.6667,78.6667L 76,78L 78.6667,76.6667L 80,76L 80,74L 70,74L 68,76L 68,80L 72,80Z" style="fill:rgb(166,213,193);"/>
|
||||
<path d="M 84,24L 82,24L 82,66L 84,66Z" style="fill:rgb(166,213,193);"/>
|
||||
<path d="M 86,24L 84,24L 84,72L 86,72Z" style="fill:rgb(106,189,160);"/>
|
||||
<path d="M 94,114L 94,80L 92,78L 90.6667,77.3333L 88,76L 86.6667,75.3333L 84,74L 80,74L 77.3333,75.3333L 76,76L 73.3333,77.3333L 72,78L 69.3333,79.3333L 68,80L 65.5753,81.5753L 63.1045,83.1045L 60.5654,84.5654L 57.9647,85.9647L 55.3257,87.3257L 54,88L 51.636,89.3995L 49.2489,90.5836L 48.0432,90.9921L 45.5777,91.6132L 42.8616,91.8992L 39.7026,91.9863L 38,92L 38,114L 40,116L 42.6502,117.3498L 45.2759,118.7241L 47.8504,120.1496L 50.3544,121.6456L 52.7937,123.2063L 54,124L 55.3333,124.6667L 58,126L 59.3333,126.6667L 62,128L 70,128L 72.6667,126.6667L 74,126L 76.6667,124.6667L 78,124L 80.6667,122.6667L 82,122L 83.2056,121.2056L 85.6434,119.6434L 88.1441,118.1441L 90.7063,116.7063L 92,116Z" style="fill:rgb(6,150,109);"/>
|
||||
<path d="M 85.8729,57.8729L 85.6659,61.6659L 85.2814,65.2814L 84.7048,68.7048L 84,72L 84,74L 85.3333,74.6667L 88,76L 89.3333,76.6667L 92,78L 100,78L 102.4247,76.4247L 104.8955,74.8955L 107.4346,73.4346L 110.0353,72.0353L 112.6743,70.6743L 114,70L 115.2056,69.2056L 117.6434,67.6434L 120.1441,66.1441L 122.7063,64.7063L 124,64L 124,26L 122,24L 119.3498,22.6502L 116.7241,21.2759L 114.1496,19.8504L 111.6456,18.3544L 109.2063,16.7937L 108,16L 106.6667,15.3333L 104,14L 102.6667,13.3333L 100,12L 98.6667,11.3333L 96,10L 94,10L 91.3333,11.3333L 90,12L 87.3333,13.3333L 86,14L 83.6143,15.6143L 81.2088,17.2088L 80,18L 80,20L 80.8396,21.2073L 82.4279,23.6946L 83.7665,26.3869L 84.7608,29.3767L 85.4016,32.6928L 85.7538,36.2964L 85.9157,40.1046L 85.9759,44.0286L 85.9899,48.0011L 85.9756,51.9773L 85.9171,55.9173Z" style="fill:rgb(6,150,109);"/>
|
||||
<path d="M 62,84L 58,84L 58,86L 62,86Z" style="fill:rgb(132,196,168);"/>
|
||||
<path d="M 42,30L 40,30L 40,36L 42,36Z" style="fill:rgb(255,232,210);"/>
|
||||
<path d="M 42,4L 42,6L 46,6L 46,4Z" style="fill:rgb(255,232,210);"/>
|
||||
<path d="M 50,38L 48,38L 48,44L 50,44Z" style="fill:rgb(255,232,210);"/>
|
||||
<path d="M 48,92L 42,92L 42,94L 48,94Z" style="fill:rgb(94,180,147);"/>
|
||||
<path d="M 82,26L 80,26L 80,68L 82,68Z" style="fill:rgb(94,180,147);"/>
|
||||
<path d="M 40.6667,84.6667L 42,82L 42,78L 40,78L 38,80L 38,86L 40,86Z" style="fill:rgb(174,195,156);"/>
|
||||
<path d="M 50,76L 42,76L 42,82L 44,82L 45.1868,81.5847L 47.5787,80.7752L 50,80Z" style="fill:rgb(174,195,156);"/>
|
||||
<path d="M 56,74L 54.6667,73.3333L 52,72L 48,72L 48,76L 50,78L 54,78L 56,76Z" style="fill:rgb(174,195,156);"/>
|
||||
<path d="M 62,72L 62,71L 61,70L 52,70L 52,74L 54,74L 55.3333,74L 58,74L 60,74Z" style="fill:rgb(174,195,156);"/>
|
||||
<path d="M 64,68L 56,68L 56,70L 58.501,70.499L 61,71L 62,71L 64,70Z" style="fill:rgb(174,195,156);"/>
|
||||
<path d="M 64,66L 60,66L 60,68L 64,68Z" style="fill:rgb(174,195,156);"/>
|
||||
<path d="M 66,30L 64,30L 64,60L 66,60Z" style="fill:rgb(174,195,156);"/>
|
||||
<path d="M 72,25L 71,24L 68,24L 66,26L 66,30L 68,30L 70,30L 72,30Z" style="fill:rgb(174,195,156);"/>
|
||||
<path d="M 42,2L 38,2L 35.3333,3.3333L 34,4L 31.3333,5.3333L 30,6L 27.3333,7.3333L 26,8L 23.5753,9.5753L 21.1045,11.1045L 18.5654,12.5654L 15.9647,13.9647L 13.3257,15.3257L 12,16L 9.6143,17.6143L 7.2088,19.2088L 6,20L 4,22L 4,24L 14,24L 16.6667,22.6667L 18,22L 20.6667,20.6667L 22,20L 24.4247,18.4247L 25.6601,17.6601L 28.165,16.165L 30.7351,14.7351L 33.3557,13.3557L 36.0055,12.0055L 38.6675,10.6675L 40,10L 42,8Z" style="fill:rgb(254,244,234);"/>
|
||||
<path d="M 32,80L 29.5885,78.4115L 27.1929,76.8071L 26,76L 24.6667,75.3333L 22,74L 20.6667,73.3333L 18,72L 16.6667,71.3333L 14,70L 12.3857,69.6143L 9.1769,68.8231L 6,68L 4,68L 4,72L 6,74L 8.6502,75.3498L 11.2759,76.7241L 13.8504,78.1496L 16.3544,79.6456L 18.7937,81.2063L 20,82L 21.3333,82.6667L 24,84L 25.3333,84.6667L 28,86L 32,86Z" style="fill:rgb(254,244,234);"/>
|
||||
<path d="M 50,0L 42,0L 42,2L 50,2Z" style="fill:rgb(254,244,234);"/>
|
||||
<path d="M 74,18L 74,14L 72.7072,13.2928L 70.146,11.854L 67.6451,10.3549L 65.2063,8.7937L 64,8L 62.6667,7.3333L 60,6L 58.6667,5.3333L 56,4L 54.6667,3.3333L 52,2L 48,2L 48,4L 49.3333,6.6667L 50,8L 51.2928,8.7072L 53.854,10.146L 56.3549,11.6451L 58.7937,13.2063L 60,14L 61.3333,14.6667L 64,16L 65.3333,16.6667L 68,18Z" style="fill:rgb(254,244,234);"/>
|
||||
<path d="M 74,72L 74,74L 80,74L 82.6667,72.6667L 84,72L 84,66L 82,66L 79.6143,67.6143L 77.2088,69.2088L 76,70Z" style="fill:rgb(190,220,203);"/>
|
||||
<path d="M 84,24L 84,22L 78,22L 78,24L 80,26L 82,26Z" style="fill:rgb(190,220,203);"/>
|
||||
<path d="M 38,84L 34,84L 34,90L 36,90L 36.6667,88.6667L 38,86Z" style="fill:rgb(242,239,228);"/>
|
||||
<path d="M 64,62L 60,62L 60,64L 64,64Z" style="fill:rgb(242,239,228);"/>
|
||||
<path d="M 76.6667,20.6667L 78,20L 78,16L 74,16L 71.3333,17.3333L 70,18L 70,20L 72,22L 74,22Z" style="fill:rgb(242,239,228);"/>
|
||||
<path d="M 42,82L 40,82L 40,86L 42,86Z" style="fill:rgb(114,176,133);"/>
|
||||
<path d="M 48,80L 48,79L 46,78L 44,78L 44,82L 46,82Z" style="fill:rgb(114,176,133);"/>
|
||||
<path d="M 58,73L 56,72L 54,72L 54,74L 58,74Z" style="fill:rgb(114,176,133);"/>
|
||||
<path d="M 69,32L 69,30L 66,30L 66,60L 68,60L 68.0007,58.0013L 68.0044,54.0088L 68.0192,50.0384L 68.0636,46.1271L 68.1671,42.3341L 68.3593,38.7186L 68.6476,35.2952Z" style="fill:rgb(114,176,133);"/>
|
||||
<path d="M 70,28L 68,28L 68,30L 69,32L 70,32Z" style="fill:rgb(114,176,133);"/>
|
||||
<path d="M 70,64L 67.002,65.002L 64,66L 64,68L 65.3198,68.5767L 67.8263,69.8336L 70.0333,71.3234L 72,73L 74,73L 76,72L 78.6667,70.6667L 80,70L 80,64Z" style="fill:rgb(114,176,133);"/>
|
||||
<path d="M 72,24L 72,28L 76,28L 78.6667,26.6667L 80,26L 80,24Z" style="fill:rgb(114,176,133);"/>
|
||||
<path d="M 38,80L 36,80L 36,84L 38,84Z" style="fill:rgb(208,206,169);"/>
|
||||
<path d="M 47,76L 47,74L 42,74L 42,76Z" style="fill:rgb(208,206,169);"/>
|
||||
<path d="M 48,72L 46,72L 46,74L 47,76L 48,76Z" style="fill:rgb(208,206,169);"/>
|
||||
<path d="M 52,68L 52,70L 56,70L 56,68Z" style="fill:rgb(208,206,169);"/>
|
||||
<path d="M 56,66L 56,68L 60,68L 60,66Z" style="fill:rgb(208,206,169);"/>
|
||||
<path d="M 66,64L 60,64L 60,66L 66,66Z" style="fill:rgb(208,206,169);"/>
|
||||
<path d="M 64,30L 62,30L 62,58L 64,58Z" style="fill:rgb(208,206,169);"/>
|
||||
<path d="M 66,26L 64,26L 64,30L 66,30Z" style="fill:rgb(208,206,169);"/>
|
||||
<path d="M 47.5885,85.5885L 49.1929,83.1929L 50,82L 50,80L 46,80L 44,82L 44,88L 46,88Z" style="fill:rgb(49,155,107);"/>
|
||||
<path d="M 54,76L 54,78L 58,78L 60,76L 60,74L 56,74Z" style="fill:rgb(49,155,107);"/>
|
||||
<path d="M 70,72L 60,72L 60,74L 63.002,74.998L 66,76L 70,76Z" style="fill:rgb(49,155,107);"/>
|
||||
<path d="M 72,30L 70,30L 70,58L 72,58Z" style="fill:rgb(49,155,107);"/>
|
||||
<path d="M 74,58L 72,58L 72,62L 76,62L 76,60Z" style="fill:rgb(49,155,107);"/>
|
||||
<path d="M 44,82L 42,82L 42,88L 44,88Z" style="fill:rgb(73,163,117);"/>
|
||||
<path d="M 50,86L 46,86L 46,88L 50,88Z" style="fill:rgb(73,163,117);"/>
|
||||
<path d="M 60,80L 56,80L 56,82L 60,82Z" style="fill:rgb(73,163,117);"/>
|
||||
<path d="M 74,73L 72.6667,71L 72,70L 62,70L 62,72L 63.6143,72.3857L 66.8231,73.1769L 70,74L 74,74Z" style="fill:rgb(73,163,117);"/>
|
||||
<path d="M 70,32L 68,32L 68,58L 70,58Z" style="fill:rgb(73,163,117);"/>
|
||||
<path d="M 74.998,61.002L 72.998,59.002L 72,58L 70,58L 70,64L 76,64L 76,62Z" style="fill:rgb(73,163,117);"/>
|
||||
<path d="M 10,26L 8,26L 8,68L 10,68Z" style="fill:rgb(254,223,194);"/>
|
||||
<path d="M 46,18L 42,18L 42,22L 44,22L 46,20Z" style="fill:rgb(254,223,194);"/>
|
||||
<path d="M 12,24L 4,24L 4,68L 6,70L 12,70L 12,68L 11.2952,66.7048L 10.0138,63.9862L 9.5332,62.4668L 8.757,59.243L 8.3136,55.6867L 8.108,51.8952L 8.0391,47.9815L 8.0532,44.0413L 8.1664,40.1647L 8.4614,36.4612L 9.0527,33.0527L 10.0138,30.0138L 11.2952,27.2952L 12,26Z" style="fill:rgb(254,240,227);"/>
|
||||
<path d="M 36,82L 32,82L 32,88L 34,88L 34.6667,86.6667L 36,84Z" style="fill:rgb(254,240,227);"/>
|
||||
<path d="M 42,36L 40,36L 40,44L 42,44Z" style="fill:rgb(254,240,227);"/>
|
||||
<path d="M 50,4L 48,2L 42,2L 42,4L 44.4115,5.5885L 46.8071,7.1929L 48,8L 50,8Z" style="fill:rgb(254,240,227);"/>
|
||||
<path d="M 48,22L 46,22L 46,30L 48,30Z" style="fill:rgb(254,240,227);"/>
|
||||
<path d="M 50,44L 48,44L 48,48L 50,48Z" style="fill:rgb(254,240,227);"/>
|
||||
</svg>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
=======
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="keywords" content="PoweredByAidex" />
|
||||
<meta name="description" content="PoweredByAidex" />
|
||||
</head>
|
||||
<body>
|
||||
11111111
|
||||
<!-- <svg width="128" height="128" xmlns="http://www.w3.org/2000/svg" version="1.1">
|
||||
<path
|
||||
d="M 42,0L 0,0L 0,128L 62,128L 62,126L 60.7072,125.2928L 58.146,123.854L 55.6451,122.3549L 53.2063,120.7937L 52,120L 50.6822,119.3178L 48.0777,117.9223L 45.5826,116.4174L 43.3111,114.6889L 41.3966,112.6034L 39.9425,110.0575L 38.9719,107.0281L 38.4156,103.5844L 38.148,99.852L 38.0423,95.9577L 38.0079,91.9921L 38,90L 35.5885,88.4115L 33.1929,86.8071L 32,86L 29.3498,84.6502L 26.7241,83.2759L 24.1496,81.8504L 21.6456,80.3544L 19.2063,78.7937L 18,78L 16.6822,77.3178L 14.0777,75.9223L 11.5826,74.4174L 9.3111,72.6889L 7.3966,70.6034L 5.9425,68.0575L 4.9719,65.0281L 4.4156,61.5844L 4.2818,59.7182L 4.0952,55.9048L 4.0607,53.9395L 4.0386,51.9623L 4.0124,47.9936L 4.0168,44.0132L 4.0578,40.0573L 4.1791,36.179L 4.3221,34.3221L 4.7484,30.7484L 5.1291,29.129L 6.0983,26.0983L 7.4879,23.4879L 8.3791,22.3791L 10.3181,20.3181L 12.5253,18.5253L 14.9196,16.9196L 17.4387,15.4387L 20.0358,14.0358L 22.6744,12.6744L 24,12L 26.4247,10.4247L 27.6601,9.6601L 30.165,8.165L 32.7351,6.7351L 35.3557,5.3557L 38.0055,4.0055L 40.6675,2.6675L 42,2Z"
|
||||
style="fill:rgb(254,254,254);" />
|
||||
<path
|
||||
d="M 58,62L 59.3709,62.6291L 62.0751,63.9249L 64.7042,65.2958L 66,66L 70,66L 70,62L 68,60L 65.6634,58.3366L 63.3818,56.6182L 61.182,54.818L 59.0518,52.9482L 58,52L 55.6723,50.3277L 53.488,48.512L 51.5906,46.4094L 50.1002,43.8998L 49.071,40.929L 48.4623,37.5377L 48.1554,33.8446L 48,30L 47.2582,26.7418L 46.5916,23.4084L 46,20L 44,20L 42,22L 41.9814,23.9814L 41.917,27.917L 41.7622,31.7622L 41.4385,35.4385L 40.8635,38.8635L 39.9723,41.9723L 38.7311,44.7311L 37.1392,47.1392L 35.2342,49.2342L 33.1055,51.1055L 32,52L 29.793,53.793L 27.5268,55.5268L 25.1866,57.1866L 24,58L 22,60L 20,62L 20,66L 26,66L 28.6926,64.6926L 31.4189,63.4189L 34.2096,62.2096L 37.0777,61.0777L 38.4931,60.5638L 41.2382,59.6271L 43.8451,58.9301L 46.3927,58.5947L 48.9354,58.717L 50.2132,59.0062L 52.7823,59.7624L 55.3802,60.8068Z"
|
||||
style="fill:rgb(254,254,254);" />
|
||||
<path
|
||||
d="M 85.2331,17.2701L 86.4837,16.5847L 87.7563,15.9652L 90.3475,14.8965L 93.0246,14.2314L 95.7591,14.0611L 98.5014,14.3992L 101.2011,15.1859L 103.8206,16.3207L 106.3454,17.6971L 108.792,19.2165L 110,20L 111.3178,20.6822L 113.9223,22.0777L 116.4174,23.5826L 118.6889,25.3111L 120.6034,27.3966L 121.3304,28.6696L 122.5428,31.4572L 123.3061,34.6936L 123.7166,38.2802L 123.8055,40.1826L 123.9106,44.0318L 123.8774,47.9088L 123.6792,51.6854L 123.2186,55.2195L 122.37,58.3701L 121.046,61.046L 120.151,62.151L 119.1695,63.1695L 118.1211,64.1211L 115.922,65.922L 113.5629,67.5629L 111.1037,69.1037L 108.5654,70.5654L 105.9647,71.9647L 103.3257,73.3257L 102,74L 99.3198,75.3198L 96.5065,76.5065L 93.5268,77.5268L 92,78L 92,80L 92.3524,81.6476L 92.6727,83.3272L 92.9526,85.0465L 93.4244,88.5695L 93.7174,92.2526L 93.7775,94.15L 93.8123,97.9511L 93.6565,101.699L 93.2447,105.2551L 92.4795,108.4814L 91.2758,111.2761L 89.6104,113.6105L 87.5449,115.5449L 85.2126,117.2126L 84,118L 81.5753,119.5753L 79.1045,121.1045L 76.5654,122.5654L 73.9647,123.9647L 71.3257,125.3257L 70,126L 70,128L 128,128L 128,0L 50,0L 50,2L 52,4L 54.6502,5.3498L 57.2759,6.7241L 59.8504,8.1496L 62.3544,9.6456L 64.7937,11.2063L 66,12L 67.3333,12.6667L 70,14L 71.3333,14.6667L 74,16L 75.3333,16.6667L 78,18L 84,18Z"
|
||||
style="fill:rgb(254,254,254);" />
|
||||
<path d="M 84,74L 84,76L 88,76L 88,74Z" style="fill:rgb(254,254,254);" />
|
||||
<path d="M 88,76L 88,78L 92,78L 92,76Z" style="fill:rgb(254,254,254);" />
|
||||
<path d="M 82,20L 80,18L 78,18L 75.3333,19.3333L 74,20L 74,22L 82,22Z" style="fill:rgb(212,228,213);" />
|
||||
<path d="M 84,72L 80,72L 80,74L 84,74Z" style="fill:rgb(212,228,213);" />
|
||||
<path
|
||||
d="M 70,18L 68,16L 66.7072,15.2928L 64.146,13.854L 61.6451,12.3549L 59.2063,10.7937L 58,10L 56.6667,9.3333L 54,8L 50.998,7.002L 48,6L 42,6L 39.5753,7.5753L 38.3399,8.3399L 35.835,9.835L 33.2649,11.2649L 30.6443,12.6443L 27.9945,13.9945L 25.3325,15.3325L 24,16L 22.7944,16.7944L 20.3566,18.3566L 17.8559,19.8559L 15.2937,21.2937L 14,22L 12,24L 10,26L 10,68L 12,70L 14,72L 16.6502,73.3498L 19.2759,74.7241L 21.8504,76.1496L 24.3544,77.6456L 26.7937,79.2063L 28,80L 29.3333,80.6667L 32,82L 36,82L 38,80L 38.7389,78.9578L 40.3681,77.0458L 42.366,75.5475L 43.5513,75.0035L 46.1174,73.9788L 48.998,72.998L 52,72L 52.5916,70.5916L 53.2207,69.2207L 54.5415,66.5832L 55.9374,64.1874L 57.3208,62.0292L 58,61L 58,60L 56.6667,59.3333L 54,58L 52.6667,57.3333L 50,56L 44,56L 42.608,56.608L 39.7965,57.7965L 36.9233,58.9233L 34.0999,59.953L 32.7929,60.281L 31.5625,60.2742L 30.5423,59.7222L 29.5169,58.149L 30.4488,56.2218L 32.5088,54.4707L 34.8159,52.8129L 36,52L 38,50L 40,48L 40.1183,44.1183L 40.3327,40.3327L 40.5256,38.5268L 40.7716,36.7769L 41.3801,33.4141L 41.8269,31.9259L 42.4253,30.6286L 43.2715,29.6633L 45.1308,28.6799L 46.7589,29.7437L 47.5856,32.5325L 47.8986,36.1197L 48,38L 48.7418,41.2582L 49.4084,44.5916L 50,48L 52,50L 54,52L 55.3333,52.6667L 58,54L 60,54L 60.0024,52.0028L 60.0175,48.0198L 60.0826,44.0909L 60.2949,40.3144L 60.5551,38.5801L 60.9297,36.9578L 61.9123,33.9411L 63.3325,31.3529L 64.2076,30.2225L 66.0465,28.0526L 67.0259,27.0296L 69.0026,25.0034L 71,23.0001L 72,22L 72,20Z"
|
||||
style="fill:rgb(254,220,188);" />
|
||||
<path d="M 64,78L 60,78L 60,80L 64,80Z" style="fill:rgb(94,170,125);" />
|
||||
<path d="M 64,68L 64,70L 72,70L 72,68Z" style="fill:rgb(94,170,125);" />
|
||||
<path d="M 70,58L 68,58L 68,62L 70,62Z" style="fill:rgb(94,170,125);" />
|
||||
<path d="M 42,86L 36,86L 36,90L 38,92L 40,92L 42,90Z" style="fill:rgb(227,236,224);" />
|
||||
<path
|
||||
d="M 68,76L 66,74L 60,74L 57.3198,75.3198L 54.5065,76.5065L 51.5268,77.5268L 50,78L 48.4115,80.4115L 46.8071,82.8071L 46,84L 46,86L 54,86L 56.0945,84.0945L 58.3099,82.3099L 60.7558,80.7558L 63.4888,79.4888L 66.4645,78.4645L 68,78Z"
|
||||
style="fill:rgb(33,149,100);" />
|
||||
<path d="M 80,64L 80,26L 76,26L 73.3333,27.3333L 72,28L 72,58L 73.6143,60.3857L 75.2088,62.7912L 76,64Z"
|
||||
style="fill:rgb(33,149,100);" />
|
||||
<path d="M 70,24L 71,25L 72,25L 74.998,24.499L 78,24L 78,22L 70,22Z" style="fill:rgb(148,187,146);" />
|
||||
<path d="M 42,72L 38,72L 38,80L 40,80L 42,78Z" style="fill:rgb(240,215,182);" />
|
||||
<path d="M 56,64L 52,64L 52,68L 56,68Z" style="fill:rgb(240,215,182);" />
|
||||
<path d="M 58,61L 57,61L 56,62L 56,66L 60,66L 60,62Z" style="fill:rgb(240,215,182);" />
|
||||
<path d="M 62,24L 60,24L 60,56L 62,56Z" style="fill:rgb(240,215,182);" />
|
||||
<path d="M 42,88L 40,90L 40,92L 52,92L 52,90L 50,88Z" style="fill:rgb(166,213,193);" />
|
||||
<path d="M 54,86L 50,86L 50,90L 54,90Z" style="fill:rgb(166,213,193);" />
|
||||
<path
|
||||
d="M 59.2582,87.2582L 61.8498,85.8498L 64.5916,84.5916L 66,84L 66,82L 64,80L 60,80L 57.3333,81.3333L 56,82L 54,84L 54,88L 58,88Z"
|
||||
style="fill:rgb(166,213,193);" />
|
||||
<path d="M 68,78L 64,78L 64,82L 68,82Z" style="fill:rgb(166,213,193);" />
|
||||
<path d="M 74.6667,78.6667L 76,78L 78.6667,76.6667L 80,76L 80,74L 70,74L 68,76L 68,80L 72,80Z"
|
||||
style="fill:rgb(166,213,193);" />
|
||||
<path d="M 84,24L 82,24L 82,66L 84,66Z" style="fill:rgb(166,213,193);" />
|
||||
<path d="M 86,24L 84,24L 84,72L 86,72Z" style="fill:rgb(106,189,160);" />
|
||||
<path
|
||||
d="M 94,114L 94,80L 92,78L 90.6667,77.3333L 88,76L 86.6667,75.3333L 84,74L 80,74L 77.3333,75.3333L 76,76L 73.3333,77.3333L 72,78L 69.3333,79.3333L 68,80L 65.5753,81.5753L 63.1045,83.1045L 60.5654,84.5654L 57.9647,85.9647L 55.3257,87.3257L 54,88L 51.636,89.3995L 49.2489,90.5836L 48.0432,90.9921L 45.5777,91.6132L 42.8616,91.8992L 39.7026,91.9863L 38,92L 38,114L 40,116L 42.6502,117.3498L 45.2759,118.7241L 47.8504,120.1496L 50.3544,121.6456L 52.7937,123.2063L 54,124L 55.3333,124.6667L 58,126L 59.3333,126.6667L 62,128L 70,128L 72.6667,126.6667L 74,126L 76.6667,124.6667L 78,124L 80.6667,122.6667L 82,122L 83.2056,121.2056L 85.6434,119.6434L 88.1441,118.1441L 90.7063,116.7063L 92,116Z"
|
||||
style="fill:rgb(6,150,109);" />
|
||||
<path
|
||||
d="M 85.8729,57.8729L 85.6659,61.6659L 85.2814,65.2814L 84.7048,68.7048L 84,72L 84,74L 85.3333,74.6667L 88,76L 89.3333,76.6667L 92,78L 100,78L 102.4247,76.4247L 104.8955,74.8955L 107.4346,73.4346L 110.0353,72.0353L 112.6743,70.6743L 114,70L 115.2056,69.2056L 117.6434,67.6434L 120.1441,66.1441L 122.7063,64.7063L 124,64L 124,26L 122,24L 119.3498,22.6502L 116.7241,21.2759L 114.1496,19.8504L 111.6456,18.3544L 109.2063,16.7937L 108,16L 106.6667,15.3333L 104,14L 102.6667,13.3333L 100,12L 98.6667,11.3333L 96,10L 94,10L 91.3333,11.3333L 90,12L 87.3333,13.3333L 86,14L 83.6143,15.6143L 81.2088,17.2088L 80,18L 80,20L 80.8396,21.2073L 82.4279,23.6946L 83.7665,26.3869L 84.7608,29.3767L 85.4016,32.6928L 85.7538,36.2964L 85.9157,40.1046L 85.9759,44.0286L 85.9899,48.0011L 85.9756,51.9773L 85.9171,55.9173Z"
|
||||
style="fill:rgb(6,150,109);" />
|
||||
<path d="M 62,84L 58,84L 58,86L 62,86Z" style="fill:rgb(132,196,168);" />
|
||||
<path d="M 42,30L 40,30L 40,36L 42,36Z" style="fill:rgb(255,232,210);" />
|
||||
<path d="M 42,4L 42,6L 46,6L 46,4Z" style="fill:rgb(255,232,210);" />
|
||||
<path d="M 50,38L 48,38L 48,44L 50,44Z" style="fill:rgb(255,232,210);" />
|
||||
<path d="M 48,92L 42,92L 42,94L 48,94Z" style="fill:rgb(94,180,147);" />
|
||||
<path d="M 82,26L 80,26L 80,68L 82,68Z" style="fill:rgb(94,180,147);" />
|
||||
<path d="M 40.6667,84.6667L 42,82L 42,78L 40,78L 38,80L 38,86L 40,86Z" style="fill:rgb(174,195,156);" />
|
||||
<path d="M 50,76L 42,76L 42,82L 44,82L 45.1868,81.5847L 47.5787,80.7752L 50,80Z"
|
||||
style="fill:rgb(174,195,156);" />
|
||||
<path d="M 56,74L 54.6667,73.3333L 52,72L 48,72L 48,76L 50,78L 54,78L 56,76Z"
|
||||
style="fill:rgb(174,195,156);" />
|
||||
<path d="M 62,72L 62,71L 61,70L 52,70L 52,74L 54,74L 55.3333,74L 58,74L 60,74Z"
|
||||
style="fill:rgb(174,195,156);" />
|
||||
<path d="M 64,68L 56,68L 56,70L 58.501,70.499L 61,71L 62,71L 64,70Z" style="fill:rgb(174,195,156);" />
|
||||
<path d="M 64,66L 60,66L 60,68L 64,68Z" style="fill:rgb(174,195,156);" />
|
||||
<path d="M 66,30L 64,30L 64,60L 66,60Z" style="fill:rgb(174,195,156);" />
|
||||
<path d="M 72,25L 71,24L 68,24L 66,26L 66,30L 68,30L 70,30L 72,30Z" style="fill:rgb(174,195,156);" />
|
||||
<path
|
||||
d="M 42,2L 38,2L 35.3333,3.3333L 34,4L 31.3333,5.3333L 30,6L 27.3333,7.3333L 26,8L 23.5753,9.5753L 21.1045,11.1045L 18.5654,12.5654L 15.9647,13.9647L 13.3257,15.3257L 12,16L 9.6143,17.6143L 7.2088,19.2088L 6,20L 4,22L 4,24L 14,24L 16.6667,22.6667L 18,22L 20.6667,20.6667L 22,20L 24.4247,18.4247L 25.6601,17.6601L 28.165,16.165L 30.7351,14.7351L 33.3557,13.3557L 36.0055,12.0055L 38.6675,10.6675L 40,10L 42,8Z"
|
||||
style="fill:rgb(254,244,234);" />
|
||||
<path
|
||||
d="M 32,80L 29.5885,78.4115L 27.1929,76.8071L 26,76L 24.6667,75.3333L 22,74L 20.6667,73.3333L 18,72L 16.6667,71.3333L 14,70L 12.3857,69.6143L 9.1769,68.8231L 6,68L 4,68L 4,72L 6,74L 8.6502,75.3498L 11.2759,76.7241L 13.8504,78.1496L 16.3544,79.6456L 18.7937,81.2063L 20,82L 21.3333,82.6667L 24,84L 25.3333,84.6667L 28,86L 32,86Z"
|
||||
style="fill:rgb(254,244,234);" />
|
||||
<path d="M 50,0L 42,0L 42,2L 50,2Z" style="fill:rgb(254,244,234);" />
|
||||
<path
|
||||
d="M 74,18L 74,14L 72.7072,13.2928L 70.146,11.854L 67.6451,10.3549L 65.2063,8.7937L 64,8L 62.6667,7.3333L 60,6L 58.6667,5.3333L 56,4L 54.6667,3.3333L 52,2L 48,2L 48,4L 49.3333,6.6667L 50,8L 51.2928,8.7072L 53.854,10.146L 56.3549,11.6451L 58.7937,13.2063L 60,14L 61.3333,14.6667L 64,16L 65.3333,16.6667L 68,18Z"
|
||||
style="fill:rgb(254,244,234);" />
|
||||
<path
|
||||
d="M 74,72L 74,74L 80,74L 82.6667,72.6667L 84,72L 84,66L 82,66L 79.6143,67.6143L 77.2088,69.2088L 76,70Z"
|
||||
style="fill:rgb(190,220,203);" />
|
||||
<path d="M 84,24L 84,22L 78,22L 78,24L 80,26L 82,26Z" style="fill:rgb(190,220,203);" />
|
||||
<path d="M 38,84L 34,84L 34,90L 36,90L 36.6667,88.6667L 38,86Z" style="fill:rgb(242,239,228);" />
|
||||
<path d="M 64,62L 60,62L 60,64L 64,64Z" style="fill:rgb(242,239,228);" />
|
||||
<path d="M 76.6667,20.6667L 78,20L 78,16L 74,16L 71.3333,17.3333L 70,18L 70,20L 72,22L 74,22Z"
|
||||
style="fill:rgb(242,239,228);" />
|
||||
<path d="M 42,82L 40,82L 40,86L 42,86Z" style="fill:rgb(114,176,133);" />
|
||||
<path d="M 48,80L 48,79L 46,78L 44,78L 44,82L 46,82Z" style="fill:rgb(114,176,133);" />
|
||||
<path d="M 58,73L 56,72L 54,72L 54,74L 58,74Z" style="fill:rgb(114,176,133);" />
|
||||
<path
|
||||
d="M 69,32L 69,30L 66,30L 66,60L 68,60L 68.0007,58.0013L 68.0044,54.0088L 68.0192,50.0384L 68.0636,46.1271L 68.1671,42.3341L 68.3593,38.7186L 68.6476,35.2952Z"
|
||||
style="fill:rgb(114,176,133);" />
|
||||
<path d="M 70,28L 68,28L 68,30L 69,32L 70,32Z" style="fill:rgb(114,176,133);" />
|
||||
<path
|
||||
d="M 70,64L 67.002,65.002L 64,66L 64,68L 65.3198,68.5767L 67.8263,69.8336L 70.0333,71.3234L 72,73L 74,73L 76,72L 78.6667,70.6667L 80,70L 80,64Z"
|
||||
style="fill:rgb(114,176,133);" />
|
||||
<path d="M 72,24L 72,28L 76,28L 78.6667,26.6667L 80,26L 80,24Z" style="fill:rgb(114,176,133);" />
|
||||
<path d="M 38,80L 36,80L 36,84L 38,84Z" style="fill:rgb(208,206,169);" />
|
||||
<path d="M 47,76L 47,74L 42,74L 42,76Z" style="fill:rgb(208,206,169);" />
|
||||
<path d="M 48,72L 46,72L 46,74L 47,76L 48,76Z" style="fill:rgb(208,206,169);" />
|
||||
<path d="M 52,68L 52,70L 56,70L 56,68Z" style="fill:rgb(208,206,169);" />
|
||||
<path d="M 56,66L 56,68L 60,68L 60,66Z" style="fill:rgb(208,206,169);" />
|
||||
<path d="M 66,64L 60,64L 60,66L 66,66Z" style="fill:rgb(208,206,169);" />
|
||||
<path d="M 64,30L 62,30L 62,58L 64,58Z" style="fill:rgb(208,206,169);" />
|
||||
<path d="M 66,26L 64,26L 64,30L 66,30Z" style="fill:rgb(208,206,169);" />
|
||||
<path d="M 47.5885,85.5885L 49.1929,83.1929L 50,82L 50,80L 46,80L 44,82L 44,88L 46,88Z"
|
||||
style="fill:rgb(49,155,107);" />
|
||||
<path d="M 54,76L 54,78L 58,78L 60,76L 60,74L 56,74Z" style="fill:rgb(49,155,107);" />
|
||||
<path d="M 70,72L 60,72L 60,74L 63.002,74.998L 66,76L 70,76Z" style="fill:rgb(49,155,107);" />
|
||||
<path d="M 72,30L 70,30L 70,58L 72,58Z" style="fill:rgb(49,155,107);" />
|
||||
<path d="M 74,58L 72,58L 72,62L 76,62L 76,60Z" style="fill:rgb(49,155,107);" />
|
||||
<path d="M 44,82L 42,82L 42,88L 44,88Z" style="fill:rgb(73,163,117);" />
|
||||
<path d="M 50,86L 46,86L 46,88L 50,88Z" style="fill:rgb(73,163,117);" />
|
||||
<path d="M 60,80L 56,80L 56,82L 60,82Z" style="fill:rgb(73,163,117);" />
|
||||
<path d="M 74,73L 72.6667,71L 72,70L 62,70L 62,72L 63.6143,72.3857L 66.8231,73.1769L 70,74L 74,74Z"
|
||||
style="fill:rgb(73,163,117);" />
|
||||
<path d="M 70,32L 68,32L 68,58L 70,58Z" style="fill:rgb(73,163,117);" />
|
||||
<path d="M 74.998,61.002L 72.998,59.002L 72,58L 70,58L 70,64L 76,64L 76,62Z"
|
||||
style="fill:rgb(73,163,117);" />
|
||||
<path d="M 10,26L 8,26L 8,68L 10,68Z" style="fill:rgb(254,223,194);" />
|
||||
<path d="M 46,18L 42,18L 42,22L 44,22L 46,20Z" style="fill:rgb(254,223,194);" />
|
||||
<path
|
||||
d="M 12,24L 4,24L 4,68L 6,70L 12,70L 12,68L 11.2952,66.7048L 10.0138,63.9862L 9.5332,62.4668L 8.757,59.243L 8.3136,55.6867L 8.108,51.8952L 8.0391,47.9815L 8.0532,44.0413L 8.1664,40.1647L 8.4614,36.4612L 9.0527,33.0527L 10.0138,30.0138L 11.2952,27.2952L 12,26Z"
|
||||
style="fill:rgb(254,240,227);" />
|
||||
<path d="M 36,82L 32,82L 32,88L 34,88L 34.6667,86.6667L 36,84Z" style="fill:rgb(254,240,227);" />
|
||||
<path d="M 42,36L 40,36L 40,44L 42,44Z" style="fill:rgb(254,240,227);" />
|
||||
<path d="M 50,4L 48,2L 42,2L 42,4L 44.4115,5.5885L 46.8071,7.1929L 48,8L 50,8Z"
|
||||
style="fill:rgb(254,240,227);" />
|
||||
<path d="M 48,22L 46,22L 46,30L 48,30Z" style="fill:rgb(254,240,227);" />
|
||||
<path d="M 50,44L 48,44L 48,48L 50,48Z" style="fill:rgb(254,240,227);" />
|
||||
</svg> -->
|
||||
</body>
|
||||
</html>
|
||||
>>>>>>> .theirs
|
||||
@ -1,60 +0,0 @@
|
||||
import homePage from './homePage/en'
|
||||
export default {
|
||||
homePage,
|
||||
common: {
|
||||
title: 'Aidex',
|
||||
},
|
||||
nav: {
|
||||
home: 'Home page',
|
||||
run:"Run",
|
||||
energyStorage: 'Energy storage',
|
||||
user: 'Mine',
|
||||
},
|
||||
login: {
|
||||
title: 'Login',
|
||||
account:"Account",
|
||||
placeholderAccount: 'Enter Account',
|
||||
pwd:"Password",
|
||||
placeholderPassword: 'Enter Password',
|
||||
code:"Verification code",
|
||||
codeTip:"Please enter the verification code",
|
||||
autoLogin: 'Auto Login',
|
||||
loginButton: 'Login',
|
||||
logoutButton: 'Logout',
|
||||
forget: 'Forget Password',
|
||||
reg: 'Resister Account',
|
||||
noLogin: 'No Login',
|
||||
privacyPolicy:"Privacy Policy",
|
||||
userAgreement:"User agreement",
|
||||
codeLoading:"Getting verification code",
|
||||
noStation:"No power station",
|
||||
noFunction:"The function is not yet open.",
|
||||
lang:'EN'
|
||||
},
|
||||
home: {
|
||||
title: 'Home'
|
||||
},
|
||||
user: {
|
||||
title: 'User',
|
||||
privacyPolicy:"Privacy Policy",
|
||||
userAgreement:"User agreement",
|
||||
edition:"Version",
|
||||
language:"Language",
|
||||
loginOut:"Log out",
|
||||
chinese:"Chinese",
|
||||
english:"English",
|
||||
german:'German',
|
||||
italian:'Italian',
|
||||
spanish:'Spanish',
|
||||
changeSuccess:"The switch was successful",
|
||||
languageChange:"Language Switch",
|
||||
privacy:"Privacy Policy",
|
||||
agreement:"User Agreement"
|
||||
},
|
||||
msg: {
|
||||
title: 'Message'
|
||||
},
|
||||
tips:{
|
||||
noData:"No data available"
|
||||
}
|
||||
}
|
||||
@ -1,461 +0,0 @@
|
||||
export default {
|
||||
home: {
|
||||
esiCab: 'Cabinet',
|
||||
gridCab: 'Grid-con Cabinet',
|
||||
grid: 'Grid',
|
||||
workStatus: 'Work Status:',
|
||||
activePower: 'Ac-Power(kW):',
|
||||
charge: 'Charge',
|
||||
disCharge: 'Discharge',
|
||||
standing: 'Standing',
|
||||
load: 'Load',
|
||||
gridCabSwitch: 'Grid-con Switch:',
|
||||
dCCabin: 'DC Cabin',
|
||||
PCSCab: 'PCS Cabin',
|
||||
legend: 'Lengend',
|
||||
normal: 'Normal',
|
||||
fault: 'Fault',
|
||||
overhaul: 'Overhaul',
|
||||
shutStan: 'Standby/Shutdown',
|
||||
reactivePower: 'Re-Power(kW):',
|
||||
totalV: 'Total Voltage(V):',
|
||||
current: 'Current(A):',
|
||||
maxCellVol: 'Maximum cell voltage:',
|
||||
minCellVol: 'Maximum voltage difference:',
|
||||
shutdown: 'Shutdown',
|
||||
standby: 'Standby',
|
||||
run: 'Run',
|
||||
allActivePower: 'All Ac-Power(kW):',
|
||||
cabinet: 'Cabinet',
|
||||
gridMeter: 'Grid Meter',
|
||||
photovoltaic: 'Photovoltaic',
|
||||
battery: 'Battery',
|
||||
status: 'Status:',
|
||||
busbar: 'Busbar',
|
||||
dieselGenerator: 'Diesel Generator',
|
||||
ammeter: 'Ammeter',
|
||||
device: 'Device',
|
||||
earning: 'Earning',
|
||||
alarm: 'Alarm',
|
||||
policy: 'Policy',
|
||||
stationTopo: 'Site Topology',
|
||||
deviceMonitor: 'Device Monitor',
|
||||
runCurve: 'Run Time Curve',
|
||||
chargeDisData: 'Charge/Discharge Data',
|
||||
stationData: 'stationData',
|
||||
environmentalData: 'Environmental Control Data',
|
||||
sevenDay: 'Seven',
|
||||
monthDay: 'Month',
|
||||
yearDay: 'Year',
|
||||
monthThree: 'three Months',
|
||||
tip: 'Tip',
|
||||
loading: 'Loading...',
|
||||
power: 'Power(kW)',
|
||||
photovoltaicCharge: 'Photovoltaic Charge',
|
||||
chargingandDischarging: 'Electricity(kWh)',
|
||||
safeDaysUnit: 'Safe Operation Days(Day)',
|
||||
totalCapacity: 'Total Installed Capacity',
|
||||
systemConversionEfficiency: 'System Conversion Efficiency',
|
||||
currentPower: 'Current Power',
|
||||
totalCharge: 'Total Charge',
|
||||
totalDischarge: 'Total Discharge',
|
||||
dailyCharge: 'Daily Charge',
|
||||
dailyDischarge: 'Daily Discharge',
|
||||
dayPhotovoltaic: 'Photovoltaic Power Generation',
|
||||
noData: 'No Data',
|
||||
login:'Login',
|
||||
account:'Account',
|
||||
password:'Password',
|
||||
placeAccount:"Place input account",
|
||||
placePassword:'Place input password',
|
||||
noLogin:'The feature is not available yet',
|
||||
station:'Station',
|
||||
electricityPrice:'National electricity price',
|
||||
mine:'Mine',
|
||||
on: 'On',
|
||||
off: 'Off',
|
||||
lang:'EN',
|
||||
noPermission: "No access permission",
|
||||
contactAdmin: "Group system is not open to the public yet. Please contact the administrator to activate an account",
|
||||
title: "Guest Mode"
|
||||
},
|
||||
price: {
|
||||
elePriceQuery: 'Electricity Price Query',
|
||||
queryCriteria: 'Query criteria',
|
||||
sift: 'sift',
|
||||
provinceRegion: 'Province Region',
|
||||
selectProvinceRegion: 'Please select province region',
|
||||
customerType: 'Electricity Customer',
|
||||
selectEleCustomers: 'Please select electricity customer',
|
||||
eleType: 'Electricity Type',
|
||||
selectEleType: 'Please select electricity type',
|
||||
volLevel: 'Voltage Level',
|
||||
selectVoltageLevel: 'Please select voltage level',
|
||||
exeTime: 'Execute Time',
|
||||
selectExeTime: 'selectExeTime',
|
||||
noData: 'No Data',
|
||||
eleLevel: 'Electricity Price Level',
|
||||
fsdd: 'The price of time-of-use electricity',
|
||||
dietailUnit: '(RMB/kWh)',
|
||||
eleprice: 'The price of electricity and electricity',
|
||||
nonTime: 'Non-time-of-use Electricity Price',
|
||||
proxyPrice: 'Proxy power purchase price',
|
||||
transmission: 'transmission',
|
||||
attachPrice: 'Government funds and surcharges',
|
||||
curve: 'Curve',
|
||||
list: 'List',
|
||||
noMoreData: 'No More Data',
|
||||
spike: 'Spike',
|
||||
speak: 'Speak',
|
||||
regular: 'Regular',
|
||||
lowValley: 'Low Valley',
|
||||
deepValley: 'Deep Valley',
|
||||
peakDifference: 'Maximum peak-to-valley difference',
|
||||
peakDifferencePrice: 'Maximum peak-to-valley spread',
|
||||
dayHighPrice: 'The highest daily electricity price',
|
||||
dayLowtPrice: 'The lowest daily electricity price',
|
||||
historytrend: 'Historical trends',
|
||||
reset: 'Reset',
|
||||
sure: 'Sure',
|
||||
sharp: 'Sharp',
|
||||
peak: 'Peak',
|
||||
flat: 'Flat',
|
||||
valley: 'Valley',
|
||||
|
||||
},
|
||||
mine: {
|
||||
// accountSec: 'Account security',
|
||||
// aboutUs: 'About us',
|
||||
// message: 'Message notifications',
|
||||
// changeLanguage: 'Switch languages',
|
||||
// sysSetting: 'System settings',
|
||||
// messageAlerts: 'Message alerts',
|
||||
// acceptMessageAlerts: 'Accept Message alerts',
|
||||
// messageDetail: 'The notification bar displays the message details',
|
||||
// closeMessage: 'After disabling, when a message is received, only a prompt is displayed, and the message content is not displayed.',
|
||||
// sound: 'Sound & Vibration',
|
||||
// acceptSound: 'Play a sound or vibration when you receive a message',
|
||||
// settingSound: 'Go to System Settings and modify the sound and vibration',
|
||||
// update: 'Software update alerts',
|
||||
// updateAlerts: 'Alerts are given when a new version of the software is released',
|
||||
// noUpdate: 'The Mini Program or H5 is already the latest version, so there is no need to check for updates!',
|
||||
// general: 'General',
|
||||
// version: 'Current version',
|
||||
// Privacy: 'Privacy Policy',
|
||||
// UserAgreement: 'User Agreement',
|
||||
// logOut: 'Log Out',
|
||||
// notAva: 'This feature is not available at this time',
|
||||
// setPassword: 'Please set a login password',
|
||||
// passwordService: 'Update your passwords regularly to improve security',
|
||||
// oldPassword: 'Old passwords',
|
||||
// inputOldPossword: 'Please enter your old password',
|
||||
// newPassword: 'New passwords',
|
||||
// inputNewPassword: 'Please enter a new password',
|
||||
// surePassword: 'Confirm your password',
|
||||
// inputSurePassword: 'Please confirm your password',
|
||||
// PasswordError: 'The password must be a 6-12 digit number, a combination of characters (not a pure number)',
|
||||
// submit: 'Submit',
|
||||
// resetSubmit: 'Please re-enter your password',
|
||||
// passwordEqual: 'The passwords entered twice are not equal',
|
||||
// tip: 'Tip',
|
||||
// updateSuccess: 'The password is successfully changed, please log in again.',
|
||||
// inputError: 'The information you filled in is incorrect, please correct it according to the prompts.',
|
||||
// hoenergypower: 'Hoenergy',
|
||||
// companyHomepage: 'Company homepage',
|
||||
// technicalServices: 'Technical services',
|
||||
// termsOfService: 'Terms of Service',
|
||||
// downUpdate: 'Whether or not to download the update?',
|
||||
// appTitle: 'Control platform',
|
||||
// lookDetail: 'Detail',
|
||||
// noMessage: 'No Message',
|
||||
// sureRead: 'Confirm Read',
|
||||
// cancel: 'Cancel',
|
||||
// messageDetail: 'Message Detail',
|
||||
// operateSuccess: 'Operate Success',
|
||||
// messageReaded: 'The message has already been read and does not need to be repeated'
|
||||
},
|
||||
device: {
|
||||
inputNameQuery: 'Input name to search',
|
||||
query: 'Search',
|
||||
all: 'All',
|
||||
queryResult:'Search results',
|
||||
pcsTopu:'PCS Topology',
|
||||
totalAcReaPower:'Total ac/re power',
|
||||
timeGranularity:'Time granularity',
|
||||
deviceData: 'Device Data',
|
||||
acPower: 'Ac Power',
|
||||
acRecPower: 'Ac Re-Power',
|
||||
gridFrequency: 'Grid frequency',
|
||||
abLineVol: 'AB line voltage',
|
||||
bcLineVol: 'BC line voltage',
|
||||
caLineVol: 'CA line voltage',
|
||||
acur:'A phase current',
|
||||
bcur:'B phase current',
|
||||
ccur:'C phase current',
|
||||
DCPower: 'DC power',
|
||||
DCVol: 'DC voltage',
|
||||
DCCurrent: 'DC current',
|
||||
acbreaker:'AC Breaker',
|
||||
dcbreaker:'DC Breaker',
|
||||
runState: 'Run state',
|
||||
rsState: 'Distance/Local State',
|
||||
gridMode: 'And in off-grid mode',
|
||||
deviceState: 'Device state',
|
||||
totalActivePower: 'Total Power',
|
||||
totalReactivePower: 'Total Re-Power',
|
||||
local: 'Local',
|
||||
distance: 'Distance',
|
||||
grid: 'Grid',
|
||||
offGrid: 'Off-grid',
|
||||
standby: 'Standby',
|
||||
shutdown: 'Shutdown',
|
||||
run: 'Run',
|
||||
fault: 'Fault',
|
||||
charge: 'Charge',
|
||||
discharge: 'Discharge',
|
||||
standing: 'Standing',
|
||||
localAutomatic:'Local automatic',
|
||||
localManual:'Local manual',
|
||||
timesArr: [{
|
||||
label: '1 Minutes',
|
||||
value: 1
|
||||
},
|
||||
{
|
||||
label: '5 Minutes',
|
||||
value: 5
|
||||
},
|
||||
{
|
||||
label: '10 Minutes',
|
||||
value: 10
|
||||
},
|
||||
{
|
||||
label: '15 Minutes',
|
||||
value: 15
|
||||
},
|
||||
{
|
||||
label: '20 Minutes',
|
||||
value: 20
|
||||
},
|
||||
{
|
||||
label: '30 Minutes',
|
||||
value: 30
|
||||
}
|
||||
],
|
||||
yx: 'TS',
|
||||
yc: 'TM',
|
||||
data:'Data',
|
||||
noData:'No Data',
|
||||
loadText: {
|
||||
loadmore: 'load More',
|
||||
loading: 'loading',
|
||||
nomore: 'No more',
|
||||
},
|
||||
clusterTotalVol: 'Cluster Total Voltage/SOC',
|
||||
runData: 'runData',
|
||||
cumCharge: 'Cumulative charge',
|
||||
cumDischarge: 'Cumulative discharge',
|
||||
avgTem: 'Average temperature',
|
||||
avgVol: 'Average voltage',
|
||||
maxCellVol: 'Maximum cell voltage',
|
||||
minCellVol: 'Minimum cell voltage',
|
||||
maxCellTem: 'Maximum cell temperature',
|
||||
minCellTem: 'Minimum cell temperature',
|
||||
maxvolDiff: 'Maximum voltage difference',
|
||||
maxTemDiff: 'Maximum temperature difference',
|
||||
batteryGroupNum: 'Battery number',
|
||||
cellPostion: 'CELL Position',
|
||||
vol: 'Voltage',
|
||||
volqua: 'Voltage quality',
|
||||
curqua: 'Current quality',
|
||||
acRea: 'Active/Reactive',
|
||||
avol: 'A phase voltage',
|
||||
bvol: 'B phase voltage',
|
||||
cvol: 'C phase voltage',
|
||||
zxygzdl:'Forward total ac-power',
|
||||
dlj:'Electricity(sharp)',
|
||||
dlf:'Electricity(peak)',
|
||||
dlp:'Electricity(flat)',
|
||||
dlg:'Electricity(valley)',
|
||||
fxygzdl:'Reverse total ac-power',
|
||||
hxyggl:'Conjunct ac-power',
|
||||
hxwggl:'Conjunct re-power',
|
||||
hxglys:'Conjunct power factor',
|
||||
a:'A phase',
|
||||
b:'B phase',
|
||||
c:'C phase',
|
||||
active:'Active',
|
||||
reactive:'Reactive',
|
||||
current:'Current',
|
||||
EMU: 'EMU Run Data',
|
||||
on: 'On',
|
||||
off: 'Off',
|
||||
emuSwitchPosition: 'EMU Switch position',
|
||||
emuRemoteOperation: 'EMU Remote operation',
|
||||
emuKnifePosition: 'EMU Ground knife position',
|
||||
online: 'Online',
|
||||
offline: 'Offline',
|
||||
temConCabRunData: 'Tem-control box Run Data',
|
||||
aTem: 'A phase temperature',
|
||||
bTem: 'B phase temperature',
|
||||
cTem: 'C phase temperature',
|
||||
dehumidifierRunData: 'Dehumidifier Run Data',
|
||||
tem: 'temperature',
|
||||
hum: 'humidity',
|
||||
humStartValue:'Humidity start value',
|
||||
humStopValue:'Humidity stop value',
|
||||
ammeterRunData:'Ammeter Run Data',
|
||||
frequency:'Frequency',
|
||||
perceptualPower:'Perceptual power',
|
||||
CapacitivePower:'Capacitive power',
|
||||
volRatio: 'Voltage size distribution ratio',
|
||||
maxVol: 'Maximum voltage',
|
||||
cellPostion: 'CELL Position',
|
||||
minVol: 'Minimum voltage',
|
||||
maxTem: 'Maximum temperature',
|
||||
minTem: 'Minimum temperature',
|
||||
cellVolChart: 'Cell voltage histogram',
|
||||
cellTemChart: 'Cell Temperature histogram',
|
||||
volUnit: 'Voltage/Number',
|
||||
temUnit: 'Temperature/Number',
|
||||
num:'number',
|
||||
stackTotalVol:'Stack Total Voltage/SOC',
|
||||
leftTemCabin:'Left Side Temperature',
|
||||
leftHubCabin:'Left Side Humidity',
|
||||
rightTemCabin:'Right Side Temperature',
|
||||
rightHubCabin:'Right Side Humidity',
|
||||
stackCurrent:'Stack Current',
|
||||
stackTotalVol:'Stack Voltage',
|
||||
stackTotalCurrent:'Stack Total Current',
|
||||
stackSoc:'Stack SOC',
|
||||
CumulativeCharge:'Cumulative charge',
|
||||
CumulativeDischarge:'Cumulative discharge',
|
||||
zdz:'Insulation positive resistance',
|
||||
fdz:'Insulation negative resistance',
|
||||
rechargeCapacity:'Rechargeable capacity',
|
||||
dischargeCapacity:'Discharging capacity',
|
||||
totalMaxVolData:'Highest total cluster pressure',
|
||||
stackCell:'Cluster number',
|
||||
totalMinVolData:'Lowest total cluster pressure',
|
||||
stackNum:'Battery cluster number',
|
||||
groupNum:'Battery pack number',
|
||||
cellLocation:'Cell location',
|
||||
historyData:'History Data'
|
||||
},
|
||||
earning: {
|
||||
changeDischargePro: 'Charging/Discharging Project',
|
||||
capacity: 'Capacity',
|
||||
monthTotalCharge: 'Total Charging Volume Monthly',
|
||||
monthTotalDischarge: 'Total Discharging Volume Monthly',
|
||||
monthEff: 'Monthly Conversion Efficiency',
|
||||
chargeVol: 'Cumulative Charging Volume',
|
||||
dischargeVol: 'Cumulative Discharging Volume',
|
||||
totalEff: 'Cumulative Conversion Efficiency',
|
||||
projectRevenue: 'Project Revenue',
|
||||
monthTotalChargePrice: 'Total Charging Price Monthly(RMB)',
|
||||
monthTotalDisChargePrice: 'Total Discharging Price Monthly(RMB)',
|
||||
earnings: 'Revenue(RMB)',
|
||||
earningsDetail: 'Revenue Detail',
|
||||
charge: 'Charge',
|
||||
ele: 'Electricity(kWh)',
|
||||
expend: 'Spend(RMB)',
|
||||
noChargeData: 'No Charge Data',
|
||||
disCharge: 'Discharge',
|
||||
noDisChargeData: 'No Discharge Data',
|
||||
year:'Year',
|
||||
month:'Month',
|
||||
day:'Day',
|
||||
hour:'Hour',
|
||||
minute:'Minute',
|
||||
second:'Second'
|
||||
},
|
||||
alarm: {
|
||||
sift: 'sift',
|
||||
device: 'Device',
|
||||
placeSelect: 'Place Select',
|
||||
event: 'Events',
|
||||
level: 'Alarm Level',
|
||||
timeRange: 'Time Range',
|
||||
placeholderDate: 'placeholder select date',
|
||||
reset: 'Reset',
|
||||
sure: 'Sure',
|
||||
noData: 'No Data',
|
||||
confirm: 'Confirmed',
|
||||
noConfirmed: 'Not Confirmed',
|
||||
alarmTypeList: [{
|
||||
name: 'Real-Time Alarm'
|
||||
},
|
||||
{
|
||||
name: 'History Alarm'
|
||||
}
|
||||
],
|
||||
// realTimeAlarm: 'Real-Time Alarm',
|
||||
// HistoryAlarm: 'History Alarm',
|
||||
loadText: {
|
||||
loadmore: 'load More',
|
||||
loading: 'loading',
|
||||
nomore: 'No more',
|
||||
},
|
||||
allStation:'All Station',
|
||||
alarm:'Alarm',
|
||||
noDevice:'No Device Data',
|
||||
placeholderInput:'Please Input Alarm Content',
|
||||
status:'Status',
|
||||
station:'Station',
|
||||
alarmTime:'Alarm Time',
|
||||
confirmer:'Confirmer',
|
||||
confirmTime:'Confirm Time'
|
||||
},
|
||||
policy: {
|
||||
planCurve: 'Plan Curve',
|
||||
planCurveTem: 'Plan Curve Template',
|
||||
IssueDevice: 'Command Distribution Device',
|
||||
operateOrNot: 'Operate Or Not',
|
||||
socUplimit: 'SOC Upper Limit',
|
||||
socDownlimit: 'SOC Lower Limit',
|
||||
effectiveTime: 'Effective Time',
|
||||
selectEffectiveTime: 'Please select effective time',
|
||||
distributeResult: 'Distribute Result',
|
||||
notDelivered: 'Not Delivered',
|
||||
commandDistribution: 'Command Distribution',
|
||||
controlDistribution: 'Control Distribution',
|
||||
genSetting: 'General settings',
|
||||
save: 'Save',
|
||||
pleaseInputValue: 'Please input value',
|
||||
pleaseInputPassword: 'Please input password',
|
||||
password: 'Password',
|
||||
policyTypeList: [{
|
||||
name: 'Command Distribution'
|
||||
},
|
||||
{
|
||||
name: 'General settings'
|
||||
}
|
||||
],
|
||||
radioList: [{
|
||||
name: "Operate",
|
||||
disabled: false,
|
||||
},
|
||||
{
|
||||
name: "Not Operate",
|
||||
disabled: false,
|
||||
},
|
||||
],
|
||||
|
||||
selectIssueDevice: 'Command Distribution device',
|
||||
deliverErrorNewTip: 'Mapping relationship is misconfigured or not configured, confirm and try again!',
|
||||
passwordSuccess: 'Password Success',
|
||||
passwordError: 'Password Error',
|
||||
isOpen: 'isOpen',
|
||||
isClose: 'isClose',
|
||||
distributeSuccess: 'Distribute Succeeded',
|
||||
distributeFail: 'Distribute Failed',
|
||||
isNum: 'Please check that the value you enter is a number',
|
||||
saveSuccess: 'Save Succeeded',
|
||||
saveError: 'Save Failed',
|
||||
delivered: 'Delivered',
|
||||
selectPlanCurveTem: 'Please select plan curve template',
|
||||
deliverErrorTip: 'Charging and discharging power is greater than the rated power, please confirm the plan curve setting',
|
||||
deliverTip: 'Are you sure you want to delivery of the command?',
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,462 +0,0 @@
|
||||
export default {
|
||||
home: {
|
||||
esiCab: '储能一体柜',
|
||||
gridCab: '并网柜',
|
||||
grid: '用户配电',
|
||||
workStatus: '工作状态:',
|
||||
activePower: '有功功率(kW):',
|
||||
charge: '充电',
|
||||
disCharge: '放电',
|
||||
standing: '静置',
|
||||
load: '负载',
|
||||
gridCabSwitch: '并网柜开关:',
|
||||
dCCabin: '直流舱',
|
||||
PCSCab: 'PCS升压一体舱',
|
||||
legend: '图例',
|
||||
normal: '正常运行',
|
||||
fault: '故障',
|
||||
overhaul: '检修',
|
||||
shutStan: '待机/停机',
|
||||
reactivePower: '无功功率(kW):',
|
||||
totalV: '总电压(V):',
|
||||
current: '电流(A):',
|
||||
maxCellVol: '单体最高电压:',
|
||||
minCellVol: '单体最低电压:',
|
||||
shutdown: '停机',
|
||||
standby: '待机',
|
||||
run: '运行',
|
||||
allActivePower: '总有功功率(kW):',
|
||||
cabinet: '储能柜',
|
||||
gridMeter: '电网侧电表',
|
||||
photovoltaic: '光伏',
|
||||
battery: '电池',
|
||||
status: '状态:',
|
||||
busbar: '母线',
|
||||
dieselGenerator: '柴油发电机',
|
||||
ammeter: '电表',
|
||||
device: '设备',
|
||||
earning: '收益',
|
||||
alarm: '告警',
|
||||
policy: '策略',
|
||||
stationTopo: '电站拓扑',
|
||||
deviceMonitor: '设备监控',
|
||||
runCurve: '运行曲线',
|
||||
chargeDisData: '充放电数据',
|
||||
stationData: '电站数据',
|
||||
environmentalData: '环控数据',
|
||||
sevenDay: '近七天',
|
||||
monthDay: '近一月',
|
||||
monthThree: '近三月',
|
||||
yearDay: '近一年',
|
||||
tip: '提示',
|
||||
loading: '资源加载中...',
|
||||
power: '功率(kW)',
|
||||
photovoltaicCharge: '光伏充电',
|
||||
chargingandDischarging: '充放电量',
|
||||
safeDaysUnit: '安全运行天数(天)',
|
||||
totalCapacity: '装机总容量',
|
||||
systemConversionEfficiency: '系统转化效率',
|
||||
currentPower: '当前功率',
|
||||
totalCharge: '总充电量',
|
||||
totalDischarge: '总放电量',
|
||||
dailyCharge: '日充电量',
|
||||
dailyDischarge: '日放电量',
|
||||
dayPhotovoltaic: '光伏发电量',
|
||||
noData: '暂无数据',
|
||||
login:'登录',
|
||||
account:'账号',
|
||||
password:'密码',
|
||||
placeAccount:"请输入账号",
|
||||
placePassword:'请输入密码',
|
||||
noLogin:'功能暂未开放',
|
||||
station:'电站',
|
||||
electricityPrice:'全国电价',
|
||||
mine:'我的',
|
||||
on: '合位',
|
||||
off: '分位',
|
||||
lang:'ZH',
|
||||
noPermission: "暂无权限访问",
|
||||
contactAdmin: "集团系统,暂未对外开放,请联系管理员开通账号",
|
||||
title: "游客模式"
|
||||
},
|
||||
price: {
|
||||
elePriceQuery: '电价查询',
|
||||
queryCriteria: '查询条件',
|
||||
sift: '筛选',
|
||||
provinceRegion: '省市区域',
|
||||
selectProvinceRegion: '请选择省市区域',
|
||||
customerType: '用电客户',
|
||||
selectEleCustomers: '请选择用电客户',
|
||||
eleType: '用电部制/分类',
|
||||
selectEleType: '请选择用电部制/分类',
|
||||
volLevel: '电压等级',
|
||||
selectVoltageLevel: '请选择电压等级',
|
||||
exeTime: '执行日期',
|
||||
selectExeTime: '请选择执行日期',
|
||||
noData: '数据为空',
|
||||
eleLevel: '电价水平',
|
||||
fsdd: '分时电度用电价格',
|
||||
dietailUnit: '(元/千瓦时)',
|
||||
eleprice: '电度用电价格',
|
||||
nonTime: '非分时电价',
|
||||
proxyPrice: '代理购电价格',
|
||||
transmission: '输电电价',
|
||||
attachPrice: '政府性基金及附加电价',
|
||||
curve: '曲线',
|
||||
list: '列表',
|
||||
noMoreData: '暂无更多数据',
|
||||
spike: '尖峰',
|
||||
speak: '高峰',
|
||||
regular: '平时',
|
||||
lowValley: '低谷',
|
||||
deepValley: '深谷',
|
||||
peakDifference: '最大峰谷差',
|
||||
peakDifferencePrice: '最大峰谷差价',
|
||||
dayHighPrice: '日最高电价',
|
||||
dayLowtPrice: '日最低电价',
|
||||
historytrend: '历史趋势',
|
||||
reset: '重置',
|
||||
sure: '确认',
|
||||
sharp: '尖',
|
||||
peak: '峰',
|
||||
flat: '平',
|
||||
valley: '谷',
|
||||
|
||||
},
|
||||
mine: {
|
||||
// accountSec: '账号安全',
|
||||
// aboutUs: '关于我们',
|
||||
// message: '消息通知',
|
||||
// changeLanguage: '切换语言',
|
||||
// sysSetting: '系统设置',
|
||||
// messageAlerts: '消息提醒',
|
||||
// acceptMessageAlerts: '接受消息提醒',
|
||||
// messageDetail: '通知栏显示消息详情',
|
||||
// closeMessage: '关闭后,当收到消息的时候,只显示有提示,不显示消息内容。',
|
||||
// sound: '声音与振动',
|
||||
// acceptSound: '收到消息后播放声音或振动',
|
||||
// settingSound: '前往系统设置中,修改声音与振动',
|
||||
// update: '软件更新提醒',
|
||||
// updateAlerts: '当本软件有新版本发布时,给予提醒',
|
||||
// noUpdate: '小程序端或H5端已是最新版,无需检查更新!',
|
||||
// general: '通用',
|
||||
// version: '当前版本',
|
||||
// Privacy: '隐私政策',
|
||||
// UserAgreement: '用户协议',
|
||||
// logOut: '退出登录',
|
||||
// notAva: '此功能暂未开放',
|
||||
// setPassword: '请设置登录密码',
|
||||
// passwordService: '定期更新密码提高安全性',
|
||||
// oldPassword: '旧密码',
|
||||
// inputOldPossword: '请输入旧密码',
|
||||
// newPassword: '新密码',
|
||||
// inputNewPassword: '请输入新密码',
|
||||
// surePassword: '确认密码',
|
||||
// inputSurePassword: '请确认密码',
|
||||
// PasswordError: '密码必须是6-12位的数字,字符组合(不能是纯数字)',
|
||||
// submit: '提交',
|
||||
// resetSubmit: '请重新输入密码',
|
||||
// passwordEqual: '两次输入的密码不相等',
|
||||
// tip: '提示',
|
||||
// updateSuccess: '密码修改成功,请重新登录。',
|
||||
// inputError: '您填写的信息有误,请根据提示修正。',
|
||||
// hoenergypower: '弘正储能',
|
||||
// companyHomepage: '公司首页',
|
||||
// technicalServices: '技术服务',
|
||||
// termsOfService: '服务条款',
|
||||
// downUpdate: '是否下载更新?',
|
||||
// appTitle: '智慧储能管控平台',
|
||||
// lookDetail: '查看详情',
|
||||
// noMessage: '暂无消息',
|
||||
// sureRead: '确认已读',
|
||||
// cancel: '取消',
|
||||
// messageDetail: '消息详情',
|
||||
// operateSuccess: '操作成功',
|
||||
// messageReaded: '该消息已读,无需重复操作'
|
||||
},
|
||||
device: {
|
||||
inputNameQuery: '输入名称搜索',
|
||||
query: '搜索',
|
||||
all: '全部',
|
||||
queryResult: '搜索结果',
|
||||
pcsTopu: 'PCS拓扑图',
|
||||
totalAcReaPower: '总有功/总无功功率',
|
||||
timeGranularity: '时间粒度',
|
||||
deviceData: '设备数据',
|
||||
acPower: '交流有功',
|
||||
acRecPower: '交流无功',
|
||||
gridFrequency: '电网频率',
|
||||
abLineVol: 'AB线电压',
|
||||
bcLineVol: 'BC线电压',
|
||||
caLineVol: 'CA线电压',
|
||||
acur: 'A相电流',
|
||||
bcur: 'B相电流',
|
||||
ccur: 'C相电流',
|
||||
DCPower: '直流功率',
|
||||
DCVol: '直流电压',
|
||||
DCCurrent: '直流电流',
|
||||
acbreaker: '交流断路器',
|
||||
dcbreaker: '直流断路器',
|
||||
runState: '运行状态',
|
||||
rsState: '远方/就地状态',
|
||||
gridMode: '并离网状态',
|
||||
deviceState: '设备状态',
|
||||
totalActivePower: '总有功功率',
|
||||
totalReactivePower: '总无功功率',
|
||||
local: '就地',
|
||||
distance: '远方',
|
||||
grid: '并网',
|
||||
offGrid: '离网',
|
||||
standby: '待机',
|
||||
shutdown: '停机',
|
||||
run: '运行',
|
||||
fault: '故障',
|
||||
charge: '充电',
|
||||
discharge: '放电',
|
||||
standing: '静置',
|
||||
localAutomatic: '本地自动',
|
||||
localManual: '本地手动',
|
||||
timesArr: [{
|
||||
label: '1分钟',
|
||||
value: 1
|
||||
},
|
||||
{
|
||||
label: '5分钟',
|
||||
value: 5
|
||||
},
|
||||
{
|
||||
label: '10分钟',
|
||||
value: 10
|
||||
},
|
||||
{
|
||||
label: '15分钟',
|
||||
value: 15
|
||||
},
|
||||
{
|
||||
label: '20分钟',
|
||||
value: 20
|
||||
},
|
||||
{
|
||||
label: '30分钟',
|
||||
value: 30
|
||||
}
|
||||
],
|
||||
yx: '遥信',
|
||||
yc: '遥测',
|
||||
data: '数据',
|
||||
noData: '暂无数据',
|
||||
loadText: {
|
||||
loadmore: '轻轻上拉',
|
||||
loading: '努力加载中',
|
||||
nomore: '实在没有了',
|
||||
},
|
||||
clusterTotalVol: '簇总压/SOC',
|
||||
runData: '运行数据',
|
||||
cumCharge: '累计充电量',
|
||||
cumDischarge: '累计放电量',
|
||||
avgTem: '平均温度',
|
||||
avgVol: '平均电压',
|
||||
maxCellVol: '单体最高电压',
|
||||
minCellVol: '单体最低电压',
|
||||
maxCellTem: '单体最高温度',
|
||||
minCellTem: '单体最低温度',
|
||||
maxvolDiff: '最大电压差',
|
||||
maxTemDiff: '最大温度差',
|
||||
batteryGroupNum: '电池组号',
|
||||
cellPostion: '电芯位置',
|
||||
vol: '电压',
|
||||
volqua: '电压质量',
|
||||
curqua: '电流质量',
|
||||
acRea: '有功/无功',
|
||||
avol: 'A相电压',
|
||||
bvol: 'B相电压',
|
||||
cvol: 'C相电压',
|
||||
zxygzdl: '正向有功总电量',
|
||||
dlj: '电量(尖)',
|
||||
dlf: '电量(峰)',
|
||||
dlp: '电量(平)',
|
||||
dlg: '电量(谷)',
|
||||
fxygzdl: '反向有功总电量',
|
||||
hxyggl: '合相有功功率',
|
||||
hxwggl: '合相无功功率',
|
||||
hxglys: '合相功率因数',
|
||||
a: 'A相',
|
||||
b: 'B相',
|
||||
c: 'C相',
|
||||
active: '有功',
|
||||
reactive: '无功',
|
||||
current: '电流',
|
||||
EMU: '并网柜运行数据',
|
||||
on: '合位',
|
||||
off: '分位',
|
||||
emuSwitchPosition: '并网柜开关位置',
|
||||
emuRemoteOperation: '并网柜远方操作',
|
||||
emuKnifePosition: '并网柜地刀位置',
|
||||
online: '在线',
|
||||
offline: '离线',
|
||||
temConCabRunData: '温控箱运行数据',
|
||||
aTem: 'A相温度',
|
||||
bTem: 'B相温度',
|
||||
cTem: 'C相温度',
|
||||
dehumidifierRunData: '除湿仪运行数据',
|
||||
tem: '温度',
|
||||
hum: '湿度',
|
||||
humStartValue: '湿度启动值',
|
||||
humStopValue: '湿度停止值',
|
||||
ammeterRunData: '电表运行数据',
|
||||
frequency: '频率',
|
||||
perceptualPower: '感性功电量',
|
||||
CapacitivePower: '容性功电量',
|
||||
volRatio: '电压大小分布比例',
|
||||
maxVol: '最高电压',
|
||||
cellPostion: 'CELL位置',
|
||||
minVol: '最低电压',
|
||||
maxTem: '最高温度',
|
||||
minTem: '最低温度',
|
||||
cellVolChart: '单体电压柱状图',
|
||||
cellTemChart: '单体温度柱状图',
|
||||
volUnit: '电压/个',
|
||||
temUnit: '温度/个',
|
||||
num: '个',
|
||||
stackTotalVol: '堆总压/SOC',
|
||||
leftTemCabin: '舱左侧温度',
|
||||
leftHubCabin: '舱左侧湿度',
|
||||
rightTemCabin: '舱右侧温度',
|
||||
rightHubCabin: '舱右侧湿度',
|
||||
stackCurrent: '堆电流',
|
||||
stackTotalVol: '堆总压',
|
||||
stackTotalCurrent: '堆总电流',
|
||||
stackSoc: '堆SOC',
|
||||
CumulativeCharge: '累积充电量',
|
||||
CumulativeDischarge: '累计放电量',
|
||||
zdz: '绝缘正电阻',
|
||||
fdz: '绝缘负电阻',
|
||||
rechargeCapacity: '可充电量',
|
||||
dischargeCapacity: '可放电量',
|
||||
totalMaxVolData: '最高簇总压',
|
||||
stackCell: '簇号',
|
||||
totalMinVolData: '最低簇总压',
|
||||
stackNum: '电池簇号',
|
||||
groupNum: '电池组号',
|
||||
cellLocation: '电芯位置',
|
||||
historyData: '历史数据'
|
||||
},
|
||||
earning: {
|
||||
changeDischargePro: '项目充放电概况',
|
||||
capacity: '装机容量',
|
||||
monthTotalCharge: '本月总充电量',
|
||||
monthTotalDischarge: '本月总放电量',
|
||||
monthEff: '月系统转换效率',
|
||||
chargeVol: '累计充电量',
|
||||
dischargeVol: '累计放电量',
|
||||
totalEff: '累计系统转换效率',
|
||||
projectRevenue: '项目收益情况',
|
||||
monthTotalChargePrice: '本月总充电量总价(元)',
|
||||
monthTotalDisChargePrice: '本月总放电量总价(元)',
|
||||
earnings: '收益(元)',
|
||||
earningsDetail: '收益详情',
|
||||
charge: '充电',
|
||||
ele: '电量(kWh)',
|
||||
expend: '支出(元)',
|
||||
noChargeData: '暂无充电数据',
|
||||
disCharge: '放电',
|
||||
noDisChargeData: '暂无放电数据',
|
||||
year: '年',
|
||||
month: '月',
|
||||
day: '日',
|
||||
hour: '时',
|
||||
minute: '分',
|
||||
second: '秒'
|
||||
|
||||
},
|
||||
alarm: {
|
||||
sift: '筛选',
|
||||
device: '所属设备',
|
||||
placeSelect: '请选择',
|
||||
event: '事件',
|
||||
level: '告警等级',
|
||||
timeRange: '时间范围',
|
||||
placeholderDate: '请选择时间范围',
|
||||
reset: '重置',
|
||||
sure: '确认',
|
||||
noData: '数据为空',
|
||||
confirm: '已确认',
|
||||
noConfirmed: '未确认',
|
||||
alarmTypeList: [{
|
||||
name: '实时告警'
|
||||
},
|
||||
{
|
||||
name: '历史告警'
|
||||
}
|
||||
],
|
||||
// realTimeAlarm: '实时告警',
|
||||
// HistoryAlarm: '历史告警',
|
||||
loadText: {
|
||||
loadmore: '轻轻上拉',
|
||||
loading: '努力加载中',
|
||||
nomore: '实在没有了',
|
||||
},
|
||||
allStation: '所有电站',
|
||||
alarm: '告警',
|
||||
noDevice: '暂无设备数据',
|
||||
placeholderInput: '请输入告警内容',
|
||||
status: '状态',
|
||||
station: '所属电站',
|
||||
alarmTime: '告警时间',
|
||||
confirmer: '确认人',
|
||||
confirmTime: '确认时间',
|
||||
|
||||
},
|
||||
policy: {
|
||||
planCurve: '计划曲线',
|
||||
planCurveTem: '计划曲线模板',
|
||||
IssueDevice: '命令下发设备',
|
||||
operateOrNot: '是否投运',
|
||||
socUplimit: 'SOC上限',
|
||||
socDownlimit: 'SOC下限',
|
||||
effectiveTime: '生效时间',
|
||||
selectEffectiveTime: '请选择生效时间',
|
||||
distributeResult: '下发结果',
|
||||
notDelivered: '未下发',
|
||||
commandDistribution: '命令下发',
|
||||
controlDistribution: '控制下发',
|
||||
genSetting: '通用设置',
|
||||
save: '保存',
|
||||
pleaseInputValue: '请输入值',
|
||||
pleaseInputPassword: '请输入密码',
|
||||
password: '密码',
|
||||
policyTypeList: [{
|
||||
name: '命令下发'
|
||||
},
|
||||
{
|
||||
name: '通用设置'
|
||||
}
|
||||
],
|
||||
radioList: [{
|
||||
name: "投运",
|
||||
disabled: false,
|
||||
},
|
||||
{
|
||||
name: "不投运",
|
||||
disabled: false,
|
||||
},
|
||||
],
|
||||
|
||||
selectIssueDevice: '请选择命令下发设备',
|
||||
deliverErrorNewTip: '映射关系配置错误或未配置,请确认后重试!',
|
||||
passwordSuccess: '密码正确',
|
||||
passwordError: '密码错误',
|
||||
isOpen: '是否开启',
|
||||
isClose: '是否关闭',
|
||||
distributeSuccess: '下发成功',
|
||||
distributeFail: '下发失败',
|
||||
isNum: '请检查输入的值是否为数字',
|
||||
saveSuccess: '保存成功',
|
||||
saveError: '保存失败',
|
||||
delivered: '已下发',
|
||||
selectPlanCurveTem: '请选择计划曲线模板',
|
||||
deliverErrorTip: '充放电功率大于额定功率,请确认计划曲线设置!',
|
||||
deliverTip: '是否确定下发命令?',
|
||||
|
||||
}
|
||||
};
|
||||
@ -1,63 +0,0 @@
|
||||
import homePage from './homePage/zh'
|
||||
export default {
|
||||
homePage,
|
||||
common: {
|
||||
title: 'Aidex',
|
||||
},
|
||||
nav: {
|
||||
home: '首页',
|
||||
run:"运行",
|
||||
energyStorage: '储能',
|
||||
user: '我的',
|
||||
},
|
||||
login: {
|
||||
title: '登录',
|
||||
account:"账号",
|
||||
placeholderAccount: '请输入账号',
|
||||
pwd:"密码",
|
||||
placeholderPassword: '请输入密码',
|
||||
code:"验证码",
|
||||
codeTip:"请输入验证码",
|
||||
autoLogin: '自动登录',
|
||||
loginButton: '登录',
|
||||
logoutButton: '退出登录',
|
||||
forget: '忘记密码',
|
||||
reg: '注册账号',
|
||||
noLogin: '未登录',
|
||||
privacyPolicy:"隐私政策",
|
||||
userAgreement:"用户协议",
|
||||
codeLoading:"正在获取验证码",
|
||||
noStation:"无电站",
|
||||
noFunction:"功能暂未开放",
|
||||
lang:'ZH'
|
||||
},
|
||||
home: {
|
||||
title: '消息'
|
||||
},
|
||||
workbench: {
|
||||
title: '工作台'
|
||||
},
|
||||
user: {
|
||||
title: '用户中心',
|
||||
privacyPolicy:"隐私政策",
|
||||
userAgreement:"用户协议",
|
||||
edition:"版本",
|
||||
language:"语言",
|
||||
loginOut:"退出登录",
|
||||
chinese:"中文",
|
||||
english:"英文",
|
||||
german:'德语',
|
||||
italian:'意大利语',
|
||||
spanish:'西班牙语',
|
||||
changeSuccess:"切换成功",
|
||||
languageChange:"语言切换",
|
||||
privacy:"隐私政策",
|
||||
agreement:"用户协议",
|
||||
},
|
||||
msg: {
|
||||
title: '消息'
|
||||
},
|
||||
tips:{
|
||||
noData:"暂无数据"
|
||||
}
|
||||
}
|
||||
15
main.js
@ -6,7 +6,7 @@ Vue.config.productionTip = false
|
||||
|
||||
App.mpType = 'app'
|
||||
// 引入全局 uView 框架
|
||||
import uView from 'uview-ui'
|
||||
import uView from './uview-ui'
|
||||
Vue.use(uView)
|
||||
|
||||
|
||||
@ -18,7 +18,7 @@ let vuexStore = require('@/store/$u.mixin.js')
|
||||
Vue.mixin(vuexStore)
|
||||
|
||||
// 引入 uView 对小程序分享的 mixin 封装
|
||||
let mpShare = require('uview-ui/libs/mixin/mpShare.js')
|
||||
let mpShare = require('./uview-ui/libs/mixin/mpShare.js')
|
||||
Vue.mixin(mpShare)
|
||||
|
||||
// Vue i18n 国际化
|
||||
@ -28,7 +28,11 @@ Vue.use(VueI18n)
|
||||
// i18n 部分的配置,引入语言包,注意路径
|
||||
import lang_zh from '@/common/locales/zh_CN.js'
|
||||
import lang_en from '@/common/locales/en_EN.js'
|
||||
|
||||
import lang_fr from '@/common/locales/fr_FR.js'
|
||||
import lang_es from '@/common/locales/es_ES.js'
|
||||
import lang_ar from '@/common/locales/ar_EG.js'
|
||||
import lang_de from '@/common/locales/de_DE.js'
|
||||
import lang_pl from '@/common/locales/pl_PL.js'
|
||||
const i18n = new VueI18n({
|
||||
// 默认语言
|
||||
locale: store.state.vuex_language,
|
||||
@ -36,6 +40,11 @@ const i18n = new VueI18n({
|
||||
messages: {
|
||||
'zh_CN': lang_zh,
|
||||
'en_US': lang_en,
|
||||
'fr_FR': lang_fr, // 新增:法语
|
||||
'es_ES': lang_es, // 新增:西班牙语
|
||||
'ar_EG': lang_ar, // 新增:阿拉伯语
|
||||
'de_DE': lang_de, // 新增:德语
|
||||
'pl_PL': lang_pl // 新增:波兰语
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
@ -1,17 +1,22 @@
|
||||
{
|
||||
"name" : "StoraSmart",
|
||||
"name" : "Zeta Cloud",
|
||||
"appid" : "__UNI__86592F3",
|
||||
"description" : "Zetatech",
|
||||
"versionName" : "2.0.0",
|
||||
"versionCode" : 200,
|
||||
"versionName" : "2.0.16",
|
||||
"versionCode" : 221,
|
||||
"transformPx" : false,
|
||||
"sassImplementationName" : "node-sass",
|
||||
"app-plus" : {
|
||||
"compatible" : {
|
||||
"ignoreVersion" : true //true表示忽略版本检查提示框,HBuilderX1.9.0及以上版本支持
|
||||
},
|
||||
// APP-VUE分包,可提APP升启动速度,2.7.12开始支持,兼容微信小程序分包方案,默认关闭
|
||||
"optimization" : {
|
||||
"subPackages" : true
|
||||
},
|
||||
"safearea" : {
|
||||
"bottom" : {
|
||||
"bottom" : "auto",
|
||||
"offset" : "none"
|
||||
}
|
||||
},
|
||||
@ -28,7 +33,14 @@
|
||||
"distribute" : {
|
||||
"android" : {
|
||||
"permissions" : [],
|
||||
"abiFilters" : [ "armeabi-v7a", "arm64-v8a" ]
|
||||
"useAutoPermissions" : false,
|
||||
"minSdkVersion" : 32,
|
||||
"targetSdkVersion" : 36,
|
||||
"abiFilters" : [ "armeabi-v7a", "arm64-v8a" ],
|
||||
"excludePermissions" : [
|
||||
"<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\" />",
|
||||
"<uses-permission android:name=\"android.permission.READ_MEDIA_VIDEO\" />"
|
||||
]
|
||||
},
|
||||
"ios" : {
|
||||
"dSYMs" : false
|
||||
@ -50,33 +62,33 @@
|
||||
},
|
||||
"icons" : {
|
||||
"android" : {
|
||||
"hdpi" : "C:/Users/46254/Desktop/mipmap-hdpi/组 7 拷贝 4.png",
|
||||
"xhdpi" : "C:/Users/46254/Desktop/mipmap-xhdpi/组 7 拷贝 4.png",
|
||||
"xxhdpi" : "C:/Users/46254/Desktop/mipmap-xxhdpi/组 7 拷贝 4.png",
|
||||
"xxxhdpi" : "C:/Users/46254/Desktop/mipmap-xxxhdpi/组 7 拷贝 4.png"
|
||||
"hdpi" : "unpackage/res/icons/72x72.png",
|
||||
"xhdpi" : "unpackage/res/icons/96x96.png",
|
||||
"xxhdpi" : "unpackage/res/icons/144x144.png",
|
||||
"xxxhdpi" : "unpackage/res/icons/192x192.png"
|
||||
},
|
||||
"ios" : {
|
||||
"appstore" : "C:/Users/46254/Desktop/mipmap-xhdpi/组 7 拷贝.png",
|
||||
"appstore" : "unpackage/res/icons/1024x1024.png",
|
||||
"ipad" : {
|
||||
"app" : "C:/Users/46254/Desktop/mipmap-hdpi/组 7 拷贝 4.png",
|
||||
"app@2x" : "C:/Users/46254/Desktop/mipmap-xhdpi/组 7 拷贝 3.png",
|
||||
"notification" : "C:/Users/46254/Desktop/mipmap-mdpi/组 7 拷贝 11.png",
|
||||
"notification@2x" : "C:/Users/46254/Desktop/mipmap-mdpi/组 7 拷贝 9.png",
|
||||
"proapp@2x" : "C:/Users/46254/Desktop/mipmap-xxxhdpi/组 7 拷贝 9.png",
|
||||
"settings" : "C:/Users/46254/Desktop/mipmap-mdpi/组 7 拷贝 10.png",
|
||||
"settings@2x" : "C:/Users/46254/Desktop/mipmap-xhdpi/组 7 拷贝 10.png",
|
||||
"spotlight" : "C:/Users/46254/Desktop/mipmap-mdpi/组 7 拷贝 9.png",
|
||||
"spotlight@2x" : "C:/Users/46254/Desktop/mipmap-xxxhdpi/组 7 拷贝 11.png"
|
||||
"app" : "unpackage/res/icons/76x76.png",
|
||||
"app@2x" : "unpackage/res/icons/152x152.png",
|
||||
"notification" : "unpackage/res/icons/20x20.png",
|
||||
"notification@2x" : "unpackage/res/icons/40x40.png",
|
||||
"proapp@2x" : "unpackage/res/icons/167x167.png",
|
||||
"settings" : "unpackage/res/icons/29x29.png",
|
||||
"settings@2x" : "unpackage/res/icons/58x58.png",
|
||||
"spotlight" : "unpackage/res/icons/40x40.png",
|
||||
"spotlight@2x" : "unpackage/res/icons/80x80.png"
|
||||
},
|
||||
"iphone" : {
|
||||
"app@2x" : "C:/Users/46254/Desktop/mipmap-xhdpi/组 7 拷贝 8.png",
|
||||
"app@3x" : "C:/Users/46254/Desktop/mipmap-xxhdpi/组 7 拷贝 8.png",
|
||||
"notification@2x" : "C:/Users/46254/Desktop/mipmap-xhdpi/组 7 拷贝 11.png",
|
||||
"notification@3x" : "C:/Users/46254/Desktop/mipmap-xxhdpi/组 7 拷贝 11.png",
|
||||
"settings@2x" : "C:/Users/46254/Desktop/mipmap-xhdpi/组 7 拷贝 10.png",
|
||||
"settings@3x" : "C:/Users/46254/Desktop/mipmap-xxhdpi/组 7 拷贝 10.png",
|
||||
"spotlight@2x" : "C:/Users/46254/Desktop/mipmap-xxxhdpi/组 7 拷贝 11.png",
|
||||
"spotlight@3x" : "C:/Users/46254/Desktop/mipmap-xhdpi/组 7 拷贝 8.png"
|
||||
"app@2x" : "unpackage/res/icons/120x120.png",
|
||||
"app@3x" : "unpackage/res/icons/180x180.png",
|
||||
"notification@2x" : "unpackage/res/icons/40x40.png",
|
||||
"notification@3x" : "unpackage/res/icons/60x60.png",
|
||||
"settings@2x" : "unpackage/res/icons/58x58.png",
|
||||
"settings@3x" : "unpackage/res/icons/87x87.png",
|
||||
"spotlight@2x" : "unpackage/res/icons/80x80.png",
|
||||
"spotlight@3x" : "unpackage/res/icons/120x120.png"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -84,9 +96,9 @@
|
||||
"androidStyle" : "default",
|
||||
"androidTranslucent" : true,
|
||||
"android" : {
|
||||
"hdpi" : "",
|
||||
"xhdpi" : "",
|
||||
"xxhdpi" : ""
|
||||
"hdpi" : "D:/zzfiles/zz-Upload-APP/zetatech-app-logo/Android启动图片设置/480x762new.png",
|
||||
"xhdpi" : "D:/zzfiles/zz-Upload-APP/zetatech-app-logo/Android启动图片设置/720x1242new.png",
|
||||
"xxhdpi" : "D:/zzfiles/zz-Upload-APP/zetatech-app-logo/Android启动图片设置/1080x1882new.png"
|
||||
},
|
||||
"iosStyle" : "common",
|
||||
"ios" : {
|
||||
@ -140,6 +152,13 @@
|
||||
"enable" : false
|
||||
}
|
||||
},
|
||||
"title" : "uView UI"
|
||||
"title" : "uView UI",
|
||||
"devServer" : {
|
||||
"host" : "0.0.0.0",
|
||||
"port" : 8080,
|
||||
"useLocalIp" : true,
|
||||
"disableHostCheck" : true
|
||||
}
|
||||
},
|
||||
"locale" : "en"
|
||||
}
|
||||
|
||||
3196
package-lock.json
generated
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "honenery",
|
||||
"name": "zetatech",
|
||||
"version": "2.3.2",
|
||||
"description": "Honenery 移动端快速开发框架",
|
||||
"description": "Zetatech Mobile rapid development framework",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
@ -18,7 +18,10 @@
|
||||
"@dcloudio/uni-helper-json": "^1.0.13",
|
||||
"crypto-js": "^4.2.0",
|
||||
"image-tools": "^1.4.0",
|
||||
"jsencrypt": "^3.3.2"
|
||||
"jsencrypt": "^3.3.2",
|
||||
"mqtt": "^5.15.0",
|
||||
"paho-mqtt": "^1.1.0",
|
||||
"pako": "^2.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"compression-webpack-plugin": "^6.1.1",
|
||||
|
||||
23
pages.json
@ -74,7 +74,30 @@
|
||||
"navigationBarTitleText": "策略",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "earningSelect/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "收益分类",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "lights/index",
|
||||
"style" :
|
||||
{
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path" : "policy-Config/index",
|
||||
"style" :
|
||||
{
|
||||
"navigationBarTitleText" : "",
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
}
|
||||
|
||||
]
|
||||
},
|
||||
|
||||
|
||||
@ -112,7 +112,8 @@
|
||||
</u-popup>
|
||||
</view>
|
||||
<view class="subsection-alarm">
|
||||
<u-subsection :list="alarmTypeList" :current="currentType" :animation="true" @change="sectionChange" :active-color="'#009458'">
|
||||
<u-subsection :list="alarmTypeList" :current="currentType" :animation="true" @change="sectionChange"
|
||||
:active-color="'#009458'">
|
||||
</u-subsection>
|
||||
</view>
|
||||
|
||||
@ -227,7 +228,7 @@
|
||||
},
|
||||
language: {
|
||||
immediate: true,
|
||||
deep:true,
|
||||
deep: true,
|
||||
handler(val) {
|
||||
if (this.language === 'zh_CN') {
|
||||
this.alarmTypeList = [{
|
||||
@ -262,7 +263,7 @@
|
||||
},
|
||||
mounted() {},
|
||||
computed: {
|
||||
language(){
|
||||
language() {
|
||||
return this.vuex_language
|
||||
},
|
||||
currentStation() {
|
||||
|
||||
@ -70,7 +70,7 @@
|
||||
<view class="item-num">{{panelData.Ua | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.avol')}}(V)</view>
|
||||
<view class="item-title">{{$t('homePage.device.avol')}}(V)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -86,7 +86,7 @@
|
||||
<view class="item-num">{{ panelData.Ia | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.acur')}}(A)</view>
|
||||
<view class="item-title">{{$t('homePage.device.acur')}}(A)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -102,7 +102,7 @@
|
||||
<view class="item-num">{{panelData.Ub | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.bvol')}}(V)</view>
|
||||
<view class="item-title">{{$t('homePage.device.bvol')}}(V)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -118,7 +118,7 @@
|
||||
<view class="item-num">{{panelData.Ib | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.bcur')}}(A)</view>
|
||||
<view class="item-title">{{$t('homePage.device.bcur')}}(A)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -134,7 +134,7 @@
|
||||
<view class="item-num">{{ panelData.Uc | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.cvol')}}(V)</view>
|
||||
<view class="item-title">{{$t('homePage.device.cvol')}}(V)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -150,7 +150,7 @@
|
||||
<view class="item-num">{{panelData.Ic | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.ccur')}}(A)</view>
|
||||
<view class="item-title">{{$t('homePage.device.ccur')}}(A)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -166,7 +166,7 @@
|
||||
<view class="item-num">{{panelData.Uab | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.abLineVol')}}(V)</view>
|
||||
<view class="item-title">{{$t('homePage.device.abLineVol')}}(V)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -182,7 +182,7 @@
|
||||
<view class="item-num">{{ panelData.Ubc | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.bcLineVol')}}(V)</view>
|
||||
<view class="item-title">{{$t('homePage.device.bcLineVol')}}(V)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -217,7 +217,7 @@
|
||||
<view class="other-value">
|
||||
<view class="top-value">
|
||||
<view class="title">
|
||||
{{this.$t('homePage.device.zxygzdl')}}
|
||||
{{$t('homePage.device.zxygzdl')}}
|
||||
</view>
|
||||
<view class="zhexian-icon">
|
||||
<image src="/static/aidex/images/zhexian.png"></image>
|
||||
@ -228,18 +228,18 @@
|
||||
</view>
|
||||
<view class="bottom-value">
|
||||
<view>
|
||||
{{this.$t('homePage.device.dlj')}}:{{ panelData.forwardActE1 | isNull}}
|
||||
{{$t('homePage.device.dlj')}}:{{ panelData.forwardActE1 | isNull}}
|
||||
</view>
|
||||
|
||||
<view>
|
||||
{{this.$t('homePage.device.dlf')}}:{{ panelData.forwardActE2 | isNull}}
|
||||
{{$t('homePage.device.dlf')}}:{{ panelData.forwardActE2 | isNull}}
|
||||
</view>
|
||||
|
||||
<view>
|
||||
{{this.$t('homePage.device.dlp')}}:{{ panelData.forwardActE3 | isNull}}
|
||||
{{$t('homePage.device.dlp')}}:{{ panelData.forwardActE3 | isNull}}
|
||||
</view>
|
||||
<view>
|
||||
{{this.$t('homePage.device.dlg')}}:{{ panelData.forwardActE4 | isNull}}
|
||||
{{$t('homePage.device.dlg')}}:{{ panelData.forwardActE4 | isNull}}
|
||||
</view>
|
||||
|
||||
</view>
|
||||
@ -252,7 +252,7 @@
|
||||
<view class="other-value">
|
||||
<view class="top-value">
|
||||
<view class="title">
|
||||
{{this.$t('homePage.device.fxygzdl')}}
|
||||
{{$t('homePage.device.fxygzdl')}}
|
||||
</view>
|
||||
<view class="zhexian-icon">
|
||||
<image src="/static/aidex/images/zhexian.png"></image>
|
||||
@ -263,18 +263,18 @@
|
||||
</view>
|
||||
<view class="bottom-value">
|
||||
<view>
|
||||
{{this.$t('homePage.device.dlj')}}:{{ panelData.backwardActE1 | isNull}}
|
||||
{{$t('homePage.device.dlj')}}:{{ panelData.backwardActE1 | isNull}}
|
||||
</view>
|
||||
|
||||
<view>
|
||||
{{this.$t('homePage.device.dlf')}}:{{ panelData.backwardActE2 | isNull}}
|
||||
{{$t('homePage.device.dlf')}}:{{ panelData.backwardActE2 | isNull}}
|
||||
</view>
|
||||
|
||||
<view>
|
||||
{{this.$t('homePage.device.dlp')}}:{{ panelData.backwardActE3 | isNull}}
|
||||
{{$t('homePage.device.dlp')}}:{{ panelData.backwardActE3 | isNull}}
|
||||
</view>
|
||||
<view>
|
||||
{{this.$t('homePage.device.dlg')}}:{{ panelData.backwardActE4 | isNull}}
|
||||
{{$t('homePage.device.dlg')}}:{{ panelData.backwardActE4 | isNull}}
|
||||
</view>
|
||||
|
||||
</view>
|
||||
@ -288,7 +288,7 @@
|
||||
<view class="other-value">
|
||||
<view class="top-value">
|
||||
<view class="title">
|
||||
{{this.$t('homePage.device.hxyggl')}}
|
||||
{{$t('homePage.device.hxyggl')}}
|
||||
</view>
|
||||
<view class="zhexian-icon">
|
||||
<image src="/static/aidex/images/zhexian.png"></image>
|
||||
@ -299,15 +299,15 @@
|
||||
</view>
|
||||
<view class="bottom-value">
|
||||
<view>
|
||||
{{this.$t('homePage.device.a')}}:{{ panelData.activePowerA}}
|
||||
{{$t('homePage.device.a')}}:{{ panelData.activePowerA}}
|
||||
</view>
|
||||
|
||||
<view>
|
||||
{{this.$t('homePage.device.b')}}:{{ panelData.activePowerB}}
|
||||
{{$t('homePage.device.b')}}:{{ panelData.activePowerB}}
|
||||
</view>
|
||||
|
||||
<view>
|
||||
{{this.$t('homePage.device.c')}}:{{ panelData.activePowerC}}
|
||||
{{$t('homePage.device.c')}}:{{ panelData.activePowerC}}
|
||||
</view>
|
||||
|
||||
</view>
|
||||
@ -320,7 +320,7 @@
|
||||
<view class="other-value">
|
||||
<view class="top-value">
|
||||
<view class="title">
|
||||
{{this.$t('homePage.device.hxwggl')}}
|
||||
{{$t('homePage.device.hxwggl')}}
|
||||
</view>
|
||||
<view class="zhexian-icon">
|
||||
<image src="/static/aidex/images/zhexian.png"></image>
|
||||
@ -331,15 +331,15 @@
|
||||
</view>
|
||||
<view class="bottom-value">
|
||||
<view>
|
||||
{{this.$t('homePage.device.a')}}:{{ panelData.reactivePowerA}}
|
||||
{{$t('homePage.device.a')}}:{{ panelData.reactivePowerA}}
|
||||
</view>
|
||||
|
||||
<view>
|
||||
{{this.$t('homePage.device.b')}}:{{ panelData.reactivePowerB}}
|
||||
{{$t('homePage.device.b')}}:{{ panelData.reactivePowerB}}
|
||||
</view>
|
||||
|
||||
<view>
|
||||
{{this.$t('homePage.device.c')}}:{{ panelData.reactivePowerC}}
|
||||
{{$t('homePage.device.c')}}:{{ panelData.reactivePowerC}}
|
||||
</view>
|
||||
|
||||
</view>
|
||||
@ -352,7 +352,7 @@
|
||||
<view class="other-value">
|
||||
<view class="top-value">
|
||||
<view class="title">
|
||||
{{this.$t('homePage.device.hxglys')}}
|
||||
{{$t('homePage.device.hxglys')}}
|
||||
</view>
|
||||
<view class="zhexian-icon">
|
||||
<image src="/static/aidex/images/zhexian.png"></image>
|
||||
@ -363,15 +363,15 @@
|
||||
</view>
|
||||
<view class="bottom-value">
|
||||
<view>
|
||||
{{this.$t('homePage.device.a')}}:{{ panelData.PFactorA}}
|
||||
{{$t('homePage.device.a')}}:{{ panelData.PFactorA}}
|
||||
</view>
|
||||
|
||||
<view>
|
||||
{{this.$t('homePage.device.b')}}:{{ panelData.PFactorB}}
|
||||
{{$t('homePage.device.b')}}:{{ panelData.PFactorB}}
|
||||
</view>
|
||||
|
||||
<view>
|
||||
{{this.$t('homePage.device.c')}}:{{ panelData.PFactorC}}
|
||||
{{$t('homePage.device.c')}}:{{ panelData.PFactorC}}
|
||||
</view>
|
||||
|
||||
</view>
|
||||
@ -903,7 +903,19 @@
|
||||
}
|
||||
},
|
||||
color: ['#009458', '#f0c252', '#0f94da'],
|
||||
legend: {},
|
||||
legend: {
|
||||
type: 'scroll',
|
||||
orient: 'horizontal',
|
||||
icon: "rect",
|
||||
bottom: 0,
|
||||
left: 0,
|
||||
right: 0,
|
||||
itemWidth: 10,
|
||||
itemHeight: 10,
|
||||
textStyle: {
|
||||
fontSize: 10,
|
||||
}
|
||||
},
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
boundaryGap: false,
|
||||
@ -1085,7 +1097,19 @@
|
||||
}
|
||||
},
|
||||
color: ['#009458', '#f0c252', '#0f94da'],
|
||||
legend: {},
|
||||
legend: {
|
||||
type: 'scroll',
|
||||
orient: 'horizontal',
|
||||
icon: "rect",
|
||||
bottom: 0,
|
||||
left: 0,
|
||||
right: 0,
|
||||
itemWidth: 10,
|
||||
itemHeight: 10,
|
||||
textStyle: {
|
||||
fontSize: 10,
|
||||
}
|
||||
},
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
boundaryGap: false,
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
|
||||
</view>
|
||||
<view class="item-title">
|
||||
{{this.$t('homePage.device.cumCharge')}}({{ totalPanelData.cTotalChargePower | kwhUnitFormat }})
|
||||
{{$t('homePage.device.cumCharge')}}({{ totalPanelData.cTotalChargePower | kwhUnitFormat }})
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -50,7 +50,7 @@
|
||||
|
||||
</view>
|
||||
<view class="item-title">
|
||||
{{this.$t('homePage.device.cumDischarge'),}}({{ totalPanelData.cTotalDisChargePower | kwhUnitFormat }})
|
||||
{{$t('homePage.device.cumDischarge'),}}({{ totalPanelData.cTotalDisChargePower | kwhUnitFormat }})
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -66,11 +66,11 @@
|
||||
<view class="item-num">{{totalPanelData.cageT | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.avgTem')}}(℃)</view>
|
||||
<view class="item-title">{{$t('homePage.device.avgTem')}}(℃)</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="group-item "
|
||||
@click="showHistory(this.$t('homePage.device.avgVol'), 'csingleAgeV', 'bms','V','')">
|
||||
@click="showHistory($t('homePage.device.avgVol'), 'csingleAgeV', 'bms','V','')">
|
||||
<view class="history-icon">
|
||||
<image src="/static/aidex/images/history-icon.png"></image>
|
||||
</view>
|
||||
@ -81,7 +81,7 @@
|
||||
<view class="item-num">{{ totalPanelData.csingleAgeV | isNull }}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.avgVol')}}(V)</view>
|
||||
<view class="item-title">{{$t('homePage.device.avgVol')}}(V)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -129,7 +129,7 @@
|
||||
<view class="item-num">{{panelData.csingleMaxVolData | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.maxCellVol')}}(V)</view>
|
||||
<view class="item-title">{{$t('homePage.device.maxCellVol')}}(V)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -145,7 +145,7 @@
|
||||
<view class="item-num">{{panelData.csingleMinVolData | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.minCellVol')}}(V)</view>
|
||||
<view class="item-title">{{$t('homePage.device.minCellVol')}}(V)</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="group-item "
|
||||
@ -158,7 +158,7 @@
|
||||
</view>
|
||||
<view class="item-con">
|
||||
<view class="item-num">{{panelData.csingleMaxTemData | isNull}}</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.maxCellTem')}}(℃)</view>
|
||||
<view class="item-title">{{$t('homePage.device.maxCellTem')}}(℃)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -174,7 +174,7 @@
|
||||
<view class="item-num">{{panelData.csingleMinTemData | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.minCellTem')}}(℃)</view>
|
||||
<view class="item-title">{{$t('homePage.device.minCellTem')}}(℃)</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -188,7 +188,7 @@
|
||||
<view class="other-value">
|
||||
<view class="top-value">
|
||||
<view class="title">
|
||||
{{this.$t('homePage.device.maxvolDiff')}}
|
||||
{{$t('homePage.device.maxvolDiff')}}
|
||||
</view>
|
||||
<view class="zhexian-icon">
|
||||
<image src="/static/aidex/images/zhexian.png"></image>
|
||||
@ -198,7 +198,7 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-value">
|
||||
{{this.$t('homePage.device.avgVol')}}:{{totalPanelData.csingleAgeV | isNull}}V
|
||||
{{$t('homePage.device.avgVol')}}:{{totalPanelData.csingleAgeV | isNull}}V
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -209,7 +209,7 @@
|
||||
<view class="other-value">
|
||||
<view class="top-value">
|
||||
<view class="title">
|
||||
{{this.$t('homePage.device.maxTemDiff')}}
|
||||
{{$t('homePage.device.maxTemDiff')}}
|
||||
</view>
|
||||
<view class="zhexian-icon">
|
||||
<image src="/static/aidex/images/zhexian.png"></image>
|
||||
@ -219,7 +219,7 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-value">
|
||||
{{this.$t('homePage.device.avgTem')}}:{{totalPanelData.cageT | isNull}}℃
|
||||
{{$t('homePage.device.avgTem')}}:{{totalPanelData.cageT | isNull}}℃
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -230,7 +230,7 @@
|
||||
<view class="other-value">
|
||||
<view class="top-value">
|
||||
<view class="title">
|
||||
{{this.$t('homePage.device.maxCellVol')}}
|
||||
{{$t('homePage.device.maxCellVol')}}
|
||||
</view>
|
||||
<view class="zhexian-icon">
|
||||
<image src="/static/aidex/images/zhexian.png"></image>
|
||||
@ -243,11 +243,11 @@
|
||||
|
||||
|
||||
<view>
|
||||
{{this.$t('homePage.device.batteryGroupNum')}}:{{panelData.csingleMaxVolBMUNum | isNull}}
|
||||
{{$t('homePage.device.batteryGroupNum')}}:{{panelData.csingleMaxVolBMUNum | isNull}}
|
||||
</view>
|
||||
|
||||
<view>
|
||||
{{this.$t('homePage.device.cellPostion')}}:{{panelData.csingleMaxVolBoxNum | isNull}}
|
||||
{{$t('homePage.device.cellPostion')}}:{{panelData.csingleMaxVolBoxNum | isNull}}
|
||||
</view>
|
||||
|
||||
</view>
|
||||
@ -261,7 +261,7 @@
|
||||
<view class="other-value">
|
||||
<view class="top-value">
|
||||
<view class="title">
|
||||
{{this.$t('homePage.device.minCellVol')}}
|
||||
{{$t('homePage.device.minCellVol')}}
|
||||
</view>
|
||||
<view class="zhexian-icon">
|
||||
<image src="/static/aidex/images/zhexian.png"></image>
|
||||
@ -274,11 +274,11 @@
|
||||
|
||||
|
||||
<view>
|
||||
{{this.$t('homePage.device.batteryGroupNum')}}:{{panelData.csingleMinVolBMUNum | isNull}}
|
||||
{{$t('homePage.device.batteryGroupNum')}}:{{panelData.csingleMinVolBMUNum | isNull}}
|
||||
</view>
|
||||
|
||||
<view>
|
||||
{{this.$t('homePage.device.cellPostion')}}:{{panelData.csingleMinVolBoxNum | isNull}}
|
||||
{{$t('homePage.device.cellPostion')}}:{{panelData.csingleMinVolBoxNum | isNull}}
|
||||
</view>
|
||||
|
||||
</view>
|
||||
@ -291,7 +291,7 @@
|
||||
<view class="other-value">
|
||||
<view class="top-value">
|
||||
<view class="title">
|
||||
{{this.$t('homePage.device.maxCellTem')}}
|
||||
{{$t('homePage.device.maxCellTem')}}
|
||||
</view>
|
||||
<view class="zhexian-icon">
|
||||
<image src="/static/aidex/images/zhexian.png"></image>
|
||||
@ -304,11 +304,11 @@
|
||||
|
||||
|
||||
<view>
|
||||
{{ this.$t('homePage.device.batteryGroupNum') }}:{{panelData.csingleMaxTemBMUNum | isNull}}
|
||||
{{ $t('homePage.device.batteryGroupNum') }}:{{panelData.csingleMaxTemBMUNum | isNull}}
|
||||
</view>
|
||||
|
||||
<view>
|
||||
{{ this.$t('homePage.device.cellPostion') }}:{{panelData.csingleMaxTemBoxNum | isNull}}
|
||||
{{ $t('homePage.device.cellPostion') }}:{{panelData.csingleMaxTemBoxNum | isNull}}
|
||||
</view>
|
||||
|
||||
</view>
|
||||
@ -317,11 +317,11 @@
|
||||
</view>
|
||||
|
||||
<view class="group-box padding-top-30 "
|
||||
@click="showHistory(this.$t('homePage.device.minCellTem'), 'csingleMinTemData', 'bms','℃','')">
|
||||
@click="showHistory($t('homePage.device.minCellTem'), 'csingleMinTemData', 'bms','℃','')">
|
||||
<view class="other-value">
|
||||
<view class="top-value">
|
||||
<view class="title">
|
||||
{{this.$t('homePage.device.minCellTem')}}
|
||||
{{$t('homePage.device.minCellTem')}}
|
||||
</view>
|
||||
<view class="zhexian-icon">
|
||||
<image src="/static/aidex/images/zhexian.png"></image>
|
||||
@ -332,11 +332,11 @@
|
||||
</view>
|
||||
<view class="bottom-value">
|
||||
<view>
|
||||
{{ this.$t('homePage.device.batteryGroupNum') }}:{{panelData.csingleMinTemBMUNum | isNull}}
|
||||
{{ $t('homePage.device.batteryGroupNum') }}:{{panelData.csingleMinTemBMUNum | isNull}}
|
||||
</view>
|
||||
|
||||
<view>
|
||||
{{ this.$t('homePage.device.cellPostion') }}:{{panelData.csingleMinTemBoxNum | isNull}}
|
||||
{{ $t('homePage.device.cellPostion') }}:{{panelData.csingleMinTemBoxNum | isNull}}
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
@ -15,9 +15,9 @@
|
||||
<view class="item-con">
|
||||
<view class="item-num"
|
||||
:class="panelData.EMURingMainCabinetSwitchClosed ? 'success' : 'warning'">
|
||||
{{panelData.EMURingMainCabinetSwitchClosed ? this.$t('homePage.device.on') : this.$t('homePage.device.off')}}
|
||||
{{panelData.EMURingMainCabinetSwitchClosed ? $t('homePage.device.on') : $t('homePage.device.off')}}
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.emuSwitchPosition')}}</view>
|
||||
<view class="item-title">{{$t('homePage.device.emuSwitchPosition')}}</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -28,9 +28,9 @@
|
||||
<view class="item-con">
|
||||
<view class="item-num"
|
||||
:class="panelData.EMURemoteNetworkCabinet ? 'success' : 'warning'">
|
||||
{{panelData.EMURemoteNetworkCabinet ? this.$t('homePage.device.distance') : this.$t('homePage.device.local')}}
|
||||
{{panelData.EMURemoteNetworkCabinet ? $t('homePage.device.distance') : $t('homePage.device.local')}}
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.emuRemoteOperation')}}</view>
|
||||
<view class="item-title">{{$t('homePage.device.emuRemoteOperation')}}</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -42,7 +42,7 @@
|
||||
<view class="item-con">
|
||||
<view class="item-num"
|
||||
:class="panelData.EMUCabinetSwitchClosingPosition ? 'success' : 'warning'">
|
||||
{{panelData.EMUCabinetSwitchClosingPosition ? this.$t('homePage.device.on') : $t('homePage.device.off')}}
|
||||
{{panelData.EMUCabinetSwitchClosingPosition ? $t('homePage.device.on') : $t('homePage.device.off')}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">并网柜地刀位置</view>
|
||||
@ -56,9 +56,9 @@
|
||||
<view class="item-con">
|
||||
<view class="item-num"
|
||||
:class="panelData.EMURingMainCabinetSwitchClosed ? 'success' : 'warning'">
|
||||
{{panelData.EMURingMainCabinetSwitchClosed ? this.$t('homePage.device.online') : this.$t('homePage.device.offline')}}
|
||||
{{panelData.EMURingMainCabinetSwitchClosed ? $t('homePage.device.online') : $t('homePage.device.offline')}}
|
||||
</view>
|
||||
<view class="item-title">{{ this.$t('homePage.device.runState') }}</view>
|
||||
<view class="item-title">{{ $t('homePage.device.runState') }}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -79,7 +79,7 @@
|
||||
<view class="item-num">{{panelData.EMUBoxPhaseATemperature | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.aTem')}}(℃)</view>
|
||||
<view class="item-title">{{$t('homePage.device.aTem')}}(℃)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -92,7 +92,7 @@
|
||||
<view class="item-num">{{panelData.EMUBoxPhaseBTemperature | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.bTem')}}(℃)</view>
|
||||
<view class="item-title">{{$t('homePage.device.bTem')}}(℃)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -105,7 +105,7 @@
|
||||
<view class="item-num">{{panelData.EMUBoxPhaseCTemperature | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.cTem')}}(℃)</view>
|
||||
<view class="item-title">{{$t('homePage.device.cTem')}}(℃)</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="group-item">
|
||||
@ -116,9 +116,9 @@
|
||||
<view class="item-con">
|
||||
<view class="item-num"
|
||||
:class="panelData.EMUDeviceOnlineStatus ? 'success' : 'warning'">
|
||||
{{panelData.EMUDeviceOnlineStatus ? this.$t('homePage.device.online') : this.$t('homePage.device.offline')}}
|
||||
{{panelData.EMUDeviceOnlineStatus ? $t('homePage.device.online') : $t('homePage.device.offline')}}
|
||||
</view>
|
||||
<view class="item-title">{{ this.$t('homePage.device.runState') }}</view>
|
||||
<view class="item-title">{{ $t('homePage.device.runState') }}</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -142,7 +142,7 @@
|
||||
<view class="item-num">{{panelData.EMUDehumidifier1Temperature | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{ this.$t('homePage.device.tem') }}(℃)</view>
|
||||
<view class="item-title">{{ $t('homePage.device.tem') }}(℃)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -155,7 +155,7 @@
|
||||
<view class="item-num">{{panelData.EMUDehumidifier1Humidity | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{ this.$t('homePage.device.hum') }}(%)</view>
|
||||
<view class="item-title">{{ $t('homePage.device.hum') }}(%)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -168,7 +168,7 @@
|
||||
<view class="item-num">{{panelData.EMUDehumidifier1HumidityStartValue | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{ this.$t('homePage.device.humStartValue') }}(%)</view>
|
||||
<view class="item-title">{{ $t('homePage.device.humStartValue') }}(%)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -181,7 +181,7 @@
|
||||
<view class="item-num">{{panelData.EMUDehumidifier1HumidityStopValue | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{ this.$t('homePage.device.humStopValue') }}(%)</view>
|
||||
<view class="item-title">{{ $t('homePage.device.humStopValue') }}(%)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -193,9 +193,9 @@
|
||||
<view class="item-con">
|
||||
<view class="item-num"
|
||||
:class="panelData.EMUDeviceOnlineStatus ? 'success' : 'warning'">
|
||||
{{panelData.EMUDeviceOnlineStatus ? this.$t('homePage.device.online') : this.$t('homePage.device.offline')}}
|
||||
{{panelData.EMUDeviceOnlineStatus ? $t('homePage.device.online') : $t('homePage.device.offline')}}
|
||||
</view>
|
||||
<view class="item-title">{{ this.$t('homePage.device.runState') }}</view>
|
||||
<view class="item-title">{{ $t('homePage.device.runState') }}</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -218,7 +218,7 @@
|
||||
<view class="item-num">{{panelData.EMUPhaseVoltageUA | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.avol')}}(V)</view>
|
||||
<view class="item-title">{{$t('homePage.device.avol')}}(V)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -231,7 +231,7 @@
|
||||
<view class="item-num">{{panelData.EMUIA | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.acur')}}(A)</view>
|
||||
<view class="item-title">{{$t('homePage.device.acur')}}(A)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -244,7 +244,7 @@
|
||||
<view class="item-num">{{panelData.EMUPhaseVoltageUB | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.bvol')}}(V)</view>
|
||||
<view class="item-title">{{$t('homePage.device.bvol')}}(V)</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="group-item">
|
||||
@ -256,7 +256,7 @@
|
||||
<view class="item-num">{{panelData.EMUIB | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.bcur')}}(A)</view>
|
||||
<view class="item-title">{{$t('homePage.device.bcur')}}(A)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -269,7 +269,7 @@
|
||||
<view class="item-num">{{panelData.EMUPhaseVoltageUC | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.cvol')}}(V)</view>
|
||||
<view class="item-title">{{$t('homePage.device.cvol')}}(V)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -282,7 +282,7 @@
|
||||
<view class="item-num">{{panelData.EMUIC | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.ccur')}}(A)</view>
|
||||
<view class="item-title">{{$t('homePage.device.ccur')}}(A)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -295,7 +295,7 @@
|
||||
<view class="item-num">{{panelData.EMULineVoltageUAB | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.abLineVol')}}(V)</view>
|
||||
<view class="item-title">{{$t('homePage.device.abLineVol')}}(V)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -308,7 +308,7 @@
|
||||
<view class="item-num">{{panelData.EMULineVoltageUBC | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.bcLineVol')}}(V)</view>
|
||||
<view class="item-title">{{$t('homePage.device.bcLineVol')}}(V)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -321,7 +321,7 @@
|
||||
<view class="item-num">{{panelData.EMULineVoltageUAC | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.caLineVol')}}(V)</view>
|
||||
<view class="item-title">{{$t('homePage.device.caLineVol')}}(V)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -334,7 +334,7 @@
|
||||
<view class="item-num">{{panelData.EMUFrequency | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.frequency')}}(Hz)</view>
|
||||
<view class="item-title">{{$t('homePage.device.frequency')}}(Hz)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -348,7 +348,7 @@
|
||||
|
||||
</view>
|
||||
<view class="item-title">
|
||||
{{this.$t('homePage.device.zxygzdl')}}({{panelData.EMUAbsorbingActiveElectricalEnergy | kwhUnitFormat}})</view>
|
||||
{{$t('homePage.device.zxygzdl')}}({{panelData.EMUAbsorbingActiveElectricalEnergy | kwhUnitFormat}})</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -362,7 +362,7 @@
|
||||
|
||||
</view>
|
||||
<view class="item-title">
|
||||
{{this.$t('homePage.device.fxygzdl')}}({{panelData.EMUReleaseActiveElectricalEnergy | kwhUnitFormat}})</view>
|
||||
{{$t('homePage.device.fxygzdl')}}({{panelData.EMUReleaseActiveElectricalEnergy | kwhUnitFormat}})</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="group-item">
|
||||
@ -374,7 +374,7 @@
|
||||
<view class="item-num">{{panelData.EMUInductiveEnergy | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.perceptualPower')}}(kVarh)</view>
|
||||
<view class="item-title">{{$t('homePage.device.perceptualPower')}}(kVarh)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -387,7 +387,7 @@
|
||||
<view class="item-num">{{panelData.EMUCapacitiveEnergy | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.CapacitivePower')}}(kVarh)</view>
|
||||
<view class="item-title">{{$t('homePage.device.CapacitivePower')}}(kVarh)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -399,9 +399,9 @@
|
||||
<view class="item-con">
|
||||
<view class="item-num"
|
||||
:class="panelData.EMUOnlineStatusOfElectricityMeter ? 'success' : 'warning'">
|
||||
{{panelData.EMUOnlineStatusOfElectricityMeter ? this.$t('homePage.device.online') : this.$t('homePage.device.offline')}}
|
||||
{{panelData.EMUOnlineStatusOfElectricityMeter ? $t('homePage.device.online') : $t('homePage.device.offline')}}
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.runState')}}</view>
|
||||
<view class="item-title">{{$t('homePage.device.runState')}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -414,7 +414,7 @@
|
||||
<view class="other-value">
|
||||
<view class="top-value">
|
||||
<view class="title">
|
||||
{{ this.$t('homePage.device.totalActivePower')}}
|
||||
{{ $t('homePage.device.totalActivePower')}}
|
||||
</view>
|
||||
|
||||
<view class="value">
|
||||
@ -422,9 +422,9 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-value">
|
||||
<view>{{ this.$t('homePage.device.a')}}:{{panelData.EMUPA | isNull}}</view>
|
||||
<view>{{ this.$t('homePage.device.b')}}:{{panelData.EMUPB | isNull}}</view>
|
||||
<view>{{ this.$t('homePage.device.c')}}:{{panelData.EMUPC | isNull}}</view>
|
||||
<view>{{ $t('homePage.device.a')}}:{{panelData.EMUPA | isNull}}</view>
|
||||
<view>{{ $t('homePage.device.b')}}:{{panelData.EMUPB | isNull}}</view>
|
||||
<view>{{ $t('homePage.device.c')}}:{{panelData.EMUPC | isNull}}</view>
|
||||
|
||||
</view>
|
||||
|
||||
@ -436,7 +436,7 @@
|
||||
<view class="other-value">
|
||||
<view class="top-value">
|
||||
<view class="title">
|
||||
{{ this.$t('homePage.device.totalReactivePower')}}
|
||||
{{ $t('homePage.device.totalReactivePower')}}
|
||||
</view>
|
||||
|
||||
<view class="value">
|
||||
@ -444,9 +444,9 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-value">
|
||||
<view>{{ this.$t('homePage.device.a')}}:{{panelData.EMUQA | isNull}}</view>
|
||||
<view>{{ this.$t('homePage.device.b')}}:{{panelData.EMUQB | isNull}}</view>
|
||||
<view>{{ this.$t('homePage.device.c')}}:{{panelData.EMUQC | isNull}}</view>
|
||||
<view>{{ $t('homePage.device.a')}}:{{panelData.EMUQA | isNull}}</view>
|
||||
<view>{{ $t('homePage.device.b')}}:{{panelData.EMUQB | isNull}}</view>
|
||||
<view>{{ $t('homePage.device.c')}}:{{panelData.EMUQC | isNull}}</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
|
||||
686
pages/home-page/device-detail/components/mppt.vue
Normal file
@ -0,0 +1,686 @@
|
||||
<template>
|
||||
<view class="pcs-warp">
|
||||
<view class="box">
|
||||
<view class="topology-box">
|
||||
<Section :title="$t('homePage.home.mpptTopu')" />
|
||||
<topoCanvas cId="canvas" :width="'100%'" :height="'100%'" :canvas-data="canvasData" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="box">
|
||||
<Section :title="$t('homePage.home.powerGenerationCapacity')">
|
||||
<view slot="right" style="flex: 1">
|
||||
<view class="top-right-box">
|
||||
<span class="time">{{$t('homePage.device.timeGranularity')}}:</span>
|
||||
<span @click="openTimeAction" class="value">{{sampleTime}}</span>
|
||||
</view>
|
||||
</view>
|
||||
</Section>
|
||||
<view class="chart-box">
|
||||
<zero-loading v-if="chartLoading" position="absolute"></zero-loading>
|
||||
<charts v-else id="pcsChart" :options="curve_option"></charts>
|
||||
</view>
|
||||
</view>
|
||||
<historyModal :is-show.sync="histroyShow" :title="chartTitle" :params="hisParams" />
|
||||
<u-action-sheet :list="actionSheetList" v-model="timeShow" @click="actionSheetCallback" @close="closeTimeAction"
|
||||
:mask-close-able="false"></u-action-sheet>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import topoCanvas from '@/components/new-canvas/index.vue'
|
||||
import historyModal from '@/components/history-modal/index.vue'
|
||||
import Section from '@/components/section/index.vue'
|
||||
import charts from "@/components/charts/index";
|
||||
export default {
|
||||
components: {
|
||||
historyModal,
|
||||
Section,
|
||||
charts,
|
||||
topoCanvas
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
||||
curve_option: {},
|
||||
panelData: {},
|
||||
histroyShow: false,
|
||||
chartTitle: null,
|
||||
chartLoading: false,
|
||||
stationLoading: false,
|
||||
hisParams: {},
|
||||
timeShow: false,
|
||||
time: "1",
|
||||
stationId: null,
|
||||
srcId: null,
|
||||
hnStationId: [417, 398, 416, 415, 405, 485],
|
||||
actionSheetList: Object.values(this.$t('homePage.home.timesArr')),
|
||||
sampleTime:this.$t('homePage.home.timesArr')[0].text,
|
||||
canvasData: [],
|
||||
textCanvasData: [
|
||||
{
|
||||
type: "text",
|
||||
coord: [
|
||||
[144, 240]
|
||||
],
|
||||
font: [{
|
||||
text:this.$t('homePage.home.activePowerpcs'),
|
||||
size: 12,
|
||||
color: "#999",
|
||||
},
|
||||
{
|
||||
text: "",
|
||||
size: 12,
|
||||
color: "#000",
|
||||
offsetX: 0
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "text",
|
||||
coord: [
|
||||
[144, 260]
|
||||
],
|
||||
font: [{
|
||||
text:this.$t('homePage.home.highV') + ':',
|
||||
size: 12,
|
||||
color: "#999",
|
||||
},
|
||||
{
|
||||
text: "",
|
||||
size: 12,
|
||||
color: "#000",
|
||||
offsetX: 0
|
||||
},
|
||||
],
|
||||
},
|
||||
//2
|
||||
{
|
||||
type: "text",
|
||||
coord: [
|
||||
[144, 280]
|
||||
],
|
||||
font: [{
|
||||
text:this.$t('homePage.home.lowV') + ':',
|
||||
size: 12,
|
||||
color: "#999",
|
||||
},
|
||||
{
|
||||
text: "",
|
||||
size: 12,
|
||||
color: "#000",
|
||||
offsetX: 0
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
type: "text",
|
||||
coord: [
|
||||
[144, 300]
|
||||
],
|
||||
font: [{
|
||||
text:this.$t('homePage.home.lowI') + ':',
|
||||
size: 12,
|
||||
color: "#999",
|
||||
},
|
||||
{
|
||||
text: "",
|
||||
size: 12,
|
||||
color: "#000",
|
||||
offsetX: 0
|
||||
},
|
||||
],
|
||||
},
|
||||
//5
|
||||
{
|
||||
type: "text",
|
||||
coord: [
|
||||
[3, 120]
|
||||
],
|
||||
font: [{
|
||||
text: this.$t('homePage.device.gridMode') + ':',
|
||||
size: 14,
|
||||
color: "#999999",
|
||||
width: 50,
|
||||
},
|
||||
{
|
||||
text: "",
|
||||
size: 14,
|
||||
color: "#000",
|
||||
left: 80
|
||||
},
|
||||
],
|
||||
},
|
||||
//6
|
||||
{
|
||||
type: "text",
|
||||
coord: [
|
||||
[3, 140]
|
||||
],
|
||||
font: [{
|
||||
text: this.$t('homePage.device.runState') + ':',
|
||||
size: 14,
|
||||
color: "#999999",
|
||||
width: 50,
|
||||
},
|
||||
{
|
||||
text: "",
|
||||
size: 14,
|
||||
color: "#000",
|
||||
offsetX: 0
|
||||
},
|
||||
],
|
||||
}
|
||||
],
|
||||
imageCanvasData: [
|
||||
{
|
||||
//AC/DC
|
||||
type: "image",
|
||||
url: "/static/topology/DCDC.png",
|
||||
coord: [
|
||||
[155, 80],
|
||||
[30, 30],
|
||||
],
|
||||
},
|
||||
{
|
||||
//电池
|
||||
type: "image",
|
||||
url: "/static/topology/pv.png",
|
||||
coord: [
|
||||
[144, 180],
|
||||
[50, 50],
|
||||
],
|
||||
},
|
||||
],
|
||||
lineCanvasData: [{
|
||||
type: "line",
|
||||
coord: [
|
||||
[60, 30],
|
||||
[280, 30],
|
||||
],
|
||||
color: "#19875c",
|
||||
width: 2,
|
||||
},
|
||||
{
|
||||
type: "line",
|
||||
coord: [
|
||||
[170, 30],
|
||||
[170, 180],
|
||||
],
|
||||
color: "#19875c",
|
||||
width: 2,
|
||||
},
|
||||
]
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
currentStation() {
|
||||
return this.vuex_currentStation;
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
currentStation: {
|
||||
handler(val) {
|
||||
this.stationId = val.id;
|
||||
},
|
||||
deep: true,
|
||||
immediate: true,
|
||||
},
|
||||
|
||||
},
|
||||
|
||||
methods: {
|
||||
getData(srcId) {
|
||||
this.srcId = srcId
|
||||
this.getChart()
|
||||
this.getStatus()
|
||||
},
|
||||
getChart() {
|
||||
const self = this
|
||||
self.chartLoading = true;
|
||||
return new Promise((resolve, reject) => {
|
||||
self.$u.api.deviceList
|
||||
.GetPvCurve({
|
||||
stationId: this.stationId,
|
||||
sampleTime: this.time,
|
||||
srcId: this.srcId,
|
||||
})
|
||||
.then((res) => {
|
||||
self.chartLoading = false;
|
||||
self.initChargeChart(res.data);
|
||||
// this.getStatus();
|
||||
resolve(res);
|
||||
})
|
||||
.catch((err) => {
|
||||
reject("错误");
|
||||
})
|
||||
.finally(() => {
|
||||
self.chartLoading = false;
|
||||
});
|
||||
});
|
||||
|
||||
},
|
||||
initChargeChart(val) {
|
||||
const gonglv = [];
|
||||
// const soc = [];
|
||||
const xAxis = [];
|
||||
val.forEach((v) => {
|
||||
xAxis.push(v.data);
|
||||
gonglv.push(v.inCoreDataCurve);
|
||||
// soc.push(v.inCoreDataCurve);
|
||||
});
|
||||
this.curve_option = {
|
||||
color: ["#BFE49F"],
|
||||
animationDuration: 500,
|
||||
animationEasing: "cubicInOut",
|
||||
tooltip: {
|
||||
trigger: "axis",
|
||||
axisPointer: {},
|
||||
confine: true,
|
||||
textStyle: {
|
||||
textShadowBlur: 10, // 重点
|
||||
textShadowColor: 'transparent', // 重点
|
||||
},
|
||||
position: function(point, params, dom, rect, size) {
|
||||
// 鼠标坐标和提示框位置的参考坐标系是:以外层div的左上角那一点为原点,x轴向右,y轴向下
|
||||
// 提示框位置
|
||||
var x = 0; // x坐标位置
|
||||
var y = 0; // y坐标位置
|
||||
|
||||
// 当前鼠标位置
|
||||
var pointX = point[0];
|
||||
var pointY = point[1];
|
||||
|
||||
// 外层div大小
|
||||
// var viewWidth = size.viewSize[0];
|
||||
// var viewHeight = size.viewSize[1];
|
||||
|
||||
// 提示框大小
|
||||
var boxWidth = size.contentSize[0];
|
||||
var boxHeight = size.contentSize[1];
|
||||
|
||||
// boxWidth > pointX 说明鼠标左边放不下提示框
|
||||
if (boxWidth > pointX) {
|
||||
x = 5; // 自己定个x坐标值,以防出屏
|
||||
y -= 15; // 防止点被覆盖住,可根据情况自行调节
|
||||
} else {
|
||||
// 左边放的下
|
||||
x = pointX - boxWidth - 15;
|
||||
}
|
||||
|
||||
// boxHeight > pointY 说明鼠标上边放不下提示框
|
||||
if (boxHeight + 20 > pointY) {
|
||||
y = pointY + 15;
|
||||
} else if (boxHeight > pointY) {
|
||||
y = 5;
|
||||
} else {
|
||||
// 上边放得下
|
||||
y += pointY - boxHeight;
|
||||
}
|
||||
return [x, y];
|
||||
},
|
||||
},
|
||||
grid: {
|
||||
top: "15%",
|
||||
left: "5%",
|
||||
right: "3%",
|
||||
bottom: "10%",
|
||||
containLabel: true,
|
||||
},
|
||||
xAxis: {
|
||||
type: "category",
|
||||
data: xAxis,
|
||||
splitLine: {
|
||||
show: false,
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
color: "#A3A3A3",
|
||||
formatter: function(params) {
|
||||
let newParamsName = "";
|
||||
const paramsNameNumber = params.length; // 文字总长度
|
||||
const provideNumber = 11; //一行显示几个字
|
||||
const rowNumber = Math.ceil(paramsNameNumber / provideNumber);
|
||||
if (paramsNameNumber > provideNumber) {
|
||||
for (let p = 0; p < rowNumber; p++) {
|
||||
const start = p * provideNumber;
|
||||
const end = start + provideNumber;
|
||||
const tempStr =
|
||||
p === rowNumber - 1 ?
|
||||
params.substring(start, paramsNameNumber) :
|
||||
params.substring(start, end) + "\n";
|
||||
newParamsName += tempStr;
|
||||
}
|
||||
} else {
|
||||
newParamsName = params;
|
||||
}
|
||||
return newParamsName;
|
||||
},
|
||||
},
|
||||
},
|
||||
yAxis: [{
|
||||
type: "value",
|
||||
name: this.$t('homePage.home.powerGenerationCapacity') + "(kW)",
|
||||
axisLabel: {
|
||||
color: "#A3A3A3",
|
||||
},
|
||||
nameTextStyle: {
|
||||
color: "#A3A3A3",
|
||||
},
|
||||
min: function(value) {
|
||||
return Math.floor(
|
||||
(Math.abs(value.min) < value.max ?
|
||||
-value.max * 1.05 :
|
||||
value.min * 1.05
|
||||
).toFixed(2)
|
||||
);
|
||||
},
|
||||
max: function(value) {
|
||||
return Math.ceil(
|
||||
(Math.abs(value.min) < value.max ?
|
||||
value.max * 1.05 :
|
||||
-value.min * 1.05
|
||||
).toFixed(2)
|
||||
);
|
||||
},
|
||||
nameTextStyle: {
|
||||
fontSize: 12,
|
||||
padding: [0, 0, 0, 30],
|
||||
},
|
||||
}
|
||||
],
|
||||
dataZoom: {
|
||||
type: "inside",
|
||||
},
|
||||
series: [{
|
||||
name: this.$t('homePage.home.powerGenerationCapacity'),
|
||||
type: "line",
|
||||
smooth: true,
|
||||
symbol: "none",
|
||||
areaStyle: {
|
||||
opacity: 0,
|
||||
},
|
||||
data: gonglv,
|
||||
}
|
||||
],
|
||||
};
|
||||
},
|
||||
openTimeAction() {
|
||||
this.timeShow = true;
|
||||
},
|
||||
getStatus() {
|
||||
this.stationLoading = true
|
||||
const self = this;
|
||||
this.$u.api.deviceList
|
||||
.GetNewValue({
|
||||
stationId: this.stationId,
|
||||
srcId: this.srcId,
|
||||
colList: ["lowV", "highV", "lowI",
|
||||
"pvActivePower","runState","remoteInPlace",
|
||||
"onGrid","offGrid","stateCharging",
|
||||
"stateDischarging","deviceStateStand","deviceStateFault",
|
||||
"deviceStateFull","deviceStateEmpty","dcBreaker",
|
||||
"eStop","soc","grid",
|
||||
"outputPower",
|
||||
// "reactivePowerPCS",
|
||||
// ,,
|
||||
// "volA",
|
||||
// "volB",
|
||||
// "volC",
|
||||
// "currentA",
|
||||
// "currentB",
|
||||
// "currentC",
|
||||
// "dcPower",
|
||||
// "dcInputVol",
|
||||
// "dcCurrent",
|
||||
],
|
||||
})
|
||||
.then((res) => {
|
||||
const battery = self.updateBattery(res.data.soc?.value ? res.data.soc.value : 0);
|
||||
this.panelData = {
|
||||
lowV: res.data.lowV?.value ? res.data.lowV?.value : 0,
|
||||
highV: res.data.highV?.value ? res.data.highV?.value : 0,
|
||||
lowI: res.data.lowI?.value ? res.data.lowI?.value : 0,
|
||||
pvActivePower: res.data.pvActivePower?.value ? res.data.pvActivePower?.value : 0
|
||||
};
|
||||
this.textCanvasData[0].font[1].text = res.data.pvActivePower?.value ? res.data.pvActivePower.value + " kW" : 0 + " kW";
|
||||
this.textCanvasData[1].font[1].text = res.data.highV?.value ? res.data.highV.value + " V" : 0 + " V";
|
||||
this.textCanvasData[2].font[1].text = res.data.lowV?.value ? res.data.lowV.value + " V" : 0 + " V";
|
||||
this.textCanvasData[3].font[1].text = res.data.lowI?.value ? res.data.lowI.value + " A" : 0 + " A";
|
||||
this.textCanvasData[4].font[1].text = res.data.onGrid?.value ? this.$t('homePage.device.grid') : this.$t('homePage.device.offGrid');
|
||||
if(res.data.pvActivePower?.value){
|
||||
this.textCanvasData[5].font[1].text = this.getFlowDirection(res.data.pvActivePower?.value, res
|
||||
.data.runState?.value)
|
||||
}
|
||||
this.canvasData = [...this.textCanvasData, ...this.imageCanvasData, ...this.lineCanvasData]
|
||||
})
|
||||
.finally((res) => {
|
||||
this.stationLoading = false;
|
||||
});
|
||||
},
|
||||
updateBattery(value) {
|
||||
//电池电量 value 为0~100
|
||||
const batteryHeight = 0.35 * value;
|
||||
const battery = {
|
||||
type: "rect",
|
||||
background: "#19875c",
|
||||
coord: [
|
||||
[156, 285 - batteryHeight],
|
||||
[25.5, batteryHeight],
|
||||
],
|
||||
};
|
||||
return battery;
|
||||
},
|
||||
getRunState(value, value2) {
|
||||
if (value) {
|
||||
return this.$t('homePage.device.standby');
|
||||
} else if (value2) {
|
||||
return this.$t('homePage.device.fault');
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
},
|
||||
// 设备工作状态
|
||||
workStatus(val) {
|
||||
if (val === 0) {
|
||||
return this.$t('homePage.device.shutdown')
|
||||
} else if (val === 1) {
|
||||
return this.$t('homePage.device.run')
|
||||
} else if (val === 2) {
|
||||
return this.$t('homePage.device.standby')
|
||||
} else {
|
||||
return ''
|
||||
}
|
||||
},
|
||||
// 充放电状态
|
||||
getFlowDirection(val, flowDirection) {
|
||||
if (flowDirection === 2) {
|
||||
if (+val > +1) {
|
||||
return this.$t('homePage.device.discharge')
|
||||
}
|
||||
if (+val < -1) {
|
||||
return this.$t('homePage.device.charge')
|
||||
}
|
||||
if (val < 1 || +val.abs < 1 || !val) {
|
||||
return this.$t('homePage.device.standing')
|
||||
}
|
||||
} else {
|
||||
if (+val > +1) {
|
||||
return this.$t('homePage.device.charge')
|
||||
}
|
||||
if (+val < -1) {
|
||||
return this.$t('homePage.device.discharge')
|
||||
}
|
||||
if (val < 1 || +val.abs < 1 || !val) {
|
||||
return this.$t('homePage.device.standing')
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
// 电池信息
|
||||
updateBattery(value) {
|
||||
//电池电量 value 为0~100
|
||||
const batteryHeight = 0.35 * value;
|
||||
const battery = {
|
||||
type: "rect",
|
||||
background: "#19875c",
|
||||
coord: [
|
||||
[156, 285 - batteryHeight],
|
||||
[25.5, batteryHeight],
|
||||
],
|
||||
};
|
||||
|
||||
return battery;
|
||||
},
|
||||
// 历史曲线
|
||||
showHistory(name, modelCol, modelType, unit) {
|
||||
this.hisParams = {
|
||||
modelCol: modelCol,
|
||||
modelType: modelType,
|
||||
unit: unit
|
||||
}
|
||||
this.chartTitle = name
|
||||
this.histroyShow = true
|
||||
},
|
||||
actionSheetCallback(index) {
|
||||
this.sampleTime = this.actionSheetList[index].text;
|
||||
this.time = this.actionSheetList[index].value;
|
||||
this.getChart()
|
||||
},
|
||||
closeTimeAction() {
|
||||
this.timeShow = false;
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.pcs-warp {
|
||||
background-color: #f5f5f5;
|
||||
height: 100%;
|
||||
|
||||
.box {
|
||||
background: #ffffff;
|
||||
border-radius: 16rpx;
|
||||
padding: 20rpx;
|
||||
width: 100%;
|
||||
border: 16rpx;
|
||||
box-shadow: 0px 4rpx 16rpx rgba(0, 0, 0, 0.08);
|
||||
margin-bottom: 20rpx;
|
||||
position: relative;
|
||||
|
||||
.topology-box {
|
||||
width: 100%;
|
||||
height: 640rpx;
|
||||
position: relative;
|
||||
|
||||
|
||||
}
|
||||
|
||||
.top-right-box {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
flex: 1;
|
||||
|
||||
justify-content: flex-end;
|
||||
|
||||
.time {
|
||||
padding-right: 10rpx;
|
||||
display: inline-block;
|
||||
height: 40rpx;
|
||||
}
|
||||
|
||||
.value {
|
||||
background-color: #f5f5f5;
|
||||
border-radius: 8rpx;
|
||||
padding: 10rpx 20rpx 10rpx 20rpx;
|
||||
height: 40rpx;
|
||||
}
|
||||
|
||||
.top-right-item {
|
||||
padding: 5rpx 10rpx;
|
||||
border: 1rpx solid #4c9ee6;
|
||||
font-size: 24rpx;
|
||||
color: #4c9ee6;
|
||||
cursor: pointer;
|
||||
margin-right: 10rpx;
|
||||
border-radius: 8rpx;
|
||||
|
||||
&.active {
|
||||
background: #4c9ee6;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.chart-box {
|
||||
width: 650rpx;
|
||||
height: 460rpx;
|
||||
margin-top: 20rpx;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.group-box {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
position: relative;
|
||||
|
||||
.group-item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
width: 199rpx;
|
||||
|
||||
justify-content: center;
|
||||
background: #d7e9e548;
|
||||
border-radius: 10rpx;
|
||||
margin: 10rpx 10rpx;
|
||||
position: relative;
|
||||
padding: 10rpx 0;
|
||||
|
||||
.history-icon {
|
||||
position: absolute;
|
||||
right: 0rpx;
|
||||
top: 0rpx;
|
||||
|
||||
}
|
||||
|
||||
image {
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
}
|
||||
|
||||
.item-con {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
// margin-left: 15rpx;
|
||||
width: 100%;
|
||||
|
||||
.item-title {
|
||||
width: 100%;
|
||||
font-size: 24rpx;
|
||||
color: #2a2a2a;
|
||||
margin-top: 10rpx;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.item-num {
|
||||
font-size: 36rpx;
|
||||
color: #282828;
|
||||
font-weight: bold;
|
||||
max-width: 90%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.item-unit {
|
||||
color: #cccccc;
|
||||
font-size: 16rpx;
|
||||
padding-left: 10rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -36,14 +36,14 @@
|
||||
<view class="other-value">
|
||||
<view class="top-value">
|
||||
<view class="title">
|
||||
{{ this.$t('homePage.device.maxVol') }}
|
||||
{{ $t('homePage.device.maxVol') }}
|
||||
</view>
|
||||
<view class="value">
|
||||
{{panelData.csingleMaxVolData | isNull}}V
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-value">
|
||||
{{ this.$t('homePage.device.cellPostion') }}:{{panelData.csingleMaxVolPosition | isNull}}
|
||||
{{ $t('homePage.device.cellPostion') }}:{{panelData.csingleMaxVolPosition | isNull}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -52,14 +52,14 @@
|
||||
<view class="other-value">
|
||||
<view class="top-value">
|
||||
<view class="title">
|
||||
{{ this.$t('homePage.device.minVol') }}
|
||||
{{ $t('homePage.device.minVol') }}
|
||||
</view>
|
||||
<view class="value">
|
||||
{{panelData.csingleMinVolData | isNull}}V
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-value">
|
||||
{{ this.$t('homePage.device.cellPostion') }}:{{panelData.csingleMinVolPosition | isNull}}
|
||||
{{ $t('homePage.device.cellPostion') }}:{{panelData.csingleMinVolPosition | isNull}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -68,14 +68,14 @@
|
||||
<view class="other-value">
|
||||
<view class="top-value">
|
||||
<view class="title">
|
||||
{{ this.$t('homePage.device.maxTem') }}
|
||||
{{ $t('homePage.device.maxTem') }}
|
||||
</view>
|
||||
<view class="value">
|
||||
{{panelData.csingleMaxTemData | isNull}}℃
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-value">
|
||||
{{ this.$t('homePage.device.cellPostion') }}:{{panelData.csingleMaxTemPosition | isNull}}
|
||||
{{ $t('homePage.device.cellPostion') }}:{{panelData.csingleMaxTemPosition | isNull}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -84,14 +84,14 @@
|
||||
<view class="other-value">
|
||||
<view class="top-value">
|
||||
<view class="title">
|
||||
{{ this.$t('homePage.device.minTem') }}
|
||||
{{ $t('homePage.device.minTem') }}
|
||||
</view>
|
||||
<view class="value">
|
||||
{{panelData.csingleMinTemData | isNull}}℃
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-value">
|
||||
{{ this.$t('homePage.device.cellPostion') }}:{{panelData.csingleMinTemPosition | isNull}}
|
||||
{{ $t('homePage.device.cellPostion') }}:{{panelData.csingleMinTemPosition | isNull}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -190,10 +190,10 @@
|
||||
.then((res) => {
|
||||
self.panelData = res.data?.packData
|
||||
self.initVolChart(res.data?.voltageList);
|
||||
this.VolNumber = res.data.voltageList.length ? this.VolNumber + `(${res.data.voltageList.length})` : '单体电压柱状图'
|
||||
this.VolNumber = res.data.voltageList.length ? this.VolNumber + `(${res.data.voltageList.length})` : this.VolNumber
|
||||
|
||||
self.initTemChart(res.data?.temperatureList)
|
||||
this.TemNumber = res.data.temperatureList.length ? this.TemNumber + `(${res.data.temperatureList.length})` : '单体温度柱状图'
|
||||
this.TemNumber = res.data.temperatureList.length ? this.TemNumber + `(${res.data.temperatureList.length})` : this.TemNumber
|
||||
resolve(res);
|
||||
})
|
||||
.finally((err) => {
|
||||
@ -481,6 +481,7 @@
|
||||
const categories2 = []
|
||||
const data = []
|
||||
const data2 = []
|
||||
let _that = this
|
||||
|
||||
if (val) {
|
||||
val.voltageList.forEach(i => {
|
||||
@ -509,10 +510,10 @@
|
||||
var relNameT = ''
|
||||
var relValT = ''
|
||||
relNameV += params[0].name + 'V'
|
||||
relValV += params[0].value + this.$t('homePage.device.num')
|
||||
relValV += params[0].value + _that.$t('homePage.device.num')
|
||||
relNameT += params[1].name + '℃'
|
||||
relValT += params[1].value + this.$t('homePage.device.num')
|
||||
return `${params[0].marker}${this.$t('homePage.device.tem')}(${relNameV})` + '\n' + relValV + '\n' + `${ params[1].marker}${this.$t('homePage.device.vol')}(${relNameT})` + '\n' + relValT
|
||||
relValT += params[1].value + _that.$t('homePage.device.num')
|
||||
return `${params[0].marker}${_that.$t('homePage.device.tem')}(${relNameV})` + '\n' + relValV + '\n' + `${ params[1].marker}${_that.$t('homePage.device.vol')}(${relNameT})` + '\n' + relValT
|
||||
},
|
||||
position: function(point, params, dom, rect, size) {
|
||||
// 鼠标坐标和提示框位置的参考坐标系是:以外层div的左上角那一点为原点,x轴向右,y轴向下
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
<Section :title="$t('homePage.device.totalAcReaPower')">
|
||||
<view slot="right" style="flex: 1">
|
||||
<view class="top-right-box">
|
||||
<span class="time">{{this.$t('homePage.device.timeGranularity')}}:</span>
|
||||
<span class="time">{{$t('homePage.device.timeGranularity')}}:</span>
|
||||
<span @click="openTimeAction" class="value">{{sampleTime}}</span>
|
||||
</view>
|
||||
</view>
|
||||
@ -35,7 +35,7 @@
|
||||
<view class="item-con">
|
||||
<view class="item-num">{{ panelData.outputPower | kWFormat }}
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.acPower')}}({{panelData.outputPower | kwUnitFormat }})</view>
|
||||
<view class="item-title">{{$t('homePage.device.acPower')}}({{panelData.outputPower | kwUnitFormat }})</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -51,7 +51,7 @@
|
||||
<view class="item-num">{{ panelData.reactivePowerPCS }}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.acRecPower')}}(kVar)</view>
|
||||
<view class="item-title">{{$t('homePage.device.acRecPower')}}(kVar)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -66,7 +66,7 @@
|
||||
<view class="item-num">{{ panelData.grid | isNull }}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.gridFrequency')}}(Hz)</view>
|
||||
<view class="item-title">{{$t('homePage.device.gridFrequency')}}(Hz)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -81,7 +81,7 @@
|
||||
<view class="item-num">{{ panelData.volA | isNull }}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.abLineVol')}}(V)</view>
|
||||
<view class="item-title">{{$t('homePage.device.abLineVol')}}(V)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -96,7 +96,7 @@
|
||||
<view class="item-num">{{ panelData.volB | isNull }}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.bcLineVol')}}(V)</view>
|
||||
<view class="item-title">{{$t('homePage.device.bcLineVol')}}(V)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -111,7 +111,7 @@
|
||||
<view class="item-num">{{ panelData.volC | isNull }}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.caLineVol')}}(V)</view>
|
||||
<view class="item-title">{{$t('homePage.device.caLineVol')}}(V)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -126,7 +126,7 @@
|
||||
<view class="item-num">{{ panelData.currentA | isNull }}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.acur')}}(A)</view>
|
||||
<view class="item-title">{{$t('homePage.device.acur')}}(A)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -141,7 +141,7 @@
|
||||
<view class="item-num">{{ panelData.currentB | isNull }}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.bcur')}}(A)</view>
|
||||
<view class="item-title">{{$t('homePage.device.bcur')}}(A)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -156,7 +156,7 @@
|
||||
<view class="item-num">{{ panelData.currentC | isNull }}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.ccur')}}(A)</view>
|
||||
<view class="item-title">{{$t('homePage.device.ccur')}}(A)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -169,7 +169,7 @@
|
||||
</view>
|
||||
<view class="item-con">
|
||||
<view class="item-num">{{ panelData.dcPower | kWFormat }}</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.DCPower')}}({{ panelData.dcPower | kwUnitFormat}})</view>
|
||||
<view class="item-title">{{$t('homePage.device.DCPower')}}({{ panelData.dcPower | kwUnitFormat}})</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -183,7 +183,7 @@
|
||||
<view class="item-con">
|
||||
<view class="item-num">{{ panelData.dcInputVol | isNull }}
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.DCVol')}}(V)</view>
|
||||
<view class="item-title">{{$t('homePage.device.DCVol')}}(V)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -197,7 +197,7 @@
|
||||
<view class="item-con">
|
||||
<view class="item-num">{{ panelData.dcCurrent | isNull }}
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.DCCurrent')}}(A)</view>
|
||||
<view class="item-title">{{$t('homePage.device.DCCurrent')}}(A)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -236,8 +236,8 @@
|
||||
stationId: null,
|
||||
srcId: null,
|
||||
hnStationId: [417, 398, 416, 415, 405, 485],
|
||||
actionSheetList: this.$t('homePage.device.timesArr'),
|
||||
sampleTime:this.$t('homePage.device.timesArr')[0].label,
|
||||
actionSheetList: Object.values(this.$t('homePage.home.timesArr')),
|
||||
sampleTime:this.$t('homePage.home.timesArr')[0].text,
|
||||
canvasData: [],
|
||||
textCanvasData: [
|
||||
//0
|
||||
|
||||
@ -28,7 +28,7 @@
|
||||
<view class="item-num">{{panelData.cabinetTemperatureLeft | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.leftTemCabin')}}(℃)</view>
|
||||
<view class="item-title">{{$t('homePage.device.leftTemCabin')}}(℃)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -43,7 +43,7 @@
|
||||
<view class="item-num">{{panelData.cabinetHumidityLeft | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.leftHubCabin')}}(%)</view>
|
||||
<view class="item-title">{{$t('homePage.device.leftHubCabin')}}(%)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -58,7 +58,7 @@
|
||||
<view class="item-num">{{panelData.cabinetTemperatureRight | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.rightTemCabin')}}(℃)</view>
|
||||
<view class="item-title">{{$t('homePage.device.rightTemCabin')}}(℃)</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="group-item " @click="showHistory($t('homePage.device.rightHubCabin'), 'wet', 'transmitter','%','','右')">
|
||||
@ -72,7 +72,7 @@
|
||||
<view class="item-num">{{panelData.cabinetHumidityRight | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.rightHubCabin')}}(%)</view>
|
||||
<view class="item-title">{{$t('homePage.device.rightHubCabin')}}(%)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -88,7 +88,7 @@
|
||||
<view class="item-num">{{panelData.outputPower | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.stackCurrent')}}(A)</view>
|
||||
<view class="item-title">{{$t('homePage.device.stackCurrent')}}(A)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -103,7 +103,7 @@
|
||||
<view class="item-num">{{panelData.stackTotalVol | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.stackTotalVol')}}(V)</view>
|
||||
<view class="item-title">{{$t('homePage.device.stackTotalVol')}}(V)</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="group-item " @click="showHistory($t('homePage.device.stackTotalCurrent'), 'stackTotalCurrent', 'bms','A','')">
|
||||
@ -117,7 +117,7 @@
|
||||
<view class="item-num">{{panelData.stackTotalCurrent | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.stackTotalCurrent')}}(A)</view>
|
||||
<view class="item-title">{{$t('homePage.device.stackTotalCurrent')}}(A)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -132,7 +132,7 @@
|
||||
<view class="item-num">{{panelData.soc | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.stackSoc')}}(%)</view>
|
||||
<view class="item-title">{{$t('homePage.device.stackSoc')}}(%)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -147,7 +147,7 @@
|
||||
<view class="item-num">{{(panelData.totalCharge / 1000).toFixed(2) | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.CumulativeCharge')}}(MWh)</view>
|
||||
<view class="item-title">{{$t('homePage.device.CumulativeCharge')}}(MWh)</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="group-item" @click="showHistory($t('homePage.device.CumulativeDischarge'), 'totalDischarge', 'bms','kWh','')">
|
||||
@ -161,7 +161,7 @@
|
||||
<view class="item-num">{{(panelData.totalDischarge / 1000).toFixed(2) | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.CumulativeDischarge')}}(MWh)</view>
|
||||
<view class="item-title">{{$t('homePage.device.CumulativeDischarge')}}(MWh)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -177,7 +177,7 @@
|
||||
<view class="item-num">{{panelData.stackInsulationPositiveResistance | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.zdz')}}(kΩ)</view>
|
||||
<view class="item-title">{{$t('homePage.device.zdz')}}(kΩ)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -193,7 +193,7 @@
|
||||
<view class="item-num">{{panelData.stackInsulationNegativeResistance | isNull}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.fdz')}}(kΩ)</view>
|
||||
<view class="item-title">{{$t('homePage.device.fdz')}}(kΩ)</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -208,7 +208,7 @@
|
||||
<view class="item-num">{{panelData.rechargeCapacity | kwhFormat}}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.rechargeCapacity')}}({{panelData.rechargeCapacity | kwhUnitFormat}})</view>
|
||||
<view class="item-title">{{$t('homePage.device.rechargeCapacity')}}({{panelData.rechargeCapacity | kwhUnitFormat}})</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -222,7 +222,7 @@
|
||||
<view class="item-con">
|
||||
<view class="item-num">{{panelData.dischargeCapacity | kwhFormat}}
|
||||
</view>
|
||||
<view class="item-title">{{this.$t('homePage.device.dischargeCapacity')}}({{panelData.dischargeCapacity | kwhUnitFormat}})</view>
|
||||
<view class="item-title">{{$t('homePage.device.dischargeCapacity')}}({{panelData.dischargeCapacity | kwhUnitFormat}})</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@ -238,7 +238,7 @@
|
||||
<view class="other-value">
|
||||
<view class="top-value">
|
||||
<view class="title">
|
||||
{{this.$t('homePage.device.totalMaxVolData')}}
|
||||
{{$t('homePage.device.totalMaxVolData')}}
|
||||
</view>
|
||||
<view class="zhexian-icon">
|
||||
<image src="/static/aidex/images/zhexian.png"></image>
|
||||
@ -248,7 +248,7 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-value">
|
||||
{{this.$t('homePage.device.stackCell')}}:{{panelData.totalMaxVolNum | isNull}}
|
||||
{{$t('homePage.device.stackCell')}}:{{panelData.totalMaxVolNum | isNull}}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -259,7 +259,7 @@
|
||||
<view class="other-value">
|
||||
<view class="top-value">
|
||||
<view class="title">
|
||||
{{this.$t('homePage.device.totalMinVolData')}}
|
||||
{{$t('homePage.device.totalMinVolData')}}
|
||||
</view>
|
||||
<view class="zhexian-icon">
|
||||
<image src="/static/aidex/images/zhexian.png"></image>
|
||||
@ -269,7 +269,7 @@
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-value">
|
||||
{{this.$t('homePage.device.stackCell')}}:{{panelData.totalMinVolNum | isNull}}
|
||||
{{$t('homePage.device.stackCell')}}:{{panelData.totalMinVolNum | isNull}}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -280,7 +280,7 @@
|
||||
<view class="other-value">
|
||||
<view class="top-value">
|
||||
<view class="title">
|
||||
{{this.$t('homePage.device.maxvolDiff')}}
|
||||
{{$t('homePage.device.maxvolDiff')}}
|
||||
</view>
|
||||
<view class="value">
|
||||
{{(panelData.singleMaxVolData - panelData.singleMinVolData).toFixed(3) | isNull }}V
|
||||
@ -296,7 +296,7 @@
|
||||
<view class="other-value">
|
||||
<view class="top-value">
|
||||
<view class="title">
|
||||
{{this.$t('homePage.device.maxCellVol')}}
|
||||
{{$t('homePage.device.maxCellVol')}}
|
||||
</view>
|
||||
<view class="zhexian-icon">
|
||||
<image src="/static/aidex/images/zhexian.png"></image>
|
||||
@ -307,15 +307,15 @@
|
||||
</view>
|
||||
<view class="bottom-value">
|
||||
<view>
|
||||
{{this.$t('homePage.device.stackNum')}}:{{panelData.singleMaxVolNum | isNull}}
|
||||
{{$t('homePage.device.stackNum')}}:{{panelData.singleMaxVolNum | isNull}}
|
||||
</view>
|
||||
|
||||
<view>
|
||||
{{this.$t('homePage.device.groupNum')}}:{{panelData.singleMaxVolBMUNum | isNull}}
|
||||
{{$t('homePage.device.groupNum')}}:{{panelData.singleMaxVolBMUNum | isNull}}
|
||||
</view>
|
||||
|
||||
<view>
|
||||
{{this.$t('homePage.device.cellLocation')}}:{{panelData.singleMaxVolBoxNum | isNull}}
|
||||
{{$t('homePage.device.cellLocation')}}:{{panelData.singleMaxVolBoxNum | isNull}}
|
||||
</view>
|
||||
|
||||
</view>
|
||||
@ -328,7 +328,7 @@
|
||||
<view class="other-value">
|
||||
<view class="top-value">
|
||||
<view class="title">
|
||||
{{this.$t('homePage.device.minCellVol')}}
|
||||
{{$t('homePage.device.minCellVol')}}
|
||||
</view>
|
||||
<view class="zhexian-icon">
|
||||
<image src="/static/aidex/images/zhexian.png"></image>
|
||||
@ -339,15 +339,15 @@
|
||||
</view>
|
||||
<view class="bottom-value">
|
||||
<view>
|
||||
{{this.$t('homePage.device.stackNum')}}:{{panelData.singleMinVolNum | isNull}}
|
||||
{{$t('homePage.device.stackNum')}}:{{panelData.singleMinVolNum | isNull}}
|
||||
</view>
|
||||
|
||||
<view>
|
||||
{{this.$t('homePage.device.groupNum')}}:{{panelData.singleMinVolBMUNum | isNull}}
|
||||
{{$t('homePage.device.groupNum')}}:{{panelData.singleMinVolBMUNum | isNull}}
|
||||
</view>
|
||||
|
||||
<view>
|
||||
{{this.$t('homePage.device.cellLocation')}}:{{panelData.singleMinVolBoxNum | isNull}}
|
||||
{{$t('homePage.device.cellLocation')}}:{{panelData.singleMinVolBoxNum | isNull}}
|
||||
</view>
|
||||
|
||||
</view>
|
||||
@ -359,7 +359,7 @@
|
||||
<view class="other-value">
|
||||
<view class="top-value">
|
||||
<view class="title">
|
||||
{{this.$t('homePage.device.maxTemDiff')}}
|
||||
{{$t('homePage.device.maxTemDiff')}}
|
||||
</view>
|
||||
<view class="value">
|
||||
{{ panelData.singleMaxTemData - panelData.singleMinTemData | isNull}}℃
|
||||
@ -375,7 +375,7 @@
|
||||
<view class="other-value">
|
||||
<view class="top-value">
|
||||
<view class="title">
|
||||
{{this.$t('homePage.device.maxCellTem')}}
|
||||
{{$t('homePage.device.maxCellTem')}}
|
||||
</view>
|
||||
<view class="zhexian-icon">
|
||||
<image src="/static/aidex/images/zhexian.png"></image>
|
||||
@ -386,15 +386,15 @@
|
||||
</view>
|
||||
<view class="bottom-value">
|
||||
<view>
|
||||
{{this.$t('homePage.device.stackNum')}}:{{ panelData.singleMaxTemNum | isNull}}
|
||||
{{$t('homePage.device.stackNum')}}:{{ panelData.singleMaxTemNum | isNull}}
|
||||
</view>
|
||||
|
||||
<view>
|
||||
{{this.$t('homePage.device.groupNum')}}:{{ panelData.singleMaxTemBMUNum | isNull}}
|
||||
{{$t('homePage.device.groupNum')}}:{{ panelData.singleMaxTemBMUNum | isNull}}
|
||||
</view>
|
||||
|
||||
<view>
|
||||
{{this.$t('homePage.device.cellLocation')}}:{{ panelData.singleMaxTemBoxNum | isNull}}
|
||||
{{$t('homePage.device.cellLocation')}}:{{ panelData.singleMaxTemBoxNum | isNull}}
|
||||
</view>
|
||||
|
||||
</view>
|
||||
@ -406,7 +406,7 @@
|
||||
<view class="other-value">
|
||||
<view class="top-value">
|
||||
<view class="title">
|
||||
{{this.$t('homePage.device.minCellTem')}}
|
||||
{{$t('homePage.device.minCellTem')}}
|
||||
</view>
|
||||
<view class="zhexian-icon">
|
||||
<image src="/static/aidex/images/zhexian.png"></image>
|
||||
@ -417,15 +417,15 @@
|
||||
</view>
|
||||
<view class="bottom-value">
|
||||
<view>
|
||||
{{this.$t('homePage.device.stackNum')}}:{{ panelData.singleMinTemNum | isNull}}
|
||||
{{$t('homePage.device.stackNum')}}:{{ panelData.singleMinTemNum | isNull}}
|
||||
</view>
|
||||
|
||||
<view>
|
||||
{{this.$t('homePage.device.groupNum')}}:{{ panelData.singleMinTemBMUNum | isNull}}
|
||||
{{$t('homePage.device.groupNum')}}:{{ panelData.singleMinTemBMUNum | isNull}}
|
||||
</view>
|
||||
|
||||
<view>
|
||||
{{this.$t('homePage.device.cellLocation')}}:{{ panelData.singleMinTemBoxNum | isNull }}
|
||||
{{$t('homePage.device.cellLocation')}}:{{ panelData.singleMinTemBoxNum | isNull }}
|
||||
</view>
|
||||
|
||||
</view>
|
||||
|
||||
@ -21,9 +21,8 @@
|
||||
<!-- </view> -->
|
||||
</scroll-view>
|
||||
<view v-else style="height: 100%;">
|
||||
<u-empty :text="this.$t('homePage.device.noData')" mode="list"></u-empty>
|
||||
<u-empty :text="$t('homePage.device.noData')" mode="list"></u-empty>
|
||||
</view>
|
||||
|
||||
</template >
|
||||
|
||||
</view>
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
</scroll-view>
|
||||
|
||||
<view v-else style="height: 100%;">
|
||||
<u-empty :text="this.$t('homePage.device.noData')" mode="list"></u-empty>
|
||||
<u-empty :text="$t('homePage.device.noData')" mode="list"></u-empty>
|
||||
</view>
|
||||
|
||||
</template >
|
||||
|
||||
@ -23,6 +23,7 @@
|
||||
<view class="components-box" :style="{height:`calc(100% - ${safeHeight}rpx)`}">
|
||||
<JKPCS ref="PCS" v-if="type === 0 && Devicetype === 'pcs' && stationId === 484" />
|
||||
<PCS ref="PCS" v-if="type === 0 && Devicetype === 'pcs' && stationId !== 484" />
|
||||
<MPPT ref="MPPT" v-if="type === 0 && Devicetype === 'mttp' && stationId !== 484" />
|
||||
<Cluster ref="Cluster" v-if="type === 0 && Devicetype === 'cluster'" />
|
||||
<Pack ref="Pack" v-if="type === 0 && Devicetype === 'pack'" />
|
||||
<Stack ref="Stack" v-if="type === 0 && Devicetype === 'stack' && stationId !== 484 " />
|
||||
@ -44,6 +45,7 @@
|
||||
import JKPCS from './components/jingke-pcs.vue'
|
||||
import JKStack from './components/jingke-stack.vue'
|
||||
import PCS from './components/pcs.vue'
|
||||
import MPPT from './components/mppt.vue'
|
||||
import Cluster from './components/cluster.vue'
|
||||
import Stack from './components/stack.vue'
|
||||
import Pack from './components/pack.vue'
|
||||
@ -85,7 +87,6 @@
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
|
||||
this.Devicetype = options.type
|
||||
if (this.Devicetype === 'storage' || this.Devicetype === 'anything') {
|
||||
this.list = [{
|
||||
@ -108,6 +109,10 @@
|
||||
if (this.$refs.PCS) {
|
||||
this.$refs.PCS.getData(this.srcId)
|
||||
}
|
||||
// 新增mppt
|
||||
if (this.$refs.MPPT) {
|
||||
this.$refs.MPPT.getData(this.srcId)
|
||||
}
|
||||
if (this.$refs.Stack) {
|
||||
this.$refs.Stack.getData(this.srcId)
|
||||
}
|
||||
@ -137,6 +142,7 @@
|
||||
components: {
|
||||
JKPCS,
|
||||
PCS,
|
||||
MPPT,
|
||||
DeviceYC,
|
||||
DeviceYX,
|
||||
Cluster,
|
||||
@ -187,6 +193,7 @@
|
||||
|
||||
methods: {
|
||||
device(val) {
|
||||
console.log(val);
|
||||
this.Devicetype = val
|
||||
},
|
||||
changeTab(type) {
|
||||
@ -202,6 +209,9 @@
|
||||
if (this.$refs.PCS) {
|
||||
this.$refs.PCS.getData(this.srcId)
|
||||
}
|
||||
if (this.$refs.MPPT) {
|
||||
this.$refs.MPPT.getData(this.srcId)
|
||||
}
|
||||
if (this.$refs.Stack) {
|
||||
this.$refs.Stack.getData(this.srcId)
|
||||
}
|
||||
|
||||
@ -66,25 +66,28 @@
|
||||
},
|
||||
toDetail(item) {
|
||||
let type = ""
|
||||
if (item.deviceType.includes("pcs")) {
|
||||
if (item.deviceType?.includes("pcs")) {
|
||||
type = "pcs";
|
||||
} else if (item.deviceType.includes("stack") ) {
|
||||
} else if (item.deviceType?.includes("stack") ) {
|
||||
type = "cluster";
|
||||
} else if (item.deviceType.includes("bms") && this.stationId === 349 ) {
|
||||
} else if (item.deviceType?.includes("bms") && this.stationId === 349 ) {
|
||||
type = "stack";
|
||||
} else if (item.deviceType.includes("pack")) {
|
||||
} else if (item.deviceType?.includes("pack")) {
|
||||
type = "pack";
|
||||
} else if (item.deviceType.includes("air_condition")) {
|
||||
} else if (item.deviceType?.includes("air_condition")) {
|
||||
type = "air";
|
||||
} else if (item.deviceType.includes("ele_meter") ) {
|
||||
} else if (item.deviceType?.includes("ele_meter") ) {
|
||||
type = "ammeter";
|
||||
} else if (item.deviceType.includes("emu" )) {
|
||||
} else if (item.deviceType?.includes("emu" )) {
|
||||
type = "emu";
|
||||
} else if (item.deviceType.includes("storage_fire") ) {
|
||||
} else if (item.deviceType?.includes("storage_fire") ) {
|
||||
type = "storage";
|
||||
} else if (item.deviceType.includes("basic") ) {
|
||||
} else if (item.deviceType?.includes("basic") ) {
|
||||
type = "anything"
|
||||
} else if (item.deviceType?.includes("mttp") || item.deviceType?.includes("mppt")) {
|
||||
type = "mttp"
|
||||
}
|
||||
|
||||
if (type) {
|
||||
uni.setStorage({
|
||||
key: 'deviceName', //本地缓存中的指定的 key
|
||||
|
||||
120
pages/home-page/earningSelect/index.vue
Normal file
@ -0,0 +1,120 @@
|
||||
<template>
|
||||
<view class="p_container">
|
||||
|
||||
<u-navbar :is-back="true" :background="background" :border-bottom="false">
|
||||
<!-- <u-navbar :is-back="true" :background="background" :border-bottom="false" :custom-back="toback"> -->
|
||||
<view class="slot-wrap">
|
||||
<stationDropdow disabled style="width: 100%" ref="dropdow" />
|
||||
</view>
|
||||
</u-navbar>
|
||||
<!-- <zero-loading v-if="loading"></zero-loading> -->
|
||||
|
||||
<!-- <view v-else style="height: calc(100% - 100rpx);"> -->
|
||||
<view style="height: calc(100% - 100rpx);">
|
||||
<!-- <view class="search">
|
||||
<luyj-tree-search :placeholder="$t('homePage.home.revenue')">
|
||||
</luyj-tree-search>
|
||||
</view> -->
|
||||
<view class="p_content">
|
||||
<view class="selectContent">
|
||||
<view class="p_box selectItem" @click="toUrl(labeArr[0])">
|
||||
<view >
|
||||
<image :src="labeArr[0].icon" mode="" style="height: 48rpx; width: 48rpx;" class="selectIcon"></image>
|
||||
</view>
|
||||
<view class="">
|
||||
{{ labeArr[0].label}}
|
||||
</view>
|
||||
</view>
|
||||
<view class="p_box selectItem" v-if="inverterFlag === 1" @click="toUrl(labeArr[1])">
|
||||
<view >
|
||||
<image :src="labeArr[1].icon" mode="" style="height: 48rpx; width: 48rpx;" class="selectIcon"></image>
|
||||
</view>
|
||||
<view class="">
|
||||
{{ labeArr[1].label}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import stationDropdow from "@/components/station-dropdow/index.vue";
|
||||
export default {
|
||||
components: {
|
||||
stationDropdow
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
background: {
|
||||
backgroundColor: "#0ea17e",
|
||||
},
|
||||
labeArr: [
|
||||
{
|
||||
label: this.$t("homePage.home.energyStorageRevenueReport"),
|
||||
icon: require('@/static/aidex/images/earningSelect.png'),
|
||||
url: '/pages/home-page/earnings/index'
|
||||
},
|
||||
{
|
||||
label: this.$t("homePage.home.pvStorageRevenueReport"),
|
||||
icon: require('@/static/aidex/images/earningSelect.png'),
|
||||
url: '/pages/home-page/lights/index'
|
||||
},
|
||||
]
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
currentStation() {
|
||||
return this.vuex_currentStation;
|
||||
},
|
||||
inverterFlag(){
|
||||
return this.vuex_inverterFlag;
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
toUrl(val) {
|
||||
uni.navigateTo({
|
||||
url:val.url
|
||||
})
|
||||
}
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.slot-wrap {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
/* 如果您想让slot内容占满整个导航栏的宽度 */
|
||||
flex: 1;
|
||||
|
||||
/* 如果您想让slot内容与导航栏左右有空隙 */
|
||||
/* padding: 0 30rpx; */
|
||||
/deep/ .u-input__input {
|
||||
color: #fff !important;
|
||||
}
|
||||
}
|
||||
.selectContent {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 25rpx;
|
||||
margin-top: 40rpx;
|
||||
.selectItem {
|
||||
padding: 30rpx 33rpx;
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
color: #666666;
|
||||
border-radius: 10rpx;
|
||||
.selectIcon {
|
||||
height: 48rpx;
|
||||
width: 48rpx;
|
||||
margin-top: 10rpx;
|
||||
margin-right: 32rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -97,7 +97,7 @@
|
||||
|
||||
</view>
|
||||
<view class="title">
|
||||
{{ this.$t('homePage.earning.chargeVol') }}
|
||||
{{ $t('homePage.earning.chargeVol') }}
|
||||
</view>
|
||||
<view class="value">
|
||||
{{ totalData.totalCharge | isNull }}
|
||||
@ -111,7 +111,7 @@
|
||||
|
||||
</view>
|
||||
<view class="title">
|
||||
{{ this.$t('homePage.earning.dischargeVol') }}
|
||||
{{ $t('homePage.earning.dischargeVol') }}
|
||||
</view>
|
||||
<view class="value">
|
||||
{{ totalData.totalDischarge | isNull }}
|
||||
@ -149,7 +149,7 @@
|
||||
{{ totalData.totalChargePrice | isNull }}
|
||||
</view>
|
||||
<view class="title">
|
||||
{{ $t('homePage.earning.monthTotalChargePrice') }}
|
||||
{{ $t('homePage.home.enmonthTotalChargePrice') }}
|
||||
</view>
|
||||
|
||||
</view>
|
||||
@ -164,7 +164,7 @@
|
||||
{{ totalData.totalDisChargePrice | isNull }}
|
||||
</view>
|
||||
<view class="title">
|
||||
{{ $t('homePage.earning.monthTotalDisChargePrice') }}
|
||||
{{ $t('homePage.home.enmonthTotalDisChargePrice') }}
|
||||
</view>
|
||||
|
||||
</view>
|
||||
@ -179,7 +179,7 @@
|
||||
{{ totalData.income | isNull }}
|
||||
</view>
|
||||
<view class="title">
|
||||
{{ $t('homePage.earning.earnings') }}
|
||||
{{ $t('homePage.home.enearnings') }}
|
||||
</view>
|
||||
<view class="bg">
|
||||
|
||||
@ -198,7 +198,7 @@
|
||||
|
||||
<view class="power-report" v-if="chargeArr.length">
|
||||
<view class="title">
|
||||
{{this.$t('homePage.earning.charge')}}
|
||||
{{$t('homePage.earning.charge')}}
|
||||
</view>
|
||||
<view v-for="(item, index) in chargeArr" :key="index">
|
||||
<view class="value-box">
|
||||
@ -234,7 +234,7 @@
|
||||
|
||||
<view class="power-report" v-if="dischargeArr.length">
|
||||
<view class="title">
|
||||
{{this.$t('homePage.earning.disCharge')}}
|
||||
{{$t('homePage.earning.disCharge')}}
|
||||
</view>
|
||||
<view v-for="(item, index) in dischargeArr" :key="index">
|
||||
<view class="value-box">
|
||||
|
||||
111
pages/home-page/lights/components/runChart/index.vue
Normal file
@ -0,0 +1,111 @@
|
||||
<template>
|
||||
<view class="charts-box">
|
||||
<qiun-data-charts type="column" :opts="opts" :chartData="chartData" />
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
time: {
|
||||
type: String,
|
||||
default: "",
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
stationId:'',
|
||||
chartData: {},
|
||||
//您可以通过修改 config-ucharts.js 文件中下标为 ['column'] 的节点来配置全局默认参数,如都是默认参数,此处可以不传 opts 。实际应用过程中 opts 只需传入与全局默认参数中不一致的【某一个属性】即可实现同类型的图表显示不同的样式,达到页面简洁的需求。
|
||||
opts: {
|
||||
color: ["#0DA17D"],
|
||||
padding: [30, 15, 100, 25],
|
||||
enableScroll: false,
|
||||
fonSize: 12,
|
||||
fontColor: '#8C8C8C',
|
||||
legend: {
|
||||
show: false
|
||||
},
|
||||
xAxis: {
|
||||
disableGrid: true,
|
||||
rotateLabel: true,
|
||||
rotateAngle: 30,
|
||||
titleOffsetY: 20,
|
||||
titleOffsetX: 5,
|
||||
marginTop: 5,
|
||||
labelCount: 7
|
||||
},
|
||||
yAxis: {
|
||||
data: [{
|
||||
min: 0
|
||||
}],
|
||||
|
||||
showTitle: false
|
||||
},
|
||||
extra: {
|
||||
column: {
|
||||
width: '10',
|
||||
}
|
||||
},
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.GetPvMonthData();
|
||||
},
|
||||
computed: {
|
||||
currentStation() {
|
||||
return this.vuex_currentStation;
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
currentStation: {
|
||||
handler(val) {
|
||||
this.stationId = val.id;
|
||||
},
|
||||
deep: true,
|
||||
immediate: true,
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
async GetPvMonthData(){
|
||||
try {
|
||||
const res = await this.$u.api.enrnings.GetPvMonthData({
|
||||
stationId: this.stationId,
|
||||
time: this.time,
|
||||
});
|
||||
let resdata = {
|
||||
categories:[],
|
||||
series:[{
|
||||
name:this.$t('homePage.home.powerGeneration'),
|
||||
textColor: "#FFFFFF",
|
||||
data: []
|
||||
}]
|
||||
}
|
||||
if (res.data.length) {
|
||||
res.data.forEach((el) => {
|
||||
resdata.categories.push(el.date)
|
||||
resdata.series[0].data.push(el.powerGenerate)
|
||||
});
|
||||
console.log(JSON.parse(JSON.stringify(resdata)));
|
||||
this.chartData = JSON.parse(JSON.stringify(resdata));
|
||||
} else {
|
||||
this.chargeArr = [];
|
||||
}
|
||||
} catch (e) {
|
||||
//TODO handle the exception
|
||||
} finally {
|
||||
this.loading = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
/* 请根据实际需求修改父元素尺寸,组件自动识别宽高 */
|
||||
.charts-box {
|
||||
width: 100%;
|
||||
height: 300px;
|
||||
}
|
||||
</style>
|
||||
773
pages/home-page/lights/index.vue
Normal file
@ -0,0 +1,773 @@
|
||||
<template>
|
||||
<view>
|
||||
<zero-loading v-if="loading"></zero-loading>
|
||||
<view v-else class="earnings-warp">
|
||||
<view class="head-bg">
|
||||
<view class="back" @click="toback">
|
||||
<u-icon name="nav-back" color="#009C7F" size="44"></u-icon>
|
||||
</view>
|
||||
|
||||
<view class="report-title">
|
||||
<view class="value">
|
||||
{{ totalData.stationName }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="time-select" @click="changeMonth">
|
||||
<image
|
||||
src="/static/aidex/images/time.png"
|
||||
style="width: 120rpx; height: 108rpx"
|
||||
>
|
||||
</image>
|
||||
<view class="month">
|
||||
{{ month }}
|
||||
</view>
|
||||
<view class="year">
|
||||
{{ year }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="power-generation">
|
||||
<Section :title="$t('homePage.home.powerGenerationStatus')" />
|
||||
<view class="power-generation-detail">
|
||||
|
||||
<view class="value-box">
|
||||
<view class="icon zjry">
|
||||
|
||||
</view>
|
||||
<view class="title">
|
||||
{{ $t('homePage.home.currentMonthlyPowerGeneration') }}
|
||||
</view>
|
||||
<view class="value">
|
||||
{{ totalData.monthReleaseElec | isNull }}
|
||||
</view>
|
||||
<view class="unit">
|
||||
kWh
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="value-box">
|
||||
<view class="icon byzc">
|
||||
|
||||
</view>
|
||||
<view class="title">
|
||||
{{ $t('homePage.home.cumulativePowerGeneration') }}
|
||||
</view>
|
||||
<view class="value">
|
||||
{{ totalData.totalReleaseElec | isNull }}
|
||||
</view>
|
||||
<view class="unit">
|
||||
kWh
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
<view class="value-box">
|
||||
<view class="icon byzf">
|
||||
|
||||
</view>
|
||||
<view class="title">
|
||||
{{ $t('homePage.home.ratedPowernokw') }}
|
||||
</view>
|
||||
<view class="value">
|
||||
{{ totalData.pvPower | isNull }}
|
||||
</view>
|
||||
<view class="unit">
|
||||
kW
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
<!-- <view class="value-box">
|
||||
<view class="icon yxtzhl"> </view>
|
||||
<view class="title">
|
||||
{{ $t("homePage.earning.monthEff") }}
|
||||
</view>
|
||||
<view class="value">
|
||||
{{ totalData.monConvRate | isNull }}
|
||||
</view>
|
||||
<view class="unit"> % </view>
|
||||
</view>
|
||||
<view class="value-box">
|
||||
<view class="icon ljcd"> </view>
|
||||
<view class="title">
|
||||
{{ $t("homePage.earning.chargeVol") }}
|
||||
</view>
|
||||
<view class="value">
|
||||
{{ totalData.totalCharge | isNull }}
|
||||
</view>
|
||||
<view class="unit"> kWh </view>
|
||||
</view>
|
||||
<view class="value-box">
|
||||
<view class="icon ljcf"> </view>
|
||||
<view class="title">
|
||||
{{ $t("homePage.earning.dischargeVol") }}
|
||||
</view>
|
||||
<view class="value">
|
||||
{{ totalData.totalDischarge | isNull }}
|
||||
</view>
|
||||
<view class="unit"> kWh </view>
|
||||
</view>
|
||||
<view class="value-box">
|
||||
<view class="icon zxtzhl"> </view>
|
||||
<view class="title">
|
||||
{{ $t("homePage.earning.totalEff") }}
|
||||
</view>
|
||||
<view class="value">
|
||||
{{ totalData.totalConvRate | isNull }}
|
||||
</view>
|
||||
<view class="unit"> % </view>
|
||||
</view> -->
|
||||
</view>
|
||||
</view>
|
||||
<view class="month-power">
|
||||
<Section :title="$t('homePage.home.projectMonthlyPower')" />
|
||||
<view class="power-generation-detail">
|
||||
<run-chart :time="time" />
|
||||
</view>
|
||||
</view>
|
||||
<view class="month-power">
|
||||
<Section
|
||||
:title="$t('homePage.earning.projectRevenue')"
|
||||
style="margin-bottom: 25rpx"
|
||||
/>
|
||||
<view class="value-box">
|
||||
<view class="left">
|
||||
<view class="power-detail">
|
||||
<view class="left-value">
|
||||
<view class="value">
|
||||
{{ totalData.monthIncone | isNull }}
|
||||
</view>
|
||||
<view class="title">
|
||||
{{ $t("homePage.home.monthlyIncome") }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="right-value t-fdzl"> </view>
|
||||
</view>
|
||||
|
||||
<!-- <view class="power-detail"
|
||||
style="margin: 0 !important; padding-bottom: 0 !important" >
|
||||
<view class="left-value">
|
||||
<view class="value">
|
||||
{{ totalData.totalDisChargePrice | isNull }}
|
||||
</view>
|
||||
<view class="title">
|
||||
{{ $t("homePage.home.enmonthTotalDisChargePrice") }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="right-value t-swdl"> </view>
|
||||
</view> -->
|
||||
</view>
|
||||
<view class="left">
|
||||
<view class="power-detail">
|
||||
<view class="left-value">
|
||||
<view class="value">
|
||||
{{ totalData.income | isNull }}
|
||||
</view>
|
||||
<view class="title">
|
||||
{{ $t("homePage.home.totalRevenue") }}
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="right-value t-fdzl"> </view> -->
|
||||
<view class="right-value bg"> </view>
|
||||
<!-- <view class="value">
|
||||
{{ totalData.income | isNull }}
|
||||
</view>
|
||||
<view class="title">
|
||||
{{ $t("homePage.home.totalRevenue") }}
|
||||
</view>
|
||||
<view class="bg"> </view> -->
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- <view class="report-detail">
|
||||
<Section
|
||||
:title="$t('homePage.earning.earningsDetail')"
|
||||
style="margin-bottom: 30rpx"
|
||||
/>
|
||||
|
||||
<view class="power-report" v-if="chargeArr.length">
|
||||
<view class="title">
|
||||
{{ $t("homePage.earning.charge") }}
|
||||
</view>
|
||||
<view v-for="(item, index) in chargeArr" :key="index">
|
||||
<view class="value-box">
|
||||
<view class="checked">
|
||||
<view class="name">
|
||||
{{ item.rateType | isNull }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="box">
|
||||
<view class="value">
|
||||
<text class="name">{{ $t("homePage.earning.ele") }}</text>
|
||||
<text class="num">{{ item.elec | isNull }}</text>
|
||||
</view>
|
||||
|
||||
<view class="value">
|
||||
<text class="name">{{ $t("homePage.earning.expend") }}:</text>
|
||||
<text class="num">{{ item.digital | isNull }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="power-report" v-else>
|
||||
<view style="font-size: 24rpx; width: 100%; text-align: center">
|
||||
{{ $t("homePage.earning.noChargeData") }}
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="power-report" v-if="dischargeArr.length">
|
||||
<view class="title">
|
||||
{{ $t("homePage.earning.disCharge") }}
|
||||
</view>
|
||||
<view v-for="(item, index) in dischargeArr" :key="index">
|
||||
<view class="value-box">
|
||||
<view class="checked">
|
||||
<view class="name">
|
||||
{{ item.rateType | isNull }}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="box">
|
||||
<view class="value">
|
||||
<text class="name">{{ $t("homePage.earning.ele") }}:</text>
|
||||
<text class="num">{{ item.elec | isNull }}</text>
|
||||
</view>
|
||||
<view class="value">
|
||||
<text class="name">{{ $t("homePage.earning.earnings") }}:</text>
|
||||
<text class="num">{{ item.digital | isNull }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="power-report" v-else>
|
||||
<view style="font-size: 24rpx; width: 100%; text-align: center">
|
||||
{{ $t("homePage.earning.noDisChargeData") }}
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
|
||||
<u-picker
|
||||
v-model="TimeShow"
|
||||
mode="time"
|
||||
:params="Timeparams"
|
||||
@confirm="confirmMonth"
|
||||
></u-picker>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
import Section from "@/components/section/index.vue";
|
||||
import runChart from "./components/runChart/index.vue";
|
||||
export default {
|
||||
components: {
|
||||
Section,
|
||||
runChart,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
active1: 0,
|
||||
active2: 1,
|
||||
TimeShow: false,
|
||||
Timeparams: {
|
||||
year: true,
|
||||
month: true,
|
||||
day: false,
|
||||
hour: false,
|
||||
minute: false,
|
||||
second: false,
|
||||
},
|
||||
year: null,
|
||||
month: null,
|
||||
stationId: null,
|
||||
time: null,
|
||||
totalData: {},
|
||||
chargeArr: [],
|
||||
dischargeArr: [],
|
||||
loading: false,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
currentStation() {
|
||||
return this.vuex_currentStation;
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
currentStation: {
|
||||
handler(val) {
|
||||
this.stationId = val.id;
|
||||
},
|
||||
deep: true,
|
||||
immediate: true,
|
||||
},
|
||||
},
|
||||
created() {
|
||||
var myDate = new Date();
|
||||
var tYear = myDate.getFullYear();
|
||||
|
||||
var tMonth = myDate.getMonth() + 1;
|
||||
if (tMonth.toString().length == 1) {
|
||||
tMonth = "0" + tMonth;
|
||||
}
|
||||
this.year = tYear;
|
||||
this.month = tMonth;
|
||||
this.time = this.year + "-" + this.month + "";
|
||||
this.getData();
|
||||
},
|
||||
methods: {
|
||||
toback() {
|
||||
uni.navigateBack({
|
||||
delta: 1,
|
||||
});
|
||||
},
|
||||
async getData() {
|
||||
try {
|
||||
this.loading = true;
|
||||
const res = await this.$u.api.enrnings.GetTotal({
|
||||
stationId: this.stationId,
|
||||
time: this.time,
|
||||
});
|
||||
this.totalData = res.data;
|
||||
|
||||
this.chargeArr = [];
|
||||
this.dischargeArr = [];
|
||||
if (res.data.list.length) {
|
||||
res.data.list.forEach((el) => {
|
||||
if (+el.type === 0) {
|
||||
this.chargeArr.push(el);
|
||||
}
|
||||
if (+el.type === 1) {
|
||||
this.dischargeArr.push(el);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
this.chargeArr = [];
|
||||
this.dischargeArr = [];
|
||||
}
|
||||
} catch (e) {
|
||||
//TODO handle the exception
|
||||
} finally {
|
||||
this.loading = false;
|
||||
}
|
||||
},
|
||||
changeActive1(val) {
|
||||
this.active1 = val;
|
||||
},
|
||||
changeActive2(val) {
|
||||
this.active2 = val;
|
||||
},
|
||||
changeMonth() {
|
||||
this.TimeShow = true;
|
||||
},
|
||||
confirmMonth(val) {
|
||||
this.time = val.year + "-" + val.month + "";
|
||||
this.year = val.year;
|
||||
this.month = val.month;
|
||||
this.getData();
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.earnings-warp {
|
||||
// height: calc(120% + 210rpx)!important;
|
||||
height: 100% !important;
|
||||
background-color: #f5f5f5;
|
||||
overflow: auto;
|
||||
|
||||
.cell-box {
|
||||
width: 100%;
|
||||
height: 35rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 16rpx;
|
||||
|
||||
.title {
|
||||
color: rgba(102, 102, 102, 1) !important;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
|
||||
.value {
|
||||
color: rgba(44, 50, 49, 1) !important;
|
||||
font-size: 24rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.head-bg {
|
||||
height: 360rpx;
|
||||
background: linear-gradient(45deg, #ffe3c8, #07976e);
|
||||
display: flex;
|
||||
|
||||
.back {
|
||||
padding-top: 100rpx;
|
||||
padding-left: 30rpx;
|
||||
}
|
||||
|
||||
.report-title {
|
||||
padding-top: 100rpx;
|
||||
padding-left: 20rpx;
|
||||
width: 464rpx;
|
||||
font-weight: 700;
|
||||
color: rgba(0, 156, 119, 1);
|
||||
font-size: 36rpx;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.time-select {
|
||||
margin-right: 30rpx;
|
||||
margin-left: auto;
|
||||
margin-top: 140rpx;
|
||||
position: relative;
|
||||
width: 120rpx;
|
||||
height: 108rpx;
|
||||
|
||||
image {
|
||||
width: 120rpx;
|
||||
height: 108rpx;
|
||||
}
|
||||
|
||||
.month {
|
||||
position: absolute;
|
||||
top: 10rpx;
|
||||
left: 38rpx;
|
||||
right: 38rpx;
|
||||
padding-top: 10rpx;
|
||||
font-size: 40rpx;
|
||||
font-weight: 500;
|
||||
color: rgba(255, 255, 255, 1);
|
||||
}
|
||||
|
||||
.year {
|
||||
position: absolute;
|
||||
bottom: 10rpx;
|
||||
left: 38rpx;
|
||||
right: 38rpx;
|
||||
font-size: 24rpx;
|
||||
font-weight: 700;
|
||||
color: rgba(255, 255, 255, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.power-generation {
|
||||
height: 380rpx;
|
||||
background-color: #ffffff;
|
||||
box-shadow: 0px 4rpx 16rpx rgba(0, 0, 0, 0.1);
|
||||
margin-left: 30rpx;
|
||||
margin-right: 30rpx;
|
||||
border-radius: 8rpx;
|
||||
margin-top: -40rpx;
|
||||
padding: 20rpx;
|
||||
|
||||
.power-generation-detail {
|
||||
width: 100%;
|
||||
|
||||
.value-box {
|
||||
padding: 20rpx;
|
||||
margin-top: 16rpx;
|
||||
border-radius: 8rpx;
|
||||
background: linear-gradient(
|
||||
45deg,
|
||||
rgba(178, 223, 138, 0.2),
|
||||
rgba(0, 156, 119, 0.3)
|
||||
);
|
||||
width: 100%;
|
||||
height: 80rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.icon {
|
||||
width: 48rpx;
|
||||
height: 48rpx;
|
||||
border-radius: 8rpx;
|
||||
background-color: rgba(255, 255, 255, 1);
|
||||
box-shadow: 0px 0rpx 10rpx rgba(0, 0, 10, 0.1);
|
||||
}
|
||||
|
||||
.zjry {
|
||||
background-image: url("/static/aidex/images/sy-zjrl.png");
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.byzc {
|
||||
background-image: url("/static/aidex/images/sy-byzc.png");
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.byzf {
|
||||
background-image: url("/static/aidex/images/sy-byzf.png");
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.yxtzhl {
|
||||
background-image: url("/static/aidex/images/sy-yxtzhl.png");
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.ljcd {
|
||||
background-image: url("/static/aidex/images/sy-ljc.png");
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.ljcf {
|
||||
background-image: url("/static/aidex/images/sy-ljf.png");
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.zxtzhl {
|
||||
background-image: url("/static/aidex/images/sy-zxtzhl.png");
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 28rpx;
|
||||
color: rgba(44, 50, 49, 1);
|
||||
padding-left: 10rpx;
|
||||
}
|
||||
|
||||
.value {
|
||||
margin-left: auto;
|
||||
font-size: 36rpx;
|
||||
font-weight: 700;
|
||||
padding-right: 10rpx;
|
||||
color: rgba(0, 156, 119, 1);
|
||||
}
|
||||
|
||||
.unit {
|
||||
min-width: 36rpx;
|
||||
font-size: 18rpx;
|
||||
color: rgba(102, 102, 102, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.report-detail {
|
||||
padding: 20rpx;
|
||||
margin-left: 30rpx;
|
||||
margin-right: 30rpx;
|
||||
background-color: #ffffff;
|
||||
margin-top: 30rpx;
|
||||
box-shadow: 0px 4rpx 16rpx rgba(0, 0, 0, 0.1);
|
||||
border-radius: 8rpx;
|
||||
|
||||
.value-box {
|
||||
width: 100%;
|
||||
height: 35rpx;
|
||||
display: flex;
|
||||
|
||||
.checked {
|
||||
background-image: url("/static/aidex/images/checked.png");
|
||||
background-size: cover;
|
||||
width: 100rpx;
|
||||
height: 35rpx;
|
||||
margin-bottom: 2rpx;
|
||||
|
||||
.name {
|
||||
text-align: center;
|
||||
font-weight: 400;
|
||||
font-size: 20rpx;
|
||||
color: rgba(255, 255, 255, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.box {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
margin-bottom: 5rpx;
|
||||
|
||||
.value {
|
||||
display: inline-block;
|
||||
flex: 1;
|
||||
color: #000;
|
||||
|
||||
.name {
|
||||
font-size: 24rpx;
|
||||
color: rgba(102, 102, 102, 1);
|
||||
}
|
||||
|
||||
.num {
|
||||
padding-left: 10rpx;
|
||||
}
|
||||
|
||||
.value {
|
||||
font-size: 24rpx;
|
||||
color: rgba(44, 50, 49, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.power-report {
|
||||
width: 100%;
|
||||
|
||||
border-top: 1px solid #93d5c5;
|
||||
margin-top: 30rpx;
|
||||
background: linear-gradient(
|
||||
rgba(0, 156, 119, 0.05),
|
||||
rgba(0, 156, 119, 0)
|
||||
);
|
||||
margin-bottom: 34rpx;
|
||||
padding-top: 12rpx;
|
||||
padding-left: 20rpx;
|
||||
padding-right: 20rpx;
|
||||
|
||||
.title {
|
||||
color: rgba(0, 0, 0, 1);
|
||||
font-size: 24rpx;
|
||||
}
|
||||
|
||||
.botton {
|
||||
width: 100%;
|
||||
height: 36rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-top: 16rpx;
|
||||
margin-bottom: 16rpx;
|
||||
|
||||
.check {
|
||||
background-image: url("/static/aidex/images/check.png");
|
||||
background-size: cover;
|
||||
width: 100rpx;
|
||||
height: 35rpx;
|
||||
|
||||
.name {
|
||||
text-align: center;
|
||||
font-weight: 400;
|
||||
font-size: 20rpx;
|
||||
color: rgba(255, 255, 255, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.month-power {
|
||||
height: 500rpx;
|
||||
background-color: #ffffff;
|
||||
box-shadow: 0px 4rpx 16rpx rgba(0, 0, 0, 0.1);
|
||||
margin-left: 30rpx;
|
||||
margin-right: 30rpx;
|
||||
border-radius: 8rpx;
|
||||
margin-top: 30rpx;
|
||||
padding: 20rpx;
|
||||
|
||||
.value-box {
|
||||
width: 100%;
|
||||
height: 380rpx;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
flex-wrap: wrap;
|
||||
|
||||
.left {
|
||||
width: 50%;
|
||||
height: 100%;
|
||||
padding: 20rpx;
|
||||
padding-top: 0rpx;
|
||||
padding-bottom: 0rpx;
|
||||
padding-right: 10rpx;
|
||||
|
||||
.power-detail {
|
||||
background-color: rgba(254, 131, 15, 0.05);
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 8rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
position: relative;
|
||||
padding: 20rpx;
|
||||
|
||||
.left-value {
|
||||
.value {
|
||||
font-weight: 500;
|
||||
font-size: 36rpx;
|
||||
white-space: nowrap;
|
||||
color: rgba(0, 156, 119, 1);
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 24rpx;
|
||||
// white-space: nowrap;
|
||||
color: rgba(44, 50, 49, 1);
|
||||
}
|
||||
}
|
||||
|
||||
.right-value {
|
||||
min-width: 121rpx;
|
||||
height: 119rpx;
|
||||
position: absolute;
|
||||
right: 20rpx;
|
||||
}
|
||||
|
||||
|
||||
.bg {
|
||||
width: 194rpx;
|
||||
height: 188rpx;
|
||||
background-image: url("/static/aidex/images/total-sy.png");
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.t-fdzl {
|
||||
width: 121rpx;
|
||||
height: 119rpx;
|
||||
background-image: url("/static/aidex/images/total-zfdl.png");
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
|
||||
.t-swdl {
|
||||
width: 97rpx;
|
||||
height: 140rpx;
|
||||
background-image: url("/static/aidex/images/total-swdl.png");
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.right {
|
||||
width: 50%;
|
||||
height: 100%;
|
||||
padding: 0 20rpx 0 10rpx;
|
||||
|
||||
.value-box {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(254, 131, 15, 0.05);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding-left: 30rpx;
|
||||
padding-right: 30rpx;
|
||||
border-radius: 8rpx;
|
||||
}
|
||||
|
||||
.value {
|
||||
margin-top: 49rpx;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
font-weight: 500;
|
||||
color: rgba(0, 156, 119, 1);
|
||||
font-size: 48rpx;
|
||||
}
|
||||
|
||||
.title {
|
||||
width: 100%;
|
||||
text-align: left;
|
||||
font-size: 24rpx;
|
||||
color: rgba(44, 50, 49, 1);
|
||||
}
|
||||
|
||||
.bg {
|
||||
width: 194rpx;
|
||||
height: 188rpx;
|
||||
background-image: url("/static/aidex/images/total-sy.png");
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
348
pages/home-page/policy-Config/index.vue
Normal file
@ -0,0 +1,348 @@
|
||||
<template>
|
||||
<view style="height: 100vh">
|
||||
<view class="">
|
||||
<u-navbar
|
||||
:title="$t('homePage.policy.policyTitle')"
|
||||
:is-back="true"
|
||||
title-color="#FFF"
|
||||
:background="background"
|
||||
:border-bottom="false"
|
||||
:custom-back="toback"
|
||||
>
|
||||
</u-navbar>
|
||||
</view>
|
||||
<view class="policeForm">
|
||||
<u-form ref="form" labelPosition="top">
|
||||
<view class="" v-for="(item, index) in smallArr" :key="index">
|
||||
<view class="" v-if="item.type == 'Input'">
|
||||
<u-form-item :label="item[`label_${lang}`]" :prop="item.prop">
|
||||
<u-input
|
||||
:key="'input_' + item.prop + '_' + item.inputKey"
|
||||
:min="item.min"
|
||||
:max="item.max"
|
||||
:value="item.value"
|
||||
type="number"
|
||||
:placeholder="item[`place_${lang}`]"
|
||||
@input="handleInput(item, $event)"
|
||||
/>
|
||||
</u-form-item>
|
||||
</view>
|
||||
<view class="" v-if="item.type == 'Switch'">
|
||||
<u-form-item :label="item[`label_${lang}`]" :prop="item.prop">
|
||||
<u-switch :size="40" v-model="item.value"></u-switch>
|
||||
</u-form-item>
|
||||
</view>
|
||||
<view class="" v-if="item.type == 'Select'">
|
||||
<u-form-item :label="item[`label_${lang}`]" :prop="item.prop">
|
||||
<view class="" v-show="false">
|
||||
<u-input
|
||||
v-model="item.value"
|
||||
disabled
|
||||
@click="selectShow(item, index)"
|
||||
/>
|
||||
</view>
|
||||
<view class="select-value" @click.stop="selectShow(item, index)">
|
||||
{{ item.selectLabel || $t("homePage.alarm.placeSelect") }}
|
||||
</view>
|
||||
<u-select
|
||||
:key="item.prop"
|
||||
@confirm="confirm($event, item)"
|
||||
v-model="item.isShow"
|
||||
:list="getSelectList(item)"
|
||||
></u-select>
|
||||
</u-form-item>
|
||||
</view>
|
||||
</view>
|
||||
</u-form>
|
||||
|
||||
<button
|
||||
@click="submitDevice"
|
||||
type="success"
|
||||
size="mini"
|
||||
style="
|
||||
background-color: #009458;
|
||||
padding: 10rpx 0;
|
||||
color: #fff;
|
||||
margin-top: 40rpx;
|
||||
width: 100%;
|
||||
"
|
||||
>
|
||||
{{ $t("homePage.mine.submit") }}
|
||||
</button>
|
||||
</view>
|
||||
<u-toast ref="uToast" />
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { formList } from "@/common/form.js";
|
||||
import { Langlist } from "@/common/lang";
|
||||
import mqtt from "@/uni_modules/leliven-mqtt/index.js";
|
||||
import pako from "pako";
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
formList: formList,
|
||||
background: {
|
||||
backgroundColor: "#0EA17E",
|
||||
},
|
||||
|
||||
mqttClient: null,
|
||||
backData: {},
|
||||
smallArr: [],
|
||||
user: {
|
||||
username: "admin", // 设置用户名
|
||||
password: "zzkj@688737", // 设置密码
|
||||
},
|
||||
};
|
||||
},
|
||||
|
||||
computed: {
|
||||
lang() {
|
||||
return (
|
||||
Langlist.find((v) => v.value == this.$store.state.vuex_language).prop ||
|
||||
"en"
|
||||
);
|
||||
},
|
||||
currentStation() {
|
||||
return this.vuex_currentStation;
|
||||
},
|
||||
},
|
||||
onLoad() {
|
||||
this.getSn();
|
||||
},
|
||||
|
||||
methods: {
|
||||
getSn() {
|
||||
this.$u.api.station
|
||||
.getStationPostionSn({
|
||||
stationId: this.currentStation.id,
|
||||
})
|
||||
.then((res) => {
|
||||
this.sn = res.data[0]?.sn;
|
||||
this.initmqttClient();
|
||||
});
|
||||
},
|
||||
initmqttClient() {
|
||||
console.log(this.lang);
|
||||
console.log(this.currentStation);
|
||||
// 初始化客户端连接地址
|
||||
// #ifdef H5
|
||||
let mqttClient = mqtt.connect("ws://1.95.170.86:8083/mqtt", {
|
||||
...this.user,
|
||||
});
|
||||
// #endif
|
||||
// #ifdef MP-WEIXIN||APP-PLUS
|
||||
let mqttClient = mqtt.connect("wx://1.95.170.86:8083/mqtt", {
|
||||
...this.user,
|
||||
});
|
||||
// #endif
|
||||
this.mqttClient = mqttClient;
|
||||
// 连接MQ服务
|
||||
mqttClient
|
||||
.on("connect", (res) => {
|
||||
console.log("连接成功");
|
||||
// 订阅主题
|
||||
mqttClient.subscribe(`1/ems/${this.sn}/control/response`, (err) => {
|
||||
console.log(`1/app/${this.sn}/control/request`);
|
||||
if (!err) {
|
||||
// 订阅成功
|
||||
mqttClient.publish(
|
||||
`1/app/${this.sn}/control/request`,
|
||||
JSON.stringify({
|
||||
fun: "GET",
|
||||
type: "WJ_Get_NewControlSystem",
|
||||
content: 0,
|
||||
}),
|
||||
);
|
||||
}
|
||||
});
|
||||
})
|
||||
.on("reconnect", function () {
|
||||
console.log("重新连接");
|
||||
})
|
||||
.on("error", function () {
|
||||
console.log("连接失败");
|
||||
})
|
||||
.on("end", function () {
|
||||
console.log("连接End");
|
||||
})
|
||||
.on("message", (topic, message) => {
|
||||
console.log(this.decodeGzipBase64(message.toString()), "111");
|
||||
let data = this.decodeGzipBase64(message.toString());
|
||||
if (data.content && data.content.params) {
|
||||
this.control(data.content);
|
||||
} else if (data.content == 1) {
|
||||
this.$refs.uToast.show({
|
||||
title: this.$t("homePage.mine.operateSuccess"),
|
||||
type: "success",
|
||||
});
|
||||
} else {
|
||||
uni.showToast({
|
||||
title: this.$t("homePage.mine.operateFail"),
|
||||
icon: "none",
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
decodeGzipBase64(base64Str) {
|
||||
// 1. base64 → Uint8Array
|
||||
const binaryStr = atob(base64Str);
|
||||
const len = binaryStr.length;
|
||||
const bytes = new Uint8Array(len);
|
||||
|
||||
for (let i = 0; i < len; i++) {
|
||||
bytes[i] = binaryStr.charCodeAt(i);
|
||||
}
|
||||
|
||||
// 2. gunzip 解压
|
||||
const decompressed = pako.ungzip(bytes, {
|
||||
to: "string",
|
||||
});
|
||||
// 3. 转 JSON(如果是 JSON)
|
||||
return JSON.parse(decompressed);
|
||||
},
|
||||
getSelectList(item) {
|
||||
if (item.selectArr && item.selectArr.length > 0) {
|
||||
return item.selectArr.map((option) => ({
|
||||
value: option.value.toString(),
|
||||
label: option[`label_${this.lang}`] || option.label,
|
||||
}));
|
||||
}
|
||||
return [];
|
||||
},
|
||||
control(NewControlSystemShow_data) {
|
||||
console.log(NewControlSystemShow_data, "123");
|
||||
this.formList.forEach((item) => {
|
||||
if (
|
||||
item.type == "Switch" &&
|
||||
NewControlSystemShow_data?.smallScreen?.includes(item.prop)
|
||||
) {
|
||||
this.$set(
|
||||
item,
|
||||
"value",
|
||||
NewControlSystemShow_data?.params[item.prop] ? true : false,
|
||||
);
|
||||
}
|
||||
if (
|
||||
item.type == "Input" &&
|
||||
NewControlSystemShow_data?.smallScreen?.includes(item.prop)
|
||||
) {
|
||||
this.$set(
|
||||
item,
|
||||
"value",
|
||||
NewControlSystemShow_data?.params[item.prop] ?? item.default,
|
||||
);
|
||||
}
|
||||
if (
|
||||
item.type == "Select" &&
|
||||
NewControlSystemShow_data?.smallScreen?.includes(item.prop)
|
||||
) {
|
||||
const newValue =
|
||||
NewControlSystemShow_data?.params[item.prop] ?? item.default;
|
||||
this.$set(item, "value", newValue);
|
||||
item.selectLabel = item.selectArr.find((v) => v.value == newValue)?.[
|
||||
`label_${this.lang}`
|
||||
];
|
||||
}
|
||||
this.$set(item, "isShow", false);
|
||||
});
|
||||
this.backData = NewControlSystemShow_data;
|
||||
this.smallArr = this.formList.filter((v) =>
|
||||
NewControlSystemShow_data?.smallScreen.includes(v.prop),
|
||||
);
|
||||
console.log(this.smallArr, "234");
|
||||
},
|
||||
confirm(val, item) {
|
||||
if (val && val.length > 0) {
|
||||
this.$set(item, "value", val[0].value);
|
||||
this.$set(item, "selectLabel", val[0].label);
|
||||
}
|
||||
this.$set(item, "isShow", false);
|
||||
},
|
||||
handleInput(item, value) {
|
||||
try {
|
||||
// u-input 组件 @input 事件直接传递 value 值,不是 event 对象
|
||||
let iptval = String(value || "").replace(/[^0-9.]/g, "");
|
||||
const parts = iptval.split(".");
|
||||
if (parts.length > 2) {
|
||||
iptval = parts[0] + "." + parts.slice(1).join("");
|
||||
}
|
||||
if (!iptval || iptval === ".") {
|
||||
item.value = 0;
|
||||
return;
|
||||
}
|
||||
let numVal = Number(iptval);
|
||||
numVal = isNaN(numVal) ? 0 : numVal;
|
||||
|
||||
// 检查是否需要强制更新(值被限制)
|
||||
let needForceUpdate = false;
|
||||
if (item.min !== undefined && item.min !== null && numVal < item.min) {
|
||||
numVal = item.min;
|
||||
needForceUpdate = true;
|
||||
}
|
||||
if (item.max !== undefined && item.max !== null && numVal > item.max) {
|
||||
numVal = item.max;
|
||||
needForceUpdate = true;
|
||||
}
|
||||
|
||||
item.value = numVal;
|
||||
|
||||
// 如果值被限制,强制重新渲染输入框
|
||||
if (needForceUpdate) {
|
||||
this.$set(item, "inputKey", (item.inputKey || 0) + 1);
|
||||
}
|
||||
} catch (error) {
|
||||
console.log("handleInput方法错误:", error);
|
||||
}
|
||||
},
|
||||
|
||||
toback() {
|
||||
uni.navigateBack();
|
||||
},
|
||||
selectShow(val, index) {
|
||||
console.log(123);
|
||||
this.$set(val, "isShow", true);
|
||||
},
|
||||
submitDevice() {
|
||||
let smallParam = this.smallArr.reduce((pre, cur) => {
|
||||
pre[cur.prop] = cur.type == "Switch" ? (cur.value ? 1 : 0) : cur.value;
|
||||
pre[cur.prop] = Number(pre[cur.prop]);
|
||||
return pre;
|
||||
}, {});
|
||||
|
||||
this.mqttClient.publish(
|
||||
`1/app/${this.sn}/control/request`,
|
||||
JSON.stringify({
|
||||
fun: "SET",
|
||||
type: "WJ_Set_NewControlSystem",
|
||||
content: {
|
||||
...this.backData,
|
||||
params: {
|
||||
...this.backData.params,
|
||||
...smallParam,
|
||||
},
|
||||
},
|
||||
}),
|
||||
);
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.policeForm {
|
||||
margin: 22rpx;
|
||||
padding: 22rpx;
|
||||
background-color: #fff;
|
||||
box-shadow: 0px 4rpx 16rpx rgba(0, 0, 0, 0.1);
|
||||
border-radius: 8rpx;
|
||||
}
|
||||
|
||||
.select-value {
|
||||
padding: 16rpx 0;
|
||||
color: #333;
|
||||
min-height: 60rpx;
|
||||
}
|
||||
</style>
|
||||
@ -23,26 +23,31 @@
|
||||
|
||||
<view v-if="!loading" class="detail-box">
|
||||
<u-form :model="formInfo" ref="uForm" :label-width="200">
|
||||
<u-form-item :label="$t('homePage.policy.planCurveTem')"><u-input v-model="formInfo.temName" type="select"
|
||||
@click="openSelectTemplate" input-align="right" /></u-form-item>
|
||||
<u-form-item :label="$t('homePage.policy.IssueDevice')"><u-input v-model="formInfo.srcName" type="select"
|
||||
@click="openSelectDevice" input-align="right" /></u-form-item>
|
||||
<u-form-item :label="$t('homePage.policy.planCurveTem')"><u-input
|
||||
:placeholder="$t('homePage.policy.selectPlanCurveTem')" v-model="formInfo.temName"
|
||||
type="select" @click="openSelectTemplate" input-align="right" /></u-form-item>
|
||||
<u-form-item :label="$t('homePage.policy.IssueDevice')"><u-input
|
||||
:placeholder="$t('homePage.policy.selectIssueDevice')" v-model="formInfo.srcName"
|
||||
type="select" @click="openSelectDevice" input-align="right" /></u-form-item>
|
||||
|
||||
<u-form-item :label="$t('homePage.policy.operateOrNot')"><u-radio-group active-color="#009458"
|
||||
v-model="formInfo.operationName" class="group">
|
||||
<u-radio v-for="(item, index) in radioList" :key="index" :name="item.name" :disabled="item.disabled">
|
||||
<u-radio v-for="(item, index) in radioList" :key="index" :name="item.name"
|
||||
:disabled="item.disabled">
|
||||
{{ item.name }}
|
||||
</u-radio>
|
||||
</u-radio-group>
|
||||
</u-form-item>
|
||||
|
||||
<u-form-item :label="$t('homePage.policy.socUplimit')"><u-input v-model="formInfo.socUpper" disabled
|
||||
<u-form-item :label="$t('homePage.policy.socUplimit')"><u-input
|
||||
:placeholder="$t('homePage.policy.pleaseInputValue')" v-model="formInfo.socUpper" disabled
|
||||
type="text" input-align="right" /></u-form-item>
|
||||
<u-form-item :label="$t('homePage.policy.socDownlimit')"><u-input v-model="formInfo.socLower" disabled
|
||||
<u-form-item :label="$t('homePage.policy.socDownlimit')"><u-input
|
||||
:placeholder="$t('homePage.policy.pleaseInputValue')" v-model="formInfo.socLower" disabled
|
||||
type="text" input-align="right" /></u-form-item>
|
||||
<u-form-item :label="$t('homePage.policy.effectiveTime')">
|
||||
<u-input v-model="formInfo.effectiveTime" type="select" @click="timeShow = true" input-align="right"
|
||||
:placeholder="$t('homePage.policy.selectEffectiveTime')" />
|
||||
<u-input v-model="formInfo.effectiveTime" type="select" @click="timeShow = true"
|
||||
input-align="right" :placeholder="$t('homePage.policy.selectEffectiveTime')" />
|
||||
<u-picker mode="time" v-model="timeShow" input-align="right" @confirm="confirmTime"
|
||||
:params="timeParams"></u-picker>
|
||||
</u-form-item>
|
||||
@ -54,17 +59,33 @@
|
||||
|
||||
</u-form>
|
||||
|
||||
<view style="display: flex;">
|
||||
<button type="success" size="mini" @click="handleIssue" style="background-color: #009458;color: #fff"
|
||||
:loading="isMoreLoading" :disabled="deliveryLoading"
|
||||
<view style="display: flex;flex-wrap:wrap;justify-content: space-between;">
|
||||
<button type="success" size="mini" @click="handleIssue"
|
||||
style="background-color: #009458;color: #fff;width: 40%;" :loading="isMoreLoading"
|
||||
:disabled="deliveryLoading"
|
||||
v-show="vuex_permissions.includes('strategy:planCurveDis:commandIssuance')">
|
||||
{{ $t('homePage.policy.commandDistribution') }}
|
||||
</button>
|
||||
<button type="success" size="mini" @click="handleControlDelivery"
|
||||
style="background-color: #009458; color: #fff" :loading="deliveryLoading" :disabled="isMoreLoading"
|
||||
style="background-color: #009458; color: #fff;width: 40%;" :loading="deliveryLoading"
|
||||
:disabled="isMoreLoading"
|
||||
v-show="vuex_permissions.includes('strategy:planCurveDis:commandIssuanceData')">
|
||||
{{ $t('homePage.policy.controlDistribution') }}
|
||||
</button>
|
||||
<button type="success" size="mini"
|
||||
style="background-color: #009458; color: #fff;margin-top: 10px;width: 40%;"
|
||||
:disabled="isMoreLoading"
|
||||
v-show="vuex_permissions.includes('strategy:planCurveDis:commandIssuanceData')">
|
||||
{{ $t('homePage.home.pvSwitch') }}
|
||||
</button>
|
||||
<button @click="toDeviceControl" type="success" size="mini"
|
||||
style="background-color: #009458; color: #fff;margin-top: 10px;width: 40%;"
|
||||
v-show="vuex_permissions.includes('strategy:business:ems:dispatch')">
|
||||
|
||||
{{ $t('homePage.home.emsControl') }}
|
||||
</button>
|
||||
|
||||
|
||||
</view>
|
||||
|
||||
</view>
|
||||
@ -85,7 +106,7 @@
|
||||
<view class="input-box">
|
||||
<u-form :model="formModel" ref="valueForm" labelPosition="left" label-width="350">
|
||||
<u-form-item v-for="(item, index) in inputDataBox" :label="item.colName"
|
||||
:prop="'inputDataBox.' + index + '.newValue'">
|
||||
:prop="'inputDataBox.' + index + '.newValue'" :key="item.prop">
|
||||
<view style="width: 100;display: flex;align-items: center;">
|
||||
<!-- <input class="uni-input" type="decimal" v-model.number="item.newValue" placeholder="请输入值" /> -->
|
||||
<u-input v-model.number="item.newValue" type="text" input-align="right"
|
||||
@ -129,26 +150,27 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import charts from "@/components/charts/index.vue";
|
||||
import stationDropdow from "@/components/station-dropdow/index.vue";
|
||||
import Section from "@/components/section/index.vue";
|
||||
export default {
|
||||
import charts from "@/components/charts/index.vue";
|
||||
import stationDropdow from "@/components/station-dropdow/index.vue";
|
||||
import Section from "@/components/section/index.vue";
|
||||
export default {
|
||||
components: {
|
||||
stationDropdow,
|
||||
charts,
|
||||
Section,
|
||||
},
|
||||
computed: {
|
||||
currentStation () {
|
||||
currentStation() {
|
||||
return this.vuex_currentStation;
|
||||
},
|
||||
language () {
|
||||
language() {
|
||||
return this.vuex_language
|
||||
}
|
||||
},
|
||||
|
||||
watch: {
|
||||
currentStation: {
|
||||
handler (val) {
|
||||
handler(val) {
|
||||
this.loading = true;
|
||||
this.formInfo = {
|
||||
temId: undefined,
|
||||
@ -162,7 +184,7 @@ export default {
|
||||
this.stationId = val.id;
|
||||
this.getTemplate();
|
||||
this.getIssueDevices();
|
||||
this.getValueLiist()
|
||||
// this.getValueLiist()
|
||||
setTimeout(() => {
|
||||
this.getIssueStatus();
|
||||
}, 200);
|
||||
@ -171,29 +193,31 @@ export default {
|
||||
deep: true,
|
||||
},
|
||||
language: {
|
||||
handler (val) {
|
||||
if(val === 'zh_CN'){
|
||||
handler(val) {
|
||||
if (val === 'zh_CN') {
|
||||
this.policyTypeList = [{
|
||||
name: '命令下发'
|
||||
},
|
||||
{
|
||||
name: '通用设置'
|
||||
}]
|
||||
}
|
||||
if(val === 'en_US'){
|
||||
]
|
||||
}
|
||||
if (val === 'en_US') {
|
||||
this.policyTypeList = [{
|
||||
name: 'Command Distribution'
|
||||
},
|
||||
{
|
||||
name: 'General settings'
|
||||
}]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
immediate: true,
|
||||
deep: true,
|
||||
},
|
||||
},
|
||||
data () {
|
||||
data() {
|
||||
return {
|
||||
stationId: null,
|
||||
formInfo: {
|
||||
@ -251,22 +275,34 @@ export default {
|
||||
deliveryLoading: false
|
||||
};
|
||||
},
|
||||
beforeDestroy () {
|
||||
beforeDestroy() {
|
||||
if (this.moreInterval) {
|
||||
clearInterval(this.moreInterval);
|
||||
}
|
||||
},
|
||||
mounted () {
|
||||
mounted() {
|
||||
this.defaultCheck = this.checked;
|
||||
this.userId = this.vuex_user.userId
|
||||
},
|
||||
methods: {
|
||||
confirmTime (val) {
|
||||
|
||||
toDeviceControl() {
|
||||
|
||||
uni.navigateTo({
|
||||
url:'/pages/home-page/policy-Config/index'
|
||||
})
|
||||
},
|
||||
toStrategy(){
|
||||
uni.navigateTo({
|
||||
url:'/pages/home-page/strategy/index'
|
||||
})
|
||||
},
|
||||
confirmTime(val) {
|
||||
this.formInfo.effectiveTime = val.hour + ':' + val.minute
|
||||
this.formInfo.planRefreshH = val.hour
|
||||
this.formInfo.planRefreshM = val.minute
|
||||
},
|
||||
async handleControlDelivery () {
|
||||
async handleControlDelivery() {
|
||||
|
||||
if (!this.formInfo.srcId) {
|
||||
this.$refs.uToast.show({
|
||||
@ -304,43 +340,43 @@ export default {
|
||||
|
||||
|
||||
},
|
||||
inputValue (val, index) {
|
||||
inputValue(val, index) {
|
||||
|
||||
// let temp = val.replace(/(^[\-0-9][0-9]*(\.[0-9]+)?)$/g, '')
|
||||
// this.$nextTick(() => {
|
||||
// this.inputDataBox[index].newValue = temp
|
||||
// })
|
||||
},
|
||||
sectionChange (val) {
|
||||
sectionChange(val) {
|
||||
this.currentType = val
|
||||
if (val === 1) {
|
||||
this.getValueLiist()
|
||||
// this.getValueLiist()
|
||||
}
|
||||
},
|
||||
async getValueLiist () {
|
||||
async getValueLiist() {
|
||||
const res = await this.$u.api.policy.GetSubstitutionValueList({
|
||||
stationId: this.stationId
|
||||
})
|
||||
this.inputDataBox = res.data
|
||||
},
|
||||
toback () {
|
||||
toback() {
|
||||
uni.navigateBack({
|
||||
delta: 1
|
||||
})
|
||||
},
|
||||
closePassword () {
|
||||
closePassword() {
|
||||
this.password = null;
|
||||
this.checked = this.defaultCheck;
|
||||
this.switchLoading = false;
|
||||
},
|
||||
sureOpen () {
|
||||
sureOpen() {
|
||||
this.passwordShow = true;
|
||||
},
|
||||
closeOpen () {
|
||||
closeOpen() {
|
||||
this.switchLoading = false;
|
||||
this.checked = this.defaultCheck;
|
||||
},
|
||||
surePassword () {
|
||||
surePassword() {
|
||||
if (+this.password === +this.defaultPassword) {
|
||||
this.$refs.uToast.show({
|
||||
title: this.$t('homePage.policy.passwordSuccess'),
|
||||
@ -357,7 +393,7 @@ export default {
|
||||
this.password = null;
|
||||
this.switchLoading = false;
|
||||
},
|
||||
changeOpen (val) {
|
||||
changeOpen(val) {
|
||||
this.switchLoading = true;
|
||||
if (val) {
|
||||
this.openContent = this.$t('homePage.policy.isOpen');
|
||||
@ -367,30 +403,30 @@ export default {
|
||||
this.openShow = true;
|
||||
}
|
||||
},
|
||||
confirmTem (val) {
|
||||
confirmTem(val) {
|
||||
this.formInfo.temName = val[0].label;
|
||||
this.formInfo.temId = val[0].value;
|
||||
this.getTemplateDetail();
|
||||
},
|
||||
confirmDev (val) {
|
||||
confirmDev(val) {
|
||||
this.formInfo.srcName = val[0].label;
|
||||
this.formInfo.srcId = val[0].value;
|
||||
},
|
||||
openSelectTemplate () {
|
||||
openSelectTemplate() {
|
||||
this.templateSelectShow = true;
|
||||
},
|
||||
openSelectDevice () {
|
||||
openSelectDevice() {
|
||||
this.deviceSelectShow = true;
|
||||
},
|
||||
closeIssue () {
|
||||
closeIssue() {
|
||||
this.warningShow = false;
|
||||
},
|
||||
sureIssue () {
|
||||
sureIssue() {
|
||||
this.getIssueDatas();
|
||||
},
|
||||
|
||||
// 下发
|
||||
async getIssueDatas () {
|
||||
async getIssueDatas() {
|
||||
const params = {
|
||||
stationId: this.stationId,
|
||||
temId: this.formInfo.temId,
|
||||
@ -400,7 +436,7 @@ export default {
|
||||
this.issueList = res.data;
|
||||
this.handleMoreOrder();
|
||||
},
|
||||
async handleMoreOrder () {
|
||||
async handleMoreOrder() {
|
||||
const self = this;
|
||||
this.isMoreLoading = true;
|
||||
const params = {
|
||||
@ -435,7 +471,7 @@ export default {
|
||||
|
||||
},
|
||||
// 批量下发进度
|
||||
async getMoreOrderProgressBar () {
|
||||
async getMoreOrderProgressBar() {
|
||||
const self = this;
|
||||
const params = {
|
||||
stationId: this.stationId,
|
||||
@ -463,7 +499,7 @@ export default {
|
||||
self.getIssueStatus();
|
||||
}
|
||||
},
|
||||
async insertIssueStatus () {
|
||||
async insertIssueStatus() {
|
||||
const params = {
|
||||
stationId: this.stationId, // 电站id
|
||||
planTemId: this.formInfo.temId, // 计划曲线模板id
|
||||
@ -475,7 +511,7 @@ export default {
|
||||
},
|
||||
|
||||
// 获取下发设备
|
||||
async getIssueDevices () {
|
||||
async getIssueDevices() {
|
||||
const res = await this.$u.api.policy.getIssueDevices({
|
||||
stationId: this.stationId,
|
||||
});
|
||||
@ -483,13 +519,13 @@ export default {
|
||||
},
|
||||
|
||||
// 获取模板
|
||||
async getTemplate () {
|
||||
async getTemplate() {
|
||||
const res = await this.$u.api.policy.getTemplate({
|
||||
stationId: this.stationId,
|
||||
});
|
||||
this.templateList = res.data;
|
||||
},
|
||||
async save () {
|
||||
async save() {
|
||||
const self = this
|
||||
let flag = false
|
||||
this.inputDataBox.forEach((item) => {
|
||||
@ -515,7 +551,7 @@ export default {
|
||||
type: "warning",
|
||||
});
|
||||
} finally {
|
||||
this.getValueLiist()
|
||||
// this.getValueLiist()
|
||||
}
|
||||
|
||||
}
|
||||
@ -523,7 +559,7 @@ export default {
|
||||
|
||||
},
|
||||
// 获取下发状态
|
||||
async getIssueStatus () {
|
||||
async getIssueStatus() {
|
||||
this.formInfo.temName = undefined;
|
||||
this.formInfo.srcName = undefined;
|
||||
this.formInfo.status = undefined;
|
||||
@ -559,12 +595,12 @@ export default {
|
||||
this.formInfo.status = "";
|
||||
}
|
||||
// this.$forceUpdate()
|
||||
} catch (error) { } finally {
|
||||
} catch (error) {} finally {
|
||||
this.loading = false;
|
||||
}
|
||||
},
|
||||
// 获取模板详情
|
||||
async getTemplateDetail () {
|
||||
async getTemplateDetail() {
|
||||
const params = {
|
||||
temId: this.formInfo.temId,
|
||||
};
|
||||
@ -582,7 +618,7 @@ export default {
|
||||
this.chartDatas = data.planningCurves;
|
||||
this.initChart(chartData.planningCurves);
|
||||
},
|
||||
initChart (val) {
|
||||
initChart(val) {
|
||||
let dateArr = [];
|
||||
let valueArr = [];
|
||||
if (val && val.length > 0) {
|
||||
@ -612,7 +648,7 @@ export default {
|
||||
},
|
||||
axisPointer: {},
|
||||
confine: true,
|
||||
position: function (point, params, dom, rect, size) {
|
||||
position: function(point, params, dom, rect, size) {
|
||||
// 鼠标坐标和提示框位置的参考坐标系是:以外层div的左上角那一点为原点,x轴向右,y轴向下
|
||||
// 提示框位置
|
||||
var x = 0; // x坐标位置
|
||||
@ -705,12 +741,12 @@ export default {
|
||||
color: "#00CA9A",
|
||||
},
|
||||
},
|
||||
},],
|
||||
}, ],
|
||||
};
|
||||
},
|
||||
|
||||
// 下发
|
||||
handleIssue () {
|
||||
handleIssue() {
|
||||
if (!this.formInfo.temId) {
|
||||
this.$refs.uToast.show({
|
||||
title: this.$t('homePage.policy.planCurveTem'),
|
||||
@ -744,11 +780,11 @@ export default {
|
||||
this.warningShow = true;
|
||||
},
|
||||
},
|
||||
};
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.policy-management {
|
||||
.policy-management {
|
||||
height: 100% !important;
|
||||
background-color: #f8f8f8;
|
||||
padding: 20rpx;
|
||||
@ -805,9 +841,9 @@ export default {
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.open-box {
|
||||
.open-box {
|
||||
padding-left: 27rpx;
|
||||
padding-right: 27rpx;
|
||||
background-color: #ffffff;
|
||||
@ -815,15 +851,15 @@ export default {
|
||||
box-shadow: 0px 4rpx 16rpx rgba(0, 0, 0, 0.1);
|
||||
border-radius: 8rpx;
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
|
||||
.group {
|
||||
.group {
|
||||
display: flex;
|
||||
position: absolute;
|
||||
right: 27rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.subTab {
|
||||
.subTab {
|
||||
width: 100%;
|
||||
text-align: right;
|
||||
padding-right: 10rpx;
|
||||
@ -831,15 +867,15 @@ export default {
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .u-form-right {
|
||||
::v-deep .u-form-right {
|
||||
display: flex !important;
|
||||
justify-content: flex-end !important;
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .uni-input-input {
|
||||
::v-deep .uni-input-input {
|
||||
// text-align: right !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -7,7 +7,7 @@
|
||||
</view>
|
||||
<view class="content-msg">
|
||||
{{ $t('homePage.home.msgf')}}
|
||||
<span class="xieyi" @click="toDetail"><u-link color="#009458" href="https://ecloud.hoenergypower.cn/app-privacy-zh.html">《{{ $t('homePage.home.yhxy')}}》</u-link></span>{{ $t('homePage.home.and')}}<span class="xieyi" @click="toDetail"><u-link color="#009458" href="https://ecloud.hoenergypower.cn/app-privacy-zh.html">《{{ $t('homePage.home.yszc')}}》</u-link></span>
|
||||
<span class="xieyi" @click="toDetail"><u-link color="#009458" href="https://zetatech.zzkj-cloud.com/app-privacy-en.html">《{{ $t('homePage.home.yhxy')}}》</u-link></span>{{ $t('homePage.home.and')}}<span class="xieyi" @click="toDetail"><u-link color="#009458" href="https://zetatech.zzkj-cloud.com/app-privacy-en.html">《{{ $t('homePage.home.yszc')}}》</u-link></span>
|
||||
{{ $t('homePage.home.msgs')}}
|
||||
</view>
|
||||
<view class="content-icon">
|
||||
|
||||
@ -92,9 +92,9 @@
|
||||
}
|
||||
|
||||
.center-logo {
|
||||
width: 410rpx;
|
||||
height: 150rpx;
|
||||
top: 100rpx;
|
||||
width: 220rpx;
|
||||
height: 140rpx;
|
||||
top: 80rpx;
|
||||
position: absolute;
|
||||
|
||||
}
|
||||
|
||||
@ -4,10 +4,10 @@
|
||||
<!-- <image src="/static/aidex/login/login-bg.png" class="logo"></image> -->
|
||||
<view class="logo">
|
||||
<view class="EnglishFont">
|
||||
STORASMART
|
||||
ZETA CLOUD
|
||||
</view>
|
||||
</view>
|
||||
<image src="/static/aidex/login/bg-logo2.png" class="center-logo"></image>
|
||||
<image src="/static/aidex/login/bg-logo1.png" class="center-logo"></image>
|
||||
|
||||
<!--首页用户密码输入框 -->
|
||||
|
||||
@ -17,11 +17,11 @@
|
||||
|
||||
<u-select v-model="langShow" :list="Langlist" @confirm="changeLanguage"></u-select>
|
||||
|
||||
<u-radio-group v-model="StationValue" @change="radioGroupChange" active-color="#009C77">
|
||||
<!-- <u-radio-group v-model="StationValue" @change="radioGroupChange" active-color="#009C77">
|
||||
<u-radio @change="radioChange" v-for="(item, index) in $t('homePage.home.stationType')" :key="index" :name="item.name">
|
||||
{{ item.name }}
|
||||
</u-radio>
|
||||
</u-radio-group>
|
||||
</u-radio-group> -->
|
||||
|
||||
<view class="user-card">
|
||||
<view class="list">
|
||||
@ -94,19 +94,12 @@ import {
|
||||
} from "@/common/common.js"
|
||||
import messageModel from './components/dialog.vue'
|
||||
import config from '@/common/config.js'
|
||||
import { Langlist } from '@/common/lang.js'
|
||||
export default {
|
||||
components: { messageModel },
|
||||
data () {
|
||||
return {
|
||||
Langlist: [{
|
||||
value: 'zh_CN',
|
||||
label: '中文'
|
||||
},
|
||||
{
|
||||
value: 'en_US',
|
||||
label: 'English'
|
||||
}
|
||||
],
|
||||
Langlist:Langlist,
|
||||
phoneNo: "",
|
||||
username: "",
|
||||
password: "",
|
||||
@ -139,7 +132,7 @@ export default {
|
||||
showMsg: false,
|
||||
Stationlist: this.$t('homePage.home.stationType'),
|
||||
// u-radio-group的v-model绑定的值如果设置为某个radio的name,就会被默认选中
|
||||
StationValue: '',
|
||||
StationValue: 'en_US',
|
||||
}
|
||||
},
|
||||
onLoad () {
|
||||
@ -189,21 +182,37 @@ export default {
|
||||
// this.$u.vuex("vuex_stationValue", val);
|
||||
if (val === '海外站' || val === 'Overseas Station') {
|
||||
this.$u.http.setConfig({
|
||||
// baseUrl: 'https://ecloud.hoenergypower.cn/api'
|
||||
baseUrl: 'https://zzkj-cloud.com/api'
|
||||
// baseUrl: 'http://1.95.170.86:8002/api',
|
||||
baseUrl: 'https://zetatech.zzkj-cloud.com/api'
|
||||
});
|
||||
} else if (val === '中国站' || val === 'China Station') {
|
||||
this.$u.http.setConfig({
|
||||
// baseUrl: 'https://ecloud.hoenergypower.cn/api'
|
||||
baseUrl: 'https://zzkj-cloud.com/api'
|
||||
// baseUrl: 'http://1.95.170.86:8002/api'
|
||||
baseUrl: 'https://zetatech.zzkj-cloud.com/api'
|
||||
// baseUrl: 'https://zzkj-cloud.com/api'
|
||||
});
|
||||
}
|
||||
const res = await this.$u.api.GetLanguageConfig('zh')
|
||||
const res2 = await this.$u.api.GetLanguageConfig('en')
|
||||
const res3 = await this.$u.api.GetLanguageConfig('fr')
|
||||
const res4 = await this.$u.api.GetLanguageConfig('es')
|
||||
const res5 = await this.$u.api.GetLanguageConfig('ar')
|
||||
const res6 = await this.$u.api.GetLanguageConfig('de')
|
||||
const res7 = await this.$u.api.GetLanguageConfig('pl')
|
||||
const result = JSON.parse(res.data[0].content)
|
||||
const result2 = JSON.parse(res2.data[0].content)
|
||||
const result3 = JSON.parse(res3.data[0].content)
|
||||
const result4 = JSON.parse(res4.data[0].content)
|
||||
const result5 = JSON.parse(res5.data[0].content)
|
||||
const result6 = JSON.parse(res6.data[0].content)
|
||||
const result7 = JSON.parse(res7.data[0].content)
|
||||
this.$i18n.mergeLocaleMessage('en_US', result2) //添加英文
|
||||
this.$i18n.mergeLocaleMessage('zh_CN', result) //添加中文
|
||||
this.$i18n.mergeLocaleMessage('fr_FR', result3) //添加法语
|
||||
this.$i18n.mergeLocaleMessage('es_ES', result4) //添加西班牙语
|
||||
this.$i18n.mergeLocaleMessage('ar_EG', result5) //添加阿拉伯语
|
||||
this.$i18n.mergeLocaleMessage('de_DE', result6) //添加德语
|
||||
this.$i18n.mergeLocaleMessage('pl_PL', result7) //添加波兰语
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -263,6 +272,7 @@ export default {
|
||||
},
|
||||
changeLanguage (val) {
|
||||
this.$u.vuex("vuex_language", val[0].value);
|
||||
this.$u.vuex("vuex_configLang", val[0].prop);
|
||||
this.$i18n.locale = val[0].value
|
||||
},
|
||||
uploadFile () {
|
||||
@ -375,7 +385,6 @@ export default {
|
||||
aesKey: publicData.keyData,
|
||||
iv: publicData.ivData,
|
||||
}
|
||||
|
||||
this.$u.api
|
||||
.login(params)
|
||||
.then((res) => {
|
||||
@ -432,6 +441,7 @@ export default {
|
||||
this.$u.api.alarm.GetNewStationlist().then((res) => {
|
||||
this.$u.vuex("vuex_provinceStation", res.data.list)
|
||||
this.$u.vuex("vuex_currentStation", res.data.list[0].list[0].list[0])
|
||||
this.$u.vuex("vuex_inverterFlag", res.data.list[0].list[0].list[0].inverterFlag)
|
||||
})
|
||||
},
|
||||
wxLogin (res) {
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
</view>
|
||||
<u-cell-group class="form" :border="false">
|
||||
<navigator url="" open-type="navigate">
|
||||
<u-cell-item :title="$t('homePage.mine.companyHomepage')">https://www.hoenergypower.cn</u-cell-item>
|
||||
<u-cell-item :title="$t('homePage.mine.companyHomepage')">https://www.zetatech-energy.com</u-cell-item>
|
||||
</navigator>
|
||||
<navigator>
|
||||
<u-cell-item :arrow="false" :title="$t('homePage.mine.technicalServices')">15389457063</u-cell-item>
|
||||
@ -23,7 +23,7 @@
|
||||
</u-row>
|
||||
<view class="copyright">
|
||||
<view> 版权所有</view>
|
||||
<view>Copyright © 2021 hoenergy.com</view>
|
||||
<view>Copyright © 2025 zzkj-cloud.com</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@ -14,7 +14,11 @@
|
||||
return {
|
||||
charge_option: {},
|
||||
stationId: null,
|
||||
chartLoading: false
|
||||
chartLoading: false,
|
||||
chartChargePv:{
|
||||
chartChargeEle:[],
|
||||
chartPv:[]
|
||||
}
|
||||
}
|
||||
},
|
||||
props: {
|
||||
@ -27,14 +31,16 @@
|
||||
currentStation() {
|
||||
return this.vuex_currentStation;
|
||||
},
|
||||
|
||||
inverterFlag(){
|
||||
return this.vuex_inverterFlag;
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
currentStation: {
|
||||
handler(val) {
|
||||
if (val && val.id) {
|
||||
this.stationId = val.id
|
||||
this.GetChargeChart()
|
||||
this.getData();
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
@ -43,7 +49,7 @@
|
||||
activeTime: {
|
||||
handler(val) {
|
||||
if (val && this.stationId) {
|
||||
this.GetChargeChart()
|
||||
this.getData();
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
@ -52,8 +58,32 @@
|
||||
},
|
||||
|
||||
methods: {
|
||||
getData() {
|
||||
this.GetChargeChart()
|
||||
async getData() {
|
||||
await this.GetChargeChart()
|
||||
if(this.inverterFlag === 1){
|
||||
this.GetPvChart()
|
||||
}
|
||||
},
|
||||
async GetPvChart() {
|
||||
this.chartLoading = true
|
||||
//充放电曲线
|
||||
let self = this;
|
||||
return new Promise((resolve, reject) => {
|
||||
self.$u.api.homePageData
|
||||
.getPvElecData({
|
||||
stationId: this.stationId,
|
||||
type: this.activeTime,
|
||||
})
|
||||
.then((res) => {
|
||||
self.chartLoading = false;
|
||||
self.chartChargePv.chartPv = res.data;
|
||||
self.initChargeChart(self.chartChargePv);
|
||||
resolve();
|
||||
})
|
||||
.catch((err) => {
|
||||
reject("错误");
|
||||
});
|
||||
});
|
||||
},
|
||||
async GetChargeChart() {
|
||||
this.chartLoading = true
|
||||
@ -67,7 +97,11 @@
|
||||
})
|
||||
.then((res) => {
|
||||
self.chartLoading = false
|
||||
if(self.inverterFlag !== 1){
|
||||
self.initChargeChart(res.data);
|
||||
}else{
|
||||
self.chartChargePv.chartChargeEle = res.data;
|
||||
}
|
||||
resolve();
|
||||
})
|
||||
.catch((err) => {
|
||||
@ -81,12 +115,13 @@
|
||||
let discharge_data = [];
|
||||
let pv_data = [];
|
||||
let benefit_data = [];
|
||||
if (val && val.length > 0) {
|
||||
val.forEach((item) => {
|
||||
let self = this;
|
||||
if (val.chartChargeEle && val.chartChargeEle.length > 0) {
|
||||
val.chartChargeEle.forEach((item,idx) => {
|
||||
x_data.push(item.date);
|
||||
charge_data.push(item.chargeElec);
|
||||
discharge_data.push(item.dischargeElec);
|
||||
pv_data.push(item.pvChargeElec);
|
||||
if(self.inverterFlag === 1){pv_data.push(val.chartPv.length > 0? val.chartPv[idx].powerGenerate:'0')};
|
||||
benefit_data.push(item.income);
|
||||
});
|
||||
} else {
|
||||
@ -96,6 +131,43 @@
|
||||
pv_data = [0, 0, 0, 0, 0, 0, 0];
|
||||
benefit_data = [0, 0, 0, 0, 0, 0, 0];
|
||||
}
|
||||
let optionConfigPv = {
|
||||
color: ["#009458", "#BFE49F", "#3977B1"],
|
||||
legend:[this.$t('homePage.home.charge'), this.$t('homePage.home.disCharge'), this.$t(
|
||||
'homePage.home.photovoltaicCharge')],
|
||||
series: [{
|
||||
data: charge_data,
|
||||
type: "bar",
|
||||
name: this.$t('homePage.home.charge'),
|
||||
},
|
||||
{
|
||||
data: discharge_data,
|
||||
type: "bar",
|
||||
name: this.$t('homePage.home.disCharge'),
|
||||
},
|
||||
{
|
||||
data: pv_data,
|
||||
type: "bar",
|
||||
name: this.$t('homePage.home.photovoltaicCharge'),
|
||||
}
|
||||
|
||||
]
|
||||
};
|
||||
let optionConfig = {
|
||||
color: ["#009458", "#BFE49F"],
|
||||
legend:[this.$t('homePage.home.charge'), this.$t('homePage.home.disCharge')],
|
||||
series: [{
|
||||
data: charge_data,
|
||||
type: "bar",
|
||||
name: this.$t('homePage.home.charge'),
|
||||
},
|
||||
{
|
||||
data: discharge_data,
|
||||
type: "bar",
|
||||
name: this.$t('homePage.home.disCharge'),
|
||||
}
|
||||
]
|
||||
};
|
||||
//充放电图表
|
||||
this.charge_option = {
|
||||
tooltip: {
|
||||
@ -145,7 +217,7 @@
|
||||
return [x, y];
|
||||
},
|
||||
},
|
||||
color: ["#009458", "#BFE49F", "#3977B1"],
|
||||
color: self.inverterFlag === 1? optionConfigPv.color:optionConfig.color,
|
||||
legend: {
|
||||
animation: false,
|
||||
right: "0",
|
||||
@ -153,8 +225,7 @@
|
||||
icon: "rect",
|
||||
itemWidth: 10,
|
||||
itemHeight: 10,
|
||||
data: [this.$t('homePage.home.charge'), this.$t('homePage.home.disCharge'), this.$t(
|
||||
'homePage.home.photovoltaicCharge')],
|
||||
data: self.inverterFlag === 1? optionConfigPv.legend:optionConfig.legend,
|
||||
},
|
||||
grid: {
|
||||
left: "15%",
|
||||
@ -212,23 +283,7 @@
|
||||
},
|
||||
},
|
||||
},
|
||||
series: [{
|
||||
data: charge_data,
|
||||
type: "bar",
|
||||
name: this.$t('homePage.home.charge'),
|
||||
},
|
||||
{
|
||||
data: discharge_data,
|
||||
type: "bar",
|
||||
name: this.$t('homePage.home.disCharge'),
|
||||
},
|
||||
{
|
||||
data: pv_data,
|
||||
type: "bar",
|
||||
name: this.$t('homePage.home.photovoltaicCharge'),
|
||||
},
|
||||
|
||||
],
|
||||
series: self.inverterFlag === 1? optionConfigPv.series:optionConfig.series,
|
||||
};
|
||||
},
|
||||
},
|
||||
|
||||
@ -105,7 +105,7 @@ export default {
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
width: 199rpx;
|
||||
height: 110rpx;
|
||||
// height: 110rpx;
|
||||
justify-content: center;
|
||||
padding: 10rpx;
|
||||
background: #d7e9e548;
|
||||
@ -143,9 +143,9 @@ export default {
|
||||
.title {
|
||||
padding-left: 10rpx;
|
||||
width: 100%;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis; //文本超出省略号替
|
||||
// white-space: nowrap;
|
||||
// overflow: hidden;
|
||||
// text-overflow: ellipsis; //文本超出省略号替
|
||||
color: #2a2a2a;
|
||||
}
|
||||
}
|
||||
|
||||
@ -105,7 +105,7 @@ export default {
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
width: 199rpx;
|
||||
height: 110rpx;
|
||||
// height: 110rpx;
|
||||
justify-content: center;
|
||||
padding: 10rpx;
|
||||
background: rgba(254, 131, 15, 0.05);
|
||||
@ -143,9 +143,9 @@ export default {
|
||||
.title {
|
||||
padding-left: 10rpx;
|
||||
width: 100%;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis; //文本超出省略号替
|
||||
// white-space: nowrap;
|
||||
// overflow: hidden;
|
||||
// text-overflow: ellipsis; //文本超出省略号替
|
||||
color: #2a2a2a;
|
||||
}
|
||||
}
|
||||
|
||||
83
pages/tabbar/components/grid/index.vue
Normal file
@ -0,0 +1,83 @@
|
||||
<template>
|
||||
<view class="grid" :style="{'grid-template-columns': `repeat(${col}, 1fr)`}">
|
||||
<zero-loading v-if="loading"></zero-loading>
|
||||
<template v-else>
|
||||
<view class="item" v-for="(item,index) in list" :key="index">
|
||||
<image v-if="item.showMark" src="/static/aidex/images/history-icon.png" mode="" class="rightMark"></image>
|
||||
<view>
|
||||
<image :src="item.image" mode="" :style="{height:imgHeight,width:imgWidth}"></image>
|
||||
</view>
|
||||
<view class="num">
|
||||
{{item.value}}
|
||||
</view>
|
||||
<view class="label">
|
||||
{{item.label}}
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
loading:{
|
||||
type: Boolean,
|
||||
default:false
|
||||
},
|
||||
list: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
},
|
||||
col: {
|
||||
type: Number,
|
||||
default: 2
|
||||
},
|
||||
imgHeight: {
|
||||
type: String,
|
||||
default: '40rpx'
|
||||
},
|
||||
imgWidth: {
|
||||
type: String,
|
||||
default: '40rpx'
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.grid {
|
||||
display: grid;
|
||||
gap: 22rpx;
|
||||
background-color: #fff;
|
||||
border-radius: 30rpx;
|
||||
margin-top: 26rpx;
|
||||
.item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
background-color: #F4F8F7;
|
||||
padding: 24rpx 0;
|
||||
border-radius: 10rpx;
|
||||
position: relative;
|
||||
.num {
|
||||
font-size: 36rpx;
|
||||
color: #5A5A5A;
|
||||
}
|
||||
.label {
|
||||
font-size: 24rpx;
|
||||
color: #5A5A5A;
|
||||
text-align: center;
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
.rightMark {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
height: 40rpx;
|
||||
width: 40rpx;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@ -21,9 +21,7 @@
|
||||
<view class="item-num">{{ panelData.totalCapacity | kwhFormat }}
|
||||
|
||||
</view>
|
||||
<view class="item-title">{{ this.$t('homePage.home.totalCapacity') }}({{
|
||||
panelData.totalCapacity | kwhUnitFormat
|
||||
}})</view>
|
||||
<view class="item-title">{{ this.$t('homePage.home.totalCapacity') }}({{ panelData.totalCapacity | kwhUnitFormat }})</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="group-item">
|
||||
|
||||
@ -87,8 +87,7 @@
|
||||
<image src="/static/aidex/images/rfdl.png"></image>
|
||||
</view>
|
||||
<view class="item-con">
|
||||
<view class="item-num">{{ panelData.dailyDischargeElec | kwhFormat
|
||||
}}</view>
|
||||
<view class="item-num">{{ panelData.dailyDischargeElec | kwhFormat }}</view>
|
||||
<view class="item-title">{{ this.$t('homePage.home.dailyDischarge') }}({{ panelData.dailyDischargeElec | kwhUnitFormat }})</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
2246
pages/tabbar/components/topology/ceshiL.vue
Normal file
777
pages/tabbar/components/topology/ceshiT.vue
Normal file
@ -1014,7 +1014,7 @@
|
||||
stationId: this.stationId,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(this.textCanvasData);
|
||||
// console.log(this.textCanvasData);
|
||||
this.partList = res.data
|
||||
this.textCanvasData[5].font[1].text = this.partList.length ? this.partList[0].soc + '' : "";
|
||||
this.textCanvasData[6].font[1].text = this.partList.length ? this.partList[0].soh + '' : "";
|
||||
|
||||
1209
pages/tabbar/components/topology/pv2AndStorageSts.vue
Normal file
1171
pages/tabbar/components/topology/pv2first.vue
Normal file
2623
pages/tabbar/components/topology/pv8FourthTopCenter.vue
Normal file
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<view class="warp">
|
||||
<topoCanvas cId="secondcanvas" :width="'100%'" :height="'100%'" :canvas-data="canvasData" :noloading="noloading"/>
|
||||
<topoCanvas ref="topoCanvasRef" cId="secondcanvas" :width="'100%'" :height="'100%'" :canvas-data="canvasData" :noloading="noloading"/>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
@ -266,7 +266,175 @@
|
||||
isMove: false,
|
||||
r: 3,
|
||||
},
|
||||
]
|
||||
],
|
||||
animationId: null, // requestAnimationFrame ID
|
||||
movingPoints: [
|
||||
// 点1:左上角 → 向右移动
|
||||
{
|
||||
x: 60,
|
||||
y: 30,
|
||||
path: [{
|
||||
x: 60,
|
||||
y: 30
|
||||
}, // 起点
|
||||
{
|
||||
x: 240,
|
||||
y: 30
|
||||
} // 终点
|
||||
],
|
||||
currentStep: 0, // 当前在路径的哪一步
|
||||
isActive: false, // 标识动画是否激活
|
||||
id: 'point-1'
|
||||
},
|
||||
// 点2:左上角 → 向右 → 向下
|
||||
{
|
||||
x: 60,
|
||||
y: 30,
|
||||
path: [{
|
||||
x: 60,
|
||||
y: 30
|
||||
},
|
||||
{
|
||||
x: 110,
|
||||
y: 30
|
||||
},
|
||||
{
|
||||
x: 110,
|
||||
y: 85
|
||||
}
|
||||
],
|
||||
currentStep: 0,
|
||||
isActive: false, // 标识动画是否激活
|
||||
id: 'point-2'
|
||||
},
|
||||
// 点3:中间下 → 向下 → 向左 → 向下
|
||||
{
|
||||
x: 110,
|
||||
y: 127,
|
||||
path: [{
|
||||
x: 110,
|
||||
y: 127
|
||||
},
|
||||
{
|
||||
x: 110,
|
||||
y: 150
|
||||
},
|
||||
{
|
||||
x: 60,
|
||||
y: 150
|
||||
},
|
||||
{
|
||||
x: 60,
|
||||
y: 190
|
||||
}
|
||||
],
|
||||
currentStep: 0,
|
||||
isActive: false, // 标识动画是否激活
|
||||
id: 'point-3'
|
||||
},
|
||||
// 点5:中间下 → 向下 → 向右 → 向下
|
||||
{
|
||||
x: 110,
|
||||
y: 127,
|
||||
path: [{
|
||||
x: 110,
|
||||
y: 127
|
||||
},
|
||||
{
|
||||
x: 110,
|
||||
y: 150
|
||||
},
|
||||
{
|
||||
x: 270,
|
||||
y: 150
|
||||
},
|
||||
{
|
||||
x: 270,
|
||||
y: 190
|
||||
}
|
||||
],
|
||||
currentStep: 0,
|
||||
isActive: false, // 标识动画是否激活
|
||||
id: 'point-5'
|
||||
},
|
||||
// 点6:中间上 → 向上 → 向右
|
||||
{
|
||||
x: 110,
|
||||
y: 85,
|
||||
path: [{
|
||||
x: 110,
|
||||
y: 85
|
||||
},
|
||||
{
|
||||
x: 110,
|
||||
y: 30
|
||||
},
|
||||
{
|
||||
x: 240,
|
||||
y: 30
|
||||
} // 终点
|
||||
],
|
||||
currentStep: 0,
|
||||
isActive: false, // 标识动画是否激活
|
||||
id: 'point-6'
|
||||
},
|
||||
// 点7:左下角 → 向上 → 向右 → 向上
|
||||
{
|
||||
x: 60,
|
||||
y: 190,
|
||||
path: [{
|
||||
x: 60,
|
||||
y: 190
|
||||
},
|
||||
{
|
||||
x: 60,
|
||||
y: 150
|
||||
},
|
||||
{
|
||||
x: 110,
|
||||
y: 150
|
||||
},
|
||||
{
|
||||
x: 110,
|
||||
y: 127
|
||||
}
|
||||
],
|
||||
currentStep: 0,
|
||||
isActive: false, // 标识动画是否激活
|
||||
id: 'point-7'
|
||||
},
|
||||
// 点9:右下角 → 向上 → 向左 → 向上
|
||||
{
|
||||
x: 270,
|
||||
y: 190,
|
||||
path: [{
|
||||
x: 270,
|
||||
y: 190
|
||||
},
|
||||
{
|
||||
x: 270,
|
||||
y: 150
|
||||
},
|
||||
{
|
||||
x: 110,
|
||||
y: 150
|
||||
},
|
||||
{
|
||||
x: 110,
|
||||
y: 127
|
||||
}
|
||||
],
|
||||
currentStep: 0,
|
||||
isActive: false, // 标识动画是否激活
|
||||
id: 'point-9'
|
||||
}
|
||||
],
|
||||
pointSpeed: 1.5, // 移动速度(像素/帧)
|
||||
kWValues: {
|
||||
left: null, // 存储 getLeftPcs 的 kW 值
|
||||
right: null // 存储 getRightPcs 的 kW 值
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@ -274,8 +442,117 @@
|
||||
return this.vuex_currentStation;
|
||||
},
|
||||
},
|
||||
|
||||
beforeDestroy() {
|
||||
// 强制取消动画帧
|
||||
if (this.animationId) {
|
||||
if (typeof requestAnimationFrame !== 'undefined') {
|
||||
cancelAnimationFrame(this.animationId);
|
||||
} else {
|
||||
clearTimeout(this.animationId);
|
||||
}
|
||||
this.animationId = null; // 重置ID
|
||||
}
|
||||
// 重置所有动态点状态
|
||||
this.movingPoints.forEach(point => {
|
||||
point.isActive = false;
|
||||
point.currentStep = 0;
|
||||
point.x = point.path[0].x;
|
||||
point.y = point.path[0].y;
|
||||
});
|
||||
// 清空canvasData
|
||||
this.canvasData = [];
|
||||
},
|
||||
watch:{
|
||||
stationId(newVal,oldVal){
|
||||
if (newVal) {
|
||||
this.getData(newVal);
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 启动动画
|
||||
startAnimation() {
|
||||
const canvasRef = this.$refs.topoCanvasRef;
|
||||
if (!canvasRef) return;
|
||||
|
||||
// 清除旧动画
|
||||
if (this.animationId !== null) {
|
||||
if (requestAnimationFrame && this.animationId) {
|
||||
cancelAnimationFrame(this.animationId);
|
||||
} else {
|
||||
clearTimeout(this.animationId);
|
||||
}
|
||||
this.animationId = null;
|
||||
}
|
||||
|
||||
// 直接启动新动画
|
||||
this.animate();
|
||||
},
|
||||
|
||||
animate() {
|
||||
const canvasRef = this.$refs.topoCanvasRef;
|
||||
if (!canvasRef) return;
|
||||
|
||||
const animateFrame = () => {
|
||||
// 1. 更新移动点的位置
|
||||
this.movingPoints.forEach(point => {
|
||||
if (!point.isActive) return;
|
||||
const currentIndex = point.currentStep;
|
||||
const nextTarget = point.path[currentIndex + 1];
|
||||
|
||||
if (!nextTarget) {
|
||||
point.x = point.path[0].x;
|
||||
point.y = point.path[0].y;
|
||||
point.currentStep = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
const dx = nextTarget.x - point.x;
|
||||
const dy = nextTarget.y - point.y;
|
||||
const distance = Math.sqrt(dx * dx + dy * dy);
|
||||
|
||||
if (distance < this.pointSpeed) {
|
||||
point.x = nextTarget.x;
|
||||
point.y = nextTarget.y;
|
||||
point.currentStep++;
|
||||
} else {
|
||||
point.x += (dx / distance) * this.pointSpeed;
|
||||
point.y += (dy / distance) * this.pointSpeed;
|
||||
}
|
||||
});
|
||||
|
||||
// 2. 更新 canvasData 中的动态点
|
||||
this.updateMovingPoints();
|
||||
|
||||
// 3. 清除并重绘
|
||||
canvasRef.clear();
|
||||
canvasRef.draw(null);
|
||||
|
||||
// 4. 继续下一帧(✅ 安全判断)
|
||||
if (typeof requestAnimationFrame !== 'undefined') {
|
||||
this.animationId = requestAnimationFrame(animateFrame);
|
||||
} else {
|
||||
this.animationId = setTimeout(animateFrame, 16);
|
||||
}
|
||||
};
|
||||
|
||||
// 启动第一帧(✅ 安全判断)
|
||||
if (typeof requestAnimationFrame !== 'undefined') {
|
||||
requestAnimationFrame(animateFrame);
|
||||
} else {
|
||||
setTimeout(animateFrame, 16);
|
||||
}
|
||||
},
|
||||
updateMovingPoints() {
|
||||
this.movingPoints.forEach(point => {
|
||||
const dataIndex = this.canvasData.findIndex(item => item.id === point.id);
|
||||
if (dataIndex !== -1) {
|
||||
this.canvasData[dataIndex].coord = [
|
||||
[point.x, point.y]
|
||||
];
|
||||
}
|
||||
});
|
||||
},
|
||||
changeEnglish(){
|
||||
this.textCanvasData = [
|
||||
{
|
||||
@ -332,14 +609,66 @@
|
||||
|
||||
},
|
||||
getData(val){
|
||||
// 彻底重置画布数据
|
||||
this.canvasData = [];
|
||||
// 重置所有点状态
|
||||
this.movingPoints.forEach(point => (point.isActive = false,point.isMove = false,point.currentStep = 0,point.x = point.path[0].x,point.y = point.path[0].y));
|
||||
this.stationId = val
|
||||
this.textCanvasData.splice(3)
|
||||
const api = [this.getLeftPcs(),this.getRightPcs(),this.getAmmeter()]
|
||||
Promise.all(api).finally((result) => {
|
||||
// 获取三个 kW 值
|
||||
const {
|
||||
left,
|
||||
right
|
||||
} = this.kWValues;
|
||||
const values = [left, right];
|
||||
const allZero = values.every(v => v === 0);
|
||||
const anyPositive = values.some(v => v > 0);
|
||||
const anyNegative = values.some(v => v < 0);
|
||||
|
||||
// 重置所有点(确保干净)
|
||||
this.movingPoints.forEach(p => (p.isActive = false));
|
||||
|
||||
// 条件3:全部为0 → 只显示点1
|
||||
if (allZero) {
|
||||
this.movingPoints.find(p => p.id === 'point-1').isActive = true;
|
||||
}
|
||||
// 否则按原逻辑处理
|
||||
else {
|
||||
// 条件1:任一大于0 → 点6运动
|
||||
if (anyPositive) {
|
||||
this.movingPoints.find(p => p.id === 'point-1').isActive = true;
|
||||
this.movingPoints.find(p => p.id === 'point-2').isActive = true;
|
||||
}
|
||||
// 条件2:任一小于0 → 点1和点2运动
|
||||
if (anyNegative) {
|
||||
this.movingPoints.find(p => p.id === 'point-6').isActive = true;
|
||||
}
|
||||
|
||||
// 再设置点3~9的显示逻辑
|
||||
this.updatePcsPoints();
|
||||
}
|
||||
this.canvasData = [...this.textCanvasData, ...this.imageCanvasData, ...this
|
||||
.lineCanvasData, ...this.circleCanvasData
|
||||
]
|
||||
// 动态添加 movingPoints
|
||||
this.movingPoints.forEach(point => {
|
||||
this.canvasData.push({
|
||||
type: "circle",
|
||||
id: point.id,
|
||||
coord: [
|
||||
[point.x, point.y]
|
||||
],
|
||||
color: "#3AECA1",
|
||||
r: 3,
|
||||
isMove: true
|
||||
});
|
||||
});
|
||||
this.noloading = true
|
||||
this.$nextTick(() => {
|
||||
this.startAnimation();
|
||||
});
|
||||
});
|
||||
},
|
||||
countChineseAndEnglishCharacters(str, x) {
|
||||
@ -406,7 +735,10 @@
|
||||
.then((res) => {
|
||||
if(res.data && res.data.length){
|
||||
res.data.forEach((item,index) => {
|
||||
|
||||
if (item.name.includes('kW')) { // 检查是否包含'kW'
|
||||
const value = parseFloat(item.value);
|
||||
this.kWValues.left = value; // 只记录
|
||||
}
|
||||
this.textCanvasData.push(
|
||||
{
|
||||
type: "text",
|
||||
@ -435,9 +767,13 @@
|
||||
)
|
||||
|
||||
})
|
||||
} else {
|
||||
this.kWValues.left = 0; // 没数据视为 0
|
||||
}
|
||||
|
||||
resolve()
|
||||
}).catch(() => {
|
||||
this.kWValues.left = 0; // 出错也视为 0
|
||||
resolve();
|
||||
})
|
||||
})
|
||||
|
||||
@ -453,7 +789,10 @@
|
||||
.then((res) => {
|
||||
if(res.data && res.data.length){
|
||||
res.data.forEach((item,index) => {
|
||||
|
||||
if (item.name.includes('kW')) { // 检查是否包含'kW'
|
||||
const value = parseFloat(item.value);
|
||||
this.kWValues.right = value;
|
||||
}
|
||||
this.textCanvasData.push(
|
||||
{
|
||||
type: "text",
|
||||
@ -482,12 +821,49 @@
|
||||
)
|
||||
|
||||
})
|
||||
} else {
|
||||
this.kWValues.right = 0;
|
||||
}
|
||||
|
||||
resolve()
|
||||
}).catch(() => {
|
||||
this.kWValues.right = 0;
|
||||
resolve();
|
||||
})
|
||||
})
|
||||
|
||||
},
|
||||
updatePcsPoints() {
|
||||
const { left, right } = this.kWValues;
|
||||
|
||||
// 处理左边:点3 和 点7
|
||||
const point3 = this.movingPoints.find(p => p.id === 'point-3');
|
||||
const point7 = this.movingPoints.find(p => p.id === 'point-7');
|
||||
|
||||
if (left === 0) {
|
||||
point3.isActive = false;
|
||||
point7.isActive = false;
|
||||
} else if (left > 0) {
|
||||
point3.isActive = true;
|
||||
point7.isActive = false;
|
||||
} else if (left < 0) {
|
||||
point3.isActive = false;
|
||||
point7.isActive = true;
|
||||
}
|
||||
// 处理右边:点5 和 点9
|
||||
const point5 = this.movingPoints.find(p => p.id === 'point-5');
|
||||
const point9 = this.movingPoints.find(p => p.id === 'point-9');
|
||||
|
||||
if (right === 0) {
|
||||
point5.isActive = false;
|
||||
point9.isActive = false;
|
||||
} else if (right > 0) {
|
||||
point5.isActive = true;
|
||||
point9.isActive = false;
|
||||
} else if (right < 0) {
|
||||
point5.isActive = false;
|
||||
point9.isActive = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<view class="warp">
|
||||
<topoCanvas :cId="canvasId" :width="'100%'" :height="'100%'" :canvas-data="canvasData" :noloading="noloading" />
|
||||
<topoCanvas ref="topoCanvasRef" :cId="canvasId" :width="'100%'" :height="'100%'" :canvas-data="canvasData" :noloading="noloading" />
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
@ -214,7 +214,65 @@
|
||||
r: 3
|
||||
},
|
||||
|
||||
]
|
||||
],
|
||||
animationId: null, // requestAnimationFrame ID
|
||||
movingPoints: [
|
||||
// 点1:左上角 → 向右移动
|
||||
{
|
||||
x: 50,
|
||||
y: 110,
|
||||
path: [{
|
||||
x: 50,
|
||||
y: 110
|
||||
}, // 起点
|
||||
{
|
||||
x: 140,
|
||||
y: 110
|
||||
} // 终点
|
||||
],
|
||||
currentStep: 0, // 当前在路径的哪一步
|
||||
isActive: false, // 标识动画是否激活
|
||||
id: 'point-1'
|
||||
},
|
||||
// 点2:左上角 → 向右移动
|
||||
{
|
||||
x: 185,
|
||||
y: 110,
|
||||
path: [{
|
||||
x: 185,
|
||||
y: 110
|
||||
}, // 起点
|
||||
{
|
||||
x: 260,
|
||||
y: 110
|
||||
} // 终点
|
||||
],
|
||||
currentStep: 0, // 当前在路径的哪一步
|
||||
isActive: false, // 标识动画是否激活
|
||||
id: 'point-2'
|
||||
},
|
||||
// 点3:左上角 → 向右移动
|
||||
{
|
||||
x: 260,
|
||||
y: 110,
|
||||
path: [{
|
||||
x: 260,
|
||||
y: 110
|
||||
}, // 起点
|
||||
{
|
||||
x: 185,
|
||||
y: 110
|
||||
} // 终点
|
||||
],
|
||||
currentStep: 0, // 当前在路径的哪一步
|
||||
isActive: false, // 标识动画是否激活
|
||||
id: 'point-3'
|
||||
}
|
||||
],
|
||||
pointSpeed: 1.5, // 移动速度(像素/帧)
|
||||
kWValues: {
|
||||
right: null // 存储 getRightPcs 的 kW 值
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@ -222,8 +280,119 @@
|
||||
return this.vuex_currentStation;
|
||||
},
|
||||
},
|
||||
beforeDestroy() {
|
||||
// 强制取消动画帧
|
||||
if (this.animationId) {
|
||||
if (typeof requestAnimationFrame !== 'undefined') {
|
||||
cancelAnimationFrame(this.animationId);
|
||||
} else {
|
||||
clearTimeout(this.animationId);
|
||||
}
|
||||
this.animationId = null; // 重置ID
|
||||
}
|
||||
// 重置所有动态点状态
|
||||
this.movingPoints.forEach(point => {
|
||||
point.isActive = false;
|
||||
point.currentStep = 0;
|
||||
point.x = point.path[0].x;
|
||||
point.y = point.path[0].y;
|
||||
});
|
||||
// 清空canvasData
|
||||
this.canvasData = [];
|
||||
},
|
||||
watch:{
|
||||
stationId(newVal,oldVal){
|
||||
console.log(newVal,oldVal);
|
||||
if (newVal) {
|
||||
this.getData(newVal);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
// 启动动画
|
||||
startAnimation() {
|
||||
const canvasRef = this.$refs.topoCanvasRef;
|
||||
if (!canvasRef) return;
|
||||
|
||||
// 清除旧动画
|
||||
if (this.animationId !== null) {
|
||||
if (requestAnimationFrame && this.animationId) {
|
||||
cancelAnimationFrame(this.animationId);
|
||||
} else {
|
||||
clearTimeout(this.animationId);
|
||||
}
|
||||
this.animationId = null;
|
||||
}
|
||||
|
||||
// 直接启动新动画
|
||||
this.animate();
|
||||
},
|
||||
|
||||
animate() {
|
||||
const canvasRef = this.$refs.topoCanvasRef;
|
||||
if (!canvasRef) return;
|
||||
|
||||
const animateFrame = () => {
|
||||
// 1. 更新移动点的位置
|
||||
this.movingPoints.forEach(point => {
|
||||
if (!point.isActive) return;
|
||||
const currentIndex = point.currentStep;
|
||||
const nextTarget = point.path[currentIndex + 1];
|
||||
|
||||
if (!nextTarget) {
|
||||
point.x = point.path[0].x;
|
||||
point.y = point.path[0].y;
|
||||
point.currentStep = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
const dx = nextTarget.x - point.x;
|
||||
const dy = nextTarget.y - point.y;
|
||||
const distance = Math.sqrt(dx * dx + dy * dy);
|
||||
|
||||
if (distance < this.pointSpeed) {
|
||||
point.x = nextTarget.x;
|
||||
point.y = nextTarget.y;
|
||||
point.currentStep++;
|
||||
} else {
|
||||
point.x += (dx / distance) * this.pointSpeed;
|
||||
point.y += (dy / distance) * this.pointSpeed;
|
||||
}
|
||||
});
|
||||
|
||||
// 2. 更新 canvasData 中的动态点
|
||||
this.updateMovingPoints();
|
||||
|
||||
// 3. 清除并重绘
|
||||
canvasRef.clear();
|
||||
canvasRef.draw(null);
|
||||
|
||||
// 4. 继续下一帧(✅ 安全判断)
|
||||
if (typeof requestAnimationFrame !== 'undefined') {
|
||||
this.animationId = requestAnimationFrame(animateFrame);
|
||||
} else {
|
||||
this.animationId = setTimeout(animateFrame, 16);
|
||||
}
|
||||
};
|
||||
|
||||
// 启动第一帧(✅ 安全判断)
|
||||
if (typeof requestAnimationFrame !== 'undefined') {
|
||||
requestAnimationFrame(animateFrame);
|
||||
} else {
|
||||
setTimeout(animateFrame, 16);
|
||||
}
|
||||
},
|
||||
updateMovingPoints() {
|
||||
this.movingPoints.forEach(point => {
|
||||
const dataIndex = this.canvasData.findIndex(item => item.id === point.id);
|
||||
if (dataIndex !== -1) {
|
||||
this.canvasData[dataIndex].coord = [
|
||||
[point.x, point.y]
|
||||
];
|
||||
}
|
||||
});
|
||||
},
|
||||
changeEnglish() {
|
||||
this.textCanvasData = [
|
||||
// 并网柜--0
|
||||
@ -351,17 +520,42 @@
|
||||
]
|
||||
},
|
||||
getData(val) {
|
||||
|
||||
// 彻底重置画布数据
|
||||
this.canvasData = [];
|
||||
// 重置所有点状态
|
||||
this.movingPoints.forEach(point => (point.isActive = false,point.isMove = false,point.currentStep = 0,point.x = point.path[0].x,point.y = point.path[0].y));
|
||||
this.stationId = val
|
||||
this.clearData()
|
||||
const api = [
|
||||
this.getMiddleData()
|
||||
];
|
||||
Promise.all(api).finally((result) => {
|
||||
// 重置所有点(确保干净)
|
||||
this.movingPoints.forEach(p => (p.isActive = false));
|
||||
this.movingPoints.find(p => p.id === 'point-1').isActive = true;
|
||||
// 再设置点2-3的显示逻辑
|
||||
this.updatePcsPoints();
|
||||
|
||||
this.canvasData = [...this.textCanvasData, ...this.imageCanvasData, ...this
|
||||
.lineCanvasData, ...this.circleCanvasData
|
||||
]
|
||||
// 动态添加 movingPoints
|
||||
this.movingPoints.forEach(point => {
|
||||
this.canvasData.push({
|
||||
type: "circle",
|
||||
id: point.id,
|
||||
coord: [
|
||||
[point.x, point.y]
|
||||
],
|
||||
color: "#3AECA1",
|
||||
r: 3,
|
||||
isMove: true
|
||||
});
|
||||
});
|
||||
this.noloading = true
|
||||
this.$nextTick(() => {
|
||||
this.startAnimation();
|
||||
});
|
||||
});
|
||||
},
|
||||
workStatus(val, data) {
|
||||
@ -401,6 +595,9 @@
|
||||
stationId: this.stationId
|
||||
})
|
||||
.then(res => {
|
||||
if (res.data) {
|
||||
const value = parseFloat(res.data.activePowerPCS);
|
||||
this.kWValues.right = value;
|
||||
this.textCanvasData[3].font[1].text = this.workStatus(res.data.activePowerPCS, res
|
||||
.data.flowDirection)
|
||||
this.textCanvasData[4].font[1].text = res.data.activePowerPCS !== null ? res.data
|
||||
@ -409,10 +606,34 @@
|
||||
''
|
||||
this.textCanvasData[6].font[1].text = res.data.soh !== null ? res.data.soh + '' :
|
||||
''
|
||||
resolve()
|
||||
})
|
||||
})
|
||||
} else {
|
||||
this.kWValues.right = 0;
|
||||
}
|
||||
resolve()
|
||||
}).catch(() => {
|
||||
this.kWValues.right = 0;
|
||||
resolve();
|
||||
})
|
||||
})
|
||||
},
|
||||
updatePcsPoints() {
|
||||
const { right } = this.kWValues;
|
||||
// 处理右边:点5 和 点9
|
||||
const point2 = this.movingPoints.find(p => p.id === 'point-2');
|
||||
const point3 = this.movingPoints.find(p => p.id === 'point-3');
|
||||
|
||||
if (right === 0) {
|
||||
point2.isActive = false;
|
||||
point3.isActive = false;
|
||||
} else if (right > 0) {
|
||||
point2.isActive = true;
|
||||
point3.isActive = false;
|
||||
} else if (right < 0) {
|
||||
point2.isActive = false;
|
||||
point3.isActive = true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
<template>
|
||||
<view class="warp">
|
||||
<topoCanvas cId="thirdcanvas" :width="'100%'" :height="'100%'" :canvas-data="canvasData" :noloading="noloading"/>
|
||||
<topoCanvas ref="topoCanvasRef" cId="thirdcanvas" :width="'100%'" :height="'100%'" :canvas-data="canvasData"
|
||||
:noloading="noloading" />
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
@ -13,10 +14,9 @@
|
||||
return {
|
||||
canvasData: [],
|
||||
partList: {},
|
||||
noloading:false,
|
||||
noloading: false,
|
||||
// 文字
|
||||
textCanvasData: [
|
||||
{
|
||||
textCanvasData: [{
|
||||
type: "text",
|
||||
coord: [
|
||||
[260, 65]
|
||||
@ -81,8 +81,7 @@
|
||||
],
|
||||
|
||||
// 图片
|
||||
imageCanvasData: [
|
||||
{
|
||||
imageCanvasData: [{
|
||||
//负载
|
||||
type: "image",
|
||||
url: "/static/topology/load.png",
|
||||
@ -149,8 +148,7 @@
|
||||
|
||||
],
|
||||
// 线
|
||||
lineCanvasData: [
|
||||
{
|
||||
lineCanvasData: [{
|
||||
type: "line",
|
||||
coord: [
|
||||
[60, 30],
|
||||
@ -233,8 +231,7 @@
|
||||
|
||||
],
|
||||
// 点
|
||||
circleCanvasData: [
|
||||
{
|
||||
circleCanvasData: [{
|
||||
type: "circle",
|
||||
coord: [
|
||||
[60, 30]
|
||||
@ -306,8 +303,227 @@
|
||||
color: "#3AECA1",
|
||||
isMove: false,
|
||||
r: 3,
|
||||
}
|
||||
],
|
||||
|
||||
animationId: null, // requestAnimationFrame ID
|
||||
movingPoints: [
|
||||
// 点1:左上角 → 向右移动
|
||||
{
|
||||
x: 60,
|
||||
y: 30,
|
||||
path: [{
|
||||
x: 60,
|
||||
y: 30
|
||||
}, // 起点
|
||||
{
|
||||
x: 240,
|
||||
y: 30
|
||||
} // 终点
|
||||
],
|
||||
currentStep: 0, // 当前在路径的哪一步
|
||||
isActive: false, // 标识动画是否激活
|
||||
id: 'point-1'
|
||||
},
|
||||
]
|
||||
// 点2:左上角 → 向右 → 向下
|
||||
{
|
||||
x: 60,
|
||||
y: 30,
|
||||
path: [{
|
||||
x: 60,
|
||||
y: 30
|
||||
},
|
||||
{
|
||||
x: 110,
|
||||
y: 30
|
||||
},
|
||||
{
|
||||
x: 110,
|
||||
y: 85
|
||||
}
|
||||
],
|
||||
currentStep: 0,
|
||||
isActive: false, // 标识动画是否激活
|
||||
id: 'point-2'
|
||||
},
|
||||
// 点3:中间下 → 向下 → 向左 → 向下
|
||||
{
|
||||
x: 110,
|
||||
y: 127,
|
||||
path: [{
|
||||
x: 110,
|
||||
y: 127
|
||||
},
|
||||
{
|
||||
x: 110,
|
||||
y: 150
|
||||
},
|
||||
{
|
||||
x: 60,
|
||||
y: 150
|
||||
},
|
||||
{
|
||||
x: 60,
|
||||
y: 190
|
||||
}
|
||||
],
|
||||
currentStep: 0,
|
||||
isActive: false, // 标识动画是否激活
|
||||
id: 'point-3'
|
||||
},
|
||||
// 点4:中间下 → 向下 → 向右 → 向下
|
||||
{
|
||||
x: 110,
|
||||
y: 127,
|
||||
path: [{
|
||||
x: 110,
|
||||
y: 127
|
||||
},
|
||||
{
|
||||
x: 110,
|
||||
y: 150
|
||||
},
|
||||
{
|
||||
x: 160,
|
||||
y: 150
|
||||
},
|
||||
{
|
||||
x: 160,
|
||||
y: 190
|
||||
}
|
||||
],
|
||||
currentStep: 0,
|
||||
isActive: false, // 标识动画是否激活
|
||||
id: 'point-4'
|
||||
},
|
||||
// 点5:中间下 → 向下 → 向右 → 向下
|
||||
{
|
||||
x: 110,
|
||||
y: 127,
|
||||
path: [{
|
||||
x: 110,
|
||||
y: 127
|
||||
},
|
||||
{
|
||||
x: 110,
|
||||
y: 150
|
||||
},
|
||||
{
|
||||
x: 270,
|
||||
y: 150
|
||||
},
|
||||
{
|
||||
x: 270,
|
||||
y: 190
|
||||
}
|
||||
],
|
||||
currentStep: 0,
|
||||
isActive: false, // 标识动画是否激活
|
||||
id: 'point-5'
|
||||
},
|
||||
// 点6:中间上 → 向上 → 向右
|
||||
{
|
||||
x: 110,
|
||||
y: 85,
|
||||
path: [{
|
||||
x: 110,
|
||||
y: 85
|
||||
},
|
||||
{
|
||||
x: 110,
|
||||
y: 30
|
||||
},
|
||||
{
|
||||
x: 240,
|
||||
y: 30
|
||||
} // 终点
|
||||
],
|
||||
currentStep: 0,
|
||||
isActive: false, // 标识动画是否激活
|
||||
id: 'point-6'
|
||||
},
|
||||
// 点7:左下角 → 向上 → 向右 → 向上
|
||||
{
|
||||
x: 60,
|
||||
y: 190,
|
||||
path: [{
|
||||
x: 60,
|
||||
y: 190
|
||||
},
|
||||
{
|
||||
x: 60,
|
||||
y: 150
|
||||
},
|
||||
{
|
||||
x: 110,
|
||||
y: 150
|
||||
},
|
||||
{
|
||||
x: 110,
|
||||
y: 127
|
||||
}
|
||||
],
|
||||
currentStep: 0,
|
||||
isActive: false, // 标识动画是否激活
|
||||
id: 'point-7'
|
||||
},
|
||||
// 点8:底部中间 → 向上 → 向左 → 向上
|
||||
{
|
||||
x: 160,
|
||||
y: 190,
|
||||
path: [{
|
||||
x: 160,
|
||||
y: 190
|
||||
},
|
||||
{
|
||||
x: 160,
|
||||
y: 150
|
||||
},
|
||||
{
|
||||
x: 110,
|
||||
y: 150
|
||||
},
|
||||
{
|
||||
x: 110,
|
||||
y: 127
|
||||
}
|
||||
],
|
||||
currentStep: 0,
|
||||
isActive: false, // 标识动画是否激活
|
||||
id: 'point-8'
|
||||
},
|
||||
// 点9:右下角 → 向上 → 向左 → 向上
|
||||
{
|
||||
x: 270,
|
||||
y: 190,
|
||||
path: [{
|
||||
x: 270,
|
||||
y: 190
|
||||
},
|
||||
{
|
||||
x: 270,
|
||||
y: 150
|
||||
},
|
||||
{
|
||||
x: 110,
|
||||
y: 150
|
||||
},
|
||||
{
|
||||
x: 110,
|
||||
y: 127
|
||||
}
|
||||
],
|
||||
currentStep: 0,
|
||||
isActive: false, // 标识动画是否激活
|
||||
id: 'point-9'
|
||||
}
|
||||
],
|
||||
pointSpeed: 1.5, // 移动速度(像素/帧)
|
||||
kWValues: {
|
||||
left: null, // 存储 getLeftPcs 的 kW 值
|
||||
center: null, // 存储 getCenterPcs 的 kW 值
|
||||
right: null // 存储 getRightPcs 的 kW 值
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@ -315,11 +531,119 @@
|
||||
return this.vuex_currentStation;
|
||||
},
|
||||
},
|
||||
|
||||
beforeDestroy() {
|
||||
// 强制取消动画帧
|
||||
if (this.animationId) {
|
||||
if (typeof requestAnimationFrame !== 'undefined') {
|
||||
cancelAnimationFrame(this.animationId);
|
||||
} else {
|
||||
clearTimeout(this.animationId);
|
||||
}
|
||||
this.animationId = null; // 重置ID
|
||||
}
|
||||
// 重置所有动态点状态
|
||||
this.movingPoints.forEach(point => {
|
||||
point.isActive = false;
|
||||
point.currentStep = 0;
|
||||
point.x = point.path[0].x;
|
||||
point.y = point.path[0].y;
|
||||
});
|
||||
// 清空canvasData
|
||||
this.canvasData = [];
|
||||
},
|
||||
watch: {
|
||||
stationId(newVal, oldVal) {
|
||||
if (newVal) {
|
||||
this.getData(newVal);
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
changeEnglish(){
|
||||
this.textCanvasData = [
|
||||
{
|
||||
// 启动动画
|
||||
startAnimation() {
|
||||
const canvasRef = this.$refs.topoCanvasRef;
|
||||
if (!canvasRef) return;
|
||||
|
||||
// 清除旧动画
|
||||
if (this.animationId !== null) {
|
||||
if (requestAnimationFrame && this.animationId) {
|
||||
cancelAnimationFrame(this.animationId);
|
||||
} else {
|
||||
clearTimeout(this.animationId);
|
||||
}
|
||||
this.animationId = null;
|
||||
}
|
||||
|
||||
// 直接启动新动画
|
||||
this.animate();
|
||||
},
|
||||
|
||||
animate() {
|
||||
const canvasRef = this.$refs.topoCanvasRef;
|
||||
if (!canvasRef) return;
|
||||
|
||||
const animateFrame = () => {
|
||||
// 1. 更新移动点的位置
|
||||
this.movingPoints.forEach(point => {
|
||||
if (!point.isActive) return;
|
||||
const currentIndex = point.currentStep;
|
||||
const nextTarget = point.path[currentIndex + 1];
|
||||
|
||||
if (!nextTarget) {
|
||||
point.x = point.path[0].x;
|
||||
point.y = point.path[0].y;
|
||||
point.currentStep = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
const dx = nextTarget.x - point.x;
|
||||
const dy = nextTarget.y - point.y;
|
||||
const distance = Math.sqrt(dx * dx + dy * dy);
|
||||
|
||||
if (distance < this.pointSpeed) {
|
||||
point.x = nextTarget.x;
|
||||
point.y = nextTarget.y;
|
||||
point.currentStep++;
|
||||
} else {
|
||||
point.x += (dx / distance) * this.pointSpeed;
|
||||
point.y += (dy / distance) * this.pointSpeed;
|
||||
}
|
||||
});
|
||||
|
||||
// 2. 更新 canvasData 中的动态点
|
||||
this.updateMovingPoints();
|
||||
|
||||
// 3. 清除并重绘
|
||||
canvasRef.clear();
|
||||
canvasRef.draw(null);
|
||||
|
||||
// 4. 继续下一帧(✅ 安全判断)
|
||||
if (typeof requestAnimationFrame !== 'undefined') {
|
||||
this.animationId = requestAnimationFrame(animateFrame);
|
||||
} else {
|
||||
this.animationId = setTimeout(animateFrame, 16);
|
||||
}
|
||||
};
|
||||
|
||||
// 启动第一帧(✅ 安全判断)
|
||||
if (typeof requestAnimationFrame !== 'undefined') {
|
||||
requestAnimationFrame(animateFrame);
|
||||
} else {
|
||||
setTimeout(animateFrame, 16);
|
||||
}
|
||||
},
|
||||
updateMovingPoints() {
|
||||
this.movingPoints.forEach(point => {
|
||||
const dataIndex = this.canvasData.findIndex(item => item.id === point.id);
|
||||
if (dataIndex !== -1) {
|
||||
this.canvasData[dataIndex].coord = [
|
||||
[point.x, point.y]
|
||||
];
|
||||
}
|
||||
});
|
||||
},
|
||||
changeEnglish() {
|
||||
this.textCanvasData = [{
|
||||
type: "text",
|
||||
coord: [
|
||||
[260, 65]
|
||||
@ -383,37 +707,104 @@
|
||||
|
||||
]
|
||||
},
|
||||
getData(val){
|
||||
this.stationId = val
|
||||
this.textCanvasData.splice(5)
|
||||
const api = [this.getLeftPcs(),this.getRightPcs(),this.getCenterPcs(),this.getAmmeter()]
|
||||
Promise.all(api).finally((result) => {
|
||||
this.canvasData = [...this.textCanvasData, ...this.imageCanvasData, ...this
|
||||
.lineCanvasData, ...this.circleCanvasData
|
||||
]
|
||||
this.noloading = true
|
||||
getData(val) {
|
||||
// 彻底重置画布数据
|
||||
this.canvasData = [];
|
||||
// 重置所有点状态
|
||||
this.movingPoints.forEach(point => (point.isActive = false, point.isMove = false, point.currentStep = 0,
|
||||
point.x = point.path[0].x, point.y = point.path[0].y));
|
||||
this.stationId = val;
|
||||
this.textCanvasData.splice(5); // 清除文本数据
|
||||
|
||||
const api = [this.getLeftPcs(), this.getCenterPcs(), this.getRightPcs(), this.getAmmeter()];
|
||||
|
||||
Promise.all(api).finally(() => {
|
||||
// 获取三个 kW 值
|
||||
const {
|
||||
left,
|
||||
center,
|
||||
right
|
||||
} = this.kWValues;
|
||||
const values = [left, center, right];
|
||||
const allZero = values.every(v => v === 0);
|
||||
const anyPositive = values.some(v => v > 0);
|
||||
const anyNegative = values.some(v => v < 0);
|
||||
|
||||
// 重置所有点(确保干净)
|
||||
this.movingPoints.forEach(p => (p.isActive = false));
|
||||
|
||||
// 条件3:全部为0 → 只显示点1
|
||||
if (allZero) {
|
||||
this.movingPoints.find(p => p.id === 'point-1').isActive = true;
|
||||
}
|
||||
// 否则按原逻辑处理
|
||||
else {
|
||||
// 条件1:任一大于0 → 点6运动
|
||||
if (anyPositive) {
|
||||
this.movingPoints.find(p => p.id === 'point-1').isActive = true;
|
||||
this.movingPoints.find(p => p.id === 'point-2').isActive = true;
|
||||
}
|
||||
// 条件2:任一小于0 → 点1和点2运动
|
||||
if (anyNegative) {
|
||||
this.movingPoints.find(p => p.id === 'point-6').isActive = true;
|
||||
}
|
||||
|
||||
// 再设置点3~9的显示逻辑
|
||||
this.updatePcsPoints();
|
||||
}
|
||||
|
||||
// 重新构建 canvasData
|
||||
this.canvasData = [
|
||||
...this.textCanvasData,
|
||||
...this.imageCanvasData,
|
||||
...this.lineCanvasData,
|
||||
...this.circleCanvasData
|
||||
];
|
||||
|
||||
// 动态添加 movingPoints
|
||||
this.movingPoints.forEach(point => {
|
||||
this.canvasData.push({
|
||||
type: "circle",
|
||||
id: point.id,
|
||||
coord: [
|
||||
[point.x, point.y]
|
||||
],
|
||||
color: "#3AECA1",
|
||||
r: 3,
|
||||
isMove: true
|
||||
});
|
||||
});
|
||||
|
||||
this.noloading = true;
|
||||
|
||||
this.$nextTick(() => {
|
||||
this.startAnimation();
|
||||
});
|
||||
});
|
||||
},
|
||||
countChineseAndEnglishCharacters(str, x) {
|
||||
var chineseCount = str.match(/[\u4e00-\u9fa5]/g) ? str.match(/[\u4e00-\u9fa5]/g).length : 0
|
||||
var englishCount = str.match(/[a-zA-Z]/g) ? str.match(/[a-zA-Z]/g).length : 0
|
||||
var otherCount = str.length - chineseCount - englishCount
|
||||
const obj = { otherCount: otherCount, chineseCount: chineseCount, englishCount: englishCount }
|
||||
return (obj.englishCount * 4) + (obj.chineseCount * 10 ) + (obj.otherCount * 8) + x
|
||||
const obj = {
|
||||
otherCount: otherCount,
|
||||
chineseCount: chineseCount,
|
||||
englishCount: englishCount
|
||||
}
|
||||
return (obj.englishCount * 4) + (obj.chineseCount * 10) + (obj.otherCount * 8) + x
|
||||
},
|
||||
getAmmeter(){
|
||||
getAmmeter() {
|
||||
let self = this;
|
||||
return new Promise((resolve, reject) => {
|
||||
self.$u.api.homePageData
|
||||
.GetDynamicConfig({
|
||||
stationId: this.stationId,
|
||||
pageLocation:'triad-ammeter'
|
||||
pageLocation: 'triad-ammeter'
|
||||
})
|
||||
.then((res) => {
|
||||
if(res.data && res.data.length){
|
||||
res.data.forEach((item,index) => {
|
||||
this.textCanvasData.push(
|
||||
{
|
||||
if (res.data && res.data.length) {
|
||||
res.data.forEach((item, index) => {
|
||||
this.textCanvasData.push({
|
||||
type: "text",
|
||||
coord: [
|
||||
[120, 80 + index * 15]
|
||||
@ -424,11 +815,11 @@
|
||||
color: "#666666",
|
||||
width: 50,
|
||||
}]
|
||||
},
|
||||
{
|
||||
}, {
|
||||
type: "text",
|
||||
coord: [
|
||||
[this.countChineseAndEnglishCharacters(item.name,130), 80 + index * 15]
|
||||
[this.countChineseAndEnglishCharacters(item
|
||||
.name, 130), 80 + index * 15]
|
||||
],
|
||||
font: [{
|
||||
text: `${item.value}`,
|
||||
@ -436,8 +827,7 @@
|
||||
color: "#666666",
|
||||
width: 50,
|
||||
}]
|
||||
},
|
||||
)
|
||||
}, )
|
||||
|
||||
})
|
||||
}
|
||||
@ -450,17 +840,17 @@
|
||||
getLeftPcs() {
|
||||
let self = this;
|
||||
return new Promise((resolve, reject) => {
|
||||
self.$u.api.homePageData
|
||||
.GetDynamicConfig({
|
||||
self.$u.api.homePageData.GetDynamicConfig({
|
||||
stationId: this.stationId,
|
||||
pageLocation:'triad-pcs-left'
|
||||
})
|
||||
.then((res) => {
|
||||
if(res.data && res.data.length){
|
||||
res.data.forEach((item,index) => {
|
||||
|
||||
this.textCanvasData.push(
|
||||
{
|
||||
pageLocation: 'triad-pcs-left'
|
||||
}).then((res) => {
|
||||
if (res.data && res.data.length) {
|
||||
res.data.forEach((item, index) => {
|
||||
if (item.name.includes('kW')) { // 检查是否包含'kW'
|
||||
const value = parseFloat(item.value);
|
||||
this.kWValues.left = value; // 只记录
|
||||
}
|
||||
this.textCanvasData.push({
|
||||
type: "text",
|
||||
coord: [
|
||||
[0, 265 + index * 15]
|
||||
@ -471,11 +861,11 @@
|
||||
color: "#666666",
|
||||
width: 50,
|
||||
}]
|
||||
},
|
||||
{
|
||||
}, {
|
||||
type: "text",
|
||||
coord: [
|
||||
[this.countChineseAndEnglishCharacters(item.name,0), 265 + index * 15]
|
||||
[this.countChineseAndEnglishCharacters(item
|
||||
.name, 0), 265 + index * 15]
|
||||
],
|
||||
font: [{
|
||||
text: `${item.value}`,
|
||||
@ -483,13 +873,16 @@
|
||||
color: "#666666",
|
||||
width: 50,
|
||||
}]
|
||||
},
|
||||
)
|
||||
}, )
|
||||
|
||||
})
|
||||
} else {
|
||||
this.kWValues.left = 0; // 没数据视为 0
|
||||
}
|
||||
|
||||
resolve()
|
||||
}).catch(() => {
|
||||
this.kWValues.left = 0; // 出错也视为 0
|
||||
resolve();
|
||||
})
|
||||
})
|
||||
|
||||
@ -500,14 +893,16 @@
|
||||
self.$u.api.homePageData
|
||||
.GetDynamicConfig({
|
||||
stationId: this.stationId,
|
||||
pageLocation:'triad-pcs-center'
|
||||
pageLocation: 'triad-pcs-center'
|
||||
})
|
||||
.then((res) => {
|
||||
if(res.data && res.data.length){
|
||||
res.data.forEach((item,index) => {
|
||||
|
||||
this.textCanvasData.push(
|
||||
{
|
||||
if (res.data && res.data.length) {
|
||||
res.data.forEach((item, index) => {
|
||||
if (item.name.includes('kW')) { // 检查是否包含'kW'
|
||||
const value = parseFloat(item.value);
|
||||
this.kWValues.center = value;
|
||||
}
|
||||
this.textCanvasData.push({
|
||||
type: "text",
|
||||
coord: [
|
||||
[110, 265 + index * 15]
|
||||
@ -518,11 +913,11 @@
|
||||
color: "#666666",
|
||||
width: 50,
|
||||
}]
|
||||
},
|
||||
{
|
||||
}, {
|
||||
type: "text",
|
||||
coord: [
|
||||
[this.countChineseAndEnglishCharacters(item.name,110), 265 + index * 15]
|
||||
[this.countChineseAndEnglishCharacters(item
|
||||
.name, 110), 265 + index * 15]
|
||||
],
|
||||
font: [{
|
||||
text: `${item.value}`,
|
||||
@ -530,13 +925,17 @@
|
||||
color: "#666666",
|
||||
width: 50,
|
||||
}]
|
||||
},
|
||||
)
|
||||
}, )
|
||||
|
||||
})
|
||||
} else {
|
||||
this.kWValues.center = 0;
|
||||
}
|
||||
|
||||
resolve()
|
||||
}).catch(() => {
|
||||
this.kWValues.center = 0;
|
||||
resolve();
|
||||
})
|
||||
})
|
||||
|
||||
@ -547,14 +946,16 @@
|
||||
self.$u.api.homePageData
|
||||
.GetDynamicConfig({
|
||||
stationId: this.stationId,
|
||||
pageLocation:'triad-pcs-right'
|
||||
pageLocation: 'triad-pcs-right'
|
||||
})
|
||||
.then((res) => {
|
||||
if(res.data && res.data.length){
|
||||
res.data.forEach((item,index) => {
|
||||
|
||||
this.textCanvasData.push(
|
||||
{
|
||||
if (res.data && res.data.length) {
|
||||
res.data.forEach((item, index) => {
|
||||
if (item.name.includes('kW')) { // 检查是否包含'kW'
|
||||
const value = parseFloat(item.value);
|
||||
this.kWValues.right = value;
|
||||
}
|
||||
this.textCanvasData.push({
|
||||
type: "text",
|
||||
coord: [
|
||||
[220, 265 + index * 15]
|
||||
@ -565,11 +966,11 @@
|
||||
color: "#666666",
|
||||
width: 50,
|
||||
}]
|
||||
},
|
||||
{
|
||||
}, {
|
||||
type: "text",
|
||||
coord: [
|
||||
[this.countChineseAndEnglishCharacters(item.name,220), 265 + index * 15]
|
||||
[this.countChineseAndEnglishCharacters(item
|
||||
.name, 220), 265 + index * 15]
|
||||
],
|
||||
font: [{
|
||||
text: `${item.value}`,
|
||||
@ -577,17 +978,74 @@
|
||||
color: "#666666",
|
||||
width: 50,
|
||||
}]
|
||||
},
|
||||
)
|
||||
}, )
|
||||
|
||||
})
|
||||
} else {
|
||||
this.kWValues.right = 0;
|
||||
}
|
||||
|
||||
resolve()
|
||||
}).catch(() => {
|
||||
this.kWValues.right = 0;
|
||||
resolve();
|
||||
})
|
||||
})
|
||||
|
||||
},
|
||||
updatePcsPoints() {
|
||||
const {
|
||||
left,
|
||||
center,
|
||||
right
|
||||
} = this.kWValues;
|
||||
|
||||
// 处理左边:点3 和 点7
|
||||
const point3 = this.movingPoints.find(p => p.id === 'point-3');
|
||||
const point7 = this.movingPoints.find(p => p.id === 'point-7');
|
||||
|
||||
if (left === 0) {
|
||||
point3.isActive = false;
|
||||
point7.isActive = false;
|
||||
} else if (left > 0) {
|
||||
point3.isActive = true;
|
||||
point7.isActive = false;
|
||||
} else if (left < 0) {
|
||||
point3.isActive = false;
|
||||
point7.isActive = true;
|
||||
}
|
||||
|
||||
// 处理中间:点4 和 点8
|
||||
const point4 = this.movingPoints.find(p => p.id === 'point-4');
|
||||
const point8 = this.movingPoints.find(p => p.id === 'point-8');
|
||||
|
||||
if (center === 0) {
|
||||
point4.isActive = false;
|
||||
point8.isActive = false;
|
||||
} else if (center > 0) {
|
||||
point4.isActive = true;
|
||||
point8.isActive = false;
|
||||
} else if (center < 0) {
|
||||
point4.isActive = false;
|
||||
point8.isActive = true;
|
||||
}
|
||||
|
||||
// 处理右边:点5 和 点9
|
||||
const point5 = this.movingPoints.find(p => p.id === 'point-5');
|
||||
const point9 = this.movingPoints.find(p => p.id === 'point-9');
|
||||
|
||||
if (right === 0) {
|
||||
point5.isActive = false;
|
||||
point9.isActive = false;
|
||||
} else if (right > 0) {
|
||||
point5.isActive = true;
|
||||
point9.isActive = false;
|
||||
} else if (right < 0) {
|
||||
point5.isActive = false;
|
||||
point9.isActive = true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
<view class="icon device" />
|
||||
<view class="title"> {{ this.$t("homePage.home.device") }} </view>
|
||||
</view>
|
||||
<view class="box" @click="changeMenu('earnings')">
|
||||
<view class="box" @click="changeMenu('earningSelect')">
|
||||
<view class="icon earning" />
|
||||
<view class="title"> {{ this.$t("homePage.home.earning") }} </view>
|
||||
</view>
|
||||
@ -32,8 +32,13 @@
|
||||
</view>
|
||||
<!-- 内容 -->
|
||||
<view class="content-box">
|
||||
|
||||
<view class="box">
|
||||
<Section :title="$t('homePage.home.stationTopo')" />
|
||||
<zero-loading v-if="loading"></zero-loading>
|
||||
<!-- 加载中占位(可选) -->
|
||||
<view v-else class="loading-tip">
|
||||
<!-- <zero-loading v-if="tuopoloading"></zero-loading> -->
|
||||
<cixi v-if="topologyType === 0" ref="tuopu" />
|
||||
<kejiyuan v-else-if="topologyType === 2" ref="tuopu" />
|
||||
<lingchao v-else-if="topologyType === 3" ref="tuopu" />
|
||||
@ -48,10 +53,16 @@
|
||||
<runda215 v-else-if="topologyType === 12" ref="tuopu" />
|
||||
<third v-else-if="topologyType === 13" ref="tuopu" />
|
||||
<mdPviese v-else-if="topologyType === 14" ref="tuopu" />
|
||||
<pv2AndStorageSts v-else-if="topologyType === 1 && inverterFlag === 1 && pvTopologyType === 4" ref="tuopu" />
|
||||
<pv8FourthTopCenter v-else-if="topologyType === 1 && inverterFlag === 1 && pvTopologyType === 5" ref="tuopu" />
|
||||
<pv8FourthTopCenter v-else-if="topologyType === 1 && inverterFlag === 1 && pvTopologyType === 6" ref="tuopu" />
|
||||
<!-- <third v-else-if="topologyType === 1 && inverterFlag === 1 && pvTopologyType === 4" ref="tuopu" /> -->
|
||||
<!-- <cixi v-else-if="topologyType === 1 && inverterFlag === 1 && pvTopologyType === 3" ref="tuopu" /> -->
|
||||
<!-- <ceshiL v-else-if="topologyType === 1 && inverterFlag === 1 && pvTopologyType === 2" ref="tuopu" /> -->
|
||||
<!-- <cixi v-else-if="topologyType === 1 && inverterFlag === 1 && pvTopologyType === 1" ref="tuopu" /> -->
|
||||
<standard v-else ref="tuopu" />
|
||||
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view v-if="topologyType === 9" class="box">
|
||||
<Section :title="$t('homePage.home.deviceMonitor')" />
|
||||
<devicemonitoring ref="deviceFire" />
|
||||
@ -67,7 +78,7 @@
|
||||
<view slot="right" style="flex: 1">
|
||||
<view class="top-right-box">
|
||||
<view class="top-right-item" :class="{ active: activeTime === 'day' }"
|
||||
@click="changeTime('day')">{{this.$t('homePage.home.sevenDay')}}
|
||||
@click="changeTime('day')">{{this.$t('homePage.home.sevenDaycom')}}
|
||||
</view>
|
||||
<view class="top-right-item" :class="{ active: activeTime === 'month' }"
|
||||
@click="changeTime('month')">{{this.$t('homePage.home.monthDay')}}
|
||||
@ -82,17 +93,28 @@
|
||||
</view>
|
||||
|
||||
<view class="box">
|
||||
<Section :title="$t('homePage.home.stationData')" />
|
||||
<Section :title="$t('homePage.home.stationDatacom')" />
|
||||
<wshStationData v-if="topologyType === 5" />
|
||||
<zzhbStationData v-else-if="topologyType === 6" />
|
||||
<commonStationData v-else />
|
||||
</view>
|
||||
|
||||
<view class="box" v-if="topologyType !== 9">
|
||||
<view class="box" v-if="inverterFlag === 1">
|
||||
<Section :title="$t('homePage.home.pvKpi')" />
|
||||
<view class="">
|
||||
<my-grid :loading="loading" :col="language !== 'zh_CN'? 2:3" imgHeight="40rpx" imgWidth="40rpx" :list="lightArr"/>
|
||||
</view>
|
||||
</view>
|
||||
<view class="box" v-if="topologyType === 1">
|
||||
<Section :title="$t('homePage.home.environmentalData')" />
|
||||
<environmentalControlPosition v-if="rightCenter === 'dispositionRightCenter'" />
|
||||
<environmentalControl v-else />
|
||||
</view>
|
||||
<!-- <view class="box" v-if="inverterFlag === 1">
|
||||
<Section :title="$t('homePage.home.socialContribution')" />
|
||||
<view class="">
|
||||
<my-grid :col="3" imgHeight="72rpx" imgWidth="82rpx" :list="society" />
|
||||
</view>
|
||||
</view> -->
|
||||
</view>
|
||||
|
||||
|
||||
@ -101,10 +123,18 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import myGrid from './components/grid/index.vue'
|
||||
import stationDropdow from '@/components/station-dropdow/index'
|
||||
import Section from "@/components/section/index";
|
||||
import charts from "@/components/charts/index";
|
||||
import cixi from './components/topology/cixi'
|
||||
import pv2AndStorageSts from './components/topology/pv2AndStorageSts.vue'
|
||||
// import pv8FourthTopCenter from './components/topology/ceshiL.vue'
|
||||
import ceshiL from './components/topology/ceshiL.vue'
|
||||
import pv8FourthTopCenter from './components/topology/pv8FourthTopCenter.vue'
|
||||
|
||||
import pv2first from './components/topology/pv2first.vue'
|
||||
|
||||
import weishanhu from './components/topology/weishanhu.vue'
|
||||
import sanmenxia from './components/topology/sanmenxia.vue'
|
||||
import lingchao from './components/topology/lingchao.vue'
|
||||
@ -130,6 +160,11 @@
|
||||
|
||||
export default {
|
||||
components: {
|
||||
pv2AndStorageSts,
|
||||
ceshiL,
|
||||
pv8FourthTopCenter,
|
||||
pv2first,
|
||||
myGrid,
|
||||
stationDropdow,
|
||||
Section,
|
||||
environmentalControlPosition,
|
||||
@ -159,6 +194,12 @@
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
// #ifdef APP
|
||||
src: '/static/html/demo.html',
|
||||
// #endif
|
||||
// #ifdef H5
|
||||
src: '/static/html/demo.html',
|
||||
// #endif
|
||||
loading: false,
|
||||
curve_option: {},
|
||||
charge_option: {},
|
||||
@ -168,7 +209,42 @@
|
||||
messageList: [],
|
||||
timer: null,
|
||||
tuopuTimer: null,
|
||||
rightCenter: null
|
||||
rightCenter: null,
|
||||
componentsLoaded: false,
|
||||
tuopoloading:false,
|
||||
topCenterPvArr:[
|
||||
{name:'pv1AndStorage_261',value:1},
|
||||
{name:'pv1AndStorage_sts_261',value:2},
|
||||
{name:'pv2AndStorage_261',value:3},
|
||||
{name:'pv2AndStorage_sts_261',value:4},
|
||||
{name:'pv8FourthTopCenter',value:5},
|
||||
{name:'pv8FourthDieselTopCenter',value:6}
|
||||
],
|
||||
pvTopologyType:0,
|
||||
society: [{
|
||||
label: this.$t('homePage.home.saveStandardCoal'),
|
||||
value: '15.00',
|
||||
image: require('@/static/aidex/images/ll01.png'),
|
||||
},
|
||||
{
|
||||
label: this.$t('homePage.home.equivalentCo2Reduction'),
|
||||
value: '20.50',
|
||||
image: require('@/static/aidex/images/ll02.png'),
|
||||
},
|
||||
{
|
||||
label: this.$t('homePage.home.equivalentTreePlantings'),
|
||||
value: '1.50',
|
||||
image: require('@/static/aidex/images/ll03.png'),
|
||||
},
|
||||
],
|
||||
panelData: {
|
||||
pvCurrentPower: 0, // 对应 lightArr[0].value
|
||||
dailyReleaseElec: 0, // 对应 lightArr[1].value
|
||||
totalReleaseElec: 0, // 对应 lightArr[2].value
|
||||
todayIncone: 0, // 对应 lightArr[3].value
|
||||
totalIncome: 0, // 对应 lightArr[4].value
|
||||
pvPower: 0 // 对应 lightArr[5].value
|
||||
}
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@ -180,6 +256,43 @@
|
||||
},
|
||||
language() {
|
||||
return this.vuex_language
|
||||
},
|
||||
inverterFlag(){
|
||||
return this.vuex_inverterFlag;
|
||||
},
|
||||
lightArr() {
|
||||
return [
|
||||
{
|
||||
label: this.$t('homePage.home.currentPower') + '(kW)',
|
||||
value: this.panelData.pvCurrentPower,
|
||||
image: require('@/static/aidex/images/ll06.png')
|
||||
},
|
||||
{
|
||||
label: this.$t('homePage.home.dailyPowerGeneration') + '(kWh)',
|
||||
value: this.panelData.dailyReleaseElec,
|
||||
image: require('@/static/aidex/images/ll07.png')
|
||||
},
|
||||
{
|
||||
label: this.$t('homePage.home.cumulativePowerGeneration') + '(kWh)',
|
||||
value: this.panelData.totalReleaseElec,
|
||||
image: require('@/static/aidex/images/ll07.png')
|
||||
},
|
||||
{
|
||||
label: this.$t('homePage.home.todayEarning'),
|
||||
value: this.panelData.todayIncone,
|
||||
image: require('@/static/aidex/images/yxts.png')
|
||||
},
|
||||
{
|
||||
label: this.$t('homePage.home.totalRevenue'),
|
||||
value: this.panelData.totalIncome,
|
||||
image: require('@/static/aidex/images/yxts.png')
|
||||
},
|
||||
{
|
||||
label: this.$t('homePage.home.ratedPower'),
|
||||
value: this.panelData.pvPower,
|
||||
image: require('@/static/aidex/images/ll06.png')
|
||||
}
|
||||
];
|
||||
}
|
||||
},
|
||||
onHide() {
|
||||
@ -194,26 +307,31 @@
|
||||
currentStation: {
|
||||
handler(val) {
|
||||
if (val && val.id) {
|
||||
|
||||
this.stationId = val.id
|
||||
this.userId = this.userData.userId
|
||||
this.topologyType = val.topologyType
|
||||
this.getComponents()
|
||||
// 重置加载状态,避免复用旧状态
|
||||
this.componentsLoaded = false
|
||||
this.tuopoloading = true
|
||||
this.getComponents().then(() => {
|
||||
this.GetPcsTotalData();
|
||||
this.$nextTick(() => {
|
||||
if (this.$refs.tuopu) {
|
||||
this.$refs.tuopu.getData(val.id)
|
||||
}
|
||||
|
||||
if (this.$refs.deviceFire) {
|
||||
this.$refs.deviceFire.getData(this.stationId)
|
||||
}
|
||||
})
|
||||
if (this.$refs.dischargeChart) {
|
||||
this.$refs.dischargeChart.getData()
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
deep: true,
|
||||
immediate: true,
|
||||
},
|
||||
|
||||
}
|
||||
},
|
||||
created() {
|
||||
|
||||
@ -234,7 +352,10 @@
|
||||
})
|
||||
},
|
||||
onShow() {
|
||||
this.getComponents()
|
||||
// 重置加载状态
|
||||
this.componentsLoaded = false
|
||||
this.tuopoloading = true
|
||||
this.getComponents().then(() => {
|
||||
this.getMessage()
|
||||
if (this.$refs.runChart && this.stationId) {
|
||||
this.$refs.runChart.getData()
|
||||
@ -243,16 +364,15 @@
|
||||
this.$refs.dischargeChart.getData()
|
||||
}
|
||||
this.$nextTick(() => {
|
||||
|
||||
if (this.$refs.tuopu) {
|
||||
this.$refs.tuopu.changeEnglish()
|
||||
this.$refs.tuopu.getData(this.stationId)
|
||||
}
|
||||
|
||||
if (this.$refs.deviceFire) {
|
||||
this.$refs.deviceFire.getData(this.stationId)
|
||||
}
|
||||
})
|
||||
});
|
||||
this.timer = setInterval(() => {
|
||||
this.getMessage()
|
||||
}, 5000)
|
||||
@ -269,14 +389,39 @@
|
||||
|
||||
},
|
||||
methods: {
|
||||
async GetPcsTotalData() {
|
||||
let self = this;
|
||||
return new Promise((resolve, reject) => {
|
||||
self.$u.api.homePageData
|
||||
.GetPcsTotalData({
|
||||
stationId: this.stationId,
|
||||
})
|
||||
.then((res) => {
|
||||
this.panelData = Object.assign(this.panelData, res.data);
|
||||
resolve(res);
|
||||
})
|
||||
.catch((err) => {
|
||||
reject("error");
|
||||
});
|
||||
});
|
||||
},
|
||||
async getComponents() {
|
||||
const {
|
||||
data
|
||||
} = await this.$u.api.homePageData.GetHomePageComponents(this.stationId)
|
||||
if(data && data.length > 0){
|
||||
this.rightCenter = data[0]?.rightCenter
|
||||
try {
|
||||
const { data } = await this.$u.api.homePageData.GetHomePageComponents(this.stationId);
|
||||
if (data && data.length > 0) {
|
||||
this.rightCenter = data[0]?.rightCenter;
|
||||
const matchedItem = this.topCenterPvArr.find(item => item.name === data[0]?.topCenter);
|
||||
this.pvTopologyType = matchedItem ? matchedItem.value : this.pvTopologyType;
|
||||
}
|
||||
// 接口完成,标记加载状态为true
|
||||
this.componentsLoaded = true
|
||||
this.tuopoloading = false
|
||||
} catch (e) {
|
||||
console.error('获取组件配置失败:', e);
|
||||
// 即使接口失败,也标记完成,避免组件一直不渲染
|
||||
this.componentsLoaded = true
|
||||
this.tuopoloading = false
|
||||
}
|
||||
|
||||
},
|
||||
openTimer() {
|
||||
|
||||
@ -443,6 +588,11 @@
|
||||
margin-top: 30rpx;
|
||||
box-shadow: 0px 4rpx 16rpx rgba(0, 0, 0, 0.08);
|
||||
|
||||
.loading-tip {
|
||||
width: 650rpx;
|
||||
// height: 710rpx;
|
||||
position: relative;
|
||||
}
|
||||
.top-right-box {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
|
||||
@ -14,9 +14,18 @@
|
||||
</view>
|
||||
</Section>
|
||||
<view class="search-box">
|
||||
<view class="content-box">
|
||||
<!-- 海外 -->
|
||||
<view v-if="stationValue" style="width: 100%;" class="content-box">
|
||||
<view style="width: calc(100% - (50% - 300rpx));" class="content-title">
|
||||
{{ $t('homePage.home.station') }}
|
||||
</view>
|
||||
<view style="width: calc(100% - (50% - 300rpx));" class="content-value">
|
||||
{{ currentStationName }}
|
||||
</view>
|
||||
</view>
|
||||
<view v-else class="content-box">
|
||||
<view class="content-title">
|
||||
{{ this.$t('homePage.price.provinceRegion') }}
|
||||
{{ $t('homePage.price.provinceRegion') }}
|
||||
</view>
|
||||
<view class="content-value">
|
||||
{{ regionName }}
|
||||
@ -32,7 +41,7 @@
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="content-box">
|
||||
<view v-if="!stationValue" class="content-box">
|
||||
<view class="content-title">
|
||||
{{ this.$t('homePage.price.eleType') }}
|
||||
</view>
|
||||
@ -51,7 +60,7 @@
|
||||
</view>
|
||||
|
||||
</view>
|
||||
<view class="content-box">
|
||||
<view v-if="!stationValue" class="content-box">
|
||||
<view class="content-title">
|
||||
{{ this.$t('homePage.price.exeTime') }}
|
||||
</view>
|
||||
@ -78,31 +87,34 @@
|
||||
{{ this.$t('homePage.price.exeTime') }}
|
||||
</view>
|
||||
<view class="time-value">
|
||||
{{ detailData.executionTime }}
|
||||
{{ detailData.executionTime || timeSlot }}
|
||||
</view>
|
||||
<view class="time-title">
|
||||
<view v-if="!stationValue" class="time-title">
|
||||
{{ this.$t('homePage.price.eleType') }}
|
||||
</view>
|
||||
<view class="time-value">
|
||||
<view v-if="!stationValue" class="time-value">
|
||||
{{ detailData.electricityTypeLabel }}
|
||||
</view>
|
||||
<view class="time-title">
|
||||
{{ this.$t('homePage.price.volLevel') }}
|
||||
</view>
|
||||
<view class="time-value">
|
||||
{{ detailData.voltageLevelLabel }}
|
||||
{{ stationValue? (detailData.voltageLevelLabel || voltageLevelName): detailData.voltageLevelLabel }}
|
||||
</view>
|
||||
<view class="title">
|
||||
{{ this.$t('homePage.price.fsdd') }}{{ this.$t('homePage.price.dietailUnit') }}
|
||||
{{ stationValue? this.$t('homePage.home.useElecPrice'):this.$t('homePage.price.fsdd') }}{{ this.$t('homePage.price.dietailUnit') }}
|
||||
</view>
|
||||
<view class="levels-chart">
|
||||
<zero-loading v-if="levelsChart_loading"></zero-loading>
|
||||
<!-- <view v-else> -->
|
||||
<!-- <charts v-if="stationValue" id="levelsChart" :options="levelsChart_option" :labelFormatter="true" :dataList="dataList"></charts> -->
|
||||
<charts v-else id="levelsChart" :options="levelsChart_option" :labelFormatter="true" :dataList="dataList"></charts>
|
||||
<!-- </view> -->
|
||||
</view>
|
||||
<view class="title">
|
||||
{{ this.$t('homePage.price.eleprice') }}{{ this.$t('homePage.price.dietailUnit') }}
|
||||
</view>
|
||||
<view class="value-box">
|
||||
<view v-if="!stationValue" class="value-box">
|
||||
<view class="box">
|
||||
<view class="box-value">
|
||||
{{ detailData.nonTimePrice ? detailData.nonTimePrice : '--' }}
|
||||
@ -138,7 +150,7 @@
|
||||
|
||||
</view>
|
||||
</view>
|
||||
<view class="price-box">
|
||||
<view v-if="!stationValue" class="price-box">
|
||||
<Section :title="$t('homePage.price.historytrend')">
|
||||
<view slot="right" style="flex: 1">
|
||||
<view class="top-right-box">
|
||||
@ -162,8 +174,6 @@
|
||||
<uni-th width="100" align="center">{{this.$t('homePage.price.regular')}}</uni-th>
|
||||
<uni-th width="100" align="center">{{this.$t('homePage.price.lowValley')}}</uni-th>
|
||||
<uni-th width="100" align="center">{{this.$t('homePage.price.deepValley')}}</uni-th>
|
||||
|
||||
|
||||
</uni-tr>
|
||||
<uni-tr v-for="(item, index) in history_tableData" :key="index">
|
||||
<uni-td align="center">{{ item.executionTime }}</uni-td>
|
||||
@ -172,13 +182,12 @@
|
||||
<uni-td align="center">{{ item.regularPrice ? item.regularPrice : '-' }}</uni-td>
|
||||
<uni-td align="center">{{ item.lowValleyPrice ? item.lowValleyPrice : '-' }}</uni-td>
|
||||
<uni-td align="center">{{ item.deepValleyPrice ? item.deepValleyPrice : '-' }}</uni-td>
|
||||
|
||||
</uni-tr>
|
||||
</uni-table>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
<view class="price-box">
|
||||
<view v-if="!stationValue" class="price-box">
|
||||
<Section :title="$t('homePage.price.peakDifference')">
|
||||
<view slot="right" style="flex: 1">
|
||||
<view class="top-right-box">
|
||||
@ -216,9 +225,14 @@
|
||||
</view>
|
||||
|
||||
<view class="popup-box">
|
||||
<u-popup v-model="popupShow" mode="bottom" border-radius="20" height="75%" placement="top-end" @close="closePop">
|
||||
<u-popup v-model="popupShow" mode="bottom" border-radius="20" :height="stationValue? '40%':'75%'" placement="top-end" @close="closePop">
|
||||
<view class="title">{{this.$t('homePage.price.sift')}}</view>
|
||||
<view class="s-station">
|
||||
<view v-if="stationValue" class="s-station">
|
||||
<u-section :title="$t('homePage.home.station')" line-color="#009458" color="#2A2A2A" class="s-title" :right="false"
|
||||
style="margin-bottom: 20rpx;"></u-section>
|
||||
<stationDropdow style="width: 100%;border-color: rgb(220, 223, 230);border: 1px solid #dcdfe6;" ref="dropdow" />
|
||||
</view>
|
||||
<view v-else class="s-station">
|
||||
<u-section :title="$t('homePage.price.provinceRegion')" line-color="#009458" color="#2A2A2A" class="s-title" :right="false"
|
||||
style="margin-bottom: 20rpx;"></u-section>
|
||||
<view style="margin-top: 20rpx;">
|
||||
@ -230,7 +244,7 @@
|
||||
label-name="regionName" @confirm="confirmRegion"></u-select>
|
||||
</view>
|
||||
|
||||
<view class="s-station">
|
||||
<view v-if="!stationValue" class="s-station">
|
||||
<u-section :title="$t('homePage.price.customerType')" line-color="#009458" color="#2A2A2A" class="s-title" :right="false"
|
||||
style="margin-bottom: 20rpx;"></u-section>
|
||||
<view style="margin-top: 20rpx;">
|
||||
@ -243,7 +257,7 @@
|
||||
@confirm="confirmCustomer" value-name="value" label-name="name"></u-select>
|
||||
</view>
|
||||
|
||||
<view class="s-station">
|
||||
<view v-if="!stationValue" class="s-station">
|
||||
<u-section :title="$t('homePage.price.eleType')" line-color="#009458" color="#2A2A2A" class="s-title" :right="false"
|
||||
style="margin-bottom: 20rpx;"></u-section>
|
||||
<view style="margin-top: 20rpx;">
|
||||
@ -255,7 +269,7 @@
|
||||
label-name="name" @confirm="confirmElectricity"></u-select>
|
||||
</view>
|
||||
|
||||
<view class="s-station">
|
||||
<view v-if="!stationValue" class="s-station">
|
||||
<u-section :title="$t('homePage.price.volLevel')" line-color="#009458" color="#2A2A2A" class="s-title" :right="false"
|
||||
style="margin-bottom: 20rpx;"></u-section>
|
||||
<view style="margin-top: 20rpx;">
|
||||
@ -267,7 +281,7 @@
|
||||
@confirm="confirmVoltage" value-name="value" label-name="name"></u-select>
|
||||
</view>
|
||||
|
||||
<view class="s-station">
|
||||
<view v-if="!stationValue" class="s-station">
|
||||
<u-section :title="$t('homePage.price.exeTime')" :default-value="defaultcTimeArr" line-color="#009458" color="#2A2A2A" class="s-title"
|
||||
:right="false" style="margin-bottom: 20rpx;"></u-section>
|
||||
<view style="margin-top: 20rpx;"><u-input v-model="filters.executionTime" type="select" border="border"
|
||||
@ -288,10 +302,18 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import stationDropdow from '@/components/station-dropdow/index'
|
||||
import Section from '@/components/section/index.vue'
|
||||
import charts from "@/components/charts/index";
|
||||
import Search from "@/components/Search/index";
|
||||
export default {
|
||||
components: {
|
||||
stationDropdow,
|
||||
Section,
|
||||
charts,
|
||||
Search
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
background: {
|
||||
@ -325,6 +347,12 @@ export default {
|
||||
color: '#FF3333'
|
||||
}
|
||||
],
|
||||
overseasColorList:[
|
||||
{
|
||||
name: this.language !== 'en_US'? '平时段':'Normal period',
|
||||
color: '#048FFF'
|
||||
}
|
||||
],
|
||||
popupShow: false,
|
||||
filters: {
|
||||
regionId: undefined,
|
||||
@ -333,6 +361,7 @@ export default {
|
||||
voltageLevel: undefined,
|
||||
executionTime: undefined
|
||||
},
|
||||
currentStationName:'',
|
||||
regionName: '上海',
|
||||
electricityName: '两部制',
|
||||
customerName: '大工业用户',
|
||||
@ -386,23 +415,31 @@ export default {
|
||||
useCustList: [],
|
||||
useVolList: [],
|
||||
middleIndexList: [],
|
||||
dataList: []
|
||||
|
||||
customElecPriceData:[],
|
||||
timeSlot:''
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
language(){
|
||||
return this.vuex_language
|
||||
},
|
||||
stationValue(){
|
||||
return this.vuex_stationValue === 'Overseas Station' || this.vuex_stationValue === '海外站'? true:false
|
||||
},
|
||||
|
||||
stationList () {
|
||||
return this.vuex_provinceStation
|
||||
},
|
||||
components: {
|
||||
Section,
|
||||
charts,
|
||||
Search
|
||||
stationShow (){
|
||||
return this.vuex_StationShow
|
||||
},
|
||||
onLoad() {
|
||||
|
||||
stationid (){
|
||||
return this.vuex_currentStation.id
|
||||
}
|
||||
},
|
||||
onLoad() {},
|
||||
created() {
|
||||
this.getRegionList()
|
||||
if (!this.stationValue) {this.getRegionList()}
|
||||
var currentDate = new Date();
|
||||
// 获取年份和月份
|
||||
var year = currentDate.getFullYear();
|
||||
@ -414,8 +451,13 @@ export default {
|
||||
this.filters.customerType = 2
|
||||
this.filters.voltageLevel = 4
|
||||
this.filters.executionTime = formattedDate
|
||||
if (this.stationValue) {
|
||||
this.currentStationName = this.stationList[0].list[0].list[0].name
|
||||
this.GetCustomElecPricePageData(this.stationList[0].list[0].list[0].id)
|
||||
} else{
|
||||
this.getData()
|
||||
this.loading = true
|
||||
}
|
||||
|
||||
},
|
||||
methods: {
|
||||
@ -431,10 +473,11 @@ export default {
|
||||
this.filters.customerType = 2
|
||||
this.filters.voltageLevel = 4
|
||||
this.filters.executionTime = formattedDate
|
||||
this.regionName = '上海'
|
||||
this.electricityName = '两部制'
|
||||
this.customerName = '大工业用户'
|
||||
this.voltageLevelName = '10千伏'
|
||||
this.currentStationName = ''
|
||||
this.regionName = this.stationValue? '' : '上海'
|
||||
this.electricityName = this.stationValue? '' : '两部制'
|
||||
this.customerName = this.stationValue? '' : '大工业用户'
|
||||
this.voltageLevelName = this.stationValue? '' : '10千伏'
|
||||
|
||||
this.useEleList = this.electricityList.filter(item => +item.type === +this.filters.customerType)
|
||||
this.useVolList = this.voltageLevelList.filter(item => +item.type === +this.filters.customerType)
|
||||
@ -518,7 +561,6 @@ export default {
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
confirmRegion(val) {
|
||||
|
||||
const regionIndex = this.regionList.findIndex((item) => {
|
||||
@ -597,8 +639,13 @@ export default {
|
||||
search() {
|
||||
this.pageNum = 1;
|
||||
this.dataList = [];
|
||||
this.getData();
|
||||
if (this.stationValue) {
|
||||
this.GetCustomElecPricePageData(this.stationid)
|
||||
} else{
|
||||
this.getData()
|
||||
}
|
||||
this.popupShow = false;
|
||||
this.currentStationName = this.$refs.dropdow.stationName;
|
||||
},
|
||||
findMiddleIndex(arr) {
|
||||
let firstIndex = -1 // 第一个不为null的
|
||||
@ -627,16 +674,151 @@ export default {
|
||||
|
||||
return result
|
||||
},
|
||||
// 查询自定义电价
|
||||
async GetCustomElecPricePageData(id) {
|
||||
this.levelsChart_loading = true
|
||||
const params = {
|
||||
stationId: id,
|
||||
templateName: '',
|
||||
isEnable:'',
|
||||
validityStartTime:'',
|
||||
validityEndTime:'',
|
||||
elecType:1
|
||||
}
|
||||
try {
|
||||
const { data } = await this.$u.api.proxyPrice.GetCustomElecPricePage(params)
|
||||
// this.customElecPriceData = data
|
||||
let nowdata = [
|
||||
{
|
||||
list:[],
|
||||
name:data[0].type
|
||||
}
|
||||
];
|
||||
|
||||
for (let i = 0; i < 49; i++) {
|
||||
nowdata[0].list.push(data[0].price)
|
||||
}
|
||||
this.initLevelsChartOverses(nowdata)
|
||||
this.dataList = nowdata;
|
||||
this.detailList = data;
|
||||
this.customerName = this.language !== 'en_US'? '大工业用户':'Large industrial users',
|
||||
this.voltageLevelName = this.language !== 'en_US'? '10kv': '10kv',
|
||||
this.timeSlot = data[0].validityStartTime + ' —— ' + data[0].validityEndTime;
|
||||
console.log(JSON.stringify(this.dataList),JSON.stringify(this.overseasColorList));
|
||||
} finally {
|
||||
this.loading = false
|
||||
this.levelsChart_loading = false
|
||||
}
|
||||
},
|
||||
async getLevelsChart(id) {
|
||||
this.levelsChart_loading = true
|
||||
try {
|
||||
const res = await this.$u.api.proxyPrice.GetTouLineById(id)
|
||||
this.initLevelsChart(res.data)
|
||||
this.dataList = res.data ? res.data : []
|
||||
this.dataList = res.data ? res.data : [],
|
||||
console.log(this.dataList);
|
||||
} finally {
|
||||
this.levelsChart_loading = false
|
||||
}
|
||||
},
|
||||
// 新增:初始化海外站电价图表
|
||||
initLevelsChartOverses(data) {
|
||||
const series = []
|
||||
if (data.length > 0) {
|
||||
data.map(item => {
|
||||
const colorInfo = this.colorList.find(color => color.name === item.name)
|
||||
const param = {
|
||||
type: 'line',
|
||||
itemStyle: {
|
||||
normal: {
|
||||
color: colorInfo ? colorInfo.color : undefined,
|
||||
lineStyle: {
|
||||
color: colorInfo ? colorInfo.color : undefined
|
||||
},
|
||||
areaStyle: {
|
||||
type: 'default',
|
||||
opacity: 0.2
|
||||
}
|
||||
}
|
||||
},
|
||||
name: item.name,
|
||||
data: item.list,
|
||||
symbol: 'circle',
|
||||
'symbolSize': 0.001,
|
||||
label: {
|
||||
show: true,
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
series.push(param)
|
||||
})
|
||||
}
|
||||
this.levelsChart_option = {
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
confine: true,
|
||||
textStyle: {
|
||||
textShadowBlur: 10, // 重点
|
||||
textShadowColor: 'transparent', // 重点
|
||||
},
|
||||
},
|
||||
legend: {
|
||||
|
||||
},
|
||||
grid: {
|
||||
|
||||
bottom: "15%",
|
||||
top: "20%",
|
||||
},
|
||||
calculable: true,
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
boundaryGap: false,
|
||||
data: ['0', '0.5', '1', '1.5', '2', '2.5', '3', '3.5', '4', '4.5', '5', '5.5', '6',
|
||||
'6.5', '7', '7.5', '8', '8.5', '9', '9.5', '10', '10.5', '11', '11.5', '12',
|
||||
12.5, 13, 13.5, 14, 14.5, 15, 15.5, 16, 16.5, 17, 17.5, 18, 18.5, 19, 19.5, 20,
|
||||
20.5, 21, 21.5, 22, 22.5, 23, 23.5, 24
|
||||
],
|
||||
splitLine: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
color: '#F0F0F0',
|
||||
}
|
||||
},
|
||||
axisLine: {
|
||||
lineStyle: {
|
||||
color: '#F0F0F0',
|
||||
}
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
color: '#A3A3A3'
|
||||
},
|
||||
|
||||
axisTick: {
|
||||
show: false
|
||||
}
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
|
||||
axisLine: {
|
||||
show: false
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
color: '#A3A3A3'
|
||||
},
|
||||
splitLine: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
color: '#F0F0F0',
|
||||
}
|
||||
}
|
||||
}],
|
||||
series: series
|
||||
}
|
||||
},
|
||||
initLevelsChart(data) {
|
||||
const series = []
|
||||
@ -1181,7 +1363,19 @@ export default {
|
||||
.s-station {
|
||||
margin-bottom: 60rpx;
|
||||
padding: 0 20px 0 20px;
|
||||
|
||||
::v-deep .uicon-arrow-down-fill {
|
||||
color: rgb(192, 196, 204) !important;
|
||||
}
|
||||
.home-navbar-warp{
|
||||
padding:0 20rpx;
|
||||
}
|
||||
::v-deep .search {
|
||||
width:100%;
|
||||
}
|
||||
::v-deep .uni-input-input{
|
||||
text-align:left;
|
||||
color: #303133;
|
||||
}
|
||||
.s-title {
|
||||
font-size: 35rpx;
|
||||
text-align: left;
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
<view class="bg-box">
|
||||
<view class="userinfo">
|
||||
<view class="image" @click="navTo('info')">
|
||||
<image style="width: 100%" src="/static/aidex/login/bg-logo2.png"></image>
|
||||
<image style="width: 100%" src="/static/aidex/login/bg-logo1.png"></image>
|
||||
</view>
|
||||
<view class="info" style="display: flex; justify-content: space-between">
|
||||
<view>
|
||||
@ -103,6 +103,26 @@
|
||||
{
|
||||
value: 'en_US',
|
||||
label: 'English'
|
||||
},
|
||||
{
|
||||
value: 'fr_FR',
|
||||
label: 'French'
|
||||
},
|
||||
{
|
||||
value: 'es_ES',
|
||||
label: 'Spanish'
|
||||
},
|
||||
{
|
||||
value: 'ar_EG',
|
||||
label: 'Arabic'
|
||||
},
|
||||
{
|
||||
value: 'de_DE',
|
||||
label: 'German'
|
||||
},
|
||||
{
|
||||
value: 'pl_PL',
|
||||
label: 'Polish'
|
||||
}
|
||||
],
|
||||
};
|
||||
@ -126,6 +146,7 @@
|
||||
},
|
||||
methods: {
|
||||
changeLanguage(val){
|
||||
this.$u.vuex("vuex_configLang", val[0].prop);
|
||||
this.$u.vuex("vuex_language", val[0].value);
|
||||
this.$i18n.locale = val[0].value
|
||||
this.getAllDict()
|
||||
@ -286,9 +307,9 @@
|
||||
|
||||
.image {
|
||||
flex-shrink: 0;
|
||||
width: 60%;
|
||||
margin-top: 100rpx;
|
||||
height: 150rpx;
|
||||
width: 40%;
|
||||
margin-top: 80rpx;
|
||||
height: 200rpx;
|
||||
|
||||
image {
|
||||
width: 100%;
|
||||
|
||||
BIN
static/aidex/images/earningSelect.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
static/aidex/images/ll01.png
Normal file
|
After Width: | Height: | Size: 8.8 KiB |
BIN
static/aidex/images/ll02.png
Normal file
|
After Width: | Height: | Size: 7.7 KiB |
BIN
static/aidex/images/ll03.png
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
BIN
static/aidex/images/ll04.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
static/aidex/images/ll05.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
static/aidex/images/ll06.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
static/aidex/images/ll07.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
static/aidex/login/bg-logo1.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
72
static/aidex/svg/Group 12.svg
Normal file
|
After Width: | Height: | Size: 197 KiB |
101
static/html/demo.html
Normal file
@ -0,0 +1,101 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="keywords" content="PoweredByAidex"/>
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
|
||||
<meta name="description" content="PoweredByAidex"/>
|
||||
</head>
|
||||
<body>
|
||||
<svg width="128" height="128"
|
||||
xmlns="http://www.w3.org/2000/svg" version="1.1">
|
||||
<style>path {fill-opacity:1; stroke:none;}</style>
|
||||
<path d="M 42,0L 0,0L 0,128L 62,128L 62,126L 60.7072,125.2928L 58.146,123.854L 55.6451,122.3549L 53.2063,120.7937L 52,120L 50.6822,119.3178L 48.0777,117.9223L 45.5826,116.4174L 43.3111,114.6889L 41.3966,112.6034L 39.9425,110.0575L 38.9719,107.0281L 38.4156,103.5844L 38.148,99.852L 38.0423,95.9577L 38.0079,91.9921L 38,90L 35.5885,88.4115L 33.1929,86.8071L 32,86L 29.3498,84.6502L 26.7241,83.2759L 24.1496,81.8504L 21.6456,80.3544L 19.2063,78.7937L 18,78L 16.6822,77.3178L 14.0777,75.9223L 11.5826,74.4174L 9.3111,72.6889L 7.3966,70.6034L 5.9425,68.0575L 4.9719,65.0281L 4.4156,61.5844L 4.2818,59.7182L 4.0952,55.9048L 4.0607,53.9395L 4.0386,51.9623L 4.0124,47.9936L 4.0168,44.0132L 4.0578,40.0573L 4.1791,36.179L 4.3221,34.3221L 4.7484,30.7484L 5.1291,29.129L 6.0983,26.0983L 7.4879,23.4879L 8.3791,22.3791L 10.3181,20.3181L 12.5253,18.5253L 14.9196,16.9196L 17.4387,15.4387L 20.0358,14.0358L 22.6744,12.6744L 24,12L 26.4247,10.4247L 27.6601,9.6601L 30.165,8.165L 32.7351,6.7351L 35.3557,5.3557L 38.0055,4.0055L 40.6675,2.6675L 42,2Z" style="fill:rgb(254,254,254);"/>
|
||||
<path d="M 58,62L 59.3709,62.6291L 62.0751,63.9249L 64.7042,65.2958L 66,66L 70,66L 70,62L 68,60L 65.6634,58.3366L 63.3818,56.6182L 61.182,54.818L 59.0518,52.9482L 58,52L 55.6723,50.3277L 53.488,48.512L 51.5906,46.4094L 50.1002,43.8998L 49.071,40.929L 48.4623,37.5377L 48.1554,33.8446L 48,30L 47.2582,26.7418L 46.5916,23.4084L 46,20L 44,20L 42,22L 41.9814,23.9814L 41.917,27.917L 41.7622,31.7622L 41.4385,35.4385L 40.8635,38.8635L 39.9723,41.9723L 38.7311,44.7311L 37.1392,47.1392L 35.2342,49.2342L 33.1055,51.1055L 32,52L 29.793,53.793L 27.5268,55.5268L 25.1866,57.1866L 24,58L 22,60L 20,62L 20,66L 26,66L 28.6926,64.6926L 31.4189,63.4189L 34.2096,62.2096L 37.0777,61.0777L 38.4931,60.5638L 41.2382,59.6271L 43.8451,58.9301L 46.3927,58.5947L 48.9354,58.717L 50.2132,59.0062L 52.7823,59.7624L 55.3802,60.8068Z" style="fill:rgb(254,254,254);"/>
|
||||
<path d="M 85.2331,17.2701L 86.4837,16.5847L 87.7563,15.9652L 90.3475,14.8965L 93.0246,14.2314L 95.7591,14.0611L 98.5014,14.3992L 101.2011,15.1859L 103.8206,16.3207L 106.3454,17.6971L 108.792,19.2165L 110,20L 111.3178,20.6822L 113.9223,22.0777L 116.4174,23.5826L 118.6889,25.3111L 120.6034,27.3966L 121.3304,28.6696L 122.5428,31.4572L 123.3061,34.6936L 123.7166,38.2802L 123.8055,40.1826L 123.9106,44.0318L 123.8774,47.9088L 123.6792,51.6854L 123.2186,55.2195L 122.37,58.3701L 121.046,61.046L 120.151,62.151L 119.1695,63.1695L 118.1211,64.1211L 115.922,65.922L 113.5629,67.5629L 111.1037,69.1037L 108.5654,70.5654L 105.9647,71.9647L 103.3257,73.3257L 102,74L 99.3198,75.3198L 96.5065,76.5065L 93.5268,77.5268L 92,78L 92,80L 92.3524,81.6476L 92.6727,83.3272L 92.9526,85.0465L 93.4244,88.5695L 93.7174,92.2526L 93.7775,94.15L 93.8123,97.9511L 93.6565,101.699L 93.2447,105.2551L 92.4795,108.4814L 91.2758,111.2761L 89.6104,113.6105L 87.5449,115.5449L 85.2126,117.2126L 84,118L 81.5753,119.5753L 79.1045,121.1045L 76.5654,122.5654L 73.9647,123.9647L 71.3257,125.3257L 70,126L 70,128L 128,128L 128,0L 50,0L 50,2L 52,4L 54.6502,5.3498L 57.2759,6.7241L 59.8504,8.1496L 62.3544,9.6456L 64.7937,11.2063L 66,12L 67.3333,12.6667L 70,14L 71.3333,14.6667L 74,16L 75.3333,16.6667L 78,18L 84,18Z" style="fill:rgb(254,254,254);"/>
|
||||
<path d="M 84,74L 84,76L 88,76L 88,74Z" style="fill:rgb(254,254,254);"/>
|
||||
<path d="M 88,76L 88,78L 92,78L 92,76Z" style="fill:rgb(254,254,254);"/>
|
||||
<path d="M 82,20L 80,18L 78,18L 75.3333,19.3333L 74,20L 74,22L 82,22Z" style="fill:rgb(212,228,213);"/>
|
||||
<path d="M 84,72L 80,72L 80,74L 84,74Z" style="fill:rgb(212,228,213);"/>
|
||||
<path d="M 70,18L 68,16L 66.7072,15.2928L 64.146,13.854L 61.6451,12.3549L 59.2063,10.7937L 58,10L 56.6667,9.3333L 54,8L 50.998,7.002L 48,6L 42,6L 39.5753,7.5753L 38.3399,8.3399L 35.835,9.835L 33.2649,11.2649L 30.6443,12.6443L 27.9945,13.9945L 25.3325,15.3325L 24,16L 22.7944,16.7944L 20.3566,18.3566L 17.8559,19.8559L 15.2937,21.2937L 14,22L 12,24L 10,26L 10,68L 12,70L 14,72L 16.6502,73.3498L 19.2759,74.7241L 21.8504,76.1496L 24.3544,77.6456L 26.7937,79.2063L 28,80L 29.3333,80.6667L 32,82L 36,82L 38,80L 38.7389,78.9578L 40.3681,77.0458L 42.366,75.5475L 43.5513,75.0035L 46.1174,73.9788L 48.998,72.998L 52,72L 52.5916,70.5916L 53.2207,69.2207L 54.5415,66.5832L 55.9374,64.1874L 57.3208,62.0292L 58,61L 58,60L 56.6667,59.3333L 54,58L 52.6667,57.3333L 50,56L 44,56L 42.608,56.608L 39.7965,57.7965L 36.9233,58.9233L 34.0999,59.953L 32.7929,60.281L 31.5625,60.2742L 30.5423,59.7222L 29.5169,58.149L 30.4488,56.2218L 32.5088,54.4707L 34.8159,52.8129L 36,52L 38,50L 40,48L 40.1183,44.1183L 40.3327,40.3327L 40.5256,38.5268L 40.7716,36.7769L 41.3801,33.4141L 41.8269,31.9259L 42.4253,30.6286L 43.2715,29.6633L 45.1308,28.6799L 46.7589,29.7437L 47.5856,32.5325L 47.8986,36.1197L 48,38L 48.7418,41.2582L 49.4084,44.5916L 50,48L 52,50L 54,52L 55.3333,52.6667L 58,54L 60,54L 60.0024,52.0028L 60.0175,48.0198L 60.0826,44.0909L 60.2949,40.3144L 60.5551,38.5801L 60.9297,36.9578L 61.9123,33.9411L 63.3325,31.3529L 64.2076,30.2225L 66.0465,28.0526L 67.0259,27.0296L 69.0026,25.0034L 71,23.0001L 72,22L 72,20Z" style="fill:rgb(254,220,188);"/>
|
||||
<path d="M 64,78L 60,78L 60,80L 64,80Z" style="fill:rgb(94,170,125);"/>
|
||||
<path d="M 64,68L 64,70L 72,70L 72,68Z" style="fill:rgb(94,170,125);"/>
|
||||
<path d="M 70,58L 68,58L 68,62L 70,62Z" style="fill:rgb(94,170,125);"/>
|
||||
<path d="M 42,86L 36,86L 36,90L 38,92L 40,92L 42,90Z" style="fill:rgb(227,236,224);"/>
|
||||
<path d="M 68,76L 66,74L 60,74L 57.3198,75.3198L 54.5065,76.5065L 51.5268,77.5268L 50,78L 48.4115,80.4115L 46.8071,82.8071L 46,84L 46,86L 54,86L 56.0945,84.0945L 58.3099,82.3099L 60.7558,80.7558L 63.4888,79.4888L 66.4645,78.4645L 68,78Z" style="fill:rgb(33,149,100);"/>
|
||||
<path d="M 80,64L 80,26L 76,26L 73.3333,27.3333L 72,28L 72,58L 73.6143,60.3857L 75.2088,62.7912L 76,64Z" style="fill:rgb(33,149,100);"/>
|
||||
<path d="M 70,24L 71,25L 72,25L 74.998,24.499L 78,24L 78,22L 70,22Z" style="fill:rgb(148,187,146);"/>
|
||||
<path d="M 42,72L 38,72L 38,80L 40,80L 42,78Z" style="fill:rgb(240,215,182);"/>
|
||||
<path d="M 56,64L 52,64L 52,68L 56,68Z" style="fill:rgb(240,215,182);"/>
|
||||
<path d="M 58,61L 57,61L 56,62L 56,66L 60,66L 60,62Z" style="fill:rgb(240,215,182);"/>
|
||||
<path d="M 62,24L 60,24L 60,56L 62,56Z" style="fill:rgb(240,215,182);"/>
|
||||
<path d="M 42,88L 40,90L 40,92L 52,92L 52,90L 50,88Z" style="fill:rgb(166,213,193);"/>
|
||||
<path d="M 54,86L 50,86L 50,90L 54,90Z" style="fill:rgb(166,213,193);"/>
|
||||
<path d="M 59.2582,87.2582L 61.8498,85.8498L 64.5916,84.5916L 66,84L 66,82L 64,80L 60,80L 57.3333,81.3333L 56,82L 54,84L 54,88L 58,88Z" style="fill:rgb(166,213,193);"/>
|
||||
<path d="M 68,78L 64,78L 64,82L 68,82Z" style="fill:rgb(166,213,193);"/>
|
||||
<path d="M 74.6667,78.6667L 76,78L 78.6667,76.6667L 80,76L 80,74L 70,74L 68,76L 68,80L 72,80Z" style="fill:rgb(166,213,193);"/>
|
||||
<path d="M 84,24L 82,24L 82,66L 84,66Z" style="fill:rgb(166,213,193);"/>
|
||||
<path d="M 86,24L 84,24L 84,72L 86,72Z" style="fill:rgb(106,189,160);"/>
|
||||
<path d="M 94,114L 94,80L 92,78L 90.6667,77.3333L 88,76L 86.6667,75.3333L 84,74L 80,74L 77.3333,75.3333L 76,76L 73.3333,77.3333L 72,78L 69.3333,79.3333L 68,80L 65.5753,81.5753L 63.1045,83.1045L 60.5654,84.5654L 57.9647,85.9647L 55.3257,87.3257L 54,88L 51.636,89.3995L 49.2489,90.5836L 48.0432,90.9921L 45.5777,91.6132L 42.8616,91.8992L 39.7026,91.9863L 38,92L 38,114L 40,116L 42.6502,117.3498L 45.2759,118.7241L 47.8504,120.1496L 50.3544,121.6456L 52.7937,123.2063L 54,124L 55.3333,124.6667L 58,126L 59.3333,126.6667L 62,128L 70,128L 72.6667,126.6667L 74,126L 76.6667,124.6667L 78,124L 80.6667,122.6667L 82,122L 83.2056,121.2056L 85.6434,119.6434L 88.1441,118.1441L 90.7063,116.7063L 92,116Z" style="fill:rgb(6,150,109);"/>
|
||||
<path d="M 85.8729,57.8729L 85.6659,61.6659L 85.2814,65.2814L 84.7048,68.7048L 84,72L 84,74L 85.3333,74.6667L 88,76L 89.3333,76.6667L 92,78L 100,78L 102.4247,76.4247L 104.8955,74.8955L 107.4346,73.4346L 110.0353,72.0353L 112.6743,70.6743L 114,70L 115.2056,69.2056L 117.6434,67.6434L 120.1441,66.1441L 122.7063,64.7063L 124,64L 124,26L 122,24L 119.3498,22.6502L 116.7241,21.2759L 114.1496,19.8504L 111.6456,18.3544L 109.2063,16.7937L 108,16L 106.6667,15.3333L 104,14L 102.6667,13.3333L 100,12L 98.6667,11.3333L 96,10L 94,10L 91.3333,11.3333L 90,12L 87.3333,13.3333L 86,14L 83.6143,15.6143L 81.2088,17.2088L 80,18L 80,20L 80.8396,21.2073L 82.4279,23.6946L 83.7665,26.3869L 84.7608,29.3767L 85.4016,32.6928L 85.7538,36.2964L 85.9157,40.1046L 85.9759,44.0286L 85.9899,48.0011L 85.9756,51.9773L 85.9171,55.9173Z" style="fill:rgb(6,150,109);"/>
|
||||
<path d="M 62,84L 58,84L 58,86L 62,86Z" style="fill:rgb(132,196,168);"/>
|
||||
<path d="M 42,30L 40,30L 40,36L 42,36Z" style="fill:rgb(255,232,210);"/>
|
||||
<path d="M 42,4L 42,6L 46,6L 46,4Z" style="fill:rgb(255,232,210);"/>
|
||||
<path d="M 50,38L 48,38L 48,44L 50,44Z" style="fill:rgb(255,232,210);"/>
|
||||
<path d="M 48,92L 42,92L 42,94L 48,94Z" style="fill:rgb(94,180,147);"/>
|
||||
<path d="M 82,26L 80,26L 80,68L 82,68Z" style="fill:rgb(94,180,147);"/>
|
||||
<path d="M 40.6667,84.6667L 42,82L 42,78L 40,78L 38,80L 38,86L 40,86Z" style="fill:rgb(174,195,156);"/>
|
||||
<path d="M 50,76L 42,76L 42,82L 44,82L 45.1868,81.5847L 47.5787,80.7752L 50,80Z" style="fill:rgb(174,195,156);"/>
|
||||
<path d="M 56,74L 54.6667,73.3333L 52,72L 48,72L 48,76L 50,78L 54,78L 56,76Z" style="fill:rgb(174,195,156);"/>
|
||||
<path d="M 62,72L 62,71L 61,70L 52,70L 52,74L 54,74L 55.3333,74L 58,74L 60,74Z" style="fill:rgb(174,195,156);"/>
|
||||
<path d="M 64,68L 56,68L 56,70L 58.501,70.499L 61,71L 62,71L 64,70Z" style="fill:rgb(174,195,156);"/>
|
||||
<path d="M 64,66L 60,66L 60,68L 64,68Z" style="fill:rgb(174,195,156);"/>
|
||||
<path d="M 66,30L 64,30L 64,60L 66,60Z" style="fill:rgb(174,195,156);"/>
|
||||
<path d="M 72,25L 71,24L 68,24L 66,26L 66,30L 68,30L 70,30L 72,30Z" style="fill:rgb(174,195,156);"/>
|
||||
<path d="M 42,2L 38,2L 35.3333,3.3333L 34,4L 31.3333,5.3333L 30,6L 27.3333,7.3333L 26,8L 23.5753,9.5753L 21.1045,11.1045L 18.5654,12.5654L 15.9647,13.9647L 13.3257,15.3257L 12,16L 9.6143,17.6143L 7.2088,19.2088L 6,20L 4,22L 4,24L 14,24L 16.6667,22.6667L 18,22L 20.6667,20.6667L 22,20L 24.4247,18.4247L 25.6601,17.6601L 28.165,16.165L 30.7351,14.7351L 33.3557,13.3557L 36.0055,12.0055L 38.6675,10.6675L 40,10L 42,8Z" style="fill:rgb(254,244,234);"/>
|
||||
<path d="M 32,80L 29.5885,78.4115L 27.1929,76.8071L 26,76L 24.6667,75.3333L 22,74L 20.6667,73.3333L 18,72L 16.6667,71.3333L 14,70L 12.3857,69.6143L 9.1769,68.8231L 6,68L 4,68L 4,72L 6,74L 8.6502,75.3498L 11.2759,76.7241L 13.8504,78.1496L 16.3544,79.6456L 18.7937,81.2063L 20,82L 21.3333,82.6667L 24,84L 25.3333,84.6667L 28,86L 32,86Z" style="fill:rgb(254,244,234);"/>
|
||||
<path d="M 50,0L 42,0L 42,2L 50,2Z" style="fill:rgb(254,244,234);"/>
|
||||
<path d="M 74,18L 74,14L 72.7072,13.2928L 70.146,11.854L 67.6451,10.3549L 65.2063,8.7937L 64,8L 62.6667,7.3333L 60,6L 58.6667,5.3333L 56,4L 54.6667,3.3333L 52,2L 48,2L 48,4L 49.3333,6.6667L 50,8L 51.2928,8.7072L 53.854,10.146L 56.3549,11.6451L 58.7937,13.2063L 60,14L 61.3333,14.6667L 64,16L 65.3333,16.6667L 68,18Z" style="fill:rgb(254,244,234);"/>
|
||||
<path d="M 74,72L 74,74L 80,74L 82.6667,72.6667L 84,72L 84,66L 82,66L 79.6143,67.6143L 77.2088,69.2088L 76,70Z" style="fill:rgb(190,220,203);"/>
|
||||
<path d="M 84,24L 84,22L 78,22L 78,24L 80,26L 82,26Z" style="fill:rgb(190,220,203);"/>
|
||||
<path d="M 38,84L 34,84L 34,90L 36,90L 36.6667,88.6667L 38,86Z" style="fill:rgb(242,239,228);"/>
|
||||
<path d="M 64,62L 60,62L 60,64L 64,64Z" style="fill:rgb(242,239,228);"/>
|
||||
<path d="M 76.6667,20.6667L 78,20L 78,16L 74,16L 71.3333,17.3333L 70,18L 70,20L 72,22L 74,22Z" style="fill:rgb(242,239,228);"/>
|
||||
<path d="M 42,82L 40,82L 40,86L 42,86Z" style="fill:rgb(114,176,133);"/>
|
||||
<path d="M 48,80L 48,79L 46,78L 44,78L 44,82L 46,82Z" style="fill:rgb(114,176,133);"/>
|
||||
<path d="M 58,73L 56,72L 54,72L 54,74L 58,74Z" style="fill:rgb(114,176,133);"/>
|
||||
<path d="M 69,32L 69,30L 66,30L 66,60L 68,60L 68.0007,58.0013L 68.0044,54.0088L 68.0192,50.0384L 68.0636,46.1271L 68.1671,42.3341L 68.3593,38.7186L 68.6476,35.2952Z" style="fill:rgb(114,176,133);"/>
|
||||
<path d="M 70,28L 68,28L 68,30L 69,32L 70,32Z" style="fill:rgb(114,176,133);"/>
|
||||
<path d="M 70,64L 67.002,65.002L 64,66L 64,68L 65.3198,68.5767L 67.8263,69.8336L 70.0333,71.3234L 72,73L 74,73L 76,72L 78.6667,70.6667L 80,70L 80,64Z" style="fill:rgb(114,176,133);"/>
|
||||
<path d="M 72,24L 72,28L 76,28L 78.6667,26.6667L 80,26L 80,24Z" style="fill:rgb(114,176,133);"/>
|
||||
<path d="M 38,80L 36,80L 36,84L 38,84Z" style="fill:rgb(208,206,169);"/>
|
||||
<path d="M 47,76L 47,74L 42,74L 42,76Z" style="fill:rgb(208,206,169);"/>
|
||||
<path d="M 48,72L 46,72L 46,74L 47,76L 48,76Z" style="fill:rgb(208,206,169);"/>
|
||||
<path d="M 52,68L 52,70L 56,70L 56,68Z" style="fill:rgb(208,206,169);"/>
|
||||
<path d="M 56,66L 56,68L 60,68L 60,66Z" style="fill:rgb(208,206,169);"/>
|
||||
<path d="M 66,64L 60,64L 60,66L 66,66Z" style="fill:rgb(208,206,169);"/>
|
||||
<path d="M 64,30L 62,30L 62,58L 64,58Z" style="fill:rgb(208,206,169);"/>
|
||||
<path d="M 66,26L 64,26L 64,30L 66,30Z" style="fill:rgb(208,206,169);"/>
|
||||
<path d="M 47.5885,85.5885L 49.1929,83.1929L 50,82L 50,80L 46,80L 44,82L 44,88L 46,88Z" style="fill:rgb(49,155,107);"/>
|
||||
<path d="M 54,76L 54,78L 58,78L 60,76L 60,74L 56,74Z" style="fill:rgb(49,155,107);"/>
|
||||
<path d="M 70,72L 60,72L 60,74L 63.002,74.998L 66,76L 70,76Z" style="fill:rgb(49,155,107);"/>
|
||||
<path d="M 72,30L 70,30L 70,58L 72,58Z" style="fill:rgb(49,155,107);"/>
|
||||
<path d="M 74,58L 72,58L 72,62L 76,62L 76,60Z" style="fill:rgb(49,155,107);"/>
|
||||
<path d="M 44,82L 42,82L 42,88L 44,88Z" style="fill:rgb(73,163,117);"/>
|
||||
<path d="M 50,86L 46,86L 46,88L 50,88Z" style="fill:rgb(73,163,117);"/>
|
||||
<path d="M 60,80L 56,80L 56,82L 60,82Z" style="fill:rgb(73,163,117);"/>
|
||||
<path d="M 74,73L 72.6667,71L 72,70L 62,70L 62,72L 63.6143,72.3857L 66.8231,73.1769L 70,74L 74,74Z" style="fill:rgb(73,163,117);"/>
|
||||
<path d="M 70,32L 68,32L 68,58L 70,58Z" style="fill:rgb(73,163,117);"/>
|
||||
<path d="M 74.998,61.002L 72.998,59.002L 72,58L 70,58L 70,64L 76,64L 76,62Z" style="fill:rgb(73,163,117);"/>
|
||||
<path d="M 10,26L 8,26L 8,68L 10,68Z" style="fill:rgb(254,223,194);"/>
|
||||
<path d="M 46,18L 42,18L 42,22L 44,22L 46,20Z" style="fill:rgb(254,223,194);"/>
|
||||
<path d="M 12,24L 4,24L 4,68L 6,70L 12,70L 12,68L 11.2952,66.7048L 10.0138,63.9862L 9.5332,62.4668L 8.757,59.243L 8.3136,55.6867L 8.108,51.8952L 8.0391,47.9815L 8.0532,44.0413L 8.1664,40.1647L 8.4614,36.4612L 9.0527,33.0527L 10.0138,30.0138L 11.2952,27.2952L 12,26Z" style="fill:rgb(254,240,227);"/>
|
||||
<path d="M 36,82L 32,82L 32,88L 34,88L 34.6667,86.6667L 36,84Z" style="fill:rgb(254,240,227);"/>
|
||||
<path d="M 42,36L 40,36L 40,44L 42,44Z" style="fill:rgb(254,240,227);"/>
|
||||
<path d="M 50,4L 48,2L 42,2L 42,4L 44.4115,5.5885L 46.8071,7.1929L 48,8L 50,8Z" style="fill:rgb(254,240,227);"/>
|
||||
<path d="M 48,22L 46,22L 46,30L 48,30Z" style="fill:rgb(254,240,227);"/>
|
||||
<path d="M 50,44L 48,44L 48,48L 50,48Z" style="fill:rgb(254,240,227);"/>
|
||||
</svg>
|
||||
</body>
|
||||
</html>
|
||||
1065
static/lib/mqtt.js
Normal file
14
static/scss/init.scss
Normal file
@ -0,0 +1,14 @@
|
||||
.p_container {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.p_content {
|
||||
margin: 0 16rpx;
|
||||
}
|
||||
.p_box {
|
||||
background-color: #fff;
|
||||
padding: 24rpx 16rpx;
|
||||
}
|
||||
.marginT20 {
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
67
static/sss.svg
Normal file
@ -0,0 +1,67 @@
|
||||
<svg id="拓扑" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="718" height="516" viewBox="0 0 718 516">
|
||||
<defs>
|
||||
<style>
|
||||
.cls-1 {
|
||||
fill: #fff;
|
||||
}
|
||||
|
||||
.cls-2 {
|
||||
font-size: 28px;
|
||||
fill: #333;
|
||||
font-family: SourceHanSansCN;
|
||||
}
|
||||
|
||||
.cls-3 {
|
||||
fill: #999;
|
||||
}
|
||||
|
||||
.cls-3, .cls-4 {
|
||||
fill-rule: evenodd;
|
||||
}
|
||||
|
||||
.cls-4 {
|
||||
fill: #019a7c;
|
||||
}
|
||||
</style>
|
||||
</defs>
|
||||
<rect id="Background" class="cls-1" width="718" height="516" rx="10" ry="10"/>
|
||||
<text id="计量电表功率_kW0:00" data-name="计量电表功率(kW0:00" class="cls-2" x="178" y="194.999">运行</text>
|
||||
<text id="计量电表功率_kW0:00-2" data-name="计量电表功率(kW0:00" class="cls-2" x="529" y="343.999">1.08 kVar</text>
|
||||
<text id="计量电表功率_kW0:00-3" data-name="计量电表功率(kW0:00" class="cls-2" x="178" y="247">发电</text>
|
||||
<text id="计量电表功率_kW0:00-4" data-name="计量电表功率(kW0:00" class="cls-2" x="529" y="396">1.08 A</text>
|
||||
<text id="计量电表功率_kW0:00-5" data-name="计量电表功率(kW0:00" class="cls-2" x="529" y="447.999">1.08 kW</text>
|
||||
<g>
|
||||
<g id="计量电表功率_kW0:00-6" data-name="计量电表功率(kW0:00">
|
||||
<path id="Vector" class="cls-3" d="M154,2073.39a2.037,2.037,0,0,1-2.1-2.07,2.069,2.069,0,0,1,2.1-2.13,2.092,2.092,0,0,1,2.128,2.13A2.06,2.06,0,0,1,154,2073.39Zm0,13.72a2.1,2.1,0,1,1,2.128-2.1A2.085,2.085,0,0,1,154,2087.11Z" transform="translate(-1 -1888)"/>
|
||||
<path id="Vector-2" data-name="Vector" class="cls-3" d="M122.472,2088.04l-1.876-.98a21.769,21.769,0,0,0,2.772-6.84l1.848,0.62A28.246,28.246,0,0,1,122.472,2088.04Zm8.316-1.4h6.244c1.484,0,1.708-.42,1.876-3.28a5.814,5.814,0,0,0,1.876.78c-0.28,3.5-.924,4.37-3.612,4.37h-6.5c-3.22,0-4.088-.59-4.088-2.83v-5.46h2.044v5.44C128.632,2086.47,128.968,2086.64,130.788,2086.64Zm14.672-17.2H135.24a14.659,14.659,0,0,0,10.5,7.96,8.5,8.5,0,0,0-1.4,1.93,16.225,16.225,0,0,1-11.256-9.89c-1.372,4.4-4.34,8.07-11.564,10a7.894,7.894,0,0,0-1.148-1.74c6.468-1.62,9.212-4.64,10.528-8.26H120.652v-1.96H131.46a30.406,30.406,0,0,0,.616-4H134.2c-0.14,1.37-.336,2.72-0.588,4H145.46v1.96Zm-14.98,10.11,1.624-.95a36.937,36.937,0,0,1,4.508,4.7l-1.68,1.12A31.749,31.749,0,0,0,130.48,2079.55Zm9.464,0.84,1.848-.59a32.425,32.425,0,0,1,3.444,7.37l-1.988.7A31.765,31.765,0,0,0,139.944,2080.39Zm-10.248-4.87,1.736-1.09a23.313,23.313,0,0,1,4.62,3.36l-1.876,1.2A21.278,21.278,0,0,0,129.7,2075.52Z" transform="translate(-1 -1888)"/>
|
||||
<path id="Vector-3" data-name="Vector" class="cls-3" d="M117.544,2073.84h-7.7c1.344,6.1,3.948,11.14,8.288,13.52a8.142,8.142,0,0,0-1.512,1.74c-3.752-2.32-6.216-6.5-7.756-11.76a19.864,19.864,0,0,1-7,11.76,10.208,10.208,0,0,0-1.68-1.32,19.53,19.53,0,0,0,7.14-13.94h-6.356v-2.04h6.5c0.028-.59.028-1.15,0.028-1.71v-6.47h2.044v6.47c0,0.56,0,1.12-.028,1.71h8.036v2.04Zm-19.572,2.46v-12.76h2.044v25.56H97.972v-10.28c-1.652,1.6-3.36,3.2-4.788,4.48l-1.176-1.76C93.492,2080.34,95.816,2078.35,97.972,2076.3Zm-0.28-4.03-1.708,1.12a31.152,31.152,0,0,0-3.528-5.18l1.624-1.01A31.569,31.569,0,0,1,97.692,2072.27Zm18.984-2.94-1.652,1.04a35.738,35.738,0,0,0-3.332-4.96l1.568-.89A31.353,31.353,0,0,1,116.676,2069.33Z" transform="translate(-1 -1888)"/>
|
||||
<path id="Vector-4" data-name="Vector" class="cls-3" d="M75.18,2065.27H88.9v1.96H75.18v-1.96Zm-4.676-1.71,2.016,0.79a33.911,33.911,0,0,1-7.252,7,11.687,11.687,0,0,0-1.288-1.65A25.822,25.822,0,0,0,70.5,2063.56Zm1.12,5.97,1.96,0.73a37.737,37.737,0,0,1-3.052,4.2v14.78h-2.1v-12.46a37.48,37.48,0,0,1-3.192,2.91,12.607,12.607,0,0,0-1.512-1.71A30.384,30.384,0,0,0,71.624,2069.53Zm17.948,3.39v1.98H85.428v11.54c0,1.29-.336,1.85-1.288,2.18a21.039,21.039,0,0,1-5.124.28,7.683,7.683,0,0,0-.756-1.9c1.96,0.06,3.836.06,4.368,0.03s0.672-.14.672-0.62V2074.9H73.976v-1.98h15.6Z" transform="translate(-1 -1888)"/>
|
||||
<path id="Vector-5" data-name="Vector" class="cls-3" d="M45.668,2065.33h14v1.96h-14v-1.96Zm-0.112,18.25v-0.08a0.133,0.133,0,0,0-.028.08,21.119,21.119,0,0,0-.728-2.07,3.193,3.193,0,0,0,1.512-1.59,37.1,37.1,0,0,0,3.192-6.28H43.82v-1.96H61.628v1.96h-9.66a45.048,45.048,0,0,1-4.116,7.48l9.184-.7c-0.9-1.6-1.9-3.28-2.828-4.7l1.708-.79c1.736,2.72,3.976,6.33,5.04,8.43l-1.82.98c-0.28-.62-0.672-1.34-1.12-2.13C47.6,2083.14,46.4,2083.25,45.556,2083.58Zm-2.212-14.92-1.428,1.48c-1.092-.98-3.3-2.57-4.928-3.75l1.372-1.29C39.956,2066.17,42.224,2067.71,43.344,2068.66Zm-1.232,4.65V2084c0.616,0.28,1.232.87,2.324,1.52,1.876,1.17,4.228,1.37,7.308,1.37a101.864,101.864,0,0,0,10.248-.56,8.54,8.54,0,0,0-.672,2.29c-1.876.12-6.608,0.28-9.632,0.28-3.416,0-5.74-.33-7.7-1.54-1.12-.7-2.072-1.59-2.716-1.59-0.924,0-2.324,1.65-3.7,3.5l-1.428-1.93a14.218,14.218,0,0,1,3.948-3.25v-8.85H36.26v-1.93h5.852Z" transform="translate(-1 -1888)"/>
|
||||
</g>
|
||||
<g id="计量电表功率_kW0:00-7" data-name="计量电表功率(kW0:00">
|
||||
<path id="Vector-6" data-name="Vector" class="cls-3" d="M504,2222.39a2.037,2.037,0,0,1-2.1-2.07,2.069,2.069,0,0,1,2.1-2.13,2.092,2.092,0,0,1,2.128,2.13A2.06,2.06,0,0,1,504,2222.39Zm0,13.72a2.1,2.1,0,1,1,2.128-2.1A2.085,2.085,0,0,1,504,2236.11Z" transform="translate(-1 -1888)"/>
|
||||
<path id="Vector-7" data-name="Vector" class="cls-3" d="M495.656,2213.91v2.01H474.32v6.95c0,4.51-.336,10.95-2.632,15.31a7.2,7.2,0,0,0-1.68-1.17c2.128-4.09,2.3-9.89,2.3-14.11v-8.99h23.352Zm-9.688,11.48v9.6h9.6v1.99H474.488v-1.99H483.9v-9.6h-7.588v-1.99H483.9v-5.96h2.072v5.96h8.26v1.99h-8.26Zm2.156,3.02,1.484-1.01a24.108,24.108,0,0,1,4,4.2l-1.568,1.21A23.9,23.9,0,0,0,488.124,2228.41Z" transform="translate(-1 -1888)"/>
|
||||
<path id="Vector-8" data-name="Vector" class="cls-3" d="M457.828,2235.58h5.88c1.568,0,1.848-.9,2.072-4.54a6.337,6.337,0,0,0,2.044.93c-0.364,4.2-1.036,5.68-3.976,5.68h-6.16c-3.108,0-4.032-.81-4.032-4.09v-2.94h-6.888v1.71H444.64v-15.71h9.016v-4h2.184v4h9.268v14H455.84v3C455.84,2235.24,456.148,2235.58,457.828,2235.58Zm-11.06-16.94h6.888v4h-6.888v-4Zm9.072,0h7.2v4h-7.2v-4Zm0,5.94h7.2v4h-7.2v-4Zm-9.072,0h6.888v4h-6.888v-4Z" transform="translate(-1 -1888)"/>
|
||||
</g>
|
||||
<g id="计量电表功率_kW0:00-8" data-name="计量电表功率(kW0:00">
|
||||
<path id="Vector-9" data-name="Vector" class="cls-3" d="M154,2125.39a2.037,2.037,0,0,1-2.1-2.07,2.069,2.069,0,0,1,2.1-2.13,2.092,2.092,0,0,1,2.128,2.13A2.06,2.06,0,0,1,154,2125.39Zm0,13.72a2.1,2.1,0,1,1,2.128-2.1A2.085,2.085,0,0,1,154,2139.11Z" transform="translate(-1 -1888)"/>
|
||||
<path id="Vector-10" data-name="Vector" class="cls-3" d="M122.472,2140.04l-1.876-.98a21.769,21.769,0,0,0,2.772-6.84l1.848,0.62A28.246,28.246,0,0,1,122.472,2140.04Zm8.316-1.4h6.244c1.484,0,1.708-.42,1.876-3.28a5.814,5.814,0,0,0,1.876.78c-0.28,3.5-.924,4.37-3.612,4.37h-6.5c-3.22,0-4.088-.59-4.088-2.83v-5.46h2.044v5.44C128.632,2138.47,128.968,2138.64,130.788,2138.64Zm14.672-17.2H135.24a14.659,14.659,0,0,0,10.5,7.96,8.5,8.5,0,0,0-1.4,1.93,16.225,16.225,0,0,1-11.256-9.89c-1.372,4.4-4.34,8.07-11.564,10a7.894,7.894,0,0,0-1.148-1.74c6.468-1.62,9.212-4.64,10.528-8.26H120.652v-1.96H131.46a30.406,30.406,0,0,0,.616-4H134.2c-0.14,1.37-.336,2.72-0.588,4H145.46v1.96Zm-14.98,10.11,1.624-.95a36.937,36.937,0,0,1,4.508,4.7l-1.68,1.12A31.749,31.749,0,0,0,130.48,2131.55Zm9.464,0.84,1.848-.59a32.425,32.425,0,0,1,3.444,7.37l-1.988.7A31.765,31.765,0,0,0,139.944,2132.39Zm-10.248-4.87,1.736-1.09a23.313,23.313,0,0,1,4.62,3.36l-1.876,1.2A21.278,21.278,0,0,0,129.7,2127.52Z" transform="translate(-1 -1888)"/>
|
||||
<path id="Vector-11" data-name="Vector" class="cls-3" d="M117.544,2125.84h-7.7c1.344,6.1,3.948,11.14,8.288,13.52a8.142,8.142,0,0,0-1.512,1.74c-3.752-2.32-6.216-6.5-7.756-11.76a19.864,19.864,0,0,1-7,11.76,10.208,10.208,0,0,0-1.68-1.32,19.53,19.53,0,0,0,7.14-13.94h-6.356v-2.04h6.5c0.028-.59.028-1.15,0.028-1.71v-6.47h2.044v6.47c0,0.56,0,1.12-.028,1.71h8.036v2.04Zm-19.572,2.46v-12.76h2.044v25.56H97.972v-10.28c-1.652,1.6-3.36,3.2-4.788,4.48l-1.176-1.76C93.492,2132.34,95.816,2130.35,97.972,2128.3Zm-0.28-4.03-1.708,1.12a31.152,31.152,0,0,0-3.528-5.18l1.624-1.01A31.569,31.569,0,0,1,97.692,2124.27Zm18.984-2.94-1.652,1.04a35.738,35.738,0,0,0-3.332-4.96l1.568-.89A31.353,31.353,0,0,1,116.676,2121.33Z" transform="translate(-1 -1888)"/>
|
||||
<path id="Vector-12" data-name="Vector" class="cls-3" d="M67.872,2141.13v-12.15H86.044v12.09H83.86v-0.84H69.972v0.9h-2.1Zm10.136-10.31H83.86v2.8H78.008v-2.8Zm0,4.51H83.86v3.08H78.008v-3.08Zm-8.036,0h5.936v3.08H69.972v-3.08Zm0-4.51h5.936v2.8H69.972v-2.8ZM84.2,2117.86l1.344,0.87a18.469,18.469,0,0,1-6.384,5.74,41.742,41.742,0,0,0,10.948,2.57,8.92,8.92,0,0,0-1.26,1.94,41.7,41.7,0,0,1-11.872-3.31,45.481,45.481,0,0,1-12.068,3.7,9.29,9.29,0,0,0-.924-1.99,44.212,44.212,0,0,0,10.836-2.88,19.147,19.147,0,0,1-4.032-3.11,25.558,25.558,0,0,1-4.116,2.71,6.136,6.136,0,0,0-1.4-1.51,18.371,18.371,0,0,0,8.092-7.08l2.212,0.42a13.372,13.372,0,0,1-1.428,2.04h9.688Zm-11.676,1.96-0.28.28a16.043,16.043,0,0,0,4.732,3.39,19.787,19.787,0,0,0,5.18-3.67H72.52Z" transform="translate(-1 -1888)"/>
|
||||
<path id="Vector-13" data-name="Vector" class="cls-3" d="M50.708,2118.53v1.18a7.854,7.854,0,0,1-4.9,7.56,7.866,7.866,0,0,0-1.344-1.54c3.668-1.68,4.284-4.01,4.284-6.08v-3.08H57.6v6.5c0,0.78.084,1.03,0.5,1.03h1.932a6.132,6.132,0,0,0,1.316-.14,17.582,17.582,0,0,0,.2,1.8,5.764,5.764,0,0,1-1.484.14h-2.1c-1.9,0-2.324-.82-2.324-2.89v-4.48H50.708Zm-6.58,1.71-1.4,1.48a35.987,35.987,0,0,0-4.256-4.36l1.344-1.26A34.218,34.218,0,0,1,44.128,2120.24Zm-1.876,16.07,3.08-2.21a8.745,8.745,0,0,0,.756,1.71c-4.928,3.64-5.684,4.25-6.132,4.76a6.724,6.724,0,0,0-1.12-1.74,3.138,3.138,0,0,0,1.4-2.52v-9.99h-3.92v-1.99h5.936v11.98Zm16.6-8.54,1.288,0.59a17.381,17.381,0,0,1-5.376,8.18,21.455,21.455,0,0,0,7.112,2.85,7.078,7.078,0,0,0-1.288,1.85,20.7,20.7,0,0,1-7.5-3.42,25.25,25.25,0,0,1-7.476,3.36,6.254,6.254,0,0,0-1.036-1.84,22.188,22.188,0,0,0,6.916-2.8,20.331,20.331,0,0,1-4.676-6.58l0.392-.14H45.78v-1.96H58.492Zm-1.344,2.05H48.776a16.475,16.475,0,0,0,4.368,5.54A15.133,15.133,0,0,0,57.512,2129.82Z" transform="translate(-1 -1888)"/>
|
||||
</g>
|
||||
<g id="计量电表功率_kW0:00-9" data-name="计量电表功率(kW0:00">
|
||||
<path id="Vector-14" data-name="Vector" class="cls-3" d="M504,2274.39a2.037,2.037,0,0,1-2.1-2.07,2.069,2.069,0,0,1,2.1-2.13,2.092,2.092,0,0,1,2.128,2.13A2.06,2.06,0,0,1,504,2274.39Zm0,13.72a2.1,2.1,0,1,1,2.128-2.1A2.085,2.085,0,0,1,504,2288.11Z" transform="translate(-1 -1888)"/>
|
||||
<path id="Vector-15" data-name="Vector" class="cls-3" d="M495.4,2276.55l-1.652,1.12a22.821,22.821,0,0,0-1.344-2.02c-11.48.76-12.768,0.84-13.58,1.18a13.142,13.142,0,0,0-.56-1.96,4.4,4.4,0,0,0,1.876-.81c0.532-.51,2.128-2.47,3.276-3.98h-5.488v-1.88h7.952c-0.336-.98-0.812-2.18-1.26-3.16l1.876-.45a19.406,19.406,0,0,1,1.484,3.61h7.392v1.88h-9.6c-1.064,1.4-2.38,3.14-3.444,4.4l8.764-.54c-0.7-.86-1.484-1.73-2.156-2.49l1.568-.92A42.993,42.993,0,0,1,495.4,2276.55Zm-17.976-8.21L476.2,2270a25,25,0,0,0-4.732-3.62l1.2-1.45A25.025,25.025,0,0,1,477.428,2268.34Zm-0.98,7.06-1.148,1.74a23.832,23.832,0,0,0-5.068-3.08l1.092-1.54A24.83,24.83,0,0,1,476.448,2275.4Zm-0.224,4,1.512,1.38c-1.484,2.94-3.444,6.41-5.068,8.98l-1.736-1.4A86.954,86.954,0,0,0,476.224,2279.4Zm3.976,1.32v-2.86h1.9v2.89c0,3.08-.448,6.63-4.2,9.32a7.6,7.6,0,0,0-1.456-1.37C479.836,2286.35,480.2,2283.27,480.2,2280.72Zm4.928-2.83H487v11.03h-1.876v-11.03Zm7.5,10.11h0.812a0.932,0.932,0,0,0,.588-0.14,1.176,1.176,0,0,0,.308-0.73c0.028-.47.056-1.48,0.084-2.83a4.851,4.851,0,0,0,1.456.79,19.64,19.64,0,0,1-.252,3.19,1.686,1.686,0,0,1-.756,1.09,2.72,2.72,0,0,1-1.316.28h-1.372a2.49,2.49,0,0,1-1.54-.47c-0.392-.34-0.532-0.79-0.532-2.5v-8.82h1.932v9.05a1.437,1.437,0,0,0,.14.95A0.883,0.883,0,0,0,492.632,2288Z" transform="translate(-1 -1888)"/>
|
||||
<path id="Vector-16" data-name="Vector" class="cls-3" d="M457.828,2287.58h5.88c1.568,0,1.848-.9,2.072-4.54a6.337,6.337,0,0,0,2.044.93c-0.364,4.2-1.036,5.68-3.976,5.68h-6.16c-3.108,0-4.032-.81-4.032-4.09v-2.94h-6.888v1.71H444.64v-15.71h9.016v-4h2.184v4h9.268v14H455.84v3C455.84,2287.24,456.148,2287.58,457.828,2287.58Zm-11.06-16.94h6.888v4h-6.888v-4Zm9.072,0h7.2v4h-7.2v-4Zm0,5.94h7.2v4h-7.2v-4Zm-9.072,0h6.888v4h-6.888v-4Z" transform="translate(-1 -1888)"/>
|
||||
</g>
|
||||
<g id="计量电表功率_kW0:00-10" data-name="计量电表功率(kW0:00">
|
||||
<path id="Vector-17" data-name="Vector" class="cls-3" d="M504,2326.39a2.037,2.037,0,0,1-2.1-2.07,2.069,2.069,0,0,1,2.1-2.13,2.092,2.092,0,0,1,2.128,2.13A2.06,2.06,0,0,1,504,2326.39Zm0,13.72a2.1,2.1,0,1,1,2.128-2.1A2.085,2.085,0,0,1,504,2340.11Z" transform="translate(-1 -1888)"/>
|
||||
<path id="Vector-18" data-name="Vector" class="cls-3" d="M489.188,2331.68l-1.652.73a6.655,6.655,0,0,0-.756-1.48c-7.28.7-8.26,0.84-8.82,1.12a17.337,17.337,0,0,0-.616-1.82,5.992,5.992,0,0,0,2.324-1.37c0.532-.45,1.736-1.54,3.08-2.92-3.22.26-3.836,0.4-4.256,0.56a10.093,10.093,0,0,0-.588-1.76,2.169,2.169,0,0,0,1.232-.9,19.147,19.147,0,0,0,2.156-2.85H471.1v-1.91h11.4c-0.364-.7-0.868-1.54-1.288-2.18l2.016-.53a16.84,16.84,0,0,1,1.652,2.71h10.388v1.91H483.476a31.513,31.513,0,0,1-2.66,3.41l3.556-.22a25.686,25.686,0,0,0,1.876-2.32l1.708,0.98a55.37,55.37,0,0,1-7.056,6.97l4.9-.39c-0.448-.62-0.924-1.26-1.372-1.8l1.54-.64A21.236,21.236,0,0,1,489.188,2331.68Zm5.74-.39-1.54,1.23a35.7,35.7,0,0,0-5.488-3.92l1.484-1.12A35,35,0,0,1,494.928,2331.29Zm-2.8-9.24,1.736,1.07a29.8,29.8,0,0,1-4.172,3.5l-1.512-.98A24.274,24.274,0,0,0,492.128,2322.05Zm-20.636,1.23,1.4-1.14a24.507,24.507,0,0,1,4.256,3.16l-1.456,1.26A22.934,22.934,0,0,0,471.492,2323.28Zm6.048,4.15,0.42,1.54c-2.128,1.15-4.4,2.35-6.244,3.27l-1.036-1.68C472.416,2329.86,475.02,2328.63,477.54,2327.43Zm17.948,6.89v1.93h-11.4v5.91h-2.184v-5.91H470.54v-1.93h11.368v-2.3h2.184v2.3h11.4Z" transform="translate(-1 -1888)"/>
|
||||
<path id="Vector-19" data-name="Vector" class="cls-3" d="M453.152,2332.02l0.252,1.93c-3.78,1.12-7.784,2.24-10.724,3.05l-0.532-2.12c1.232-.28,2.772-0.68,4.48-1.1v-11.92H442.54v-1.99h10.192v1.99h-4.06v11.36C450.128,2332.83,451.668,2332.41,453.152,2332.02Zm6.524-9.1h7.56s0,0.78-.028,1.06c-0.448,11.48-.812,15.49-1.876,16.78a2.783,2.783,0,0,1-2.156,1.09,30.909,30.909,0,0,1-4.116-.06,4.815,4.815,0,0,0-.644-2.04c1.708,0.17,3.3.17,3.92,0.17a1.414,1.414,0,0,0,1.176-.42c0.784-.9,1.232-4.65,1.652-14.56h-5.6c-0.448,7.42-2.072,13.66-8.456,17.24a6.052,6.052,0,0,0-1.484-1.65c5.936-3.16,7.476-8.82,7.9-15.59h-4.592v-2.02H457.6q0.084-2.82.084-5.88h2.072Q459.76,2320.07,459.676,2322.92Z" transform="translate(-1 -1888)"/>
|
||||
</g>
|
||||
<path id="Union" class="cls-4" d="M364,2216h-4V1976H130v-4H590v4H364v240Z" transform="translate(-1 -1888)"/>
|
||||
<image id="pv" x="307" y="348" width="106" height="92" xlink:href="data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGoAAABcCAYAAACGAiAnAAAN/UlEQVR4nO2dW2wcVxnHf2fW60vcpG5ap2lc0lvaUtpSeuEFgagqhAQIkEBC8ASRnEBeUJAaxw88pBIPubzkBVVqXJmbkAAhVHG/FAGVSkuAVr2kpG16d5rEuThXx96d+dA58613vN5dz8yuN5lk/pIVZeQ5c875zuU7///3HRtawfhoD4Fcg/AR4FrgCqAINCr3LMgE8A+Gd07NPR3beg9wP7AC6EpYo1OIvAs8zYadJ6tljtjyPgpmGeC10MoZ4BDwF4Z3nIjU+U7gXuBqbXM9HAHexjf7CTjBpu0zaSuRtFPmQ7gGeAD4BnC3GqtZx7wHPAW8CEwxvg33u/70x4HvANcDPQlr8Rbwd+AV4GTk+SeALcBgk46Mg1PAv4EXGN88xfrdou/cB3wL+LAO0HrY5walkV9TcO8fBALW705ciRYNJQ8Cw8AHgSuB7iazyb4wCXJARylq0F5gFbCmxQ5dKvQD12BkudZvVr9jVwTb8Xc0+e6NzogetwM/Bn4GnHfGSoh0hhobsQZZjbjRdK+OqEKMNyeBqqH86S4d8VcBfR3o9DQoOGMJ1xMU39HlzA66KTDWUKUmZdrVZUgH8V78btvW9yPGjo20a7ft1LuAW7QScYxkJ9tRMG+ACQ0lfjfiXw9yVcp6dAo9rq1iVlWbIicw8k6MTi9oHw0hZi1iutPUuVVDrUn43hS+OYhvdBR6PeCtAzOYsh6dQmgopFpP0zUB3kvAdLw6yBpMcBcmSLVypDOUMT0Yc5s6D3Fg1+QzwFECM0lgypFybtHl72KGnQVrwVRnvuk5jXBYHZg43px9/z71QhMjuaEe2+LpBnuT22TjwRrmmDPUpu0n2bTd17d6EpZzoVAEswbMwNz3128rQ3AG5IgOwkVgrlcPcbn2YSKkmVEDBLIWmXPF46CEyEFEpmp+t6ib7UDMci6goWQNSG09Z9Q5moxXhrkS4QNp2pvc6zNen+5RhxIY+jTwX5CDc0/GtxXwz3sgx92hMK0HKtaLMofreF8ntBOPtXwMsV+xToNQ4tHRfrcvbdoeqKv9Cshq613EKOcgmF6MSbxPpWiAsZ07jcjT6s3EwRkMz4N5e/63TRkJngMmktdjrj4nwbypnRaB88ieQpoewJNBnGu+XD29QB2JFxHbFnk/Rlm2rtNhHyZDmpE26c4E8FqC98u6jp+OPCvpgfGnulmnRVk77FTN+88D76h73BpVVsWUztSyPrHffUlXhDjbQFnLONum+uTIkSPHpYz4a/fYSH/IRpgbkp175DCI3ez/x/Cuc4yPes5r9MVKI/e0oW9PI0462cuGndU9cGxEeUjTG5/iioUpAp7CN0fmZIuxrWuBW4EblGReDEd1X3uJ4R2x9qskzoT1/b8EfEYljbiw3uGv1LM7F3pITsP5CvDtNnRcReZ4o8ZZeahNMkctXnf1NvJshJGw6sFXgS9o2xaDlXn+oH0Sy1Dx3cTUdI+ZBPP6HBEbBEWCYE0GDrmN0IORdXhBlaAN2YkDMakkwkO+3AUSZ/Y5xDPUY1uWIbJKhb0VcQtXqAYl2gjTA+bGmCPvYkTI+xlWVutmJhMaanloLDPEntHlcV6IO6MGECxtNJiANrIndd/pN4XSmxRKlUYoE33RE7GNUMQwhImsCIW+oxjvTT1XxWEoKnTSrXH7IZ6hjJMh1iWUyUshZWRVXccaVBpQVHkku0ufG2jzpJkSEpwGOeb24UTlBLEMFc+ZMOY63TBjr6nKPNjN8jjrd5cjz7vVO8rw0mfWOm1qfHPRsQ3rtwWMjdjZ9K6qAf0xyunBWDGSVTF+dxFDhcEnBn/azoA7E8rls2AmlDIJsedhT5fOmzJsqKILQ7AzSrx+9TT9CJN+h+7liyGcUXa1Gt9s3IrTJOhlsaXPU+MM6b6SZOmbQTiAmKgEMAiStJyLFQP4xTX4xdD1NzKDcYE7R2JWuLJXD2kfN7VF8xnllwvq5QVagbiVwMkgYl5BolqN14fQh3FhY4kjceoilDkmI0RpBVN6xjrZBpmjHs6A6a8epo1KHrwM3JygHIPfbVeXw83iL5o3IAhCQxnbGfJkwoYcRXjBSe9z8AIQGzD5TAKJZBE4meNAHZnjPXfYbqfMMQ/um/6ck+QtCw1Vnn4aJIHcbgN+vEHVzVIaKnzR7jN/VmkjCWZVXIx6QRWJ5EAbR3lZT/f1ZI6JNsscUZxWyaNy7KjoU5aJebWFcnLkyJEjR4jGa/eekdUudtqYuNR9FK8jZr/zvDZsLzM2UgylEXOrnqHaiTOIlVJ4ng07q2FbYyMfCs9+TuZYAmfC4Rwi+xF5j427jrsne0avcOcsI/c0SR6oxXlE3nZe6oadh+r9QrMN/Q6VIr6cgpf7AfB9zWYoRyJrh7XMdqIic2yria/79BLJHFHYmI9Hgd86BiaEdbU/BjyiSQJxYJ2sXwI/VwdsARobKuT30h5OpzD+RDWEy2SdiG2EUPoxEd7PFKbAXyx5oBaLSkgLDRUqsL34koaN8MNRLccolE7o/7kEGPNGWNiuQvEcQXAUcfGK0zFpt0o5q6v84e55LHy9GWWfrVTiNMkJmypjziTrd4cHUMsX+tOXvqHGN4dP1m8rMbb1lBK0axMY6mbN+FimS7gf/YWFm2zg9xD46zS5LCmUiDXR0OVujLdCicqsShuNUNBBPVDD1yUJdY5A1lDuupty1wLj1vOGWhn9sy5oQxwdEsI/3484zWXgEiFjo6hkTF5N0HUtQZeuUDKrkbrHY5ajMKsx5naMWeBlLzSUmB4kdSrMDGLeQCx/VSmvPIAEQxdp2me7YCWPdYgXdrCREsZGRi1IilgMg+qcLBjQCw3VWs5SKcx6DyIVtISjuVSkjQYQlW8kbKMxMxgX0JNw6bPKtwt6WbD0zXcmxke7CaRP+eDjKYjCt0DeqhlJPfrz/kKGuw0QlyFxrI7MUdnQzy6RzBHFGV0CQwLBeLPhGcvpU6/q92MQwxK69FYKenS0m03b59j02gYscz9iOztVIPtBlzywcVfUULOh5OHi4JIyHDFgHRc7emsHlQvKfFZljnYGYNbDoXmDZb1L1DvB2JbnXfxe6MnFrYPNyOxVWzQ01FkNMPxJyqVqWin7KF5TEW+pOqykI7qezHEo/mhuCef1+7WZh2nqMKP3ceQZHzly5LjcEa6bj28pOiZCrKRhhlL2ycsM79g397+xkT4NVLxuiRmJs4gL8tzHhp3VdX1sxEoqtyshvFQyRxSzykS8xfCOaq7y2Nbl4eVZrg/i79E2QyWUPo6wcVep4kz0a2FfB76YsqKP6E8Fllr5GvDZNqXXNIJtzN/029EN+HPAw0ssc0QxpfX4IfBE5Lkd+N8DdwNbEq/3CS3LljkVGirwQr3IuEKTekihlyJydP5jEw1dXmqvq1H5JvKz1OjVsO9ajrSkZ8ibEgWwWukkJB7+SWRJ6NWQ5dUpGjOLOF6ryu/ZqwkwfRm5Q6JdqNyZsZLxzV0a/UokkispnbQ6XLrDWRgaymgcdFrayDCBmcdGFDHGxu2luvwio+hqwKRXsv9PJmzWUJRO8tjzsOWp1ukH0qzlSulHeC1/ehAJLnF+ryEG8Yu34Be17TYvTFJIHi415yow69gzOuhhvNUaHxH3zr1azLiLPqLSRngL1+VqqFUhCV1hwG2mpUkSk15BwdnE5VDJoKeXMd3VwsWGJQImKHuRpa+leIuMQ3SFUia90DtDoTcNk07Yf46Vt4ailU4956a0cdM6Gro8oBtrKzeyZBT2BjI3+HUbMUF4rY7dw+VErcS+COaCZyoZ6jek7NTT7noCwyk27YgGuK/UeIHL0FA2+cGSBtLH+GbPJbnZVWds5Li66X0Jtpg5td1rbfTLlF7vVhsateoy3qMGQD6AkStr+nRSlYkkmlzFUKu61H2c0UKTUi2TulGGWtCeh3vU6IMdom0uRtjU0RWIGcLveWfOMGJjHZlIGO/nq3xyzlNLv5Yu7cPUjBJ7sa3lCyWraZ/tQPVWZ5l3hjyGEOey4CisTWy2/VEPkZcR+VMd4S0OJhE5gMzdIVEM12dzuRxyG2HhjZkhcVxHiW6Ks4jZi5i3u8LZZH6jl1Q8oJzUikU2vCAMiXJng8shdDkpFt7qHFJI7+mEKDUhF3x10vaD+RfIE2D2dbFh5yR7Rp9DuAIj72K4DXFpm80CQirXdL7Axl1RaqSsuaj/0X87gcN6t1DttdZ2yXhSU1CXOrilFueUjaiuUht3TTO21Rrqr5rY0Mh5K4OcdLKRyN7wMq4dpysNsAX+0f2hkNAJiMs21663lkEfB37UAca8gsoNMbV1+Z2mtHaqHrUI6jgOlvP7bgxHS/T9cuXcdaEa0TrGtl7jtDPjiN9Gyc0zYTgZzzC847ksNa8WnV4S2gm7p34K4d559xLNx1nN0bIbeW6oCwNRWcGs0j21HvpV0Ixz5c1FjSzPKHSt95qs+Z1UeJcUlyt7kDnkhsoIckNlBLmhMoLcUBlBbqiMIDdURpAbKiPIDZUR5IbKCHJDZQS5oTKC3FAZQW6ojKCz9P/jWx8EPtmm0q5G+DxwXZNAz5JebPIsxv552ZYxjbhgnt8zvCPhPUetodN61P3AN9tUVlGjfJu1oah/Jv0hTX1tDeIiiZ7TK7MvYUOJU1rTXC/XCHGX7mXu2prW0a1x9R0XXDv9Qa8D1900+m47ULhA9c+diawgN1RGkBsqI8gNlRHkhsoIckNlBJ12zydS/B2qiwn2bz3tX5IrVxdBpw31C82wyCpshoXNGoncqdEBAP8H/OQpM6WFaO0AAAAASUVORK5CYII="/>
|
||||
<image id="DCDC" x="322" y="151" width="80" height="80" xlink:href="data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAJR0lEQVR4nO2cy3MTVxbGv9OSZeNgGwzJmEeoyoOEYQikEkKmmFRNTWWVmj9g1pQJ62yw17NJFc4m68Su+TtSWUxlkZBAhhkmTMLkwSQ8ggGjGEcGYySdqXPuuVarbT3pllqgr0plkLqvWp9+99xzbp8SYXaa0VfbytqJRQAroUexb2mVcgA2AxgyzwL/ojdQTJtfexAXun/NaRKNA3gewARYjcz5i4saeBHEFwEsPO6WmYS4LQCeBbAbQBnAqr2mJFYb6Mz7AsDVrl52WsSYAOhlAANrU5jUq1VPYiUGumm7oOZNzvz4WBv34bQnb0inLUGm8F0APwMo2PO7wwb2VS0xT8j7PQh/tP//COK8W2Bpwp4b7RsYVoW8fWbey/b/RRD/y9aJLQDnANJY2DewWrXIE/M+sbXiUPiMvoGi2elhANuVPMZREA5GyPtcMxQX+14Mn9o30EnMe8PIexXAcIS8i2qmLCgRNWfg3HQQzcCdmEGlsj4kRzr2fmtl4QcnM5qUErIgCnQMKq0iKBXbGq9VVcgT4o7aXyHvZhV5kzPzzoepdW/QLIFZy4NykedLllj6R6nFjyDjjYfGljHyliq0M16r8uSJea8bed+D+FyEvJqqb6Anj/GUrUzbqw+gEjizCsqsAHQXc9PLYBTAWNI3fvvUStXhs1NZF0doDNAxnwSzjDkCUA7gVXAmj3LmNkALmJu+rYZOnroXq20bkzds5J1bR14dNSLQkyfm/QXAgcjrDFAZjBWQmnYdwA8Avgbgl/2whiyOvATgTxqQiWT8QRceqGxZ/nUQLgD4J4CzAK7FamAM5IUNqqfAptZ2M++QTbEly8yLNsYAGJsAPAFgq11QAR9OlfTYgB6ESH4FwGEAv1MC3Th3rc7M2rm7wBjQ2Cjnz+k4i5icWWlwvfUVI3nNGhiVmHfGCLviYhXnwBgByYWRlDfPgTACZvmwGTv2jpEsOxp/tr8LIP4KwFdgKZE0MZVjngbwgn44xmGQjiO16PkNiG5VsZHXroFCymUA/wbwDcB5sBo4puUN8QGAhKoxEL0E5vsg+dBcUnMJe8GaR20GsWxafAoqn0dQvKZTtzzoDfwVrHSO25TfBeDbtm1LgDyvVg207Ry+a9M4b9P8F6OjAOJBMEmMewZEJUDSAZZYKVN2L0iPvwzQaUBNXLQVt2xf0BWAsyANCXsAylgYCZq4vlqKnbx2DWRHEySm3cfxmerVcW4q4y6WxwH6rTNAKKKiGgrssHPnNVGdnIlumz3Q6T538rIzjW5YTM1bGdWaEiSvXQPrq8yOIKJrtsDIxY6C9d9PuRin22b50MbkRiooIW71DeeHrSox8pIxkI0gmd6kU1Li47AaQLpADNg0LdS97zL5XruGOXWAPK+ka+EApAmyj2FlQFOaBxbzklLi5HnFa6CrZ6W2DRnGqxovK6YFlt5QzXHWKhbdQh8yWhvngR0kzytuA7OWTD9hYy+7qci3bdoKgZtCr9eSr1jk8Rs7t5k8sGPkecVj4N/eISWrzKMAPau5HMuKrRe7CEIejJuWz+20CmQMH5zcpPHxxHvVmwZEowD2AywJ9za7F/FDzffvAnlecRHoS74J3VNzH2DVfXBaAlg2Jn8Ca6WyT9Mb5p2WKMtiEd0sEDP+ANABW8HLRmUtdZw8r1YNHDR6ntHcbnZ6B8ABSmreMEjr2/1ud0XTkP9Yki1J9yXLAw/p60SHdN0mXMXs1B3bSAhswTlotfKEjVOd9qwRPzAMDsZtc6Kj5Hm1aqBNLf0r9w5WjbxhgCTf2+pqYlwF4VOwfoCFUF43AvCL7gPTmyB6FWB5/pYtMjlNnIVOop36fPU4Xp54OeaIUddR8rwaGEjsNjV52baqxmw6jYamVC70KFqscltRpKYV1vK62alLthkB+yK22abpNjMwa/TKKv2Tq7dD46yRl90C0B4rGd+w+xSDeo3E/7DmgETJa85AylrtW7wJyLfKfioVAfZ5XGDPLTlK+Lp1Nki9G02YZSH5uzOHD1qtO2pfgK+FfwHhBsD/tS8jPI6Rp+a9ZdQ9b1+C7PqcA9NpEH+XNHleDQzMVAxknRZXahx5z+LULVD5Bqh4R8879n716np8Rkj+H+ZO3tEdF9AV1z6hVQqsYvlVSzgqfwMqzoc2GsLkHbGY94K9JrR+aXQLebfis6i+GsVA30xz04r5wRrH+Xsj9+24RpWGj4k/h1rG/PsV7QtZqjKvmryjAO2318/Y46wtVEtxm1RP9Q089leLgZoQL8f2rpVat369uz7mhcmTMb6zLbEzOt2Pz7RfP7eptN8XbkCemveFkdeVnsZ0GtgaeZe6QZ5XWglMPXle6TKwh8jzShuBPUOeVzoM7EHyvNJCYM+R59VdA3uYPK9uE9iz5Hl1x8BHgDyvbhHY8+R5ddbAR4g8r04T+MiQ59UZA32na5m3Wr/MYbv59JxtgX1fRR7Roh4/Nx25kZS+nuxOEWidriRT9S0zcI/t+0n31pcR8nqmJztZAyvd/dtt6/11I2+3Xbhs239m7cAV8nqoJztpArORztTXwEreAkAfg3EWpHfl5iPk9UxPdjIGbkzea0begn5YuVXJgfzN48S79+y8oV7ryU6KwEbkfQ7Q1030Caa+JzteA1shDyHyaiv1PdlxExgXeV6p78mOx8D4yfNKfU92XATGTV5zSkFP9sMZmBx5zSkFPdkPS2B3yKutjvdkt2dgt8nz6nZP9kMQmA7yut+T3aKBaSGv2z3ZIbVKYFpiXrd7stfU6m8mdJq8dPRk11Grv5nQafLS0pNd15ja6jh5KevJfmgDO01e+nqyG2pjA9eTd8T21XYY/ucTiXlp6cmOjlNHtQiMkveKBdh5gD7RneRkYl5aerKbVtTA8K90hMkz8zS5PA0OLiSS53W7J7sNRQ305E2sJw8fhTrhO1Xbpl7ewABMOZDcsaIDthUUNu+crWYX9JcuT7zbN8+UDf0dAdNe+9HB8Qh5ZyyGNL06PS7yBvpieovlSOV15Gl+dapPXkTewM3WZuF/hPvbPnnNyRvoWx4KRl7epRK6HV5psdjg9/MeM+3WDIX15rx6F12FV8CSlWMZxLssDysmtZvbgxLz9lm4G9rIwEoeyDQI4n7MC8uRN1HPQB8Ldyl5TH3yqlXZ+q9hoI+FfTUjAP8HIzP5Aa4b7ZEAAAAASUVORK5CYII="/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 22 KiB |
BIN
static/topology/pv8pcs4.png
Normal file
|
After Width: | Height: | Size: 52 KiB |
@ -1,4 +1,3 @@
|
||||
|
||||
import config from '@/common/config.js';
|
||||
import Vue from 'vue'
|
||||
import Vuex from 'vuex'
|
||||
@ -6,20 +5,22 @@ Vue.use(Vuex)
|
||||
|
||||
let lifeData = {};
|
||||
|
||||
try{
|
||||
try {
|
||||
// 尝试获取本地是否存在lifeData变量,第一次启动APP时是不存在的
|
||||
lifeData = uni.getStorageSync('lifeData');
|
||||
}catch(e){
|
||||
} catch (e) {
|
||||
|
||||
}
|
||||
|
||||
// 需要永久存储,且下次APP启动需要取出的,在state中的变量名
|
||||
let saveStateKeys = ['vuex_user', 'vuex_token', 'vuex_remember', 'vuex_locale','vuex_isAgent','vuex_language','vuex_stationValue'];
|
||||
let saveStateKeys = ['vuex_user', 'vuex_token', 'vuex_remember', 'vuex_locale', 'vuex_isAgent', 'vuex_language',
|
||||
'vuex_stationValue'
|
||||
];
|
||||
|
||||
// 保存变量到本地存储中
|
||||
const saveLifeData = function(key, value){
|
||||
const saveLifeData = function(key, value) {
|
||||
// 判断变量名是否在需要存储的数组中
|
||||
if(saveStateKeys.indexOf(key) != -1) {
|
||||
if (saveStateKeys.indexOf(key) != -1) {
|
||||
// 获取本地存储的lifeData对象,将变量添加到对象中
|
||||
let tmp = uni.getStorageSync('lifeData');
|
||||
// 第一次打开APP,不存在lifeData变量,故放一个{}空对象
|
||||
@ -49,11 +50,11 @@ const store = new Vuex.Store({
|
||||
vuex_isAgent: lifeData.vuex_isAgent ? lifeData.vuex_isAgent : '',
|
||||
vuex_iv: lifeData.vuex_iv ? lifeData.vuex_iv : '',
|
||||
vuex_psdkey: lifeData.vuex_psdkey ? lifeData.vuex_psdkey : '',
|
||||
vuex_StationShow:lifeData.vuex_StationShow ? lifeData.vuex_StationShow : [0,0,0],
|
||||
vuex_StationShow: lifeData.vuex_StationShow ? lifeData.vuex_StationShow : [0, 0, 0],
|
||||
tabbar_current: 0,
|
||||
vuex_stationValue:lifeData.vuex_stationValue ? lifeData.vuex_stationValue : '',
|
||||
tabbarList: [
|
||||
{
|
||||
vuex_stationValue: lifeData.vuex_stationValue ? lifeData.vuex_stationValue : '',
|
||||
vuex_inverterFlag: lifeData.vuex_inverterFlag ? lifeData.vuex_inverterFlag : 0,
|
||||
tabbarList: [{
|
||||
"icon": "warning",
|
||||
"text": "告警",
|
||||
'name': 'Alarm'
|
||||
@ -85,10 +86,10 @@ const store = new Vuex.Store({
|
||||
'name': 'My'
|
||||
},
|
||||
],
|
||||
vuex_language:"en_US",
|
||||
vuex_language: "en_US",
|
||||
// 如果vuex_version无需保存到本地永久存储,无需lifeData.vuex_version方式
|
||||
vuex_config: config,
|
||||
vuex_currentComponent:'Data'
|
||||
vuex_currentComponent: 'Data'
|
||||
},
|
||||
mutations: {
|
||||
$uStore(state, payload) {
|
||||
@ -96,9 +97,9 @@ const store = new Vuex.Store({
|
||||
let nameArr = payload.name.split('.');
|
||||
let saveKey = '';
|
||||
let len = nameArr.length;
|
||||
if(len >= 2) {
|
||||
if (len >= 2) {
|
||||
let obj = state[nameArr[0]];
|
||||
for(let i = 1; i < len - 1; i ++) {
|
||||
for (let i = 1; i < len - 1; i++) {
|
||||
obj = obj[nameArr[i]];
|
||||
}
|
||||
obj[nameArr[len - 1]] = payload.value;
|
||||
|
||||
4
uni_modules/leliven-mqtt/changelog.md
Normal file
@ -0,0 +1,4 @@
|
||||
## 1.0.1(2023-10-18)
|
||||
更新使用文档
|
||||
## 1.0.0(2023-10-18)
|
||||
初始化mqtt
|
||||
3
uni_modules/leliven-mqtt/index.js
Normal file
@ -0,0 +1,3 @@
|
||||
import mqtt from './mqtt.min.js'
|
||||
|
||||
export default mqtt
|
||||
1
uni_modules/leliven-mqtt/mqtt.min.js
vendored
Normal file
85
uni_modules/leliven-mqtt/package.json
Normal file
@ -0,0 +1,85 @@
|
||||
{
|
||||
"id": "leliven-mqtt",
|
||||
"displayName": "leliven-mqtt",
|
||||
"version": "1.0.1",
|
||||
"description": "leliven-mqtt",
|
||||
"dependencies": {
|
||||
"mqtt": "^3.0.0"
|
||||
},
|
||||
"keywords": [
|
||||
"leliven-mqtt"
|
||||
],
|
||||
"repository": "",
|
||||
"engines": {
|
||||
"HBuilderX": "^3.1.0"
|
||||
},
|
||||
"dcloudext": {
|
||||
"type": "sdk-js",
|
||||
"sale": {
|
||||
"regular": {
|
||||
"price": "0.00"
|
||||
},
|
||||
"sourcecode": {
|
||||
"price": "0.00"
|
||||
}
|
||||
},
|
||||
"contact": {
|
||||
"qq": ""
|
||||
},
|
||||
"declaration": {
|
||||
"ads": "无",
|
||||
"data": "无",
|
||||
"permissions": "无"
|
||||
},
|
||||
"npmurl": ""
|
||||
},
|
||||
"uni_modules": {
|
||||
"dependencies": [
|
||||
],
|
||||
"encrypt": [],
|
||||
"platforms": {
|
||||
"cloud": {
|
||||
"tcb": "y",
|
||||
"aliyun": "y"
|
||||
},
|
||||
"client": {
|
||||
"Vue": {
|
||||
"vue2": "u",
|
||||
"vue3": "u"
|
||||
},
|
||||
"App": {
|
||||
"app-vue": "u",
|
||||
"app-nvue": "u"
|
||||
},
|
||||
"H5-mobile": {
|
||||
"Safari": "u",
|
||||
"Android Browser": "u",
|
||||
"微信浏览器(Android)": "u",
|
||||
"QQ浏览器(Android)": "u"
|
||||
},
|
||||
"H5-pc": {
|
||||
"Chrome": "u",
|
||||
"IE": "u",
|
||||
"Edge": "u",
|
||||
"Firefox": "u",
|
||||
"Safari": "u"
|
||||
},
|
||||
"小程序": {
|
||||
"微信": "u",
|
||||
"阿里": "u",
|
||||
"百度": "u",
|
||||
"字节跳动": "u",
|
||||
"QQ": "u",
|
||||
"钉钉": "u",
|
||||
"快手": "u",
|
||||
"飞书": "u",
|
||||
"京东": "u"
|
||||
},
|
||||
"快应用": {
|
||||
"华为": "u",
|
||||
"联盟": "u"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
40
uni_modules/leliven-mqtt/readme.md
Normal file
@ -0,0 +1,40 @@
|
||||
# leliven-mqtt
|
||||
|
||||
## 使用
|
||||
1. 依赖 [leliven-mqtt](https://ext.dcloud.net.cn/plugin?name=leliven-mqtt)
|
||||
3. 页面引用 ` import mqtt from '@/uni_modules/leliven-mqtt/index.js'`
|
||||
4. 详细使用说明:[MQTT.js](https://github.com/mqttjs/MQTT.js)
|
||||
|
||||
```js
|
||||
|
||||
// 初始化客户端连接地址
|
||||
// #ifdef H5
|
||||
let client = mqtt.connect('ws://test.mosquitto.org:8080')
|
||||
// #endif
|
||||
// #ifdef MP-WEIXIN||APP-PLUS
|
||||
let client = mqtt.connect('wx://test.mosquitto.org:8080')
|
||||
// #endif
|
||||
|
||||
// 连接MQ服务
|
||||
client.on('connect', function() {
|
||||
console.log('连接成功')
|
||||
|
||||
// 订阅主题
|
||||
client.subscribe('presence', function(err) {
|
||||
if (!err) {
|
||||
// 订阅成功
|
||||
client.publish('presence', 'hello mqtt')
|
||||
}
|
||||
})
|
||||
}).on('reconnect', function() {
|
||||
console.log('重新连接')
|
||||
}).on('error', function() {
|
||||
console.log('连接失败')
|
||||
}).on('end', function() {
|
||||
console.log('连接End')
|
||||
}).on('message', function(topic, message) {
|
||||
// 收到MQ消息
|
||||
console.log(message.toString())
|
||||
})
|
||||
|
||||
```
|
||||
@ -4,7 +4,7 @@
|
||||
<view class='filter-input'
|
||||
:style="{'background-color' :inputBackgroundColor ,'border-radius':radius + 'rpx'}">
|
||||
<!-- 左侧搜索图标 -->
|
||||
<img src="/static/aidex/images/search.png" class="filterImg">
|
||||
<image src="/static/aidex/images/search.png" class="filterImg"></image>
|
||||
|
||||
<!-- 输入框内容 -->
|
||||
<input class="text" type='text' v-model="inputVal" confirm-type="搜索" :placeholder='placeholder'
|
||||
|
||||
320
uni_modules/qiun-data-charts/changelog.md
Normal file
@ -0,0 +1,320 @@
|
||||
## 2.5.0-20230101(2023-01-01)
|
||||
- 秋云图表组件 修改条件编译顺序,确保uniapp的cli方式的项目依赖不完整时可以正常显示
|
||||
- 秋云图表组件 恢复props属性directory的使用,以修复vue3项目中,开启echarts后,echarts目录识别错误的bug
|
||||
- uCharts.js 修复区域图、混合图只有一个数据时图表显示不正确的bug
|
||||
- uCharts.js 修复折线图、区域图中时间轴类别图表tooltip指示点显示不正确的bug
|
||||
- uCharts.js 修复x轴使用labelCount时,并且boundaryGap = 'justify' 并且关闭Y轴显示的时候,最后一个坐标值不显示的bug
|
||||
- uCharts.js 修复折线图只有一组数据时 ios16 渲染颜色不正确的bug
|
||||
- uCharts.js 修复玫瑰图半径显示不正确的bug
|
||||
- uCharts.js 柱状图、山峰图增加正负图功能,y轴网格如果需要显示0轴则由 min max 及 splitNumber 确定,后续版本优化自动显示0轴
|
||||
- uCharts.js 柱状图column增加 opts.extra.column.labelPosition,数据标签位置,有效值为 outside外部, insideTop内顶部, center内中间, bottom内底部
|
||||
- uCharts.js 雷达图radar增加 opts.extra.radar.labelShow,否显示各项标识文案是,默认true
|
||||
- uCharts.js 提示窗tooltip增加 opts.extra.tooltip.boxPadding,提示窗边框填充距离,默认3px
|
||||
- uCharts.js 提示窗tooltip增加 opts.extra.tooltip.fontSize,提示窗字体大小配置,默认13px
|
||||
- uCharts.js 提示窗tooltip增加 opts.extra.tooltip.lineHeight,提示窗文字行高,默认20px
|
||||
- uCharts.js 提示窗tooltip增加 opts.extra.tooltip.legendShow,是否显示左侧图例,默认true
|
||||
- uCharts.js 提示窗tooltip增加 opts.extra.tooltip.legendShape,图例形状,图例标识样式,有效值为 auto自动跟随图例, diamond◆, circle●, triangle▲, square■, rect▬, line-
|
||||
- uCharts.js 标记线markLine增加 opts.extra.markLine.labelFontSize,字体大小配置,默认13px
|
||||
- uCharts.js 标记线markLine增加 opts.extra.markLine.labelPadding,标签边框内填充距离,默认6px
|
||||
- uCharts.js 折线图line增加 opts.extra.line.linearType,渐变色类型,可选值 none关闭渐变色,custom 自定义渐变色。使用自定义渐变色时请赋值serie.linearColor作为颜色值
|
||||
- uCharts.js 折线图line增加 serie.linearColor,渐变色数组,格式为2维数组[起始位置,颜色值],例如[[0,'#0EE2F8'],[0.3,'#2BDCA8'],[0.6,'#1890FF'],[1,'#9A60B4']]
|
||||
- uCharts.js 折线图line增加 opts.extra.line.onShadow,是否开启折线阴影,开启后请赋值serie.setShadow阴影设置
|
||||
- uCharts.js 折线图line增加 serie.setShadow,阴影配置,格式为4位数组:[offsetX,offsetY,blur,color]
|
||||
- uCharts.js 折线图line增加 opts.extra.line.animation,动画效果方向,可选值为vertical 垂直动画效果,horizontal 水平动画效果
|
||||
- uCharts.js X轴xAxis增加 opts.xAxis.lineHeight,X轴字体行高,默认20px
|
||||
- uCharts.js X轴xAxis增加 opts.xAxis.marginTop,X轴文字距离轴线的距离,默认0px
|
||||
- uCharts.js X轴xAxis增加 opts.xAxis.title,当前X轴标题
|
||||
- uCharts.js X轴xAxis增加 opts.xAxis.titleFontSize,标题字体大小,默认13px
|
||||
- uCharts.js X轴xAxis增加 opts.xAxis.titleOffsetY,标题纵向偏移距离,负数为向上偏移,正数向下偏移
|
||||
- uCharts.js X轴xAxis增加 opts.xAxis.titleOffsetX,标题横向偏移距离,负数为向左偏移,正数向右偏移
|
||||
- uCharts.js X轴xAxis增加 opts.xAxis.titleFontColor,标题字体颜色,默认#666666
|
||||
|
||||
## 报错TypeError: Cannot read properties of undefined (reading 'length')
|
||||
- 如果是uni-modules版本组件,请先登录HBuilderX账号;
|
||||
- 在HBuilderX中的manifest.json,点击重新获取uniapp的appid,或者删除appid重新粘贴,重新运行;
|
||||
- 如果是cli项目请使用码云上的非uniCloud版本组件;
|
||||
- 或者添加uniCloud的依赖;
|
||||
- 或者使用原生uCharts;
|
||||
## 2.4.5-20221130(2022-11-30)
|
||||
- uCharts.js 优化tooltip当文字很多变为左侧显示时,如果画布仍显显示不下,提示框错位置变为以左侧0位置起画
|
||||
- uCharts.js 折线图修复特殊情况下只有单点数据,并改变线宽后点变为圆形的bug
|
||||
- uCharts.js 修复Y轴disabled启用后无效并报错的bug
|
||||
- uCharts.js 修复仪表盘起始结束角度特殊情况下显示不正确的bug
|
||||
- uCharts.js 雷达图新增参数 opts.extra.radar.radius , 自定义雷达图半径
|
||||
- uCharts.js 折线图、区域图增加tooltip指示点,opts.extra.line.activeType/opts.extra.area.activeType,可选值"none"不启用激活指示点,"hollow"空心点模式,"solid"实心点模式
|
||||
## 2.4.4-20221102(2022-11-02)
|
||||
- 秋云图表组件 修复使用echarts时reload、reshow无法调用重新渲染的bug,[详见码云PR](https://gitee.com/uCharts/uCharts/pulls/40)
|
||||
- 秋云图表组件 修复使用echarts时,初始化时宽高不正确的bug,[详见码云PR](https://gitee.com/uCharts/uCharts/pulls/42)
|
||||
- 秋云图表组件 修复uniapp的h5使用history模式时,无法加载echarts的bug
|
||||
- 秋云图表组件 小程序端@complete、@scrollLeft、@scrollRight、@getTouchStart、@getTouchMove、@getTouchEnd事件增加opts参数传出,方便一些特殊需求的交互获取数据。
|
||||
|
||||
- uCharts.js 修复calTooltipYAxisData方法内formatter格式化方法未与y轴方法同步的问题,[详见码云PR](https://gitee.com/uCharts/uCharts/pulls/43)
|
||||
- uCharts.js 地图新增参数opts.series[i].fillOpacity,以透明度方式来设置颜色过度效果,[详见码云PR](https://gitee.com/uCharts/uCharts/pulls/38)
|
||||
- uCharts.js 地图新增参数opts.extra.map.active,是否启用点击激活变色
|
||||
- uCharts.js 地图新增参数opts.extra.map.activeTextColor,是否启用点击激活变色
|
||||
- uCharts.js 地图新增渲染完成事件renderComplete
|
||||
- uCharts.js 漏斗图修复当部分数据相同时tooltip提示窗点击错误的bug
|
||||
- uCharts.js 漏斗图新增参数series.data[i].centerText 居中标签文案
|
||||
- uCharts.js 漏斗图新增参数series.data[i].centerTextSize 居中标签文案字体大小,默认opts.fontSize
|
||||
- uCharts.js 漏斗图新增参数series.data[i].centerTextColor 居中标签文案字体颜色,默认#FFFFFF
|
||||
- uCharts.js 漏斗图新增参数opts.extra.funnel.minSize 最小值的最小宽度,默认0
|
||||
- uCharts.js 进度条新增参数opts.extra.arcbar.direction,动画方向,可选值为cw顺时针、ccw逆时针
|
||||
- uCharts.js 混合图新增参数opts.extra.mix.line.width,折线的宽度,默认2
|
||||
- uCharts.js 修复tooltip开启horizentalLine水平横线标注时,图表显示错位的bug
|
||||
- uCharts.js 优化tooltip当文字很多变为左侧显示时,如果画布仍显显示不下,提示框错位置变为以左侧0位置起画
|
||||
- uCharts.js 修复开启滚动条后X轴文字超出绘图区域后的隐藏逻辑
|
||||
- uCharts.js 柱状图、条状图修复堆叠模式不能通过{value,color}赋值单个柱子颜色的问题
|
||||
- uCharts.js 气泡图修复不识别series.textSize和series.textColor的bug
|
||||
|
||||
## 报错TypeError: Cannot read properties of undefined (reading 'length')
|
||||
1. 如果是uni-modules版本组件,请先登录HBuilderX账号;
|
||||
2. 在HBuilderX中的manifest.json,点击重新获取uniapp的appid,或者删除appid重新粘贴,重新运行;
|
||||
3. 如果是cli项目请使用码云上的非uniCloud版本组件;
|
||||
4. 或者添加uniCloud的依赖;
|
||||
5. 或者使用原生uCharts;
|
||||
## 2.4.3-20220505(2022-05-05)
|
||||
- 秋云图表组件 修复开启canvas2d后将series赋值为空数组显示加载图标时,再次赋值后画布闪动的bug
|
||||
- 秋云图表组件 修复升级hbx最新版后ECharts的highlight方法报错的bug
|
||||
- uCharts.js 雷达图新增参数opts.extra.radar.gridEval,数据点位网格抽希,默认1
|
||||
- uCharts.js 雷达图新增参数opts.extra.radar.axisLabel, 是否显示刻度点值,默认false
|
||||
- uCharts.js 雷达图新增参数opts.extra.radar.axisLabelTofix,刻度点值小数位数,默认0
|
||||
- uCharts.js 雷达图新增参数opts.extra.radar.labelPointShow,是否显示末端刻度圆点,默认false
|
||||
- uCharts.js 雷达图新增参数opts.extra.radar.labelPointRadius,刻度圆点的半径,默认3
|
||||
- uCharts.js 雷达图新增参数opts.extra.radar.labelPointColor,刻度圆点的颜色,默认#cccccc
|
||||
- uCharts.js 雷达图新增参数opts.extra.radar.linearType,渐变色类型,可选值"none"关闭渐变,"custom"开启渐变
|
||||
- uCharts.js 雷达图新增参数opts.extra.radar.customColor,自定义渐变颜色,数组类型对应series的数组长度以匹配不同series颜色的不同配色方案,例如["#FA7D8D", "#EB88E2"]
|
||||
- uCharts.js 雷达图优化支持series.textColor、series.textSize属性
|
||||
- uCharts.js 柱状图中温度计式图标,优化支持全圆角类型,修复边框有缝隙的bug,详见官网【演示】中的温度计图表
|
||||
- uCharts.js 柱状图新增参数opts.extra.column.activeWidth,当前点击柱状图的背景宽度,默认一个单元格单位
|
||||
- uCharts.js 混合图增加opts.extra.mix.area.gradient 区域图是否开启渐变色
|
||||
- uCharts.js 混合图增加opts.extra.mix.area.opacity 区域图透明度,默认0.2
|
||||
- uCharts.js 饼图、圆环图、玫瑰图、漏斗图,增加opts.series[0].data[i].labelText,自定义标签文字,避免formatter格式化的繁琐,详见官网【演示】中的饼图
|
||||
- uCharts.js 饼图、圆环图、玫瑰图、漏斗图,增加opts.series[0].data[i].labelShow,自定义是否显示某一个指示标签,避免因饼图类别太多导致标签重复或者居多导致图形变形的问题,详见官网【演示】中的饼图
|
||||
- uCharts.js 增加opts.series[i].legendText/opts.series[0].data[i].legendText(与series.name同级)自定义图例显示文字的方法
|
||||
- uCharts.js 优化X轴、Y轴formatter格式化方法增加形参,统一为fromatter:function(value,index,opts){}
|
||||
- uCharts.js 修复横屏模式下无法使用双指缩放方法的bug
|
||||
- uCharts.js 修复当只有一条数据或者多条数据值相等的时候Y轴自动计算的最大值错误的bug
|
||||
- 【官网模板】增加外部自定义图例与图表交互的例子,[点击跳转](https://www.ucharts.cn/v2/#/layout/info?id=2)
|
||||
|
||||
## 注意:非unimodules 版本如因更新 hbx 至 3.4.7 导致报错如下,请到码云更新非 unimodules 版本组件,[点击跳转](https://gitee.com/uCharts/uCharts/tree/master/uni-app/uCharts-%E7%BB%84%E4%BB%B6)
|
||||
> Error in callback for immediate watcher "uchartsOpts": "SyntaxError: Unexpected token u in JSON at position 0"
|
||||
## 2.4.2-20220421(2022-04-21)
|
||||
- 秋云图表组件 修复HBX升级3.4.6.20220420版本后echarts报错的问题
|
||||
## 2.4.2-20220420(2022-04-20)
|
||||
## 重要!此版本uCharts新增了很多功能,修复了诸多已知问题
|
||||
- 秋云图表组件 新增onzoom开启双指缩放功能(仅uCharts),前提需要直角坐标系类图表类型,并且ontouch为true、opts.enableScroll为true,详见实例项目K线图
|
||||
- 秋云图表组件 新增optsWatch是否监听opts变化,关闭optsWatch后,动态修改opts不会触发图表重绘
|
||||
- 秋云图表组件 修复开启canvas2d功能后,动态更新数据后画布闪动的bug
|
||||
- 秋云图表组件 去除directory属性,改为自动获取echarts.min.js路径(升级不受影响)
|
||||
- 秋云图表组件 增加getImage()方法及@getImage事件,通过ref调用getImage()方法获,触发@getImage事件获取当前画布的base64图片文件流。
|
||||
- 秋云图表组件 支付宝、字节跳动、飞书、快手小程序支持开启canvas2d同层渲染设置。
|
||||
- 秋云图表组件 新增加【非uniCloud】版本组件,避免有些不需要uniCloud的使用组件发布至小程序需要提交隐私声明问题,请到码云[【非uniCloud版本】](https://gitee.com/uCharts/uCharts/tree/master/uni-app/uCharts-%E7%BB%84%E4%BB%B6),或npm[【非uniCloud版本】](https://www.npmjs.com/package/@qiun/uni-ucharts)下载使用。
|
||||
- uCharts.js 新增dobuleZoom双指缩放功能
|
||||
- uCharts.js 新增山峰图type="mount",数据格式为饼图类格式,不需要传入categories,具体详见新版官网在线演示
|
||||
- uCharts.js 修复折线图当数据中存在null时tooltip报错的bug
|
||||
- uCharts.js 修复饼图类当画布比较小时自动计算的半径是负数报错的bug
|
||||
- uCharts.js 统一各图表类型的series.formatter格式化方法的形参为(val, index, series, opts),方便格式化时有更多参数可用
|
||||
- uCharts.js 标记线功能增加labelText自定义显示文字,增加labelAlign标签显示位置(左侧或右侧),增加标签显示位置微调labelOffsetX、labelOffsetY
|
||||
- uCharts.js 修复条状图当数值很小时开启圆角后样式错误的bug
|
||||
- uCharts.js 修复X轴开启disabled后,X轴仍占用空间的bug
|
||||
- uCharts.js 修复X轴开启滚动条并且开启rotateLabel后,X轴文字与滚动条重叠的bug
|
||||
- uCharts.js 增加X轴rotateAngle文字旋转自定义角度,取值范围(-90至90)
|
||||
- uCharts.js 修复地图文字标签层级显示不正确的bug
|
||||
- uCharts.js 修复饼图、圆环图、玫瑰图当数据全部为0的时候不显示数据标签的bug
|
||||
- uCharts.js 修复当opts.padding上边距为0时,Y轴顶部刻度标签位置不正确的bug
|
||||
|
||||
## 另外我们还开发了各大原生小程序组件,已发布至码云和npm
|
||||
[https://gitee.com/uCharts/uCharts](https://gitee.com/uCharts/uCharts)
|
||||
[https://www.npmjs.com/~qiun](https://www.npmjs.com/~qiun)
|
||||
|
||||
## 对于原生uCharts文档我们已上线新版官方网站,详情点击下面链接进入官网
|
||||
[https://www.uCharts.cn/v2/](https://www.ucharts.cn/v2/)
|
||||
## 2.3.7-20220122(2022-01-22)
|
||||
## 重要!使用vue3编译,请使用cli模式并升级至最新依赖,HbuilderX编译需要使用3.3.8以上版本
|
||||
- uCharts.js 修复uni-app平台组件模式使用vue3编译到小程序报错的bug。
|
||||
## 2.3.7-20220118(2022-01-18)
|
||||
## 注意,使用vue3的前提是需要3.3.8.20220114-alpha版本的HBuilder!
|
||||
## 2.3.67-20220118(2022-01-18)
|
||||
- 秋云图表组件 组件初步支持vue3,全端编译会有些问题,具体详见下面修改:
|
||||
1. 小程序端运行时,在uni_modules文件夹的qiun-data-charts.js中搜索 new uni_modules_qiunDataCharts_js_sdk_uCharts_uCharts.uCharts,将.uCharts去掉。
|
||||
2. 小程序端发行时,在uni_modules文件夹的qiun-data-charts.js中搜索 new e.uCharts,将.uCharts去掉,变为 new e。
|
||||
3. 如果觉得上述步骤比较麻烦,如果您的项目只编译到小程序端,可以修改u-charts.js最后一行导出方式,将 export default uCharts;变更为 export default { uCharts: uCharts }; 这样变更后,H5和App端的renderjs会有问题,请开发者自行选择。(此问题非组件问题,请等待DC官方修复Vue3的小程序端)
|
||||
## 2.3.6-20220111(2022-01-11)
|
||||
- 秋云图表组件 修改组件 props 属性中的 background 默认值为 rgba(0,0,0,0)
|
||||
## 2.3.6-20211201(2021-12-01)
|
||||
- uCharts.js 修复bar条状图开启圆角模式时,值很小时圆角渲染错误的bug
|
||||
## 2.3.5-20211014(2021-10-15)
|
||||
- uCharts.js 增加vue3的编译支持(仅原生uCharts,qiun-data-charts组件后续会支持,请关注更新)
|
||||
## 2.3.4-20211012(2021-10-12)
|
||||
- 秋云图表组件 修复 mac os x 系统 mouseover 事件丢失的 bug
|
||||
## 2.3.3-20210706(2021-07-06)
|
||||
- uCharts.js 增加雷达图开启数据点值(opts.dataLabel)的显示
|
||||
## 2.3.2-20210627(2021-06-27)
|
||||
- 秋云图表组件 修复tooltipCustom个别情况下传值不正确报错TypeError: Cannot read property 'name' of undefined的bug
|
||||
## 2.3.1-20210616(2021-06-16)
|
||||
- uCharts.js 修复圆角柱状图使用4角圆角时,当数值过大时不正确的bug
|
||||
## 2.3.0-20210612(2021-06-12)
|
||||
- uCharts.js 【重要】uCharts增加nvue兼容,可在nvue项目中使用gcanvas组件渲染uCharts,[详见码云uCharts-demo-nvue](https://gitee.com/uCharts/uCharts)
|
||||
- 秋云图表组件 增加tapLegend属性,是否开启图例点击交互事件
|
||||
- 秋云图表组件 getIndex事件中增加返回uCharts实例中的opts参数,以便在页面中调用参数
|
||||
- 示例项目 pages/other/other.vue增加app端自定义tooltip的方法,详见showOptsTooltip方法
|
||||
## 2.2.1-20210603(2021-06-03)
|
||||
- uCharts.js 修复饼图、圆环图、玫瑰图,当起始角度不为0时,tooltip位置不准确的bug
|
||||
- uCharts.js 增加温度计式柱状图开启顶部半圆形的配置
|
||||
## 2.2.0-20210529(2021-05-29)
|
||||
- uCharts.js 增加条状图type="bar"
|
||||
- 示例项目 pages/ucharts/ucharts.vue增加条状图的demo
|
||||
## 2.1.7-20210524(2021-05-24)
|
||||
- uCharts.js 修复大数据量模式下曲线图不平滑的bug
|
||||
## 2.1.6-20210523(2021-05-23)
|
||||
- 秋云图表组件 修复小程序端开启滚动条更新数据后滚动条位置不符合预期的bug
|
||||
## 2.1.5-2021051702(2021-05-17)
|
||||
- uCharts.js 修复自定义Y轴min和max值为0时不能正确显示的bug
|
||||
## 2.1.5-20210517(2021-05-17)
|
||||
- uCharts.js 修复Y轴自定义min和max时,未按指定的最大值最小值显示坐标轴刻度的bug
|
||||
## 2.1.4-20210516(2021-05-16)
|
||||
- 秋云图表组件 优化onWindowResize防抖方法
|
||||
- 秋云图表组件 修复APP端uCharts更新数据时,清空series显示loading图标后再显示图表,图表抖动的bug
|
||||
- uCharts.js 修复开启canvas2d后,x轴、y轴、series自定义字体大小未按比例缩放的bug
|
||||
- 示例项目 修复format-e.vue拼写错误导致app端使用uCharts渲染图表
|
||||
## 2.1.3-20210513(2021-05-13)
|
||||
- 秋云图表组件 修改uCharts变更chartData数据为updateData方法,支持带滚动条的数据动态打点
|
||||
- 秋云图表组件 增加onWindowResize防抖方法 fix by ど誓言,如尘般染指流年づ
|
||||
- 秋云图表组件 H5或者APP变更chartData数据显示loading图表时,原数据闪现的bug
|
||||
- 秋云图表组件 props增加errorReload禁用错误点击重新加载的方法
|
||||
- uCharts.js 增加tooltip显示category(x轴对应点位)标题的功能,opts.extra.tooltip.showCategory,默认为false
|
||||
- uCharts.js 修复mix混合图只有柱状图时,tooltip的分割线显示位置不正确的bug
|
||||
- uCharts.js 修复开启滚动条,图表在拖动中动态打点,滚动条位置不正确的bug
|
||||
- uCharts.js 修复饼图类数据格式为echarts数据格式,series为空数组报错的bug
|
||||
- 示例项目 修改uCharts.js更新到v2.1.2版本后,@getIndex方法获取索引值变更为e.currentIndex.index
|
||||
- 示例项目 pages/updata/updata.vue增加滚动条拖动更新(数据动态打点)的demo
|
||||
- 示例项目 pages/other/other.vue增加errorReload禁用错误点击重新加载的demo
|
||||
## 2.1.2-20210509(2021-05-09)
|
||||
秋云图表组件 修复APP端初始化时就传入chartData或lacaldata不显示图表的bug
|
||||
## 2.1.1-20210509(2021-05-09)
|
||||
- 秋云图表组件 变更ECharts的eopts配置在renderjs内执行,支持在config-echarts.js配置文件内写function配置。
|
||||
- 秋云图表组件 修复APP端报错Prop being mutated: "onmouse"错误的bug。
|
||||
- 秋云图表组件 修复APP端报错Error: Not Found:Page[6][-1,27] at view.umd.min.js:1的bug。
|
||||
## 2.1.0-20210507(2021-05-07)
|
||||
- 秋云图表组件 修复初始化时就有数据或者数据更新的时候loading加载动画闪动的bug
|
||||
- uCharts.js 修复x轴format方法categories为字符串类型时返回NaN的bug
|
||||
- uCharts.js 修复series.textColor、legend.fontColor未执行全局默认颜色的bug
|
||||
## 2.1.0-20210506(2021-05-06)
|
||||
- 秋云图表组件 修复极个别情况下报错item.properties undefined的bug
|
||||
- 秋云图表组件 修复极个别情况下关闭加载动画reshow不起作用,无法显示图表的bug
|
||||
- 示例项目 pages/ucharts/ucharts.vue 增加时间轴折线图(type="tline")、时间轴区域图(type="tarea")、散点图(type="scatter")、气泡图demo(type="bubble")、倒三角形漏斗图(opts.extra.funnel.type="triangle")、金字塔形漏斗图(opts.extra.funnel.type="pyramid")
|
||||
- 示例项目 pages/format-u/format-u.vue 增加X轴format格式化示例
|
||||
- uCharts.js 升级至v2.1.0版本
|
||||
- uCharts.js 修复 玫瑰图面积模式点击tooltip位置不正确的bug
|
||||
- uCharts.js 修复 玫瑰图点击图例,只剩一个类别显示空白的bug
|
||||
- uCharts.js 修复 饼图类图点击图例,其他图表tooltip位置某些情况下不准的bug
|
||||
- uCharts.js 修复 x轴为矢量轴(时间轴)情况下,点击tooltip位置不正确的bug
|
||||
- uCharts.js 修复 词云图获取点击索引偶尔不准的bug
|
||||
- uCharts.js 增加 直角坐标系图表X轴format格式化方法(原生uCharts.js用法请使用formatter)
|
||||
- uCharts.js 增加 漏斗图扩展配置,倒三角形(opts.extra.funnel.type="triangle"),金字塔形(opts.extra.funnel.type="pyramid")
|
||||
- uCharts.js 增加 散点图(opts.type="scatter")、气泡图(opts.type="bubble")
|
||||
- 后期计划 完善散点图、气泡图,增加markPoints标记点,增加横向条状图。
|
||||
## 2.0.0-20210502(2021-05-02)
|
||||
- uCharts.js 修复词云图获取点击索引不正确的bug
|
||||
## 2.0.0-20210501(2021-05-01)
|
||||
- 秋云图表组件 修复QQ小程序、百度小程序在关闭动画效果情况下,v-for循环使用图表,显示不正确的bug
|
||||
## 2.0.0-20210426(2021-04-26)
|
||||
- 秋云图表组件 修复QQ小程序不支持canvas2d的bug
|
||||
- 秋云图表组件 修复钉钉小程序某些情况点击坐标计算错误的bug
|
||||
- uCharts.js 增加 extra.column.categoryGap 参数,柱状图类每个category点位(X轴点)柱子组之间的间距
|
||||
- uCharts.js 增加 yAxis.data[i].titleOffsetY 参数,标题纵向偏移距离,负数为向上偏移,正数向下偏移
|
||||
- uCharts.js 增加 yAxis.data[i].titleOffsetX 参数,标题横向偏移距离,负数为向左偏移,正数向右偏移
|
||||
- uCharts.js 增加 extra.gauge.labelOffset 参数,仪表盘标签文字径向便宜距离,默认13px
|
||||
## 2.0.0-20210422-2(2021-04-22)
|
||||
秋云图表组件 修复 formatterAssign 未判断 args[key] == null 的情况导致栈溢出的 bug
|
||||
## 2.0.0-20210422(2021-04-22)
|
||||
- 秋云图表组件 修复H5、APP、支付宝小程序、微信小程序canvas2d模式下横屏模式的bug
|
||||
## 2.0.0-20210421(2021-04-21)
|
||||
- uCharts.js 修复多行图例的情况下,图例在上方或者下方时,图例float为左侧或者右侧时,第二行及以后的图例对齐方式不正确的bug
|
||||
## 2.0.0-20210420(2021-04-20)
|
||||
- 秋云图表组件 修复微信小程序开启canvas2d模式后,windows版微信小程序不支持canvas2d模式的bug
|
||||
- 秋云图表组件 修改非uni_modules版本为v2.0版本qiun-data-charts组件
|
||||
## 2.0.0-20210419(2021-04-19)
|
||||
## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧绿色【使用HBuilderX导入插件】即可使用,示例项目请点击右侧蓝色按钮【使用HBuilderX导入示例项目】。
|
||||
## 初次使用如果提示未注册<qiun-data-charts>组件,请重启HBuilderX,如仍不好用,请重启电脑;
|
||||
## 如果是cli项目,请尝试清理node_modules,重新install,还不行就删除项目,再重新install。
|
||||
## 此问题已于DCloud官方确认,HBuilderX下个版本会修复。
|
||||
## 其他图表不显示问题详见[常见问题选项卡](https://demo.ucharts.cn)
|
||||
## <font color=#FF0000> 新手请先完整阅读帮助文档及常见问题3遍,右侧蓝色按钮示例项目请看2遍! </font>
|
||||
## [DEMO演示及在线生成工具(v2.0文档)https://demo.ucharts.cn](https://demo.ucharts.cn)
|
||||
## [图表组件在项目中的应用参见 UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651)
|
||||
- uCharts.js 修复混合图中柱状图单独设置颜色不生效的bug
|
||||
- uCharts.js 修复多Y轴单独设置fontSize时,开启canvas2d后,未对应放大字体的bug
|
||||
## 2.0.0-20210418(2021-04-18)
|
||||
- 秋云图表组件 增加directory配置,修复H5端history模式下如果发布到二级目录无法正确加载echarts.min.js的bug
|
||||
## 2.0.0-20210416(2021-04-16)
|
||||
## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧绿色【使用HBuilderX导入插件】即可使用,示例项目请点击右侧蓝色按钮【使用HBuilderX导入示例项目】。
|
||||
## 初次使用如果提示未注册<qiun-data-charts>组件,请重启HBuilderX,如仍不好用,请重启电脑;
|
||||
## 如果是cli项目,请尝试清理node_modules,重新install,还不行就删除项目,再重新install。
|
||||
## 此问题已于DCloud官方确认,HBuilderX下个版本会修复。
|
||||
## 其他图表不显示问题详见[常见问题选项卡](https://demo.ucharts.cn)
|
||||
## <font color=#FF0000> 新手请先完整阅读帮助文档及常见问题3遍,右侧蓝色按钮示例项目请看2遍! </font>
|
||||
## [DEMO演示及在线生成工具(v2.0文档)https://demo.ucharts.cn](https://demo.ucharts.cn)
|
||||
## [图表组件在项目中的应用参见 UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651)
|
||||
- 秋云图表组件 修复APP端某些情况下报错`Not Found Page`的bug,fix by 高级bug开发技术员
|
||||
- 示例项目 修复APP端v-for循环某些情况下报错`Not Found Page`的bug,fix by 高级bug开发技术员
|
||||
- uCharts.js 修复非直角坐标系tooltip提示窗右侧超出未变换方向显示的bug
|
||||
## 2.0.0-20210415(2021-04-15)
|
||||
- 秋云图表组件 修复H5端发布到二级目录下echarts无法加载的bug
|
||||
- 秋云图表组件 修复某些情况下echarts.off('finished')移除监听事件报错的bug
|
||||
## 2.0.0-20210414(2021-04-14)
|
||||
## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧绿色【使用HBuilderX导入插件】即可使用,示例项目请点击右侧蓝色按钮【使用HBuilderX导入示例项目】。
|
||||
## 初次使用如果提示未注册<qiun-data-charts>组件,请重启HBuilderX,如仍不好用,请重启电脑;
|
||||
## 如果是cli项目,请尝试清理node_modules,重新install,还不行就删除项目,再重新install。
|
||||
## 此问题已于DCloud官方确认,HBuilderX下个版本会修复。
|
||||
## 其他图表不显示问题详见[常见问题选项卡](https://demo.ucharts.cn)
|
||||
## <font color=#FF0000> 新手请先完整阅读帮助文档及常见问题3遍,右侧蓝色按钮示例项目请看2遍! </font>
|
||||
## [DEMO演示及在线生成工具(v2.0文档)https://demo.ucharts.cn](https://demo.ucharts.cn)
|
||||
## [图表组件在项目中的应用参见 UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651)
|
||||
- 秋云图表组件 修复H5端在cli项目下ECharts引用地址错误的bug
|
||||
- 示例项目 增加ECharts的formatter用法的示例(详见示例项目format-e.vue)
|
||||
- uCharts.js 增加圆环图中心背景色的配置extra.ring.centerColor
|
||||
- uCharts.js 修复微信小程序安卓端柱状图开启透明色后显示不正确的bug
|
||||
## 2.0.0-20210413(2021-04-13)
|
||||
- 秋云图表组件 修复百度小程序多个图表真机未能正确获取根元素dom尺寸的bug
|
||||
- 秋云图表组件 修复百度小程序横屏模式方向不正确的bug
|
||||
- 秋云图表组件 修改ontouch时,@getTouchStart@getTouchMove@getTouchEnd的触发条件
|
||||
- uCharts.js 修复饼图类数据格式series属性不生效的bug
|
||||
- uCharts.js 增加时序区域图 详见示例项目中ucharts.vue
|
||||
## 2.0.0-20210412-2(2021-04-12)
|
||||
## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧绿色【使用HBuilderX导入插件】即可使用,示例项目请点击右侧蓝色按钮【使用HBuilderX导入示例项目】。
|
||||
## 初次使用如果提示未注册<qiun-data-charts>组件,请重启HBuilderX。如仍不好用,请重启电脑,此问题已于DCloud官方确认,HBuilderX下个版本会修复。
|
||||
## [DEMO演示及在线生成工具(v2.0文档)https://demo.ucharts.cn](https://demo.ucharts.cn)
|
||||
## [图表组件在uniCloudAdmin中的应用 UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651)
|
||||
- 秋云图表组件 修复uCharts在APP端横屏模式下不能正确渲染的bug
|
||||
- 示例项目 增加ECharts柱状图渐变色、圆角柱状图、横向柱状图(条状图)的示例
|
||||
## 2.0.0-20210412(2021-04-12)
|
||||
- 秋云图表组件 修复created中判断echarts导致APP端无法识别,改回mounted中判断echarts初始化
|
||||
- uCharts.js 修复2d模式下series.textOffset未乘像素比的bug
|
||||
## 2.0.0-20210411(2021-04-11)
|
||||
## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧绿色【使用HBuilderX导入插件】即可使用,示例项目请点击右侧蓝色按钮【使用HBuilderX导入示例项目】。
|
||||
## 初次使用如果提示未注册<qiun-data-charts>组件,请重启HBuilderX,并清空小程序开发者工具缓存。
|
||||
## [DEMO演示及在线生成工具(v2.0文档)https://demo.ucharts.cn](https://demo.ucharts.cn)
|
||||
## [图表组件在uniCloudAdmin中的应用 UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651)
|
||||
- uCharts.js 折线图区域图增加connectNulls断点续连的功能,详见示例项目中ucharts.vue
|
||||
- 秋云图表组件 变更初始化方法为created,变更type2d默认值为true,优化2d模式下组件初始化后dom获取不到的bug
|
||||
- 秋云图表组件 修复左右布局时,右侧图表点击坐标错误的bug,修复tooltip柱状图自定义颜色显示object的bug
|
||||
## 2.0.0-20210410(2021-04-10)
|
||||
- 修复左右布局时,右侧图表点击坐标错误的bug,修复柱状图自定义颜色tooltip显示object的bug
|
||||
- 增加标记线及柱状图自定义颜色的demo
|
||||
## 2.0.0-20210409(2021-04-08)
|
||||
## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧【使用HBuilderX导入插件】即可体验,DEMO演示及在线生成工具(v2.0文档)[https://demo.ucharts.cn](https://demo.ucharts.cn)
|
||||
## 图表组件在uniCloudAdmin中的应用 [UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651)
|
||||
- uCharts.js 修复钉钉小程序百度小程序measureText不准确的bug,修复2d模式下饼图类activeRadius为按比例放大的bug
|
||||
- 修复组件在支付宝小程序端点击位置不准确的bug
|
||||
## 2.0.0-20210408(2021-04-07)
|
||||
- 修复组件在支付宝小程序端不能显示的bug(目前支付宝小程不能点击交互,后续修复)
|
||||
- uCharts.js 修复高分屏下柱状图类,圆弧进度条 自定义宽度不能按比例放大的bug
|
||||
## 2.0.0-20210407(2021-04-06)
|
||||
## v1.0版本已停更,建议转uni_modules版本组件方式调用,点击右侧【使用HBuilderX导入插件】即可体验,DEMO演示及在线生成工具(v2.0文档)[https://demo.ucharts.cn](https://demo.ucharts.cn)
|
||||
## 增加 通过tofix和unit快速格式化y轴的demo add by `howcode`
|
||||
## 增加 图表组件在uniCloudAdmin中的应用 [UReport数据报表](https://ext.dcloud.net.cn/plugin?id=4651)
|
||||
## 2.0.0-20210406(2021-04-05)
|
||||
# 秋云图表组件+uCharts v2.0版本同步上线,使用方法详见https://demo.ucharts.cn帮助页
|
||||
## 2.0.0(2021-04-05)
|
||||
# 秋云图表组件+uCharts v2.0版本同步上线,使用方法详见https://demo.ucharts.cn帮助页
|
||||