diff --git a/.eslintrc-auto-import.json b/.eslintrc-auto-import.json index 6b0d505..6ac6d78 100644 --- a/.eslintrc-auto-import.json +++ b/.eslintrc-auto-import.json @@ -74,7 +74,6 @@ "watch": true, "watchEffect": true, "watchPostEffect": true, - "watchSyncEffect": true, - "toValue": true + "watchSyncEffect": true } } \ No newline at end of file diff --git a/at.alicdn.com/t/c/font_4340011_rzfq6m1kbn.ttf b/at.alicdn.com/t/c/font_4340011_rzfq6m1kbn.ttf new file mode 100644 index 0000000..e69de29 diff --git a/pro-components/table/Table.tsx b/pro-components/table/Table.tsx index 8687e69..f1c205a 100644 --- a/pro-components/table/Table.tsx +++ b/pro-components/table/Table.tsx @@ -389,7 +389,7 @@ const ProTable = defineComponent({ // eslint-disable-next-line no-underscore-dangle delete (actionParams as any)._timestamp const response = await props.request?.(actionParams, proSort.value!, proFilter.value!) - console.log('请求数据:', response) + // console.log('请求数据:', response) return response as RequestData } } diff --git a/pro-components/table/useFetchData.tsx b/pro-components/table/useFetchData.tsx index 676d71b..b01500e 100644 --- a/pro-components/table/useFetchData.tsx +++ b/pro-components/table/useFetchData.tsx @@ -193,7 +193,7 @@ const useFetchData = >( watch( () => pageInfo.value, (currentPageInfo, prePageInfo) => { - console.log('页码改变了') + // console.log('页码改变了') const { current, pageSize } = pageInfo.value || {} const { current: prePage, pageSize: prePageSize } = prePageInfo || {} // 如果上次的页码为空或者两次页码等于是没必要查询的 diff --git a/src/api/clueaccess/clueImport/index.ts b/src/api/clueaccess/clueImport/index.ts index c1a78c0..712b0dd 100644 --- a/src/api/clueaccess/clueImport/index.ts +++ b/src/api/clueaccess/clueImport/index.ts @@ -44,10 +44,7 @@ export function updateI18nData(data: I18nData) { export function exportI18nDataExcel(params: I18nDataQO) { return httpClient.get('/i18n/i18n-data/export', { params, responseType: 'blob' }) } -/** - * 校验表头信息 - * @param data 文件 - */ + export function checkHeaderInformation(data: I18nImportData) { const { file } = data const formData = new FormData() diff --git a/src/api/index.ts b/src/api/index.ts index 424ed5e..b970e3b 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -1,5 +1,4 @@ import type { ApiResult } from '@/api/types' - export const isSuccess = (result: ApiResult) => { return result.code === 200 -} \ No newline at end of file +} diff --git a/src/api/shopManage/index.ts b/src/api/shopManage/index.ts index 5b37c44..c650df3 100644 --- a/src/api/shopManage/index.ts +++ b/src/api/shopManage/index.ts @@ -13,7 +13,7 @@ export function storeUserQueryAll() { } export function createStore(data: shopDetailVO) { - return httpClient.post>('/store/add', data) + return httpClient.post>('/store/add', data) } export function updateStore(data: shopDetailVO) { diff --git a/src/api/system/setup/index.ts b/src/api/system/setup/index.ts new file mode 100644 index 0000000..6816fd2 --- /dev/null +++ b/src/api/system/setup/index.ts @@ -0,0 +1,52 @@ +import httpClient from '@/utils/axios' +import type { ApiResult } from '@/api/types' +import type { AddConfig, settingPageParam, comparisonPageParam, fileUpload } from './types' + +// 新增对外链接 +export function createStore(data: AddConfig) { + return httpClient.post>('/push/clue/config/add', data) +} + +// 修改对外链接 +export function updateStore(data: AddConfig) { + return httpClient.post>('/push/clue/config/update', data) +} + +// 对外链接查询 +export function getConfig() { + return httpClient.get('/push/clue/config/query') +} +// +export function pageQueryPage(pageParams: settingPageParam) { + return httpClient.get('/push/clue/page', { + params: pageParams + }) +} +// 资源对比-人员列表 +export function getFindAll(roleId: number) { + return httpClient.get('/system/user/findAll/' + roleId) +} + +// 资源比对-列表 +export function pageQueryPageFile(pageParams: comparisonPageParam) { + return httpClient.get('/api/file/contrast/page', { + params: pageParams + }) +} +// 资源比对-文件列表 +export function pageRecordPage() { + return httpClient.get('/api/file/contrast/record/page') +} + +// 资源对比-创建任务 +export function createTask(data: any) { + return httpClient.post('/api/file/contrast/create', data) +} +// 资源对比-追加资源 +export function fileContrastAddition(data: any) { + return httpClient.post('/api/file/contrast/addition', data) +} +// 资源比对-资源比对 +export function fileContrastBuild(data: any) { + return httpClient.post('/api/file/contrast/build', data) +} diff --git a/src/api/system/setup/types.ts b/src/api/system/setup/types.ts new file mode 100644 index 0000000..08c7d58 --- /dev/null +++ b/src/api/system/setup/types.ts @@ -0,0 +1,39 @@ +import type { PageParam } from '@/api/types' +import type { UploadFile } from 'ant-design-vue/lib/upload/interface' +export interface AddConfig { + userId: number | undefined + status?: number + pushUrl?: string +} +export type settingParam = { + requestId?: string | undefined + startTime?: string | undefined + endTime?: string | undefined + reservationDate?: string +} + +export type settingData = { + id?: number + userId: number | undefined + clueId?: number + requestId?: string + pushInfo?: string + pushStatus?: number + status: number + pushUrl?: string + sendNum?: number +} + +export type fileUpload = { + files: UploadFile + userIds: number[] + taskName: string +} + +export type comparisonParam = { + taskName?: string + startTime?: string | undefined + endTime?: string | undefined +} +export type comparisonPageParam = comparisonParam & PageParam +export type settingPageParam = settingParam & PageParam diff --git a/src/layouts/components/MultiTab/MultiTab.less b/src/layouts/components/MultiTab/MultiTab.less index 0157a99..ab672e8 100644 --- a/src/layouts/components/MultiTab/MultiTab.less +++ b/src/layouts/components/MultiTab/MultiTab.less @@ -5,7 +5,7 @@ .ballcat-multi-tabs { background: @component-background; box-shadow: 0 3px 4px -2px rgba(0, 21, 41, 0.08); - z-index: 20; // 比 global header 大就行 + z-index: 18!important; // 比 global header 大就行 transition: all 0.2s; .ant-tabs { diff --git a/src/layouts/components/RightContent/AvatarDropdown.vue b/src/layouts/components/RightContent/AvatarDropdown.vue index 3e74e99..3711b67 100644 --- a/src/layouts/components/RightContent/AvatarDropdown.vue +++ b/src/layouts/components/RightContent/AvatarDropdown.vue @@ -9,9 +9,14 @@ @mousedown="handleDocumentClick" > - - - + + + + + + + @@ -74,16 +87,18 @@ import HeaderDropdown from '@/layouts/components/HeaderDropdown' import type { MenuInfo } from 'ant-design-vue/es/menu/src/interface' import { Modal } from 'ant-design-vue' import { logout } from '@/api/auth' -// import { useUserStore } from '@/stores/user-store' import { loginPath } from '@/config' // import { fileAbsoluteUrl } from '@/utils/file-utils' import { useMultiTabStore } from '@/stores/multitab-store' import Avatar from '@/assets/images/avatar.png' import Message from '@/components/Message/index.vue' -import { ref, watch, onMounted, onUnmounted } from 'vue' +import { message } from 'ant-design-vue' +import { ref, onMounted, onUnmounted } from 'vue' import { doRequest } from '@/utils/axios/request' import { messageAccessLogs } from '@/api/customermanagement/customerList' import useAdminWebSocket from '@/hooks/websocket' +import { SettingOutlined } from '@ant-design/icons-vue' + //获取当前账号角色 import { useUserStore } from '@/stores/user-store' const { userInfo } = useUserStore() @@ -109,6 +124,7 @@ onMounted(() => { const visible = ref(false) const container = ref(null) + // 新线索列表 interface DataItem { id: number | undefined @@ -120,7 +136,6 @@ interface DataItem { title: string show: boolean } - const newclueList = ref([]) const multiTabStore = useMultiTabStore() @@ -198,6 +213,7 @@ const getMessageList = () => { } ) } + const dropdownClick = async () => { if (!visible.value) { await getMessageList() @@ -238,3 +254,14 @@ export default { + diff --git a/src/styles/index.less b/src/styles/index.less index 083ab24..338adc5 100644 --- a/src/styles/index.less +++ b/src/styles/index.less @@ -4,6 +4,9 @@ .ml-5 { margin-left: 5px; } +.ml-10 { + margin-left: 10px +} .u-flex { display: flex; align-items: center; diff --git a/src/views/clueDetails/clueDetailsSearch.vue b/src/views/clueDetails/clueDetailsSearch.vue index de6c7d0..951ad42 100644 --- a/src/views/clueDetails/clueDetailsSearch.vue +++ b/src/views/clueDetails/clueDetailsSearch.vue @@ -4,7 +4,7 @@ - + diff --git a/src/views/clueaccess/accessDetail/accessDetail.vue b/src/views/clueaccess/accessDetail/accessDetail.vue index ceb939c..ef7bd6e 100644 --- a/src/views/clueaccess/accessDetail/accessDetail.vue +++ b/src/views/clueaccess/accessDetail/accessDetail.vue @@ -267,29 +267,7 @@ const column = [ } } ] -const dataSource: Ref = ref([ - // { - // key: '0', - // name: '公司A', - // totalNum: 35000, - // address: 35, - // operation: '-10%' - // }, - // { - // key: '1', - // name: '公司B', - // age: 25000, - // address: 25, - // operation: '-10%' - // }, - // { - // key: '1', - // name: '公司C', - // age: 20000, - // address: 20, - // operation: '+10%' - // } -]) +const dataSource: Ref = ref([]) //底部表格 // 表格组件引用 diff --git a/src/views/clueaccess/accessDetail/accessDetailModal.vue b/src/views/clueaccess/accessDetail/accessDetailModal.vue index dcd4028..50b09eb 100644 --- a/src/views/clueaccess/accessDetail/accessDetailModal.vue +++ b/src/views/clueaccess/accessDetail/accessDetailModal.vue @@ -107,7 +107,7 @@ const emits = defineEmits<{ const { title, visible, openModal, closeModal } = useModal('推送配置') -const { formAction, isCreateForm, isUpdateForm } = useFormAction() +const { formAction } = useFormAction() const formRef = ref() diff --git a/src/views/clueaccess/accessDetail/accessDetailSearch.vue b/src/views/clueaccess/accessDetail/accessDetailSearch.vue index 81c8a67..16de2b7 100644 --- a/src/views/clueaccess/accessDetail/accessDetailSearch.vue +++ b/src/views/clueaccess/accessDetail/accessDetailSearch.vue @@ -4,7 +4,7 @@ - + @@ -95,7 +95,7 @@ const search = () => { if (searchTimeValue.value && searchTimeValue.value.length == 2) { param.startTime = searchTimeValue.value[0].format('YYYY-MM-DD HH:mm:ss') param.endTime = searchTimeValue.value[1].format('YYYY-MM-DD HH:mm:ss') - }else { + } else { param.startTime = '' param.endTime = '' } diff --git a/src/views/configurationList/configurationListSearch.vue b/src/views/configurationList/configurationListSearch.vue index 40807c2..5de9107 100644 --- a/src/views/configurationList/configurationListSearch.vue +++ b/src/views/configurationList/configurationListSearch.vue @@ -4,7 +4,7 @@ - + - + diff --git a/src/views/controlcenterstation/distributionTaskManagement/distributionTaskManagementSearch.vue b/src/views/controlcenterstation/distributionTaskManagement/distributionTaskManagementSearch.vue index 852806b..3295d30 100644 --- a/src/views/controlcenterstation/distributionTaskManagement/distributionTaskManagementSearch.vue +++ b/src/views/controlcenterstation/distributionTaskManagement/distributionTaskManagementSearch.vue @@ -5,7 +5,7 @@ - +
- 导出 + 导出
@@ -71,18 +71,18 @@ --> - - + /> - + --> @@ -115,6 +115,7 @@ import { doRequest } from '@/utils/axios/request' import type { Dayjs } from 'dayjs' //防抖 import { useDebounceFn } from '@vueuse/core' + // import { useRoute } from 'vue-router' //删除 // import { doRequest } from '@/utils/axios/request' @@ -355,13 +356,14 @@ const switchChange = (record: any) => { // 导出 const downloadTemplate = useDebounceFn( () => { - const data: any = searchData + const data: any = searchParams data.salesmanType = salesmanType.value - if (data.exportDate && data.exportDate.length == 2) { - data.startTime = data.exportDate[0].format('YYYY-MM-DD HH:mm:ss') - data.endTime = data.exportDate[1].format('YYYY-MM-DD HH:mm:ss') - delete data.exportDate - } + // console.log('searchParams=', searchParams) + // if (data.exportDate && data.exportDate.length == 2) { + // data.startTime = data.exportDate[0].format('YYYY-MM-DD HH:mm:ss') + // data.endTime = data.exportDate[1].format('YYYY-MM-DD HH:mm:ss') + // delete data.exportDate + // } exportClueData(data) .then(res => { exportModel.value = false diff --git a/src/views/customermanagement/customerList/customerListSearch.vue b/src/views/customermanagement/customerList/customerListSearch.vue index c833616..25a3266 100644 --- a/src/views/customermanagement/customerList/customerListSearch.vue +++ b/src/views/customermanagement/customerList/customerListSearch.vue @@ -4,7 +4,7 @@ - + @@ -25,7 +25,7 @@
--> - + diff --git a/src/views/geopoliticalCustomers/geopoliticalCustomersModal.vue b/src/views/geopoliticalCustomers/geopoliticalCustomersModal.vue index 0ca0349..1f45671 100644 --- a/src/views/geopoliticalCustomers/geopoliticalCustomersModal.vue +++ b/src/views/geopoliticalCustomers/geopoliticalCustomersModal.vue @@ -133,7 +133,9 @@ { await initMap() }) } - +const filterOption = (input: string, option: any) => { + return option.userName.toLowerCase().indexOf(input.toLowerCase()) >= 0 +} defineExpose({ open(opendata: openObj) { isSubmit.value = false diff --git a/src/views/qualityInspectionDistribution/inspectionModal.vue b/src/views/qualityInspectionDistribution/inspectionModal.vue index 993708a..eeb6854 100644 --- a/src/views/qualityInspectionDistribution/inspectionModal.vue +++ b/src/views/qualityInspectionDistribution/inspectionModal.vue @@ -120,7 +120,9 @@ { console.log(err) }) } +const filterOption = (input: string, option: any) => { + return option.userName.toLowerCase().indexOf(input.toLowerCase()) >= 0 +} //小区下拉框提示列表数据 const searchDataList = ref([]) diff --git a/src/views/qualityInspectionDistribution/inspectionSearch.vue b/src/views/qualityInspectionDistribution/inspectionSearch.vue index f524ee5..9fda3a7 100644 --- a/src/views/qualityInspectionDistribution/inspectionSearch.vue +++ b/src/views/qualityInspectionDistribution/inspectionSearch.vue @@ -5,7 +5,7 @@ - + @@ -13,6 +13,7 @@ ({ const { resetFields } = useForm(formModel) const enrollStatusList = [ + { + name: '暂存中', + value: 0 + }, { name: '待分发', value: 1 diff --git a/src/views/salesmanagement/labelRule/clueStageModal.vue b/src/views/salesmanagement/labelRule/clueStageModal.vue index b4d1f02..aacdbe8 100644 --- a/src/views/salesmanagement/labelRule/clueStageModal.vue +++ b/src/views/salesmanagement/labelRule/clueStageModal.vue @@ -171,11 +171,8 @@ interface tagsItem { const inputRef = ref() const taghandleClose = (removedTag: tagsItem, type: string) => { - console.log(removedTag, 'removedTag') - console.log(type, 'type') const tags = tagFormModel.desc?.tags.filter(tag => tag.labelName !== removedTag.labelName) tagFormModel.desc.tags = tags - console.log(tags, 'tags') const newList: any = reactive([]) if (formModel.length > 0) { tags.forEach((item: any) => { @@ -185,11 +182,9 @@ const taghandleClose = (removedTag: tagsItem, type: string) => { })[0] ) }) - console.log(newList, 'newList') formModel.length = 0 formModel.push(...newList) } - console.log(formModel, 'formModel2') // formModel.delLabelId?.push(removedTag.labelOrganizeId) } @@ -201,7 +196,6 @@ const showInput = (type: string) => { } const handleInputConfirm = (type: string, index: number | undefined) => { - console.log(index, 'index') const inputValue = tagFormModel.desc.inputValue const labelNameList = tagFormModel.desc.tags.map((item: tagsItem) => { return item.labelName @@ -215,14 +209,9 @@ const handleInputConfirm = (type: string, index: number | undefined) => { // if (index && clueStageListLength.value) { // length.value = index + clueStageListLength.value - 1 length.value = Number(clueStageListLength.value) + Number(index) - console.log(length.value, 'length.value') - console.log(clueStageListLength.value, 'clueStageListLength.value2') - console.log(index, 'index') // } formModel.push({ name: inputValue, sort: length.value }) // formModel.push({ name: inputValue, sort: index }) - - console.log(formModel, 'formModel1') } Object.assign(tagFormModel.desc, { @@ -255,9 +244,7 @@ interface openObj { defineExpose({ open(opendata: openObj) { - console.log(opendata, 'opendata') clueStageListLength.value = opendata.clueStageListLength - console.log(clueStageListLength.value, 'clueStageListLength.value1') openModal() if (isCreateForm.value) { tagresetFields() @@ -273,7 +260,6 @@ defineExpose({ clueStageEditModel.clueStageId = opendata.tag?.clueStageId title.value = '编辑线索阶段' - // overrideProperties(formModel, opendata.record) } formAction.value = opendata.newFormAction diff --git a/src/views/salesmanagement/labelRule/labelRuleFormModal.vue b/src/views/salesmanagement/labelRule/labelRuleFormModal.vue index f89797f..c202c5d 100644 --- a/src/views/salesmanagement/labelRule/labelRuleFormModal.vue +++ b/src/views/salesmanagement/labelRule/labelRuleFormModal.vue @@ -210,21 +210,15 @@ const inputRef = ref() const taghandleClose = (removedTag: tagsItem, type: string) => { const tags = tagFormModel.desc?.tags.filter(tag => tag.labelName !== removedTag.labelName) tagFormModel.desc.tags = tags - console.log(tagFormModel.desc.tags, 'tagFormModel.desc.tags') - if (title.value === '编辑标签组') { if (removedTag.labelOrganizeId) { formModel.delLabelId?.push(removedTag.labelOrganizeId) - console.log(removedTag, 'removedTag') - console.log(formModel, 'formModel') } else { formModel.labelList = formModel.labelList?.filter((item: string) => { return item !== removedTag.labelName }) } } - console.log(tagFormModel.desc.tags, 'tagFormModel.desc.tags1111') - console.log(formModel, 'formModel') } const showInput = (type: string) => { @@ -247,9 +241,7 @@ const handleInputConfirm = (type: string, id: number | undefined) => { { labelName: inputValue, labelOrganizeId: undefined } ] formModel.labelList?.push(inputValue) - console.log(formModel.labelList, 'formModel.labelList') } - // console.log(tagFormModel.desc.tags, 'tagFormModel.desc.tags2') Object.assign(tagFormModel.desc, { tags: tagFormModel.desc.tags, inputVisible: false, @@ -283,7 +275,6 @@ defineExpose({ labelOrganizeId: item.id }) }) - console.log(tagFormModel.desc.tags, 'tagFormModel.desc.tags1') title.value = '编辑标签组' formModel.delLabelId = [] diff --git a/src/views/salesmanagement/salespersonList/salespersonListModal.vue b/src/views/salesmanagement/salespersonList/salespersonListModal.vue index cc4abc5..f1ffda8 100644 --- a/src/views/salesmanagement/salespersonList/salespersonListModal.vue +++ b/src/views/salesmanagement/salespersonList/salespersonListModal.vue @@ -143,7 +143,6 @@ const handleClose = () => { defineExpose({ open(newFormAction: FormAction, record?: SysUserPageVO) { - console.log(record, 'record') openModal() resetFields() if (newFormAction === FormAction.CREATE) { diff --git a/src/views/setting/clueComparison/clueComparison.vue b/src/views/setting/clueComparison/clueComparison.vue new file mode 100644 index 0000000..546ec22 --- /dev/null +++ b/src/views/setting/clueComparison/clueComparison.vue @@ -0,0 +1,150 @@ + + + + diff --git a/src/views/setting/clueComparison/clueComparisonModal.vue b/src/views/setting/clueComparison/clueComparisonModal.vue new file mode 100644 index 0000000..6272666 --- /dev/null +++ b/src/views/setting/clueComparison/clueComparisonModal.vue @@ -0,0 +1,338 @@ + + + + diff --git a/src/views/setting/clueComparison/clueComparisonSearch.vue b/src/views/setting/clueComparison/clueComparisonSearch.vue new file mode 100644 index 0000000..3a43517 --- /dev/null +++ b/src/views/setting/clueComparison/clueComparisonSearch.vue @@ -0,0 +1,79 @@ + + + diff --git a/src/views/setting/staffSetting/settingIndex.vue b/src/views/setting/staffSetting/settingIndex.vue new file mode 100644 index 0000000..59803ff --- /dev/null +++ b/src/views/setting/staffSetting/settingIndex.vue @@ -0,0 +1,143 @@ + + + + + diff --git a/src/views/setting/staffSetting/settingModal.vue b/src/views/setting/staffSetting/settingModal.vue new file mode 100644 index 0000000..98ed7a9 --- /dev/null +++ b/src/views/setting/staffSetting/settingModal.vue @@ -0,0 +1,163 @@ + + + + diff --git a/src/views/setting/staffSetting/settingSearch.vue b/src/views/setting/staffSetting/settingSearch.vue new file mode 100644 index 0000000..9c320bf --- /dev/null +++ b/src/views/setting/staffSetting/settingSearch.vue @@ -0,0 +1,87 @@ + +