<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.keywords" size="small" placeholder="物业服务编号/名称" @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-service v-show="dialogFormVisible" ref="editService" @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 { getServiceListPage, delService, batchDelService } from '@/api/property'
import EditService from './editService'
export default {
name: 'ServiceList',
components: { SearchItem, SearchArea, AppContainer, NormalTable, EditService },
data() {
return {
listQuery: {
keywords: '',
offset: 1,
limit: 20
}, // 筛选条件
columns: [
{
text: '编号',
value: 'code',
align: 'center',
width: 150
},
{
text: '物业服务',
value: 'name',
align: 'center'
},
{
text: '物业计费(元/平方米*月)',
value: 'money',
align: 'center',
width: 180
},
{
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
}
// getServiceListPage(this.listQuery).then(response => {
// if (response.code === 200) {
// this.list = response.data.rows
// this.total = parseInt(response.data.total)
// this.listLoading = false
// }
// })
const that = this
setTimeout(function() {
that.list = [
{ id: '', name: '对公众环境卫生进行清洁工作', code: 'wy900001', money: '1', remarks: '' },
{ id: '', name: '公共设施设备的维护、保养和维修', code: 'wy900002', money: '2', remarks: '' },
{ id: '', name: '物业管理范围内的园区治安管理', code: 'wy900003', money: '1', remarks: '' },
{ id: '', name: '物业管理范围内的急抢修处理与管理', code: 'wy900004', money: '2', remarks: '' },
{ id: '', name: '物业管理范围内的生态环境管理', code: 'wy900005', money: '1', remarks: '' }
]
that.total = 200
that.listLoading = false
}, 100)
},
// 页数发生变化后的操作,可能是页码变化,可能是每页容量变化,此函数必写
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(() => {
batchDelService(ids).then(response => {
if (response.code === 200) {
this.$message.success('删除成功')
this.fetchData()
}
})
})
},
// 打开详情对话框
detail(row) {
this.$refs.editService.initDialog('detail', row)
},
// 新增区域
add() {
this.dialogFormVisible = true
this.$refs.editService.initDialog('create')
},
// 编辑区域信息
edit(row) {
this.dialogFormVisible = true
this.$refs.editService.initDialog('update', row)
},
del(row) {
this.$confirm(
'确定要删除该条数据吗?',
'确认操作',
{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}
).then(() => {
delService(row.id).then(response => {
if (response.code === 200) {
this.$message.success('删除成功')
this.fetchData()
}
})
})
},
handleSelectionChange(val) {
this.multipleSelection = val
},
clearInput() {
this.listQuery = {
keywords: '',
offset: 1,
limit: 20
}
this.fetchData()
}
}
}
</script>
<style scoped>
</style>