zhengyiming
6 天以前 9dd95cc0cde6664d1cfcb4e14f402981c57c2585
fix: s
1个文件已添加
6个文件已修改
426 ■■■■■ 已修改文件
src/services/api/ElectronSign.ts 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/LgGigWorker.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/LgGigWorkerCustomerTemplateParam.ts 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/ParkBountyApply.ts 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/typings.d.ts 166 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/EnterpriseInfo/components/RewardConsumeRecordView.vue 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/Reward/components/ParkBountyTradeDetailFileDialog.vue 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/services/api/ElectronSign.ts
@@ -14,6 +14,36 @@
  });
}
/** 批量签约 POST /api/ElectronSign/BatchSignContract */
export async function batchSignContract(
  body: API.BatchSignContractInput,
  options?: API.RequestConfig
) {
  return request<API.BatchSignContractOutput>('/api/ElectronSign/BatchSignContract', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 批量更新合同参数状态 POST /api/ElectronSign/BatchUpdateContractParamterStatus */
export async function batchUpdateContractParamterStatus(
  body: API.BatchUpdateContractParamterStatusInput,
  options?: API.RequestConfig
) {
  return request<number>('/api/ElectronSign/BatchUpdateContractParamterStatus', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 创建或更新模板 POST /api/ElectronSign/CreateOrUpdateContractTemplate */
export async function createOrUpdateContractTemplate(
  body: API.CreateOrUpdateContractTemplateInput,
@@ -95,6 +125,24 @@
    data: body,
    ...(options || {}),
  });
}
/** 获取合同参数列表 POST /api/ElectronSign/GetContractParamterList */
export async function getContractParamterList(
  body: API.GetContractParamterListInput,
  options?: API.RequestConfig
) {
  return request<API.GetContractParamterListItemPageOutput>(
    '/api/ElectronSign/GetContractParamterList',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      data: body,
      ...(options || {}),
    }
  );
}
/** 获取合同模板列表 POST /api/ElectronSign/GetContractTemplateList */
@@ -217,6 +265,21 @@
  });
}
/** 保存合同参数 POST /api/ElectronSign/SaveContractParamter */
export async function saveContractParamter(
  body: API.SaveContractTemplateParamterInput,
  options?: API.RequestConfig
) {
  return request<string>('/api/ElectronSign/SaveContractParamter', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 发起签约 POST /api/ElectronSign/SendContract */
export async function sendContract(body: API.SendContractInput, options?: API.RequestConfig) {
  return request<API.SendContractOutput>('/api/ElectronSign/SendContract', {
src/services/api/LgGigWorker.ts
@@ -515,6 +515,21 @@
  });
}
/** 更新合同模板自定义内容值 POST /api/LgGigWorker/UpdateCustomerContractTemplateCustomContentValue */
export async function updateCustomerContractTemplateCustomContentValue(
  body: API.UpdateCustomerContractTemplateCustomContentValueInput,
  options?: API.RequestConfig
) {
  return request<any>('/api/LgGigWorker/UpdateCustomerContractTemplateCustomContentValue', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 更新人员信息 POST /api/LgGigWorker/UpdateLgGigWorkerUserInfo */
export async function updateLgGigWorkerUserInfo(
  body: API.UpdateLgGigWorkerUserInfoInput,
src/services/api/LgGigWorkerCustomerTemplateParam.ts
@@ -21,11 +21,18 @@
}
/** 获取所有系统 模板数据参数字典 POST /api/LgGigWorkerCustomerTemplateParam/GetAllSystemTemplateDataParamSettingList */
export async function getAllSystemTemplateDataParamSettingList(options?: API.RequestConfig) {
export async function getAllSystemTemplateDataParamSettingList(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.APIgetAllSystemTemplateDataParamSettingListParams,
  options?: API.RequestConfig
) {
  return request<API.SystemTemplateDataParamSettingOutput[]>(
    '/api/LgGigWorkerCustomerTemplateParam/GetAllSystemTemplateDataParamSettingList',
    {
      method: 'POST',
      params: {
        ...params,
      },
      ...(options || {}),
    }
  );
src/services/api/ParkBountyApply.ts
@@ -1182,6 +1182,21 @@
  );
}
/** 同步更新消费记录里的保单文件 POST /api/ParkBountyApply/SyncUpdateParkBountyApplyTradeInsuranceBillFile */
export async function syncUpdateParkBountyApplyTradeInsuranceBillFile(
  body: API.UpdateParkBountyApplyTradeInsuranceBillFile,
  options?: API.RequestConfig
) {
  return request<number>('/api/ParkBountyApply/SyncUpdateParkBountyApplyTradeInsuranceBillFile', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  });
}
/** 上传企业补充材料 POST /api/ParkBountyApply/UploadParkBountyApplyCompanyExtraFile */
export async function uploadParkBountyApplyCompanyExtraFile(
  body: API.UploadParkApplyCustomerFilesInput,
src/services/api/typings.d.ts
@@ -510,6 +510,12 @@
    signChannel?: SignChannelEnum;
    /** 模板编辑数据 */
    templateEditData?: string;
    /** 是否自动签 */
    isAutoSign?: boolean;
    /** 自动签授权书 */
    autoSignPowerAttorneyUrl?: string;
    /** 自定义内容 */
    customContentIds?: string[];
  }
  interface AddUpdateCustomerInput {
@@ -1286,6 +1292,13 @@
  interface APIgetAllSubModuleParams {
    moduleId?: string;
  }
  interface APIgetAllSystemTemplateDataParamSettingListParams {
    /** 是否默认 */
    isDefault?: boolean;
    /** 模板Id */
    lgGigWorkerCustomerTemplateId?: string;
  }
  interface APIgetBatchBillStaffListParams {
@@ -2812,6 +2825,32 @@
    userIds?: string[];
    /** 服务人员Id */
    serviceStaffId?: string;
  }
  interface BatchSignContractInput {
    /** 对外用户Id */
    outUserId?: string;
    /** 对外合同Id */
    outContractIds?: string[];
  }
  interface BatchSignContractOutput {
    /** 成功合同Id */
    successIds?: string[];
    errors?: BatchSignContractOutputError[];
  }
  interface BatchSignContractOutputError {
    /** 对外合同Id */
    outContractId?: string;
    /** 错误消息 */
    errorMessages?: string;
  }
  interface BatchUpdateContractParamterStatusInput {
    /** 参数Id */
    ids?: string[];
    status?: EnumElectronSignContractParameterStatus;
  }
  interface BestSignDownloadImageDataResponse {
@@ -4984,6 +5023,10 @@
    name: string;
    /** 模板编号 */
    templateCode: string;
    /** 是否自动签 */
    isAutoSign?: boolean;
    /** 自动签授权书 */
    autoSignPowerAttorneyUrl?: string;
    /** 模板变量 */
    values: CreateOrUpdateContractTemplateValueInput[];
  }
@@ -4998,6 +5041,12 @@
    name?: string;
    /** 是否必填 */
    required?: boolean;
    /** 坐标X */
    x?: number;
    /** 坐标Y */
    y?: number;
    /** 页码 */
    page?: number;
  }
  interface CreateOrUpdateCooperationApplyInput {
@@ -5196,6 +5245,9 @@
    incomeBankName?: string;
    enterpriseId?: string;
    selfAuditStatus?: EnumParkBountyTradeDetailAuditStatus;
    auditType?: EnumParkBountyTradeDetailAuditType;
    /** 江祐保自主出账关联保单id */
    insurancePolicyId?: string;
  }
  interface CreateParkOrHRAdvertiseInput {
@@ -6227,6 +6279,8 @@
    configuration?: Record<string, any>;
  }
  type EnumElectronSignContractParameterStatus = 10 | 20;
  type EnumElectronSignContractStatus = 1 | 2 | 3 | 4 | 5 | 9 | 99;
  type EnumElectronSignContractSupplier = 10 | 20;
@@ -6248,6 +6302,8 @@
  type EnumPagedListOrder = 0 | 1;
  type EnumParkBountyTradeDetailAuditStatus = 10 | 20 | 30;
  type EnumParkBountyTradeDetailAuditType = 10 | 100;
  type EnumParkRewardStatisticsDetailScene = 1 | 2 | 3 | 4 | 5;
@@ -7171,6 +7227,35 @@
    completedEndDate?: string;
  }
  interface GetContractParamterListInput {
    pageModel?: Pagination;
    /** 关键字 */
    keywords?: string;
    status?: EnumElectronSignContractParameterStatus;
  }
  interface GetContractParamterListItem {
    /** 参数Id */
    id?: string;
    /** 数据参数名称 */
    dataParamName?: string;
    /** 数据参数字段名称 */
    dataParamNameFieldName?: string;
    /** 数据参数默认值 */
    dataParamDefaultValue?: string;
    /** 是否 不是数值参数,即无需值 */
    isNotValueParam?: boolean;
    /** 是否默认 */
    isDefault?: boolean;
    status?: EnumElectronSignContractParameterStatus;
  }
  interface GetContractParamterListItemPageOutput {
    pageModel?: Pagination;
    objectData?: any;
    data?: GetContractParamterListItem[];
  }
  interface GetContractTemplateDto {
    /** Id */
    id?: string;
@@ -7183,6 +7268,10 @@
    name?: string;
    /** 模板编号 */
    templateCode?: string;
    /** 是否自动签 */
    isAutoSign?: boolean;
    /** 自动签授权书 */
    autoSignPowerAttorneyUrl?: string;
    /** 模板变量 */
    values?: GetContractTemplateValueDto[];
  }
@@ -7211,6 +7300,12 @@
    name?: string;
    /** 是否必填 */
    required?: boolean;
    /** 坐标X */
    x?: number;
    /** 坐标Y */
    y?: number;
    /** 页码 */
    page?: number;
  }
  interface GetCooperationApplyInput {
@@ -7402,6 +7497,23 @@
    creatorId?: string;
    /** 是否可以编辑名称 */
    isCanEditName?: boolean;
    /** 是否自动签 */
    isAutoSign?: boolean;
    /** 自动签授权书(选择自动签时显示) */
    autoSignPowerAttorneyUrl?: string;
    /** 自定义内容 */
    customContents?: GetCustomerTemplateDetailOutputCustomContent[];
  }
  interface GetCustomerTemplateDetailOutputCustomContent {
    /** 模板Id */
    templateId?: string;
    /** Id */
    id?: string;
    /** 数据参数名称 */
    dataParamName?: string;
    /** 值 */
    value?: string;
  }
  interface GetCustomerTemplateListOutput {
@@ -7419,6 +7531,10 @@
    platedTime?: string;
    /** 操作人 */
    operator?: string;
    /** 是否自动签 */
    isAutoSign?: boolean;
    /** 自定义内容 */
    customContents?: GetCustomerTemplateDetailOutputCustomContent[];
  }
  interface GetCustomerUploadApplyFilesByTypeInput {
@@ -9186,6 +9302,8 @@
    selfAuditOperator?: string;
    /** 企业自身操作人Id */
    selfAuditOperatorId?: string;
    /** 江祐保上传的保单文件 */
    insureBillUrl?: string;
  }
  interface GetParkBountyTradeDetailOutputPageOutput {
@@ -9286,6 +9404,10 @@
    financeType?: FinanceTypeEnum;
    /** 进账单位 */
    incomeCompanyName?: string;
    /** 企业自身审核凭证 */
    selfAuditFileUrl?: string;
    /** 江祐保上传的保单文件 */
    insureBillUrl?: string;
  }
  interface GetParkCustomerBountyConsumptionOutputPageOutput {
@@ -14251,6 +14373,8 @@
    compayId?: string;
    /** 需要签约的用户签约id */
    listLgWorkerSignId?: string[];
    /** 来自自动签 */
    fromAutoSign?: boolean;
  }
  interface LgGigWorkerBussinessAutoSignOutput {
@@ -18031,6 +18155,8 @@
    userInfoEmailAddress?: string;
    /** 注册日期 */
    registDate?: string;
    /** 产业园区id */
    industrialParkId?: string;
  }
  interface PriceInfo {
@@ -20185,6 +20311,20 @@
    receiptName?: string;
  }
  interface SaveContractTemplateParamterInput {
    /** 参数Id */
    id?: string;
    /** 数据参数名称 */
    dataParamName?: string;
    /** 数据参数字段名称 */
    dataParamNameFieldName?: string;
    /** 数据参数默认值 */
    dataParamDefaultValue?: string;
    /** 是否 不是数值参数,即无需值 */
    isNotValueParam?: boolean;
    status?: EnumElectronSignContractParameterStatus;
  }
  interface SaveCustomerTemplateParamInput {
    /** 模板id */
    lgGigWorkerCustomerTemplateId?: string;
@@ -21628,6 +21768,9 @@
    selfAuditFileUrl?: string;
    /** 奖励金余额 */
    bountyAmount?: number;
    auditType?: EnumParkBountyTradeDetailAuditType;
    /** 江祐保自主出账关联保单id */
    insurancePolicyId?: string;
  }
  interface SysOrgDetailOutput {
@@ -22216,6 +22359,20 @@
    id?: string;
  }
  interface UpdateCustomerContractTemplateCustomContentValueInput {
    /** 合同模板Id */
    templateId?: string;
    /** 自定义内容 */
    customContents?: UpdateCustomerContractTemplateCustomContentValueInputItem[];
  }
  interface UpdateCustomerContractTemplateCustomContentValueInputItem {
    /** Id */
    id?: string;
    /** 值 */
    value?: string;
  }
  interface UpdateEnterpriseMaterialInput {
    /** 年 */
    year?: number;
@@ -22648,6 +22805,13 @@
    id?: string;
  }
  interface UpdateParkBountyApplyTradeInsuranceBillFile {
    /** 江祐保自主出账关联保单id */
    insurancePolicyId?: string;
    /** 江祐保上传的保单文件 */
    insureBillUrl?: string;
  }
  interface UpdatePassWordInput {
    id?: string;
    passWord?: string;
@@ -22925,6 +23089,8 @@
    enterpriseName?: string;
    /** 姓名 */
    contacter?: string;
    /** 产业园区id */
    industrialParkId?: string;
  }
  interface UpdateUserOrderContactStatusInput {
src/views/EnterpriseInfo/components/RewardConsumeRecordView.vue
@@ -3,13 +3,14 @@
    <AppContainer>
      <ProTableV2 v-bind="proTableProps" :columns="column" :operationBtns="operationBtns">
        <template #operationBtn-checkBtn="{ data, row }">
          <PreviewBtnV2
          <!-- <PreviewBtnV2
            class="pro-table-operation-btn"
            :url="convertApi2FormUrlBySeparator(row.payFileUrl ?? '')"
            preview-btn-text="查看凭证"
          />
          /> -->
        </template>
      </ProTableV2>
      <ParkBountyTradeDetailFileDialog v-bind="dialogProps" />
    </AppContainer>
  </LoadingLayout>
</template>
@@ -21,11 +22,18 @@
  ProTableV2,
  defineOperationBtns,
  PreviewBtnV2,
  useFormDialog,
  UploadUserFile,
} from '@bole-core/components';
import { convertApi2FormUrlBySeparator } from '@/utils';
import {
  convertApi2FormUrlBySeparator,
  convertApi2FormUrlObjectBySeparator,
  convertApi2FormUrlOnlyOne,
} from '@/utils';
import { OrderInputType } from '@bole-core/core';
import * as parkRewardServices from '@/services/api/ParkReward';
import { EnterpriseBountyPayTypeEnumText } from '@/constants';
import ParkBountyTradeDetailFileDialog from '../../Reward/components/ParkBountyTradeDetailFileDialog.vue';
defineOptions({
  name: 'RewardConsumeRecordView',
@@ -60,6 +68,7 @@
      enCode: 'checkBtn',
      name: '查看凭证',
    },
    emits: { onClick: (role) => openDialog(role) },
  },
]);
@@ -111,6 +120,26 @@
  await getList();
  state.loading = false;
});
function openDialog(row: API.GetParkCustomerBountyConsumptionOutput) {
  handleAdd({
    payAuditFileUrl: convertApi2FormUrlObjectBySeparator(row.payAuditFileUrl),
    financeAuditFileUrl: convertApi2FormUrlObjectBySeparator(row.financeAuditFileUrl),
    selfAuditFileUrl: convertApi2FormUrlObjectBySeparator(row.selfAuditFileUrl),
    payFileUrl: convertApi2FormUrlObjectBySeparator(row.payFileUrl),
    insureBillUrl: convertApi2FormUrlObjectBySeparator(row.insureBillUrl),
  });
}
const { dialogProps, handleAdd } = useFormDialog({
  defaultFormParams: {
    payAuditFileUrl: [] as UploadUserFile[],
    financeAuditFileUrl: [] as UploadUserFile[],
    selfAuditFileUrl: [] as UploadUserFile[],
    payFileUrl: [] as UploadUserFile[],
    insureBillUrl: [] as UploadUserFile[],
  },
});
</script>
<style lang="scss" scoped>
src/views/Reward/components/ParkBountyTradeDetailFileDialog.vue
New file
@@ -0,0 +1,123 @@
<template>
  <ProDialog title="文件列表" v-model="visible" @close="onDialogClose" destroy-on-close draggable>
    <ProForm :model="form" ref="dialogForm" label-width="110px" is-read class="audit-file-form">
      <ProFormItemV2
        label="平台审批凭证:"
        prop="selfAuditFileUrl"
        v-if="form?.selfAuditFileUrl?.length > 0"
      >
        <ProFormUpload
          v-model:file-url="form.selfAuditFileUrl"
          :limitFileSize="50"
          accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png"
        ></ProFormUpload>
      </ProFormItemV2>
      <ProFormItemV2
        label="出账审批凭证:"
        prop="payAuditFileUrl"
        v-if="form?.payAuditFileUrl?.length > 0"
      >
        <ProFormUpload
          v-model:file-url="form.payAuditFileUrl"
          :limitFileSize="50"
          accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png"
        ></ProFormUpload>
      </ProFormItemV2>
      <ProFormItemV2
        label="财政审批凭证:"
        prop="financeAuditFileUrl"
        v-if="form?.financeAuditFileUrl?.length > 0"
      >
        <ProFormUpload
          v-model:file-url="form.financeAuditFileUrl"
          :limitFileSize="50"
          accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png"
        ></ProFormUpload>
      </ProFormItemV2>
      <ProFormItemV2 label="出账凭证:" prop="payFileUrl" v-if="form?.payFileUrl?.length > 0">
        <ProFormUpload
          v-model:file-url="form.payFileUrl"
          :limitFileSize="50"
          accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png"
        ></ProFormUpload>
      </ProFormItemV2>
      <ProFormItemV2 label="保单文件:" prop="insureBillUrl" v-if="form?.insureBillUrl?.length > 0">
        <ProFormUpload
          v-model:file-url="form.insureBillUrl"
          :limitFileSize="50"
          accept="doc,docx,pdf,xls,xlsx,jpg/jpeg,png"
        ></ProFormUpload>
      </ProFormItemV2>
    </ProForm>
    <template #footer>
      <span class="dialog-footer">
        <el-button @click="emit('onCancel')">取 消</el-button>
        <el-button type="primary" @click="handleConfirm">确 定</el-button>
      </span>
    </template>
  </ProDialog>
</template>
<script setup lang="ts">
import { FormInstance } from 'element-plus';
import {
  ProDialog,
  ProForm,
  ProFormItemV2,
  ProFormText,
  UploadUserFile,
  ProFormUpload,
} from '@bole-core/components';
defineOptions({
  name: 'ParkBountyTradeDetailFileDialog',
});
// type Props = {};
// const props = withDefaults(defineProps<Props>(), {});
const visible = defineModel({ type: Boolean });
type Form = {
  title?: string;
  payAuditFileUrl: UploadUserFile[];
  financeAuditFileUrl: UploadUserFile[];
  selfAuditFileUrl: UploadUserFile[];
  payFileUrl: UploadUserFile[];
  insureBillUrl: UploadUserFile[];
};
const form = defineModel<Form>('form');
const emit = defineEmits<{
  (e: 'onConfirm'): void;
  (e: 'onCancel'): void;
}>();
const dialogForm = ref<FormInstance>();
function onDialogClose() {
  if (!dialogForm.value) return;
  dialogForm.value.resetFields();
}
function handleConfirm() {
  if (!dialogForm.value) return;
  dialogForm.value.validate((valid) => {
    if (valid) {
      emit('onConfirm');
    } else {
      return;
    }
  });
}
</script>
<style lang="scss" scoped>
.audit-file-form {
  .el-form-item {
    margin-bottom: 22px;
  }
}
</style>