修改系统后台客服
This commit is contained in:
parent
483554e361
commit
2e332c8986
@ -159,4 +159,8 @@ export { default as Problem } from './serve/Problem.vue'
|
||||
export { default as SeekAdviceFrom } from './serve/SeekAdviceFrom.vue'
|
||||
export { default as OtherServe } from './serve/Other.vue'
|
||||
export { default as ArrowRightServe } from './serve/ArrowRight.vue'
|
||||
export { default as SendCustom } from './serve/SendCustom.vue'
|
||||
export { default as Attachment } from './serve/Attachment.vue'
|
||||
export { default as Record } from './serve/Record.vue'
|
||||
export { default as Expression } from './serve/Expression.vue'
|
||||
|
||||
|
||||
13
src/assets/icons/serve/Attachment.vue
Normal file
13
src/assets/icons/serve/Attachment.vue
Normal file
@ -0,0 +1,13 @@
|
||||
<template>
|
||||
<svg t="1731332583899" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6466" width="200" height="200"><path d="M955.531636 140.381091a234.030545 234.030545 0 0 0-330.845091 0l-40.215272 40.215273-330.938182 330.798545-35.793455 35.84a151.645091 151.645091 0 0 0 0 214.574546 151.645091 151.645091 0 0 0 214.621091 0l357.608728-357.608728a12.567273 12.567273 0 0 0 0-17.873454l-44.730182-44.730182a12.567273 12.567273 0 0 0-17.826909 0l-357.655273 357.608727a63.301818 63.301818 0 0 1-89.367273-89.367273l35.746909-35.84L646.981818 243.2l40.215273-40.215273a145.408 145.408 0 1 1 205.591273 205.637818l-13.405091 13.405091-357.469091 357.608728-44.776727 44.776727a227.653818 227.653818 0 0 1-321.95491-322.001455l393.541819-393.402181a12.567273 12.567273 0 0 0 0-17.82691l-44.776728-44.776727a12.567273 12.567273 0 0 0-17.826909 0L92.578909 439.854545a316.276364 316.276364 0 0 0 0 447.162182 316.276364 316.276364 0 0 0 447.162182 0l44.730182-44.776727 357.655272-357.608727 13.405091-13.451637a234.030545 234.030545 0 0 0 0-330.798545z" p-id="6467"></path></svg>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "Attachment"
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
13
src/assets/icons/serve/Expression.vue
Normal file
13
src/assets/icons/serve/Expression.vue
Normal file
@ -0,0 +1,13 @@
|
||||
<template>
|
||||
<svg t="1731332575193" class="icon" viewBox="0 0 1070 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6309" width="200" height="200"><path d="M532.48 1024c-137.309091 0-265.309091-53.527273-363.054545-148.945455C74.007273 777.309091 20.48 649.309091 20.48 512s53.527273-265.309091 148.945455-363.054545C267.170909 53.527273 395.170909 0 532.48 0s265.309091 53.527273 363.054545 148.945455c200.145455 200.145455 200.145455 523.636364 0 723.781818-97.745455 97.745455-225.745455 151.272727-363.054545 151.272727z m0-956.509091c-118.690909 0-230.4 46.545455-314.181818 130.327273-83.781818 83.781818-130.327273 195.490909-130.327273 314.181818s46.545455 230.4 130.327273 314.181818c83.781818 83.781818 195.490909 130.327273 314.181818 130.327273s230.4-46.545455 314.181818-130.327273a445.253818 445.253818 0 0 0 0-630.690909 449.629091 449.629091 0 0 0-314.181818-128zM350.952727 651.636364s60.509091 95.418182 181.527273 95.418181c121.018182 0 202.472727-95.418182 202.472727-95.418181s44.218182 0 44.218182 48.872727c0 0-79.127273 111.709091-246.690909 111.709091-167.563636 0-223.418182-111.709091-223.418182-111.709091S306.734545 651.636364 350.952727 651.636364z m32.581818-304.872728c-34.909091 0-62.836364 27.927273-62.836363 62.836364 0 34.909091 27.927273 62.836364 62.836363 62.836364 34.909091 0 62.836364-27.927273 62.836364-62.836364 0-34.909091-27.927273-62.836364-62.836364-62.836364z m321.163637 0c-34.909091 0-62.836364 27.927273-62.836364 62.836364 0 34.909091 27.927273 62.836364 62.836364 62.836364 34.909091 0 62.836364-27.927273 62.836363-62.836364 0-34.909091-27.927273-62.836364-62.836363-62.836364z" p-id="6310"></path></svg>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "Expression"
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
13
src/assets/icons/serve/Record.vue
Normal file
13
src/assets/icons/serve/Record.vue
Normal file
@ -0,0 +1,13 @@
|
||||
<template>
|
||||
<svg t="1731332602415" class="icon" viewBox="0 0 1117 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6623" width="200" height="200"><path d="M543.96832 1023.984175a573.338048 573.338048 0 0 1-247.478357-56.458764l-206.193177 45.241483a41.517904 41.517904 0 0 1-43.426238-11.868908 44.357133 44.357133 0 0 1-4.002847-39.097577l49.337419-165.23381A487.323378 487.323378 0 0 1 0 512.085177a493.746551 493.746551 0 0 1 159.788076-361.978406A561.329507 561.329507 0 0 1 545.457752 0.372358c300.539355 0 545.178484 229.465545 545.178484 511.712819a492.955291 492.955291 0 0 1-159.788076 362.02495 559.560807 559.560807 0 0 1-385.390408 149.827503h-1.489432zM323.951357 900.640626a502.962409 502.962409 0 0 0 220.715135 50.733762c260.510883 0 472.615241-197.163498 472.615241-439.661569s-212.057814-439.708114-472.615241-439.708114c-260.603972 0-472.661786 197.210043-472.661787 439.708114a417.785543 417.785543 0 0 0 85.363045 252.22592c19.222976 25.366881-16.849194 131.954324-28.950826 165.23381a836.78125 836.78125 0 0 1 169.515926-32.720949c8.8435-0.465447 17.780089 0.930895 26.065052 4.235571z m403.449765-394.233907a66.652061 66.652061 0 0 1 65.8608-67.489866 66.884785 66.884785 0 0 1 65.907345 67.489866 66.884785 66.884785 0 0 1-65.907345 67.862224 66.931329 66.931329 0 0 1-65.8608-67.72259v-0.093089z m-167.561047 67.862224a67.489866 67.489866 0 0 1-46.963638-20.15387 65.767711 65.767711 0 0 1-18.710983-47.615264 65.162629 65.162629 0 0 1 18.710983-47.196362 66.465882 66.465882 0 0 1 46.917093-20.293504 66.884785 66.884785 0 0 1 65.907346 67.489866 66.74515 66.74515 0 0 1-65.628077 67.862224l-0.279269-0.09309z m-279.268411-20.15387a65.8608 65.8608 0 0 1-18.943707-47.615264 65.348808 65.348808 0 0 1 18.943707-47.196362 66.093524 66.093524 0 0 1 46.917093-20.293504 66.884785 66.884785 0 0 1 65.907345 67.489866 66.884785 66.884785 0 0 1-65.907345 67.862224 67.024419 67.024419 0 0 1-46.917093-20.200415v-0.046545z" p-id="6624"></path></svg>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "Record"
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
13
src/assets/icons/serve/SendCustom.vue
Normal file
13
src/assets/icons/serve/SendCustom.vue
Normal file
@ -0,0 +1,13 @@
|
||||
<template>
|
||||
<svg t="1731323850288" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5816" width="200" height="200"><path d="M512 32C246.903125 32 32 246.903125 32 512c0 265.095 214.903125 480 480 480s480-214.905 480-480C992 246.903125 777.096875 32 512 32z m271.6884375 510.6121875c-17.146875 17.146875-44.9465625 17.146875-62.0925 0L556.548125 377.564375v374.5978125c0 24.1003125-19.535625 43.6359375-43.6359375 43.6359375-24.099375 0-43.6359375-19.535625-43.6359375-43.6359375V375.15125L301.619375 542.770625c-16.93875 16.935-44.401875 16.935-61.340625 0l-0.12375-0.12375c-16.93875-16.935-16.93875-44.3925 0-61.3275l240.4725-240.4190625c8.6821875-8.68125 20.128125-12.8409375 31.5065625-12.6215625 0.26625-0.005625 0.5109375-0.07875 0.7790625-0.07875 0.045 0 0.08625 0.013125 0.1321875 0.013125 11.28375-0.035625 22.5759375 4.2375 31.185 12.8465625L783.6884375 480.51875c17.146875 17.146875 17.146875 44.9475 0 62.0934375z" p-id="5817"></path></svg>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "SendCustom"
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
325
src/views/service/faq.vue
Normal file
325
src/views/service/faq.vue
Normal file
@ -0,0 +1,325 @@
|
||||
<template>
|
||||
<el-container class="mainNoBack userBox">
|
||||
<el-aside class="userAside" width="220px">
|
||||
<el-container>
|
||||
<el-main class="nopadding">
|
||||
<div class="contacts">
|
||||
<div class="contactsTitle">联系人</div>
|
||||
<div class="bodyView">
|
||||
<div class="itemCol" v-for="(item,index) in contactsList" :key="index">
|
||||
<div class="avatar">
|
||||
<el-avatar :size="36" src="https://fsd/ad/png" fit="contain">
|
||||
<img src="https://cube.elemecdn.com/e/fd/0fc7d20532fdaf769a25683617711png.png"/>
|
||||
</el-avatar>
|
||||
</div>
|
||||
<div class="viewRight">
|
||||
<div class="title">{{item.name==""?'匿名':item.name}}</div>
|
||||
<div class="msg">{{item.msg}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-main>
|
||||
</el-container>
|
||||
</el-aside>
|
||||
<el-main class="userMain userMainPadding_0" style="border-top-right-radius: 0;border-bottom-right-radius: 0;padding: 0;">
|
||||
<div class="mainBody">
|
||||
<div class="mainTitle">龙隆</div>
|
||||
<div class="mainView">
|
||||
<el-scrollbar>
|
||||
<div class="msgList">
|
||||
<div class="msgItem" :class="user_id === item.to_user_id?'msgRightItem':''" v-for="(item,index) in msgList" :key="index">
|
||||
<div class="avatar" v-if="user_id != item.to_user_id">
|
||||
<el-avatar :size="36" :src="item.avatar" fit="contain">
|
||||
<img src="https://cube.elemecdn.com/e/fd/0fc7d20532fdaf769a25683617711png.png"/>
|
||||
</el-avatar>
|
||||
</div>
|
||||
<div class="msgText">
|
||||
<div class="msgTitle">{{item.from_user && item.from_user.name?item.from_user.name:'匿名'}}</div>
|
||||
<div class="textCom">{{item.to_message}}</div>
|
||||
</div>
|
||||
<div class="avatar" v-if="user_id === item.to_user_id">
|
||||
<el-avatar :size="36" :src="item.from_user.avatar" fit="contain">
|
||||
<img src="https://cube.elemecdn.com/e/fd/0fc7d20532fdaf769a25683617711png.png"/>
|
||||
</el-avatar>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
<div class="mainFooter">
|
||||
<div class="tagList">
|
||||
<div class="tagItem"><el-icon size="18"><sc-icon-Attachment/></el-icon></div>
|
||||
<div class="tagItem"><el-icon size="18"><sc-icon-Record/></el-icon></div>
|
||||
<div class="tagItem"><el-icon size="18"><sc-icon-Expression/></el-icon></div>
|
||||
</div>
|
||||
<div class="sendView">
|
||||
<el-input v-model="params.to_message" class="customTextarea" type="textarea" placeholder="请输入.." :rows="3" resize="none"></el-input>
|
||||
<div class="saveBtn" @click="sendCustomer" :class="params.to_message!=''?'saveActive':''">
|
||||
<el-icon size="22"><sc-icon-SendCustom /></el-icon>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-main>
|
||||
<el-aside class="userAside" width="260px">
|
||||
<el-container>
|
||||
<el-main class="nopadding" style="border-left: 1px solid #f4f4f4;border-top-left-radius: 0;border-bottom-left-radius: 0;">
|
||||
<div class="contactsUserInfo">
|
||||
<div class="contactsTitle">
|
||||
<el-avatar :size="56" src="https://fsd/ad/png" fit="contain">
|
||||
<img src="https://cube.elemecdn.com/e/fd/0fc7d20532fdaf769a25683617711png.png"/>
|
||||
</el-avatar>
|
||||
</div>
|
||||
<div class="bodyView">
|
||||
<div class="itemCol">
|
||||
<div class="name">昵称</div>
|
||||
<div class="text">龙隆</div>
|
||||
</div>
|
||||
<div class="itemCol">
|
||||
<div class="name">手机号</div>
|
||||
<div class="text">18998321489</div>
|
||||
</div>
|
||||
<div class="itemCol">
|
||||
<div class="name">邮箱</div>
|
||||
<div class="text">263489003@qq.com</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-main>
|
||||
</el-container>
|
||||
</el-aside>
|
||||
</el-container>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {eventBus} from "@/utils/eventBus";
|
||||
|
||||
export default {
|
||||
name: "faq",
|
||||
data(){
|
||||
return{
|
||||
contactsList:[
|
||||
{name:"龙隆",msg:"嘻嘻"},
|
||||
{name:"骁骁",msg:"测试信息"},
|
||||
{name:"",msg:"怎么能快速挣够一百万"},
|
||||
{name:"",msg:"真机运行不需要检查更新,真机运行时appid固定为'HBuilder'"},
|
||||
{name:"",msg:"真机运行不需要检查更新,真机运行时appid固定为'HBuilder'"},
|
||||
],
|
||||
msgList:[],
|
||||
user_id:0,
|
||||
|
||||
params:{
|
||||
to_user_id:"",
|
||||
to_message:"",
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
const userInfo = this.$TOOL.data.get("USER_INFO");
|
||||
this.user_id = userInfo.id;
|
||||
this.params.to_user_id = userInfo.id;
|
||||
|
||||
// 获取新消息
|
||||
eventBus.$on('sockBack', this.getWsResult);
|
||||
},
|
||||
methods:{
|
||||
getWsResult(res){
|
||||
if(res.data && (res.data.type == 36 || res.data.type == 37)){
|
||||
switch(res.data.type) {
|
||||
case 36:
|
||||
this.msgList = res.data.rows;
|
||||
break;
|
||||
case 37:
|
||||
this.params.to_user_id = res.data.user.uid;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
async sendCustomer() {
|
||||
if(this.params.to_message =="") return
|
||||
const res = await this.$API.customer.send.post(this.params);
|
||||
if(res.code == 200){
|
||||
this.params.to_message = "";
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
::v-deep .noBorderRadius{border-radius: 0;}
|
||||
.contacts{
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.contactsTitle{
|
||||
padding: 5px 10px;
|
||||
font-size: 14px;
|
||||
}
|
||||
.bodyView{
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 0 5px;
|
||||
.itemCol{
|
||||
padding: 10px 8px;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
.viewRight{
|
||||
margin-left: 10px;
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
.title{
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
.msg{
|
||||
width: 100%;
|
||||
color: #888888;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
}
|
||||
}
|
||||
.itemCol:hover{
|
||||
background: #F6FBFF;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
.contactsUserInfo{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 0 10px;
|
||||
.contactsTitle{
|
||||
padding: 20px 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-bottom: 1px solid #F6F6F6;
|
||||
}
|
||||
.bodyView{
|
||||
flex:1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 10px 5px;
|
||||
.itemCol{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 15px;
|
||||
.name{
|
||||
color: #888;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mainBody{
|
||||
height: 100%;
|
||||
padding: 15px 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.mainTitle{
|
||||
border-bottom: 1px solid #F6F6F6;
|
||||
padding-bottom: 10px;
|
||||
margin: 0 10px;
|
||||
font-weight: 500;
|
||||
font-size: 14px;
|
||||
}
|
||||
.mainView{
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
padding-bottom: 10px;
|
||||
.msgList{
|
||||
padding: 10px;
|
||||
.msgItem{
|
||||
display: flex;
|
||||
margin-bottom: 8px;
|
||||
.avatar{
|
||||
padding-right: 10px;
|
||||
}
|
||||
.msgText{
|
||||
.msgTitle{
|
||||
padding: 6px 0;
|
||||
color: #555;
|
||||
}
|
||||
.textCom{
|
||||
background: #f5f5f5;
|
||||
border-radius: 4px;
|
||||
padding: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.msgRightItem{
|
||||
justify-content: flex-end;
|
||||
.avatar{
|
||||
padding-left: 10px;
|
||||
padding-right: 0;
|
||||
}
|
||||
.msgText{
|
||||
.msgTitle{
|
||||
text-align: right;
|
||||
}
|
||||
.textCom{
|
||||
background: var(--el-color-primary);
|
||||
color: var(--el-color-white);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.mainFooter{
|
||||
margin: 0 10px 5px 10px;
|
||||
padding: 10px 0;
|
||||
border: 1px solid #F6F6F6;
|
||||
border-radius: 4px;
|
||||
position: relative;
|
||||
.tagList{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-bottom: 1px solid #F6F6F6;
|
||||
padding-bottom: 10px;
|
||||
.tagItem{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-left: 15px;
|
||||
}
|
||||
}
|
||||
.customTextarea{
|
||||
font-size:13px;
|
||||
::v-deep .el-textarea__inner{
|
||||
box-shadow: none;
|
||||
border: 0;
|
||||
padding:10px 35px 10px 10px;
|
||||
}
|
||||
::v-deep .el-textarea__inner::-webkit-scrollbar{
|
||||
width: 0;
|
||||
}
|
||||
}
|
||||
.saveBtn{
|
||||
position: absolute;
|
||||
bottom:20px;
|
||||
right: 10px;
|
||||
z-index: 10;
|
||||
color: #A8ABB2;
|
||||
border-radius: 3px;
|
||||
cursor: not-allowed;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
.saveActive{
|
||||
cursor: pointer;
|
||||
color: var(--el-color-primary);
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
24
src/views/service/infoQuery.vue
Normal file
24
src/views/service/infoQuery.vue
Normal file
@ -0,0 +1,24 @@
|
||||
<template>
|
||||
<div>900</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "infoQuery",
|
||||
data(){
|
||||
return{
|
||||
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
methods:{
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
</style>
|
||||
24
src/views/service/selfService.vue
Normal file
24
src/views/service/selfService.vue
Normal file
@ -0,0 +1,24 @@
|
||||
<template>
|
||||
<div>436</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: "selfService",
|
||||
data(){
|
||||
return{
|
||||
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
|
||||
},
|
||||
methods:{
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
||||
</style>
|
||||
Loading…
Reference in New Issue
Block a user