This commit is contained in:
zmj 2024-04-11 18:08:31 +08:00
parent 635b87490c
commit e9f52580ed
6 changed files with 254 additions and 117 deletions

View File

@ -60,10 +60,12 @@
<FormTable :form-data="formData.detail" :config="tableConfig" :dict-data="dictData">
<el-table-column label="部门">
<template #default="{ row }">
<el-select v-model="row.dept_id" placeholder="请选择部门">
<el-option :label="item.name" :value="item.id" v-for="item in deptList">
</el-option>
</el-select>
<el-form-item label-width="0">
<el-select v-model="row.dept_id" placeholder="请选择部门">
<el-option :label="item.name" :value="item.id" v-for="item in deptList">
</el-option>
</el-select>
</el-form-item>
</template>
</el-table-column>
<template #accumulate>
@ -97,7 +99,6 @@ import type { PropType } from 'vue'
import { cost_approved_projects, financial_fee_application } from "@/components/dialogTable/dialogTableConfig";
import { deptLists } from "@/api/org/department"
defineProps({
dictData: {
type: Object as PropType<Record<string, any[]>>,
@ -294,7 +295,6 @@ const getDeptList = async () => {
}
getDeptList()
defineExpose({
open,
setFormData,

View File

@ -1,67 +1,136 @@
<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>
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit" @close="handleClose">
<el-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
<el-row>
<el-col :span="8">
<el-form-item label="项目名称" prop="project_name">
<el-input v-model="formData.project_name" clearable placeholder="请输入项目名称" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目编号" prop="project_code">
<el-input v-model="formData.project_code" 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="建设单位">
<el-input v-model="formData.construct_company_name" clearable placeholder="点击选择建设单位" readon
@click="showDialog = true" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="业务性质">
<el-select class='flex-1' v-model="formData.business_nature">
<el-option v-for="(item, index) in dictData.cost_consultation_business_nature "
:key="index" :label="item.name" :value="parseInt(item.value)"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="行业性质">
<el-select class=' flex-1' v-model="formData.industry_nature">
<el-option v-for="(item, index) in dictData.cost_consultation_industry_nature "
:key="index" :label="item.name" :value="parseInt(item.value)"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="消息来源">
<el-select v-model="formData.info_sources" placeholder="请选择消息来源" class=" flex-1">
<el-option :label="item.name" :value="parseInt(item.value)"
v-for="item in dictData.info_sources">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="资金来源">
<el-select class=' flex-1' v-model="formData.fund_sources">
<el-option v-for="(item, index) in dictData.money_source " :key="index" :label="item.name"
:value="parseInt(item.value)"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="建设区域">
<el-select class=' flex-1' v-model="formData.const_area">
<el-option v-for="(item, index) in dictData.const_area " :key="index" :label="item.name"
:value="parseInt(item.value)"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目地点">
<el-input v-model="formData.project_address" clearable placeholder="请输入项目地点" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="工程总投资">
<el-input v-model="formData.total_investment" clearable placeholder="请输入工程总投资" type="number" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="建安投资额">
<el-input v-model="formData.jianan_investment" clearable placeholder="请输入建安投资额" type="number" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="工程概况">
<el-input v-model="formData.project_overview" clearable placeholder="请输入工程概况" type="textarea" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="备注">
<el-input v-model="formData.remark" clearable placeholder="请输入备注" type="textarea" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="负责人">
<el-input v-model="formData.head_name" clearable placeholder="点击选择负责人" readonly
@click="userclick" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="负责部门">
<!-- <el-input v-model="formData.dept" clearable placeholder="请输入负责部门" /> -->
<el-select v-model="formData.dept" placeholder="请选择部门" class="flex-1">
<el-option :label="item.name" :value="item.id" v-for="item in deptList">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="分管领导">
<el-input v-model="formData.leader" clearable placeholder="请输入分管领导" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="联系人信息">
<el-input v-model="formData.contacts" clearable placeholder="请输入联系人信息" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="附件">
<uploadAnnex :formData="formData" flag></uploadAnnex>
</el-form-item>
</el-col>
</el-row>
<el-dialog v-model="showDialog" title="选择建设单位" width="70%">
<dialogTable :config="marketing_custom" @customEvent="customEvent">
</dialogTable>
</el-dialog>
<div v-if="showDialog1">
<personnelselector ref="personnel" @confirm="submituser" type="1">
</personnelselector>
</div>
</el-form>
</popup>
</div>
@ -72,18 +141,22 @@ 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 { marketing_custom } from "@/components/dialogTable/dialogTableConfig";
import type { PropType } from 'vue'
defineProps({
dictData: {
type: Object as PropType<Record<string, any[]>>,
default: () => ({})
}
},
deptList: Array
})
const emit = defineEmits(['success', 'close'])
const formRef = shallowRef<FormInstance>()
const popupRef = shallowRef<InstanceType<typeof Popup>>()
const mode = ref('add')
const showDialog = ref(false)
const showDialog1 = ref(false)
const personnel = ref(null)
//
const popupTitle = computed(() => {
@ -96,7 +169,8 @@ const formData = reactive({
project_name: '',
project_code: '',
bid_date: '',
custom_id: '',
construct_company_name: "",
construct_company: "",
management_company: '',
business_nature: '',
industry_nature: '',
@ -109,12 +183,34 @@ const formData = reactive({
project_overview: '',
remark: '',
head: '',
head_name: "",
dept: '',
leader: '',
contacts: '',
annex: '',
annex: [],
})
const customEvent = (e) => {
formData.construct_company = e.id
formData.construct_company_name = e.name
showDialog.value = false
}
const userclick = async () => {
showDialog1.value = true
await nextTick()
personnel.value.open()
}
//
const submituser = (e: any) => {
formData.head_name = e.name
formData.head = e.id
showDialog1.value = false
}
//
const formRules = reactive<any>({
@ -133,9 +229,9 @@ const formRules = reactive<any>({
message: '请输入预计招标日期',
trigger: ['blur']
}],
custom_id: [{
custom_name: [{
required: true,
message: '请输入建设单位',
message: '请选择建设单位',
trigger: ['blur']
}],
management_company: [{

View File

@ -1,38 +1,62 @@
<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 class="mb-[-16px]" :model="queryParams" label-width="100px">
<el-row>
<el-col :span="6">
<el-form-item label="项目名称" prop="project_name">
<el-input v-model="queryParams.project_name" clearable placeholder="请输入项目名称" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="项目编号" prop="project_code">
<el-input v-model="queryParams.project_code" clearable placeholder="请输入项目编号" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="建设单位" prop="custom_id">
<el-input v-model="queryParams.custom_id" clearable placeholder="请输入建设单位" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="业务性质" prop="business_nature">
<el-input v-model="queryParams.business_nature" clearable placeholder="请输入业务性质" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="行业性质" prop="industry_nature">
<el-input v-model="queryParams.industry_nature" clearable placeholder="请输入行业性质" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="消息来源" prop="info_sources">
<el-input v-model="queryParams.info_sources" clearable placeholder="请输入消息来源" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="资金来源" prop="fund_sources">
<el-input v-model="queryParams.fund_sources" clearable placeholder="请输入资金来源" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="建设区域" prop="const_area">
<el-input v-model="queryParams.const_area" clearable placeholder="请输入建设区域" />
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="工程总投资" prop="total_investment">
<el-input v-model="queryParams.total_investment" 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-form>
</el-card>
<el-card class="!border-none" v-loading="pager.loading" shadow="never">
@ -87,7 +111,8 @@
<pagination v-model="pager" @change="getLists" />
</div>
</el-card>
<edit-popup v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists" @close="showEdit = false" />
<edit-popup :deptList="deptList" v-if="showEdit" ref="editRef" :dict-data="dictData" @success="getLists"
@close="showEdit = false" />
</div>
</template>
@ -98,6 +123,7 @@ import { apiMarketingBusinessOpportunityLists, apiMarketingBusinessOpportunityDe
import { timeFormat } from '@/utils/util'
import feedback from '@/utils/feedback'
import EditPopup from './edit.vue'
import { deptLists } from "@/api/org/department"
const editRef = shallowRef<InstanceType<typeof EditPopup>>()
//
@ -126,7 +152,8 @@ const handleSelectionChange = (val: any[]) => {
}
//
const { dictData } = useDictData('')
const { dictData } = useDictData('cost_consultation_business_nature,info_sources,cost_consultation_industry_nature,money_source,const_area,cost_consultation_way,cost_consultation_seal_name,cost_consultation_file_type,isqfgz')
//
const { pager, getLists, resetParams, resetPage } = usePaging({
@ -156,6 +183,13 @@ const handleDelete = async (id: number | any[]) => {
getLists()
}
const deptList = ref([])
const getDeptList = async () => {
let res = await deptLists()
deptList.value = res.lists
}
getLists()
getDeptList()
</script>

View File

@ -48,15 +48,17 @@
<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"
show-overflow-tooltip />
<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="协议性质" :render-header="pager.calcWidth" 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="签订负责人" :render-header="pager.calcWidth" prop="signed_head_name"
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="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">
<template #default="{ row }">

View File

@ -46,16 +46,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="合同名称" :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="合同类型" prop="contract_type_text" 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="甲方单位" :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="签订金额" prop="signed_amount" 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="business_nature_text" show-overflow-tooltip />
<el-table-column label="签订时间" prop="create_time" show-overflow-tooltip />
<el-table-column :render-header="pager.calcWidth" label="发出日期" prop="send_date" show-overflow-tooltip />
<el-table-column label="操作" width="120" fixed="right">
<template #default="{ row }">
<el-button v-perms="['marketing.marketing_contract/edit']" type="primary" link

View File

@ -42,6 +42,8 @@
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="signed_dept_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 />