|
@@ -1,39 +1,46 @@
|
|
|
<template>
|
|
<template>
|
|
|
<el-dialog v-model="dialogVisible" title="合同管理" width="700px" append-to-body @close="handleClose">
|
|
<el-dialog v-model="dialogVisible" title="合同管理" width="700px" append-to-body @close="handleClose">
|
|
|
- <el-form ref="formRef" :model="formData" :rules="rules" label-width="130px">
|
|
|
|
|
|
|
+ <el-form ref="formRef" :model="form" :rules="rules" label-width="130px">
|
|
|
<el-row :gutter="20">
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
<el-form-item label="合同编号" prop="contractNo">
|
|
<el-form-item label="合同编号" prop="contractNo">
|
|
|
- <el-input v-model="formData.contractNo" placeholder="请输入" />
|
|
|
|
|
|
|
+ <el-input v-model="form.contractNo" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="合作项目名称">
|
|
|
|
|
- <el-input v-model="formData.cooperativeName" placeholder="请输入" />
|
|
|
|
|
|
|
+ <el-form-item label="合作项目名称" prop="cooperationId">
|
|
|
|
|
+ <el-select v-model="form.cooperationId" placeholder="请选择" class="w-full" filterable @change="handleCooperationChange">
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="project in projectInfoList"
|
|
|
|
|
+ :key="project.id"
|
|
|
|
|
+ :label="`${project.projectNo} , ${project.projectName}`"
|
|
|
|
|
+ :value="project.id"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
</el-row>
|
|
</el-row>
|
|
|
<el-row :gutter="20">
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
<el-form-item label="合作开始时间">
|
|
<el-form-item label="合作开始时间">
|
|
|
- <el-date-picker v-model="formData.startTime" type="date" placeholder="请选择日期" value-format="YYYY-MM-DD" style="width: 100%" />
|
|
|
|
|
|
|
+ <el-date-picker v-model="form.startTime" type="date" placeholder="请选择日期" value-format="YYYY-MM-DD" style="width: 100%" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
<el-form-item label="合作结束时间">
|
|
<el-form-item label="合作结束时间">
|
|
|
- <el-date-picker v-model="formData.endTime" type="date" placeholder="请选择日期" value-format="YYYY-MM-DD" style="width: 100%" />
|
|
|
|
|
|
|
+ <el-date-picker v-model="form.endTime" type="date" placeholder="请选择日期" value-format="YYYY-MM-DD" style="width: 100%" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
</el-row>
|
|
</el-row>
|
|
|
<el-row :gutter="20">
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
<el-form-item label="合作费用">
|
|
<el-form-item label="合作费用">
|
|
|
- <el-input v-model="formData.fee" placeholder="请输入" type="number" />
|
|
|
|
|
|
|
+ <el-input v-model="form.fee" placeholder="请输入" type="number" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
<el-form-item label="合同类型">
|
|
<el-form-item label="合同类型">
|
|
|
- <el-select v-model="formData.contractType" placeholder="请选择" style="width: 100%">
|
|
|
|
|
|
|
+ <el-select v-model="form.contractType" placeholder="请选择" style="width: 100%">
|
|
|
<el-option label="战略合作" :value="1" />
|
|
<el-option label="战略合作" :value="1" />
|
|
|
<el-option label="项目合作" :value="2" />
|
|
<el-option label="项目合作" :value="2" />
|
|
|
</el-select>
|
|
</el-select>
|
|
@@ -43,31 +50,31 @@
|
|
|
<el-row :gutter="20">
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
<el-form-item label="结算周期">
|
|
<el-form-item label="结算周期">
|
|
|
- <el-input v-model="formData.settlementCycle" placeholder="请输入" />
|
|
|
|
|
|
|
+ <el-input v-model="form.settlementCycle" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
<el-form-item label="销售目标(万)">
|
|
<el-form-item label="销售目标(万)">
|
|
|
- <el-input v-model="formData.salesTarget" placeholder="请输入" />
|
|
|
|
|
|
|
+ <el-input v-model="form.salesTarget" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
</el-row>
|
|
</el-row>
|
|
|
<el-row :gutter="20">
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
<el-form-item label="合作区域">
|
|
<el-form-item label="合作区域">
|
|
|
- <el-input v-model="formData.area" placeholder="请输入" />
|
|
|
|
|
|
|
+ <el-input v-model="form.area" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
<el-form-item label="联系人">
|
|
<el-form-item label="联系人">
|
|
|
- <el-input v-model="formData.contacts" placeholder="请输入" />
|
|
|
|
|
|
|
+ <el-input v-model="form.contacts" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
</el-row>
|
|
</el-row>
|
|
|
<el-row :gutter="20">
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
<el-form-item label="联系电话">
|
|
<el-form-item label="联系电话">
|
|
|
- <el-input v-model="formData.phone" placeholder="请输入" />
|
|
|
|
|
|
|
+ <el-input v-model="form.phone" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
</el-row>
|
|
</el-row>
|
|
@@ -86,7 +93,7 @@
|
|
|
<el-row>
|
|
<el-row>
|
|
|
<el-col :span="24">
|
|
<el-col :span="24">
|
|
|
<el-form-item label="重要条款">
|
|
<el-form-item label="重要条款">
|
|
|
- <el-input v-model="formData.importantTerms" type="textarea" :rows="3" placeholder="请输入" />
|
|
|
|
|
|
|
+ <el-input v-model="form.importantTerms" type="textarea" :rows="3" placeholder="请输入" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
</el-row>
|
|
</el-row>
|
|
@@ -101,12 +108,13 @@
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
import { ref, computed } from 'vue';
|
|
import { ref, computed } from 'vue';
|
|
|
import type { PartnerContractForm } from '@/api/partner/contract/types';
|
|
import type { PartnerContractForm } from '@/api/partner/contract/types';
|
|
|
-
|
|
|
|
|
|
|
+import { listProjectInfo } from '@/api/project/projectInfo';
|
|
|
interface Props {
|
|
interface Props {
|
|
|
visible: boolean;
|
|
visible: boolean;
|
|
|
formData: PartnerContractForm;
|
|
formData: PartnerContractForm;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+const projectInfoList = ref<any[]>([]);
|
|
|
interface Emits {
|
|
interface Emits {
|
|
|
(e: 'update:visible', value: boolean): void;
|
|
(e: 'update:visible', value: boolean): void;
|
|
|
(e: 'update:formData', value: PartnerContractForm): void;
|
|
(e: 'update:formData', value: PartnerContractForm): void;
|
|
@@ -126,17 +134,35 @@ const rules = {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
const formRef = ref();
|
|
const formRef = ref();
|
|
|
|
|
+const form = ref<PartnerContractForm>({
|
|
|
|
|
+ ...props.formData,
|
|
|
|
|
+ cooperationId: props.formData.cooperationId || null
|
|
|
|
|
+});
|
|
|
|
|
|
|
|
const handleClose = () => {
|
|
const handleClose = () => {
|
|
|
emit('update:visible', false);
|
|
emit('update:visible', false);
|
|
|
formRef.value?.resetFields();
|
|
formRef.value?.resetFields();
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
+/** 查询项目信息列表 */
|
|
|
|
|
+const getProjectList = async () => {
|
|
|
|
|
+ const res = await listProjectInfo();
|
|
|
|
|
+ projectInfoList.value = res.rows;
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+const handleCooperationChange = (cooperationId: string | number) => {
|
|
|
|
|
+ const cooperative = projectInfoList.value.find((b) => b.id === cooperationId);
|
|
|
|
|
+ form.value.cooperativeName = cooperative?.projectName || '';
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
const handleSubmit = () => {
|
|
const handleSubmit = () => {
|
|
|
formRef.value?.validate((valid: boolean) => {
|
|
formRef.value?.validate((valid: boolean) => {
|
|
|
if (valid) {
|
|
if (valid) {
|
|
|
- emit('submit', props.formData);
|
|
|
|
|
|
|
+ emit('submit', form.value);
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
};
|
|
};
|
|
|
|
|
+onMounted(() => {
|
|
|
|
|
+ getProjectList();
|
|
|
|
|
+});
|
|
|
</script>
|
|
</script>
|