wszhyWx/src/views/page/systemSet-soil.vue
2025-06-27 17:42:15 +08:00

358 lines
15 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

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

<template>
<div class="irrigateSet systemSet">
<div class="export">
<label for="upInput">
<div class="export-btn">{{ $t('systemSet.importSettings') }}</div>
</label>
<div class="export-btn" @click="downLoadData">{{ $t('systemSet.exportSettings') }}</div>
<input ref="fileInput" style="display: none" multiple id="upInput" type="file" accept=".txt" @change="changeTxt" />
</div>
<div class="table-title">
<img src="../../assets/image/system.png" alt=""> {{ $t('systemSet.title') }}
</div>
<div class="flex-view border-none padding-none">
<div class="input-main-60 input-main-100" style="width: auto;">
<span>{{ $t('systemSet.softwareVersion') }}</span>
<input disabled v-model="inputData['3039']" type="text" placeholder="0">
<span></span>
</div>
<div class="input-main-60 input-main-200" style="width: auto;">
<span>{{ $t('deviceManage.deviceTypes.smartController') }}</span>
<input disabled v-model="inputData['3040']" type="text" placeholder="0">
<span></span>
</div>
<div class="input-main-60" style="width: auto;">
<span>{{ $t('deviceManage.deviceTypes.smartController') }}</span>
<input disabled v-model="inputData['3041']" type="text" placeholder="0">
<span>{{ $t('systemSet.daysUnit') }}</span>
</div>
</div>
<div class="flex-view">
<div class="input-main">
<span>{{ $t('systemSet.signalQuality') }}</span>
<input disabled @blur="blurChange('3032', $event)" v-model="inputData['3032']" @input="change('3032', $event)" type="number" placeholder="0">
</div>
<div class="input-main">
<span>SIM</span>
<input disabled @blur="blurChange('3033', $event)" v-model="inputData['3033']" @input="change('3033', $event)" type="number" placeholder="0">
</div>
<div class="input-main">
<span>4G</span>
<input disabled @blur="blurChange('3034', $event)" v-model="inputData['3034']" @input="change('3034', $event)" type="number" placeholder="0">
</div>
<br>
<div class="input-main-60" style="width: 100%;">
<span>IP</span>
<input disabled @blur="blurChange('3035', $event)" v-model="inputData['3035']" @input="change('3035', $event)" type="number" placeholder="0">
<input disabled @blur="blurChange('3036', $event)" v-model="inputData['3036']" @input="change('3036', $event)" type="number" placeholder="0">
<input disabled @blur="blurChange('3037', $event)" v-model="inputData['3037']" @input="change('3037', $event)" type="number" placeholder="0">
<input disabled @blur="blurChange('3038', $event)" v-model="inputData['3038']" @input="change('3038', $event)" type="number" placeholder="0">
</div>
</div>
<div class="flex-view" style="border: none;">
<div class="input-main-60">
<span>ICCID</span>
<input disabled @blur="blurChange('3022', $event)" v-model="inputData['3022']" @input="change16to10('3022', $event)" type="text" placeholder="0">
<input disabled @blur="blurChange('3023', $event)" v-model="inputData['3023']" @input="change16to10('3023', $event)" type="text" placeholder="0">
<input disabled @blur="blurChange('3024', $event)" v-model="inputData['3024']" @input="change16to10('3024', $event)" type="text" placeholder="0">
<input disabled @blur="blurChange('3025', $event)" v-model="inputData['3025']" @input="change16to10('3025', $event)" type="text" placeholder="0">
<input disabled @blur="blurChange('3026', $event)" v-model="inputData['3026']" @input="change16to10('3026', $event)" type="text" placeholder="0">
<input disabled @blur="blurChange('3027', $event)" v-model="inputData['3027']" @input="change16to10('3027', $event)" type="text" placeholder="0">
<input disabled @blur="blurChange('3028', $event)" v-model="inputData['3028']" @input="change16to10('3028', $event)" type="text" placeholder="0">
<input disabled @blur="blurChange('3029', $event)" v-model="inputData['3029']" @input="change16to10('3029', $event)" type="text" placeholder="0">
<input disabled @blur="blurChange('3030', $event)" v-model="inputData['3030']" @input="change16to10('3030', $event)" type="text" placeholder="0">
<input disabled @blur="blurChange('3031', $event)" v-model="inputData['3031']" @input="change16to10('3031', $event)" type="text" placeholder="0">
</div>
<div class="input-main-one">
<span>ICCID</span>
<input disabled v-model="ICCID" type="text" placeholder="0">
</div>
<div class="system-tips">
{{ $t('systemSet.instructions.network') }} <br>
{{ $t('systemSet.instructions.sim') }}<br>
{{ $t('systemSet.instructions.signal') }}
</div>
<div class="input-main">
<span>{{ $t('systemSet.memo') }}</span>
</div>
<textarea v-model="memoDetail.memo" @blur="blurMemo()" :placeholder="$t('systemSet.memo')"
class="system-tips system-textarea" maxlength="1200">
</textarea>
</div>
</div>
</template>
<script>
export default {
data() {
return {
inputData: [],
loading:null,
ICCID:'',
memoDetail: {
memo: ''
},
}
},
mounted() {
this.loading = this.$loading({
lock: true,
text: this.$t('message.loading'),
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
this.dataInit()
//input获取焦点后全选
let inputList = document.querySelectorAll('input');
for (let index = 0; index < inputList.length; index++) {
inputList[index].onfocus = this.selectValue;//input放入焦点全选文本
}
},
methods: {
//文件下载导出
downLoadData() {
this.loading = this.$loading({
lock: true,
text: this.$t('message.loading'),
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
var store = this.$store.state
var index = store.equipmentIndex;
var devicecode=store.equipmentList[index - 1].deviceId
this.api.FIreadvaluedownload(devicecode).then(res => {
// 创建一个blob对象
this.loading.close()
const blob = new Blob([res.data], { type: 'text/txt' });
// 创建一个a标签
const url = window.URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
// 设置文件名
link.setAttribute('download', `${this.$t('deviceManagement.deviceTypes.smartController')}-${devicecode}.txt`);
// 模拟点击下载
document.body.appendChild(link);
link.click();
// 清理资源
document.body.removeChild(link);
window.URL.revokeObjectURL(url);
})
},
// 文件上传
changeTxt(e) {
this.loading = this.$loading({
lock: true,
text: this.$t('message.loading'),
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
var store = this.$store.state
var deviceId=store.equipmentList[store.equipmentIndex - 1].deviceId
const files = e.target.files
const that = this
for (let i = 0; i < files.length; i++) {
const formData = new FormData()
console.log(files[i])
formData.append('file', files[i])
const fileContent = URL.createObjectURL(files[i])
formData.append('devicecode', deviceId)
this.api.upLoadFIwritevalue(formData).then((res) => {
this.loading.close()
if (res.data.code == 200) {
this.$message.success(res.data.msg);
}else{
this.$message.error(res.data.msg);
}
})
}
setTimeout(() => {
this.$refs.fileInput.value = ''
}, 100)
},
change16to10(code,el){
var num=parseInt(el.target.value,16)
var dataNum={
target:{
value:num
}
}
this.change(code, dataNum)
},
fliter2(string){
var data=''
if(string.length<2){
data='0'+string
}else{
data=string
}
return data
},
dataInit() {
var store = this.$store.state
var data = {
deviceId: store.equipmentList[store.equipmentIndex - 1].deviceId,
};
this.api.getFI_getState(data).then((res) => {
this.loading.close()
if (res.data.code == 200) {
this.inputData = res.data.data;
this.inputData['3022']= this.fliter2(this.inputData['3022'].toString(16))
this.inputData['3023']= this.fliter2(this.inputData['3023'].toString(16))
this.inputData['3024']= this.fliter2(this.inputData['3024'].toString(16))
this.inputData['3025']= this.fliter2(this.inputData['3025'].toString(16))
this.inputData['3026']= this.fliter2(this.inputData['3026'].toString(16))
this.inputData['3027']= this.fliter2(this.inputData['3027'].toString(16))
this.inputData['3028']= this.fliter2(this.inputData['3028'].toString(16))
this.inputData['3029']= this.fliter2(this.inputData['3029'].toString(16))
this.inputData['3030']= this.fliter2(this.inputData['3030'].toString(16))
this.inputData['3031']= this.fliter2(this.inputData['3031'].toString(16))
this.inputData['3039'] = 'REV:' + this.inputData['3039']
this.inputData['3040'] = this.getType(this.inputData['3040'])
} else {
this.$message.error(res.data.msg);
}
});
this.api.readControl_getFIIccid(data).then(res=>{
if(res.data.code==200){
this.ICCID=res.data.msg
}else{
this.$message.error(res.data.msg);
}
})
this.getMemo()
},
getMemo() {
var store = this.$store.state
var data1 = {
deviceId: store.equipmentList[store.equipmentIndex - 1].deviceId,
};
this.api.readControl_getMemo(data1).then(res => {
if (res.data.code == 200) {
if (res.data.data) {
this.memoDetail = res.data.data
} else {
this.memoDetail = {
deviceId: store.equipmentList[store.equipmentIndex - 1].deviceId,
id: "",
memo: "",
}
}
} else {
// this.$message.error(res.data.msg);
}
})
},
getType(index) {
if (index == 0) {
return this.$t('deviceManagement.deviceTypes.smartController')+this.$t('systemSet.normal')
} else if (index == 1) {
return this.$t('deviceManagement.deviceTypes.smartController')+this.$t('systemSet.pendingLock')
} else if (index == 2) {
return this.$t('deviceManagement.deviceTypes.smartController')+this.$t('systemSet.locked')
} else {
return ' '
}
},
//备忘录失去焦点
blurMemo() {
var data = this.memoDetail
this.api.readControl_setMemo(data).then(res => {
if (res.data.code == 200) {
this.$message({
message: res.data.msg,
type: "success",
});
if(!data.id){
this.getMemo()
}
} else {
this.$message.error(res.data.msg);
}
})
},
//全选文本
selectValue(e) {
var store = this.$store.state
store.nowInput=e.target.value
e.currentTarget.select();
},
//失去焦点
blurChange(code, el) {
var store=this.$store.state
var data = {
equipmentId: store.equipmentList[store.equipmentIndex-1].deviceId,
regAddress: code,
num: el.target.value,
}; //避免开启多个计时器
if (store.nowInput != el.target.value) {
this.changeData(data);
}
// if (this.timer) {
// this.timer && clearInterval(this.timer);
// this.changeData(data);
// }
},
change(code, el) {
var store = this.$store.state
var data = {
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
regAddress: code,
num: el.target.value,
};
this.delayTimer(0, data);
},
//限制 写入停止后j*100毫秒调取函数
delayTimer(i, data) {
// const that = this;
// //整体接口
// let j = this.$store.state.lateSend;
// //避免开启多个计时器
// this.timer && clearInterval(this.timer);
// this.timer = setInterval(() => {
// ++i;
// if (i == j) {
// that.changeData(data);
// clearInterval(this.timer);
// }
// }, 100);
},
changeData(data) {
// var store = this.$store.state
// this.api.postWriteFs(data).then((res) => {
// if (res.data.code == 200) {
// this.$message({
// message: res.data.msg,
// type: "success",
// });
// store.nowInput=''
// // this.dataInit();
// } else {
// this.inputData[data.regAddress]=store.nowInput
// this.$message.error(res.data.msg);
// }
// this.timer = null
// });
},
},
}
</script>
<style lang="scss">
</style>