...
|
...
|
@@ -2,7 +2,12 @@ export default { |
|
|
name: 'alarmsClearEditor',
|
|
|
template: '',
|
|
|
components: {},
|
|
|
props:[],
|
|
|
props: {
|
|
|
isExamine: {
|
|
|
type: Boolean,
|
|
|
default: false
|
|
|
},
|
|
|
},
|
|
|
data () {
|
|
|
return {
|
|
|
}
|
...
|
...
|
@@ -17,19 +22,11 @@ export default { |
|
|
//审批人
|
|
|
let approver=Vue.ref('');
|
|
|
let approverName=Vue.ref('admin');
|
|
|
//操作人
|
|
|
let loginName=Vue.ref('');
|
|
|
let options=Vue.ref([{value:'001',name:'admin'},{value:'002',name:'root'}])
|
|
|
let timer=Vue.ref(null);
|
|
|
// 挂载完
|
|
|
Vue.onMounted(() => {
|
|
|
//定时器每秒调用一次fnDate()
|
|
|
timer.value=setInterval(function(){
|
|
|
getDateTime();
|
|
|
},1000);
|
|
|
getAlarmInfo();
|
|
|
})
|
|
|
Vue.onUnmounted(()=>{
|
|
|
timer.value=null;
|
|
|
})
|
|
|
|
|
|
//富文本带标签内容
|
|
|
let change=(val)=> {
|
|
|
detail.value=val;
|
...
|
...
|
@@ -39,27 +36,50 @@ export default { |
|
|
detailText.value=val;
|
|
|
}
|
|
|
//保存富文本内容
|
|
|
let repositoryInto=Vue.ref('1');//是否入知识库
|
|
|
let repositoryId=Vue.ref('');//知识库id
|
|
|
let citeCover=Vue.ref(true);//是否覆盖
|
|
|
let reason=Vue.ref('');//简要说明
|
|
|
let alarmType=Vue.ref('active');//告警类型
|
|
|
let saveDetail=(val)=>{
|
|
|
console.log("detailText",detailText.value)
|
|
|
let dynamicTagsStr=dynamicTags.value.join(',');
|
|
|
let pcontent=detail.value;
|
|
|
if(repositoryInto.value==0){
|
|
|
pcontent='';
|
|
|
detailText.value=''
|
|
|
}
|
|
|
let params={
|
|
|
detail:detail.value,//富文本详情
|
|
|
state:val,//存储状态 0 草稿,1 审批中
|
|
|
approverName:approverName.value,//审批人
|
|
|
pcontent:pcontent,//富文本详情
|
|
|
status:val,//存储状态 0 草稿,1 审批中
|
|
|
approver:approverName.value,//审批人
|
|
|
dateTime:dateTime.value,//当前时间
|
|
|
keyword:dynamicTagsStr,//关键字
|
|
|
aralmid:alarmInfo.id,//告警id
|
|
|
// manageTime:dateTime.value,//处理时间
|
|
|
// manageName:loginName.value,//处理人
|
|
|
// repositoryId:repositoryId.value,//引用知识库id
|
|
|
repositoryInto:repositoryInto.value,//是否入知识库 1入,0不入
|
|
|
citeCover:citeCover.value?1:0,//引用是否覆盖 0 未覆盖 1已覆盖
|
|
|
reason:reason.value,//消除原因
|
|
|
noticeFlag:noticeFlag.value,//是否通知
|
|
|
alarmType:alarmInfo.alarmType,//告警类型,active活动告警,his历史告警
|
|
|
|
|
|
}
|
|
|
}
|
|
|
//审批人change事件
|
|
|
let changeApprover=(val)=>{
|
|
|
let arr=options.value;
|
|
|
console.log("val",val)
|
|
|
arr.map(item=>{
|
|
|
if(item.value==val){
|
|
|
approverName.value=item.name;
|
|
|
proxy.$http.post(`/api-web/bAlarmManage/clearAlarm`, params, function (res) {
|
|
|
if (res && res.code == 0) {
|
|
|
proxy.$global.showMsg(res.msg, 'success');
|
|
|
cancleBtn();
|
|
|
}else{
|
|
|
proxy.$global.showMsg(res.msg, 'warning');
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
//取消按钮
|
|
|
let cancleBtn=()=>{
|
|
|
window.parent.layer.closeAll();
|
|
|
}
|
|
|
|
|
|
//关键字标签
|
|
|
const inputValue = Vue.ref('')
|
|
|
const dynamicTags = Vue.ref(['Tag 1', 'Tag 2', 'Tag 3'])
|
|
|
const inputVisible = Vue.ref(false)
|
...
|
...
|
@@ -85,7 +105,6 @@ export default { |
|
|
}
|
|
|
//提取关键字
|
|
|
let getKeyword=()=>{
|
|
|
console.log("detailText.value",detailText.value)
|
|
|
if(!detailText.value){
|
|
|
proxy.$global.showMsg('请输入处理方案!', 'warning');
|
|
|
|
...
|
...
|
@@ -123,12 +142,12 @@ export default { |
|
|
dynamicTags.value.push(item.keyword);
|
|
|
})
|
|
|
dialogVisible.value=false;
|
|
|
console.log("dynamicTags",dynamicTags.value)
|
|
|
}else{
|
|
|
proxy.$global.showMsg('请选择关键字!', 'warning');
|
|
|
}
|
|
|
|
|
|
}
|
|
|
//获取所有的关键字列表
|
|
|
let getPage=()=>{
|
|
|
|
|
|
}
|
...
|
...
|
@@ -220,7 +239,9 @@ export default { |
|
|
let userIds = userObj.user.map(function (v) {
|
|
|
return v.username;
|
|
|
});
|
|
|
console.log("userObj",userObj)
|
|
|
console.log("userIds",userObj)
|
|
|
approverName.value=userIds.join(',')
|
|
|
|
|
|
}
|
|
|
|
|
|
//获取当前时间
|
...
|
...
|
@@ -237,25 +258,68 @@ export default { |
|
|
//获取告警信息
|
|
|
let alarmInfo=Vue.ref({});
|
|
|
let getAlarmInfo=()=>{
|
|
|
console.log("proxy.$route.query",proxy.$route.query)
|
|
|
alarmInfo.value=proxy.$route.query
|
|
|
if(props.isExamine){
|
|
|
//审核告警消除
|
|
|
}else {
|
|
|
alarmInfo.value=proxy.$route.query;
|
|
|
}
|
|
|
getUserByToken();
|
|
|
getUser();
|
|
|
}
|
|
|
//级联选择器
|
|
|
const cascaderValue = Vue.ref([])
|
|
|
|
|
|
const propsTrigger = {
|
|
|
expandTrigger: 'hover',
|
|
|
lazy: true,
|
|
|
lazyLoad(node, resolve) {
|
|
|
console.log("node",node,node.value,node.level)
|
|
|
const { level } = node
|
|
|
console.log("level",level,cascaderValue.value)
|
|
|
setTimeout(() => {
|
|
|
// const nodes = Array.from({ length: level + 1 }).map((item) => ({
|
|
|
// value: ++id,
|
|
|
// label: `Option - ${id}`,
|
|
|
// leaf: level >= 2,
|
|
|
// }))
|
|
|
//动态获取关键字相关的方案文本
|
|
|
cascaderOptions.value=[{
|
|
|
value: 'v1',
|
|
|
label: 'Disciplines',
|
|
|
leaf: level >=1,
|
|
|
},{
|
|
|
value: 'v2',
|
|
|
label: 'll',
|
|
|
leaf: level >=1,
|
|
|
}]
|
|
|
// Invoke `resolve` callback to return the child nodes data and indicate the loading is finished.
|
|
|
resolve(cascaderOptions.value)
|
|
|
}, 500)
|
|
|
},
|
|
|
}
|
|
|
|
|
|
// {
|
|
|
// expandTrigger: 'hover',
|
|
|
// }
|
|
|
//引用知识库的处理方案
|
|
|
let repositoryInfo=Vue.ref('');
|
|
|
const handleChange = (value) => {
|
|
|
console.log(value)
|
|
|
cascaderValue.value=value;
|
|
|
if(cascaderValue.value.length>1){
|
|
|
let arr=cascaderOptions.value;
|
|
|
arr.map(item=>{
|
|
|
if(item.value==cascaderValue.value[1]){
|
|
|
repositoryInfo.value=item.label;
|
|
|
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
// repositoryId
|
|
|
}
|
|
|
|
|
|
const cascaderOptions = [
|
|
|
{
|
|
|
value: 'guide',
|
|
|
label: 'Guide',
|
|
|
children: [
|
|
|
/*children: [
|
|
|
{
|
|
|
value: 'disciplines',
|
|
|
label: 'Disciplines',
|
...
|
...
|
@@ -292,242 +356,61 @@ export default { |
|
|
},
|
|
|
],
|
|
|
},
|
|
|
],
|
|
|
],*/
|
|
|
},
|
|
|
{
|
|
|
value: 'component',
|
|
|
label: 'Component',
|
|
|
children: [
|
|
|
{
|
|
|
value: 'basic',
|
|
|
label: 'Basic',
|
|
|
children: [
|
|
|
{
|
|
|
value: 'layout',
|
|
|
label: 'Layout',
|
|
|
},
|
|
|
{
|
|
|
value: 'color',
|
|
|
label: 'Color',
|
|
|
},
|
|
|
{
|
|
|
value: 'typography',
|
|
|
label: 'Typography',
|
|
|
},
|
|
|
{
|
|
|
value: 'icon',
|
|
|
label: 'Icon',
|
|
|
},
|
|
|
{
|
|
|
value: 'button',
|
|
|
label: 'Button',
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
{
|
|
|
value: 'form',
|
|
|
label: 'Form',
|
|
|
children: [
|
|
|
{
|
|
|
value: 'radio',
|
|
|
label: 'Radio',
|
|
|
},
|
|
|
{
|
|
|
value: 'checkbox',
|
|
|
label: 'Checkbox',
|
|
|
},
|
|
|
{
|
|
|
value: 'input',
|
|
|
label: 'Input',
|
|
|
},
|
|
|
{
|
|
|
value: 'input-number',
|
|
|
label: 'InputNumber',
|
|
|
},
|
|
|
{
|
|
|
value: 'select',
|
|
|
label: 'Select',
|
|
|
},
|
|
|
{
|
|
|
value: 'cascader',
|
|
|
label: 'Cascader',
|
|
|
},
|
|
|
{
|
|
|
value: 'switch',
|
|
|
label: 'Switch',
|
|
|
},
|
|
|
{
|
|
|
value: 'slider',
|
|
|
label: 'Slider',
|
|
|
},
|
|
|
{
|
|
|
value: 'time-picker',
|
|
|
label: 'TimePicker',
|
|
|
},
|
|
|
{
|
|
|
value: 'date-picker',
|
|
|
label: 'DatePicker',
|
|
|
},
|
|
|
{
|
|
|
value: 'datetime-picker',
|
|
|
label: 'DateTimePicker',
|
|
|
},
|
|
|
{
|
|
|
value: 'upload',
|
|
|
label: 'Upload',
|
|
|
},
|
|
|
{
|
|
|
value: 'rate',
|
|
|
label: 'Rate',
|
|
|
},
|
|
|
{
|
|
|
value: 'form',
|
|
|
label: 'Form',
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
{
|
|
|
value: 'data',
|
|
|
label: 'Data',
|
|
|
children: [
|
|
|
{
|
|
|
value: 'table',
|
|
|
label: 'Table',
|
|
|
},
|
|
|
{
|
|
|
value: 'tag',
|
|
|
label: 'Tag',
|
|
|
},
|
|
|
{
|
|
|
value: 'progress',
|
|
|
label: 'Progress',
|
|
|
},
|
|
|
{
|
|
|
value: 'tree',
|
|
|
label: 'Tree',
|
|
|
},
|
|
|
{
|
|
|
value: 'pagination',
|
|
|
label: 'Pagination',
|
|
|
},
|
|
|
{
|
|
|
value: 'badge',
|
|
|
label: 'Badge',
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
{
|
|
|
value: 'notice',
|
|
|
label: 'Notice',
|
|
|
children: [
|
|
|
{
|
|
|
value: 'alert',
|
|
|
label: 'Alert',
|
|
|
},
|
|
|
{
|
|
|
value: 'loading',
|
|
|
label: 'Loading',
|
|
|
},
|
|
|
{
|
|
|
value: 'message',
|
|
|
label: 'Message',
|
|
|
},
|
|
|
{
|
|
|
value: 'message-box',
|
|
|
label: 'MessageBox',
|
|
|
},
|
|
|
{
|
|
|
value: 'notification',
|
|
|
label: 'Notification',
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
{
|
|
|
value: 'navigation',
|
|
|
label: 'Navigation',
|
|
|
children: [
|
|
|
{
|
|
|
value: 'menu',
|
|
|
label: 'Menu',
|
|
|
},
|
|
|
{
|
|
|
value: 'tabs',
|
|
|
label: 'Tabs',
|
|
|
},
|
|
|
{
|
|
|
value: 'breadcrumb',
|
|
|
label: 'Breadcrumb',
|
|
|
},
|
|
|
{
|
|
|
value: 'dropdown',
|
|
|
label: 'Dropdown',
|
|
|
},
|
|
|
{
|
|
|
value: 'steps',
|
|
|
label: 'Steps',
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
{
|
|
|
value: 'others',
|
|
|
label: 'Others',
|
|
|
children: [
|
|
|
{
|
|
|
value: 'dialog',
|
|
|
label: 'Dialog',
|
|
|
},
|
|
|
{
|
|
|
value: 'tooltip',
|
|
|
label: 'Tooltip',
|
|
|
},
|
|
|
{
|
|
|
value: 'popover',
|
|
|
label: 'Popover',
|
|
|
},
|
|
|
{
|
|
|
value: 'card',
|
|
|
label: 'Card',
|
|
|
},
|
|
|
{
|
|
|
value: 'carousel',
|
|
|
label: 'Carousel',
|
|
|
},
|
|
|
{
|
|
|
value: 'collapse',
|
|
|
label: 'Collapse',
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
],
|
|
|
|
|
|
},
|
|
|
{
|
|
|
value: 'resource',
|
|
|
label: 'Resource',
|
|
|
children: [
|
|
|
{
|
|
|
value: 'axure',
|
|
|
label: 'Axure Components',
|
|
|
},
|
|
|
{
|
|
|
value: 'sketch',
|
|
|
label: 'Sketch Templates',
|
|
|
},
|
|
|
{
|
|
|
value: 'docs',
|
|
|
label: 'Design Documentation',
|
|
|
},
|
|
|
],
|
|
|
|
|
|
},
|
|
|
]
|
|
|
//是否通知
|
|
|
let noticeFlag=Vue.ref(true)
|
|
|
let noticeFlag=Vue.ref(true);
|
|
|
//获取当前登录人-操作人
|
|
|
let getUserByToken=()=>{
|
|
|
proxy.$http.get(`/api-user/users/getUserByToken`, {}, function (res) {
|
|
|
if (res && res.code == 0) {
|
|
|
let userData=res.object;
|
|
|
loginName.value=userData.username;
|
|
|
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
//获取告警负责人-默认审批人
|
|
|
let getUser=()=>{
|
|
|
proxy.$http.get(`/api-web/bAlarmManage/alarm/userName`, {alarmNo:alarmInfo.alarmNo}, function (res) {
|
|
|
if (res && res.code == 0) {
|
|
|
let data=res.object;
|
|
|
if(data){
|
|
|
approverName.value=data.adminName;x
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
// 挂载完
|
|
|
Vue.onMounted(() => {
|
|
|
//定时器每秒调用一次fnDate()
|
|
|
timer.value=setInterval(function(){
|
|
|
getDateTime();
|
|
|
},1000);
|
|
|
getAlarmInfo();
|
|
|
})
|
|
|
Vue.onUnmounted(()=>{
|
|
|
timer.value=null;
|
|
|
})
|
|
|
return {
|
|
|
change,changetext,saveDetail,approver,approverName,detailText,detail,
|
|
|
options,changeApprover,inputValue,dynamicTags,inputVisible,handleClose,showInput,handleInputConfirm,
|
|
|
change,changetext,saveDetail,approver,approverName,loginName,detailText,detail,repositoryInto,reason,citeCover,alarmType,
|
|
|
options,inputValue,dynamicTags,inputVisible,handleClose,showInput,handleInputConfirm,
|
|
|
getKeyword, timer,dateTime,getDateTime,timeFormat,
|
|
|
title, dialogVisible, height, dataList, columns, closeDetail,okfunc, getPage,selectionChange,dynamicTagsAppend,
|
|
|
showUserDialog,showUserDialogVisible,userFileRight,userList,selectUser,getUserList,titles,
|
|
|
getAlarmInfo,alarmInfo,cascaderValue,propsTrigger,handleChange,cascaderOptions,noticeFlag
|
|
|
getAlarmInfo,alarmInfo,cascaderValue,propsTrigger,handleChange,cascaderOptions,noticeFlag,
|
|
|
getUserByToken,getUser,cancleBtn,repositoryInfo,repositoryId
|
|
|
}
|
|
|
}
|
|
|
|
...
|
...
|
|