mirror of https://github.com/jeecgboot/jeecg-boot
				
				
				
			租户套餐管理优化体验
							parent
							
								
									7257dfe5ba
								
							
						
					
					
						commit
						d6c6a1c01f
					
				| 
						 | 
				
			
			@ -23,11 +23,7 @@ import org.jeecg.common.util.oConvertUtils;
 | 
			
		|||
import org.jeecg.config.mybatis.MybatisPlusSaasConfig;
 | 
			
		||||
import org.jeecg.modules.base.service.BaseCommonService;
 | 
			
		||||
import org.jeecg.modules.system.entity.*;
 | 
			
		||||
import org.jeecg.modules.system.service.ISysTenantPackService;
 | 
			
		||||
import org.jeecg.modules.system.service.ISysTenantService;
 | 
			
		||||
import org.jeecg.modules.system.service.ISysUserService;
 | 
			
		||||
import org.jeecg.modules.system.service.ISysUserTenantService;
 | 
			
		||||
import org.jeecg.modules.system.service.ISysDepartService;
 | 
			
		||||
import org.jeecg.modules.system.service.*;
 | 
			
		||||
import org.jeecg.modules.system.vo.SysUserTenantVo;
 | 
			
		||||
import org.jeecg.modules.system.vo.tenant.TenantDepartAuthInfo;
 | 
			
		||||
import org.jeecg.modules.system.vo.tenant.TenantPackModel;
 | 
			
		||||
| 
						 | 
				
			
			@ -148,6 +144,21 @@ public class SysTenantController {
 | 
			
		|||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * [QQYUN-11032]【jeecg】租户套餐管理增加初始化套餐包按钮
 | 
			
		||||
     * @param tenantId
 | 
			
		||||
     * @return
 | 
			
		||||
     * @author chenrui
 | 
			
		||||
     * @date 2025/2/6 18:24
 | 
			
		||||
     */
 | 
			
		||||
    @RequiresPermissions("system:tenant:syncDefaultPack")
 | 
			
		||||
    @PostMapping(value = "/syncDefaultPack")
 | 
			
		||||
    public Result<?> syncDefaultPack(@RequestParam(name="tenantId",required=true) Integer tenantId) {
 | 
			
		||||
        //同步默认产品包
 | 
			
		||||
        sysTenantPackService.syncDefaultPack(tenantId);
 | 
			
		||||
        return Result.OK("操作成功");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     *  编辑
 | 
			
		||||
     * @param
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,7 +1,7 @@
 | 
			
		|||
package org.jeecg.modules.system.service;
 | 
			
		||||
 | 
			
		||||
import org.jeecg.modules.system.entity.SysTenantPack;
 | 
			
		||||
import com.baomidou.mybatisplus.extension.service.IService;
 | 
			
		||||
import org.jeecg.modules.system.entity.SysTenantPack;
 | 
			
		||||
import org.jeecg.modules.system.entity.SysTenantPackUser;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
| 
						 | 
				
			
			@ -78,4 +78,13 @@ public interface ISysTenantPackService extends IService<SysTenantPack> {
 | 
			
		|||
     * @param id
 | 
			
		||||
     */
 | 
			
		||||
    void addTenantDefaultPack(Integer id);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 同步默认的套餐
 | 
			
		||||
     * for [QQYUN-11032]【jeecg】租户套餐管理增加初始化套餐包按钮
 | 
			
		||||
     * @param tenantId
 | 
			
		||||
     * @author chenrui
 | 
			
		||||
     * @date 2025/2/5 19:08
 | 
			
		||||
     */
 | 
			
		||||
    void syncDefaultPack(Integer tenantId);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,7 @@
 | 
			
		|||
package org.jeecg.modules.system.service.impl;
 | 
			
		||||
 | 
			
		||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 | 
			
		||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 | 
			
		||||
import org.apache.shiro.SecurityUtils;
 | 
			
		||||
import org.jeecg.common.constant.SymbolConstant;
 | 
			
		||||
import org.jeecg.common.constant.TenantConstant;
 | 
			
		||||
| 
						 | 
				
			
			@ -9,7 +10,6 @@ import org.jeecg.common.util.SpringContextUtils;
 | 
			
		|||
import org.jeecg.common.util.oConvertUtils;
 | 
			
		||||
import org.jeecg.modules.aop.TenantLog;
 | 
			
		||||
import org.jeecg.modules.system.entity.SysPackPermission;
 | 
			
		||||
import org.jeecg.modules.system.entity.SysTenant;
 | 
			
		||||
import org.jeecg.modules.system.entity.SysTenantPack;
 | 
			
		||||
import org.jeecg.modules.system.entity.SysTenantPackUser;
 | 
			
		||||
import org.jeecg.modules.system.mapper.SysPackPermissionMapper;
 | 
			
		||||
| 
						 | 
				
			
			@ -20,13 +20,12 @@ import org.jeecg.modules.system.service.ISysTenantPackService;
 | 
			
		|||
import org.springframework.beans.BeanUtils;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
 | 
			
		||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 | 
			
		||||
import org.springframework.transaction.annotation.Transactional;
 | 
			
		||||
 | 
			
		||||
import javax.sql.DataSource;
 | 
			
		||||
import java.util.Arrays;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import java.util.stream.Collectors;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			@ -237,19 +236,54 @@ public class SysTenantPackServiceImpl extends ServiceImpl<SysTenantPackMapper, S
 | 
			
		|||
        query.eq(SysTenantPack::getPackType,"default");
 | 
			
		||||
        List<SysTenantPack> sysTenantPacks = sysTenantPackMapper.selectList(query);
 | 
			
		||||
        for (SysTenantPack sysTenantPack: sysTenantPacks) {
 | 
			
		||||
            SysTenantPack pack = new SysTenantPack();
 | 
			
		||||
            BeanUtils.copyProperties(sysTenantPack,pack);
 | 
			
		||||
            pack.setTenantId(tenantId);
 | 
			
		||||
            pack.setPackType("custom");
 | 
			
		||||
            pack.setId("");
 | 
			
		||||
            sysTenantPackMapper.insert(pack);
 | 
			
		||||
            List<String> permissionsByPackId = sysPackPermissionMapper.getPermissionsByPackId(sysTenantPack.getId());
 | 
			
		||||
            for (String permission:permissionsByPackId) {
 | 
			
		||||
                SysPackPermission packPermission = new SysPackPermission();
 | 
			
		||||
                packPermission.setPackId(pack.getId());
 | 
			
		||||
                packPermission.setPermissionId(permission);
 | 
			
		||||
                sysPackPermissionMapper.insert(packPermission);
 | 
			
		||||
            }   
 | 
			
		||||
            syncDefaultPack2CurrentTenant(tenantId, sysTenantPack);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void syncDefaultPack(Integer tenantId) {
 | 
			
		||||
        // 查询默认套餐包
 | 
			
		||||
        LambdaQueryWrapper<SysTenantPack> query = new LambdaQueryWrapper<>();
 | 
			
		||||
        query.eq(SysTenantPack::getPackType,"default");
 | 
			
		||||
        List<SysTenantPack> sysDefaultTenantPacks = sysTenantPackMapper.selectList(query);
 | 
			
		||||
        // 查询当前租户套餐包
 | 
			
		||||
        query = new LambdaQueryWrapper<>();
 | 
			
		||||
        query.eq(SysTenantPack::getPackType,"custom");
 | 
			
		||||
        query.eq(SysTenantPack::getTenantId, tenantId);
 | 
			
		||||
        List<SysTenantPack> currentTenantPacks = sysTenantPackMapper.selectList(query);
 | 
			
		||||
        Map<String, SysTenantPack> currentTenantPackMap = new HashMap<String, SysTenantPack>();
 | 
			
		||||
        if (oConvertUtils.listIsNotEmpty(currentTenantPacks)) {
 | 
			
		||||
            currentTenantPackMap = currentTenantPacks.stream().collect(Collectors.toMap(SysTenantPack::getPackName, o -> o, (existing, replacement) -> existing));
 | 
			
		||||
        }
 | 
			
		||||
        // 添加不存在的套餐包
 | 
			
		||||
        for (SysTenantPack defaultPacks : sysDefaultTenantPacks) {
 | 
			
		||||
            if(!currentTenantPackMap.containsKey(defaultPacks.getPackName())){
 | 
			
		||||
                syncDefaultPack2CurrentTenant(tenantId, defaultPacks);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 同步默认套餐包到当前租户
 | 
			
		||||
     * for [QQYUN-11032]【jeecg】租户套餐管理增加初始化套餐包按钮
 | 
			
		||||
     * @param tenantId 目标租户
 | 
			
		||||
     * @param defaultPacks 默认套餐包
 | 
			
		||||
     * @author chenrui
 | 
			
		||||
     * @date 2025/2/5 19:41
 | 
			
		||||
     */
 | 
			
		||||
    private void syncDefaultPack2CurrentTenant(Integer tenantId, SysTenantPack defaultPacks) {
 | 
			
		||||
        SysTenantPack pack = new SysTenantPack();
 | 
			
		||||
        BeanUtils.copyProperties(defaultPacks,pack);
 | 
			
		||||
        pack.setTenantId(tenantId);
 | 
			
		||||
        pack.setPackType("custom");
 | 
			
		||||
        pack.setId("");
 | 
			
		||||
        sysTenantPackMapper.insert(pack);
 | 
			
		||||
        List<String> permissionsByPackId = sysPackPermissionMapper.getPermissionsByPackId(defaultPacks.getId());
 | 
			
		||||
        for (String permission:permissionsByPackId) {
 | 
			
		||||
            SysPackPermission packPermission = new SysPackPermission();
 | 
			
		||||
            packPermission.setPackId(pack.getId());
 | 
			
		||||
            packPermission.setPermissionId(permission);
 | 
			
		||||
            sysPackPermissionMapper.insert(packPermission);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
-- -author:chenrui---date:2025/1/16-----for:[QQYUN-10935]【jeecg】租户套餐管理优化---
 | 
			
		||||
UPDATE `sys_permission` SET `parent_id` = 'd7d6e2e4e2934f2c9385a623fd98c6f3', `name` = '租户初始套餐' WHERE `id` = '1668174661456171010';
 | 
			
		||||
 | 
			
		||||
-- -- author:chenrui---date:20250206--for: [QQYUN-11032]【jeecg】租户套餐管理增加初始化套餐包按钮 ---
 | 
			
		||||
INSERT INTO `sys_permission` (`id`, `parent_id`, `name`, `url`, `component`, `is_route`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_leaf`, `keep_alive`, `hidden`, `hide_tab`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`) VALUES ('1887447660072292354', '1280350452934307841', '初始化套餐包', NULL, NULL, 0, NULL, NULL, 2, 'system:tenant:syncDefaultPack', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'jeecg', '2025-02-06 18:26:04', 'jeecg', '2025-02-06 18:26:53', 0, 0, '1', 0);
 | 
			
		||||
| 
						 | 
				
			
			@ -26,12 +26,12 @@
 | 
			
		|||
          >邀请用户加入</a-button
 | 
			
		||||
        >
 | 
			
		||||
        <a-button
 | 
			
		||||
          preIcon="ant-design:plus-outlined"
 | 
			
		||||
          preIcon="ant-design:sliders-outlined"
 | 
			
		||||
          type="primary"
 | 
			
		||||
          @click="handlePack"
 | 
			
		||||
          style="margin-right: 5px"
 | 
			
		||||
          :disabled="selectedRowKeys.length === 0"
 | 
			
		||||
          >套餐</a-button
 | 
			
		||||
          >套餐管理</a-button
 | 
			
		||||
        >
 | 
			
		||||
        <a-button type="primary" @click="recycleBinClick" preIcon="ant-design:hdd-outlined">回收站</a-button>
 | 
			
		||||
      </template>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,7 +16,7 @@
 | 
			
		|||
        <TableAction :actions="getActions(record)" />
 | 
			
		||||
      </template>
 | 
			
		||||
    </BasicTable>
 | 
			
		||||
    <!--  产品包  -->
 | 
			
		||||
    <!--  套餐包  -->
 | 
			
		||||
    <TenantPackMenuModal @register="registerPackMenuModal" @success="handleSuccess"/>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
| 
						 | 
				
			
			@ -66,7 +66,7 @@
 | 
			
		|||
      {
 | 
			
		||||
        label: '删除',
 | 
			
		||||
        popConfirm: {
 | 
			
		||||
          title: '是否确认删除租户产品包',
 | 
			
		||||
          title: '是否确认删除租户套餐包',
 | 
			
		||||
          confirm: handleDelete.bind(null, record.id),
 | 
			
		||||
        },
 | 
			
		||||
      },
 | 
			
		||||
| 
						 | 
				
			
			@ -74,7 +74,7 @@
 | 
			
		|||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * 编辑产品包
 | 
			
		||||
   * 编辑套餐包
 | 
			
		||||
   */ 
 | 
			
		||||
  function handleAdd() {
 | 
			
		||||
    packModal(true, {
 | 
			
		||||
| 
						 | 
				
			
			@ -86,7 +86,7 @@
 | 
			
		|||
  
 | 
			
		||||
  
 | 
			
		||||
  /**
 | 
			
		||||
   * 删除默认产品包
 | 
			
		||||
   * 删除默认套餐包
 | 
			
		||||
   */ 
 | 
			
		||||
  async function handleDelete(id) {
 | 
			
		||||
    await deleteTenantPack({ ids: id }, handleSuccess);
 | 
			
		||||
| 
						 | 
				
			
			@ -104,7 +104,7 @@
 | 
			
		|||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * 新增产品包
 | 
			
		||||
   * 新增套餐包
 | 
			
		||||
   */
 | 
			
		||||
  async function handlePack() {
 | 
			
		||||
    if (unref(selectedRowKeys).length > 1) {
 | 
			
		||||
| 
						 | 
				
			
			@ -124,12 +124,12 @@
 | 
			
		|||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * 批量删除产品包
 | 
			
		||||
   * 批量删除套餐包
 | 
			
		||||
   */
 | 
			
		||||
  async function handlePackBatch() {
 | 
			
		||||
    Modal.confirm({
 | 
			
		||||
      title: '删除租户产品包',
 | 
			
		||||
      content: '是否删除租户产品包',
 | 
			
		||||
      title: '删除租户套餐包',
 | 
			
		||||
      content: '是否删除租户套餐包',
 | 
			
		||||
      okText: '确认',
 | 
			
		||||
      cancelText: '取消',
 | 
			
		||||
      onOk: async () => {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,6 +11,13 @@
 | 
			
		|||
          style="margin-right: 5px"
 | 
			
		||||
          >批量删除
 | 
			
		||||
        </a-button>
 | 
			
		||||
        <a-button
 | 
			
		||||
          preIcon="ant-design:sync-outlined"
 | 
			
		||||
          type="primary"
 | 
			
		||||
          @click="handleSyncDefaultPack"
 | 
			
		||||
          style="margin-right: 5px"
 | 
			
		||||
          >初始化默认套餐
 | 
			
		||||
        </a-button>
 | 
			
		||||
      </template>
 | 
			
		||||
      <template #action="{ record }">
 | 
			
		||||
        <TableAction :actions="getActions(record)" :dropDownActions="getDropDownAction(record)" />
 | 
			
		||||
| 
						 | 
				
			
			@ -24,7 +31,7 @@
 | 
			
		|||
  import { reactive, ref, unref } from 'vue';
 | 
			
		||||
  import { BasicModal, useModal, useModalInner } from '/@/components/Modal';
 | 
			
		||||
  import { packColumns, userColumns, packFormSchema } from '../tenant.data';
 | 
			
		||||
  import { getTenantUserList, leaveTenant, packList, deleteTenantPack } from '../tenant.api';
 | 
			
		||||
  import { getTenantUserList, leaveTenant, packList, deleteTenantPack, syncDefaultTenantPack } from '../tenant.api';
 | 
			
		||||
  import { useListPage } from '/@/hooks/system/useListPage';
 | 
			
		||||
  import { BasicTable, TableAction } from '/@/components/Table';
 | 
			
		||||
  import TenantPackMenuModal from './TenantPackMenuModal.vue';
 | 
			
		||||
| 
						 | 
				
			
			@ -64,7 +71,7 @@
 | 
			
		|||
  const [registerTable, { reload }, { rowSelection, selectedRowKeys, selectedRows }] = tableContext;
 | 
			
		||||
  // Emits声明
 | 
			
		||||
  const emit = defineEmits(['register', 'success']);
 | 
			
		||||
  //是否显示新增和编辑产品包
 | 
			
		||||
  //是否显示新增和编辑套餐包
 | 
			
		||||
  const showPackAddAndEdit = ref<boolean>(false);
 | 
			
		||||
  //表单赋值
 | 
			
		||||
  const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
 | 
			
		||||
| 
						 | 
				
			
			@ -73,7 +80,7 @@
 | 
			
		|||
    success();
 | 
			
		||||
  });
 | 
			
		||||
  //设置标题
 | 
			
		||||
  const title = '租户产品包列表';
 | 
			
		||||
  const title = '租户个性化套餐包';
 | 
			
		||||
 | 
			
		||||
  //表单提交事件
 | 
			
		||||
  async function handleSubmit(v) {
 | 
			
		||||
| 
						 | 
				
			
			@ -115,40 +122,40 @@
 | 
			
		|||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  //默认系统产品包不允许删除,包含(超级管理员、组织账户管理员、组织应用管理员)
 | 
			
		||||
  //默认系统套餐包不允许删除,包含(超级管理员、组织账户管理员、组织应用管理员)
 | 
			
		||||
  const packCode = reactive<any>(['superAdmin','accountAdmin','appAdmin']);
 | 
			
		||||
  const { createMessage } = useMessage();
 | 
			
		||||
  
 | 
			
		||||
  /**
 | 
			
		||||
   * 删除产品包
 | 
			
		||||
   * 删除套餐包
 | 
			
		||||
   * @param 删除
 | 
			
		||||
   */
 | 
			
		||||
  async function handleDelete(record) {
 | 
			
		||||
    //update-begin---author:wangshuai ---date:20230222  for:系统默认产品包不允许删除------------
 | 
			
		||||
    //update-begin---author:wangshuai ---date:20230222  for:系统默认套餐包不允许删除------------
 | 
			
		||||
    if(packCode.indexOf(record.packCode) != -1){
 | 
			
		||||
        createMessage.warning("默认系统产品包不允许删除");
 | 
			
		||||
        createMessage.warning("默认系统套餐包不允许删除");
 | 
			
		||||
       return;
 | 
			
		||||
    }
 | 
			
		||||
    //update-end---author:wangshuai ---date:20230222  for:系统默认产品包不允许删除------------
 | 
			
		||||
    //update-end---author:wangshuai ---date:20230222  for:系统默认套餐包不允许删除------------
 | 
			
		||||
    await deleteTenantPack({ ids: record.id }, success);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * 批量删除产品包
 | 
			
		||||
   * 批量删除套餐包
 | 
			
		||||
   */
 | 
			
		||||
  async function handlePackBatch() {
 | 
			
		||||
    let value = selectedRows.value;
 | 
			
		||||
    if(value && value.length>0){
 | 
			
		||||
      for (let i = 0; i < value.length; i++) {
 | 
			
		||||
        if(packCode.indexOf(value[i].packCode) != -1){
 | 
			
		||||
          createMessage.warning("默认系统产品包不允许删除");
 | 
			
		||||
          createMessage.warning("默认系统套餐包不允许删除");
 | 
			
		||||
          return;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    Modal.confirm({
 | 
			
		||||
      title: '删除租户产品包',
 | 
			
		||||
      content: '是否删除租户产品包',
 | 
			
		||||
      title: '删除租户套餐包',
 | 
			
		||||
      content: '是否删除租户套餐包',
 | 
			
		||||
      okText: '确认',
 | 
			
		||||
      cancelText: '取消',
 | 
			
		||||
      onOk: async () => {
 | 
			
		||||
| 
						 | 
				
			
			@ -157,6 +164,18 @@
 | 
			
		|||
    })
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  async function handleSyncDefaultPack() {
 | 
			
		||||
    Modal.confirm({
 | 
			
		||||
      title: '初始化默认套餐包',
 | 
			
		||||
      content: '是否初始化默认套餐包',
 | 
			
		||||
      okText: '确认',
 | 
			
		||||
      cancelText: '取消',
 | 
			
		||||
      onOk: async () => {
 | 
			
		||||
        await syncDefaultTenantPack({tenantId: unref(tenantId)}, success);
 | 
			
		||||
      },
 | 
			
		||||
    });
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   *
 | 
			
		||||
   * 新增表单
 | 
			
		||||
| 
						 | 
				
			
			@ -171,7 +190,7 @@
 | 
			
		|||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * 产品包下面的用户
 | 
			
		||||
   * 套餐包下面的用户
 | 
			
		||||
   * @param record
 | 
			
		||||
   */
 | 
			
		||||
  function seeTenantPackUser(record) {
 | 
			
		||||
| 
						 | 
				
			
			@ -193,7 +212,7 @@
 | 
			
		|||
      {
 | 
			
		||||
        label: '删除',
 | 
			
		||||
        popConfirm: {
 | 
			
		||||
          title: '是否确认删除租户产品包',
 | 
			
		||||
          title: '是否确认删除租户套餐包',
 | 
			
		||||
          confirm: handleDelete.bind(null, record),
 | 
			
		||||
        },
 | 
			
		||||
      },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,7 +20,7 @@
 | 
			
		|||
  });
 | 
			
		||||
  //租户
 | 
			
		||||
  const tenantId = ref<number>();
 | 
			
		||||
  //产品包类型
 | 
			
		||||
  //套餐包类型
 | 
			
		||||
  const packType = ref<number>();
 | 
			
		||||
  //表单赋值
 | 
			
		||||
  const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
 | 
			
		||||
| 
						 | 
				
			
			@ -36,14 +36,14 @@
 | 
			
		|||
      console.log(data.record)
 | 
			
		||||
      await setFieldsValue({ ...data.record });
 | 
			
		||||
    }
 | 
			
		||||
    //update-begin---author:wangshuai ---date:20230705  for:【QQYUN-5685】2 产品包增加一个查看:添加底部有没有按钮及表单禁用------------
 | 
			
		||||
    //update-begin---author:wangshuai ---date:20230705  for:【QQYUN-5685】2 套餐包增加一个查看:添加底部有没有按钮及表单禁用------------
 | 
			
		||||
    setModalProps({ confirmLoading: false, showCancelBtn:!!data?.showFooter, showOkBtn:!!data?.showFooter });
 | 
			
		||||
    // 隐藏底部时禁用整个表单
 | 
			
		||||
    setProps({ disabled: !data?.showFooter })
 | 
			
		||||
    //update-end---author:wangshuai ---date:20230705  for:【QQYUN-5685】2 产品包增加一个查看:添加底部有没有按钮及表单禁用------------
 | 
			
		||||
    //update-end---author:wangshuai ---date:20230705  for:【QQYUN-5685】2 套餐包增加一个查看:添加底部有没有按钮及表单禁用------------
 | 
			
		||||
  });
 | 
			
		||||
  //设置标题
 | 
			
		||||
  const title = computed(() => (unref(isUpdate) ? '编辑租户产品包' : '新增租户产品包'));
 | 
			
		||||
  const title = computed(() => (unref(isUpdate) ? '编辑租户套餐包' : '新增租户套餐包'));
 | 
			
		||||
  //表单提交事件
 | 
			
		||||
  async function handleSubmit(v) {
 | 
			
		||||
    const values = await validate();
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,7 +43,7 @@
 | 
			
		|||
        return tenantPackData.tenantId;
 | 
			
		||||
      })
 | 
			
		||||
      
 | 
			
		||||
      //产品包信息
 | 
			
		||||
      //套餐包信息
 | 
			
		||||
      const tenantPackData = reactive<any>({});
 | 
			
		||||
      //表单赋值
 | 
			
		||||
      const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,6 +20,7 @@ enum Api {
 | 
			
		|||
  recycleBinPageList = '/sys/tenant/recycleBinPageList',
 | 
			
		||||
  deleteLogicDeleted = '/sys/tenant/deleteLogicDeleted',
 | 
			
		||||
  revertTenantLogic = '/sys/tenant/revertTenantLogic',
 | 
			
		||||
  syncDefaultPack = '/sys/tenant/syncDefaultPack',
 | 
			
		||||
  //用户产品包关系api
 | 
			
		||||
  queryTenantPackUserList = '/sys/tenant/queryTenantPackUserList',
 | 
			
		||||
  deleteTenantPackUser = '/sys/tenant/deleteTenantPackUser',
 | 
			
		||||
| 
						 | 
				
			
			@ -156,6 +157,17 @@ export const deleteTenantPack = (params, handleSuccess) => {
 | 
			
		|||
  });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 初始化套餐包
 | 
			
		||||
 * @param params
 | 
			
		||||
 * @param handleSuccess
 | 
			
		||||
 */
 | 
			
		||||
export const syncDefaultTenantPack = (params, handleSuccess) => {
 | 
			
		||||
  return defHttp.post({ url: Api.syncDefaultPack, data: params }, { joinParamsToUrl: true }).then(() => {
 | 
			
		||||
    handleSuccess();
 | 
			
		||||
  });
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 获取租户回收站的列表
 | 
			
		||||
 * @param params
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -251,10 +251,10 @@ export const userSearchFormSchema: FormSchema[] = [
 | 
			
		|||
  },
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
//产品包列表
 | 
			
		||||
//套餐包列表
 | 
			
		||||
export const packColumns: BasicColumn[] = [
 | 
			
		||||
  {
 | 
			
		||||
    title: '产品包名称',
 | 
			
		||||
    title: '套餐包名称',
 | 
			
		||||
    dataIndex: 'packName',
 | 
			
		||||
    width: 100,
 | 
			
		||||
  },
 | 
			
		||||
| 
						 | 
				
			
			@ -277,21 +277,21 @@ export const packColumns: BasicColumn[] = [
 | 
			
		|||
  },
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
//产品包搜索表单
 | 
			
		||||
//套餐包搜索表单
 | 
			
		||||
export const packFormSchema: FormSchema[] = [
 | 
			
		||||
  {
 | 
			
		||||
    field: 'packName',
 | 
			
		||||
    label: '产品包名称',
 | 
			
		||||
    label: '套餐包名称',
 | 
			
		||||
    component: 'JInput',
 | 
			
		||||
    colProps: { xxl: 8 },
 | 
			
		||||
  },
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
//产品包表单
 | 
			
		||||
//套餐包表单
 | 
			
		||||
export const packMenuFormSchema: FormSchema[] = [
 | 
			
		||||
  {
 | 
			
		||||
    field: 'packName',
 | 
			
		||||
    label: '产品包名称',
 | 
			
		||||
    label: '套餐包名称',
 | 
			
		||||
    component: 'Input',
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
| 
						 | 
				
			
			@ -377,7 +377,7 @@ export const searchRecycleFormSchema : FormSchema[] = [
 | 
			
		|||
  },
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
//产品包用户列表
 | 
			
		||||
//套餐包用户列表
 | 
			
		||||
export const tenantPackUserColumns: BasicColumn[] = [
 | 
			
		||||
  {
 | 
			
		||||
    title: '用户',
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue