wupengfei
2025-03-21 ca8fc597599e8a85288b5d771957bb1bd712e8c7
src/views/EnterpriseManage/EnterpriseManageList.vue
@@ -3,13 +3,10 @@
    <AppContainer>
      <ProTableQueryFilterBar @on-reset="reset">
        <template #query>
          <QueryFilterItem tip-content="状态">
          <QueryFilterItem tip-content="配置状态">
            <FieldRadio
              v-model="extraParamState.status"
              :value-enum="[
                { label: '已配置', value: true },
                { label: '未配置', value: false },
              ]"
              v-model="extraParamState.flexEnterpriseSettingStatus"
              :value-enum="FlexEnterpriseSettingStatusText"
              buttonStyle
              showAllBtn
              @change="getList()"
@@ -17,7 +14,7 @@
          </QueryFilterItem>
          <QueryFilterItem>
            <SearchInput
              v-model="extraParamState.name"
              v-model="extraParamState.searchWord"
              style="width: 200px"
              placeholder="企业名称/法人/联系人"
              @on-click-search="getList"
@@ -29,7 +26,7 @@
        <template #btn>
          <el-button
            v-if="checkSubModuleItemShow('pageButton', 'addBtn')"
            @click="openDialog()"
            @click="addOrEditEnterprise()"
            icon="Plus"
            type="primary"
            >新增</el-button
@@ -39,7 +36,7 @@
      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
      </ProTableV2>
    </AppContainer>
    <!-- <AddOrEditSearchSetting v-bind="dialogProps" :typeList="typeList" /> -->
    <ConfigureDialog v-bind="dialogProps" />
  </LoadingLayout>
</template>
@@ -54,14 +51,24 @@
  QueryFilterItem,
  useTable,
  useFormDialog,
  UploadUserFile,
  FieldRadio,
} from '@bole-core/components';
import { useAccess, useGlobalEventContext } from '@/hooks';
import * as searchSettingServices from '@/services/api/SearchSetting';
import { SearchType, SearchTypeText } from '@/constants';
import * as flexEnterpriseServices from '@/services/api/FlexEnterprise';
import {
  SearchType,
  FlexEnterpriseSettingStatusText,
  FlexEnterpriseSettingStatus,
  FlexEnterpriseCertificationStatusText,
  EnterpriseConfigureType,
  MessageChannelEnum,
  VerifyStatus,
  SignChannelEnum,
  ChargeTypeEnum,
  FlexEnterpriseStatus,
} from '@/constants';
import ConfigureDialog from './components/ConfigureDialog.vue';
import { OrderInputType, Message } from '@bole-core/core';
import { convertApi2FormUrl } from '@/utils';
import { useQueryClient } from '@tanstack/vue-query';
import { useSearchSettingType } from '@/hooks';
@@ -70,7 +77,10 @@
});
const operationBtnMap: Record<string, OperationBtnType> = {
  editBtn: { emits: { onClick: (role) => openDialog(role) } },
  editBtn: { emits: { onClick: (role) => addOrEditEnterprise(role) } },
  detailBtn: { emits: { onClick: (role) => handleDetail(role) } },
  configBtn: { emits: { onClick: (role) => openDialog(role) } },
  freezeBtn: { emits: { onClick: (role) => handleSetStatus(role) } },
};
const { checkSubModuleItemShow, column, operationBtns } = useAccess({
@@ -87,6 +97,8 @@
  getList(paginationState.pageIndex);
});
const router = useRouter();
const BaseState = {
  loading: true,
};
@@ -94,6 +106,7 @@
const { searchSettingTypeList: typeList } = useSearchSettingType({
  searchType: SearchType.IndustryCategory,
});
const state = reactive({ ...BaseState });
onMounted(async () => {
@@ -110,23 +123,17 @@
} = useTable(
  async ({ pageIndex, pageSize }, extraParamState) => {
    try {
      let params: API.GetSearchSettingListInput = {
      let params: API.GetFlexEnterpriseInput = {
        pageModel: {
          rows: pageSize,
          page: pageIndex,
          orderInput: extraParamState.orderInput,
        },
        name: extraParamState.name,
        // belongType: Number(extraParamState.belongType),
        searchType: Number(extraParamState.searchType),
        status: extraParamState.status,
        flexEnterpriseSettingStatus: extraParamState.flexEnterpriseSettingStatus,
        searchWord: extraParamState.searchWord,
      };
      if (extraParamState.searchType === SearchType.Position) {
        params.isRecommend = extraParamState.isRecommend;
        params.parentId = extraParamState.parentId;
      }
      let res = await searchSettingServices.getSearchSettingList(params, {
      let res = await flexEnterpriseServices.getFlexEnterpriseList(params, {
        showLoading: !state.loading,
      });
      return res;
@@ -136,35 +143,37 @@
  },
  {
    defaultExtraParams: {
      name: '',
      searchType: SearchType.Identity,
      orderInput: [{ property: 'sort', order: OrderInputType.Asc }],
      status: '' as any as boolean,
      isRecommend: '' as any as boolean,
      parentId: '',
      searchWord: '',
      orderInput: [{ property: 'id', order: OrderInputType.Asc }],
      flexEnterpriseSettingStatus: '' as any as FlexEnterpriseSettingStatus,
    },
    queryKey: ['searchSettingServices/getSearchSettingList'],
    queryKey: ['flexEnterpriseServices/getFlexEnterpriseList'],
    columnsRenderProps: {
      searchType: { type: 'enum', valueEnum: SearchTypeText },
      settingStatus: { type: 'enum', valueEnum: FlexEnterpriseSettingStatusText },
      certificationStatus: { type: 'enum', valueEnum: FlexEnterpriseCertificationStatusText },
    },
  }
);
function openDialog(row?: API.GetSearchSettingList) {
function openDialog(row?: API.FlexEnterpriseDto) {
  if (row) {
    handleEdit({
      id: row.id,
      searchType: extraParamState.searchType,
      name: row.name,
      sort: row.sort,
      status: row.status,
      src: row.src?.length ? [convertApi2FormUrl(row.src)] : [],
      parentId: row.parentId ?? '',
      flexEnterpirseId: row.id,
      openBank: row.cityName,
      openBranchBank: row.cityName,
      bankAccount: row.cityName,
      verifyStatus: VerifyStatus.NotVerify,
      signChannel: SignChannelEnum.Alipay,
      chargeType: ChargeTypeEnum.Group,
      realVerifyCost: 0,
      signCost: 0,
      mergeSignCost: 0,
      messageCost: 0,
      messageChannel: MessageChannelEnum.Alipay,
    });
  } else {
    handleAdd({
      searchType: extraParamState.searchType,
    });
    handleAdd({});
  }
}
@@ -172,57 +181,101 @@
  onConfirm: handleAddOrEdit,
  defaultFormParams: {
    id: '',
    searchType: SearchType.Identity,
    name: '',
    sort: 0,
    status: true,
    src: [] as UploadUserFile[],
    parentId: '',
    flexEnterpirseId: '',
    openBank: '',
    openBranchBank: '',
    bankAccount: '',
    verifyStatus: '' as any as VerifyStatus,
    signChannel: '' as any as SignChannelEnum,
    chargeType: '' as any as ChargeTypeEnum,
    realVerifyCost: 0,
    signCost: 0,
    mergeSignCost: 0,
    messageCost: 0,
    messageChannel: '' as any as MessageChannelEnum,
  },
});
async function handleAddOrEdit() {
async function handleAddOrEdit(type: EnterpriseConfigureType) {
  try {
    let params: API.CreateOrEditSearchInput = {
      searchType: extraParamState.searchType,
      name: editForm.name,
      sort: editForm.sort,
      status: editForm.status,
      src: editForm.src?.[0]?.path ?? '',
      parentId: editForm.parentId ?? '',
    };
    if (editForm.id) {
      params.id = editForm.id;
    let res;
    if (type === EnterpriseConfigureType.Bank) {
      res = await createOrEditFlexEnterpriseBankSetting();
    }
    let res = await searchSettingServices.createOrEditSearchSetting(params);
    if (type === EnterpriseConfigureType.Electronic) {
      res = await createOrEditFlexEnterpriseSignSetting();
    }
    if (type === EnterpriseConfigureType.ShortMessage) {
      res = await createOrEditFlexEnterpriseMessageSetting();
    }
    if (res) {
      Message.successMessage('操作成功');
      getList(paginationState.pageIndex);
      dialogState.dialogVisible = false;
      updateCategoryMenu();
    }
  } catch (error) {}
}
function updateCategoryMenu() {
  queryClient.invalidateQueries({
    queryKey: [
      'searchSettingServices/getTypeSearchSettingList',
      { searchType: extraParamState.searchType, belongType: null },
    ],
  });
async function createOrEditFlexEnterpriseBankSetting() {
  try {
    let params: API.CreateOrEditFlexEnterpriseBankInput = {
      id: editForm.id,
      openBank: editForm.openBank,
      openBranchBank: editForm.openBranchBank,
      bankAccount: editForm.bankAccount,
      verifyStatus: editForm.verifyStatus,
      flexEnterpirseId: editForm.flexEnterpirseId,
    };
    return await flexEnterpriseServices.createOrEditFlexEnterpriseBankSetting(params);
  } catch (error) {}
}
async function createOrEditFlexEnterpriseSignSetting() {
  try {
    let params: API.CreateOrEditFlexEnterpriseSignSettingInput = {
      id: editForm.id,
      flexEnterpirseId: editForm.flexEnterpirseId,
      signChannel: editForm.signChannel,
      chargeType: editForm.chargeType,
      realVerifyCost: editForm.realVerifyCost,
      signCost: editForm.signCost,
      mergeSignCost: editForm.mergeSignCost,
    };
    return await flexEnterpriseServices.createOrEditFlexEnterpriseSignSetting(params);
  } catch (error) {}
}
async function createOrEditFlexEnterpriseMessageSetting() {
  try {
    let params: API.CreateOrEditFlexEnterpriseMessageSettingInput = {
      id: editForm.id,
      flexEnterpirseId: editForm.flexEnterpirseId,
      messageChannel: editForm.messageChannel,
      messageCost: editForm.messageCost,
    };
    return await flexEnterpriseServices.createOrEditFlexEnterpriseMessageSetting(params);
  } catch (error) {}
}
async function setCategoryVis(row: API.GetSearchSettingList) {
async function handleSetStatus(row: API.FlexEnterpriseDto) {
  try {
    let params: API.EnableSearchSettingInput = {
    let params: API.SetFlexEnterpriseStatusInput = {
      id: row.id,
      status: !row.status,
      status:
        row.status === FlexEnterpriseStatus.Frozen
          ? FlexEnterpriseStatus.Normal
          : FlexEnterpriseStatus.Frozen,
    };
    let res = await searchSettingServices.enableSearchSetting(params);
    updateCategoryMenu();
    getList(paginationState.pageIndex);
    return !!res;
    let res = await flexEnterpriseServices.setFlexEnterpriseStatus(params);
    if (res) {
      Message.successMessage('操作成功');
      getList(paginationState.pageIndex);
    }
  } catch (error) {}
}
function addOrEditEnterprise(row?: API.FlexEnterpriseDto) {
  router.push({ name: 'AddOrEditEnterprise', params: { id: row?.id ?? '' } });
}
function handleDetail(row: API.FlexEnterpriseDto) {
  router.push({ name: 'EnterpriseDetail', params: { id: row?.id ?? '' } });
}
</script>