This commit is contained in:
parent
ea723f36a6
commit
6a95d919a2
|
|
@ -72,9 +72,6 @@ export {};
|
||||||
'__ctx' extends keyof __VLS_PickNotAny<K, {}> ? K extends { __ctx?: infer Ctx } ? Ctx : never : any
|
'__ctx' extends keyof __VLS_PickNotAny<K, {}> ? K extends { __ctx?: infer Ctx } ? Ctx : never : any
|
||||||
, T extends (props: any, ctx: infer Ctx) => any ? Ctx : any
|
, T extends (props: any, ctx: infer Ctx) => any ? Ctx : any
|
||||||
>>;
|
>>;
|
||||||
type __VLS_OmitStringIndex<T> = {
|
|
||||||
[K in keyof T as string extends K ? never : K]: T[K];
|
|
||||||
};
|
|
||||||
type __VLS_UseTemplateRef<T> = Readonly<import('vue').ShallowRef<T | null>>;
|
type __VLS_UseTemplateRef<T> = Readonly<import('vue').ShallowRef<T | null>>;
|
||||||
|
|
||||||
function __VLS_getVForSourceType<T extends number | string | any[] | Iterable<any>>(source: T): [
|
function __VLS_getVForSourceType<T extends number | string | any[] | Iterable<any>>(source: T): [
|
||||||
|
|
@ -116,6 +113,6 @@ export {};
|
||||||
: (_: {} & Record<string, unknown>, ctx?: any) => { __ctx?: { attrs?: any, expose?: any, slots?: any, emit?: any, props?: {} & Record<string, unknown> } };
|
: (_: {} & Record<string, unknown>, ctx?: any) => { __ctx?: { attrs?: any, expose?: any, slots?: any, emit?: any, props?: {} & Record<string, unknown> } };
|
||||||
function __VLS_functionalComponentArgsRest<T extends (...args: any) => any>(t: T): 2 extends Parameters<T>['length'] ? [any] : [];
|
function __VLS_functionalComponentArgsRest<T extends (...args: any) => any>(t: T): 2 extends Parameters<T>['length'] ? [any] : [];
|
||||||
function __VLS_asFunctionalElement<T>(tag: T, endTag?: T): (attrs: T & Record<string, unknown>) => void;
|
function __VLS_asFunctionalElement<T>(tag: T, endTag?: T): (attrs: T & Record<string, unknown>) => void;
|
||||||
function __VLS_asFunctionalSlot<S>(slot: S): (props: NonNullable<S> extends (props: infer P) => any ? P : {}) => void;
|
function __VLS_asFunctionalSlot<S>(slot: S): S extends () => infer R ? (props: {}) => R : NonNullable<S>;
|
||||||
function __VLS_tryAsConstant<const T>(t: T): T;
|
function __VLS_tryAsConstant<const T>(t: T): T;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import { defineStore } from 'pinia'
|
import { defineStore } from 'pinia'
|
||||||
import { ImportLevelApi, type ImportLevelVO } from '@/api/crm/config/Importlevel'
|
import { ImportLevelApi, type ImportLevelVO } from '@/api/crm/config/Importlevel'
|
||||||
import { ChannelApi, type ChannelVO } from '@/api/crm/config/channel'
|
import { ChannelApi, type ChannelVO } from '@/api/crm/data/upload/channel'
|
||||||
import { FollowStatusApi, type FollowStatusVO } from '@/api/crm/config/followstatus'
|
import { FollowStatusApi, type FollowStatusVO } from '@/api/crm/config/followstatus'
|
||||||
import { CustomerSourceApi } from '@/api/crm/config/customersource'
|
import { CustomerSourceApi } from '@/api/crm/config/customersource'
|
||||||
import { CustomerTypeApi } from '@/api/crm/config/customertype'
|
import { CustomerTypeApi } from '@/api/crm/config/customertype'
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ declare module 'vue' {
|
||||||
BoundaryEventTimer: typeof import('./../components/bpmnProcessDesigner/package/penal/custom-config/components/BoundaryEventTimer.vue')['default']
|
BoundaryEventTimer: typeof import('./../components/bpmnProcessDesigner/package/penal/custom-config/components/BoundaryEventTimer.vue')['default']
|
||||||
CallActivity: typeof import('./../components/bpmnProcessDesigner/package/penal/task/task-components/CallActivity.vue')['default']
|
CallActivity: typeof import('./../components/bpmnProcessDesigner/package/penal/task/task-components/CallActivity.vue')['default']
|
||||||
CardTitle: typeof import('./../components/Card/src/CardTitle.vue')['default']
|
CardTitle: typeof import('./../components/Card/src/CardTitle.vue')['default']
|
||||||
|
Channel: typeof import('../api/crm/data/upload/channelndex.ts')['default']
|
||||||
Circulate: typeof import('./../api/crm/circulate/index.ts')['default']
|
Circulate: typeof import('./../api/crm/circulate/index.ts')['default']
|
||||||
ColorInput: typeof import('./../components/ColorInput/index.vue')['default']
|
ColorInput: typeof import('./../components/ColorInput/index.vue')['default']
|
||||||
ComponentContainer: typeof import('./../components/DiyEditor/components/ComponentContainer.vue')['default']
|
ComponentContainer: typeof import('./../components/DiyEditor/components/ComponentContainer.vue')['default']
|
||||||
|
|
|
||||||
|
|
@ -1,159 +0,0 @@
|
||||||
<template>
|
|
||||||
<ContentWrap>
|
|
||||||
<!-- 搜索工作栏 -->
|
|
||||||
<el-form
|
|
||||||
class="-mb-15px"
|
|
||||||
:model="queryParams"
|
|
||||||
ref="queryFormRef"
|
|
||||||
:inline="true"
|
|
||||||
label-width="68px"
|
|
||||||
>
|
|
||||||
<el-form-item label="渠道类型" prop="type">
|
|
||||||
<el-select v-model="queryParams.type" placeholder="请选择" clearable class="!w-240px">
|
|
||||||
<el-option
|
|
||||||
v-for="dict in getIntDictOptions(DICT_TYPE.CRM_CHANNEL_TYPE)"
|
|
||||||
:key="dict.value"
|
|
||||||
:label="dict.label"
|
|
||||||
:value="dict.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="渠道名称" prop="name">
|
|
||||||
<el-input
|
|
||||||
v-model="queryParams.name"
|
|
||||||
placeholder="请输入渠道名称"
|
|
||||||
clearable
|
|
||||||
class="!w-240px"
|
|
||||||
/>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item>
|
|
||||||
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
|
|
||||||
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
|
|
||||||
<el-button
|
|
||||||
type="primary"
|
|
||||||
plain
|
|
||||||
@click="openForm('create')"
|
|
||||||
v-hasPermi="['crm:config-channel:create']"
|
|
||||||
>
|
|
||||||
<Icon icon="ep:plus" class="mr-5px" /> 新增
|
|
||||||
</el-button>
|
|
||||||
</el-form-item>
|
|
||||||
</el-form>
|
|
||||||
</ContentWrap>
|
|
||||||
|
|
||||||
<!-- 列表 -->
|
|
||||||
<ContentWrap>
|
|
||||||
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
|
|
||||||
<el-table-column label="序号" align="center" width="60" type="index" />
|
|
||||||
<el-table-column label="渠道类型" align="left" width="120" prop="type" >
|
|
||||||
<template #default="scope">
|
|
||||||
<dict-tag :type="DICT_TYPE.CRM_CHANNEL_TYPE" :value="scope.row.type" />
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="渠道名称" align="left" width="120" prop="name" />
|
|
||||||
<el-table-column label="备注" align="left" min-width="120" prop="remark" />
|
|
||||||
<el-table-column label="操作" align="left" width="120px">
|
|
||||||
<template #default="scope">
|
|
||||||
<el-button
|
|
||||||
link
|
|
||||||
type="primary"
|
|
||||||
@click="openForm('update', scope.row.id)"
|
|
||||||
v-hasPermi="['crm:config-channel:update']"
|
|
||||||
>
|
|
||||||
编辑
|
|
||||||
</el-button>
|
|
||||||
<el-button
|
|
||||||
link
|
|
||||||
type="danger"
|
|
||||||
@click="handleDelete(scope.row.id)"
|
|
||||||
v-hasPermi="['crm:config-channel:delete']"
|
|
||||||
>
|
|
||||||
删除
|
|
||||||
</el-button>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
</el-table>
|
|
||||||
<!-- 分页 -->
|
|
||||||
<Pagination
|
|
||||||
:total="total"
|
|
||||||
v-model:page="queryParams.pageNo"
|
|
||||||
v-model:limit="queryParams.pageSize"
|
|
||||||
@pagination="getList"
|
|
||||||
/>
|
|
||||||
</ContentWrap>
|
|
||||||
|
|
||||||
<!-- 表单弹窗:添加/修改 -->
|
|
||||||
<ChannelForm ref="formRef" @success="getList" />
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script setup lang="ts">
|
|
||||||
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
|
||||||
import { ChannelApi, ChannelVO } from '@/api/crm/config/channel'
|
|
||||||
import ChannelForm from './ChannelForm.vue'
|
|
||||||
|
|
||||||
/** 渠道管理 列表 */
|
|
||||||
defineOptions({ name: 'Channel' })
|
|
||||||
|
|
||||||
const message = useMessage() // 消息弹窗
|
|
||||||
const { t } = useI18n() // 国际化
|
|
||||||
|
|
||||||
const loading = ref(true) // 列表的加载中
|
|
||||||
const list = ref<ChannelVO[]>([]) // 列表的数据
|
|
||||||
const total = ref(0) // 列表的总页数
|
|
||||||
const queryParams = reactive({
|
|
||||||
pageNo: 1,
|
|
||||||
pageSize: 15,
|
|
||||||
type: undefined,
|
|
||||||
name: undefined
|
|
||||||
})
|
|
||||||
const queryFormRef = ref() // 搜索的表单
|
|
||||||
|
|
||||||
/** 查询列表 */
|
|
||||||
const getList = async () => {
|
|
||||||
loading.value = true
|
|
||||||
try {
|
|
||||||
const data = await ChannelApi.getChannelPage(queryParams)
|
|
||||||
list.value = data.list
|
|
||||||
total.value = data.total
|
|
||||||
} finally {
|
|
||||||
loading.value = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 搜索按钮操作 */
|
|
||||||
const handleQuery = () => {
|
|
||||||
queryParams.pageNo = 1
|
|
||||||
getList()
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 重置按钮操作 */
|
|
||||||
const resetQuery = () => {
|
|
||||||
queryFormRef.value.resetFields()
|
|
||||||
handleQuery()
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 添加/修改操作 */
|
|
||||||
const formRef = ref()
|
|
||||||
const openForm = (type: string, id?: number) => {
|
|
||||||
formRef.value.open(type, id)
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 删除按钮操作 */
|
|
||||||
const handleDelete = async (id: number) => {
|
|
||||||
try {
|
|
||||||
// 删除的二次确认
|
|
||||||
await message.delConfirm()
|
|
||||||
// 发起删除
|
|
||||||
await ChannelApi.deleteChannel(id)
|
|
||||||
message.success(t('common.delSuccess'))
|
|
||||||
// 刷新列表
|
|
||||||
await getList()
|
|
||||||
} catch {}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/** 初始化 **/
|
|
||||||
onMounted(() => {
|
|
||||||
getList()
|
|
||||||
})
|
|
||||||
</script>
|
|
||||||
|
|
@ -228,7 +228,7 @@ import { dateFormatter } from '@/utils/formatTime'
|
||||||
import { buildTree } from '@/utils/tree'
|
import { buildTree } from '@/utils/tree'
|
||||||
import { handlePrevNext } from '@/utils/crm'
|
import { handlePrevNext } from '@/utils/crm'
|
||||||
import {CustomerSourceApi} from '@/api/crm/config/customersource'
|
import {CustomerSourceApi} from '@/api/crm/config/customersource'
|
||||||
import {ChannelApi,ChannelVO} from '@/api/crm/config/channel'
|
import {ChannelApi,ChannelVO} from '@/api/crm/data/upload/channel'
|
||||||
import {CustomerInforApi, CustomerInforVO} from '@/api/crm/customer/customer'
|
import {CustomerInforApi, CustomerInforVO} from '@/api/crm/customer/customer'
|
||||||
import CustomerDetail from '@/views/crm/components/Customer/Detail.vue'
|
import CustomerDetail from '@/views/crm/components/Customer/Detail.vue'
|
||||||
import AllocateForm from '@/views/crm/components/Allocate/AllocateForm.vue'
|
import AllocateForm from '@/views/crm/components/Allocate/AllocateForm.vue'
|
||||||
|
|
|
||||||
|
|
@ -89,7 +89,7 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { dateFormatter } from '@/utils/formatTime'
|
import { dateFormatter } from '@/utils/formatTime'
|
||||||
import { DataContrastApi, DataContrastVO } from '@/api/crm/data/networkpush/datacontrast'
|
import { DataContrastApi, DataContrastVO } from '@/api/crm/data/networkpush/datacontrast'
|
||||||
import { ChannelApi, ChannelVO } from '@/api/crm/config/channel'
|
import { ChannelApi, ChannelVO } from '@/api/crm/data/upload/channel'
|
||||||
|
|
||||||
/** 撞库数据 列表 */
|
/** 撞库数据 列表 */
|
||||||
defineOptions({ name: 'DataContrast' })
|
defineOptions({ name: 'DataContrast' })
|
||||||
|
|
|
||||||
|
|
@ -105,7 +105,7 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { dateFormatter } from '@/utils/formatTime'
|
import { dateFormatter } from '@/utils/formatTime'
|
||||||
import { RawDataApi, RawDataVO } from '@/api/crm/data/networkpush/rawdata'
|
import { RawDataApi, RawDataVO } from '@/api/crm/data/networkpush/rawdata'
|
||||||
import { ChannelApi } from '@/api/crm/config/channel'
|
import { ChannelApi } from '@/api/crm/data/upload/channel'
|
||||||
|
|
||||||
/** 原始数据 列表 */
|
/** 原始数据 列表 */
|
||||||
defineOptions({ name: 'RawData' })
|
defineOptions({ name: 'RawData' })
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
||||||
import { ChannelApi, ChannelVO } from '@/api/crm/config/channel'
|
import { ChannelApi, ChannelVO } from '@/api/crm/data/upload/channel'
|
||||||
|
|
||||||
/** 渠道管理 表单 */
|
/** 渠道管理 表单 */
|
||||||
defineOptions({ name: 'ChannelForm' })
|
defineOptions({ name: 'ChannelForm' })
|
||||||
|
|
@ -88,10 +88,10 @@
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
||||||
import { ChannelApi, ChannelVO } from '@/api/crm/config/channel'
|
import { ChannelApi, ChannelVO } from '@/api/crm/data/upload/channel'
|
||||||
import ChannelForm from './ChannelForm.vue'
|
import ChannelForm from '@/views/crm/data/upload/channel/ChannelForm.vue'
|
||||||
|
|
||||||
/** 渠道管理 列表 */
|
/** 渠道管理 列表 */
|
||||||
defineOptions({ name: 'Channel' })
|
defineOptions({ name: 'Channel' })
|
||||||
|
|
||||||
const message = useMessage() // 消息弹窗
|
const message = useMessage() // 消息弹窗
|
||||||
|
|
|
||||||
|
|
@ -136,7 +136,7 @@ import { useCrmStore } from '@/store/modules/crm'
|
||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
import { getAccessToken, getTenantId } from '@/utils/auth'
|
import { getAccessToken, getTenantId } from '@/utils/auth'
|
||||||
import download from '@/utils/download'
|
import download from '@/utils/download'
|
||||||
import { ChannelVO } from '@/api/crm/config/channel'
|
import { ChannelVO } from '@/api/crm/data/upload/channel'
|
||||||
import {UploadRecordApi} from '@/api/crm/data/upload/record'
|
import {UploadRecordApi} from '@/api/crm/data/upload/record'
|
||||||
import { CrmCustomerDataBelongEnum } from '@/utils/constants'
|
import { CrmCustomerDataBelongEnum } from '@/utils/constants'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -175,7 +175,7 @@ import { buildTree } from '@/utils/tree'
|
||||||
import UploadForm from './UploadForm.vue'
|
import UploadForm from './UploadForm.vue'
|
||||||
import { onMounted } from 'vue'
|
import { onMounted } from 'vue'
|
||||||
import { OpenSeaApi, OpenSeaVO } from '@/api/crm/opensea'
|
import { OpenSeaApi, OpenSeaVO } from '@/api/crm/opensea'
|
||||||
import { ChannelApi, ChannelVO } from '@/api/crm/config/channel'
|
import { ChannelApi, ChannelVO } from '@/api/crm/data/upload/channel'
|
||||||
import {CustomerSourceApi} from '@/api/crm/config/customersource'
|
import {CustomerSourceApi} from '@/api/crm/config/customersource'
|
||||||
import * as UserApi from '@/api/system/user'
|
import * as UserApi from '@/api/system/user'
|
||||||
import { useCrmStore } from '@/store/modules/crm'
|
import { useCrmStore } from '@/store/modules/crm'
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue