Browse Source

✨ CRM:商机接入合同列表

YunaiV 1 năm trước cách đây
mục cha
commit
43bdb3cdba

+ 5 - 0
src/api/crm/contract/index.ts

@@ -55,6 +55,11 @@ export const getContractPageByCustomer = async (params: any) => {
   return await request.get({ url: `/crm/contract/page-by-customer`, params })
 }
 
+// 查询 CRM 联系人列表,基于指定商机
+export const getContractPageByBusiness = async (params: any) => {
+  return await request.get({ url: `/crm/contract/page-by-business`, params })
+}
+
 // 查询 CRM 合同详情
 export const getContract = async (id: number) => {
   return await request.get({ url: `/crm/contract/get?id=` + id })

+ 3 - 3
src/views/crm/business/BusinessForm.vue

@@ -101,7 +101,7 @@
             <el-input
               disabled
               v-model="formData.totalProductPrice"
-              :formatter="erpPriceInputFormatter"
+              :formatter="erpPriceTableColumnFormatter"
             />
           </el-form-item>
         </el-col>
@@ -123,7 +123,7 @@
               disabled
               v-model="formData.totalPrice"
               placeholder="请输入商机金额"
-              :formatter="erpPriceInputFormatter"
+              :formatter="erpPriceTableColumnFormatter"
             />
           </el-form-item>
         </el-col>
@@ -142,7 +142,7 @@ import * as CustomerApi from '@/api/crm/customer'
 import * as UserApi from '@/api/system/user'
 import { useUserStore } from '@/store/modules/user'
 import BusinessProductForm from './components/BusinessProductForm.vue'
-import { erpPriceInputFormatter, erpPriceMultiply } from '@/utils'
+import { erpPriceMultiply, erpPriceTableColumnFormatter } from '@/utils'
 
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗

+ 4 - 2
src/views/crm/business/detail/index.vue

@@ -34,8 +34,9 @@
       <el-tab-pane label="产品">
         <BusinessProductList :business="business" />
       </el-tab-pane>
-      <!-- TODO 合同 -->
-      <el-tab-pane label="合同"> 123 </el-tab-pane>
+      <el-tab-pane label="合同" lazy>
+        <ContractList :biz-id="business.id!" :biz-type="BizTypeEnum.CRM_BUSINESS" />
+      </el-tab-pane>
       <el-tab-pane label="操作日志">
         <OperateLogV2 :log-list="logList" />
       </el-tab-pane>
@@ -71,6 +72,7 @@ import CrmTransferForm from '@/views/crm/permission/components/TransferForm.vue'
 import FollowUpList from '@/views/crm/followup/index.vue'
 import ContactList from '@/views/crm/contact/components/ContactList.vue'
 import BusinessUpdateStatusForm from '@/views/crm/business/BusinessUpdateStatusForm.vue'
+import ContractList from '@/views/crm/contract/components/ContractList.vue'
 
 defineOptions({ name: 'CrmBusinessDetail' })
 

+ 4 - 5
src/views/crm/contract/ContractForm.vue

@@ -159,7 +159,7 @@
             <el-input
               disabled
               v-model="formData.totalProductPrice"
-              :formatter="erpPriceInputFormatter"
+              :formatter="erpPriceTableColumnFormatter"
             />
           </el-form-item>
         </el-col>
@@ -176,12 +176,12 @@
           </el-form-item>
         </el-col>
         <el-col :span="8">
-          <el-form-item label="折扣后金额" prop="price">
+          <el-form-item label="折扣后金额" prop="totalPrice">
             <el-input
               disabled
               v-model="formData.totalPrice"
               placeholder="请输入商机金额"
-              :formatter="erpPriceInputFormatter"
+              :formatter="erpPriceTableColumnFormattere"
             />
           </el-form-item>
         </el-col>
@@ -199,10 +199,9 @@ import * as ContractApi from '@/api/crm/contract'
 import * as UserApi from '@/api/system/user'
 import * as ContactApi from '@/api/crm/contact'
 import * as BusinessApi from '@/api/crm/business'
-import { erpPriceInputFormatter, erpPriceMultiply } from '@/utils'
+import { erpPriceMultiply, erpPriceTableColumnFormatter } from '@/utils'
 import { useUserStore } from '@/store/modules/user'
 import ContractProductForm from '@/views/crm/contract/components/ContractProductForm.vue'
-import { bu } from '../../../../dist-prod/assets/index-9eac537b'
 
 const { t } = useI18n() // 国际化
 const message = useMessage() // 消息弹窗

+ 7 - 3
src/views/crm/contract/components/ContractList.vue

@@ -22,8 +22,8 @@
       <el-table-column
         label="合同金额(元)"
         align="center"
-        prop="price"
-        :formatter="erpPriceInputFormatter"
+        prop="totalPrice"
+        :formatter="erpPriceTableColumnFormatter"
       />
       <el-table-column
         label="开始时间"
@@ -63,7 +63,7 @@ import ContractForm from './../ContractForm.vue'
 import { BizTypeEnum } from '@/api/crm/permission'
 import { dateFormatter } from '@/utils/formatTime'
 import { DICT_TYPE } from '@/utils/dict'
-import { erpPriceInputFormatter } from '@/utils'
+import { erpPriceTableColumnFormatter } from '@/utils'
 
 defineOptions({ name: 'CrmContractList' })
 const props = defineProps<{
@@ -93,6 +93,10 @@ const getList = async () => {
         queryParams.customerId = props.bizId
         data = await ContractApi.getContractPageByCustomer(queryParams)
         break
+      case BizTypeEnum.CRM_BUSINESS:
+        queryParams.businessId = props.bizId
+        data = await ContractApi.getContractPageByBusiness(queryParams)
+        break
       default:
         return
     }