a
This commit is contained in:
parent
dce022f174
commit
be9fefb9dc
@ -1,118 +1,116 @@
|
||||
<template>
|
||||
<div class="flex pl-4 app-tabs bg-body">
|
||||
<div class="flex-1 min-w-0 menu">
|
||||
<div
|
||||
v-for="(item,index) in tabsLists"
|
||||
class="tab-pan"
|
||||
:class="{act:(currentRoute==item.path)}"
|
||||
>
|
||||
<span v-show="currentRoute==item.path" class="dot"></span>
|
||||
<span @click="handleChanges(item.fullPath)">{{ item.title }}</span>
|
||||
<el-icon @click="delTab(item.fullPath)">
|
||||
<Close />
|
||||
</el-icon>
|
||||
</div>
|
||||
<div class="flex pl-4 app-tabs bg-body">
|
||||
<div class="flex-1 min-w-0 menu">
|
||||
<div v-for="(item, index) in tabsLists" class="tab-pan" :class="{ act: (currentRoute == item.path) }">
|
||||
<span v-show="currentRoute == item.path" class="dot"></span>
|
||||
<span @click="handleChanges(item.fullPath)">{{ item.title }}</span>
|
||||
<el-icon @click="delTab(item.fullPath)">
|
||||
<Close />
|
||||
</el-icon>
|
||||
</div>
|
||||
<el-dropdown @command="handleCommand">
|
||||
<span class="flex items-center px-3">
|
||||
<icon :size="16" name="el-icon-arrow-down" />
|
||||
</span>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item command="closeCurrent">关闭当前</el-dropdown-item>
|
||||
<el-dropdown-item command="closeOther">关闭其他</el-dropdown-item>
|
||||
<el-dropdown-item command="closeAll">关闭全部</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
</div>
|
||||
</template>
|
||||
<el-dropdown @command="handleCommand">
|
||||
<span class="flex items-center px-3">
|
||||
<icon :size="16" name="el-icon-arrow-down" />
|
||||
</span>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item command="closeCurrent">关闭当前</el-dropdown-item>
|
||||
<el-dropdown-item command="closeOther">关闭其他</el-dropdown-item>
|
||||
<el-dropdown-item command="closeAll">关闭全部</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import useMultipleTabs from "@/hooks/useMultipleTabs";
|
||||
import { useWatchRoute } from "@/hooks/useWatchRoute";
|
||||
import useTabsStore, { getRouteParams } from "@/stores/modules/multipleTabs";
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const tabsStore = useTabsStore();
|
||||
const {
|
||||
removeOtherTab,
|
||||
addTab,
|
||||
removeAllTab,
|
||||
removeTab,
|
||||
tabsLists,
|
||||
currentTab,
|
||||
} = useMultipleTabs();
|
||||
useWatchRoute(() => {
|
||||
addTab();
|
||||
});
|
||||
|
||||
const handleChange = (fullPath: any) => {
|
||||
const tabItem = tabsStore.tasMap[fullPath];
|
||||
router.push(getRouteParams(tabItem));
|
||||
};
|
||||
const handleChanges = (fullPath: any) => {
|
||||
const tabItem = tabsStore.tasMap[fullPath];
|
||||
router.push(getRouteParams(tabItem));
|
||||
};
|
||||
|
||||
const delTab = (fullPath, index) => {
|
||||
removeTab(fullPath);
|
||||
if (fullPath.includes(route.path)) {
|
||||
handleChanges(tabsLists.value[index].fullPath);
|
||||
}
|
||||
|
||||
};
|
||||
const currentRoute = ref("");
|
||||
watch(
|
||||
() => route.path,
|
||||
(newCount, oldCount) => {
|
||||
currentRoute.value = newCount;
|
||||
console.log(currentRoute);
|
||||
},
|
||||
{
|
||||
immediate: true,
|
||||
deep: true,
|
||||
}
|
||||
);
|
||||
const handleCommand = (command: any) => {
|
||||
switch (command) {
|
||||
case "closeCurrent":
|
||||
removeTab();
|
||||
break;
|
||||
case "closeOther":
|
||||
removeOtherTab();
|
||||
break;
|
||||
case "closeAll":
|
||||
removeAllTab();
|
||||
break;
|
||||
}
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.menu {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
<script setup lang="ts">
|
||||
import useMultipleTabs from "@/hooks/useMultipleTabs";
|
||||
import { useWatchRoute } from "@/hooks/useWatchRoute";
|
||||
import useTabsStore, { getRouteParams } from "@/stores/modules/multipleTabs";
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const tabsStore = useTabsStore();
|
||||
const {
|
||||
removeOtherTab,
|
||||
addTab,
|
||||
removeAllTab,
|
||||
removeTab,
|
||||
tabsLists,
|
||||
currentTab,
|
||||
} = useMultipleTabs();
|
||||
useWatchRoute(() => {
|
||||
addTab();
|
||||
});
|
||||
|
||||
const handleChange = (fullPath: any) => {
|
||||
const tabItem = tabsStore.tasMap[fullPath];
|
||||
router.push(getRouteParams(tabItem));
|
||||
};
|
||||
const handleChanges = (fullPath: any) => {
|
||||
const tabItem = tabsStore.tasMap[fullPath];
|
||||
router.push(getRouteParams(tabItem));
|
||||
};
|
||||
|
||||
const delTab = (fullPath, index) => {
|
||||
removeTab(fullPath);
|
||||
if (fullPath.includes(route.path)) {
|
||||
handleChanges(tabsLists.value[index].fullPath);
|
||||
}
|
||||
.tab-pan {
|
||||
padding: 5px 20px;
|
||||
cursor: pointer;
|
||||
margin-bottom: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
};
|
||||
const currentRoute = ref("");
|
||||
watch(
|
||||
() => route.path,
|
||||
(newCount, oldCount) => {
|
||||
currentRoute.value = newCount;
|
||||
},
|
||||
{
|
||||
immediate: true,
|
||||
deep: true,
|
||||
}
|
||||
.act {
|
||||
background-color: #edefff;
|
||||
color: rgb(128, 142, 255);
|
||||
);
|
||||
const handleCommand = (command: any) => {
|
||||
switch (command) {
|
||||
case "closeCurrent":
|
||||
removeTab();
|
||||
break;
|
||||
case "closeOther":
|
||||
removeOtherTab();
|
||||
break;
|
||||
case "closeAll":
|
||||
removeAllTab();
|
||||
break;
|
||||
}
|
||||
.dot {
|
||||
display: inline-block;
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
background-color: #4a5dff;
|
||||
border-radius: 5px;
|
||||
margin-right: 5px;
|
||||
// font-size: 30px;
|
||||
}
|
||||
</style>
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.menu {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.tab-pan {
|
||||
padding: 5px 20px;
|
||||
cursor: pointer;
|
||||
margin-bottom: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.act {
|
||||
background-color: #edefff;
|
||||
color: rgb(128, 142, 255);
|
||||
}
|
||||
|
||||
.dot {
|
||||
display: inline-block;
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
background-color: #4a5dff;
|
||||
border-radius: 5px;
|
||||
margin-right: 5px;
|
||||
// font-size: 30px;
|
||||
}
|
||||
</style>
|
||||
|
2030
src/views/project/aaaa.vue
Normal file
2030
src/views/project/aaaa.vue
Normal file
File diff suppressed because it is too large
Load Diff
@ -12,10 +12,10 @@
|
||||
<el-table-column label="项目把握度" prop='project_assurance_text' />
|
||||
</el-table>
|
||||
</div>
|
||||
<!-- <div style="margin: 20px 0;">
|
||||
<div style="margin: 20px 0;">
|
||||
<el-pagination v-model:current-page="pager1.page_no" v-model:page-size="pager1.page_size"
|
||||
:page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total"
|
||||
@size-change="handleSizeChange1" @current-change="handleCurrentChange1" />
|
||||
@current-change="handleCurrentChange1" />
|
||||
</div>
|
||||
|
||||
<div class="tit">客户需求</div>
|
||||
@ -45,8 +45,8 @@
|
||||
@size-change="handleSizeChange2" @current-change="handleCurrentChange2" />
|
||||
</div>
|
||||
|
||||
<div class="tit">解决方案</div> -->
|
||||
<!-- <div>
|
||||
<div class="tit">解决方案</div>
|
||||
<div>
|
||||
<el-table :data="tableData3" stripe style="width: 100%">
|
||||
<el-table-column label="解决方案主题" prop='customer_demand_name' width="180" />
|
||||
<el-table-column label="提交时间" prop='submission_time' width="180" />
|
||||
@ -65,8 +65,8 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</div> -->
|
||||
<!-- <div style="margin: 20px 0;">
|
||||
</div>
|
||||
<div style="margin: 20px 0;">
|
||||
<el-pagination v-model:current-page="pager3.page_no" v-model:page-size="pager3.page_size"
|
||||
:page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total2"
|
||||
@size-change="handleSizeChange3" @current-change="handleCurrentChange3" />
|
||||
@ -129,7 +129,7 @@
|
||||
<el-pagination v-model:current-page="pager5.page_no" v-model:page-size="pager5.page_size"
|
||||
:page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total4"
|
||||
@size-change="handleSizeChange5" @current-change="handleCurrentChange5" />
|
||||
</div> -->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@ -144,37 +144,50 @@ import { apiProjectEstimateLists } from '@/api/project_estimate'
|
||||
import { apiCompetitorLists } from '@/api/competitor'
|
||||
|
||||
|
||||
const props = defineProps({
|
||||
project_id: Number
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
const tableData1 = ref([])
|
||||
const tableData2 = ref([])
|
||||
const tableData3 = ref([])
|
||||
const tableData4 = ref([])
|
||||
const tableData5 = ref([])
|
||||
|
||||
const total = ref(0)
|
||||
const total1 = ref(0)
|
||||
const total2 = ref(0)
|
||||
const total3 = ref(0)
|
||||
const total4 = ref(0)
|
||||
|
||||
|
||||
const pager1 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
project_id: props.project_id
|
||||
})
|
||||
const pager2 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: props.project_id
|
||||
})
|
||||
const pager3 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: props.project_id
|
||||
})
|
||||
const pager4 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: props.project_id
|
||||
})
|
||||
// const pager2 = reactive({
|
||||
// page_size: 10,
|
||||
// page_no: 1,
|
||||
// project_id: ""
|
||||
// })
|
||||
// const pager3 = reactive({
|
||||
// page_size: 10,
|
||||
// page_no: 1,
|
||||
// project_id: ""
|
||||
// })
|
||||
// const pager4 = reactive({
|
||||
// page_size: 10,
|
||||
// page_no: 1,
|
||||
// project_id: ""
|
||||
// })
|
||||
const pager5 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
project_id: props.project_id
|
||||
})
|
||||
|
||||
|
||||
@ -195,36 +208,35 @@ const demandList = () => {
|
||||
})
|
||||
}
|
||||
|
||||
// const handleSizeChange1 = (val: number) => {
|
||||
// // pager1.page_size = val
|
||||
// // followUpLists()
|
||||
// }
|
||||
|
||||
|
||||
// 解决方案列表
|
||||
// const solutionLists = () => {
|
||||
// apiCustomerDemandSolutionLists(pager5).then((res) => {
|
||||
// tableData3.value = res.lists
|
||||
// total2.value = res.count
|
||||
const solutionLists = () => {
|
||||
apiCustomerDemandSolutionLists(pager5).then((res) => {
|
||||
tableData3.value = res.lists
|
||||
total2.value = res.count
|
||||
|
||||
// })
|
||||
// }
|
||||
})
|
||||
}
|
||||
|
||||
// 获取项目概算列表
|
||||
// const estimateLists = () => {
|
||||
// apiProjectEstimateLists(pager4).then((res) => {
|
||||
// tableData4.value = res.lists
|
||||
// total3.value = res.count
|
||||
// })
|
||||
// }
|
||||
const estimateLists = () => {
|
||||
apiProjectEstimateLists(pager4).then((res) => {
|
||||
tableData4.value = res.lists
|
||||
total3.value = res.count
|
||||
})
|
||||
}
|
||||
|
||||
// 获取竞争对手列表
|
||||
// const competitorLists = () => {
|
||||
// apiCompetitorLists(pager5).then((res) => {
|
||||
// tableData5.value = res.lists
|
||||
// total4.value = res.count
|
||||
// })
|
||||
// }
|
||||
const competitorLists = () => {
|
||||
apiCompetitorLists(pager5).then((res) => {
|
||||
tableData5.value = res.lists
|
||||
total4.value = res.count
|
||||
})
|
||||
}
|
||||
|
||||
// const handleSizeChange1 = (val: number) => {
|
||||
// pager1.page_size = val
|
||||
// followUpLists()
|
||||
// }
|
||||
// const handleSizeChange2 = (val: number) => {
|
||||
// pager2.page_size = val
|
||||
// demandList()
|
||||
@ -243,17 +255,16 @@ const demandList = () => {
|
||||
// }
|
||||
|
||||
|
||||
// //获取客户需求列表
|
||||
// const demandList = () => {
|
||||
// apiCustomerDemandLists(pager5).then((res) => {
|
||||
// tableData1.value = res.lists
|
||||
// total1.value = res.count
|
||||
|
||||
// })
|
||||
// }
|
||||
followUpLists()
|
||||
// demandList()
|
||||
// competitorLists()
|
||||
// solutionLists()
|
||||
// estimateLists()
|
||||
</script>
|
||||
demandList()
|
||||
competitorLists()
|
||||
solutionLists()
|
||||
estimateLists()
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.tit {
|
||||
font-size: 1.2em;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
</style>
|
36
src/views/project/components/Collection.vue
Normal file
36
src/views/project/components/Collection.vue
Normal file
@ -0,0 +1,36 @@
|
||||
<template>
|
||||
<myTable :baseData="baseData"></myTable>
|
||||
</template>
|
||||
|
||||
|
||||
|
||||
<script setup>
|
||||
|
||||
import { ref, reactive, defineProps } from "vue"
|
||||
import myTable from "./myTable.vue"
|
||||
import { subpackagdetailLists } from '@/api/project_subpackage_budget_detail'
|
||||
|
||||
const props = defineProps({
|
||||
project_id: Number
|
||||
})
|
||||
|
||||
const baseData = reactive({
|
||||
fetchFun: subpackagdetailLists,
|
||||
tit: "竞争对手",
|
||||
queryParams: { project_id: props.project_id },
|
||||
|
||||
columnList: [
|
||||
{ label: '工作类型', prop: 'work_type' },
|
||||
{ label: '工作内容', prop: 'work_content' },
|
||||
{ label: '项目特征', prop: 'project_features' },
|
||||
{ label: '单位', prop: 'unit' },
|
||||
{ label: '预算工作量', prop: 'num' },
|
||||
{ label: '单价', prop: 'price' },
|
||||
{ label: '金额', prop: 'amount' },
|
||||
{ label: '已分包量', prop: 'has_subcontract_num' },
|
||||
{ label: '剩余工作量', prop: 'residue_num' },
|
||||
]
|
||||
})
|
||||
|
||||
|
||||
</script>
|
@ -1,11 +1,36 @@
|
||||
<template></template>
|
||||
<template>
|
||||
<myTable :baseData="baseData"></myTable>
|
||||
</template>
|
||||
|
||||
|
||||
|
||||
<script setup>
|
||||
|
||||
import { ref, reactive, defineProps } from "vue"
|
||||
import myTable from "./myTable.vue"
|
||||
import { subpackagdetailLists } from '@/api/project_subpackage_budget_detail'
|
||||
|
||||
const props = defineProps({
|
||||
// formData: Object
|
||||
project_id: Number
|
||||
})
|
||||
|
||||
const baseData = reactive({
|
||||
fetchFun: subpackagdetailLists,
|
||||
tit: "竞争对手",
|
||||
queryParams: { project_id: props.project_id },
|
||||
|
||||
columnList: [
|
||||
{ label: '工作类型', prop: 'work_type' },
|
||||
{ label: '工作内容', prop: 'work_content' },
|
||||
{ label: '项目特征', prop: 'project_features' },
|
||||
{ label: '单位', prop: 'unit' },
|
||||
{ label: '预算工作量', prop: 'num' },
|
||||
{ label: '单价', prop: 'price' },
|
||||
{ label: '金额', prop: 'amount' },
|
||||
{ label: '已分包量', prop: 'has_subcontract_num' },
|
||||
{ label: '剩余工作量', prop: 'residue_num' },
|
||||
]
|
||||
})
|
||||
|
||||
|
||||
</script>
|
44
src/views/project/components/budget.vue
Normal file
44
src/views/project/components/budget.vue
Normal file
@ -0,0 +1,44 @@
|
||||
<template>
|
||||
<myTable :baseData="baseData"></myTable>
|
||||
</template>
|
||||
|
||||
|
||||
|
||||
<script setup>
|
||||
|
||||
import { ref, reactive, defineProps } from "vue"
|
||||
import myTable from "./myTable.vue"
|
||||
import { subpackagdetailLists } from '@/api/project_subpackage_budget_detail'
|
||||
|
||||
|
||||
|
||||
|
||||
const props = defineProps({
|
||||
project_id: Number
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
const baseData = reactive({
|
||||
fetchFun: subpackagdetailLists,
|
||||
tit: "竞争对手",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '工作类型', prop: 'work_type' },
|
||||
{ label: '工作内容', prop: 'work_content' },
|
||||
{ label: '项目特征', prop: 'project_features' },
|
||||
{ label: '单位', prop: 'unit' },
|
||||
{ label: '预算工作量', prop: 'num' },
|
||||
{ label: '单价', prop: 'price' },
|
||||
{ label: '金额', prop: 'amount' },
|
||||
{ label: '已分包量', prop: 'has_subcontract_num' },
|
||||
{ label: '剩余工作量', prop: 'residue_num' },
|
||||
]
|
||||
})
|
||||
|
||||
</script>
|
0
src/views/project/components/construction.vue
Normal file
0
src/views/project/components/construction.vue
Normal file
99
src/views/project/components/contract.vue
Normal file
99
src/views/project/components/contract.vue
Normal file
@ -0,0 +1,99 @@
|
||||
<template>
|
||||
<div class='tit'>主合同</div>
|
||||
<div>
|
||||
<el-table :data="tableData19" stripe style="width: 100%">
|
||||
<el-table-column label="合同编号" prop='contract_name' width="180" />
|
||||
<el-table-column label="合同名称" prop='contract_code' width="180" />
|
||||
<el-table-column label="合同类型" prop='contract_type_text' />
|
||||
<el-table-column label="负责人" prop='business_director_name' />
|
||||
<el-table-column label="签约日期" prop='contract_date' />
|
||||
<el-table-column label="合同金额" prop='amount' />
|
||||
<el-table-column label="洽商金额" prop='negotiation_amount' />
|
||||
<el-table-column label="实际合同金额" prop='reality_contract_amount' />
|
||||
<el-table-column label="已回款" prop='returned_amount' />
|
||||
<el-table-column label="未回款" prop='not_returned_amount' />
|
||||
<el-table-column label="已开票" prop='invoicing_amount' />
|
||||
<el-table-column label="未开票" prop='not_invoicing_amount' />
|
||||
</el-table>
|
||||
</div>
|
||||
<div style="margin: 10px 0;">
|
||||
<el-pagination v-model:current-page="pager19.page_no" v-model:page-size="pager19.page_size"
|
||||
:page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total18"
|
||||
@size-change="handleSizeChange19" @current-change="handleCurrentChange19" />
|
||||
</div>
|
||||
<div class='tit' style="margin: 20px 0;">合同洽商</div>
|
||||
<div>
|
||||
<el-table :data="tableData20" stripe style="width: 100%">
|
||||
<el-table-column label="洽商编号" prop='negotiation_no' width="180" />
|
||||
<el-table-column label="洽商单名称" prop='negotiation_name' width="180" />
|
||||
<el-table-column label="合同编号" prop='contract_code' />
|
||||
<el-table-column label="洽商类别" prop='negotiation_type' />
|
||||
<el-table-column label="签约日期" prop='contract_date' />
|
||||
<el-table-column label="业务负责人" prop='business_director' />
|
||||
<el-table-column label="洽商金额" prop='negotiation_amount' />
|
||||
</el-table>
|
||||
</div>
|
||||
<div style="margin: 10px 0;">
|
||||
<el-pagination v-model:current-page="pager20.page_no" v-model:page-size="pager20.page_size"
|
||||
:page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total19"
|
||||
@size-change="handleSizeChange20" @current-change="handleCurrentChange20" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
|
||||
<script setup>
|
||||
|
||||
import { ref, reactive, defineProps } from "vue"
|
||||
import { apiContractLists } from '@/api/contract'
|
||||
import { apiContractNegotiationLists } from '@/api/contract_negotiation'
|
||||
const props = defineProps({
|
||||
project_id: Number
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
const tableData19 = ref([])
|
||||
const tableData20 = ref([])
|
||||
const total18 = ref(0)
|
||||
const total19 = ref(0)
|
||||
const total20 = ref(0)
|
||||
const pager19 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: props.project_id
|
||||
})
|
||||
|
||||
const pager20 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: props.project_id
|
||||
})
|
||||
|
||||
//获取项目合同列表
|
||||
const contractLists = () => {
|
||||
apiContractLists(pager19).then((res) => {
|
||||
tableData19.value = res.lists
|
||||
total18.value = res.count
|
||||
})
|
||||
}
|
||||
|
||||
//获取合同洽商列表
|
||||
const contcractNegotiationLists = () => {
|
||||
apiContractNegotiationLists(pager20).then((res) => {
|
||||
tableData20.value = res.lists
|
||||
total19.value = res.count
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
contractLists()
|
||||
contcractNegotiationLists()
|
||||
</script>
|
||||
<style >
|
||||
.tit {
|
||||
font-size: 1.2em;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
</style>
|
187
src/views/project/components/manpower.vue
Normal file
187
src/views/project/components/manpower.vue
Normal file
@ -0,0 +1,187 @@
|
||||
<template>
|
||||
<el-tabs v-model="active" class="demo-tabs">
|
||||
|
||||
<el-tab-pane label="项目人员" name="first-1">
|
||||
<myTable :baseData="baseData" v-if="active == 'first-1'"></myTable>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="劳动合同" name="first-2">
|
||||
<!-- <myTable :baseData="baseData1" v-if="active == 'first-2'"></myTable> -->
|
||||
<el-table :data="tableData13" stripe style="width: 100%">
|
||||
<el-table-column label="姓名" prop='project_name' width="180" />
|
||||
<el-table-column label="身份证号" prop='person_idcard' width="180" />
|
||||
<el-table-column label="合同状态" prop='contract_status_text' />
|
||||
<el-table-column label="合同类别" prop='contract_type_text' />
|
||||
<el-table-column label="合同名称" prop='contract_title_text' />
|
||||
<el-table-column label="合同签定日期" prop='signing_date' />
|
||||
<el-table-column label="起始时间" prop='start_date' />
|
||||
<el-table-column label="终止时间" prop='end_date' />
|
||||
|
||||
<el-table-column label="备注" prop='remark' />
|
||||
<el-table-column label="合同附件" prop="annex" show-overflow-tooltip>
|
||||
<template #default="{ row }">
|
||||
<div v-if="row.annex && row.annex.length > 0">
|
||||
<div v-for="(item, i) in row.annex " :key='i'>
|
||||
<el-link :href="item" target="_blank">文件{{ i + 1 }}查看</el-link>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else>
|
||||
暂无文件
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
</el-table>
|
||||
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="保险记录" name="first-3">
|
||||
<myTable :baseData="baseData1" v-if="active == 'first-3'"></myTable>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="项目考勤" name="first-4">
|
||||
<myTable :baseData="baseData2" v-if="active == 'first-4'"></myTable>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="考勤明细" name="first-5">
|
||||
|
||||
<myTable :baseData="baseData3" v-if="active == 'first-5'"></myTable>
|
||||
|
||||
</el-tab-pane>
|
||||
|
||||
|
||||
<el-tab-pane label="工资付款" name="first-6">
|
||||
|
||||
<myTable :baseData="baseData4" v-if="active == 'first-6'"></myTable>
|
||||
|
||||
|
||||
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</template>
|
||||
|
||||
|
||||
|
||||
<script setup>
|
||||
|
||||
import { ref, reactive, defineProps } from "vue"
|
||||
import myTable from "./myTable.vue"
|
||||
import { projectpersonnelLists } from '@/api/project_personnel'
|
||||
import { projectlaborcontractLists } from '@/api/project_labor_contract'
|
||||
import { insurancemanagementLists } from '@/api/project_insurance_management'
|
||||
import { attendanceRecordLists } from '@/api/project_attendance_record'
|
||||
import { attendancedetailLists } from '@/api/project_attendance_detail'
|
||||
import { projectsalaryDetailLists } from '@/api/project_salary_detail'
|
||||
|
||||
|
||||
const props = defineProps({
|
||||
project_id: Number
|
||||
})
|
||||
|
||||
const baseData = reactive({
|
||||
fetchFun: projectpersonnelLists,
|
||||
tit: "",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '姓名', prop: 'name' },
|
||||
{ label: '身份证号', prop: 'idcard' },
|
||||
{ label: '手机号', prop: 'mobile' },
|
||||
{ label: '工种', prop: 'work_type_text' },
|
||||
{ label: '人工单价', prop: 'unit_price' },
|
||||
{ label: '每日生活费', prop: 'price' },
|
||||
{ label: '期初收入', prop: 'opening_income' },
|
||||
{ label: '日结收入', prop: 'daily_income' },
|
||||
{ label: '完工量收入', prop: 'work_income' },
|
||||
{ label: '总收入', prop: 'total_income' },
|
||||
{ label: '总支出', prop: 'pay_out' },
|
||||
{ label: '余额', prop: 'balance' },
|
||||
]
|
||||
})
|
||||
const baseData1 = reactive({
|
||||
fetchFun: insurancemanagementLists,
|
||||
tit: "",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '姓名', prop: 'project_name' },
|
||||
{ label: '身份证号', prop: 'person_idcard' },
|
||||
{ label: '投保日期', prop: 'insurance_date' },
|
||||
{ label: '到期日期', prop: 'due_date' },
|
||||
{ label: '保险种类', prop: 'type_text' },
|
||||
{ label: '保单号', prop: 'insurance_no' },
|
||||
{ label: '投保金额(万元)', prop: 'insured_amount' },
|
||||
{ label: '保险公司', prop: 'insurance_company' },
|
||||
|
||||
]
|
||||
})
|
||||
|
||||
|
||||
const baseData2 = reactive({
|
||||
fetchFun: attendanceRecordLists,
|
||||
tit: "",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '日记工单号', prop: 'attendance_code' },
|
||||
{ label: '日期', prop: 'attendance_date' },
|
||||
{ label: '出勤人数', prop: 'competitor_contacts_phone' },
|
||||
{ label: '记工数量', prop: 'work_record_num_total' },
|
||||
{ label: '日工资合计', prop: 'daily_salary_total' },
|
||||
{ label: '日生活费合计', prop: 'daily_living_total' },
|
||||
{ label: '日补贴合计', prop: 'daily_subsidy_total' },
|
||||
{ label: '日其它合计', prop: 'daily_other_total' },
|
||||
{ label: '日收入合计', prop: 'daily_income_total' },
|
||||
{ label: '备注', prop: 'remark' },
|
||||
|
||||
]
|
||||
})
|
||||
const baseData3 = reactive({
|
||||
fetchFun: attendancedetailLists,
|
||||
tit: "",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '日记工单号', prop: 'attendance_code' },
|
||||
{ label: '日期', prop: 'attendance_date' },
|
||||
{ label: '姓名', prop: 'person_name' },
|
||||
{ label: '身份证号', prop: 'person_idcard' },
|
||||
{ label: '工种', prop: 'work_type_text' },
|
||||
{ label: '上班时间', prop: 'work_start_time' },
|
||||
{ label: '下班时间', prop: 'work_end_time' },
|
||||
{ label: '记工数量', prop: 'work_record_num' },
|
||||
{ label: '日工资', prop: 'daily_salary' },
|
||||
{ label: '日生活费', prop: 'daily_living' },
|
||||
{ label: '日补贴', prop: 'daily_subsidy' },
|
||||
{ label: '日其它', prop: 'daily_other' },
|
||||
{ label: '日收入', prop: 'daily_income' },
|
||||
{ label: '备注', prop: 'remark' },
|
||||
|
||||
]
|
||||
})
|
||||
const baseData4 = reactive({
|
||||
fetchFun: projectsalaryDetailLists,
|
||||
tit: "",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '工资付款单号', prop: 'payment_code' },
|
||||
{ label: '日期', prop: 'apply_date' },
|
||||
{ label: '姓名', prop: 'person_name' },
|
||||
{ label: '身份证号', prop: 'person_idcard' },
|
||||
{ label: '工种', prop: 'person_work_type_text' },
|
||||
{ label: '总收入', prop: 'total_income' },
|
||||
{ label: '总支出', prop: 'total_pay_out' },
|
||||
{ label: '未发放', prop: 'balance' },
|
||||
{ label: '本次付款金额', prop: 'apply_amount' },
|
||||
{ label: '备注', prop: 'remark' },
|
||||
|
||||
]
|
||||
})
|
||||
const pager13 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: props.project_id
|
||||
})
|
||||
|
||||
const tableData13 = ref("")
|
||||
|
||||
const laborcontractLists = () => {
|
||||
projectlaborcontractLists(pager13).then((res) => {
|
||||
tableData13.value = res.lists
|
||||
})
|
||||
}
|
||||
const active = ref('first-1')
|
||||
laborcontractLists()
|
||||
</script>
|
39
src/views/project/components/myTable.vue
Normal file
39
src/views/project/components/myTable.vue
Normal file
@ -0,0 +1,39 @@
|
||||
<template>
|
||||
<div class="tit" v-if="baseData.tit">{{ baseData.tit }}</div>
|
||||
<el-table :data="pager.lists" style="width: 100%">
|
||||
<el-table-column :label="item.label" :prop='item.prop' width="180" v-for="(item, index) in baseData.columnList"
|
||||
:key="index" />
|
||||
</el-table>
|
||||
<div class="flex justify-end mt-4">
|
||||
<pagination v-model="pager" @change="getLists" />
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { ref, reactive, defineProps, toRaw } from "vue"
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
const props = defineProps({
|
||||
baseData: Object,
|
||||
})
|
||||
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: props.baseData.fetchFun,
|
||||
params: props.baseData.queryParams || ""
|
||||
|
||||
})
|
||||
|
||||
getLists()
|
||||
|
||||
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.tit {
|
||||
font-size: 1.2em;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
:deep(.my-label) {
|
||||
width: 150px;
|
||||
}
|
||||
</style>
|
62
src/views/project/components/procurement.vue
Normal file
62
src/views/project/components/procurement.vue
Normal file
@ -0,0 +1,62 @@
|
||||
<template>
|
||||
<myTable :baseData="baseData"></myTable>
|
||||
</template>
|
||||
<!-- <div>
|
||||
<el-table :data="tableData26" stripe style="width: 100%">
|
||||
<el-table-column label="合同编号" prop="contract_no" show-overflow-tooltip />
|
||||
<el-table-column label="供应商名称" prop="contract_name" show-overflow-tooltip />
|
||||
<el-table-column label="合同类型" prop="contract_type" show-overflow-tooltip />
|
||||
<el-table-column label="签订日期" prop="signing_date" show-overflow-tooltip />
|
||||
<el-table-column label="合同金额" prop="contract_amount" show-overflow-tooltip />
|
||||
<el-table-column label="已付款金额" prop="has_pay_amount" show-overflow-tooltip />
|
||||
<el-table-column label="未付款金额" prop="not_pay_amount" show-overflow-tooltip />
|
||||
<el-table-column label="已开票金额" prop="invoice_amount" show-overflow-tooltip />
|
||||
<el-table-column label="未开票金额" prop="not_invoice_amount" show-overflow-tooltip />
|
||||
<el-table-column label="已入库数量" prop="has_storage_num" show-overflow-tooltip />
|
||||
<el-table-column label="未入库数量" prop="not_storage_num" show-overflow-tooltip />
|
||||
<el-table-column label="数量" prop="num" show-overflow-tooltip />
|
||||
</el-table>
|
||||
</div>
|
||||
<div style="margin: 10px 0;">
|
||||
<el-pagination v-model:current-page="pager26.page_no" v-model:page-size="pager26.page_size"
|
||||
:page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="total25" @size-change="handleSizeChange26"
|
||||
@current-change="handleCurrentChange26" />
|
||||
</div> -->
|
||||
|
||||
|
||||
<script setup>
|
||||
|
||||
import { ref, reactive, defineProps } from "vue"
|
||||
import myTable from "./myTable.vue"
|
||||
import { apiProcurementContractLists } from '@/api/procurement_contract'
|
||||
|
||||
const props = defineProps({
|
||||
project_id: Number
|
||||
})
|
||||
|
||||
|
||||
const baseData = reactive({
|
||||
fetchFun: apiProcurementContractLists,
|
||||
tit: "采购合同",
|
||||
queryParams: { project_id: props.project_id },
|
||||
|
||||
columnList: [
|
||||
{ label: '合同编号', prop: 'contract_no' },
|
||||
{ label: '供应商名称', prop: 'contract_name' },
|
||||
{ label: '合同类型', prop: 'contract_type' },
|
||||
{ label: '签订日期', prop: 'signing_date' },
|
||||
{ label: '合同金额', prop: 'contract_amount' },
|
||||
{ label: '已付款金额', prop: 'has_pay_amount' },
|
||||
{ label: '未付款金额', prop: 'not_pay_amount' },
|
||||
{ label: '已开票金额', prop: 'invoice_amount' },
|
||||
{ label: '未开票金额', prop: 'not_invoice_amount' },
|
||||
{ label: '已入库数量', prop: 'has_storage_num' },
|
||||
{ label: '未入库数量', prop: 'not_storage_num' },
|
||||
{ label: '数量', prop: 'num' },
|
||||
]
|
||||
})
|
||||
|
||||
|
||||
</script>
|
||||
<style ></style>
|
64
src/views/project/components/subcontract.vue
Normal file
64
src/views/project/components/subcontract.vue
Normal file
@ -0,0 +1,64 @@
|
||||
<template>
|
||||
<myTable :baseData="baseData"></myTable>
|
||||
<myTable :baseData="baseData1"></myTable>
|
||||
</template>
|
||||
|
||||
|
||||
|
||||
<script setup>
|
||||
|
||||
import { ref, reactive, defineProps } from "vue"
|
||||
import myTable from "./myTable.vue"
|
||||
import { apiSubcontractingContractLists } from '@/api/subcontracting_contract'
|
||||
import { apinegotiationLists } from '@/api/subcontractor'
|
||||
|
||||
const props = defineProps({
|
||||
project_id: Number
|
||||
})
|
||||
|
||||
|
||||
|
||||
const baseData1 = reactive({
|
||||
fetchFun: apinegotiationLists,
|
||||
tit: "分包洽商",
|
||||
queryParams: { project_id: props.project_id },
|
||||
|
||||
columnList: [
|
||||
{ label: '洽商编号', prop: 'negotiation_no' },
|
||||
{ label: '合同编号', prop: 'contract_no' },
|
||||
{ label: '洽商单名称', prop: 'negotiation_name' },
|
||||
{ label: '项目名称', prop: 'project_name' },
|
||||
{ label: '项目编号', prop: 'project_code' },
|
||||
{ label: '供应商', prop: 'supplier_name' },
|
||||
{ label: '洽商类别', prop: 'negotiation_type_text' },
|
||||
{ label: '洽商报价金额', prop: 'warranty_amount' },
|
||||
{ label: '洽商质保金额', prop: 'negotiation_amount' },
|
||||
|
||||
]
|
||||
})
|
||||
|
||||
const baseData = reactive({
|
||||
fetchFun: apiSubcontractingContractLists,
|
||||
tit: "分包合同",
|
||||
queryParams: { project_id: props.project_id },
|
||||
|
||||
columnList: [
|
||||
{ label: '项目名称', prop: 'project_name' },
|
||||
{ label: '合同编号', prop: 'contract_no' },
|
||||
{ label: '合同名称', prop: 'contract_name' },
|
||||
{ label: '供应商名称', prop: 'supplier_name' },
|
||||
{ label: '合同类型', prop: 'contract_type' },
|
||||
{ label: '合同金额', prop: 'contract_amount' },
|
||||
{ label: '洽商金额', prop: 'negotiation_amount' },
|
||||
{ label: '不含税金额', prop: 'excluding_tax_amount' },
|
||||
{ label: '实际合同金额', prop: 'reality_contract_amount' },
|
||||
{ label: '已付款金额', prop: 'has_pay_amount' },
|
||||
{ label: '已开票金额', prop: 'invoice_amount' },
|
||||
{ label: '未开票金额', prop: 'not_invoice_amount' },
|
||||
{ label: '已退款金额', prop: 'refund_amount' },
|
||||
{ label: '结算差异', prop: 'settlement_difference' },
|
||||
]
|
||||
})
|
||||
|
||||
|
||||
</script>
|
268
src/views/project/components/tender.vue
Normal file
268
src/views/project/components/tender.vue
Normal file
@ -0,0 +1,268 @@
|
||||
<template>
|
||||
<div class="tit">投标决策</div>
|
||||
<div>
|
||||
<el-table :data="tableData6" stripe style="width: 100%">
|
||||
<el-table-column label="流程编号" prop='code' width="180" />
|
||||
<el-table-column label="项目估算(万元)" prop='project_estimation' width="180" />
|
||||
<el-table-column label="资金来源" prop='bidding_project_fund_source' />
|
||||
<el-table-column label="投标时间" prop='bidding_time' />
|
||||
<el-table-column label="招标方式" prop='bid_type' />
|
||||
<el-table-column label="有无保证金" prop='is_margin' />
|
||||
<el-table-column label="保证金金额" prop='margin_amount' />
|
||||
<el-table-column label="开标日期" prop='bid_opening_date' />
|
||||
<el-table-column label="项目把握度" prop='project_assurance' />
|
||||
</el-table>
|
||||
</div>
|
||||
<div style="margin: 20px 0;">
|
||||
<el-pagination v-model:current-page="pager6.page_no" v-model:page-size="pager6.page_size"
|
||||
:page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total5"
|
||||
@size-change="handleSizeChange6" @current-change="handleCurrentChange6" />
|
||||
</div>
|
||||
|
||||
<div class="tit">购买标书</div>
|
||||
<div>
|
||||
<el-table :data="tableData7" stripe style="width: 100%">
|
||||
<el-table-column label="流程编号" prop='code' width="180" />
|
||||
<el-table-column label="投标公司名称" prop='bid_company_name' width="180" />
|
||||
<el-table-column label="招标公司名称" prop='invite_tenders_company_name' />
|
||||
<el-table-column label="标书编号" prop='bid_document_no' />
|
||||
<el-table-column label="购买人员" prop='buyer' />
|
||||
<el-table-column label="购买标书金额" prop='amount' />
|
||||
</el-table>
|
||||
</div>
|
||||
<div style="margin: 20px 0;">
|
||||
<el-pagination v-model:current-page="pager7.page_no" v-model:page-size="pager7.page_size"
|
||||
:page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total6"
|
||||
@size-change="handleSizeChange7" @current-change="handleCurrentChange7" />
|
||||
</div>
|
||||
|
||||
<div class="tit">标书审查</div>
|
||||
<div>
|
||||
<el-table :data="tableData8" stripe style="width: 100%">
|
||||
<el-table-column label="流程编号" prop='code' width="180" />
|
||||
<el-table-column label="标书编号" prop='bid_document_no' width="180" />
|
||||
<el-table-column label="购买人员" prop='buyer' />
|
||||
<el-table-column label="投标公司名称" prop='bid_company_name' />
|
||||
<el-table-column label="投标时间" prop='bidding_time' />
|
||||
<el-table-column label="开标日期" prop='bid_opening_date' />
|
||||
<el-table-column label="总金额" prop='total_amount' />
|
||||
</el-table>
|
||||
</div>
|
||||
<div style="margin: 20px 0;">
|
||||
<el-pagination v-model:current-page="pager8.page_no" v-model:page-size="pager8.page_size"
|
||||
:page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total7"
|
||||
@size-change="handleSizeChange8" @current-change="handleCurrentChange8" />
|
||||
</div>
|
||||
|
||||
<div class="tit">投标结果</div>
|
||||
<div>
|
||||
<el-table :data="tableData9" stripe style="width: 100%">
|
||||
<el-table-column label="投标编号" prop='bid_document_examination_code' width="180" />
|
||||
<el-table-column label="投标时间" prop='bidding_time' width="180" />
|
||||
<el-table-column label="开标日期" prop='bid_opening_date' />
|
||||
<el-table-column label="是否中标" prop='is_successful_text' width="180" />
|
||||
<el-table-column label="中标单位" prop='bidder_company' width="180" />
|
||||
<el-table-column label="中标金额" prop='bidder_amount' />
|
||||
|
||||
</el-table>
|
||||
</div>
|
||||
<div style="margin: 20px 0;">
|
||||
<el-pagination v-model:current-page="pager9.page_no" v-model:page-size="pager9.page_size"
|
||||
:page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total8"
|
||||
@size-change="handleSizeChang9" @current-change="handleCurrentChange9" />
|
||||
</div>
|
||||
|
||||
<div class="tit">投标保证金</div>
|
||||
<div>
|
||||
<el-table :data="tableData10" stripe style="width: 100%">
|
||||
<el-table-column label="流程编号" prop='bidding_decision_code' width="180" />
|
||||
<el-table-column label="投标时间" prop='bidding_time' width="180" />
|
||||
<el-table-column label="预计退还时间" prop='refund_date' />
|
||||
<el-table-column label="申请人" prop='applier' />
|
||||
<el-table-column label="保证金金额 " prop='margin_amount' />
|
||||
<el-table-column label="已退金额" prop='refund_amount' />
|
||||
<el-table-column label="未退金额" prop='not_refund_amount' />
|
||||
</el-table>
|
||||
</div>
|
||||
<div style="margin: 20px 0;">
|
||||
<el-pagination v-model:current-page="pager10.page_no" v-model:page-size="pager10.page_size"
|
||||
:page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total9"
|
||||
@size-change="handleSizeChange10" @current-change="handleCurrentChange10" />
|
||||
</div>
|
||||
<div class="tit">退投标保证金</div>
|
||||
<div>
|
||||
<el-table :data="tableData11" stripe style="width: 100%">
|
||||
<el-table-column label="投标时间" prop='bidding_time' width="180" />
|
||||
<el-table-column label="退款日期" prop='refund_date' width="180" />
|
||||
<el-table-column label="账户编码" prop='bank_account_info.account_sn' />
|
||||
<el-table-column label="开户银行" prop='bank_account_info.deposit_bank' />
|
||||
<el-table-column label="退款金额" prop='refund_amount' />
|
||||
<el-table-column label="客户名称" prop='custom_name' />
|
||||
<el-table-column label="创建日期" prop='create_time' />
|
||||
</el-table>
|
||||
</div>
|
||||
<div style="margin: 20px 0;">
|
||||
<el-pagination v-model:current-page="pager11.page_no" v-model:page-size="pager11.page_size"
|
||||
:page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total10"
|
||||
@size-change="handleSizeChange11" @current-change="handleCurrentChange11" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
|
||||
<script setup>
|
||||
|
||||
import { ref, reactive, defineProps } from "vue"
|
||||
import { apiBidBiddingDecisionLists } from '@/api/bid_bidding_decision'
|
||||
import { apiBidBuyBiddingDocumentLists } from '@/api/bid_buy_bidding_document'
|
||||
import { apiBidDocumentExaminationLists } from '@/api/bid_document_examination'
|
||||
import { apiBidResultLists } from '@/api/bid_result'
|
||||
import { bidapplyLists } from '@/api/bidbbond'
|
||||
import { bidrefundLists } from '@/api/refundbidDeposit'
|
||||
|
||||
const props = defineProps({
|
||||
project_id: Number
|
||||
})
|
||||
|
||||
|
||||
const total5 = ref(0)
|
||||
const total6 = ref(0)
|
||||
const total7 = ref(0)
|
||||
const total8 = ref(0)
|
||||
const total9 = ref(0)
|
||||
const total10 = ref(0)
|
||||
const total11 = ref(0)
|
||||
|
||||
const tableData6 = ref([])
|
||||
const tableData7 = ref([])
|
||||
const tableData8 = ref([])
|
||||
const tableData9 = ref([])
|
||||
const tableData10 = ref([])
|
||||
const tableData11 = ref([])
|
||||
|
||||
const pager6 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: props.project_id
|
||||
})
|
||||
const pager7 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: props.project_id
|
||||
})
|
||||
const pager8 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: props.project_id
|
||||
})
|
||||
const pager9 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: props.project_id
|
||||
})
|
||||
const pager10 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: props.project_id
|
||||
})
|
||||
const pager11 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: props.project_id
|
||||
})
|
||||
|
||||
|
||||
|
||||
// const handleSizeChange6 = (val: number) => {
|
||||
// pager6.page_size = val
|
||||
// decisionLists()
|
||||
// }
|
||||
|
||||
// const handleSizeChange7 = (val: number) => {
|
||||
|
||||
// pager7.page_size = val
|
||||
// buydocumentLists()
|
||||
// }
|
||||
// const handleSizeChange8 = (val: number) => {
|
||||
|
||||
// pager8.page_size = val
|
||||
// examinationLists()
|
||||
// }
|
||||
// const handleSizeChange9 = (val: number) => {
|
||||
|
||||
// pager9.page_size = val
|
||||
// bidResultLists()
|
||||
// }
|
||||
// const handleSizeChange10 = (val: number) => {
|
||||
|
||||
// pager10.page_size = val
|
||||
// applyLists()
|
||||
// }
|
||||
|
||||
// const handleSizeChange11 = (val: number) => {
|
||||
|
||||
// pager11.page_size = val
|
||||
|
||||
// refundLists()
|
||||
// }
|
||||
|
||||
//获取投标决策列表
|
||||
const decisionLists = () => {
|
||||
apiBidBiddingDecisionLists(pager6).then((res) => {
|
||||
tableData6.value = res.lists
|
||||
total5.value = res.count
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
//获取购买标书列表
|
||||
const buydocumentLists = () => {
|
||||
apiBidBuyBiddingDocumentLists(pager7).then((res) => {
|
||||
tableData7.value = res.lists
|
||||
total6.value = res.count
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
//获取标书审查列表
|
||||
const examinationLists = () => {
|
||||
apiBidDocumentExaminationLists(pager8).then((res) => {
|
||||
tableData8.value = res.lists
|
||||
total7.value = res.count
|
||||
})
|
||||
}
|
||||
|
||||
//获取投标结果列表
|
||||
const bidResultLists = () => {
|
||||
apiBidResultLists(pager9).then((res) => {
|
||||
tableData9.value = res.lists
|
||||
total8.value = res.count
|
||||
})
|
||||
}
|
||||
//获取投标保证金列表
|
||||
const applyLists = () => {
|
||||
bidapplyLists(pager10).then((res) => {
|
||||
tableData10.value = res.lists
|
||||
total9.value = res.count
|
||||
})
|
||||
}
|
||||
//获取退投标保证金列表
|
||||
const refundLists = () => {
|
||||
bidrefundLists(pager11).then((res) => {
|
||||
tableData11.value = res.lists
|
||||
total10.value = res.count
|
||||
})
|
||||
}
|
||||
decisionLists()
|
||||
buydocumentLists()
|
||||
examinationLists()
|
||||
applyLists()
|
||||
bidResultLists()
|
||||
refundLists()
|
||||
</script>
|
||||
<style >
|
||||
.tit {
|
||||
font-size: 1.2em;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
</style>
|
File diff suppressed because it is too large
Load Diff
@ -119,7 +119,7 @@
|
||||
删除
|
||||
</el-button>
|
||||
<el-button v-perms="['project.project/detail']" link @click="handledetail(row)">
|
||||
详情
|
||||
详情22
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
Loading…
x
Reference in New Issue
Block a user