|
@@ -4,29 +4,29 @@
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="17" >
|
|
|
<div class="box info">
|
|
|
- <label>基本信息<el-link v-if="(user.id == project.creatorId || user.id == project.inchargerId) || permissions.projectManagement" @click="showEdit" style="float:right;"><i class="el-icon-edit" ></i></el-link></label>
|
|
|
+ <label>{{ $t('basicinformation') }}<el-link v-if="(user.id == project.creatorId || user.id == project.inchargerId) || permissions.projectManagement" @click="showEdit" style="float:right;"><i class="el-icon-edit" ></i></el-link></label>
|
|
|
<el-row :gutter="10" >
|
|
|
- <el-col :span="5" ><span class="gray_label">项目名称:</span></el-col><el-col :span="7" ><span >{{project.projectName}}</span></el-col>
|
|
|
- <el-col :span="5" ><span class="gray_label">项目分类:</span></el-col><el-col :span="7" ><span >{{project.categoryName}}</span></el-col>
|
|
|
+ <el-col :span="5" ><span class="gray_label">{{ $t('headerTop.projectName') }}:</span></el-col><el-col :span="7" ><span >{{project.projectName}}</span></el-col>
|
|
|
+ <el-col :span="5" ><span class="gray_label">{{ $t('projectclassification') }}:</span></el-col><el-col :span="7" ><span >{{project.categoryName}}</span></el-col>
|
|
|
</el-row>
|
|
|
<el-row :gutter="10" >
|
|
|
- <el-col :span="5" ><span class="gray_label">项目描述:</span></el-col><el-col :span="7" ></el-col>
|
|
|
+ <el-col :span="5" ><span class="gray_label">{{ $t('other.projectDescription') }}:</span></el-col><el-col :span="7" ></el-col>
|
|
|
<el-col :span="18" ><span>{{project.projectDesc}}</span></el-col>
|
|
|
</el-row>
|
|
|
<el-row :gutter="10" v-if="user.timeType.projectWithDept">
|
|
|
- <el-col :span="5" ><span class="gray_label">所属部门:</span></el-col><el-col :span="7" ></el-col>
|
|
|
+ <el-col :span="5" ><span class="gray_label">{{ $t('subordinatedepartments') }}:</span></el-col><el-col :span="7" ></el-col>
|
|
|
<el-col :span="18" ><span>{{project.departmentName}}</span></el-col>
|
|
|
</el-row>
|
|
|
<el-row :gutter="10">
|
|
|
- <el-col :span="5" ><span class="gray_label">状态:</span></el-col><el-col :span="7" ><span >{{project.status==null?'-':statusTxt[project.status]}}</span></el-col>
|
|
|
- <el-col :span="5" v-if="user.company.packageEngineering==0"><span class="gray_label">完成度: </span></el-col><el-col :span="7" >
|
|
|
+ <el-col :span="5" ><span class="gray_label">{{ $t('state.states') }}:</span></el-col><el-col :span="7" ><span >{{project.status==null?'-':statusTxt[project.status]}}</span></el-col>
|
|
|
+ <el-col :span="5" v-if="user.company.packageEngineering==0"><span class="gray_label">{{ $t('completeness') }}: </span></el-col><el-col :span="7" >
|
|
|
<span v-if="user.company.packageEngineering==0">
|
|
|
<el-progress :percentage="project.progress == null?0:project.progress"></el-progress>
|
|
|
</span></el-col>
|
|
|
</el-row>
|
|
|
<el-row :gutter="10">
|
|
|
- <el-col :span="5" ><span class="gray_label">项目编号: </span></el-col><el-col :span="7" ><span >{{project.projectCode}} </span></el-col>
|
|
|
- <el-col :span="5" v-if="permissions.projectContract"><span class="gray_label">合同金额:</span></el-col>
|
|
|
+ <el-col :span="5" ><span class="gray_label">{{ $t('Itemno') }}: </span></el-col><el-col :span="7" ><span >{{project.projectCode}} </span></el-col>
|
|
|
+ <el-col :span="5" v-if="permissions.projectContract"><span class="gray_label">{{ $t('contractamount') }}:</span></el-col>
|
|
|
<el-col :span="7" >
|
|
|
<span style="float:left;" v-if="permissions.projectContract">{{project.contractAmount == null?'-':project.contractAmount | numberToCurrency}} 元</span>
|
|
|
<el-link v-if="user.id == project.creatorId || user.id == project.inchargerId" @click="contractRecord" style="float:left;"><i class="iconfont firerock-iconrecord"></i></el-link>
|
|
@@ -35,21 +35,21 @@
|
|
|
|
|
|
</el-row>
|
|
|
<el-row :gutter="10">
|
|
|
- <el-col :span="5" ><span class="gray_label">项目级别: </span></el-col><el-col :span="7" ><span >{{levelTextShow(project.level)}}</span></el-col>
|
|
|
- <el-col :span="5" ><span class="gray_label">创建日期:</span></el-col><el-col :span="7" ><span>{{project.createDate}}</span></el-col>
|
|
|
+ <el-col :span="5" ><span class="gray_label">{{ $t('jihuajibie') }}: </span></el-col><el-col :span="7" ><span >{{levelTextShow(project.level)}}</span></el-col>
|
|
|
+ <el-col :span="5" ><span class="gray_label">{{ $t('creationdate') }}:</span></el-col><el-col :span="7" ><span>{{project.createDate}}</span></el-col>
|
|
|
</el-row>
|
|
|
<el-row :gutter="10">
|
|
|
- <el-col :span="5" ><span class="gray_label">计划开始日期:</span></el-col>
|
|
|
+ <el-col :span="5" ><span class="gray_label">{{ $t('ommencementDate') }}:</span></el-col>
|
|
|
<el-col :span="7" ><span >{{project.planStartDate==null?'-':project.planStartDate}}</span></el-col>
|
|
|
- <el-col :span="5" ><span class="gray_label">计划结束日期:</span></el-col>
|
|
|
+ <el-col :span="5" ><span class="gray_label">{{ $t('ji-hua-jie-shu-ri-qi') }}:</span></el-col>
|
|
|
<el-col :span="7" ><span>{{project.planEndDate == null?'-':project.planEndDate}}</span></el-col>
|
|
|
</el-row>
|
|
|
<el-row :gutter="10">
|
|
|
- <el-col :span="5" ><span class="gray_label">实际完成日期:</span></el-col>
|
|
|
+ <el-col :span="5" ><span class="gray_label">{{ $t('shijiawancheng') }}:</span></el-col>
|
|
|
<el-col :span="7" ><span>{{project.finishDate==null?'-':project.finishDate}}</span></el-col>
|
|
|
<template v-if="user.timeType.outputValueStatus == 1">
|
|
|
- <el-col :span="5" ><span class="gray_label">项目产值:</span></el-col>
|
|
|
- <el-col :span="7" ><span>{{project.outputValue == null?'-':project.outputValue | numberToCurrency}} 元</span></el-col>
|
|
|
+ <el-col :span="5" ><span class="gray_label">{{ $t('projectoutput') }}:</span></el-col>
|
|
|
+ <el-col :span="7" ><span>{{project.outputValue == null?'-':project.outputValue | numberToCurrency}} {{ $t('yuan') }}</span></el-col>
|
|
|
</template>
|
|
|
</el-row>
|
|
|
<el-row :gutter="10" v-if="yonghuUser.customDegreeActive == 1">
|
|
@@ -61,48 +61,48 @@
|
|
|
<!-- this.project -->
|
|
|
<div v-if="user.companyId == '936'">
|
|
|
<el-row :gutter="10" >
|
|
|
- <el-col :span="5" ><span class="gray_label">合同编号:</span></el-col><el-col :span="7" ></el-col>
|
|
|
+ <el-col :span="5" ><span class="gray_label">{{ $t('contractno') }}:</span></el-col><el-col :span="7" ></el-col>
|
|
|
<el-col :span="18" ><span>{{project.projectSeparate.contractCode}}</span></el-col>
|
|
|
</el-row>
|
|
|
<el-row :gutter="10">
|
|
|
- <el-col :span="5" ><span class="gray_label">质保开始时间:</span></el-col><el-col :span="7" >
|
|
|
+ <el-col :span="5" ><span class="gray_label">{{ $t('warrantystartime') }}:</span></el-col><el-col :span="7" >
|
|
|
<span >{{project.projectSeparate.warrantyStartDate==null?'-':project.projectSeparate.warrantyStartDate}}</span></el-col>
|
|
|
- <el-col :span="5" ><span class="gray_label">质保截止时间:</span></el-col><el-col :span="7" ><span>
|
|
|
+ <el-col :span="5" ><span class="gray_label">{{ $t('warrantyexpirationtime') }}:</span></el-col><el-col :span="7" ><span>
|
|
|
{{project.projectSeparate.warrantyEndDate == null?'-':project.projectSeparate.warrantyEndDate}}</span></el-col>
|
|
|
</el-row>
|
|
|
<el-row :gutter="10" >
|
|
|
- <el-col :span="5" ><span class="gray_label">自主项目类别:</span></el-col><el-col :span="7" ></el-col>
|
|
|
+ <el-col :span="5" ><span class="gray_label">{{ $t('IndependentProject') }}:</span></el-col><el-col :span="7" ></el-col>
|
|
|
<el-col :span="18" ><span>{{project.projectSeparate.projectCategorySub}}</span></el-col>
|
|
|
</el-row>
|
|
|
<el-row :gutter="10" >
|
|
|
- <el-col :span="5" ><span class="gray_label">所属大区:</span></el-col><el-col :span="7" ></el-col>
|
|
|
+ <el-col :span="5" ><span class="gray_label">{{ $t('region') }}:</span></el-col><el-col :span="7" ></el-col>
|
|
|
<el-col :span="18" ><span>{{project.projectSeparate.region}}</span></el-col>
|
|
|
</el-row>
|
|
|
<el-row :gutter="10" >
|
|
|
- <el-col :span="5" ><span class="gray_label">所属BU:</span></el-col><el-col :span="7" ></el-col>
|
|
|
+ <el-col :span="5" ><span class="gray_label">{{ $t('subordinateBU') }}:</span></el-col><el-col :span="7" ></el-col>
|
|
|
<el-col :span="18" ><span>{{project.projectSeparate.bu}}</span></el-col>
|
|
|
</el-row>
|
|
|
</div>
|
|
|
<div v-if="user.companyId == '428'">
|
|
|
<el-row :gutter="10" >
|
|
|
- <el-col :span="5" ><span class="gray_label">项目分组:</span></el-col><el-col :span="7" ></el-col>
|
|
|
+ <el-col :span="5" ><span class="gray_label">{{ $t('projectgroup') }}:</span></el-col><el-col :span="7" ></el-col>
|
|
|
<el-col :span="18" ><div v-if="project.projectSeparate"><span>{{project.projectSeparate.projectCategorySub}}</span></div></el-col>
|
|
|
</el-row>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="box" style="margin-top:10px;">
|
|
|
- <div><label>相关人员</label>
|
|
|
+ <div><label>{{ $t('xianguan') }}</label>
|
|
|
<el-link v-if="user.id == project.creatorId || user.id == project.inchargerId || permissions.projectManagement" @click="showEditPar" style="float:right;"><i class="el-icon-edit" ></i></el-link>
|
|
|
</div>
|
|
|
- <div style="margin-top:10px;color:#999;">项目经理</div>
|
|
|
+ <div style="margin-top:10px;color:#999;">{{ $t('projectmanager') }}</div>
|
|
|
<div><el-link style="margin:10px" @click="showUser(project.inchargerId)">{{project.inchargerName}}</el-link></div>
|
|
|
- <div style="margin-top:10px;color:#999;">日报审核人</div>
|
|
|
+ <div style="margin-top:10px;color:#999;">{{ $t('newspaperauditor') }}</div>
|
|
|
<div>
|
|
|
<span v-if="project.auditorList.length == 0" style="margin:10px;">-</span>
|
|
|
<el-link v-for="item in project.auditorList" :key="item.id" style="margin:10px;" @click="showUser(item.auditorId)">{{item.auditorName}}</el-link>
|
|
|
</div>
|
|
|
|
|
|
- <div v-show="project.isPublic == 0" style="color:#999;">参与人</div>
|
|
|
+ <div v-show="project.isPublic == 0" style="color:#999;">{{ $t('participantin') }}</div>
|
|
|
<div v-show="project.isPublic == 0" >
|
|
|
<el-link v-for="item in project.participationList" :key="item.id" style="margin:10px;" @click="showUser(item.id)">{{item.name}}</el-link>
|
|
|
<el-button class="el-icon-plus" @click="addMembVisible=true" size="mini"></el-button>
|
|
@@ -110,17 +110,17 @@
|
|
|
</div>
|
|
|
|
|
|
<div class="box" style="margin-top:10px;" v-if="user.companyId == '936'">
|
|
|
- <div><label>关键节点</label>
|
|
|
+ <div><label>{{ $t('keynodes') }}</label>
|
|
|
<el-link v-if="user.id == project.creatorId || user.id == project.inchargerId || permissions.projectManagement" @click="showEditParKeyNode" style="float:right;"><i class="el-icon-edit" ></i></el-link>
|
|
|
</div>
|
|
|
<el-table :data="keyNodesList" style="width: 100%">
|
|
|
- <el-table-column prop="nodesName" label="节点名称" width="300"></el-table-column>
|
|
|
- <el-table-column prop="planCompleteDate" label="计划完成时间" width="150"></el-table-column>
|
|
|
- <el-table-column prop="actualCompleteDate" label="实际完成时间" width="150"></el-table-column>
|
|
|
- <el-table-column prop="states" label="状态" width="80">
|
|
|
+ <el-table-column prop="nodesName" :label="$t('nameofthenode')" width="300"></el-table-column>
|
|
|
+ <el-table-column prop="planCompleteDate" :label="$t('plannedcompletiontime')" width="150"></el-table-column>
|
|
|
+ <el-table-column prop="actualCompleteDate" :label="$t('actualcompletiontime')" width="150"></el-table-column>
|
|
|
+ <el-table-column prop="states" :label="$t('state.states')" width="80">
|
|
|
<template slot-scope="scope">
|
|
|
<div>
|
|
|
- {{scope.row.states == '0' ? '正常' : (scope.row.states == '1' ? '预期' : '完成')}}
|
|
|
+ {{scope.row.states == '0' ? $t('zheng-chang') : (scope.row.states == '1' ? $t('yu-qi') : $t('wan-cheng'))}}
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
@@ -139,7 +139,7 @@
|
|
|
</div> -->
|
|
|
<!--项目相关工程专业 -->
|
|
|
<div class="box info" style="margin-top:10px;" v-if="user.company.packageEngineering == 1">
|
|
|
- <div><label>相关工程专业<el-link v-if="user.id == project.creatorId || user.id == project.inchargerId || permissions.projectManagement" @click="showEditProfession" style="float:right;"><i class="el-icon-edit" ></i></el-link></label>
|
|
|
+ <div><label>{{ $t('xiangguangongcheng') }}<el-link v-if="user.id == project.creatorId || user.id == project.inchargerId || permissions.projectManagement" @click="showEditProfession" style="float:right;"><i class="el-icon-edit" ></i></el-link></label>
|
|
|
<el-row :gutter="10" v-for="item in projectProfessionListOnPage" :key="item.id">
|
|
|
<el-col :span="5" ><span >{{item.professionName}}</span></el-col>
|
|
|
<el-col :span="2" ><span >{{item.percentage}}%</span></el-col>
|
|
@@ -164,31 +164,31 @@
|
|
|
</div> -->
|
|
|
|
|
|
<div class="box" style="margin-top:10px;">
|
|
|
- <label>项目统计</label>
|
|
|
+ <label>{{ $t('projecttongji') }}</label>
|
|
|
<div>
|
|
|
<el-row :gutter="10">
|
|
|
<el-col :span="4" style="text-align:center;">
|
|
|
- <p style="color:#666;font-size:12px;">已完成</p>
|
|
|
+ <p style="color:#666;font-size:12px;">{{ $t('state.completed') }}</p>
|
|
|
<p style="font-size:20px;font-weight:bold;color:green;">{{taskSum.finishCount}}</p>
|
|
|
</el-col>
|
|
|
<el-col :span="4" style="text-align:center;">
|
|
|
- <p style="color:#666;font-size:12px;">未完成</p>
|
|
|
+ <p style="color:#666;font-size:12px;">{{ $t('wei-wan-cheng') }}</p>
|
|
|
<p style="font-size:20px;color:blue;font-weight:bold;">{{taskSum.unfinishCount}}</p>
|
|
|
</el-col>
|
|
|
<el-col :span="4" style="text-align:center;">
|
|
|
- <p style="color:#666;font-size:12px;">已逾期</p>
|
|
|
+ <p style="color:#666;font-size:12px;">{{ $t('yi-yu-qi') }}</p>
|
|
|
<p style="font-size:20px;color:red;font-weight:bold;">{{taskSum.timeupCount}}</p>
|
|
|
</el-col>
|
|
|
<el-col :span="4" style="text-align:center;">
|
|
|
- <p style="color:#666;font-size:12px;">待认领</p>
|
|
|
+ <p style="color:#666;font-size:12px;">{{ $t('dai-ren-ling') }}</p>
|
|
|
<p style="font-size:20px;color:#orange;font-weight:bold;">{{taskSum.unassignCount}}</p>
|
|
|
</el-col>
|
|
|
<el-col :span="4" style="text-align:center;">
|
|
|
- <p style="color:#666;font-size:12px;">今日到期</p>
|
|
|
+ <p style="color:#666;font-size:12px;">{{ $t('duetoday') }}</p>
|
|
|
<p style="font-size:20px;font-weight:bold;color:pink;">{{taskSum.todayTimeupCount}}</p>
|
|
|
</el-col>
|
|
|
<el-col :span="4" style="text-align:center;">
|
|
|
- <p style="color:#666;font-size:12px;">逾期完成</p>
|
|
|
+ <p style="color:#666;font-size:12px;">{{ $t('limittocomplete') }}</p>
|
|
|
<p style="font-size:20px;font-weight:bold;color:gray;">{{taskSum.timeupFinishCount}}</p>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -198,11 +198,11 @@
|
|
|
<el-col :span="7">
|
|
|
<!--进度显示 -->
|
|
|
<div v-if="user.company.packageEngineering == 1" style="margin-bottom:10px;background:#fff;border: 1px solid #eeeeee;border-radius:5px;min-height:305px;padding-left:5px;padding-right:5px;">
|
|
|
- <p><i class="el-icon-odometer"></i><span style="margin-left:5px;">完成情况</span></p>
|
|
|
+ <p><i class="el-icon-odometer"></i><span style="margin-left:5px;">{{ $t('completion') }}</span></p>
|
|
|
<el-divider></el-divider>
|
|
|
- <el-row><el-col :span="12"><span>项目总进度</span></el-col>
|
|
|
+ <el-row><el-col :span="12"><span>{{ $t('projectprogress') }}</span></el-col>
|
|
|
<el-col :span="12"><el-progress :percentage="progressData.totalProjectProgress" ></el-progress></el-col></el-row>
|
|
|
- <p style="font-size:12px;color:#666;">各专业进度</p>
|
|
|
+ <p style="font-size:12px;color:#666;">{{ $t('progressofeachmajor') }}</p>
|
|
|
<el-table :show-header="false" :data="progressData.professionList" row-key="id" size="small" :tree-props="{children: 'membList', hasChildren: 'hasChildren'}">
|
|
|
<el-table-column
|
|
|
prop="professionName">
|
|
@@ -219,7 +219,7 @@
|
|
|
|
|
|
<div style="background:#fff;border: 1px solid #eeeeee;border-radius:5px;min-height:547px;padding-left:5px;padding-right:5px;">
|
|
|
<div>
|
|
|
- <p><i class="el-icon-trophy"></i><span style="margin-left:5px;">里程碑</span></p>
|
|
|
+ <p><i class="el-icon-trophy"></i><span style="margin-left:5px;">{{ $t('other.milestone') }}</span></p>
|
|
|
</div>
|
|
|
<el-timeline :reverse="reverse" style="padding-left: 3px;">
|
|
|
<el-timeline-item
|
|
@@ -236,126 +236,126 @@
|
|
|
</el-row>
|
|
|
</div>
|
|
|
<!--用户详细信息弹出框-->
|
|
|
- <el-dialog title="查看详情" v-if="userDetailVisible" :visible.sync="userDetailVisible" :close-on-click-modal="false" customClass="customWidth" width="500px">
|
|
|
- <div class="line"><span>姓名</span><span>{{userDetail.name}}</span></div>
|
|
|
- <div class="line"><span>工号</span><span>{{userDetail.jobNumber}}</span></div>
|
|
|
- <div class="line"><span>手机号码</span><span>{{userDetail.phone}}</span></div>
|
|
|
- <div class="line"><span>角色</span><span>{{roleArray[userDetail.role]}}</span></div>
|
|
|
- <div class="line"><span>部门</span><span>{{userDetail.departmentName}}</span></div>
|
|
|
+ <el-dialog :title="$t('Checkthedetails')" v-if="userDetailVisible" :visible.sync="userDetailVisible" :close-on-click-modal="false" customClass="customWidth" width="500px">
|
|
|
+ <div class="line"><span>{{ $t('lable.name') }}</span><span>{{userDetail.name}}</span></div>
|
|
|
+ <div class="line"><span>{{ $t('Worknumber') }}</span><span>{{userDetail.jobNumber}}</span></div>
|
|
|
+ <div class="line"><span>{{ $t('lable.phone') }}</span><span>{{userDetail.phone}}</span></div>
|
|
|
+ <div class="line"><span>{{ $t('jiao-se') }}</span><span>{{roleArray[userDetail.role]}}</span></div>
|
|
|
+ <div class="line"><span>{{ $t('lable.department') }}</span><span>{{userDetail.departmentName}}</span></div>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
- <el-button type="primary" @click="userDetailVisible = false" >确定</el-button>
|
|
|
+ <el-button type="primary" @click="userDetailVisible = false" >{{ $t('btn.determine') }}</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
|
|
|
<!-- 修改合同金额 -->
|
|
|
- <el-dialog title="修改合同金额" v-if="contractDialog" :visible.sync="contractDialog" :close-on-click-modal="false" customClass="customWidth" width="600px">
|
|
|
+ <el-dialog :title="$t('xiugaihetongjie')" v-if="contractDialog" :visible.sync="contractDialog" :close-on-click-modal="false" customClass="customWidth" width="600px">
|
|
|
<el-form ref="contractForm" :model="contractData" :rules="contractRules" label-width="120px">
|
|
|
- <el-form-item label="原合同金额"><span>{{contractData.oldContractAmount == null?'-':contractData.oldContractAmount | numberToCurrency}}(单位:元)</span></el-form-item>
|
|
|
- <el-form-item label="修改金额" prop="contractAmount">
|
|
|
+ <el-form-item :label="$t('xiugayuanhetong')"><span>{{contractData.oldContractAmount == null?'-':contractData.oldContractAmount | numberToCurrency}}{{ $t('danwei') }}</span></el-form-item>
|
|
|
+ <el-form-item :label="$t('xiu-gai-jin-e')" prop="contractAmount">
|
|
|
<el-select v-model="contractData.addordelete" style="width:20%">
|
|
|
- <el-option label="增加" :value="1"></el-option>
|
|
|
- <el-option label="减少" :value="0"></el-option>
|
|
|
+ <el-option :label="$t('addJia')" :value="1"></el-option>
|
|
|
+ <el-option :label="$t('removeSao')" :value="0"></el-option>
|
|
|
</el-select>
|
|
|
<el-input style="width:79%" v-model="contractData.contractAmount" id="contractChange" placeholder="" clearable @keyup.native="restrictNumber('contractChange')"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="修改原因">
|
|
|
- <el-input type="textarea" :rows="2" v-model="contractData.contractAmountDesc" maxlength="200" show-word-limit placeholder="请输入修改原因" clearable></el-input>
|
|
|
+ <el-form-item :label="$t('modifythereason')">
|
|
|
+ <el-input type="textarea" :rows="2" v-model="contractData.contractAmountDesc" maxlength="200" show-word-limit :placeholder="$t('peaseenterthe')" clearable></el-input>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
- <el-button @click.native="contractDialog = false">取消</el-button>
|
|
|
- <el-button type="primary" @click="contractChangeSure" :loading="addLoading">提交</el-button>
|
|
|
+ <el-button @click.native="contractDialog = false">{{ $t('btn.cancel') }}</el-button>
|
|
|
+ <el-button type="primary" @click="contractChangeSure" :loading="addLoading">{{ $t('btn.submit') }}</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
|
|
|
<!-- 合同金额修改记录 -->
|
|
|
- <el-dialog title="合同金额修改记录" v-if="contractRecordDialog" :visible.sync="contractRecordDialog" :close-on-click-modal="false" customClass="customWidth" width="1000px">
|
|
|
+ <el-dialog :title="$t('hetongjinge')" v-if="contractRecordDialog" :visible.sync="contractRecordDialog" :close-on-click-modal="false" customClass="customWidth" width="1000px">
|
|
|
<el-table :data="contractRecordData" height="500px" :loading="contractRecordLoading" :default-sort="{prop: 'date', order: 'descending'}">
|
|
|
- <el-table-column label="操作人" prop="name" min-width="100">
|
|
|
+ <el-table-column :label="$t('other.operator')" prop="name" min-width="100">
|
|
|
<template slot-scope="scope">
|
|
|
<!-- <span>{{users.filter(item => item.id == scope.row.editUserId)[0].name}}</span> -->
|
|
|
<span>{{filterUserContract(scope.row.editUserId)}}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="修改时间" prop="date" min-width="120">
|
|
|
+ <el-table-column :label="$t('xiu-gai-shi-jian')" prop="date" min-width="120">
|
|
|
<template slot-scope="scope">
|
|
|
<!-- <span>{{scope.row.updateDate[0] + '-' + scope.row.updateDate[1] + '-' + scope.row.updateDate[2] + '\u3000' + scope.row.updateDate[3] + ':' + scope.row.updateDate[4] + ':' + scope.row.updateDate[5]}}</span> -->
|
|
|
<span>{{tempDateContract(scope.row.updateDate)}}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="原金额" prop="oldContractAmount" min-width="120">
|
|
|
+ <el-table-column :label="$t('yuan-jin-e')" prop="oldContractAmount" min-width="120">
|
|
|
<template slot-scope="scope">
|
|
|
- <span>{{scope.row.oldContractAmount.toFixed(2)}} 元</span>
|
|
|
+ <span>{{scope.row.oldContractAmount.toFixed(2)}} {{ $t('yuan') }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="修改情况" prop="record" min-width="120">
|
|
|
+ <el-table-column :label="$t('nderungsverlauf')" prop="record" min-width="120">
|
|
|
<template slot-scope="scope">
|
|
|
- <span>{{scope.row.oldContractAmount - scope.row.newContractAmount > 0 ? '减少' : '增加'}}</span>
|
|
|
- <span>{{scope.row.oldContractAmount - scope.row.newContractAmount > 0 ? (scope.row.oldContractAmount - scope.row.newContractAmount).toFixed(2) : (scope.row.newContractAmount - scope.row.oldContractAmount).toFixed(2)}} 元</span>
|
|
|
+ <span>{{scope.row.oldContractAmount - scope.row.newContractAmount > 0 ? $t('addJia') : $t('addJia')}}</span>
|
|
|
+ <span>{{scope.row.oldContractAmount - scope.row.newContractAmount > 0 ? (scope.row.oldContractAmount - scope.row.newContractAmount).toFixed(2) : (scope.row.newContractAmount - scope.row.oldContractAmount).toFixed(2)}} {{ $t('yuan') }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column label="修改原因" prop="reason" min-width="200"></el-table-column>
|
|
|
+ <el-table-column :label="$t('modifythereason')" prop="reason" min-width="200"></el-table-column>
|
|
|
</el-table>
|
|
|
</el-dialog>
|
|
|
|
|
|
|
|
|
<!--编辑基本信息界面-->
|
|
|
- <el-dialog title="项目基本信息" v-if="addFormVisible" :visible.sync="addFormVisible" :close-on-click-modal="false" customClass="customWidth" width="960px">
|
|
|
+ <el-dialog :title="$t('jiebnxx')" v-if="addFormVisible" :visible.sync="addFormVisible" :close-on-click-modal="false" customClass="customWidth" width="960px">
|
|
|
<el-form ref="basicInfoForm" :model="addForm" :rules="rules" label-width="120px">
|
|
|
- <el-form-item label="项目编号" >
|
|
|
- <el-input v-model="addForm.code" placeholder="请输入项目编号" clearable></el-input>
|
|
|
+ <el-form-item :label="$t('Itemno')" >
|
|
|
+ <el-input v-model="addForm.code" :placeholder="$t('peaseenterthe')" clearable></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="项目名称" prop="name">
|
|
|
- <el-input v-model="addForm.name" placeholder="请输入项目名称" clearable></el-input>
|
|
|
+ <el-form-item :label="$t('headerTop.projectName')" prop="name">
|
|
|
+ <el-input v-model="addForm.name" :placeholder="$t('peaseenterthe')" clearable></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="项目描述" prop="projectDesc">
|
|
|
- <el-input type="textarea" :rows="2" v-model="addForm.projectDesc" maxlength="4000" show-word-limit placeholder="请输入项目描述" clearable></el-input>
|
|
|
+ <el-form-item :label="$t('other.projectDescription')" prop="projectDesc">
|
|
|
+ <el-input type="textarea" :rows="2" v-model="addForm.projectDesc" maxlength="4000" show-word-limit :placeholder="$t('peaseenterthe')" clearable></el-input>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="所属部门" v-if="user.timeType.projectWithDept">
|
|
|
- <el-cascader v-model="addForm.deptId" :options="departmentList" placeholder="请选择部门"
|
|
|
+ <el-form-item :label="$t('subordinatedepartments')" v-if="user.timeType.projectWithDept">
|
|
|
+ <el-cascader v-model="addForm.deptId" :options="departmentList" :placeholder="$t('defaultText.pleaseChoose')"
|
|
|
:props="{ checkStrictly: true, expandTrigger: 'hover' }" clearable filterable @change="cascaderChange"
|
|
|
></el-cascader>
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="级别" >
|
|
|
- <el-select v-model="addForm.level" placeholder="请选择级别" style="width:32%;" v-if="user.timeType.projectLevelState == 1">
|
|
|
+ <el-form-item :label="$t('ji-bie')" >
|
|
|
+ <el-select v-model="addForm.level" placeholder="$t('defaultText.pleaseChoose')" style="width:32%;" v-if="user.timeType.projectLevelState == 1">
|
|
|
<el-option v-for="item in levelList" :key="item.id" :label="item.projectLevelName" :value="item.id"></el-option>
|
|
|
</el-select>
|
|
|
- <el-select v-model="addForm.level" placeholder="请选择级别" style="width:32%;" v-else>
|
|
|
+ <el-select v-model="addForm.level" placeholder="$t('defaultText.pleaseChoose')" style="width:32%;" v-else>
|
|
|
<el-option v-for="item in importanceList" :key="item.id" :label="item.label" :value="item.id"></el-option>
|
|
|
</el-select>
|
|
|
- <span style="margin-left:50px;margin-right:10px;">合同金额</span>
|
|
|
+ <span style="margin-left:50px;margin-right:10px;">{{ $t('contractamount') }}</span>
|
|
|
<el-input v-model="addForm.contractAmount" id="contractAmount" :disabled="true" style="width:32%;"
|
|
|
- placeholder="" clearable @keyup.native="restrictNumber('contractAmount')"></el-input><span style="margin-left:10px;">元</span>
|
|
|
+ placeholder="" clearable @keyup.native="restrictNumber('contractAmount')"></el-input><span style="margin-left:10px;">{{ $t('yuan') }}</span>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="开始日期" prop="planStartDate">
|
|
|
+ <el-form-item :label="$t('time.startDate')" prop="planStartDate">
|
|
|
<el-date-picker v-model="addForm.planStartDate"
|
|
|
:editable="false"
|
|
|
format="yyyy-MM-dd"
|
|
|
value-format="yyyy-MM-dd"
|
|
|
:clearable="false" type="date"
|
|
|
style="width:32%"
|
|
|
- placeholder="选择日期"></el-date-picker>
|
|
|
+ :placeholder="$t('optiondate')"></el-date-picker>
|
|
|
<template v-if="user.timeType.outputValueStatus == 1">
|
|
|
- <span style="margin-left:50px;margin-right:10px;">项目产值</span>
|
|
|
+ <span style="margin-left:50px;margin-right:10px;">{{ $t('projectoutput') }}</span>
|
|
|
<el-input v-model="addForm.outputValue" id="outputValue" style="width:32%;"
|
|
|
- placeholder="" clearable @keyup.native="restrictNumber('outputValue')"></el-input><span style="margin-left:10px;">元</span>
|
|
|
+ placeholder="" clearable @keyup.native="restrictNumber('outputValue')"></el-input><span style="margin-left:10px;">{{ $t('yuan') }}</span>
|
|
|
</template>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="截止日期" prop="planEndDate">
|
|
|
+ <el-form-item :label="$t('expirationdate')" prop="planEndDate">
|
|
|
<el-date-picker v-model="addForm.planEndDate"
|
|
|
:editable="false"
|
|
|
format="yyyy-MM-dd"
|
|
|
value-format="yyyy-MM-dd"
|
|
|
:clearable="false" type="date"
|
|
|
style="width:32%"
|
|
|
- placeholder="选择日期"></el-date-picker>
|
|
|
+ :placeholder="$t('optiondate')"></el-date-picker>
|
|
|
</el-form-item>
|
|
|
|
|
|
<!-- 研究中心 -->
|
|
|
<el-form-item :label="yonghuUser.customDegreeName" v-if="user.timeType.customDegreeActive != 0">
|
|
|
- <el-select v-model="auseList" multiple placeholder="请选择" filterable="true" style="width: 100%">
|
|
|
+ <el-select v-model="auseList" multiple :placeholder="$t('defaultText.pleaseChoose')" filterable="true" style="width: 100%">
|
|
|
<span v-for="(item, index) in ause" :key="index">
|
|
|
<el-option :label="item.name" :value="item.id"></el-option>
|
|
|
</span>
|
|
@@ -363,102 +363,102 @@
|
|
|
</el-form-item>
|
|
|
|
|
|
<div v-if="user.companyId == '936'">
|
|
|
- <el-form-item label="合同编号" >
|
|
|
- <el-input v-model="addForm.projectSeparate.contractCode" placeholder="请输入合同编号" clearable></el-input>
|
|
|
+ <el-form-item :label="$t('contractno')" >
|
|
|
+ <el-input v-model="addForm.projectSeparate.contractCode" :placeholder="$t('peaseenterthe')" clearable></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="质保开始时间">
|
|
|
+ <el-form-item :label="$t('warrantystartime')">
|
|
|
<el-date-picker v-model="addForm.projectSeparate.warrantyStartDate"
|
|
|
:editable="false" style="width:32%;"
|
|
|
format="yyyy-MM-dd"
|
|
|
value-format="yyyy-MM-dd"
|
|
|
:clearable="false" type="date"
|
|
|
- placeholder="选择日期"></el-date-picker>
|
|
|
+ :placeholder="$t('optiondate')"></el-date-picker>
|
|
|
|
|
|
- <span style="margin-left:63px;margin-right:10px;" >质保截止时间</span>
|
|
|
+ <span style="margin-left:63px;margin-right:10px;" >{{ $t('warrantyexpirationtime') }}</span>
|
|
|
<el-date-picker v-model="addForm.projectSeparate.warrantyEndDate" style="width:33%;"
|
|
|
:editable="false"
|
|
|
format="yyyy-MM-dd"
|
|
|
value-format="yyyy-MM-dd"
|
|
|
:clearable="false" type="date"
|
|
|
- placeholder="选择日期"></el-date-picker>
|
|
|
+ :placeholder="$t('optiondate')"></el-date-picker>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="自主项目类别" >
|
|
|
- <el-input v-model="addForm.projectSeparate.projectCategorySub" placeholder="请输入自主项目类别" clearable></el-input>
|
|
|
+ <el-form-item :label="$t('IndependentProject')" >
|
|
|
+ <el-input v-model="addForm.projectSeparate.projectCategorySub" :placeholder="$t('peaseenterthe')" clearable></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="所属大区" >
|
|
|
- <el-input v-model="addForm.projectSeparate.region" placeholder="请输入 所属大区" clearable></el-input>
|
|
|
+ <el-form-item :label="$t('region')" >
|
|
|
+ <el-input v-model="addForm.projectSeparate.region" :placeholder="$t('peaseenterthe')" clearable></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="所属BU" >
|
|
|
- <el-input v-model="addForm.projectSeparate.bu" placeholder="所属BU" clearable></el-input>
|
|
|
+ <el-form-item :label="$t('subordinateBU')" >
|
|
|
+ <el-input v-model="addForm.projectSeparate.bu" :placeholder="$t('subordinateBU')" clearable></el-input>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
|
|
|
<div v-if="user.companyId == '428'">
|
|
|
- <el-form-item label="项目分组" >
|
|
|
- <el-input v-model="addForm.projectSeparate.projectCategorySub" placeholder="请输入项目分组" maxlength="50" show-word-limit clearable></el-input>
|
|
|
+ <el-form-item :label="$t('projectgroup')" >
|
|
|
+ <el-input v-model="addForm.projectSeparate.projectCategorySub" :placeholder="$t('peaseenterthe')" maxlength="50" show-word-limit clearable></el-input>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
|
|
|
</el-form>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
- <el-button @click.native="addFormVisible = false">取消</el-button>
|
|
|
- <el-button type="primary" @click="submitInsert" :loading="addLoading">提交</el-button>
|
|
|
+ <el-button @click.native="addFormVisible = false">{{ $t('btn.cancel') }}</el-button>
|
|
|
+ <el-button type="primary" @click="submitInsert" :loading="addLoading">{{ $t('btn.submit') }}</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
|
|
|
- <el-dialog title="校正成本基线" v-if="addBaseFormVisible" :visible.sync="addBaseFormVisible" :close-on-click-modal="false" customClass="customWidth" width="600px">
|
|
|
+ <el-dialog :title="$t('jiaoyan')" v-if="addBaseFormVisible" :visible.sync="addBaseFormVisible" :close-on-click-modal="false" customClass="customWidth" width="600px">
|
|
|
<el-form ref="basicInfoForm" label-width="120px">
|
|
|
<el-form-item v-for="(item, index) in modBaseCostData" :label="item.baseName" :key="item.id">
|
|
|
- <el-input :id="'baseCost'+index" v-model="item.baseAmount" placeholder="请输入" clearable @keyup.native="restrictNumber('baseCost'+index)"></el-input>
|
|
|
+ <el-input :id="'baseCost'+index" v-model="item.baseAmount" :placeholder="$t('peaseenterthe')" clearable @keyup.native="restrictNumber('baseCost'+index)"></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="备注" >
|
|
|
- <el-input v-model="remark" placeholder="请输入校正原因" ></el-input>
|
|
|
+ <el-form-item :label="$t('bei-zhu')" >
|
|
|
+ <el-input v-model="remark" :placeholder="$t('reasoforcorrection')" ></el-input>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
- <el-button @click.native="addBaseFormVisible = false">取消</el-button>
|
|
|
- <el-button type="primary" @click="adjustBase" :loading="addLoading">提交</el-button>
|
|
|
+ <el-button @click.native="addBaseFormVisible = false">{{ $t('btn.cancel') }}</el-button>
|
|
|
+ <el-button type="primary" @click="adjustBase" :loading="addLoading">{{ $t('btn.submit') }}</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
|
|
|
<!--编辑参与人界面-->
|
|
|
- <el-dialog title="编辑参与人员" v-if="pVisible" :visible.sync="pVisible" :close-on-click-modal="false" customClass="customWidth" width="600px">
|
|
|
+ <el-dialog :title="$t('editParticipants')" v-if="pVisible" :visible.sync="pVisible" :close-on-click-modal="false" customClass="customWidth" width="600px">
|
|
|
<el-form ref="participForm" :model="addForm" :rules="rules" label-width="120px">
|
|
|
- <el-form-item label="全部参与者">
|
|
|
- <el-select v-model="addForm.userId" multiple filterable placeholder="请选择参与者" style="width:100%;" @change="changeParticipator">
|
|
|
+ <el-form-item :label="$t('Allparticipants')">
|
|
|
+ <el-select v-model="addForm.userId" multiple filterable :placeholder="$t('defaultText.pleaseChoose')" style="width:100%;" @change="changeParticipator">
|
|
|
<el-option v-for="item in users" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="项目经理" >
|
|
|
- <el-select v-model="addForm.inchargerId" filterable placeholder="请选择负责人" style="width:100%;" >
|
|
|
+ <el-form-item :label="$t('projectmanager')" >
|
|
|
+ <el-select v-model="addForm.inchargerId" filterable :placeholder="$t('defaultText.pleaseChoose')" style="width:100%;" >
|
|
|
<el-option v-for="item in project.participationList" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
- <el-button @click.native="pVisible = false">取消</el-button>
|
|
|
- <el-button type="primary" @click="submitParticip" :loading="addLoading">提交</el-button>
|
|
|
+ <el-button @click.native="pVisible = false">{{ $t('btn.cancel') }}</el-button>
|
|
|
+ <el-button type="primary" @click="submitParticip" :loading="addLoading">{{ $t('btn.submit') }}</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
|
|
|
<!--添加参与人界面-->
|
|
|
- <el-dialog title="添加参与人" v-if="addMembVisible" :visible.sync="addMembVisible" :close-on-click-modal="false" customClass="customWidth" width="600px">
|
|
|
+ <el-dialog :title="$t('addingParticipant')" v-if="addMembVisible" :visible.sync="addMembVisible" :close-on-click-modal="false" customClass="customWidth" width="600px">
|
|
|
<el-form ref="addMembForm" :model="addMembForm" label-width="120px">
|
|
|
- <el-form-item label="新增参与者">
|
|
|
- <el-select v-model="addMembForm.userId" multiple filterable placeholder="请选择参与者" style="width:100%;" >
|
|
|
+ <el-form-item :label="$t('addAdding')">
|
|
|
+ <el-select v-model="addMembForm.userId" multiple filterable :placeholder="$t('defaultText.pleaseChoose')" style="width:100%;" >
|
|
|
<el-option v-for="item in users" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
- <el-button @click.native="addMembVisible = false">取消</el-button>
|
|
|
- <el-button type="primary" @click="submitAddMemb" :loading="addLoading">提交</el-button>
|
|
|
+ <el-button @click.native="addMembVisible = false">{{ $t('btn.cancel') }}</el-button>
|
|
|
+ <el-button type="primary" @click="submitAddMemb" :loading="addLoading">{{ $t('btn.submit') }}</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
|
|
|
<!--修改工程专业界面-->
|
|
|
- <el-dialog title="工程专业" v-if="editProfessionDialog" :visible.sync="editProfessionDialog"
|
|
|
+ <el-dialog :title="$t('engineering')" v-if="editProfessionDialog" :visible.sync="editProfessionDialog"
|
|
|
:close-on-click-modal="false" customClass="customWidth" width="1000px">
|
|
|
<el-table :data="projectProfessionList" size="small" max-height="400" :key="Math.random()">
|
|
|
<el-table-column prop="professionId" width="200">
|
|
@@ -468,22 +468,22 @@
|
|
|
</el-select>
|
|
|
</template>
|
|
|
<template slot="header" >
|
|
|
- <span style="font-size:14px;font-weight:normal;">专业名称</span>
|
|
|
+ <span style="font-size:14px;font-weight:normal;">{{ $t('nameprofessional') }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="percentage" width="100" label="占比">
|
|
|
+ <el-table-column prop="percentage" width="100" :label="$t('Accountedfor')">
|
|
|
<template slot-scope="scope">
|
|
|
<el-input type="number" v-model="scope.row.percentage"></el-input>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
|
|
|
- <el-table-column prop="membNames" label="相关人员及占比">
|
|
|
+ <el-table-column prop="membNames" :label="$t('personnelproportion')">
|
|
|
<template slot-scope="scope">
|
|
|
<span style="margin:0 5px;" v-for="item in scope.row.membList" :key="item.membId">{{item.membName}}({{item.percentage}}%)</span>
|
|
|
- <el-link @click="showEditPpMembs(scope.row)">{{(scope.row.membList == null || scope.row.membList.length == 0)?'设置专业参与人员':'设置'}}</el-link>
|
|
|
+ <el-link @click="showEditPpMembs(scope.row)">{{(scope.row.membList == null || scope.row.membList.length == 0)?$t('professionalparticipants'):$t('setup')}}</el-link>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="inchargerName" width="120" label="负责人">
|
|
|
+ <el-table-column prop="inchargerName" width="120" :label="$t('head')">
|
|
|
<template slot-scope="scope">
|
|
|
<el-select v-model="scope.row.inchargerId" >
|
|
|
<el-option v-for="item in participator" :key="item.id" :label="item.name" :value="item.id">
|
|
@@ -497,28 +497,28 @@
|
|
|
<el-button icon="el-icon-delete" size="mini" style="margin-left:10px;" @click.stop.native="deleteItem(scope.$index)"></el-button>
|
|
|
</template>
|
|
|
<template slot="header" >
|
|
|
- <el-link type="primary" :underline="false" @click="addItem">添加</el-link>
|
|
|
+ <el-link type="primary" :underline="false" @click="addItem">{{ $t('addTian') }}</el-link>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
- <el-button @click.native="editProfessionDialog = false">取消</el-button>
|
|
|
- <el-button type="primary" @click="saveProjectProfessions" :loading="addLoading">提交</el-button>
|
|
|
+ <el-button @click.native="editProfessionDialog = false">{{ $t('btn.cancel') }}</el-button>
|
|
|
+ <el-button type="primary" @click="saveProjectProfessions" :loading="addLoading">{{ $t('btn.submit') }}</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
|
|
|
<!-- 项目专业人员的设置 -->
|
|
|
- <el-dialog title="设置项目专业人员" v-if="editPpMembDialog" :visible.sync="editPpMembDialog" :close-on-click-modal="false" customClass="customWidth" width="600px">
|
|
|
+ <el-dialog :title="$t('setupprojectprofessionals')" v-if="editPpMembDialog" :visible.sync="editPpMembDialog" :close-on-click-modal="false" customClass="customWidth" width="600px">
|
|
|
<el-table :data="curProfessionRow.membList" height="400">
|
|
|
- <el-table-column prop="name" label="专业人员">
|
|
|
+ <el-table-column prop="name" :label="$t('professionals')">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-select v-model="scope.row.membId" filterable placeholder="请选择专业参与人" style="width:100%;" >
|
|
|
+ <el-select v-model="scope.row.membId" filterable :placeholder="$t('professionaladdsparticipant')" style="width:100%;" >
|
|
|
<el-option v-for="item in participator" :key="item.id" :label="item.name" :value="item.id">
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="percentage" width="120" label="占比(%)">
|
|
|
+ <el-table-column prop="percentage" width="120" :label="$t('zhan-bi')">
|
|
|
<template slot-scope="scope">
|
|
|
<el-input type="number" v-model="scope.row.percentage"></el-input>
|
|
|
</template>
|
|
@@ -528,45 +528,45 @@
|
|
|
<el-button icon="el-icon-delete" size="mini" style="margin-left:10px;" @click.stop.native="deleteMembItem(scope.$index)"></el-button>
|
|
|
</template>
|
|
|
<template slot="header" >
|
|
|
- <el-link @click="addMembItem">添加</el-link>
|
|
|
+ <el-link @click="addMembItem">{{ $t('addTian') }}</el-link>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
- <el-button @click="editPpMembDialog = false" >取消</el-button>
|
|
|
- <el-button type="primary" @click="addPpMemb" >确定</el-button>
|
|
|
+ <el-button @click="editPpMembDialog = false" >{{ $t('btn.cancel') }}</el-button>
|
|
|
+ <el-button type="primary" @click="addPpMemb" >{{ $t('btn.determine') }}</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
<!-- 编辑项目关键节点 -->
|
|
|
- <el-dialog title="编辑项目关键节点" :visible.sync="keyNodeIsShow" width="960px" :before-close="handleClose">
|
|
|
+ <el-dialog :title="$t('editkeyprojectnodes')" :visible.sync="keyNodeIsShow" width="960px" :before-close="handleClose">
|
|
|
<div>
|
|
|
<!--新版 -->
|
|
|
<div class="keyNodes">
|
|
|
- <div class="keyNodesName">节点名称</div>
|
|
|
- <div class="keyNodesTime">计划完成时间</div>
|
|
|
- <div class="keyNodesTime">实际完成时间</div>
|
|
|
- <div class="keyNodesTime">状态</div>
|
|
|
+ <div class="keyNodesName">{{ $t('nameofthenode') }}</div>
|
|
|
+ <div class="keyNodesTime">{{ $t('plannedcompletiontime') }}</div>
|
|
|
+ <div class="keyNodesTime">{{ $t('actualcompletiontime') }}</div>
|
|
|
+ <div class="keyNodesTime">{{ $t('state.states') }}</div>
|
|
|
</div>
|
|
|
<div class="keyNodes" v-for="item in projectKeyNodesData" :key="item.nodesId">
|
|
|
<div class="keyNodesName">{{item.nodesName}}</div>
|
|
|
<div class="keyNodesTime">
|
|
|
- <el-date-picker v-model="item.planCompleteDate" clearable style="width: 80%" size="small" :editable="false" format="yyyy-MM-dd" value-format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker>
|
|
|
+ <el-date-picker v-model="item.planCompleteDate" clearable style="width: 80%" size="small" :editable="false" format="yyyy-MM-dd" value-format="yyyy-MM-dd" type="date" :placeholder="$t('optiondate')"></el-date-picker>
|
|
|
</div>
|
|
|
<div class="keyNodesTime">
|
|
|
- <el-date-picker v-model="item.actualCompleteDate" clearable style="width: 80%" size="small" :editable="false" format="yyyy-MM-dd" value-format="yyyy-MM-dd" type="date" placeholder="选择日期"></el-date-picker>
|
|
|
+ <el-date-picker v-model="item.actualCompleteDate" clearable style="width: 80%" size="small" :editable="false" format="yyyy-MM-dd" value-format="yyyy-MM-dd" type="date" :placeholder="$t('optiondate')"></el-date-picker>
|
|
|
</div>
|
|
|
<div class="keyNodesTime">
|
|
|
- <el-select v-model="item.states" placeholder="请选择" style="width: 80%" size="small">
|
|
|
- <el-option label="正常" value="0"></el-option>
|
|
|
- <el-option label="预期" value="1"></el-option>
|
|
|
- <el-option label="完成" value="2"></el-option>
|
|
|
+ <el-select v-model="item.states" :placeholder="$t('defaultText.pleaseChoose')" style="width: 80%" size="small">
|
|
|
+ <el-option :label="$t('zheng-chang')" value="0"></el-option>
|
|
|
+ <el-option :label="$t('yu-qi')" value="1"></el-option>
|
|
|
+ <el-option :label="$t('wan-cheng')" value="2"></el-option>
|
|
|
</el-select>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<span slot="footer" class="dialog-footer">
|
|
|
- <el-button @click="keyNodeIsShow = false">取 消</el-button>
|
|
|
- <el-button type="primary" @click="submitKeyNodeaddForm()">确 定</el-button>
|
|
|
+ <el-button @click="keyNodeIsShow = false">{{ $t('btn.cancel') }}</el-button>
|
|
|
+ <el-button type="primary" @click="submitKeyNodeaddForm()">{{ $t('btn.determine') }}</el-button>
|
|
|
</span>
|
|
|
</el-dialog>
|
|
|
|
|
@@ -644,7 +644,7 @@
|
|
|
deptMembData: [
|
|
|
{
|
|
|
id: 0,
|
|
|
- label: '未分配',
|
|
|
+ label: this.$t('lable.unassigned'),
|
|
|
}
|
|
|
],
|
|
|
chosenMembCount:0,
|
|
@@ -658,7 +658,7 @@
|
|
|
projectProfessionList:[],
|
|
|
modBaseCostData:[],
|
|
|
projectBaseCostData:[],
|
|
|
- roleArray:["普通员工","超级管理员", "系统管理员", "公司高层","财务管理员", "项目管理员"],
|
|
|
+ roleArray:[this.$t('role.ordinaryEmployees'),this.$t('role.superAdministrator'), this.$t('role.systemAdministrator'), this.$t('role.companyTop'),this.$t('role.financialAdministrator'), this.$t('role.projectManager')],
|
|
|
addBaseFormVisible:false,
|
|
|
addMembVisible:false,
|
|
|
addMembForm:{},
|
|
@@ -670,11 +670,11 @@
|
|
|
addFormVisible:false,
|
|
|
userDetail:{},
|
|
|
userDetailVisible: false,
|
|
|
- importanceList:[{id:1,label:'正常'},{id:2,label:'紧急'},{id:3,label:'重要'},{id:4,label:'重要且紧急'}],
|
|
|
+ importanceList:[{id:1,label:this.$t('zheng-chang')},{id:2,label:this.$t('jin-ji')},{id:3,label:this.$t('zhong-yao')},{id:4,label:this.$t('zhong-yao-qie-jin-ji')}],
|
|
|
//1-一般,2-紧急,3-重要,4-重要且紧急
|
|
|
- levelTxt:["全部","正常","紧急","重要","重要且紧急"],
|
|
|
+ levelTxt:[this.$t('all'),this.$t('zheng-chang'),this.$t('jin-ji'),this.$t('zhong-yao'),this.$t('zhong-yao-qie-jin-ji')],
|
|
|
//1-进行中,2-已完成,3-已撤销
|
|
|
- statusTxt: ["全部","进行中","已完成","已撤销"],
|
|
|
+ statusTxt: [this.$t('all'),this.$t('ongoing'),this.$t('state.completed'),this.$t('state.undone')],
|
|
|
mileStoneList:[],
|
|
|
reverse:false,
|
|
|
project:{},
|
|
@@ -687,10 +687,10 @@
|
|
|
curProjectId:null,
|
|
|
title: "",
|
|
|
rules: {
|
|
|
- name: [{ required: true, message: "请输入项目名称", trigger: "blur" }],
|
|
|
+ name: [{ required: true, message: this.$t('Pleaseenteraprojectname'), trigger: "blur" }],
|
|
|
},
|
|
|
contractRules: {
|
|
|
- contractAmount: [{ required: true, message: "请输入合同金额", trigger: "blur" }]
|
|
|
+ contractAmount: [{ required: true, message: this.$t('enterthecontractamount'), trigger: "blur" }]
|
|
|
},
|
|
|
yonghuUser: [],
|
|
|
ause: [], // 研究中心总数据
|
|
@@ -743,7 +743,7 @@
|
|
|
this.keyNodeIsShow = false
|
|
|
this.getKeyNodes()
|
|
|
this.$message({
|
|
|
- message: '修改成功',
|
|
|
+ message: this.$t('message.modifyTheSuccess'),
|
|
|
type: 'success'
|
|
|
});
|
|
|
}else {
|
|
@@ -816,7 +816,7 @@
|
|
|
if(res.code == 'ok'){
|
|
|
this.contractDialog = false
|
|
|
this.$message({
|
|
|
- message: '修改成功',
|
|
|
+ message: this.$t('message.modifyTheSuccess'),
|
|
|
type: 'success'
|
|
|
})
|
|
|
this.getProjectInfo()
|
|
@@ -1083,7 +1083,7 @@
|
|
|
});
|
|
|
if (hasNoMemb) {
|
|
|
this.$message({
|
|
|
- message: '专业人员不能为空',
|
|
|
+ message: this.$t('professionalscannotbeempty'),
|
|
|
type: "error"
|
|
|
});
|
|
|
return;
|
|
@@ -1097,14 +1097,14 @@
|
|
|
});
|
|
|
if (hasDuplicate) {
|
|
|
this.$message({
|
|
|
- message: '专业人员不能重复',
|
|
|
+ message: this.$t('professionalscannotrepeat'),
|
|
|
type: "error"
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
if (p != 100) {
|
|
|
this.$message({
|
|
|
- message: '占比合计必须是100%',
|
|
|
+ message: this.$t('totalproportionmust'),
|
|
|
type: "error"
|
|
|
});
|
|
|
return;
|
|
@@ -1164,14 +1164,14 @@
|
|
|
|
|
|
if (hasNoProfession) {
|
|
|
this.$message({
|
|
|
- message: '专业不能为空',
|
|
|
+ message: this.$t('majorcannotbeempty'),
|
|
|
type: "error"
|
|
|
});
|
|
|
return false;
|
|
|
}
|
|
|
if (hasNoMembList) {
|
|
|
this.$message({
|
|
|
- message: '专业相关人员不能为空',
|
|
|
+ message: this.$t('personnelcannotbeleftblank'),
|
|
|
type: "error"
|
|
|
});
|
|
|
return false;
|
|
@@ -1179,7 +1179,7 @@
|
|
|
|
|
|
if (hasNoMemb) {
|
|
|
this.$message({
|
|
|
- message: '专业负责人不能为空',
|
|
|
+ message: this.$t('leadercannotbeblank'),
|
|
|
type: "error"
|
|
|
});
|
|
|
return false;
|
|
@@ -1193,14 +1193,14 @@
|
|
|
});
|
|
|
if (hasDuplicate) {
|
|
|
this.$message({
|
|
|
- message: '专业不能重复',
|
|
|
+ message: this.$t('shouldnotberepeated'),
|
|
|
type: "error"
|
|
|
});
|
|
|
return false;
|
|
|
}
|
|
|
if (p != 100) {
|
|
|
this.$message({
|
|
|
- message: '专业占比合计必须是100%',
|
|
|
+ message: this.$t('numberomajorsmust'),
|
|
|
type: "error"
|
|
|
});
|
|
|
return false;
|
|
@@ -1248,7 +1248,7 @@
|
|
|
this.editProfessionDialog = false;
|
|
|
this.projectProfessionListOnPage = res.data;
|
|
|
this.$message({
|
|
|
- message: '修改成功',
|
|
|
+ message: this.$t('message.modifyTheSuccess'),
|
|
|
type: "success"
|
|
|
});
|
|
|
} else {
|
|
@@ -1343,7 +1343,7 @@
|
|
|
this.getProjectBaseData(this.curProjectId);
|
|
|
this.addBaseFormVisible = false;
|
|
|
this.$message({
|
|
|
- message: '校正成功',
|
|
|
+ message: this.$t('jiaozheng'),
|
|
|
type: "success"
|
|
|
});
|
|
|
this.$emit("basecost-change", null);
|
|
@@ -1374,7 +1374,7 @@
|
|
|
} else {
|
|
|
this.addLoading = false;
|
|
|
this.$message({
|
|
|
- message: '请选择参与者',
|
|
|
+ message: this.$t('Pleaseselectparticipants'),
|
|
|
type: 'warning'
|
|
|
});
|
|
|
return
|
|
@@ -1385,7 +1385,7 @@
|
|
|
this.addLoading = false;
|
|
|
if (res.code == "ok") {
|
|
|
this.$message({
|
|
|
- message: "添加成功",
|
|
|
+ message: this.$t('addsuccessful'),
|
|
|
type: "success"
|
|
|
});
|
|
|
this.addMembForm.userId = []
|
|
@@ -1492,7 +1492,7 @@
|
|
|
this.addLoading = false;
|
|
|
if (res.code == "ok") {
|
|
|
this.$message({
|
|
|
- message: '修改成功',
|
|
|
+ message: this.$t('message.modifyTheSuccess'),
|
|
|
type: "success"
|
|
|
});
|
|
|
this.pVisible = false;
|
|
@@ -1593,7 +1593,7 @@
|
|
|
this.addLoading = false;
|
|
|
if (res.code == "ok") {
|
|
|
this.$message({
|
|
|
- message: (this.addForm.id!=null?'修改':'创建')+"成功",
|
|
|
+ message: (this.addForm.id!=null?this.$t('xiu-gai'):this.$t('create'))+this.$t('other.successful'),
|
|
|
type: "success"
|
|
|
});
|
|
|
this.addFormVisible = false;
|
|
@@ -1764,23 +1764,23 @@
|
|
|
// res.data[i].taskTex = '截止于 ' + res.data[i].endDate
|
|
|
// }
|
|
|
if(res.data[i].finishDate) {
|
|
|
- let str = `完成于 ${res.data[i].finishDate}`
|
|
|
+ let str = this.$t('wan-cheng-yu') + res.data[i].finishDate
|
|
|
res.data[i].taskTex = str
|
|
|
if(res.data[i].endDate) {
|
|
|
- let strS = '截止于 ' + res.data[i].endDate
|
|
|
+ let strS = this.$t('jie-zhi-yu') + res.data[i].endDate
|
|
|
let assignment = `${strS} ${str}`
|
|
|
res.data[i].taskTex = assignment
|
|
|
}
|
|
|
// res.data[i].taskTex = '完成于 ' + res.data[i].finishDate
|
|
|
} else if(res.data[i].endDate) {
|
|
|
- res.data[i].taskTex = '截止于 ' + res.data[i].endDate
|
|
|
+ res.data[i].taskTex = this.$t('jie-zhi-yu') + res.data[i].endDate
|
|
|
} else {
|
|
|
res.data[i].taskTex = ''
|
|
|
}
|
|
|
|
|
|
}
|
|
|
this.mileStoneList = res.data;
|
|
|
- this.mileStoneList.unshift( {id:-1, name:'开始', taskStatus:1});
|
|
|
+ this.mileStoneList.unshift( {id:-1, name:this.$t('kai-shi'), taskStatus:1});
|
|
|
|
|
|
|
|
|
} else {
|