|  |  | 
 |  |  |   <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: [], | 
 |  |  |         areaType: '', | 
 |  |  |         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> |