This commit is contained in:
mkm 2024-07-28 17:47:58 +08:00
parent 913268819e
commit 7a73f4e1fc
2 changed files with 792 additions and 734 deletions

View File

@ -294,6 +294,8 @@ const datas = reactive({
const customEvent = (e) => { const customEvent = (e) => {
formData.contract_id = e.id; formData.contract_id = e.id;
formData.contract_name = e.contract_name; formData.contract_name = e.contract_name;
formData.project_name = e.contract_name;
formData.depar = e.supervise_dept;
formData.industry = e.industry_nature formData.industry = e.industry_nature
formData.starting = e.start_date formData.starting = e.start_date
formData.endtime = e.end_date formData.endtime = e.end_date
@ -304,7 +306,10 @@ const customEvent = (e) => {
formData.aunit_name = e.part_a_name formData.aunit_name = e.part_a_name
formData.aunit = e.part_a formData.aunit = e.part_a
formData.generalize = e.project_scale formData.generalize = e.project_scale
// formData.Acontact = e.part_a_contract formData.jhgq = e.jhgq
formData.address = e.part_a_address
formData.Acontact = e.part_a_acontact
formData.acontactnum = e.telephone
showDialog.value = false; showDialog.value = false;
}; };

View File

@ -20,39 +20,39 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="合同名称" prop="contract_name"> <el-form-item label="合同名称" prop="contract_name">
<el-input v-model="formData.contract_name" clearable placeholder="请输入合同名称" /> <el-input v-model="formData.contract_name" clearable placeholder="请输入合同名称"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="合同编号" prop="contract_code"> <el-form-item label="合同编号" prop="contract_code">
<el-input v-model="formData.contract_code" clearable placeholder="请输入合同编号" v-type="'code'" /> <el-input v-model="formData.contract_code" clearable placeholder="请输入合同编号" v-type="'code'"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="甲方签约单位" prop="part_a"> <el-form-item label="甲方签约单位" prop="part_a">
<el-input v-model="formData.part_a_name" clearable placeholder="请输入甲方签约单位" readonly <el-input v-model="formData.part_a_name" clearable placeholder="请输入甲方签约单位" readonly
@click="showDialog2 = true" /> @click="showDialog2 = true"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="联系人"> <el-form-item label="联系人">
<el-input v-model="formData.part_a_contact" clearable placeholder="请输入联系人" /> <el-input v-model="formData.part_a_contact" clearable placeholder="请输入联系人"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="业主地址"> <el-form-item label="业主地址">
<el-input v-model="formData.part_a_address" clearable placeholder="请输入业主地址" /> <el-input v-model="formData.part_a_address" clearable placeholder="请输入业主地址"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="乙方签约单位" prop="part_b"> <el-form-item label="乙方签约单位" prop="part_b">
<el-input v-model="formData.part_b" clearable placeholder="请输入乙方签约单位" /> <el-input v-model="formData.part_b" clearable placeholder="请输入乙方签约单位"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="乙方签约人"> <el-form-item label="乙方签约人">
<el-input v-model="formData.part_b_signatory_name" clearable placeholder="点击选择" <el-input v-model="formData.part_b_signatory_name" clearable placeholder="点击选择"
@click="userclick('part_b_signatory')" /> @click="userclick('part_b_signatory')"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@ -83,6 +83,24 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8">
<el-form-item label="所在省份" prop="province">
<el-select v-model="formData.province" clearable placeholder="请选择省"
@change="province_change" class="flex-1">
<el-option v-for="(item, index) in datas.provinceOptions" :key="index"
:label="item.province_name" :value="(item.province_code)" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="所在市区" prop="city">
<el-select v-model="formData.city" clearable placeholder="请选择市" class="flex-1">
<el-option v-for="(item, index) in datas.cityOptions" :key="index"
:label="item.city_name" :value="(item.city_code)" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="建设区域" prop="const_area"> <el-form-item label="建设区域" prop="const_area">
<el-select class="flex-1" v-model="formData.const_area"> <el-select class="flex-1" v-model="formData.const_area">
@ -98,27 +116,27 @@
</el-col> --> </el-col> -->
<el-col :span="8"> <el-col :span="8">
<el-form-item label="工程总投资"> <el-form-item label="工程总投资">
<el-input v-model="formData.project_money" clearable placeholder="请输入工程总投资" type="number" /> <el-input v-model="formData.project_money" clearable placeholder="请输入工程总投资" type="number"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="工程规模及概况"> <el-form-item label="工程规模及概况">
<el-input v-model="formData.project_scale" clearable placeholder="请输入工程规模及概况" /> <el-input v-model="formData.project_scale" clearable placeholder="请输入工程规模及概况"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="签订金额" prop="signed_amount"> <el-form-item label="签订金额" prop="signed_amount">
<el-input v-model="formData.signed_amount" clearable placeholder="请输入签订金额" type="number" /> <el-input v-model="formData.signed_amount" clearable placeholder="请输入签订金额" type="number"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="合同签订费率"> <el-form-item label="合同签订费率">
<el-input v-model="formData.signed_rate" clearable placeholder="请输入合同签订费率" type="number" /> <el-input v-model="formData.signed_rate" clearable placeholder="请输入合同签订费率" type="number"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="合同服务工期"> <el-form-item label="合同服务工期">
<el-input v-model="formData.service_duration" clearable placeholder="请输入合同服务工期" /> <el-input v-model="formData.service_duration" clearable placeholder="请输入合同服务工期"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@ -137,7 +155,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="履约金"> <el-form-item label="履约金">
<el-input v-model="formData.performance_money" clearable placeholder="请输入履约金" type="number" /> <el-input v-model="formData.performance_money" clearable placeholder="请输入履约金" type="number"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@ -149,15 +167,22 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="合同付款方式"> <el-form-item label="合同付款方式">
<el-input v-model="formData.payment_method" clearable placeholder="请输入合同付款方式" /> <el-input v-model="formData.payment_method" clearable placeholder="请输入合同付款方式"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="合同主要内容"> <el-form-item label="合同主要内容">
<el-input v-model="formData.content" clearable placeholder="请输入合同主要内容" /> <el-input v-model="formData.content" clearable placeholder="请输入合同主要内容"/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="项目规模及概括" prop="generalize" label-width="120px">
<!-- <el-input v-model="formData.generalize" clearable placeholder="请输入项目规模及概括" disabled
type="textarea" /> -->
<el-input v-model="formData.generalize" clearable placeholder="请输入项目规模及概括"
type="textarea"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="签订部门" prop="signed_dept"> <el-form-item label="签订部门" prop="signed_dept">
<el-select v-model="formData.signed_dept" placeholder="请选择部门" class="flex-1"> <el-select v-model="formData.signed_dept" placeholder="请选择部门" class="flex-1">
@ -169,7 +194,7 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="签订负责人" prop="signed_head_name"> <el-form-item label="签订负责人" prop="signed_head_name">
<el-input v-model="formData.signed_head_name" clearable placeholder="点击选择" <el-input v-model="formData.signed_head_name" clearable placeholder="点击选择"
@click="userclick('signed_head')" /> @click="userclick('signed_head')"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@ -183,7 +208,7 @@
<el-col :span="8"> <el-col :span="8">
<el-form-item label="项目总监/经理"> <el-form-item label="项目总监/经理">
<el-input v-model="formData.project_manager_name" clearable placeholder="点击选择" <el-input v-model="formData.project_manager_name" clearable placeholder="点击选择"
@click="userclick('project_manager')" /> @click="userclick('project_manager')"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@ -212,7 +237,7 @@
</el-col> </el-col>
<el-col :span="8" v-if="formData.is_limit"> <el-col :span="8" v-if="formData.is_limit">
<el-form-item label="限制次数"> <el-form-item label="限制次数">
<el-input v-model="formData.limit_num" clearable placeholder="请输入限制次数" type="number" /> <el-input v-model="formData.limit_num" clearable placeholder="请输入限制次数" type="number"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@ -225,13 +250,13 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="盖章份数"> <el-form-item label="盖章份数">
<el-input v-model="formData.seal_num" clearable placeholder="请输入盖章份数" type="number" /> <el-input v-model="formData.seal_num" clearable placeholder="请输入盖章份数" type="number"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="盖章人"> <el-form-item label="盖章人">
<el-input v-model="formData.seal_user_name" clearable placeholder="点击选择" <el-input v-model="formData.seal_user_name" clearable placeholder="点击选择"
@click="userclick('seal_user')" /> @click="userclick('seal_user')"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@ -251,7 +276,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="邮寄编号"> <el-form-item label="邮寄编号">
<el-input v-model="formData.mailing_number" clearable placeholder="请输入邮寄编号" type="number" /> <el-input v-model="formData.mailing_number" clearable placeholder="请输入邮寄编号" type="number"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<!-- <el-col :span="8"> <!-- <el-col :span="8">
@ -281,7 +306,7 @@
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="附件"> <el-form-item label="附件">
<upload-annex :form-data="formData" /> <upload-annex :form-data="formData"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -295,28 +320,29 @@
</dialogTable> </dialogTable>
</el-dialog> </el-dialog>
<el-dialog v-model="showDialog2" title="选择甲方签订单位" width="70%"> <el-dialog v-model="showDialog2" title="选择甲方签订单位" width="70%">
<dialogTable :config="marketing_custom" @customEvent="customEvent1"> </dialogTable> <dialogTable :config="marketing_custom" @customEvent="customEvent1"></dialogTable>
</el-dialog> </el-dialog>
</popup> </popup>
</div> </div>
</template> </template>
<script lang="ts" setup name="marketingContractEdit"> <script lang="ts" setup name="marketingContractEdit">
import type { FormInstance } from 'element-plus' import type {FormInstance} from 'element-plus'
import Popup from '@/components/popup/index.vue' import Popup from '@/components/popup/index.vue'
import { import {
apiMarketingContractAdd, apiMarketingContractAdd,
apiMarketingContractEdit, apiMarketingContractEdit,
apiMarketingContractDetail apiMarketingContractDetail
} from '@/api/marketing_contract' } from '@/api/marketing_contract'
import { timeFormat } from '@/utils/util' import {timeFormat} from '@/utils/util'
import type { PropType } from 'vue' import type {PropType} from 'vue'
import { import {
marketing_framework_agreement, marketing_framework_agreement,
marketing_custom marketing_custom
} from '@/components/dialogTable/dialogTableConfig' } from '@/components/dialogTable/dialogTableConfig'
import { useRoute } from "vue-router" import {useRoute} from "vue-router"
import { apimketingFrameworkAgreementDetail } from '@/api/marketing_framework_agreement' import {apimketingFrameworkAgreementDetail} from '@/api/marketing_framework_agreement'
import {apiCityList, apiProvinceList} from "@/api/common";
const route = useRoute() const route = useRoute()
defineProps({ defineProps({
@ -392,12 +418,16 @@ const formData = reactive({
review_status: '', review_status: '',
status: '', status: '',
create_user: '', create_user: '',
submitting_department: '' submitting_department: '',
generalize: '',
province:'',
city:''
}) })
const customEvent = (e) => { const customEvent = (e) => {
formData.related_contract_id = e.id formData.related_contract_id = e.id
formData.framework_agreement_name = e.contract_name formData.framework_agreement_name = e.contract_name
formData.contract_name = e.contract_name
formData.part_a_name = e.part_a_name formData.part_a_name = e.part_a_name
formData.part_a = e.part_a formData.part_a = e.part_a
formData.part_a_address = e.part_a_address formData.part_a_address = e.part_a_address
@ -768,6 +798,12 @@ const setFormData = async (data: Record<any, any>) => {
//@ts-ignore //@ts-ignore
formData[key] = data[key] formData[key] = data[key]
} }
if(key=='related_contract_id'){
formData.related_contract_id = data['related_contract_id']
}
if(key=='framework_agreement_name'){
formData.framework_agreement_name = data['framework_agreement_name']
}
} }
} }
@ -781,14 +817,31 @@ const getDetail = async (row: Record<string, any>) => {
// //
const handleSubmit = async () => { const handleSubmit = async () => {
await formRef.value?.validate() await formRef.value?.validate()
const data = { ...formData } const data = {...formData}
mode.value == 'edit' mode.value == 'edit'
? await apiMarketingContractEdit(data) ? await apiMarketingContractEdit(data)
: await apiMarketingContractAdd(data) : await apiMarketingContractAdd(data)
popupRef.value?.close() popupRef.value?.close()
emit('success') emit('success')
} }
const datas = reactive({
provinceOptions: [],
cityOptions: [],
});
const getProvinceList = async () => {
const data = await apiProvinceList({});
datas["provinceOptions"] = data;
};
const getCityList = async () => {
const data = await apiCityList({ province_code: formData.province });
datas["cityOptions"] = data;
};
//
function province_change(value: string) {
getCityList();
}
getProvinceList()
// //
const open = (type = 'add') => { const open = (type = 'add') => {
mode.value = type mode.value = type
@ -800,7 +853,7 @@ const handleClose = () => {
emit('close') emit('close')
} }
if (route.query.marketing_framework_agreement_id) { if (route.query.marketing_framework_agreement_id) {
apimketingFrameworkAgreementDetail({ id: route.query.marketing_framework_agreement_id }).then(res => { apimketingFrameworkAgreementDetail({id: route.query.marketing_framework_agreement_id}).then(res => {
customEvent(res) customEvent(res)
formData.contract_type = 0 formData.contract_type = 0
}) })