diff --git a/src/api/finance/purchasingdoc.ts b/src/api/finance/purchasingdoc.ts new file mode 100644 index 0000000..cb8e3ea --- /dev/null +++ b/src/api/finance/purchasingdoc.ts @@ -0,0 +1,131 @@ +/* + * Copyright (c) 2018-2025, cyweb All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + */ + +import request from '/@/utils/request'; + +/** + * 获取采购文件列表(含历史版本) + * @param applyId 采购申请ID + */ +export function getDocList(applyId: number | string) { + return request({ + url: '/purchase/purchasingdoc/list/' + applyId, + method: 'get' + }); +} + +/** + * 上传采购文件(招标代理) + * @param data 文件信息 + */ +export function uploadDoc(data: any) { + return request({ + url: '/purchase/purchasingdoc/upload', + method: 'post', + data + }); +} + +/** + * 重新上传采购文件 + * @param data 文件信息 + */ +export function reuploadDoc(data: any) { + return request({ + url: '/purchase/purchasingdoc/reupload', + method: 'post', + data + }); +} + +/** + * 获取采购文件下载地址 + * @param id 采购文件ID + */ +export function getDocDownloadUrl(id: number | string) { + return `/purchase/purchasingdoc/download/${id}`; +} + +/** + * 确认无误 + * @param data 审核信息 + */ +export function confirmDoc(data: any) { + return request({ + url: '/purchase/purchasingdoc/confirm', + method: 'post', + data + }); +} + +/** + * 退回修改 + * @param data 审核信息 + */ +export function returnDoc(data: any) { + return request({ + url: '/purchase/purchasingdoc/return', + method: 'post', + data + }); +} + +/** + * 确认流程结束 + * @param applyId 采购申请ID + */ +export function completeDoc(applyId: number | string) { + return request({ + url: '/purchase/purchasingdoc/complete', + method: 'post', + params: { applyId } + }); +} + +/** + * 获取审核记录 + * @param applyId 采购申请ID + */ +export function getAuditRecords(applyId: number | string) { + return request({ + url: '/purchase/purchasingdoc/audit-records/' + applyId, + method: 'get' + }); +} + +/** + * 获取待审核列表 + * @param params 分页参数 + */ +export function getMyPending(params?: any) { + return request({ + url: '/purchase/purchasingdoc/my-pending', + method: 'get', + params + }); +} + +/** + * 获取可执行操作 + * @param applyId 采购申请ID + */ +export function getAvailableActions(applyId: number | string) { + return request({ + url: '/purchase/purchasingdoc/actions/' + applyId, + method: 'get' + }); +} \ No newline at end of file diff --git a/src/api/finance/purchasingtemplate.ts b/src/api/finance/purchasingtemplate.ts new file mode 100644 index 0000000..227aeff --- /dev/null +++ b/src/api/finance/purchasingtemplate.ts @@ -0,0 +1,48 @@ +/* + * 采购模板管理 API + */ + +import request from '/@/utils/request'; + +/** + * 模板列表 + */ +export function listTemplates(params?: any) { + return request({ + url: '/purchase/purchasingtemplate/list', + method: 'get', + params, + }); +} + +/** + * 上传 / 覆盖模板 + * @param formData 含 file、type 的 FormData + */ +export function uploadTemplate(formData: FormData) { + return request({ + url: '/purchase/purchasingtemplate/upload', + method: 'post', + data: formData, + headers: { 'Content-Type': 'multipart/form-data' }, + }); +} + +/** + * 获取模板下载地址 + */ +export function getTemplateDownloadUrl(type: string) { + return `/purchase/purchasingtemplate/download?type=${encodeURIComponent(type)}`; +} + +/** + * 更新模板类型名称 + */ +export function updateTemplateTitle(data: { id: number | string; templateTitle: string }) { + return request({ + url: '/purchase/purchasingtemplate/updateTitle', + method: 'post', + data, + }); +} + diff --git a/src/api/purchase/purchasingBusinessLeader.ts b/src/api/purchase/purchasingBusinessLeader.ts new file mode 100644 index 0000000..ad5f58b --- /dev/null +++ b/src/api/purchase/purchasingBusinessLeader.ts @@ -0,0 +1,61 @@ +import request from '/@/utils/request'; + +/** + * 分页查询 + * @param params 查询参数 + */ +export function fetchList(params?: any) { + return request({ + url: '/purchase/purchasingBusinessLeader/page', + method: 'get', + params + }); +} + +/** + * 通过id查询 + * @param id ID + */ +export function getObj(id: string | number) { + return request({ + url: '/purchase/purchasingBusinessLeader/details', + method: 'get', + params: { id } + }); +} + +/** + * 新增业务分管校领导 + * @param obj 对象数据 + */ +export function addObj(obj: any) { + return request({ + url: '/purchase/purchasingBusinessLeader', + method: 'post', + data: obj + }); +} + +/** + * 修改业务分管校领导 + * @param obj 对象数据 + */ +export function putObj(obj: any) { + return request({ + url: '/purchase/purchasingBusinessLeader', + method: 'put', + data: obj + }); +} + +/** + * 删除业务分管校领导 + * @param ids ID数组 + */ +export function delObjs(ids: string[] | number[]) { + return request({ + url: '/purchase/purchasingBusinessLeader', + method: 'delete', + data: ids + }); +} \ No newline at end of file diff --git a/src/api/purchase/purchasingPurchaseManager.ts b/src/api/purchase/purchasingPurchaseManager.ts new file mode 100644 index 0000000..c4520d6 --- /dev/null +++ b/src/api/purchase/purchasingPurchaseManager.ts @@ -0,0 +1,41 @@ +import request from '/@/utils/request' + +export function fetchList(query?: any) { + return request({ + url: '/purchase/purchasingPurchaseManager/page', + method: 'get', + params: query + }) +} + +export function getObj(id: any) { + return request({ + url: '/purchase/purchasingPurchaseManager/details', + method: 'get', + params: { id } + }) +} + +export function addObj(obj: any) { + return request({ + url: '/purchase/purchasingPurchaseManager', + method: 'post', + data: obj + }) +} + +export function delObjs(ids: any) { + return request({ + url: '/purchase/purchasingPurchaseManager', + method: 'delete', + data: ids + }) +} + +export function putObj(obj: any) { + return request({ + url: '/purchase/purchasingPurchaseManager', + method: 'put', + data: obj + }) +} \ No newline at end of file diff --git a/src/api/recruit/recruitImitateAdjustBatch.ts b/src/api/recruit/recruitImitateAdjustBatch.ts index cfe0df8..956a0bd 100644 --- a/src/api/recruit/recruitImitateAdjustBatch.ts +++ b/src/api/recruit/recruitImitateAdjustBatch.ts @@ -76,8 +76,9 @@ export const getMNObj = (id: string | number) => { */ export const delObj = (id: string | number) => { return request({ - url: `/recruit/recruitImitateAdjustBatch/${id}`, - method: 'delete', + url: `/recruit/recruitImitateAdjustBatch/delete`, + method: 'post', + data: { id:id } }); }; @@ -87,8 +88,9 @@ export const delObj = (id: string | number) => { */ export const delMNObj = (id: string | number) => { return request({ - url: `/recruit/recruitImitateAdjustBatch/delMNObj/${id}`, - method: 'delete', + url: `/recruit/recruitImitateAdjustBatch/delMNObj`, + method: 'post', + data: { id:id } }); }; diff --git a/src/api/recruit/recruitPolicyFile.ts b/src/api/recruit/recruitPolicyFile.ts new file mode 100644 index 0000000..a27385b --- /dev/null +++ b/src/api/recruit/recruitPolicyFile.ts @@ -0,0 +1,106 @@ +import request from "/@/utils/request" + +// ========== 基础CRUD接口 ========== + +/** + * 分页查询列表数据 + * @param query - 查询参数对象 + * @returns Promise<分页数据> + */ +export function fetchList(query?: Object) { + return request({ + url: '/recruit/recruitPolicyFile/page', + method: 'get', + params: query + }) +} + +/** + * 新增数据 + * @param obj - 要新增的数据对象 + * @returns Promise - 操作结果 + */ +export function addObj(obj?: Object) { + return request({ + url: '/recruit/recruitPolicyFile', + method: 'post', + data: obj + }) +} + +/** + * 获取详情数据 + * @param obj - 查询参数对象(包含ID等) + * @returns Promise<数据详情> + */ +export function getObj(obj?: Object) { + return request({ + url: '/recruit/recruitPolicyFile/details', + method: 'get', + params: obj + }) +} + +/** + * 批量删除数据 + * @param ids - 要删除的ID数组 + * @returns Promise<操作结果> + */ +export function delObjs(ids?: Object) { + return request({ + url: '/recruit/recruitPolicyFile', + method: 'delete', + data: ids + }) +} + +/** + * 更新数据 + * @param obj - 要更新的数据对象 + * @returns Promise<操作结果> + */ +export function putObj(obj?: Object) { + return request({ + url: '/recruit/recruitPolicyFile', + method: 'put', + data: obj + }) +} + +// ========== 工具函数 ========== + +/** + * 验证字段值唯一性 + * @param rule - 验证规则对象 + * @param value - 要验证的值 + * @param callback - 验证回调函数 + * @param isEdit - 是否为编辑模式 + * + * @example + * // 在表单验证规则中使用 + * fieldName: [ + * { + * validator: (rule, value, callback) => { + * validateExist(rule, value, callback, form.id !== ''); + * }, + * trigger: 'blur', + * }, + * ] + */ +export function validateExist(rule: any, value: any, callback: any, isEdit: boolean) { + // 编辑模式下跳过验证 + if (isEdit) { + return callback(); + } + + // 查询是否存在相同值 + getObj({ [rule.field]: value }).then((response) => { + const result = response.data; + if (result !== null && result.length > 0) { + callback(new Error('数据已经存在')); + } else { + callback(); + } + }); +} + diff --git a/src/api/recruit/recruitPreexamPeople.ts b/src/api/recruit/recruitPreexamPeople.ts new file mode 100644 index 0000000..134832f --- /dev/null +++ b/src/api/recruit/recruitPreexamPeople.ts @@ -0,0 +1,56 @@ +import request from "/@/utils/request" + +// ========== 基础CRUD接口 ========== + +/** + * 分页查询列表数据 + * @param query - 查询参数对象 + * @returns Promise<分页数据> + */ +export function fetchList(query?: Object) { + return request({ + url: '/recruit/recruitPreexamPeople/page', + method: 'get', + params: query + }) +} + +/** + * 新增数据 + * @param obj - 要新增的数据对象 + * @returns Promise - 操作结果 + */ +export function addObj(obj?: Object) { + return request({ + url: '/recruit/recruitPreexamPeople', + method: 'post', + data: obj + }) +} + +/** + * 获取详情数据 + * @param obj - 查询参数对象(包含ID等) + * @returns Promise<数据详情> + */ +export function getObj(obj?: Object) { + return request({ + url: '/recruit/recruitPreexamPeople/details', + method: 'get', + params: obj + }) +} + +/** + * 删除 + * @param id + */ +export const delObj = (id: string | number) => { + return request({ + url: `/recruit/recruitPreexamPeople/delete`, + method: 'post', + data: { id: id } + }); +}; + + diff --git a/src/api/recruit/recruitSchoolHistory.ts b/src/api/recruit/recruitSchoolHistory.ts new file mode 100644 index 0000000..113e0eb --- /dev/null +++ b/src/api/recruit/recruitSchoolHistory.ts @@ -0,0 +1,17 @@ +import request from "/@/utils/request" + +// ========== 基础CRUD接口 ========== + +/** + * 分页查询列表数据 + * @param query - 查询参数对象 + * @returns Promise<分页数据> + */ +export function fetchList(query?: Object) { + return request({ + url: '/recruit/recruitSchoolHistory/page', + method: 'get', + params: query + }) +} + diff --git a/src/api/recruit/recruitfile.ts b/src/api/recruit/recruitfile.ts new file mode 100644 index 0000000..5c6b902 --- /dev/null +++ b/src/api/recruit/recruitfile.ts @@ -0,0 +1,19 @@ +import request from '/@/utils/request'; + + +export const exportPreStuSuccess = (data?: any) => { + return request({ + url: '/recruit/file/exportPreStuSuccess', + method: 'post', + data: data, + }); +}; + + +export const exportAdjustExcel = (data?: any) => { + return request({ + url: '/recruit/file/exportAdjustExcel', + method: 'post', + data: data, + }); +}; \ No newline at end of file diff --git a/src/assets/file/履约验收模版/表3:履约验收表模板(工程).wps b/src/assets/file/履约验收模版/表3:履约验收表模板(工程).wps deleted file mode 100644 index 5f38d0f..0000000 Binary files a/src/assets/file/履约验收模版/表3:履约验收表模板(工程).wps and /dev/null differ diff --git a/src/assets/file/履约验收模版/表3:履约验收表模板(服务).wps b/src/assets/file/履约验收模版/表3:履约验收表模板(服务).wps deleted file mode 100644 index 2a6d966..0000000 Binary files a/src/assets/file/履约验收模版/表3:履约验收表模板(服务).wps and /dev/null differ diff --git a/src/assets/file/履约验收模版/表3:履约验收表模板(货物).wps b/src/assets/file/履约验收模版/表3:履约验收表模板(货物).wps deleted file mode 100644 index e55652a..0000000 Binary files a/src/assets/file/履约验收模版/表3:履约验收表模板(货物).wps and /dev/null differ diff --git a/src/assets/file/服务商城采购需求模板/服务商城项目需求模板(公开比选).doc b/src/assets/file/服务商城采购需求模板/服务商城项目需求模板(公开比选).doc deleted file mode 100644 index 1784b4f..0000000 Binary files a/src/assets/file/服务商城采购需求模板/服务商城项目需求模板(公开比选).doc and /dev/null differ diff --git a/src/assets/file/服务商城采购需求模板/服务商城项目需求模板(直选).doc b/src/assets/file/服务商城采购需求模板/服务商城项目需求模板(直选).doc deleted file mode 100644 index 99db800..0000000 Binary files a/src/assets/file/服务商城采购需求模板/服务商城项目需求模板(直选).doc and /dev/null differ diff --git a/src/assets/file/服务商城采购需求模板/服务商城项目需求模板(邀请比选).doc b/src/assets/file/服务商城采购需求模板/服务商城项目需求模板(邀请比选).doc deleted file mode 100644 index 754b5f7..0000000 Binary files a/src/assets/file/服务商城采购需求模板/服务商城项目需求模板(邀请比选).doc and /dev/null differ diff --git a/src/assets/file/服务商城采购需求模板/附1:服务商城服务类品目.xlsx b/src/assets/file/服务商城采购需求模板/附1:服务商城服务类品目.xlsx deleted file mode 100644 index ad22444..0000000 Binary files a/src/assets/file/服务商城采购需求模板/附1:服务商城服务类品目.xlsx and /dev/null differ diff --git a/src/assets/file/服务商城采购需求模板/附2:服务商城工程类品目.xlsx b/src/assets/file/服务商城采购需求模板/附2:服务商城工程类品目.xlsx deleted file mode 100644 index 0073047..0000000 Binary files a/src/assets/file/服务商城采购需求模板/附2:服务商城工程类品目.xlsx and /dev/null differ diff --git a/src/assets/file/服务商城项目需求模板(公开比选).doc b/src/assets/file/服务商城项目需求模板(公开比选).doc deleted file mode 100644 index 1784b4f..0000000 Binary files a/src/assets/file/服务商城项目需求模板(公开比选).doc and /dev/null differ diff --git a/src/assets/file/服务商城项目需求模板(直选).doc b/src/assets/file/服务商城项目需求模板(直选).doc deleted file mode 100644 index 99db800..0000000 Binary files a/src/assets/file/服务商城项目需求模板(直选).doc and /dev/null differ diff --git a/src/assets/file/服务商城项目需求模板(邀请比选).doc b/src/assets/file/服务商城项目需求模板(邀请比选).doc deleted file mode 100644 index 754b5f7..0000000 Binary files a/src/assets/file/服务商城项目需求模板(邀请比选).doc and /dev/null differ diff --git a/src/assets/file/江苏省常州技师学院商务洽谈纪要.docx b/src/assets/file/江苏省常州技师学院商务洽谈纪要.docx deleted file mode 100644 index 4520def..0000000 Binary files a/src/assets/file/江苏省常州技师学院商务洽谈纪要.docx and /dev/null differ diff --git a/src/assets/file/表1:采购需求填报模板.doc b/src/assets/file/表1:采购需求填报模板.doc deleted file mode 100644 index 1ce3258..0000000 Binary files a/src/assets/file/表1:采购需求填报模板.doc and /dev/null differ diff --git a/src/assets/file/表2 政府采购意向公告模版.xlsx b/src/assets/file/表2 政府采购意向公告模版.xlsx deleted file mode 100644 index ee6a3b0..0000000 Binary files a/src/assets/file/表2 政府采购意向公告模版.xlsx and /dev/null differ diff --git a/src/assets/file/表3:履约验收表模板.docx b/src/assets/file/表3:履约验收表模板.docx deleted file mode 100644 index c346986..0000000 Binary files a/src/assets/file/表3:履约验收表模板.docx and /dev/null differ diff --git a/src/assets/file/表4:采购申请审批表(系统生成).docx b/src/assets/file/表4:采购申请审批表(系统生成).docx deleted file mode 100644 index d61b7a8..0000000 Binary files a/src/assets/file/表4:采购申请审批表(系统生成).docx and /dev/null differ diff --git a/src/assets/file/表5:采购文件审批表(系统生成).docx b/src/assets/file/表5:采购文件审批表(系统生成).docx deleted file mode 100644 index a45951d..0000000 Binary files a/src/assets/file/表5:采购文件审批表(系统生成).docx and /dev/null differ diff --git a/src/assets/file/表6:项目可行性论证报告模板.doc b/src/assets/file/表6:项目可行性论证报告模板.doc deleted file mode 100644 index fdec02f..0000000 Binary files a/src/assets/file/表6:项目可行性论证报告模板.doc and /dev/null differ diff --git a/src/assets/file/表7:单一来源论专家证附件.docx b/src/assets/file/表7:单一来源论专家证附件.docx deleted file mode 100644 index c2a2ea6..0000000 Binary files a/src/assets/file/表7:单一来源论专家证附件.docx and /dev/null differ diff --git a/src/assets/file/部门自行采购市场采购纪要.docx b/src/assets/file/部门自行采购市场采购纪要.docx deleted file mode 100644 index f8ed17e..0000000 Binary files a/src/assets/file/部门自行采购市场采购纪要.docx and /dev/null differ diff --git a/src/assets/file/部门采购询价模版.docx b/src/assets/file/部门采购询价模版.docx deleted file mode 100644 index 7765bb3..0000000 Binary files a/src/assets/file/部门采购询价模版.docx and /dev/null differ diff --git a/src/assets/file/附件1:进口产品申请及专家论证意见表.doc b/src/assets/file/附件1:进口产品申请及专家论证意见表.doc deleted file mode 100644 index ecc74c8..0000000 Binary files a/src/assets/file/附件1:进口产品申请及专家论证意见表.doc and /dev/null differ diff --git a/src/components/Upload/index.vue b/src/components/Upload/index.vue index 09ff0e4..c778943 100644 --- a/src/components/Upload/index.vue +++ b/src/components/Upload/index.vue @@ -376,7 +376,19 @@ const handleRemove = (file: { name?: string; id?: string; url?: string }) => { }; const handlePreview = (file: any) => { - other.downBlobFile(file.url, {}, file.name); + // 优先使用文件ID下载(采购附件使用 downloadById 接口) + if (file.id) { + // 判断是否是采购附件(通过 fileType 判断) + const downloadUrl = `/purchase/purchasingfiles/downloadById?fileId=${encodeURIComponent(file.id)}`; + other.downBlobFile(downloadUrl, {}, file.name || file.fileTitle || '文件'); + return; + } + // 兼容旧的URL下载方式 + if (file.url) { + other.downBlobFile(file.url, {}, file.name || file.fileTitle || '文件'); + return; + } + useMessage().warning('无法获取文件下载信息'); }; // 添加 handleExceed 函数 diff --git a/src/flow/components/handle-job/handle.vue b/src/flow/components/handle-job/handle.vue index cfe1c61..6061cd9 100644 --- a/src/flow/components/handle-job/handle.vue +++ b/src/flow/components/handle-job/handle.vue @@ -45,7 +45,7 @@ type="textarea" :placeholder="t('jfcomment.inputRemarkTip')"> - + diff --git a/src/flow/designer/views/json-view.vue b/src/flow/designer/views/json-view.vue index 1c8c4c9..a4f3343 100644 --- a/src/flow/designer/views/json-view.vue +++ b/src/flow/designer/views/json-view.vue @@ -46,7 +46,8 @@ const methods = { open(flowData) { flowData = stringifyRemoveNullKey(flowData); - data.flowData = !window.isWebTest ? {contact: "演示环境不能操作,如需了解联系我们"}: JSON.parse(flowData); + // data.flowData = !window.isWebTest ? {contact: "演示环境不能操作,如需了解联系我们"}: JSON.parse(flowData); + data.flowData = JSON.parse(flowData); data.viewJsonVisible = true; }, onClose() { diff --git a/src/hooks/table.ts b/src/hooks/table.ts index e112431..69f56da 100644 --- a/src/hooks/table.ts +++ b/src/hooks/table.ts @@ -123,7 +123,7 @@ export function useTable(options?: BasicTableProps) { }; // 覆盖默认值 - const state = mergeDefaultOptions(defaultOptions, options); + const state = mergeDefaultOptions(defaultOptions, options || {}); /** * 发起分页查询,并设置表格数据和分页信息 diff --git a/src/stores/userInfo.ts b/src/stores/userInfo.ts index 1182787..986b0ca 100644 --- a/src/stores/userInfo.ts +++ b/src/stores/userInfo.ts @@ -1,5 +1,5 @@ import { defineStore } from 'pinia'; -import { Session } from '/@/utils/storage'; +import {Local, Session} from '/@/utils/storage'; import { getUserInfo, login, loginByMobile, loginBySocial, refreshTokenApi } from '/@/api/login/index'; import { useMessage } from '/@/hooks/message'; import { initUserTableConfigs } from '/@/api/admin/usertable'; @@ -34,9 +34,13 @@ export const useUserInfo = defineStore('userInfo', { return new Promise((resolve, reject) => { login(data) .then((res) => { + debugger // 存储token 信息 Session.set('token', res.access_token); Session.set('refresh_token', res.refresh_token); + Local.remove('roleCode'); + Local.remove('roleName'); + Local.remove('roleId'); resolve(res); }) .catch((err) => { diff --git a/src/views/admin/system/dept/index.vue b/src/views/admin/system/dept/index.vue index 5723be5..694711a 100644 --- a/src/views/admin/system/dept/index.vue +++ b/src/views/admin/system/dept/index.vue @@ -128,3 +128,8 @@ const resetQuery = () => { queryRef.value.resetFields(); }; + \ No newline at end of file diff --git a/src/views/admin/system/role/change-role.vue b/src/views/admin/system/role/change-role.vue index e4eb5c3..6dcb686 100644 --- a/src/views/admin/system/role/change-role.vue +++ b/src/views/admin/system/role/change-role.vue @@ -13,16 +13,21 @@ @@ -121,31 +126,12 @@ defineExpose({ flex-wrap: wrap; } } -.role-group { - width: 100%; - flex: 0 0 100%; - margin-bottom: 12px; - display: flex; - flex-wrap: wrap; - align-items: center; - gap: 8px 12px; - - &:last-child { - margin-bottom: 0; - } -} -.group-name { - font-size: 13px; - color: var(--el-text-color-secondary); - margin-bottom: 6px; -} .role-radio-group { display: flex; - flex-wrap: wrap; - gap: 8px; - align-items: flex-start; + flex-direction: column; + gap: 6px; + width: 100%; - /* 每个分组内按钮可换行,分组之间不重叠 */ :deep(.el-radio-button) { margin: 0; } @@ -153,9 +139,35 @@ defineExpose({ border-radius: 6px !important; border: 1px solid var(--el-border-color) !important; margin-left: 0 !important; + line-height: 1.3; } :deep(.el-radio-button.is-active .el-radio-button__inner) { border-color: var(--el-color-primary) !important; } } +.role-group-card { + width: 100%; + flex: 0 0 auto; + + :deep(.el-card__header) { + padding: 6px 12px; + font-size: 14px; + font-weight: 600; + color: var(--el-text-color-primary); + } + :deep(.el-card__body) { + padding: 6px 12px 8px; + } +} +.role-group { + display: flex; + flex-wrap: wrap; + align-items: center; + gap: 4px 8px; +} +.group-name { + font-size: 14px; + font-weight: 600; + color: var(--el-text-color-primary); +} \ No newline at end of file diff --git a/src/views/finance/purchaseagent/index.vue b/src/views/finance/purchaseagent/index.vue index a78f6a7..ec6ba98 100644 --- a/src/views/finance/purchaseagent/index.vue +++ b/src/views/finance/purchaseagent/index.vue @@ -46,7 +46,8 @@ + @click="formDialogRef.openDialog('add')" + v-auth="'purchase_purchasingagent_add'"> 新增 @@ -91,14 +92,16 @@ 编辑 删除 diff --git a/src/views/finance/purchasingcategory/index.vue b/src/views/finance/purchasingcategory/index.vue index 709f019..76cbbde 100644 --- a/src/views/finance/purchasingcategory/index.vue +++ b/src/views/finance/purchasingcategory/index.vue @@ -12,7 +12,8 @@
新增 @@ -65,14 +66,16 @@ 编辑 删除 diff --git a/src/views/finance/purchasingrequisition/add.vue b/src/views/finance/purchasingrequisition/add.vue index cac4e86..417ac8b 100644 --- a/src/views/finance/purchasingrequisition/add.vue +++ b/src/views/finance/purchasingrequisition/add.vue @@ -2,7 +2,7 @@
- - - - - + + + +
@@ -412,6 +370,7 @@ const ImplementForm = defineAsyncComponent(() => import('./implementForm.vue')); const ActionDropdown = defineAsyncComponent(() => import('/@/components/tools/action-dropdown.vue')); const PurchasingAcceptModal = defineAsyncComponent(() => import('./accept/PurchasingAcceptModal.vue')); const FlowCommentTimeline = defineAsyncComponent(() => import('/@/views/jsonflow/comment/timeline.vue')); +const DocAuditDialog = defineAsyncComponent(() => import('./docAudit/DocAuditDialog.vue')); // 字典数据和品目树数据 const dictData = ref({ @@ -431,6 +390,7 @@ const formDialogRef = ref() const acceptModalRef = ref() const searchFormRef = ref() const showSearch = ref(true) +const docAuditDialogRef = ref() /** 审批过程弹窗:是否显示、当前行对应的流程 job(供 Comment 组件用)、类型(申请单/文件) */ const showFlowComment = ref(false) const currFlowJob = ref<{ id?: number; flowInstId?: number } | null>(null) @@ -599,6 +559,11 @@ const handleImplement = (row: any) => { implementFormRef.value?.openDialog(row); }; +/** 打开采购文件审核 */ +const handleDocAudit = (row: any) => { + docAuditDialogRef.value?.open(row); +}; + /** * 删除当前行 * @param row - 当前行数据 @@ -611,7 +576,7 @@ const handleDelete = async (row: any) => { } try { - await delObj(row.id); + await delObj({id:row.id}); useMessage().success('删除成功'); getDataList(); } catch (err: any) { @@ -692,6 +657,12 @@ const getActionMenuItems = (row: any) => { icon: Collection, visible: () => row?.purchaseMode === '2' || (row?.purchaseMode === '0' && row?.purchaseType === '4'), }, + { + command: 'docAudit', + label: '采购文件审核', + icon: DocumentChecked, + visible: () => row?.implementType === '2' && row?.agentId, + }, ]; }; @@ -725,6 +696,9 @@ const handleMoreCommand = (command: string, row: any) => { case 'assignAgent': openAssignAgentDialog(row); break; + case 'docAudit': + handleDocAudit(row); + break; } }; diff --git a/src/views/finance/purchasingtemplate/index.vue b/src/views/finance/purchasingtemplate/index.vue new file mode 100644 index 0000000..c6be816 --- /dev/null +++ b/src/views/finance/purchasingtemplate/index.vue @@ -0,0 +1,271 @@ + + + + + + diff --git a/src/views/purchase/purchasingBusinessDept/index.vue b/src/views/purchase/purchasingBusinessDept/index.vue index 0beac86..24450e3 100644 --- a/src/views/purchase/purchasingBusinessDept/index.vue +++ b/src/views/purchase/purchasingBusinessDept/index.vue @@ -46,7 +46,7 @@
- 业务分管部门及人员 + 业务分管处室及人员
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/views/purchase/purchasingBusinessLeader/index.vue b/src/views/purchase/purchasingBusinessLeader/index.vue new file mode 100644 index 0000000..08db499 --- /dev/null +++ b/src/views/purchase/purchasingBusinessLeader/index.vue @@ -0,0 +1,240 @@ + + + + + \ No newline at end of file diff --git a/src/views/purchase/purchasingPurchaseManager/form.vue b/src/views/purchase/purchasingPurchaseManager/form.vue new file mode 100644 index 0000000..4eea09b --- /dev/null +++ b/src/views/purchase/purchasingPurchaseManager/form.vue @@ -0,0 +1,228 @@ + + + + + \ No newline at end of file diff --git a/src/views/purchase/purchasingPurchaseManager/index.vue b/src/views/purchase/purchasingPurchaseManager/index.vue new file mode 100644 index 0000000..6581e2d --- /dev/null +++ b/src/views/purchase/purchasingPurchaseManager/index.vue @@ -0,0 +1,254 @@ + + + + + \ No newline at end of file diff --git a/src/views/purchase/purchasingSchoolLeader/index.vue b/src/views/purchase/purchasingSchoolLeader/index.vue index 5ea4f5d..5d98bdb 100644 --- a/src/views/purchase/purchasingSchoolLeader/index.vue +++ b/src/views/purchase/purchasingSchoolLeader/index.vue @@ -39,13 +39,15 @@
- 校领导(党委)管理 + 校党委人员
+ @click="formDialogRef.openDialog('add')" + v-auth="'purchase_purchasingSchoolLeader_add'" + > 新增 @@ -103,7 +105,8 @@ 删除 diff --git a/src/views/recruit/common/import-recruit-info.vue b/src/views/recruit/common/import-recruit-info.vue index b7a35ff..83e2fd2 100644 --- a/src/views/recruit/common/import-recruit-info.vue +++ b/src/views/recruit/common/import-recruit-info.vue @@ -61,7 +61,8 @@ const uploadRef = ref<{ clearFiles?: () => void }>() const titleMap: Record = { R10001: '计划专业导入', R10002: '地区分数导入', - R10003: '中招平台数据导入' + R10003: '中招平台数据导入', + R10004: '学校维护导入', } // 方法 const init = (type: any) => { diff --git a/src/views/recruit/recruitImitateAdjustBatch/addMNStu.vue b/src/views/recruit/recruitImitateAdjustBatch/addMNStu.vue index c9b6cce..71dafe5 100644 --- a/src/views/recruit/recruitImitateAdjustBatch/addMNStu.vue +++ b/src/views/recruit/recruitImitateAdjustBatch/addMNStu.vue @@ -177,7 +177,7 @@ const remoteTeacherByQuery = (query: string) => { serialNumberList.value = [] if (query !== '') { setTimeout(() => { - getList({ groupId: dataForm.groupId, name: query }).then((response: any) => { + getList({ groupId: dataForm.groupId, serialNumber: query }).then((response: any) => { serialNumberList.value = response.data }) }, 200) diff --git a/src/views/recruit/recruitImitateAdjustBatch/index.vue b/src/views/recruit/recruitImitateAdjustBatch/index.vue index 9bb88de..43c9d1a 100644 --- a/src/views/recruit/recruitImitateAdjustBatch/index.vue +++ b/src/views/recruit/recruitImitateAdjustBatch/index.vue @@ -85,7 +85,8 @@ type="warning" link icon="Download" - @click="handleExport(scope.row.batchCode, scope.row.groupId)" + :loading="btnLoading" + @click="handleExport(scope.row)" > 导出模拟结果 @@ -132,6 +133,7 @@ import { BasicTableProps, useTable } from '/@/hooks/table' import { useMessage, useMessageBox } from '/@/hooks/message' import { getList } from '/@/api/recruit/recruitstudentplangroup' import { delObj, fetchList } from '/@/api/recruit/recruitImitateAdjustBatch' +import {exportAdjustExcel} from "/@/api/recruit/recruitfile" const TableForm = defineAsyncComponent(() => import('./detaiform.vue')) const MnTable = defineAsyncComponent(() => import('./mnTable.vue')) @@ -204,17 +206,14 @@ const showTable = (batchNo: string, groupId: string) => { }) } +const btnLoading=ref(false) // 导出模拟结果 -const handleExport = async (code: string, gid: string) => { - try { - await downBlobFile( - '/recruit/recruitImitateAdjustBatch/exportExcel', - { batchNo: code, groupId: gid }, - '招生模拟统计.xls' - ) - } catch (error: any) { - message.error(error.msg || '导出失败') - } +const handleExport = async (data:any) => { + btnLoading.value=true + exportAdjustExcel(data).then((res:any)=>{ + messageBox.success('导出后台执行中,请稍后查看下载任务') + btnLoading.value=false + }) } // 删除 diff --git a/src/views/recruit/recruitImitateAdjustBatch/mnTable.vue b/src/views/recruit/recruitImitateAdjustBatch/mnTable.vue index b5702f1..04fc66b 100644 --- a/src/views/recruit/recruitImitateAdjustBatch/mnTable.vue +++ b/src/views/recruit/recruitImitateAdjustBatch/mnTable.vue @@ -3,7 +3,7 @@ title="模拟列表" :close-on-click-modal="false" v-model="visible" - width="80%" + width="98%" > @@ -109,6 +109,7 @@ @@ -124,11 +145,16 @@ import { getDeptList } from '/@/api/basic/basicclass' const TableForm = defineAsyncComponent(() => import('./detaiform.vue')) const MajorGroupByDeptForm = defineAsyncComponent(() => import('/@/views/recruit/recruitplanmajor/majorGroupByDept.vue')) +const ImportRecruitInfo = defineAsyncComponent(() => import('/@/views/recruit/common/import-recruit-info.vue')); +const SchoolHistory = defineAsyncComponent(() => import('/@/views/recruit/recruitstudentschool/school-history.vue')) + const { hasAuth } = useAuth() // 消息提示 hooks const message = useMessage() const messageBox = useMessageBox() +const ImportRecruitInfoRef=ref(); +const SchoolHistoryRef=ref() // 表格引用 const tableRef = ref() const searchFormRef = ref() @@ -236,6 +262,14 @@ const resetQuery = () => { getDataList() } +const handleShowHistory=()=>{ + SchoolHistoryRef.value?.init() +} + +const handleImportDialog = () => { + ImportRecruitInfoRef.value?.init("R10004"); +}; + onMounted(() => { init() }) diff --git a/src/views/recruit/recruitstudentschool/school-history.vue b/src/views/recruit/recruitstudentschool/school-history.vue new file mode 100644 index 0000000..4e071b2 --- /dev/null +++ b/src/views/recruit/recruitstudentschool/school-history.vue @@ -0,0 +1,63 @@ + + + + + + \ No newline at end of file diff --git a/src/views/recruit/recruitstudentsignup/areaStaticByCZ.vue b/src/views/recruit/recruitstudentsignup/areaStaticByCZ.vue index 413d0a4..502f8fd 100644 --- a/src/views/recruit/recruitstudentsignup/areaStaticByCZ.vue +++ b/src/views/recruit/recruitstudentsignup/areaStaticByCZ.vue @@ -1,9 +1,8 @@