完善问题单
This commit is contained in:
parent
03a7c3ceaf
commit
1c6d8e34c9
@ -2,7 +2,7 @@
|
|||||||
NODE_ENV = development
|
NODE_ENV = development
|
||||||
|
|
||||||
# 标题
|
# 标题
|
||||||
VUE_APP_TITLE = 隆姿集团
|
VUE_APP_TITLE = 天姿集团
|
||||||
# 象纬云科
|
# 象纬云科
|
||||||
|
|
||||||
# 接口地址
|
# 接口地址
|
||||||
|
|||||||
@ -5,15 +5,15 @@ NODE_ENV = production
|
|||||||
VUE_APP_TITLE = 象纬云科
|
VUE_APP_TITLE = 象纬云科
|
||||||
|
|
||||||
# 测试环境
|
# 测试环境
|
||||||
# VUE_APP_API_BASEURL = https://dev.api.linkwing.com/api/v1
|
VUE_APP_API_BASEURL = https://dev.api.linkwing.com/api/v1
|
||||||
# VUE_APP_API_DEV = https://dev.api.linkwing.com/api/v1
|
VUE_APP_API_DEV = https://dev.api.linkwing.com/api/v1
|
||||||
# VUE_APP_WS_URL = wss://dev.api.linkwing.com/wss
|
VUE_APP_WS_URL = wss://dev.api.linkwing.com/wss
|
||||||
# VUE_APP_WSS_URL = wss://dev.api.linkwing.com/wss
|
VUE_APP_WSS_URL = wss://dev.api.linkwing.com/wss
|
||||||
|
|
||||||
# 线上环境
|
# 线上环境
|
||||||
# 接口地址 # WS地址
|
# 接口地址 # WS地址
|
||||||
VUE_APP_API_BASEURL = https://prod.api.linkwing.com/api/v1
|
# VUE_APP_API_BASEURL = https://prod.api.linkwing.com/api/v1
|
||||||
VUE_APP_API_DEV = https://prod.api.linkwing.com/api/v1
|
# VUE_APP_API_DEV = https://prod.api.linkwing.com/api/v1
|
||||||
VUE_APP_WS_URL = wss://prod.api.linkwing.com/wss
|
# VUE_APP_WS_URL = wss://prod.api.linkwing.com/wss
|
||||||
VUE_APP_WSS_URL = wss://prod.api.linkwing.com/wss
|
# VUE_APP_WSS_URL = wss://prod.api.linkwing.com/wss
|
||||||
|
|
||||||
|
|||||||
@ -103,9 +103,17 @@ export default {
|
|||||||
},
|
},
|
||||||
orderMyList:{
|
orderMyList:{
|
||||||
url: `${config.API_URL}/customer.work.order.my.list`,
|
url: `${config.API_URL}/customer.work.order.my.list`,
|
||||||
name: "我的工单",
|
name: "我的问题工单",
|
||||||
|
post: async function(data){
|
||||||
|
return await http.post(this.url, data);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
workOrderInfo:{
|
||||||
|
url: `${config.API_URL}/customer.work.order.info`,
|
||||||
|
name: "问题工单详情",
|
||||||
post: async function(data){
|
post: async function(data){
|
||||||
return await http.post(this.url, data);
|
return await http.post(this.url, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -378,7 +378,7 @@ export default {
|
|||||||
const wrap = this.$refs.scrollbar;
|
const wrap = this.$refs.scrollbar;
|
||||||
if(wrap){
|
if(wrap){
|
||||||
const e = wrap.$el.querySelector('.el-scrollbar__wrap')
|
const e = wrap.$el.querySelector('.el-scrollbar__wrap')
|
||||||
if(e && e.scrollTop){
|
if(e){
|
||||||
e.scrollTop = e.scrollHeight;
|
e.scrollTop = e.scrollHeight;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -64,6 +64,7 @@ export default {
|
|||||||
this.num = val;
|
this.num = val;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
immediate: true,
|
||||||
deep:true
|
deep:true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -4,8 +4,8 @@ import http from "@/utils/request";
|
|||||||
|
|
||||||
export default {
|
export default {
|
||||||
successCode: 200, //请求完成代码
|
successCode: 200, //请求完成代码
|
||||||
pageSize: 30, //表格每一页条数
|
pageSize: 100, //表格每一页条数
|
||||||
pageSizes: [10, 20, 30, 40, 50], //表格可设置的一页条数
|
pageSizes: [30, 50, 100, 150, 200, 300], //表格可设置的一页条数
|
||||||
paginationLayout: "total, sizes, prev, pager, next, jumper", //表格分页布局,可设置"total, sizes, prev, pager, next, jumper"
|
paginationLayout: "total, sizes, prev, pager, next, jumper", //表格分页布局,可设置"total, sizes, prev, pager, next, jumper"
|
||||||
parseData: function (res) { //数据分析
|
parseData: function (res) { //数据分析
|
||||||
return {
|
return {
|
||||||
|
|||||||
@ -54,7 +54,7 @@
|
|||||||
</el-container>
|
</el-container>
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
</div>
|
</div>
|
||||||
<el-dropdown class="user panel-item" trigger="click" @command="handleUser">
|
<el-dropdown class="user userDropdown panel-item" trigger="click" @command="handleUser">
|
||||||
<div class="user-avatar">
|
<div class="user-avatar">
|
||||||
<el-avatar :size="22" shape="circle" :src="this.$store.state.global.login_avatar"><span class="userName">{{ userNameF }}</span></el-avatar>
|
<el-avatar :size="22" shape="circle" :src="this.$store.state.global.login_avatar"><span class="userName">{{ userNameF }}</span></el-avatar>
|
||||||
<label>{{ userName }}</label>
|
<label>{{ userName }}</label>
|
||||||
@ -81,10 +81,10 @@
|
|||||||
<div class="text">{{userInfo.company_info && userInfo.company_info.full_name?userInfo.company_info.full_name:''}}</div>
|
<div class="text">{{userInfo.company_info && userInfo.company_info.full_name?userInfo.company_info.full_name:''}}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<el-dropdown-menu>
|
<div class="menuRow">
|
||||||
<el-dropdown-item icon="sc-icon-AccountNumber" command="uc">帐号信息</el-dropdown-item>
|
<div class="itemCol" @click="linkUser"><el-icon size="16"><sc-icon-AccountNumber/></el-icon><span class="name">帐号信息</span></div>
|
||||||
<el-dropdown-item icon="sc-icon-ClearCache" command="clearCache">清除缓存</el-dropdown-item>
|
<div class="itemCol" @click="clearCache"><el-icon size="16"><sc-icon-ClearCache/></el-icon><span class="name">清除缓存</span></div>
|
||||||
</el-dropdown-menu>
|
</div>
|
||||||
<div class="loginOut">
|
<div class="loginOut">
|
||||||
<el-button class="btn" style="width: 100%" @click="loginOut">退出登录</el-button>
|
<el-button class="btn" style="width: 100%" @click="loginOut">退出登录</el-button>
|
||||||
</div>
|
</div>
|
||||||
@ -152,30 +152,30 @@
|
|||||||
methods: {
|
methods: {
|
||||||
//个人信息
|
//个人信息
|
||||||
handleUser(command) {
|
handleUser(command) {
|
||||||
if (command == "uc") {
|
|
||||||
this.$router.push({ path: '/user/center' });
|
|
||||||
}
|
|
||||||
if (command == "cmd") {
|
if (command == "cmd") {
|
||||||
this.$router.push({ path: '/cmd' });
|
this.$router.push({ path: '/cmd' });
|
||||||
}
|
}
|
||||||
if (command == "clearCache") {
|
},
|
||||||
this.$confirm('清除缓存会将系统初始化,包括登录状态、主题、语言设置等,是否继续?', '警告', {
|
linkUser(){
|
||||||
type: 'warning',
|
this.$router.push({ path: '/user/center' });
|
||||||
}).then(async () => {
|
},
|
||||||
const loading = this.$loading()
|
clearCache(){
|
||||||
const res = await this.$API.system.user.logout.post();
|
this.$confirm('清除缓存会将系统初始化,包括登录状态、主题、语言设置等,是否继续?', '警告', {
|
||||||
if (res.code == 200) {
|
type: 'warning',
|
||||||
this.$TOOL.data.clear()
|
}).then(async () => {
|
||||||
this.$router.replace({path: '/login'});
|
const loading = this.$loading()
|
||||||
setTimeout(() => {
|
const res = await this.$API.system.user.logout.post();
|
||||||
loading.close()
|
if (res.code == 200) {
|
||||||
location.reload()
|
this.$TOOL.data.clear()
|
||||||
}, 1000)
|
this.$router.replace({path: '/login'});
|
||||||
}
|
setTimeout(() => {
|
||||||
}).catch(() => {
|
loading.close()
|
||||||
//取消
|
location.reload()
|
||||||
})
|
}, 1000)
|
||||||
}
|
}
|
||||||
|
}).catch(() => {
|
||||||
|
//取消
|
||||||
|
})
|
||||||
},
|
},
|
||||||
loginOut(){
|
loginOut(){
|
||||||
this.$confirm('确认是否退出当前用户?', '警告', {
|
this.$confirm('确认是否退出当前用户?', '警告', {
|
||||||
@ -244,7 +244,7 @@
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style lang="scss">
|
||||||
.badge{
|
.badge{
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@ -366,9 +366,29 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.menuRow{
|
||||||
|
padding: 10px;
|
||||||
|
.itemCol{
|
||||||
|
padding: 6px;
|
||||||
|
border-radius: 3px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
color: #888;
|
||||||
|
border: 1px solid #fff;
|
||||||
|
.name{
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.itemCol:hover{
|
||||||
|
background: #e7eff8;
|
||||||
|
border-color:#b8d1ec;
|
||||||
|
color: #1367C1; // #626266
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
.loginOut{
|
.loginOut{
|
||||||
border-top: 1px solid #EBEEF5;
|
border-top: 1px solid #EBEEF5;
|
||||||
padding: 16px;
|
padding: 16px 10px;
|
||||||
.btn{
|
.btn{
|
||||||
font-weight: inherit;
|
font-weight: inherit;
|
||||||
}
|
}
|
||||||
@ -399,4 +419,8 @@
|
|||||||
.dark .msg-list li a:hover {
|
.dark .msg-list li a:hover {
|
||||||
background: #383838;
|
background: #383838;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.el-popper.is-light>.el-popper__arrow::before{
|
||||||
|
background: #F5F7FA;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -51,14 +51,6 @@ const routes = [
|
|||||||
title: "重置密码"
|
title: "重置密码"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
path: "/serve",
|
|
||||||
component: () => import(/* webpackChunkName: "serveView" */ '@/views/serveView'),
|
|
||||||
meta: {
|
|
||||||
title: "信息服务"
|
|
||||||
},
|
|
||||||
tokenShow:true
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
path: "/maintenance",
|
path: "/maintenance",
|
||||||
component: () => import(/* webpackChunkName: "serveView" */ '@/views/maintenance'),
|
component: () => import(/* webpackChunkName: "serveView" */ '@/views/maintenance'),
|
||||||
@ -67,14 +59,6 @@ const routes = [
|
|||||||
},
|
},
|
||||||
tokenShow:true
|
tokenShow:true
|
||||||
},
|
},
|
||||||
{
|
|
||||||
path: "/personalCenter",
|
|
||||||
component: () => import(/* webpackChunkName: "personalCenter" */ '@/views/personalCenter'),
|
|
||||||
meta: {
|
|
||||||
title: "个人中心"
|
|
||||||
},
|
|
||||||
tokenShow:true
|
|
||||||
},
|
|
||||||
]
|
]
|
||||||
|
|
||||||
export default routes;
|
export default routes;
|
||||||
|
|||||||
@ -121,3 +121,4 @@ a,button,input,textarea{-webkit-tap-highlight-color:rgba(0,0,0,0);box-sizing: bo
|
|||||||
}
|
}
|
||||||
/*定宽页面*/
|
/*定宽页面*/
|
||||||
.sc-page {width: 1230px;margin: 0 auto;}
|
.sc-page {width: 1230px;margin: 0 auto;}
|
||||||
|
|
||||||
|
|||||||
@ -6,15 +6,16 @@
|
|||||||
<keep-alive :include="['mainView', 'serveView', 'personalCenter']">
|
<keep-alive :include="['mainView', 'serveView', 'personalCenter']">
|
||||||
<component :is="componentName" />
|
<component :is="componentName" />
|
||||||
</keep-alive>
|
</keep-alive>
|
||||||
<footerPage></footerPage>
|
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
</el-main>
|
</el-main>
|
||||||
|
|
||||||
|
<!--客服-->
|
||||||
|
<scCustomer />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import commonPage from "@/views/serveView/components/commonPage";
|
import commonPage from "@/views/serveView/components/commonPage";
|
||||||
import footerPage from "@/views/serveView/components/footerPage";
|
|
||||||
import mainView from './mainView';
|
import mainView from './mainView';
|
||||||
import serveView from '@/views/serveView/index';
|
import serveView from '@/views/serveView/index';
|
||||||
import personalCenter from '@/views/personalCenter/index';
|
import personalCenter from '@/views/personalCenter/index';
|
||||||
@ -24,7 +25,6 @@ export default {
|
|||||||
name: "index",
|
name: "index",
|
||||||
components:{
|
components:{
|
||||||
commonPage,
|
commonPage,
|
||||||
footerPage,
|
|
||||||
mainView,
|
mainView,
|
||||||
serveView,
|
serveView,
|
||||||
personalCenter,
|
personalCenter,
|
||||||
@ -35,7 +35,6 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
console.log('创建了')
|
|
||||||
let token = this.$TOOL.cookie.get('TOKEN');
|
let token = this.$TOOL.cookie.get('TOKEN');
|
||||||
if (token && token != null) {
|
if (token && token != null) {
|
||||||
// 登录成功连接ws
|
// 登录成功连接ws
|
||||||
@ -47,7 +46,7 @@ export default {
|
|||||||
eventBus.$on('headerRouterBack', this.getRouterBack);
|
eventBus.$on('headerRouterBack', this.getRouterBack);
|
||||||
},
|
},
|
||||||
beforeUnmount() {
|
beforeUnmount() {
|
||||||
console.log('我要离开了')
|
|
||||||
},
|
},
|
||||||
unmounted() {
|
unmounted() {
|
||||||
eventBus.$off('headerRouterBack', this.getRouterBack);
|
eventBus.$off('headerRouterBack', this.getRouterBack);
|
||||||
|
|||||||
@ -30,15 +30,17 @@
|
|||||||
<div class="viewItem" v-for="(item,index) in historyList" :key="index">{{item.name}}</div>
|
<div class="viewItem" v-for="(item,index) in historyList" :key="index">{{item.name}}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<footerPage></footerPage>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!--客服-->
|
|
||||||
<scCustomer />
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import footerPage from "@/views/serveView/components/footerPage";
|
||||||
export default {
|
export default {
|
||||||
name: "mainView",
|
name: "mainView",
|
||||||
|
components:{
|
||||||
|
footerPage
|
||||||
|
},
|
||||||
data(){
|
data(){
|
||||||
return{
|
return{
|
||||||
list:[
|
list:[
|
||||||
@ -139,7 +141,7 @@ export default {
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
padding: 0 20px;
|
padding: 0 20px;
|
||||||
min-height: 800px;
|
//min-height: 800px;
|
||||||
.rowView{
|
.rowView{
|
||||||
height: 240px;
|
height: 240px;
|
||||||
padding: 20px 0;
|
padding: 20px 0;
|
||||||
@ -177,6 +179,14 @@ export default {
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.colItem:first-child{
|
||||||
|
border-top-left-radius: 4px;
|
||||||
|
border-bottom-left-radius: 4px;
|
||||||
|
}
|
||||||
|
.colItem:last-child{
|
||||||
|
border-top-right-radius: 4px;
|
||||||
|
border-bottom-right-radius: 4px;
|
||||||
|
}
|
||||||
.colItem:hover{
|
.colItem:hover{
|
||||||
border-top-color: var(--el-color-primary);
|
border-top-color: var(--el-color-primary);
|
||||||
border-bottom-color: var(--el-color-primary);
|
border-bottom-color: var(--el-color-primary);
|
||||||
@ -220,6 +230,7 @@ export default {
|
|||||||
max-width: 1200px;
|
max-width: 1200px;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
background: #F8F8F8;
|
background: #F8F8F8;
|
||||||
|
border-radius: 4px;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
|||||||
@ -1,15 +1,140 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<el-container>
|
||||||
我的反馈
|
<el-header class="serveTitle">
|
||||||
</div>
|
<div class="serveView">
|
||||||
|
<span v-for="(item,index) in title" :key="index" @click="linkDetail(item)">
|
||||||
|
<span class="name">{{item.name}}</span>
|
||||||
|
<span class="solid" v-if="index+1 < title.length">/</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</el-header>
|
||||||
|
<el-main class="serveMain" v-if="routerText===1">
|
||||||
|
<scTable v-loading="tableLoading" element-loading-text="加载中..." height="100%" ref="table" :data="list.data" :size="size" hideDo>
|
||||||
|
<el-table-column type="index" label="序号"></el-table-column>
|
||||||
|
<template v-for="(item,index) in list.column" :key="index">
|
||||||
|
<el-table-column :label="item.label" :prop="item.prop" :width="item.width" show-overflow-tooltip>
|
||||||
|
<template #default="scope">
|
||||||
|
<span v-if="item.prop === 'type'">
|
||||||
|
<span v-for="(em,ind) in setMap.typeList" :key="ind">
|
||||||
|
<span v-if="em.value === scope.row[item.prop]">{{em.label}}</span>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
<span v-else-if="item.prop === 'attachment'">
|
||||||
|
<span v-for="(em,ind) in scope.row[item.prop]" :key="ind">
|
||||||
|
<el-image :src="em" preview-teleported :preview-src-list="[em]" style="width: 22px;height: 22px;margin: 0 4px;border-radius: 3px;"></el-image>
|
||||||
|
</span>
|
||||||
|
</span>
|
||||||
|
<span v-else>{{scope.row[item.prop]}}</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</template>
|
||||||
|
<el-table-column label="操作" fixed="right" align="center" width="150">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button type="primary" link @click="table_show(scope.row, 'see')" :size="size">查看</el-button>
|
||||||
|
<el-button type="danger" link @click="table_del(scope.row, 'delete')" :size="size">删除</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</scTable>
|
||||||
|
</el-main>
|
||||||
|
<el-main class="serveMain" v-if="routerText===2">
|
||||||
|
<feedbackDetail></feedbackDetail>
|
||||||
|
</el-main>
|
||||||
|
</el-container>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import feedbackDetail from "@/views/personalCenter/components/feedbackDetail";
|
||||||
export default {
|
export default {
|
||||||
name: "feedback"
|
name: "feedback",
|
||||||
|
components: {
|
||||||
|
feedbackDetail
|
||||||
|
},
|
||||||
|
data(){
|
||||||
|
return{
|
||||||
|
title:[
|
||||||
|
{name:"我的反馈",value:1},
|
||||||
|
],
|
||||||
|
routerText:1,
|
||||||
|
|
||||||
|
size:"small",
|
||||||
|
setMap:{
|
||||||
|
typeList:[],
|
||||||
|
},
|
||||||
|
tableLoading:false,
|
||||||
|
list:{
|
||||||
|
column:[
|
||||||
|
{label:'创建时间',prop:'created_at',width:160,show: true},
|
||||||
|
{label:'机器序列号',prop:'serial_number',width:200,show: true},
|
||||||
|
{label:'问题类型',prop:'type',width:180,show: true},
|
||||||
|
{label:'购买时间',prop:'purchase_time',width:160,show: true},
|
||||||
|
{label:'附件',prop:'attachment',width:120,show: true},
|
||||||
|
{label:'提交账号',prop:'creator_name',width:160,show: true},
|
||||||
|
{label:'备注',prop:'remark',show: true},
|
||||||
|
],
|
||||||
|
data:[]
|
||||||
|
},
|
||||||
|
|
||||||
|
routerParams:{}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getTypeList();
|
||||||
|
this.getMyList();
|
||||||
|
},
|
||||||
|
methods:{
|
||||||
|
async getTypeList() {
|
||||||
|
const res = await this.$API.customer.serviceTypeList.post();
|
||||||
|
if(res.code == 200){
|
||||||
|
this.setMap.typeList = res.data;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async getMyList() {
|
||||||
|
this.tableLoading = true;
|
||||||
|
const res = await this.$API.customer.orderMyList.post();
|
||||||
|
this.tableLoading = false;
|
||||||
|
if(res.code == 200){
|
||||||
|
this.list.data = res.data.rows;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
linkDetail(item){
|
||||||
|
this.routerText = item.value;
|
||||||
|
const result = this.title.slice(0,this.title.findIndex(em=> em.value === item.value)+1);
|
||||||
|
this.title = result;
|
||||||
|
},
|
||||||
|
table_show(row){
|
||||||
|
this.routerParams = row;
|
||||||
|
this.routerText = 2;
|
||||||
|
const valueS = this.title.map(em=>em.value);
|
||||||
|
if(valueS.indexOf(2) ===-1){
|
||||||
|
this.title.push({name:"反馈详情",value:2})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
table_del(row){
|
||||||
|
let params = {
|
||||||
|
ids:[row.id]
|
||||||
|
}
|
||||||
|
this.$confirm(`确定删除序列号 ${row.serial_number} 吗?`, '提示', {
|
||||||
|
type: 'warning'
|
||||||
|
}).then(async () => {
|
||||||
|
const res = await this.$API.customer.orderDelete.post(params);
|
||||||
|
if(res.code == 200){
|
||||||
|
this.$message.success("删除成功");
|
||||||
|
await this.getMyList();
|
||||||
|
}
|
||||||
|
}).catch(()=>{})
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped lang="scss">
|
||||||
|
.serveView{
|
||||||
|
.name{
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.solid{
|
||||||
|
margin: 0 6px;
|
||||||
|
color: #888;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
114
src/views/personalCenter/components/feedbackDetail.vue
Normal file
114
src/views/personalCenter/components/feedbackDetail.vue
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
<template>
|
||||||
|
<div class="serveMain">
|
||||||
|
<div class="feedHeader">
|
||||||
|
<span class="name">问题描述</span>
|
||||||
|
<span class="date">2024-10-23 11:02:44</span>
|
||||||
|
</div>
|
||||||
|
<div class="describe">这是一个问题描述这是一个问题描述这是一个问题描述</div>
|
||||||
|
<div class="attachment">
|
||||||
|
<span class="imgView">
|
||||||
|
<el-image class="img" src="https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg"></el-image>
|
||||||
|
</span>
|
||||||
|
<span class="imgView">
|
||||||
|
<el-image class="img" src="https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg"></el-image>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="intelligenceCustomer formInputText">
|
||||||
|
<div class="title">问题回复</div>
|
||||||
|
<div class="cardView">
|
||||||
|
<div class="avatar">
|
||||||
|
<el-avatar src="https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png"></el-avatar>
|
||||||
|
</div>
|
||||||
|
<div class="rightView">
|
||||||
|
<div class="userHeader">
|
||||||
|
<span class="name">AA工程师</span>
|
||||||
|
<span class="time">2024-10-23 11:02:44</span>
|
||||||
|
</div>
|
||||||
|
<div class="text">问题回复一次,问题回复一次,已为您分配工程师,问题回复一次</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="operateView">
|
||||||
|
<div class="uploadList">
|
||||||
|
<uploadListFile></uploadListFile>
|
||||||
|
</div>
|
||||||
|
<el-input class="formInputText" type="textarea" :rows="3" placeholder="请描述您的问题"></el-input>
|
||||||
|
</div>
|
||||||
|
<div class="saveView">
|
||||||
|
<el-button :size="size" type="primary">{{saveShow?'提交':'继续提问'}}</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import uploadListFile from "@/views/personalCenter/components/uploadListFile";
|
||||||
|
export default {
|
||||||
|
name: "feedbackDetail",
|
||||||
|
components:{
|
||||||
|
uploadListFile
|
||||||
|
},
|
||||||
|
data(){
|
||||||
|
return{
|
||||||
|
size:"small",
|
||||||
|
saveShow:false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
|
||||||
|
},
|
||||||
|
methods:{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.serveMain{
|
||||||
|
.feedHeader{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
.name{color: #333;font-weight: 500;}
|
||||||
|
.date{margin-left: 10px;font-size: 12px;color: #888}
|
||||||
|
}
|
||||||
|
.describe{
|
||||||
|
margin: 10px 0;
|
||||||
|
}
|
||||||
|
.attachment{
|
||||||
|
.imgView{
|
||||||
|
.img{width: 80px;height: 80px;border-radius: 4px;margin: 0 4px 4px 0;}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.intelligenceCustomer{
|
||||||
|
background: #f5f5f5;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 10px;
|
||||||
|
margin: 10px 0;
|
||||||
|
.title{color: #333;font-weight: 500;margin-bottom: 10px;}
|
||||||
|
.cardView{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
.rightView{
|
||||||
|
margin-left: 10px;
|
||||||
|
.userHeader{
|
||||||
|
margin-bottom: 5px;font-size: 12px;color: #888;
|
||||||
|
.time{margin-left: 5px;}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.operateView{
|
||||||
|
margin-top: 15px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
.uploadList{
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.saveView{
|
||||||
|
margin-top: 15px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.formInputText{
|
||||||
|
width: 800px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -14,6 +14,10 @@
|
|||||||
<el-form-item label="购买时间" prop="purchase_time" label-position="top">
|
<el-form-item label="购买时间" prop="purchase_time" label-position="top">
|
||||||
<el-date-picker v-model="form.purchase_time" :size="size" value-format="YYYY-MM-DD" class="formInput" placeholder="请选择您的购买时间"></el-date-picker>
|
<el-date-picker v-model="form.purchase_time" :size="size" value-format="YYYY-MM-DD" class="formInput" placeholder="请选择您的购买时间"></el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="上传附件" prop="attachment" label-position="top">
|
||||||
|
<ossImgListUpload :list="form.attachment" :length="20" @parentParams="faultParentParams" />
|
||||||
|
<p class="el-form-item-msg">请将图片拖到此处,或点击上传PNG、JPEG</p>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="备注" label-position="top">
|
<el-form-item label="备注" label-position="top">
|
||||||
<el-input v-model="form.remark" class="formInputText" :size="size" type="textarea" :rows="4" resize="none" :autosize="false" placeholder="请详细的描述您的问题"></el-input>
|
<el-input v-model="form.remark" class="formInputText" :size="size" type="textarea" :rows="4" resize="none" :autosize="false" placeholder="请详细的描述您的问题"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -37,7 +41,7 @@ export default {
|
|||||||
type:"",
|
type:"",
|
||||||
serial_number:"",
|
serial_number:"",
|
||||||
purchase_time:"",
|
purchase_time:"",
|
||||||
attachment:"",
|
attachment:[],
|
||||||
remark:""
|
remark:""
|
||||||
},
|
},
|
||||||
rules:{
|
rules:{
|
||||||
@ -63,6 +67,9 @@ export default {
|
|||||||
this.typeList = res.data;
|
this.typeList = res.data;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
faultParentParams(item){
|
||||||
|
this.form.attachment = item;
|
||||||
|
},
|
||||||
save(){
|
save(){
|
||||||
this.$refs.form.validate(async (valid) => {
|
this.$refs.form.validate(async (valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
@ -75,9 +82,10 @@ export default {
|
|||||||
type:"",
|
type:"",
|
||||||
serial_number:"",
|
serial_number:"",
|
||||||
purchase_time:"",
|
purchase_time:"",
|
||||||
attachment:"",
|
attachment:[],
|
||||||
remark:""
|
remark:""
|
||||||
}
|
}
|
||||||
|
this.$refs.form.resetFields();
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
150
src/views/personalCenter/components/uploadListFile.vue
Normal file
150
src/views/personalCenter/components/uploadListFile.vue
Normal file
@ -0,0 +1,150 @@
|
|||||||
|
<template>
|
||||||
|
<div class="fileUpload">
|
||||||
|
<div class="importBody">
|
||||||
|
<el-upload
|
||||||
|
class="upload"
|
||||||
|
:action="oss.host"
|
||||||
|
:data="upload_data"
|
||||||
|
:show-file-list="false"
|
||||||
|
:on-success="handleSuccess"
|
||||||
|
:before-upload="beforeUpload"
|
||||||
|
:on-error="handleError"
|
||||||
|
:drag="false"
|
||||||
|
multiple
|
||||||
|
>
|
||||||
|
<div class="el-upload-size">
|
||||||
|
<el-button type="primary" :size="size" icon="el-icon-Plus">上传附件</el-button>
|
||||||
|
</div>
|
||||||
|
</el-upload>
|
||||||
|
<div class="fileList">
|
||||||
|
<div class="fileItem" v-for="(item,index) in imageList" :key="index">
|
||||||
|
<fileType size="22px" :fileType="item.type" />
|
||||||
|
{{item.name}}
|
||||||
|
<span class="btnView" @click="deleteClick(item)"><el-icon size="14"><el-icon-Close/></el-icon></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import fileType from "@/views/docsManager/fileType"
|
||||||
|
export default {
|
||||||
|
name: "uploadListFile",
|
||||||
|
components:{
|
||||||
|
fileType
|
||||||
|
},
|
||||||
|
emits: ['closed', "uploadFileSuccess"],
|
||||||
|
props:{
|
||||||
|
list:{
|
||||||
|
type:Array,
|
||||||
|
},
|
||||||
|
length:{
|
||||||
|
type:Number,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data(){
|
||||||
|
return{
|
||||||
|
size:'small',
|
||||||
|
imageList:[
|
||||||
|
{name:'测试文件.png',type:'png'},
|
||||||
|
{name:'测试文件.doc',type:'png'},
|
||||||
|
{name:'测试文件.doc',type:'png'},
|
||||||
|
{name:'测试文件.doc',type:'doc'},
|
||||||
|
{name:'测试文件.doc',type:'doc'},
|
||||||
|
{name:'测试文件.doc',type:'doc'},
|
||||||
|
],
|
||||||
|
oss:{
|
||||||
|
host:''
|
||||||
|
},
|
||||||
|
upload_data:{},
|
||||||
|
parentParams:{},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
|
||||||
|
},
|
||||||
|
methods:{
|
||||||
|
// 导入文件
|
||||||
|
importFile(params){
|
||||||
|
this.parentParams = params;
|
||||||
|
},
|
||||||
|
// 上传前
|
||||||
|
beforeUpload(file){
|
||||||
|
return new Promise((resolve)=>{
|
||||||
|
setTimeout(async ()=>{
|
||||||
|
let params = {
|
||||||
|
dir:"serve/file/"
|
||||||
|
}
|
||||||
|
const res = await this.$API.oss.ossGet.post(params);
|
||||||
|
this.oss = res.data;
|
||||||
|
this.upload_data = {
|
||||||
|
name: new Date().getTime() + file.name,
|
||||||
|
key: this.oss.dir +file.name,
|
||||||
|
policy: this.oss.policy,
|
||||||
|
OSSAccessKeyId: this.oss.accessid,
|
||||||
|
success_action_status: "200",
|
||||||
|
callback: this.oss.callback,
|
||||||
|
signature: this.oss.signature,
|
||||||
|
"Cache-Control": this.oss.cache_control,
|
||||||
|
};
|
||||||
|
resolve()
|
||||||
|
},100)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 上传成功
|
||||||
|
handleSuccess(file){
|
||||||
|
let fileName = file.data.filename.split('/')[1];
|
||||||
|
let fileType = fileName.split('.')[1];
|
||||||
|
let imageUrl = {
|
||||||
|
url:this.oss.host+'/'+file.data.filename,
|
||||||
|
name:fileName,
|
||||||
|
type:fileType
|
||||||
|
};
|
||||||
|
console.log(imageUrl,799)
|
||||||
|
this.imageList.push(imageUrl)
|
||||||
|
this.$emit('uploadFileSuccess',this.imageList);
|
||||||
|
},
|
||||||
|
// 上传失败
|
||||||
|
handleError(){
|
||||||
|
this.$message.warning('上传失败请重新上传');
|
||||||
|
},
|
||||||
|
deleteClick(item){
|
||||||
|
console.log(item,233)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.fileList{
|
||||||
|
margin-top: 8px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
width: 800px;
|
||||||
|
.fileItem{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin:0 10px 8px 0;
|
||||||
|
background: #F6F6F6;
|
||||||
|
padding: 4px 30px 4px 10px;
|
||||||
|
border-radius: 4px;
|
||||||
|
color: #888888;
|
||||||
|
position: relative;
|
||||||
|
height: 35px;
|
||||||
|
.btnView{
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
z-index: 10;
|
||||||
|
padding: 4px;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -108,6 +108,7 @@ export default {
|
|||||||
}
|
}
|
||||||
.pageRight{
|
.pageRight{
|
||||||
flex: 1;
|
flex: 1;
|
||||||
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -33,7 +33,7 @@
|
|||||||
<el-icon><sc-icon-User /></el-icon>
|
<el-icon><sc-icon-User /></el-icon>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-item" v-if="userId">
|
<div class="panel-item" v-if="userId">
|
||||||
<el-dropdown trigger="click" @command="handleUser" placement="bottom-start">
|
<el-dropdown trigger="click" placement="bottom-start" ref="userDropdown">
|
||||||
<div class="user-avatar el-dropdown-link">
|
<div class="user-avatar el-dropdown-link">
|
||||||
<el-avatar :size="22" shape="circle" :src="this.$store.state.global.login_avatar"><span class="userName">{{ userNameF }}</span></el-avatar>
|
<el-avatar :size="22" shape="circle" :src="this.$store.state.global.login_avatar"><span class="userName">{{ userNameF }}</span></el-avatar>
|
||||||
<label class="userName">{{ userName?userName:"匿名" }}</label>
|
<label class="userName">{{ userName?userName:"匿名" }}</label>
|
||||||
@ -56,10 +56,10 @@
|
|||||||
<div class="text">{{userInfo.mobile}}</div>
|
<div class="text">{{userInfo.mobile}}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<el-dropdown-menu>
|
<div class="menuRow">
|
||||||
<el-dropdown-item icon="sc-icon-AccountNumber" command="uc">帐号信息</el-dropdown-item>
|
<div class="itemCol" @click="linkUser"><el-icon size="16"><sc-icon-AccountNumber/></el-icon><span class="name">帐号信息</span></div>
|
||||||
<el-dropdown-item icon="sc-icon-ClearCache" command="clearCache">清除缓存</el-dropdown-item>
|
<div class="itemCol" @click="clearCache"><el-icon size="16"><sc-icon-ClearCache/></el-icon><span class="name">清除缓存</span></div>
|
||||||
</el-dropdown-menu>
|
</div>
|
||||||
<div class="loginOut">
|
<div class="loginOut">
|
||||||
<el-button class="btn" style="width: 100%" @click="loginOut">退出登录</el-button>
|
<el-button class="btn" style="width: 100%" @click="loginOut">退出登录</el-button>
|
||||||
</div>
|
</div>
|
||||||
@ -110,30 +110,6 @@ export default {
|
|||||||
|
|
||||||
},
|
},
|
||||||
methods:{
|
methods:{
|
||||||
//个人信息
|
|
||||||
handleUser(command) {
|
|
||||||
if (command == "uc") {
|
|
||||||
eventBus.$emit('headerRouterBack',{name:'personalCenter'});
|
|
||||||
}
|
|
||||||
if (command == "clearCache") {
|
|
||||||
this.$confirm('清除缓存会将系统初始化,包括登录状态、主题、语言设置等,是否继续?', '警告', {
|
|
||||||
type: 'warning',
|
|
||||||
}).then(async () => {
|
|
||||||
const loading = this.$loading()
|
|
||||||
const res = await this.$API.system.user.logout.post();
|
|
||||||
if (res.code == 200) {
|
|
||||||
this.$TOOL.data.clear()
|
|
||||||
this.$router.replace({path: '/login'});
|
|
||||||
setTimeout(() => {
|
|
||||||
loading.close()
|
|
||||||
location.reload()
|
|
||||||
}, 1000)
|
|
||||||
}
|
|
||||||
}).catch(() => {
|
|
||||||
//取消
|
|
||||||
})
|
|
||||||
}
|
|
||||||
},
|
|
||||||
serverQuery(command){
|
serverQuery(command){
|
||||||
eventBus.$emit('headerRouterBack',{name:'serveView'});
|
eventBus.$emit('headerRouterBack',{name:'serveView'});
|
||||||
if (command == "termQuery") {
|
if (command == "termQuery") {
|
||||||
@ -146,6 +122,28 @@ export default {
|
|||||||
eventBus.$emit('queryBack',{name:'order'});
|
eventBus.$emit('queryBack',{name:'order'});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
linkUser(){
|
||||||
|
this.$refs.userDropdown.handleClose();
|
||||||
|
eventBus.$emit('headerRouterBack',{name:'personalCenter'});
|
||||||
|
},
|
||||||
|
clearCache(){
|
||||||
|
this.$confirm('清除缓存会将系统初始化,包括登录状态、主题、语言设置等,是否继续?', '警告', {
|
||||||
|
type: 'warning',
|
||||||
|
}).then(async () => {
|
||||||
|
const loading = this.$loading()
|
||||||
|
const res = await this.$API.system.user.logout.post();
|
||||||
|
if (res.code == 200) {
|
||||||
|
this.$TOOL.data.clear()
|
||||||
|
this.$router.replace({path: '/login'});
|
||||||
|
setTimeout(() => {
|
||||||
|
loading.close()
|
||||||
|
location.reload()
|
||||||
|
}, 1000)
|
||||||
|
}
|
||||||
|
}).catch(() => {
|
||||||
|
//取消
|
||||||
|
})
|
||||||
|
},
|
||||||
loginOut(){
|
loginOut(){
|
||||||
this.$confirm('确认是否退出当前用户?', '警告', {
|
this.$confirm('确认是否退出当前用户?', '警告', {
|
||||||
type: 'warning',
|
type: 'warning',
|
||||||
@ -169,7 +167,7 @@ export default {
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss">
|
||||||
.common-header-left{
|
.common-header-left{
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -272,11 +270,35 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.menuRow{
|
||||||
|
padding: 10px;
|
||||||
|
.itemCol{
|
||||||
|
padding: 6px;
|
||||||
|
border-radius: 3px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
color: #888;
|
||||||
|
border: 1px solid #fff;
|
||||||
|
.name{
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.itemCol:hover{
|
||||||
|
background: #e7eff8;
|
||||||
|
border-color:#b8d1ec;
|
||||||
|
color: #1367C1;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
.loginOut{
|
.loginOut{
|
||||||
border-top: 1px solid #EBEEF5;
|
border-top: 1px solid #EBEEF5;
|
||||||
padding: 16px;
|
padding: 16px 10px;
|
||||||
.btn{
|
.btn{
|
||||||
font-weight: inherit;
|
font-weight: inherit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.el-popper.is-light>.el-popper__arrow::before{
|
||||||
|
background: #F5F7FA;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -1,24 +1,24 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="serveFooter">
|
<div class="serveFooter">
|
||||||
<div class="footerView">
|
<!-- <div class="footerView">-->
|
||||||
<div class="footer-left">
|
<!-- <div class="footer-left">-->
|
||||||
<div class="common-header-logo">
|
<!-- <div class="common-header-logo">-->
|
||||||
<img class="logo" src="https://dm-auto.oss-cn-shanghai.aliyuncs.com/xw_cloud/image/login_logo.png">
|
<!-- <img class="logo" src="https://dm-auto.oss-cn-shanghai.aliyuncs.com/xw_cloud/image/login_logo.png">-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
<div class="footer-right">
|
<!-- <div class="footer-right">-->
|
||||||
<div class="viewUl">
|
<!-- <div class="viewUl">-->
|
||||||
<div class="line"><span>个人中心</span></div>
|
<!-- <div class="line"><span>个人中心</span></div>-->
|
||||||
<div class="line"><span>关于我们</span></div>
|
<!-- <div class="line"><span>关于我们</span></div>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
<div class="viewUl">
|
<!-- <div class="viewUl">-->
|
||||||
<div class="line"><span>服务支持</span></div>
|
<!-- <div class="line"><span>服务支持</span></div>-->
|
||||||
<div class="line"><span>信息查询</span></div>
|
<!-- <div class="line"><span>信息查询</span></div>-->
|
||||||
<div class="line"><span>自助服务</span></div>
|
<!-- <div class="line"><span>自助服务</span></div>-->
|
||||||
<div class="line"><span>问题单</span></div>
|
<!-- <div class="line"><span>问题单</span></div>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
</div>
|
<!-- </div>-->
|
||||||
<div class="copyright">
|
<div class="copyright">
|
||||||
<div class="viewUl">
|
<div class="viewUl">
|
||||||
<div class="line"><span>Copyright @2024象纬云科有限公司</span></div>
|
<div class="line"><span>Copyright @2024象纬云科有限公司</span></div>
|
||||||
@ -66,8 +66,9 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
.copyright{
|
.copyright{
|
||||||
border-top: 1px solid #f6f6f6;
|
padding: 15px 0 0 0;
|
||||||
padding: 15px 20px 0 20px;
|
max-width: 1200px;
|
||||||
|
margin: 0 auto;
|
||||||
.viewUl{
|
.viewUl{
|
||||||
margin: 0;
|
margin: 0;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|||||||
@ -108,6 +108,7 @@ export default {
|
|||||||
}
|
}
|
||||||
.pageRight{
|
.pageRight{
|
||||||
flex: 1;
|
flex: 1;
|
||||||
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@ -420,7 +420,7 @@ export default {
|
|||||||
const wrap = this.$refs.scrollbar;
|
const wrap = this.$refs.scrollbar;
|
||||||
if(wrap){
|
if(wrap){
|
||||||
const e = wrap.$el.querySelector('.el-scrollbar__wrap');
|
const e = wrap.$el.querySelector('.el-scrollbar__wrap');
|
||||||
if(e && e.scrollTop){
|
if(e){
|
||||||
e.scrollTop = e.scrollHeight;
|
e.scrollTop = e.scrollHeight;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -85,7 +85,7 @@ export default {
|
|||||||
permission: false
|
permission: false
|
||||||
},
|
},
|
||||||
list:{
|
list:{
|
||||||
apiObj: this.$API.system.log.list,
|
apiObj: {},
|
||||||
column:[]
|
column:[]
|
||||||
},
|
},
|
||||||
selection: [],
|
selection: [],
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user