diff --git a/web/src/components/DetailInfo.vue b/web/src/components/DetailInfo.vue index 7715f1e..24ea701 100644 --- a/web/src/components/DetailInfo.vue +++ b/web/src/components/DetailInfo.vue @@ -68,6 +68,8 @@ :type="item.inputType" :placeholder="'请输入' + item.label" :disabled="!props.disabled && type ? !!item.disabled : props.disabled" + :addon-before="item.addonBefore" + :addon-after="item.addonAfter" /> @@ -535,8 +538,6 @@ function avatarUploadChange(info) { function onFieldsChange() {} function handleSubmit() {} - - // 主动暴露方法 defineExpose({ confirm, @@ -702,10 +703,10 @@ defineExpose({ border: none !important; color: var(--theme-text-default) !important; } -:deep(.ant-input-clear-icon){ +:deep(.ant-input-clear-icon) { color: #fff; } -:deep(.ant-select .ant-select-clear,.ant-select-clear:hover){ +:deep(.ant-select .ant-select-clear, .ant-select-clear:hover) { color: #fff; background: none !important; } diff --git a/web/src/components/monitor/device.vue b/web/src/components/monitor/device.vue index 2359c6d..9bb48f7 100644 --- a/web/src/components/monitor/device.vue +++ b/web/src/components/monitor/device.vue @@ -369,6 +369,7 @@ export default { }) this.deviceList = res.data + this.$emit('updateGatewayData', res.gateway); } catch (error) { this.deviceList = [] diff --git a/web/src/views/monitor.vue b/web/src/views/monitor.vue index e219313..f9af7f6 100644 --- a/web/src/views/monitor.vue +++ b/web/src/views/monitor.vue @@ -9,7 +9,9 @@ >{{ station.name }} - 查看预制舱参数 + 查看预制舱参数
@@ -22,7 +24,7 @@
- 下发 + 下发
@@ -42,8 +44,17 @@
- - + +
-
+
+
+ + + +
+ 取消 + 确认下发 +
@@ -72,19 +102,20 @@ export default { data() { return { // currentKey: '储能系统', + dispatchModal: false, systemType: 1, value: [], stations: [], selectStationId: '', - message:'', - msgModal:false, + message: '', + msgModal: false, systems: [ { name: '储能系统', titles: [ { v: '运行模式', key: 'workmode' }, { v: '储能EMU状态', key: 'emu' }, - { v: '充电桩状态', key: 'cdz' }, + { v: '充电桩状态', key: 'cdz' } //{ v: '总有功功率(台区)', key: 'power', sufix: 'kW' } ], power: 60, @@ -153,13 +184,194 @@ export default { label: '自定时段' } ], - deviceGroup: [] + deviceGroup: [], + detailInfo: { + title: '预制舱参数设置', + icon: 'icon-xinxi', + list: [ + { + label: '储能放电下限值(0-99)', + value: '', + key: 'soc_min', + type: 'input', + addonAfter: '%', + inputType:'number' + }, + { + label: '储能充电上限值(1-100)', + value: '', + key: 'soc_max', + type: 'input', + addonAfter: '%', + inputType:'number' + }, + { + label: '台区变压器容量(160-1600)', + value: undefined, + key: 'capacity', + type: 'input', + addonAfter: 'kVA', + inputType:'number' + }, + { + label: '安全输入功率(0-400)', + value: '', + key: 'power_safe', + type: 'input', + addonAfter: 'kW', + inputType:'number' + }, + { + label: '储能最大放电功率(0-150)', + value: '', + key: 'power_discharge', + type: 'input', + addonAfter: 'kW', + inputType:'number' + }, + { + label: '储能最大充电功率(0-150)', + value: '', + key: 'power_charge', + type: 'input', + addonAfter: 'kW', + inputType:'number' + }, + { + label: '防逆流回差(10-300)', + value: '', + key: 'backflow', + type: 'input', + addonAfter: 'kW', + inputType:'number' + }, + { + label: '防过载回差(10-300)', + value: '', + key: 'overload', + type: 'input', + addonAfter: 'kW', + inputType:'number' + } + ], + ruleForm: {} + }, + formRules: { + soc_min: [ + { + trigger: 'blur', + required: true, + message: '请输入储能放电下限值' + }, + { pattern: /^([0-9]|[1-9][0-9])$/, message: '请输入0-99 的整数' } + ], + soc_max: [ + { + trigger: 'blur', + required: true, + message: '请输入储能充电上限值' + }, + { pattern: /^(100|[1-9][0-9]?)$/, message: '请输入1-100的整数', trigger: 'blur' } + ], + capacity: [ + { + trigger: 'blur', + required: true, + message: '请输入台区变压器容量' + }, + { + pattern: /^(1600|1[6-9][0-9]|[2-9][0-9]{2}|1[0-5][0-9]{2})$/, + message: '请输入160-1600的整数', + trigger: 'blur' + } + ], + power_safe: [ + { + trigger: 'blur', + required: true, + message: '请输入安全输入功率' + }, + { + pattern: /^(400|[1-3][0-9]{2}|[1-9][0-9]?)$/, + message: '请输入0-400的整数', + trigger: 'blur' + } + ], + power_discharge: [ + { + trigger: 'blur', + required: true, + message: '请输入储能最大放电功率' + }, + { pattern: /^(150|[1-1][0-9]?|[1-9])$/, message: '请输入0-150的整数', trigger: 'blur' } + ], + power_charge: [ + { + trigger: 'blur', + required: true, + message: '请输入储能最大充电功率' + }, + { pattern: /^(150|[1-1][0-9]?|[1-9])$/, message: '请输入0-150的整数', trigger: 'blur' } + ], + backflow: [ + { + trigger: 'blur', + required: true, + message: '请输入防逆流回差' + }, + { + pattern: /^(300|[1-2][0-9]{2}|[1-9][0-9])$/, + message: '请输入10-300的整数', + trigger: 'blur' + } + ], + overload: [ + { + trigger: 'blur', + required: true, + message: '请输入防过载回差' + }, + { + pattern: /^(300|[1-2][0-9]{2}|[1-9][0-9])$/, + message: '请输入10-300的整数', + trigger: 'blur' + } + ] + }, + ruleForm:{}, + gatewayData1:{} } }, mounted() { this.getStations() }, methods: { + handleback() { + this.dispatchModal = false + }, + async handleConfirm() { + const res = await this.$refs.detailInfo.confirm() + if (!res) return + + this.handleSubmit() + }, + async handleSubmit() { + try { + const res = await postReq('/updateGatewayParams', { + station_id: this.selectStationId, + work_mode: this.workMode, + ...this.ruleForm + }) + if (res.errcode == 0) { + this.$message.success('下发成功') + this.dispatchModal=false + } + } catch (error) { + this.$message.error('下发失败') + this.dispatchModal=false + + } + }, updateGatewayData(gatewayData) { this.systems[0].workmode = gatewayData.workmode this.systems[0].emu = gatewayData.emu @@ -167,23 +379,32 @@ export default { this.message = gatewayData.msg }, - handleMessage(){ - this.msgModal=true + handleMessage() { + this.msgModal = true }, //下发 - async handleDispatch() { - console.log(this.workMode) + // handleDispatch + async openDispatchModal() { + try { - const res = await postReq('/updateStation', { + const res = await getReq('/queryDevicByCategory', { station_id: this.selectStationId, - work_mode: this.workMode + category: 0 }) - if (res.errcode == 0) { - this.$message.success('下发成功') - } + + this.ruleForm=Object.keys(res.gateway).reduce((acc, key) => { + const value = res.gateway[key]; + acc[key] = typeof value === 'number' ? String(value) : value; + return acc; + }, {}); + this.dispatchModal = true + + } catch (error) { - this.$message.error('下发失败') + this.ruleForm = {} + } + }, //场站切换 getStationChange(val) { @@ -212,10 +433,9 @@ export default { res.data.device_group.forEach((Element, index) => { this.systems[index].num = Element.count this.systems[index].power = Element.power - this.systems[index].workmode = Element.workmode - if(Element.category==1){ - this.message=Element.msg + if (Element.category == 1) { + this.message = Element.msg } }) this.workMode = res.data.work_mode @@ -285,7 +505,7 @@ export default { color: #fff; padding: 10px 10px; cursor: pointer; - &:hover{ + &:hover { background: $table-bg; } @@ -316,4 +536,13 @@ export default { } } } +:deep(.ant-input-group-addon) { + color: #fff; + border: 1px solid $border-color; +} +:deep(.ant-form-item-label) { + color: #fff; + font-size: 16px !important; + width: 180px !important; +}