项目列表新增操作
This commit is contained in:
parent
930cb649dc
commit
3a1815b0fb
@ -24,8 +24,7 @@
|
||||
<el-input v-model="project_name" readonly clearable placeholder="请选择项目" />
|
||||
</el-form-item></el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="项目编码" prop="project_id"
|
||||
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
||||
<el-form-item label="项目编码">
|
||||
<el-input v-model="project_code" clearable disabled placeholder="系统自动填写" />
|
||||
</el-form-item></el-col>
|
||||
<el-col :span="8">
|
||||
@ -369,10 +368,10 @@ const customEvent1 = (e: any) => {
|
||||
};
|
||||
const customEvent2 = (e: any) => {
|
||||
project_id.value = e.id;
|
||||
formData.project_id = e.id
|
||||
formData.project_id = e.id;
|
||||
project_name.value = e.name;
|
||||
project_code.value = e.project_code
|
||||
bidding_code.value = ''
|
||||
project_code.value = e.project_code;
|
||||
bidding_code.value = '';
|
||||
showDialog2.value = false;
|
||||
};
|
||||
|
||||
|
@ -1,187 +0,0 @@
|
||||
<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>
|
@ -9,7 +9,7 @@
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="商机" name="demo-2">
|
||||
<Business v-if="activeName == 'demo-2'" :formData="formData" :project_id="project_id"></Business>
|
||||
<Business v-if="activeName == 'demo-2'" :project_id="project_id"></Business>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="投标" name="demo-3">
|
||||
@ -59,8 +59,11 @@
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import { apiCustomDetail } from '@/api/custom'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import type { PropType } from 'vue'
|
||||
import type { TabsPaneContext } from 'element-plus'
|
||||
import { apiCustomServiceLists } from '@/api/custom_service'
|
||||
import { subpackagdetailLists } from '@/api/project_subpackage_budget_detail'
|
||||
import Overview from "./components/Overview.vue"
|
||||
import Business from "./components/Business.vue"
|
||||
import tender from "./components/tender.vue"
|
||||
@ -74,6 +77,8 @@ import payment from "./components/payment.vue"
|
||||
import documentation from "./components/documentation.vue"
|
||||
|
||||
|
||||
|
||||
|
||||
const activeName = ref('demo-1')
|
||||
const handleClick = (tab: TabsPaneContext, event: Event) => {
|
||||
// console.log(tab, event)
|
||||
@ -89,6 +94,114 @@ const formRef = shallowRef<FormInstance>()
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
|
||||
|
||||
|
||||
const pager12 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
const pager13 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
const pager14 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
|
||||
const pager15 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
const pager16 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
|
||||
const pager17 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
const pager18 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
|
||||
|
||||
|
||||
const pager21 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
|
||||
|
||||
const pager22 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
|
||||
|
||||
const pager23 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
|
||||
|
||||
const pager24 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
const pager25 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
const pager26 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
const pager27 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
const pager28 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
const pager29 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
const pager30 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
const pager31 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
const pager32 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
|
||||
|
@ -109,7 +109,7 @@ import type { FormInstance } from 'element-plus'
|
||||
import projectTable from "@/components/project/index.vue"
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import { apiProjectFollowUpAdd, apiProjectFollowUpEdit, apiProjectFollowUpDetail } from '@/api/project_follow_up'
|
||||
import type { PropType } from 'vue'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
|
||||
// 上传文件
|
||||
import annexUpload from "@/components/annexUpload/index.vue"
|
||||
@ -121,12 +121,9 @@ const handleAvatarSuccess_four = (response: any) => {
|
||||
const delFileFn = (index: number) => { formData.annex.splice(index, 1) }
|
||||
|
||||
const props = defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
default: () => ({})
|
||||
},
|
||||
project: Object
|
||||
})
|
||||
const { dictData } = useDictData('project_assurance,follow_status,follow_type,follow_stage')
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
@ -138,8 +135,6 @@ const formDataannex = reactive([])
|
||||
// dialog
|
||||
const showDialog = ref(false)
|
||||
|
||||
|
||||
|
||||
// 弹窗标题
|
||||
const popupTitle = computed(() => {
|
||||
return mode.value == 'edit' ? '编辑项目跟进记录' : '新增项目跟进记录'
|
||||
|
@ -1,139 +1,11 @@
|
||||
<template>
|
||||
<div class="tit">项目跟进</div>
|
||||
<div>
|
||||
<el-table :data="tableData1" stripe style="width: 100%">
|
||||
<el-table-column label="主题" prop='theme' width="180" />
|
||||
<el-table-column label="日期" prop='follow_date' width="180" />
|
||||
<el-table-column label="方案内容" prop='solution_content' />
|
||||
<el-table-column label="类型" prop='follow_type_text' />
|
||||
<el-table-column label="执行人" prop='executor' />
|
||||
<el-table-column label="阶段" prop='follow_stage_text' />
|
||||
<el-table-column label="状态" prop='follow_status_text' />
|
||||
<el-table-column label="项目把握度" prop='project_assurance_text' />
|
||||
</el-table>
|
||||
</div>
|
||||
<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"
|
||||
@current-change="handleCurrentChange1" />
|
||||
</div>
|
||||
|
||||
<div class="tit">客户需求</div>
|
||||
<div>
|
||||
<el-table :data="tableData2" stripe style="width: 100%">
|
||||
<el-table-column label="需求主题" prop='theme' width="180" />
|
||||
<el-table-column label="重要程度" prop='importance_text' width="180" />
|
||||
<el-table-column label="记录时间" prop='recording_time' />
|
||||
<el-table-column label="需求内容" prop='demand_content' />
|
||||
<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>
|
||||
</div>
|
||||
<div style="margin: 20px 0;">
|
||||
<el-pagination v-model:current-page="pager2.page_no" v-model:page-size="pager2.page_size"
|
||||
:page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total1"
|
||||
@size-change="handleSizeChange2" @current-change="handleCurrentChange2" />
|
||||
</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" />
|
||||
<el-table-column label="方案内容" prop='solution_content' />
|
||||
<el-table-column label="客户反馈" prop='customer_feedback' />
|
||||
<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>
|
||||
</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" />
|
||||
</div>
|
||||
|
||||
<div class="tit">项目概算</div>
|
||||
<div>
|
||||
<el-table :data="tableData4" stripe style="width: 100%">
|
||||
<el-table-column label="概算来源" prop='estimate_source_text' width="180" />
|
||||
<el-table-column label="制单人" prop='create_user' width="180" />
|
||||
<el-table-column label="报价日期" prop='quotation_date' />
|
||||
<el-table-column label="技术人员" prop='technician_name' width="180" />
|
||||
<el-table-column label="概算金额(万元)" prop='estimate_amount' width="180" />
|
||||
<el-table-column label="要求" prop='ask' />
|
||||
<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>
|
||||
</div>
|
||||
<div style="margin: 20px 0;">
|
||||
<el-pagination v-model:current-page="pager4.page_no" v-model:page-size="pager4.page_size"
|
||||
:page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper" :total="total3"
|
||||
@size-change="handleSizeChange4" @current-change="handleCurrentChange4" />
|
||||
</div>
|
||||
|
||||
<div class="tit">竞争对手</div>
|
||||
<div>
|
||||
<el-table :data="tableData5" stripe style="width: 100%">
|
||||
<el-table-column label="竞争对手名称" prop='competitor_name' width="180" />
|
||||
<el-table-column label="竞争对手联系人" prop='competitor_contacts' width="180" />
|
||||
<el-table-column label="联系人电话" prop='competitor_contacts_phone' />
|
||||
<el-table-column label="竞争能力" prop='competitive_power' />
|
||||
<el-table-column label="竞争对手优势" prop='competitor_advantages' />
|
||||
<el-table-column label="竞争对手劣势" prop='competitor_disadvantages' />
|
||||
<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>
|
||||
</div>
|
||||
<div style="margin: 20px 0;">
|
||||
<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>
|
||||
<myTable :baseData="baseData" :project="project" editPath="project_follow_up"></myTable>
|
||||
<myTable :baseData="baseData1" :project="project" editPath="customer_demand"></myTable>
|
||||
<myTable :baseData="baseData2" :project="project" editPath="customer_demand_solution"></myTable>
|
||||
<myTable :baseData="baseData3" :project="project" editPath="project_estimate"></myTable>
|
||||
<myTable :baseData="baseData4" :project="project" editPath="competitor"></myTable>
|
||||
</template>
|
||||
|
||||
|
||||
|
||||
<script setup>
|
||||
|
||||
import { ref, reactive, defineProps } from "vue"
|
||||
@ -142,125 +14,82 @@ import { apiCustomerDemandLists } from '@/api/customer_demand'
|
||||
import { apiCustomerDemandSolutionLists } from '@/api/customer_demand_solution'
|
||||
import { apiProjectEstimateLists } from '@/api/project_estimate'
|
||||
import { apiCompetitorLists } from '@/api/competitor'
|
||||
|
||||
import myTable from "./myTable.vue"
|
||||
|
||||
const props = defineProps({
|
||||
project_id: Number
|
||||
project: Object
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
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: props.project_id
|
||||
const baseData = reactive({
|
||||
fetchFun: apiProjectFollowUpLists,
|
||||
tit: "项目跟进",
|
||||
queryParams: { project_id: props.project.id },
|
||||
columnList: [
|
||||
{ label: '项目名称', prop: 'project_name' },
|
||||
{ label: '客户名称', prop: 'custom_name' },
|
||||
{ label: '执行人', prop: 'executor' },
|
||||
{ label: '类型', prop: 'follow_type_text' },
|
||||
{ label: '主题', prop: 'theme' },
|
||||
{ label: '项目把握度', prop: 'project_assurance_text' },
|
||||
{ label: '状态', prop: 'follow_status_text' },
|
||||
{ label: '阶段', prop: 'follow_stage_text' },
|
||||
{ label: '下次回访日期', prop: 'next_follow_up_date' },
|
||||
]
|
||||
})
|
||||
const pager2 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: props.project_id
|
||||
const baseData1 = reactive({
|
||||
fetchFun: apiCustomerDemandLists,
|
||||
tit: "客户需求",
|
||||
queryParams: { project_id: props.project.id },
|
||||
columnList: [
|
||||
{ label: '需求主题', prop: 'project_name' },
|
||||
{ label: '重要程度', prop: 'custom_name' },
|
||||
{ label: '记录时间', prop: 'executor' },
|
||||
{ label: '需求内容', prop: 'theme' },
|
||||
]
|
||||
})
|
||||
const pager3 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: props.project_id
|
||||
const baseData2 = reactive({
|
||||
fetchFun: apiCustomerDemandSolutionLists,
|
||||
tit: "解决方案",
|
||||
queryParams: { project_id: props.project.id },
|
||||
columnList: [
|
||||
{ label: '解决方案主题', prop: 'project_name' },
|
||||
{ label: '提交时间', prop: 'custom_name' },
|
||||
{ label: '方案内容', prop: 'executor' },
|
||||
{ label: '客户反馈', prop: 'theme' },
|
||||
]
|
||||
})
|
||||
const pager4 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: props.project_id
|
||||
|
||||
const baseData3 = reactive({
|
||||
fetchFun: apiProjectEstimateLists,
|
||||
tit: "项目概算",
|
||||
queryParams: { project_id: props.project.id },
|
||||
columnList: [
|
||||
{ label: '概算来源', prop: 'estimate_source_text' },
|
||||
{ label: '制单人', prop: 'create_user' },
|
||||
{ label: '报价日期', prop: 'quotation_date' },
|
||||
{ label: '技术人员', prop: 'technician_name' },
|
||||
{ label: '概算金额(万元)', prop: 'estimate_amount' },
|
||||
{ label: '要求', prop: 'ask' },
|
||||
]
|
||||
})
|
||||
const pager5 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: props.project_id
|
||||
|
||||
const baseData4 = reactive({
|
||||
fetchFun: apiCompetitorLists,
|
||||
tit: "竞争对手",
|
||||
queryParams: { project_id: props.project.id },
|
||||
columnList: [
|
||||
{ label: '竞争对手名称', prop: 'competitor_name' },
|
||||
{ label: '竞争对手联系人', prop: 'competitor_contacts' },
|
||||
{ label: '联系人电话', prop: 'competitor_contacts_phone' },
|
||||
{ label: '竞争能力', prop: 'competitive_power' },
|
||||
{ label: '竞争对手优势', prop: 'competitor_advantages' },
|
||||
{ label: '竞争对手劣势', prop: 'competitor_disadvantages' },
|
||||
{ label: '备注', prop: 'remark' },
|
||||
]
|
||||
})
|
||||
|
||||
|
||||
// //获取客户跟进进路
|
||||
const followUpLists = () => {
|
||||
apiProjectFollowUpLists(pager5).then((res) => {
|
||||
tableData1.value = res.lists
|
||||
total.value = res.count
|
||||
|
||||
})
|
||||
}
|
||||
//获取客户需求列表
|
||||
const demandList = () => {
|
||||
apiCustomerDemandLists(pager5).then((res) => {
|
||||
tableData2.value = res.lists
|
||||
total1.value = res.count
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
// const handleSizeChange1 = (val: number) => {
|
||||
// // pager1.page_size = val
|
||||
// // followUpLists()
|
||||
// }
|
||||
|
||||
|
||||
// 解决方案列表
|
||||
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 competitorLists = () => {
|
||||
apiCompetitorLists(pager5).then((res) => {
|
||||
tableData5.value = res.lists
|
||||
total4.value = res.count
|
||||
})
|
||||
}
|
||||
|
||||
// const handleSizeChange2 = (val: number) => {
|
||||
// pager2.page_size = val
|
||||
// demandList()
|
||||
// }
|
||||
// const handleSizeChange3 = (val: number) => {
|
||||
// pager3.page_size = val
|
||||
// solutionLists()
|
||||
// }
|
||||
// const handleSizeChange4 = (val: number) => {
|
||||
// pager4.page_size = val
|
||||
// estimateLists()
|
||||
// }
|
||||
// const handleSizeChange5 = (val: number) => {
|
||||
// pager5.page_size = val
|
||||
// competitorLists()
|
||||
// }
|
||||
|
||||
|
||||
|
||||
followUpLists()
|
||||
demandList()
|
||||
competitorLists()
|
||||
solutionLists()
|
||||
estimateLists()
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.tit {
|
||||
|
@ -13,9 +13,11 @@ import { apiinvoiceapplyLists } from '@/api/InvoicingRequests'
|
||||
import { apireturnedLists } from '@/api/remittance'
|
||||
import { apireturnedrecordLists } from '@/api/recordsPayment'
|
||||
import { apirefundapplyLists } from '@/api/refund'
|
||||
import EditPopup from '@/views/project_follow_up/edit.vue'
|
||||
|
||||
const props = defineProps({
|
||||
project_id: Number
|
||||
project_id: Number,
|
||||
components: EditPopup
|
||||
})
|
||||
|
||||
const baseData = reactive({
|
||||
|
3
src/views/project_list/components/Statistics.vue
Normal file
3
src/views/project_list/components/Statistics.vue
Normal file
@ -0,0 +1,3 @@
|
||||
<template>
|
||||
项目统计页面
|
||||
</template>
|
@ -1,36 +0,0 @@
|
||||
<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>
|
@ -16,7 +16,6 @@ import { subpackagdetailLists } from '@/api/project_subpackage_budget_detail.ts'
|
||||
import { apiProjectEquipmentBudgetDetailLists } from '@/api/project_equipment_budget_detail.ts'
|
||||
import { apiProjectLaborBudgetDetailLists } from '@/api/project_labor_budget_detail.ts'
|
||||
|
||||
|
||||
const props = defineProps({
|
||||
project_id: Number
|
||||
})
|
||||
@ -97,9 +96,6 @@ const baseData3 = reactive({
|
||||
]
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
const baseData4 = reactive({
|
||||
fetchFun: apiProjectLaborBudgetDetailLists,
|
||||
tit: "人工预算",
|
||||
|
@ -1,99 +1,52 @@
|
||||
<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>
|
||||
<myTable :baseData="baseData"></myTable>
|
||||
<myTable :baseData="baseData1"></myTable>
|
||||
</template>
|
||||
|
||||
|
||||
|
||||
<script setup>
|
||||
|
||||
import { ref, reactive, defineProps } from "vue"
|
||||
import { apiContractLists } from '@/api/contract'
|
||||
import { apiContractNegotiationLists } from '@/api/contract_negotiation'
|
||||
import myTable from "./myTable.vue"
|
||||
|
||||
|
||||
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 baseData = reactive({
|
||||
fetchFun: apiContractLists,
|
||||
tit: "主合同",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '合同编号', prop: 'contract_name' },
|
||||
{ label: '合同名称', prop: 'contract_code' },
|
||||
{ label: '合同类型', prop: 'contract_type_text' },
|
||||
{ label: '负责人', prop: 'business_director_name' },
|
||||
{ label: '签约日期', prop: 'contract_date' },
|
||||
{ label: '合同金额', prop: 'amount' },
|
||||
{ label: '洽商金额', prop: 'negotiation_amount' },
|
||||
{ label: '实际合同金额', prop: 'reality_contract_amount' },
|
||||
{ label: '已回款', prop: 'returned_amount' },
|
||||
{ label: '未回款', prop: 'not_returned_amount' },
|
||||
{ label: '已开票', prop: 'invoicing_amount' },
|
||||
{ label: '未开票', prop: 'not_invoicing_amount' },
|
||||
]
|
||||
})
|
||||
|
||||
const pager20 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: props.project_id
|
||||
const baseData1 = reactive({
|
||||
fetchFun: apiContractNegotiationLists,
|
||||
tit: "合同洽商",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '洽商编号', prop: 'negotiation_no' },
|
||||
{ label: '洽商单名称', prop: 'negotiation_name' },
|
||||
{ label: '合同编号', prop: 'contract_code' },
|
||||
{ label: '洽商类别', prop: 'negotiation_type' },
|
||||
{ label: '签约日期', prop: 'contract_date' },
|
||||
{ label: '业务负责人', prop: 'business_director' },
|
||||
{ label: '洽商金额', prop: 'negotiation_amount' },
|
||||
]
|
||||
})
|
||||
|
||||
//获取项目合同列表
|
||||
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>
|
||||
</script>
|
@ -1,102 +0,0 @@
|
||||
<template>
|
||||
<myTable :baseData="baseData"></myTable>
|
||||
<myTable :baseData="baseData2"></myTable>
|
||||
<myTable :baseData="baseData3"></myTable>
|
||||
<myTable :baseData="baseData4"></myTable>
|
||||
<myTable :baseData="baseData5"></myTable>
|
||||
</template>
|
||||
<script setup>
|
||||
import { ref, reactive, defineProps } from "vue"
|
||||
import myTable from "./myTable.vue"
|
||||
import { apiProjectTripApplyLists } from "@/api/project_trip_apply.ts"
|
||||
import { apiProjectLoanApplyLists } from '@/api/project_loan_apply'
|
||||
import { apiProjectCostAdjustmentLists } from '@/api/project_cost_adjustment'
|
||||
import { apiProjectTravelReimbursementLists } from '@/api/project_travel_reimbursement'
|
||||
import { apiProjectExpenseReimbursementLists } from '@/api/project_expense_reimbursement'
|
||||
|
||||
const props = defineProps({
|
||||
project_id: Number
|
||||
})
|
||||
|
||||
|
||||
const baseData = reactive({
|
||||
fetchFun: apiProjectTripApplyLists,
|
||||
tit: "出差申请",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '申请单号', prop: 'trip_apply_code' },
|
||||
{ label: '出差起始地', prop: 'origin_address' },
|
||||
{ label: '出差目的地', prop: 'target_address' },
|
||||
{ label: '交通工具', prop: 'traffic_text' },
|
||||
{ label: '出差时间', prop: 'start_date' },
|
||||
{ label: '结束时间', prop: 'end_date' },
|
||||
{ label: '出差事由', prop: 'reason' },
|
||||
{ label: '历时天数', prop: 'days' },
|
||||
{ label: '备注', prop: 'remark' },
|
||||
]
|
||||
})
|
||||
|
||||
const baseData2 = reactive({
|
||||
fetchFun: apiProjectLoanApplyLists,
|
||||
tit: "借款申请",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '借款单号', prop: 'loan_apply_code' },
|
||||
{ label: '借款人', prop: 'apply_user' },
|
||||
{ label: '借款申请日期', prop: 'loan_date' },
|
||||
{ label: '借款金额', prop: 'loan_amount' },
|
||||
{ label: '收款人姓名', prop: 'payee_name' },
|
||||
{ label: '收款银行', prop: 'payee_bank' },
|
||||
{ label: '收款账号', prop: 'payee_account' },
|
||||
{ label: '备注', prop: 'remark' },
|
||||
]
|
||||
})
|
||||
|
||||
const baseData3 = reactive({
|
||||
fetchFun: apiProjectCostAdjustmentLists,
|
||||
tit: "成本调整",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '项目名称', prop: 'project_name' },
|
||||
{ label: '项目编码', prop: 'project_code' },
|
||||
{ label: '调整日期', prop: 'adjust_date' },
|
||||
{ label: '调整金额', prop: 'adjust_amount' },
|
||||
{ label: '备注', prop: 'remark' },
|
||||
]
|
||||
})
|
||||
|
||||
const baseData4 = reactive({
|
||||
fetchFun: apiProjectTravelReimbursementLists,
|
||||
tit: "差旅报销",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '出差申请单编号', prop: 'trip_reimbursement_code' },
|
||||
{ label: '报销类型', prop: 'reimbursement_type' },
|
||||
{ label: '借款单编号', prop: 'loan_apply_code' },
|
||||
{ label: '借款金额', prop: 'loan_amount' },
|
||||
{ label: '冲抵借款金额', prop: 'offset_loan_amount' },
|
||||
{ label: '付款金额', prop: 'pay_amount' },
|
||||
{ label: '报销人', prop: 'apply_user' },
|
||||
{ label: '报销日期', prop: 'apply_date' },
|
||||
{ label: '备注', prop: 'remark' },
|
||||
]
|
||||
})
|
||||
|
||||
const baseData5 = reactive({
|
||||
fetchFun: apiProjectExpenseReimbursementLists,
|
||||
tit: "费用报销",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '费用报销单号', prop: 'expense_reimbursement_code' },
|
||||
{ label: '报销人', prop: 'apply_user' },
|
||||
{ label: '报销日期', prop: 'apply_date' },
|
||||
{ label: '报销类型', prop: 'reimbursement_type' },
|
||||
{ label: '借款单编号', prop: 'loan_apply_code' },
|
||||
{ label: '借款金额', prop: 'loan_amount' },
|
||||
{ label: '报销金额', prop: 'total_amount' },
|
||||
{ label: '付款金额', prop: 'pay_amount' },
|
||||
{ label: '本次冲抵借款金额', prop: 'offset_loan_amount' },
|
||||
{ label: '备注', prop: 'remark' },
|
||||
]
|
||||
})
|
||||
</script>
|
@ -5,33 +5,7 @@
|
||||
<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>
|
||||
|
||||
<myTable :baseData="baseData5" v-if="active == 'first-2'"></myTable>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="保险记录" name="first-3">
|
||||
<myTable :baseData="baseData1" v-if="active == 'first-3'"></myTable>
|
||||
@ -40,24 +14,14 @@
|
||||
<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"
|
||||
@ -69,7 +33,7 @@ import { attendanceRecordLists } from '@/api/project_attendance_record'
|
||||
import { attendancedetailLists } from '@/api/project_attendance_detail'
|
||||
import { projectsalaryDetailLists } from '@/api/project_salary_detail'
|
||||
|
||||
|
||||
const active = ref('first-1')
|
||||
const props = defineProps({
|
||||
project_id: Number
|
||||
})
|
||||
@ -93,6 +57,7 @@ const baseData = reactive({
|
||||
{ label: '余额', prop: 'balance' },
|
||||
]
|
||||
})
|
||||
|
||||
const baseData1 = reactive({
|
||||
fetchFun: insurancemanagementLists,
|
||||
tit: "",
|
||||
@ -110,7 +75,6 @@ const baseData1 = reactive({
|
||||
]
|
||||
})
|
||||
|
||||
|
||||
const baseData2 = reactive({
|
||||
fetchFun: attendanceRecordLists,
|
||||
tit: "",
|
||||
@ -129,6 +93,7 @@ const baseData2 = reactive({
|
||||
|
||||
]
|
||||
})
|
||||
|
||||
const baseData3 = reactive({
|
||||
fetchFun: attendancedetailLists,
|
||||
tit: "",
|
||||
@ -151,6 +116,7 @@ const baseData3 = reactive({
|
||||
|
||||
]
|
||||
})
|
||||
|
||||
const baseData4 = reactive({
|
||||
fetchFun: projectsalaryDetailLists,
|
||||
tit: "",
|
||||
@ -169,19 +135,21 @@ const baseData4 = reactive({
|
||||
|
||||
]
|
||||
})
|
||||
const pager13 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: props.project_id
|
||||
|
||||
const baseData5 = reactive({
|
||||
fetchFun: projectlaborcontractLists,
|
||||
tit: "",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '项目名称', prop: 'project_name' },
|
||||
{ label: '身份证号', prop: 'person_idcard' },
|
||||
{ label: '合同状态', prop: 'contract_status_text' },
|
||||
{ label: '合同类别', prop: 'contract_type_text' },
|
||||
{ label: '合同名称', prop: 'contract_title_text' },
|
||||
{ label: '合同签定日期', prop: 'signing_date' },
|
||||
{ label: '起始时间', prop: 'start_date' },
|
||||
{ label: '终止时间', prop: 'end_date' },
|
||||
]
|
||||
})
|
||||
|
||||
const tableData13 = ref("")
|
||||
|
||||
const laborcontractLists = () => {
|
||||
projectlaborcontractLists(pager13).then((res) => {
|
||||
tableData13.value = res.lists
|
||||
})
|
||||
}
|
||||
const active = ref('first-1')
|
||||
laborcontractLists()
|
||||
</script>
|
@ -1,26 +1,65 @@
|
||||
<template>
|
||||
<div class="tit" v-if="baseData.tit">{{ baseData.tit }}</div>
|
||||
<el-table :data="pager.lists" style="width: 80vw">
|
||||
<el-table-column :label="item.label" :prop='item.prop' width="180" v-for="(item, index) in baseData.columnList"
|
||||
:key="index" />
|
||||
|
||||
<div style="float: right;"> <el-dropdown>
|
||||
<span class="el-dropdown-link">
|
||||
操作
|
||||
<el-icon class="el-icon--right">
|
||||
<arrow-down />
|
||||
</el-icon>
|
||||
</span>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item @click="handleAdd"> 添加</el-dropdown-item>
|
||||
<el-dropdown-item> 编辑</el-dropdown-item>
|
||||
<el-dropdown-item> 删除</el-dropdown-item>
|
||||
<el-dropdown-item> 导出</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
</div>
|
||||
|
||||
<el-table :data="pager.lists" style="width: 100%">
|
||||
<el-table-column :label="item.label" :prop='item.prop' 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>
|
||||
<EditPopup v-if="showEdit" ref="editRef" @success="getLists" @close="showEdit = false" :project="project" />
|
||||
</template>
|
||||
<script setup>
|
||||
import { ref, reactive, defineProps, toRaw } from "vue"
|
||||
|
||||
import { ref, reactive, defineProps, toRaw, defineAsyncComponent } from "vue"
|
||||
import { usePaging } from '@/hooks/usePaging'
|
||||
import feedback from '@/utils/feedback'
|
||||
import { useDictData } from '@/hooks/useDictOptions'
|
||||
|
||||
const props = defineProps({
|
||||
baseData: Object,
|
||||
project: Object,
|
||||
editPath: String
|
||||
})
|
||||
|
||||
const EditPopup = defineAsyncComponent(() => import(`../../${props.editPath}/edit.vue`));
|
||||
|
||||
// edit
|
||||
const editRef = ref(null)
|
||||
const showEdit = ref(false)
|
||||
|
||||
// 添加
|
||||
const handleAdd = async () => {
|
||||
showEdit.value = true
|
||||
setTimeout(() => {
|
||||
editRef.value?.open('add')
|
||||
console.log("执行了点击")
|
||||
}, 100);
|
||||
|
||||
}
|
||||
|
||||
// 分页相关
|
||||
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||
fetchFun: props.baseData.fetchFun,
|
||||
params: props.baseData.queryParams || ""
|
||||
|
||||
})
|
||||
|
||||
getLists()
|
||||
@ -33,7 +72,11 @@ getLists()
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
// :deep(.my-label) {
|
||||
// width: 150px;
|
||||
// }
|
||||
|
||||
.example-showcase .el-dropdown-link {
|
||||
cursor: pointer;
|
||||
color: var(--el-color-primary);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
</style>
|
25
src/views/project_list/components/operateMenu.vue
Normal file
25
src/views/project_list/components/operateMenu.vue
Normal file
@ -0,0 +1,25 @@
|
||||
<template>
|
||||
<div style="float: right;margin-bottom: 10px;">
|
||||
<el-dropdown>
|
||||
<span class="el-dropdown-link">
|
||||
操作
|
||||
<el-icon class="el-icon--right">
|
||||
<arrow-down />
|
||||
</el-icon>
|
||||
</span>
|
||||
<template #dropdown>
|
||||
<el-dropdown-menu>
|
||||
<el-dropdown-item @click="emit('add')">新增</el-dropdown-item>
|
||||
<el-dropdown-item>编辑</el-dropdown-item>
|
||||
<el-dropdown-item>删除</el-dropdown-item>
|
||||
<el-dropdown-item>导出</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
</el-dropdown>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { defineEmits } from "vue"
|
||||
const emit = defineEmits(['add'])
|
||||
</script>
|
||||
<style lang="scss"></style>
|
@ -1,115 +1,11 @@
|
||||
<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>
|
||||
<myTable :baseData="baseData"></myTable>
|
||||
<myTable :baseData="baseData1"></myTable>
|
||||
<myTable :baseData="baseData2"></myTable>
|
||||
<myTable :baseData="baseData3"></myTable>
|
||||
<myTable :baseData="baseData4"></myTable>
|
||||
</template>
|
||||
|
||||
|
||||
|
||||
<script setup>
|
||||
|
||||
import { ref, reactive, defineProps } from "vue"
|
||||
@ -119,146 +15,91 @@ import { apiBidDocumentExaminationLists } from '@/api/bid_document_examination'
|
||||
import { apiBidResultLists } from '@/api/bid_result'
|
||||
import { bidapplyLists } from '@/api/bidbbond'
|
||||
import { bidrefundLists } from '@/api/refundbidDeposit'
|
||||
import myTable from "./myTable.vue"
|
||||
|
||||
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 baseData = reactive({
|
||||
fetchFun: apiBidBiddingDecisionLists,
|
||||
tit: "投标决策",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '流程编号', prop: 'code' },
|
||||
{ label: '项目估算(万元)', prop: 'project_estimation' },
|
||||
{ label: '资金来源', prop: 'bidding_project_fund_source' },
|
||||
{ label: '投标时间', prop: 'bidding_time' },
|
||||
{ label: '招标方式', prop: 'bid_type' },
|
||||
{ label: '有无保证金', prop: 'is_margin' },
|
||||
{ label: '保证金金额', prop: 'margin_amount' },
|
||||
{ label: '开标日期', prop: 'bid_opening_date' },
|
||||
{ label: '项目把握度', prop: 'project_assurance' },
|
||||
]
|
||||
})
|
||||
|
||||
const pager6 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: props.project_id
|
||||
const baseData1 = reactive({
|
||||
fetchFun: apiBidDocumentExaminationLists,
|
||||
tit: "标书审查",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '流程编号', prop: 'code' },
|
||||
{ label: '标书编号', prop: 'bid_document_no' },
|
||||
{ label: '购买人员', prop: 'buyer' },
|
||||
{ label: '投标公司名称', prop: 'bid_company_name' },
|
||||
{ label: '投标时间', prop: 'bidding_time' },
|
||||
{ label: '开标日期', prop: 'bid_opening_date' },
|
||||
{ label: '总金额', prop: 'total_amount' },
|
||||
]
|
||||
})
|
||||
const pager7 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: props.project_id
|
||||
const baseData2 = reactive({
|
||||
fetchFun: apiBidResultLists,
|
||||
tit: "投标结果",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '投标编号', prop: 'bid_document_examination_code' },
|
||||
{ label: '投标时间', prop: 'bidding_time' },
|
||||
{ label: '开标日期', prop: 'bid_opening_date' },
|
||||
{ label: '是否中标', prop: 'is_successful_text' },
|
||||
{ label: '中标单位', prop: 'bidder_company' },
|
||||
{ label: '中标金额', prop: 'bidder_amount' },
|
||||
]
|
||||
})
|
||||
const pager8 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: props.project_id
|
||||
|
||||
const baseData3 = reactive({
|
||||
fetchFun: bidapplyLists,
|
||||
tit: "投标保证金",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '流程编号', prop: 'bidding_decision_code' },
|
||||
{ label: '投标时间', prop: 'bidding_time' },
|
||||
{ label: '预计退还时间', prop: 'refund_date' },
|
||||
{ label: '申请人', prop: 'applier' },
|
||||
{ label: '保证金金额', prop: 'margin_amount' },
|
||||
{ label: '已退金额', prop: 'refund_amount' },
|
||||
{ label: '未退金额', prop: 'not_refund_amount' },
|
||||
]
|
||||
})
|
||||
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 baseData4 = reactive({
|
||||
fetchFun: bidrefundLists,
|
||||
tit: "退投标保证金",
|
||||
queryParams: { project_id: props.project_id },
|
||||
columnList: [
|
||||
{ label: '投标时间', prop: 'bidding_time' },
|
||||
{ label: '退款日期', prop: 'refund_date' },
|
||||
{ label: '账户编码', prop: 'bank_account_info' },
|
||||
{ label: '开户银行', prop: 'bank_account_info' },
|
||||
{ label: '退款金额', prop: 'refund_amount' },
|
||||
{ label: '客户名称', prop: 'custom_name' },
|
||||
{ label: '创建日期', prop: 'create_time' },
|
||||
|
||||
]
|
||||
})
|
||||
|
||||
|
||||
|
||||
// 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 {
|
||||
|
@ -1,15 +1,14 @@
|
||||
|
||||
<template>
|
||||
<div class="detail-popup">
|
||||
<popup ref="popupRef" title="项目立项详情" :async="true" width="80vw" @confirm="handleSubmit" @close="handleClose">
|
||||
<popup ref="popupRef" title="项目立项详情" :async="true" width="80%" @confirm="handleSubmit" @close="handleClose">
|
||||
<el-form ref="formRef" :model="formData" label-width="auto">
|
||||
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
|
||||
<el-tabs v-model="activeName" class="demo-tabs">
|
||||
<el-tab-pane label="概况" name="demo-1">
|
||||
<Overview :formData="formData" v-if="activeName == 'demo-1'"></Overview>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="商机" name="demo-2">
|
||||
<Business v-if="activeName == 'demo-2'" :project_id="project_id"></Business>
|
||||
<Business v-if="activeName == 'demo-2'" :project="formData"></Business>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="投标" name="demo-3">
|
||||
@ -43,17 +42,14 @@
|
||||
<el-tab-pane label="付款" name="demo-15">
|
||||
<payment v-if="activeName == 'demo-15'" :project_id="project_id"></payment>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="文档" name="demo-16">
|
||||
<documentation v-if="activeName == 'demo-16'" :project_id="project_id"></documentation>
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane label="费用" name="demo-17">
|
||||
<expenses v-if="activeName == 'demo-17'" :project_id="project_id"></expenses>
|
||||
<el-tab-pane label="统计" name="demo-17">
|
||||
<Statistics v-if="activeName == 'demo-17'" :project_id="project_id"></Statistics>
|
||||
</el-tab-pane>
|
||||
|
||||
|
||||
|
||||
</el-tabs>
|
||||
</el-form>
|
||||
</popup>
|
||||
@ -65,16 +61,7 @@
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import Popup from '@/components/popup/index.vue'
|
||||
import { apiCustomDetail } from '@/api/custom'
|
||||
import { timeFormat } from '@/utils/util'
|
||||
import type { PropType } from 'vue'
|
||||
import type { TabsPaneContext } from 'element-plus'
|
||||
import { apiCustomerDemandLists } from '@/api/customer_demand'
|
||||
import { apiProjectFollowUpLists } from '@/api/project_follow_up'
|
||||
import { apiCustomerDemandSolutionLists } from '@/api/customer_demand_solution'
|
||||
import { apiProjectEstimateLists } from '@/api/project_estimate'
|
||||
import { apiCompetitorLists } from '@/api/competitor'
|
||||
import { apiCustomServiceLists } from '@/api/custom_service'
|
||||
import { subpackagdetailLists } from '@/api/project_subpackage_budget_detail'
|
||||
import Overview from "./components/Overview.vue"
|
||||
import Business from "./components/Business.vue"
|
||||
import tender from "./components/tender.vue"
|
||||
@ -86,17 +73,10 @@ import manpower from "./components/manpower.vue"
|
||||
import Collection from "./components/Collection.vue"
|
||||
import payment from "./components/payment.vue"
|
||||
import documentation from "./components/documentation.vue"
|
||||
import expenses from "./components/expenses.vue"
|
||||
// import manpower from "./components/manpower.vue"
|
||||
import Statistics from "./components/Statistics.vue"
|
||||
|
||||
|
||||
|
||||
|
||||
const active = ref('first-1')
|
||||
const activeName = ref('demo-1')
|
||||
const handleClick = (tab: TabsPaneContext, event: Event) => {
|
||||
// console.log(tab, event)
|
||||
}
|
||||
|
||||
defineProps({
|
||||
dictData: {
|
||||
type: Object as PropType<Record<string, any[]>>,
|
||||
@ -106,800 +86,22 @@ defineProps({
|
||||
const emit = defineEmits(['success', 'close'])
|
||||
const formRef = shallowRef<FormInstance>()
|
||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||
const formDataannex = reactive([])
|
||||
const datas = reactive({
|
||||
provinceOptions: [],
|
||||
cityOptions: [],
|
||||
areaOptions: [],
|
||||
});
|
||||
|
||||
|
||||
|
||||
const pager12 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
const pager13 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
const pager14 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
|
||||
const pager15 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
const pager16 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
|
||||
const pager17 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
const pager18 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
|
||||
|
||||
|
||||
const pager21 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
|
||||
|
||||
const pager22 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
|
||||
|
||||
const pager23 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
|
||||
|
||||
const pager24 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
const pager25 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
const pager26 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
const pager27 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
const pager28 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
const pager29 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
const pager30 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
const pager31 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
const pager32 = reactive({
|
||||
page_size: 10,
|
||||
page_no: 1,
|
||||
project_id: ""
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
const total12 = ref(0)
|
||||
const total13 = ref(0)
|
||||
const total14 = ref(0)
|
||||
const total15 = ref(0)
|
||||
const total16 = ref(0)
|
||||
const total17 = ref(0)
|
||||
const total18 = ref(0)
|
||||
|
||||
const total21 = ref(0)
|
||||
|
||||
const total22 = ref(0)
|
||||
const total23 = ref(0)
|
||||
|
||||
const total24 = ref(0)
|
||||
|
||||
const total25 = ref(0)
|
||||
const total26 = ref(0)
|
||||
const total27 = ref(0)
|
||||
const total28 = ref(0)
|
||||
const total29 = ref(0)
|
||||
const total30 = ref(0)
|
||||
const total31 = ref(0)
|
||||
const total32 = ref(0)
|
||||
const total33 = ref(0)
|
||||
|
||||
const tableData12 = ref([])
|
||||
const tableData13 = ref([])
|
||||
const tableData15 = ref([])
|
||||
const tableData16 = ref([])
|
||||
const tableData17 = ref([])
|
||||
const tableData18 = ref([])
|
||||
|
||||
|
||||
const tableData21 = ref([])
|
||||
const tableData22 = ref([])
|
||||
|
||||
const tableData23 = ref([])
|
||||
|
||||
const tableData24 = ref([])
|
||||
const tableData25 = ref([])
|
||||
|
||||
const tableData26 = ref([])
|
||||
const tableData27 = ref([])
|
||||
const tableData28 = ref([])
|
||||
const tableData29 = ref([])
|
||||
const tableData30 = ref([])
|
||||
const tableData31 = ref([])
|
||||
const tableData32 = ref([])
|
||||
// 表单数据
|
||||
const formData = reactive({
|
||||
|
||||
})
|
||||
|
||||
//条数
|
||||
|
||||
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 handleSizeChange12 = (val: number) => {
|
||||
|
||||
pager12.page_size = val
|
||||
|
||||
personnelLists()
|
||||
}
|
||||
|
||||
const handleSizeChange13 = (val: number) => {
|
||||
|
||||
pager13.page_size = val
|
||||
|
||||
laborcontractLists()
|
||||
}
|
||||
|
||||
const handleSizeChange14 = (val: number) => {
|
||||
|
||||
pager14.page_size = val
|
||||
|
||||
insurancemanagementlists()
|
||||
}
|
||||
|
||||
|
||||
const handleSizeChange15 = (val: number) => {
|
||||
|
||||
pager15.page_size = val
|
||||
|
||||
attendanceRecord()
|
||||
}
|
||||
|
||||
const handleSizeChange16 = (val: number) => {
|
||||
|
||||
pager16.page_size = val
|
||||
|
||||
attendancedetail()
|
||||
|
||||
}
|
||||
const handleSizeChange17 = (val: number) => {
|
||||
|
||||
pager16.page_size = val
|
||||
|
||||
attendancedetail()
|
||||
|
||||
}
|
||||
|
||||
|
||||
const handleSizeChange18 = (val: number) => {
|
||||
|
||||
pager18.page_size = val
|
||||
|
||||
customServiceLists()
|
||||
|
||||
}
|
||||
const handleSizeChange19 = (val: number) => {
|
||||
|
||||
pager19.page_size = val
|
||||
|
||||
contractLists()
|
||||
}
|
||||
|
||||
const handleSizeChange20 = (val: number) => {
|
||||
|
||||
pager20.page_size = val
|
||||
contcractNegotiationLists()
|
||||
}
|
||||
const handleSizeChange21 = (val: number) => {
|
||||
|
||||
pager21.page_size = val
|
||||
|
||||
customServiceLists()
|
||||
}
|
||||
|
||||
const handleSizeChange22 = (val: number) => {
|
||||
|
||||
pager22.page_size = val
|
||||
|
||||
customServiceLists()
|
||||
}
|
||||
const handleSizeChange23 = (val: number) => {
|
||||
|
||||
pager23.page_size = val
|
||||
|
||||
customServiceLists()
|
||||
}
|
||||
|
||||
const handleSizeChange24 = (val: number) => {
|
||||
|
||||
pager24.page_size = val
|
||||
|
||||
customServiceLists()
|
||||
}
|
||||
|
||||
const handleSizeChange25 = (val: number) => {
|
||||
|
||||
pager25.page_size = val
|
||||
|
||||
customServiceLists()
|
||||
}
|
||||
|
||||
const handleSizeChange26 = (val: number) => {
|
||||
|
||||
pager26.page_size = val
|
||||
|
||||
customServiceLists()
|
||||
}
|
||||
|
||||
|
||||
const handleSizeChange27 = (val: number) => {
|
||||
|
||||
pager27.page_size = val
|
||||
|
||||
customServiceLists()
|
||||
}
|
||||
|
||||
|
||||
const handleSizeChange28 = (val: number) => {
|
||||
|
||||
pager28.page_size = val
|
||||
|
||||
customServiceLists()
|
||||
}
|
||||
|
||||
|
||||
const handleSizeChange29 = (val: number) => {
|
||||
|
||||
pager29.page_size = val
|
||||
|
||||
invoiceapplyLists()
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
const handleSizeChange30 = (val: number) => {
|
||||
|
||||
pager30.page_size = val
|
||||
|
||||
returnedLists()
|
||||
}
|
||||
const handleSizeChange31 = (val: number) => {
|
||||
|
||||
pager30.page_size = val
|
||||
|
||||
returnedrecordLists()
|
||||
}
|
||||
const handleSizeChange32 = (val: number) => {
|
||||
|
||||
pager30.page_size = val
|
||||
refundapplyLists()
|
||||
}
|
||||
|
||||
|
||||
|
||||
//分页
|
||||
|
||||
// const handleCurrentChange6 = (val: number) => {
|
||||
// pager6.page_no = val
|
||||
// console.log(`current page: ${val}`)
|
||||
// decisionLists()
|
||||
// }
|
||||
// const handleCurrentChange7 = (val: number) => {
|
||||
// pager7.page_no = val
|
||||
// console.log(`current page: ${val}`)
|
||||
// buydocumentLists()
|
||||
// }
|
||||
// const handleCurrentChange8 = (val: number) => {
|
||||
// pager8.page_no = val
|
||||
// console.log(`current page: ${val}`)
|
||||
// examinationLists()
|
||||
// }
|
||||
// const handleCurrentChange9 = (val: number) => {
|
||||
// pager9.page_no = val
|
||||
// console.log(`current page: ${val}`)
|
||||
// bidResultLists()
|
||||
// }
|
||||
// const handleCurrentChange10 = (val: number) => {
|
||||
// pager10.page_no = val
|
||||
// console.log(`current page: ${val}`)
|
||||
// applyLists()
|
||||
// }
|
||||
// const handleCurrentChange11 = (val: number) => {
|
||||
// pager11.page_no = val
|
||||
// console.log(`current page: ${val}`)
|
||||
|
||||
// refundLists()
|
||||
// }
|
||||
|
||||
const handleCurrentChange12 = (val: number) => {
|
||||
pager12.page_no = val
|
||||
console.log(`current page: ${val}`)
|
||||
personnelLists()
|
||||
}
|
||||
const handleCurrentChange13 = (val: number) => {
|
||||
pager13.page_no = val
|
||||
console.log(`current page: ${val}`)
|
||||
|
||||
laborcontractLists()
|
||||
}
|
||||
|
||||
const handleCurrentChange14 = (val: number) => {
|
||||
pager14.page_no = val
|
||||
console.log(`current page: ${val}`)
|
||||
|
||||
insurancemanagementlists()
|
||||
}
|
||||
|
||||
const handleCurrentChange15 = (val: number) => {
|
||||
pager15.page_no = val
|
||||
console.log(`current page: ${val}`)
|
||||
|
||||
attendanceRecord()
|
||||
}
|
||||
const handleCurrentChange16 = (val: number) => {
|
||||
pager16.page_no = val
|
||||
console.log(`current page: ${val}`)
|
||||
|
||||
attendancedetail()
|
||||
}
|
||||
|
||||
const handleCurrentChange17 = (val: number) => {
|
||||
pager17.page_no = val
|
||||
console.log(`current page: ${val}`)
|
||||
|
||||
salarypaymentLists()
|
||||
|
||||
}
|
||||
|
||||
const handleCurrentChange18 = (val: number) => {
|
||||
pager18.page_no = val
|
||||
console.log(`current page: ${val}`)
|
||||
|
||||
customServiceLists()
|
||||
}
|
||||
|
||||
const handleCurrentChange19 = (val: number) => {
|
||||
pager19.page_no = val
|
||||
console.log(`current page: ${val}`)
|
||||
|
||||
contractLists()
|
||||
}
|
||||
|
||||
|
||||
const handleCurrentChange20 = (val: number) => {
|
||||
pager20.page_no = val
|
||||
console.log(`current page: ${val}`)
|
||||
|
||||
contcractNegotiationLists()
|
||||
}
|
||||
|
||||
const handleCurrentChange21 = (val: number) => {
|
||||
pager21.page_no = val
|
||||
console.log(`current page: ${val}`)
|
||||
|
||||
customServiceLists()
|
||||
}
|
||||
|
||||
|
||||
const handleCurrentChange22 = (val: number) => {
|
||||
pager22.page_no = val
|
||||
console.log(`current page: ${val}`)
|
||||
|
||||
customServiceLists()
|
||||
}
|
||||
|
||||
|
||||
const handleCurrentChange23 = (val: number) => {
|
||||
pager23.page_no = val
|
||||
console.log(`current page: ${val}`)
|
||||
|
||||
customServiceLists()
|
||||
}
|
||||
|
||||
const handleCurrentChange24 = (val: number) => {
|
||||
pager24.page_no = val
|
||||
console.log(`current page: ${val}`)
|
||||
|
||||
customServiceLists()
|
||||
}
|
||||
|
||||
|
||||
const handleCurrentChange25 = (val: number) => {
|
||||
pager25.page_no = val
|
||||
console.log(`current page: ${val}`)
|
||||
|
||||
customServiceLists()
|
||||
}
|
||||
const handleCurrentChange26 = (val: number) => {
|
||||
pager26.page_no = val
|
||||
console.log(`current page: ${val}`)
|
||||
|
||||
customServiceLists()
|
||||
}
|
||||
|
||||
|
||||
const handleCurrentChange27 = (val: number) => {
|
||||
pager27.page_no = val
|
||||
console.log(`current page: ${val}`)
|
||||
|
||||
customServiceLists()
|
||||
}
|
||||
|
||||
|
||||
const handleCurrentChange28 = (val: number) => {
|
||||
pager28.page_no = val
|
||||
console.log(`current page: ${val}`)
|
||||
|
||||
customServiceLists()
|
||||
}
|
||||
|
||||
const handleCurrentChange29 = (val: number) => {
|
||||
pager29.page_no = val
|
||||
console.log(`current page: ${val}`)
|
||||
invoiceapplyLists()
|
||||
}
|
||||
|
||||
|
||||
const handleCurrentChange30 = (val: number) => {
|
||||
pager30.page_no = val
|
||||
console.log(`current page: ${val}`)
|
||||
|
||||
returnedLists()
|
||||
}
|
||||
|
||||
|
||||
const handleCurrentChange31 = (val: number) => {
|
||||
pager31.page_no = val
|
||||
console.log(`current page: ${val}`)
|
||||
|
||||
returnedrecordLists()
|
||||
}
|
||||
const handleCurrentChange32 = (val: number) => {
|
||||
pager32.page_no = val
|
||||
console.log(`current page: ${val}`)
|
||||
|
||||
refundapplyLists()
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//获取项目人员列表
|
||||
|
||||
const personnelLists = () => {
|
||||
projectpersonnelLists(pager12).then((res) => {
|
||||
tableData12.value = res.lists
|
||||
total11.value = res.count
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
//获取保险管理列表
|
||||
|
||||
const insurancemanagementlists = () => {
|
||||
insurancemanagementLists(pager14).then((res) => {
|
||||
tableData14.value = res.lists
|
||||
total13.value = res.count
|
||||
})
|
||||
}
|
||||
//获取考勤记录列表
|
||||
|
||||
const attendanceRecord = () => {
|
||||
attendanceRecordLists(pager15).then((res) => {
|
||||
tableData15.value = res.lists
|
||||
total14.value = res.count
|
||||
})
|
||||
}
|
||||
|
||||
//获取考勤明细列表
|
||||
|
||||
const attendancedetail = () => {
|
||||
attendancedetailLists(pager16).then((res) => {
|
||||
tableData16.value = res.lists
|
||||
total15.value = res.count
|
||||
})
|
||||
}
|
||||
//获取工资付款列表
|
||||
|
||||
const salarypaymentLists = () => {
|
||||
projectsalaryDetailLists(pager17).then((res) => {
|
||||
tableData17.value = res.lists
|
||||
total16.value = res.count
|
||||
})
|
||||
}
|
||||
|
||||
//售后信息
|
||||
const customServiceLists = () => {
|
||||
apiCustomServiceLists(pager18).then((res) => {
|
||||
tableData18.value = res.lists
|
||||
total17.value = res.count
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
//获取分包预算列表
|
||||
const subpackagList = () => {
|
||||
subpackagdetailLists(pager21).then((res) => {
|
||||
tableData21.value = res.lists
|
||||
total20.value = res.count
|
||||
})
|
||||
}
|
||||
|
||||
// 获取收票记录列表
|
||||
const financereceiptLists = () => {
|
||||
apifinancereceiptLists(pager22).then((res) => {
|
||||
tableData22.value = res.lists
|
||||
total21.value = res.count
|
||||
})
|
||||
}
|
||||
|
||||
// 获取付款计划列表
|
||||
const planLists = () => {
|
||||
paymentplanLists(pager23).then((res) => {
|
||||
tableData23.value = res.lists
|
||||
total22.value = res.count
|
||||
})
|
||||
}
|
||||
|
||||
//获取付款记录
|
||||
const payapplyLists = () => {
|
||||
paymentapplyLists(pager24).then((res) => {
|
||||
tableData24.value = res.lists
|
||||
total22.value = res.count
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
//获取退款记录
|
||||
const financerefundLists = () => {
|
||||
apiFinancerefundLists(pager25).then((res) => {
|
||||
tableData25.value = res.lists
|
||||
total24.value = res.count
|
||||
})
|
||||
}
|
||||
|
||||
//获取采购合同
|
||||
|
||||
const procurementContractLists = () => {
|
||||
apiProcurementContractLists(pager26).then((res) => {
|
||||
tableData26.value = res.lists
|
||||
total25.value = res.count
|
||||
})
|
||||
}
|
||||
//获取分包合同
|
||||
const subcontractingContractLists = () => {
|
||||
apiSubcontractingContractLists(pager27).then((res) => {
|
||||
tableData27.value = res.lists
|
||||
total26.value = res.count
|
||||
})
|
||||
}
|
||||
|
||||
//获取分包合同洽商
|
||||
const negotiationLists = () => {
|
||||
apinegotiationLists(pager28).then((res) => {
|
||||
tableData28.value = res.lists
|
||||
total27.value = res.count
|
||||
})
|
||||
}
|
||||
|
||||
//获取开票申请
|
||||
const invoiceapplyLists = () => {
|
||||
apiinvoiceapplyLists(pager29).then((res) => {
|
||||
tableData29.value = res.lists
|
||||
total28.value = res.count
|
||||
})
|
||||
}
|
||||
|
||||
//获取回款计划
|
||||
const returnedLists = () => {
|
||||
apireturnedLists(pager30).then((res) => {
|
||||
tableData30.value = res.lists
|
||||
total29.value = res.count
|
||||
})
|
||||
}
|
||||
|
||||
//获取回款记录
|
||||
const returnedrecordLists = () => {
|
||||
apireturnedrecordLists(pager31).then((res) => {
|
||||
tableData31.value = res.lists
|
||||
total30.value = res.count
|
||||
})
|
||||
}
|
||||
|
||||
//获取退款申请
|
||||
const refundapplyLists = () => {
|
||||
apirefundapplyLists(pager32).then((res) => {
|
||||
tableData32.value = res.lists
|
||||
total31.value = res.count
|
||||
})
|
||||
}
|
||||
|
||||
const project_id = ref(0)
|
||||
|
||||
|
||||
// 获取详情
|
||||
const setFormData = async (data: Record<any, any>) => {
|
||||
|
||||
|
||||
|
||||
// for (const key in formData) {
|
||||
// if (data[key] != null && data[key] != undefined) {
|
||||
// //@ts-ignore
|
||||
// formData[key] = data[key]
|
||||
|
||||
// }
|
||||
|
||||
// }
|
||||
project_id.value = data.id
|
||||
|
||||
// pager11.project_id = data.id
|
||||
// pager11.project_id = data.id
|
||||
// pager12.project_id = data.id
|
||||
// pager13.project_id = data.id
|
||||
// pager14.project_id = data.id
|
||||
// pager15.project_id = data.id
|
||||
// pager16.project_id = data.id
|
||||
// pager17.project_id = data.id
|
||||
// pager18.project_id = data.id
|
||||
// pager19.project_id = data.id
|
||||
// pager20.project_id = data.id
|
||||
// pager21.project_id = data.id
|
||||
// pager22.project_id = data.id
|
||||
// pager23.project_id = data.id
|
||||
// pager24.project_id = data.id
|
||||
// pager20.project_id = data.id
|
||||
// pager25.project_id = data.id
|
||||
// pager26.project_id = data.id
|
||||
// pager27.project_id = data.id
|
||||
// pager28.project_id = data.id
|
||||
// pager29.project_id = data.id
|
||||
// pager30.project_id = data.id
|
||||
// pager31.project_id = data.id
|
||||
// pager32.project_id = data.id
|
||||
Object.assign(formData, data)
|
||||
|
||||
// if (data.annex && data.annex.length > 0) {
|
||||
// const arry1 = data.annex.map((item: any, index: any) => {
|
||||
// return {
|
||||
// name: `文件${index + 1}`,
|
||||
// uri: item
|
||||
// };
|
||||
// });
|
||||
// Object.assign(formDataannex, arry1)
|
||||
// }
|
||||
// followUpLists()
|
||||
// demandList()
|
||||
// // competitorLists()
|
||||
// solutionLists()
|
||||
// estimateLists()
|
||||
// decisionLists()
|
||||
// buydocumentLists()
|
||||
// examinationLists()
|
||||
// bidResultLists()
|
||||
// applyLists()
|
||||
// refundLists()
|
||||
// personnelLists()
|
||||
// laborcontractLists()
|
||||
// insurancemanagementlists()
|
||||
// attendanceRecord()
|
||||
// attendancedetail()
|
||||
// salarypaymentLists()
|
||||
// customServiceLists()
|
||||
// contractLists()
|
||||
// contcractNegotiationLists()
|
||||
// subpackagList()
|
||||
// financereceiptLists()
|
||||
// planLists()
|
||||
// payapplyLists()
|
||||
// financerefundLists()
|
||||
// procurementContractLists()
|
||||
// subcontractingContractLists()
|
||||
// negotiationLists()
|
||||
// invoiceapplyLists()
|
||||
// returnedLists()
|
||||
// returnedrecordLists()
|
||||
// refundapplyLists()
|
||||
}
|
||||
|
||||
const getDetail = async (row: Record<string, any>) => {
|
||||
@ -927,12 +129,6 @@ const handleClose = () => {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
defineExpose({
|
||||
open,
|
||||
setFormData,
|
||||
@ -944,4 +140,8 @@ defineExpose({
|
||||
font-size: 1.2em;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
:deep(.my-label) {
|
||||
width: 150px;
|
||||
}
|
||||
</style>
|
||||
|
Loading…
x
Reference in New Issue
Block a user