linwe
2023-12-09 5e83cea689ade0a38aa1ae68362bd7da98958f44
出租人员信息完善
2 files modified
1269 ■■■■■ changed files
src/views/place/index.vue 7 ●●●●● patch | view | raw | blame | history
src/views/userHouse/hireInfoList.vue 1262 ●●●●● patch | view | raw | blame | history
src/views/place/index.vue
@@ -8,7 +8,14 @@
        <el-button size="small" icon="el-icon-delete" plain v-if="permission.place_delete" @click="handleDelete">删 除
        </el-button>
      </template>
      <template slot-scope="scope" slot="menu">
        <el-button type="text" icon="el-icon-circle-plus-outline" size="small" v-if="permission.househould_manager"
          @click="ManageTenants(scope.row)">场所维护
        </el-button>
      </template>
    </avue-crud>
  </basic-container>
</template>
src/views/userHouse/hireInfoList.vue
@@ -2,8 +2,8 @@
  <el-row>
    <el-col :span="24">
      <basic-container>
        <avue-crud :option="option" :search.sync="search" :table-loading="loading" :data="data" ref="crud" v-model="form"
          :permission="permissionList" @row-del="rowDel" @row-update="rowUpdate" @row-save="rowSave"
        <avue-crud :option="option" :search.sync="search" :table-loading="loading" :data="data" ref="crud"
          v-model="form" :permission="permissionList" @row-del="rowDel" @row-update="rowUpdate" @row-save="rowSave"
          :before-open="beforeOpen" :page.sync="page" @search-change="searchChange" @search-reset="searchReset"
          @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
          @refresh-change="refreshChange" @on-load="onLoad">
@@ -11,12 +11,16 @@
            <el-button type="danger" size="small" plain icon="el-icon-delete" v-if="permission.houseRental_delete"
              @click="handleDelete">删 除
            </el-button>
            <el-button type="success" size="small" plain v-if="permission.houseRental_import" icon="el-icon-upload2"
              @click="handleImport">导入
          </template>
          <template slot-scope="scope" slot="menu">
            <el-button type="text" icon="el-icon-circle-plus-outline" size="small" v-if="permission.househould_manager"
              @click="ManageTenants(scope.row)">管理租户
            </el-button>
            <el-button type="warning" size="small" plain v-if="permission.houseRental_export" icon="el-icon-download"
              @click="handleExport">导出
          <!--  <el-button type="success" size="small" plain icon="el-icon-upload2" @click="handleImport">导入
            </el-button>
            <el-button type="warning" size="small" plain icon="el-icon-download" @click="handleExport">导出
            </el-button> -->
          </template>
          <template slot-scope="{row}" slot="tenantName">
            <el-tag>{{ row.tenantName }}</el-tag>
@@ -31,17 +35,22 @@
            <el-tag>{{ row.userTypeName }}</el-tag>
          </template>
        </avue-crud>
        <el-dialog title="用户角色配置" append-to-body :visible.sync="roleBox" width="345px">
          <el-tree :data="roleGrantList" show-checkbox check-strictly default-expand-all node-key="id" ref="treeRole"
            :default-checked-keys="roleTreeObj" :props="props">
          </el-tree>
        <el-dialog title="租户管理" append-to-body :visible.sync="roleBox">
          <avue-crud :option="houseHoldOption" :search.sync="search" :table-loading="loading" :data="houseHold"
            ref="crud" v-model="houseHoldForm" :permission="permissionList" @row-del="houseHoldRowDel"
            @row-update="houseHoldRowUpdate" @row-save="houseHoldRowSave" :page.sync="holdPage"
            @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
            @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange"></avue-crud>
          <span slot="footer" class="dialog-footer">
            <el-button @click="roleBox = false">取 消</el-button>
            <el-button type="primary" @click="submitRole">确 定</el-button>
          </span>
        </el-dialog>
        <el-dialog title="用户数据导入" append-to-body :visible.sync="excelBox" width="555px">
          <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter">
            <template slot="excelTemplate">
@@ -57,589 +66,736 @@
</template>
<script>
import {
  getList,
  getPageList,
  remove,
  add,
  update,
  getDetatil
} from "@/api/userHouse/list/houseRental.js";
import {
  getList as getHouseList,
  getDetatil as getHouseDetail
} from "@/api/userHouse/list/house.js";
import {
  exportBlob
} from "@/api/common";
import {
  mapGetters
} from "vuex";
import {
  getToken
} from '@/util/auth';
import {
  downloadXls
} from "@/util/util";
import {
  dateNow
} from "@/util/date";
import NProgress from 'nprogress';
import 'nprogress/nprogress.css';
import func from "@/util/func";
import Qs from "qs";
import website from '@/config/website';
export default {
  data() {
    return {
      form: {},
      search: {},
      excelBox: false,
      selectionList: [],
      query: {},
      loading: true,
      page: {
        pageSize: 10,
        currentPage: 1,
        total: 0
      },
      option: {
        height: 'auto',
        calcHeight: 80,
        tip: false,
        searchShow: true,
        searchMenuSpan: 6,
        border: true,
        index: true,
        selection: true,
        viewBtn: true,
        addBtn: true,
        dialogType: 'drawer',
        dialogClickModal: false,
        column: [
          {
            label: "房屋",
            prop: "address",
            display: false
          },
          {
            label: "房屋",
            prop: "houseCode",
            hide: true,
            type: "table",
            children: {
              border: true,
              height: 400,
              searchShow: true,
              searchMenuSpan: 6,
              submitText: "确定",
              column: [
  import {
    getList as getHouseholdList,
    remove as householdDel,
    add as householdAdd,
    update as householdUpdate,
    getDetatil as getHouseholdDetatil
  } from "@/api/userHouse/list/houseHold.js";
  import {
    getList,
    getPageList,
    remove,
    add,
    update,
    getDetatil
  } from "@/api/userHouse/list/houseRental.js";
  import {
    getList as getHouseList,
    getDetatil as getHouseDetail
  } from "@/api/userHouse/list/house.js";
  import {
    exportBlob
  } from "@/api/common";
  import {
    mapGetters
  } from "vuex";
  import {
    getToken
  } from '@/util/auth';
  import {
    downloadXls
  } from "@/util/util";
  import {
    dateNow
  } from "@/util/date";
  import NProgress from 'nprogress';
  import 'nprogress/nprogress.css';
  import func from "@/util/func";
  import Qs from "qs";
  import website from '@/config/website';
  export default {
    data() {
      return {
        roleBox: false,
        form: {},
        search: {},
        excelBox: false,
        selectionList: [],
        query: {},
        loading: true,
        page: {
          pageSize: 10,
          currentPage: 1,
          total: 0
        },
        rowHouseHold: {},
        houseHoldForm: {
          relationship: 18,
          roleType: 2,
        },
        houseHold: [],
        holdPage: {
          pageSize: 100,
          currentPage: 1,
          total: 0
        },
        houseHoldOption: {
          height: 'auto',
          calcHeight: 80,
          tip: false,
          searchShow: true,
          searchMenuSpan: 6,
          border: true,
          index: true,
          // selection: true,
          viewBtn: true,
          addBtn: true,
          dialogType: 'drawer',
          dialogClickModal: false,
          column: [{
              label: "姓名",
              prop: "name",
              // search: true,
              searchSpan: 4,
            },
            {
              label: "电话",
              prop: "phoneNumber",
              // search: true,
              searchSpan: 4,
            },
            {
              label: "身份证号",
              prop: "idCard",
              // search: true,
              searchSpan: 4,
            },
            {
              label: "性别",
              prop: "gender",
              type: "select",
              dicData: [{
                  label: "男",
                  value: 1
                },
                {
                  label: "小区",
                  prop: "districtName",
                  search: true,
                  searchSpan: 4,
                  rules: [
                    {
                  label: "女",
                  value: 0
                },
                {
                  label: "未知",
                  value: 1
                }
              ],
            },
            {
              label: "关系",
              prop: "relationship",
              type: "select",
              dicUrl: "/api/blade-system/dict-biz/dictionary?code=roleRelation",
              dataType: "number",
              props: {
                label: "dictValue",
                value: "dictKey",
              },
              display: false
            },
            {
              label: "小区",
              prop: "aoiName",
              // search: true,
              searchSpan: 4,
              display: false
            },
            {
              label: "地址",
              prop: "address",
              display: false
            },
          ]
        },
        option: {
          height: 'auto',
          calcHeight: 80,
          tip: false,
          searchShow: true,
          searchMenuSpan: 6,
          border: true,
          index: true,
          selection: true,
          viewBtn: true,
          addBtn: true,
          dialogType: 'drawer',
          dialogClickModal: false,
          menuWidth: 280,
          column: [{
              label: "房屋",
              prop: "address",
              display: false
            },
            {
              label: "房屋",
              prop: "houseCode",
              hide: true,
              type: "table",
              children: {
                border: true,
                height: 400,
                searchShow: true,
                searchMenuSpan: 6,
                submitText: "确定",
                column: [{
                    label: "小区",
                    prop: "districtName",
                    search: true,
                    searchSpan: 4,
                    rules: [{
                      required: true,
                      message: "请选择小区",
                      trigger: "blur",
                    },
                  ],
                }, {
                  label: "地址",
                  prop: "address",
                  width: 180,
                  display: false
                },
                {
                  label: "手机",
                  prop: "phone",
                  rules: [
                    {
                    }, ],
                  }, {
                    label: "地址",
                    prop: "address",
                    width: 180,
                    display: false
                  },
                  {
                    label: "手机",
                    prop: "phone",
                    rules: [{
                      required: true,
                      message: "请输入绑定手机",
                      trigger: "blur",
                    },
                  ],
                },],
            },
            page: {
              pageSize: 10,
              currentPage: 1,
              total: 0
            },
            formatter: (row) => {
              console.log(row,888)
              if (!row.districtName) return ''
              return row.districtName + '-' + row.unit  + row.building  + row.room
            },
            onLoad: ({ page, value, data }, callback) => {
              //首次加载去查询对应的值
              if (value) {
                getHouseDetail({
                  houseCode: value
                }).then(res => {
                  var resData = res.data.data;
                  // 查询对应行数据
                  callback(resData)
                  return
                });
              }
              if (page) {
                this.loading = true;
                getHouseList(page.currentPage, page.pageSize, Object.assign(data)).then(res => {
                  const resData = res.data.data;
                  var total = resData.total;
                  var data = resData.records;
                  this.loading = false;
                  this.selectionClear();
                  //分页查询信息
                  callback({
                    total: total,
                    data: data
                  })
                });
              }
            },
            props: {
              label: 'address',
              value: 'houseCode'
            }
          },
          {
            label: "关系",
            prop: "tenantRelationship",
            search: true,
            searchSpan: 4,
            width: 100,
            type: "select",
            dicData: [
              {
                label: "同一户",
                value: 1
                    }, ],
                  },
                ],
              },
              {
                label: "不同一户",
                value: 2
              page: {
                pageSize: 10,
                currentPage: 1,
                total: 0
              },
              formatter: (row) => {
                console.log(row, 888)
                if (!row.districtName) return ''
                return row.districtName + '-' + row.unit + row.building + row.room
              },
              onLoad: ({
                page,
                value,
                data
              }, callback) => {
                //首次加载去查询对应的值
                if (value) {
                  getHouseDetail({
                    houseCode: value
                  }).then(res => {
                    var resData = res.data.data;
                    // 查询对应行数据
                    callback(resData)
                    return
                  });
                }
                if (page) {
                  this.loading = true;
                  getHouseList(page.currentPage, page.pageSize, Object.assign(data)).then(res => {
                    const resData = res.data.data;
                    var total = resData.total;
                    var data = resData.records;
                    this.loading = false;
                    this.selectionClear();
                    //分页查询信息
                    callback({
                      total: total,
                      data: data
                    })
                  });
                }
              },
              props: {
                label: 'address',
                value: 'houseCode'
              }
            ],
            rules: [
              {
            },
            {
              label: "关系",
              prop: "tenantRelationship",
              search: true,
              searchSpan: 4,
              width: 100,
              type: "select",
              dicData: [{
                  label: "同一户",
                  value: 1
                },
                {
                  label: "不同一户",
                  value: 2
                }
              ],
              rules: [{
                required: true,
                message: "请选择关系",
                trigger: "blur",
              },
            ],
          },
          {
            label: "房屋状态",
            prop: "houseStatus",
            search: true,
            searchSpan: 4,
            width: 100,
            type: "select",
            dicData: [
              {
                label: "部分出租",
                value: 1
              },
              {
                label: "全部出租",
                value: 2
              }
            ],
            rules: [
              {
              }, ],
            },
            {
              label: "房屋状态",
              prop: "houseStatus",
              search: true,
              searchSpan: 4,
              width: 100,
              type: "select",
              dicData: [{
                  label: "部分出租",
                  value: 1
                },
                {
                  label: "全部出租",
                  value: 2
                }
              ],
              rules: [{
                required: true,
                message: "请选择房屋状态",
                trigger: "blur",
              },
            ],
          },
          {
            label: "用途",
            prop: "rentalUse",
            type: "select",
            search: true,
            searchSpan: 3,
            dataType: "number",
            width: 100,
            dicUrl: "/api/blade-system/dict-biz/dictionary?code=rentalUseType",
            props: {
              label: "dictValue",
              value: "dictKey",
              }, ],
            },
            rules: [
              {
            {
              label: "用途",
              prop: "rentalUse",
              type: "select",
              search: true,
              searchSpan: 3,
              dataType: "number",
              width: 100,
              dicUrl: "/api/blade-system/dict-biz/dictionary?code=rentalUseType",
              props: {
                label: "dictValue",
                value: "dictKey",
              },
              rules: [{
                required: true,
                message: "请选择用途",
                trigger: "blur",
              },
            ],
          },
          {
            label: "租房时间",
            prop: "rentalTime",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            width: 100,
            rules: [
              {
              }, ],
            },
            {
              label: "租房时间",
              prop: "rentalTime",
              type: "date",
              format: "yyyy-MM-dd",
              valueFormat: "yyyy-MM-dd",
              width: 100,
              rules: [{
                required: true,
                message: "请选择租房时间",
                trigger: "blur",
              },
            ],
          },
          {
            label: "到期时间",
            prop: "dueTime",
            type: "date",
            format: "yyyy-MM-dd",
            valueFormat: "yyyy-MM-dd",
            width: 100,
            rules: [
              {
              }, ],
            },
            {
              label: "到期时间",
              prop: "dueTime",
              type: "date",
              format: "yyyy-MM-dd",
              valueFormat: "yyyy-MM-dd",
              width: 100,
              rules: [{
                required: true,
                message: "请选择到期时间",
                trigger: "blur",
              },
            ],
          },
          {
            label: "租赁期限",
            prop: "dldType",
            width: 100,
            display: false,
            search: true,
            searchSpan: 3,
            type: "select",
            dicData: [
              {
                label: "长期",
                value: 1
              },
              {
                label: "中期",
                value: 2
              },
              {
                label: "短期",
                value: 3
              }
            ],
          },
          {
            label: "审核状态",
            prop: "auditStatus",
            type: "select",
            width: 80,
            search: true,
            searchSpan: 4,
            display: false,
            dicData: [
              {
                label: "已确认",
                value: 1
              },
              {
                label: "待确认",
                value: 0
              }
            ],
          },
          {
            label: "创建时间",
            prop: "createTime",
            display: false,
            width: 160,
          },
          {
            label: "合同",
            prop: "fileUrls",
            // align:'center',
            width: 80,
            type: "upload",
            listType: "picture-img",
            action: "/api/blade-resource/oss/endpoint/put-file",
            propsHttp: {
              res: "data",
              url: "link",
              }, ],
            },
            hide: true,
            span: 24,
          },
        ]
      },
      data: [],
      excelForm: {},
      excelOption: {
        submitBtn: false,
        emptyBtn: false,
        column: [{
          label: '模板上传',
          prop: 'excelFile',
          type: 'upload',
          drag: true,
          loadText: '模板上传中,请稍等',
          span: 24,
          propsHttp: {
            res: 'data'
          },
          tip: '请上传 .xls,.xlsx 标准格式文件',
          action: "/api/blade-system/user/import-user"
            {
              label: "租赁期限",
              prop: "dldType",
              width: 100,
              display: false,
              search: true,
              searchSpan: 3,
              type: "select",
              dicData: [{
                  label: "长期",
                  value: 1
                },
                {
                  label: "中期",
                  value: 2
                },
                {
                  label: "短期",
                  value: 3
                }
              ],
            },
            {
              label: "审核状态",
              prop: "auditStatus",
              type: "select",
              width: 80,
              search: true,
              searchSpan: 4,
              display: false,
              dicData: [{
                  label: "已确认",
                  value: 1
                },
                {
                  label: "待确认",
                  value: 0
                }
              ],
            },
            {
              label: "创建时间",
              prop: "createTime",
              display: false,
              width: 160,
            },
            {
              label: "合同",
              prop: "fileUrls",
              // align:'center',
              width: 80,
              type: "upload",
              listType: "picture-img",
              action: "/api/blade-resource/oss/endpoint/put-file",
              propsHttp: {
                res: "data",
                url: "link",
              },
              hide: true,
              span: 24,
            },
          ]
        },
        {
          label: "数据覆盖",
          prop: "isCovered",
          type: "switch",
          align: "center",
          width: 80,
          dicData: [{
            label: "否",
            value: 0
          },
          {
            label: "是",
            value: 1
          }
          ],
          value: 0,
          slot: true,
          rules: [{
            required: true,
            message: "请选择是否覆盖",
            trigger: "blur"
          }]
        },
        {
          label: '模板下载',
          prop: 'excelTemplate',
          formslot: true,
          span: 24,
        data: [],
        excelForm: {},
        excelOption: {
          submitBtn: false,
          emptyBtn: false,
          column: [{
              label: '模板上传',
              prop: 'excelFile',
              type: 'upload',
              drag: true,
              loadText: '模板上传中,请稍等',
              span: 24,
              propsHttp: {
                res: 'data'
              },
              tip: '请上传 .xls,.xlsx 标准格式文件',
              action: "/api/blade-system/user/import-user"
            },
            {
              label: "数据覆盖",
              prop: "isCovered",
              type: "switch",
              align: "center",
              width: 80,
              dicData: [{
                  label: "否",
                  value: 0
                },
                {
                  label: "是",
                  value: 1
                }
              ],
              value: 0,
              slot: true,
              rules: [{
                required: true,
                message: "请选择是否覆盖",
                trigger: "blur"
              }]
            },
            {
              label: '模板下载',
              prop: 'excelTemplate',
              formslot: true,
              span: 24,
            }
          ]
        }
        ]
      }
    };
  },
  watch: {
  },
  computed: {
    ...mapGetters(["userInfo", "permission"]),
    permissionList() {
      return {
        addBtn: this.vaildData(this.permission.houseRental_add, true),
        viewBtn: this.vaildData(this.permission.houseRental_view, true),
        delBtn: this.vaildData(this.permission.houseRental_delete, true),
        editBtn: this.vaildData(this.permission.houseRental_edit, true)
      };
    }
  },
  mounted() {
  },
  methods: {
    rowSave(row, done, loading) {
      if (row.fileUrls.length > 0) {
        var urls = []
        var split = row.fileUrls.split(",");
        split.forEach(url => {
          var names = url.split("jczz/");
          urls.push(names[1])
        })
        row.fileUrls = urls.join(",")
    },
    watch: {},
    computed: {
      ...mapGetters(["userInfo", "permission"]),
      permissionList() {
        return {
          addBtn: this.vaildData(this.permission.houseRental_add, true),
          viewBtn: this.vaildData(this.permission.houseRental_view, true),
          delBtn: this.vaildData(this.permission.houseRental_delete, true),
          editBtn: this.vaildData(this.permission.houseRental_edit, true)
        };
      }
      add(row).then(() => {
        this.initFlag = false;
        this.onLoad(this.page);
        this.$message({
          type: "success",
          message: "操作成功!"
        });
        done();
      }, error => {
        window.console.log(error);
        loading();
      });
    },
    rowUpdate(row, index, done, loading) {
      if (row.fileUrls.length > 0) {
        var urls = []
        var split = row.fileUrls.split(",");
        split.forEach(url => {
          var names = url.split("jczz/");
          urls.push(names[1])
        })
        row.fileUrls = urls.join(",")
      }
      update(row).then(() => {
        this.initFlag = false;
        this.onLoad(this.page);
        this.$message({
          type: "success",
          message: "操作成功!"
        });
        done();
      }, error => {
        window.console.log(error);
        loading();
      });
    },
    rowDel(row) {
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      })
        .then(() => {
          return remove(row.id);
        })
        .then(() => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!"
          });
        });
    },
    searchReset() {
      this.query = {};
      this.treeDeptId = '';
      this.onLoad(this.page);
    },
    searchChange(params, done) {
      this.query = params;
      this.page.currentPage = 1;
      this.onLoad(this.page, params);
      done();
    },
    selectionChange(list) {
      this.selectionList = list;
    },
    selectionClear() {
      this.selectionList = [];
      // this.$refs.crud.toggleSelection();
    },
    handleDelete() {
      if (this.selectionList.length === 0) {
        this.$message.warning("请选择至少一条数据");
        return;
      }
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      })
        .then(() => {
          return remove(this.ids);
        })
        .then(() => {
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!"
          });
          this.$refs.crud.toggleSelection();
        });
    },
    handleImport() {
      this.excelBox = true;
    },
    uploadAfter(res, done, loading, column) {
      window.console.log(column);
      this.excelBox = false;
      this.refreshChange();
      done();
    },
    handleExport() {
      const account = func.toStr(this.search.account);
      const realName = func.toStr(this.search.realName);
      this.$confirm("是否导出出租信息数据?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      }).then(() => {
        NProgress.start();
        var data = {
          ...this.query
    mounted() {},
    methods: {
      ManageTenants(item) {
        this.roleBox = true
        this.rowHouseHold = item
        this.onLoadHouseHold()
      },
      onLoadHouseHold() {
        let params = {
          housingRentalId: this.rowHouseHold.id,
        }
        data = Qs.stringify(data);
        exportBlob(
          `/api/blade-houseRental/houseRental/export-houseRental?${this.website.tokenHeader}=${getToken()}&` + data
        ).then(res => {
          downloadXls(res.data, `出租信息数据表${dateNow()}.xlsx`);
          NProgress.done();
        })
      });
    },
    handleTemplate() {
      exportBlob(`/api/blade-system/user/export-template?${this.website.tokenHeader}=${getToken()}`).then(res => {
        downloadXls(res.data, "出租信息数据模板.xlsx");
      })
    },
    beforeOpen(done, type) {
      if (["edit", "view"].includes(type)) {
        getDetatil(this.form.id).then(res => {
          this.form = res.data.data;
          if (this.form.fileUrls.length > 0) {
            var urls = []
            var names = this.form.fileUrls.split(",");
            names.forEach(name => {
              urls.push(website.minioUrl + name)
            })
            this.form.fileUrls = urls.join(",")
        getHouseholdList(this.holdPage.currentPage, this.holdPage.pageSize, Object.assign(params)).then(res => {
          const data = res.data.data;
          this.houseHold = data.records;
          this.loading = false;
          this.selectionClear();
        });
      },
      houseHoldRowSave(row, done, loading) {
        row.aoiName = this.rowHouseHold.aoiName
        row.address = this.rowHouseHold.address
        row.housingRentalId = this.rowHouseHold.id
        row.houseCode = this.rowHouseHold.houseCode
        householdAdd(row).then(() => {
          this.initFlag = false;
          this.onLoadHouseHold();
          this.$message({
            type: "success",
            message: "操作成功!"
          });
          done();
        }, error => {
          window.console.log(error);
          loading();
        });
      },
      rowSave(row, done, loading) {
        if (row.fileUrls.length > 0) {
          var urls = []
          var split = row.fileUrls.split(",");
          split.forEach(url => {
            var names = url.split("jczz/");
            urls.push(names[1])
          })
          row.fileUrls = urls.join(",")
        }
        add(row).then(() => {
          this.initFlag = false;
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!"
          });
          done();
        }, error => {
          window.console.log(error);
          loading();
        });
      },
      rowUpdate(row, index, done, loading) {
        if (row.fileUrls.length > 0) {
          var urls = []
          var split = row.fileUrls.split(",");
          split.forEach(url => {
            var names = url.split("jczz/");
            urls.push(names[1])
          })
          row.fileUrls = urls.join(",")
        }
        update(row).then(() => {
          this.initFlag = false;
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!"
          });
          done();
        }, error => {
          window.console.log(error);
          loading();
        });
      },
      houseHoldRowUpdate(row, index, done, loading) {
        householdUpdate(row).then(() => {
          this.initFlag = false;
          this.onLoadHouseHold();
          this.$message({
            type: "success",
            message: "操作成功!"
          });
          done();
        }, error => {
          window.console.log(error);
          loading();
        });
      },
      houseHoldRowDel(row) {
        this.$confirm("确定将选择数据删除?", {
            confirmButtonText: "确定",
            cancelButtonText: "取消",
            type: "warning"
          })
          .then(() => {
            return householdDel(row.id);
          })
          .then(() => {
            this.onLoadHouseHold();
            this.$message({
              type: "success",
              message: "操作成功!"
            });
          });
      },
      rowDel(row) {
        this.$confirm("确定将选择数据删除?", {
            confirmButtonText: "确定",
            cancelButtonText: "取消",
            type: "warning"
          })
          .then(() => {
            return remove(row.id);
          })
          .then(() => {
            this.onLoad(this.page);
            this.$message({
              type: "success",
              message: "操作成功!"
            });
          });
      },
      searchReset() {
        this.query = {};
        this.treeDeptId = '';
        this.onLoad(this.page);
      },
      searchChange(params, done) {
        this.query = params;
        this.page.currentPage = 1;
        this.onLoad(this.page, params);
        done();
      },
      selectionChange(list) {
        this.selectionList = list;
      },
      selectionClear() {
        this.selectionList = [];
        // this.$refs.crud.toggleSelection();
      },
      handleDelete() {
        if (this.selectionList.length === 0) {
          this.$message.warning("请选择至少一条数据");
          return;
        }
        this.$confirm("确定将选择数据删除?", {
            confirmButtonText: "确定",
            cancelButtonText: "取消",
            type: "warning"
          })
          .then(() => {
            return remove(this.ids);
          })
          .then(() => {
            this.onLoad(this.page);
            this.$message({
              type: "success",
              message: "操作成功!"
            });
            this.$refs.crud.toggleSelection();
          });
      },
      handleImport() {
        this.excelBox = true;
      },
      uploadAfter(res, done, loading, column) {
        window.console.log(column);
        this.excelBox = false;
        this.refreshChange();
        done();
      },
      handleExport() {
        const account = func.toStr(this.search.account);
        const realName = func.toStr(this.search.realName);
        this.$confirm("是否导出出租信息数据?", "提示", {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        }).then(() => {
          NProgress.start();
          var data = {
            ...this.query
          }
          data = Qs.stringify(data);
          exportBlob(
            `/api/blade-houseRental/houseRental/export-houseRental?${this.website.tokenHeader}=${getToken()}&` +
            data
          ).then(res => {
            downloadXls(res.data, `出租信息数据表${dateNow()}.xlsx`);
            NProgress.done();
          })
        });
      },
      handleTemplate() {
        exportBlob(`/api/blade-system/user/export-template?${this.website.tokenHeader}=${getToken()}`).then(res => {
          downloadXls(res.data, "出租信息数据模板.xlsx");
        })
      },
      beforeOpen(done, type) {
        if (["edit", "view"].includes(type)) {
          getDetatil(this.form.id).then(res => {
            this.form = res.data.data;
            if (this.form.fileUrls.length > 0) {
              var urls = []
              var names = this.form.fileUrls.split(",");
              names.forEach(name => {
                urls.push(website.minioUrl + name)
              })
              this.form.fileUrls = urls.join(",")
            }
          });
        }
        this.initFlag = true;
        done();
      },
      currentChange(currentPage) {
        this.page.currentPage = currentPage;
      },
      sizeChange(pageSize) {
        this.page.pageSize = pageSize;
      },
      refreshChange() {
        this.onLoad(this.page, this.query);
      },
      onLoad(page, params = {}) {
        this.loading = true;
        getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
          const data = res.data.data;
          this.page.total = data.total;
          this.data = data.records;
          this.data.forEach(item => {
            if (item.fileUrls.length > 0) {
              var urls = []
              var names = item.fileUrls.split(",");
              names.forEach(name => {
                urls.push(website.minioUrl + name)
              })
              item.fileUrls = urls.join(",")
            }
          })
          this.loading = false;
          this.selectionClear();
        });
      }
      this.initFlag = true;
      done();
    },
    currentChange(currentPage) {
      this.page.currentPage = currentPage;
    },
    sizeChange(pageSize) {
      this.page.pageSize = pageSize;
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
    },
    onLoad(page, params = {}) {
      this.loading = true;
      getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        this.data.forEach(item => {
          if (item.fileUrls.length > 0) {
            var urls = []
            var names = item.fileUrls.split(",");
            names.forEach(name => {
              urls.push(website.minioUrl + name)
            })
            item.fileUrls = urls.join(",")
          }
        })
        this.loading = false;
        this.selectionClear();
      });
    }
  }
};
  };
</script>
<style>
.box {
  height: 800px;
}
  .box {
    height: 800px;
  }
.el-scrollbar {
  height: 100%;
}
  .el-scrollbar {
    height: 100%;
  }
.box .el-scrollbar__wrap {
  overflow: scroll;
}
  .box .el-scrollbar__wrap {
    overflow: scroll;
  }
</style>