zhengyiming
6 天以前 20459fe59f680031bfc7c1012be860e0727cb016
src/views/System/ModuleManage.vue
@@ -3,6 +3,22 @@
    <AppContainer>
      <ProTableQueryFilterBar @on-reset="handleReset">
        <template #query>
          <QueryFilterItem>
            <FieldRadio
              v-model="state.clientType"
              :value-enum="EnumClientTypeText"
              buttonStyle
              @change="getAllModule()"
            />
          </QueryFilterItem>
          <QueryFilterItem>
            <FieldRadio
              v-model="state.userType"
              :value-enum="EnumUserTypeText"
              buttonStyle
              @change="getAllModule()"
            />
          </QueryFilterItem>
          <div class="query-filter-list-item">
            <SearchInput
              v-model="state.searchValue"
@@ -50,14 +66,14 @@
                 row.type=v?EnumMenuType.Menu:EnumMenuType.Page
              }"
              inline-prompt
              @change="(v: number) => handleChangeStatus(v, row, 'isMenu')"
              @change="(v: boolean) => handleChangeStatus(v, row, 'isMenu')"
            ></el-switch>
          </template>
          <template v-else-if="column.property === 'enabledMark'">
            <el-switch
              :modelValue="!row.isDisabled"
              :onUpdate:modelValue="(v: boolean) => row.isDisabled =!v"
              @change="(v: number) => handleChangeStatus(v, row, 'enabledMark')"
              @change="(v: boolean) => handleChangeStatus(v, row, 'enabledMark')"
            ></el-switch>
          </template>
        </template>
@@ -94,6 +110,8 @@
  LoadingLayout,
  OperationBtnType,
  SearchInput,
  QueryFilterItem,
  FieldRadio,
} from '@bole-core/components';
import { ModuleUtils, TreeModuleDtoGroupDto, Message, TreeStore, flattenTree } from '@/utils';
import { TableInstance } from 'element-plus';
@@ -104,6 +122,8 @@
  FastBtn,
  ModuleColumns,
  EnumMenuType,
  EnumClientTypeText,
  EnumUserTypeText,
} from '@/constants';
import SubModuleEditDrawer from './components/SubModuleEditDrawer.vue';
import AddOrEditModuleDialog from './components/AddOrEditModuleDialog.vue';
@@ -183,6 +203,8 @@
  loading: true,
  searchValue: '',
  group: 'default',
  userType: EnumUserType.Operation,
  clientType: EnumClientType.PcWeb,
};
const state = reactive({ ...BaseState });
const moduleTreeStore = ref<TreeStore<TreeModuleDtoGroupDto>>();
@@ -228,8 +250,8 @@
  try {
    let res = await menuServices.getMenus(
      {
        userType: EnumUserType.Operation,
        clientType: EnumClientType.PcWeb,
        userType: state.userType,
        clientType: state.clientType,
      },
      {
        showLoading: false,
@@ -242,23 +264,30 @@
}
type StatusEventType = {
  isCache: boolean;
  isMenu: number;
  enabledMark: number;
  isMenu: boolean;
  enabledMark: boolean;
};
async function handleChangeStatus<T extends keyof StatusEventType>(
  value: StatusEventType[T],
  value: boolean,
  data: TreeModuleDtoGroupDto,
  statusType: T
) {
  try {
    // let params = {
    //   ..._.omit(data, ['children', 'parentNode']),
    //   [statusType]: value,
    // };
    // await baseModuleServices.addOrEditModule(params);
  } catch (error) {
    Message.errorMessage('操作失败');
  }
    let params: API.SetMenuSwitchCommand = {
      ids: [data.id],
      type: data.type,
      isDisabled: data.isDisabled,
      isCache: data.isCache,
    };
    if (statusType === 'isMenu') {
      params.type = value ? EnumMenuType.Menu : EnumMenuType.Page;
    } else if (statusType === 'isCache') {
      params.isCache = value;
    } else {
      params.isDisabled = !value;
    }
    await menuServices.setMenuSwitch(params);
  } catch (error) {}
}
async function getMenu(id: string) {
@@ -366,8 +395,8 @@
async function handleAddOrEditModule() {
  try {
    let params: API.SaveMenuCommand = {
      userType: EnumUserType.Operation,
      clientType: EnumClientType.PcWeb,
      userType: state.userType,
      clientType: state.clientType,
      code: editForm.enCode,
      name: editForm.name,
      type: editForm.isMenu ? EnumMenuType.Menu : EnumMenuType.Page,
@@ -529,13 +558,12 @@
      if (columnModuleList.length > 0) {
        const groups = currentDrawerModule.value.groups.map((group) => {
          if (group.group === state.group) {
            group.fields ==
              columnModuleList.map((c) => ({
                code: c.enCode,
                name: c.name,
                width: c.width,
                sort: c.sortCode,
              }));
            group.fields = columnModuleList.map((c) => ({
              code: c.enCode,
              name: c.name,
              width: c.width,
              sort: c.sortCode,
            }));
          }
          return group;
        });