| | |
| | | <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | <!-- <el-input placeholder="请输入内容" v-model="context"></el-input> --> |
| | | </div> |
| | | </div> |
| | | </header> |
| | |
| | | <div class="main-content"> |
| | | <div class="main-title"> |
| | | <el-button class="el-icon-plus" type="primary" @click="dialogCreate = true">添加</el-button> |
| | | <el-button class="">导出卡口</el-button> |
| | | <el-button @click="handleExport">导出卡口</el-button> |
| | | </div> |
| | | <!-- 数据展示 --> |
| | | <el-table ref="multipleTable" |
| | | :header-cell-style="{background:'#06122c','font-size':'12px',color:'#4b9bb7','font-weight':'650','line-height':'45px'}" |
| | | :data="tableData" style="width: 100%" :row-class-name="tableRowClassName" |
| | | @selection-change="tableChange"> |
| | | <el-table-column type="selection" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="name" label="卡口名称" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="sort" label="经纬度位置" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="adminCount" label="所属区域" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="description" label="域名/IP" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="description" label="端口号" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="description" label="前端类型" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="description" label="出入城类型" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="operation" label="操作" min-width="15"> |
| | | <template slot-scope="scope"> |
| | | <div class="operation"> |
| | | <span>编辑</span> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <!-- tools --> |
| | | <!-- <div class="tools"> |
| | | <div class="funs"> |
| | | <div class="funsItem"> |
| | | <el-checkbox v-model="all" @change="selectAll()">全选</el-checkbox> |
| | | </div> |
| | | <div class="funsItem"> |
| | | <el-checkbox v-model="unsame" @change="disSame(tableData)">反选</el-checkbox> |
| | | </div> |
| | | <div class="funsItem"> |
| | | <el-select v-model="myIdx" placeholder="批量操作" @change="selectChange"> |
| | | <el-option v-for="item in options" :key="item.value" :label="item.label" |
| | | :value="item.value" :disabled="item.disabled"> |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | </div> |
| | | <div class="pagination"> |
| | | <el-pagination background :current-page="currentPage" layout="prev, pager, next" |
| | | :total="totalNum" :page-size="pageSize" @current-change="changeCurrentPage" |
| | | @prev-click="handlePrev" @next-click="handleNext"> |
| | | </el-pagination> |
| | | </div> |
| | | </div> --> |
| | | <MyTable |
| | | :tableOption="tableOption" |
| | | :tableData="list" |
| | | :pageShow="false"> |
| | | <template #operation="info"> |
| | | <el-link :underline="false" style="color:#4b9bb7">编辑</el-link> |
| | | </template> |
| | | </MyTable> |
| | | </div> |
| | | </main> |
| | | <footer> |
| | | <!-- 添加卡口 --> |
| | | <el-dialog title="添加卡口" :visible.sync="dialogCreate" width="60%" :before-close="handleClose"> |
| | | <MyCreate></MyCreate> |
| | | <MyCreate :addBayonet="addBayonet"></MyCreate> |
| | | </el-dialog> |
| | | </footer> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import helper from "@/utils/mydate.js" |
| | | import MyCreate from './create' |
| | | import MyTable from '@/components/Table' |
| | | import {myDownLoad} from '@/utils/helper' |
| | | import { createNamespacedHelpers } from "vuex"; |
| | | const { mapActions } = createNamespacedHelpers("bayonet"); |
| | | export default { |
| | | components: { |
| | | MyCreate |
| | | MyCreate, MyTable, |
| | | }, |
| | | data() { |
| | | return { |
| | | tableData: [], |
| | | context: 0, |
| | | dialogCreate: false, |
| | | totalNum: null, |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | all: false, |
| | | unsame: false, |
| | | myIdx: 0, |
| | | preMyIdx: 0, |
| | | context: 0, |
| | | options: [ |
| | | { |
| | | value: 0, |
| | |
| | | label: '在线', |
| | | } |
| | | ], |
| | | tempList: [] |
| | | list: [], |
| | | current: 1, |
| | | size: 10, |
| | | tableOption: { |
| | | group: [ |
| | | { |
| | | label: '卡口名称', |
| | | type: 'text', |
| | | prop: 'bayonetName', |
| | | }, |
| | | { |
| | | label: '经纬度位置', |
| | | type: 'text', |
| | | prop: 'latitude', |
| | | }, |
| | | // { |
| | | // label: '所属区域', |
| | | // type: 'text', |
| | | // prop: '', |
| | | // }, |
| | | { |
| | | label: '域名/IP', |
| | | type: 'text', |
| | | prop: 'ipAddress', |
| | | }, |
| | | { |
| | | label: '端口号', |
| | | type: 'text', |
| | | prop: 'port', |
| | | }, |
| | | { |
| | | label: '前端类型', |
| | | type: 'text', |
| | | prop: 'frontEndType', |
| | | }, |
| | | { |
| | | label: '出入城类型', |
| | | type: 'text', |
| | | prop: 'inOutCityType', |
| | | }, |
| | | { |
| | | label: '操作', |
| | | type: 'operation', |
| | | prop: 'operation', |
| | | }, |
| | | ] |
| | | }, |
| | | } |
| | | }, |
| | | created() { |
| | | const { setTableData } = this; |
| | | setTableData(); |
| | | }, |
| | | methods: { |
| | | async selectChange(list) { |
| | | console.log(this.tempList); |
| | | if (this.tempList.length !== 0) { |
| | | this.preMyIdx = list; |
| | | if (list === 3) { |
| | | await this.handleDelete(this.tempList); |
| | | } else if (list === 2) { |
| | | await this.mulUpdateStatus(this.tempList, 0); |
| | | } else { |
| | | await this.mulUpdateStatus(this.tempList, 1); |
| | | } |
| | | this.myIdx = 0; |
| | | } else { |
| | | this.myIdx = this.preMyIdx; |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: '您还没选中任何数据', |
| | | }) |
| | | } |
| | | }, |
| | | mulUpdateStatus(idArr, flag) { |
| | | this.$confirm(flag === 1 ? "您确定要进行批量启用角色吗?" : '您确定要进行批量禁用角色吗?') |
| | | .then(_ => { |
| | | this.$axios({ |
| | | method: 'post', |
| | | url: 'sccg/role/updateStatusBatch?ids=' + idArr + '&status=' + flag, |
| | | }) |
| | | .then(res => { |
| | | if (res.code === 200) { |
| | | this.$message({ |
| | | type: 'success', |
| | | message: '更改用户状态成功', |
| | | }) |
| | | this.getUserList(); |
| | | } else { |
| | | this.$message({ |
| | | type: 'error', |
| | | message: res.message |
| | | }) |
| | | } |
| | | console.log(res); |
| | | }) |
| | | }) |
| | | .catch(err => { console.log(err) }) |
| | | }, |
| | | tableChange(list) { |
| | | this.tempList = []; |
| | | list.forEach(item => { |
| | | this.tempList.push(item.id); |
| | | }) |
| | | if (list.length === this.tableData.length) { |
| | | this.all = true; |
| | | } else { |
| | | this.all = false |
| | | } |
| | | }, |
| | | changeTime({ createTime }) { |
| | | return helper(createTime); |
| | | }, |
| | | selectAll() { |
| | | this.$refs.multipleTable.toggleAllSelection(); |
| | | }, |
| | | disSame(list) { |
| | | list.forEach(row => { |
| | | this.$refs.multipleTable.toggleRowSelection(row) |
| | | }) |
| | | }, |
| | | handleDelete(id) { |
| | | const that = this; |
| | | // let arr = []; |
| | | // arr.push(id); |
| | | this.$confirm('确认删除?') |
| | | .then(_ => { |
| | | that.$axios({ |
| | | method: 'post', |
| | | url: 'sccg/role/delete?ids=' + id, |
| | | }) |
| | | .then(res => { |
| | | this.myIdx = 0; |
| | | this.preMyIdx = 0; |
| | | console.log(res); |
| | | this.$message({ |
| | | type: 'success', |
| | | message: res.message |
| | | }) |
| | | |
| | | this.getUserList(); |
| | | }) |
| | | }) |
| | | .catch(_ => { }); |
| | | }, |
| | | // 设置表格斑马纹 |
| | | tableRowClassName({ row, rowIndex }) { |
| | | if ((rowIndex + 1) % 2 == 0) { |
| | | return 'warning-row'; |
| | | } else { |
| | | return 'success-row'; |
| | | } |
| | | return ''; |
| | | }, |
| | | // 当前页改变触发事件 |
| | | changeCurrentPage(page) { |
| | | this.currentPage = page; |
| | | }, |
| | | // 上一页点击事件 |
| | | handlePrev(page) { |
| | | this.currentPage = page; |
| | | }, |
| | | // 下一页点击事件 |
| | | handleNext(page) { |
| | | this.currentPage = page; |
| | | }, |
| | | // 关闭弹窗 |
| | | // 弹窗关闭 |
| | | handleClose(done) { |
| | | this.$confirm('确认关闭?') |
| | | this.$confirm('确认关闭?') |
| | | .then(_ => { |
| | | done(); |
| | | }) |
| | | .catch(_ => { }); |
| | | }, |
| | | ...mapActions(['getBayonetList', 'exportBayonetList','addBayonet']), |
| | | // 设置tableData |
| | | async setTableData() { |
| | | const { current, size, context } = this; |
| | | let arr = await this.getBayonetList({ |
| | | // bayonetName:context, |
| | | current, size |
| | | }) |
| | | this.list = arr.data.data |
| | | }, |
| | | // 导出 |
| | | async handleExport(){ |
| | | const { current, size, context } = this; |
| | | let arr = await this.exportBayonetList({ |
| | | current, size |
| | | }) |
| | | myDownLoad(arr); |
| | | console.log(arr); |
| | | } |
| | | } |
| | | } |