mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-04 12:18:42 +08:00 
			
		
		
		
	【新增】【优化】新建租户时,自动创建对应的管理员账号、角色等基础信息
This commit is contained in:
		@@ -18,10 +18,6 @@
 | 
			
		||||
                       :key="dict.value" :label="dict.label" :value="dict.value"/>
 | 
			
		||||
        </el-select>
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
      <el-form-item label="创建时间">
 | 
			
		||||
        <el-date-picker v-model="dateRangeCreateTime" size="small" style="width: 240px" value-format="yyyy-MM-dd"
 | 
			
		||||
                        type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" />
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
      <el-form-item>
 | 
			
		||||
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
 | 
			
		||||
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
 | 
			
		||||
@@ -45,8 +41,24 @@
 | 
			
		||||
    <el-table v-loading="loading" :data="list">
 | 
			
		||||
      <el-table-column label="租户编号" align="center" prop="id" />
 | 
			
		||||
      <el-table-column label="租户名" align="center" prop="name" />
 | 
			
		||||
      <el-table-column label="租户套餐" align="center" prop="packageId">
 | 
			
		||||
        <template slot-scope="scope">
 | 
			
		||||
          <el-tag> {{getPackageName(scope.row.packageId)}} </el-tag>
 | 
			
		||||
        </template>
 | 
			
		||||
      </el-table-column>
 | 
			
		||||
      <el-table-column label="联系人" align="center" prop="contactName" />
 | 
			
		||||
      <el-table-column label="联系手机" align="center" prop="contactMobile" />
 | 
			
		||||
      <el-table-column label="账号额度" align="center" prop="accountCount">
 | 
			
		||||
        <template slot-scope="scope">
 | 
			
		||||
          <el-tag> {{scope.row.accountCount}} </el-tag>
 | 
			
		||||
        </template>
 | 
			
		||||
      </el-table-column>
 | 
			
		||||
      <el-table-column label="过期时间" align="center" prop="expireTime" width="180">
 | 
			
		||||
        <template slot-scope="scope">
 | 
			
		||||
          <span>{{ parseTime(scope.row.expireTime) }}</span>
 | 
			
		||||
        </template>
 | 
			
		||||
      </el-table-column>
 | 
			
		||||
      <el-table-column label="绑定域名" align="center" prop="domain" width="180" />
 | 
			
		||||
      <el-table-column label="租户状态" align="center" prop="status">
 | 
			
		||||
        <template slot-scope="scope">
 | 
			
		||||
          <dict-tag :type="DICT_TYPE.COMMON_STATUS" :value="scope.row.status"/>
 | 
			
		||||
@@ -76,12 +88,33 @@
 | 
			
		||||
        <el-form-item label="租户名" prop="name">
 | 
			
		||||
          <el-input v-model="form.name" placeholder="请输入租户名" />
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
        <el-form-item label="租户套餐" prop="packageId">
 | 
			
		||||
          <el-select v-model="form.packageId" placeholder="请选择租户套餐" clearable size="small">
 | 
			
		||||
            <el-option v-for="item in packageList" :key="item.id" :label="item.name" :value="item.id"/>
 | 
			
		||||
          </el-select>
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
        <el-form-item label="联系人" prop="contactName">
 | 
			
		||||
          <el-input v-model="form.contactName" placeholder="请输入联系人" />
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
        <el-form-item label="联系手机" prop="contactMobile">
 | 
			
		||||
          <el-input v-model="form.contactMobile" placeholder="请输入联系手机" />
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
        <el-form-item v-if="form.id === undefined" label="用户名称" prop="username">
 | 
			
		||||
          <el-input v-model="form.username" placeholder="请输入用户名称" />
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
        <el-form-item v-if="form.id === undefined" label="用户密码" prop="password">
 | 
			
		||||
          <el-input v-model="form.password" placeholder="请输入用户密码" type="password" show-password />
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
        <el-form-item label="账号额度" prop="accountCount">
 | 
			
		||||
          <el-input-number v-model="form.accountCount" placeholder="请输入账号额度" controls-position="right" :min="0" />
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
        <el-form-item label="过期时间" prop="expireTime">
 | 
			
		||||
          <el-date-picker clearable size="small" v-model="form.expireTime" type="date"
 | 
			
		||||
                          value-format="timestamp" placeholder="请选择过期时间" />
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
        <el-form-item label="绑定域名" prop="domain">
 | 
			
		||||
          <el-input v-model="form.domain" placeholder="请输入绑定域名" />
 | 
			
		||||
        </el-form-item>
 | 
			
		||||
        <el-form-item label="租户状态" prop="status">
 | 
			
		||||
          <el-radio-group v-model="form.status">
 | 
			
		||||
            <el-radio v-for="dict in this.getDictDatas(DICT_TYPE.COMMON_STATUS)"
 | 
			
		||||
@@ -100,6 +133,7 @@
 | 
			
		||||
<script>
 | 
			
		||||
import { createTenant, updateTenant, deleteTenant, getTenant, getTenantPage, exportTenantExcel } from "@/api/system/tenant";
 | 
			
		||||
import { CommonStatusEnum } from '@/utils/constants'
 | 
			
		||||
import {getTenantPackageList} from "@/api/system/tenantPackage";
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: "Tenant",
 | 
			
		||||
@@ -117,6 +151,8 @@ export default {
 | 
			
		||||
      total: 0,
 | 
			
		||||
      // 租户列表
 | 
			
		||||
      list: [],
 | 
			
		||||
      // 租户套餐列表
 | 
			
		||||
      packageList: [],
 | 
			
		||||
      // 弹出层标题
 | 
			
		||||
      title: "",
 | 
			
		||||
      // 是否显示弹出层
 | 
			
		||||
@@ -136,13 +172,23 @@ export default {
 | 
			
		||||
      // 表单校验
 | 
			
		||||
      rules: {
 | 
			
		||||
        name: [{ required: true, message: "租户名不能为空", trigger: "blur" }],
 | 
			
		||||
        packageId: [{ required: true, message: "租户套餐不能为空", trigger: "blur" }],
 | 
			
		||||
        contactName: [{ required: true, message: "联系人不能为空", trigger: "blur" }],
 | 
			
		||||
        status: [{ required: true, message: "租户状态(0正常 1停用)不能为空", trigger: "blur" }],
 | 
			
		||||
        status: [{ required: true, message: "租户状态不能为空", trigger: "blur" }],
 | 
			
		||||
        accountCount: [{ required: true, message: "账号额度不能为空", trigger: "blur" }],
 | 
			
		||||
        expireTime: [{ required: true, message: "过期时间不能为空", trigger: "blur" }],
 | 
			
		||||
        domain: [{ required: true, message: "绑定域名不能为空", trigger: "blur" }],
 | 
			
		||||
        username: [{ required: true, message: "用户名称不能为空", trigger: "blur" }],
 | 
			
		||||
        password: [{ required: true, message: "用户密码不能为空", trigger: "blur" }],
 | 
			
		||||
      }
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  created() {
 | 
			
		||||
    this.getList();
 | 
			
		||||
    // 获得租户套餐列表
 | 
			
		||||
    getTenantPackageList().then(response => {
 | 
			
		||||
      this.packageList = response.data;
 | 
			
		||||
    })
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    /** 查询列表 */
 | 
			
		||||
@@ -168,8 +214,12 @@ export default {
 | 
			
		||||
      this.form = {
 | 
			
		||||
        id: undefined,
 | 
			
		||||
        name: undefined,
 | 
			
		||||
        packageId: undefined,
 | 
			
		||||
        contactName: undefined,
 | 
			
		||||
        contactMobile: undefined,
 | 
			
		||||
        accountCount: undefined,
 | 
			
		||||
        expireTime: undefined,
 | 
			
		||||
        domain: undefined,
 | 
			
		||||
        status: CommonStatusEnum.ENABLE,
 | 
			
		||||
      };
 | 
			
		||||
      this.resetForm("form");
 | 
			
		||||
@@ -249,6 +299,15 @@ export default {
 | 
			
		||||
          this.$download.excel(response, '租户.xls');
 | 
			
		||||
          this.exportLoading = false;
 | 
			
		||||
      }).catch(() => {});
 | 
			
		||||
    },
 | 
			
		||||
    /** 套餐名格式化 */
 | 
			
		||||
    getPackageName(packageId) {
 | 
			
		||||
      for (const item of this.packageList) {
 | 
			
		||||
        if (item.id === packageId) {
 | 
			
		||||
          return item.name;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      return '未知套餐';
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user