Commit 089eca97 authored by forevertyler's avatar forevertyler

fix:系统管理

parent 15a7bda6
...@@ -23,4 +23,20 @@ export function peakEditDra(query) { ...@@ -23,4 +23,20 @@ export function peakEditDra(query) {
method: 'post', method: 'post',
data: query data: query
}) })
}
//报警短信设置
export function messageGetList(query) {
return request({
url: '/business/message/list',
method: 'get',
data: query
})
}
export function messageEdit(query) {
return request({
url: '/business/message/add',
method: 'post',
data: query
})
} }
\ No newline at end of file
...@@ -27,26 +27,7 @@ ...@@ -27,26 +27,7 @@
@click="handleAdd" @click="handleAdd"
>新增</el-button> >新增</el-button>
</el-col> </el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
>删除</el-button>
</el-col>
<!-- <el-col :span="1.5"> <!-- <el-col :span="1.5">
<el-button <el-button
type="warning" type="warning"
...@@ -60,10 +41,10 @@ ...@@ -60,10 +41,10 @@
</el-row> </el-row>
<el-table v-loading="loading" :data="infoList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="infoList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table-column label="设备编号" align="center" prop="deviceId" /> <el-table-column label="设备编号" align="center" prop="deviceId" />
<el-table-column label="设备名称" align="center" prop="deviceName" /> <el-table-column label="设备名称" align="center" prop="deviceName" />
<el-table-column label="设备安装位置" align="center" prop="installationLocation" /> <el-table-column label="安装描述" align="center" prop="installationLocation" />
<el-table-column label="设备类型" align="center" prop="deviceType"> <el-table-column label="设备类型" align="center" prop="deviceType">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.drainage_dev_type" :value="scope.row.deviceType"/> <dict-tag :options="dict.type.drainage_dev_type" :value="scope.row.deviceType"/>
...@@ -84,7 +65,6 @@ ...@@ -84,7 +65,6 @@
type="text" type="text"
icon="el-icon-edit" icon="el-icon-edit"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-if="!scope.row.status"
>修改</el-button> >修改</el-button>
<el-button <el-button
size="mini" size="mini"
...@@ -115,8 +95,8 @@ ...@@ -115,8 +95,8 @@
<el-input :disabled="disabledType" v-model="form.deviceId" placeholder="请输入设备编号" /> <el-input :disabled="disabledType" v-model="form.deviceId" placeholder="请输入设备编号" />
</el-form-item> </el-form-item>
<el-form-item label="设备安装位置" prop="installationLocation"> <el-form-item label="安装描述" prop="installationLocation">
<el-input v-model="form.installationLocation" placeholder="请输入设备安装位置" /> <el-input v-model="form.installationLocation" placeholder="请输入安装描述" />
</el-form-item> </el-form-item>
<el-form-item label="设备类型" prop="deviceType"> <el-form-item label="设备类型" prop="deviceType">
<el-select @change="deviceTypeChange" v-model="form.deviceType" placeholder="请选择设备类型" :disabled="disabledType"> <el-select @change="deviceTypeChange" v-model="form.deviceType" placeholder="请选择设备类型" :disabled="disabledType">
...@@ -215,7 +195,7 @@ ...@@ -215,7 +195,7 @@
{ required: true, message: "设备编号不能为空", trigger: "blur" } { required: true, message: "设备编号不能为空", trigger: "blur" }
], ],
installationLocation: [ installationLocation: [
{ required: true, message: "设备安装位置不能为空", trigger: "blur" } { required: true, message: "安装描述不能为空", trigger: "blur" }
], ],
deviceType: [ deviceType: [
{ required: true, message: "设备类型不能为空", trigger: "change" } { required: true, message: "设备类型不能为空", trigger: "change" }
......
...@@ -21,19 +21,19 @@ ...@@ -21,19 +21,19 @@
> >
<div class="form-cell"> <div class="form-cell">
<el-form-item <el-form-item
:prop="'items.' + index + '.name'" :prop="'items.' + index + '.perName'"
:rules="rules.name" :rules="rules.perName"
> >
<el-input v-model="item.name" placeholder="请输入姓名"></el-input> <el-input v-model="item.perName" placeholder="请输入姓名"></el-input>
</el-form-item> </el-form-item>
</div> </div>
<div class="form-cell"> <div class="form-cell">
<el-form-item <el-form-item
:prop="'items.' + index + '.phone'" :prop="'items.' + index + '.perPhome'"
:rules="rules.phone" :rules="rules.perPhome"
> >
<el-input <el-input
v-model="item.phone" v-model="item.perPhome"
placeholder="请输入手机号" placeholder="请输入手机号"
></el-input> ></el-input>
</el-form-item> </el-form-item>
...@@ -59,6 +59,7 @@ ...@@ -59,6 +59,7 @@
</template> </template>
<script> <script>
import { messageGetList, messageEdit } from "@/api/tyler/sys";
export default { export default {
name: 'DynamicForm', name: 'DynamicForm',
data() { data() {
...@@ -70,7 +71,7 @@ export default { ...@@ -70,7 +71,7 @@ export default {
return callback(new Error('手机号格式不正确')); return callback(new Error('手机号格式不正确'));
} }
// 检查手机号是否重复 // 检查手机号是否重复
const count = this.form.items.filter(item => item.phone === value).length; const count = this.form.items.filter(item => item.perPhome === value).length;
if (count > 1) { if (count > 1) {
return callback(new Error('手机号不能重复')); return callback(new Error('手机号不能重复'));
} }
...@@ -81,26 +82,35 @@ export default { ...@@ -81,26 +82,35 @@ export default {
form: { form: {
items: [ items: [
{ {
name: '', perName: '',
phone: '' perPhome: ''
} }
] ]
}, },
rules: { rules: {
name: [ perName: [
{ required: true, message: '请输入姓名', trigger: 'blur' } { required: true, message: '请输入姓名', trigger: 'blur' }
], ],
phone: [ perPhome: [
{ required: true, validator: validatePhone, trigger: 'blur' } { required: true, validator: validatePhone, trigger: 'blur' }
] ]
} }
}; };
}, },
created(){
this.getList()
},
methods: { methods: {
getList(){
messageGetList().then(res => {
console.log(res,'res')
this.form.items = res.rows;
})
},
addItem() { addItem() {
this.form.items.push({ this.form.items.push({
name: '', perName: '',
phone: '' perPhome: ''
}); });
}, },
removeItem(index) { removeItem(index) {
...@@ -111,7 +121,11 @@ export default { ...@@ -111,7 +121,11 @@ export default {
if (valid) { if (valid) {
// 提交表单数据 // 提交表单数据
console.log('提交的数据:', this.form.items); console.log('提交的数据:', this.form.items);
this.$message.success('提交成功'); messageEdit(this.form.items).then(res => {
this.$message.success('提交成功');
this.getList()
})
} else { } else {
this.$message.error('请修正表单中的错误'); this.$message.error('请修正表单中的错误');
return false; return false;
...@@ -119,7 +133,7 @@ export default { ...@@ -119,7 +133,7 @@ export default {
}); });
}, },
resetForm() { resetForm() {
this.$refs.formRef.resetFields(); this.getList()
} }
} }
}; };
......
...@@ -7,6 +7,8 @@ ...@@ -7,6 +7,8 @@
v-model="formData.status" v-model="formData.status"
active-text="已开启" active-text="已开启"
inactive-text="已关闭" inactive-text="已关闭"
active-value="1"
inactive-value="0"
@change="handleStatusChange" @change="handleStatusChange"
></el-switch> ></el-switch>
</div> </div>
...@@ -58,16 +60,18 @@ ...@@ -58,16 +60,18 @@
<div class="pump-selection"> <div class="pump-selection">
<span>对应控制水泵:</span> <span>对应控制水泵:</span>
<el-checkbox-group v-model="sump.selectedPumps"> <div class="pump-checkboxes">
<el-checkbox <el-checkbox
v-for="pump in sump.draPeakPumpVos" v-for="pump in sump.draPeakPumpVos"
:key="pump.pumpId" :key="pump.pumpId"
:label="pump.pumpName" v-model="pump.pumpStatus"
:true-label="1"
:false-label="0"
size="small" size="small"
> >
{{ pump.pumpName }} {{ pump.pumpName }}
</el-checkbox> </el-checkbox>
</el-checkbox-group> </div>
</div> </div>
</div> </div>
...@@ -84,95 +88,101 @@ ...@@ -84,95 +88,101 @@
</template> </template>
<script> <script>
import {peakGetDra,peakEditDra } from "@/api/tyler/sys"; import { peakGetDra, peakEditDra } from "@/api/tyler/sys";
export default { export default {
name: 'AutomationControl', name: 'AutomationControl',
data() { data() {
return { return {
formData: { formData: {
status: true, // 默认开启 status: "1", // 默认开启
peakBeginTime: '12:00:00', peakBeginTime: '',
peakEndTime: '14:00:00', peakEndTime: '',
draPeakSumpVos: [ draPeakSumpVos: []
{
sumpId: '2',
sumpName: '二中水仓',
heghtThresholdA: '10',
heghtThresholdB: '20',
heghtThresholdC: '40',
heghtThresholdD: '80',
draPeakPumpVos: [
{ pumpId: '8', pumpName: '水泵5' },
{ pumpId: '9', pumpName: '水泵6' },
{ pumpId: '10', pumpName: '水泵7' }
],
selectedPumps: ['水泵5'] // 默认选中第一个
},
{
sumpId: '2',
sumpName: '二中水仓',
heghtThresholdA: '10',
heghtThresholdB: '20',
heghtThresholdC: '40',
heghtThresholdD: '80',
draPeakPumpVos: [
{ pumpId: '3', pumpName: '水泵3' },
],
selectedPumps: ['水泵3'] // 默认选中第一个
},
]
}, },
timeRange: [] timeRange: []
}; };
}, },
created() { created() {
// 初始化时间范围 this.getList();
// this.getList()
}, },
methods: { methods: {
getList(){ getList() {
peakGetDra().then(res => { peakGetDra().then(res => {
console.log(res,'res') const data = res.data;
this.formData = res.data
this.timeRange = [ // 保存原始水泵顺序
this.formData.peakBeginTime, this.originalPumpOrder = new Map();
this.formData.peakEndTime data.draPeakSumpVos.forEach((sump, sumpIndex) => {
]; this.originalPumpOrder.set(sumpIndex, sump.draPeakPumpVos.map(p => p.pumpId));
}) });
// 处理数据时保持原始顺序
data.draPeakSumpVos = data.draPeakSumpVos.map((sump, sumpIndex) => {
const orderedPumps = [];
const originalOrder = this.originalPumpOrder.get(sumpIndex);
// 按照原始顺序重新排列水泵
originalOrder.forEach(pumpId => {
const found = sump.draPeakPumpVos.find(p => p.pumpId === pumpId);
if (found) {
orderedPumps.push({
...found,
pumpStatus: parseInt(found.pumpStatus, 10)
});
}
});
return {
...sump,
draPeakPumpVos: orderedPumps
};
});
this.formData = data;
this.timeRange = [data.peakBeginTime, data.peakEndTime];
});
}, },
handleStatusChange(value) { handleStatusChange(value) {
console.log('自动化控制状态已切换为:', value ? '开启' : '关闭'); console.log('自动化控制状态已切换为:', value);
console.log(value)
this.formData.status = value;
}, },
handleTimeRangeChange(value) { handleTimeRangeChange(value) {
if (value && value.length === 2) { if (value && value.length === 2) {
this.formData.peakBeginTime = value[0]; this.formData.peakBeginTime = value[0];
this.formData.peakEndTime = value[1]; this.formData.peakEndTime = value[1];
console.log('峰谷值时间段已设置为:', this.formData.peakBeginTime, '', this.formData.peakEndTime);
} }
}, },
handleCancel() { handleCancel() {
console.log('取消设置'); this.getList(); // 重新获取数据重置表单
// 这里可以添加重置表单的逻辑
}, },
handleSave() { handleSave() {
peakEditDra(this.formData).then(res=>{ // 深拷贝时保持数组顺序
this.$message.success('设置已保存'); const postData = {
this.getList() ...this.formData,
}) draPeakSumpVos: this.formData.draPeakSumpVos.map(sump => ({
console.log('保存设置:', this.formData); ...sump,
// 这里可以添加保存设置的逻辑 draPeakPumpVos: sump.draPeakPumpVos.map(pump => ({
...pump,
pumpStatus: pump.pumpStatus.toString()
}))
}))
};
peakEditDra(postData).then(res => {
this.$message.success('设置保存成功');
this.getList();
});
} }
} }
}; };
</script> </script>
<style scoped> <style scoped>
.pump-checkboxes {
display: flex;
flex-wrap: wrap;
gap: 15px;
}
.automation-control { .automation-control {
padding: 20px; padding: 20px;
background-color: #fff; background-color: #fff;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment