|
|
@ -3,70 +3,70 @@ |
|
|
|
<div class="head-container"> |
|
|
|
<div class="head-search"> |
|
|
|
<!-- 搜索 --> |
|
|
|
<el-input v-model="query.blurry" clearable size="small" placeholder="输入关键字搜索" prefix-icon="el-icon-search" style="width: 200px;" class="filter-item" @keyup.enter.native="crud.toQuery" /> |
|
|
|
<date-range-picker v-model="query.createTime" class="date-item" /> |
|
|
|
<el-input v-model="query.search" clearable size="small" placeholder="输入关键字搜索" prefix-icon="el-icon-search" style="width: 200px;" class="filter-item" @keyup.enter.native="crud.toQuery" /> |
|
|
|
<date-range-picker v-model="blurryTime" class="date-item" /> |
|
|
|
<rrOperation /> |
|
|
|
</div> |
|
|
|
<el-button size="mini" @click="handleSend"><i class="iconfont icon-fabu" />发布</el-button> |
|
|
|
<!-- <el-button icon="el-icon-edit" size="mini" :disabled="!(selections.length === 1)" @click="handleEdit">修改</el-button> |
|
|
|
<el-button icon="el-icon-delete" size="mini" :disabled="!selections.length" @click="handleDel">删除</el-button> --> |
|
|
|
<crudOperation> |
|
|
|
<template v-slot:left> |
|
|
|
<el-button size="mini" @click="crud.toAdd"> |
|
|
|
<i class="iconfont icon-fabu" /> |
|
|
|
发布 |
|
|
|
</el-button> |
|
|
|
</template> |
|
|
|
</crudOperation> |
|
|
|
</div> |
|
|
|
<div class="container-wrap"> |
|
|
|
<span class="right-top-line" /> |
|
|
|
<span class="left-bottom-line" /> |
|
|
|
<!--表格渲染--> |
|
|
|
<!-- height="calc(100vh - 294px)" |
|
|
|
@row-click="clickRowHandler" |
|
|
|
@selection-change="selectionChangeHandler" --> |
|
|
|
<el-table |
|
|
|
ref="table" |
|
|
|
v-loading="isLoading" |
|
|
|
:default-sort="{prop: 'create_time', order: 'descending'}" |
|
|
|
:data="tableData" |
|
|
|
v-loading="crud.loading" |
|
|
|
:data="crud.data" |
|
|
|
style="width: 100%;" |
|
|
|
@row-dblclick="handleDbClick" |
|
|
|
> |
|
|
|
<!-- <el-table-column type="selection" width="55" align="center" /> --> |
|
|
|
<el-table-column type="index" label="序号" width="55" align="center" /> |
|
|
|
<el-table-column prop="noticeType" label="消息类型" align="center" min-width="150"> |
|
|
|
<!-- <span v-if="scope.row.noticeType===1">系统消息</span> --> |
|
|
|
<span>系统消息</span> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="title" :show-overflow-tooltip="true" label="标题" min-width="150" align="center" /> |
|
|
|
<el-table-column prop="noticeContent" :show-overflow-tooltip="true" label="内容" align="center" /> |
|
|
|
<el-table-column prop="pushTo" :show-overflow-tooltip="true" label="发送对象" align="center"> |
|
|
|
<el-table-column prop="noticeType" label="消息类型" align="center" min-width="100"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<span v-if="typeof(scope.row.pushTo)==='string'">{{ scope.row.pushTo }}</span> |
|
|
|
<div v-if="!(typeof(scope.row.pushTo)==='string')" class="tag-hidden"> |
|
|
|
<!-- <el-tag v-for="(item,i) in scope.row.pushTo" :key="i" style="margin-left:3px;color: #fff">{{ item }}</el-tag> --> |
|
|
|
{{ scope.row.pushTo.join(',') }} |
|
|
|
</div> |
|
|
|
<span v-if="scope.row.noticeType===0">系统消息</span> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="noticeTitle" :show-overflow-tooltip="true" label="标题" min-width="150" align="center" /> |
|
|
|
<el-table-column prop="noticeContext" :show-overflow-tooltip="true" label="内容" align="center" min-width="200" /> |
|
|
|
<el-table-column :show-overflow-tooltip="true" label="发送对象" align="center" min-width="200"> |
|
|
|
<template v-if="scope.row.noticeDevices.length !== 0" slot-scope="scope"> |
|
|
|
{{ scope.row.noticeDevices.join(',') }} |
|
|
|
<!-- <div class="tag-hidden"> |
|
|
|
<el-tag v-for="(item,i) in scope.row.noticeDevices" :key="i" style="margin-left:3px; color: #fff">{{ item }}</el-tag> |
|
|
|
</div> --> |
|
|
|
</template> |
|
|
|
<template v-if="scope.row.noticeUsers.length !== 0" slot-scope="scope"> |
|
|
|
<!-- <div class="tag-hidden"> |
|
|
|
<el-tag v-for="(item,i) in scope.row.noticeUsers" :key="i" style="margin-left:3px; color: #fff">{{ item }}</el-tag> |
|
|
|
</div> --> |
|
|
|
{{ scope.row.noticeUsers.join(',') }} |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
<el-table-column prop="update_by" label="创建人" align="center" min-width="100" /> |
|
|
|
<el-table-column prop="create_time" :sortable="true" label="创建时间" align="center" min-width="180"> |
|
|
|
<el-table-column prop="create_by" label="创建人" align="center" min-width="100" /> |
|
|
|
<el-table-column prop="create_time" label="创建时间" align="center" min-width="180"> |
|
|
|
<template slot-scope="scope"> |
|
|
|
<div>{{ scope.row.create_time | parseTime }}</div> |
|
|
|
</template> |
|
|
|
</el-table-column> |
|
|
|
</el-table> |
|
|
|
<el-pagination |
|
|
|
:page-size.sync="page.size" |
|
|
|
:total="page.total" |
|
|
|
:current-page.sync="page.page" |
|
|
|
style="margin-top: 8px;" |
|
|
|
layout="total, prev, pager, next, sizes" |
|
|
|
@size-change="sizeChangeHandler($event)" |
|
|
|
@current-change="pageChangeHandler" |
|
|
|
/> |
|
|
|
<!--分页组件--> |
|
|
|
<pagination /> |
|
|
|
</div> |
|
|
|
<!-- 发布 --> |
|
|
|
<el-dialog append-to-body :close-on-click-modal="false" :visible.sync="sendVisible" title="发布通知" @close="handleClose"> |
|
|
|
<el-dialog append-to-body :close-on-click-modal="false" :modal-append-to-body="false" :before-close="crud.cancelCU" :visible="crud.status.cu > 0" title="发布通知"> |
|
|
|
<span class="dialog-right-top" /> |
|
|
|
<span class="dialog-left-bottom" /> |
|
|
|
<div class="setting-dialog"> |
|
|
|
<el-form ref="formDom" :rules="rules" :model="sendForm" size="small" label-width="100px"> |
|
|
|
<el-form-item label="消息类型" prop="msgType" class="down-select"> |
|
|
|
<el-input v-model="sendForm.msgType" disabled /> |
|
|
|
<el-form ref="form" :rules="rules" :model="form" size="small" label-width="100px"> |
|
|
|
<el-form-item label="消息类型" prop="noticeType" class="down-select"> |
|
|
|
<el-input v-model="form.noticeTypeName" disabled /> |
|
|
|
<!-- <el-select v-model="noticeType" placeholder="请选择"> |
|
|
|
<el-option |
|
|
|
v-for="item in msgTypeOptions" |
|
|
@ -77,375 +77,124 @@ |
|
|
|
/> |
|
|
|
</el-select> --> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="标题" prop="title"> |
|
|
|
<el-input v-model="sendForm.title" placeholder="请输入" style="width: 580px;" /> |
|
|
|
<el-form-item label="标题" prop="noticeTitle"> |
|
|
|
<el-input v-model="form.noticeTitle" placeholder="请输入" style="width: 580px;" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="内容" prop="notification"> |
|
|
|
<el-input v-model="sendForm.notification" placeholder="请输入" type="textarea" rows="3" style="width: 580px;" /> |
|
|
|
<el-form-item label="内容" prop="noticeContext"> |
|
|
|
<el-input v-model="form.noticeContext" placeholder="请输入" type="textarea" rows="3" style="width: 580px;" /> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="发送对象" prop="pushObj"> |
|
|
|
<el-input v-model="sendForm.pushObj" placeholder="点击下方按钮选择对象" type="textarea" rows="6" style="width: 580px;" /> |
|
|
|
<el-form-item label="发送对象" prop="userId"> |
|
|
|
<div class="send-obj"> |
|
|
|
<span v-if="pushObjItem.length === 0">点击下方按钮选择对象</span> |
|
|
|
<el-tag |
|
|
|
v-for="tag in pushObjItem" |
|
|
|
v-else |
|
|
|
:key="tag.userId" |
|
|
|
:disable-transitions="false" |
|
|
|
> |
|
|
|
{{ tag.username }} |
|
|
|
</el-tag> |
|
|
|
</div> |
|
|
|
</el-form-item> |
|
|
|
<span class="select-btn iconfont icon-shezhi" @click="openSelectObj" /> |
|
|
|
<!-- <el-form-item label="发送对象" prop=""> |
|
|
|
<el-radio-group v-model="pushObj" @change="pushObjChange"> |
|
|
|
<el-radio label="用户">用户</el-radio> |
|
|
|
<el-radio label="设备">设备</el-radio> |
|
|
|
</el-radio-group> |
|
|
|
</el-form-item> --> |
|
|
|
<!-- <el-form-item label="发送对象" prop="paramName"> |
|
|
|
<el-select ref="selectBox" v-model="selectOptions" class="select" multiple :collapse-tags="showTags" clearable placeholder="请选择" style="width:588px" @change="changeSelect"> |
|
|
|
<el-option v-for="item in sendObjOptions" :key="item.value" :label="item.label" :value="item.value" /> |
|
|
|
</el-select> |
|
|
|
</el-form-item> --> |
|
|
|
</el-form> |
|
|
|
<div slot="footer" class="dialog-footer"> |
|
|
|
<el-button type="text" @click="sendVisible = false">取消</el-button> |
|
|
|
<el-button v-loading="btnloading" type="primary" @click="handleSave">保存</el-button> |
|
|
|
<el-button type="text" @click="crud.cancelCU">取消</el-button> |
|
|
|
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">保存</el-button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</el-dialog> |
|
|
|
<SelectObj ref="selectObj" /> |
|
|
|
<SelectObj ref="selectObj" @selectObjItem="handleSelectObjItem" /> |
|
|
|
<Detail ref="archiveDetailDom" /> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
|
|
|
|
<script> |
|
|
|
import crudNotify from '@/api/system/notify' |
|
|
|
import CRUD, { presenter, header, form, crud } from '@crud/crud' |
|
|
|
import crudOperation from '@crud/CRUD.operation' |
|
|
|
import rrOperation from '@crud/RR.operation' |
|
|
|
import DateRangePicker from '@/components/DateRangePicker' |
|
|
|
import pagination from '@crud/Pagination' |
|
|
|
import SelectObj from './module/selectObj' |
|
|
|
// noticeDel |
|
|
|
import { noticeCreate, getAllDev, getAllUser, getNoticeList } from '@/api/system/logs' |
|
|
|
import Detail from './module/detail' |
|
|
|
|
|
|
|
const defaultForm = {} |
|
|
|
const defaultForm = { id: null, noticeTypeName: '系统消息', noticeType: null, noticeTitle: null, noticeContext: null, userId: [], deviceInfoId: [] } |
|
|
|
export default { |
|
|
|
name: 'NotifyManage', |
|
|
|
components: { rrOperation, DateRangePicker, SelectObj }, |
|
|
|
components: { crudOperation, rrOperation, DateRangePicker, pagination, SelectObj, Detail }, |
|
|
|
cruds() { |
|
|
|
return CRUD({ title: '通知', url: 'api/notice/initNotice', crudMethod: { }}) |
|
|
|
return CRUD({ title: '通知', url: 'api/notice/initNotice', crudMethod: { ...crudNotify }, sort: [], optShow: { |
|
|
|
add: false, |
|
|
|
edit: false, |
|
|
|
del: false, |
|
|
|
download: false, |
|
|
|
group: false |
|
|
|
}}) |
|
|
|
}, |
|
|
|
mixins: [presenter(), header(), form(defaultForm), crud()], |
|
|
|
inject: ['reload'], |
|
|
|
data() { |
|
|
|
return { |
|
|
|
isLoading: false, |
|
|
|
tableData: [], |
|
|
|
selections: [], |
|
|
|
blurryTime: null, |
|
|
|
sendVisible: false, |
|
|
|
sendForm: { |
|
|
|
msgType: '系统消息', |
|
|
|
title: null, |
|
|
|
notification: '' |
|
|
|
}, |
|
|
|
pushObj: '用户', |
|
|
|
checked: '', |
|
|
|
noticeType: 1, |
|
|
|
tableData: [], |
|
|
|
pushObjItem: [], |
|
|
|
msgTypeOptions: [ |
|
|
|
{ value: 1, label: '系统通知' } |
|
|
|
// { value: 2, label: '报警消息', disabled: true }, |
|
|
|
// { value: 3, label: '借还消息', disabled: true }, |
|
|
|
// { value: 4, label: '下载消息', disabled: true } |
|
|
|
], |
|
|
|
userOptions: [], |
|
|
|
devOptions: [], |
|
|
|
selectOptions: [], |
|
|
|
oldSelect: null, |
|
|
|
showTags: true, |
|
|
|
rules: { |
|
|
|
title: [ |
|
|
|
noticeTitle: [ |
|
|
|
{ required: true, message: '标题不可为空', trigger: 'blur' } |
|
|
|
], |
|
|
|
notification: [ |
|
|
|
noticeContext: [ |
|
|
|
{ required: true, message: '内容不可为空', trigger: 'blur' } |
|
|
|
], |
|
|
|
pushObj: [ |
|
|
|
userId: [ |
|
|
|
{ required: true, message: '发送对象不可为空', trigger: 'blur' } |
|
|
|
] |
|
|
|
}, |
|
|
|
allUser: null, |
|
|
|
allDev: null, |
|
|
|
page: { |
|
|
|
total: 0, |
|
|
|
size: 10, |
|
|
|
page: 1 |
|
|
|
}, |
|
|
|
btnloading: false, |
|
|
|
isEdit: null |
|
|
|
} |
|
|
|
}, |
|
|
|
computed: { |
|
|
|
sendObjOptions() { |
|
|
|
if (this.pushObj === '用户') { |
|
|
|
return this.userOptions |
|
|
|
} else { |
|
|
|
return this.devOptions |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
async created() { |
|
|
|
await this.getUser() |
|
|
|
await this.getDev() |
|
|
|
this.getTableData() |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
openSelectObj() { |
|
|
|
this.$refs.selectObj.sendObjVisible = true |
|
|
|
}, |
|
|
|
getParams() { |
|
|
|
const params = { |
|
|
|
page: null, |
|
|
|
size: null, |
|
|
|
sort: 'createTime,desc' |
|
|
|
} |
|
|
|
params.page = this.page.page - 1 |
|
|
|
params.size = this.page.size |
|
|
|
return params |
|
|
|
}, |
|
|
|
getTableData() { |
|
|
|
this.isLoading = true |
|
|
|
getNoticeList(this.getParams()).then(res => { // 获取列表 |
|
|
|
console.log(res, 'res') |
|
|
|
const table = res.content |
|
|
|
this.page.total = res.totalElements |
|
|
|
table.forEach(item => { |
|
|
|
item.pushTo = null |
|
|
|
item.pushVal = null |
|
|
|
if (item.pushType === 2) { // 推送对象为设备 |
|
|
|
item.pushVal = item.noticeDevices.map(i => { return i.deviceInfoId }) |
|
|
|
item.pushTo = item.noticeDevices.map(i => { |
|
|
|
let dev = null |
|
|
|
this.devOptions.forEach(val => { |
|
|
|
if (val.value === i.deviceInfoId) { |
|
|
|
dev = val.label |
|
|
|
} |
|
|
|
}) |
|
|
|
return dev |
|
|
|
}) |
|
|
|
} else if (item.pushType === 1) { // 推送对象为用户 |
|
|
|
item.pushVal = item.noticeUsers.map(i => { return i.userId }) |
|
|
|
item.pushTo = item.noticeUsers.map(i => { |
|
|
|
let user = null |
|
|
|
this.userOptions.forEach(val => { |
|
|
|
if (val.value === i.userId) { |
|
|
|
user = val.label |
|
|
|
} |
|
|
|
}) |
|
|
|
return user |
|
|
|
}) |
|
|
|
} |
|
|
|
// 去重 |
|
|
|
const arrTo = [] |
|
|
|
const arrVal = [] |
|
|
|
item.pushTo.forEach(i => { |
|
|
|
if (arrTo.indexOf(i) === -1 && i !== null) { |
|
|
|
arrTo.push(i) |
|
|
|
} |
|
|
|
}) |
|
|
|
item.pushVal.forEach(i => { |
|
|
|
if (arrVal.indexOf(i) === -1 && i !== null) { |
|
|
|
arrVal.push(i) |
|
|
|
} |
|
|
|
}) |
|
|
|
item.pushVal = arrVal |
|
|
|
if (item.pushType === 1) { // 用户 |
|
|
|
item.pushTo = arrVal.length === this.userOptions.length - 1 ? '全部用户' : arrTo |
|
|
|
} else { |
|
|
|
item.pushTo = arrVal.length === this.devOptions.length - 1 ? '全部设备' : arrTo |
|
|
|
} |
|
|
|
}) |
|
|
|
this.tableData = table |
|
|
|
this.isLoading = false |
|
|
|
}) |
|
|
|
}, |
|
|
|
// 获取用户 |
|
|
|
async getUser() { |
|
|
|
await getAllUser().then(res => { |
|
|
|
const arr0 = [{ value: 0, label: '全部用户' }] |
|
|
|
const arr = res.map(item => { |
|
|
|
const val = item.id |
|
|
|
const lab = item.dept.name + '-' + item.username |
|
|
|
const obj = { |
|
|
|
value: val, |
|
|
|
label: lab |
|
|
|
} |
|
|
|
return obj |
|
|
|
}) |
|
|
|
this.userOptions = arr0.concat(arr) |
|
|
|
}) |
|
|
|
}, |
|
|
|
// 获取设备 |
|
|
|
async getDev() { |
|
|
|
await getAllDev().then(res => { |
|
|
|
const arr0 = [{ value: 0, label: '全部设备' }] |
|
|
|
const arr = res.map(item => { |
|
|
|
const val = item.id |
|
|
|
const lab = item.deviceName |
|
|
|
const obj = { |
|
|
|
value: val, |
|
|
|
label: lab |
|
|
|
} |
|
|
|
return obj |
|
|
|
}) |
|
|
|
this.devOptions = arr0.concat(arr) |
|
|
|
}) |
|
|
|
}, |
|
|
|
// 每页条数改变 |
|
|
|
sizeChangeHandler(e) { |
|
|
|
this.loading = true |
|
|
|
this.page.size = e |
|
|
|
this.page.page = 1 |
|
|
|
this.getTableData() |
|
|
|
this.loading = false |
|
|
|
}, |
|
|
|
// 当前页改变 |
|
|
|
pageChangeHandler(e) { |
|
|
|
this.loading = true |
|
|
|
this.page.page = e |
|
|
|
this.getTableData() |
|
|
|
this.loading = false |
|
|
|
}, |
|
|
|
// clickRowHandler(row) { |
|
|
|
// // this.$refs.table.clearSelection() |
|
|
|
// this.$refs.table.toggleRowSelection(row) // 单选选中 |
|
|
|
// }, |
|
|
|
// selectionChangeHandler(val) { |
|
|
|
// this.selections = val |
|
|
|
// console.log(val) |
|
|
|
// }, |
|
|
|
// 发布 |
|
|
|
handleSend() { |
|
|
|
this.defaultSelAll() |
|
|
|
this.isEdit = false |
|
|
|
this.sendVisible = true |
|
|
|
}, |
|
|
|
// 修改 |
|
|
|
// handleEdit() { |
|
|
|
// this.isEdit = true |
|
|
|
// this.sendForm.notification = this.selections[0].noticeContent |
|
|
|
// const temp = this.selections[0].pushVal |
|
|
|
// if (this.selections[0].pushType === 1) { |
|
|
|
// this.pushObj = '用户' |
|
|
|
// this.selectOptions = temp.length === this.userOptions.length - 1 ? [0, ...temp] : temp |
|
|
|
// } else { |
|
|
|
// this.pushObj = '设备' |
|
|
|
// this.selectOptions = temp.length === this.devOptions.length - 1 ? [0, ...temp] : temp |
|
|
|
// } |
|
|
|
// this.sendVisible = true |
|
|
|
// }, |
|
|
|
// 保存 |
|
|
|
handleSave() { |
|
|
|
this.$refs.formDom.validate((valid) => { |
|
|
|
if (valid) { |
|
|
|
this.noticeSend(this.getPushParams()) |
|
|
|
} else { |
|
|
|
return false |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
getPushParams() { // 发布消息参数 |
|
|
|
const params = {} |
|
|
|
params.noticeType = this.noticeType |
|
|
|
params.noticeContent = this.sendForm.notification |
|
|
|
//* ************** */ |
|
|
|
if (this.pushObj === '用户') { // 选择用户 |
|
|
|
params.pushType = 1 |
|
|
|
params.userId = this.selectOptions.filter(item => item !== 0) |
|
|
|
} else { // 选择设备 |
|
|
|
params.pushType = 2 |
|
|
|
params.deviceInfoId = this.selectOptions.filter(item => item !== 0) |
|
|
|
} |
|
|
|
if (this.isEdit) { |
|
|
|
params.id = this.selections[0].id |
|
|
|
} |
|
|
|
console.log(params, '参数') |
|
|
|
return params |
|
|
|
}, |
|
|
|
// 调用发布接口 |
|
|
|
noticeSend(params) { |
|
|
|
noticeCreate(params).then(res => { |
|
|
|
if (res === 'SUCCESS') { |
|
|
|
this.btnloading = false |
|
|
|
this.sendVisible = false |
|
|
|
// this.getTableData() |
|
|
|
this.reload() |
|
|
|
this.$message({ |
|
|
|
message: '发布成功', |
|
|
|
type: 'success' |
|
|
|
}) |
|
|
|
this.$refs.formDom.resetFields() |
|
|
|
this.$refs.formDom.clearValidate() |
|
|
|
} else { |
|
|
|
this.btnloading = false |
|
|
|
this.$message.error('发布失败') |
|
|
|
} |
|
|
|
}) |
|
|
|
}, |
|
|
|
handleClose() { |
|
|
|
this.$refs.formDom.resetFields() |
|
|
|
this.$refs.formDom.clearValidate() |
|
|
|
this.sendForm.notification = '' |
|
|
|
this.pushObj = '用户' |
|
|
|
this.noticeType = 1 |
|
|
|
}, |
|
|
|
// 删除 |
|
|
|
// handleDel() { |
|
|
|
// this.delVisible = true |
|
|
|
// }, |
|
|
|
// // 删除确认 |
|
|
|
// handleDelConfirm() { |
|
|
|
// const params = this.selections.map(item => { return item.id }) |
|
|
|
// noticeDel(params).then(res => { |
|
|
|
// if (res === 'SUCCESS') { |
|
|
|
// // this.getTableData() |
|
|
|
// this.delVisible = false |
|
|
|
// this.reload() |
|
|
|
// this.$message({ |
|
|
|
// message: '删除成功', |
|
|
|
// type: 'success' |
|
|
|
// }) |
|
|
|
// } else { |
|
|
|
// this.$message.error('删除失败') |
|
|
|
// } |
|
|
|
// }) |
|
|
|
// }, |
|
|
|
// 选择器 推送对象 |
|
|
|
handelChange(val) { |
|
|
|
if (val.length === this.sendObjOptions.length) { |
|
|
|
this.checked = true |
|
|
|
[CRUD.HOOK.beforeRefresh]() { |
|
|
|
if (this.blurryTime) { |
|
|
|
this.crud.query.startTime = this.blurryTime[0] |
|
|
|
this.crud.query.endTime = this.blurryTime[1] |
|
|
|
} else { |
|
|
|
this.checked = false |
|
|
|
this.crud.query.startTime = null |
|
|
|
this.crud.query.endTime = null |
|
|
|
} |
|
|
|
}, |
|
|
|
// 默认全选 |
|
|
|
defaultSelAll() { |
|
|
|
this.selectOptions = this.sendObjOptions.map(item => { return item.value }) |
|
|
|
this.oldSelect = this.selectOptions |
|
|
|
this.showTags = true |
|
|
|
openSelectObj() { |
|
|
|
this.$refs.selectObj.sendObjVisible = true |
|
|
|
this.$refs.selectObj.getFondsDatas() |
|
|
|
}, |
|
|
|
changeSelect(val) { |
|
|
|
if (val[val.length - 1] === 0) { // 选中全选 |
|
|
|
this.defaultSelAll() |
|
|
|
this.$refs.selectBox.$el.querySelector('.el-input__inner').style.height = '34px' |
|
|
|
handleSelectObjItem(objType, selectItemAll) { |
|
|
|
this.pushObjItem = selectItemAll |
|
|
|
if (objType === 0) { |
|
|
|
this.form.userId = selectItemAll.map(item => item.userId) |
|
|
|
this.form.deviceInfoId = [] |
|
|
|
} else { |
|
|
|
const arr1 = this.oldSelect.filter(item => item !== 0) |
|
|
|
const arr2 = val.filter(item => item !== 0) |
|
|
|
if (arr1.length === arr2.length) { // 取消全选 |
|
|
|
this.selectOptions = [] |
|
|
|
} else if (arr1.length < arr2.length && arr2.length === this.sendObjOptions.length - 1) { |
|
|
|
this.defaultSelAll() // 除全选时都选中 此时加入全选 |
|
|
|
this.$refs.selectBox.$el.querySelector('.el-input__inner').style.height = '34px' |
|
|
|
} else { |
|
|
|
this.selectOptions = this.selectOptions.filter(item => item !== 0) // 取消其他选项时 去除全选 |
|
|
|
this.showTags = false |
|
|
|
} |
|
|
|
this.oldSelect = this.selectOptions |
|
|
|
this.form.userId = [] |
|
|
|
} |
|
|
|
}, |
|
|
|
pushObjChange(val) { |
|
|
|
if (val) { |
|
|
|
this.defaultSelAll() |
|
|
|
this.showTags = true |
|
|
|
} |
|
|
|
// 提交前的验证 |
|
|
|
[CRUD.HOOK.afterValidateCU](crud) { |
|
|
|
console.log(crud.form) |
|
|
|
crud.form.noticeType = 0 |
|
|
|
delete crud.form.noticeTypeName |
|
|
|
return true |
|
|
|
}, |
|
|
|
handleDbClick(row) { |
|
|
|
this.$nextTick(() => { |
|
|
|
this.$refs.archiveDetailDom.detailVisible = true |
|
|
|
this.$refs.archiveDetailDom.rowData = row |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -463,5 +212,11 @@ export default { |
|
|
|
text-align: center; |
|
|
|
cursor: pointer; |
|
|
|
} |
|
|
|
|
|
|
|
.send-obj{ |
|
|
|
width: 580px; |
|
|
|
height: 180px; |
|
|
|
padding: 0 10px; |
|
|
|
border-radius: 3px 3px 3px 3px; |
|
|
|
border: 1px solid #E6E8ED; |
|
|
|
} |
|
|
|
</style> |