Commit ee35bb14 authored by tianhongyang's avatar tianhongyang

项目台账头部详情接口对接

parent 340af9a4
......@@ -5,10 +5,10 @@ import request from '@/utils/request';
* @param {*} params
* @returns
*/
export const getProjectDetailApi = (params = {}) => request({
url: "",
export const getProjectDetailApi = (projectId) => request({
url: `/cbProjectRecord/getCbProjectHeadInfo/${projectId}`,
method: "get",
params
params: {}
});
//校验项目编码是否存在
......@@ -60,7 +60,7 @@ export function getProjectFileUploadDetail(projectId) {
//根据项目文件导入数据
export function importData(projectId) {
return request({
url: '/cbProjectRecord/importData/'+projectId,
url: '/cbProjectRecord/importData/' + projectId,
method: 'post',
});
}
......@@ -70,7 +70,7 @@ export function getDraftDialogList(data) {
return request({
url: '/cbProjectRecord/getDraftDialogList',
method: 'get',
params:data
params: data
});
}
......@@ -193,7 +193,7 @@ export function saveBatch(data) {
return request({
url: '/cb/cost/measures/saveBatch',
method: 'post',
data:data,
data: data,
});
}
......@@ -265,7 +265,7 @@ export function cbDirectExpenseAdd(data) {
return request({
url: '/cbDirectExpense/addExpense',
method: 'post',
data:data,
data: data,
});
}
......
......@@ -92,7 +92,7 @@ export default {
tabChoose(item) {
if (item.value == this.currentValue) return;
this.$emit("currentTabChange", item.value);
this.$emit("tabToggle", item.value);
this.$emit("tabToggle", item.value, item);
this.initSlidingBar();
}
},
......
......@@ -103,12 +103,12 @@ export default {
comProjectId: this.projectId,
menuTreeList: [],
// 加载数据列表
tableLoading: true,
tableLoading: false,
total: 0,
// 列表表头
formColum: [
{ label: '序号', prop: "staticSerialNumber", type: "index", lock: true, width: "53", fixed: false, uid: v4() },
{ label: '成本科目', prop: "cbSubjectName", width: "137", uid: v4(),slot : true },
{ label: '成本科目', prop: "cbSubjectName", width: "137", uid: v4(), slot: true },
{ label: '公司编码', prop: "companyNo", width: "137", uid: v4() },
{ label: '集团编码', prop: "orgNo", width: "137", uid: v4() },
{ label: '名称', prop: "cbName", width: "232", uid: v4() },
......@@ -230,7 +230,7 @@ export default {
this.total = list.data.length;
}
} catch (error) {
console.log(error);
} finally {
this.tableLoading = false;
}
......
......@@ -55,12 +55,11 @@ export default {
//方法集
methods: {
init(current) {
if (!current) return;
if (this?.comBreadCrumbTree?.length) {
const _temp = cloneDeep(this.comBreadCrumbTree);
// 根节点path 为root
_temp[0].path = "root";
this.currentBreadCurmbList = this.createBreadCrumb(current, _temp);
this.currentBreadCurmbList = current ? this.createBreadCrumb(current, _temp) : this.createBreadCrumb("root", _temp);
}
},
createBreadCrumb(current, data) {
......
......@@ -3,20 +3,20 @@
<div class="project-cost-ledger-detail-header-inner">
<project-bread-crumb :current="current" :breadCrumbTree="breadCrumbTree" @breadCrumbTrigger="breadCrumbTrigger"></project-bread-crumb>
<!-- 项目名称 -->
<div class="project-detail-header-name">宝安中学(集团)初中部改扩建工程施工总承包(二次公告)</div>
<div class="project-detail-header-name">{{comDetailInfo.projectName ? comDetailInfo.projectName : "-"}}</div>
<!-- 项目信息 -->
<div class="project-detail-plate">
<div class="detail-plate-item project-code" v-if="isShowProjectCode.includes(current)">
<span class="plate-item-name">项目编码:</span>
<span>AB21131212131</span>
<span>{{comDetailInfo.ipmProjectNo ? comDetailInfo.ipmProjectNo : "-"}}</span>
</div>
<div class="detail-plate-item">
<span class="plate-item-name">客户名称:</span>
<span>广联达科技股份有限公司天津分公司天津分公司</span>
<span>{{comDetailInfo.merchantName ? comDetailInfo.merchantName : "-"}}</span>
</div>
<div class="detail-plate-item">
<span class="plate-item-name">签订单位:</span>
<span>中建一局集团第二建筑有限公司</span>
<span>{{comDetailInfo.signingUnit ? comDetailInfo.signingUnit : "-"}}</span>
</div>
</div>
</div>
......@@ -28,14 +28,26 @@ export default {
name: "projectDetailHeader",
props: {
current: String,
breadCrumbTree: Array
breadCrumbTree: Array,
detailInfo: {
type: Object,
default: () => ({})
}
},
components: {
ProjectBreadCrumb
},
watch: {
detailInfo: {
handler(newValue) {
this.comDetailInfo = newValue ? newValue : {};
}
}
},
data() {
return {
isShowProjectCode: ["basicEngineeringInformation", "directCost", "feedSummary", "cost"],
comDetailInfo: this.detailInfo ? this.detailInfo : {}
};
},
//可访问data属性
......
......@@ -111,7 +111,7 @@ export default {
// 递归查找当前二级目录index
const _tempTree = this.tempMenuTree;
const result = this.findTargetLevelIndex(_tempTree, 2, []);
this.comDefaultOpeneds = result;
// this.comDefaultOpeneds = result;
}
},
findTargetLevelIndex(data = [], level = level, result = []) {
......
<template>
<div class="project-cost-ledger-detail">
<div class="project-cost-ledger-detail-inner">
<project-detail-header :current="current" :breadCrumbTree="createProjectBreadCrumbTree"></project-detail-header>
<project-detail-header :detail-info="detailInfo" :current="current"
:breadCrumbTree="createProjectBreadCrumbTree(toggleTabs)"></project-detail-header>
<!-- tab切换栏 -->
<dsk-tab-toggle v-model="current" :tabs="toggleTabs" @tabToggle="tabToggle" :disabled="tabsDisabled"></dsk-tab-toggle>
<!-- tab切换组件容器 -->
......@@ -65,11 +66,7 @@ export default {
projectId: "",
current: "",
// 详情信息变量
detailInfo: {
projectId: "1754425038355890177",
cbStage: 0,
cbType: 1
},
detailInfo: {},
tabsDisabled: false,
toggleTabs: [
{
......@@ -80,31 +77,37 @@ export default {
{
value: "directCost",
name: "直接费成本",
cbType: 0,
id: v4()
},
{
value: "feedSummary",
name: "工料汇总",
cbType: 1,
id: v4()
},
{
name: "措施项目",
value: "measureItem",
cbType: 2,
id: v4()
},
{
name: "其他项目",
value: "otherItems",
cbType: 3,
id: v4()
},
{
name: "现场经费",
value: "fieldExpenses",
cbType: 4,
id: v4()
},
{
name: "成本汇总",
value: "cost",
cbType: 5,
id: v4()
},
{
......@@ -125,9 +128,22 @@ export default {
},
//计算集
computed: {
createProjectBreadCrumbTree() {
},
//方法集
methods: {
async init() {
try {
const _tempArray = cloneDeep(this.toggleTabs.map(item => {
// 监听组件emit事件订阅 需要刷新数据
this.$on("refreshDetail", this.getProjectDetail);
await this.getProjectQuery();
} catch (error) {
}
},
createProjectBreadCrumbTree(tabs) {
try {
const _tempArray = cloneDeep(tabs.map(item => {
item.path = item.value;
item.breadcrumbName = item.name;
return item;
......@@ -141,34 +157,21 @@ export default {
triggerHandle: false,
childrenBreadCrumb: _tempArray
}],
};
return [_temp];
} catch (error) {
console.log(error);
}
}
},
//方法集
methods: {
async init() {
try {
// 监听组件emit事件订阅 需要刷新数据
this.$on("refreshDetail", this.getProjectDetail);
await this.getProjectQuery();
} catch (error) {
}
},
async getProjectQuery() {
try {
this.tabsDisabled = true;
const { query } = this.$route;
// if (!query.projectId) {
// this.$message.error("缺少项目id");
// this.tabsDisabled = true;
// return;
// };
if (!query.projectId) {
this.$message.error("缺少项目id");
this.tabsDisabled = true;
return;
};
this.projectId = query.projectId;
// 获取详情 保证详情获取完毕 再执行tab命中 进行生命周期
await this.getProjectDetail(query.projectId);
......@@ -178,6 +181,7 @@ export default {
// 默认命中工程项目信息
this.current = "basicEngineeringInformation";
};
this.setCbType(this.current);
this.tabsDisabled = false;
} catch (error) {
console.log(error);
......@@ -185,14 +189,34 @@ export default {
},
async getProjectDetail(projectId) {
try {
const detail = await getProjectDetailApi(projectId);
if (detail.code == 200 && detail.data) {
if (detail.data.id) detail.data["projectId"] = detail.data.id;
this.detailInfo = detail.data;
}
} catch (error) {
console.log(error);
}
},
getCurrentTab(current) {
if (current) {
const result = this.toggleTabs.find(item => item.value == current);
return result;
}
},
setCbType(current) {
if (!current) {
delete this.detailInfo["cbType"];
return;
}
const _temp = this.getCurrentTab(current);
if (_temp && (_temp.cbType ?? false)) {
this.$set(this.detailInfo, "cbType", _temp.cbType);
}
},
// 当前命中的current
tabToggle(value) {
tabToggle(value, valueCurrentObj) {
this.setCbType(value);
}
},
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment