| | |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="IP地址" prop="ip"> |
| | | <el-input |
| | | v-model="queryParams.ip" |
| | | placeholder="请输入ip地址" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | v-model="queryParams.ip" |
| | | placeholder="请输入ip地址" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="适用地点" prop="buildingId"> |
| | | <building v-model="queryParams.buildingId" :schoolId="schoolId"></building> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> |
| | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="mini" |
| | | @click="handleAdd" |
| | | v-hasPermi="['oa:reserveIp:add']" |
| | | >新增</el-button> |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="mini" |
| | | @click="handleAdd" |
| | | v-hasPermi="['oa:reserveIp:add']" |
| | | >新增 |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="success" |
| | | plain |
| | | icon="el-icon-edit" |
| | | size="mini" |
| | | :disabled="single" |
| | | @click="handleUpdate" |
| | | v-hasPermi="['oa:reserveIp:edit']" |
| | | >修改</el-button> |
| | | type="success" |
| | | plain |
| | | icon="el-icon-edit" |
| | | size="mini" |
| | | :disabled="single" |
| | | @click="handleUpdate" |
| | | v-hasPermi="['oa:reserveIp:edit']" |
| | | >修改 |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="danger" |
| | | plain |
| | | icon="el-icon-delete" |
| | | size="mini" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | v-hasPermi="['oa:reserveIp:remove']" |
| | | >删除</el-button> |
| | | type="danger" |
| | | plain |
| | | icon="el-icon-delete" |
| | | size="mini" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | v-hasPermi="['oa:reserveIp:remove']" |
| | | >删除 |
| | | </el-button> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-table v-loading="loading" :data="reserveIpList" @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="序号" type="index" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{(queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1}}</span> |
| | | <span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="IP地址" align="center" prop="ip" /> |
| | | <el-table-column label="MAC地址" align="center" prop="mac" /> |
| | | <el-table-column label="适用地点" align="center" prop="buildingId_dictText" /> |
| | | <el-table-column label="IP地址" align="center" prop="ip"/> |
| | | <el-table-column label="MAC地址" align="center" prop="mac"/> |
| | | <el-table-column label="适用地点" align="center" prop="buildingId_dictText"/> |
| | | <el-table-column label="申请日期" align="center" prop="applicationDate" width="180"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.applicationDate, '{y}-{m}-{d}') }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="备注" align="center" prop="remarks" /> |
| | | <el-table-column label="备注" align="center" prop="remarks"/> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['oa:reserveIp:edit']" |
| | | >修改</el-button> |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['oa:reserveIp:edit']" |
| | | >修改 |
| | | </el-button> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | class="del-btn" |
| | | icon="el-icon-delete" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['oa:reserveIp:remove']" |
| | | >删除</el-button> |
| | | size="mini" |
| | | type="text" |
| | | class="del-btn" |
| | | icon="el-icon-delete" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['oa:reserveIp:remove']" |
| | | >删除 |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <pagination |
| | | v-show="total>0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | v-show="total>0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | |
| | | <!-- 添加或修改预留IP对话框 --> |
| | | <el-dialog :title="title" :visible.sync="open" width="500px" :append-to-body="true" :destroy-on-close="true" :close-on-click-modal="false"> |
| | | <el-dialog :title="title" :visible.sync="open" width="500px" :append-to-body="true" :destroy-on-close="true" |
| | | :close-on-click-modal="false"> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="100px"> |
| | | <el-form-item label="IP地址" prop="ip"> |
| | | <el-input v-model="form.ip" placeholder="请输入ip地址" /> |
| | | <el-input v-model="form.ip" placeholder="请输入ip地址"/> |
| | | </el-form-item> |
| | | <el-form-item label="MAC地址" prop="mac"> |
| | | <el-input v-model="form.mac" placeholder="请输入MAC地址" /> |
| | | <el-input v-model="form.mac" placeholder="请输入MAC地址"/> |
| | | </el-form-item> |
| | | <el-form-item label="适用地点" prop="buildingId"> |
| | | <building v-model="form.buildingId"></building> |
| | | <building v-if="open" v-model="form.buildingId" :schoolId="schoolId"></building> |
| | | </el-form-item> |
| | | <el-form-item label="申请日期" prop="applicationDate"> |
| | | <el-date-picker clearable size="small" |
| | | v-model="form.applicationDate" |
| | | type="date" |
| | | placeholder="选择申请日期"> |
| | | v-model="form.applicationDate" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="选择申请日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="备注" prop="remarks"> |
| | | <el-input v-model="form.remarks" type="textarea" :rows="8" placeholder="请输入内容" /> |
| | | <el-input v-model="form.remarks" type="textarea" :rows="8" maxlength="512" show-word-limit |
| | | placeholder="请输入内容"/> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { listReserveIp, getReserveIp, delReserveIp, addReserveIp, updateReserveIp } from "@/api/oa/reserveIp"; |
| | | import {listReserveIp, getReserveIp, delReserveIp, addReserveIp, updateReserveIp} from "@/api/oa/reserveIp"; |
| | | import building from '../../components/building' |
| | | |
| | | export default { |
| | | name: "ReserveIp", |
| | | components: { |
| | | building |
| | | }, |
| | | props: { |
| | | schoolId: { |
| | | type: Number, |
| | | default: undefined |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | // 表单校验 |
| | | rules: { |
| | | ip: [ |
| | | { required: true, message: "ip地址不能为空", trigger: "blur" }, |
| | | { pattern: /^(\d|[1-9]\d|1\d{2}|2[0-5][0-5])\.(\d|[1-9]\d|1\d{2}|2[0-5][0-5])\.(\d|[1-9]\d|1\d{2}|2[0-5][0-5])\.(\d|[1-9]\d|1\d{2}|2[0-5][0-5])$/, message: "请输入正确的ip地址", trigger: "blur" } |
| | | {required: true, message: "ip地址不能为空", trigger: "blur"}, |
| | | { |
| | | pattern: /^(\d|[1-9]\d|1\d{2}|2[0-5][0-5])\.(\d|[1-9]\d|1\d{2}|2[0-5][0-5])\.(\d|[1-9]\d|1\d{2}|2[0-5][0-5])\.(\d|[1-9]\d|1\d{2}|2[0-5][0-5])$/, |
| | | message: "请输入正确的ip地址,文本范围 0~9、.", |
| | | trigger: "blur" |
| | | } |
| | | ], |
| | | mac: [ |
| | | { required: true, message: "MAC地址不能为空", trigger: "blur" }, |
| | | { pattern: /^[A-F0-9]{2}(-[A-F0-9]{2}){5}$|^[A-F0-9]{2}(:[A-F0-9]{2}){5}$|^[A-F0-9]{12}$|^[A-F0-9]{4}(\.[A-F0-9]{4}){2}$/, message: "请输入正确的MAC地址", trigger: "blur" } |
| | | {required: true, message: "MAC地址不能为空", trigger: "blur"}, |
| | | { |
| | | pattern: /^[A-F0-9]{2}(-[A-F0-9]{2}){5}$|^[A-F0-9]{2}(:[A-F0-9]{2}){5}$|^[A-F0-9]{12}$|^[A-F0-9]{4}(\.[A-F0-9]{4}){2}$/, |
| | | message: "请输入正确的MAC地址,文本范围 0~9、a~f、A~F、:", |
| | | trigger: "blur" |
| | | } |
| | | ], |
| | | buildingId: [ |
| | | { required: true, message: "建筑单元不能为空", trigger: "change" } |
| | | {required: true, message: "建筑单元不能为空", trigger: "change"} |
| | | ], |
| | | }, |
| | | buildOpen: false |
| | | }; |
| | | }, |
| | | watch: { |
| | | 'schoolId': function () { |
| | | this.getList() |
| | | } |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | |
| | | /** 查询预留IP列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | listReserveIp(this.queryParams).then(response => { |
| | | listReserveIp(Object.assign({}, this.queryParams, {schoolId: this.schoolId})).then(response => { |
| | | this.reserveIpList = response.rows; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | |
| | | // 多选框选中数据 |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map(item => item.id) |
| | | this.single = selection.length!==1 |
| | | this.single = selection.length !== 1 |
| | | this.multiple = !selection.length |
| | | }, |
| | | /** 新增按钮操作 */ |
| | |
| | | this.$refs["form"].validate(valid => { |
| | | if (valid) { |
| | | this.buttonLoading = true; |
| | | this.form.schoolId = this.schoolId; |
| | | if (this.form.id != null) { |
| | | updateReserveIp(this.form).then(response => { |
| | | this.$modal.msgSuccess("修改成功"); |