@@ -99,7 +101,7 @@ const formContext = inject(formContextKey, void 0);
const formItemContext = inject(formItemContextKey, void 0);
// 判断是否禁用上传和删除
const self_disabled = computed(() => {
- return props.disabled || formContext?.disabled;
+ return props.disabled || formContext?.disabled ;
});
/**
diff --git a/src/components/invBid/common/PostInvestmentEvaluationForm.vue b/src/components/invBid/common/PostInvestmentEvaluationForm.vue
index fa3ba26..2ac7673 100644
--- a/src/components/invBid/common/PostInvestmentEvaluationForm.vue
+++ b/src/components/invBid/common/PostInvestmentEvaluationForm.vue
@@ -5,18 +5,18 @@
-
{{ t('postInvestmentEvaluationForm.unitSuffix') }}
-
+
-
{{ t('postInvestmentEvaluationForm.unitSuffix') }}
-
+
@@ -125,7 +125,7 @@
{{ t('postInvestmentEvaluationForm.basicInfo.projectDirection') }}
-
{{ formData.projectInvestmentDirection || 'XXX' }}
+
{{ initTypeString(projectDirectionOptions,formData.projectInvestmentDirection) }}
{{ t('postInvestmentEvaluationForm.basicInfo.directionSubdivision')
}}
@@ -143,7 +143,7 @@
{{
t('postInvestmentEvaluationForm.basicInfo.majorInvestmentProject') }}
-
{{ formData.majorInvestmentProjects || 'XXX' }}
+
{{ initTypeString(yesOrNo,formData.majorInvestmentProjects) }}
{{ t('postInvestmentEvaluationForm.basicInfo.keyProject') }}
{{ initTypeString(projectImportantOptions,formData.keyProject) || 'XXX' }}
@@ -151,7 +151,7 @@
{{ t('postInvestmentEvaluationForm.basicInfo.isWithinMainBusiness')
}}
-
{{ formData.isMainBusiness || 'XXX' }}
+
{{ initTypeString(yesOrNo,formData.isMainBusiness) }}
{{ t('postInvestmentEvaluationForm.basicInfo.mainBusinessType') }}
{{ initTypeString(mainBusinessOptions,formData.mainBusinessTypes) || 'XXX' }}
@@ -274,7 +274,7 @@
{{ formData.decisionType || 'XXX' }}
{{
t('postInvestmentEvaluationForm.decisionInfo.isProjectApprovalProcedureCompleted') }}
-
{{ formData.isProjectApprovalCompleted || 'XXX'
+
{{ initTypeString(yesOrNo,formData.isProjectApprovalCompleted) || 'XXX'
}}
@@ -292,7 +292,7 @@
{{
t('postInvestmentEvaluationForm.decisionInfo.isDecisionProcedureCompleted')
}}
-
{{ formData.isDecisionProcedureCompleted || 'XXX' }}
+
{{ initTypeString(yesOrNo,formData.isDecisionProcedureCompleted) || 'XXX' }}
{{
t('postInvestmentEvaluationForm.decisionInfo.decisionProcedureDocumentNumber') }}
{{ formData.decisionProcedureFileNo || 'XXX' }}
@@ -531,7 +531,8 @@ import {
constructionNatureOptions, constructionStageOptions,
Enums, investmentAreaOptions, investmentCategoryOptions, mainBusinessOptions, projectDirectionDetailsOptions,
projectImportantOptions, projectNatureOptions,
- projectSourceOptions, projectStatusOptions, strategicIndustryOptions
+ projectSourceOptions, projectStatusOptions, strategicIndustryOptions,projectDirectionOptions,
+ yesOrNo
} from '/@/hooks/enums';
import { PostInvestmentEvaluation, ProjectInvestmentInfo } from '/@/views/invBid/postInvestmentEvaluation/interface/type';
import { InvestmentProjectProgress } from '/@/views/invMid/progressReport/interface/type';
@@ -648,7 +649,7 @@ const formData = reactive
({ ...defaultForm });
* 提交数据表单
* */
const submitFormData = ref({} as PostInvestmentEvaluation);
-const requiredRule = [{ required: true, message: `${t('该字段必填')}` },{validator: (rule: any, value:any,callback: (e?: Error) => void) => {
+const requiredRule = [{ required: true, message: `该字段必填` },{validator: (rule: any, value:any,callback: (e?: Error) => void) => {
// 检查是否为空值
if (value === '' || value === null || value === undefined) {
callback()
@@ -659,7 +660,7 @@ const requiredRule = [{ required: true, message: `${t('该字段必填')}` },{va
if (!isNaN(numValue) && isFinite(numValue)) {
callback()
} else {
- callback(new Error(`${t('common.isNumber')}`))
+ callback(new Error(`必须是一个数字`))
}
}}]
const rules = ref>({
@@ -763,7 +764,7 @@ defineExpose({
if (res){
return submitFormData.value;
}
- return false;
+ return false
},
})
const uploadChange = (type:number,_:any,data:any[],index?:number) => {
diff --git a/src/components/investment/ExpertDetailDialog.vue b/src/components/investment/ExpertDetailDialog.vue
index fde78f2..7bc59d8 100644
--- a/src/components/investment/ExpertDetailDialog.vue
+++ b/src/components/investment/ExpertDetailDialog.vue
@@ -32,7 +32,7 @@
{{ detail.workUnit || '-' }}
- {{ levelLabel(detail.level) }}
+ {{ level.find((item:any) => item.value === detail.level)?.label || '--' }}
{{ statusLabel(detail.status) }}
@@ -82,6 +82,7 @@
@@ -1209,17 +1033,4 @@ const handleProjectMainUnitChange = (value: any) => {
.annual-investment-table :deep(.el-table__body-wrapper) {
overflow-x: auto;
}
-
-/* 必填字段标记 - 在标题前添加红色星号 */
-.required-field::before {
- content: '*';
- color: var(--el-color-danger);
- margin-right: 4px;
-}
-
-/* 错误状态样式 - 输入框红色边框 */
-.annual-investment-table :deep(.is-error .el-input__wrapper) {
- border-color: var(--el-color-danger) !important;
- box-shadow: 0 0 0 1px var(--el-color-danger) inset !important;
-}
diff --git a/src/components/investment/common/ProjectPlanApplyFormDetails.vue b/src/components/investment/common/ProjectPlanApplyFormDetails.vue
index ba6206c..0a49cc5 100644
--- a/src/components/investment/common/ProjectPlanApplyFormDetails.vue
+++ b/src/components/investment/common/ProjectPlanApplyFormDetails.vue
@@ -438,7 +438,7 @@ import {projectNatureOptions,
cityStrategyOptions, Enums
} from "/@/hooks/enums"
import type { FormInstance, FormRules } from 'element-plus';
-import FlowFormView from '/@/components/workbench/common/FlowFormView.vue'
+import FlowFormView from '/@/components/workbench/common/FlowFormView.vue';
const { t } = useI18n();
const useForm = ref();
const props = withDefaults(defineProps<{
@@ -523,6 +523,9 @@ const defaultForm: ProjectPlanApplyFormData = {
submitUnitLeadershipOpinion: '',
submitUnitMainLeadershipOpinion: '',
planImageQuota:'',
+ status:0,
+ deptId:0,
+ processInstanceId:'',
},
investmentProjects: [
{
diff --git a/src/components/investment/common/ProjectProgressReportForm.vue b/src/components/investment/common/ProjectProgressReportForm.vue
index 3e357e0..9b84ee3 100644
--- a/src/components/investment/common/ProjectProgressReportForm.vue
+++ b/src/components/investment/common/ProjectProgressReportForm.vue
@@ -207,13 +207,8 @@
-
-
-
-
-
+
diff --git a/src/components/investment/common/ProjectProgressReportFormDeatils.vue b/src/components/investment/common/ProjectProgressReportFormDeatils.vue
index d952c8b..dd18d4a 100644
--- a/src/components/investment/common/ProjectProgressReportFormDeatils.vue
+++ b/src/components/investment/common/ProjectProgressReportFormDeatils.vue
@@ -1,8 +1,7 @@
{{ title ? title : t('progressReport.form.title') }}
- {{ t('progressReport.form.reportTime') }}: {{ formData.createTime || reportTime }}
-
+ {{ t('progressReport.form.reportTime') }}: {{formData.createTime || reportTime }}
{{ t('progressReport.form.unit') }}
@@ -101,15 +91,15 @@
{{ t('progressReport.form.currentYearPlannedAmount') }}
- {{ formData.plannedPayment + ' ' + t('progressReport.form.unitSuffix') }}
+ {{formData.plannedPayment + ' ' + t('progressReport.form.unitSuffix')}}
- {{ formData.actualPayment + ' ' + t('progressReport.form.unitSuffix') }}
+ {{formData.actualPayment + ' ' + t('progressReport.form.unitSuffix')}}
- {{ formData.investmentPlanCompletionRate }} %
+ {{formData.investmentPlanCompletionRate}} %
@@ -119,7 +109,7 @@
- {{ formData.achievements }}
+ {{formData.achievements}}
@@ -127,7 +117,7 @@
- {{ formData.coordinationIssues }}
+ {{formData.coordinationIssues}}
@@ -135,7 +125,7 @@
- {{ formData.nextWorkPlan }}
+ {{formData.nextWorkPlan}}
@@ -143,9 +133,8 @@
-
-
+
@@ -153,7 +142,7 @@
- {{ formData.remarks }}
+ {{formData.remarks}}
@@ -161,8 +150,7 @@
- {{ formData.isFinalApplication == '1' ? t('progressReport.form.yes') :
- t('progressReport.form.no') }}
+ {{formData.isFinalApplication == '1' ? t('progressReport.form.yes') : t('progressReport.form.no')}}
@@ -212,8 +200,8 @@ export interface ProjectProgressReportFormData {
const props = defineProps<{
modelValue?: InvestmentProjectProgress;
- rules?: FormRules;
- title?: string;
+ rules?:FormRules;
+ title?: string;
}>();
const emit = defineEmits<{
@@ -221,37 +209,37 @@ const emit = defineEmits<{
}>();
const useForm = ref
()
const defaultForm = reactive({
- id: undefined,
- projectName: '',
- projectId: undefined,
- projectStatus: '',
- constructionStage: '',
- implementingBody: '',
- projectTotalAmount: undefined,
- cumulativeInvestmentToDate: undefined,
- completionRate: undefined,
- cumulativePaymentToDate: undefined,
- paymentCompletionRate: undefined,
- annualReport: undefined,
- annualPlannedInvestment: undefined,
- ytdRemainingInvestment: undefined,
- investmentCompletionRate: undefined,
- plannedPayment: undefined,
- actualPayment: undefined,
- investmentPlanCompletionRate: undefined,
- achievements: '',
- coordinationIssues: '',
- nextWorkPlan: '',
- supportingDocuments: '',
- remarks: '',
- isFinalApplication: undefined,
- createBy: '',
- createTime: '',
- updateBy: '',
- updateTime: '',
- delFlag: '',
- processInstanceId: '',
- status: '',
+ id: undefined,
+ projectName: '',
+ projectId: undefined,
+ projectStatus: '',
+ constructionStage: '',
+ implementingBody: '',
+ projectTotalAmount: undefined,
+ cumulativeInvestmentToDate: undefined,
+ completionRate: undefined,
+ cumulativePaymentToDate: undefined,
+ paymentCompletionRate: undefined,
+ annualReport: undefined,
+ annualPlannedInvestment: undefined,
+ ytdRemainingInvestment: undefined,
+ investmentCompletionRate: undefined,
+ plannedPayment: undefined,
+ actualPayment: undefined,
+ investmentPlanCompletionRate: undefined,
+ achievements: '',
+ coordinationIssues: '',
+ nextWorkPlan: '',
+ supportingDocuments: '',
+ remarks: '',
+ isFinalApplication: undefined,
+ createBy: '',
+ createTime: '',
+ updateBy: '',
+ updateTime: '',
+ delFlag: '',
+ processInstanceId: '',
+ status: '',
})
const formData = reactive({ ...defaultForm, ...props.modelValue });
const projectNameData = ref([]);
@@ -269,30 +257,30 @@ const queryForm = reactive({
size: 10,
});
const getProjectNameList = async () => {
- try {
- const res = await investmentProjectsPlanPage(queryForm);
- projectNameData.value = res.data?.records || [];
- total.value = res.data?.total || 0;
- } catch (error) {
- console.error(error);
- projectNameData.value = []; // 出错时设置为空数组
- }
+ try {
+ const res = await investmentProjectsPlanPage(queryForm);
+ projectNameData.value = res.data?.records || [];
+ total.value = res.data?.total || 0;
+ } catch (error) {
+ console.error(error);
+ projectNameData.value = []; // 出错时设置为空数组
+ }
}
getProjectNameList();
/**
* 初始化图片
* */
-const uploadChange = (_: any, data: any[]) => {
- if (!data || Object.prototype.toString.call(data) !== '[object Array]' || data.length === 0) {
- formData.supportingDocuments = [];
- return;
- }
- formData.supportingDocuments = data.map((item: any) => {
- return {
- name: item.name,
- url: item.url
- }
- })
+const uploadChange = (_:any,data:any[]) =>{
+ if (!data || Object.prototype.toString.call(data) !== '[object Array]' || data.length === 0){
+ formData.supportingDocuments = [];
+ return;
+ }
+ formData.supportingDocuments = data.map((item:any) => {
+ return {
+ name: item.name,
+ url: item.url
+ }
+ })
}
// 监听 formData 变化,同步到父组件
watch(
@@ -308,18 +296,18 @@ watch(
() => props.modelValue,
(newVal) => {
if (newVal) {
- if (typeof newVal.annualReport === 'number') newVal.annualReport = newVal.annualReport.toString()
- Object.assign(formData, newVal);
+ if (typeof newVal.annualReport === 'number') newVal.annualReport = newVal.annualReport.toString()
+ Object.assign(formData, defaultForm, newVal);
}
},
{ immediate: true, deep: true }
);
defineExpose({
- validate: async () => {
- const isValid = await useForm.value?.validate();
- if (!isValid) return false
- return formData
- },
+ validate: async () => {
+ const isValid = await useForm.value?.validate();
+ if (!isValid) return false
+ return formData
+ },
})
diff --git a/src/components/investment/interface/types.ts b/src/components/investment/interface/types.ts
index 81d0107..302f18f 100644
--- a/src/components/investment/interface/types.ts
+++ b/src/components/investment/interface/types.ts
@@ -1,12 +1,12 @@
export interface InvestmentProjects {
id?: number;
plannedInvestmentYear: string;
- plannedImageAmount: string | number | null;
- plannedPaymentAmount: string | number | null;
- selfFunding: string | number | null;
- externalFunding: string | number | null;
- fiscalFunding: string | number | null;
- otherFunding: string | number | null;
+ plannedImageAmount: string;
+ plannedPaymentAmount: string;
+ selfFunding: string;
+ externalFunding: string;
+ fiscalFunding: string;
+ otherFunding: string;
fiscalFundingSource: string;
otherFundingSource: string;
}
@@ -25,7 +25,7 @@ export interface EvaluationRecordEntitiesT {
createBy: string;
createTime: string
}
-export interface ProjectPlanApplyFormItem {
+export interface ProjectPlanApplyFormItem{
id?: any;
projectName: string;
projectNature: string;
@@ -75,7 +75,7 @@ export interface ProjectPlanApplyFormItem {
projectDesc: string;
promotionPlan: string;
projectPreliminaryPlan: string;
- projectPreliminaryPlanAttachment: any[] | string;
+ projectPreliminaryPlanAttachment:any[] | string;
attachments: any[] | string;
remark: string;
decisionType: string;
@@ -89,16 +89,16 @@ export interface ProjectPlanApplyFormItem {
groupInvestmentDeptOpinion: string;
submitUnitLeadershipOpinion: string;
submitUnitMainLeadershipOpinion: string;
- planImageQuota: string;
- projectInvestmentEntities?: InvestmentProjects[];
- evaluationRecordEntities?: EvaluationRecordEntitiesT[];
+ planImageQuota:string;
+ projectInvestmentEntities?:InvestmentProjects[];
+ evaluationRecordEntities?:EvaluationRecordEntitiesT[];
delFlag?: number;
projectId?: number;
- processInstanceId: string;
- status: number;
- deptId: number
+ processInstanceId:string;
+ status:number;
+ deptId:number
}
export interface ProjectPlanApplyFormData {
- entity: ProjectPlanApplyFormItem;
+ entity:ProjectPlanApplyFormItem;
investmentProjects: InvestmentProjects[];
}
diff --git a/src/components/investment/mixedReform/MixedRegisterSections.vue b/src/components/investment/mixedReform/MixedRegisterSections.vue
index 9ab367f..73b0d14 100644
--- a/src/components/investment/mixedReform/MixedRegisterSections.vue
+++ b/src/components/investment/mixedReform/MixedRegisterSections.vue
@@ -53,7 +53,7 @@
-
@@ -69,6 +69,7 @@
import type { FormInstance } from 'element-plus';
import { useI18n } from 'vue-i18n';
import LibrarySelect from '/@/views/investment/mixedReformRegister/components/LibrarySelect.vue';
+import{ElInputNumber} from 'element-plus'
const { t } = useI18n();
type FieldConfig = {
@@ -76,7 +77,7 @@ type FieldConfig = {
label: string;
span?: number;
type?: string;
- fieldProps?: any;
+ fieldProps?: any; length?: number;
};
const props = defineProps<{
diff --git a/src/components/workbench/TaskManagement.vue b/src/components/workbench/TaskManagement.vue
index 1dd3c94..be5726d 100644
--- a/src/components/workbench/TaskManagement.vue
+++ b/src/components/workbench/TaskManagement.vue
@@ -30,6 +30,8 @@ import { useI18n } from 'vue-i18n';
import { useRouter } from 'vue-router';
import {queryMineStarted, queryMineTask} from "/@/api/flow/task";
import {useMessage} from "/@/hooks/message";
+import request from "/@/utils/request";
+import {examineDict} from "/@/hooks/enums";
const { t } = useI18n();
const router = useRouter();
@@ -46,27 +48,7 @@ const emit = defineEmits<{
const activeTab = ref('pending');
const tableData = ref
([]);
const loading = ref(false);
-/**
- * 根据任务名称判断类型
- * @param name 任务名称
- * @returns 任务类型
- */
-const getTaskType = (name: string): string => {
- if (name.includes('投资申报') || name.includes('项目投资')) {
- return 'investment';
- }
- if (name.includes('专家') || name.includes('专家登记')) {
- return 'expert';
- }
- if (name.includes('投资储备') || name.includes('储备')) {
- return 'reserve';
- }
- if (name.includes('合作单位') || name.includes('合作')) {
- return 'cooperation';
- }
- // 默认类型
- return 'default';
-};
+
/**
* 根据类型获取审批页面路由
@@ -91,20 +73,29 @@ const getApprovalRoute = (type: string, taskId: string): string => {
* @param row 行数据
*/
const handleRowClick = (row: any) => {
- const taskType = row.type || getTaskType(row.name);
+ console.log(row);
const taskId = row.taskId || row.id;
- const route = getApprovalRoute(taskType, taskId);
-
+ const route = getApprovalRoute(row.flowType, taskId);
+ const routePath = examineDict[row.flowType]
+ if (!routePath){
+ useMessage().error('未定义的审批类型!')
+ return
+ }
+ console.log(routePath)
// 跳转到对应的审批页面
router.push({
- path: route.split('?')[0],
+ path: routePath,
query: {
- id: taskId,
- type: taskType,
+ processInstanceId: row.processInstanceId,
tab: activeTab.value, // 传递当前标签页信息,用于返回时定位
},
});
};
+// request('admin/sys/code/list',{
+// method:'get',
+// }).then(res=>{
+// console.log('test',res)
+// })
const getQueryMineTask = () =>{
return new Promise((resolve, reject) =>{
queryMineTask({
diff --git a/src/components/workbench/common/ApprovalAction.vue b/src/components/workbench/common/ApprovalAction.vue
index 40ba787..791b382 100644
--- a/src/components/workbench/common/ApprovalAction.vue
+++ b/src/components/workbench/common/ApprovalAction.vue
@@ -15,8 +15,7 @@