Commit 6f457b84 authored by 夏敏伟's avatar 夏敏伟

增加演习暂停开启等功能

parent 2376738d
...@@ -29,7 +29,7 @@ export const leaveChatRoom = (userId) => { ...@@ -29,7 +29,7 @@ export const leaveChatRoom = (userId) => {
//查询某个用户所有聊天室(群组) //查询某个用户所有聊天室(群组)
export const getChatRoomList = (data) => { export const getChatRoomList = (data) => {
return post(`${PREFIX_CHATROOM}/list`,data); return post(`${PREFIX_CHATROOM}/list`, data);
} }
//阅读(群组)信息 //阅读(群组)信息
...@@ -52,6 +52,20 @@ export const upLoadFiles = (bucket, data) => { ...@@ -52,6 +52,20 @@ export const upLoadFiles = (bucket, data) => {
return fileUpload(`api/rest/file/upload?bucket=${bucket}`, data) return fileUpload(`api/rest/file/upload?bucket=${bucket}`, data)
} }
//启动聊天室(群组)
export const startExercise = (chatRoomId) => {
return post(`${PREFIX_CHATROOM}/start?chatRoomId=${chatRoomId}`);
}
//删除聊天室(群组)
export const removeExercise = (chatRoomId) => {
return get(`${PREFIX_CHATROOM}/remove?chatRoomId=${chatRoomId}`);
}
//停止聊天室(群组)
export const stopExercise = (data) => {
return post(`${PREFIX_CHATROOM}/end`, data);
}
......
...@@ -20,8 +20,8 @@ ...@@ -20,8 +20,8 @@
<el-form-item> <el-form-item>
<div class="searchButton" <div class="searchButton"
:style="{ background: stompClient.connected ? 'Green' : 'gray', color: 'white' }"> :style="{ background: stompClient.connected ? 'Green' : 'gray', color: 'white' }">
<span :class="[!stompClient.connected?'el-icon-loading':'']"></span> <span :class="[!stompClient.connected ? 'el-icon-loading' : '']"></span>
{{stompClient.connected ? '已连接' : '重连中'}} {{ stompClient.connected ? '已连接' : '重连中' }}
</div> </div>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -29,7 +29,10 @@ ...@@ -29,7 +29,10 @@
<div class="ddkz-content"> <div class="ddkz-content">
<div v-for="item in analogData" class="content-card bk-ddkz-animation animate__animated animate__ZoomIn" <div v-for="item in analogData" class="content-card bk-ddkz-animation animate__animated animate__ZoomIn"
@click="showInfo(item)"> @click="showInfo(item)">
<div class="card-title" v-text="item.nickname" :title="item.nickname"></div> <div class="card-title" :title="item.nickname">{{ item.nickname
}}<span
:style="{ fontSize: '14px', color: item.status.name == '待开始' ? '#85ce61' : (item.status.name == '进行中' ? '#409eff' : (item.status.name == '已结束' ? '#f78989' : '')) }">{{
'' + item.status.name + '' }}</span></div>
<div class="card-date" v-text="item.createTime"></div> <div class="card-date" v-text="item.createTime"></div>
<div class="card-text" v-text="item.conRemark" :title="item.conRemark"></div> <div class="card-text" v-text="item.conRemark" :title="item.conRemark"></div>
<div class="card-tags"> <div class="card-tags">
...@@ -71,7 +74,12 @@ export default { ...@@ -71,7 +74,12 @@ export default {
}, },
methods: { methods: {
showInfo(item) { showInfo(item) {
this.$router.push({ name: '聊天室详情' + this.$route.meta.type_name, params: { data: item, client: this.stompClient } }); if (item.status.name !== '待开始') {
this.$router.push({ name: '聊天室详情' + this.$route.meta.type_name, params: { data: item, client: this.stompClient } });
} else {
this.$message.warning('此演习暂未开启,不能进入!');
}
}, },
queryChatRoomListFn(params) { queryChatRoomListFn(params) {
getChatRoomList(params).then(res => { getChatRoomList(params).then(res => {
......
...@@ -2,29 +2,35 @@ ...@@ -2,29 +2,35 @@
<div class="ddkzConfig"> <div class="ddkzConfig">
<el-tabs type="border-card" @tab-click="handleTabClick" v-model="activeTabs"> <el-tabs type="border-card" @tab-click="handleTabClick" v-model="activeTabs">
<el-tab-pane> <el-tab-pane>
<span slot="label"><i class="el-icon-date"></i> 新增会议</span> <span slot="label"><i class="el-icon-document-add"></i> 新增演习</span>
<DdkzConfigAdd></DdkzConfigAdd> <DdkzConfigAdd></DdkzConfigAdd>
</el-tab-pane> </el-tab-pane>
<el-tab-pane> <el-tab-pane>
<span slot="label"><i class="el-icon-date"></i> 会议列表</span> <span slot="label"><i class="el-icon-document-copy"></i> 演习列表</span>
<DdkzConfigList></DdkzConfigList> <DdkzConfigList></DdkzConfigList>
</el-tab-pane> </el-tab-pane>
<el-tab-pane>
<span slot="label"><i class="el-icon-document-checked"></i> 演习审批</span>
<DdkzConfigApprove></DdkzConfigApprove>
</el-tab-pane>
</el-tabs> </el-tabs>
</div> </div>
</template> </template>
<script> <script>
import ddkzConfigAdd from '../sjgl/ddkzConfig/ddkzConfigAdd.vue'; import ddkzConfigAdd from '@/view/sjgl/ddkzConfig/ddkzConfigAdd.vue';
import ddkzConfigList from '../sjgl/ddkzConfig/ddkzConfigList.vue'; import ddkzConfigList from '@/view/sjgl/ddkzConfig/ddkzConfigList.vue';
import ddkzConfigApprove from '@/view/sjgl/ddkzConfig/ddkzConfigApprove.vue';
export default { export default {
data() { data() {
return { return {
activeTabs: '' activeTabs: ''
} }
}, },
components:{ components: {
DdkzConfigAdd:ddkzConfigAdd, DdkzConfigAdd: ddkzConfigAdd,
DdkzConfigList:ddkzConfigList DdkzConfigList: ddkzConfigList,
DdkzConfigApprove: ddkzConfigApprove
}, },
methods: { methods: {
handleTabClick() { handleTabClick() {
...@@ -45,7 +51,7 @@ export default { ...@@ -45,7 +51,7 @@ export default {
>.el-tabs--border-card { >.el-tabs--border-card {
width: calc(100% - 4px); width: calc(100% - 4px);
height: calc(100% - 4px); height: calc(100% - 4px);
border: 2px solid #125473; border: 2px solid #3a5f94c9;
border-radius: 5px; border-radius: 5px;
box-sizing: border-box; box-sizing: border-box;
background: #ffffff00; background: #ffffff00;
...@@ -58,7 +64,7 @@ export default { ...@@ -58,7 +64,7 @@ export default {
>.el-tabs__header { >.el-tabs__header {
background-color: unset; background-color: unset;
border-bottom: 2px solid #125473; border-bottom: 2px solid #3a5f94c9;
.el-tabs__item { .el-tabs__item {
color: #dedede; color: #dedede;
...@@ -66,9 +72,9 @@ export default { ...@@ -66,9 +72,9 @@ export default {
.el-tabs__item.is-active { .el-tabs__item.is-active {
color: #ffe000; color: #ffe000;
background-color: #116791; background-color: #3a5f94c9;
border-right-color: #116791; border-right-color: #3a5f94c9;
border-left-color: #116791; border-left-color: #3a5f94c9;
} }
.el-tabs__item:not(.is-disabled):hover { .el-tabs__item:not(.is-disabled):hover {
......
<template> <template>
<div class="addDdkzConfig"> <div class="addDdkzConfig">
<el-form class="myForm" label-position="right" label-width="200px" :model="formData"> <el-form class="myForm" label-position="right" label-width="200px" :model="formData">
<el-form-item label="题"> <el-form-item label="演习标题">
<el-input v-model="formData.nickname"></el-input> <el-input v-model="formData.nickname"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="聊天室主持人"> <el-form-item label="演习主持人">
<!-- <el-input v-model="formData.chatroomOwner"></el-input> --> <!-- <el-input v-model="formData.chatroomOwner"></el-input> -->
<el-select v-model="formData.chatroomOwner" placeholder="请选择"> <el-select v-model="formData.chatroomOwner" placeholder="请选择">
<el-option v-for="item in allData" :key="item.account" :label="item.account" :value="item.account"> <el-option v-for="item in allData" :key="item.account" :label="item.account" :value="item.account">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="备注"> <el-form-item label="演习内容">
<el-input v-model="formData.conRemark"></el-input> <el-input v-model="formData.conRemark"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="与会方"> <el-form-item label="与会方">
...@@ -96,7 +96,7 @@ ...@@ -96,7 +96,7 @@
</el-form> </el-form>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="success" @click="createMeeting">创建会议</el-button> <el-button type="success" @click="createMeeting">创建演习</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
......
<template>
<div class="yxsp">
</div>
</template>
\ No newline at end of file
<template> <template>
<div class="ddkzConfigList"> <div class="ddkzConfigList">
<div class="ddkzCondition"> <div class="ddkzCondition">
<el-date-picker value-format="yyyy-MM-dd HH:mm:ss" v-model="dateRange" type="daterange" range-separator="至" <el-date-picker value-format="yyyy-MM-dd HH:mm:ss" v-model="form.dateRange" type="daterange" range-separator="至"
start-placeholder="开始时间" end-placeholder="结束时间" :default-time="['00:00:00', '23:59:59']"> start-placeholder="开始时间" end-placeholder="结束时间" :default-time="['00:00:00', '23:59:59']">
</el-date-picker> </el-date-picker>
<el-select style="margin-left: 10px;" v-model="form.status" placeholder="请选择演习状态" clearable>
<el-option v-for="item in exerciseList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
<el-input class="myInput" v-model="form.keyword"></el-input>
<div class="searchButton" @click="searchChatList">搜索</div> <div class="searchButton" @click="searchChatList">搜索</div>
</div> </div>
<div class="ddkzContent"> <div class="ddkzContent">
...@@ -11,41 +16,92 @@ ...@@ -11,41 +16,92 @@
@selection-change="handleSelectionChange"> @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55"> <!-- <el-table-column type="selection" width="55">
</el-table-column> --> </el-table-column> -->
<el-table-column type="index" width="60" label="序号" align="center"></el-table-column>
<el-table-column prop="nickname" label="主题" align="center"></el-table-column> <el-table-column prop="nickname" label="主题" align="center"></el-table-column>
<el-table-column prop="chatroomOwner" label="支持人" align="center"></el-table-column> <el-table-column prop="conRemark" label="演习内容" align="center"></el-table-column>
<el-table-column prop="createTime" label="日期" align="center"></el-table-column> <el-table-column prop="createTime" label="演习结果" align="center"></el-table-column>
<!-- <el-table-column label="操作" align="center" width="500"> <el-table-column prop="status.name" label="演习状态" align="center"></el-table-column>
<el-table-column prop="createTime" label="开始时间" align="center"></el-table-column>
<el-table-column label="操作" align="center" width="500">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="danger" @click="deleteMeeting(scope.row)">删除</el-button> <el-button v-if="scope.row.status.name !== '进行中'" size="mini" type="danger"
@click="deleteExercise(scope.row)">删除</el-button>
<el-button v-if="scope.row.status.name == '待开始'" size="mini" type="success"
@click="startExercise(scope.row)">启动</el-button>
<el-button v-if="scope.row.status.name == '进行中'" size="mini" type="warning"
@click="stopExercise(scope.row)">结束</el-button>
</template> </template>
</el-table-column> --> </el-table-column>
</el-table> </el-table>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import { getChatRoomList } from "@/api/chat/chatRoom"; import { getChatRoomList, startExercise, stopExercise, removeExercise } from "@/api/chat/chatRoom";
export default { export default {
data() { data() {
return { return {
dateRange: [], form: {
meetingList: [] dateRange: [],
status: null,
keyword: null
},
meetingList: [],
exerciseList: [{ label: '待开始', value: 'CREATED' }, { label: '进行中', value: 'ONGOING' }, { label: '已结束', value: 'CLOSED' }]
} }
}, },
methods: { methods: {
handleSelectionChange() { }, handleSelectionChange() { },
deleteMeeting(item) { }, //删除演习
deleteExercise(item) {
removeExercise(item.id).then(res => {
if (res == 1) {
this.$message.success('删除演习成功!');
this.searchChatList();
}
}).catch(error => {
this.$message.error(error.message);
});
},
//启动演习
startExercise(item) {
startExercise(item.id).then(res => {
if (res == 1) {
this.$message.success('启动成功!');
this.searchChatList();
}
}).catch(error => {
this.$message.error(error.message);
});
},
//结束演习
stopExercise(item) {
let params = {
chatRoomId: item.id,
result: '暂无'
};
stopExercise(params).then(res => {
if (res == 1) {
this.$message.success('此演习结束!');
this.searchChatList();
}
}).catch(error => {
this.$message.error(error.message);
});
},
queryChatRoomListFn(param) { queryChatRoomListFn(param) {
getChatRoomList(param).then(res => { getChatRoomList(param).then(res => {
this.meetingList = res; this.meetingList = res;
console.log(res);
}); });
}, },
searchChatList(){ searchChatList() {
if(this.dateRange.length==2){ if (this.form.dateRange.length == 2) {
this.queryChatRoomListFn({startTime:this.dateRange[0],endTime:this.dateRange[1],userId:this.userInfo.account}) this.queryChatRoomListFn({ startTime: this.form.dateRange[0], endTime: this.form.dateRange[1], userId: this.userInfo.account, status: this.form.status == '' ? null : this.form.status, keyword: this.form.keyword == '' ? null : this.form.keyword })
}else{ } else {
this.queryChatRoomListFn({userId:this.userInfo.account}) this.queryChatRoomListFn({ userId: this.userInfo.account, status: this.form.status == '' ? null : this.form.status, keyword: this.form.keyword == '' ? null : this.form.keyword })
} }
} }
}, },
...@@ -59,7 +115,7 @@ export default { ...@@ -59,7 +115,7 @@ export default {
} }
}, },
mounted() { mounted() {
this.queryChatRoomListFn({userId:this.userInfo.account}); this.queryChatRoomListFn({ userId: this.userInfo.account });
} }
} }
</script> </script>
...@@ -87,6 +143,18 @@ export default { ...@@ -87,6 +143,18 @@ export default {
} }
} }
.el-input {
float: left;
width: 200px;
margin-left: 10px;
.el-input__inner {
background: none;
color: #ffff;
border: 1px solid #3a5f94c9 !important;
}
}
.el-input__inner { .el-input__inner {
border: 1px solid #3a5f94c9 !important; border: 1px solid #3a5f94c9 !important;
} }
......
...@@ -344,7 +344,7 @@ export default { ...@@ -344,7 +344,7 @@ export default {
>.el-tabs--border-card { >.el-tabs--border-card {
width: calc(100% - 4px); width: calc(100% - 4px);
height: calc(100% - 4px); height: calc(100% - 4px);
border: 2px solid #125473; border: 2px solid #3a5f94c9;
border-radius: 5px; border-radius: 5px;
box-sizing: border-box; box-sizing: border-box;
background: #ffffff00; background: #ffffff00;
...@@ -355,15 +355,15 @@ export default { ...@@ -355,15 +355,15 @@ export default {
} }
>.el-tabs__header { >.el-tabs__header {
background-color: unset; background-color: unset;
border-bottom: 2px solid #125473; border-bottom: 2px solid #3a5f94c9;
.el-tabs__item { .el-tabs__item {
color: #dedede; color: #dedede;
} }
.el-tabs__item.is-active { .el-tabs__item.is-active {
color: #ffe000; color: #ffe000;
background-color: #116791; background-color: #3a5f94c9;
border-right-color: #116791; border-right-color: #3a5f94c9;
border-left-color: #116791; border-left-color: #3a5f94c9;
} }
.el-tabs__item:not(.is-disabled):hover { .el-tabs__item:not(.is-disabled):hover {
color: #ffe000; color: #ffe000;
...@@ -495,7 +495,7 @@ export default { ...@@ -495,7 +495,7 @@ export default {
float: left; float: left;
margin-left: 20px; margin-left: 20px;
overflow-y: auto; overflow-y: auto;
border: 1px solid #125473; border: 1px solid #3a5f94c9;
border-radius: 5px; border-radius: 5px;
box-sizing: border-box; box-sizing: border-box;
} }
......
...@@ -65,7 +65,7 @@ export default { ...@@ -65,7 +65,7 @@ export default {
> .el-tabs--border-card { > .el-tabs--border-card {
width: calc(100% - 4px); width: calc(100% - 4px);
height: calc(100% - 4px); height: calc(100% - 4px);
border: 2px solid #125473; border: 2px solid #3a5f94c9;
border-radius: 5px; border-radius: 5px;
box-sizing: border-box; box-sizing: border-box;
background: #ffffff00; background: #ffffff00;
...@@ -76,15 +76,15 @@ export default { ...@@ -76,15 +76,15 @@ export default {
} }
> .el-tabs__header { > .el-tabs__header {
background-color: unset; background-color: unset;
border-bottom: 2px solid #125473; border-bottom: 2px solid #3a5f94c9;
.el-tabs__item { .el-tabs__item {
color: #dedede; color: #dedede;
} }
.el-tabs__item.is-active { .el-tabs__item.is-active {
color: #ffe000; color: #ffe000;
background-color: #116791; background-color: #3a5f94c9;
border-right-color: #116791; border-right-color: #3a5f94c9;
border-left-color: #116791; border-left-color: #3a5f94c9;
} }
.el-tabs__item:not(.is-disabled):hover { .el-tabs__item:not(.is-disabled):hover {
color: #ffe000; color: #ffe000;
......
...@@ -62,7 +62,7 @@ export default { ...@@ -62,7 +62,7 @@ export default {
>.el-tabs--border-card { >.el-tabs--border-card {
width: calc(100% - 4px); width: calc(100% - 4px);
height: calc(100% - 4px); height: calc(100% - 4px);
border: 2px solid #125473; border: 2px solid #3a5f94c9;
border-radius: 5px; border-radius: 5px;
box-sizing: border-box; box-sizing: border-box;
background: #ffffff00; background: #ffffff00;
...@@ -73,15 +73,15 @@ export default { ...@@ -73,15 +73,15 @@ export default {
} }
> .el-tabs__header { > .el-tabs__header {
background-color: unset; background-color: unset;
border-bottom: 2px solid #125473; border-bottom: 2px solid #3a5f94c9;
.el-tabs__item { .el-tabs__item {
color: #dedede; color: #dedede;
} }
.el-tabs__item.is-active { .el-tabs__item.is-active {
color: #ffe000; color: #ffe000;
background-color: #116791; background-color: #3a5f94c9;
border-right-color: #116791; border-right-color: #3a5f94c9;
border-left-color: #116791; border-left-color: #3a5f94c9;
} }
.el-tabs__item:not(.is-disabled):hover { .el-tabs__item:not(.is-disabled):hover {
color: #ffe000; color: #ffe000;
...@@ -216,7 +216,7 @@ export default { ...@@ -216,7 +216,7 @@ export default {
float: left; float: left;
margin-left: 20px; margin-left: 20px;
overflow-y: auto; overflow-y: auto;
border: 1px solid #125473; border: 1px solid #3a5f94c9;
border-radius: 5px; border-radius: 5px;
box-sizing: border-box; box-sizing: border-box;
} }
......
...@@ -2831,14 +2831,14 @@ export default { ...@@ -2831,14 +2831,14 @@ export default {
.el-tabs--border-card { .el-tabs--border-card {
width: calc(100% - 4px); width: calc(100% - 4px);
height: calc(100% - 4px); height: calc(100% - 4px);
border: 2px solid #125473; border: 2px solid #3a5f94c9;
border-radius: 5px; border-radius: 5px;
box-sizing: border-box; box-sizing: border-box;
background: #ffffff00; background: #ffffff00;
.el-tabs__header { .el-tabs__header {
background-color: unset; background-color: unset;
border-bottom: 2px solid #125473; border-bottom: 2px solid #3a5f94c9;
.el-tabs__item { .el-tabs__item {
color: #dedede; color: #dedede;
...@@ -2846,9 +2846,9 @@ export default { ...@@ -2846,9 +2846,9 @@ export default {
.el-tabs__item.is-active { .el-tabs__item.is-active {
color: #ffe000; color: #ffe000;
background-color: #116791; background-color: #3a5f94c9;
border-right-color: #116791; border-right-color: #3a5f94c9;
border-left-color: #116791; border-left-color: #3a5f94c9;
} }
.el-tabs__item:not(.is-disabled):hover { .el-tabs__item:not(.is-disabled):hover {
......
...@@ -1501,14 +1501,14 @@ export default { ...@@ -1501,14 +1501,14 @@ export default {
.el-tabs--border-card { .el-tabs--border-card {
width: calc(100% - 4px); width: calc(100% - 4px);
height: calc(100% - 4px); height: calc(100% - 4px);
border: 2px solid #125473; border: 2px solid #3a5f94c9;
border-radius: 5px; border-radius: 5px;
box-sizing: border-box; box-sizing: border-box;
background: #ffffff00; background: #ffffff00;
.el-tabs__header { .el-tabs__header {
background-color: unset; background-color: unset;
border-bottom: 2px solid #125473; border-bottom: 2px solid #3a5f94c9;
.el-tabs__item { .el-tabs__item {
color: #dedede; color: #dedede;
...@@ -1516,9 +1516,9 @@ export default { ...@@ -1516,9 +1516,9 @@ export default {
.el-tabs__item.is-active { .el-tabs__item.is-active {
color: #ffe000; color: #ffe000;
background-color: #116791; background-color: #3a5f94c9;
border-right-color: #116791; border-right-color: #3a5f94c9;
border-left-color: #116791; border-left-color: #3a5f94c9;
} }
.el-tabs__item:not(.is-disabled):hover { .el-tabs__item:not(.is-disabled):hover {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment