diff --git a/src/pathInfo.json b/src/pathInfo.json index d63551e..af81d89 100644 --- a/src/pathInfo.json +++ b/src/pathInfo.json @@ -79,5 +79,12 @@ "/src/view/user/user/index.vue": "Index", "/src/plugin/announcement/form/info.vue": "InfoForm", "/src/plugin/announcement/view/info.vue": "Info", + "/src/plugin/customerservice/view/chat/index.vue": "ServiceMain", + "/src/plugin/customerservice/view/chat/test.vue": "ServiceUserTest", + "/src/plugin/customerservice/view/index.vue": "CustomerService", + "/src/plugin/customerservice/view/login/index.vue": "Index", + "/src/plugin/customerservice/view/reply/index.vue": "ServiceIndex", + "/src/plugin/customerservice/view/script/index.vue": "ServiceIndex", + "/src/plugin/customerservice/view/service/index.vue": "ServiceIndex", "/src/plugin/email/view/index.vue": "Email" } \ No newline at end of file diff --git a/src/plugin/customerservice/api/api.js b/src/plugin/customerservice/api/api.js new file mode 100644 index 0000000..89edb55 --- /dev/null +++ b/src/plugin/customerservice/api/api.js @@ -0,0 +1,113 @@ +import service from '@/utils/request' + +export const saveService = (data) => { + return service({ + url: '/service/save_service', + method: 'post', + data + }) +} + +export const findService = (params) => { + return service({ + url: '/service/find_service', + method: 'get', + params + }) +} + +export const getServiceList = (params) => { + return service({ + url: '/service/get_service_list', + method: 'get', + params + }) +} + +export const deleteService = (params) => { + return service({ + url: '/service/delete_service', + method: 'delete', + params + }) +} + +export const adminServiceLogin = (params) => { + return service({ + url: '/service/admin_login', + method: 'get', + params + }) +} + +export const accountServiceLogin = (data) => { + return service({ + url: '/service/account_login', + method: 'POST', + data + }) +} + +export const saveScript = (data) => { + return service({ + url: '/service/save_script', + method: 'post', + data + }) +} + +export const findScript = (params) => { + return service({ + url: '/service/find_script', + method: 'get', + params + }) +} + +export const getScriptList = (params) => { + return service({ + url: '/service/get_script_list', + method: 'get', + params + }) +} + +export const deleteScript = (params) => { + return service({ + url: '/service/delete_script', + method: 'delete', + params + }) +} + +export const saveReply = (data) => { + return service({ + url: '/service/save_reply', + method: 'post', + data + }) +} + +export const findReply = (params) => { + return service({ + url: '/service/find_reply', + method: 'get', + params + }) +} + +export const autoReplyList = (params) => { + return service({ + url: '/service/auto_reply_list', + method: 'get', + params + }) +} + +export const deleteReply = (params) => { + return service({ + url: '/service/delete_reply', + method: 'delete', + params + }) +} \ No newline at end of file diff --git a/src/plugin/customerservice/api/test.js b/src/plugin/customerservice/api/test.js new file mode 100644 index 0000000..33369c6 --- /dev/null +++ b/src/plugin/customerservice/api/test.js @@ -0,0 +1,61 @@ +import service from '@/utils/request' +import Cookies from 'js-cookie' + +// 添加请求拦截器 +service.interceptors.request.use( +config => { + config.headers['user-token'] = 'sssssssssssssssssss' + return config + }, + error => { + return Promise.reject(error) + } +) + +export const getServiceInfo = (params) => { + return service({ + url: '/service/get_kf_info', + method: 'get', + params + }) +} + +export const sendMessageData = (data) => { + return service({ + url: '/service/send_msg', + method: 'post', + data + }) +} + +export const getMsgList = (params) => { + return service({ + url: '/service/get_msg_list', + method: 'get', + params + }) +} + +export const setMsgView = (params) => { + return service({ + url: '/service/set_msg_view', + method: 'get', + params + }) +} + +export const uploadFile = (data) => { + return service({ + url: '/service/upload_file', + method: 'POST', + data + }) +} + +export const getTestUserInfo = (params) => { + return service({ + url: '/service/get_user_info', + method: 'get', + params + }) +} \ No newline at end of file diff --git a/src/plugin/customerservice/api/ws.js b/src/plugin/customerservice/api/ws.js new file mode 100644 index 0000000..c484064 --- /dev/null +++ b/src/plugin/customerservice/api/ws.js @@ -0,0 +1,76 @@ +import service from '@/utils/request' +import Cookies from 'js-cookie' + +// 添加请求拦截器 +service.interceptors.request.use( +config => { + config.headers['chat-token'] = Cookies.get('kf_token') + return config + }, + error => { + return Promise.reject(error) + } +) + +export const getServiceInfo = (params) => { + return service({ + url: '/service/get_kf_info', + method: 'get', + params + }) +} + +export const sendMessageData = (data) => { + return service({ + url: '/service/send_msg', + method: 'post', + data + }) +} +export const getMsgUser = (params) => { + return service({ + url: '/service/get_msg_user', + method: 'get', + params + }) +} + +export const getMsgList = (params) => { + return service({ + url: '/service/get_msg_list', + method: 'get', + params + }) +} + +export const setMsgView = (params) => { + return service({ + url: '/service/set_msg_view', + method: 'get', + params + }) +} + +export const uploadFile = (data) => { + return service({ + url: '/service/upload_file', + method: 'POST', + data + }) +} + +export const getScriptList = (params) => { + return service({ + url: '/service/get_service_script', + method: 'get', + params + }) +} + +export const getClientUserInfo = (params) => { + return service({ + url: '/service/get_user_info', + method: 'get', + params + }) +} \ No newline at end of file diff --git a/src/plugin/customerservice/view/chat/index.vue b/src/plugin/customerservice/view/chat/index.vue new file mode 100644 index 0000000..0bf0035 --- /dev/null +++ b/src/plugin/customerservice/view/chat/index.vue @@ -0,0 +1,807 @@ + + + + + + + + + + {{ kfInfo.nickname }} + + 退出登录 + + + + + + + + + + + + + + + + {{ user.nickname }} + + + {{ truncateMessage(user.message) }} + + + + {{ user.add_time_str }} + + {{ user.no_read > 99 ? '99+' : user.no_read }} + + + + + + + + + + + + + + + + {{ formatTimestamp(message.add_time) }} + + + + + + + {{ message.content }} + + + + + + + + + + + + {{ emoji }} + + + + + + + + + + + 发送 + + + + + + + + + 手机号码: {{ clientUserInfo.phone }} + 用户等级: {{ clientUserInfo.level }} + 性别: {{ clientUserInfo.gender }} + 余额: + 推广员: + + 暂无信息 + + + + + 这里显示全部订单内容。 + + + 这里显示未支付订单内容。 + + + 这里显示未发货订单内容。 + + + 这里显示退款中订单内容。 + + + + + + + 这里显示已购买商品内容。 + + + 这里显示浏览足迹内容。 + + + 这里显示收藏商品内容。 + + + + + + + + + + + + + {{ script.title }} + {{ script.content }} + + + + + + {{ script.title }} + {{ script.content }} + + + + + + + + + + + diff --git a/src/plugin/customerservice/view/chat/test.vue b/src/plugin/customerservice/view/chat/test.vue new file mode 100644 index 0000000..c9c9008 --- /dev/null +++ b/src/plugin/customerservice/view/chat/test.vue @@ -0,0 +1,497 @@ + + + + + + + + + + {{ formatTimestamp(message.add_time) }} + + + + + + + {{ message.content }} + + + + + + + + + + + + {{ emoji }} + + + + + + + + + + 发送 + + + + + + + + + + diff --git a/src/plugin/customerservice/view/index.vue b/src/plugin/customerservice/view/index.vue new file mode 100644 index 0000000..0e185fc --- /dev/null +++ b/src/plugin/customerservice/view/index.vue @@ -0,0 +1,30 @@ + + + 在此处书写页面代码 + + + + + diff --git a/src/plugin/customerservice/view/login/index.vue b/src/plugin/customerservice/view/login/index.vue new file mode 100644 index 0000000..dc884ed --- /dev/null +++ b/src/plugin/customerservice/view/login/index.vue @@ -0,0 +1,107 @@ + + + + 客服系统 + + + + + + + + + + 登录 + + + + + + + + diff --git a/src/plugin/customerservice/view/reply/index.vue b/src/plugin/customerservice/view/reply/index.vue new file mode 100644 index 0000000..582960b --- /dev/null +++ b/src/plugin/customerservice/view/reply/index.vue @@ -0,0 +1,364 @@ + + + + + 新增 + + + + + + {{replyType[scope.row.reply_type]}} + + + + + + + + + + {{scope.row.content}} + + + + + + 正常 + 禁用 + + + + + + + 编辑 + 删除 + + + + + + + + + + + {{type==='create'?'添加':'修改'}} + + 确 定 + 取 消 + + + + + + + + + + + + + + 文本 + 图片 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/plugin/customerservice/view/script/index.vue b/src/plugin/customerservice/view/script/index.vue new file mode 100644 index 0000000..55f8c51 --- /dev/null +++ b/src/plugin/customerservice/view/script/index.vue @@ -0,0 +1,306 @@ + + + + + 新增 + + + + + + + + + + + 编辑 + 删除 + + + + + + + + + + + {{type==='create'?'添加':'修改'}} + + 确 定 + 取 消 + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/plugin/customerservice/view/service/index.vue b/src/plugin/customerservice/view/service/index.vue new file mode 100644 index 0000000..4445efa --- /dev/null +++ b/src/plugin/customerservice/view/service/index.vue @@ -0,0 +1,399 @@ + + + + + 新增 + + + + + + + + + + + + + + + 正常 + 禁用 + + + + + 编辑 + 删除 + 进入工作台 + + + + + + + + + + + {{type==='create'?'添加':'修改'}} + + 确 定 + 取 消 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/plugin/picturelibrary/api/api.js b/src/plugin/picturelibrary/api/api.js new file mode 100644 index 0000000..613e5fd --- /dev/null +++ b/src/plugin/picturelibrary/api/api.js @@ -0,0 +1,55 @@ +import service from '@/utils/request' + +// @Router /pic_library/list +export const getFileListApi = (data) => { + return service({ + url: '/pic/pic_library/list', + method: 'post', + data + }) +} + +// @Router /pic_library/cat_list +export const getCategoryListApi = (data) => { + return service({ + url: '/pic/pic_library/cat_list', + method: 'post', + data + }) +} + +// @Router /pic_library/add_cat +export const addCategoryApi = (data) => { + return service({ + url: '/pic/pic_library/add_cat', + method: 'post', + data + }) +} + +// @Router /pic_library/upload_handler +export const uploadHandlerApi = (data) => { + return service({ + url: '/pic/pic_library/upload_handler', + method: 'post', + data + }) +} + +// @Router /pic_library/delete_file +export const deleteFilesApi = (data) => { + return service({ + url: '/pic/pic_library/delete_file', + method: 'post', + data + }) +} + +// @Router /pic_library/delete_cat +export const deleteCategoryApi = (data) => { + return service({ + url: '/pic/pic_library/delete_cat', + method: 'post', + data + }) +} \ No newline at end of file diff --git a/src/plugin/picturelibrary/view/components/imageLibrary.vue b/src/plugin/picturelibrary/view/components/imageLibrary.vue new file mode 100644 index 0000000..79aa9cd --- /dev/null +++ b/src/plugin/picturelibrary/view/components/imageLibrary.vue @@ -0,0 +1,456 @@ + + + + + + {{ data.name }} + + handleCommand(data, command)"> + ... + + + 添加分类 + 编辑分类 + 删除分类 + + + + + + + + + + 使用选中的文件 + 上传文件 + 删除文件 + + 查询 + + + + + + + + {{image.name}} + + + + + + + + + + + + + + + + + + + 取消 + 确定 + + + + + 确定要删除选中的文件吗? + + 取消 + 确定 + + + + + + + + + {{ data.name }} + + + + + + + + + + + 取消 + 确定 + + + + + + + \ No newline at end of file diff --git a/src/plugin/picturelibrary/view/index.vue b/src/plugin/picturelibrary/view/index.vue new file mode 100644 index 0000000..363e702 --- /dev/null +++ b/src/plugin/picturelibrary/view/index.vue @@ -0,0 +1,30 @@ + + + 在此处书写页面代码 + + + + + diff --git a/src/router/index.js b/src/router/index.js index 4181603..19adec7 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -31,6 +31,30 @@ const routes = [ }, component: () => import('@/view/error/index.vue') }, + { + path: '/kefu/login', + name: 'ServiceLogin', + component: () => import('@/plugin/customerservice/view/login/index.vue'), + meta:{ + client:true + } + }, + { + path: '/kefu/main', + name: 'ServiceMain', + component: () => import('@/plugin/customerservice/view/chat/index.vue'), + meta:{ + client:true + } + }, + { + path: '/kefu/test', + name: 'ServiceUserTest', + component: () => import('@/plugin/customerservice/view/chat/test.vue'), + meta:{ + client:true + } + }, ] const router = createRouter({
{{ message.content }}
手机号码: {{ clientUserInfo.phone }}
用户等级: {{ clientUserInfo.level }}
性别: {{ clientUserInfo.gender }}
余额:
推广员:
这里显示全部订单内容。
这里显示未支付订单内容。
这里显示未发货订单内容。
这里显示退款中订单内容。
这里显示已购买商品内容。
这里显示浏览足迹内容。
这里显示收藏商品内容。