New file |
| | |
| | | <template> |
| | | <div class="s-radio-set"> |
| | | <div class="add-btn"> |
| | | <el-button size="mini" type="primary" @click="handleAdd()">添加</el-button> |
| | | </div> |
| | | <el-table |
| | | border |
| | | highlight-current-row |
| | | :data="tableData" |
| | | style="width: 100%; margin-top:40px; color:#000" |
| | | :header-cell-style="{background:'#f8f8f8',color:'#222222'}" |
| | | > |
| | | <el-table-column align="center" type="index" label="序号" width="100px"></el-table-column> |
| | | |
| | | <el-table-column :align="'center'" label="广播名称"> |
| | | <template slot-scope="{row}"> |
| | | <el-input v-if="row.edit" :autofocus="row.edit" v-model="row.radiosName" size="small" /> |
| | | <span v-else>{{ row.radiosName }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column :align="'center'" label="IP地址"> |
| | | <template slot-scope="{row}"> |
| | | <el-input v-if="row.edit" v-model="row.ipAddress" size="small" /> |
| | | <span v-else>{{ row.ipAddress }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column :align="'center'" label="连接测试"> |
| | | <template slot-scope="{row}"> |
| | | <i v-show="row.isCon" class="el-icon-success" style="color:green; font-size:18px"></i> |
| | | |
| | | <el-button type="text" @click="handleTest(row)">连接测试</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column label="操作" :align="'center'"> |
| | | <template slot-scope="scope"> |
| | | <template v-if="scope.row.edit"> |
| | | <el-button size="mini" type="info" @click="handleCancel(scope.row)">取消</el-button> |
| | | <el-button size="mini" type="primary" @click="handleSave(scope.row)">保存</el-button> |
| | | </template> |
| | | <template v-else> |
| | | <el-button |
| | | type="text" |
| | | style="color: black;font-size:18px" |
| | | @click="handleEdit(scope.row)" |
| | | icon="el-icon-edit" |
| | | ></el-button> |
| | | <el-button |
| | | type="text" |
| | | style="color: red;font-size:18px" |
| | | @click="handleDelete(scope.$index)" |
| | | icon="el-icon-delete" |
| | | ></el-button> |
| | | </template> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | filters: { |
| | | isCon(r) { |
| | | return r.isCon ? r.isCon : false |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | radioName: "", |
| | | ipAddress: "", |
| | | tableData: [ |
| | | { |
| | | index: "1", |
| | | radiosName: "操场", |
| | | ipAddress: "192.168.1.101", |
| | | edit: false, |
| | | isCon: false |
| | | }, |
| | | { |
| | | edit: false, |
| | | index: "2", |
| | | radiosName: "教室", |
| | | ipAddress: "192.168.12.61", |
| | | isCon: false |
| | | }, |
| | | { |
| | | edit: false, |
| | | index: "3", |
| | | radiosName: "保安室", |
| | | ipAddress: "192.168.13.121", |
| | | isCon: false |
| | | } |
| | | ] |
| | | }; |
| | | }, |
| | | mounted() { |
| | | this.testAll() |
| | | }, |
| | | methods: { |
| | | testAll() { |
| | | this.tableData.forEach(l => { |
| | | this.$set(l, "isCon", false) |
| | | }) |
| | | }, |
| | | handleEdit(row) { |
| | | console.log(row); |
| | | row.edit = true; |
| | | }, |
| | | handleCancel(row) { |
| | | row.edit = false; |
| | | console.log(row); |
| | | }, |
| | | handleDelete(index) { |
| | | this.$confirm("确认删除该广播吗?", { |
| | | center: true, |
| | | cancelButtonClass: "comfirm-class-cancle", |
| | | confirmButtonClass: "comfirm-class-sure" |
| | | }) |
| | | .then(() => { |
| | | this.tableData.splice(index, 1) |
| | | this.$notify({ |
| | | type: "success", |
| | | message: "删除成功!" |
| | | }); |
| | | }) |
| | | .catch(() => { }); |
| | | }, |
| | | handleSave(row) { |
| | | console.log(row); |
| | | row.edit = false; |
| | | this.$notify({ |
| | | message: "保存成功", |
| | | type: "success" |
| | | }); |
| | | }, |
| | | handleTest(row) { |
| | | this.$set(row, 'isCon', true) |
| | | }, |
| | | handleAdd() { |
| | | this.tableData.push({ |
| | | radiosName: "", |
| | | ipAddress: "", |
| | | edit: true, |
| | | isCon: false |
| | | }) |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | | <style lang="scss"> |
| | | .s-radio-set { |
| | | width: 100%; |
| | | height: 100%; |
| | | .el-dialog { |
| | | border-radius: 8px; |
| | | border: 1px solid #ccc; |
| | | .el-dialog__header { |
| | | border-bottom: 1px solid #ccc; |
| | | } |
| | | } |
| | | |
| | | .add-btn { |
| | | float: right; |
| | | margin-bottom: 7px; |
| | | } |
| | | } |
| | | .e-message { |
| | | width: 331px; |
| | | } |
| | | .e-confirm { |
| | | border-color: #ff0000 !important; |
| | | background-color: #ff0000 !important; |
| | | } |
| | | .e-confirm:hover { |
| | | border-color: #f83131d6 !important; |
| | | background-color: #f83131d6 !important; |
| | | } |
| | | .e-cancel { |
| | | border-color: #eaeaea !important; |
| | | background-color: #eaeaea !important; |
| | | } |
| | | .e-cancel:hover { |
| | | border-color: #e9e9e9 !important; |
| | | background-color: #e9e9e9 !important; |
| | | } |
| | | </style> |