debug
场地动态搜索改为按照责任人搜索 场地动态中,点击场地名称可直接跳转 跟进记录中,点客户单位名称可直接跳转 跟进记录中没有显示客户联系人,应显示 场地动态详情中,权限设置无编辑和转移功能,但再详情页中仍然显示pull/853/head
parent
8ec57f041d
commit
a39c2a8e6d
2
.env.dev
2
.env.dev
|
|
@ -4,7 +4,7 @@ NODE_ENV=production
|
||||||
VITE_DEV=true
|
VITE_DEV=true
|
||||||
|
|
||||||
# 请求路径
|
# 请求路径
|
||||||
VITE_BASE_URL='http://www.sujieguanli.top:48080'
|
VITE_BASE_URL='http://www.woyaoshouchong.asia:48080'
|
||||||
|
|
||||||
# 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持S3服务
|
# 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持S3服务
|
||||||
VITE_UPLOAD_TYPE=client
|
VITE_UPLOAD_TYPE=client
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ NODE_ENV=development
|
||||||
VITE_DEV=true
|
VITE_DEV=true
|
||||||
|
|
||||||
# 请求路径
|
# 请求路径
|
||||||
VITE_BASE_URL='http://www.sujieguanli.top:48080'
|
VITE_BASE_URL='http://www.woyaoshouchong.asia:48080'
|
||||||
|
|
||||||
# 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持 S3 服务
|
# 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持 S3 服务
|
||||||
VITE_UPLOAD_TYPE=client
|
VITE_UPLOAD_TYPE=client
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ NODE_ENV=production
|
||||||
VITE_DEV=false
|
VITE_DEV=false
|
||||||
|
|
||||||
# 请求路径
|
# 请求路径
|
||||||
VITE_BASE_URL='http://www.sujieguanli.top:88'
|
VITE_BASE_URL='http://www.sujieguanli.top'
|
||||||
|
|
||||||
# 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持S3服务
|
# 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持S3服务
|
||||||
VITE_UPLOAD_TYPE=client
|
VITE_UPLOAD_TYPE=client
|
||||||
|
|
|
||||||
|
|
@ -48,7 +48,6 @@
|
||||||
import { useTagsViewStore } from '@/store/modules/tagsView'
|
import { useTagsViewStore } from '@/store/modules/tagsView'
|
||||||
import { OperateLogVO } from '@/api/system/operatelog'
|
import { OperateLogVO } from '@/api/system/operatelog'
|
||||||
import * as ContractApi from '@/api/crm/contract'
|
import * as ContractApi from '@/api/crm/contract'
|
||||||
import ContractDetailsInfo from './ContractDetailsInfo.vue'
|
|
||||||
import ContractDetailsHeader from './ContractDetailsHeader.vue'
|
import ContractDetailsHeader from './ContractDetailsHeader.vue'
|
||||||
import ContractProductList from './ContractProductList.vue'
|
import ContractProductList from './ContractProductList.vue'
|
||||||
import { BizTypeEnum } from '@/api/crm/permission'
|
import { BizTypeEnum } from '@/api/crm/permission'
|
||||||
|
|
@ -56,7 +55,6 @@ import { getOperateLogPage } from '@/api/crm/operateLog'
|
||||||
import ContractForm from '@/views/crm/contract/ContractForm.vue'
|
import ContractForm from '@/views/crm/contract/ContractForm.vue'
|
||||||
import CrmTransferForm from '@/views/crm/permission/components/TransferForm.vue'
|
import CrmTransferForm from '@/views/crm/permission/components/TransferForm.vue'
|
||||||
import PermissionList from '@/views/crm/permission/components/PermissionList.vue'
|
import PermissionList from '@/views/crm/permission/components/PermissionList.vue'
|
||||||
import FollowUpList from '@/views/crm/followup/components/FollowUpList.vue'
|
|
||||||
import ReceivableList from '@/views/crm/receivable/components/ReceivableList.vue'
|
import ReceivableList from '@/views/crm/receivable/components/ReceivableList.vue'
|
||||||
import ReceivablePlanList from '@/views/crm/receivable/plan/components/ReceivablePlanList.vue'
|
import ReceivablePlanList from '@/views/crm/receivable/plan/components/ReceivablePlanList.vue'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,6 @@
|
||||||
>
|
>
|
||||||
锁定
|
锁定
|
||||||
</el-button>
|
</el-button>
|
||||||
<text>{{ customerId }}</text>
|
|
||||||
<!-- <el-button v-if="!customer.ownerUserId" type="primary" @click="handleReceive"> 领取</el-button>
|
<!-- <el-button v-if="!customer.ownerUserId" type="primary" @click="handleReceive"> 领取</el-button>
|
||||||
<el-button v-if="!customer.ownerUserId" type="primary" @click="handleDistributeForm">
|
<el-button v-if="!customer.ownerUserId" type="primary" @click="handleDistributeForm">
|
||||||
分配
|
分配
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
<template>
|
<template>
|
||||||
<!-- 搜索栏 -->
|
<!-- 搜索栏 -->
|
||||||
<el-form :inline="true" :model="queryParams" class="mb-10px">
|
<el-form :inline="true" :model="queryParams" class="mb-10px">
|
||||||
<el-form-item :label="bizLabel + '人'">
|
<el-form-item v-if="queryParams.bizType === BizTypeEnum.CRM_CUSTOMER" :label="bizLabel + '人'">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="queryParams.creator"
|
v-model="queryParams.creator"
|
||||||
filterable
|
filterable
|
||||||
|
|
@ -17,6 +17,22 @@
|
||||||
:value="user.id"
|
:value="user.id"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item v-if="queryParams.bizType === BizTypeEnum.CRM_STATION_SITE" label="责任人">
|
||||||
|
<el-select
|
||||||
|
v-model="queryParams.ownerUserId"
|
||||||
|
filterable
|
||||||
|
clearable
|
||||||
|
placeholder="请选择责任人"
|
||||||
|
style="width: 150px"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="user in userOptions"
|
||||||
|
:key="user.id"
|
||||||
|
:label="user.nickname"
|
||||||
|
:value="user.id"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="queryParams.bizType === BizTypeEnum.CRM_CUSTOMER" :label="bizLabel + '方式'">
|
<el-form-item v-if="queryParams.bizType === BizTypeEnum.CRM_CUSTOMER" :label="bizLabel + '方式'">
|
||||||
<el-select v-model="queryParams.type" :placeholder="'请选择' + bizLabel + '方式'" clearable style="width: 150px">
|
<el-select v-model="queryParams.type" :placeholder="'请选择' + bizLabel + '方式'" clearable style="width: 150px">
|
||||||
|
|
@ -46,11 +62,17 @@
|
||||||
placement="top"
|
placement="top"
|
||||||
>
|
>
|
||||||
<span>{{ bizLabel }}人:</span>{{ item.creatorName }}
|
<span>{{ bizLabel }}人:</span>{{ item.creatorName }}
|
||||||
<span v-if="queryParams.bizId === undefined && Array.isArray(item.customer) && item.customer.length > 0 && item.customer[0].name" style="margin-left: 8px;">
|
<span v-if="queryParams.bizId === undefined && Array.isArray(item.customer) && item.customer.length > 0 && item.customer[0].name" style="margin-left: 8px; display: inline-flex; align-items: center;">
|
||||||
客户名称:{{ item.customer[0].name }}
|
<span>客户名称:</span>
|
||||||
|
<el-link :underline="false" type="primary" @click="openCustomerDetail(item.customer[0].id)">
|
||||||
|
{{ item.customer[0].name }}
|
||||||
|
</el-link>
|
||||||
</span>
|
</span>
|
||||||
<span v-if="queryParams.bizId === undefined && Array.isArray(item.stationSite) && item.stationSite.length > 0 && item.stationSite[0].name" style="margin-left: 8px;">
|
<span v-if="queryParams.bizId === undefined && Array.isArray(item.stationSite) && item.stationSite.length > 0 && item.stationSite[0].name" style="margin-left: 8px; display: inline-flex; align-items: center;">
|
||||||
场地名称:{{ item.stationSite[0].name }}
|
<span>场地名称:</span>
|
||||||
|
<el-link :underline="false" type="primary" @click="openStationDetail(item.stationSite[0].id)">
|
||||||
|
{{ item.stationSite[0].name }}
|
||||||
|
</el-link>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<template #timestamp>
|
<template #timestamp>
|
||||||
|
|
@ -137,6 +159,7 @@ import { FollowUpRecordApi, FollowUpRecordVO } from '@/api/crm/followup'
|
||||||
import FollowUpRecordForm from './FollowUpRecordForm.vue'
|
import FollowUpRecordForm from './FollowUpRecordForm.vue'
|
||||||
import { BizTypeEnum } from '@/api/crm/permission'
|
import { BizTypeEnum } from '@/api/crm/permission'
|
||||||
import * as UserApi from '@/api/system/user'
|
import * as UserApi from '@/api/system/user'
|
||||||
|
import { defaultProps } from '@/utils/tree'
|
||||||
|
|
||||||
const userOptions = ref<any[]>([])
|
const userOptions = ref<any[]>([])
|
||||||
|
|
||||||
|
|
@ -161,7 +184,8 @@ const queryParams = reactive({
|
||||||
bizId: undefined as number | undefined,
|
bizId: undefined as number | undefined,
|
||||||
content: '',
|
content: '',
|
||||||
type: undefined,
|
type: undefined,
|
||||||
creator: undefined as number | undefined // 跟进人
|
creator: undefined as number | undefined, // 跟进人
|
||||||
|
ownerUserId: undefined as number | undefined // 责任人
|
||||||
})
|
})
|
||||||
|
|
||||||
/** 查询列表 */
|
/** 查询列表 */
|
||||||
|
|
@ -219,6 +243,16 @@ const openContactDetail = (id: number) => {
|
||||||
const openBusinessDetail = (id: number) => {
|
const openBusinessDetail = (id: number) => {
|
||||||
push({ name: 'CrmBusinessDetail', params: { id } })
|
push({ name: 'CrmBusinessDetail', params: { id } })
|
||||||
}
|
}
|
||||||
|
/** 打开场地信息详情 */
|
||||||
|
const openStationDetail = (id: number) => {
|
||||||
|
push({ name: 'CrmStationSiteDetail', params: { id } })
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 打开客户详情 */
|
||||||
|
const openCustomerDetail = (id: number) => {
|
||||||
|
push({ name: 'CrmCustomerDetail', params: { id } })
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/** 文件查看弹窗 */
|
/** 文件查看弹窗 */
|
||||||
const fileDialogVisible = ref(false)
|
const fileDialogVisible = ref(false)
|
||||||
|
|
@ -240,6 +274,9 @@ const resetQuery = () => {
|
||||||
queryParams.content = ''
|
queryParams.content = ''
|
||||||
queryParams.creator = undefined
|
queryParams.creator = undefined
|
||||||
queryParams.type = undefined
|
queryParams.type = undefined
|
||||||
|
queryParams.ownerUserId = undefined
|
||||||
|
queryParams.pageNo = 1
|
||||||
|
queryParams.pageSize = 10
|
||||||
handleQuery()
|
handleQuery()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,11 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12" v-if="formData.bizType == BizTypeEnum.CRM_CUSTOMER">
|
<el-col :span="12" v-if="formData.bizType == BizTypeEnum.CRM_CUSTOMER">
|
||||||
<el-form-item label="选择联系人" prop="contactIds">
|
<el-form-item label="选择联系人" prop="contactIds">
|
||||||
<el-select v-model="contactId" filterable placeholder="请选择联系人" @change="val => console.log('contactIds changed:', val)">
|
<el-select
|
||||||
|
v-model="formData.contactIds"
|
||||||
|
filterable
|
||||||
|
multiple
|
||||||
|
placeholder="请选择联系人">
|
||||||
<el-option v-for="item in contactOptions" :key="item.id" :label="item.name" :value="item.id" />
|
<el-option v-for="item in contactOptions" :key="item.id" :label="item.name" :value="item.id" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
@ -58,7 +62,6 @@ defineOptions({ name: 'FollowUpRecordForm' })
|
||||||
const { t } = useI18n() // 国际化
|
const { t } = useI18n() // 国际化
|
||||||
const message = useMessage() // 消息弹窗
|
const message = useMessage() // 消息弹窗
|
||||||
|
|
||||||
const contactId = ref()
|
|
||||||
const dialogVisible = ref(false) // 弹窗的是否展示
|
const dialogVisible = ref(false) // 弹窗的是否展示
|
||||||
const dialogTitle = ref('') // 弹窗的标题
|
const dialogTitle = ref('') // 弹窗的标题
|
||||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
||||||
|
|
@ -125,11 +128,6 @@ watch(
|
||||||
// 获取客户下联系人
|
// 获取客户下联系人
|
||||||
const res = await ContactApi.getContactPageByCustomer({ customerId: val, pageSize: 100 })
|
const res = await ContactApi.getContactPageByCustomer({ customerId: val, pageSize: 100 })
|
||||||
contactOptions.value = res.list || []
|
contactOptions.value = res.list || []
|
||||||
// 只在修改时默认选中第一个
|
|
||||||
if (formType.value === 'update' && contactOptions.value.length > 0) {
|
|
||||||
formData.value.contactIds = [contactOptions.value[0].id]
|
|
||||||
contactId.value = contactOptions.value[0].id
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
contactOptions.value = []
|
contactOptions.value = []
|
||||||
formData.value.contactIds = []
|
formData.value.contactIds = []
|
||||||
|
|
|
||||||
|
|
@ -2,11 +2,13 @@
|
||||||
<StationSiteDetailsHeader :station-site="stationSite" :loading="loading">
|
<StationSiteDetailsHeader :station-site="stationSite" :loading="loading">
|
||||||
<el-button
|
<el-button
|
||||||
type="primary"
|
type="primary"
|
||||||
|
v-hasPermi="['crm:station-site:update']"
|
||||||
@click="openForm('update', stationSite.id)"
|
@click="openForm('update', stationSite.id)"
|
||||||
>
|
>
|
||||||
编辑
|
编辑
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
|
v-hasPermi="['crm:station-site:transfor']"
|
||||||
@click="transfer"
|
@click="transfer"
|
||||||
>
|
>
|
||||||
转移
|
转移
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue