| | |
| | | <TableLayout :permissions="['business:ywworkorder:query']"> |
| | | <!-- 搜索表单 --> |
| | | <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline> |
| | | <el-form-item label="主键" prop="id"> |
| | | <el-input v-model="searchForm.id" placeholder="请输入主键" @keypress.enter.native="search"></el-input> |
| | | <el-form-item prop="areaType" label="位置类型"> |
| | | <el-select v-model="searchForm.areaType"> |
| | | <el-option label="室内维修" value="0"></el-option> |
| | | <el-option label="公共维修" value="1"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="创建人编码" prop="creator"> |
| | | <el-input v-model="searchForm.creator" placeholder="请输入创建人编码" @keypress.enter.native="search"></el-input> |
| | | <el-form-item label="选择项目" prop="projectId"> |
| | | <el-select v-model="searchForm.projectId" @change="getBuild" clearable filterable> |
| | | <el-option v-for="item in projectList" :label="item.name" :value="item.id" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="创建时间" prop="createDate"> |
| | | <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="请输入创建时间" @change="search"/> |
| | | <el-form-item label="选择楼宇" prop="buildingId"> |
| | | <el-select v-model="searchForm.buildingId" clearable filterable> |
| | | <el-option v-for="item in buildList" :label="item.name" :value="item.id" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="更新人编码" prop="editor"> |
| | | <el-input v-model="searchForm.editor" placeholder="请输入更新人编码" @keypress.enter.native="search"></el-input> |
| | | <el-form-item prop="cateId" label="工单分类"> |
| | | <el-cascader v-model="searchForm.areaIds" @change="changeSel" placeholder="请选择工单分类" clearable |
| | | :options="cateList" :props="{ |
| | | label: 'name', |
| | | value: 'id', |
| | | children: 'childCategoryList' |
| | | }"></el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="更新时间" prop="editDate"> |
| | | <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="请输入更新时间" @change="search"/> |
| | | <el-form-item label="上报时间"> |
| | | <el-date-picker v-model="searchForm.selDate" @change="changeSelDate" format="yyyy-MM-dd" |
| | | value-format="yyyy-MM-dd" type="daterange"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="是否删除0否 1是" prop="isdeleted"> |
| | | <el-input v-model="searchForm.isdeleted" placeholder="请输入是否删除0否 1是" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="标题" prop="title"> |
| | | <el-input v-model="searchForm.title" placeholder="请输入标题" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="备注" prop="remark"> |
| | | <el-input v-model="searchForm.remark" placeholder="请输入备注" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="状态 0启用 1禁用" prop="status"> |
| | | <el-input v-model="searchForm.status" placeholder="请输入状态 0启用 1禁用" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="排序码" prop="sortnum"> |
| | | <el-input v-model="searchForm.sortnum" placeholder="请输入排序码" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="情况说明" prop="content"> |
| | | <el-input v-model="searchForm.content" placeholder="请输入情况说明" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="上门时间" prop="getDate"> |
| | | <el-date-picker v-model="searchForm.getDate" value-format="yyyy-MM-dd" placeholder="请输入上门时间" @change="search"/> |
| | | </el-form-item> |
| | | <el-form-item label="所属项目编码(关联yw_project)" prop="projectId"> |
| | | <el-input v-model="searchForm.projectId" placeholder="请输入所属项目编码(关联yw_project)" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="所属项目编码(关联yw_building)" prop="buildingId"> |
| | | <el-input v-model="searchForm.buildingId" placeholder="请输入所属项目编码(关联yw_building)" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="所属房间编码(关联yw_room)" prop="roomId"> |
| | | <el-input v-model="searchForm.roomId" placeholder="请输入所属房间编码(关联yw_room)" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="提报人编码" prop="userId"> |
| | | <el-input v-model="searchForm.userId" placeholder="请输入提报人编码" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="联系电话" prop="phone"> |
| | | <el-input v-model="searchForm.phone" placeholder="请输入联系电话" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="提报时间" prop="submitDate"> |
| | | <el-date-picker v-model="searchForm.submitDate" value-format="yyyy-MM-dd" placeholder="请输入提报时间" @change="search"/> |
| | | </el-form-item> |
| | | <el-form-item label="工单分类编码(关联category)" prop="cateId"> |
| | | <el-input v-model="searchForm.cateId" placeholder="请输入工单分类编码(关联category)" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="保修区域类型 0室内维修 1公共区域" prop="areaType"> |
| | | <el-input v-model="searchForm.areaType" placeholder="请输入保修区域类型 0室内维修 1公共区域" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="工单编号" prop="code"> |
| | | <el-input v-model="searchForm.code" placeholder="请输入工单编号" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="处理状态 0待处理 1已分派 2已处理" prop="dealStatus"> |
| | | <el-input v-model="searchForm.dealStatus" placeholder="请输入处理状态 0待处理 1已分派 2已处理" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="分派人编码(关联system_user)" prop="dispatchUserId"> |
| | | <el-input v-model="searchForm.dispatchUserId" placeholder="请输入分派人编码(关联system_user)" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="分派时间" prop="dispatchDate"> |
| | | <el-date-picker v-model="searchForm.dispatchDate" value-format="yyyy-MM-dd" placeholder="请输入分派时间" @change="search"/> |
| | | </el-form-item> |
| | | <el-form-item label="分派处理说明" prop="dispatchInfo"> |
| | | <el-input v-model="searchForm.dispatchInfo" placeholder="请输入分派处理说明" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="处理人编码(关联system_user)" prop="dealUserId"> |
| | | <el-input v-model="searchForm.dealUserId" placeholder="请输入处理人编码(关联system_user)" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="处理时间" prop="dealDate"> |
| | | <el-date-picker v-model="searchForm.dealDate" value-format="yyyy-MM-dd" placeholder="请输入处理时间" @change="search"/> |
| | | </el-form-item> |
| | | <el-form-item label="处理备注" prop="dealInfo"> |
| | | <el-input v-model="searchForm.dealInfo" placeholder="请输入处理备注" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="处理方式 0指派后处理 1直接回复" prop="dealType"> |
| | | <el-input v-model="searchForm.dealType" placeholder="请输入处理方式 0指派后处理 1直接回复" @keypress.enter.native="search"></el-input> |
| | | </el-form-item> |
| | | |
| | | <section> |
| | | <el-button type="primary" @click="search">搜索</el-button> |
| | | <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywworkorder:exportExcel']" @click="exportExcel">导出</el-button> |
| | | <el-button @click="reset">重置</el-button> |
| | | </section> |
| | | </el-form> |
| | | <!-- 表格和分页 --> |
| | | <template v-slot:table-wrap> |
| | | <ul class="toolbar" v-permissions="['business:ywworkorder:create', 'business:ywworkorder:delete']"> |
| | | <li><el-button type="primary" @click="$refs.operaYwWorkorderWindow.open('新建运维工单信息表')" icon="el-icon-plus" v-permissions="['business:ywworkorder:create']">新建</el-button></li> |
| | | <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywworkorder:delete']">删除</el-button></li> |
| | | <li><el-button type="primary" @click="$refs.operaYwWorkorderWindow.open('新建工单')" icon="el-icon-plus" |
| | | v-permissions="['business:ywworkorder:create']">新建</el-button></li> |
| | | <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywworkorder:exportExcel']" |
| | | @click="exportExcel" plain>导出</el-button> |
| | | </ul> |
| | | <el-table |
| | | v-loading="isWorking.search" |
| | | :data="tableData.list" |
| | | stripe |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55"></el-table-column> |
| | | <el-table-column prop="id" label="主键" min-width="100px"></el-table-column> |
| | | <el-table-column prop="creator" label="创建人编码" min-width="100px"></el-table-column> |
| | | <el-table-column prop="createDate" label="创建时间" min-width="100px"></el-table-column> |
| | | <el-table-column prop="editor" label="更新人编码" min-width="100px"></el-table-column> |
| | | <el-table-column prop="editDate" label="更新时间" min-width="100px"></el-table-column> |
| | | <el-table-column prop="isdeleted" label="是否删除0否 1是" min-width="100px"></el-table-column> |
| | | <el-table-column prop="title" label="标题" min-width="100px"></el-table-column> |
| | | <el-table-column prop="remark" label="备注" min-width="100px"></el-table-column> |
| | | <el-table-column prop="status" label="状态 0启用 1禁用" min-width="100px"></el-table-column> |
| | | <el-table-column prop="sortnum" label="排序码" min-width="100px"></el-table-column> |
| | | <el-table-column prop="content" label="情况说明" min-width="100px"></el-table-column> |
| | | <el-table-column prop="getDate" label="上门时间" min-width="100px"></el-table-column> |
| | | <el-table-column prop="projectId" label="所属项目编码(关联yw_project)" min-width="100px"></el-table-column> |
| | | <el-table-column prop="buildingId" label="所属项目编码(关联yw_building)" min-width="100px"></el-table-column> |
| | | <el-table-column prop="roomId" label="所属房间编码(关联yw_room)" min-width="100px"></el-table-column> |
| | | <el-table-column prop="userId" label="提报人编码" min-width="100px"></el-table-column> |
| | | <el-table-column prop="phone" label="联系电话" min-width="100px"></el-table-column> |
| | | <el-table-column prop="submitDate" label="提报时间" min-width="100px"></el-table-column> |
| | | <el-table-column prop="cateId" label="工单分类编码(关联category)" min-width="100px"></el-table-column> |
| | | <el-table-column prop="areaType" label="保修区域类型 0室内维修 1公共区域" min-width="100px"></el-table-column> |
| | | <el-table-column prop="code" label="工单编号" min-width="100px"></el-table-column> |
| | | <el-table-column prop="dealStatus" label="处理状态 0待处理 1已分派 2已处理" min-width="100px"></el-table-column> |
| | | <el-table-column prop="dispatchUserId" label="分派人编码(关联system_user)" min-width="100px"></el-table-column> |
| | | <el-table-column prop="dispatchDate" label="分派时间" min-width="100px"></el-table-column> |
| | | <el-table-column prop="dispatchInfo" label="分派处理说明" min-width="100px"></el-table-column> |
| | | <el-table-column prop="dealUserId" label="处理人编码(关联system_user)" min-width="100px"></el-table-column> |
| | | <el-table-column prop="dealDate" label="处理时间" min-width="100px"></el-table-column> |
| | | <el-table-column prop="dealInfo" label="处理备注" min-width="100px"></el-table-column> |
| | | <el-table-column prop="dealType" label="处理方式 0指派后处理 1直接回复" min-width="100px"></el-table-column> |
| | | <el-table-column |
| | | v-if="containPermissions(['business:ywworkorder:update', 'business:ywworkorder:delete'])" |
| | | label="操作" |
| | | min-width="120" |
| | | fixed="right" |
| | | > |
| | | <el-table v-loading="isWorking.search" :data="tableData.list" stripe> |
| | | <el-table-column prop="areaType" label="位置类型" min-width="70px"> |
| | | <template v-slot="scope"> |
| | | <span v-if="scope.row.areaType == 0">室内装修</span> |
| | | <span v-if="scope.row.areaType == 1">公共区域</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="" label="报修区域" min-width="100px"> |
| | | <template v-slot="scope"> |
| | | <span>{{ scope.row.buildingName }} / {{ scope.row.areaType == 0 ? scope.row.roomNum : scope.row.floorName |
| | | }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="categoryName" label="工单分类" min-width="100px"></el-table-column> |
| | | <el-table-column prop="creatorName" label="上报人" min-width="80px"></el-table-column> |
| | | <el-table-column prop="createDate" label="上报时间" min-width="100px"></el-table-column> |
| | | <el-table-column prop="dealUserName" label="处理人" min-width="80px"></el-table-column> |
| | | <el-table-column label="工单状态" min-width="70px"> |
| | | <template slot-scope="{row}"> |
| | | <el-button type="text" @click="$refs.operaYwWorkorderWindow.open('编辑运维工单信息表', row)" icon="el-icon-edit" v-permissions="['business:ywworkorder:update']">编辑</el-button> |
| | | <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywworkorder:delete']">删除</el-button> |
| | | <span v-if="row.dealStatus == 0">待指派</span> |
| | | <span v-if="row.dealStatus == 1">已指派</span> |
| | | <span v-if="row.dealStatus == 2">已处理</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column v-if="containPermissions(['business:ywworkorder:update'])" label="操作" width="80" |
| | | fixed="right"> |
| | | <template slot-scope="{row}"> |
| | | <span @click="handleDetail(row)" class="primaryColor cu">查看详情</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | @size-change="handleSizeChange" |
| | | @current-change="handlePageChange" |
| | | :pagination="tableData.pagination" |
| | | > |
| | | <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination"> |
| | | </pagination> |
| | | </template> |
| | | <Detail v-if="showDetail" ref="DetailRef" @close="showDetail = false" @success="search" /> |
| | | <!-- 新建/修改 --> |
| | | <OperaYwWorkorderWindow ref="operaYwWorkorderWindow" @success="handlePageChange"/> |
| | | <OperaYwWorkorderWindow ref="operaYwWorkorderWindow" @success="handlePageChange" /> |
| | | </TableLayout> |
| | | </template> |
| | | |
| | |
| | | import TableLayout from '@/layouts/TableLayout' |
| | | import Pagination from '@/components/common/Pagination' |
| | | import OperaYwWorkorderWindow from './components/OperaYwWorkorderWindow' |
| | | import Detail from './components/detail' |
| | | import { getBuildList } from '@/api/project/ywBuilding' |
| | | import { getProjectList } from '@/api/project/ywProject' |
| | | import { fetchList as getCateList } from '@/api/business/category.js' |
| | | export default { |
| | | name: 'YwWorkorder', |
| | | extends: BaseTable, |
| | | components: { TableLayout, Pagination, OperaYwWorkorderWindow }, |
| | | data () { |
| | | components: { TableLayout, Pagination, Detail, OperaYwWorkorderWindow }, |
| | | data() { |
| | | return { |
| | | // 搜索 |
| | | showDetail: false, |
| | | searchForm: { |
| | | id: '', |
| | | creator: '', |
| | | createDate: '', |
| | | editor: '', |
| | | editDate: '', |
| | | isdeleted: '', |
| | | title: '', |
| | | remark: '', |
| | | status: '', |
| | | sortnum: '', |
| | | content: '', |
| | | getDate: '', |
| | | selDate: [], |
| | | areaIds: '', |
| | | projectId: '', |
| | | buildingId: '', |
| | | roomId: '', |
| | | userId: '', |
| | | phone: '', |
| | | submitDate: '', |
| | | cateId: '', |
| | | areaType: '', |
| | | code: '', |
| | | dealStatus: '', |
| | | dispatchUserId: '', |
| | | dispatchDate: '', |
| | | dispatchInfo: '', |
| | | dealUserId: '', |
| | | dealDate: '', |
| | | dealInfo: '', |
| | | dealType: '' |
| | | } |
| | | }, |
| | | projectList: [], |
| | | buildList: [], |
| | | cateList: [], |
| | | } |
| | | }, |
| | | created () { |
| | | created() { |
| | | this.config({ |
| | | module: '运维工单信息表', |
| | | api: '/workorder/ywWorkorder', |
| | |
| | | 'field.main': 'id' |
| | | }) |
| | | this.search() |
| | | this.initData() |
| | | }, |
| | | methods: { |
| | | handleDetail(row) { |
| | | this.showDetail = true |
| | | this.$nextTick(() => { |
| | | this.$refs.DetailRef.visible = true |
| | | this.$refs.DetailRef.id = row.id |
| | | this.$refs.DetailRef.getDetail() |
| | | |
| | | }) |
| | | }, |
| | | initData() { |
| | | getProjectList({}).then(res => { |
| | | this.projectList = res |
| | | }) |
| | | getCateList({ |
| | | model: { type: 3 }, |
| | | capacity: 1000, |
| | | page: 1, |
| | | }).then(res => { |
| | | this.cateList = res.records || [] |
| | | }) |
| | | }, |
| | | getBuild(projectId) { |
| | | this.$set(this.searchForm, 'buildingId', '') |
| | | getBuildList({ projectId }).then(res => { |
| | | this.buildList = res |
| | | }) |
| | | }, |
| | | changeSel(e) { |
| | | if (e && e.length == 2) { |
| | | this.$set(this.searchForm, 'cateId', e[1]) |
| | | } else { |
| | | this.$set(this.searchForm, 'cateId', '') |
| | | } |
| | | }, |
| | | reset() { |
| | | this.searchForm = { |
| | | selDate: [], |
| | | areaType: '', |
| | | areaIds: '', |
| | | projectId: '', |
| | | buildingId: '', |
| | | cateId: '', |
| | | } |
| | | this.buildList = [] |
| | | this.search() |
| | | }, |
| | | changeSelDate(e) { |
| | | if (e && e.length > 0) { |
| | | this.$set(this.searchForm, 'queryStartTime', e[0] + ' 00:00:00') |
| | | this.$set(this.searchForm, 'queryEndTime', e[1] + ' 23:59:59') |
| | | } else { |
| | | this.$set(this.searchForm, 'queryStartTime', '') |
| | | this.$set(this.searchForm, 'queryEndTime', '') |
| | | } |
| | | |
| | | }, |
| | | } |
| | | } |
| | | </script> |