更新新增市场经营--合同信息
This commit is contained in:
parent
2506f3e189
commit
9045ce63a4
@ -1,6 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="edit-popup">
|
<div class="edit-popup">
|
||||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit" @close="handleClose">
|
<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-form ref="formRef" :model="formData" label-width="120px" :rules="formRules">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
@ -25,7 +26,8 @@
|
|||||||
</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">
|
||||||
@ -57,32 +59,36 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="业务性质" prop="business_nature">
|
<el-form-item label="业务性质" prop="business_nature">
|
||||||
<el-select class='flex-1' v-model="formData.business_nature">
|
<el-select class="flex-1" v-model="formData.business_nature">
|
||||||
<el-option v-for="(item, index) in dictData.cost_consultation_business_nature "
|
<el-option v-for="(
|
||||||
:key="index" :label="item.name" :value="parseInt(item.value)"></el-option>
|
item, index
|
||||||
</el-select>
|
) in dictData.cost_consultation_business_nature" :key="index" :label="item.name"
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="行业性质" prop="industry_nature">
|
|
||||||
<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="资金来源" prop="fund_sources">
|
|
||||||
<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>
|
:value="parseInt(item.value)"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="行业性质" prop="industry_nature">
|
||||||
|
<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="资金来源" prop="fund_sources">
|
||||||
|
<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-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">
|
||||||
<el-option v-for="(item, index) in dictData.const_area " :key="index" :label="item.name"
|
<el-option v-for="(item, index) in dictData.const_area" :key="index" :label="item.name"
|
||||||
:value="parseInt(item.value)"></el-option>
|
:value="parseInt(item.value)"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -133,7 +139,8 @@
|
|||||||
</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">
|
||||||
@ -184,16 +191,16 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="实施方式">
|
<el-form-item label="实施方式">
|
||||||
<el-select class=' flex-1' v-model="formData.implement_method">
|
<el-select class="flex-1" v-model="formData.implement_method">
|
||||||
<el-option v-for="(item, index) in dictData.cost_consultation_way " :key="index"
|
<el-option v-for="(item, index) in dictData.cost_consultation_way" :key="index"
|
||||||
:label="item.name" :value="parseInt(item.value)"></el-option>
|
:label="item.name" :value="parseInt(item.value)"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</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-select class=' flex-1' v-model="formData.seal_name">
|
<el-select class="flex-1" v-model="formData.seal_name">
|
||||||
<el-option v-for="(item, index) in dictData.cost_consultation_seal_name " :key="index"
|
<el-option v-for="(item, index) in dictData.cost_consultation_seal_name" :key="index"
|
||||||
:label="item.name" :value="parseInt(item.value)"></el-option>
|
:label="item.name" :value="parseInt(item.value)"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -213,8 +220,8 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="文件类型">
|
<el-form-item label="文件类型">
|
||||||
<el-select class='flex-1' v-model="formData.file_type">
|
<el-select class="flex-1" v-model="formData.file_type">
|
||||||
<el-option v-for="( item, index ) in dictData.cost_consultation_file_type " :key="index"
|
<el-option v-for="(item, index) in dictData.cost_consultation_file_type" :key="index"
|
||||||
:label="item.name" :value="parseInt(item.value)"></el-option>
|
:label="item.name" :value="parseInt(item.value)"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -232,8 +239,8 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="骑缝盖章">
|
<el-form-item label="骑缝盖章">
|
||||||
<el-select class='flex-1' v-model="formData.plance_seal">
|
<el-select class="flex-1" v-model="formData.plance_seal">
|
||||||
<el-option v-for="( item, index ) in dictData.isqfgz " :key="index" :label="item.name"
|
<el-option v-for="(item, index) in dictData.isqfgz" :key="index" :label="item.name"
|
||||||
:value="parseInt(item.value)"></el-option>
|
:value="parseInt(item.value)"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -267,7 +274,7 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col> -->
|
</el-col> -->
|
||||||
<createUserLable :form-data='formData' name='录入' flag></createUserLable>
|
<createUserLable :form-data="formData" name="录入" flag></createUserLable>
|
||||||
<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" />
|
||||||
@ -284,110 +291,113 @@
|
|||||||
</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 :config="marketing_custom" @customEvent="customEvent1"> </dialogTable>
|
||||||
</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 { marketing_framework_agreement, marketing_custom } from "@/components/dialogTable/dialogTableConfig";
|
import {
|
||||||
|
marketing_framework_agreement,
|
||||||
|
marketing_custom
|
||||||
|
} from '@/components/dialogTable/dialogTableConfig'
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
dictData: {
|
dictData: {
|
||||||
type: Object as PropType<Record<string, any[]>>,
|
type: Object as PropType<Record<string, any[]>>,
|
||||||
default: () => ({}),
|
default: () => ({})
|
||||||
},
|
},
|
||||||
deptList: Array
|
deptList: Array
|
||||||
|
})
|
||||||
});
|
const emit = defineEmits(['success', 'close'])
|
||||||
const emit = defineEmits(["success", "close"]);
|
const formRef = shallowRef<FormInstance>()
|
||||||
const formRef = shallowRef<FormInstance>();
|
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||||
const popupRef = shallowRef<InstanceType<typeof Popup>>();
|
const mode = ref('add')
|
||||||
const mode = ref("add");
|
|
||||||
const showDialog = ref(false)
|
const showDialog = ref(false)
|
||||||
const showDialog1 = ref(false)
|
const showDialog1 = ref(false)
|
||||||
const showDialog2 = ref(false)
|
const showDialog2 = ref(false)
|
||||||
const personnel = ref(null)
|
const personnel = ref(null)
|
||||||
|
|
||||||
|
|
||||||
// 弹窗标题
|
// 弹窗标题
|
||||||
const popupTitle = computed(() => {
|
const popupTitle = computed(() => {
|
||||||
return mode.value == "edit"
|
return mode.value == 'edit' ? '编辑市场经营--合同信息' : '新增市场经营--合同信息'
|
||||||
? "编辑市场经营--合同信息"
|
})
|
||||||
: "新增市场经营--合同信息";
|
|
||||||
});
|
|
||||||
|
|
||||||
// 表单数据
|
// 表单数据
|
||||||
const formData = reactive({
|
const formData = reactive({
|
||||||
id: "",
|
id: '',
|
||||||
related_contract_id: "",
|
related_contract_id: '',
|
||||||
framework_agreement_name: "",
|
framework_agreement_name: '',
|
||||||
contract_type: "",
|
contract_type: '',
|
||||||
contract_name: "",
|
contract_name: '',
|
||||||
contract_code: "",
|
contract_code: '',
|
||||||
part_a: "",
|
part_a: '',
|
||||||
part_a_name: "",
|
part_a_name: '',
|
||||||
part_a_contact: "",
|
part_a_contact: '',
|
||||||
part_a_address: "",
|
part_a_address: '',
|
||||||
part_b: "",
|
part_b: '',
|
||||||
part_b_signatory: "",
|
part_b_signatory: '',
|
||||||
part_b_signatory_name: "",
|
part_b_signatory_name: '',
|
||||||
business_nature: "",
|
business_nature: '',
|
||||||
industry_nature: "",
|
industry_nature: '',
|
||||||
fund_sources: "",
|
fund_sources: '',
|
||||||
const_area: "",
|
const_area: '',
|
||||||
agreement_nature: "",
|
agreement_nature: '',
|
||||||
project_money: "",
|
project_money: '',
|
||||||
project_scale: "",
|
project_scale: '',
|
||||||
signed_amount: "",
|
signed_amount: '',
|
||||||
signed_rate: "",
|
signed_rate: '',
|
||||||
service_duration: "",
|
service_duration: '',
|
||||||
start_date: "",
|
start_date: '',
|
||||||
end_date: "",
|
end_date: '',
|
||||||
performance_money: "",
|
performance_money: '',
|
||||||
performance_money_expiration_time: "",
|
performance_money_expiration_time: '',
|
||||||
payment_method: "",
|
payment_method: '',
|
||||||
content: "",
|
content: '',
|
||||||
annex: "",
|
annex: '',
|
||||||
signed_dept: "",
|
signed_dept: '',
|
||||||
signed_head: "",
|
signed_head: '',
|
||||||
signed_head_name: "",
|
signed_head_name: '',
|
||||||
supervise_dept: "",
|
supervise_dept: '',
|
||||||
project_manager: "",
|
project_manager: '',
|
||||||
project_manager_name: "",
|
project_manager_name: '',
|
||||||
implement_method: "",
|
implement_method: '',
|
||||||
seal_name: "",
|
seal_name: '',
|
||||||
is_limit: "",
|
is_limit: '',
|
||||||
limit_num: "",
|
limit_num: '',
|
||||||
file_type: "",
|
file_type: '',
|
||||||
seal_num: "",
|
seal_num: '',
|
||||||
seal_user: "",
|
seal_user: '',
|
||||||
seal_user_name: "",
|
seal_user_name: '',
|
||||||
plance_seal: "",
|
plance_seal: '',
|
||||||
send_date: "",
|
send_date: '',
|
||||||
mailing_number: "",
|
mailing_number: '',
|
||||||
review_status: "",
|
review_status: '',
|
||||||
status: "",
|
status: '',
|
||||||
create_user: "",
|
create_user: ''
|
||||||
});
|
})
|
||||||
|
|
||||||
|
|
||||||
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.part_a_name = e.part_a_name
|
||||||
|
formData.part_a = e.part_a
|
||||||
|
formData.part_a_address = e.part_a_address
|
||||||
|
formData.part_a_contact = e.part_a_contact
|
||||||
|
formData.part_b = e.part_b
|
||||||
|
formData.part_b_signatory = e.part_b_signatory
|
||||||
|
formData.part_b_signatory_name = e.part_b_signatory_name
|
||||||
|
formData.business_nature = e.business_nature
|
||||||
showDialog1.value = false
|
showDialog1.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -397,15 +407,12 @@ const customEvent1 = (e) => {
|
|||||||
showDialog2.value = false
|
showDialog2.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let value
|
||||||
|
|
||||||
let value;
|
|
||||||
const userclick = async (val) => {
|
const userclick = async (val) => {
|
||||||
showDialog.value = true
|
showDialog.value = true
|
||||||
value = val
|
value = val
|
||||||
await nextTick()
|
await nextTick()
|
||||||
personnel.value.open()
|
personnel.value.open()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//确认
|
//确认
|
||||||
@ -428,148 +435,155 @@ const formRules = reactive<any>({
|
|||||||
related_contract_id: [
|
related_contract_id: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入关联主合同id",
|
message: '请输入关联主合同id',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
|
],
|
||||||
|
signed_head_name: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请选择签订负责人',
|
||||||
|
trigger: ['blur']
|
||||||
|
}
|
||||||
],
|
],
|
||||||
contract_type: [
|
contract_type: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入合同类型",
|
message: '请输入合同类型',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
contract_name: [
|
contract_name: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入合同名称",
|
message: '请输入合同名称',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
contract_code: [
|
contract_code: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入合同编号",
|
message: '请输入合同编号',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
part_a: [
|
part_a: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入甲方签约单位",
|
message: '请输入甲方签约单位',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
part_a_contact: [
|
part_a_contact: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入联系人",
|
message: '请输入联系人',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
part_a_address: [
|
part_a_address: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入业主地址",
|
message: '请输入业主地址',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
part_b: [
|
part_b: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入乙方签约单位",
|
message: '请输入乙方签约单位',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
part_b_signatory: [
|
part_b_signatory: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入乙方签约人",
|
message: '请输入乙方签约人',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
business_nature: [
|
business_nature: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入业务性质",
|
message: '请输入业务性质',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
industry_nature: [
|
industry_nature: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入行业性质",
|
message: '请输入行业性质',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
fund_sources: [
|
fund_sources: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入资金来源",
|
message: '请输入资金来源',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
const_area: [
|
const_area: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入建设区域",
|
message: '请输入建设区域',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
agreement_nature: [
|
agreement_nature: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入协议性质",
|
message: '请输入协议性质',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
project_money: [
|
project_money: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入工程总投资",
|
message: '请输入工程总投资',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
project_scale: [
|
project_scale: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入工程规模及概况",
|
message: '请输入工程规模及概况',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
signed_amount: [
|
signed_amount: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入签订金额",
|
message: '请输入签订金额',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
signed_rate: [
|
signed_rate: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入合同签订费率",
|
message: '请输入合同签订费率',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
service_duration: [
|
service_duration: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入合同服务工期",
|
message: '请输入合同服务工期',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
start_date: [
|
start_date: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入计划开始日期",
|
message: '请输入计划开始日期',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
end_date: [
|
end_date: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入计划结束日期",
|
message: '请输入计划结束日期',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
validator: chekcDate,
|
validator: chekcDate,
|
||||||
@ -579,194 +593,194 @@ const formRules = reactive<any>({
|
|||||||
performance_money: [
|
performance_money: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入履约金",
|
message: '请输入履约金',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
performance_money_expiration_time: [
|
performance_money_expiration_time: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入履约金到期时间",
|
message: '请输入履约金到期时间',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
payment_method: [
|
payment_method: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入合同付款方式",
|
message: '请输入合同付款方式',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
content: [
|
content: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入合同主要内容",
|
message: '请输入合同主要内容',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
signed_dept: [
|
signed_dept: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入签订部门",
|
message: '请输入签订部门',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
signed_head: [
|
signed_head: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入签订负责人",
|
message: '请输入签订负责人',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
supervise_dept: [
|
supervise_dept: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入监管部门",
|
message: '请输入监管部门',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
project_manager: [
|
project_manager: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入项目总监/经理",
|
message: '请输入项目总监/经理',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
implement_method: [
|
implement_method: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入实施方式",
|
message: '请输入实施方式',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
seal_name: [
|
seal_name: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入盖章名称",
|
message: '请输入盖章名称',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
is_limit: [
|
is_limit: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入是否限制",
|
message: '请输入是否限制',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
limit_num: [
|
limit_num: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入限制次数",
|
message: '请输入限制次数',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
file_type: [
|
file_type: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入文件类型",
|
message: '请输入文件类型',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
seal_num: [
|
seal_num: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入盖章份数",
|
message: '请输入盖章份数',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
seal_user: [
|
seal_user: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入盖章人",
|
message: '请输入盖章人',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
plance_seal: [
|
plance_seal: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入骑缝盖章",
|
message: '请输入骑缝盖章',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
send_date: [
|
send_date: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入发出日期",
|
message: '请输入发出日期',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
mailing_number: [
|
mailing_number: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入邮寄编号",
|
message: '请输入邮寄编号',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
review_status: [
|
review_status: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入评审状态",
|
message: '请输入评审状态',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
status: [
|
status: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入立项状态",
|
message: '请输入立项状态',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
create_user: [
|
create_user: [
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: "请输入录入人",
|
message: '请输入录入人',
|
||||||
trigger: ["blur"],
|
trigger: ['blur']
|
||||||
},
|
}
|
||||||
],
|
]
|
||||||
});
|
})
|
||||||
|
|
||||||
// 获取详情
|
// 获取详情
|
||||||
const setFormData = async (data: Record<any, any>) => {
|
const setFormData = async (data: Record<any, any>) => {
|
||||||
for (const key in formData) {
|
for (const key in formData) {
|
||||||
if (data[key] != null && data[key] != undefined) {
|
if (data[key] != null && data[key] != undefined) {
|
||||||
//@ts-ignore
|
//@ts-ignore
|
||||||
formData[key] = data[key];
|
formData[key] = data[key]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
|
||||||
const getDetail = async (row: Record<string, any>) => {
|
const getDetail = async (row: Record<string, any>) => {
|
||||||
const data = await apiMarketingContractDetail({
|
const data = await apiMarketingContractDetail({
|
||||||
id: row.id,
|
id: row.id
|
||||||
});
|
})
|
||||||
setFormData(data);
|
setFormData(data)
|
||||||
};
|
}
|
||||||
|
|
||||||
// 提交按钮
|
// 提交按钮
|
||||||
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 open = (type = "add") => {
|
const open = (type = 'add') => {
|
||||||
mode.value = type;
|
mode.value = type
|
||||||
popupRef.value?.open();
|
popupRef.value?.open()
|
||||||
};
|
}
|
||||||
|
|
||||||
// 关闭回调
|
// 关闭回调
|
||||||
const handleClose = () => {
|
const handleClose = () => {
|
||||||
emit("close");
|
emit('close')
|
||||||
};
|
}
|
||||||
|
|
||||||
defineExpose({
|
defineExpose({
|
||||||
open,
|
open,
|
||||||
setFormData,
|
setFormData,
|
||||||
getDetail,
|
getDetail
|
||||||
});
|
})
|
||||||
</script>
|
</script>
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="edit-popup">
|
<div class="edit-popup">
|
||||||
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit" @close="handleClose">
|
<popup ref="popupRef" :title="popupTitle" :async="true" width="80vw" @confirm="handleSubmit"
|
||||||
|
@close="handleClose">
|
||||||
<el-form ref="formRef" :model="formData" label-width="160px" :rules="formRules">
|
<el-form ref="formRef" :model="formData" label-width="160px" :rules="formRules">
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
@ -20,12 +21,11 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="重要等级" prop="important_level">
|
<el-form-item label="重要等级" prop="important_level">
|
||||||
<el-select v-model="formData.important_level" placeholder="请选择重要等级" class=" flex-1">
|
<el-select v-model="formData.important_level" placeholder="请选择重要等级" class="flex-1">
|
||||||
<el-option :label="item.name" :value="parseInt(item.value)"
|
<el-option :label="item.name" :value="parseInt(item.value)"
|
||||||
v-for="item in dictData.custom_important_level">
|
v-for="item in dictData.custom_important_level">
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
@ -38,8 +38,8 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="客户分类" prop="category">
|
<el-form-item label="客户分类" prop="category">
|
||||||
<el-select v-model="formData.category" placeholder="请选择客户分类" class=" flex-1">
|
<el-select v-model="formData.category" placeholder="请选择客户分类" class="flex-1">
|
||||||
<el-option :label="item.name" :value="(item.value)"
|
<el-option :label="item.name" :value="item.value"
|
||||||
v-for="item in dictData.custom_category">
|
v-for="item in dictData.custom_category">
|
||||||
</el-option>
|
</el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
@ -95,18 +95,18 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="所在省份" prop="province">
|
<el-form-item label="所在省份" prop="province">
|
||||||
<el-select v-model="formData.province" clearable placeholder="请选择省" @change="province_change"
|
<el-select v-model="formData.province" clearable placeholder="请选择省"
|
||||||
class="flex-1">
|
@change="province_change" class="flex-1">
|
||||||
<el-option v-for="(item, index) in datas.provinceOptions" :key="index"
|
<el-option v-for="(item, index) in datas.provinceOptions" :key="index"
|
||||||
:label="item.province_name" :value="(item.province_code)" />
|
:label="item.province_name" :value="item.province_code" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="所在市区" prop="city">
|
<el-form-item label="所在市区" prop="city">
|
||||||
<el-select v-model="formData.city" clearable placeholder="请选择市" class="flex-1">
|
<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"
|
<el-option v-for="(item, index) in datas.cityOptions" :key="index"
|
||||||
:value="(item.city_code)" />
|
:label="item.city_name" :value="item.city_code" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -144,7 +144,6 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
||||||
<formTable :formData="formData.detail" :config="tableConfig" :dictData="dictData">
|
<formTable :formData="formData.detail" :config="tableConfig" :dictData="dictData">
|
||||||
</formTable>
|
</formTable>
|
||||||
</el-form>
|
</el-form>
|
||||||
@ -155,11 +154,16 @@
|
|||||||
<script lang="ts" setup name="marketingCustomEdit">
|
<script lang="ts" setup name="marketingCustomEdit">
|
||||||
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 { apiMarketingCustomAdd, apiMarketingCustomEdit, apiMarketingCustomDetail, apiMarketingCustomContactsLists, apiMarketingCustomContactsDelete } from '@/api/marketing_custom'
|
import {
|
||||||
import { checkPhone, checkEmail } from "@/utils/validate"
|
apiMarketingCustomAdd,
|
||||||
|
apiMarketingCustomEdit,
|
||||||
|
apiMarketingCustomDetail,
|
||||||
|
apiMarketingCustomContactsLists,
|
||||||
|
apiMarketingCustomContactsDelete
|
||||||
|
} from '@/api/marketing_custom'
|
||||||
|
import { checkPhone, checkEmail } from '@/utils/validate'
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
import { apiCityList, apiProvinceList } from "@/api/common";
|
import { apiCityList, apiProvinceList } from '@/api/common'
|
||||||
|
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
dictData: {
|
dictData: {
|
||||||
@ -173,7 +177,6 @@ const formRef = shallowRef<FormInstance>()
|
|||||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||||
const mode = ref('add')
|
const mode = ref('add')
|
||||||
|
|
||||||
|
|
||||||
// 弹窗标题
|
// 弹窗标题
|
||||||
const popupTitle = computed(() => {
|
const popupTitle = computed(() => {
|
||||||
return mode.value == 'edit' ? '编辑市场经营--客户信息' : '新增市场经营--客户信息'
|
return mode.value == 'edit' ? '编辑市场经营--客户信息' : '新增市场经营--客户信息'
|
||||||
@ -181,8 +184,8 @@ const popupTitle = computed(() => {
|
|||||||
|
|
||||||
const datas = reactive({
|
const datas = reactive({
|
||||||
provinceOptions: [],
|
provinceOptions: [],
|
||||||
cityOptions: [],
|
cityOptions: []
|
||||||
});
|
})
|
||||||
|
|
||||||
// 表单数据
|
// 表单数据
|
||||||
const formData = reactive({
|
const formData = reactive({
|
||||||
@ -214,211 +217,244 @@ const formData = reactive({
|
|||||||
create_time: '',
|
create_time: '',
|
||||||
detail: [
|
detail: [
|
||||||
{
|
{
|
||||||
"name": "",
|
name: '',
|
||||||
"dept": "",
|
dept: '',
|
||||||
"gender": 0,
|
gender: 0,
|
||||||
"job": "",
|
job: '',
|
||||||
"mobile": "",
|
mobile: '',
|
||||||
"telephone": "",
|
telephone: '',
|
||||||
"email": "",
|
email: '',
|
||||||
"qq": "",
|
qq: '',
|
||||||
"remark": ""
|
remark: ''
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const tableConfig = reactive({
|
||||||
const tableConfig = reactive(
|
title: '联系人',
|
||||||
{
|
tableConfig: [
|
||||||
title: "联系人",
|
{
|
||||||
tableConfig: [
|
label: '姓名',
|
||||||
{
|
value: 'name'
|
||||||
label: "姓名",
|
},
|
||||||
value: 'name',
|
{
|
||||||
|
label: '部门',
|
||||||
},
|
value: 'dept'
|
||||||
{
|
},
|
||||||
label: "部门",
|
{
|
||||||
value: 'dept',
|
label: '性别',
|
||||||
|
value: 'gender',
|
||||||
},
|
select: [
|
||||||
{
|
{
|
||||||
label: "性别",
|
|
||||||
value: 'gender',
|
|
||||||
select: [{
|
|
||||||
name: '男',
|
name: '男',
|
||||||
value: 0
|
value: 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '女',
|
name: '女',
|
||||||
value: 1
|
value: 1
|
||||||
},
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
},
|
{
|
||||||
{
|
label: '职务',
|
||||||
label: "职务",
|
value: 'job'
|
||||||
value: 'job',
|
},
|
||||||
},
|
{
|
||||||
{
|
label: '手机',
|
||||||
label: "手机",
|
value: 'mobile',
|
||||||
value: 'mobile',
|
check: ['detail', checkPhone]
|
||||||
check: ['detail', checkPhone]
|
},
|
||||||
},
|
{
|
||||||
{
|
label: '电话',
|
||||||
label: "电话",
|
value: 'telephone'
|
||||||
value: 'telephone',
|
},
|
||||||
},
|
{
|
||||||
{
|
label: '邮箱',
|
||||||
label: "邮箱",
|
value: 'email',
|
||||||
value: 'email',
|
check: ['detail', checkEmail]
|
||||||
check: ['detail', checkEmail]
|
},
|
||||||
},
|
{
|
||||||
{
|
label: 'qq',
|
||||||
label: "qq",
|
value: 'qq'
|
||||||
value: 'qq',
|
},
|
||||||
},
|
{
|
||||||
{
|
label: '备注',
|
||||||
label: "备注",
|
value: 'remark'
|
||||||
value: 'remark',
|
}
|
||||||
},
|
],
|
||||||
|
deleteApi: apiMarketingCustomContactsDelete
|
||||||
],
|
})
|
||||||
deleteApi: apiMarketingCustomContactsDelete,
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 表单验证
|
// 表单验证
|
||||||
const formRules = reactive<any>({
|
const formRules = reactive<any>({
|
||||||
name: [{
|
name: [
|
||||||
required: true,
|
{
|
||||||
message: '请输入客户名称',
|
required: true,
|
||||||
trigger: ['blur']
|
message: '请输入客户名称',
|
||||||
}],
|
trigger: ['blur']
|
||||||
sub_name: [{
|
}
|
||||||
required: true,
|
],
|
||||||
message: '请输入客户简称',
|
sub_name: [
|
||||||
trigger: ['blur']
|
{
|
||||||
}],
|
required: true,
|
||||||
code: [{
|
message: '请输入客户简称',
|
||||||
required: true,
|
trigger: ['blur']
|
||||||
message: '请输入客户编号',
|
}
|
||||||
trigger: ['blur']
|
],
|
||||||
}],
|
code: [
|
||||||
important_level: [{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入重要等级',
|
message: '请输入客户编号',
|
||||||
trigger: ['blur']
|
trigger: ['blur']
|
||||||
}],
|
}
|
||||||
dept_id: [{
|
],
|
||||||
required: true,
|
important_level: [
|
||||||
message: '请输入负责部门',
|
{
|
||||||
trigger: ['blur']
|
required: true,
|
||||||
}],
|
message: '请输入重要等级',
|
||||||
category: [{
|
trigger: ['blur']
|
||||||
required: true,
|
}
|
||||||
message: '请输入客户分类',
|
],
|
||||||
trigger: ['blur']
|
dept_id: [
|
||||||
}],
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入负责部门',
|
||||||
|
trigger: ['blur']
|
||||||
|
}
|
||||||
|
],
|
||||||
|
category: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入客户分类',
|
||||||
|
trigger: ['blur']
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
invoice_company: [{
|
invoice_company: [
|
||||||
required: true,
|
{
|
||||||
message: '请输入开票单位',
|
required: true,
|
||||||
trigger: ['blur']
|
message: '请输入开票单位',
|
||||||
}],
|
trigger: ['blur']
|
||||||
taxpayer_identification_number: [{
|
}
|
||||||
required: true,
|
],
|
||||||
message: '请输入纳税人识别号',
|
taxpayer_identification_number: [
|
||||||
trigger: ['blur']
|
{
|
||||||
}],
|
required: true,
|
||||||
opening_bank: [{
|
message: '请输入纳税人识别号',
|
||||||
required: true,
|
trigger: ['blur']
|
||||||
message: '请输入开户银行',
|
}
|
||||||
trigger: ['blur']
|
],
|
||||||
}],
|
opening_bank: [
|
||||||
invoice_contact: [{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入开票联系人',
|
message: '请输入开户银行',
|
||||||
trigger: ['blur']
|
trigger: ['blur']
|
||||||
}],
|
}
|
||||||
invoice_company_address: [{
|
],
|
||||||
required: true,
|
invoice_contact: [
|
||||||
message: '请输入开票单位注册地址',
|
{
|
||||||
trigger: ['blur']
|
required: true,
|
||||||
}],
|
message: '请输入开票联系人',
|
||||||
invoice_company_telephone: [{
|
trigger: ['blur']
|
||||||
required: true,
|
}
|
||||||
message: '请输入开票单位电话',
|
],
|
||||||
trigger: ['blur']
|
invoice_company_address: [
|
||||||
}],
|
{
|
||||||
opening_bank_account: [{
|
required: true,
|
||||||
required: true,
|
message: '请输入开票单位注册地址',
|
||||||
message: '请输入开户账号',
|
trigger: ['blur']
|
||||||
trigger: ['blur']
|
}
|
||||||
}],
|
],
|
||||||
email: [{
|
invoice_company_telephone: [
|
||||||
required: true,
|
{
|
||||||
message: '请输入电子邮箱',
|
required: true,
|
||||||
trigger: ['blur']
|
message: '请输入开票单位电话',
|
||||||
},
|
trigger: ['blur']
|
||||||
{
|
}
|
||||||
validator: checkEmail,
|
],
|
||||||
trigger: ['blur']
|
opening_bank_account: [
|
||||||
}],
|
{
|
||||||
province: [{
|
required: true,
|
||||||
required: true,
|
message: '请输入开户账号',
|
||||||
message: '请输入省份',
|
trigger: ['blur']
|
||||||
trigger: ['blur']
|
}
|
||||||
}],
|
],
|
||||||
city: [{
|
// email: [{
|
||||||
required: true,
|
// required: true,
|
||||||
message: '请输入城市',
|
// message: '请输入电子邮箱',
|
||||||
trigger: ['blur']
|
// trigger: ['blur']
|
||||||
}],
|
// },
|
||||||
post_code: [{
|
// {
|
||||||
required: true,
|
// validator: checkEmail,
|
||||||
message: '请输入邮编',
|
// trigger: ['blur']
|
||||||
trigger: ['blur']
|
// }],
|
||||||
}],
|
province: [
|
||||||
telephone: [{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入电话',
|
message: '请输入省份',
|
||||||
trigger: ['blur']
|
trigger: ['blur']
|
||||||
}],
|
}
|
||||||
|
],
|
||||||
|
city: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入城市',
|
||||||
|
trigger: ['blur']
|
||||||
|
}
|
||||||
|
],
|
||||||
|
post_code: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入邮编',
|
||||||
|
trigger: ['blur']
|
||||||
|
}
|
||||||
|
],
|
||||||
|
// telephone: [{
|
||||||
|
// required: true,
|
||||||
|
// message: '请输入电话',
|
||||||
|
// trigger: ['blur']
|
||||||
|
// }],
|
||||||
// {
|
// {
|
||||||
// validator: checkPhone,
|
// validator: checkPhone,
|
||||||
// trigger: ['blur']
|
// trigger: ['blur']
|
||||||
// }],
|
// }],
|
||||||
fax: [{
|
fax: [
|
||||||
required: true,
|
{
|
||||||
message: '请输入传真',
|
required: true,
|
||||||
trigger: ['blur']
|
message: '请输入传真',
|
||||||
}],
|
trigger: ['blur']
|
||||||
website: [{
|
}
|
||||||
required: true,
|
],
|
||||||
message: '请输入网址',
|
website: [
|
||||||
trigger: ['blur']
|
{
|
||||||
}],
|
required: true,
|
||||||
address: [{
|
message: '请输入网址',
|
||||||
required: true,
|
trigger: ['blur']
|
||||||
message: '请输入地址',
|
}
|
||||||
trigger: ['blur']
|
],
|
||||||
}],
|
address: [
|
||||||
create_user: [{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
message: '请输入录入人',
|
message: '请输入地址',
|
||||||
trigger: ['blur']
|
trigger: ['blur']
|
||||||
}],
|
}
|
||||||
create_time: [{
|
],
|
||||||
required: true,
|
create_user: [
|
||||||
message: '请输入录入日期',
|
{
|
||||||
trigger: ['blur']
|
required: true,
|
||||||
}]
|
message: '请输入录入人',
|
||||||
|
trigger: ['blur']
|
||||||
|
}
|
||||||
|
],
|
||||||
|
create_time: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入录入日期',
|
||||||
|
trigger: ['blur']
|
||||||
|
}
|
||||||
|
]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
// 获取详情
|
// 获取详情
|
||||||
const setFormData = async (data: Record<any, any>) => {
|
const setFormData = async (data: Record<any, any>) => {
|
||||||
for (const key in formData) {
|
for (const key in formData) {
|
||||||
@ -427,11 +463,9 @@ const setFormData = async (data: Record<any, any>) => {
|
|||||||
formData[key] = data[key]
|
formData[key] = data[key]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let res = await apiMarketingCustomContactsLists({ custom_id: data.id })
|
const res = await apiMarketingCustomContactsLists({ custom_id: data.id })
|
||||||
formData.detail = res.lists
|
formData.detail = res.lists
|
||||||
getCityList();
|
getCityList()
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const getDetail = async (row: Record<string, any>) => {
|
const getDetail = async (row: Record<string, any>) => {
|
||||||
@ -441,14 +475,11 @@ const getDetail = async (row: Record<string, any>) => {
|
|||||||
setFormData(data)
|
setFormData(data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 提交按钮
|
// 提交按钮
|
||||||
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 apiMarketingCustomEdit(data) : await apiMarketingCustomAdd(data)
|
||||||
? await apiMarketingCustomEdit(data)
|
|
||||||
: await apiMarketingCustomAdd(data)
|
|
||||||
popupRef.value?.close()
|
popupRef.value?.close()
|
||||||
emit('success')
|
emit('success')
|
||||||
}
|
}
|
||||||
@ -465,18 +496,18 @@ const handleClose = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const getProvinceList = async () => {
|
const getProvinceList = async () => {
|
||||||
const data = await apiProvinceList({});
|
const data = await apiProvinceList({})
|
||||||
datas["provinceOptions"] = data;
|
datas['provinceOptions'] = data
|
||||||
};
|
}
|
||||||
const getCityList = async () => {
|
const getCityList = async () => {
|
||||||
const data = await apiCityList({ province_code: formData.province });
|
const data = await apiCityList({ province_code: formData.province })
|
||||||
datas["cityOptions"] = data;
|
datas['cityOptions'] = data
|
||||||
};
|
}
|
||||||
|
|
||||||
//获取市区
|
//获取市区
|
||||||
function province_change(value: string) {
|
function province_change (value: string) {
|
||||||
formData.city = ''
|
formData.city = ''
|
||||||
getCityList();
|
getCityList()
|
||||||
}
|
}
|
||||||
|
|
||||||
getProvinceList()
|
getProvinceList()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user