diff --git a/.env.development b/.env.development index c065e15..3d7f5d8 100644 --- a/.env.development +++ b/.env.development @@ -3,4 +3,5 @@ VITE_API_TIME_OUT=30000 VITE_PASSWORD_SECRET_KEY===ad-distribute= VITE_IMAGE_DOMAIN=https://hccake-img.oss-cn-shanghai.aliyuncs.com # 用来回显图片 -VITE_SERVERURL=http://39.100.77.21:8001 \ No newline at end of file +# http://39.100.77.21:8001 +VITE_SERVERURL=https://byffp.top \ No newline at end of file diff --git a/.env.production b/.env.production index c21c66d..e41a31a 100644 --- a/.env.production +++ b/.env.production @@ -3,4 +3,5 @@ VITE_API_TIME_OUT=10000 VITE_PASSWORD_SECRET_KEY===ad-distribute= VITE_IMAGE_DOMAIN=https://hccake-img.oss-cn-shanghai.aliyuncs.com # 用来回显图片 -VITE_SERVERURL=http://39.100.77.21:8001 \ No newline at end of file +# http://39.100.77.21:8001 +VITE_SERVERURL=https://byffp.top \ No newline at end of file diff --git a/dist.zip b/dist.zip deleted file mode 100644 index f11514d..0000000 Binary files a/dist.zip and /dev/null differ diff --git a/src/api/clueaccess/clueImport/index.ts b/src/api/clueaccess/clueImport/index.ts index 9ad5754..c1a78c0 100644 --- a/src/api/clueaccess/clueImport/index.ts +++ b/src/api/clueaccess/clueImport/index.ts @@ -1,5 +1,19 @@ import httpClient from '@/utils/axios' -import type { I18nData, I18nDataDTO, I18nDataQO, I18nImportData, ReadFileId } from './types' +import type { + I18nData, + I18nDataDTO, + I18nDataQO, + I18nImportData, + ReadFileId, + authorizedPlatformLink, + singleImportType, + otherImportType, + ConfigurationListPageParam, + linkDetail, + addChannelData, + applicationData, + chexkedChannelIdListType +} from './types' import type { FileObject } from '@/components/CropperModal/types' import type { ImportMode } from '@/api/types' import type { ApiResult } from '@/api/types' @@ -58,9 +72,7 @@ export function checkHeaderInformation(data: I18nImportData) { // return httpClient.post>('/clueFile/readFile', data) // } export function importI18nDataExcel(data: ReadFileId) { - return httpClient.get('/clueFile/readFile', { - params: data - }) + return httpClient.post('/clueFile/readFile', data) } // export function downloadI18nDataExcelTemplate() { @@ -85,3 +97,55 @@ export function deleteFile(id: string) { // } ) } +//获取授权平台跳转url +export function getAuthorizedPlatformLink(data: authorizedPlatformLink) { + return httpClient.get('/api/oceanEngine/url', { + params: data + }) +} + +//单个导入 +export function singleImport(data: singleImportType) { + return httpClient.post('/custom/manual/create', data) +} +/** + * 配置列表分页查询 + * @param pageParams 分页参数 + */ +export function pageAccessLogs(pageParams: ConfigurationListPageParam) { + return httpClient.get('/pushLink/page', { + params: pageParams + }) +} +//其他导入新增 +export function otherImport(data: otherImportType) { + return httpClient.post('/pushLink/add', data) +} +//其他导入编辑 +export function updateOtherImport(data: otherImportType) { + return httpClient.post('/pushLink/update', data) +} +//链接详情 +export function linkDetail(data: linkDetail) { + return httpClient.get('/pushLink/detail', { + params: data + }) +} +//获取渠道标识列表 +export function channelIdList(data: chexkedChannelIdListType) { + return httpClient.get('/api/tag/list', { + params: data + }) +} +//新增渠道标识 +export function addChannelId(data: addChannelData) { + return httpClient.post('/api/tag/add', data) +} +//应用 +export function application(data: applicationData[]) { + return httpClient.post('/api/tag/update', data) +} +//获取分发人下拉框列表数据 +export function getDistributorsUserIdList(roleId: number | undefined) { + return httpClient.get(`/system/user/findSalesman/${roleId}`) +} diff --git a/src/api/clueaccess/clueImport/types.ts b/src/api/clueaccess/clueImport/types.ts index a9c6263..8ef6a7d 100644 --- a/src/api/clueaccess/clueImport/types.ts +++ b/src/api/clueaccess/clueImport/types.ts @@ -1,5 +1,6 @@ import type { ImportMode } from '@/api/types' import type { UploadFile } from 'ant-design-vue/lib/upload/interface' +import type { PageParam } from '@/api/types' export interface I18nDataQO { // 国际化标识 @@ -50,6 +51,107 @@ export interface I18nImportData { export interface ReadFileId { // 文件内容 recordId?: string - // 导入模式 - // importMode: ImportMode + //分发人id数组 + distributorsUserIdList: number[] + //渠道名称 + channelName: string +} +// 授权平台跳转链接 +export interface authorizedPlatformLink { + authorizeName?: string +} +//单个导入 +export interface singleImportType { + customNid: string + remark: string +} +/** + * 配置列表分页参数 + */ +export type ConfigurationListPageParam = ConfigurationListQO & PageParam +/** + * 查询对象 + */ +export type ConfigurationListQO = { + //标签 + clueLabelName?: string + // + httpStatus?: number + //号码 + nid?: string + // 开始时间 + startTime?: string + // 结束时间 + endTime?: string + clueId?: string +} +//其他导入 +export interface otherImportType { + id?: number | undefined + channelType: number | undefined + name: string | undefined + channelIdentifyingList?: string[] + authType: number | undefined +} +//链接详情 +export interface linkDetail { + id: number | undefined +} +//新增渠道标识需传的数据 +export interface addChannelData { + routeName: string +} +//应用 +export interface applicationData { + id?: number | undefined + routeName?: string | undefined + routeStatus?: number | undefined +} +/** + * 配置列表record + */ +export type ConfigurationListRecord = { + channelType: number | undefined + channelUrl: string + createBy: number | undefined + createTime: string + id: number | undefined + userId: number | undefined + name: string + status: number | undefined + channelIdentifying?: string[] +} +////获取选中项渠道标识列表 +export type chexkedChannelIdListType = { + routeStatus?: number | undefined +} +/** + * 资源列表搜索区域表单 + */ +export interface clueDetailsSearch { + // 响应状态码 + httpStatus?: number + //订单编号 + batchNo?: string + //报名状态 + enrollStatus?: string + // 访问时间区间的开始值 + startTime?: string + // 访问时间区间的结束值 + endTime?: string +} +/** + * 配置列表搜索区域表单 + */ +export interface configurationListSearch { + // 响应状态码 + httpStatus?: number + //渠道名称 + name?: string + // 接入状态 + channelType?: string + // 访问时间区间的开始值 + startTime?: string + // 访问时间区间的结束值 + endTime?: string } diff --git a/src/api/customermanagement/customerList/index.ts b/src/api/customermanagement/customerList/index.ts index 6621011..81b9ed2 100644 --- a/src/api/customermanagement/customerList/index.ts +++ b/src/api/customermanagement/customerList/index.ts @@ -1,7 +1,12 @@ import httpClient from '@/utils/axios' import type { ApiResult } from '@/api/types' // SysMenuDTO -import type { SysUserPageParam, resourcesDtoDTO } from '@/api/customermanagement/customerList/types' +import type { + SysUserPageParam, + resourcesDtoDTO, + queryReservation, + isEffectiveType +} from '@/api/customermanagement/customerList/types' /** * 我的线索分页查询 @@ -43,3 +48,13 @@ export function messageAccessLogs(pageParams: SysUserPageParam) { params: pageParams }) } +//我的线索导出功能 +export function exportClueData(params: queryReservation) { + return httpClient.get('/clue/export', { params, responseType: 'blob' }) +} +//修改是否有效 +export function isEffective(query: isEffectiveType) { + return httpClient.get('/clue/changeIsEffective', { + params: query + }) +} diff --git a/src/api/customermanagement/customerList/types.ts b/src/api/customermanagement/customerList/types.ts index 6b4818d..f11960d 100644 --- a/src/api/customermanagement/customerList/types.ts +++ b/src/api/customermanagement/customerList/types.ts @@ -110,3 +110,14 @@ export interface resourcesDtoDTO { // // 地区语言标签 // languageTag: string // } +//我的线索导出 +export interface queryReservation { + nid?: string | undefined + startTime?: string + endTime?: string +} +//修改是否有效 +export interface isEffectiveType { + id?: string + effective: number | undefined +} diff --git a/src/hooks/websocket.ts b/src/hooks/websocket.ts index 19c6197..ff5e7a5 100644 --- a/src/hooks/websocket.ts +++ b/src/hooks/websocket.ts @@ -20,7 +20,7 @@ const useAdminWebSocket = () => { const host = window.location.host console.log(host, 'host') const wsUri = `ws://${host}${baseUri}/ws?access_token=${accessToken}` - console.log(wsUri, 'wsUri') + console.log(baseUri, 'baseUri') //使用useWebSocket函数创建WebSocket连接,并配置自动重连和心跳机制 useWebSocketReturn = useWebSocket(wsUri, { diff --git a/src/views/clueDetails/clueDetailsBatchModal.vue b/src/views/clueDetails/clueDetailsBatchModal.vue new file mode 100644 index 0000000..064a6ce --- /dev/null +++ b/src/views/clueDetails/clueDetailsBatchModal.vue @@ -0,0 +1,296 @@ + + + + diff --git a/src/views/clueDetails/clueDetailsPage.vue b/src/views/clueDetails/clueDetailsPage.vue new file mode 100644 index 0000000..4da9d49 --- /dev/null +++ b/src/views/clueDetails/clueDetailsPage.vue @@ -0,0 +1,220 @@ + + + + diff --git a/src/views/clueDetails/clueDetailsSearch.vue b/src/views/clueDetails/clueDetailsSearch.vue new file mode 100644 index 0000000..de6c7d0 --- /dev/null +++ b/src/views/clueDetails/clueDetailsSearch.vue @@ -0,0 +1,92 @@ + + + diff --git a/src/views/clueDetails/clueDetailsSingleModal.vue b/src/views/clueDetails/clueDetailsSingleModal.vue new file mode 100644 index 0000000..671ea3b --- /dev/null +++ b/src/views/clueDetails/clueDetailsSingleModal.vue @@ -0,0 +1,132 @@ + + + + diff --git a/src/views/clueaccess/channelIdentification.vue b/src/views/clueaccess/channelIdentification.vue new file mode 100644 index 0000000..277da1fc --- /dev/null +++ b/src/views/clueaccess/channelIdentification.vue @@ -0,0 +1,219 @@ + + + + + diff --git a/src/views/clueaccess/clueDerivation.vue b/src/views/clueaccess/clueDerivation.vue new file mode 100644 index 0000000..eb12098 --- /dev/null +++ b/src/views/clueaccess/clueDerivation.vue @@ -0,0 +1,429 @@ + + + + + diff --git a/src/views/clueaccess/clueImport.vue b/src/views/clueaccess/clueImport.vue index c9cdb09..392149f 100644 --- a/src/views/clueaccess/clueImport.vue +++ b/src/views/clueaccess/clueImport.vue @@ -2,87 +2,225 @@