添加语音调度页面通讯录和语音调度平台模块逻辑

main
jinna 2 years ago
parent 5363f1b484
commit 8485163d5b
  1. 25
      src/api/dispatch/dispatch.js
  2. 254
      src/router/views/index.js
  3. 573
      src/views/dispatch/index.vue
  4. 61
      vue.config.js

@ -0,0 +1,25 @@
import request from "@/router/axios";
export const getGroupList = (query) => {
return request({
url: "http://172.19.2.195:8081/GetGroupPage",
method: "get",
params: query,
});
};
export const deleteUser = (query) => {
return request({
url: "http://172.19.2.195:8081/api/userManage/doDelUserByEID",
method: "get",
params: query,
});
};
export const addUser = (data) => {
return request({
url: "http://172.19.0.11:8081/api/userManage/batchAddEmployeeInfo",
method: "post",
data,
});
};

@ -1,114 +1,148 @@
import Layout from '@/page/index/'
import Layout from "@/page/index/";
export default [{
path: '/wel',
component: Layout,
redirect: '/wel/index',
children: [{
path: 'index',
name: '首页',
meta: {
i18n: 'dashboard'
},
component: () =>
import( /* webpackChunkName: "views" */ '@/views/wel/index')
}, {
path: 'dashboard',
name: '控制台',
meta: {
i18n: 'dashboard',
menu: false,
},
component: () =>
import( /* webpackChunkName: "views" */ '@/views/wel/dashboard')
}]
}, {
path: '/test',
component: Layout,
redirect: '/test/index',
children: [{
path: 'index',
name: '测试页',
meta: {
i18n: 'test'
},
component: () =>
import( /* webpackChunkName: "views" */ '@/views/util/test')
}]
}, {
path: '/dict-horizontal',
component: Layout,
redirect: '/dict-horizontal/index',
children: [{
path: 'index',
name: '字典管理',
meta: {
i18n: 'dict'
},
component: () =>
import( /* webpackChunkName: "views" */ '@/views/util/demo/dict-horizontal')
}]
}, {
path: '/dict-vertical',
component: Layout,
redirect: '/dict-vertical/index',
children: [{
path: 'index',
name: '字典管理',
meta: {
i18n: 'dict'
},
component: () =>
import( /* webpackChunkName: "views" */ '@/views/util/demo/dict-vertical')
}]
}, {
path: '/info',
component: Layout,
redirect: '/info/index',
children: [{
path: 'index',
name: '个人信息',
meta: {
i18n: 'info'
},
component: () =>
import( /* webpackChunkName: "views" */ '@/views/system/userinfo')
}]
}, {
path: '/work/process/leave',
component: Layout,
redirect: '/work/process/leave/form',
children: [{
path: 'form/:processDefinitionId',
name: '请假流程',
meta: {
i18n: 'work'
},
component: () =>
import( /* webpackChunkName: "views" */ '@/views/work/process/leave/form')
}, {
path: 'handle/:taskId/:processInstanceId/:businessId',
name: '处理请假流程',
meta: {
i18n: 'work'
},
export default [
{
path: "/wel",
component: Layout,
redirect: "/wel/index",
children: [
{
path: "index",
name: "首页",
meta: {
i18n: "dashboard",
},
component: () =>
import(/* webpackChunkName: "views" */ "@/views/wel/index"),
},
{
path: "dashboard",
name: "控制台",
meta: {
i18n: "dashboard",
menu: false,
},
component: () =>
import(/* webpackChunkName: "views" */ "@/views/wel/dashboard"),
},
],
},
{
path: "/test",
component: Layout,
redirect: "/test/index",
children: [
{
path: "index",
name: "测试页",
meta: {
i18n: "test",
},
component: () =>
import(/* webpackChunkName: "views" */ "@/views/util/test"),
},
],
},
{
path: "/dict-horizontal",
component: Layout,
redirect: "/dict-horizontal/index",
children: [
{
path: "index",
name: "字典管理",
meta: {
i18n: "dict",
},
component: () =>
import(
/* webpackChunkName: "views" */ "@/views/util/demo/dict-horizontal"
),
},
],
},
{
path: "/dict-vertical",
component: Layout,
redirect: "/dict-vertical/index",
children: [
{
path: "index",
name: "字典管理",
meta: {
i18n: "dict",
},
component: () =>
import(
/* webpackChunkName: "views" */ "@/views/util/demo/dict-vertical"
),
},
],
},
{
path: "/info",
component: Layout,
redirect: "/info/index",
children: [
{
path: "index",
name: "个人信息",
meta: {
i18n: "info",
},
component: () =>
import(/* webpackChunkName: "views" */ "@/views/system/userinfo"),
},
],
},
{
path: "/work/process/leave",
component: Layout,
redirect: "/work/process/leave/form",
children: [
{
path: "form/:processDefinitionId",
name: "请假流程",
meta: {
i18n: "work",
},
component: () =>
import(
/* webpackChunkName: "views" */ "@/views/work/process/leave/form"
),
},
{
path: "handle/:taskId/:processInstanceId/:businessId",
name: "处理请假流程",
meta: {
i18n: "work",
},
component: () =>
import(
/* webpackChunkName: "views" */ "@/views/work/process/leave/handle"
),
},
{
path: "detail/:processInstanceId/:businessId",
name: "请假流程详情",
meta: {
i18n: "work",
},
component: () =>
import(
/* webpackChunkName: "views" */ "@/views/work/process/leave/detail"
),
},
],
},
{
path: "/dispatch",
name: "语音调度",
component: () =>
import( /* webpackChunkName: "views" */ '@/views/work/process/leave/handle')
}, {
path: 'detail/:processInstanceId/:businessId',
name: '请假流程详情',
import(/* webpackChunkName: "views" */ "@/views/dispatch/index"),
meta: {
i18n: 'work'
isTab: false,
isAuth: false,
},
component: () =>
import( /* webpackChunkName: "views" */ '@/views/work/process/leave/detail')
}]
},{
path: '/dispatch',
name: '语音调度',
component: () =>
import( /* webpackChunkName: "views" */ '@/views/dispatch/index'),
meta: {
isTab: false
}
}]
},
];

@ -48,19 +48,23 @@
@clear="searchHandle(1)"
></el-input>
</div>
<div class="list_box" v-show="activeTit == 1">
<div class="list_item" :class="activeDevice == item.id ? 'dev_act' : item.isSelect == 1 ? 'sele_devi' : ''"
<div class="list_box" v-show="activeTit == 1" v-infinite-scroll="load" :infinite-scroll-immediate="isSroll">
<div class="list_item" :class="activeDevice == item.id ? 'dev_act' : item.isSelect == 1 ? 'sele_devi' : ''"
v-for="item in deviceData" :key="item.id" @mouseenter="enterDevice(item)" @mouseleave="leaveDevice">
<div class="left_bor" v-show="activeDevice == item.id"></div>
<div class="dev_img">
<img v-show="activeDevice !== item.id" src="~@/assets/image/device.png" alt="">
<img v-show="activeDevice == item.id" src="~@/assets/image/device_act.png" alt="">
</div>
<div class="device_name">{{item.name}}</div>
<div class="dev_btn" v-show="activeDevice == item.id">邀请</div>
<div class="device_name" :class="activeDevice == item.id ? 'act_dev_name' : ''">{{item.name}}</div>
<div class="dev_btn_box">
<div class="dev_btn" @click="inviteUser(item)" v-show="activeDevice == item.id">邀请</div>
<div class="dev_btn del_btn" v-show="activeDevice == item.id" @click="deleteUser(item)">删除</div>
</div>
</div>
</div>
<div class="btn_box" v-show="activeTit == 1">
<div class="btn_box" v-show="activeTit == 1" @click="addUser">
<img src="~@/assets/image/add_btn.png" alt="">添加用户
</div>
<div class="tree_box" v-show="activeTit == 2">
@ -84,42 +88,45 @@
<div class="cen_tit">
<img src="~@/assets/image/voice_tit.png" alt="">
</div>
<div class="bottom_cen" v-show="activeTit == 1">
<div class="bottom_cen" v-show="inviteList.length > 1">
<el-row :gutter="20">
<el-col :span="8">
<div class="bottom_item">
<div class="item_tit">终端设备名称调度组1</div>
<el-col :span="8" v-for="item in inviteList" :key="item.id">
<video class="bottom_item" id="item.id">
<!-- <div class="item_tit">终端设备名称调度组1</div>
<div class="voice_con">
<img src="~@/assets/image/voice_bag.png" alt="">
</div>
<div class="voice_btn">
<img src="~@/assets/image/mute.png" alt="">
<img class="hang_btn" src="~@/assets/image/hang.png" alt="">
</div>
</div>
</div> -->
</video>
</el-col>
<!-- <el-col :span="8"><div class="bottom_item"></div></el-col>
<el-col :span="8"><div class="bottom_item"></div></el-col>
<el-col :span="8"><div class="bottom_item"></div></el-col>
<el-col :span="8"><div class="bottom_item"></div></el-col>
<el-col :span="8"><div class="bottom_item"></div></el-col>
<el-col :span="8"><div class="bottom_item"></div></el-col>
<el-col :span="8"><div class="bottom_item"></div></el-col> -->
</el-row>
</div>
<div class="group_cen" v-show="activeTit == 2">
<div class="group_tit">终端设备名称调度组1</div>
<div class="group_voice">
<img src="~@/assets/image/voice_bag.png" alt="">
</div>
<div class="voice_btn">
<img src="~@/assets/image/mute.png" alt="">
<img class="hang_btn" src="~@/assets/image/hang.png" alt="">
</div>
<div class="group_cen" v-show="inviteList.length == 1">
<video class="group_video" src="" id="video">
<!-- <div class="group_tit">{{inviteList.length == 1 ? inviteList[0].name : ''}}</div>
<div class="group_voice">
<img src="~@/assets/image/voice_bag.png" alt="">
</div>
<div class="voice_btn">
<img src="~@/assets/image/mute.png" alt="">
<img class="hang_btn" src="~@/assets/image/hang.png" alt="">
</div> -->
</video>
</div>
<div class="bot_cen">
<img v-show="activeTit == 1" src="~@/assets/image/over.png" alt="">
<img v-show="activeTit == 1" class="exit" src="~@/assets/image/exit_voice.png" alt="">
<img v-show="activeTit == 2" src="~@/assets/image/finish.png" alt="">
<img v-show="activeTit == 2" class="exit" src="~@/assets/image/exit_speak.png" alt="">
<img v-show="inviteList.length > 1" src="~@/assets/image/over.png" alt="">
<img v-show="inviteList.length > 1" class="exit" src="~@/assets/image/exit_voice.png" alt="">
<img v-show="inviteList.length == 1" src="~@/assets/image/finish.png" alt="">
<img v-show="inviteList.length == 1" class="exit" src="~@/assets/image/exit_speak.png" alt="">
</div>
</div>
<div class="right_con">
@ -153,10 +160,204 @@
</div>
</div>
</div>
<el-dialog
title="添加用户"
:visible.sync="dialogVisible"
width="80%"
custom-class="user_dialog"
:before-close="handleClose">
<el-table
:data="userData"
:key="index"
border
max-height="424"
style="
margin:0 auto;
margin-bottom: 0.3rem;
width: 100%;
"
header-cell-style="background-color:#fafafa;font-size:12px;color:black"
>
<el-table-column width="63px" fixed>
<template slot="header">
<el-button
circle
size="small"
type="primary"
icon="el-icon-plus"
@click="addPeople()"
/>
</template>
<template slot-scope="scope">
<el-button
circle
size="small"
type="danger"
icon="el-icon-delete"
@click="removePeople(scope.$index, scope.row,scope)"
/>
</template>
</el-table-column>
<el-table-column fixed prop="" label="账号" width="286" align="center">
<template slot-scope="scope">
<el-input
v-model="scope.row.employeeId"
clearable
placeholder="账号"
size="medium"
style="width: 90%; margin-left: 5%"
/>
</template>
</el-table-column>
<el-table-column width="286" align="center" prop="" label="密码">
<template slot-scope="scope">
<el-input
v-model="scope.row.password"
clearable
placeholder="密码"
size="medium"
style="width: 90%; margin-left: 5%"
/>
</template>
</el-table-column>
<el-table-column width="120" align="center" prop="" label="等级">
<template slot-scope="scope">
<el-select
style="width: 90%"
v-model="scope.row.employeeLevel"
clearable
filterable
placeholder="请选择等级"
size="medium"
>
<el-option
v-for="(item, index) in levelList"
:key="index"
:label="item.label"
:value="item.value"
/>
</el-select>
</template>
</el-table-column>
<el-table-column width="286" align="center" prop="" label="调度组">
<template slot-scope="scope">
<el-select
style="width: 90%"
v-model="scope.row.groupNum"
clearable
filterable
placeholder="请选择调度组"
size="medium"
>
<el-option
v-for="(item, index) in groupList"
:key="index"
:label="item.label"
:value="item.value"
/>
</el-select>
</template>
</el-table-column>
<el-table-column width="286" align="center" prop="" label="名称">
<template slot-scope="scope">
<el-input
v-model="scope.row.name"
clearable
placeholder="名称"
size="medium"
style="width: 90%; margin-left: 5%"
/>
</template>
</el-table-column>
<el-table-column width="286" align="center" prop="" label="类型">
<template slot-scope="scope">
<el-input
v-model="scope.row.type"
clearable
readonly
placeholder="类型"
size="medium"
style="width: 90%; margin-left: 5%"
/>
</template>
</el-table-column>
<el-table-column width="286" align="center" prop="" label="是否录音">
<template slot-scope="scope">
<el-select
style="width: 90%"
v-model="scope.row.isRecord"
clearable
filterable
placeholder="请选择是否录音"
size="medium"
>
<el-option label="是" :value="1" />
<el-option label="否" :value="0" />
</el-select>
</template>
</el-table-column>
<el-table-column width="286" align="center" prop="" label="是否录像">
<template slot-scope="scope">
<el-select
style="width: 90%"
v-model="scope.row.isVideo"
clearable
filterable
placeholder="请选择是否录像"
size="medium"
>
<el-option label="是" :value="1" />
<el-option label="否" :value="0" />
</el-select>
</template>
</el-table-column>
<el-table-column width="286" align="center" prop="" label="经度">
<template slot-scope="scope">
<el-input
v-model="scope.row.longitude"
clearable
readonly
placeholder="经度"
size="medium"
style="width: 90%; margin-left: 5%"
/>
</template>
</el-table-column>
<el-table-column width="286" align="center" prop="" label="纬度">
<template slot-scope="scope">
<el-input
v-model="scope.row.latitude"
clearable
readonly
placeholder="纬度"
size="medium"
style="width: 90%; margin-left: 5%"
/>
</template>
</el-table-column>
<el-table-column width="286" align="center" prop="" label="备注">
<template slot-scope="scope">
<el-input
v-model="scope.row.remark"
clearable
readonly
placeholder="备注"
size="medium"
style="width: 90%; margin-left: 5%"
/>
</template>
</el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="userSubmit"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import {getGroupList,deleteUser,addUser} from "@/api/dispatch/dispatch"
export default {
name: "alarmCenter",
data() {
@ -167,23 +368,9 @@ export default {
activeNode:'',
selectTreeNode:['002','009'],
activePhone:'',
deviceData:[
{id:'001',name:'终端设备名称1(1001)',isSelect:0},
{id:'002',name:'终端设备名称2(1002)',isSelect:1},
{id:'003',name:'终端设备名称3(1003)',isSelect:0},
{id:'004',name:'终端设备名称4(1004)',isSelect:0},
{id:'005',name:'终端设备名称5(1005)',isSelect:1},
{id:'006',name:'终端设备名称6(1006)',isSelect:0},
{id:'007',name:'终端设备名称7(1007)',isSelect:0},
{id:'008',name:'终端设备名称8(1008)',isSelect:1},
{id:'009',name:'终端设备名称9(1009)',isSelect:0},
{id:'010',name:'终端设备名称10(1010)',isSelect:0},
{id:'011',name:'终端设备名称11(1011)',isSelect:1},
{id:'012',name:'终端设备名称12(1012)',isSelect:0},
{id:'013',name:'终端设备名称13(1013)',isSelect:0},
{id:'014',name:'终端设备名称14(1014)',isSelect:0},
{id:'015',name:'终端设备名称15(1015)',isSelect:0},
],
dialogVisible:false,
deviceData:[],
isSroll:false,
treeData: [{
id:'001',
label: '调度组名称1',
@ -248,15 +435,64 @@ export default {
},
]
}],
inviteList:[
// {id:'001',name:'11001',isSelect:1},
],
phoneList:[
{id:1,time:'00:12:23',name:'终端设备名称——调度组1'},
{id:2,time:'00:16:23',name:'终端设备名称——调度组2'},
{id:3,time:'00:01:23',name:'终端设备名称——调度组2'},
{id:4,time:'00:11:23',name:'终端设备名称——调度组2'},
// {id:1,time:'00:12:23',name:'1'},
// {id:2,time:'00:16:23',name:'2'},
// {id:3,time:'00:01:23',name:'2'},
// {id:4,time:'00:11:23',name:'2'},
],
timer:null,
time:'',
date:''
date:'',
userData:[
{employeeId:'',password:'123456',employeeLevel:10,groupNum:null,name:'',type:'智能终端',isRecord:0,
isVideo:0,longitude:null,latitude:null,remark:''},
],
levelList:[
{label:'1级',value:1},
{label:'2级',value:2},
{label:'3级',value:3},
{label:'4级',value:4},
{label:'5级',value:5},
{label:'6级',value:6},
{label:'7级',value:7},
{label:'8级',value:8},
{label:'9级',value:9},
{label:'10级',value:10},
],
groupList:[],
listData:[
{id:'001',name:'终端设备名称1(1001)',isSelect:0},
{id:'002',name:'终端设备名称2(1002)',isSelect:0},
{id:'003',name:'终端设备名称3(1003)',isSelect:0},
{id:'004',name:'终端设备名称4(1004)',isSelect:0},
{id:'005',name:'终端设备名称5(1005)',isSelect:0},
{id:'006',name:'终端设备名称6(1006)',isSelect:0},
{id:'007',name:'终端设备名称7(1007)',isSelect:0},
{id:'008',name:'终端设备名称8(1008)',isSelect:0},
{id:'009',name:'终端设备名称9(1009)',isSelect:0},
{id:'010',name:'终端设备名称10(1010)',isSelect:0},
{id:'011',name:'终端设备名称11(1011)',isSelect:0},
{id:'012',name:'终端设备名称12(1012)',isSelect:0},
{id:'013',name:'终端设备名称13(1013)',isSelect:0},
{id:'014',name:'终端设备名称14(1014)',isSelect:0},
{id:'015',name:'终端设备名称15(1015)',isSelect:0},
{id:'016',name:'终端设备名称16(1016)',isSelect:0},
{id:'017',name:'终端设备名称17(1017)',isSelect:0},
{id:'018',name:'终端设备名称18(1018)',isSelect:0},
{id:'019',name:'终端设备名称19(1019)',isSelect:0},
{id:'020',name:'终端设备名称20(1020)',isSelect:0},
{id:'021',name:'终端设备名称21(1021)',isSelect:0},
{id:'022',name:'终端设备名称22(1022)',isSelect:0},
{id:'023',name:'终端设备名称23(1023)',isSelect:0},
{id:'024',name:'终端设备名称24(1024)',isSelect:0},
],
startIndex:0,
current:1,
}
},
computed: {
@ -264,9 +500,17 @@ export default {
mounted() {
},
created(){
this.getTime()
this.getTime();
// this.load()
this.getGroupData()
},
methods: {
//
getGroupData(){
getGroupList().then(res =>{
console.log(res)
})
},
fn(str) {
let num = null;
str >= 10 ? (num = str) : (num = "0" + str);
@ -287,6 +531,139 @@ export default {
this.date = year + "/" + (month + 1) + "/" + data;
}, 1000);
},
//
inviteUser(row){
this.$confirm('确定要邀请该用户吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
row.isSelect = 1
this.deviceData.find(item => item.id == row.id).isSelect = 1;
this.inviteList.push(row)
}).catch(() => {
// this.$message({
// type: 'info',
// message: ''
// });
});
},
//
load(){
// this.isSroll = true;
// queryImmediateList({ curPage: this.current, pageRows: 10}).then((res) => {
// this.deviceData = this.deviceData.concat(res.data.records);
// this.current++;
// if (res.data.records.length == 0) {
// this.isSroll = false;
// }
// this.total = res.data.total;
// });
let arr = []
let endIndex = this.startIndex + 10;
this.isSroll = true;
this.deviceData = this.deviceData.concat(this.listData.slice(this.startIndex, endIndex));
arr =JSON.parse(JSON.stringify(this.listData)).slice(this.startIndex, endIndex)
this.startIndex = endIndex;
if(arr.length = 0){
this.isSroll = false;
this.startIndex = 0
}
},
//
deleteUser(item){
this.$confirm('确定要删除该用户吗?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
deleteUser({intemployeeId:item.id}).then(res =>{
if(res.state == 200){
this.$message({
type: 'success',
message: '删除成功!'
});
}
})
}).catch(() => {
// this.$message({
// type: 'info',
// message: ''
// });
});
},
//
addUser(){
this.dialogVisible = true;
this.$nextTick(() =>{
this.$el.querySelector('.el-table__body-wrapper').scrollLeft = 0;
this.userData = [
{employeeId:'',password:'123456',employeeLevel:10,groupNum:null,name:'',type:'智能终端',isRecord:0,
isVideo:0,longitude:null,latitude:null,remark:''},
];
})
},
//
addPeople(){
let tmp = this.userData.find(item => item.employeeId == '')
if(tmp){
this.$message({
message:'请填写账号',
type:'warning'
})
}else{
this.userData.push(
{employeeId:'',password:'123456',employeeLevel:10,groupNum:'',name:'',type:'智能终端',isRecord:0,
isVideo:0,longitude:null,latitude:null,remark:''},
);
}
},
//
removePeople(index, row,val) {
console.log(val)
// if (row.id !== undefined) {
// this.$message({
// message: "",
// type: "warning",
// });
// } else {
if (index > 0 || this.userData.length > 1) {
this.userData.splice(index, 1);
} else {
this.$message({
message: "至少要填写一行",
type: "warning",
});
}
// }
},
userSubmit(){
let paramsData = []
let tmp = this.userData.find(item => item.employeeId == '');
if(tmp){
this.$message.error('请填写账号');
}else{
paramsData = JSON.parse(JSON.stringify(this.userData));
paramsData.map(item =>{
item.type = '6.0';
item.name = item.name == '' ? item.employeeId : item.name
})
console.log(paramsData)
addUser(JSON.stringify(paramsData)).then(res =>{
console.log(res)
if(res.code == 200){
this.$message.success('添加成功!')
this.deviceData = [];
this.current = 1;
this.load()
}
})
}
},
// /
changeTitle(item){
this.activeTit = item
@ -531,7 +908,7 @@ export default {
height: 100%;
display: flex;
align-items: center;
margin: 0 0.06rem 0 0.16rem;
margin: 0 0.06rem 0 0.06rem;
img{
width: 0.28rem;
height: 0.28rem;
@ -543,21 +920,43 @@ export default {
font-family: Microsoft YaHei;
font-weight: 400;
line-height: 0.35rem;
width: 2.3rem;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
&.act_dev_name{
width: 1.5rem;
}
}
.dev_btn{
font-size: 14px;
font-family: Microsoft YaHei;
font-weight: 400;
float: right;
width: 0.5rem;
height: 0.25rem;
margin-right: 0.05rem;
margin-top: 0.045rem;
background: #176CE8;
border-radius: 2px;
color: #fff;
text-align: center;
line-height: 0.25rem;
.dev_btn_box{
width: 0.85rem;
height: 0.35rem;
position: absolute;
right: 0.05rem;
display: flex;
align-items: center;
justify-content: space-between;
.dev_btn{
font-size: 14px;
font-family: Microsoft YaHei;
font-weight: 400;
float: right;
width: 0.4rem;
height: 0.25rem;
// margin-right: 0.5rem;
// margin-top: 0.045rem;
background: #176CE8;
border-radius: 2px;
color: #fff;
text-align: center;
line-height: 0.25rem;
&.del_btn{
background: #D83030;
}
}
}
}
}
@ -587,6 +986,7 @@ export default {
justify-content: center;
margin: 0 auto;
margin-top: 0.25rem;
cursor: pointer;
img{
margin-right: 0.1rem;
@ -621,6 +1021,7 @@ export default {
background-size: 100% 100%;
float: left;
margin-top: 0.085rem;
margin-left: -0.12rem;
}
.level_first {
background: url("~@/assets/image/tree.png");
@ -640,7 +1041,7 @@ export default {
background-size: 100% 100%;
float: left;
margin-top: 0.02rem;
margin-left: 0.16rem;
margin-left: 0.06rem;
margin-right: 0.06rem;
}
.first_span{
@ -787,10 +1188,17 @@ export default {
width: 11.2rem;
height: 7.35rem;
margin: 0 auto;
background: #233449;
margin-top: 0.2rem;
display: flex;
flex-direction: column;
.group_video{
width: 100%;
height: 100%;
background: #233449;
margin-top: 0.2rem;
display: flex;
flex-direction: column;
}
.group_tit{
width: 100%;
@ -817,6 +1225,7 @@ export default {
margin: 0 0.18rem 0 0.1rem;
}
}
}
.bot_cen{
@ -1008,3 +1417,29 @@ export default {
}
</style>
<style lang="scss">
.user_dialog{
// background: red;
.el-dialog__header{
display: flex;
}
.dialog-footer{
height: 0.45rem;
display: flex;
justify-content: end;
}
}
.el-message .el-icon-warning{
font-size: 0.16rem;
}
.el-message .el-icon-error{
font-size: 0.16rem;
}
.el-message .el-icon-success{
font-size: 0.16rem;
}
</style>

@ -7,54 +7,61 @@ module.exports = {
chainWebpack: (config) => {
//忽略的打包文件
config.externals({
'vue': 'Vue',
'vue-router': 'VueRouter',
'vuex': 'Vuex',
'axios': 'axios',
'element-ui': 'ELEMENT',
vue: "Vue",
"vue-router": "VueRouter",
vuex: "Vuex",
axios: "axios",
"element-ui": "ELEMENT",
});
const entry = config.entry('app');
entry.add('babel-polyfill').end();
entry.add('classlist-polyfill').end();
entry.add('@/mock').end();
const entry = config.entry("app");
entry.add("babel-polyfill").end();
entry.add("classlist-polyfill").end();
entry.add("@/mock").end();
},
css: {
extract: { ignoreOrder: true }
extract: { ignoreOrder: true },
},
//开启压缩
configureWebpack: {
plugins: [
new CompressionPlugin({
filename: '[path][base].gz',
algorithm: 'gzip',
test: '\.js$|\.css$|\.html$|\.ttf$|\.eot$|\.woff$/',
filename: "[path][base].gz",
algorithm: "gzip",
test: ".js$|.css$|.html$|.ttf$|.eot$|.woff$/",
threshold: 10240,
minRatio: 0.8
})
minRatio: 0.8,
}),
],
},
//开发模式反向代理配置,生产模式请使用Nginx部署并配置反向代理
devServer: {
port: 1888,
proxy: {
'/api': {
"/api": {
//本地服务接口地址
// target: 'http://192.168.1.34:8008',
target: 'http://192.168.3.32:8008',
target: "http://192.168.3.32:8008",
ws: true,
pathRewrite: {
'^/api': '/'
}
"^/api": "/",
},
},
'/autoApi': {
"/autoApi": {
//本地服务接口地址
target: 'http://182.139.182.190:82',
target: "http://182.139.182.190:82",
ws: true,
pathRewrite: {
'^/autoApi': '/'
}
}
}
}
"^/autoApi": "/",
},
},
"/dispatch": {
//本地服务接口地址
target: "http://172.19.2.195:8081",
ws: true,
pathRewrite: {
"^/dispatch": "/",
},
},
},
},
};

Loading…
Cancel
Save