Skip to content

Commit 4dabfcb

Browse files
YunaiVgitee-org
authored andcommitted
!399 CRM:完善数据权限,实现数据权限同时添加、同时转移
Merge pull request !399 from puhui999/dev-crm
2 parents 1a5e790 + 13e925e commit 4dabfcb

File tree

22 files changed

+278
-208
lines changed

22 files changed

+278
-208
lines changed

src/api/crm/business/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import request from '@/config/axios'
2-
import { TransferReqVO } from '@/api/crm/customer'
2+
import { TransferReqVO } from '@/api/crm/permission'
33

44
export interface BusinessVO {
55
id: number

src/api/crm/clue/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import request from '@/config/axios'
2-
import { TransferReqVO } from '@/api/crm/customer'
2+
import { TransferReqVO } from '@/api/crm/permission'
33

44
export interface ClueVO {
55
id: number // 编号

src/api/crm/contact/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import request from '@/config/axios'
2-
import { TransferReqVO } from '@/api/crm/customer'
2+
import { TransferReqVO } from '@/api/crm/permission'
33

44
export interface ContactVO {
55
id: number // 编号

src/api/crm/contract/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import request from '@/config/axios'
2-
import { TransferReqVO } from '@/api/crm/customer'
2+
import { TransferReqVO } from '@/api/crm/permission'
33

44
export interface ContractVO {
55
id: number

src/api/crm/customer/index.ts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import request from '@/config/axios'
2+
import { TransferReqVO } from '@/api/crm/permission'
23

34
export interface CustomerVO {
45
id: number // 编号
@@ -102,12 +103,6 @@ export const getCustomerSimpleList = async () => {
102103

103104
// ======================= 业务操作 =======================
104105

105-
export interface TransferReqVO {
106-
id: number | undefined // 客户编号
107-
newOwnerUserId: number | undefined // 新负责人的用户编号
108-
oldOwnerPermissionLevel: number | undefined // 老负责人加入团队后的权限级别
109-
}
110-
111106
// 客户转移
112107
export const transferCustomer = async (data: TransferReqVO) => {
113108
return await request.put({ url: '/crm/customer/transfer', data })

src/api/crm/permission/index.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,21 @@ export interface PermissionVO {
66
bizType: number // Crm 类型
77
bizId: number // Crm 类型数据编号
88
level: number // 权限级别
9+
toBizTypes?: number[] // 同时添加至
910
deptName?: string // 部门名称
1011
nickname?: string // 用户昵称
1112
postNames?: string[] // 岗位名称数组
1213
createTime?: Date
1314
ids?: number[]
1415
}
1516

17+
export interface TransferReqVO {
18+
bizId: number // 模块编号
19+
newOwnerUserId: number // 新负责人的用户编号
20+
oldOwnerPermissionLevel: number // 老负责人加入团队后的权限级别
21+
toBizTypes?: number[] // 转移客户时,需要额外有【联系人】【商机】【合同】的 checkbox 选择
22+
}
23+
1624
/**
1725
* CRM 业务类型枚举
1826
*

src/api/crm/receivable/index.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,20 @@ import request from '@/config/axios'
33
export interface ReceivableVO {
44
id: number
55
no: string
6-
planId: number
7-
customerId: number
6+
planId?: number
7+
customerId?: number
88
customerName?: string
9-
contractId: number
9+
contractId?: number
1010
contract?: {
11+
id?: number
12+
name?: string
1113
no: string
1214
totalPrice: number
1315
}
1416
auditStatus: number
1517
processInstanceId: number
1618
returnTime: Date
17-
returnType: string
19+
returnType: number
1820
price: number
1921
ownerUserId: number
2022
ownerUserName?: string

src/api/crm/receivable/plan/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export interface ReceivablePlanVO {
1111
remindTime: Date
1212
customerId: number
1313
customerName?: string
14-
contractId: number
14+
contractId?: number
1515
contractNo?: string
1616
ownerUserId: number
1717
ownerUserName?: string

src/views/crm/business/detail/index.vue

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
编辑
55
</el-button>
66
<el-button
7-
:disabled="business.endStatus"
87
v-if="permissionListRef?.validateWrite"
8+
:disabled="business.endStatus"
99
type="success"
1010
@click="openStatusForm()"
1111
>
@@ -53,13 +53,12 @@
5353
</el-col>
5454

5555
<!-- 表单弹窗:添加/修改 -->
56-
<BusinessForm ref="formRef" @success="getBusiness(business.id)" />
57-
<BusinessUpdateStatusForm ref="statusFormRef" @success="getBusiness(business.id)" />
58-
<CrmTransferForm ref="transferFormRef" @success="close" />
56+
<BusinessForm ref="formRef" @success="getBusiness" />
57+
<BusinessUpdateStatusForm ref="statusFormRef" @success="getBusiness" />
58+
<CrmTransferForm ref="transferFormRef" :biz-type="BizTypeEnum.CRM_BUSINESS" @success="close" />
5959
</template>
6060
<script lang="ts" setup>
6161
import { useTagsViewStore } from '@/store/modules/tagsView'
62-
import * as ContactApi from '@/api/crm/contact'
6362
import * as BusinessApi from '@/api/crm/business'
6463
import BusinessDetailsHeader from './BusinessDetailsHeader.vue'
6564
import BusinessDetailsInfo from './BusinessDetailsInfo.vue'
@@ -73,22 +72,23 @@ import FollowUpList from '@/views/crm/followup/index.vue'
7372
import ContactList from '@/views/crm/contact/components/ContactList.vue'
7473
import BusinessUpdateStatusForm from '@/views/crm/business/BusinessUpdateStatusForm.vue'
7574
import ContractList from '@/views/crm/contract/components/ContractList.vue'
75+
import BusinessProductList from '@/views/crm/business/detail/BusinessProductList.vue'
7676
7777
defineOptions({ name: 'CrmBusinessDetail' })
7878
7979
const message = useMessage()
8080
8181
const businessId = ref(0) // 线索编号
8282
const loading = ref(true) // 加载中
83-
const business = ref<ContactApi.ContactVO>({} as ContactApi.ContactVO) // 联系人详情
83+
const business = ref<BusinessApi.BusinessVO>({} as BusinessApi.BusinessVO) // 商机详情
8484
const permissionListRef = ref<InstanceType<typeof PermissionList>>() // 团队成员列表 Ref
8585
8686
/** 获取详情 */
87-
const getBusiness = async (id: number) => {
87+
const getBusiness = async () => {
8888
loading.value = true
8989
try {
90-
business.value = await BusinessApi.getBusiness(id)
91-
await getOperateLog(id)
90+
business.value = await BusinessApi.getBusiness(businessId.value)
91+
await getOperateLog(businessId.value)
9292
} finally {
9393
loading.value = false
9494
}
@@ -109,7 +109,7 @@ const openStatusForm = () => {
109109
/** 联系人转移 */
110110
const transferFormRef = ref<InstanceType<typeof CrmTransferForm>>() // 联系人转移表单 ref
111111
const transfer = () => {
112-
transferFormRef.value?.open('商机转移', business.value.id, BusinessApi.transferBusiness)
112+
transferFormRef.value?.open(business.value.id)
113113
}
114114
115115
/** 获取操作日志 */
@@ -141,6 +141,6 @@ onMounted(async () => {
141141
return
142142
}
143143
businessId.value = params.id as unknown as number
144-
await getBusiness(businessId.value)
144+
await getBusiness()
145145
})
146146
</script>

src/views/crm/clue/detail/index.vue

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
>
1919
转化为客户
2020
</el-button>
21-
<el-button v-else type="success" disabled>已转化客户</el-button>
21+
<el-button v-else disabled type="success">已转化客户</el-button>
2222
</ClueDetailsHeader>
2323
<el-col>
2424
<el-tabs>
@@ -45,7 +45,7 @@
4545

4646
<!-- 表单弹窗:添加/修改 -->
4747
<ClueForm ref="formRef" @success="getClue" />
48-
<CrmTransferForm ref="transferFormRef" @success="close" />
48+
<CrmTransferForm ref="transferFormRef" :biz-type="BizTypeEnum.CRM_CLUE" @success="close" />
4949
</template>
5050
<script lang="ts" setup>
5151
import { useTagsViewStore } from '@/store/modules/tagsView'
@@ -91,7 +91,7 @@ const openForm = () => {
9191
/** 线索转移 */
9292
const transferFormRef = ref<InstanceType<typeof CrmTransferForm>>() // 线索转移表单 ref
9393
const transfer = () => {
94-
transferFormRef.value?.open('线索转移', clueId.value, ClueApi.transferClue)
94+
transferFormRef.value?.open(clueId.value)
9595
}
9696
9797
/** 转化为客户 */

0 commit comments

Comments
 (0)