|
@@ -3,54 +3,63 @@
|
|
<div class="flex justify-between">
|
|
<div class="flex justify-between">
|
|
<div class="title">基本信息</div>
|
|
<div class="title">基本信息</div>
|
|
<div>
|
|
<div>
|
|
- <el-button type="primary" @click="showVisible('newBusinessisible')">转为商机</el-button>
|
|
|
|
|
|
+ <el-button type="primary" v-permission="['threadEdit', userInfo.id == information.inchargerId]"
|
|
|
|
+ @click="showVisible('newBusinessisible')">转为商机</el-button>
|
|
<el-button type="primary" @click="claimClues()" v-if="!information.inchargerName">认领</el-button>
|
|
<el-button type="primary" @click="claimClues()" v-if="!information.inchargerName">认领</el-button>
|
|
<el-button type="primary" @click="showVisible('clueDialogVisible')" v-else>转移</el-button>
|
|
<el-button type="primary" @click="showVisible('clueDialogVisible')" v-else>转移</el-button>
|
|
- <el-button type="primary" @click="editClue(information)">编辑</el-button>
|
|
|
|
|
|
+ <el-button type="primary" @click="editClue(information)" v-permission="['tasksAdd']">编辑</el-button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="form flex flex-wrap justify-between">
|
|
<div class="form flex flex-wrap justify-between">
|
|
<div class="formItem flex pt-3 pb-1">
|
|
<div class="formItem flex pt-3 pb-1">
|
|
<div class="w-20 text-right text-gray-500">线索名称:</div>
|
|
<div class="w-20 text-right text-gray-500">线索名称:</div>
|
|
- <div class="flex-1 overflow-hidden text-ellipsis whitespace-nowrap ml-1">{{ information.clueName }}</div>
|
|
|
|
|
|
+ <div class="flex-1 overflow-hidden text-ellipsis whitespace-nowrap ml-1" v-ellipsis-tooltip>{{
|
|
|
|
+ information.clueName }}</div>
|
|
</div>
|
|
</div>
|
|
<div class="formItem flex pt-3 pb-1">
|
|
<div class="formItem flex pt-3 pb-1">
|
|
<div class="w-20 text-right text-gray-500">线索来源:</div>
|
|
<div class="w-20 text-right text-gray-500">线索来源:</div>
|
|
- <div class="flex-1 overflow-hidden text-ellipsis whitespace-nowrap ml-1">{{ information.clueSourceValue }}
|
|
|
|
|
|
+ <div class="flex-1 overflow-hidden text-ellipsis whitespace-nowrap ml-1" v-ellipsis-tooltip>{{
|
|
|
|
+ information.clueSourceValue }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="formItem flex pt-3 pb-1">
|
|
<div class="formItem flex pt-3 pb-1">
|
|
<div class="w-20 text-right text-gray-500">电话号码:</div>
|
|
<div class="w-20 text-right text-gray-500">电话号码:</div>
|
|
- <div class="flex-1 overflow-hidden text-ellipsis whitespace-nowrap ml-1">{{ information.phone }}</div>
|
|
|
|
|
|
+ <div class="flex-1 overflow-hidden text-ellipsis whitespace-nowrap ml-1" v-ellipsis-tooltip>{{
|
|
|
|
+ information.phone }}</div>
|
|
</div>
|
|
</div>
|
|
<div class="formItem flex pt-3 pb-1">
|
|
<div class="formItem flex pt-3 pb-1">
|
|
<div class="w-20 text-right text-gray-500">邮箱:</div>
|
|
<div class="w-20 text-right text-gray-500">邮箱:</div>
|
|
- <div class="flex-1 overflow-hidden text-ellipsis whitespace-nowrap ml-1">{{ information.email }}</div>
|
|
|
|
|
|
+ <div class="flex-1 overflow-hidden text-ellipsis whitespace-nowrap ml-1" v-ellipsis-tooltip>{{
|
|
|
|
+ information.email }}</div>
|
|
</div>
|
|
</div>
|
|
<div class="formItem flex pt-3 pb-1">
|
|
<div class="formItem flex pt-3 pb-1">
|
|
<div class="w-20 text-right text-gray-500">客户行业:</div>
|
|
<div class="w-20 text-right text-gray-500">客户行业:</div>
|
|
- <div class="flex-1 overflow-hidden text-ellipsis whitespace-nowrap ml-1">{{
|
|
|
|
|
|
+ <div class="flex-1 overflow-hidden text-ellipsis whitespace-nowrap ml-1" v-ellipsis-tooltip>{{
|
|
information.customerIndustryValue
|
|
information.customerIndustryValue
|
|
- }}</div>
|
|
|
|
|
|
+ }}</div>
|
|
</div>
|
|
</div>
|
|
<div class="formItem flex pt-3 pb-1">
|
|
<div class="formItem flex pt-3 pb-1">
|
|
<div class="w-20 text-right text-gray-500">客户级别:</div>
|
|
<div class="w-20 text-right text-gray-500">客户级别:</div>
|
|
- <div class="flex-1 overflow-hidden text-ellipsis whitespace-nowrap ml-1">{{ information.customerLevelValue
|
|
|
|
- }}
|
|
|
|
|
|
+ <div class="flex-1 overflow-hidden text-ellipsis whitespace-nowrap ml-1" v-ellipsis-tooltip>{{
|
|
|
|
+ information.customerLevelValue
|
|
|
|
+ }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="formItem flex pt-3 pb-1">
|
|
<div class="formItem flex pt-3 pb-1">
|
|
<div class="w-20 text-right text-gray-500">客户地址:</div>
|
|
<div class="w-20 text-right text-gray-500">客户地址:</div>
|
|
- <div class="flex-1 overflow-hidden text-ellipsis whitespace-nowrap ml-1">{{ information.address }}</div>
|
|
|
|
|
|
+ <div class="flex-1 overflow-hidden text-ellipsis whitespace-nowrap ml-1" v-ellipsis-tooltip>{{
|
|
|
|
+ information.address }}</div>
|
|
</div>
|
|
</div>
|
|
<div class="formItem flex pt-3 pb-1">
|
|
<div class="formItem flex pt-3 pb-1">
|
|
<div class="w-20 text-right text-gray-500">负责人:</div>
|
|
<div class="w-20 text-right text-gray-500">负责人:</div>
|
|
- <div class="flex-1 overflow-hidden text-ellipsis whitespace-nowrap ml-1">{{ information.inchargerName }}
|
|
|
|
|
|
+ <div class="flex-1 overflow-hidden text-ellipsis whitespace-nowrap ml-1" v-ellipsis-tooltip>{{
|
|
|
|
+ information.inchargerName }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="formItem flex pt-3 pb-1">
|
|
<div class="formItem flex pt-3 pb-1">
|
|
<div class="w-20 text-right text-gray-500">创建人:</div>
|
|
<div class="w-20 text-right text-gray-500">创建人:</div>
|
|
- <div class="flex-1 overflow-hidden text-ellipsis whitespace-nowrap ml-1">{{ information.createName }}</div>
|
|
|
|
|
|
+ <div class="flex-1 overflow-hidden text-ellipsis whitespace-nowrap ml-1" v-ellipsis-tooltip>{{
|
|
|
|
+ information.createName }}</div>
|
|
</div>
|
|
</div>
|
|
<div class="formItem flex pt-3 pb-1">
|
|
<div class="formItem flex pt-3 pb-1">
|
|
<div class="w-20 text-right text-gray-500">创建时间:</div>
|
|
<div class="w-20 text-right text-gray-500">创建时间:</div>
|
|
@@ -59,7 +68,7 @@
|
|
</div>
|
|
</div>
|
|
<div class="formItem flex pt-3 pb-1" style="width: 100%;">
|
|
<div class="formItem flex pt-3 pb-1" style="width: 100%;">
|
|
<div class="w-20 text-right text-gray-500">备注:</div>
|
|
<div class="w-20 text-right text-gray-500">备注:</div>
|
|
- <div class="flex-1 ml-1 text ">
|
|
|
|
|
|
+ <div class="flex-1 ml-1 text" v-ellipsis-tooltip>
|
|
{{ information.remark }}
|
|
{{ information.remark }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -89,7 +98,8 @@
|
|
<div class="flex justify-between items-center border-b pb-3 dialog-header">
|
|
<div class="flex justify-between items-center border-b pb-3 dialog-header">
|
|
<h4 :id="titleId">{{ allText.clueText }}</h4>
|
|
<h4 :id="titleId">{{ allText.clueText }}</h4>
|
|
<div>
|
|
<div>
|
|
- <el-button type="primary" :loading="allLoading.clueLoading" @click="transferClues()">转移</el-button>
|
|
|
|
|
|
+ <el-button type="primary" :loading="allLoading.clueLoading"
|
|
|
|
+ @click="transferClues()">转移</el-button>
|
|
<el-button @click="dialogVisible.clueDialogVisible = false">取消</el-button>
|
|
<el-button @click="dialogVisible.clueDialogVisible = false">取消</el-button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -120,7 +130,7 @@
|
|
<div class="h-[60vh] overflow-y-auto scroll-bar pt-3">
|
|
<div class="h-[60vh] overflow-y-auto scroll-bar pt-3">
|
|
<GenerateForm ref="generateFormDataRef" :data="generateFormData" :value="generateFormVal" />
|
|
<GenerateForm ref="generateFormDataRef" :data="generateFormData" :value="generateFormVal" />
|
|
<div>相关产品</div>
|
|
<div>相关产品</div>
|
|
- <RelatedProducts ref="relatedProductsRef" :productTableList="productTableList" />
|
|
|
|
|
|
+ <RelatedProducts ref="relatedProductsRef" :productTableList="productTableList" :productTableListValue="{}" />
|
|
</div>
|
|
</div>
|
|
</el-dialog>
|
|
</el-dialog>
|
|
</div>
|
|
</div>
|
|
@@ -137,6 +147,7 @@ import RelatedProducts from '@/components/relatedProducts/relatedProducts.vue'
|
|
import { all } from 'axios';
|
|
import { all } from 'axios';
|
|
import { formatDateTime } from '@/utils/times';
|
|
import { formatDateTime } from '@/utils/times';
|
|
import { UPDATEINSET } from '@/pages/business/api';
|
|
import { UPDATEINSET } from '@/pages/business/api';
|
|
|
|
+import { GETTABLELIST } from '@/pages/product/api';
|
|
|
|
|
|
interface personnelInterface {
|
|
interface personnelInterface {
|
|
id: string | number,
|
|
id: string | number,
|
|
@@ -304,6 +315,32 @@ async function getSystemField() {
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+function getProductTableList() {
|
|
|
|
+ post(GETTABLELIST, { pageIndex: -1, pageSize: -1 }).then((res) => {
|
|
|
|
+ if (res.code == 'ok') {
|
|
|
|
+ const { record, total } = res.data
|
|
|
|
+ productTableList.value = record.map((item: any) => {
|
|
|
|
+ const { id, productName, productCode, unit, unitName, typeName, type, price, inventory } = item
|
|
|
|
+ return {
|
|
|
|
+ id,
|
|
|
|
+ productId: id,
|
|
|
|
+ productName,
|
|
|
|
+ productCode,
|
|
|
|
+ unit,
|
|
|
|
+ unitName,
|
|
|
|
+ price,
|
|
|
|
+ type,
|
|
|
|
+ typeName,
|
|
|
|
+ inventory,
|
|
|
|
+ quantity: '',
|
|
|
|
+ discount: '',
|
|
|
|
+ totalPrice: ''
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+}
|
|
|
|
+
|
|
watchEffect(() => {
|
|
watchEffect(() => {
|
|
receiveAssignment(props)
|
|
receiveAssignment(props)
|
|
});
|
|
});
|
|
@@ -317,6 +354,7 @@ onMounted(async () => {
|
|
let newData = JSON.parse(data.data[0].config)
|
|
let newData = JSON.parse(data.data[0].config)
|
|
generateFormData.value = newData
|
|
generateFormData.value = newData
|
|
getSystemField()
|
|
getSystemField()
|
|
|
|
+ getProductTableList()
|
|
});
|
|
});
|
|
</script>
|
|
</script>
|
|
<style scoped lang="scss">
|
|
<style scoped lang="scss">
|