| | |
| | | /> |
| | | |
| | | <!-- 添加或修改运维点位对话框 --> |
| | | <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="80px"> |
| | | <el-dialog :title="title" :visible.sync="open" width="900px" append-to-body> |
| | | <el-form ref="form" :model="tempForm" :rules="rules" label-width="120px"> |
| | | <el-form-item label="点位名称" prop="pointName"> |
| | | <el-input v-model="form.pointName" placeholder="请输入点位名称" /> |
| | | <el-input v-model="tempForm.pointName" placeholder="请输入点位名称" /> |
| | | </el-form-item> |
| | | <el-form-item label="点位开始时间" prop="startTime"> |
| | | <el-date-picker clearable |
| | | v-model="form.startTime" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="请选择点位开始时间"> |
| | | <el-form-item label="运维单位" prop="unitId"> |
| | | <el-select v-model="tempForm.unitId" placeholder="运维单位"> |
| | | <el-option |
| | | v-for="item in unitList" |
| | | :key="item.id" |
| | | :label="item.value" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="点位时区" prop="timezone"> |
| | | <el-date-picker |
| | | @change="dateChange" |
| | | v-model="tempForm.timezone" |
| | | type="daterange" |
| | | align="right" |
| | | unlink-panels |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="点位结束时间" prop="endTime"> |
| | | <el-date-picker clearable |
| | | v-model="form.endTime" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="请选择点位结束时间"> |
| | | </el-date-picker> |
| | | <el-form-item> |
| | | <div style="display: flex;flex-direction: row-reverse"> |
| | | <el-button @click="nextAdd" type="primary" plain>继续添加</el-button> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="备注" prop="remark"> |
| | | <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" /> |
| | | </el-form-item> |
| | | <div class="point-row" v-for="(point,index) in tempFormList"> |
| | | <div class="row-item"> |
| | | <el-input :disabled="editingIndex!==index" v-model="point.pointName" placeholder="点位名称"></el-input> |
| | | </div> |
| | | <div class="row-item"> |
| | | <el-select :disabled="editingIndex!==index" v-model="point.unitId" placeholder="运维单位"> |
| | | <el-option |
| | | v-for="item in unitList" |
| | | :key="item.id" |
| | | :label="item.value" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | <div class="row-item"> |
| | | <el-date-picker |
| | | :disabled="editingIndex!==index" |
| | | v-model="point.timezone" |
| | | type="daterange" |
| | | align="right" |
| | | unlink-panels |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | > |
| | | </el-date-picker> |
| | | </div> |
| | | <div class="row-item"> |
| | | <el-button v-show="editingIndex!==index" @click="editPointItem(index)" type="danger" size="small" plain>修改</el-button> |
| | | <el-button v-show="editingIndex===index" @click="editFinishItem(index)" type="success" size="small" plain>完成</el-button> |
| | | </div> |
| | | </div> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitForm">确 定</el-button> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { listPoint, getPoint, delPoint, addPoint, updatePoint } from "@/api/platform/point"; |
| | | import { listPoint, getPoint, delPoint, addPoint, addPointBatch, updatePoint } from "@/api/platform/point"; |
| | | import { unitSelect } from "@/api/platform/unit"; |
| | | |
| | | export default { |
| | | name: "Point", |
| | | data() { |
| | | return { |
| | | // 正在修改第几个 |
| | | editingIndex: null, |
| | | // 遮罩层 |
| | | loading: true, |
| | | // 选中数组 |
| | |
| | | title: "", |
| | | // 是否显示弹出层 |
| | | open: false, |
| | | // 运维单位 |
| | | unitList: [], |
| | | // 运维时区 |
| | | timezone:[], |
| | | // 查询参数 |
| | | queryParams: { |
| | | pageNum: 1, |
| | |
| | | }, |
| | | // 表单参数 |
| | | form: {}, |
| | | // 批量表单内容 |
| | | formList:[], |
| | | // 临时表单数据 |
| | | tempForm: {}, |
| | | // 临时表单数据列表 |
| | | tempFormList: [], |
| | | // 表单校验 |
| | | rules: { |
| | | pointName: [ |
| | | { required: true, message: "点位名称不能为空", trigger: "blur" } |
| | | ], |
| | | startTime: [ |
| | | { required: true, message: "点位开始时间不能为空", trigger: "blur" } |
| | | ], |
| | | endTime: [ |
| | | { required: true, message: "点位结束时间不能为空", trigger: "blur" } |
| | | timezone: [ |
| | | { required: true, message: "点位时区不能为空", trigger: "blur" } |
| | | ], |
| | | unitId: [ |
| | | { required: true, message: "运维单位不能为空", trigger: "change" } |
| | |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | this.getUnitSelect(); |
| | | }, |
| | | methods: { |
| | | // 点位项修改完成 |
| | | editFinishItem(index) { |
| | | this.editingIndex = null; |
| | | let form = this.tempFormList[index]; |
| | | form.startTime = form.timezone[0]; |
| | | form.endTime = form.timezone[1]; |
| | | this.formList[index] = form; |
| | | }, |
| | | // 点位项修改 |
| | | editPointItem(index) { |
| | | if (this.editingIndex !== index && this.editingIndex !== null) { |
| | | this.$modal.msgWarning("请先完成上一个修改"); |
| | | } else { |
| | | this.editingIndex = index; |
| | | this.tempFormList[index] = this.formList[index]; |
| | | } |
| | | }, |
| | | // 时间选择发生变化 |
| | | dateChange() { |
| | | this.tempForm.startTime = this.tempForm.timezone[0]; |
| | | this.tempForm.endTime = this.tempForm.timezone[1]; |
| | | }, |
| | | // 继续添加点位 |
| | | nextAdd() { |
| | | this.formList.push(this.tempForm); |
| | | this.tempFormList.push(this.tempForm); |
| | | this.tempForm = {}; |
| | | }, |
| | | getUnitSelect() { |
| | | // 运维单位下拉列表 |
| | | unitSelect().then((res) => { |
| | | this.unitList = res.data; |
| | | }) |
| | | }, |
| | | /** 查询运维点位列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | listPoint(this.queryParams).then(response => { |
| | | this.pointList = response.rows; |
| | | this.pointList = response.data; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | | }); |
| | |
| | | }, |
| | | /** 提交按钮 */ |
| | | submitForm() { |
| | | this.$refs["form"].validate(valid => { |
| | | if (valid) { |
| | | if (this.form.id != null) { |
| | | updatePoint(this.form).then(response => { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } else { |
| | | addPoint(this.form).then(response => { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } |
| | | if (this.formList.length > 0) { |
| | | // 批量增加 |
| | | if (this.formList.every(item => !item.hasOwnProperty("id"))) { |
| | | addPointBatch(this.formList).then(response => { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } |
| | | }); |
| | | }else { |
| | | if (this.form.id != null) { |
| | | updatePoint(this.form).then(response => { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } else { |
| | | addPoint(this.form).then(response => { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | | /** 删除按钮操作 */ |
| | | handleDelete(row) { |
| | |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .point-row { |
| | | display: flex; |
| | | flex-direction: row; |
| | | justify-content: center; |
| | | align-items: center; |
| | | } |
| | | .row-item { |
| | | margin-right: 5px; |
| | | } |
| | | .row-item:nth-last-child { |
| | | margin-right: 0; |
| | | } |
| | | </style> |