This commit is contained in:
zmj 2024-04-11 17:00:12 +08:00
parent 9d3c48cd45
commit 635b87490c
23 changed files with 1119 additions and 156 deletions

View File

@ -0,0 +1,26 @@
import request from '@/utils/request'
// 市场经营--投标管理--投标评审列表
export function apiMarketingBidEvaluationLists(params: any) {
return request.get({ url: '/marketing.marketing_bid_evaluation/lists', params })
}
// 添加市场经营--投标管理--投标评审
export function apiMarketingBidEvaluationAdd(params: any) {
return request.post({ url: '/marketing.marketing_bid_evaluation/add', params })
}
// 编辑市场经营--投标管理--投标评审
export function apiMarketingBidEvaluationEdit(params: any) {
return request.post({ url: '/marketing.marketing_bid_evaluation/edit', params })
}
// 删除市场经营--投标管理--投标评审
export function apiMarketingBidEvaluationDelete(params: any) {
return request.post({ url: '/marketing.marketing_bid_evaluation/delete', params })
}
// 市场经营--投标管理--投标评审详情
export function apiMarketingBidEvaluationDetail(params: any) {
return request.get({ url: '/marketing.marketing_bid_evaluation/detail', params })
}

View File

@ -0,0 +1,26 @@
import request from '@/utils/request'
// 市场经营--投标管理--业务机会列表
export function apiMarketingBusinessOpportunityLists(params: any) {
return request.get({ url: '/marketing.marketing_business_opportunity/lists', params })
}
// 添加市场经营--投标管理--业务机会
export function apiMarketingBusinessOpportunityAdd(params: any) {
return request.post({ url: '/marketing.marketing_business_opportunity/add', params })
}
// 编辑市场经营--投标管理--业务机会
export function apiMarketingBusinessOpportunityEdit(params: any) {
return request.post({ url: '/marketing.marketing_business_opportunity/edit', params })
}
// 删除市场经营--投标管理--业务机会
export function apiMarketingBusinessOpportunityDelete(params: any) {
return request.post({ url: '/marketing.marketing_business_opportunity/delete', params })
}
// 市场经营--投标管理--业务机会详情
export function apiMarketingBusinessOpportunityDetail(params: any) {
return request.get({ url: '/marketing.marketing_business_opportunity/detail', params })
}

View File

@ -51,11 +51,16 @@ export function usePaging(options: Options) {
calcWidth: ({ column }: Icolumn) => {
if (!pager.lists?.length) return column.label;
let propWidth = column.label.length * 14 + 27;
let list = pager.lists.map(
(item: Object) => (item as any)[column.property]
let propWidth = column.label.length * 14 + 30;
let list = pager.lists.map((item: Object) =>
column.property.includes(
"."
) /**用于el-columnc传入深层次的对象属性如projectInfo.contract */
? (item as any)[column.property.split(".")[0]][
column.property.split(".")[1]
]
: (item as any)[column.property]
);
// start 遍历获取lits每一项所需要的宽度的最大值
const maxLength = list.reduce((max, str) => {
return Math.max(max, getWidthOfString(str));

View File

@ -39,17 +39,17 @@
<el-table-column type="selection" width="55" />
<el-table-column :render-header="pager.calcWidth" label="申请编号" prop="num" />
<el-table-column :render-header="pager.calcWidth" label="关联项目" prop="projectInfo.project_name" />
<el-table-column :render-header="pager.calcWidth" label="盖章申请类型" prop="types" width="120">
<el-table-column label="盖章申请类型" prop="types" width="120">
<template #default="{ row }">
<dict-value :options="dictData.apply_with_seal_type" :value="row.types" />
</template>
</el-table-column>
<el-table-column :render-header="pager.calcWidth" label="文件类型" prop="filetype">
<el-table-column label="文件类型" prop="filetype" :render-header="pager.calcWidth">
<template #default="{ row }">
<dict-value :options="dictData.apply_with_seal_file_type" :value="row.filetype" />
</template>
</el-table-column>
<el-table-column :render-header="pager.calcWidth" label="骑缝盖章" prop="ridingseam">
<el-table-column label="骑缝盖章" prop="ridingseam" :render-header="pager.calcWidth">
<template #default="{ row }">
<dict-value :options="dictData.isqfgz" :value="row.ridingseam" />
</template>
@ -57,28 +57,25 @@
<el-table-column :render-header="pager.calcWidth" label="印章名称" prop="name" show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="盖章次数" prop="frequency" show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="限制次数" prop="limit" show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="盖章人" prop="stampman" show-overflow-tooltip />
<!-- <el-table-column :render-header="pager.calcWidth" label="项目负责人" prop="project_director"
<el-table-column label="盖章人" prop="stampman" show-overflow-tooltip />
<!-- <el-table-column label="项目负责人" prop="project_director"
show-overflow-tooltip width="100" /> -->
<el-table-column :render-header="pager.calcWidth" label="盖章内容" prop="content" show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="印章是否外借" prop="loan" show-overflow-tooltip
width="120">
<el-table-column label="盖章内容" prop="content" show-overflow-tooltip width="100" />
<el-table-column label="印章是否外借" prop="loan" show-overflow-tooltip width="120">
<template #default="{ row }">
{{ row.loan == 1 ? '是' : "否" }}
</template>
</el-table-column>
<el-table-column :render-header="pager.calcWidth" label="印章借用日期" prop="borrow" show-overflow-tooltip
width="120" />
<el-table-column :render-header="pager.calcWidth" label="结束借用日期" prop="returndate" show-overflow-tooltip
width="120" />
<el-table-column :render-header="pager.calcWidth" label="实际借章日期" prop="sjborrow" show-overflow-tooltip
width="120" />
<el-table-column :render-header="pager.calcWidth" label="实际借章人" prop="sjborrower" show-overflow-tooltip
width="100" />
<el-table-column :render-header="pager.calcWidth" label="实际归还日期" prop="sjreturn" show-overflow-tooltip
width="120" />
<el-table-column :render-header="pager.calcWidth" label="实际归还人" prop="returnee" show-overflow-tooltip
width="100" />
<el-table-column :render-header="pager.calcWidth" label="印章借用日期" prop="borrow" show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="结束借用日期" prop="returndate"
show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="实际借章日期" prop="sjborrow"
show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="实际借章人" prop="sjborrower"
show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="实际归还日期" prop="sjreturn"
show-overflow-tooltip />
<el-table-column label="实际归还人" prop="returnee" show-overflow-tooltip />
<el-table-column label="操作" width="170" fixed="right" align="center">
<template #default="{ row }">
<el-button v-perms="['project_process_management.apply_with_seal/edit']" type="primary" link

View File

@ -19,6 +19,12 @@
@click="showDialog = true" />
</el-form-item>
</el-col>
<!-- <el-col :span="8">
<el-form-item label="合同类型">
<el-input v-model="formData.contract_type_text" clearable placeholder="系统自动获取" disabled />
</el-form-item>
</el-col> -->
<el-col :span="8">
<el-form-item label="咨询类型" prop="types">
@ -239,6 +245,8 @@ const formData = reactive({
project_name: "",
contract_id: "",
contract_name: "",
contract_type: "",
contract_type_text: "",
types: "",
industry: "",
province: "",
@ -282,7 +290,8 @@ const customEvent = (e) => {
formData.starting = e.start_date
formData.endtime = e.end_date
formData.principal_name = e.project_director
// formData.principal_name = e.project_director
formData.contract_type = e.contract_type
formData.contract_type_text = e.contract_type_text
formData.invest = e.project_money
formData.aunit_name = e.part_a_name
formData.aunit = e.part_a

View File

@ -19,9 +19,12 @@
<div class="mt-4">
<el-table :data="pager.lists" border>
<el-table-column type="selection" width="55" />
<el-table-column label="项目编号" prop="project_num" show-overflow-tooltip width="120" />
<el-table-column label="项目名称" prop="project_name" show-overflow-tooltip width="120" />
<el-table-column label="合同名称" prop="contract_name" show-overflow-tooltip width="120" />
<el-table-column label="项目编号" :render-header="pager.calcWidth" prop="project_num"
show-overflow-tooltip />
<el-table-column label="项目名称" :render-header="pager.calcWidth" prop="project_name"
show-overflow-tooltip />
<el-table-column label="合同名称" :render-header="pager.calcWidth" prop="contract_name"
show-overflow-tooltip />
<el-table-column label="专业" width="200">
<template #default="{ row }">
<el-table :data="row.children" :show-header="false">
@ -29,35 +32,35 @@
</el-table>
</template>
</el-table-column>
<el-table-column label="任务名称" prop="task_name" show-overflow-tooltip>
<el-table-column label="任务名称" prop="task_name" show-overflow-tooltip :render-header="pager.calcWidth">
<template #default="{ row }">
<el-table :data="row.children" :show-header="false">
<el-table-column prop="task_name" show-overflow-tooltip />
</el-table>
</template>
</el-table-column>
<el-table-column label="任务类型" prop="task_type" show-overflow-tooltip>
<el-table-column label="任务类型" prop="task_type" show-overflow-tooltip :render-header="pager.calcWidth">
<template #default="{ row }">
<el-table :data="row.children" :show-header="false">
<el-table-column prop="task_type" show-overflow-tooltip />
</el-table>
</template>
</el-table-column>
<el-table-column label="工程师" prop="engineer" show-overflow-tooltip>
<el-table-column label="工程师" prop="engineer" show-overflow-tooltip :render-header="pager.calcWidth">
<template #default="{ row }">
<el-table :data="row.children" :show-header="false">
<el-table-column prop="engineer" show-overflow-tooltip />
</el-table>
</template>
</el-table-column>
<el-table-column label="造价金额" prop="zj_amount" show-overflow-tooltip>
<el-table-column label="造价金额" prop="zj_amount" show-overflow-tooltip :render-header="pager.calcWidth">
<template #default="{ row }">
<el-table :data="row.children" :show-header="false">
<el-table-column prop="zj_amount" show-overflow-tooltip />
</el-table>
</template>
</el-table-column>
<el-table-column label="收款金额" prop="sk_amount" show-overflow-tooltip>
<el-table-column label="收款金额" prop="sk_amount" show-overflow-tooltip :render-header="pager.calcWidth">
<template #default="{ row }">
<el-table :data="row.children" :show-header="false">
@ -65,21 +68,21 @@
</el-table>
</template>
</el-table-column>
<el-table-column label="提成比例(%)" prop="tc_rate" show-overflow-tooltip>
<el-table-column label="提成比例(%)" prop="tc_rate" show-overflow-tooltip :render-header="pager.calcWidth">
<template #default="{ row }">
<el-table :data="row.children" :show-header="false">
<el-table-column prop="tc_rate" show-overflow-tooltip />
</el-table>
</template>
</el-table-column>
<el-table-column label="其他加减项" prop="other_fee" show-overflow-tooltip>
<el-table-column label="其他加减项" prop="other_fee" show-overflow-tooltip :render-header="pager.calcWidth">
<template #default="{ row }">
<el-table :data="row.children" :show-header="false">
<el-table-column prop="other_fee" show-overflow-tooltip />
</el-table>
</template>
</el-table-column>
<el-table-column label="应提成金额" prop="tc_amount" show-overflow-tooltip>
<el-table-column label="应提成金额" prop="tc_amount" show-overflow-toolti :render-header="pager.calcWidth">
<template #default="{ row }">
<el-table :data="row.children" :show-header="false">
<el-table-column prop="tc_amount" show-overflow-tooltip />

View File

@ -18,9 +18,12 @@
<div class="mt-4">
<el-table border :data="pager.lists">
<el-table-column type="selection" width="55" />
<el-table-column label="项目编号" prop="project_num" show-overflow-tooltip />
<el-table-column label="项目名称" prop="project_name" show-overflow-tooltip />
<el-table-column label="合同名称" prop="contract_name" show-overflow-tooltip />
<el-table-column label="项目编号" :render-header="pager.calcWidth" prop="project_num"
show-overflow-tooltip />
<el-table-column label="项目名称" :render-header="pager.calcWidth" prop="project_name"
show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="合同名称" prop="contract_name"
show-overflow-tooltip />
<el-table-column label="开始日期" prop="starting" show-overflow-tooltip />
<el-table-column label="结束日期" prop="endtime" show-overflow-tooltip />
<el-table-column label="咨询类型" prop="types" show-overflow-tooltip />

View File

@ -21,20 +21,32 @@
<div class="mt-4">
<el-table border :data="pager.lists">
<el-table-column type="selection" width="55" />
<el-table-column label="合同名称" prop="contract_name" show-overflow-tooltip />
<el-table-column label="合同编号" prop="contract_num" show-overflow-tooltip />
<el-table-column label="合同类型" prop="contract_type" show-overflow-tooltip />
<el-table-column label="甲方签约单位" prop="part_a" show-overflow-tooltip />
<el-table-column label="乙方签约单位" prop="part_b" show-overflow-tooltip />
<el-table-column label="合同签订日期" prop="create_time" show-overflow-tooltip />
<el-table-column label="合同计划开始日期" prop="start_date" show-overflow-tooltip />
<el-table-column label="合同计划结束日期" prop="end_date" show-overflow-tooltip />
<el-table-column label="工程总投资(万)" prop="project_money" show-overflow-tooltip />
<el-table-column label="合同签订金额" prop="sign_money" show-overflow-tooltip />
<el-table-column label="已开票金额" prop="total_invoice_amount" show-overflow-tooltip />
<el-table-column label="已到账金额" prop="total_refund_amount" show-overflow-tooltip />
<el-table-column label="已结算金额" prop="total_settlement_amount" show-overflow-tooltip />
<el-table-column label="应收账款" prop="total_collection_amount" show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="合同名称" prop="contract_name"
show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="合同编号" prop="contract_num"
show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="合同类型" prop="contract_type"
show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="甲方签约单位" prop="part_a" show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="乙方签约单位" prop="part_b" show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="合同签订日期" prop="create_time"
show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="合同计划开始日期" prop="start_date"
show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="合同计划结束日期" prop="end_date"
show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="工程总投资" prop="project_money"
show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="合同签订金额" prop="sign_money"
show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="已开票金额" prop="total_invoice_amount"
show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="已到账金额" prop="total_refund_amount"
show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="已结算金额" prop="total_settlement_amount"
show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="应收账款" prop="total_collection_amount"
show-overflow-tooltip />
</el-table>
</div>
<div class="flex justify-end mt-4">

View File

@ -20,26 +20,30 @@
<div class="mt-4">
<el-table border :data="pager.lists">
<el-table-column type="selection" width="55" />
<el-table-column label="项目编号" prop="project_num" show-overflow-tooltip />
<el-table-column label="项目名称" prop="project_name" show-overflow-tooltip />
<el-table-column label="关联合同" prop="contract_name" show-overflow-tooltip />
<el-table-column label="咨询类型" prop="types" show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="项目编号" prop="project_num"
show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="项目名称" prop="project_name"
show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="关联合同" prop="contract_name"
show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="咨询类型" prop="types" show-overflow-tooltip />
<el-table-column label="行业" prop="industry_nature" show-overflow-tooltip />
<el-table-column label="项目负责人" prop="project_director" show-overflow-tooltip />
<el-table-column label="委托单位" prop="aunit" show-overflow-tooltip />
<el-table-column label="所在省份" prop="province" show-overflow-tooltip />
<el-table-column label="所在市区" prop="city" show-overflow-tooltip />
<el-table-column label="项目负责人" :render-header="pager.calcWidth" prop="project_director"
show-overflow-tooltip />
<!-- <el-table-column label="委托单位" prop="aunit" show-overflow-tooltip /> -->
<el-table-column label="所在省份" prop="province" show-overflow-tooltip :render-header="pager.calcWidth" />
<el-table-column label="所在市区" prop="city" show-overflow-tooltip :render-header="pager.calcWidth" />
<!-- <el-table-column label="进度状态" prop="working_hours" show-overflow-tooltip /> -->
<el-table-column label="计划进度" prop="working_hours" show-overflow-tooltip align='center'>
<el-table-column label="计划开始日期" prop="starting" show-overflow-tooltip />
<el-table-column label="计划结束日期" prop="endtime" show-overflow-tooltip />
<el-table-column label="计划工期(天)" prop="jhgq" show-overflow-tooltip />
<el-table-column label="计划开始日期" prop="starting" show-overflow-tooltip width="120" />
<el-table-column label="计划结束日期" prop="endtime" show-overflow-tooltip width="120" />
<el-table-column label="计划工期" prop="jhgq" show-overflow-tooltip width="100" />
</el-table-column>
<el-table-column label="实际进度" prop="working_hours" show-overflow-tooltip align='center'>
<el-table-column label="实际开始日期" prop="actual_starting" show-overflow-tooltip />
<el-table-column label="实际结束日期" prop="actual_endtime" show-overflow-tooltip />
<el-table-column label="实际工期(天)" prop="duration" show-overflow-tooltip />
<el-table-column label="已完成进度(%)" prop="done_progress" show-overflow-tooltip />
<el-table-column label="实际开始日期" prop="actual_starting" show-overflow-tooltip width="120" />
<el-table-column label="实际结束日期" prop="actual_endtime" show-overflow-tooltip width="120" />
<el-table-column label="实际工期" prop="duration" show-overflow-tooltip width="120" />
<el-table-column label="已完成进度(%)" prop="done_progress" show-overflow-tooltip width="120" />
</el-table-column>
</el-table>
</div>

View File

@ -0,0 +1,265 @@
<template>
<div class="edit-popup">
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
<el-row>
<el-col :span="8">
<el-form-item label="业务机会id" prop="business_opportunity_id">
<el-input v-model="formData.business_opportunity_id" clearable placeholder="请输入业务机会id" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="招标方式" prop="bid_type">
<el-input v-model="formData.bid_type" clearable placeholder="请输入招标方式" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="投标性质" prop="bid__nature">
<el-input v-model="formData.bid__nature" clearable placeholder="请输入投标性质" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="投标项目编号" prop="bid_code">
<el-input v-model="formData.bid_code" clearable placeholder="请输入投标项目编号" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="投标保证金" prop="bid_margin">
<el-input v-model="formData.bid_margin" clearable placeholder="请输入投标保证金" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="报名和标书费" prop="bid_amount">
<el-input v-model="formData.bid_amount" clearable placeholder="请输入报名和标书费" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="报价范围" prop="quotation_amount">
<el-input v-model="formData.quotation_amount" clearable placeholder="请输入报价范围" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="报名截止日期" prop="end_date">
<el-input v-model="formData.end_date" clearable placeholder="请输入报名截止日期" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="投标日期" prop="bid_date">
<el-input v-model="formData.bid_date" clearable placeholder="请输入投标日期" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="服务工期" prop="service_duration">
<el-input v-model="formData.service_duration" clearable placeholder="请输入服务工期" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="投标地点" prop="bid_address">
<el-input v-model="formData.bid_address" clearable placeholder="请输入投标地点" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="招标代理单位" prop="bid_agency">
<el-input v-model="formData.bid_agency" clearable placeholder="请输入招标代理单位" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="联系地址" prop="bid_agency_address">
<el-input v-model="formData.bid_agency_address" clearable placeholder="请输入联系地址" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="联系人" prop="bid_agency_contacts">
<el-input v-model="formData.bid_agency_contacts" clearable placeholder="请输入联系人" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="联系方式" prop="bid_agency_telephone">
<el-input v-model="formData.bid_agency_telephone" clearable placeholder="请输入联系方式" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="附件" prop="annex">
<upload-annex :annex="formData.annex"></upload-annex>
</el-form-item>
</el-col>
</el-row>
</el-form>
</popup>
</div>
</template>
<script lang="ts" setup name="marketingBidEvaluationEdit">
import type { FormInstance } from 'element-plus'
import Popup from '@/components/popup/index.vue'
import { apiMarketingBidEvaluationAdd, apiMarketingBidEvaluationEdit, apiMarketingBidEvaluationDetail } from '@/api/marketing_bid_evaluation'
import type { PropType } from 'vue'
defineProps({
dictData: {
type: Object as PropType<Record<string, any[]>>,
default: () => ({})
}
})
const emit = defineEmits(['success', 'close'])
const formRef = shallowRef<FormInstance>()
const popupRef = shallowRef<InstanceType<typeof Popup>>()
const mode = ref('add')
//
const popupTitle = computed(() => {
return mode.value == 'edit' ? '编辑市场经营--投标管理--投标评审' : '新增市场经营--投标管理--投标评审'
})
//
const formData = reactive({
id: '',
business_opportunity_id: '',
bid_type: '',
bid__nature: '',
bid_code: '',
bid_margin: '',
bid_amount: '',
quotation_amount: '',
end_date: '',
bid_date: '',
service_duration: '',
bid_address: '',
bid_agency: '',
bid_agency_address: '',
bid_agency_contacts: '',
bid_agency_telephone: '',
annex: '',
})
//
const formRules = reactive<any>({
business_opportunity_id: [{
required: true,
message: '请输入业务机会id',
trigger: ['blur']
}],
bid_type: [{
required: true,
message: '请输入招标方式',
trigger: ['blur']
}],
bid__nature: [{
required: true,
message: '请输入投标性质',
trigger: ['blur']
}],
bid_code: [{
required: true,
message: '请输入投标项目编号',
trigger: ['blur']
}],
bid_margin: [{
required: true,
message: '请输入投标保证金',
trigger: ['blur']
}],
bid_amount: [{
required: true,
message: '请输入报名和标书费',
trigger: ['blur']
}],
quotation_amount: [{
required: true,
message: '请输入报价范围',
trigger: ['blur']
}],
end_date: [{
required: true,
message: '请输入报名截止日期',
trigger: ['blur']
}],
bid_date: [{
required: true,
message: '请输入投标日期',
trigger: ['blur']
}],
service_duration: [{
required: true,
message: '请输入服务工期',
trigger: ['blur']
}],
bid_address: [{
required: true,
message: '请输入投标地点',
trigger: ['blur']
}],
bid_agency: [{
required: true,
message: '请输入招标代理单位',
trigger: ['blur']
}],
bid_agency_address: [{
required: true,
message: '请输入联系地址',
trigger: ['blur']
}],
bid_agency_contacts: [{
required: true,
message: '请输入联系人',
trigger: ['blur']
}],
bid_agency_telephone: [{
required: true,
message: '请输入联系方式',
trigger: ['blur']
}]
})
//
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]
}
}
}
const getDetail = async (row: Record<string, any>) => {
const data = await apiMarketingBidEvaluationDetail({
id: row.id
})
setFormData(data)
}
//
const handleSubmit = async () => {
await formRef.value?.validate()
const data = { ...formData, }
mode.value == 'edit'
? await apiMarketingBidEvaluationEdit(data)
: await apiMarketingBidEvaluationAdd(data)
popupRef.value?.close()
emit('success')
}
//
const open = (type = 'add') => {
mode.value = type
popupRef.value?.open()
}
//
const handleClose = () => {
emit('close')
}
defineExpose({
open,
setFormData,
getDetail
})
</script>

View File

@ -0,0 +1,138 @@
<template>
<div>
<el-card class="!border-none mb-4" shadow="never">
<el-form class="mb-[-16px]" :model="queryParams" inline>
<el-form-item label="业务机会id" prop="business_opportunity_id">
<el-input class="w-[280px]" v-model="queryParams.business_opportunity_id" clearable
placeholder="请输入业务机会id" />
</el-form-item>
<el-form-item label="招标方式" prop="bid_type">
<el-input class="w-[280px]" v-model="queryParams.bid_type" clearable placeholder="请输入招标方式" />
</el-form-item>
<el-form-item label="投标性质" prop="bid__nature">
<el-input class="w-[280px]" v-model="queryParams.bid__nature" clearable placeholder="请输入投标性质" />
</el-form-item>
<el-form-item label="投标项目编号" prop="bid_code">
<el-input class="w-[280px]" v-model="queryParams.bid_code" clearable placeholder="请输入投标项目编号" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="resetPage">查询</el-button>
<el-button @click="resetParams">重置</el-button>
</el-form-item>
</el-form>
</el-card>
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
<el-button v-perms="['marketing.marketing_bid_evaluation/add']" type="primary" @click="handleAdd">
<template #icon>
<icon name="el-icon-Plus" />
</template>
新增
</el-button>
<el-button v-perms="['marketing.marketing_bid_evaluation/delete']" :disabled="!selectData.length"
@click="handleDelete(selectData)">
删除
</el-button>
<div class="mt-4">
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" />
<el-table-column label="业务机会id" prop="business_opportunity_id" show-overflow-tooltip />
<el-table-column label="招标方式" prop="bid_type" show-overflow-tooltip />
<el-table-column label="投标性质" prop="bid__nature" show-overflow-tooltip />
<el-table-column label="投标项目编号" prop="bid_code" show-overflow-tooltip />
<el-table-column label="投标保证金" prop="bid_margin" show-overflow-tooltip />
<el-table-column label="报名和标书费" prop="bid_amount" show-overflow-tooltip />
<el-table-column label="报价范围" prop="quotation_amount" show-overflow-tooltip />
<el-table-column label="报名截止日期" prop="end_date" show-overflow-tooltip />
<el-table-column label="投标日期" prop="bid_date" show-overflow-tooltip />
<el-table-column label="服务工期" prop="service_duration" show-overflow-tooltip />
<el-table-column label="投标地点" prop="bid_address" show-overflow-tooltip />
<el-table-column label="招标代理单位" prop="bid_agency" show-overflow-tooltip />
<el-table-column label="联系地址" prop="bid_agency_address" show-overflow-tooltip />
<el-table-column label="联系人" prop="bid_agency_contacts" show-overflow-tooltip />
<el-table-column label="联系方式" prop="bid_agency_telephone" show-overflow-tooltip />
<el-table-column label="附件" prop="annex" show-overflow-tooltip />
<el-table-column label="操作" width="120" fixed="right">
<template #default="{ row }">
<el-button v-perms="['marketing.marketing_bid_evaluation/edit']" type="primary" link
@click="handleEdit(row)">
编辑
</el-button>
<el-button v-perms="['marketing.marketing_bid_evaluation/delete']" type="danger" link
@click="handleDelete(row.id)">
删除
</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="flex mt-4 justify-end">
<pagination v-model="pager" @change="getLists" />
</div>
</el-card>
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
</div>
</template>
<script lang="ts" setup name="marketingBidEvaluationLists">
import { usePaging } from '@/hooks/usePaging'
import { useDictData } from '@/hooks/useDictOptions'
import { apiMarketingBidEvaluationLists, apiMarketingBidEvaluationDelete } from '@/api/marketing_bid_evaluation'
import { timeFormat } from '@/utils/util'
import feedback from '@/utils/feedback'
import EditPopup from './edit.vue'
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
//
const showEdit = ref(false)
//
const queryParams = reactive({
business_opportunity_id: '',
bid_type: '',
bid__nature: '',
bid_code: ''
})
//
const selectData = ref<any[]>([])
//
const handleSelectionChange = (val: any[]) => {
selectData.value = val.map(({ id }) => id)
}
//
const { dictData } = useDictData('')
//
const { pager, getLists, resetParams, resetPage } = usePaging({
fetchFun: apiMarketingBidEvaluationLists,
params: queryParams
})
//
const handleAdd = async () => {
showEdit.value = true
await nextTick()
editRef.value?.open('add')
}
//
const handleEdit = async (data: any) => {
showEdit.value = true
await nextTick()
editRef.value?.open('edit')
editRef.value?.setFormData(data)
}
//
const handleDelete = async (id: number | any[]) => {
await feedback.confirm('确定要删除?')
await apiMarketingBidEvaluationDelete({ id })
getLists()
}
getLists()
</script>

View File

@ -48,9 +48,9 @@
<div class="mt-4">
<el-table :data="pager.lists" @selection-change="handleSelectionChange" border>
<el-table-column type="selection" width="55" />
<el-table-column label="机构名称" prop="org_name" show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="机构名称" prop="org_name" show-overflow-tooltip />
<el-table-column label="法定代表人" prop="fddbr" show-overflow-tooltip />
<el-table-column label="联系电话" prop="telephone" show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="联系电话" prop="telephone" show-overflow-tooltip />
<el-table-column label="机构注册地址" prop="jgzcdz" show-overflow-tooltip />
<el-table-column label="备案开始期" prop="baksq" show-overflow-tooltip />
<el-table-column label="备案结束期" prop="bajsq" show-overflow-tooltip />

View File

@ -0,0 +1,268 @@
<template>
<div class="edit-popup">
<popup ref="popupRef" :title="popupTitle" :async="true" width="550px" @confirm="handleSubmit" @close="handleClose">
<el-form ref="formRef" :model="formData" label-width="90px" :rules="formRules">
<el-form-item label="项目名称" prop="project_name">
<el-input v-model="formData.project_name" clearable placeholder="请输入项目名称" />
</el-form-item>
<el-form-item label="项目编号" prop="project_code">
<el-input v-model="formData.project_code" clearable placeholder="请输入项目编号" />
</el-form-item>
<el-form-item label="预计招标日期" prop="bid_date">
<el-input v-model="formData.bid_date" clearable placeholder="请输入预计招标日期" />
</el-form-item>
<el-form-item label="建设单位" prop="custom_id">
<el-input v-model="formData.custom_id" clearable placeholder="请输入建设单位" />
</el-form-item>
<el-form-item label="建设管理单位" prop="management_company">
<el-input v-model="formData.management_company" clearable placeholder="请输入建设管理单位" />
</el-form-item>
<el-form-item label="业务性质" prop="business_nature">
<el-input v-model="formData.business_nature" clearable placeholder="请输入业务性质" />
</el-form-item>
<el-form-item label="行业性质" prop="industry_nature">
<el-input v-model="formData.industry_nature" clearable placeholder="请输入行业性质" />
</el-form-item>
<el-form-item label="消息来源" prop="info_sources">
<el-input v-model="formData.info_sources" clearable placeholder="请输入消息来源" />
</el-form-item>
<el-form-item label="资金来源" prop="fund_sources">
<el-input v-model="formData.fund_sources" clearable placeholder="请输入资金来源" />
</el-form-item>
<el-form-item label="建设区域" prop="const_area">
<el-input v-model="formData.const_area" clearable placeholder="请输入建设区域" />
</el-form-item>
<el-form-item label="项目地点" prop="project_address">
<el-input v-model="formData.project_address" clearable placeholder="请输入项目地点" />
</el-form-item>
<el-form-item label="工程总投资" prop="total_investment">
<el-input v-model="formData.total_investment" clearable placeholder="请输入工程总投资" />
</el-form-item>
<el-form-item label="建安投资额" prop="jianan_investment">
<el-input v-model="formData.jianan_investment" clearable placeholder="请输入建安投资额" />
</el-form-item>
<el-form-item label="工程概况" prop="project_overview">
<el-input v-model="formData.project_overview" clearable placeholder="请输入工程概况" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="formData.remark" clearable placeholder="请输入备注" />
</el-form-item>
<el-form-item label="负责人" prop="head">
<el-input v-model="formData.head" clearable placeholder="请输入负责人" />
</el-form-item>
<el-form-item label="负责部门" prop="dept">
<el-input v-model="formData.dept" clearable placeholder="请输入负责部门" />
</el-form-item>
<el-form-item label="分管领导" prop="leader">
<el-input v-model="formData.leader" clearable placeholder="请输入分管领导" />
</el-form-item>
<el-form-item label="联系人信息" prop="contacts">
<el-input v-model="formData.contacts" clearable placeholder="请输入联系人信息" />
</el-form-item>
<el-form-item label="附件" prop="annex">
<el-input v-model="formData.annex" clearable placeholder="请输入附件" />
</el-form-item>
</el-form>
</popup>
</div>
</template>
<script lang="ts" setup name="marketingBusinessOpportunityEdit">
import type { FormInstance } from 'element-plus'
import Popup from '@/components/popup/index.vue'
import { apiMarketingBusinessOpportunityAdd, apiMarketingBusinessOpportunityEdit, apiMarketingBusinessOpportunityDetail } from '@/api/marketing_business_opportunity'
import { timeFormat } from '@/utils/util'
import type { PropType } from 'vue'
defineProps({
dictData: {
type: Object as PropType<Record<string, any[]>>,
default: () => ({})
}
})
const emit = defineEmits(['success', 'close'])
const formRef = shallowRef<FormInstance>()
const popupRef = shallowRef<InstanceType<typeof Popup>>()
const mode = ref('add')
//
const popupTitle = computed(() => {
return mode.value == 'edit' ? '编辑市场经营--投标管理--业务机会' : '新增市场经营--投标管理--业务机会'
})
//
const formData = reactive({
id: '',
project_name: '',
project_code: '',
bid_date: '',
custom_id: '',
management_company: '',
business_nature: '',
industry_nature: '',
info_sources: '',
fund_sources: '',
const_area: '',
project_address: '',
total_investment: '',
jianan_investment: '',
project_overview: '',
remark: '',
head: '',
dept: '',
leader: '',
contacts: '',
annex: '',
})
//
const formRules = reactive<any>({
project_name: [{
required: true,
message: '请输入项目名称',
trigger: ['blur']
}],
project_code: [{
required: true,
message: '请输入项目编号',
trigger: ['blur']
}],
bid_date: [{
required: true,
message: '请输入预计招标日期',
trigger: ['blur']
}],
custom_id: [{
required: true,
message: '请输入建设单位',
trigger: ['blur']
}],
management_company: [{
required: true,
message: '请输入建设管理单位',
trigger: ['blur']
}],
business_nature: [{
required: true,
message: '请输入业务性质',
trigger: ['blur']
}],
industry_nature: [{
required: true,
message: '请输入行业性质',
trigger: ['blur']
}],
info_sources: [{
required: true,
message: '请输入消息来源',
trigger: ['blur']
}],
fund_sources: [{
required: true,
message: '请输入资金来源',
trigger: ['blur']
}],
const_area: [{
required: true,
message: '请输入建设区域',
trigger: ['blur']
}],
project_address: [{
required: true,
message: '请输入项目地点',
trigger: ['blur']
}],
total_investment: [{
required: true,
message: '请输入工程总投资',
trigger: ['blur']
}],
jianan_investment: [{
required: true,
message: '请输入建安投资额',
trigger: ['blur']
}],
project_overview: [{
required: true,
message: '请输入工程概况',
trigger: ['blur']
}],
remark: [{
required: true,
message: '请输入备注',
trigger: ['blur']
}],
head: [{
required: true,
message: '请输入负责人',
trigger: ['blur']
}],
dept: [{
required: true,
message: '请输入负责部门',
trigger: ['blur']
}],
leader: [{
required: true,
message: '请输入分管领导',
trigger: ['blur']
}],
contacts: [{
required: true,
message: '请输入联系人信息',
trigger: ['blur']
}]
})
//
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]
}
}
}
const getDetail = async (row: Record<string, any>) => {
const data = await apiMarketingBusinessOpportunityDetail({
id: row.id
})
setFormData(data)
}
//
const handleSubmit = async () => {
await formRef.value?.validate()
const data = { ...formData, }
mode.value == 'edit'
? await apiMarketingBusinessOpportunityEdit(data)
: await apiMarketingBusinessOpportunityAdd(data)
popupRef.value?.close()
emit('success')
}
//
const open = (type = 'add') => {
mode.value = type
popupRef.value?.open()
}
//
const handleClose = () => {
emit('close')
}
defineExpose({
open,
setFormData,
getDetail
})
</script>

View File

@ -0,0 +1,161 @@
<template>
<div>
<el-card class="!border-none mb-4" shadow="never">
<el-form class="mb-[-16px]" :model="queryParams" label-width="">
<el-form-item label="项目名称" prop="project_name">
<el-input class="w-[280px]" v-model="queryParams.project_name" clearable placeholder="请输入项目名称" />
</el-form-item>
<el-form-item label="项目编号" prop="project_code">
<el-input class="w-[280px]" v-model="queryParams.project_code" clearable placeholder="请输入项目编号" />
</el-form-item>
<el-form-item label="建设单位" prop="custom_id">
<el-input class="w-[280px]" v-model="queryParams.custom_id" clearable placeholder="请输入建设单位" />
</el-form-item>
<el-form-item label="业务性质" prop="business_nature">
<el-input class="w-[280px]" v-model="queryParams.business_nature" clearable placeholder="请输入业务性质" />
</el-form-item>
<el-form-item label="行业性质" prop="industry_nature">
<el-input class="w-[280px]" v-model="queryParams.industry_nature" clearable placeholder="请输入行业性质" />
</el-form-item>
<el-form-item label="消息来源" prop="info_sources">
<el-input class="w-[280px]" v-model="queryParams.info_sources" clearable placeholder="请输入消息来源" />
</el-form-item>
<el-form-item label="资金来源" prop="fund_sources">
<el-input class="w-[280px]" v-model="queryParams.fund_sources" clearable placeholder="请输入资金来源" />
</el-form-item>
<el-form-item label="建设区域" prop="const_area">
<el-input class="w-[280px]" v-model="queryParams.const_area" clearable placeholder="请输入建设区域" />
</el-form-item>
<el-form-item label="工程总投资" prop="total_investment">
<el-input class="w-[280px]" v-model="queryParams.total_investment" clearable placeholder="请输入工程总投资" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="resetPage">查询</el-button>
<el-button @click="resetParams">重置</el-button>
</el-form-item>
</el-form>
</el-card>
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
<el-button v-perms="['marketing.marketing_business_opportunity/add']" type="primary" @click="handleAdd">
<template #icon>
<icon name="el-icon-Plus" />
</template>
新增
</el-button>
<el-button v-perms="['marketing.marketing_business_opportunity/delete']" :disabled="!selectData.length"
@click="handleDelete(selectData)">
删除
</el-button>
<div class="mt-4">
<el-table :data="pager.lists" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" />
<el-table-column label="项目名称" prop="project_name" show-overflow-tooltip />
<el-table-column label="项目编号" prop="project_code" show-overflow-tooltip />
<el-table-column label="预计招标日期" prop="bid_date" show-overflow-tooltip />
<el-table-column label="建设单位" prop="custom_id" show-overflow-tooltip />
<el-table-column label="建设管理单位" prop="management_company" show-overflow-tooltip />
<el-table-column label="业务性质" prop="business_nature" show-overflow-tooltip />
<el-table-column label="行业性质" prop="industry_nature" show-overflow-tooltip />
<el-table-column label="消息来源" prop="info_sources" show-overflow-tooltip />
<el-table-column label="资金来源" prop="fund_sources" show-overflow-tooltip />
<el-table-column label="建设区域" prop="const_area" show-overflow-tooltip />
<el-table-column label="项目地点" prop="project_address" show-overflow-tooltip />
<el-table-column label="工程总投资" prop="total_investment" show-overflow-tooltip />
<el-table-column label="建安投资额" prop="jianan_investment" show-overflow-tooltip />
<el-table-column label="工程概况" prop="project_overview" show-overflow-tooltip />
<el-table-column label="备注" prop="remark" show-overflow-tooltip />
<el-table-column label="负责人" prop="head" show-overflow-tooltip />
<el-table-column label="负责部门" prop="dept" show-overflow-tooltip />
<el-table-column label="分管领导" prop="leader" show-overflow-tooltip />
<el-table-column label="联系人信息" prop="contacts" show-overflow-tooltip />
<el-table-column label="附件" prop="annex" show-overflow-tooltip />
<el-table-column label="操作" width="120" fixed="right">
<template #default="{ row }">
<el-button v-perms="['marketing.marketing_business_opportunity/edit']" type="primary" link
@click="handleEdit(row)">
编辑
</el-button>
<el-button v-perms="['marketing.marketing_business_opportunity/delete']" type="danger" link
@click="handleDelete(row.id)">
删除
</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="flex mt-4 justify-end">
<pagination v-model="pager" @change="getLists" />
</div>
</el-card>
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
</div>
</template>
<script lang="ts" setup name="marketingBusinessOpportunityLists">
import { usePaging } from '@/hooks/usePaging'
import { useDictData } from '@/hooks/useDictOptions'
import { apiMarketingBusinessOpportunityLists, apiMarketingBusinessOpportunityDelete } from '@/api/marketing_business_opportunity'
import { timeFormat } from '@/utils/util'
import feedback from '@/utils/feedback'
import EditPopup from './edit.vue'
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
//
const showEdit = ref(false)
//
const queryParams = reactive({
project_name: '',
project_code: '',
custom_id: '',
business_nature: '',
industry_nature: '',
info_sources: '',
fund_sources: '',
const_area: '',
total_investment: ''
})
//
const selectData = ref<any[]>([])
//
const handleSelectionChange = (val: any[]) => {
selectData.value = val.map(({ id }) => id)
}
//
const { dictData } = useDictData('')
//
const { pager, getLists, resetParams, resetPage } = usePaging({
fetchFun: apiMarketingBusinessOpportunityLists,
params: queryParams
})
//
const handleAdd = async () => {
showEdit.value = true
await nextTick()
editRef.value?.open('add')
}
//
const handleEdit = async (data: any) => {
showEdit.value = true
await nextTick()
editRef.value?.open('edit')
editRef.value?.setFormData(data)
}
//
const handleDelete = async (id: number | any[]) => {
await feedback.confirm('确定要删除?')
await apiMarketingBusinessOpportunityDelete({ id })
getLists()
}
getLists()
</script>

View File

@ -44,8 +44,9 @@
<div class="mt-4">
<el-table :data="pager.lists" @selection-change="handleSelectionChange" border>
<el-table-column type="selection" width="55" />
<el-table-column label="合同名称" prop="contract_name" show-overflow-tooltip />
<el-table-column label="回访编号" prop="code" show-overflow-tooltip />
<el-table-column label="合同名称" :render-header="pager.calcWidth" prop="contract_name"
show-overflow-tooltip />
<el-table-column label="回访编号" :render-header="pager.calcWidth" prop="code" show-overflow-tooltip />
<el-table-column label="回访方式" prop="return_visit_type_text" show-overflow-tooltip />
<el-table-column label="客户名称" prop="custom_name" show-overflow-tooltip />
<el-table-column label="客户负责人" prop="custom_head" show-overflow-tooltip />

View File

@ -43,15 +43,19 @@
<div class="mt-4">
<el-table :data="pager.lists" @selection-change="handleSelectionChange" border>
<el-table-column type="selection" width="55" />
<el-table-column label="协议名称" prop="contract_name" show-overflow-tooltip />
<el-table-column label="协议编号" prop="contract_code" show-overflow-tooltip />
<el-table-column label="甲方单位" prop="part_a_name" show-overflow-tooltip />
<el-table-column label="协议名称" :render-header="pager.calcWidth" prop="contract_name"
show-overflow-tooltip />
<el-table-column label="协议编号" :render-header="pager.calcWidth" prop="contract_code"
show-overflow-tooltip />
<el-table-column label="甲方单位" :render-header="pager.calcWidth" prop="part_a_name"
show-overflow-tooltip /> :render-header="pager.calcWidth"
<el-table-column label="乙方单位" prop="part_b" show-overflow-tooltip />
<el-table-column label="协议性质" prop="agreement_nature_text" show-overflow-tooltip />
<el-table-column label="业务性质" prop="business_nature_text" show-overflow-tooltip />
<el-table-column label="签订部门" prop="signed_dept_name" show-overflow-tooltip />
<el-table-column label="签订负责人" prop="signed_head_name" show-overflow-tooltip />
<el-table-column label="签订时间" prop="create_time" show-overflow-tooltip />
<el-table-column label="签订时间" :render-header="pager.calcWidth" prop="create_time"
show-overflow-tooltip />
<el-table-column label="审核状态" prop="approve_status_text" show-overflow-tooltip />
<el-table-column label="移交状态" prop="review_status_text" show-overflow-tooltip />
<el-table-column label="操作" width="170" fixed="right">

View File

@ -34,7 +34,8 @@
<div class="mt-4">
<el-table :data="pager.lists" @selection-change="handleSelectionChange" border>
<el-table-column type="selection" width="55" />
<el-table-column label="合同名称" prop="contract_name" show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="合同名称" prop="contract_name"
show-overflow-tooltip />
<el-table-column label="录入人" prop="create_user" show-overflow-tooltip />
<el-table-column label="录入日期" prop="create_time" show-overflow-tooltip />
<el-table-column label="备注" prop="remark" show-overflow-tooltip />

View File

@ -38,7 +38,8 @@
<div class="mt-4">
<el-table :data="pager.lists" @selection-change="handleSelectionChange" border>
<el-table-column type="selection" width="55" />
<el-table-column label="合同名称" prop="contract_name" show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="合同名称" prop="contract_name"
show-overflow-tooltip />
<el-table-column label="合同编号" prop="contract_code" show-overflow-tooltip />
<el-table-column label="建设区域" prop="const_area" show-overflow-tooltip />
<el-table-column label="业务性质" prop="business_nature" show-overflow-tooltip />

View File

@ -34,17 +34,27 @@
<div class="mt-4">
<el-table :data="pager.lists" @selection-change="handleSelectionChange" border>
<el-table-column type="selection" width="55" />
<el-table-column label="协议名称" prop="contract_name" show-overflow-tooltip />
<el-table-column label="协议编号" prop="contract_code" show-overflow-tooltip />
<el-table-column label="关联主合同" prop="supplementary_agreement_name" show-overflow-tooltip />
<el-table-column label="甲方单位" prop="part_a_name" show-overflow-tooltip />
<el-table-column label="乙方单位" prop="part_b" show-overflow-tooltip />
<el-table-column label="签订金额" prop="signed_amount" show-overflow-tooltip />
<el-table-column label="签订负责人" prop="signed_head_name" show-overflow-tooltip />
<el-table-column label="业务性质" prop="business_nature_text" show-overflow-tooltip />
<el-table-column label="签订时间" prop="create_time" show-overflow-tooltip />
<el-table-column label="审核状态" prop="approve_status_text" show-overflow-tooltip />
<el-table-column label="移交状态" prop="review_status_text" show-overflow-tooltip />
<el-table-column label="协议名称" :render-header="pager.calcWidth" prop="contract_name"
show-overflow-tooltip />
<el-table-column label="协议编号" :render-header="pager.calcWidth" prop="contract_code"
show-overflow-tooltip />
<el-table-column label="关联主合同" :render-header="pager.calcWidth" prop="supplementary_agreement_name"
show-overflow-tooltip />
<el-table-column label="甲方单位" :render-header="pager.calcWidth" prop="part_a_name"
show-overflow-tooltip />
<el-table-column label="乙方单位" :render-header="pager.calcWidth" prop="part_b" show-overflow-tooltip />
<el-table-column label="签订金额" :render-header="pager.calcWidth" prop="signed_amount"
show-overflow-tooltip />
<el-table-column label="签订负责人" :render-header="pager.calcWidth" prop="signed_head_name"
show-overflow-tooltip />
<el-table-column label="业务性质" :render-header="pager.calcWidth" prop="business_nature_text"
show-overflow-tooltip />
<el-table-column label="签订时间" :render-header="pager.calcWidth" prop="create_time"
show-overflow-tooltip />
<el-table-column label="审核状态" :render-header="pager.calcWidth" prop="approve_status_text"
show-overflow-tooltip />
<el-table-column label="移交状态" :render-header="pager.calcWidth" prop="review_status_text"
show-overflow-tooltip />
<el-table-column label="操作" width="170" fixed="right">
<template #default="{ row }">
<el-button v-perms="['marketing.marketing_supplementary_agreement/edit']" type="primary" link

View File

@ -1,56 +1,81 @@
<template>
<div>
<el-card class="!border-none mb-4" shadow="never">
<el-form class="mb-[-16px]" :model="queryParams" inline label-width="auto">
<el-form-item label="所属项目" prop="project_id">
<selectRemote :formData="queryParams" model="project_id" :api="apiProjectSearch" />
</el-form-item>
<el-form-item label="客户名称" prop="custom_name">
<el-input class="w-[280px]" v-model="queryParams.custom_name" clearable placeholder="请输入客户名称" />
</el-form-item>
<el-form-item label="跟进类型" prop="follow_type">
<el-select v-model="queryParams.follow_type" class="w-[280px]" clearable placeholder="请选择跟进类型">
<el-option label="全部" value=""></el-option>
<el-option v-for="(item, index) in dictData.follow_type" :key="index" :label="item.name"
:value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="项目把握度" prop="project_assurance">
<el-select v-model="queryParams.project_assurance" class="w-[280px]" clearable placeholder="请选择项目把握度">
<el-form class="mb-[-16px]" :model="queryParams" label-width="100px">
<el-row>
<el-col :span="6">
<el-form-item label="所属项目" prop="project_id">
<selectRemote :formData="queryParams" model="project_id" :api="apiProjectSearch" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="客户名称" prop="custom_name">
<el-input v-model="queryParams.custom_name" clearable placeholder="请输入客户名称" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="跟进类型" prop="follow_type">
<el-select class="flex-1" v-model="queryParams.follow_type" clearable placeholder="请选择跟进类型">
<el-option label="全部" value=""></el-option>
<el-option v-for="(item, index) in dictData.follow_type" :key="index" :label="item.name"
:value="item.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="项目把握度" prop="project_assurance">
<el-select class="flex-1" v-model="queryParams.project_assurance" clearable
placeholder="请选择项目把握度">
<el-option v-for="(item, index) in dictData.project_assurance" :key="index"
:label="item.name" :value="item.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="跟进状态" prop="follow_status">
<el-select class="flex-1" v-model="queryParams.follow_status" clearable placeholder="请选择跟进状态">
<el-option v-for="(item, index) in dictData.follow_status" :key="index" :label="item.name"
:value="item.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="跟进阶段" prop="follow_stage">
<el-select class="flex-1" v-model="queryParams.follow_stage" clearable placeholder="请输入跟进阶段">
<el-option v-for="(item, index) in dictData.follow_stage" :key="index" :label="item.name"
:value="item.value" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="主题" prop="theme">
<el-input v-model="queryParams.theme" clearable placeholder="请输入主题" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="联系人" prop="contacts">
<el-input v-model="queryParams.contacts" clearable placeholder="请输入联系人" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="联系方式" prop="contact_information">
<el-input v-model="queryParams.contact_information" clearable placeholder="请输入联系方式" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="执行人" prop="executor">
<el-input v-model="queryParams.executor" clearable placeholder="请输入执行人" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item>
<el-button type="primary" @click="resetPage">查询</el-button>
<el-button @click="resetParams">重置</el-button>
</el-form-item>
</el-col>
</el-row>
<el-option v-for="(item, index) in dictData.project_assurance" :key="index" :label="item.name"
:value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="跟进状态" prop="follow_status">
<el-select v-model="queryParams.follow_status" class="w-[280px]" clearable placeholder="请选择跟进状态">
<el-option v-for="(item, index) in dictData.follow_status" :key="index" :label="item.name"
:value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="跟进阶段" prop="follow_stage">
<el-select v-model="queryParams.follow_stage" class="w-[280px]" clearable placeholder="请输入跟进阶段">
<el-option v-for="(item, index) in dictData.follow_stage" :key="index" :label="item.name"
:value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="主题" prop="theme">
<el-input v-model="queryParams.theme" class="w-[280px]" clearable placeholder="请输入主题" />
</el-form-item>
<el-form-item label="联系人" prop="contacts">
<el-input class="w-[280px]" v-model="queryParams.contacts" clearable placeholder="请输入联系人" />
</el-form-item>
<el-form-item label="联系方式" prop="contact_information">
<el-input class="w-[280px]" v-model="queryParams.contact_information" clearable placeholder="请输入联系方式" />
</el-form-item>
<el-form-item label="执行人" prop="executor">
<el-input class="w-[280px]" v-model="queryParams.executor" clearable placeholder="请输入执行人" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="resetPage">查询</el-button>
<el-button @click="resetParams">重置</el-button>
</el-form-item>
</el-form>
</el-card>
<el-card class="!border-none" v-loading="pager.loading" shadow="never">

View File

@ -12,47 +12,49 @@
<el-col :span="8">
<el-form-item label="项目编号">
<el-input v-model="formData.project_num" readonly clearable disabled />
<el-input v-model="formData.project_num" readonly clearable disabled placeholder="系统自动获取" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合同名称">
<el-input v-model="formData.contract_name" readonly clearable disabled />
<el-input v-model="formData.contract_name" readonly clearable disabled placeholder="系统自动获取" />
</el-form-item>
</el-col>
<el-col :span="8">
<!-- <el-col :span="8">
<el-form-item label="合同类型">
<el-input v-model="formData.contract_type" readonly clearable disabled />
<el-input v-model="formData.contract_type" readonly clearable disabled placeholder="系统自动获取" />
</el-form-item>
</el-col>
</el-col> -->
<el-col :span="8">
<el-form-item label="甲方签约单位">
<el-input v-model="formData.part_a" readonly clearable disabled />
<el-input v-model="formData.part_a" readonly clearable disabled placeholder="系统自动获取" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="乙方签约单位">
<el-input v-model="formData.part_b" readonly clearable disabled />
<el-input v-model="formData.part_b" readonly clearable disabled placeholder="系统自动获取" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="签订金额">
<el-input v-model="formData.sign_money" readonly clearable disabled />
<el-input v-model="formData.sign_money" readonly clearable disabled placeholder="系统自动获取" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="合同签订日期">
<el-input v-model="formData.sign_time" readonly clearable disabled />
<el-input v-model="formData.sign_time" readonly clearable disabled placeholder="系统自动获取" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="累计已开票">
<el-input v-model="formData.total_invoice_amount" readonly clearable disabled />
<el-input v-model="formData.total_invoice_amount" readonly clearable disabled
placeholder="系统自动获取" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="累计已到账">
<el-input v-model="formData.total_refund_amount" readonly clearable disabled />
<el-input v-model="formData.total_refund_amount" readonly clearable disabled
placeholder="系统自动获取" />
</el-form-item>
</el-col>
<el-col :span="8">
@ -190,11 +192,12 @@ const customEvent = (e) => {
showDialog.value = false
let list = ['project_num', 'contract_name', 'part_a', 'part_b', 'total_invoice_amount', 'total_refund_amount']
list.forEach(item => {
formData[item] = e[item] ?? (e.contract)[item]
formData[item] = e[item]
})
formData.contract_type = e.contract.contract_type_text
formData.sign_money = e.contract.money
formData.sign_time = e.contract.create_time
console.log(formData, 'formDATAT')
// formData.contract_type = e.contract.contract_type_text
// formData.sign_money = e.contract.money
// formData.sign_time = e.contract.create_time
}

View File

@ -48,7 +48,8 @@
<el-table-column label="签约时间" prop="sign_time" show-overflow-tooltip />
<el-table-column label="发票类型" prop="invoice_type_text" show-overflow-tooltip />
<el-table-column label="是否到账" prop="is_refund" show-overflow-tooltip />
<el-table-column label="开票申请金额" prop="apply_amount" show-overflow-tooltip />
<el-table-column label="开票申请金额" prop="apply_amount" show-overflow-tooltip
:render-header="pager.calcWidth" />
<el-table-column label="到账金额" prop="refund_amount" show-overflow-tooltip />
<el-table-column label="操作" width="170" fixed="right" align="center">
<template #default="{ row }">

View File

@ -146,10 +146,10 @@ const customEvent = (e) => {
list.forEach(item => {
formData[item] = e[item] ?? (e.contract)[item]
})
formData.contract_type = e.contract.contract_type_text
// formData.contract_type = e.contract.contract_type_text
formData.project_id = e.id
formData.sign_money = e.contract.money
formData.sign_time = e.contract.create_time
// formData.sign_money = e.contract.money
// formData.sign_time = e.contract.create_time
showDialog.value = false