Newer
Older
smartwell_front / src / views / system / tenant / tenantList.vue
<template>
  <app-container>
    <search-area size="small" @search="fetchData">
      <!--一般查询条件-->
      <search-item>
        <el-input v-model="listQuery.tenantName" size="small" placeholder="项目名称" clearable />
      </search-item>
    </search-area>
    <normal-table ref="normalTable" :data="list" :total="total" :query="listQuery" :columns="columns"
      :list-loading="listLoading" :options="options" size="small" @change="changePage">
      <template slot="btns">
        <el-button size="small" @click="add">
          新增
        </el-button>
      </template>
      <template slot="columns">
        <el-table-column label="操作" width="140" align="center">
          <template slot-scope="scope">
            <el-button type="text" size="small" @click="edit(scope.row)">
              修改
            </el-button>
            <el-button type="text" size="small" @click="del(scope.row)">
              删除
            </el-button>
            <el-button type="text" size="small" @click="makeDep(scope.row)">
              关联组织
            </el-button>
          </template>
        </el-table-column>
      </template>
    </normal-table>
    <edit-tenant ref="editTenant" @watchChild="fetchData" />
    <relate-dept ref="relateDept" @watchChild="fetchData" />
  </app-container>
</template>

<script>
import EditTenant from '@/views/system/tenant/components/editTenant'
import { getTenantList, delTenantSys, getTenantListPage } from '@/api/system/tenant'
import RelateDept from '@/views/system/tenant/components/relateDept'

export default {
  name: 'TenantList',
  components: { RelateDept, EditTenant },
  data() {
    return {
      // 查询条件
      listQuery: {
        tenantName: '',
        offset: 1,
        limit: 20,
        sort: 'id',
        order: 'asc'
      },
      total: 0,
      columns: [
        {
          text: '项目编码',
          value: 'tenantCode',
          align: 'center'
        },
        {
          text: '项目名称',
          value: 'tenantName',
          align: 'center'
        },
        {
          text: '项目联系人',
          value: 'linkPerson',
          align: 'center'
        },
        {
          text: '联系人电话',
          value: 'tel',
          align: 'center'
        },
        {
          text: '历史数据保存天数',
          value: 'clearday',
          align: 'center'
        },
        {
          text: '关联组织',
          value: 'deptName',
          align: 'center'
        }
      ], // 显示列
      listLoading: false,
      deviceModelList: [], // 设备类型列表
      list: [], // 表格数据列表
      // 是否需要序号列
      options: {
        needIndex: false
      }
    }
  },
  created() {
    this.fetchData()
  },
  mounted() {
    this.$refs.normalTable.initColumnsState(false)
  },
  methods: {
    // 获取数据列表
    fetchData() {
      this.listLoading = true
      getTenantListPage(this.listQuery).then(response => {
        this.list = response.data.rows
        this.total = response.data.total
        this.listLoading = false
      })
    },
    // 页数发生变化后的操作,可能是页码变化,可能是每页容量变化,此函数必写
    changePage(val) {
      if (val && val.size) {
        this.listQuery.limit = val.size
      }
      if (val && val.page) {
        this.listQuery.offset = val.page
      }
      this.fetchData()
    },
    del(row) {
      this.$confirm(
        '确定要删除所选项目吗?',
        '确认操作',
        {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }
      ).then(() => {
        delTenantSys(row.id).then(response => {
          if (response.code === 200) {
            this.$message.success('删除成功')
            this.fetchData()
          }
        })
      })
    },
    // 新增
    add() {
      this.$refs.editTenant.initDialog('create')
    },
    // 修改
    edit(row) {
      this.$refs.editTenant.initDialog('update', row)
    },
    // 绑定组织
    makeDep(row) {
      this.$refs.relateDept.initDialog(row)
    }
  }
}
</script>