Merge remote-tracking branch 'origin/master'

pull/781/head
苑坤 2025-04-29 11:32:55 +08:00
commit 00ebfe482e
7 changed files with 60 additions and 61 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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