项目列表新增操作
This commit is contained in:
parent
930cb649dc
commit
3a1815b0fb
@ -24,8 +24,7 @@
|
|||||||
<el-input v-model="project_name" readonly clearable placeholder="请选择项目" />
|
<el-input v-model="project_name" readonly clearable placeholder="请选择项目" />
|
||||||
</el-form-item></el-col>
|
</el-form-item></el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="项目编码" prop="project_id"
|
<el-form-item label="项目编码">
|
||||||
:rules="[{ required: true, message: '不可为空', trigger: 'blur' }]">
|
|
||||||
<el-input v-model="project_code" clearable disabled placeholder="系统自动填写" />
|
<el-input v-model="project_code" clearable disabled placeholder="系统自动填写" />
|
||||||
</el-form-item></el-col>
|
</el-form-item></el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
@ -369,10 +368,10 @@ const customEvent1 = (e: any) => {
|
|||||||
};
|
};
|
||||||
const customEvent2 = (e: any) => {
|
const customEvent2 = (e: any) => {
|
||||||
project_id.value = e.id;
|
project_id.value = e.id;
|
||||||
formData.project_id = e.id
|
formData.project_id = e.id;
|
||||||
project_name.value = e.name;
|
project_name.value = e.name;
|
||||||
project_code.value = e.project_code
|
project_code.value = e.project_code;
|
||||||
bidding_code.value = ''
|
bidding_code.value = '';
|
||||||
showDialog2.value = false;
|
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>
|
||||||
|
|
||||||
<el-tab-pane label="商机" name="demo-2">
|
<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>
|
||||||
|
|
||||||
<el-tab-pane label="投标" name="demo-3">
|
<el-tab-pane label="投标" name="demo-3">
|
||||||
@ -59,8 +59,11 @@
|
|||||||
import type { FormInstance } from 'element-plus'
|
import type { FormInstance } from 'element-plus'
|
||||||
import Popup from '@/components/popup/index.vue'
|
import Popup from '@/components/popup/index.vue'
|
||||||
import { apiCustomDetail } from '@/api/custom'
|
import { apiCustomDetail } from '@/api/custom'
|
||||||
|
import { timeFormat } from '@/utils/util'
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
import type { TabsPaneContext } from 'element-plus'
|
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 Overview from "./components/Overview.vue"
|
||||||
import Business from "./components/Business.vue"
|
import Business from "./components/Business.vue"
|
||||||
import tender from "./components/tender.vue"
|
import tender from "./components/tender.vue"
|
||||||
@ -74,6 +77,8 @@ import payment from "./components/payment.vue"
|
|||||||
import documentation from "./components/documentation.vue"
|
import documentation from "./components/documentation.vue"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const activeName = ref('demo-1')
|
const activeName = ref('demo-1')
|
||||||
const handleClick = (tab: TabsPaneContext, event: Event) => {
|
const handleClick = (tab: TabsPaneContext, event: Event) => {
|
||||||
// console.log(tab, event)
|
// console.log(tab, event)
|
||||||
@ -89,6 +94,114 @@ const formRef = shallowRef<FormInstance>()
|
|||||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
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({
|
const formData = reactive({
|
||||||
|
|
||||||
|
@ -109,7 +109,7 @@ import type { FormInstance } from 'element-plus'
|
|||||||
import projectTable from "@/components/project/index.vue"
|
import projectTable from "@/components/project/index.vue"
|
||||||
import Popup from '@/components/popup/index.vue'
|
import Popup from '@/components/popup/index.vue'
|
||||||
import { apiProjectFollowUpAdd, apiProjectFollowUpEdit, apiProjectFollowUpDetail } from '@/api/project_follow_up'
|
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"
|
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 delFileFn = (index: number) => { formData.annex.splice(index, 1) }
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
dictData: {
|
|
||||||
type: Object as PropType<Record<string, any[]>>,
|
|
||||||
default: () => ({})
|
|
||||||
},
|
|
||||||
project: Object
|
project: Object
|
||||||
})
|
})
|
||||||
|
const { dictData } = useDictData('project_assurance,follow_status,follow_type,follow_stage')
|
||||||
const emit = defineEmits(['success', 'close'])
|
const emit = defineEmits(['success', 'close'])
|
||||||
const formRef = shallowRef<FormInstance>()
|
const formRef = shallowRef<FormInstance>()
|
||||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||||
@ -138,8 +135,6 @@ const formDataannex = reactive([])
|
|||||||
// dialog
|
// dialog
|
||||||
const showDialog = ref(false)
|
const showDialog = ref(false)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 弹窗标题
|
// 弹窗标题
|
||||||
const popupTitle = computed(() => {
|
const popupTitle = computed(() => {
|
||||||
return mode.value == 'edit' ? '编辑项目跟进记录' : '新增项目跟进记录'
|
return mode.value == 'edit' ? '编辑项目跟进记录' : '新增项目跟进记录'
|
||||||
|
@ -1,139 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="tit">项目跟进</div>
|
<myTable :baseData="baseData" :project="project" editPath="project_follow_up"></myTable>
|
||||||
<div>
|
<myTable :baseData="baseData1" :project="project" editPath="customer_demand"></myTable>
|
||||||
<el-table :data="tableData1" stripe style="width: 100%">
|
<myTable :baseData="baseData2" :project="project" editPath="customer_demand_solution"></myTable>
|
||||||
<el-table-column label="主题" prop='theme' width="180" />
|
<myTable :baseData="baseData3" :project="project" editPath="project_estimate"></myTable>
|
||||||
<el-table-column label="日期" prop='follow_date' width="180" />
|
<myTable :baseData="baseData4" :project="project" editPath="competitor"></myTable>
|
||||||
<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>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
|
||||||
import { ref, reactive, defineProps } from "vue"
|
import { ref, reactive, defineProps } from "vue"
|
||||||
@ -142,125 +14,82 @@ import { apiCustomerDemandLists } from '@/api/customer_demand'
|
|||||||
import { apiCustomerDemandSolutionLists } from '@/api/customer_demand_solution'
|
import { apiCustomerDemandSolutionLists } from '@/api/customer_demand_solution'
|
||||||
import { apiProjectEstimateLists } from '@/api/project_estimate'
|
import { apiProjectEstimateLists } from '@/api/project_estimate'
|
||||||
import { apiCompetitorLists } from '@/api/competitor'
|
import { apiCompetitorLists } from '@/api/competitor'
|
||||||
|
import myTable from "./myTable.vue"
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
project_id: Number
|
project: Object
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
const baseData = reactive({
|
||||||
|
fetchFun: apiProjectFollowUpLists,
|
||||||
const tableData1 = ref([])
|
tit: "项目跟进",
|
||||||
const tableData2 = ref([])
|
queryParams: { project_id: props.project.id },
|
||||||
const tableData3 = ref([])
|
columnList: [
|
||||||
const tableData4 = ref([])
|
{ label: '项目名称', prop: 'project_name' },
|
||||||
const tableData5 = ref([])
|
{ label: '客户名称', prop: 'custom_name' },
|
||||||
|
{ label: '执行人', prop: 'executor' },
|
||||||
const total = ref(0)
|
{ label: '类型', prop: 'follow_type_text' },
|
||||||
const total1 = ref(0)
|
{ label: '主题', prop: 'theme' },
|
||||||
const total2 = ref(0)
|
{ label: '项目把握度', prop: 'project_assurance_text' },
|
||||||
const total3 = ref(0)
|
{ label: '状态', prop: 'follow_status_text' },
|
||||||
const total4 = ref(0)
|
{ label: '阶段', prop: 'follow_stage_text' },
|
||||||
|
{ label: '下次回访日期', prop: 'next_follow_up_date' },
|
||||||
|
]
|
||||||
const pager1 = reactive({
|
|
||||||
page_size: 10,
|
|
||||||
page_no: 1,
|
|
||||||
project_id: props.project_id
|
|
||||||
})
|
})
|
||||||
const pager2 = reactive({
|
const baseData1 = reactive({
|
||||||
page_size: 10,
|
fetchFun: apiCustomerDemandLists,
|
||||||
page_no: 1,
|
tit: "客户需求",
|
||||||
project_id: props.project_id
|
queryParams: { project_id: props.project.id },
|
||||||
|
columnList: [
|
||||||
|
{ label: '需求主题', prop: 'project_name' },
|
||||||
|
{ label: '重要程度', prop: 'custom_name' },
|
||||||
|
{ label: '记录时间', prop: 'executor' },
|
||||||
|
{ label: '需求内容', prop: 'theme' },
|
||||||
|
]
|
||||||
})
|
})
|
||||||
const pager3 = reactive({
|
const baseData2 = reactive({
|
||||||
page_size: 10,
|
fetchFun: apiCustomerDemandSolutionLists,
|
||||||
page_no: 1,
|
tit: "解决方案",
|
||||||
project_id: props.project_id
|
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,
|
const baseData3 = reactive({
|
||||||
page_no: 1,
|
fetchFun: apiProjectEstimateLists,
|
||||||
project_id: props.project_id
|
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,
|
const baseData4 = reactive({
|
||||||
page_no: 1,
|
fetchFun: apiCompetitorLists,
|
||||||
project_id: props.project_id
|
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>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.tit {
|
.tit {
|
||||||
|
@ -13,9 +13,11 @@ import { apiinvoiceapplyLists } from '@/api/InvoicingRequests'
|
|||||||
import { apireturnedLists } from '@/api/remittance'
|
import { apireturnedLists } from '@/api/remittance'
|
||||||
import { apireturnedrecordLists } from '@/api/recordsPayment'
|
import { apireturnedrecordLists } from '@/api/recordsPayment'
|
||||||
import { apirefundapplyLists } from '@/api/refund'
|
import { apirefundapplyLists } from '@/api/refund'
|
||||||
|
import EditPopup from '@/views/project_follow_up/edit.vue'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
project_id: Number
|
project_id: Number,
|
||||||
|
components: EditPopup
|
||||||
})
|
})
|
||||||
|
|
||||||
const baseData = reactive({
|
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 { apiProjectEquipmentBudgetDetailLists } from '@/api/project_equipment_budget_detail.ts'
|
||||||
import { apiProjectLaborBudgetDetailLists } from '@/api/project_labor_budget_detail.ts'
|
import { apiProjectLaborBudgetDetailLists } from '@/api/project_labor_budget_detail.ts'
|
||||||
|
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
project_id: Number
|
project_id: Number
|
||||||
})
|
})
|
||||||
@ -97,9 +96,6 @@ const baseData3 = reactive({
|
|||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const baseData4 = reactive({
|
const baseData4 = reactive({
|
||||||
fetchFun: apiProjectLaborBudgetDetailLists,
|
fetchFun: apiProjectLaborBudgetDetailLists,
|
||||||
tit: "人工预算",
|
tit: "人工预算",
|
||||||
|
@ -1,99 +1,52 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class='tit'>主合同</div>
|
<myTable :baseData="baseData"></myTable>
|
||||||
<div>
|
<myTable :baseData="baseData1"></myTable>
|
||||||
<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>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
|
||||||
import { ref, reactive, defineProps } from "vue"
|
import { ref, reactive, defineProps } from "vue"
|
||||||
import { apiContractLists } from '@/api/contract'
|
import { apiContractLists } from '@/api/contract'
|
||||||
import { apiContractNegotiationLists } from '@/api/contract_negotiation'
|
import { apiContractNegotiationLists } from '@/api/contract_negotiation'
|
||||||
|
import myTable from "./myTable.vue"
|
||||||
|
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
project_id: Number
|
project_id: Number
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const baseData = reactive({
|
||||||
|
fetchFun: apiContractLists,
|
||||||
|
tit: "主合同",
|
||||||
const tableData19 = ref([])
|
queryParams: { project_id: props.project_id },
|
||||||
const tableData20 = ref([])
|
columnList: [
|
||||||
const total18 = ref(0)
|
{ label: '合同编号', prop: 'contract_name' },
|
||||||
const total19 = ref(0)
|
{ label: '合同名称', prop: 'contract_code' },
|
||||||
const total20 = ref(0)
|
{ label: '合同类型', prop: 'contract_type_text' },
|
||||||
const pager19 = reactive({
|
{ label: '负责人', prop: 'business_director_name' },
|
||||||
page_size: 10,
|
{ label: '签约日期', prop: 'contract_date' },
|
||||||
page_no: 1,
|
{ label: '合同金额', prop: 'amount' },
|
||||||
project_id: props.project_id
|
{ 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({
|
const baseData1 = reactive({
|
||||||
page_size: 10,
|
fetchFun: apiContractNegotiationLists,
|
||||||
page_no: 1,
|
tit: "合同洽商",
|
||||||
project_id: props.project_id
|
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' },
|
||||||
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
//获取项目合同列表
|
</script>
|
||||||
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>
|
|
@ -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>
|
<myTable :baseData="baseData" v-if="active == 'first-1'"></myTable>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="劳动合同" name="first-2">
|
<el-tab-pane label="劳动合同" name="first-2">
|
||||||
<!-- <myTable :baseData="baseData1" v-if="active == 'first-2'"></myTable> -->
|
<myTable :baseData="baseData5" 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>
|
||||||
<el-tab-pane label="保险记录" name="first-3">
|
<el-tab-pane label="保险记录" name="first-3">
|
||||||
<myTable :baseData="baseData1" v-if="active == 'first-3'"></myTable>
|
<myTable :baseData="baseData1" v-if="active == 'first-3'"></myTable>
|
||||||
@ -40,24 +14,14 @@
|
|||||||
<myTable :baseData="baseData2" v-if="active == 'first-4'"></myTable>
|
<myTable :baseData="baseData2" v-if="active == 'first-4'"></myTable>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
<el-tab-pane label="考勤明细" name="first-5">
|
<el-tab-pane label="考勤明细" name="first-5">
|
||||||
|
|
||||||
<myTable :baseData="baseData3" v-if="active == 'first-5'"></myTable>
|
<myTable :baseData="baseData3" v-if="active == 'first-5'"></myTable>
|
||||||
|
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
|
|
||||||
|
|
||||||
<el-tab-pane label="工资付款" name="first-6">
|
<el-tab-pane label="工资付款" name="first-6">
|
||||||
|
|
||||||
<myTable :baseData="baseData4" v-if="active == 'first-6'"></myTable>
|
<myTable :baseData="baseData4" v-if="active == 'first-6'"></myTable>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
|
||||||
import { ref, reactive, defineProps } from "vue"
|
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 { attendancedetailLists } from '@/api/project_attendance_detail'
|
||||||
import { projectsalaryDetailLists } from '@/api/project_salary_detail'
|
import { projectsalaryDetailLists } from '@/api/project_salary_detail'
|
||||||
|
|
||||||
|
const active = ref('first-1')
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
project_id: Number
|
project_id: Number
|
||||||
})
|
})
|
||||||
@ -93,6 +57,7 @@ const baseData = reactive({
|
|||||||
{ label: '余额', prop: 'balance' },
|
{ label: '余额', prop: 'balance' },
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
const baseData1 = reactive({
|
const baseData1 = reactive({
|
||||||
fetchFun: insurancemanagementLists,
|
fetchFun: insurancemanagementLists,
|
||||||
tit: "",
|
tit: "",
|
||||||
@ -110,7 +75,6 @@ const baseData1 = reactive({
|
|||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
const baseData2 = reactive({
|
const baseData2 = reactive({
|
||||||
fetchFun: attendanceRecordLists,
|
fetchFun: attendanceRecordLists,
|
||||||
tit: "",
|
tit: "",
|
||||||
@ -129,6 +93,7 @@ const baseData2 = reactive({
|
|||||||
|
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
const baseData3 = reactive({
|
const baseData3 = reactive({
|
||||||
fetchFun: attendancedetailLists,
|
fetchFun: attendancedetailLists,
|
||||||
tit: "",
|
tit: "",
|
||||||
@ -151,6 +116,7 @@ const baseData3 = reactive({
|
|||||||
|
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
const baseData4 = reactive({
|
const baseData4 = reactive({
|
||||||
fetchFun: projectsalaryDetailLists,
|
fetchFun: projectsalaryDetailLists,
|
||||||
tit: "",
|
tit: "",
|
||||||
@ -169,19 +135,21 @@ const baseData4 = reactive({
|
|||||||
|
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
const pager13 = reactive({
|
|
||||||
page_size: 10,
|
const baseData5 = reactive({
|
||||||
page_no: 1,
|
fetchFun: projectlaborcontractLists,
|
||||||
project_id: props.project_id
|
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>
|
</script>
|
@ -1,26 +1,65 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="tit" v-if="baseData.tit">{{ baseData.tit }}</div>
|
<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"
|
<div style="float: right;"> <el-dropdown>
|
||||||
:key="index" />
|
<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>
|
</el-table>
|
||||||
<div class="flex justify-end mt-4">
|
<div class="flex justify-end mt-4">
|
||||||
<pagination v-model="pager" @change="getLists" />
|
<pagination v-model="pager" @change="getLists" />
|
||||||
</div>
|
</div>
|
||||||
|
<EditPopup v-if="showEdit" ref="editRef" @success="getLists" @close="showEdit = false" :project="project" />
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, reactive, defineProps, toRaw } from "vue"
|
|
||||||
|
import { ref, reactive, defineProps, toRaw, defineAsyncComponent } from "vue"
|
||||||
import { usePaging } from '@/hooks/usePaging'
|
import { usePaging } from '@/hooks/usePaging'
|
||||||
|
import feedback from '@/utils/feedback'
|
||||||
|
import { useDictData } from '@/hooks/useDictOptions'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
baseData: Object,
|
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({
|
const { pager, getLists, resetParams, resetPage } = usePaging({
|
||||||
fetchFun: props.baseData.fetchFun,
|
fetchFun: props.baseData.fetchFun,
|
||||||
params: props.baseData.queryParams || ""
|
params: props.baseData.queryParams || ""
|
||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
getLists()
|
getLists()
|
||||||
@ -33,7 +72,11 @@ getLists()
|
|||||||
margin-bottom: 10px;
|
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>
|
</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>
|
<template>
|
||||||
<div class="tit">投标决策</div>
|
<myTable :baseData="baseData"></myTable>
|
||||||
<div>
|
<myTable :baseData="baseData1"></myTable>
|
||||||
<el-table :data="tableData6" stripe style="width: 100%">
|
<myTable :baseData="baseData2"></myTable>
|
||||||
<el-table-column label="流程编号" prop='code' width="180" />
|
<myTable :baseData="baseData3"></myTable>
|
||||||
<el-table-column label="项目估算(万元)" prop='project_estimation' width="180" />
|
<myTable :baseData="baseData4"></myTable>
|
||||||
<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>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
|
||||||
import { ref, reactive, defineProps } from "vue"
|
import { ref, reactive, defineProps } from "vue"
|
||||||
@ -119,146 +15,91 @@ import { apiBidDocumentExaminationLists } from '@/api/bid_document_examination'
|
|||||||
import { apiBidResultLists } from '@/api/bid_result'
|
import { apiBidResultLists } from '@/api/bid_result'
|
||||||
import { bidapplyLists } from '@/api/bidbbond'
|
import { bidapplyLists } from '@/api/bidbbond'
|
||||||
import { bidrefundLists } from '@/api/refundbidDeposit'
|
import { bidrefundLists } from '@/api/refundbidDeposit'
|
||||||
|
import myTable from "./myTable.vue"
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
project_id: Number
|
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 baseData = reactive({
|
||||||
const tableData7 = ref([])
|
fetchFun: apiBidBiddingDecisionLists,
|
||||||
const tableData8 = ref([])
|
tit: "投标决策",
|
||||||
const tableData9 = ref([])
|
queryParams: { project_id: props.project_id },
|
||||||
const tableData10 = ref([])
|
columnList: [
|
||||||
const tableData11 = ref([])
|
{ 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({
|
const baseData1 = reactive({
|
||||||
page_size: 10,
|
fetchFun: apiBidDocumentExaminationLists,
|
||||||
page_no: 1,
|
tit: "标书审查",
|
||||||
project_id: props.project_id
|
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({
|
const baseData2 = reactive({
|
||||||
page_size: 10,
|
fetchFun: apiBidResultLists,
|
||||||
page_no: 1,
|
tit: "投标结果",
|
||||||
project_id: props.project_id
|
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,
|
const baseData3 = reactive({
|
||||||
page_no: 1,
|
fetchFun: bidapplyLists,
|
||||||
project_id: props.project_id
|
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,
|
const baseData4 = reactive({
|
||||||
page_no: 1,
|
fetchFun: bidrefundLists,
|
||||||
project_id: props.project_id
|
tit: "退投标保证金",
|
||||||
})
|
queryParams: { project_id: props.project_id },
|
||||||
const pager10 = reactive({
|
columnList: [
|
||||||
page_size: 10,
|
{ label: '投标时间', prop: 'bidding_time' },
|
||||||
page_no: 1,
|
{ label: '退款日期', prop: 'refund_date' },
|
||||||
project_id: props.project_id
|
{ label: '账户编码', prop: 'bank_account_info' },
|
||||||
})
|
{ label: '开户银行', prop: 'bank_account_info' },
|
||||||
const pager11 = reactive({
|
{ label: '退款金额', prop: 'refund_amount' },
|
||||||
page_size: 10,
|
{ label: '客户名称', prop: 'custom_name' },
|
||||||
page_no: 1,
|
{ label: '创建日期', prop: 'create_time' },
|
||||||
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>
|
</script>
|
||||||
<style >
|
<style >
|
||||||
.tit {
|
.tit {
|
||||||
|
@ -1,15 +1,14 @@
|
|||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="detail-popup">
|
<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-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">
|
<el-tab-pane label="概况" name="demo-1">
|
||||||
<Overview :formData="formData" v-if="activeName == 'demo-1'"></Overview>
|
<Overview :formData="formData" v-if="activeName == 'demo-1'"></Overview>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
|
|
||||||
<el-tab-pane label="商机" name="demo-2">
|
<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>
|
||||||
|
|
||||||
<el-tab-pane label="投标" name="demo-3">
|
<el-tab-pane label="投标" name="demo-3">
|
||||||
@ -43,17 +42,14 @@
|
|||||||
<el-tab-pane label="付款" name="demo-15">
|
<el-tab-pane label="付款" name="demo-15">
|
||||||
<payment v-if="activeName == 'demo-15'" :project_id="project_id"></payment>
|
<payment v-if="activeName == 'demo-15'" :project_id="project_id"></payment>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
|
|
||||||
<el-tab-pane label="文档" name="demo-16">
|
<el-tab-pane label="文档" name="demo-16">
|
||||||
<documentation v-if="activeName == 'demo-16'" :project_id="project_id"></documentation>
|
<documentation v-if="activeName == 'demo-16'" :project_id="project_id"></documentation>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
|
|
||||||
<el-tab-pane label="费用" name="demo-17">
|
<el-tab-pane label="统计" name="demo-17">
|
||||||
<expenses v-if="activeName == 'demo-17'" :project_id="project_id"></expenses>
|
<Statistics v-if="activeName == 'demo-17'" :project_id="project_id"></Statistics>
|
||||||
</el-tab-pane>
|
</el-tab-pane>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</el-tabs>
|
</el-tabs>
|
||||||
</el-form>
|
</el-form>
|
||||||
</popup>
|
</popup>
|
||||||
@ -65,16 +61,7 @@
|
|||||||
import type { FormInstance } from 'element-plus'
|
import type { FormInstance } from 'element-plus'
|
||||||
import Popup from '@/components/popup/index.vue'
|
import Popup from '@/components/popup/index.vue'
|
||||||
import { apiCustomDetail } from '@/api/custom'
|
import { apiCustomDetail } from '@/api/custom'
|
||||||
import { timeFormat } from '@/utils/util'
|
|
||||||
import type { PropType } from 'vue'
|
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 Overview from "./components/Overview.vue"
|
||||||
import Business from "./components/Business.vue"
|
import Business from "./components/Business.vue"
|
||||||
import tender from "./components/tender.vue"
|
import tender from "./components/tender.vue"
|
||||||
@ -86,17 +73,10 @@ import manpower from "./components/manpower.vue"
|
|||||||
import Collection from "./components/Collection.vue"
|
import Collection from "./components/Collection.vue"
|
||||||
import payment from "./components/payment.vue"
|
import payment from "./components/payment.vue"
|
||||||
import documentation from "./components/documentation.vue"
|
import documentation from "./components/documentation.vue"
|
||||||
import expenses from "./components/expenses.vue"
|
import Statistics from "./components/Statistics.vue"
|
||||||
// import manpower from "./components/manpower.vue"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const active = ref('first-1')
|
|
||||||
const activeName = ref('demo-1')
|
const activeName = ref('demo-1')
|
||||||
const handleClick = (tab: TabsPaneContext, event: Event) => {
|
|
||||||
// console.log(tab, event)
|
|
||||||
}
|
|
||||||
defineProps({
|
defineProps({
|
||||||
dictData: {
|
dictData: {
|
||||||
type: Object as PropType<Record<string, any[]>>,
|
type: Object as PropType<Record<string, any[]>>,
|
||||||
@ -106,800 +86,22 @@ defineProps({
|
|||||||
const emit = defineEmits(['success', 'close'])
|
const emit = defineEmits(['success', 'close'])
|
||||||
const formRef = shallowRef<FormInstance>()
|
const formRef = shallowRef<FormInstance>()
|
||||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
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 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 project_id = ref(0)
|
||||||
|
|
||||||
|
|
||||||
// 获取详情
|
// 获取详情
|
||||||
const setFormData = async (data: Record<any, any>) => {
|
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
|
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)
|
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>) => {
|
const getDetail = async (row: Record<string, any>) => {
|
||||||
@ -927,12 +129,6 @@ const handleClose = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
defineExpose({
|
defineExpose({
|
||||||
open,
|
open,
|
||||||
setFormData,
|
setFormData,
|
||||||
@ -944,4 +140,8 @@ defineExpose({
|
|||||||
font-size: 1.2em;
|
font-size: 1.2em;
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.my-label) {
|
||||||
|
width: 150px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user