|
@@ -130,12 +130,19 @@
|
|
|
<el-option v-for="(item, index) in projectStageList" :key="item.id" :label="item.projectStageName" :value="item.projectStageName"> </el-option>
|
|
|
</el-select>
|
|
|
|
|
|
- <el-select v-if="!screeningCondition.project.includes(ins)" v-model="proJuctId" :placeholder="$t('defaultText.pleaseSelectSnItem')" clearable filterable size="small" @change="projectChange()" style="margin-left:10px">
|
|
|
- <el-option v-for="(item) in proListOvertime" :key="item.id" :label="item.projectName + (item.projectCode ? item.projectCode : '')" :value="item.id">
|
|
|
- <span style="float: left;color: #8492a6;">{{ item.projectCode }}</span>
|
|
|
- <span style="float: right;font-size: 13px;margin-left: 20px">{{ item.projectName }}</span>
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
+ <div>
|
|
|
+ <el-select v-if="(ins == 0 || ins == 3) && user.companyId == 4811" v-model="projectMainId" :placeholder="'请选择主项目'" clearable filterable size="small" @change="selectMainProject()">
|
|
|
+ <el-option v-for="(item) in projectMainIdList" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
|
|
+ </el-select>
|
|
|
+
|
|
|
+ <el-select v-if="!screeningCondition.project.includes(ins)" v-model="proJuctId" :placeholder="$t('defaultText.pleaseSelectSnItem')" clearable filterable size="small" @change="projectChange()" style="margin-left:10px">
|
|
|
+ <el-option v-for="(item) in proListOvertime" :key="item.id" :label="item.projectName + (item.projectCode ? item.projectCode : '')" :value="item.id">
|
|
|
+ <span style="float: left;color: #8492a6;">{{ item.projectCode }}</span>
|
|
|
+ <span style="float: right;font-size: 13px;margin-left: 20px">{{ item.projectName }}</span>
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+
|
|
|
|
|
|
<template v-if="ins == 27">
|
|
|
<el-radio-group v-model="estimatedWorkingHoursType" size="small" @change="groupChange()">
|
|
@@ -238,6 +245,7 @@
|
|
|
<!--项目报表 -->
|
|
|
<el-table v-if="ins == 0" key="0" border :data="list0" highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;">
|
|
|
<el-table-column prop="projectCode" :label="user.companyId == '7030' ? '项目令号' : user.companyId == '7030' ? '项目令号' : $t('Itemno')" width="120"></el-table-column>
|
|
|
+ <el-table-column prop="projectMainName" label="主项目" width="200" v-if="user.companyId == 4811"></el-table-column>
|
|
|
<el-table-column prop="projectName" :label="$t('headerTop.projectName')" width="200">
|
|
|
<template slot-scope="scope" >
|
|
|
{{scope.row.projectName}}
|
|
@@ -468,6 +476,7 @@
|
|
|
<!--项目收支平衡表 -->
|
|
|
<el-table v-if="ins == 3" key="3" border :data="list3" highlight-current-row v-loading="listLoading" :height="tableHeight" style="width: 100%;">
|
|
|
<el-table-column prop="projectCode" :label="user.companyId == '7030' ? '项目令号' : $t('Itemno')" width="120"></el-table-column>
|
|
|
+ <el-table-column prop="projectMainName" label="主项目" width="200" v-if="user.companyId == 4811"></el-table-column>
|
|
|
<el-table-column prop="projectName" :label="$t('headerTop.projectName')" >
|
|
|
<template slot-scope="scope" >
|
|
|
{{scope.row.projectName}}
|
|
@@ -484,23 +493,29 @@
|
|
|
{{scope.row.payment.toFixed(2)}}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
-
|
|
|
- <el-table-column prop="feeMan" :label="$t('artificialcost')" width="100" align="right">
|
|
|
- <template slot-scope="scope">
|
|
|
- {{scope.row.feeMan.toFixed(2)}}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <el-table-column v-for="item in list3HeadList" :key="item.id" :label="item.name" width="100" align="right">
|
|
|
- <template slot-scope="scope">
|
|
|
- {{scope.row.projectExpenseFeeList == null?'0.00': (
|
|
|
- scope.row.projectExpenseFeeList.filter(expenseItem=>expenseItem.typeId == item.id).length > 0?
|
|
|
- scope.row.projectExpenseFeeList.filter(expenseItem=>expenseItem.typeId == item.id)[0].amount.toFixed(2) : '0.00')}}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
+
|
|
|
+ <template v-if="user.companyId != 4811">
|
|
|
+ <el-table-column prop="feeMan" :label="$t('artificialcost')" width="100" align="right">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{scope.row.feeMan.toFixed(2)}}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column v-for="item in list3HeadList" :key="item.id" :label="item.name" width="100" align="right">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ {{scope.row.projectExpenseFeeList == null?'0.00': (
|
|
|
+ scope.row.projectExpenseFeeList.filter(expenseItem=>expenseItem.typeId == item.id).length > 0?
|
|
|
+ scope.row.projectExpenseFeeList.filter(expenseItem=>expenseItem.typeId == item.id)[0].amount.toFixed(2) : '0.00')}}
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </template>
|
|
|
+
|
|
|
<el-table-column :label="$t('totalcostos')" width="100" align="right">
|
|
|
<template slot-scope="scope">
|
|
|
- {{(scope.row.budget).toFixed(2)}}
|
|
|
+ <template v-if="user.companyId != 4811">{{(scope.row.budget).toFixed(2)}}</template>
|
|
|
+ <template v-else>
|
|
|
+ <el-link type="primary" :underline="false" @click="showOtherExpensesClick(scope.row)">{{(scope.row.budget).toFixed(2)}}</el-link>
|
|
|
</template>
|
|
|
+ </template>
|
|
|
</el-table-column>
|
|
|
<el-table-column :label="$t('yiHuiKuanLiRun')" width="100" align="right" v-if="user.company.packageContract == 1">
|
|
|
<template slot-scope="scope">
|
|
@@ -1814,6 +1829,19 @@
|
|
|
<el-button type="primary" @click="editWriteOffOperation()">{{ $t('queDing') }}</el-button>
|
|
|
</span>
|
|
|
</el-dialog>
|
|
|
+
|
|
|
+ <!-- 详细费用 -->
|
|
|
+ <el-dialog :title="`${otherExpensesRow.projectName}支出明细(元)`" :visible.sync="otherExpensesVisable" width="800px" top="5.6vh" :before-close="handleClose">
|
|
|
+ <div>
|
|
|
+ <el-table :data="otherExpensesRow.projectExpenseFeeList" height="50vh" border style="width: 100%">
|
|
|
+ <el-table-column prop="typeName" align="center" label="名称"></el-table-column>
|
|
|
+ <el-table-column prop="amount" align="center" label="费用(元)"></el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="otherExpensesVisable = false">关闭</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
</section>
|
|
|
</template>
|
|
|
|
|
@@ -1921,6 +1949,7 @@ export default {
|
|
|
proList: [],
|
|
|
proJuctId: '',
|
|
|
projectMainId: '',
|
|
|
+ projectMainIdList: [],
|
|
|
createDate: '2020-01-01',
|
|
|
rangeDatas: this.getCurrentRangeTime(),
|
|
|
userId: '',
|
|
@@ -2080,7 +2109,11 @@ export default {
|
|
|
estimatedWorkingHoursType: '按项目查看',
|
|
|
isWarn: false,
|
|
|
modRealCostItem:{id:null, realCost:0},
|
|
|
- editRowItem:null
|
|
|
+ editRowItem:null,
|
|
|
+ otherExpensesRow: {
|
|
|
+ projectExpenseFeeList: []
|
|
|
+ },
|
|
|
+ otherExpensesVisable: false
|
|
|
};
|
|
|
},
|
|
|
computed: {},
|
|
@@ -2112,6 +2145,9 @@ export default {
|
|
|
this.getProjectSort()
|
|
|
this.getSubUserCustom()
|
|
|
this.getProjectStage()
|
|
|
+ if(this.user.companyId == 4811) {
|
|
|
+ this.getProjectMainIdList()
|
|
|
+ }
|
|
|
},
|
|
|
filters: {
|
|
|
|
|
@@ -2162,6 +2198,14 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
+ showOtherExpensesClick(row) {
|
|
|
+ console.log(row, '<====== showOtherExpensesClick')
|
|
|
+ this.otherExpensesRow = {
|
|
|
+ ...row,
|
|
|
+ projectExpenseFeeList: row.projectExpenseFeeList || []
|
|
|
+ }
|
|
|
+ this.otherExpensesVisable = true
|
|
|
+ },
|
|
|
groupChange() {
|
|
|
this.page = 1
|
|
|
this.projectChange()
|
|
@@ -2625,6 +2669,10 @@ export default {
|
|
|
if (this.ins == 0) {
|
|
|
fName = this.$t('projectreport') + '.xlsx';
|
|
|
url += "/exportProject";
|
|
|
+ if(this.user.companyId == 4811) {
|
|
|
+ sl.projectId = this.proJuctId
|
|
|
+ sl.projectMainId = this.projectMainId
|
|
|
+ }
|
|
|
} else if (this.ins == 1) {
|
|
|
fName = this.$t('projectTaskReport') + '.xlsx';
|
|
|
url += "/exportProjectTask";
|
|
@@ -2639,6 +2687,10 @@ export default {
|
|
|
} else if (this.ins == 3) {
|
|
|
fName = this.$t('projectbalancesheet') + '.xlsx';
|
|
|
url += "/exportProjectInAndOut";
|
|
|
+ if(this.user.companyId == 4811) {
|
|
|
+ sl.projectId = this.proJuctId
|
|
|
+ sl.projectMainId = this.projectMainId
|
|
|
+ }
|
|
|
} else if (this.ins == 4) {
|
|
|
fName = this.$t('customerprojectprofitstatement') + '.xlsx';
|
|
|
url += "/exportCustomerProjectInAndOut";
|
|
@@ -2932,6 +2984,11 @@ export default {
|
|
|
this.selUserList = this.userList
|
|
|
this.tabPosition="0"
|
|
|
this.tabsType = 'all'
|
|
|
+ if(this.user.companyId == 4811) {
|
|
|
+ this.proJuctId = ''
|
|
|
+ this.projectMainId = ''
|
|
|
+ this.getProjectListOvertime()
|
|
|
+ }
|
|
|
this.getList();
|
|
|
},
|
|
|
stateKeySel(){
|
|
@@ -3143,10 +3200,11 @@ export default {
|
|
|
getProjectInAndOut() {
|
|
|
this.listLoading = true;
|
|
|
this.http.post('/project/getProjectInAndOut', {
|
|
|
- pageIndex: this.page,
|
|
|
- pageSize: this.size,
|
|
|
- projectId: this.proJuctId
|
|
|
- },
|
|
|
+ pageIndex: this.page,
|
|
|
+ pageSize: this.size,
|
|
|
+ projectId: this.proJuctId,
|
|
|
+ projectMainId: this.projectMainId
|
|
|
+ },
|
|
|
res => {
|
|
|
if (res.code == "ok") {
|
|
|
this.list3 = res.data.records;
|
|
@@ -3812,12 +3870,13 @@ export default {
|
|
|
|
|
|
|
|
|
getProjectList() {
|
|
|
- this.listLoading = true;
|
|
|
+ this.listLoading = true;
|
|
|
this.http.post('/project/getProjectPage', {
|
|
|
- pageIndex: this.page,
|
|
|
- pageSize: this.size,
|
|
|
- projectId: this.proJuctId
|
|
|
- },
|
|
|
+ pageIndex: this.page,
|
|
|
+ pageSize: this.size,
|
|
|
+ projectId: this.proJuctId,
|
|
|
+ projectMainId: this.projectMainId
|
|
|
+ },
|
|
|
res => {
|
|
|
if (res.code == "ok") {
|
|
|
this.list0 = res.data.records;
|
|
@@ -3845,6 +3904,7 @@ export default {
|
|
|
pageIndex: 1,
|
|
|
// pageSize: 9999,
|
|
|
pageSize: -1,
|
|
|
+ projectMainId: this.projectMainId
|
|
|
},
|
|
|
res => {
|
|
|
if (res.code == "ok") {
|
|
@@ -4672,6 +4732,16 @@ export default {
|
|
|
});
|
|
|
|
|
|
return arrs
|
|
|
+ },
|
|
|
+ selectMainProject() {
|
|
|
+ this.proJuctId = ''
|
|
|
+ this.getProjectListOvertime()
|
|
|
+ this.projectChange()
|
|
|
+ },
|
|
|
+ getProjectMainIdList() {
|
|
|
+ this.postData('/project/getAllMainProject', {}).then((res) => {
|
|
|
+ this.projectMainIdList = res.data || []
|
|
|
+ })
|
|
|
}
|
|
|
},
|
|
|
};
|