From f4b0199ef86e133fccbaf86c530438ec89ea6c63 Mon Sep 17 00:00:00 2001 From: dj <1042039504@qq.com> Date: Sat, 7 Dec 2024 21:32:12 +0800 Subject: [PATCH] =?UTF-8?q?feat(address-book):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=80=9A=E8=AE=AF=E5=BD=95=E5=AF=BC=E5=85=A5=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components.d.ts | 2 + src/api/address-book/index.js | 22 ++++ src/components/ImportExcel.vue | 105 ++++++++++++++++ .../address-book-management/index.vue | 113 ++++++++++++------ 4 files changed, 208 insertions(+), 34 deletions(-) create mode 100644 src/components/ImportExcel.vue diff --git a/components.d.ts b/components.d.ts index 8af693e..902d677 100644 --- a/components.d.ts +++ b/components.d.ts @@ -52,6 +52,7 @@ declare module '@vue/runtime-core' { ElTooltip: typeof import('element-plus/es')['ElTooltip'] ElTree: typeof import('element-plus/es')['ElTree'] ElTreeSelect: typeof import('element-plus/es')['ElTreeSelect'] + ElUpload: typeof import('element-plus/es')['ElUpload'] FvCheckbox: typeof import('./src/fvcomponents/fvCheckbox/index.vue')['default'] FvForm: typeof import('./src/fvcomponents/fvForm/index.vue')['default'] FvFormDialog: typeof import('./src/fvcomponents/fvFormDialog/index.vue')['default'] @@ -68,6 +69,7 @@ declare module '@vue/runtime-core' { IconSelect: typeof import('./src/components/iconSelect/index.vue')['default'] IconSupport: typeof import('./src/components/icons/IconSupport.vue')['default'] IconTooling: typeof import('./src/components/icons/IconTooling.vue')['default'] + ImportExcel: typeof import('./src/components/ImportExcel.vue')['default'] InfoLiveCall: typeof import('./src/components/infoLiveCall/index.vue')['default'] LiveCall: typeof import('./src/components/liveCall/index.vue')['default'] LiveCallItem: typeof import('./src/components/liveCall/LiveCallItem.vue')['default'] diff --git a/src/api/address-book/index.js b/src/api/address-book/index.js index c17fac9..3ce061a 100644 --- a/src/api/address-book/index.js +++ b/src/api/address-book/index.js @@ -1,4 +1,6 @@ import request from '@/utils/request.js' +import axios from "axios"; +import {getToken} from "@/utils/auth"; export const addContact = (data) => { return request({ @@ -28,3 +30,23 @@ export const deleteContact = (contactIds) => { method: 'delete' }) } + +export const importContact = (data) => { + return request({ + url: '/contact/import', + method: 'post', + data + }) +} + +export const exportContact = (data) => { + return axios.post( + `${import.meta.env.VITE_BASE_URL}/contact/export`,data, + { + responseType: 'blob', + headers: { + Authorization: getToken() + } + } + ); +} \ No newline at end of file diff --git a/src/components/ImportExcel.vue b/src/components/ImportExcel.vue new file mode 100644 index 0000000..0c80ad8 --- /dev/null +++ b/src/components/ImportExcel.vue @@ -0,0 +1,105 @@ + + + + + diff --git a/src/views/phone-traffic-management/address-book-management/index.vue b/src/views/phone-traffic-management/address-book-management/index.vue index 656efc4..41b4992 100644 --- a/src/views/phone-traffic-management/address-book-management/index.vue +++ b/src/views/phone-traffic-management/address-book-management/index.vue @@ -1,19 +1,27 @@