120 lines
3.0 KiB
Vue
Raw Normal View History

2025-05-22 16:23:08 +08:00
<template>
<view class="modbus-edit-wrap">
<!-- 注意如果需要兼容微信小程序最好通过setRules方法设置rules规则 -->
<u--form labelPosition="left" :labelStyle="{marginRight:'10px'}" labelWidth="100" labelAlign="right"
:model="model" :rules="rules" ref="form">
<u-form-item :label="$tt('modbus.deviceName')" prop="name" required borderBottom>
<u--input v-model="model.name" border="none" clearable></u--input>
</u-form-item>
<u-form-item :label="$tt('modbus.firmware')" prop="version" required borderBottom>
<u--input v-model="model.version" type="number" border="none" clearable></u--input>
</u-form-item>
</u--form>
<view class="edit-bottom-wrap">
<view class="btn-wrap">
<u-button type="primary" @click="handleSaveClick">{{$tt('common.save')}}</u-button>
</view>
</view>
</view>
</template>
<script>
import { updateDevice } from '@/apis/modules/device';
export default {
data() {
return {
model: {
name: '',
version: '',
},
rules: {
'name': {
type: 'string',
required: true,
message: this.$tt('modbus.inputDeviceName'),
trigger: ['blur', 'change']
},
'version': {
type: 'number',
required: true,
message: this.$tt('modbus.inputVersion'),
trigger: ['blur', 'change']
},
},
data: null
};
},
onReady() {
//如果需要兼容微信小程序并且校验规则中含有方法等只能通过setRules方法设置规则。
this.$refs.form.setRules(this.rules)
},
onLoad(option) {
this.data = JSON.parse(decodeURIComponent(option.item));
const { deviceName, firmwareVersion } = this.data;
this.model.name = deviceName;
this.model.version = firmwareVersion;
},
methods: {
handleSaveClick() {
this.$refs.form.validate().then(res => {
this.updateDeviceData();
}).catch(errors => {
console.log('校验失败');
})
},
updateDeviceData() {
let device = {
...this.data,
deviceId: this.data.deviceId,
deviceName: this.model.name,
firmwareVersion: this.model.version
};
updateDevice(device).then(res => {
if (res.code === 200) {
uni.showToast({
icon: 'success',
title: this.$tt('common.updateSuccessful')
});
uni.navigateBack({
delta: 1,
success: (e) => {
let pages = getCurrentPages();
// #ifdef MP-WEIXIN
let prePage = pages[pages.length - 1];
//#endif
// #ifdef H5 || APP-PLUS
let prePage = pages[pages.length - 2];
//#endif
// 更新数据列表
prePage.$vm.deviceForm.subDeviceList = [];
prePage.$vm.getDevice();
}
});
}
});
}
},
};
</script>
<style lang="scss" scoped>
.modbus-edit-wrap {
padding: 10px;
::v-deep .u-form-item__body__left__content__required {
left: 5px;
}
.edit-bottom-wrap {
position: absolute;
bottom: 50px;
left: 0;
right: 0;
.btn-wrap {
padding: 0 10px;
}
}
}
</style>