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) => {
formData.contract_id = e.id;
formData.contract_name = e.contract_name;
formData.project_name = e.contract_name;
formData.depar = e.supervise_dept;
formData.industry = e.industry_nature
formData.starting = e.start_date
formData.endtime = e.end_date
@ -304,7 +306,10 @@ const customEvent = (e) => {
formData.aunit_name = e.part_a_name
formData.aunit = e.part_a
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;
};

View File

@ -20,39 +20,39 @@
</el-col>
<el-col :span="8">
<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-col>
<el-col :span="8">
<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-col>
<el-col :span="8">
<el-form-item label="甲方签约单位" prop="part_a">
<el-input v-model="formData.part_a_name" clearable placeholder="请输入甲方签约单位" readonly
@click="showDialog2 = true" />
@click="showDialog2 = true"/>
</el-form-item>
</el-col>
<el-col :span="8">
<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-col>
<el-col :span="8">
<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-col>
<el-col :span="8">
<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-col>
<el-col :span="8">
<el-form-item label="乙方签约人">
<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-col>
<el-col :span="8">
@ -83,6 +83,24 @@
</el-select>
</el-form-item>
</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-form-item label="建设区域" prop="const_area">
<el-select class="flex-1" v-model="formData.const_area">
@ -98,27 +116,27 @@
</el-col> -->
<el-col :span="8">
<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-col>
<el-col :span="8">
<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-col>
<el-col :span="8">
<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-col>
<el-col :span="8">
<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-col>
<el-col :span="8">
<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-col>
<el-col :span="8">
@ -137,7 +155,7 @@
</el-col>
<el-col :span="8">
<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-col>
<el-col :span="8">
@ -149,15 +167,22 @@
</el-col>
<el-col :span="8">
<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-col>
<el-col :span="8">
<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-col>
<el-col :span="8">
<el-form-item label="签订部门" prop="signed_dept">
<el-select v-model="formData.signed_dept" placeholder="请选择部门" class="flex-1">
@ -169,7 +194,7 @@
<el-col :span="8">
<el-form-item label="签订负责人" prop="signed_head_name">
<el-input v-model="formData.signed_head_name" clearable placeholder="点击选择"
@click="userclick('signed_head')" />
@click="userclick('signed_head')"/>
</el-form-item>
</el-col>
<el-col :span="8">
@ -183,7 +208,7 @@
<el-col :span="8">
<el-form-item label="项目总监/经理">
<el-input v-model="formData.project_manager_name" clearable placeholder="点击选择"
@click="userclick('project_manager')" />
@click="userclick('project_manager')"/>
</el-form-item>
</el-col>
<el-col :span="8">
@ -212,7 +237,7 @@
</el-col>
<el-col :span="8" v-if="formData.is_limit">
<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-col>
<el-col :span="8">
@ -225,13 +250,13 @@
</el-col>
<el-col :span="8">
<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-col>
<el-col :span="8">
<el-form-item label="盖章人">
<el-input v-model="formData.seal_user_name" clearable placeholder="点击选择"
@click="userclick('seal_user')" />
@click="userclick('seal_user')"/>
</el-form-item>
</el-col>
<el-col :span="8">
@ -251,7 +276,7 @@
</el-col>
<el-col :span="8">
<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-col>
<!-- <el-col :span="8">
@ -281,7 +306,7 @@
</el-col>
<el-col :span="8">
<el-form-item label="附件">
<upload-annex :form-data="formData" />
<upload-annex :form-data="formData"/>
</el-form-item>
</el-col>
</el-row>
@ -295,28 +320,29 @@
</dialogTable>
</el-dialog>
<el-dialog v-model="showDialog2" title="选择甲方签订单位" width="70%">
<dialogTable :config="marketing_custom" @customEvent="customEvent1"> </dialogTable>
<dialogTable :config="marketing_custom" @customEvent="customEvent1"></dialogTable>
</el-dialog>
</popup>
</div>
</template>
<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 {
apiMarketingContractAdd,
apiMarketingContractEdit,
apiMarketingContractDetail
} from '@/api/marketing_contract'
import { timeFormat } from '@/utils/util'
import type { PropType } from 'vue'
import {timeFormat} from '@/utils/util'
import type {PropType} from 'vue'
import {
marketing_framework_agreement,
marketing_custom
} from '@/components/dialogTable/dialogTableConfig'
import { useRoute } from "vue-router"
import { apimketingFrameworkAgreementDetail } from '@/api/marketing_framework_agreement'
import {useRoute} from "vue-router"
import {apimketingFrameworkAgreementDetail} from '@/api/marketing_framework_agreement'
import {apiCityList, apiProvinceList} from "@/api/common";
const route = useRoute()
defineProps({
@ -392,12 +418,16 @@ const formData = reactive({
review_status: '',
status: '',
create_user: '',
submitting_department: ''
submitting_department: '',
generalize: '',
province:'',
city:''
})
const customEvent = (e) => {
formData.related_contract_id = e.id
formData.framework_agreement_name = e.contract_name
formData.contract_name = e.contract_name
formData.part_a_name = e.part_a_name
formData.part_a = e.part_a
formData.part_a_address = e.part_a_address
@ -768,6 +798,12 @@ const setFormData = async (data: Record<any, any>) => {
//@ts-ignore
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 () => {
await formRef.value?.validate()
const data = { ...formData }
const data = {...formData}
mode.value == 'edit'
? await apiMarketingContractEdit(data)
: await apiMarketingContractAdd(data)
popupRef.value?.close()
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') => {
mode.value = type
@ -800,7 +853,7 @@ const handleClose = () => {
emit('close')
}
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)
formData.contract_type = 0
})