ll
liukangdong
2024-11-20 8e753cc7eaf0e261612f0137504684b65f099342
ll
已添加3个文件
已删除1个文件
已修改23个文件
1772 ■■■■ 文件已修改
admin/src/api/index.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/project/yeFloor.js 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/project/ywBuilding.js 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/project/ywProject.js 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/assets/style/style.scss 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/common/CommonHeader.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/Inspection/components/OperaYwPatrolPointWindow.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/Inspection/components/OperaYwPatrolSchemeWindow.vue 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/Inspection/components/OperaYwPatrolTaskWindow.vue 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/Inspection/dot.vue 90 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/Inspection/path.vue 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/Inspection/plan.vue 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/Inspection/task.vue 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/client/clientList.vue 151 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/client/components/OperaYwCustomerWindow.vue 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/client/staffList.vue 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/project/buildingList.vue 147 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/project/components/OperaYwBuildingWindow.vue 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/project/components/OperaYwProjectWindow.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/project/components/OperaYwRoomWindow.vue 103 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/project/components/buildingDetail.vue 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/project/components/floorLevel.vue 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/project/housingList.vue 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/project/projectList.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/workorder/components/OperaCategoryWindow.vue 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/workorder/workorderCate.vue 115 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/workorder/workorderList.vue 102 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/index.js
@@ -1,6 +1,5 @@
export const uploadFile = '/gateway_interface/visitsAdmin/cloudService/public/upload'
export * from './business/index'
export * from './platform'
export * from './other/other'
export * from './workbench/index'
admin/src/api/project/yeFloor.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
import request from '../../utils/request'
// æŸ¥è¯¢
export function fetchList (data) {
  return request.post('/visitsAdmin/cloudService/business/ywFloor/page', data, {
    trim: true
  })
}
// å¯¼å‡ºExcel
export function exportExcel (data) {
  return request.post('/visitsAdmin/cloudService/business/ywFloor/exportExcel', data, {
    trim: true,
    download: true
  })
}
// åˆ›å»º
export function create (data) {
  return request.post('/visitsAdmin/cloudService/business/ywFloor/create', data)
}
// ä¿®æ”¹
export function updateById (data) {
  return request.post('/visitsAdmin/cloudService/business/ywFloor/updateById', data)
}
// æ ¹æ®Id查询
export function detailById (id) {
  return request.get(`/visitsAdmin/cloudService/business/ywFloor/${id}`)
}
// åˆ é™¤
export function deleteById (id) {
  return request.get(`/visitsAdmin/cloudService/business/ywFloor/delete/${id}`)
}
// æ‰¹é‡åˆ é™¤
export function deleteByIdInBatch (ids) {
  return request.get('/visitsAdmin/cloudService/business/ywFloor/delete/batch', {
    params: {
      ids
    }
  })
}
admin/src/api/project/ywBuilding.js
@@ -6,7 +6,11 @@
    trim: true
  })
}
export function getBuildList (data) {
  return request.post('/visitsAdmin/cloudService/business/ywBuilding/list', data, {
    trim: true
  })
}
// å¯¼å‡ºExcel
export function exportExcel (data) {
  return request.post('/visitsAdmin/cloudService/business/ywBuilding/exportExcel', data, {
@@ -24,7 +28,10 @@
export function updateById (data) {
  return request.post('/visitsAdmin/cloudService/business/ywBuilding/updateById', data)
}
// æ ¹æ®Id查询
export function detailById (id) {
  return request.get(`/visitsAdmin/cloudService/business/ywBuilding/${id}`)
}
// åˆ é™¤
export function deleteById (id) {
  return request.get(`/visitsAdmin/cloudService/business/ywBuilding/delete/${id}`)
admin/src/api/project/ywProject.js
@@ -6,7 +6,12 @@
    trim: true
  })
}
// æŸ¥è¯¢
export function getProjectList (data) {
  return request.post('/visitsAdmin/cloudService/business/ywProject/list', data, {
    trim: true
  })
}
// å¯¼å‡ºExcel
export function exportExcel (data) {
  return request.post('/visitsAdmin/cloudService/business/ywProject/exportExcel', data, {
admin/src/assets/style/style.scss
@@ -41,7 +41,18 @@
    // overflow: hidden;
  }
}
.primaryColor{
  color: $primary-color;
}
.orange{
  color: #e89e42;
}
.green{
  color: #75a236;
}
.cu{
  cursor: pointer;
}
.bg {
  z-index: 9990 !important;
}
admin/src/components/common/CommonHeader.vue
@@ -114,7 +114,7 @@
  },
  mounted() {
    // needChangePwd 0 : é»˜è®¤å¯†ç éœ€è¦ä¿®æ”¹ï¼Œ1 ä¸éœ€è¦
    if (userInfo &&(!this.userInfo.needChangePwd || this.userInfo.needChangePwd == '0')) {
    if (this.userInfo &&(!this.userInfo.needChangePwd || this.userInfo.needChangePwd == '0')) {
      this.visible.changePwd = true
    }
  },
admin/src/views/Inspection/components/OperaYwPatrolPointWindow.vue
@@ -6,32 +6,8 @@
    @confirm="confirm"
  >
    <el-form :model="form" ref="form" :rules="rules">
      <el-form-item label="创建人编码" prop="creator">
        <el-input v-model="form.creator" placeholder="请输入创建人编码" v-trim/>
      </el-form-item>
      <el-form-item label="创建时间" prop="createDate">
        <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="请输入创建时间"></el-date-picker>
      </el-form-item>
      <el-form-item label="更新人编码" prop="editor">
        <el-input v-model="form.editor" placeholder="请输入更新人编码" v-trim/>
      </el-form-item>
      <el-form-item label="更新时间" prop="editDate">
        <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="请输入更新时间"></el-date-picker>
      </el-form-item>
      <el-form-item label="是否删除0否 1是" prop="isdeleted">
        <el-input v-model="form.isdeleted" placeholder="请输入是否删除0否 1是" v-trim/>
      </el-form-item>
      <el-form-item label="名称" prop="name">
        <el-input v-model="form.name" placeholder="请输入名称" v-trim/>
      </el-form-item>
      <el-form-item label="备注" prop="remark">
        <el-input v-model="form.remark" placeholder="请输入备注" v-trim/>
      </el-form-item>
      <el-form-item label="状态 0启用 1禁用" prop="status">
        <el-input v-model="form.status" placeholder="请输入状态 0启用 1禁用" v-trim/>
      </el-form-item>
      <el-form-item label="排序码" prop="sortnum">
        <el-input v-model="form.sortnum" placeholder="请输入排序码" v-trim/>
      </el-form-item>
      <el-form-item label="图标" prop="imgurl">
        <el-input v-model="form.imgurl" placeholder="请输入图标" v-trim/>
admin/src/views/Inspection/components/OperaYwPatrolSchemeWindow.vue
@@ -6,48 +6,16 @@
    @confirm="confirm"
  >
    <el-form :model="form" ref="form" :rules="rules">
      <el-form-item label="创建人编码" prop="creator">
        <el-input v-model="form.creator" placeholder="请输入创建人编码" v-trim/>
      </el-form-item>
      <el-form-item label="创建时间" prop="createDate">
        <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="请输入创建时间"></el-date-picker>
      </el-form-item>
      <el-form-item label="更新人编码" prop="editor">
        <el-input v-model="form.editor" placeholder="请输入更新人编码" v-trim/>
      </el-form-item>
      <el-form-item label="更新时间" prop="editDate">
        <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="请输入更新时间"></el-date-picker>
      </el-form-item>
      <el-form-item label="是否删除0否 1是" prop="isdeleted">
        <el-input v-model="form.isdeleted" placeholder="请输入是否删除0否 1是" v-trim/>
      </el-form-item>
      <el-form-item label="标题" prop="title">
        <el-input v-model="form.title" placeholder="请输入标题" v-trim/>
      </el-form-item>
      <el-form-item label="备注" prop="remark">
        <el-input v-model="form.remark" placeholder="请输入备注" v-trim/>
      </el-form-item>
      <el-form-item label="状态 0启用 1禁用" prop="status">
        <el-input v-model="form.status" placeholder="请输入状态 0启用 1禁用" v-trim/>
      </el-form-item>
      <el-form-item label="排序码" prop="sortnum">
        <el-input v-model="form.sortnum" placeholder="请输入排序码" v-trim/>
      </el-form-item>
      <el-form-item label="巡检点编码(关联yw_patrol_line)" prop="lineId">
        <el-input v-model="form.lineId" placeholder="请输入巡检点编码(关联yw_patrol_line)" v-trim/>
      </el-form-item>
      <el-form-item label="巡检负责人编码集合,多个使用英文逗号隔开" prop="userIds">
        <el-input v-model="form.userIds" placeholder="请输入巡检负责人编码集合,多个使用英文逗号隔开" v-trim/>
      </el-form-item>
      <el-form-item label="处理人编码(关联system_user)" prop="dealUserId">
        <el-input v-model="form.dealUserId" placeholder="请输入处理人编码(关联system_user)" v-trim/>
      </el-form-item>
      <el-form-item label="处理时间" prop="dealDate">
        <el-date-picker v-model="form.dealDate" value-format="yyyy-MM-dd" placeholder="请输入处理时间"></el-date-picker>
      </el-form-item>
      <el-form-item label="处理备注" prop="dealInfo">
        <el-input v-model="form.dealInfo" placeholder="请输入处理备注" v-trim/>
      </el-form-item>
      <el-form-item label="循环周期  0每天 1每周 2每天" prop="circleType">
        <el-input v-model="form.circleType" placeholder="请输入循环周期  0每天 1每周 2每天" v-trim/>
      </el-form-item>
@@ -65,9 +33,6 @@
      </el-form-item>
      <el-form-item label="结束时间点" prop="endTime">
        <el-input v-model="form.endTime" placeholder="请输入结束时间点" v-trim/>
      </el-form-item>
      <el-form-item label="执行进度 0待开始 1进行中 2超期 3已完成" prop="processStatus">
        <el-input v-model="form.processStatus" placeholder="请输入执行进度 0待开始 1进行中 2超期 3已完成" v-trim/>
      </el-form-item>
    </el-form>
  </GlobalWindow>
admin/src/views/Inspection/components/OperaYwPatrolTaskWindow.vue
ÎļþÒÑɾ³ý
admin/src/views/Inspection/dot.vue
@@ -1,95 +1,29 @@
<template>
  <TableLayout :permissions="['business:ywpatrolpoint: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>
      <el-form-item label="创建人编码" prop="creator">
        <el-input v-model="searchForm.creator" placeholder="请输入创建人编码" @keypress.enter.native="search"></el-input>
      </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>
      <el-form-item label="更新人编码" prop="editor">
        <el-input v-model="searchForm.editor" placeholder="请输入更新人编码" @keypress.enter.native="search"></el-input>
      </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>
      <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="name">
        <el-input v-model="searchForm.name" 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="imgurl">
        <el-input v-model="searchForm.imgurl" placeholder="请输入图标" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="区域编码(关联category)" prop="areaId">
        <el-input v-model="searchForm.areaId" placeholder="请输入区域编码(关联category)" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="地址" prop="addr">
        <el-input v-model="searchForm.addr" placeholder="请输入地址" @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:ywpatrolpoint: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:ywpatrolpoint:create', 'business:ywpatrolpoint:delete']">
        <li><el-button type="primary" @click="$refs.operaYwPatrolPointWindow.open('新建运维巡检点信息表')" icon="el-icon-plus" v-permissions="['business:ywpatrolpoint:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywpatrolpoint:delete']">删除</el-button></li>
        <li><el-button type="primary" @click="$refs.operaYwPatrolPointWindow.open('新建巡检点')" icon="el-icon-plus"
            v-permissions="['business:ywpatrolpoint:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete"
            v-permissions="['business:ywpatrolpoint:delete']">删除</el-button></li>
      </ul>
      <el-table
        v-loading="isWorking.search"
        :data="tableData.list"
        stripe
        @selection-change="handleSelectionChange"
      >
      <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="name" 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="imgurl" label="图标" min-width="100px"></el-table-column>
        <el-table-column prop="areaId" label="区域编码(关联category)" min-width="100px"></el-table-column>
        <el-table-column prop="addr" label="地址" min-width="100px"></el-table-column>
        <el-table-column
          v-if="containPermissions(['business:ywpatrolpoint:update', 'business:ywpatrolpoint:delete'])"
          label="操作"
          min-width="120"
          fixed="right"
        >
        <el-table-column v-if="containPermissions(['business:ywpatrolpoint:update', 'business:ywpatrolpoint:delete'])"
          label="操作" min-width="120" fixed="right">
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaYwPatrolPointWindow.open('编辑运维巡检点信息表', row)" icon="el-icon-edit" v-permissions="['business:ywpatrolpoint:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywpatrolpoint:delete']">删除</el-button>
            <el-button type="text" @click="$refs.operaYwPatrolPointWindow.open('编辑巡检点', row)" icon="el-icon-edit"
              v-permissions="['business:ywpatrolpoint:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete"
              v-permissions="['business:ywpatrolpoint:delete']">删除</el-button>
          </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>
    <!-- æ–°å»º/修改 -->
admin/src/views/Inspection/path.vue
@@ -2,38 +2,11 @@
  <TableLayout :permissions="['business:ywpatrolline: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>
      <el-form-item label="创建人编码" prop="creator">
        <el-input v-model="searchForm.creator" placeholder="请输入创建人编码" @keypress.enter.native="search"></el-input>
      </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>
      <el-form-item label="更新人编码" prop="editor">
        <el-input v-model="searchForm.editor" placeholder="请输入更新人编码" @keypress.enter.native="search"></el-input>
      </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>
      <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="name">
        <el-input v-model="searchForm.name" 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="imgurl">
        <el-input v-model="searchForm.imgurl" placeholder="请输入图标" @keypress.enter.native="search"></el-input>
      <el-form-item label="计划日期">
        <el-input v-model="searchForm.name" placeholder="请输入名称" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <section>
        <el-button type="primary" @click="search">搜索</el-button>
@@ -44,7 +17,7 @@
    <!-- è¡¨æ ¼å’Œåˆ†é¡µ -->
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:ywpatrolline:create', 'business:ywpatrolline:delete']">
        <li><el-button type="primary" @click="$refs.operaYwPatrolLineWindow.open('新建运维巡检路线信息表')" icon="el-icon-plus" v-permissions="['business:ywpatrolline:create']">新建</el-button></li>
        <li><el-button type="primary" @click="$refs.operaYwPatrolLineWindow.open('新建巡检线路')" icon="el-icon-plus" v-permissions="['business:ywpatrolline:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywpatrolline:delete']">删除</el-button></li>
      </ul>
      <el-table
@@ -54,17 +27,8 @@
        @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="name" 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="imgurl" label="图标" min-width="100px"></el-table-column>
        <el-table-column
          v-if="containPermissions(['business:ywpatrolline:update', 'business:ywpatrolline:delete'])"
          label="操作"
@@ -72,7 +36,7 @@
          fixed="right"
        >
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaYwPatrolLineWindow.open('编辑运维巡检路线信息表', row)" icon="el-icon-edit" v-permissions="['business:ywpatrolline:update']">编辑</el-button>
            <el-button type="text" @click="$refs.operaYwPatrolLineWindow.open('编辑巡检线路', row)" icon="el-icon-edit" v-permissions="['business:ywpatrolline:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywpatrolline:delete']">删除</el-button>
          </template>
        </el-table-column>
admin/src/views/Inspection/plan.vue
@@ -2,56 +2,9 @@
  <TableLayout :permissions="['business:ywpatrolscheme: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>
      <el-form-item label="创建人编码" prop="creator">
        <el-input v-model="searchForm.creator" placeholder="请输入创建人编码" @keypress.enter.native="search"></el-input>
      </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>
      <el-form-item label="更新人编码" prop="editor">
        <el-input v-model="searchForm.editor" placeholder="请输入更新人编码" @keypress.enter.native="search"></el-input>
      </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>
      <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="巡检点编码(关联yw_patrol_line)" prop="lineId">
        <el-input v-model="searchForm.lineId" placeholder="请输入巡检点编码(关联yw_patrol_line)" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="巡检负责人编码集合,多个使用英文逗号隔开" prop="userIds">
        <el-input v-model="searchForm.userIds" 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每周 2每天" prop="circleType">
        <el-input v-model="searchForm.circleType" placeholder="请输入循环周期  0每天 1每周 2每天" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="循环重复规则 1-31,多个英文逗号隔开" prop="circleDays">
        <el-input v-model="searchForm.circleDays" placeholder="请输入循环重复规则 1-31,多个英文逗号隔开" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="开始日期" prop="startDate">
        <el-date-picker v-model="searchForm.startDate" value-format="yyyy-MM-dd" placeholder="请输入开始日期" @change="search"/>
@@ -59,15 +12,7 @@
      <el-form-item label="结束日期" prop="endDate">
        <el-date-picker v-model="searchForm.endDate" value-format="yyyy-MM-dd" placeholder="请输入结束日期" @change="search"/>
      </el-form-item>
      <el-form-item label="开始时间点" prop="startTime">
        <el-input v-model="searchForm.startTime" placeholder="请输入开始时间点" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="结束时间点" prop="endTime">
        <el-input v-model="searchForm.endTime" placeholder="请输入结束时间点" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="执行进度 0待开始 1进行中 2超期 3已完成" prop="processStatus">
        <el-input v-model="searchForm.processStatus" placeholder="请输入执行进度 0待开始 1进行中 2超期 3已完成" @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:ywpatrolscheme:exportExcel']" @click="exportExcel">导出</el-button>
@@ -77,7 +22,7 @@
    <!-- è¡¨æ ¼å’Œåˆ†é¡µ -->
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:ywpatrolscheme:create', 'business:ywpatrolscheme:delete']">
        <li><el-button type="primary" @click="$refs.operaYwPatrolSchemeWindow.open('新建运维巡检计划信息表')" icon="el-icon-plus" v-permissions="['business:ywpatrolscheme:create']">新建</el-button></li>
        <li><el-button type="primary" @click="$refs.operaYwPatrolSchemeWindow.open('新建巡检计划')" icon="el-icon-plus" v-permissions="['business:ywpatrolscheme:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywpatrolscheme:delete']">删除</el-button></li>
      </ul>
      <el-table
@@ -87,23 +32,13 @@
        @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="lineId" label="巡检点编码(关联yw_patrol_line)" min-width="100px"></el-table-column>
        <el-table-column prop="userIds" 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="circleType" label="循环周期  0每天 1每周 2每天" min-width="100px"></el-table-column>
        <el-table-column prop="circleDays" label="循环重复规则 1-31,多个英文逗号隔开" min-width="100px"></el-table-column>
        <el-table-column prop="startDate" label="开始日期" min-width="100px"></el-table-column>
        <el-table-column prop="endDate" label="结束日期" min-width="100px"></el-table-column>
        <el-table-column prop="startTime" label="开始时间点" min-width="100px"></el-table-column>
@@ -116,7 +51,7 @@
          fixed="right"
        >
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaYwPatrolSchemeWindow.open('编辑运维巡检计划信息表', row)" icon="el-icon-edit" v-permissions="['business:ywpatrolscheme:update']">编辑</el-button>
            <el-button type="text" @click="$refs.operaYwPatrolSchemeWindow.open('编辑巡检计划', row)" icon="el-icon-edit" v-permissions="['business:ywpatrolscheme:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywpatrolscheme:delete']">删除</el-button>
          </template>
        </el-table-column>
admin/src/views/Inspection/task.vue
@@ -2,62 +2,15 @@
  <TableLayout :permissions="['business:ywpatroltask: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>
      <el-form-item label="创建人编码" prop="creator">
        <el-input v-model="searchForm.creator" placeholder="请输入创建人编码" @keypress.enter.native="search"></el-input>
      </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>
      <el-form-item label="更新人编码" prop="editor">
        <el-input v-model="searchForm.editor" placeholder="请输入更新人编码" @keypress.enter.native="search"></el-input>
      </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>
      <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进行中 2已超期 3已完成 4已取消" prop="status">
        <el-input v-model="searchForm.status" placeholder="请输入状态 0待开始 1进行中 2已超期 3已完成 4已取消" @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="巡检计划编码(关联yw_patrol_scheme)" prop="schemeId">
        <el-input v-model="searchForm.schemeId" placeholder="请输入巡检计划编码(关联yw_patrol_scheme)" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="巡检点编码(关联yw_patrol_point)" prop="pointId">
        <el-input v-model="searchForm.pointId" placeholder="请输入巡检点编码(关联yw_patrol_point)" @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每周 2每天" prop="circleType">
        <el-input v-model="searchForm.circleType" placeholder="请输入循环周期  0每天 1每周 2每天" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="开始日期" prop="startDate">
        <el-date-picker v-model="searchForm.startDate" value-format="yyyy-MM-dd" placeholder="请输入开始日期" @change="search"/>
      </el-form-item>
      <el-form-item label="结束日期" prop="endDate">
        <el-date-picker v-model="searchForm.endDate" value-format="yyyy-MM-dd" placeholder="请输入结束日期" @change="search"/>
      </el-form-item>
      <el-form-item label="巡检结果  0正常 1异常" prop="dealStatus">
        <el-input v-model="searchForm.dealStatus" placeholder="请输入巡检结果  0正常 1异常" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <section>
        <el-button type="primary" @click="search">搜索</el-button>
@@ -68,7 +21,7 @@
    <!-- è¡¨æ ¼å’Œåˆ†é¡µ -->
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:ywpatroltask:create', 'business:ywpatroltask:delete']">
        <li><el-button type="primary" @click="$refs.operaYwPatrolTaskWindow.open('新建运维巡检任务信息表')" icon="el-icon-plus" v-permissions="['business:ywpatroltask:create']">新建</el-button></li>
        <li><el-button type="primary" @click="$refs.operaYwPatrolTaskWindow.open('新建巡检任务')" icon="el-icon-plus" v-permissions="['business:ywpatroltask:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywpatroltask:delete']">删除</el-button></li>
      </ul>
      <el-table
@@ -78,22 +31,13 @@
        @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进行中 2已超期 3已完成 4已取消" min-width="100px"></el-table-column>
        <el-table-column prop="sortnum" label="排序码" min-width="100px"></el-table-column>
        <el-table-column prop="schemeId" label="巡检计划编码(关联yw_patrol_scheme)" min-width="100px"></el-table-column>
        <el-table-column prop="pointId" label="巡检点编码(关联yw_patrol_point)" 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="circleType" label="循环周期  0每天 1每周 2每天" min-width="100px"></el-table-column>
        <el-table-column prop="startDate" label="开始日期" min-width="100px"></el-table-column>
        <el-table-column prop="endDate" label="结束日期" min-width="100px"></el-table-column>
        <el-table-column prop="dealStatus" label="巡检结果  0正常 1异常" min-width="100px"></el-table-column>
@@ -104,7 +48,7 @@
          fixed="right"
        >
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaYwPatrolTaskWindow.open('编辑运维巡检任务信息表', row)" icon="el-icon-edit" v-permissions="['business:ywpatroltask:update']">编辑</el-button>
            <el-button type="text" @click="$refs.operaYwPatrolTaskWindow.open('编辑巡检任务', row)" icon="el-icon-edit" v-permissions="['business:ywpatroltask:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywpatroltask:delete']">删除</el-button>
          </template>
        </el-table-column>
@@ -116,8 +60,7 @@
      >
      </pagination>
    </template>
    <!-- æ–°å»º/修改 -->
    <OperaYwPatrolTaskWindow ref="operaYwPatrolTaskWindow" @success="handlePageChange"/>
  </TableLayout>
</template>
@@ -125,11 +68,10 @@
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaYwPatrolTaskWindow from './components/OperaYwPatrolTaskWindow'
export default {
  name: 'YwPatrolTask',
  extends: BaseTable,
  components: { TableLayout, Pagination, OperaYwPatrolTaskWindow },
  components: { TableLayout, Pagination },
  data () {
    return {
      // æœç´¢
admin/src/views/client/clientList.vue
@@ -2,158 +2,43 @@
  <TableLayout :permissions="['business:ywcustomer: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>
      <el-form-item label="创建人编码" prop="creator">
        <el-input v-model="searchForm.creator" placeholder="请输入创建人编码" @keypress.enter.native="search"></el-input>
      </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>
      <el-form-item label="更新人编码" prop="editor">
        <el-input v-model="searchForm.editor" placeholder="请输入更新人编码" @keypress.enter.native="search"></el-input>
      </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>
      <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="remark">
        <el-input v-model="searchForm.remark" placeholder="请输入备注" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="所属行业编码(关联category)" prop="industryId">
        <el-input v-model="searchForm.industryId" placeholder="请输入所属行业编码(关联category)" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="类型 0个人 1企业" prop="type">
        <el-input v-model="searchForm.type" placeholder="请输入类型 0个人 1企业" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="客户" prop="name">
        <el-input v-model="searchForm.name" 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="idcardNo">
        <el-input v-model="searchForm.idcardNo" placeholder="请输入身份证号(加密)" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="证件显示信息" prop="idcardDecode">
        <el-input v-model="searchForm.idcardDecode" placeholder="请输入证件显示信息" @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禁用" prop="status">
        <el-input v-model="searchForm.status" placeholder="请输入状态 0正常 1禁用" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="身份 0老板 1超级管理员" prop="highCheckor">
        <el-input v-model="searchForm.highCheckor" placeholder="请输入身份 0老板 1超级管理员" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="最近登录时间" prop="lastLoginDate">
        <el-date-picker v-model="searchForm.lastLoginDate" value-format="yyyy-MM-dd" placeholder="请输入最近登录时间" @change="search"/>
      </el-form-item>
      <el-form-item label="登录次数" prop="loginNum">
        <el-input v-model="searchForm.loginNum" placeholder="请输入登录次数" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="系统登录用户编码(关联system_user)" prop="userId">
        <el-input v-model="searchForm.userId" placeholder="请输入系统登录用户编码(关联system_user)" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="证件类型 0身份证 1港澳证件 2护照" prop="idcardType">
        <el-input v-model="searchForm.idcardType" placeholder="请输入证件类型 0身份证 1港澳证件 2护照" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="开户银行" prop="accountBank">
        <el-input v-model="searchForm.accountBank" placeholder="请输入开户银行" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="账号" prop="accountNo">
        <el-input v-model="searchForm.accountNo" placeholder="请输入账号" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="账户电话" prop="accountPhone">
        <el-input v-model="searchForm.accountPhone" placeholder="请输入账户电话" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="统一信用代码" prop="creditCard">
        <el-input v-model="searchForm.creditCard" placeholder="请输入统一信用代码" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="默认发票类型 0增值税普通发票 1增值税专用发票" prop="fpType">
        <el-input v-model="searchForm.fpType" placeholder="请输入默认发票类型 0增值税普通发票 1增值税专用发票" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="账号注册地址" prop="accountAddr">
        <el-input v-model="searchForm.accountAddr" placeholder="请输入账号注册地址" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="身份类型0老板超级管理员;1=人事管理员;2=员工" prop="identityType">
        <el-input v-model="searchForm.identityType" placeholder="请输入身份类型0老板超级管理员;1=人事管理员;2=员工" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="邮箱" prop="email">
        <el-input v-model="searchForm.email" placeholder="请输入邮箱" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="联系人编码(关联member)" prop="memberId">
        <el-input v-model="searchForm.memberId" placeholder="请输入联系人编码(关联member)" @keypress.enter.native="search"></el-input>
      <el-form-item label="客户名称" prop="name">
        <el-input v-model="searchForm.name" placeholder="请输入客户名称" @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:ywcustomer:exportExcel']" @click="exportExcel">导出</el-button>
        <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywcustomer: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:ywcustomer:create', 'business:ywcustomer:delete']">
        <li><el-button type="primary" @click="$refs.operaYwCustomerWindow.open('新建运维客户信息表')" icon="el-icon-plus" v-permissions="['business:ywcustomer:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywcustomer:delete']">删除</el-button></li>
        <li><el-button type="primary" @click="$refs.operaYwCustomerWindow.open('新建客户')" icon="el-icon-plus"
            v-permissions="['business:ywcustomer:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete"
            v-permissions="['business:ywcustomer:delete']">删除</el-button></li>
      </ul>
      <el-table
        v-loading="isWorking.search"
        :data="tableData.list"
        stripe
        @selection-change="handleSelectionChange"
      >
      <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="remark" label="备注" min-width="100px"></el-table-column>
        <el-table-column prop="industryId" label="所属行业编码(关联category)" min-width="100px"></el-table-column>
        <el-table-column prop="type" label="类型 0个人 1企业" min-width="100px"></el-table-column>
        <el-table-column prop="name" label="客户" min-width="100px"></el-table-column>
        <el-table-column prop="name" label="客户名称" min-width="100px"></el-table-column>
        <el-table-column prop="memberName" label="联系人" min-width="100px"></el-table-column>
        <el-table-column prop="phone" label="手机号" min-width="100px"></el-table-column>
        <el-table-column prop="idcardNo" label="身份证号(加密)" min-width="100px"></el-table-column>
        <el-table-column prop="idcardDecode" label="证件显示信息" min-width="100px"></el-table-column>
        <el-table-column prop="code" 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="highCheckor" label="身份 0老板 1超级管理员" min-width="100px"></el-table-column>
        <el-table-column prop="lastLoginDate" label="最近登录时间" min-width="100px"></el-table-column>
        <el-table-column prop="loginNum" label="登录次数" min-width="100px"></el-table-column>
        <el-table-column prop="userId" label="系统登录用户编码(关联system_user)" min-width="100px"></el-table-column>
        <el-table-column prop="idcardType" label="证件类型 0身份证 1港澳证件 2护照" min-width="100px"></el-table-column>
        <el-table-column prop="accountBank" label="开户银行" min-width="100px"></el-table-column>
        <el-table-column prop="accountNo" label="账号" min-width="100px"></el-table-column>
        <el-table-column prop="accountPhone" label="账户电话" min-width="100px"></el-table-column>
        <el-table-column prop="creditCard" label="统一信用代码" min-width="100px"></el-table-column>
        <el-table-column prop="fpType" label="默认发票类型 0增值税普通发票 1增值税专用发票" min-width="100px"></el-table-column>
        <el-table-column prop="accountAddr" label="账号注册地址" min-width="100px"></el-table-column>
        <el-table-column prop="identityType" label="身份类型0老板超级管理员;1=人事管理员;2=员工" min-width="100px"></el-table-column>
        <el-table-column prop="email" label="邮箱" min-width="100px"></el-table-column>
        <el-table-column prop="memberId" label="联系人编码(关联member)" min-width="100px"></el-table-column>
        <el-table-column
          v-if="containPermissions(['business:ywcustomer:update', 'business:ywcustomer:delete'])"
          label="操作"
          min-width="120"
          fixed="right"
        >
        <el-table-column v-if="containPermissions(['business:ywcustomer:update', 'business:ywcustomer:delete'])"
          label="操作" min-width="120" fixed="right">
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaYwCustomerWindow.open('编辑运维客户信息表', row)" icon="el-icon-edit" v-permissions="['business:ywcustomer:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywcustomer:delete']">删除</el-button>
            <el-button type="text" @click="$refs.operaYwCustomerWindow.open('编辑客户', row)" icon="el-icon-edit"
              v-permissions="['business:ywcustomer:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete"
              v-permissions="['business:ywcustomer:delete']">删除</el-button>
          </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>
    <!-- æ–°å»º/修改 -->
admin/src/views/client/components/OperaYwCustomerWindow.vue
@@ -6,27 +6,6 @@
    @confirm="confirm"
  >
    <el-form :model="form" ref="form" :rules="rules">
      <el-form-item label="创建人编码" prop="creator">
        <el-input v-model="form.creator" placeholder="请输入创建人编码" v-trim/>
      </el-form-item>
      <el-form-item label="创建时间" prop="createDate">
        <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="请输入创建时间"></el-date-picker>
      </el-form-item>
      <el-form-item label="更新人编码" prop="editor">
        <el-input v-model="form.editor" placeholder="请输入更新人编码" v-trim/>
      </el-form-item>
      <el-form-item label="更新时间" prop="editDate">
        <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="请输入更新时间"></el-date-picker>
      </el-form-item>
      <el-form-item label="是否删除0否 1是" prop="isdeleted">
        <el-input v-model="form.isdeleted" placeholder="请输入是否删除0否 1是" v-trim/>
      </el-form-item>
      <el-form-item label="备注" prop="remark">
        <el-input v-model="form.remark" placeholder="请输入备注" v-trim/>
      </el-form-item>
      <el-form-item label="所属行业编码(关联category)" prop="industryId">
        <el-input v-model="form.industryId" placeholder="请输入所属行业编码(关联category)" v-trim/>
      </el-form-item>
      <el-form-item label="类型 0个人 1企业" prop="type">
        <el-input v-model="form.type" placeholder="请输入类型 0个人 1企业" v-trim/>
      </el-form-item>
@@ -50,15 +29,6 @@
      </el-form-item>
      <el-form-item label="身份 0老板 1超级管理员" prop="highCheckor">
        <el-input v-model="form.highCheckor" placeholder="请输入身份 0老板 1超级管理员" v-trim/>
      </el-form-item>
      <el-form-item label="最近登录时间" prop="lastLoginDate">
        <el-date-picker v-model="form.lastLoginDate" value-format="yyyy-MM-dd" placeholder="请输入最近登录时间"></el-date-picker>
      </el-form-item>
      <el-form-item label="登录次数" prop="loginNum">
        <el-input v-model="form.loginNum" placeholder="请输入登录次数" v-trim/>
      </el-form-item>
      <el-form-item label="系统登录用户编码(关联system_user)" prop="userId">
        <el-input v-model="form.userId" placeholder="请输入系统登录用户编码(关联system_user)" v-trim/>
      </el-form-item>
      <el-form-item label="证件类型 0身份证 1港澳证件 2护照" prop="idcardType">
        <el-input v-model="form.idcardType" placeholder="请输入证件类型 0身份证 1港澳证件 2护照" v-trim/>
admin/src/views/client/staffList.vue
@@ -0,0 +1,101 @@
<template>
  <TableLayout :permissions="['business:ywcustomer:query']">
    <!-- æœç´¢è¡¨å• -->
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
      <el-form-item label="客户名称" prop="name">
        <el-input v-model="searchForm.name" placeholder="请输入客户名称" @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:ywcustomer: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:ywcustomer:create', 'business:ywcustomer:delete']">
        <li><el-button type="primary" @click="$refs.operaYwCustomerWindow.open('新建客户')" icon="el-icon-plus"
            v-permissions="['business:ywcustomer:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete"
            v-permissions="['business:ywcustomer:delete']">删除</el-button></li>
      </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="name" label="客户名称" min-width="100px"></el-table-column>
        <el-table-column prop="memberName" label="联系人" min-width="100px"></el-table-column>
        <el-table-column prop="phone" label="联系电话" min-width="100px"></el-table-column>
        <el-table-column v-if="containPermissions(['business:ywcustomer:update', 'business:ywcustomer:delete'])"
          label="操作" min-width="120" fixed="right">
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaYwCustomerWindow.open('编辑客户', row)" icon="el-icon-edit"
              v-permissions="['business:ywcustomer:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete"
              v-permissions="['business:ywcustomer:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
      <pagination @size-change="handleSizeChange" @current-change="handlePageChange" :pagination="tableData.pagination">
      </pagination>
    </template>
    <!-- æ–°å»º/修改 -->
    <OperaYwCustomerWindow ref="operaYwCustomerWindow" @success="handlePageChange" />
  </TableLayout>
</template>
<script>
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaYwCustomerWindow from './components/OperaYwCustomerWindow'
export default {
  name: 'YwCustomer',
  extends: BaseTable,
  components: { TableLayout, Pagination, OperaYwCustomerWindow },
  data() {
    return {
      // æœç´¢
      searchForm: {
        id: '',
        creator: '',
        createDate: '',
        editor: '',
        editDate: '',
        isdeleted: '',
        remark: '',
        industryId: '',
        type: '',
        name: '',
        phone: '',
        idcardNo: '',
        idcardDecode: '',
        code: '',
        status: '',
        highCheckor: '',
        lastLoginDate: '',
        loginNum: '',
        userId: '',
        idcardType: '',
        accountBank: '',
        accountNo: '',
        accountPhone: '',
        creditCard: '',
        fpType: '',
        accountAddr: '',
        identityType: '',
        email: '',
        memberId: ''
      }
    }
  },
  created() {
    this.config({
      module: '运维客户信息表',
      api: '/client/ywCustomer',
      'field.id': 'id',
      'field.main': 'id'
    })
    this.search()
  }
}
</script>
admin/src/views/project/buildingList.vue
@@ -2,62 +2,13 @@
  <TableLayout :permissions="['business:ywbuilding: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 label="楼宇名称" prop="name">
        <el-input v-model="searchForm.name" placeholder="请输入楼宇名称" @keypress.enter.native="search"></el-input>
      </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>
      <el-form-item label="创建时间" prop="createDate">
        <el-date-picker v-model="searchForm.createDate" value-format="yyyy-MM-dd" placeholder="请输入创建时间" @change="search"/>
      </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>
      <el-form-item label="更新时间" prop="editDate">
        <el-date-picker v-model="searchForm.editDate" value-format="yyyy-MM-dd" placeholder="请输入更新时间" @change="search"/>
      </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="name">
        <el-input v-model="searchForm.name" 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="imgurl">
        <el-input v-model="searchForm.imgurl" placeholder="请输入图标" @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="地址" prop="addr">
        <el-input v-model="searchForm.addr" placeholder="请输入地址" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="面积(平方米)" prop="area">
        <el-input v-model="searchForm.area" placeholder="请输入面积(平方米)" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="产权面积(平方米)" prop="cqArea">
        <el-input v-model="searchForm.cqArea" placeholder="请输入产权面积(平方米)" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="可租面积(平方米)" prop="rentArea">
        <el-input v-model="searchForm.rentArea" placeholder="请输入可租面积(平方米)" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="地上层数" prop="onFloor">
        <el-input v-model="searchForm.onFloor" placeholder="请输入地上层数" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="地下层数" prop="underFloor">
        <el-input v-model="searchForm.underFloor" placeholder="请输入地下层数" @keypress.enter.native="search"></el-input>
      </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 label="所属项目" prop="projectId">
       <el-select v-model="searchForm.projectId">
        <el-option v-for="item in projectList" :key="item.id" :label="item.name" :value="item.id"></el-option>
       </el-select>
      </el-form-item>
      <section>
        <el-button type="primary" @click="search">搜索</el-button>
@@ -68,7 +19,7 @@
    <!-- è¡¨æ ¼å’Œåˆ†é¡µ -->
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:ywbuilding:create', 'business:ywbuilding:delete']">
        <li><el-button type="primary" @click="$refs.operaYwBuildingWindow.open('新建运维楼宇信息表')" icon="el-icon-plus" v-permissions="['business:ywbuilding:create']">新建</el-button></li>
        <li><el-button type="primary" @click="editClick()" icon="el-icon-plus" v-permissions="['business:ywbuilding:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywbuilding:delete']">删除</el-button></li>
      </ul>
      <el-table
@@ -78,25 +29,17 @@
        @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="name" 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="imgurl" label="图标" min-width="100px"></el-table-column>
        <el-table-column prop="code" label="编号" min-width="100px"></el-table-column>
        <el-table-column prop="addr" label="地址" min-width="100px"></el-table-column>
        <el-table-column prop="area" label="面积(平方米)" min-width="100px"></el-table-column>
        <el-table-column prop="cqArea" label="产权面积(平方米)" min-width="100px"></el-table-column>
        <el-table-column prop="rentArea" label="可租面积(平方米)" min-width="100px"></el-table-column>
        <el-table-column prop="onFloor" label="地上层数" min-width="100px"></el-table-column>
        <el-table-column prop="underFloor" 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="name" label="楼宇名称" min-width="100px">
          <template v-slot="scope">
            <span class="primaryColor cu" @click="handleDetail(scope.row)">{{ scope.row.name }}</span>
          </template>
        </el-table-column>
        <el-table-column prop="projectName" label="所属项目" min-width="100px"></el-table-column>
        <el-table-column prop="code" label="楼宇编码" min-width="80px"></el-table-column>
        <el-table-column prop="area" label="建筑面积(m²)" min-width="80px"></el-table-column>
        <el-table-column prop="cqArea" label="管理面积(m²)" min-width="80px"></el-table-column>
        <el-table-column prop="" label="房间总数(间)" min-width="80px"></el-table-column>
        <el-table-column prop="" label="可招商房源数量(间)" min-width="100px"></el-table-column>
        <el-table-column
          v-if="containPermissions(['business:ywbuilding:update', 'business:ywbuilding:delete'])"
          label="操作"
@@ -104,7 +47,8 @@
          fixed="right"
        >
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaYwBuildingWindow.open('编辑运维楼宇信息表', row)" icon="el-icon-edit" v-permissions="['business:ywbuilding:update']">编辑</el-button>
            <el-button type="text" @click="editClick(row)" icon="el-icon-edit" v-permissions="['business:ywbuilding:update']">编辑</el-button>
            <el-button type="text" @click="editFloor(row)" v-permissions="['business:ywbuilding:update']">楼层管理</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywbuilding:delete']">删除</el-button>
          </template>
        </el-table-column>
@@ -118,6 +62,8 @@
    </template>
    <!-- æ–°å»º/修改 -->
    <OperaYwBuildingWindow ref="operaYwBuildingWindow" @success="handlePageChange"/>
    <FloorLevel ref="FloorLevelRef" @success="handlePageChange"/>
    <BuildingDetail ref="BuildingDetailRef" />
  </TableLayout>
</template>
@@ -126,34 +72,21 @@
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaYwBuildingWindow from './components/OperaYwBuildingWindow'
import BuildingDetail from './components/buildingDetail.vue'
import FloorLevel from './components/floorLevel.vue'
import { getProjectList } from '@/api/project/ywProject'
export default {
  name: 'YwBuilding',
  extends: BaseTable,
  components: { TableLayout, Pagination, OperaYwBuildingWindow },
  components: { TableLayout, Pagination, OperaYwBuildingWindow ,BuildingDetail, FloorLevel},
  data () {
    return {
      // æœç´¢
      searchForm: {
        id: '',
        creator: '',
        createDate: '',
        editor: '',
        editDate: '',
        isdeleted: '',
        name: '',
        remark: '',
        status: '',
        sortnum: '',
        imgurl: '',
        code: '',
        addr: '',
        area: '',
        cqArea: '',
        rentArea: '',
        onFloor: '',
        underFloor: '',
        projectId: ''
      }
      },
      projectList: []
    }
  },
  created () {
@@ -164,6 +97,30 @@
      'field.main': 'id'
    })
    this.search()
    this.getProject()
  },
  methods: {
    getProject() {
      getProjectList({}).then(res => {
        this.projectList = res || []
      })
    },
    editClick(row) {
      if(row && row.id){
        this.$refs.operaYwBuildingWindow.open('编辑楼宇')
      }else{
        this.$refs.operaYwBuildingWindow.open('新建楼宇')
      }
      this.$refs.operaYwBuildingWindow.getProject()
    },
    editFloor(row) {
      this.$refs.FloorLevelRef.getList(row.id)
      this.$refs.FloorLevelRef.visible = true
    },
    handleDetail(row) {
      this.$refs.BuildingDetailRef.getDetail(row.id)
      this.$refs.BuildingDetailRef.visible = true
    },
  }
}
</script>
admin/src/views/project/components/OperaYwBuildingWindow.vue
@@ -1,64 +1,37 @@
<template>
  <GlobalWindow
    :title="title"
    :visible.sync="visible"
    :confirm-working="isWorking"
    @confirm="confirm"
  >
  <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm">
    <el-form :model="form" ref="form" :rules="rules">
      <el-form-item label="创建人编码" prop="creator">
        <el-input v-model="form.creator" placeholder="请输入创建人编码" v-trim/>
      <el-form-item label="所属项目" prop="projectId" clearable placeholder="请选择项目">
        <el-select v-model="form.projectId">
          <el-option v-for="item in projectList" :key="item.id" :label="item.name" :value="item.id"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="创建时间" prop="createDate">
        <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="请输入创建时间"></el-date-picker>
      <el-form-item label="楼宇名称" prop="name">
        <el-input v-model="form.name" placeholder="请输入楼宇名称" v-trim />
      </el-form-item>
      <el-form-item label="更新人编码" prop="editor">
        <el-input v-model="form.editor" placeholder="请输入更新人编码" v-trim/>
      <el-form-item label="楼宇编号" prop="code">
        <el-input v-model="form.code" placeholder="请输入楼宇编号" v-trim />
      </el-form-item>
      <el-form-item label="更新时间" prop="editDate">
        <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="请输入更新时间"></el-date-picker>
      <el-form-item label="详细地址" prop="addr">
        <el-input v-model="form.addr" placeholder="请输入详细地址" v-trim />
      </el-form-item>
      <el-form-item label="是否删除0否 1是" prop="isdeleted">
        <el-input v-model="form.isdeleted" placeholder="请输入是否删除0否 1是" v-trim/>
      <el-form-item label="楼宇简介" prop="remark">
        <el-input type="textarea" :rows="4" v-model="form.remark" placeholder="请输入" />
      </el-form-item>
      <el-form-item label="名称" prop="name">
        <el-input v-model="form.name" placeholder="请输入名称" v-trim/>
      <el-form-item label="建筑面积(m²)" prop="area">
        <el-input v-model="form.area" placeholder="请输入简直面积(m²)" v-trim />
      </el-form-item>
      <el-form-item label="备注" prop="remark">
        <el-input v-model="form.remark" placeholder="请输入备注" v-trim/>
      <el-form-item label="产权面积(m²)" prop="cqArea">
        <el-input v-model="form.cqArea" placeholder="请输入产权面积(m²)" v-trim />
      </el-form-item>
      <el-form-item label="状态 0启用 1禁用" prop="status">
        <el-input v-model="form.status" placeholder="请输入状态 0启用 1禁用" v-trim/>
      </el-form-item>
      <el-form-item label="排序码" prop="sortnum">
        <el-input v-model="form.sortnum" placeholder="请输入排序码" v-trim/>
      </el-form-item>
      <el-form-item label="图标" prop="imgurl">
        <el-input v-model="form.imgurl" placeholder="请输入图标" v-trim/>
      </el-form-item>
      <el-form-item label="编号" prop="code">
        <el-input v-model="form.code" placeholder="请输入编号" v-trim/>
      </el-form-item>
      <el-form-item label="地址" prop="addr">
        <el-input v-model="form.addr" placeholder="请输入地址" v-trim/>
      </el-form-item>
      <el-form-item label="面积(平方米)" prop="area">
        <el-input v-model="form.area" placeholder="请输入面积(平方米)" v-trim/>
      </el-form-item>
      <el-form-item label="产权面积(平方米)" prop="cqArea">
        <el-input v-model="form.cqArea" placeholder="请输入产权面积(平方米)" v-trim/>
      </el-form-item>
      <el-form-item label="可租面积(平方米)" prop="rentArea">
        <el-input v-model="form.rentArea" placeholder="请输入可租面积(平方米)" v-trim/>
      <el-form-item label="可租面积(m²)" prop="rentArea">
        <el-input v-model="form.rentArea" placeholder="请输入可租面积(m²)" v-trim />
      </el-form-item>
      <el-form-item label="地上层数" prop="onFloor">
        <el-input v-model="form.onFloor" placeholder="请输入地上层数" v-trim/>
      </el-form-item>
      <el-form-item label="地下层数" prop="underFloor">
        <el-input v-model="form.underFloor" placeholder="请输入地下层数" v-trim/>
      </el-form-item>
      <el-form-item label="所属项目编码(关联yw_project)" prop="projectId">
        <el-input v-model="form.projectId" placeholder="请输入所属项目编码(关联yw_project)" v-trim/>
      </el-form-item>
    </el-form>
  </GlobalWindow>
@@ -67,6 +40,7 @@
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import { getProjectList } from '@/api/project/ywProject'
export default {
  name: 'OperaYwBuildingWindow',
  extends: BaseOpera,
@@ -97,7 +71,14 @@
      },
      // éªŒè¯è§„则
      rules: {
      }
      },
      projectList: [],
      rules: {
        projectId: [{ required: true, message: '请选择项目名称' }],
        name: [{ required: true, message: '请输入楼宇名称' }],
        area: [{ required: true, message: '请输入建筑面积' }],
        cqArea: [{ required: true, message: '请输入产权面积' }],
      },
    }
  },
  created () {
@@ -105,6 +86,13 @@
      api: '/project/ywBuilding',
      'field.id': 'id'
    })
  },
  methods: {
    getProject() {
      getProjectList({}).then(res => {
        this.projectList = res || []
      })
    }
  }
}
</script>
admin/src/views/project/components/OperaYwProjectWindow.vue
@@ -16,8 +16,8 @@
      <el-form-item label="详细地址" prop="addr">
        <el-input v-model="form.addr" placeholder="请输入详细地址"/>
      </el-form-item>
      <el-form-item label="项目简介" prop="desc">
        <el-input type="textarea" :rows="4" v-model="form.desc" placeholder="请输入"/>
      <el-form-item label="项目简介" prop="remark">
        <el-input type="textarea" :rows="4" v-model="form.remark" placeholder="请输入"/>
      </el-form-item>
    </el-form>
  </GlobalWindow>
@@ -50,7 +50,9 @@
      },
      // éªŒè¯è§„则
      rules: {
      }
        name: [{ required: true, message: '请输入项目名称', trigger: 'blur' }]
      },
      projectList: []
    }
  },
  created () {
@@ -58,6 +60,8 @@
      api: '/project/ywProject',
      'field.id': 'id'
    })
  },
  methods: {
  }
}
</script>
admin/src/views/project/components/OperaYwRoomWindow.vue
@@ -1,67 +1,37 @@
<template>
  <GlobalWindow
    :title="title"
    :visible.sync="visible"
    :confirm-working="isWorking"
    @confirm="confirm"
  >
  <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm">
    <el-form :model="form" ref="form" :rules="rules">
      <el-form-item label="创建人编码" prop="creator">
        <el-input v-model="form.creator" placeholder="请输入创建人编码" v-trim/>
      <el-form-item label="所属项目" prop="projectId">
        <el-select v-model="form.projectId" @change="changeProject" placeholder="请选择项目" clearable>
          <el-option v-for="item in projectList" :key="item.id" :label="item.name" :value="item.id"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="创建时间" prop="createDate">
        <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="请输入创建时间"></el-date-picker>
      <el-form-item label="所属楼宇" prop="buildingId">
        <el-select v-model="form.buildingId" placeholder="请选择楼宇" clearable>
          <el-option v-for="item in buildList" :key="item.id" :label="item.name" :value="item.id"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="更新人编码" prop="editor">
        <el-input v-model="form.editor" placeholder="请输入更新人编码" v-trim/>
      </el-form-item>
      <el-form-item label="更新时间" prop="editDate">
        <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="请输入更新时间"></el-date-picker>
      </el-form-item>
      <el-form-item label="是否删除0否 1是" prop="isdeleted">
        <el-input v-model="form.isdeleted" placeholder="请输入是否删除0否 1是" v-trim/>
      </el-form-item>
      <el-form-item label="名称" prop="name">
        <el-input v-model="form.name" placeholder="请输入名称" v-trim/>
      </el-form-item>
      <el-form-item label="备注" prop="remark">
        <el-input v-model="form.remark" placeholder="请输入备注" v-trim/>
      </el-form-item>
      <el-form-item label="状态 0启用 1禁用" prop="status">
        <el-input v-model="form.status" placeholder="请输入状态 0启用 1禁用" v-trim/>
      </el-form-item>
      <el-form-item label="排序码" prop="sortnum">
        <el-input v-model="form.sortnum" placeholder="请输入排序码" v-trim/>
      </el-form-item>
      <el-form-item label="图标" prop="imgurl">
        <el-input v-model="form.imgurl" placeholder="请输入图标" v-trim/>
      </el-form-item>
      <el-form-item label="房间编号" prop="code">
        <el-input v-model="form.code" placeholder="请输入房间编号" v-trim/>
      <el-form-item label="楼层" prop="floor">
        <el-input v-model="form.floor" placeholder="请输入楼层" v-trim />
      </el-form-item>
      <el-form-item label="房号" prop="roomNum">
        <el-input v-model="form.roomNum" placeholder="请输入房号" v-trim/>
      </el-form-item>
      <el-form-item label="是否招商 0否 1是" prop="isInvestment">
        <el-input v-model="form.isInvestment" placeholder="请输入是否招商 0否 1是" v-trim/>
      <el-form-item label="房间编号" prop="code">
        <el-input v-model="form.code" placeholder="请输入房间编号" v-trim />
      </el-form-item>
      <el-form-item label="建筑面积(平方米)" prop="area">
        <el-input v-model="form.area" placeholder="请输入建筑面积(平方米)" v-trim/>
      <el-form-item label="是否招商" prop="isInvestment">
        <el-switch v-model="form.isInvestment" active-value="1" inactive-value="0">
        </el-switch>
      </el-form-item>
      <el-form-item label="计费面积(平方米)" prop="feeArea">
        <el-input v-model="form.feeArea" placeholder="请输入计费面积(平方米)" v-trim/>
      <el-form-item label="建筑面积(m²)" prop="area">
        <el-input v-model="form.area" placeholder="请输入建筑面积(m²)" v-trim />
      </el-form-item>
      <el-form-item label="计租面积(平方米)" prop="rentArea">
        <el-input v-model="form.rentArea" placeholder="请输入计租面积(平方米)" v-trim/>
      <el-form-item label="计租面积(m²)" prop="rentArea">
        <el-input v-model="form.rentArea" placeholder="请输入计租面积(m²)" v-trim />
      </el-form-item>
      <el-form-item label="楼层数" prop="floor">
        <el-input v-model="form.floor" placeholder="请输入楼层数" v-trim/>
      </el-form-item>
      <el-form-item label="所属项目编码(关联yw_project)" prop="projectId">
        <el-input v-model="form.projectId" placeholder="请输入所属项目编码(关联yw_project)" v-trim/>
      </el-form-item>
      <el-form-item label="所属项目编码(关联yw_building)" prop="buildingId">
        <el-input v-model="form.buildingId" placeholder="请输入所属项目编码(关联yw_building)" v-trim/>
      <el-form-item label="计费面积(m²)" prop="feeArea">
        <el-input v-model="form.feeArea" placeholder="请输入计费面积(m²)" v-trim />
      </el-form-item>
    </el-form>
  </GlobalWindow>
@@ -70,6 +40,8 @@
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import { getProjectList } from '@/api/project/ywProject'
import { getBuildList } from '@/api/project/ywBuilding'
export default {
  name: 'OperaYwRoomWindow',
  extends: BaseOpera,
@@ -91,7 +63,7 @@
        imgurl: '',
        code: '',
        roomNum: '',
        isInvestment: '',
        isInvestment: '0',
        area: '',
        feeArea: '',
        rentArea: '',
@@ -101,7 +73,16 @@
      },
      // éªŒè¯è§„则
      rules: {
      }
        projectId: [{ required: true, message: '请选择项目名称' }],
        buildingId: [{ required: true, message: '请选择项目名称' }],
        floor: [{ required: true, message: '请选择楼层' }],
        roomNum: [{ required: true, message: '请输入房号' }],
        isInvestment: [{ required: true, message: '是否招商' }],
        area: [{ required: true, message: '请输入建筑面积' }],
        rentArea: [{ required: true, message: '请输入计租面积' }],
      },
      projectList: [],
      buildList: [],
    }
  },
  created () {
@@ -109,6 +90,20 @@
      api: '/project/ywRoom',
      'field.id': 'id'
    })
  },
  methods: {
    getProject() {
      getProjectList({}).then(res => {
        this.projectList = res || []
      })
    },
    changeProject(e) {
      this.form.buildingId = ''
      getBuildList({id: e}).then(res => {
        this.buildList = res || []
      })
    },
  }
}
</script>
admin/src/views/project/components/buildingDetail.vue
@@ -0,0 +1,101 @@
<template>
  <GlobalWindow title="楼宇详情" :showConfirm="false" :visible.sync="visible" width="800px">
    <div class="model_wrap">
      <div class="title">基础信息</div>
      <div class="list">
        <div class="item">
          <div class="la">所属项目</div>
          <div class="val">{{ info.projectName }}</div>
        </div>
        <div class="item">
          <div class="la">楼宇名称</div>
          <div class="val">{{ info.buildingName }}</div>
        </div>
        <div class="item">
          <div class="la">楼宇编码</div>
          <div class="val">{{ info.code }}</div>
        </div>
        <div class="item">
          <div class="la">详细地址</div>
          <div class="val">{{ info.addr }}</div>
        </div>
        <div class="item">
          <div class="la">楼宇简介</div>
          <div class="val">{{ info.remark }}</div>
        </div>
      </div>
      <div class="title">建筑面积</div>
      <div class="list">
        <div class="item">
          <div class="la">建筑面积</div>
          <div class="val">{{ info.area }}</div>
        </div>
        <div class="item">
          <div class="la">产权面积</div>
          <div class="val">{{ info.cqArea }}</div>
        </div>
        <div class="item">
          <div class="la">可租面积</div>
          <div class="val">{{ info.rentArea }}</div>
        </div>
      </div>
      <div class="title">楼层信息</div>
      <div class="list">
        <div class="item">
          <div class="la">地上层数</div>
          <div class="val">{{ info.onFloor }}</div>
        </div>
        <div class="item">
          <div class="la">地下层数</div>
          <div class="val">{{ info.underFloor }}</div>
        </div>
      </div>
    </div>
  </GlobalWindow>
</template>
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import { detailById } from '@/api/project/ywBuilding'
export default {
  extends: BaseOpera,
  components: { GlobalWindow },
  data() {
    return {
      // è¡¨å•数据
      info: {}
    }
  },
  created() {
  },
  methods: {
    getDetail(id) {
      detailById(id).then(res => {
        this.info = res
      })
    }
  }
}
</script>
<style lang="scss" scoped>
.model_wrap{
  .title{
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 16px;
  }
  .list{
    display: flex;
    flex-wrap: wrap;
    .item{
      width: 33.33%;
      margin-bottom: 8px;
      .la{
        color: #7f7f7f
      }
    }
  }
}
</style>
admin/src/views/project/components/floorLevel.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,111 @@
<template>
  <GlobalWindow title="楼层管理" :showConfirm="false" :visible.sync="visible" width="800px">
    <div class="head">
      <div class="title">楼层列表</div>
      <el-button type="primary" @click="editClick()">新建楼层</el-button>
    </div>
    <el-table :data="list" stripe>
      <el-table-column prop="id" label="楼层编码" min-width="100px"></el-table-column>
      <el-table-column prop="name" label="楼层名称" min-width="100px"></el-table-column>
      <el-table-column label="操作" min-width="100px">
        <template slot-scope="{row}">
          <el-button type="text" @click="$refs.operaYwBuildingWindow.open('编辑楼宇', row)" icon="el-icon-edit"
            v-permissions="['business:ywbuilding:update']">编辑</el-button>
          <el-button type="text" @click="deleteById(row)" icon="el-icon-delete"
            v-permissions="['business:ywbuilding:delete']">删除</el-button>
        </template>
      </el-table-column>
      <el-table-column prop="projectName" label="所属项目" min-width="100px"></el-table-column>
    </el-table>
    <div class="mt20">
      <Pagination @size-change="handleSizeChange" @current-change="getList" :pagination="pagination" />
    </div>
    <!--  -->
    <el-dialog :title="title" :visible.sync="showModal" :append-to-body="true" width="500px">
      <el-form :model="param" ref="form" :rules="rules">
        <el-form-item label="楼层编码" prop="code">
          <el-input v-model="param.code" placeholder="请输入楼层编码" v-trim />
        </el-form-item>
        <el-form-item label="楼层名称" prop="name">
          <el-input v-model="param.name" placeholder="请输入楼层名称" v-trim />
        </el-form-item>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button @click="showModal = false">取 æ¶ˆ</el-button>
        <el-button type="primary" @click="showModal = false">ç¡® å®š</el-button>
      </span>
    </el-dialog>
  </GlobalWindow>
</template>
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import { fetchList, detailById, deleteById, create } from '@/api/project/yeFloor'
import Pagination from '@/components/common/Pagination'
export default {
  extends: BaseOpera,
  components: { GlobalWindow, Pagination },
  data() {
    return {
      // è¡¨å•数据
      info: {},
      id: '',
      visible: false,
      showModal: false,
      list: [],
      pagination: {
        pageSize: 10,
        page: 1,
        total: 0
      },
      title: '新建楼层',
      param: {},
      rules: {
        name: [{ required: true, message: '请输入楼层名称' }],
        area: [{ required: true, message: '请输入楼层编码' }],
      },
    }
  },
  created() {
  },
  methods: {
    getList(buildingId) {
      const { pagination } = this
      let capacity = pagination.pageSize
      let page = pagination.page
      fetchList({ capacity, page, model: { buildingId } }).then(res => {
        this.list = res
      })
    },
    editClick(row) {
      if(row && row.id){
        this.title = '编辑楼层'
      }else{
        this.title = '新建楼层'
      }
      this.showModal = true
    },
    handleSizeChange(capacity) {
      this.pagination.pageSize = capacity
    }
  }
}
</script>
<style lang="scss" scoped>
.head {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
  .title {
    font-size: 16px;
    font-weight: 500;
  }
}
</style>
admin/src/views/project/housingList.vue
@@ -5,57 +5,57 @@
      <el-form-item label="房号" prop="roomNum">
        <el-input v-model="searchForm.roomNum" placeholder="请输入房号" @keypress.enter.native="search"></el-input>
      </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 label="所属项目" prop="projectId">
        <el-select v-model="searchForm.projectId" @change="changeProject" placeholder="请选择项目" clearable>
          <el-option v-for="item in projectList" :key="item.id" :label="item.name" :value="item.id"></el-option>
        </el-select>
      </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 label="所属楼宇" prop="buildingId">
        <el-select v-model="searchForm.buildingId" placeholder="请选择楼宇" clearable>
          <el-option v-for="item in buildList" :key="item.id" :label="item.name" :value="item.id"></el-option>
        </el-select>
      </el-form-item>
      <section>
        <el-button type="primary" @click="search">搜索</el-button>
        <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywroom:exportExcel']" @click="exportExcel">导出</el-button>
        <el-button type="primary" :loading="isWorking.export" v-permissions="['business:ywroom: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:ywroom:create', 'business:ywroom:delete']">
        <li><el-button type="primary" @click="$refs.operaYwRoomWindow.open('新建运维房源信息表')" icon="el-icon-plus" v-permissions="['business:ywroom:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete" v-permissions="['business:ywroom:delete']">删除</el-button></li>
        <li><el-button type="primary" @click="editClick()" icon="el-icon-plus"
            v-permissions="['business:ywroom:create']">新建</el-button></li>
        <li><el-button @click="deleteByIdInBatch" icon="el-icon-delete"
            v-permissions="['business:ywroom:delete']">删除</el-button></li>
      </ul>
      <el-table
        v-loading="isWorking.search"
        :data="tableData.list"
        stripe
        @selection-change="handleSelectionChange"
      >
      <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="name" label="名称" min-width="100px"></el-table-column>
        <el-table-column prop="roomNum" label="房号" min-width="100px"></el-table-column>
        <el-table-column prop="isInvestment" label="是否招商 0否 1是" min-width="100px"></el-table-column>
        <el-table-column prop="area" label="建筑面积(平方米)" min-width="100px"></el-table-column>
        <el-table-column prop="feeArea" label="计费面积(平方米)" min-width="100px"></el-table-column>
        <el-table-column prop="rentArea" label="计租面积(平方米)" min-width="100px"></el-table-column>
        <el-table-column prop="floor" 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
          v-if="containPermissions(['business:ywroom:update', 'business:ywroom:delete'])"
          label="操作"
          min-width="120"
          fixed="right"
        >
        <el-table-column prop="projectName" label="项目" min-width="100px"></el-table-column>
        <el-table-column prop="buildingName" label="楼宇" min-width="70px"></el-table-column>
        <el-table-column prop="floor" label="楼层" min-width="60px"></el-table-column>
        <el-table-column prop="roomNum" label="房号" min-width="60px"></el-table-column>
        <el-table-column prop="rentArea" label="计租面积(m²)" min-width="80px"></el-table-column>
        <el-table-column prop="feeArea" label="计费面积(m²)" min-width="80px"></el-table-column>
        <el-table-column prop="feeArea" label="租赁状态" min-width="80px"></el-table-column>
        <el-table-column prop="isInvestment" label="招商状态" min-width="60px">
          <template v-slot="scope">
            <span v-if="scope.row.isInvestment == 1" class="green">招商</span>
            <span v-else class="orange">不招商</span>
          </template>
        </el-table-column>
        <el-table-column v-if="containPermissions(['business:ywroom:update', 'business:ywroom:delete'])" label="操作"
          min-width="100" fixed="right">
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaYwRoomWindow.open('编辑运维房源信息表', row)" icon="el-icon-edit" v-permissions="['business:ywroom:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:ywroom:delete']">删除</el-button>
            <el-button type="text" @click="editClick(row)" icon="el-icon-edit"
              v-permissions="['business:ywroom:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete"
              v-permissions="['business:ywroom:delete']">删除</el-button>
          </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>
    <!-- æ–°å»º/修改 -->
@@ -68,6 +68,8 @@
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaYwRoomWindow from './components/OperaYwRoomWindow'
import { getProjectList } from '@/api/project/ywProject'
import { getBuildList } from '@/api/project/ywBuilding'
export default {
  name: 'YwRoom',
  extends: BaseTable,
@@ -96,7 +98,9 @@
        floor: '',
        projectId: '',
        buildingId: ''
      }
      },
      projectList: [],
      buildList: [],
    }
  },
  created () {
@@ -107,6 +111,28 @@
      'field.main': 'id'
    })
    this.search()
    this.getProject()
  },
  methods: {
    getProject() {
      getProjectList({}).then(res => {
        this.projectList = res || []
      })
    },
    changeProject(e) {
      this.searchForm.buildingId = ''
      getBuildList({ id: e }).then(res => {
        this.buildList = res || []
      })
    },
    editClick(row) {
      if (row && row.id) {
        this.$refs.operaYwRoomWindow.open('编辑房间')
      } else {
        this.$refs.operaYwRoomWindow.open('新建房间')
      }
      this.$refs.operaYwRoomWindow.getProject()
    },
  }
}
</script>
admin/src/views/project/projectList.vue
@@ -26,13 +26,13 @@
      >
      <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column prop="name" label="项目名称" min-width="100px"></el-table-column>
        <el-table-column prop="name" label="管理面积(m)" min-width="100px"></el-table-column>
        <el-table-column prop="name" label="项目名称" min-width="100px"></el-table-column>
        <el-table-column prop="" label="管理面积(m)" min-width="100px"></el-table-column>
        <el-table-column prop="roomNum" label="总房源数量(间)" min-width="100px"></el-table-column>
        <el-table-column prop="roomeRentNum" label="可招商房源数量(间)" min-width="100px"></el-table-column>
        <el-table-column
          v-if="containPermissions(['business:ywproject:update', 'business:ywproject:delete'])"
          label="操作"
          min-width="120"
          min-width="80"
          fixed="right"
        >
          <template slot-scope="{row}">
admin/src/views/workorder/components/OperaCategoryWindow.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,79 @@
<template>
  <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" width="600px" @close="close" @confirm="confirm">
    <el-form :model="form" ref="form" :rules="rules">
      <el-form-item label="所属分类" prop="parentId">
        <el-select :disabled="form.id" v-model="form.parentId" placeholder="不填为则一级分类">
          <el-option v-for="op in dataList" :key="op.id" :label="op.name" :value="op.id"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="分类名称" prop="name">
        <el-input v-model="form.name" placeholder="请输入分类名称" v-trim />
      </el-form-item>
      <!-- <el-form-item label="状态" prop="status">
        <el-select v-model="form.status" placeholder="请选择">
          <el-option label="启用" value="0"></el-option>
          <el-option label="禁用" value="1"></el-option>
        </el-select>
      </el-form-item> -->
      <el-form-item label="备注" prop="remark">
        <el-input type="textarea" v-model="form.remark" placeholder="请输入备注" v-trim />
      </el-form-item>
    </el-form>
  </GlobalWindow>
</template>
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
import { create, fetchCateList, getInfoById } from '@/api/business/category.js'
export default {
  name: 'OperaCategoryWindow',
  extends: BaseOpera,
  components: { GlobalWindow },
  data() {
    return {
      // è¡¨å•数据
      form: {
        parentId: null,
        name: '',
        remark: '',
        status: '',
        type: 1
      },
      // éªŒè¯è§„则
      rules: {
        name: [
          { required: true, message: '请输入二级分类名称', trigger: 'blur' }
        ],
        status: [
          { required: true, message: '请选择是否启用', trigger: 'change' }
        ]
      },
      dataList: []
    }
  },
  created() {
    this.config({
      api: '/business/category',
      'field.id': 'id'
    })
  },
  methods: {
    getList() {
      fetchCateList({}).then(res => {
        this.dataList = res || []
      })
    },
    close() {
      this.visible = false
      this.$emit('close')
    },
    getDetail(id) {
      getInfoById(id).then(res => {
        this.form = res
      })
    },
  }
}
</script>
admin/src/views/workorder/workorderCate.vue
@@ -0,0 +1,115 @@
<template>
  <TableLayout>
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:category:create', 'business:category:delete']">
        <li><el-button type="primary" @click="handleEdit()" icon="el-icon-plus"
            v-permissions="['business:category:create']">新建</el-button></li>
        <li v-permissions="['business:category:exportExcel']"><el-button type="primary"
            @click="exportExcel">导出</el-button></li>
      </ul>
      <el-table row-key="id" :tree-props="{ children: 'childCategoryList' }" v-loading="isWorking.search"
        :data="dataList" stripe @selection-change="handleSelectionChange">
        <el-table-column prop="name" 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="状态" min-width="100px">
                  <template slot-scope="{row}">
                      <span v-if="row.status === 0">启用</span>
                      <span v-if="row.status === 1">禁用</span>
                  </template>
</el-table-column> -->
        <el-table-column prop="createDate" label="创建时间" min-width="100px"></el-table-column>
        <el-table-column v-if="containPermissions(['business:category:update', 'business:category:delete'])" label="操作"
          min-width="120" fixed="right">
          <template slot-scope="{row}">
            <el-button type="text" @click="handleEdit(row)" icon="el-icon-edit"
              v-permissions="['business:category:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete"
              v-permissions="['business:category:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
      <pagination @size-change="handleSizeChange" @current-change="getList" :pagination="tableData.pagination">
      </pagination>
    </template>
    <!-- æ–°å»º/修改 -->
    <OperaCategoryWindow v-if="isShowEdit" @close="isShowEdit = false" ref="operaCategoryWindow" @success="getList" />
  </TableLayout>
</template>
<script>
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaCategoryWindow from './components/OperaCategoryWindow'
import { fetchList, deleteById } from '@/api/business/category.js'
export default {
  name: 'Category',
  extends: BaseTable,
  components: { TableLayout, Pagination, OperaCategoryWindow },
  data() {
    return {
      // æœç´¢
      filters: {
        parentId: ''
      },
      isShowEdit: false,
      loading: false,
      pagination: {
        pageSize: 10,
        page: 1,
        total: 0,
      },
      dataList: []
    }
  },
  created() {
    this.config({
      module: '车辆信息表',
      api: '/business/category',
      'field.id': 'id',
      'field.main': 'id'
    })
    this.getList()
  },
  methods: {
    handleEdit(row) {
      this.isShowEdit = true
      let str = row && row.id ? '编辑工单分类' : '新建工单分类'
      this.$nextTick(() => {
        this.$refs.operaCategoryWindow.open(str)
        this.$refs.operaCategoryWindow.getList()
        if (row && row.id) {
          this.$refs.operaCategoryWindow.getDetail(row.id)
        }
      })
    },
    deleteById(row) {
      this.$confirm(`您确认要删除该分类吗`, '温馨提示', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
      }).then(() => {
        deleteById(row.id).then(res => {
          this.getList()
        })
      })
    },
    getList() {
      const { pagination, filters } = this
      this.loading = true
      fetchList({
        model: { ...filters },
        capacity: pagination.pageSize,
        page: pagination.page,
      }).then(res => {
        this.loading = false
        this.dataList = res.records || []
        this.pagination.total = res.total || 0
      }, () => {
        this.loading = false
      })
    },
  }
}
</script>
admin/src/views/workorder/workorderList.vue
@@ -2,42 +2,6 @@
  <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>
      <el-form-item label="创建人编码" prop="creator">
        <el-input v-model="searchForm.creator" placeholder="请输入创建人编码" @keypress.enter.native="search"></el-input>
      </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>
      <el-form-item label="更新人编码" prop="editor">
        <el-input v-model="searchForm.editor" placeholder="请输入更新人编码" @keypress.enter.native="search"></el-input>
      </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>
      <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>
@@ -47,47 +11,8 @@
      <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>
@@ -98,7 +23,7 @@
    <!-- è¡¨æ ¼å’Œåˆ†é¡µ -->
    <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 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>
      </ul>
      <el-table
@@ -108,18 +33,9 @@
        @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>
@@ -128,14 +44,10 @@
        <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'])"
@@ -144,7 +56,7 @@
          fixed="right"
        >
          <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="$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>
          </template>
        </el-table-column>