From e9f52580ed8b6fcd8005fd38429b8301e8fb2c02 Mon Sep 17 00:00:00 2001 From: zmj <1493694146@qq.com> Date: Thu, 11 Apr 2024 18:08:31 +0800 Subject: [PATCH] add --- .../financial_expense_reimbursement/edit.vue | 12 +- .../marketing_business_opportunity/edit.vue | 232 +++++++++++++----- .../marketing_business_opportunity/index.vue | 102 +++++--- .../marketing_framework_agreement/index.vue | 10 +- .../marketing_handover_contract/index.vue | 13 +- .../index.vue | 2 + 6 files changed, 254 insertions(+), 117 deletions(-) diff --git a/src/views/financial_expense_reimbursement/edit.vue b/src/views/financial_expense_reimbursement/edit.vue index 3b9ef91..0816305 100644 --- a/src/views/financial_expense_reimbursement/edit.vue +++ b/src/views/financial_expense_reimbursement/edit.vue @@ -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, diff --git a/src/views/marketing_business_opportunity/edit.vue b/src/views/marketing_business_opportunity/edit.vue index 3a8fa25..562a0e7 100644 --- a/src/views/marketing_business_opportunity/edit.vue +++ b/src/views/marketing_business_opportunity/edit.vue @@ -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: [{ diff --git a/src/views/marketing_business_opportunity/index.vue b/src/views/marketing_business_opportunity/index.vue index f39f3f0..ceaaf3f 100644 --- a/src/views/marketing_business_opportunity/index.vue +++ b/src/views/marketing_business_opportunity/index.vue @@ -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> diff --git a/src/views/marketing_framework_agreement/index.vue b/src/views/marketing_framework_agreement/index.vue index 17791b6..e754c3c 100644 --- a/src/views/marketing_framework_agreement/index.vue +++ b/src/views/marketing_framework_agreement/index.vue @@ -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 }"> diff --git a/src/views/marketing_handover_contract/index.vue b/src/views/marketing_handover_contract/index.vue index 7b1144b..ed149d4 100644 --- a/src/views/marketing_handover_contract/index.vue +++ b/src/views/marketing_handover_contract/index.vue @@ -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 diff --git a/src/views/marketing_supplementary_agreement/index.vue b/src/views/marketing_supplementary_agreement/index.vue index 83af62d..c0eacf7 100644 --- a/src/views/marketing_supplementary_agreement/index.vue +++ b/src/views/marketing_supplementary_agreement/index.vue @@ -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 />