Browse Source

紧急通知

dev
xudanya 3 years ago
parent
commit
f3d1f2d610
  1. 9
      src/api/publish/urgentMessage.js
  2. 10
      src/views/device/index.vue
  3. 168
      src/views/publishContent/urgentMessage/index.vue

9
src/api/publish/urgentMessage.js

@ -9,3 +9,12 @@ export function reqUrgentMessage(parameter) {
params: parameter params: parameter
}) })
} }
// 根据id查询紧急通知
export function reqQueryMessage(parameter) {
return request({
url: 'api/release/getNoticeById',
method: 'get',
params: parameter
})
}

10
src/views/device/index.vue

@ -221,7 +221,7 @@ export default {
device_name:'', device_name:'',
is_state:'', is_state:'',
page:1, page:1,
size:1
size:3
}, },
total: 0, total: 0,
// device_id:'', // device_id:'',
@ -263,10 +263,11 @@ export default {
}, },
methods: { methods: {
// //
getDevice(pager=1){
this.queryInfo.page=pager
getDevice(){
// this.queryInfo.page=pager
const params = this.queryInfo const params = this.queryInfo
ReqDeviceList(params).then(res => { ReqDeviceList(params).then(res => {
console.log(res)
if(res.code==200) { if(res.code==200) {
this.deviceList=res.data.content this.deviceList=res.data.content
this.total=res.data.totalElements this.total=res.data.totalElements
@ -310,7 +311,8 @@ export default {
type: 'success' type: 'success'
}) })
// //
this.getDevice(this.deviceList.length>1?this.queryInfo.page:this.queryInfo.page-1)
this.getDevice()
// this.deviceList.length>1?this.queryInfo.page:this.queryInfo.page-1
} }
}) })
}).catch(()=>{ }).catch(()=>{

168
src/views/publishContent/urgentMessage/index.vue

@ -46,7 +46,7 @@
</el-table> </el-table>
</el-col> </el-col>
</el-row> </el-row>
<!-- 编辑紧急通知 -->
<div class="publish_layer"> <div class="publish_layer">
<el-dialog <el-dialog
title="紧急发布" title="紧急发布"
@ -60,7 +60,7 @@
label="文本颜色" label="文本颜色"
prop="context_color" prop="context_color"
:rules="[ :rules="[
{ required: true, message: '请选择文本内容', trigger: '' }
{ required: true, message: '请选择文本颜色', trigger: '' }
]" ]"
> >
<colorPicker v-model="form.context_color" class="txt_color" @change="headleChangeColor" /> <colorPicker v-model="form.context_color" class="txt_color" @change="headleChangeColor" />
@ -68,7 +68,7 @@
</el-form-item> </el-form-item>
<el-form-item <el-form-item
label="文本内容" label="文本内容"
prop="content"
prop="context"
:rules="[ :rules="[
{ required: true, message: '请输入文本内容', trigger: 'blur' } { required: true, message: '请输入文本内容', trigger: 'blur' }
]" ]"
@ -77,12 +77,12 @@
</el-form-item> </el-form-item>
<el-form-item <el-form-item
label="文本大小" label="文本大小"
prop="txtSize"
prop="context_size"
:rules="[ :rules="[
{ required: true, message: '请选择文本大小', trigger: 'change' }, { required: true, message: '请选择文本大小', trigger: 'change' },
]" ]"
> >
<el-select v-model="form.txtSize" size="small" class="filter-item">
<el-select v-model="form.context_size" size="small" class="filter-item">
<el-option <el-option
v-for="item in sizeData" v-for="item in sizeData"
:key="item.key" :key="item.key"
@ -93,50 +93,50 @@
</el-form-item> </el-form-item>
<el-form-item <el-form-item
label="文本位置" label="文本位置"
prop="context_position"
prop="context_position_name"
:rules="[ :rules="[
{ required: true, message: '请选择文本位置', trigger: 'change' }, { required: true, message: '请选择文本位置', trigger: 'change' },
]" ]"
> >
<el-select v-model="form.context_position" size="small" class="filter-item">
<el-select v-model="form.context_position_name" size="small" value-key="name" class="filter-item" @change="selectPosition">
<el-option <el-option
v-for="item in positionData" v-for="item in positionData"
:key="item.key" :key="item.key"
:label="item.name" :label="item.name"
:value="item.key"
:value="item"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
label="滚动速度" label="滚动速度"
prop="speed"
prop="context_speed_name"
:rules="[ :rules="[
{ required: true, message: '请选择滚动速度', trigger: 'change' }, { required: true, message: '请选择滚动速度', trigger: 'change' },
]" ]"
> >
<el-select v-model="form.speed" size="small" class="filter-item">
<el-select v-model="form.context_speed_name" size="small" class="filter-item" @change="selectSpeed">
<el-option <el-option
v-for="item in speedData" v-for="item in speedData"
:key="item.key" :key="item.key"
:label="item.name" :label="item.name"
:value="item.key"
:value="item"
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
label="选择设备" label="选择设备"
prop="deviceSelect"
prop="notice_device"
:rules="[ :rules="[
{ required: true, message: '请选择设备', trigger: 'change' }, { required: true, message: '请选择设备', trigger: 'change' },
]" ]"
> >
<el-radio-group v-model="form.deviceSelect">
<el-radio label="all" value="all">所有设备</el-radio>
<el-radio label="other" value="other">部分设备<i v-if="form.deviceSelect === 'other'" class="radio_tip" @click="addDeviceTag()">添加</i></el-radio>
<el-radio-group v-model="form.notice_device" @change="clearCheckbox()">
<el-radio :label="1" value="all" >所有设备</el-radio>
<el-radio :label="2" value= "other" >部分设备<i v-if="form.notice_device === 2" class="radio_tip" @click="addDeviceTag()">添加</i></el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<div v-if="form.deviceSelect === 'all'" class="select_all_tip">所有设备都将被发送</div>
<div v-if="deviceTags.length>0 && form.deviceSelect === 'other'" class="select_other">
<div v-if="form.notice_device === 1" class="select_all_tip">所有设备都将被发送</div>
<div v-if="deviceTags.length>0 && form.notice_device === 2" class="select_other">
<el-row> <el-row>
<el-col :span="10" class="other_tip">以下设备都将被发送<span>总计{{ deviceTags.length }}个设备</span></el-col> <el-col :span="10" class="other_tip">以下设备都将被发送<span>总计{{ deviceTags.length }}个设备</span></el-col>
<el-col :span="4"> <el-col :span="4">
@ -145,21 +145,21 @@
</el-row> </el-row>
<el-tag <el-tag
v-for="tag in deviceTags" v-for="tag in deviceTags"
:key="tag"
:key="tag.device_id"
closable closable
:disable-transitions="true" :disable-transitions="true"
:hit="false" :hit="false"
context_color="#cbe3ff" context_color="#cbe3ff"
@close="handleClose(tag)" @close="handleClose(tag)"
> >
{{ tag }}
{{ tag.device_name}}
</el-tag> </el-tag>
</div> </div>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<!-- :loading="crud.status.cu === 2" <!-- :loading="crud.status.cu === 2"
@click="crud.submitCU"--> @click="crud.submitCU"-->
<el-button type="primary" round>保存</el-button>
<el-button type="primary" round @click="submit">保存</el-button>
<el-button round @click="messageVisible=false">关闭</el-button> <el-button round @click="messageVisible=false">关闭</el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -173,15 +173,15 @@
width="400px" width="400px"
> >
<el-tag <el-tag
v-for="tag in deviceAllTags"
:key="tag"
v-for="tag in deviceList"
:key="tag.device_id"
:disable-transitions="true" :disable-transitions="true"
:hit="false" :hit="false"
color="#cbe3ff" color="#cbe3ff"
class="all_tags" class="all_tags"
@click="tagHandle(tag)" @click="tagHandle(tag)"
> >
{{ tag }}
{{ tag.device_name }}
</el-tag> </el-tag>
</el-dialog> </el-dialog>
</div> </div>
@ -190,7 +190,8 @@
<script> <script>
import { parseTime } from '@/utils/index.js' import { parseTime } from '@/utils/index.js'
import {reqUrgentMessage} from '@/api/publish/urgentMessage'
import { ReqDeviceList} from '@/api/device/deviceList.js'
import {reqUrgentMessage,reqQueryMessage} from '@/api/publish/urgentMessage'
export default { export default {
name: 'UrgentMessage', name: 'UrgentMessage',
filters: { filters: {
@ -203,10 +204,16 @@ export default {
form :{ form :{
context_color: '#ff0000',// context_color: '#ff0000',//
context: '', // context: '', //
txtSize: '', //
context_position: '', //
speed: '', //
deviceSelect: '' //
context_position: null, //
context_position_name:null,
context_speed_name:null,
context_speed: null, //
context_size:null,//
// create_by:'', //
notice_device:null,
notice_devices:[],
notice_id:'' ,//id
orga_id:'133221333123111',
}, },
queryInfo:{ queryInfo:{
notice_name:'', notice_name:'',
@ -216,11 +223,13 @@ export default {
}, },
messageVisible: false, messageVisible: false,
selectDeviceVisible: false, selectDeviceVisible: false,
sizeData: [{ key: '0', name: '16' }, { key: '1', name: '22' }, { key: '2', name: '24' }, { key: '3', name: '30' }],
positionData: [{ key: '0', name: '顶部' }, { key: '1', name: '中间' }, { key: '2', name: '底部' }],
speedData: [{ key: '0', name: '1s' }, { key: '1', name: '2s' }, { key: '2', name: '3s' }],
sizeData: [{ key: '0', name: 16 }, { key: '1', name: 22 }, { key: '2', name: 24 }, { key: '3', name: 30 }],
positionData: [{ key: 1, name: '顶部' }, { key: 2, name: '中间' }, { key: 3, name: '底部' }],
speedData: [{ key: 0, name: '1s' }, { key: 1, name: '2s' }, { key: 2, name: '3s' }],
selectedList: [], selectedList: [],
deviceAllTags: ['GCXR1', 'GCXR2', 'GCXR3', 'GCXR4', 'GCXR5'],
//
deviceList: [],
// newArr:[],
deviceTags: [], deviceTags: [],
// //
urgentMessage:[] urgentMessage:[]
@ -228,6 +237,7 @@ export default {
}, },
mounted(){ mounted(){
this.getUrgentMessage() this.getUrgentMessage()
this.getDevice()
}, },
methods: { methods: {
// //
@ -237,7 +247,19 @@ export default {
if(res.code==200){ if(res.code==200){
this.urgentMessage=res.data.content this.urgentMessage=res.data.content
console.log( this.urgentMessage)
// console.log( this.urgentMessage)
}
})
},
//
getDevice(){
const params = this.queryInfo
ReqDeviceList(params).then(res => {
if(res.code==200) {
this.deviceList=res.data.content
}else{
return this.$message.error('获取设备列表失败!')
} }
}) })
@ -253,7 +275,51 @@ export default {
editFormData(row) { editFormData(row) {
console.log(row) console.log(row)
this.messageVisible = true this.messageVisible = true
this.form.context=row.context
// id
const params ={
notice_id:row.notice_id
}
reqQueryMessage(params).then(res=>{
console.log(res)
if(res.code==200) {
this.form.notice_device=res.data.notice.noticeDevice
this.form.context_color=res.data.notice.contextColor
this.form.context=res.data.notice.context
this.form.context_position=res.data.notice.contextPosition
this.form.context_size=res.data.notice.contextSize
//
if( this.form.context_position==1){
this.form.context_position_name='顶部'
}else if( this.form.context_position==2){
this.form.context_position_name='中部'
}else{
this.form.context_position_name='底部'
}
//
if(this.form.context_speed==0){
this.form.context_speed_name='1s'
}else if(this.form.context_speed==1){
this.form.context_speed_name='2s'
}else{
this.form.context_speed_name='3s'
}
}
})
},
submit(){
console.log("submit--")
console.log(this.form.notice_device)
console.log(this.form.notice_devices)
console.log("----submit")
},
//
clearCheckbox(){
if(this.form.notice_device==1){
this.form.notice_devices=[]
}else{
this.form.AllDevice=this.deviceList
}
}, },
handleSelectionChange(val) { handleSelectionChange(val) {
this.selectedList = val this.selectedList = val
@ -264,23 +330,51 @@ export default {
} }
// console.log(val) // console.log(val)
}, },
//
headleChangeColor() { headleChangeColor() {
// console.log(this.form.context_color)
console.log(this.form.context_color)
}, },
//
selectPosition(selVal){
// console.log(selVal)
this.form.context_position=selVal.key
this.form.context_position_name=selVal.name
},
//
selectSpeed(selVal){
this.form.context_speed=selVal.key
this.form.context_speed_name=selVal.name
},
//
addDeviceTag() { addDeviceTag() {
this.selectDeviceVisible = true this.selectDeviceVisible = true
}, },
//
tagHandle(tag) { tagHandle(tag) {
// console.log(tag)
this.form.notice_devices.push({deviceId:tag.device_id})
const current = this.deviceTags.every((item) => {item == tag} )
//
console.log('current', current)
if (!current) {
// console.log('')
this.deviceTags.push(tag) this.deviceTags.push(tag)
}
// } else {
// console.log('')
// }
}, },
//
handleClose(tag) { handleClose(tag) {
this.deviceTags.splice(this.deviceTags.indexOf(tag), 1) this.deviceTags.splice(this.deviceTags.indexOf(tag), 1)
// console.log(this.deviceTags) // console.log(this.deviceTags)
}, },
//
clearDevice() { clearDevice() {
this.deviceTags = [] this.deviceTags = []
}
},
} }
} }
</script> </script>

Loading…
Cancel
Save