zhengyiming
2025-11-11 ea5d8e1e4c6b81b514352ada1786f5f035e21ff7
src/views/System/ModuleManage.vue
@@ -19,6 +19,14 @@
              @change="getAllModule()"
            />
          </QueryFilterItem>
          <QueryFilterItem v-if="state.userType === EnumUserType.Enterprise">
            <FieldRadio
              v-model="state.enterpriseType"
              :value-enum="EnumEnterpriseTypeText"
              buttonStyle
              @change="getAllModule()"
            />
          </QueryFilterItem>
          <div class="query-filter-list-item">
            <SearchInput
              v-model="state.searchValue"
@@ -124,6 +132,8 @@
  EnumMenuType,
  EnumClientTypeText,
  EnumUserTypeText,
  EnumEnterpriseTypeText,
  EnumUserType,
} from '@/constants';
import SubModuleEditDrawer from './components/SubModuleEditDrawer.vue';
import AddOrEditModuleDialog from './components/AddOrEditModuleDialog.vue';
@@ -205,6 +215,7 @@
  group: 'default',
  userType: EnumUserType.Operation,
  clientType: EnumClientType.PcWeb,
  enterpriseType: EnumEnterpriseType.Supplier,
};
const state = reactive({ ...BaseState });
const moduleTreeStore = ref<TreeStore<TreeModuleDtoGroupDto>>();
@@ -248,15 +259,16 @@
});
async function getAllModule() {
  try {
    let res = await menuServices.getMenus(
      {
        userType: state.userType,
        clientType: state.clientType,
      },
      {
        showLoading: false,
      }
    );
    let params: API.APIgetMenusParams = {
      userType: state.userType,
      clientType: state.clientType,
    };
    if (state.userType === EnumUserType.Enterprise) {
      params.enterpriseType = state.enterpriseType;
    }
    let res = await menuServices.getMenus(params, {
      showLoading: false,
    });
    const treeStore = ModuleUtils.convertToModuleGroup(flattenTree(res));
    moduleTreeStore.value = treeStore;
    originModuleTree.value = [...treeStore.data];
@@ -397,6 +409,7 @@
    let params: API.SaveMenuCommand = {
      userType: state.userType,
      clientType: state.clientType,
      enterpriseType: state.enterpriseType,
      code: editForm.enCode,
      name: editForm.name,
      type: editForm.isMenu ? EnumMenuType.Menu : EnumMenuType.Page,
@@ -529,7 +542,7 @@
      name: subModule.name,
      group: state.group,
      // location: 'string',
      width: subModule.width,
      width: !!subModule.width ? subModule.width.toString() : undefined,
      sort: subModule.sortCode,
    };
    if (subModule.id) {
@@ -549,24 +562,41 @@
      getBaseModuleGetAllSubModule(currentDrawerModule.value, drawerState.type);
      Message.successMessage('保存成功');
    }
  } catch (error) {}
  } catch (error) {
    console.log('error: ', error);
  }
}
async function handelBatchSaveColumn() {
  try {
    if (drawerState.type === SubModuleType.Column) {
      let columnModuleList = drawerState.tableData; //.filter((d) => d.isEdit);
      if (columnModuleList.length > 0) {
        const groups = currentDrawerModule.value.groups.map((group) => {
          if (group.group === state.group) {
            group.fields = columnModuleList.map((c) => ({
        let groups = [...currentDrawerModule.value.groups];
        const isExist = groups.some((g) => g.group === state.group);
        if (isExist) {
          groups = groups.map((group) => {
            if (group.group === state.group) {
              group.fields = columnModuleList.map((c) => ({
                code: c.enCode,
                name: c.name,
                width: c.width.toString(),
                sort: c.sortCode,
              }));
            }
            return group;
          });
        } else {
          const group: API.GetMenuQueryResultGroup = {
            group: state.group,
            fields: columnModuleList.map((c) => ({
              code: c.enCode,
              name: c.name,
              width: c.width,
              width: c.width.toString(),
              sort: c.sortCode,
            }));
          }
          return group;
        });
            })),
          };
          groups.push(group);
        }
        let params: API.SaveMenuCommand = {
          ...currentDrawerModule.value,
          groups: groups,