|
|
|
@ -17,6 +17,21 @@
|
|
|
|
<el-option v-for="dict in project_status" :key="dict.value" :label="dict.label" :value="dict.value" />
|
|
|
|
<el-option v-for="dict in project_status" :key="dict.value" :label="dict.label" :value="dict.value" />
|
|
|
|
</el-select>
|
|
|
|
</el-select>
|
|
|
|
</el-form-item>
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
<el-form-item label="部门" prop="deptId">
|
|
|
|
|
|
|
|
<el-select v-model="queryParams.deptId" placeholder="请选择部门" clearable filterable style="width: 200px">
|
|
|
|
|
|
|
|
<el-option v-for="dept in deptOptions" :key="dept.deptId" :label="dept.deptName" :value="dept.deptId" />
|
|
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
<el-form-item label="项目类型" prop="projectTypeId">
|
|
|
|
|
|
|
|
<el-select v-model="queryParams.projectTypeId" placeholder="请选择项目类型" clearable style="width: 200px">
|
|
|
|
|
|
|
|
<el-option v-for="item in projectTypeOptions" :key="item.projectTypeId" :label="item.typeName" :value="item.projectTypeId" />
|
|
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
|
|
</el-form-item>
|
|
|
|
|
|
|
|
<el-form-item label="项目阶段" prop="projectPhases">
|
|
|
|
|
|
|
|
<el-select v-model="queryParams.projectPhases" placeholder="请选择项目阶段" clearable style="width: 200px">
|
|
|
|
|
|
|
|
<el-option v-for="dict in project_phases" :key="dict.value" :label="dict.label" :value="dict.value" />
|
|
|
|
|
|
|
|
</el-select>
|
|
|
|
|
|
|
|
</el-form-item>
|
|
|
|
<el-form-item>
|
|
|
|
<el-form-item>
|
|
|
|
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
|
|
|
<el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
|
|
|
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
|
|
|
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
|
|
|
@ -39,13 +54,8 @@
|
|
|
|
<el-table-column label="项目经理" prop="managerName" width="90" align="center" />
|
|
|
|
<el-table-column label="项目经理" prop="managerName" width="90" align="center" />
|
|
|
|
<el-table-column label="部门" prop="deptName" width="120" align="center" show-overflow-tooltip />
|
|
|
|
<el-table-column label="部门" prop="deptName" width="120" align="center" show-overflow-tooltip />
|
|
|
|
<el-table-column label="项目类型" prop="typeName" width="120" align="center" show-overflow-tooltip />
|
|
|
|
<el-table-column label="项目类型" prop="typeName" width="120" align="center" show-overflow-tooltip />
|
|
|
|
<el-table-column label="产品型号" width="100" align="center">
|
|
|
|
|
|
|
|
<template #default>-</template>
|
|
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
<el-table-column label="产品数量" width="100" align="center">
|
|
|
|
<el-table-column label="产品数量" width="100" align="center">
|
|
|
|
<template #default="scope">
|
|
|
|
<template #default>-</template>
|
|
|
|
{{ scope.row.productAmount != null ? scope.row.productAmount : '-' }}
|
|
|
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="项目阶段" width="100" align="center">
|
|
|
|
<el-table-column label="项目阶段" width="100" align="center">
|
|
|
|
<template #default="scope">
|
|
|
|
<template #default="scope">
|
|
|
|
@ -62,7 +72,9 @@
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="预计验收时间" width="120" align="center">
|
|
|
|
<el-table-column label="预计验收时间" width="120" align="center">
|
|
|
|
<template #default>-</template>
|
|
|
|
<template #default="scope">
|
|
|
|
|
|
|
|
{{ scope.row.expectedAcceptanceTime ? scope.row.expectedAcceptanceTime.substring(0, 10) : '-' }}
|
|
|
|
|
|
|
|
</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="实际验收时间" width="120" align="center">
|
|
|
|
<el-table-column label="实际验收时间" width="120" align="center">
|
|
|
|
<template #default="scope">
|
|
|
|
<template #default="scope">
|
|
|
|
@ -70,10 +82,10 @@
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="是否异常启动" width="120" align="center">
|
|
|
|
<el-table-column label="是否异常启动" width="120" align="center">
|
|
|
|
<template #default>-</template>
|
|
|
|
<template #default="scope">{{ scope.row.abnormalStartup || '-' }}</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="异常启动原因" width="120" align="center">
|
|
|
|
<el-table-column label="异常启动原因" width="120" align="center">
|
|
|
|
<template #default>-</template>
|
|
|
|
<template #default="scope">{{ scope.row.abnormalStartupReason || '-' }}</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
|
|
|
|
@ -133,7 +145,13 @@
|
|
|
|
</template>
|
|
|
|
</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="已发生成本占收入比例" width="160" align="center">
|
|
|
|
<el-table-column label="已发生成本占收入比例" width="160" align="center">
|
|
|
|
<template #default>-</template>
|
|
|
|
<template #default="scope">
|
|
|
|
|
|
|
|
{{
|
|
|
|
|
|
|
|
scope.row.actualCost != null && scope.row.revenue != null && scope.row.revenue != 0
|
|
|
|
|
|
|
|
? (Math.round((scope.row.actualCost / scope.row.revenue) * 10000) / 100).toFixed(2) + '%'
|
|
|
|
|
|
|
|
: '-'
|
|
|
|
|
|
|
|
}}
|
|
|
|
|
|
|
|
</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
|
|
|
|
@ -153,9 +171,6 @@
|
|
|
|
<el-table-column label="实际结束时间" width="110" align="center">
|
|
|
|
<el-table-column label="实际结束时间" width="110" align="center">
|
|
|
|
<template #default="scope">{{ scope.row.startupRealEndTime ? scope.row.startupRealEndTime.substring(0, 10) : '-' }}</template>
|
|
|
|
<template #default="scope">{{ scope.row.startupRealEndTime ? scope.row.startupRealEndTime.substring(0, 10) : '-' }}</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="原因说明" width="150" align="center" show-overflow-tooltip>
|
|
|
|
|
|
|
|
<template #default="scope">{{ scope.row.startupReasonsExplanation || '-' }}</template>
|
|
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<!-- 设计 -->
|
|
|
|
<!-- 设计 -->
|
|
|
|
<el-table-column label="设计" align="center">
|
|
|
|
<el-table-column label="设计" align="center">
|
|
|
|
@ -171,98 +186,107 @@
|
|
|
|
<el-table-column label="实际结束时间" width="110" align="center">
|
|
|
|
<el-table-column label="实际结束时间" width="110" align="center">
|
|
|
|
<template #default="scope">{{ scope.row.designRealEndTime ? scope.row.designRealEndTime.substring(0, 10) : '-' }}</template>
|
|
|
|
<template #default="scope">{{ scope.row.designRealEndTime ? scope.row.designRealEndTime.substring(0, 10) : '-' }}</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="原因说明" width="150" align="center" show-overflow-tooltip>
|
|
|
|
|
|
|
|
<template #default="scope">{{ scope.row.designReasonsExplanation || '-' }}</template>
|
|
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<!-- 采购 -->
|
|
|
|
<!-- 采购与发货 -->
|
|
|
|
<el-table-column label="采购" align="center">
|
|
|
|
<el-table-column label="采购与发货" align="center">
|
|
|
|
<el-table-column label="计划开始时间" width="110" align="center">
|
|
|
|
<el-table-column label="计划开始时间" width="110" align="center">
|
|
|
|
<template #default="scope">{{ scope.row.purchasePlanStartTime ? scope.row.purchasePlanStartTime.substring(0, 10) : '-' }}</template>
|
|
|
|
<template #default="scope">{{
|
|
|
|
|
|
|
|
scope.row.purchaseShipmentPlanStartTime ? scope.row.purchaseShipmentPlanStartTime.substring(0, 10) : '-'
|
|
|
|
|
|
|
|
}}</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="计划结束时间" width="110" align="center">
|
|
|
|
<el-table-column label="计划结束时间" width="110" align="center">
|
|
|
|
<template #default="scope">{{ scope.row.purchasePlanEndTime ? scope.row.purchasePlanEndTime.substring(0, 10) : '-' }}</template>
|
|
|
|
<template #default="scope">{{
|
|
|
|
|
|
|
|
scope.row.purchaseShipmentPlanEndTime ? scope.row.purchaseShipmentPlanEndTime.substring(0, 10) : '-'
|
|
|
|
|
|
|
|
}}</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="实际开始时间" width="110" align="center">
|
|
|
|
<el-table-column label="实际开始时间" width="110" align="center">
|
|
|
|
<template #default="scope">{{ scope.row.purchaseRealStartTime ? scope.row.purchaseRealStartTime.substring(0, 10) : '-' }}</template>
|
|
|
|
<template #default="scope">{{
|
|
|
|
|
|
|
|
scope.row.purchaseShipmentRealStartTime ? scope.row.purchaseShipmentRealStartTime.substring(0, 10) : '-'
|
|
|
|
|
|
|
|
}}</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="实际结束时间" width="110" align="center">
|
|
|
|
<el-table-column label="实际结束时间" width="110" align="center">
|
|
|
|
<template #default="scope">{{ scope.row.purchaseRealEndTime ? scope.row.purchaseRealEndTime.substring(0, 10) : '-' }}</template>
|
|
|
|
<template #header>
|
|
|
|
</el-table-column>
|
|
|
|
<span style="color: red">实际结束时间</span>
|
|
|
|
<el-table-column label="原因说明" width="150" align="center" show-overflow-tooltip>
|
|
|
|
</template>
|
|
|
|
<template #default="scope">{{ scope.row.purchaseReasonsExplanation || '-' }}</template>
|
|
|
|
<template #default="scope">{{
|
|
|
|
|
|
|
|
scope.row.purchaseShipmentRealEndTime ? scope.row.purchaseShipmentRealEndTime.substring(0, 10) : '-'
|
|
|
|
|
|
|
|
}}</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<!-- 发货 -->
|
|
|
|
<!-- 开发 -->
|
|
|
|
<el-table-column label="发货" align="center">
|
|
|
|
<el-table-column label="开发" align="center">
|
|
|
|
<el-table-column label="计划开始时间" width="110" align="center">
|
|
|
|
<el-table-column label="计划开始时间" width="110" align="center">
|
|
|
|
<template #default="scope">{{ scope.row.shipmentPlanStartTime ? scope.row.shipmentPlanStartTime.substring(0, 10) : '-' }}</template>
|
|
|
|
<template #default="scope">{{ scope.row.developPlanStartTime ? scope.row.developPlanStartTime.substring(0, 10) : '-' }}</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="计划结束时间" width="110" align="center">
|
|
|
|
<el-table-column label="计划结束时间" width="110" align="center">
|
|
|
|
<template #default="scope">{{ scope.row.shipmentPlanEndTime ? scope.row.shipmentPlanEndTime.substring(0, 10) : '-' }}</template>
|
|
|
|
<template #default="scope">{{ scope.row.developPlanEndTime ? scope.row.developPlanEndTime.substring(0, 10) : '-' }}</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="实际开始时间" width="110" align="center">
|
|
|
|
<el-table-column label="实际开始时间" width="110" align="center">
|
|
|
|
<template #default="scope">{{ scope.row.shipmentRealStartTime ? scope.row.shipmentRealStartTime.substring(0, 10) : '-' }}</template>
|
|
|
|
<template #default="scope">{{ scope.row.developRealStartTime ? scope.row.developRealStartTime.substring(0, 10) : '-' }}</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="实际结束时间" width="110" align="center">
|
|
|
|
<el-table-column label="实际结束时间" width="110" align="center">
|
|
|
|
<template #default="scope">{{ scope.row.shipmentRealEndTime ? scope.row.shipmentRealEndTime.substring(0, 10) : '-' }}</template>
|
|
|
|
<template #default="scope">{{ scope.row.developRealEndTime ? scope.row.developRealEndTime.substring(0, 10) : '-' }}</template>
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
<el-table-column label="原因说明" width="150" align="center" show-overflow-tooltip>
|
|
|
|
|
|
|
|
<template #default="scope">{{ scope.row.shipmentReasonsExplanation || '-' }}</template>
|
|
|
|
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<!-- 实施 -->
|
|
|
|
<!-- 组装调试(设备类) -->
|
|
|
|
<el-table-column label="实施" align="center">
|
|
|
|
<el-table-column label="组装调试(设备类)" align="center">
|
|
|
|
<el-table-column label="计划开始时间" width="110" align="center">
|
|
|
|
<el-table-column label="计划开始时间" width="110" align="center">
|
|
|
|
<template #default="scope">{{ scope.row.implementPlanStartTime ? scope.row.implementPlanStartTime.substring(0, 10) : '-' }}</template>
|
|
|
|
<template #default="scope">{{
|
|
|
|
|
|
|
|
scope.row.assemblyDebugPlanStartTime ? scope.row.assemblyDebugPlanStartTime.substring(0, 10) : '-'
|
|
|
|
|
|
|
|
}}</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="计划结束时间" width="110" align="center">
|
|
|
|
<el-table-column label="计划结束时间" width="110" align="center">
|
|
|
|
<template #default="scope">{{ scope.row.implementPlanEndTime ? scope.row.implementPlanEndTime.substring(0, 10) : '-' }}</template>
|
|
|
|
<template #default="scope">{{ scope.row.assemblyDebugPlanEndTime ? scope.row.assemblyDebugPlanEndTime.substring(0, 10) : '-' }}</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="实际开始时间" width="110" align="center">
|
|
|
|
<el-table-column label="实际开始时间" width="110" align="center">
|
|
|
|
<template #default="scope">{{ scope.row.implementRealStartTime ? scope.row.implementRealStartTime.substring(0, 10) : '-' }}</template>
|
|
|
|
<template #default="scope">{{
|
|
|
|
|
|
|
|
scope.row.assemblyDebugRealStartTime ? scope.row.assemblyDebugRealStartTime.substring(0, 10) : '-'
|
|
|
|
|
|
|
|
}}</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="实际结束时间" width="110" align="center">
|
|
|
|
<el-table-column label="实际结束时间" width="110" align="center">
|
|
|
|
<template #default="scope">{{ scope.row.implementRealEndTime ? scope.row.implementRealEndTime.substring(0, 10) : '-' }}</template>
|
|
|
|
<template #default="scope">{{ scope.row.assemblyDebugRealEndTime ? scope.row.assemblyDebugRealEndTime.substring(0, 10) : '-' }}</template>
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
<el-table-column label="原因说明" width="150" align="center" show-overflow-tooltip>
|
|
|
|
|
|
|
|
<template #default="scope">{{ scope.row.implementReasonsExplanation || '-' }}</template>
|
|
|
|
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<!-- 调试 -->
|
|
|
|
<!-- 实施与安装调试 -->
|
|
|
|
<el-table-column label="调试" align="center">
|
|
|
|
<el-table-column label="实施与安装调试" align="center">
|
|
|
|
<el-table-column label="计划开始时间" width="110" align="center">
|
|
|
|
<el-table-column label="计划开始时间" width="110" align="center">
|
|
|
|
<template #default="scope">{{ scope.row.debugPlanStartTime ? scope.row.debugPlanStartTime.substring(0, 10) : '-' }}</template>
|
|
|
|
<template #default="scope">{{
|
|
|
|
|
|
|
|
scope.row.implementDebugPlanStartTime ? scope.row.implementDebugPlanStartTime.substring(0, 10) : '-'
|
|
|
|
|
|
|
|
}}</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="计划结束时间" width="110" align="center">
|
|
|
|
<el-table-column label="计划结束时间" width="110" align="center">
|
|
|
|
<template #default="scope">{{ scope.row.debugPlanEndTime ? scope.row.debugPlanEndTime.substring(0, 10) : '-' }}</template>
|
|
|
|
<template #default="scope">{{
|
|
|
|
|
|
|
|
scope.row.implementDebugPlanEndTime ? scope.row.implementDebugPlanEndTime.substring(0, 10) : '-'
|
|
|
|
|
|
|
|
}}</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="实际开始时间" width="110" align="center">
|
|
|
|
<el-table-column label="实际开始时间" width="110" align="center">
|
|
|
|
<template #default="scope">{{ scope.row.debugRealStartTime ? scope.row.debugRealStartTime.substring(0, 10) : '-' }}</template>
|
|
|
|
<template #default="scope">{{
|
|
|
|
|
|
|
|
scope.row.implementDebugRealStartTime ? scope.row.implementDebugRealStartTime.substring(0, 10) : '-'
|
|
|
|
|
|
|
|
}}</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="实际结束时间" width="110" align="center">
|
|
|
|
<el-table-column label="实际结束时间" width="110" align="center">
|
|
|
|
<template #default="scope">{{ scope.row.debugRealEndTime ? scope.row.debugRealEndTime.substring(0, 10) : '-' }}</template>
|
|
|
|
<template #default="scope">{{
|
|
|
|
</el-table-column>
|
|
|
|
scope.row.implementDebugRealEndTime ? scope.row.implementDebugRealEndTime.substring(0, 10) : '-'
|
|
|
|
<el-table-column label="原因说明" width="150" align="center" show-overflow-tooltip>
|
|
|
|
}}</template>
|
|
|
|
<template #default="scope">{{ scope.row.debugReasonsExplanation || '-' }}</template>
|
|
|
|
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<!-- 试运行 -->
|
|
|
|
<!-- 测试与试运行 -->
|
|
|
|
<el-table-column label="试运行" align="center">
|
|
|
|
<el-table-column label="测试与试运行" align="center">
|
|
|
|
<el-table-column label="计划开始时间" width="110" align="center">
|
|
|
|
<el-table-column label="计划开始时间" width="110" align="center">
|
|
|
|
<template #default="scope">{{ scope.row.pilotRunPlanStartTime ? scope.row.pilotRunPlanStartTime.substring(0, 10) : '-' }}</template>
|
|
|
|
<template #default="scope">{{
|
|
|
|
|
|
|
|
scope.row.testPilotRunPlanStartTime ? scope.row.testPilotRunPlanStartTime.substring(0, 10) : '-'
|
|
|
|
|
|
|
|
}}</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="计划结束时间" width="110" align="center">
|
|
|
|
<el-table-column label="计划结束时间" width="110" align="center">
|
|
|
|
<template #default="scope">{{ scope.row.pilotRunPlanEndTime ? scope.row.pilotRunPlanEndTime.substring(0, 10) : '-' }}</template>
|
|
|
|
<template #default="scope">{{ scope.row.testPilotRunPlanEndTime ? scope.row.testPilotRunPlanEndTime.substring(0, 10) : '-' }}</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="实际开始时间" width="110" align="center">
|
|
|
|
<el-table-column label="实际开始时间" width="110" align="center">
|
|
|
|
<template #default="scope">{{ scope.row.pilotRunRealStartTime ? scope.row.pilotRunRealStartTime.substring(0, 10) : '-' }}</template>
|
|
|
|
<template #default="scope">{{
|
|
|
|
|
|
|
|
scope.row.testPilotRunRealStartTime ? scope.row.testPilotRunRealStartTime.substring(0, 10) : '-'
|
|
|
|
|
|
|
|
}}</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="实际结束时间" width="110" align="center">
|
|
|
|
<el-table-column label="实际结束时间" width="110" align="center">
|
|
|
|
<template #default="scope">{{ scope.row.pilotRunRealEndTime ? scope.row.pilotRunRealEndTime.substring(0, 10) : '-' }}</template>
|
|
|
|
<template #default="scope">{{ scope.row.testPilotRunRealEndTime ? scope.row.testPilotRunRealEndTime.substring(0, 10) : '-' }}</template>
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
<el-table-column label="原因说明" width="150" align="center" show-overflow-tooltip>
|
|
|
|
|
|
|
|
<template #default="scope">{{ scope.row.pilotRunReasonsExplanation || '-' }}</template>
|
|
|
|
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<!-- 验收 -->
|
|
|
|
<!-- 验收 -->
|
|
|
|
@ -276,12 +300,12 @@
|
|
|
|
<el-table-column label="实际开始时间" width="110" align="center">
|
|
|
|
<el-table-column label="实际开始时间" width="110" align="center">
|
|
|
|
<template #default="scope">{{ scope.row.acceptanceRealStartTime ? scope.row.acceptanceRealStartTime.substring(0, 10) : '-' }}</template>
|
|
|
|
<template #default="scope">{{ scope.row.acceptanceRealStartTime ? scope.row.acceptanceRealStartTime.substring(0, 10) : '-' }}</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="实际结束时间" width="110" align="center">
|
|
|
|
<el-table-column width="110" align="center">
|
|
|
|
|
|
|
|
<template #header>
|
|
|
|
|
|
|
|
<span style="color: red">实际结束时间</span>
|
|
|
|
|
|
|
|
</template>
|
|
|
|
<template #default="scope">{{ scope.row.acceptanceRealEndTime ? scope.row.acceptanceRealEndTime.substring(0, 10) : '-' }}</template>
|
|
|
|
<template #default="scope">{{ scope.row.acceptanceRealEndTime ? scope.row.acceptanceRealEndTime.substring(0, 10) : '-' }}</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="原因说明" width="150" align="center" show-overflow-tooltip>
|
|
|
|
|
|
|
|
<template #default="scope">{{ scope.row.acceptanceReasonsExplanation || '-' }}</template>
|
|
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<!-- 质保 -->
|
|
|
|
<!-- 质保 -->
|
|
|
|
<el-table-column label="质保" align="center">
|
|
|
|
<el-table-column label="质保" align="center">
|
|
|
|
@ -297,9 +321,6 @@
|
|
|
|
<el-table-column label="实际结束时间" width="110" align="center">
|
|
|
|
<el-table-column label="实际结束时间" width="110" align="center">
|
|
|
|
<template #default="scope">{{ scope.row.warrantyRealEndTime ? scope.row.warrantyRealEndTime.substring(0, 10) : '-' }}</template>
|
|
|
|
<template #default="scope">{{ scope.row.warrantyRealEndTime ? scope.row.warrantyRealEndTime.substring(0, 10) : '-' }}</template>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
<el-table-column label="原因说明" width="150" align="center" show-overflow-tooltip>
|
|
|
|
|
|
|
|
<template #default="scope">{{ scope.row.warrantyReasonsExplanation || '-' }}</template>
|
|
|
|
|
|
|
|
</el-table-column>
|
|
|
|
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table-column>
|
|
|
|
</el-table>
|
|
|
|
</el-table>
|
|
|
|
@ -310,6 +331,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
<script setup lang="ts" name="ProjectLedgerReport">
|
|
|
|
<script setup lang="ts" name="ProjectLedgerReport">
|
|
|
|
import { listProjectLedgerReport, ProjectLedgerReportQuery, ProjectLedgerReportVO } from '@/api/oa/erp/projectLedgerReport';
|
|
|
|
import { listProjectLedgerReport, ProjectLedgerReportQuery, ProjectLedgerReportVO } from '@/api/oa/erp/projectLedgerReport';
|
|
|
|
|
|
|
|
import { allListDept, listDept } from '@/api/system/dept';
|
|
|
|
|
|
|
|
import { getErpProjectTypeList } from '@/api/oa/erp/projectType/index';
|
|
|
|
|
|
|
|
|
|
|
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
|
|
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
|
|
|
const { business_direction, project_status, project_phases } = toRefs<any>(proxy?.useDict('business_direction', 'project_status', 'project_phases'));
|
|
|
|
const { business_direction, project_status, project_phases } = toRefs<any>(proxy?.useDict('business_direction', 'project_status', 'project_phases'));
|
|
|
|
@ -320,14 +343,19 @@ const total = ref(0);
|
|
|
|
const reportList = ref<ProjectLedgerReportVO[]>([]);
|
|
|
|
const reportList = ref<ProjectLedgerReportVO[]>([]);
|
|
|
|
const selectedRows = ref<ProjectLedgerReportVO[]>([]);
|
|
|
|
const selectedRows = ref<ProjectLedgerReportVO[]>([]);
|
|
|
|
const queryFormRef = ref<ElFormInstance>();
|
|
|
|
const queryFormRef = ref<ElFormInstance>();
|
|
|
|
|
|
|
|
const deptOptions = ref<any[]>([]);
|
|
|
|
|
|
|
|
const projectTypeOptions = ref<any[]>([]);
|
|
|
|
|
|
|
|
|
|
|
|
const queryParams = reactive<ProjectLedgerReportQuery>({
|
|
|
|
const queryParams = reactive<ProjectLedgerReportQuery>({
|
|
|
|
pageNum: 1,
|
|
|
|
pageNum: 1,
|
|
|
|
pageSize: 20,
|
|
|
|
pageSize: 30,
|
|
|
|
projectCode: undefined,
|
|
|
|
projectCode: undefined,
|
|
|
|
projectName: undefined,
|
|
|
|
projectName: undefined,
|
|
|
|
businessDirection: undefined,
|
|
|
|
businessDirection: undefined,
|
|
|
|
projectStatus: undefined
|
|
|
|
projectStatus: undefined,
|
|
|
|
|
|
|
|
deptId: undefined,
|
|
|
|
|
|
|
|
projectTypeId: undefined,
|
|
|
|
|
|
|
|
projectPhases: undefined
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
/** 格式化数字 */
|
|
|
|
/** 格式化数字 */
|
|
|
|
@ -376,8 +404,22 @@ const handleExport = () => {
|
|
|
|
proxy?.download('/oa/erp/projectLedgerReport/export', exportParams, `项目台账报表_${new Date().getTime()}.xlsx`);
|
|
|
|
proxy?.download('/oa/erp/projectLedgerReport/export', exportParams, `项目台账报表_${new Date().getTime()}.xlsx`);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const getDeptList = async () => {
|
|
|
|
|
|
|
|
// 查询所有部门用于前端筛选
|
|
|
|
|
|
|
|
const res = await allListDept({ deptCategory: '03' } as any);
|
|
|
|
|
|
|
|
deptOptions.value = res.data || res.rows || [];
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** 查询项目类型 */
|
|
|
|
|
|
|
|
const getProjectTypeList = async () => {
|
|
|
|
|
|
|
|
const res = await getErpProjectTypeList({});
|
|
|
|
|
|
|
|
projectTypeOptions.value = res.data;
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
onMounted(() => {
|
|
|
|
onMounted(() => {
|
|
|
|
getList();
|
|
|
|
getList();
|
|
|
|
|
|
|
|
getDeptList();
|
|
|
|
|
|
|
|
getProjectTypeList();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
</script>
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
|