zhengyiming
6 天以前 c5025e19c37bcb0ec0d07e979ebe9c1ca7840753
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';
@@ -246,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) {