财务统计

This commit is contained in:
陈裕财
2025-04-13 11:53:08 +08:00
parent 157781c5fe
commit 99fe8644a3

View File

@@ -1,18 +1,110 @@
<template>
<el-scrollbar v-adaptive>
<el-card v-if="currOpType!='add'">
<template #header>
<el-space :wrap="false">
<el-avatar style="background-color:green;"><icon icon="fa-solid:project-diagram"/></el-avatar>
<el-row>
<el-col :span="24">
<el-text type="info" size="small">编号{{ editForm.id }}</el-text>
<el-text type="info" size="small">&nbsp;&nbsp;代号{{ editForm.code }}</el-text>
<el-tooltip content="项目代号用于签订合同等甲乙方共享的场景;项目编号为内部编号,用于内部流转,编号生成规则:项目代号+四位随机码">
<icon icon="ep:info-filled" />
</el-tooltip>
</el-col>
<el-col :span="24">
<el-text size="large"> {{ editForm.name }}</el-text>
</el-col>
</el-row>
</el-space>
</template>
<el-descriptions :column="3" size="small" border>
<el-descriptions-item>
<template #label>
<div class="cell-item">
<el-icon :style="iconStyle">
<user />
</el-icon>
项目经理
</div>
</template>
{{ editForm.pmUsername || editForm.pmUserid }}
</el-descriptions-item>
<el-descriptions-item>
<template #label>
<div class="cell-item">
<el-icon :style="iconStyle">
<iphone />
</el-icon>
项目状态
</div>
</template>
<mdp-select width="100%" size="small" itemCode="projectStatus" v-model="editForm.status" showStyle="tag"
:disabled="true" />
</el-descriptions-item>
<el-descriptions-item>
<template #label>
<div class="cell-item">
<el-icon :style="iconStyle">
<location />
</el-icon>
项目类型
</div>
</template>
<mdp-select width="100%" showStyle="tag" itemCode="projectType" v-model="editForm.xmType"
@change="editSomeFields(editForm, 'projectType', $event)" :disabled="true" />
</el-descriptions-item>
<el-descriptions-item>
<template #label>
<div class="cell-item">
<el-icon :style="iconStyle">
<tickets />
</el-icon>
当前阶段
</div>
</template>
<mdp-select width="100%" :clearable="false" v-if="editForm.xmType" show-style="tag" size="small" label="当前阶段"
:itemCode="'projectPhasePlans' + editForm.xmType" v-model="editForm.currPhase"
@change="editSomeFields(editForm, 'currPhase', $event)" :disabled="true"/>
</el-descriptions-item>
<el-descriptions-item>
<template #label>
<div class="cell-item">
<el-icon :style="iconStyle">
<Timer />
</el-icon>
时间周期
</div>
</template>
<el-space wrap>
{{ $mdp.formatDate(editForm.startTime,'Y-M-D') }}~{{ $mdp.formatDate(editForm.endTime,'Y-M-D') }}
</el-space>
</el-descriptions-item>
<el-descriptions-item>
<template #label>
<div class="cell-item">
<el-icon :style="iconStyle">
<office-building />
</el-icon>
所属部门
</div>
</template>
<mdp-select-dept showStyle="tag" width="100%" v-model="editForm.deptid" placeholder="归属部门" :displayLoad="true"
@change2="editSomeFields(editForm, 'deptid', $event)" :disabled="true"/>
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-form :model="editForm" label-width="120px" label-position="left" :rules="editFormRules" ref="editForm"
class="editForm">
<el-form-item label="项目名称" prop="name" style="width:100%;">
<el-input v-model="editForm.name" placeholder="请填写 项目名称" @change="editSomeFields(editForm, 'name', $event)" />
<el-row class="label-font-color" v-if="currOpType !== 'add'">
项目代号: {{ editForm.code }} <el-divider direction="vertical" /> 项目编号: {{ editForm.id }}
<el-tooltip content="项目代号用于签订合同等甲乙方共享的场景;项目编号为内部编号,用于内部流转,编号生成规则:项目代号+四位随机码">
<icon icon="ep:info-filled" style="margin-top:8px;" />
</el-tooltip>
</el-row>
class="editForm">
<el-tabs v-model="currTabPane" accordion>
<el-tab-pane label="基础信息" name="baseInfo">
<el-form-item label="项目名称" prop="name" style="width:100%;">
<el-input v-model="editForm.name" placeholder="请填写 项目名称" @change="editSomeFields(editForm, 'name', $event)" />
</el-form-item>
<el-form-item v-if="currOpType === 'add'" label="项目代号" prop="code" style="width:100%;">
<el-input v-model="editForm.code" style="width:100%;" placeholder="项目代号,不可为空">
@@ -24,70 +116,68 @@
</template>
</el-input>
</el-form-item>
<el-row>
<el-row :gutter="10">
<el-col :span="6">
<el-form-item prop="xmType" label-width="0px">
<mdp-select :clearable="false" show-style="x" size="medium" label="项目类型" itemCode="projectType" v-model="editForm.xmType"
<el-form-item prop="xmType" label="项目类型">
<mdp-select width="100%" :clearable="false" size="medium" itemCode="projectType" v-model="editForm.xmType"
@change="editSomeFields(editForm, 'xmType', $event)" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="currPhase" label-width="0px">
<mdp-select :clearable="false" v-if="editForm.xmType" show-style="x" size="medium" label="当前阶段"
<el-form-item prop="currPhase" label="当前阶段">
<mdp-select width="100%" :clearable="false" v-if="editForm.xmType" size="medium"
:itemCode="'projectPhasePlans' + editForm.xmType" v-model="editForm.currPhase"
@change="editSomeFields(editForm, 'currPhase', $event)" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="status" label-width="0px">
<mdp-select :clearable="false" show-style="x" size="medium" label="项目状态" itemCode="projectStatus" v-model="editForm.status"
<el-form-item prop="status" label="项目状态">
<mdp-select width="100%" :clearable="false" size="medium" itemCode="projectStatus" v-model="editForm.status"
@change="editSomeFields(editForm, 'status', $event)" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="workType" label-width="0px">
<mdp-select :clearable="false" show-style="x" size="medium" label="工作方式" itemCode="workType" v-model="editForm.workType"
<el-form-item prop="workType" label="工作方式">
<mdp-select width="100%" :clearable="false" size="medium" itemCode="workType" v-model="editForm.workType"
@change="editSomeFields(editForm, 'workType', $event)" />
</el-form-item>
</el-col>
</el-row>
<el-divider />
<el-row>
</el-row>
<el-row :gutter="10">
<el-col :span="6">
<el-form-item prop="deptid" label-width="0px">
<mdp-select-dept showStyle="x" width="100%" v-model="editForm.deptid" placeholder="归属部门" :displayLoad="true"
<el-form-item prop="deptid" label="归属部门">
<mdp-select-dept width="100%" v-model="editForm.deptid" placeholder="归属部门" :displayLoad="true"
@change2="editSomeFields(editForm, 'deptid', $event)" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="admUserid" label-width="0px">
<mdp-select-user show-style="x" size="medium" label=" 项目总控" v-model="editForm.admUserid"
<el-form-item prop="admUserid" label=" 项目总控">
<mdp-select-user width="100%" size="medium" v-model="editForm.admUserid"
:init-name="editForm.admUsername" @change2="editSomeFields(editForm, 'admUserid', $event)" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="pmUserid" label-width="0px">
<mdp-select-user show-style="x" size="medium" label=" 项目经理" v-model="editForm.pmUserid"
<el-form-item prop="pmUserid" label=" 项目经理">
<mdp-select-user width="100%" size="medium" label=" 项目经理" v-model="editForm.pmUserid"
:init-name="editForm.pmUsername" @change2="editSomeFields(editForm, 'pmUserid', $event)" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="assUserid" label-width="0px">
<mdp-select-user show-style="x" size="medium" label=" 副经理、助理" v-model="editForm.assUserid"
<el-form-item prop="assUserid" label=" 副经理、助理">
<mdp-select-user width="100%" size="medium" label=" 副经理、助理" v-model="editForm.assUserid"
:init-name="editForm.assUsername" @change2="editSomeFields(editForm, 'assUserid', $event)" />
</el-form-item>
</el-col>
</el-row>
<el-tabs v-model="currTabPane" accordion>
<el-tab-pane label="时间周期" name="time">
<el-form-item label="起止时间" prop="startTime,endTime">
<el-row>
<el-col :span="24">
<el-form-item label="起止时间" prop="startTime">
<el-space wrap>
<mdp-date-range v-model="editForm" startKey="startTime" endKey="endTime" type="daterange" range-separator="至"
start-placeholder="计划开始" end-placeholder="计划完成" value-format="YYYY-MM-DD HH:mm:ss" />
@@ -97,23 +187,25 @@
</el-space>
</el-form-item>
</el-col>
</el-row>
</el-tab-pane>
<el-tab-pane label="项目目标" name="target">
<el-form-item label="" prop="target" label-width="0px" style="width:100%;">
<el-form-item label="" prop="target" style="width:100%;" label-width="0px">
<el-input type="textarea" :rows="10" v-model="editForm.target" placeholder="项目目标" />
</el-form-item>
</el-tab-pane>
<el-tab-pane label="立项说明" name="setupRemark">
<el-form-item label="" prop="setupRemark" label-width="0px" style="width:100%;">
<el-tab-pane label="立项说明" name="setupRemark" >
<el-form-item label="" prop="setupRemark" style="width:100%;" label-width="0px">
<el-input type="textarea" :rows="10" v-model="editForm.setupRemark" placeholder="立项说明" />
</el-form-item>
</el-tab-pane>
<el-tab-pane label="项目说明" name="desc">
<el-form-item label="" prop="description" label-width="0px" style="width:100%;">
<el-form-item label="" prop="description" style="width:100%;" label-width="0px">
<el-input type="textarea" :rows="10" v-model="editForm.description" placeholder="项目描述" />
</el-form-item>
</el-tab-pane>
<el-tab-pane label="成本预估" name="budget">
<el-tab-pane label="概算" name="概算">
<el-row>
<el-col :span="3">类型</el-col>
<el-col :span="4">人数</el-col>
@@ -180,6 +272,9 @@
参考值{{ this.toFixed(autoParams.planTotalCost / 10000) }}万元</el-text>
</el-row>
</el-tab-pane>
<el-tab-pane label="预算" name="budget">
<XmBudgetRecord :sel-project="editForm"/>
</el-tab-pane>
<el-tab-pane label="收入及盈利水平" name="totalAmount">
<el-form-item label="总成本">
@@ -217,11 +312,7 @@
<mdp-select-att v-if="editForm.id" crely-type="xm-project" :crely-id="editForm.id" :biz-id="editForm.id" :pbiz-id="editForm.id"/>
</el-tab-pane>
</el-tabs>
</el-form>
<el-row class="footer">
<el-row class="footer">
<el-space wrap>
<span v-if="currOpType !== 'add'">
<el-button v-if="currTabPane == 'budget' && editForm.status<='5' && editForm.status >'2'" icon="Edit" type="warning"
@@ -239,8 +330,11 @@
:disabled="load.edit == true">提交</el-button>
</el-space>
</el-row>
</el-scrollbar>
</el-row>
</el-form>
</template>
<script>
@@ -471,18 +565,30 @@ export default {
xmType: [{
required: true, message: '项目类型不可为空', trigger: 'change'
}],
xmType: [{
required: true, message: '项目类型不可为空', trigger: 'change'
status: [{
required: true, message: '项不可为空', trigger: 'change'
}],
priority: [{
required: true, message: '优先级不可为空', trigger: 'change'
currPhase: [{
required: true, message: '此项不可为空', trigger: 'change'
}],
admUserid: [{
required: true, message: '项目总控不能为空', trigger: 'change'
startTime: [{
required: true, message: '此项不可为空', trigger: 'change'
}],
deptid: [{
required: true, message: '此项不可为空', trigger: 'change'
}],
pmUserid: [{
required: true, message: '项目经理不能为空', trigger: 'change'
required: true, message: '此项不可为空', trigger: 'change'
}],
admUserid: [{
required: true, message: '此项不可为空', trigger: 'change'
}],
assUserid: [{
required: true, message: '此项不可为空', trigger: 'change'
}],
workType: [{
required: true, message: '此项不可为空', trigger: 'change'
}],
description: [
{ min: 0, max: 250, message: '项目描述长度在0-250', trigger: 'change' }
]