pull/781/head
zy 2025-04-29 11:32:20 +08:00
parent 5c0e4096f8
commit 8d85aa49b7
7 changed files with 60 additions and 61 deletions

View File

@ -4,7 +4,7 @@ NODE_ENV=development
VITE_DEV=true
# 请求路径
VITE_BASE_URL='http://172.22.3.168:48080'
VITE_BASE_URL='http://8.130.12.151:48080'
# 文件上传类型server - 后端上传, client - 前端直连上传,仅支持 S3 服务
VITE_UPLOAD_TYPE=server

View File

@ -1,54 +1,48 @@
<!-- 合同详情页面组件-->
<template>
<ContractDetailsHeader v-loading="loading" :contract="contract">
<el-button v-if="permissionListRef?.validateWrite" @click="openForm('update', contract.id)">
编辑
</el-button>
<el-button v-if="permissionListRef?.validateOwnerUser" type="primary" @click="transferContract">
转移
</el-button>
</ContractDetailsHeader>
<el-col>
<el-tabs>
<el-tab-pane label="跟进记录">
<FollowUpList :biz-id="contract.id" :biz-type="BizTypeEnum.CRM_CONTRACT" />
</el-tab-pane>
<el-tab-pane label="基本信息">
<ContractDetailsInfo :contract="contract" />
</el-tab-pane>
<el-tab-pane label="产品">
<ContractProductList :contract="contract" />
</el-tab-pane>
<el-tab-pane label="回款">
<ReceivablePlanList
:contract-id="contract.id!"
:customer-id="contract.customerId"
@create-receivable="createReceivable"
/>
<ReceivableList
ref="receivableListRef"
:contract-id="contract.id!"
:customer-id="contract.customerId"
/>
</el-tab-pane>
<el-tab-pane label="团队成员">
<PermissionList
ref="permissionListRef"
:biz-id="contract.id!"
:biz-type="BizTypeEnum.CRM_CONTRACT"
:show-action="true"
@quit-team="close"
/>
</el-tab-pane>
<el-tab-pane label="操作日志">
<OperateLogV2 :log-list="logList" />
</el-tab-pane>
</el-tabs>
</el-col>
<ContentWrap class="mt-10px">
<el-col>
<el-tabs>
<el-tab-pane label="跟进记录">
<FollowUpList :biz-id="contract.id" :type="1" :biz-type="BizTypeEnum.CRM_CONTRACT" />
</el-tab-pane>
<el-tab-pane label="基本信息">
<ContractDetailsInfo :contract="contract" />
</el-tab-pane>
<el-tab-pane label="产品">
<ContractProductList :contract="contract" />
</el-tab-pane>
<el-tab-pane label="回款">
<ReceivablePlanList
:type="1"
:contract-id="contract.id!"
:customer-id="contract.customerId"
@create-receivable="createReceivable"
/>
<ReceivableList
ref="receivableListRef"
:type="1"
:contract-id="contract.id!"
:customer-id="contract.customerId"
/>
</el-tab-pane>
<el-tab-pane label="团队成员">
<PermissionList
ref="permissionListRef"
:type="1"
:biz-id="contract.id!"
:biz-type="BizTypeEnum.CRM_CONTRACT"
:show-action="true"
@quit-team="close"
/>
</el-tab-pane>
<el-tab-pane label="操作日志">
<OperateLogV2 :log-list="logList" />
</el-tab-pane>
</el-tabs>
</el-col>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<ContractForm ref="formRef" @success="getContractData" />
<CrmTransferForm ref="transferFormRef" :biz-type="BizTypeEnum.CRM_CONTRACT" @success="close" />
</template>
<script lang="ts" setup>
import { useTagsViewStore } from '@/store/modules/tagsView'
@ -59,8 +53,6 @@ import ContractDetailsHeader from './ContractDetailsHeader.vue'
import ContractProductList from './ContractProductList.vue'
import { BizTypeEnum } from '@/api/crm/permission'
import { getOperateLogPage } from '@/api/crm/operateLog'
import ContractForm from '@/views/crm/contract/ContractForm.vue'
import CrmTransferForm from '@/views/crm/permission/components/TransferForm.vue'
import PermissionList from '@/views/crm/permission/components/PermissionList.vue'
import FollowUpList from '@/views/crm/followup/index.vue'
import ReceivableList from '@/views/crm/receivable/components/ReceivableList.vue'
@ -89,6 +81,7 @@ const openForm = (type: string, id?: number) => {
const getContractData = async () => {
loading.value = true
try {
console.log('%csrc/views/crm/contract/detail/index.vue:92 234', 'color: #007acc;', contractId.value,234);
contract.value = await ContractApi.getContract(contractId.value)
await getOperateLog(contractId.value)
} finally {
@ -130,6 +123,7 @@ const close = () => {
/** 初始化 */
onMounted(async () => {
console.log('%csrc/views/crm/contract/detail/index.vue:134 props.id', 'color: #007acc;', props.id);
const id = props.id || route.query.id
if (!id) {
message.warning('参数错误,合同不能为空!')

View File

@ -389,7 +389,7 @@ const handleProcessDetail = (row) => {
/** 打开合同详情 */
const { push } = useRouter()
const openDetail = (row) => {
const openDetail = (row: Object) => {
router.push({ name: 'CrmContractDetail', query: { id: row.id } })
}

View File

@ -1,7 +1,7 @@
<!-- 某个记录的跟进记录列表目前主要用于 CRM 客户商机等详情界面 -->
<template>
<!-- 操作栏 -->
<el-row class="mb-10px" justify="end">
<el-row class="mb-10px" justify="end" v-if="!type">
<el-button @click="openForm">
<Icon class="mr-5px" icon="ep:edit" />
写跟进
@ -69,7 +69,7 @@
</el-link>
</template>
</el-table-column>
<el-table-column align="center" label="操作">
<el-table-column align="center" label="操作" v-if="!type">
<template #default="scope">
<el-button link type="danger" @click="handleDelete(scope.row.id)"> </el-button>
</template>
@ -99,7 +99,8 @@ import { BizTypeEnum } from '@/api/crm/permission'
defineOptions({ name: 'FollowUpRecord' })
const props = defineProps<{
bizType: number
bizId: number
bizId: number,
type: number
}>()
const message = useMessage() //
const { t } = useI18n() //

View File

@ -1,6 +1,6 @@
<template>
<!-- 操作栏 -->
<el-row v-if="showAction" justify="end">
<el-row v-if="showAction && !type" justify="end">
<el-button v-if="validateOwnerUser" type="primary" @click="openForm">
<Icon class="mr-5px" icon="ep:plus" />
新增
@ -57,7 +57,8 @@ const message = useMessage() // 消息
const props = defineProps<{
bizType: number //
bizId: number | undefined //
showAction: boolean //
showAction: boolean, //
type: number
}>()
const loading = ref(true) //
const list = ref<PermissionApi.PermissionVO[]>([]) //

View File

@ -1,6 +1,6 @@
<template>
<!-- 操作栏 -->
<el-row justify="end">
<el-row justify="end" v-if="!type">
<el-button @click="openForm('create')">
<Icon class="mr-5px" icon="icon-park:income-one" />
创建回款
@ -33,7 +33,7 @@
/>
<el-table-column align="center" label="负责人" prop="ownerUserName" />
<el-table-column align="center" label="备注" prop="remark" />
<el-table-column align="center" fixed="right" label="操作" width="130px">
<el-table-column align="center" fixed="right" label="操作" width="130px" v-if="!type">
<template #default="scope">
<el-button
v-hasPermi="['crm:receivable:update']"
@ -78,6 +78,7 @@ defineOptions({ name: 'CrmReceivableList' })
const props = defineProps<{
customerId?: number //
contractId?: number //
type: number
}>()
const message = useMessage() //

View File

@ -1,6 +1,6 @@
<template>
<!-- 操作栏 -->
<el-row justify="end">
<el-row justify="end" v-if="!type">
<el-button @click="openForm('create', undefined)">
<Icon class="mr-5px" icon="icon-park:income" />
创建回款计划
@ -37,7 +37,7 @@
/>
<el-table-column label="负责人" prop="ownerUserName" width="120" />
<el-table-column align="center" label="备注" prop="remark" />
<el-table-column align="center" fixed="right" label="操作" width="200px">
<el-table-column align="center" fixed="right" label="操作" width="200px" v-if="!type">
<template #default="scope">
<el-button
v-hasPermi="['crm:receivable:create']"
@ -89,6 +89,8 @@ defineOptions({ name: 'CrmReceivablePlanList' })
const props = defineProps<{
customerId?: number //
contractId?: number //
type: number
}>()
const message = useMessage() //