<template>
<app-container>
<search-area :need-clear="true" :need-search-more="false" type="seperate" size="small" search-more-type="default" @search="fetchData(false)" @clear="clearInput">
<!--一般查询条件-->
<!-- <search-item>-->
<!-- <el-input v-model.trim="listQuery.code" size="small" placeholder="危险级别编号" clearable />-->
<!-- </search-item>-->
<search-item>
<el-input v-model.trim="listQuery.name" size="small" placeholder="危险级别名称" clearable @change="fetchData(false)"/>
</search-item>
</search-area>
<normal-table
:data="list"
:head="tableOption.head"
:query="listQuery"
:total="total"
:columns="columns"
:list-loading="listLoading"
:options="tableOption.options"
:tools-option="tableOption.toolsOption"
size="small"
@change="changePage"
@selectionChange="handleSelectionChange"
>
<template slot="btns">
<el-button size="small" class="edit_btn" icon="el-icon-edit" @click="add()">
添加
</el-button>
<el-button size="small" class="edit_btn" icon="el-icon-delete" @click="batchDel()">
删除
</el-button>
</template>
<template slot="columns">
<el-table-column label="操作" align="center" width="160">
<template slot-scope="scope">
<el-button type="text" size="small" @click.stop="detail(scope.row)">
详情
</el-button>
<el-button type="text" size="small" @click.stop="edit(scope.row)">
编辑
</el-button>
<el-button type="text" size="small" @click.stop="del(scope.row)">
删除
</el-button>
</template>
</el-table-column>
</template>
</normal-table>
<edit-case-level v-show="dialogFormVisible" ref="editCaseLevel" @watchChild="fetchData" />
</app-container>
</template>
<script>
import NormalTable from '@/components/NormalTable'
import AppContainer from '@/components/layout/AppContainer'
import SearchArea from '@/components/SearchArea/SearchArea'
import SearchItem from '@/components/SearchArea/SearchItem'
import { getCaseLevelListPage, delCaseLevel, batchDelCaseLevel } from '@/api/case'
import EditCaseLevel from './editCaseLevel'
export default {
name: 'CaseLevelList',
components: { SearchItem, SearchArea, AppContainer, NormalTable, EditCaseLevel },
data() {
return {
listQuery: {
// code: '',
name: '',
offset: 1,
limit: 20
}, // 筛选条件
columns: [
{
text: '危险级别名称',
value: 'name',
align: 'center',
width: 150
},
{
text: '描述',
value: 'description',
align: 'center'
},
{
text: '评估计算权重',
value: 'weight',
width: 150,
align: 'center'
},
{
text: '备注',
value: 'remarks',
align: 'center'
}
], // 显示列
dialogFormVisible: false, // 是否显示编辑框
timeRange: [], // 时间范围
multipleSelection: [], // 多选选中项
list: [], // 列表数据
total: 0, // 数据总数
listLoading: true, // 列表加载动画
tableOption: {
head: {
show: true, // 是否需要标题栏,
text: '数据列表' // 标题名称
},
options: {
needIndex: true // 是否需要序号列
},
toolsOption: {
selectColumns: false, // 是否需要筛选列
refresh: false, // 是否需要刷新按钮
needCheckBox: true
}
} // 表格属性
}
},
created() {
this.fetchData()
},
methods: {
fetchData(isNowPage = true) {
this.listLoading = true
if (!isNowPage) { // 是否显示当前页,否则跳转第一页
this.listQuery.offset = 1
}
getCaseLevelListPage(this.listQuery).then(response => {
if (response.code === 200) {
this.list = response.data.rows
this.total = parseInt(response.data.total)
this.listLoading = false
}
})
},
// 页数发生变化后的操作,可能是页码变化,可能是每页容量变化,此函数必写
changePage(val) {
if (val && val.size) {
this.listQuery.limit = val.size
}
if (val && val.page) {
this.listQuery.offset = val.page
}
this.fetchData()
},
batchDel() {
const ids = this.multipleSelection.map(item => item.id)
if (ids.length === 0) {
this.$message.warning('请至少选择一行')
return
}
this.$confirm(
'确定要删除所选数据吗?',
'确认操作',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}
).then(() => {
batchDelCaseLevel(ids).then(response => {
if (response.code === 200) {
this.$message.success('删除成功')
this.fetchData()
}
})
})
},
// 打开详情对话框
detail(row) {
this.$refs.editCaseLevel.initDialog('detail', row)
},
// 新增区域
add() {
this.dialogFormVisible = true
this.$refs.editCaseLevel.initDialog('create')
},
// 编辑区域信息
edit(row) {
this.dialogFormVisible = true
this.$refs.editCaseLevel.initDialog('update', row)
},
del(row) {
this.$confirm(
'确定要删除该条数据吗?',
'确认操作',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}
).then(() => {
delCaseLevel(row.id).then(response => {
if (response.code === 200) {
this.$message.success('删除成功')
this.fetchData()
}
})
})
},
handleSelectionChange(val) {
this.multipleSelection = val
},
clearInput() {
this.listQuery = {
// code: '',
name: '',
offset: 1,
limit: 20
}
this.fetchData()
}
}
}
</script>
<style scoped>
</style>