pull/781/head
parent
9778b673bc
commit
b90a48337c
|
|
@ -62,8 +62,8 @@ export const getSimpleBusinessList = async () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获得 CRM 我的商机列表
|
// 获得 CRM 我的商机列表
|
||||||
export const getSelfSimpleBusinessList = async () => {
|
export const getSelfSimpleBusinessList = async (params: any) => {
|
||||||
return await request.get({ url: `/crm/business/self-simple-list` })
|
return await request.get({ url: `/crm/business/self-simple-list`, params })
|
||||||
}
|
}
|
||||||
|
|
||||||
// 新增 CRM 商机
|
// 新增 CRM 商机
|
||||||
|
|
|
||||||
|
|
@ -69,12 +69,7 @@ export default defineComponent({
|
||||||
{size.value ? (
|
{size.value ? (
|
||||||
<SizeDropdown class="custom-hover" color="var(--top-header-text-color)"></SizeDropdown>
|
<SizeDropdown class="custom-hover" color="var(--top-header-text-color)"></SizeDropdown>
|
||||||
) : undefined}
|
) : undefined}
|
||||||
{locale.value ? (
|
|
||||||
<LocaleDropdown
|
|
||||||
class="custom-hover"
|
|
||||||
color="var(--top-header-text-color)"
|
|
||||||
></LocaleDropdown>
|
|
||||||
) : undefined}
|
|
||||||
{message.value ? (
|
{message.value ? (
|
||||||
<Message class="custom-hover" color="var(--top-header-text-color)"></Message>
|
<Message class="custom-hover" color="var(--top-header-text-color)"></Message>
|
||||||
) : undefined}
|
) : undefined}
|
||||||
|
|
|
||||||
|
|
@ -159,6 +159,7 @@
|
||||||
clearable
|
clearable
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
multiple
|
multiple
|
||||||
|
filterable
|
||||||
placeholder="请选择抄送人"
|
placeholder="请选择抄送人"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
|
|
@ -212,7 +213,7 @@
|
||||||
label-width="100px"
|
label-width="100px"
|
||||||
>
|
>
|
||||||
<el-form-item label="新审批人" prop="assigneeUserId">
|
<el-form-item label="新审批人" prop="assigneeUserId">
|
||||||
<el-select v-model="transferForm.assigneeUserId" clearable style="width: 100%">
|
<el-select filterable v-model="transferForm.assigneeUserId" clearable style="width: 100%">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in userOptions"
|
v-for="item in userOptions"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
|
|
@ -264,7 +265,7 @@
|
||||||
label-width="100px"
|
label-width="100px"
|
||||||
>
|
>
|
||||||
<el-form-item label="接收人" prop="delegateUserId">
|
<el-form-item label="接收人" prop="delegateUserId">
|
||||||
<el-select v-model="delegateForm.delegateUserId" clearable style="width: 100%">
|
<el-select filterable v-model="delegateForm.delegateUserId" clearable style="width: 100%">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in userOptions"
|
v-for="item in userOptions"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
|
|
@ -316,7 +317,7 @@
|
||||||
label-width="100px"
|
label-width="100px"
|
||||||
>
|
>
|
||||||
<el-form-item label="加签处理人" prop="addSignUserIds">
|
<el-form-item label="加签处理人" prop="addSignUserIds">
|
||||||
<el-select v-model="addSignForm.addSignUserIds" multiple clearable style="width: 100%">
|
<el-select filterable v-model="addSignForm.addSignUserIds" multiple clearable style="width: 100%">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in userOptions"
|
v-for="item in userOptions"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
|
|
@ -370,7 +371,7 @@
|
||||||
label-width="100px"
|
label-width="100px"
|
||||||
>
|
>
|
||||||
<el-form-item label="减签人员" prop="deleteSignTaskId">
|
<el-form-item label="减签人员" prop="deleteSignTaskId">
|
||||||
<el-select v-model="deleteSignForm.deleteSignTaskId" clearable style="width: 100%">
|
<el-select filterable v-model="deleteSignForm.deleteSignTaskId" clearable style="width: 100%">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in runningTask.children"
|
v-for="item in runningTask.children"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="客户名称" prop="customerId">
|
<el-form-item label="客户名称" prop="customerId">
|
||||||
<SelectComponent :customerList="customerList" @change="changeCustomer" :disabled="formData.customerDefault || type || route.query.bizId" v-model="formData.customerId" />
|
<SelectComponent :customerList="customerList" @change="changeCustomer" :disabled="formData.customerDefault || type || route.query.bizId || formType" v-model="formData.customerId" />
|
||||||
<!-- <el-select
|
<!-- <el-select
|
||||||
:disabled="formData.customerDefault || type"
|
:disabled="formData.customerDefault || type"
|
||||||
v-model="formData.customerId"
|
v-model="formData.customerId"
|
||||||
|
|
@ -163,7 +163,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="账期" prop="paymentTerm">
|
<el-form-item label="账期" prop="paymentTerm">
|
||||||
<el-select v-model="formData.paymentTerm" :disabled="type" clearable placeholder="请选择账期">
|
<el-select v-model="formData.paymentTerm" filterable :disabled="type" clearable placeholder="请选择账期">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in getStrDictOptions(DICT_TYPE.PAYMENT_TERM)"
|
v-for="dict in getStrDictOptions(DICT_TYPE.PAYMENT_TERM)"
|
||||||
:key="dict.value"
|
:key="dict.value"
|
||||||
|
|
@ -392,7 +392,6 @@ watch(
|
||||||
let totalOfflinePrice = 0;
|
let totalOfflinePrice = 0;
|
||||||
|
|
||||||
for (const product of newProducts) {
|
for (const product of newProducts) {
|
||||||
console.log('%csrc/views/crm/business/BusinessForm.vue:381 22222', 'color: #007acc;', product,22222);
|
|
||||||
if (typeof product.onlinePrice) {
|
if (typeof product.onlinePrice) {
|
||||||
totalOnlinePrice += Number(product.onlinePrice);
|
totalOnlinePrice += Number(product.onlinePrice);
|
||||||
}
|
}
|
||||||
|
|
@ -529,7 +528,6 @@ const changeDifficult = (val) => {
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
console.log('%csrc/views/crm/business/BusinessForm.vue:516 getIntDictOptions(DICT_TYPE.CRM_PRODUCT_CATEGORY)', 'color: #007acc;', getIntDictOptions(DICT_TYPE.CRM_PRODUCT_CATEGORY));
|
|
||||||
const customerId = route.query.customerId;
|
const customerId = route.query.customerId;
|
||||||
formData.value.customerId = Number(route.query.bizId) || ''
|
formData.value.customerId = Number(route.query.bizId) || ''
|
||||||
formData.value.clueDeveloper = Number(route.query.clueDeveloper) || ''
|
formData.value.clueDeveloper = Number(route.query.clueDeveloper) || ''
|
||||||
|
|
|
||||||
|
|
@ -165,6 +165,7 @@
|
||||||
<el-button
|
<el-button
|
||||||
v-hasPermi="['crm:business:delete']"
|
v-hasPermi="['crm:business:delete']"
|
||||||
link
|
link
|
||||||
|
v-if="scope.row.saleStage != 2"
|
||||||
type="danger"
|
type="danger"
|
||||||
@click="handleDelete(scope.row.id)"
|
@click="handleDelete(scope.row.id)"
|
||||||
>
|
>
|
||||||
|
|
@ -297,7 +298,7 @@ const handleExport = async () => {
|
||||||
|
|
||||||
/** 初始化 **/
|
/** 初始化 **/
|
||||||
onMounted( async () => {
|
onMounted( async () => {
|
||||||
customerList.value = await CustomerApi.getCustomerSimpleList()
|
customerList.value = await CustomerApi.getSelfCustomerSimpleList()
|
||||||
getList()
|
getList()
|
||||||
})
|
})
|
||||||
onActivated(()=>{
|
onActivated(()=>{
|
||||||
|
|
|
||||||
|
|
@ -284,7 +284,6 @@ const open = async (type: string, id?: number, customerId?: number, businessId?:
|
||||||
formLoading.value = false
|
formLoading.value = false
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
console.log('%csrc/views/crm/contact/ContactForm.vue:229 customerId', 'color: #007acc;', customerId);
|
|
||||||
if (customerId) {
|
if (customerId) {
|
||||||
changeCustomerId(customerId)
|
changeCustomerId(customerId)
|
||||||
formData.value.customerId = customerId
|
formData.value.customerId = customerId
|
||||||
|
|
@ -294,7 +293,6 @@ const open = async (type: string, id?: number, customerId?: number, businessId?:
|
||||||
if (businessId) {
|
if (businessId) {
|
||||||
formData.value.businessId = businessId
|
formData.value.businessId = businessId
|
||||||
}
|
}
|
||||||
console.log('%csrc/views/crm/contact/ContactForm.vue:273 formData.customerId', 'color: #007acc;', formData.value);
|
|
||||||
}
|
}
|
||||||
// 获得联系人列表
|
// 获得联系人列表
|
||||||
contactList.value = await ContactApi.getSimpleContactList()
|
contactList.value = await ContactApi.getSimpleContactList()
|
||||||
|
|
|
||||||
|
|
@ -315,7 +315,7 @@ const openCustomerDetail = (id: number) => {
|
||||||
/** 初始化 **/
|
/** 初始化 **/
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
await getList()
|
await getList()
|
||||||
customerList.value = await CustomerApi.getCustomerSimpleList()
|
customerList.value = await CustomerApi.getSelfCustomerSimpleList()
|
||||||
})
|
})
|
||||||
onActivated(()=>{
|
onActivated(()=>{
|
||||||
getList()
|
getList()
|
||||||
|
|
|
||||||
|
|
@ -359,7 +359,7 @@ if(contractFormRef.value) {
|
||||||
// 提交请求
|
// 提交请求
|
||||||
formLoading.value = true
|
formLoading.value = true
|
||||||
try {
|
try {
|
||||||
const data = unref(JSON.parse(JSON.stringify(formData.value))) as unknown as ContractApi.ContractVO
|
let data = unref(JSON.parse(JSON.stringify(formData.value))) as unknown as ContractApi.ContractVO
|
||||||
// 拼接子表的数据
|
// 拼接子表的数据
|
||||||
let proChangeObj = {
|
let proChangeObj = {
|
||||||
1: limitFormRef,
|
1: limitFormRef,
|
||||||
|
|
@ -369,8 +369,20 @@ if(contractFormRef.value) {
|
||||||
5: contractAAuthorizedCompanyFormRef1,
|
5: contractAAuthorizedCompanyFormRef1,
|
||||||
6: contractFormRef
|
6: contractFormRef
|
||||||
}
|
}
|
||||||
|
let proChangeData = {
|
||||||
|
1: 'limitFormRef',
|
||||||
|
2: 'contractAAuthorizedPersons',
|
||||||
|
3: 'contractExtensionFormRef',
|
||||||
|
4: 'contractStopFormRef',
|
||||||
|
5: 'contractAAuthorizedCompanyFormRef1',
|
||||||
|
6: 'contractFormRef'
|
||||||
|
}
|
||||||
let dataFormList = proChangeObj[formData.value.changeItem].value.getData()
|
let dataFormList = proChangeObj[formData.value.changeItem].value.getData()
|
||||||
data[proChangeObj[formData.value.changeItem]] = dataFormList
|
if(formData.value.changeItem == 2 || formData.value.changeItem == 5) {
|
||||||
|
data[proChangeData[formData.value.changeItem]] = dataFormList
|
||||||
|
} else {
|
||||||
|
data = Object.assign(data, dataFormList)
|
||||||
|
}
|
||||||
if(formData.value.changeItem == 1) {
|
if(formData.value.changeItem == 1) {
|
||||||
data.changeAmount = dataFormList.changeAmount
|
data.changeAmount = dataFormList.changeAmount
|
||||||
data.changeAmountDeadline = dataFormList.changeAmountDeadline
|
data.changeAmountDeadline = dataFormList.changeAmountDeadline
|
||||||
|
|
|
||||||
|
|
@ -329,6 +329,30 @@
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="违约金比例(%)" prop="penaltyRate">
|
||||||
|
<el-select v-model="formData.penaltyRate" placeholder="请选择违约金比例">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_CONTRACT_PENALTY_RATE)"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="延期付款利率(%)" prop="latePaymentRate">
|
||||||
|
<el-select v-model="formData.latePaymentRate" placeholder="请选择延期付款利率">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_CONTRACT_LATE_PAYMENT_RATE)"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="合同签订日期" prop="startTime">
|
<el-form-item label="合同签订日期" prop="startTime">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
|
|
@ -361,30 +385,7 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="违约金比例(%)" prop="penaltyRate">
|
|
||||||
<el-select v-model="formData.penaltyRate" placeholder="请选择违约金比例">
|
|
||||||
<el-option
|
|
||||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_CONTRACT_PENALTY_RATE)"
|
|
||||||
:key="dict.value"
|
|
||||||
:label="dict.label"
|
|
||||||
:value="dict.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="延期付款利率(%)" prop="latePaymentRate">
|
|
||||||
<el-select v-model="formData.latePaymentRate" placeholder="请选择延期付款利率">
|
|
||||||
<el-option
|
|
||||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_CONTRACT_LATE_PAYMENT_RATE)"
|
|
||||||
:key="dict.value"
|
|
||||||
:label="dict.label"
|
|
||||||
:value="dict.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="账单日" prop="statementDate">
|
<el-form-item label="账单日" prop="statementDate">
|
||||||
<el-select v-model="formData.statementDate" disabled placeholder="请选择账单日" >
|
<el-select v-model="formData.statementDate" disabled placeholder="请选择账单日" >
|
||||||
|
|
@ -430,36 +431,7 @@
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col> -->
|
</el-col> -->
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="维护人" prop="afterSaleUserId">
|
|
||||||
<el-select v-model="formData.afterSaleUserId" disabled placeholder="请选择售后维护人">
|
|
||||||
<el-option
|
|
||||||
v-for="dict in userOptions"
|
|
||||||
:key="dict.id"
|
|
||||||
:label="dict.nickname"
|
|
||||||
:value="dict.id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="拓展人" prop="clueDeveloper">
|
|
||||||
<el-select
|
|
||||||
class="w-1/1"
|
|
||||||
placeholder="请选择拓展人"
|
|
||||||
disabled
|
|
||||||
v-model="formData.clueDeveloper"
|
|
||||||
filterable
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in userOptions"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.nickname"
|
|
||||||
:value="item.id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="服务对接人" prop="servicor">
|
<el-form-item label="服务对接人" prop="servicor">
|
||||||
<el-select
|
<el-select
|
||||||
|
|
@ -511,6 +483,36 @@
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="维护人" prop="afterSaleUserId">
|
||||||
|
<el-select v-model="formData.afterSaleUserId" disabled placeholder="请选择售后维护人">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in userOptions"
|
||||||
|
:key="dict.id"
|
||||||
|
:label="dict.nickname"
|
||||||
|
:value="dict.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="拓展人" prop="clueDeveloper">
|
||||||
|
<el-select
|
||||||
|
class="w-1/1"
|
||||||
|
placeholder="请选择拓展人"
|
||||||
|
disabled
|
||||||
|
v-model="formData.clueDeveloper"
|
||||||
|
filterable
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in userOptions"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.nickname"
|
||||||
|
:value="item.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
<!-- <el-col :span="8">
|
<!-- <el-col :span="8">
|
||||||
<el-form-item label="维护人" prop="afterSaleUserId">
|
<el-form-item label="维护人" prop="afterSaleUserId">
|
||||||
<el-select v-model="formData.afterSaleUserId" placeholder="请选择售后维护人">
|
<el-select v-model="formData.afterSaleUserId" placeholder="请选择售后维护人">
|
||||||
|
|
@ -561,13 +563,13 @@
|
||||||
/>
|
/>
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
<ContentWrap style="border: none;font-weight:700">
|
<ContentWrap style="border: none;font-weight:700">
|
||||||
合同甲方关联单位
|
<span style="color: #f56c6c">*</span> 合同甲方关联单位
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
<ContentWrap>
|
<ContentWrap>
|
||||||
<ContractAAuthorizedCompanyForm :formFields="formFields" ref="contractAAuthorizedCompanyFormRef" :data="formData.contractAAuthorizedCompanys" :contract-id="formData.id" :customerId="formData.customerId" />
|
<ContractAAuthorizedCompanyForm :formFields="formFields" ref="contractAAuthorizedCompanyFormRef" :data="formData.contractAAuthorizedCompanys" :contract-id="formData.id" :customerId="formData.customerId" />
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
<ContentWrap style="border: none;font-weight:700">
|
<ContentWrap style="border: none;font-weight:700">
|
||||||
合同甲方授权人信息
|
<span style="color: #f56c6c">*</span> 合同甲方授权人信息
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
<ContentWrap>
|
<ContentWrap>
|
||||||
<ContractAAuthorizedPersonForm :formFields="formFields" ref="contractAAuthorizedPersonFormRef" :contract-id="formData.id" :customerId="formData.customerId" />
|
<ContractAAuthorizedPersonForm :formFields="formFields" ref="contractAAuthorizedPersonFormRef" :contract-id="formData.id" :customerId="formData.customerId" />
|
||||||
|
|
|
||||||
|
|
@ -13,10 +13,10 @@
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="formData.terminationDate"
|
v-model="formData.terminationDate"
|
||||||
type="date"
|
type="date"
|
||||||
:disabled="formFields.changeAmount !== 2 || isTrue"
|
:disabled="formFields.terminationDate !== 2 || isTrue"
|
||||||
value-format="x"
|
value-format="x"
|
||||||
placeholder="请选择终止日期"
|
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
|
placeholder="请选择终止日期"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
@ -24,7 +24,7 @@
|
||||||
<template #terminationReason>
|
<template #terminationReason>
|
||||||
<el-col :span="16">
|
<el-col :span="16">
|
||||||
<el-form-item label="终止原因" prop="terminationReason">
|
<el-form-item label="终止原因" prop="terminationReason">
|
||||||
<el-radio-group v-model="formData.terminationReason" :disabled="formFields.changeAmount !== 2 || isTrue">
|
<el-radio-group v-model="formData.terminationReason" :disabled="formFields.terminationReason !== 2 || isTrue">
|
||||||
<el-radio :label="1">合同到期</el-radio>
|
<el-radio :label="1">合同到期</el-radio>
|
||||||
<el-radio :label="2">甲方违反协议</el-radio>
|
<el-radio :label="2">甲方违反协议</el-radio>
|
||||||
<el-radio :label="3">乙方不可抗力</el-radio>
|
<el-radio :label="3">乙方不可抗力</el-radio>
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
<template #note>
|
<template #note>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="终止说明" prop="note">
|
<el-form-item label="终止说明" prop="note">
|
||||||
<el-input v-model="formData.note" :disabled="formFields.changeAmount !== 2 || isTrue" type="textarea" :row="5" placeholder="必须确保账款已全部回收" />
|
<el-input v-model="formData.note" :disabled="formFields.note !== 2 || isTrue" type="textarea" :row="5" placeholder="必须确保账款已全部回收" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -61,6 +61,7 @@ const props = defineProps<{
|
||||||
formFields: {},
|
formFields: {},
|
||||||
isTrue: false
|
isTrue: false
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
const { t } = useI18n() // 国际化
|
const { t } = useI18n() // 国际化
|
||||||
const message = useMessage() // 消息弹窗
|
const message = useMessage() // 消息弹窗
|
||||||
const customerList = ref([]) // 客户列表的数据
|
const customerList = ref([]) // 客户列表的数据
|
||||||
|
|
@ -87,6 +88,20 @@ const formRules = reactive({
|
||||||
terminationReason: [{ required: true, message: '终止原因不能为空', trigger: 'change' }],
|
terminationReason: [{ required: true, message: '终止原因不能为空', trigger: 'change' }],
|
||||||
terminationDate: [{ required: true, message: '终止日期不能为空', trigger: 'blur' }],
|
terminationDate: [{ required: true, message: '终止日期不能为空', trigger: 'blur' }],
|
||||||
})
|
})
|
||||||
|
|
||||||
|
watch(
|
||||||
|
() => props.formFields,
|
||||||
|
(val) => {
|
||||||
|
console.log('%csrc/views/crm/contract/components/ContracStop.vue:95 formFields', 'color: #007acc;', props.formFields.terminationDate, props.isTrue);
|
||||||
|
// if (!val) {
|
||||||
|
// return
|
||||||
|
// }
|
||||||
|
// const totalPrice = val.products.reduce((prev, curr) => prev + curr.totalPrice, 0)
|
||||||
|
// 赋值
|
||||||
|
// formData.value.totalPrice = totalPrice
|
||||||
|
},
|
||||||
|
{ deep: true, immediate: true }
|
||||||
|
)
|
||||||
const formRef = ref() // 表单 Ref
|
const formRef = ref() // 表单 Ref
|
||||||
|
|
||||||
/** 子表的表单 */
|
/** 子表的表单 */
|
||||||
|
|
@ -165,7 +180,7 @@ const open = async (type: string) => {
|
||||||
|
|
||||||
/** 表单校验 */
|
/** 表单校验 */
|
||||||
const validate = () => {
|
const validate = () => {
|
||||||
return formRef.value.validate()
|
return formRef.value.innerFormRef.validate()
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 表单值 */
|
/** 表单值 */
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@
|
||||||
<template #changeItem>
|
<template #changeItem>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<el-form-item label="变更项目" prop="changeItem">
|
<el-form-item label="变更项目" prop="changeItem">
|
||||||
<el-radio-group v-model="formData.changeItem" :disabled="formFields.contractAgreement !== 2 || isTrue" >
|
<el-radio-group v-model="formData.changeItem" :disabled="formFields.changeItem !== 2 || isTrue">
|
||||||
<el-radio :value="1">额度</el-radio>
|
<el-radio :value="1">额度</el-radio>
|
||||||
<el-radio :value="2">授权人</el-radio>
|
<el-radio :value="2">授权人</el-radio>
|
||||||
<el-radio :value="3">延期</el-radio>
|
<el-radio :value="3">延期</el-radio>
|
||||||
|
|
@ -82,13 +82,11 @@
|
||||||
</template>
|
</template>
|
||||||
<template #other>
|
<template #other>
|
||||||
<!-- 子表的表单 -->
|
<!-- 子表的表单 -->
|
||||||
<ContentWrap>
|
|
||||||
<ContractChangeLimit
|
<ContractChangeLimit
|
||||||
v-if="formData.changeItem == 1"
|
v-if="formData.changeItem == 1"
|
||||||
ref="limitFormRef"
|
ref="limitFormRef"
|
||||||
:formFields="formFields"
|
:formFields="formFields"
|
||||||
:data="formData"
|
:data="formData"
|
||||||
:disabled="true"
|
|
||||||
/>
|
/>
|
||||||
<div v-if="formData.changeItem == 2">
|
<div v-if="formData.changeItem == 2">
|
||||||
<ContentWrap style="border: none">
|
<ContentWrap style="border: none">
|
||||||
|
|
@ -105,11 +103,12 @@
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
<ContractBAuthorizedPersonForm :formFields="formFields" :type="1" ref="ContractBAuthorizedPersonFormRef" :customerId="formData.customerId" :contract-id="formData.id" />
|
<ContractBAuthorizedPersonForm :formFields="formFields" :type="1" ref="ContractBAuthorizedPersonFormRef" :customerId="formData.customerId" :contract-id="formData.id" />
|
||||||
</div>
|
</div>
|
||||||
<ContracExtension ref="contractExtensionFormRef" :isTrue="isTrue" :formFields="formFields" v-if="formData.changeItem == 3" :disabled="true" :data="formData" />
|
<ContracExtension ref="contractExtensionFormRef" :isTrue="isTrue" :formFields="formFields" v-if="formData.changeItem == 3" :data="formData" />
|
||||||
<ContractStop ref="contractStopFormRef" :isTrue="isTrue" :formFields="formFields" :formData="formData" :disabled="true" v-if="formData.changeItem == 4" />
|
<el-col :span="24">
|
||||||
|
<ContractStop ref="contractStopFormRef" :isTrue="false" :formFields="formFields" :formData="formData" v-if="formData.changeItem == 4" />
|
||||||
|
</el-col>
|
||||||
<ContractAAuthorizedCompanyForm :formFields="formFields" ref="contractAAuthorizedCompanyFormRef1" :type="true" v-if="formData.changeItem == 5" :data="formData.contractAAuthorizedCompanys" />
|
<ContractAAuthorizedCompanyForm :formFields="formFields" ref="contractAAuthorizedCompanyFormRef1" :type="true" v-if="formData.changeItem == 5" :data="formData.contractAAuthorizedCompanys" />
|
||||||
<ContractForm ref="contractFormRef" :type="1" :id="formData.id" v-if="formData.changeItem == 6" />
|
<ContractForm ref="contractFormRef" :type="1" :id="formData.id" v-if="formData.changeItem == 6" />
|
||||||
</ContentWrap>
|
|
||||||
</template>
|
</template>
|
||||||
</processForm>
|
</processForm>
|
||||||
|
|
||||||
|
|
@ -210,6 +209,12 @@ const formFields = ref({
|
||||||
contractBAuthorizedPersonswechat: 1,
|
contractBAuthorizedPersonswechat: 1,
|
||||||
contractBAuthorizedPersonsemail: 1,
|
contractBAuthorizedPersonsemail: 1,
|
||||||
contractBAuthorizedPersonsother2: 1,
|
contractBAuthorizedPersonsother2: 1,
|
||||||
|
agreementDeadline: 1,
|
||||||
|
extensionYears: 1,
|
||||||
|
extensionDate: 1,
|
||||||
|
terminationDate: 1,
|
||||||
|
terminationReason: 1,
|
||||||
|
note: 1
|
||||||
})
|
})
|
||||||
const formData = ref({
|
const formData = ref({
|
||||||
authPerson: [],
|
authPerson: [],
|
||||||
|
|
@ -564,6 +569,8 @@ const getLimit = async () => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log('%csrc/views/crm/contract/detail/ContractChangeDetail.vue:574 object', 'color: #007acc;', formFields.value,555);
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
|
|
|
||||||
|
|
@ -397,6 +397,42 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</template>
|
</template>
|
||||||
|
<template #penaltyRate>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="违约金比例" prop="penaltyRate">
|
||||||
|
<el-select v-model="formData.penaltyRate" placeholder="" :disabled="formFields.penaltyRate !== 2 || isTrue">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_CONTRACT_PENALTY_RATE)"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #latePaymentRate>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="延期付款利率" prop="latePaymentRate">
|
||||||
|
<el-select v-model="formData.latePaymentRate" placeholder="请选择延期付款利率" :disabled="formFields.latePaymentRate !== 2 || isTrue">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_CONTRACT_LATE_PAYMENT_RATE)"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<!-- <el-col :span="8">
|
||||||
|
<el-form-item label="票据模板" prop="invoiceTemplateId">
|
||||||
|
<el-input v-model="formData.invoiceTemplateId" placeholder="请输入票据模板" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row> -->
|
||||||
|
</template>
|
||||||
<template #startTime>
|
<template #startTime>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="合同签订日期" prop="startTime">
|
<el-form-item label="合同签订日期" prop="startTime">
|
||||||
|
|
@ -461,28 +497,7 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</template>
|
</template>
|
||||||
<template #penaltyRate>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="违约金比例" prop="penaltyRate">
|
|
||||||
<el-input v-model="formData.penaltyRate" :disabled="formFields.penaltyRate !== 2 || isTrue" placeholder="" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</template>
|
|
||||||
<template #latePaymentRate>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="延期付款利率" prop="latePaymentRate">
|
|
||||||
<el-input v-model="formData.latePaymentRate" :disabled="formFields.latePaymentRate !== 2 || isTrue" placeholder="" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<!-- <el-col :span="8">
|
|
||||||
<el-form-item label="票据模板" prop="invoiceTemplateId">
|
|
||||||
<el-input v-model="formData.invoiceTemplateId" placeholder="请输入票据模板" disabled />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row> -->
|
|
||||||
</template>
|
|
||||||
<template #other4>
|
<template #other4>
|
||||||
<el-col :span="24">
|
<el-col :span="24">
|
||||||
<ContentWrap style="border: none;font-weight: 700">
|
<ContentWrap style="border: none;font-weight: 700">
|
||||||
|
|
@ -500,40 +515,7 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</template> -->
|
</template> -->
|
||||||
<template #afterSaleUserId>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="维护人" prop="afterSaleUserId">
|
|
||||||
<el-select v-model="formData.afterSaleUserId" :disabled="formFields.afterSaleUserId !== 2 || isTrue" placeholder="">
|
|
||||||
<el-option
|
|
||||||
v-for="dict in userOptions"
|
|
||||||
:key="dict.id"
|
|
||||||
:label="dict.nickname"
|
|
||||||
:value="dict.id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</template>
|
|
||||||
<template #expanderUserId>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="拓展人" prop="expanderUserId">
|
|
||||||
<el-select
|
|
||||||
class="w-1/1"
|
|
||||||
placeholder="请选择拓展人"
|
|
||||||
v-model="formData.expanderUserId"
|
|
||||||
:disabled="formFields.expanderUserId !== 2 || isTrue"
|
|
||||||
filterable
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in userOptions"
|
|
||||||
:key="item.id"
|
|
||||||
:label="item.nickname"
|
|
||||||
:value="item.id"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</template>
|
|
||||||
<template #servicor>
|
<template #servicor>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="服务对接人" prop="servicor">
|
<el-form-item label="服务对接人" prop="servicor">
|
||||||
|
|
@ -594,6 +576,40 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</template>
|
</template>
|
||||||
|
<template #afterSaleUserId>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="维护人" prop="afterSaleUserId">
|
||||||
|
<el-select v-model="formData.afterSaleUserId" :disabled="formFields.afterSaleUserId !== 2 || isTrue" placeholder="">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in userOptions"
|
||||||
|
:key="dict.id"
|
||||||
|
:label="dict.nickname"
|
||||||
|
:value="dict.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #expanderUserId>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="拓展人" prop="expanderUserId">
|
||||||
|
<el-select
|
||||||
|
class="w-1/1"
|
||||||
|
placeholder="请选择拓展人"
|
||||||
|
v-model="formData.expanderUserId"
|
||||||
|
:disabled="formFields.expanderUserId !== 2 || isTrue"
|
||||||
|
filterable
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in userOptions"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.nickname"
|
||||||
|
:value="item.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</template>
|
||||||
<!-- <template #collUserId>
|
<!-- <template #collUserId>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="协作人" prop="collUserId">
|
<el-form-item label="协作人" prop="collUserId">
|
||||||
|
|
@ -734,20 +750,20 @@ const formFields = ref({
|
||||||
deptId: 1,
|
deptId: 1,
|
||||||
other3: 1,
|
other3: 1,
|
||||||
contractType: 1,
|
contractType: 1,
|
||||||
|
penaltyRate: 1,
|
||||||
|
latePaymentRate: 1,
|
||||||
startTime: 1,
|
startTime: 1,
|
||||||
contractTerm: 1,
|
contractTerm: 1,
|
||||||
endTime: 1,
|
endTime: 1,
|
||||||
statementDate: 1,
|
statementDate: 1,
|
||||||
lastPayDate: 1,
|
lastPayDate: 1,
|
||||||
penaltyRate: 1,
|
|
||||||
latePaymentRate: 1,
|
|
||||||
other4: 1,
|
other4: 1,
|
||||||
// settleMethod: 1,
|
// settleMethod: 1,
|
||||||
afterSaleUserId: 1,
|
|
||||||
expanderUserId: 1,
|
|
||||||
servicor: 1,
|
servicor: 1,
|
||||||
technicalLead: 1,
|
technicalLead: 1,
|
||||||
settlementLead: 1,
|
settlementLead: 1,
|
||||||
|
afterSaleUserId: 1,
|
||||||
|
expanderUserId: 1,
|
||||||
// collUserId: 1,
|
// collUserId: 1,
|
||||||
// contractBody: 1,
|
// contractBody: 1,
|
||||||
// contractAgreement: 1,
|
// contractAgreement: 1,
|
||||||
|
|
@ -844,7 +860,7 @@ const formRules = reactive({
|
||||||
quotationId: [{ required: true, message: '报价单编号不能为空', trigger: 'blur' }],
|
quotationId: [{ required: true, message: '报价单编号不能为空', trigger: 'blur' }],
|
||||||
orderDate: [{ required: true, message: '下单日期不能为空', trigger: 'blur' }],
|
orderDate: [{ required: true, message: '下单日期不能为空', trigger: 'blur' }],
|
||||||
// ownerUserId: [{ required: true, message: '负责人不能为空', trigger: 'blur' }],
|
// ownerUserId: [{ required: true, message: '负责人不能为空', trigger: 'blur' }],
|
||||||
statementDate: [{ required: true, message: '账单日不能为空', trigger: 'change' }],
|
// statementDate: [{ required: true, message: '账单日不能为空', trigger: 'change' }],
|
||||||
contractType: [{ required: true, message: '合同类型不能为空', trigger: 'change' }],
|
contractType: [{ required: true, message: '合同类型不能为空', trigger: 'change' }],
|
||||||
penaltyRate: [{ required: true, message: '违约金比例不能为空', trigger: 'blur' }],
|
penaltyRate: [{ required: true, message: '违约金比例不能为空', trigger: 'blur' }],
|
||||||
latePaymentRate: [{ required: true, message: '延期付款利率不能为空', trigger: 'blur' }],
|
latePaymentRate: [{ required: true, message: '延期付款利率不能为空', trigger: 'blur' }],
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="合作类型" prop="partnerType">
|
<el-form-item label="合作类型" prop="partnerType">
|
||||||
<el-select v-model="queryParams.partnerType" clearable placeholder="请选择合作类型">
|
<el-select v-model="queryParams.partnerType" class="!w-240px" clearable placeholder="请选择合作类型">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_PARTNER_TYPE1)"
|
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_PARTNER_TYPE1)"
|
||||||
:key="dict.value"
|
:key="dict.value"
|
||||||
|
|
@ -558,7 +558,7 @@ const openBusinessDetail = (id: number) => {
|
||||||
/** 初始化 **/
|
/** 初始化 **/
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
await getList()
|
await getList()
|
||||||
customerList.value = await CustomerApi.getCustomerSimpleList()
|
customerList.value = await CustomerApi.getSelfCustomerSimpleList()
|
||||||
})
|
})
|
||||||
onActivated(()=>{
|
onActivated(()=>{
|
||||||
getList()
|
getList()
|
||||||
|
|
|
||||||
|
|
@ -207,7 +207,7 @@
|
||||||
<template #partnerCompanyId>
|
<template #partnerCompanyId>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="合作类型" prop="partnerType">
|
<el-form-item label="合作类型" prop="partnerType">
|
||||||
<el-select v-model="formData.partnerType" clearable disabled placeholder="请选择合作类型">
|
<el-select v-model="formData.partnerType" filterable clearable :disabled="formFields.partnerType !== 2 || isTrue" placeholder="请选择合作类型">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_PARTNER_TYPE1)"
|
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_PARTNER_TYPE1)"
|
||||||
:key="dict.value"
|
:key="dict.value"
|
||||||
|
|
@ -219,7 +219,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="合作主体" prop="partnerCompanyId">
|
<el-form-item label="合作主体" prop="partnerCompanyId">
|
||||||
<el-select v-model="formData.partnerCompanyId" clearable disabled @change="onPartnerChange">
|
<el-select v-model="formData.partnerCompanyId" filterable clearable :disabled="formFields.partnerCompanyId !== 2 || isTrue" @change="onPartnerChange">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in orgList"
|
v-for="dict in orgList"
|
||||||
:key="dict.id"
|
:key="dict.id"
|
||||||
|
|
@ -311,6 +311,20 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #maintainer>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="维护人" prop="maintainer">
|
||||||
|
<el-select v-model="formData.maintainer" disabled placeholder="">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in userOptions"
|
||||||
|
:key="dict.id"
|
||||||
|
:label="dict.nickname"
|
||||||
|
:value="dict.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</template>
|
</template>
|
||||||
<template #pricingUserId>
|
<template #pricingUserId>
|
||||||
|
|
@ -411,6 +425,26 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</template> -->
|
</template> -->
|
||||||
|
<template #onlinePrice>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="基础服务费合计" prop="onlinePrice">
|
||||||
|
<el-input
|
||||||
|
disabled
|
||||||
|
v-model="formData.onlinePrice"
|
||||||
|
:formatter="erpPriceInputFormatter"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<!-- <el-col :span="8">
|
||||||
|
<el-form-item label="线下总金额" prop="offlinePrice">
|
||||||
|
<el-input
|
||||||
|
disabled
|
||||||
|
v-model="formData.offlinePrice"
|
||||||
|
:formatter="erpPriceInputFormatter"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col> -->
|
||||||
|
</template>
|
||||||
<template #quotationTimes>
|
<template #quotationTimes>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="第几次报价" prop="quotationTimes">
|
<el-form-item label="第几次报价" prop="quotationTimes">
|
||||||
|
|
@ -418,6 +452,36 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</template>
|
</template>
|
||||||
|
<template #statementDate>
|
||||||
|
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="账单日" prop="statementDate">
|
||||||
|
<el-select filterable v-model="formData.statementDate" :disabled="formFields.statementDate !== 2 || isTrue" placeholder="请选择账单日" >
|
||||||
|
<el-option
|
||||||
|
v-for="(dict, index) in statement"
|
||||||
|
:key="index"
|
||||||
|
:label="index + 1"
|
||||||
|
:value="index + 1"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #lastPayDate>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="最晚付款日" prop="lastPayDate">
|
||||||
|
<el-select filterable v-model="formData.lastPayDate" :disabled="formFields.lastPayDate !== 2 || isTrue" placeholder="请选择最晚付款日" >
|
||||||
|
<el-option
|
||||||
|
v-for="(dict, index) in statement"
|
||||||
|
:key="index"
|
||||||
|
:label="index + 1"
|
||||||
|
:value="index + 1"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</template>
|
||||||
|
|
||||||
<!-- <template #creditLimit1>
|
<!-- <template #creditLimit1>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="授信额度" prop="creditLimit">
|
<el-form-item label="授信额度" prop="creditLimit">
|
||||||
|
|
@ -440,26 +504,46 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</template> -->
|
</template> -->
|
||||||
<template #onlinePrice>
|
|
||||||
<el-col :span="8">
|
|
||||||
<el-form-item label="基础服务费合计" prop="onlinePrice">
|
<template #other2>
|
||||||
<el-input
|
<el-col :span="24">
|
||||||
disabled
|
<ContentWrap style="border: none; font-weight: 700">服务费收取方式</ContentWrap>
|
||||||
v-model="formData.onlinePrice"
|
|
||||||
:formatter="erpPriceInputFormatter"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<!-- <el-col :span="8">
|
|
||||||
<el-form-item label="线下总金额" prop="offlinePrice">
|
|
||||||
<el-input
|
|
||||||
disabled
|
|
||||||
v-model="formData.offlinePrice"
|
|
||||||
:formatter="erpPriceInputFormatter"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
</el-col> -->
|
|
||||||
</template>
|
</template>
|
||||||
|
<template #serviceFeeCollectionMethodId>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="服务费收取方式" prop="serviceFeeCollectionMethodId">
|
||||||
|
<el-select v-model="formData.serviceFeeCollectionMethodId" filterable :disabled="formFields.lastPayDate !== 2 || isTrue" placeholder="请选择服务费收取方式">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_SERVICE_FEE_COLLECTION_METHOD)"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #insuranceId>
|
||||||
|
<el-col :span="8" v-if="formData.serviceFeeCollectionMethodId == 3">
|
||||||
|
<el-form-item label="保险类型" prop="insuranceId">
|
||||||
|
<el-select v-model="formData.insuranceId" :disabled="formFields.lastPayDate !== 2 || isTrue" placeholder="请选择保险类型">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in insuranceList"
|
||||||
|
:key="dict.id"
|
||||||
|
:label="dict.productDetail"
|
||||||
|
:value="dict.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</template>
|
||||||
|
<template #other3>
|
||||||
|
<el-col :span="8" class="toop">
|
||||||
|
{{remark}}
|
||||||
|
</el-col>
|
||||||
|
</template>
|
||||||
<!-- <template #totalPrice>
|
<!-- <template #totalPrice>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="服务费收入合计" prop="totalPrice">
|
<el-form-item label="服务费收入合计" prop="totalPrice">
|
||||||
|
|
@ -512,6 +596,7 @@ import RevenueAnalysis from './components/RevenueAnalysis.vue'
|
||||||
/** CRM 方案报价 表单 */
|
/** CRM 方案报价 表单 */
|
||||||
defineOptions({ name: 'QuotationForm' })
|
defineOptions({ name: 'QuotationForm' })
|
||||||
|
|
||||||
|
const remark = ref('')
|
||||||
const serverMethodList = ref([])
|
const serverMethodList = ref([])
|
||||||
const { t } = useI18n() // 国际化
|
const { t } = useI18n() // 国际化
|
||||||
const message = useMessage() // 消息弹窗
|
const message = useMessage() // 消息弹窗
|
||||||
|
|
@ -545,6 +630,12 @@ const print=ref({
|
||||||
clickMounted() { console.log('点击v-print绑定的按钮了!') },
|
clickMounted() { console.log('点击v-print绑定的按钮了!') },
|
||||||
|
|
||||||
})
|
})
|
||||||
|
const serviceDesc = ref({
|
||||||
|
1:'按单项产品的订单量(机票/张,酒店/间夜,火车票/张、用车/单)分别收取服务费',
|
||||||
|
2: '按订单总金额乘以比例收取服务费用',
|
||||||
|
3: ''
|
||||||
|
})
|
||||||
|
const insuranceList = ref([])
|
||||||
const isTrue = ref(false)
|
const isTrue = ref(false)
|
||||||
const dialogVisible = ref(false) // 弹窗的是否展示
|
const dialogVisible = ref(false) // 弹窗的是否展示
|
||||||
const dialogTitle = ref('') // 弹窗的标题
|
const dialogTitle = ref('') // 弹窗的标题
|
||||||
|
|
@ -579,17 +670,20 @@ const formFields = ref({ //字段显示隐藏权限控制,字段顺序就是显
|
||||||
deptId: 1,
|
deptId: 1,
|
||||||
ownerUserId: 1,
|
ownerUserId: 1,
|
||||||
clueDeveloper: 1,
|
clueDeveloper: 1,
|
||||||
|
maintainer: 1,
|
||||||
pricingUserId: 1,
|
pricingUserId: 1,
|
||||||
paymentTerm: 1,
|
paymentTerm: 1,
|
||||||
creditMethod: 1,
|
creditMethod: 1,
|
||||||
creditCalcCycle: 1,
|
creditCalcCycle: 1,
|
||||||
invoiceTemplateId: 1,
|
invoiceTemplateId: 1,
|
||||||
quotationTimes: 1,
|
|
||||||
creditLimit1: 1,
|
|
||||||
serviceFeeCollectionMethodId: 1,
|
|
||||||
onlinePrice: 1,
|
onlinePrice: 1,
|
||||||
|
quotationTimes: 1,
|
||||||
statementDate: 1,
|
statementDate: 1,
|
||||||
lastPayDate: 1,
|
lastPayDate: 1,
|
||||||
|
other2: 1,
|
||||||
|
serviceFeeCollectionMethodId: 1,
|
||||||
|
insuranceId: 1,
|
||||||
|
other3: 1,
|
||||||
totalPrice: 1,
|
totalPrice: 1,
|
||||||
productsother: 1,
|
productsother: 1,
|
||||||
productscategory: 1,
|
productscategory: 1,
|
||||||
|
|
@ -744,6 +838,21 @@ const onCustomerChange = async (customerId: string) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const changeInsuranceId = (val) => {
|
||||||
|
let arr = insuranceList.value.filter(v => v.id === val)
|
||||||
|
remark.value = (arr.length && arr[0]['describes']) ? '注:' + arr[0]['describes'] : ''
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const changeQuotation = (val) => {
|
||||||
|
if(serviceDesc.value[val]) {
|
||||||
|
remark.value = '注:' + serviceDesc.value[val]
|
||||||
|
} else {
|
||||||
|
remark.value = ''
|
||||||
|
}
|
||||||
|
// formData.value.insuranceId = ''
|
||||||
|
}
|
||||||
|
|
||||||
const onPartnerChange = async (id: string) => {
|
const onPartnerChange = async (id: string) => {
|
||||||
if (!id) return
|
if (!id) return
|
||||||
try {
|
try {
|
||||||
|
|
@ -820,6 +929,11 @@ const open = async (type: string) => {
|
||||||
formData.value.offlinePrice = (totalOfflinePrice + totalOnlinePrice).toFixed(2)
|
formData.value.offlinePrice = (totalOfflinePrice + totalOnlinePrice).toFixed(2)
|
||||||
// let all = totalOnlinePrice + totalOfflinePrice + totalOnlinePrice
|
// let all = totalOnlinePrice + totalOfflinePrice + totalOnlinePrice
|
||||||
// formData.value.totalPrice = all.toFixed(2)
|
// formData.value.totalPrice = all.toFixed(2)
|
||||||
|
if(formData.value.insuranceId) {
|
||||||
|
changeInsuranceId(formData.value.insuranceId)
|
||||||
|
} else {
|
||||||
|
changeQuotation(formData.value.serviceFeeCollectionMethodId)
|
||||||
|
}
|
||||||
formData.value.creditLimit = ((formData.value.creditAmount || 0) + (formData.value.creditLimitNum || 0)).toFixed(2)
|
formData.value.creditLimit = ((formData.value.creditAmount || 0) + (formData.value.creditLimitNum || 0)).toFixed(2)
|
||||||
} finally {
|
} finally {
|
||||||
formLoading.value = false
|
formLoading.value = false
|
||||||
|
|
@ -952,8 +1066,10 @@ onMounted(async () => {
|
||||||
// 获得部门树
|
// 获得部门树
|
||||||
deptTree.value = handleTree(await DeptApi.getSimpleDeptList())
|
deptTree.value = handleTree(await DeptApi.getSimpleDeptList())
|
||||||
//服务费收取方式
|
//服务费收取方式
|
||||||
let serverList = await QuotationApi.getServerMethodList({pageNo: 1, pageSize: 1000})
|
// let serverList = await QuotationApi.getServerMethodList({pageNo: 1, pageSize: 1000})
|
||||||
serverMethodList.value = serverList.list
|
// serverMethodList.value = serverList.list
|
||||||
|
//服务费收取方式
|
||||||
|
insuranceList.value = await QuotationApi.getInsuranceList()
|
||||||
const org = await ContractApi.getOrg({
|
const org = await ContractApi.getOrg({
|
||||||
pageNo: 1,
|
pageNo: 1,
|
||||||
pageSize: 1000
|
pageSize: 1000
|
||||||
|
|
@ -962,7 +1078,13 @@ onMounted(async () => {
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style scoped>
|
||||||
|
.toop {
|
||||||
|
line-height: 32px;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: 500;
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
@media print {
|
@media print {
|
||||||
body, html {
|
body, html {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="选择商机" prop="businessId">
|
<el-form-item label="选择商机" prop="businessId">
|
||||||
<el-select v-model="formData.businessId" clearable placeholder="请选择商机" @change="onBusinessChange">
|
<el-select v-model="formData.businessId" filterable clearable placeholder="请选择商机" @change="onBusinessChange">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in businessList"
|
v-for="dict in businessList"
|
||||||
:key="dict.id"
|
:key="dict.id"
|
||||||
|
|
@ -166,7 +166,7 @@
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="合作类型" prop="partnerType">
|
<el-form-item label="合作类型" prop="partnerType">
|
||||||
<el-select v-model="formData.partnerType" @change="changePartnerType" clearable placeholder="请选择合作类型">
|
<el-select v-model="formData.partnerType" filterable @change="changePartnerType" clearable placeholder="请选择合作类型">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_PARTNER_TYPE1)"
|
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_PARTNER_TYPE1)"
|
||||||
:key="dict.value"
|
:key="dict.value"
|
||||||
|
|
@ -178,7 +178,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="合作主体" prop="partnerCompanyId">
|
<el-form-item label="合作主体" prop="partnerCompanyId">
|
||||||
<el-select v-model="formData.partnerCompanyId" clearable placeholder="请选择合作主体" @change="onPartnerChange">
|
<el-select v-model="formData.partnerCompanyId" filterable clearable placeholder="请选择合作主体" @change="onPartnerChange">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in orgList"
|
v-for="dict in orgList"
|
||||||
:key="dict.id"
|
:key="dict.id"
|
||||||
|
|
@ -368,7 +368,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="账单日" prop="statementDate">
|
<el-form-item label="账单日" prop="statementDate">
|
||||||
<el-select v-model="formData.statementDate" placeholder="请选择账单日" >
|
<el-select v-model="formData.statementDate" filterable placeholder="请选择账单日" >
|
||||||
<el-option
|
<el-option
|
||||||
v-for="(dict, index) in statement"
|
v-for="(dict, index) in statement"
|
||||||
:key="index"
|
:key="index"
|
||||||
|
|
@ -380,7 +380,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="最晚付款日" prop="lastPayDate">
|
<el-form-item label="最晚付款日" prop="lastPayDate">
|
||||||
<el-select v-model="formData.lastPayDate" placeholder="请选择最晚付款日" >
|
<el-select v-model="formData.lastPayDate" filterable placeholder="请选择最晚付款日" >
|
||||||
<el-option
|
<el-option
|
||||||
v-for="(dict, index) in statement"
|
v-for="(dict, index) in statement"
|
||||||
:key="index"
|
:key="index"
|
||||||
|
|
@ -408,7 +408,7 @@
|
||||||
|
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="服务费收取方式" prop="serviceFeeCollectionMethodId">
|
<el-form-item label="服务费收取方式" prop="serviceFeeCollectionMethodId">
|
||||||
<el-select v-model="formData.serviceFeeCollectionMethodId" @change="changeQuotation" placeholder="请选择服务费收取方式">
|
<el-select v-model="formData.serviceFeeCollectionMethodId" filterable @change="changeQuotation" placeholder="请选择服务费收取方式">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_SERVICE_FEE_COLLECTION_METHOD)"
|
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_SERVICE_FEE_COLLECTION_METHOD)"
|
||||||
:key="dict.value"
|
:key="dict.value"
|
||||||
|
|
@ -454,7 +454,6 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col> -->
|
</el-col> -->
|
||||||
|
|
||||||
</el-form>
|
|
||||||
<!-- 子表的表单 -->
|
<!-- 子表的表单 -->
|
||||||
<el-tabs v-model="subTabsName" @tab-Click="handleClick">
|
<el-tabs v-model="subTabsName" @tab-Click="handleClick">
|
||||||
<el-tab-pane label="报价产品关联" name="quotationProduct">
|
<el-tab-pane label="报价产品关联" name="quotationProduct">
|
||||||
|
|
@ -468,6 +467,8 @@
|
||||||
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
|
<el-button @click="submitForm" type="primary" :disabled="formLoading">确 定</el-button>
|
||||||
<el-button @click="goBack">取 消</el-button>
|
<el-button @click="goBack">取 消</el-button>
|
||||||
</div>
|
</div>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
</ContentWrap>
|
</ContentWrap>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
|
@ -706,7 +707,6 @@ const changeQuotation = (val) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const changeQuotationTimes = async(val) => {
|
const changeQuotationTimes = async(val) => {
|
||||||
console.log('%csrc/views/crm/quotation/QuotationForm.vue:671 3333', 'color: #007acc;', 3333);
|
|
||||||
if(formData.value.serviceFeeCollectionMethodId && formData.value.businessId) {
|
if(formData.value.serviceFeeCollectionMethodId && formData.value.businessId) {
|
||||||
newProducts.value = []
|
newProducts.value = []
|
||||||
formData.value.products.forEach( item => {
|
formData.value.products.forEach( item => {
|
||||||
|
|
@ -730,7 +730,6 @@ const changeQuotationTimes = async(val) => {
|
||||||
num.quotationProducts.forEach( v => {
|
num.quotationProducts.forEach( v => {
|
||||||
v.productUnit = v.serviceFeeVO.unit
|
v.productUnit = v.serviceFeeVO.unit
|
||||||
})
|
})
|
||||||
console.log('%csrc/views/crm/quotation/QuotationForm.vue:695 num.', 'color: #007acc;', num.quotationProducts);
|
|
||||||
formData.value.QuotationTimes = num.quotationProducts
|
formData.value.QuotationTimes = num.quotationProducts
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -857,7 +856,6 @@ const onPartnerChange = async (id: string) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const getQutotaionTimes = async (val) => {
|
const getQutotaionTimes = async (val) => {
|
||||||
console.log('%csrc/views/crm/quotation/QuotationForm.vue:692 val', 'color: #007acc;', val);
|
|
||||||
formData.value.quotationTimes = await QuotationApi.getQutoTimes({customerId: val})
|
formData.value.quotationTimes = await QuotationApi.getQutoTimes({customerId: val})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -876,6 +874,12 @@ const open = async (type: string) => {
|
||||||
formData.value.serviceFeeCollectionMethodId = Number(formData.value.serviceFeeCollectionMethodId)
|
formData.value.serviceFeeCollectionMethodId = Number(formData.value.serviceFeeCollectionMethodId)
|
||||||
if(formData.value.partnerType) changePartnerType(formData.value.partnerType)
|
if(formData.value.partnerType) changePartnerType(formData.value.partnerType)
|
||||||
|
|
||||||
|
if(formData.value.insuranceId) {
|
||||||
|
changeInsuranceId(formData.value.insuranceId)
|
||||||
|
} else {
|
||||||
|
changeQuotation(formData.value.serviceFeeCollectionMethodId)
|
||||||
|
}
|
||||||
|
|
||||||
} finally {
|
} finally {
|
||||||
formLoading.value = false
|
formLoading.value = false
|
||||||
}
|
}
|
||||||
|
|
@ -924,7 +928,6 @@ const submitForm = async () => {
|
||||||
|
|
||||||
const changeTemplate = async() => {
|
const changeTemplate = async() => {
|
||||||
handleType.value = 1
|
handleType.value = 1
|
||||||
console.log('%csrc/views/crm/quotation/QuotationForm.vue:631 handleType.value,222', 'color: #007acc;', handleType.value,222);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const goBack = ()=> {
|
const goBack = ()=> {
|
||||||
|
|
@ -983,7 +986,6 @@ const changePartnerType = async (val) => {
|
||||||
|
|
||||||
const route = useRoute();
|
const route = useRoute();
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
console.log('%csrc/views/crm/quotation/QuotationForm.vue:931 useUserStore().getUser', 'color: #007acc;', useUserStore().getUser);
|
|
||||||
formType.value = props.id || route.query.id;
|
formType.value = props.id || route.query.id;
|
||||||
|
|
||||||
if (formType.value) open(formType.value)
|
if (formType.value) open(formType.value)
|
||||||
|
|
@ -1002,7 +1004,7 @@ onMounted(async () => {
|
||||||
pageSize: 1000,
|
pageSize: 1000,
|
||||||
})
|
})
|
||||||
templateOptions.value = data.list
|
templateOptions.value = data.list
|
||||||
businessList.value = await BusinessApi.getSelfSimpleBusinessList()
|
businessList.value = await BusinessApi.getSelfSimpleBusinessList({query: true})
|
||||||
// 获得部门树
|
// 获得部门树
|
||||||
deptTree.value = handleTree(await DeptApi.getSimpleDeptList())
|
deptTree.value = handleTree(await DeptApi.getSimpleDeptList())
|
||||||
//服务费收取方式
|
//服务费收取方式
|
||||||
|
|
|
||||||
|
|
@ -281,9 +281,7 @@ watch(
|
||||||
data.billSortingServiceFee = ''
|
data.billSortingServiceFee = ''
|
||||||
data.totalServiceFee = ''
|
data.totalServiceFee = ''
|
||||||
}
|
}
|
||||||
console.log('%csrc/views/crm/quotation/components/QuotationProductForm.vue:289 formData.value,data', 'color: #007acc;', formData.value,data);
|
|
||||||
let foundItem = formData.value.find(item => item.productId == data.id);
|
let foundItem = formData.value.find(item => item.productId == data.id);
|
||||||
console.log('%csrc/views/crm/quotation/components/QuotationProductForm.vue:290 foundItem', 'color: #007acc;', foundItem);
|
|
||||||
if (foundItem) {
|
if (foundItem) {
|
||||||
foundItem.basicServiceFee = data.serviceFeeVO.basicServiceFee
|
foundItem.basicServiceFee = data.serviceFeeVO.basicServiceFee
|
||||||
foundItem.advancePaymentServiceFee = data.serviceFeeVO.advancePaymentServiceFee
|
foundItem.advancePaymentServiceFee = data.serviceFeeVO.advancePaymentServiceFee
|
||||||
|
|
|
||||||
|
|
@ -508,7 +508,7 @@ const openCustomerDetail = (id: number) => {
|
||||||
/** 初始化 **/
|
/** 初始化 **/
|
||||||
onMounted(async () => {
|
onMounted(async () => {
|
||||||
// 获得客户列表
|
// 获得客户列表
|
||||||
customerList.value = await CustomerApi.getCustomerSimpleList()
|
customerList.value = await CustomerApi.getSelfCustomerSimpleList()
|
||||||
// 获得用户列表
|
// 获得用户列表
|
||||||
userOptions.value = await UserApi.getSimpleUserList()
|
userOptions.value = await UserApi.getSimpleUserList()
|
||||||
getList()
|
getList()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue