<template>
|
<div class="app-container">
|
<div class="filter-container">
|
<div class="basic_search" v-if="userDepartment !== 'null' && userDepartment != null && userDepartment !== ''">
|
<span class="span-filter-label">部门</span>
|
<el-input v-model="userDepartment" disabled style="width:200px">
|
</el-input>
|
</div>
|
|
<div class="basic_search">
|
<span class="span-filter-label">预约日期</span>
|
<el-date-picker
|
v-model="appointment"
|
value-format="yyyy-MM-dd"
|
align="right"
|
type="date"
|
placeholder="选择日期"
|
:picker-options="pickerOptions">
|
</el-date-picker>
|
</div>
|
<div class="basic_search">
|
<el-button style="margin-left: 10px;" type="primary" icon="el-icon-refresh" @click="refreshHandle">搜索</el-button>
|
<el-button style="margin-left: 10px;" type="primary" icon="el-icon-plus" v-if="isDepartment === '1'" @click="openAddDialog('新增')">新增</el-button>
|
</div>
|
</div>
|
<div class="table_content">
|
<el-table
|
v-loading="listLoading"
|
:key="tableKey"
|
:data="taskData"
|
border
|
fit
|
highlight-current-row
|
style="width: 100%;"
|
>
|
<el-table-column style="width: 200px;" label="预约时间" prop="appointment" align="center">
|
</el-table-column>
|
<el-table-column label="动火" prop="fire" align="center">
|
</el-table-column>
|
<el-table-column label="受限空间" prop="space" align="center">
|
</el-table-column>
|
<el-table-column label="吊装作业" prop="hoisting" align="center">
|
</el-table-column>
|
<el-table-column label="动土作业" prop="soild" align="center">
|
</el-table-column>
|
<el-table-column label="断路作业" prop="breaks" align="center">
|
</el-table-column>
|
<el-table-column label="高处作业" prop="high" align="center">
|
</el-table-column>
|
<el-table-column label="临时用电" prop="electricity" align="center">
|
</el-table-column>
|
<el-table-column label="盲板作业" prop="blindboard" align="center">
|
</el-table-column>
|
|
<el-table-column label="操作" align="center" width="280" class-name="small-padding fixed-width">
|
<template slot-scope="scope">
|
<el-button v-if="isDepartment === '1'" type="text" @click="openUpdateDialog(scope.row,'编辑')" >编辑</el-button>
|
<el-button type="text" @click='openViewDialog(scope.row,"查看")'>查看</el-button>
|
</template>
|
</el-table-column>
|
</el-table>
|
<br>
|
<el-pagination
|
v-show="recordTotal>0"
|
:current-page="filter.pageIndex"
|
:page-sizes="[10, 20, 30, 50]"
|
:page-size="filter.pageSize"
|
:total="recordTotal"
|
layout="total, sizes, prev, pager, next, jumper"
|
background
|
style="float:right;"
|
@size-change="handleSizeChange"
|
@current-change="handleCurrentChange"
|
/>
|
<br>
|
</div>
|
<dialogs ref="dialogs" @refresh="getPageList"></dialogs>
|
</div>
|
</template>
|
|
<script>
|
import { mapGetters } from 'vuex'
|
import { computePageCount } from '../../../utils'
|
import {reservePageList ,reserveAdd} from '../../../api/workPlan'
|
import { getAllDepartment } from '@/api/departmentManage'
|
import Cookies from 'js-cookie'
|
import dialogs from './form/dialog'
|
|
export default {
|
name: 'index',
|
filters: {},
|
computed: {
|
...mapGetters([
|
'userType'
|
])
|
},
|
components: {
|
dialogs
|
},
|
data() {
|
return {
|
tableKey: 0,
|
taskData: [],
|
department: [],
|
isDepartment:'',
|
userDepartment:'',
|
appointment: '',
|
listLoading: false,
|
recordTotal: 0,
|
isSending: false,
|
filter: {
|
pageIndex: 1,
|
pageSize: 10,
|
filter: {
|
department: '',
|
starttime: '',
|
endtime: ''
|
}
|
},
|
dataForm: {
|
id: '',
|
fire: '',
|
space: '',
|
hoisting: '',
|
soild: '',
|
breaks: '',
|
high: '',
|
electricity: '',
|
blindboard: '',
|
appointment: ''
|
|
},
|
pickerOptions: {
|
shortcuts: [{
|
text: '今天',
|
onClick(picker) {
|
picker.$emit('pick', new Date())
|
}
|
}, {
|
text: '昨天',
|
onClick(picker) {
|
const date = new Date()
|
date.setTime(date.getTime() - 3600 * 1000 * 24)
|
picker.$emit('pick', date)
|
}
|
}, {
|
text: '明天',
|
onClick(picker) {
|
const date = new Date()
|
date.setTime(date.getTime() + 3600 * 1000 * 24)
|
picker.$emit('pick', date)
|
}
|
}]
|
}
|
|
}
|
},
|
created(){
|
this.initDepartmentFlag()
|
},
|
mounted() {
|
this.getPageList()
|
this.getDepartmentList()
|
},
|
methods: {
|
async getPageList() {
|
this.listLoading = true
|
this.filter.filter.starttime = ''
|
this.filter.filter.endtime = ''
|
if (this.appointment != null && this.appointment !== '') {
|
this.filter.filter.starttime = this.appointment + ' 00:00:00'
|
this.filter.filter.endtime = this.appointment + ' 23:59:59'
|
}
|
let res = await reservePageList(this.filter)
|
if (res.data.code === '200') {
|
this.recordTotal = res.data.result.total
|
this.pageSize = res.data.result.pageSize
|
this.currentPage = res.data.result.pageIndex
|
this.taskData = res.data.result.records
|
} else {
|
this.$message({
|
message: res.data.message,
|
type: 'warning'
|
})
|
}
|
this.listLoading = false
|
},
|
async getDepartmentList() {
|
getAllDepartment()
|
.then(res => {
|
if (res.data.code === '200')
|
this.department = res.data.result
|
else
|
this.$message({message: res.data.message,type: 'warning'})
|
})
|
},
|
|
openAddDialog(title) {
|
this.$refs.dialogs.showAddDialog(title)
|
},
|
openViewDialog(row, title) {
|
this.$refs.dialogs.showViewDialog(row, title)
|
},
|
openUpdateDialog(row, title) {
|
this.$refs.dialogs.showUpdateDialog(row, title)
|
},
|
refreshHandle() {
|
this.getPageList()
|
},
|
handleSizeChange(val) {
|
this.filter.pageSize = val
|
this.getPageList()
|
},
|
handleCurrentChange(val) {
|
this.filter.pageIndex = val
|
this.getPageList()
|
},
|
initDepartmentFlag(){
|
this.isDepartment = sessionStorage.getItem('isdepartment')
|
this.userDepartment = Cookies.get('department')
|
}
|
|
}
|
}
|
</script>
|
<style scoped>
|
.basic_search{
|
display:inline-block;
|
padding-bottom: 10px;
|
}
|
|
.span-filter-label {
|
font-size: 15px;
|
color: #606266;
|
margin-right: 4px;
|
margin-left: 7px;
|
}
|
</style>
|