320 lines
13 KiB
Vue
320 lines
13 KiB
Vue
<template>
|
||
<div class="formula irrigateSet systemSet">
|
||
<set-params></set-params>
|
||
<div class="page-content ">
|
||
<div class="export">
|
||
<label for="upInput">
|
||
<div class="export-btn">导入设定值</div>
|
||
</label>
|
||
<div class="export-btn" @click="downLoadData">导出设定值</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=""> 系统参数设置
|
||
</div>
|
||
<div class="flex-view border-none padding-none">
|
||
<div class="input-main-80" style="width: auto;">
|
||
<span>软件版本号</span>
|
||
<input disabled v-model="inputData['76']" type="text" placeholder="0">
|
||
|
||
<span></span>
|
||
</div>
|
||
<div class="input-main">
|
||
<span>施肥机状况</span>
|
||
<input disabled v-model="inputData['77']" type="text" placeholder="0">
|
||
<span></span>
|
||
|
||
</div>
|
||
<div class="input-main-80" style="width: auto;">
|
||
<span>施肥机剩余使用时间</span>
|
||
<input disabled v-model="inputData['78']" type="text" placeholder="0">
|
||
<span>天</span>
|
||
</div>
|
||
</div>
|
||
<div class="flex-view">
|
||
<div class="input-main">
|
||
<span>信号质量</span>
|
||
<input disabled @blur="blurChange('65', $event)" v-model="inputData['65']" @input="change('65', $event)" type="number" placeholder="0">
|
||
</div>
|
||
<div class="input-main">
|
||
<span>SIM</span>
|
||
<input disabled @blur="blurChange('66', $event)" v-model="inputData['66']" @input="change('66', $event)" type="number" placeholder="0">
|
||
</div>
|
||
<div class="input-main">
|
||
<span>4G</span>
|
||
<input disabled @blur="blurChange('67', $event)" v-model="inputData['67']" @input="change('67', $event)" type="number" placeholder="0">
|
||
</div>
|
||
<br>
|
||
<div class="input-main-80" style="width: 100%;">
|
||
<span>IP</span>
|
||
<input disabled @blur="blurChange('68', $event)" v-model="inputData['68']" @input="change('68', $event)" type="number" placeholder="0">
|
||
<input disabled @blur="blurChange('69', $event)" v-model="inputData['69']" @input="change('69', $event)" type="number" placeholder="0">
|
||
<input disabled @blur="blurChange('70', $event)" v-model="inputData['70']" @input="change('70', $event)" type="number" placeholder="0">
|
||
<input disabled @blur="blurChange('71', $event)" v-model="inputData['71']" @input="change('71', $event)" type="number" placeholder="0">
|
||
</div>
|
||
</div>
|
||
<div class="flex-view" style="border: none;">
|
||
|
||
<div class="input-main-80">
|
||
<span>ICCID</span>
|
||
<input disabled @blur="blurChange('55', $event)" v-model="inputData['55']" @input="change16to10('55', $event)" type="text" placeholder="0">
|
||
<input disabled @blur="blurChange('56', $event)" v-model="inputData['56']" @input="change16to10('56', $event)" type="text" placeholder="0">
|
||
<input disabled @blur="blurChange('57', $event)" v-model="inputData['57']" @input="change16to10('57', $event)" type="text" placeholder="0">
|
||
<input disabled @blur="blurChange('58', $event)" v-model="inputData['58']" @input="change16to10('58', $event)" type="text" placeholder="0">
|
||
<input disabled @blur="blurChange('59', $event)" v-model="inputData['59']" @input="change16to10('59', $event)" type="text" placeholder="0">
|
||
<input disabled @blur="blurChange('60', $event)" v-model="inputData['60']" @input="change16to10('60', $event)" type="text" placeholder="0">
|
||
<input disabled @blur="blurChange('61', $event)" v-model="inputData['61']" @input="change16to10('61', $event)" type="text" placeholder="0">
|
||
<input disabled @blur="blurChange('62', $event)" v-model="inputData['62']" @input="change16to10('62', $event)" type="text" placeholder="0">
|
||
<input disabled @blur="blurChange('63', $event)" v-model="inputData['63']" @input="change16to10('63', $event)" type="text" placeholder="0">
|
||
<input disabled @blur="blurChange('64', $event)" v-model="inputData['64']" @input="change16to10('64', $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">
|
||
说明:4G:=0,无网络;=2,2G网络;=4,4G网络 <br>
|
||
SIM:=0,SIM卡正常;=1,无SIM卡;=2,SIM卡异常(网络注册失败)<br>
|
||
信号质量:CSQ<11 信号很差;11<CSQ<18,信号不稳定;CSQ>18,信号稳定,最大是31.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</template>
|
||
<script>
|
||
import setParams from '../../components/setParams.vue';
|
||
export default {
|
||
components: {
|
||
setParams
|
||
},
|
||
data() {
|
||
return {
|
||
inputData: [],
|
||
loading:null,
|
||
ICCID:''
|
||
}
|
||
},
|
||
|
||
mounted() {
|
||
this.loading = this.$loading({
|
||
lock: true,
|
||
text: '加载中',
|
||
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: '加载中',
|
||
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.FsdataReadValuedownload(devicecode).then(res => {
|
||
// 创建一个blob对象
|
||
this.loading.close()
|
||
console.log(res,111);
|
||
const blob = new Blob([res.data], { type: 'text/txt' });
|
||
console.log(blob,111);
|
||
// 创建一个a标签
|
||
const url = window.URL.createObjectURL(blob);
|
||
const link = document.createElement('a');
|
||
link.href = url;
|
||
|
||
// 设置文件名
|
||
link.setAttribute('download', `${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: '加载中',
|
||
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.upLoadFsdataWriteValue(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 = {
|
||
equipmentId: store.equipmentList[store.equipmentIndex - 1].deviceId,
|
||
pattern: 0, //需要根据文档填写 //6目标ph-数值
|
||
regNum: 72,
|
||
};
|
||
this.api.postState(data).then((res) => {
|
||
|
||
this.loading.close()
|
||
if (res.data.code == 200) {
|
||
this.inputData = res.data.data;
|
||
this.inputData['55']= this.fliter2(this.inputData['55'].toString(16))
|
||
this.inputData['56']= this.fliter2(this.inputData['56'].toString(16))
|
||
this.inputData['57']= this.fliter2(this.inputData['57'].toString(16))
|
||
this.inputData['58']= this.fliter2(this.inputData['58'].toString(16))
|
||
this.inputData['59']= this.fliter2(this.inputData['59'].toString(16))
|
||
this.inputData['60']= this.fliter2(this.inputData['60'].toString(16))
|
||
this.inputData['61']= this.fliter2(this.inputData['61'].toString(16))
|
||
this.inputData['62']= this.fliter2(this.inputData['62'].toString(16))
|
||
this.inputData['63']= this.fliter2(this.inputData['63'].toString(16))
|
||
this.inputData['64']= this.fliter2(this.inputData['64'].toString(16))
|
||
this.inputData['76'] = 'REV:' + this.inputData['76']
|
||
this.inputData['77'] = this.getType(this.inputData['77'])
|
||
} else {
|
||
this.$message.error(res.data.msg);
|
||
}
|
||
});
|
||
var data1 = {
|
||
deviceId: store.equipmentList[store.equipmentIndex - 1].deviceId,
|
||
};
|
||
this.api.getFsIccid(data1).then(res=>{
|
||
if(res.data.code==200){
|
||
this.ICCID=res.data.msg
|
||
}else{
|
||
this.$message.error(res.data.msg);
|
||
}
|
||
})
|
||
},
|
||
getType(index) {
|
||
if (index == 0) {
|
||
return '施肥机正常'
|
||
} else if (index == 1) {
|
||
return '施肥机待锁机'
|
||
} else if (index == 2) {
|
||
return '施肥机已锁机'
|
||
} else {
|
||
return ' '
|
||
}
|
||
},
|
||
//全选文本
|
||
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>
|
||
|