diff --git a/src/api/oa/base/templateVariable/index.ts b/src/api/oa/base/templateVariable/index.ts index 8e8d1a5..1a20aae 100644 --- a/src/api/oa/base/templateVariable/index.ts +++ b/src/api/oa/base/templateVariable/index.ts @@ -74,3 +74,11 @@ export function getBaseTemplateVariableList (query) { params: query }); }; + +export function templateAssign(query) { + return request({ + url: '/oa/base/templateVariable/assign', + method: 'post', + data: query + }); +}; diff --git a/src/api/oa/crm/crmSupplierInfo/index.ts b/src/api/oa/crm/crmSupplierInfo/index.ts new file mode 100644 index 0000000..e74285d --- /dev/null +++ b/src/api/oa/crm/crmSupplierInfo/index.ts @@ -0,0 +1,76 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { CrmSupplierInfoVO, CrmSupplierInfoForm, CrmSupplierInfoQuery } from '@/api/oa/crm/crmSupplierInfo/types'; + +/** + * 查询供应商信息列表 + * @param query + * @returns {*} + */ + +export const listCrmSupplierInfo = (query?: CrmSupplierInfoQuery): AxiosPromise => { + return request({ + url: '/oa/crm/crmSupplierInfo/list', + method: 'get', + params: query + }); +}; + +/** + * 查询供应商信息详细 + * @param supplierId + */ +export const getCrmSupplierInfo = (supplierId: string | number): AxiosPromise => { + return request({ + url: '/oa/crm/crmSupplierInfo/' + supplierId, + method: 'get' + }); +}; + +/** + * 新增供应商信息 + * @param data + */ +export const addCrmSupplierInfo = (data: CrmSupplierInfoForm) => { + return request({ + url: '/oa/crm/crmSupplierInfo', + method: 'post', + data: data + }); +}; + +/** + * 修改供应商信息 + * @param data + */ +export const updateCrmSupplierInfo = (data: CrmSupplierInfoForm) => { + return request({ + url: '/oa/crm/crmSupplierInfo', + method: 'put', + data: data + }); +}; + +/** + * 删除供应商信息 + * @param supplierId + */ +export const delCrmSupplierInfo = (supplierId: string | number | Array) => { + return request({ + url: '/oa/crm/crmSupplierInfo/' + supplierId, + method: 'delete' + }); +}; + +/** + * 下拉框查询供应商信息列表 + * @param query + * @returns {*} + */ +export function getCrmSupplierInfoList (query) { + return request({ + url: '/oa/crm/crmSupplierInfo/getCrmSupplierInfoList', + method: 'get', + params: query + }); +}; diff --git a/src/api/oa/crm/crmSupplierInfo/types.ts b/src/api/oa/crm/crmSupplierInfo/types.ts new file mode 100644 index 0000000..1d0f481 --- /dev/null +++ b/src/api/oa/crm/crmSupplierInfo/types.ts @@ -0,0 +1,401 @@ +export interface CrmSupplierInfoVO { + /** + * 供应商ID + */ + supplierId: string | number; + + /** + * 供应商名称 + */ + supplierName: string; + + /** + * 助记名称 + */ + mnemonicName: string; + + /** + * 供应商类型(1企业 2个体户 3其他) + */ + supplierType: string; + + /** + * 注册资本(万元) + */ + registeredCapital: number; + + /** + * 成立日期 + */ + establishmentDate: string; + + /** + * 经营范围 + */ + businessScope: string; + + /** + * 主营行业 + */ + mainIndustry: string; + + /** + * 法定代表人 + */ + legalRepresentative: string; + + /** + * 营业执照号码 + */ + businessLicenseNumber: string; + + /** + * 税号 + */ + taxNumber: string; + + /** + * 开户银行 + */ + bankAccountOpening: string; + + /** + * 银行账号 + */ + bankNumber: string; + + /** + * 注册地址 + */ + registeredAddress: string; + + /** + * 经营地址 + */ + businessAddress: string; + + /** + * 联系人 + */ + contactPerson: string; + + /** + * 联系电话 + */ + contactPhone: string; + + /** + * 联系手机 + */ + contactMobile: string; + + /** + * 联系邮箱 + */ + contactEmail: string; + + /** + * 传真 + */ + contactFax: string; + + /** + * 网址 + */ + website: string; + + /** + * 归属人员ID + */ + ownerId: string | number; + + /** + * 详细地址 + */ + detailedAddress: string; + + /** + * 附件ID + */ + ossId: string | number; + + /** + * 备注 + */ + remark: string; + + /** + * 激活标识(1是 0否) + */ + activeFlag: string; + + /** + * 归属人员名称 + */ + ownerName?: string; + +} + +export interface CrmSupplierInfoForm extends BaseEntity { + /** + * 供应商ID + */ + supplierId?: string | number; + + /** + * 供应商名称 + */ + supplierName?: string; + + /** + * 助记名称 + */ + mnemonicName?: string; + + /** + * 供应商类型(1企业 2个体户 3其他) + */ + supplierType?: string; + + /** + * 注册资本(万元) + */ + registeredCapital?: number; + + /** + * 成立日期 + */ + establishmentDate?: string; + + /** + * 经营范围 + */ + businessScope?: string; + + /** + * 主营行业 + */ + mainIndustry?: string; + + /** + * 法定代表人 + */ + legalRepresentative?: string; + + /** + * 营业执照号码 + */ + businessLicenseNumber?: string; + + /** + * 税号 + */ + taxNumber?: string; + + /** + * 开户银行 + */ + bankAccountOpening?: string; + + /** + * 银行账号 + */ + bankNumber?: string; + + /** + * 注册地址 + */ + registeredAddress?: string; + + /** + * 经营地址 + */ + businessAddress?: string; + + /** + * 联系人 + */ + contactPerson?: string; + + /** + * 联系电话 + */ + contactPhone?: string; + + /** + * 联系手机 + */ + contactMobile?: string; + + /** + * 联系邮箱 + */ + contactEmail?: string; + + /** + * 传真 + */ + contactFax?: string; + + /** + * 网址 + */ + website?: string; + + /** + * 归属人员ID + */ + ownerId?: string | number; + + /** + * 详细地址 + */ + detailedAddress?: string; + + /** + * 附件ID + */ + ossId?: string | number; + + /** + * 备注 + */ + remark?: string; + + /** + * 激活标识(1是 0否) + */ + activeFlag?: string; + +} + +export interface CrmSupplierInfoQuery extends PageQuery { + + /** + * 供应商名称 + */ + supplierName?: string; + + /** + * 助记名称 + */ + mnemonicName?: string; + + /** + * 供应商类型(1企业 2个体户 3其他) + */ + supplierType?: string; + + /** + * 注册资本(万元) + */ + registeredCapital?: number; + + /** + * 成立日期 + */ + establishmentDate?: string; + + /** + * 经营范围 + */ + businessScope?: string; + + /** + * 主营行业 + */ + mainIndustry?: string; + + /** + * 法定代表人 + */ + legalRepresentative?: string; + + /** + * 营业执照号码 + */ + businessLicenseNumber?: string; + + /** + * 税号 + */ + taxNumber?: string; + + /** + * 开户银行 + */ + bankAccountOpening?: string; + + /** + * 银行账号 + */ + bankNumber?: string; + + /** + * 注册地址 + */ + registeredAddress?: string; + + /** + * 经营地址 + */ + businessAddress?: string; + + /** + * 联系人 + */ + contactPerson?: string; + + /** + * 联系电话 + */ + contactPhone?: string; + + /** + * 联系手机 + */ + contactMobile?: string; + + /** + * 联系邮箱 + */ + contactEmail?: string; + + /** + * 传真 + */ + contactFax?: string; + + /** + * 网址 + */ + website?: string; + + /** + * 归属人员ID + */ + ownerId?: string | number; + + /** + * 详细地址 + */ + detailedAddress?: string; + + /** + * 附件ID + */ + ossId?: string | number; + + /** + * 激活标识(1是 0否) + */ + activeFlag?: string; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/src/api/oa/crm/customerInfo/types.ts b/src/api/oa/crm/customerInfo/types.ts index 6aaf6d8..0786699 100644 --- a/src/api/oa/crm/customerInfo/types.ts +++ b/src/api/oa/crm/customerInfo/types.ts @@ -44,6 +44,11 @@ export interface CustomerInfoVO { */ ownerId: string | number; + /** + * 归属人员名称 + */ + ownerName?: string; + /** * 详细地址 */ @@ -104,6 +109,11 @@ export interface CustomerInfoVO { */ activeFlag: string; + /** + * 本公司标识(1是 0否) + */ + ourCompanyFlag?: string; + } export interface CustomerInfoForm extends BaseEntity { @@ -212,6 +222,11 @@ export interface CustomerInfoForm extends BaseEntity { */ activeFlag?: string; + /** + * 本公司标识(1是 0否) + */ + ourCompanyFlag?: string; + } export interface CustomerInfoQuery extends PageQuery { @@ -311,6 +326,11 @@ export interface CustomerInfoQuery extends PageQuery { */ activeFlag?: string; + /** + * 本公司标识(1是 0否) + */ + ourCompanyFlag?: string; + /** * 日期范围参数 */ diff --git a/src/api/oa/erp/erpProjectPlan/index.ts b/src/api/oa/erp/erpProjectPlan/index.ts new file mode 100644 index 0000000..f89e263 --- /dev/null +++ b/src/api/oa/erp/erpProjectPlan/index.ts @@ -0,0 +1,88 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { ErpProjectPlanVO, ErpProjectPlanForm, ErpProjectPlanQuery } from '@/api/oa/erp/erpProjectPlan/types'; + +/** + * 查询项目计划列表 + * @param query + * @returns {*} + */ + +export const listErpProjectPlan = (query?: ErpProjectPlanQuery): AxiosPromise => { + return request({ + url: '/oa/erp/erpProjectPlan/list', + method: 'get', + params: query + }); +}; + +/** + * 查询项目计划详细 + * @param projectPlanId + */ +export const getErpProjectPlan = (projectPlanId: string | number): AxiosPromise => { + return request({ + url: '/oa/erp/erpProjectPlan/' + projectPlanId, + method: 'get' + }); +}; + +/** + * 新增项目计划 + * @param data + */ +export const addErpProjectPlan = (data: ErpProjectPlanForm) => { + return request({ + url: '/oa/erp/erpProjectPlan', + method: 'post', + data: data + }); +}; + +/** + * 修改项目计划 + * @param data + */ +export const updateErpProjectPlan = (data: ErpProjectPlanForm) => { + return request({ + url: '/oa/erp/erpProjectPlan', + method: 'put', + data: data + }); +}; + +/** + * 删除项目计划 + * @param projectPlanId + */ +export const delErpProjectPlan = (projectPlanId: string | number | Array) => { + return request({ + url: '/oa/erp/erpProjectPlan/' + projectPlanId, + method: 'delete' + }); +}; + +/** + * 下拉框查询项目计划列表 + * @param query + * @returns {*} + */ +export function getErpProjectPlanList (query) { + return request({ + url: '/oa/erp/erpProjectPlan/getErpProjectPlanList', + method: 'get', + params: query + }); +}; + +/** + * 提交项目计划并发起流程 + * @param data + */ +export const projectPlanSubmitAndFlowStart = (data: ErpProjectPlanForm): AxiosPromise => { + return request({ + url: '/oa/erp/erpProjectPlan/projectPlanSubmitAndFlowStart', + method: 'post', + data: data + }); +}; diff --git a/src/api/oa/erp/erpProjectPlan/types.ts b/src/api/oa/erp/erpProjectPlan/types.ts new file mode 100644 index 0000000..6096405 --- /dev/null +++ b/src/api/oa/erp/erpProjectPlan/types.ts @@ -0,0 +1,214 @@ +export interface ErpProjectPlanVO { + /** + * 项目计划ID + */ + projectPlanId: string | number; + + /** + * 项目ID + */ + projectId: string | number; + + /** + * 项目经理 + */ + managerId: string | number; + + /** + * 部门负责人 + */ + chargeId: string | number; + + /** + * 付款方式 + */ + paymentMethod: string; + + /** + * 项目计划状态(1暂存 2审批中 3可用) + */ + projectPlanStatus: string; + + /** + * 流程状态 + */ + flowStatus: string; + + /** + * 排序号 + */ + sortOrder: number; + + /** + * 合同ID(预留) + */ + contractId: string | number; + + /** + * 备注 + */ + remark: string; + + /** + * 激活标识(1是 0否) + */ + activeFlag: string; + + /** + * 项目计划阶段列表 + */ + planStageList?: any[]; + + /** + * 项目名称 + */ + projectName?: string; + + /** + * 项目经理名称 + */ + managerName?: string; + + /** + * 部门负责人名称 + */ + chargeName?: string; + + /** + * 合同名称 + */ + contractName?: string; +} + +export interface ErpProjectPlanForm extends BaseEntity { + /** + * 项目计划ID + */ + projectPlanId?: string | number; + + /** + * 项目ID + */ + projectId?: string | number; + + /** + * 项目经理 + */ + managerId?: string | number; + + /** + * 部门负责人 + */ + chargeId?: string | number; + + /** + * 付款方式 + */ + paymentMethod?: string; + + /** + * 项目计划状态(1暂存 2审批中 3可用) + */ + projectPlanStatus?: string; + + /** + * 流程状态 + */ + flowStatus?: string; + + /** + * 排序号 + */ + sortOrder?: number; + + /** + * 合同ID(预留) + */ + contractId?: string | number; + + /** + * 备注 + */ + remark?: string; + + /** + * 激活标识(1是 0否) + */ + activeFlag?: string; + + /** + * 项目计划阶段列表 + */ + planStageList?: any[]; + + /** + * 流程定义编码 + */ + flowCode?: any; + + /** + * 流程变量 + */ + variables?: any; + + /** + * 流程业务扩展信息 + */ + bizExt?: any; +} + +export interface ErpProjectPlanQuery extends PageQuery { + + /** + * 项目ID + */ + projectId?: string | number; + + /** + * 项目经理 + */ + managerId?: string | number; + + /** + * 部门负责人 + */ + chargeId?: string | number; + + /** + * 付款方式 + */ + paymentMethod?: string; + + /** + * 项目计划状态(1暂存 2审批中 3可用) + */ + projectPlanStatus?: string; + + /** + * 流程状态 + */ + flowStatus?: string; + + /** + * 排序号 + */ + sortOrder?: number; + + /** + * 合同ID(预留) + */ + contractId?: string | number; + + /** + * 激活标识(1是 0否) + */ + activeFlag?: string; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/src/api/oa/erp/erpProjectPlanStage/index.ts b/src/api/oa/erp/erpProjectPlanStage/index.ts new file mode 100644 index 0000000..2b04a95 --- /dev/null +++ b/src/api/oa/erp/erpProjectPlanStage/index.ts @@ -0,0 +1,76 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { ErpProjectPlanStageVO, ErpProjectPlanStageForm, ErpProjectPlanStageQuery } from '@/api/oa/erp/erpProjectPlanStage/types'; + +/** + * 查询项目计划阶段列表 + * @param query + * @returns {*} + */ + +export const listErpProjectPlanStage = (query?: ErpProjectPlanStageQuery): AxiosPromise => { + return request({ + url: '/oa/erp/erpProjectPlanStage/list', + method: 'get', + params: query + }); +}; + +/** + * 查询项目计划阶段详细 + * @param planStageId + */ +export const getErpProjectPlanStage = (planStageId: string | number): AxiosPromise => { + return request({ + url: '/oa/erp/erpProjectPlanStage/' + planStageId, + method: 'get' + }); +}; + +/** + * 新增项目计划阶段 + * @param data + */ +export const addErpProjectPlanStage = (data: ErpProjectPlanStageForm) => { + return request({ + url: '/oa/erp/erpProjectPlanStage', + method: 'post', + data: data + }); +}; + +/** + * 修改项目计划阶段 + * @param data + */ +export const updateErpProjectPlanStage = (data: ErpProjectPlanStageForm) => { + return request({ + url: '/oa/erp/erpProjectPlanStage', + method: 'put', + data: data + }); +}; + +/** + * 删除项目计划阶段 + * @param planStageId + */ +export const delErpProjectPlanStage = (planStageId: string | number | Array) => { + return request({ + url: '/oa/erp/erpProjectPlanStage/' + planStageId, + method: 'delete' + }); +}; + +/** + * 下拉框查询项目计划阶段列表 + * @param query + * @returns {*} + */ +export function getErpProjectPlanStageList (query) { + return request({ + url: '/oa/erp/erpProjectPlanStage/getErpProjectPlanStageList', + method: 'get', + params: query + }); +}; diff --git a/src/api/oa/erp/erpProjectPlanStage/types.ts b/src/api/oa/erp/erpProjectPlanStage/types.ts new file mode 100644 index 0000000..417526a --- /dev/null +++ b/src/api/oa/erp/erpProjectPlanStage/types.ts @@ -0,0 +1,291 @@ +export interface ErpProjectPlanStageVO { + /** + * 计划阶段ID + */ + planStageId: string | number; + + /** + * 项目ID + */ + projectId: string | number; + + /** + * 项目计划ID + */ + projectPlanId: string | number; + + /** + * 项目阶段 + */ + projectPhases: string; + + /** + * 计划开始时间 + */ + planStartTime: string; + + /** + * 计划结束时间 + */ + planEndTime: string; + + /** + * 回款阶段 + */ + collectionStage: string; + + /** + * 预计回款比例(%) + */ + repaymentRate: number; + + /** + * 预计回款金额 + */ + repaymentAmount: number; + + /** + * 预计回款时间 + */ + repaymentTime: string; + + /** + * 回款延期天数 + */ + delayDay: number; + + /** + * 应收款日期 + */ + receivableDate: string; + + /** + * 原因说明 + */ + reasonsExplanation: string; + + /** + * 进度备注 + */ + scheduleRemark: string; + + /** + * 实际开始时间 + */ + realStartTime: string; + + /** + * 实际结束时间 + */ + realEndTime: string; + + /** + * 排序号 + */ + sortOrder: number; + + /** + * 备注 + */ + remark: string; + + /** + * 激活标识(1是 0否) + */ + activeFlag: string; + +} + +export interface ErpProjectPlanStageForm extends BaseEntity { + /** + * 计划阶段ID + */ + planStageId?: string | number; + + /** + * 项目ID + */ + projectId?: string | number; + + /** + * 项目计划ID + */ + projectPlanId?: string | number; + + /** + * 项目阶段 + */ + projectPhases?: string; + + /** + * 计划开始时间 + */ + planStartTime?: string; + + /** + * 计划结束时间 + */ + planEndTime?: string; + + /** + * 回款阶段 + */ + collectionStage?: string; + + /** + * 预计回款比例(%) + */ + repaymentRate?: number; + + /** + * 预计回款金额 + */ + repaymentAmount?: number; + + /** + * 预计回款时间 + */ + repaymentTime?: string; + + /** + * 回款延期天数 + */ + delayDay?: number; + + /** + * 应收款日期 + */ + receivableDate?: string; + + /** + * 原因说明 + */ + reasonsExplanation?: string; + + /** + * 进度备注 + */ + scheduleRemark?: string; + + /** + * 实际开始时间 + */ + realStartTime?: string; + + /** + * 实际结束时间 + */ + realEndTime?: string; + + /** + * 排序号 + */ + sortOrder?: number; + + /** + * 备注 + */ + remark?: string; + + /** + * 激活标识(1是 0否) + */ + activeFlag?: string; + +} + +export interface ErpProjectPlanStageQuery extends PageQuery { + + /** + * 项目ID + */ + projectId?: string | number; + + /** + * 项目计划ID + */ + projectPlanId?: string | number; + + /** + * 项目阶段 + */ + projectPhases?: string; + + /** + * 计划开始时间 + */ + planStartTime?: string; + + /** + * 计划结束时间 + */ + planEndTime?: string; + + /** + * 回款阶段 + */ + collectionStage?: string; + + /** + * 预计回款比例(%) + */ + repaymentRate?: number; + + /** + * 预计回款金额 + */ + repaymentAmount?: number; + + /** + * 预计回款时间 + */ + repaymentTime?: string; + + /** + * 回款延期天数 + */ + delayDay?: number; + + /** + * 应收款日期 + */ + receivableDate?: string; + + /** + * 原因说明 + */ + reasonsExplanation?: string; + + /** + * 进度备注 + */ + scheduleRemark?: string; + + /** + * 实际开始时间 + */ + realStartTime?: string; + + /** + * 实际结束时间 + */ + realEndTime?: string; + + /** + * 排序号 + */ + sortOrder?: number; + + /** + * 激活标识(1是 0否) + */ + activeFlag?: string; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/src/views/oa/base/printTemplate/template.vue b/src/views/oa/base/printTemplate/template.vue index c2a75db..2b73f9f 100644 --- a/src/views/oa/base/printTemplate/template.vue +++ b/src/views/oa/base/printTemplate/template.vue @@ -29,16 +29,7 @@ const template = ref({}); const editorRef = ref(); -const fieldList = ref([ - { - name: '字段1', - value: '${ziduan1}' - }, - { - name: '字段2', - value: '${ziduan2}' - } -]); +const fieldList = ref([]); const templateData = { data0: '合计-1', @@ -102,7 +93,7 @@ const options = ref({ }, autoSave: { enabled: true, - interval: 300000 + interval: 1000 * 60 * 5 } }, page: { @@ -119,7 +110,7 @@ const options = ref({ } }); const renderTemplate = (str, data) => { - return str.replace(/&\{(.*?)\}/g, (_, path) => { + return str.replace(/#\{(.*?)\}/g, (_, path) => { // console.log(path.split('.').reduce((o, k) => o?.[k], data) ?? ''); return path.split('.').reduce((o, k) => o?.[k], data) ?? ''; }); @@ -207,10 +198,15 @@ const fillData = (e) => { const insertText = (e) => { const editor = editorRef.value; - editor.insertContent({ - type: 'text', - text: e.varName - }); + editor.insertContent( + { + type: 'text', + text: e.varName + }, + { + updateSelection: false + } + ); }; onMounted(async () => { getPrintTemplate(route.query.templateId).then((e) => { diff --git a/src/views/oa/crm/crmSupplierInfo/index.vue b/src/views/oa/crm/crmSupplierInfo/index.vue new file mode 100644 index 0000000..ca24e6e --- /dev/null +++ b/src/views/oa/crm/crmSupplierInfo/index.vue @@ -0,0 +1,611 @@ + + + diff --git a/src/views/oa/crm/customerContact/index.vue b/src/views/oa/crm/customerContact/index.vue index 28537f5..6f2cfc1 100644 --- a/src/views/oa/crm/customerContact/index.vue +++ b/src/views/oa/crm/customerContact/index.vue @@ -3,38 +3,33 @@
- + - - + + - + - - - - - + + + + + - + - - - + + + 搜索 重置 @@ -101,9 +96,9 @@ - + @@ -131,12 +126,7 @@ - + @@ -158,8 +148,7 @@ - - + @@ -228,7 +217,7 @@ const dialog = reactive({ /** 查询客户信息下拉框结构 */ const customerInfoList = ref([]); const getCustomerInfoListSelect = async () => { - let res = await getCrmCustomerInfoList(null); + let res = await getCrmCustomerInfoList({ ourCompanyFlag: '0'}); customerInfoList.value = res.data; }; diff --git a/src/views/oa/crm/customerInfo/index.vue b/src/views/oa/crm/customerInfo/index.vue index 7358421..3dd8320 100644 --- a/src/views/oa/crm/customerInfo/index.vue +++ b/src/views/oa/crm/customerInfo/index.vue @@ -70,57 +70,60 @@ - - - - + + + + - + - + - + - + - - - + + + - - - - - - - - - - + + + + + + + + + + - + + + + +
+ + + + + + {{ currentCustomer.customerName }} + + + {{ currentCustomer.mnemonicName || '-' }} + + + + + + + + + + + + {{ currentCustomer.ownerName || '-' }} + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + +
+ + 该客户没有上级客户 + +
+
+ + + + + +
+ + + + + + + + + + + + + + + + +
+ + 该客户没有下级客户 + +
+
+
+
+ + +
diff --git a/src/views/oa/erp/contractInfo/contract.vue b/src/views/oa/erp/contractInfo/contract.vue new file mode 100644 index 0000000..698fa5f --- /dev/null +++ b/src/views/oa/erp/contractInfo/contract.vue @@ -0,0 +1,228 @@ + + + + + + diff --git a/src/views/oa/erp/contractInfo/index.vue b/src/views/oa/erp/contractInfo/index.vue index 3a8124b..1bf69e2 100644 --- a/src/views/oa/erp/contractInfo/index.vue +++ b/src/views/oa/erp/contractInfo/index.vue @@ -163,9 +163,12 @@