Commit c10922d4 authored by Kerwin_Cui's avatar Kerwin_Cui

编辑

parent f0804268
...@@ -32,6 +32,7 @@ urlpatterns = [ ...@@ -32,6 +32,7 @@ urlpatterns = [
url(r'^alarm_edit/$', alarm_edit), url(r'^alarm_edit/$', alarm_edit),
url(r'^alarm_count/$', alarm_count), url(r'^alarm_count/$', alarm_count),
url(r'^create_alarm/$', create_alarm), url(r'^create_alarm/$', create_alarm),
url(r'^edit_alarm_display/$', edit_alarm_display),
url(r'^edit_alarm/$', edit_alarm), url(r'^edit_alarm/$', edit_alarm),
url(r'^search_alarm/$', search_alarm), url(r'^search_alarm/$', search_alarm),
url(r'^del_alarm/$', del_alarm), url(r'^del_alarm/$', del_alarm),
......
...@@ -2266,8 +2266,91 @@ def create_alarm(request): ...@@ -2266,8 +2266,91 @@ def create_alarm(request):
) )
def edit_alarm_display(request):
try:
req = json.loads(request.body)
alarm_number = req['alarm_number']
alarm = Error_alarm.objects.get(alarm_number=alarm_number)
client = get_client_by_request(request)
bk_token = request.COOKIES.get('bk_token')
client.set_bk_api_ver('v2')
parse = {'bk_token': bk_token, 'bk_app_code': APP_ID, 'bk_app_secret': APP_TOKEN}
result = client.bk_login.get_user(parse)
login_person = result['data']['chname']
if login_person == alarm.user:
show_src = 0
else:
show_src = 1
data = {
'alarm_type':alarm.alarm_level if alarm.alarm_level else '',
'alarm_system':alarm.alarm_system if alarm.alarm_system else '',
'alarm_time': alarm.alarm_happen_time.strftime('%Y-%m-%d %H:%M:%S') if alarm.alarm_happen_time else '',
'recover_time': alarm.alarm_recover_time.strftime('%Y-%m-%d %H:%M:%S') if alarm.alarm_recover_time else '',
'alarm_summary': alarm.alarm_summary if alarm.alarm_summary else '',
'if_interpose': alarm.if_interpose if alarm.if_interpose else '',
'solve_process': alarm.solve_process if alarm.solve_process else '',
'if_workday': alarm.if_workday if alarm.if_workday else '',
'if_auto': alarm.if_auto if alarm.if_auto else '',
'auto_sysname': alarm.auto_sysname if alarm.auto_sysname else '',
'auto_name': alarm.auto_name if alarm.auto_name else '',
'other_autoname': alarm.other_autoname if alarm.other_autoname else '',
'monitor_name': alarm.monitor_name if alarm.monitor_name else '',
'if_icube': alarm.if_icube if alarm.if_icube else '',
'show_src': show_src
}
return render_json(
{
"result": True,
"message": u"查询数据成功",
"code": 0,
"results": data,
}
)
except Exception as e:
return render_json(
{
"result": False,
"code": 1,
"message": u"未知错误:%s" % e,
"data": {}
}
)
def edit_alarm(request): def edit_alarm(request):
pass try:
data = json.loads(request.body)
alarm_type = data['alarm_type']
alarm_system = data['alarm_system']
alarm_time = data['alarm_time']
recover_time = data['recover_time']
alarm_summary = data['alarm_summary']
if_interpose = data['if_interpose']
solve_process = data['solve_process']
if_workday = data['if_workday']
if_auto = data['if_auto']
auto_sysname = data['auto_sysname']
auto_name = data['auto_name']
other_autoname = data['other_autoname']
monitor_name = data['monitor_name']
if_icube = data['if_icube']
alarm_time = alarm_time.replace('T', ' ')
alarm_time = alarm_time[0:-5]
alarm_time = datetime.datetime.strptime(alarm_time, "%Y-%m-%d %H:%M:%S")
alarm_time = (alarm_time + datetime.timedelta(hours=8))
recover_time = recover_time.replace('T', ' ')
recover_time = recover_time[0:-5]
recover_time = datetime.datetime.strptime(recover_time, "%Y-%m-%d %H:%M:%S")
recover_time = (recover_time + datetime.timedelta(hours=8))
except Exception as e:
return render_json(
{
"result": False,
"code": 1,
"message": u"未知错误:%s" % e,
"data": {}
}
)
def del_alarm(request): def del_alarm(request):
...@@ -2306,10 +2389,49 @@ def del_alarm(request): ...@@ -2306,10 +2389,49 @@ def del_alarm(request):
def create_alarm_by_icube(request): def create_alarm_by_icube(request):
try: try:
req = json.loads(request.body)
client = get_client_by_request(request)
bk_token = request.COOKIES.get('bk_token')
client.set_bk_api_ver('v2')
parse = {'bk_token': bk_token, 'bk_app_code': APP_ID, 'bk_app_secret': APP_TOKEN}
result = client.bk_login.get_user(parse)
login_person = result['data']['chname']
for i in req['info']:
time = i['alarm_time']
time = time.replace('-', '')
time = time.replace(' ', '')
time = time.replace(':', '')
alarm_number = 'alarm_' + time
if_exit = Error_alarm.objects.filter(alarm_number__contains=alarm_number)
alarm_number = alarm_number + '_' + str(len(if_exit))
alarm_time = i['alarm_time']
alarm_time = datetime.datetime.strptime(alarm_time, "%Y-%m-%d %H:%M:%S")
system = req['system']
system = Syetem.objects.get(systemcode=system)
alarm_system = [system.systemname]
error_alarm = Error_alarm.objects.create(
alarm_number=alarm_number,
alarm_summary=i['alarm_info'],
alarm_level='',
alarm_system=alarm_system,
alarm_happen_time=alarm_time,
alarm_recover_time=alarm_time,
if_interpose='',
solve_process='',
if_workday='',
if_auto='',
auto_sysname='',
auto_name='',
other_autoname='',
monitor_name='',
if_icube='',
user=login_person
)
error_alarm.save()
return render_json( return render_json(
{"result": True, {"result": True,
"code": 0, "code": 0,
"message": u"预警删除成功!", "message": u"预警新建成功!",
"data": '' "data": ''
}) })
except Exception as e: except Exception as e:
...@@ -2322,6 +2444,7 @@ def create_alarm_by_icube(request): ...@@ -2322,6 +2444,7 @@ def create_alarm_by_icube(request):
} }
) )
def search_alarm(request): def search_alarm(request):
try: try:
req = json.loads(request.body) req = json.loads(request.body)
...@@ -2330,8 +2453,20 @@ def search_alarm(request): ...@@ -2330,8 +2453,20 @@ def search_alarm(request):
alarm_list = alarm_list.filter(alarm_system__contains=req['data']['alarm_system']) alarm_list = alarm_list.filter(alarm_system__contains=req['data']['alarm_system'])
if req['data']['priority']: if req['data']['priority']:
alarm_list = alarm_list.filter(alarm_level=req['data']['priority']) alarm_list = alarm_list.filter(alarm_level=req['data']['priority'])
# if req['dateoutinfo']:
# if req['dateoutinfo'] == '' or req['event_hap_time'] == None:
# pass # pass
# else:
# hptime_choose = req.get("event_hap_time")
# startTime = hptime_choose[0]
# startTime = datetime.datetime.strptime(startTime[0:10], "%Y-%m-%d")
# startTime = (startTime + datetime.timedelta(days=1)).strftime("%Y-%m-%d")
# endTime = hptime_choose[1]
# endTime = datetime.datetime.strptime(endTime[0:10], "%Y-%m-%d")
# endTime = (endTime + datetime.timedelta(days=1)).strftime("%Y-%m-%d")
# eventList = eventList.filter(event_happened_time__gte=startTime).filter(
# event_happened_time__lte=endTime)
if req['data']['alarm_number']: if req['data']['alarm_number']:
alarm_list = alarm_list.filter(alarm_number__contains=req['data']['alarm_number']) alarm_list = alarm_list.filter(alarm_number__contains=req['data']['alarm_number'])
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
<div id="alarmEdit"> <div id="alarmEdit">
<div class="alarmEdit" v-cloak> <div class="alarmEdit" v-cloak>
<div style=" padding: 20px;"> <div style=" padding: 20px;">
<el-form label-width="90px" :model="formLine"> <el-form label-width="90px" :model="formLine" ::disabled="showStatus">
<div class="bk-panel"> <div class="bk-panel">
<div> <div>
<el-form-item label="故障预警级别:" label-width="200px" class="normal" <el-form-item label="故障预警级别:" label-width="200px" class="normal"
...@@ -87,8 +87,8 @@ ...@@ -87,8 +87,8 @@
<el-form-item label="是否需要干预:" class="normal" label-width="200px"> <el-form-item label="是否需要干预:" class="normal" label-width="200px">
<el-radio-group style="margin-left: 5px;" @change="changeAuto" <el-radio-group style="margin-left: 5px;" @change="changeAuto"
v-model="formLine.if_interpose"> v-model="formLine.if_interpose">
<el-radio :label="4"></el-radio> <el-radio :label="1"></el-radio>
<el-radio :label="8"></el-radio> <el-radio :label="2"></el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="处置过程:" label-width="200px" class="normal" <el-form-item label="处置过程:" label-width="200px" class="normal"
...@@ -101,17 +101,17 @@ ...@@ -101,17 +101,17 @@
<el-form-item label="是否为工作日:" class="normal" label-width="200px"> <el-form-item label="是否为工作日:" class="normal" label-width="200px">
<el-radio-group style="margin-left: 5px;" @change="changeAuto" <el-radio-group style="margin-left: 5px;" @change="changeAuto"
v-model="formLine.if_workday"> v-model="formLine.if_workday">
<el-radio :label="4"></el-radio> <el-radio :label="3"></el-radio>
<el-radio :label="8"></el-radio> <el-radio :label="4"></el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="是否自动化处理:" class="normal" label-width="200px"> <el-form-item label="是否自动化处理:" class="normal" label-width="200px">
<el-radio-group style="margin-left: 5px;" @change="changeAuto" <el-radio-group style="margin-left: 5px;" @change="changeAuto"
v-model="formLine.if_auto"> v-model="formLine.if_auto">
<el-radio :label="4">已自动化</el-radio> <el-radio :label="5">已自动化</el-radio>
<el-radio :label="8">已自动化(非一体化平台)</el-radio> <el-radio :label="6">已自动化(非一体化平台)</el-radio>
<el-radio :label="6" style="margin-left: 47px">未自动化</el-radio> <el-radio :label="7" style="margin-left: 47px">未自动化</el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
<el-form-item label="系统所属名称:" label-width="200px" class="normal" <el-form-item label="系统所属名称:" label-width="200px" class="normal"
...@@ -154,8 +154,8 @@ ...@@ -154,8 +154,8 @@
<el-form-item label="告警是否来自一体化平台:" class="normal" label-width="200px"> <el-form-item label="告警是否来自一体化平台:" class="normal" label-width="200px">
<el-radio-group style="margin-left: 5px;" @change="changeAuto" <el-radio-group style="margin-left: 5px;" @change="changeAuto"
v-model="formLine.if_icube" :disabled="true"> v-model="formLine.if_icube" :disabled="true">
<el-radio :label="4"></el-radio> <el-radio :label="8"></el-radio>
<el-radio :label="8"></el-radio> <el-radio :label="9"></el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -338,54 +338,26 @@ ...@@ -338,54 +338,26 @@
mounted() { mounted() {
let vm = this; let vm = this;
let data = JSON.parse(window.localStorage.getItem('alarm_time')) let data = JSON.parse(window.localStorage.getItem('alarm_info'));
console.log(data)
if (!!data) { if (!!data) {
console.log(123)
this.type = "edit" this.type = "edit"
if (data.show_src == 1) { if (data.show_src == 1) {
//同步数据
this.showStatus = true this.showStatus = true
this.editStatus = true
//this.activeClass = "disabledClass"
} else if (data.show_src == 0 && data.data_src == 1) {
this.editStatus = true
this.showStatus = false
//this.activeClass = "disabledClass"
} else { } else {
this.showStatus = false this.showStatus = false
this.editStatus = false
//this.activeClass = "activeClass"
} }
data.urgency_degree = formatToId(data.urgency_degree, keyArray.influenceLevel) //data.urgency_degree = formatToId(data.urgency_degree, keyArray.influenceLevel)
data.priority = formatToId(data.priority, keyArray.priority) //data.priority = formatToId(data.priority, keyArray.priority)
data.event_type = formatToId(data.event_type, keyArray.eventType) //data.event_type = formatToId(data.event_type, keyArray.eventType)
this.formLine = data; this.formLine = data;
if (data.urgency.autochange == 1) {
this.autochange = true
} else if (data.urgency.notbkauto == 1) {
this.notbkauto = true
} else if (data.urgency.cantauto == 1) {
this.cantauto = true
} else if (data.urgency.notautoyet == 1) {
this.notautoyet = true
}
if (data.failure_analysis.alarmchange == 1) {
this.alarmchange = true
} else if (data.failure_analysis.notbkalarm == 1) {
this.notbkalarm = true
} else if (data.failure_analysis.havemonitor == 1) {
this.havemonitor = true
} else if (data.failure_analysis.notmonitor == 1) {
this.notmonitor = true
}
} else { } else {
console.log(456); console.log(456);
this.type = "new"; this.type = "new";
this.editStatus = false; //this.editStatus = false;
this.showStatus = false; //this.showStatus = false;
this.activeClass = "activeClass" //this.activeClass = "activeClass"
} }
this.getuser(); this.getuser();
this.getAutoList(); this.getAutoList();
...@@ -731,8 +703,8 @@ ...@@ -731,8 +703,8 @@
type: 'success', type: 'success',
message: res.message message: res.message
}); });
this.dellabelshow = false //this.dellabelshow = false
this.getLabel() //this.getLabel()
}else{ }else{
this.$message({ this.$message({
type: 'error', type: 'error',
...@@ -740,11 +712,9 @@ ...@@ -740,11 +712,9 @@
}); });
this.dellabelshow = false this.dellabelshow = false
} }
});
})
window.history.go(-1) window.history.go(-1)
} else { } else {
//新建
console.log('新建'); console.log('新建');
axios.post('${SITE_URL}create_alarm/', this.formLine).then(res => { axios.post('${SITE_URL}create_alarm/', this.formLine).then(res => {
if(res.code==0){ if(res.code==0){
......
...@@ -411,23 +411,21 @@ ...@@ -411,23 +411,21 @@
message: '请选择告警!' message: '请选择告警!'
}); });
} else { } else {
axios.post('${SITE_URL}create_alarm_by_icube/', alarmList).then(res => { axios.post('${SITE_URL}create_alarm_by_icube/', {'info':this.selectData,'system':this.formLine.failure_analysis.system_code}).then(res => {
if (res.code==0) { if (res.code==0) {
this.$message({ this.$message({
type: "success", type: "success",
message: '查询成功' message: '新建预警成功'
}); });
this.batchNewVisible = false;
this.getAlarmList();
} else { } else {
this.$message({ this.$message({
type: "error", type: "error",
message: '查询失败' + res.message message: res.message
}); });
this.formLine = data //this.formLine = data
} }
})
vm.$message({
type: 'success',
message: '下载成功'
}); });
} }
...@@ -526,29 +524,23 @@ ...@@ -526,29 +524,23 @@
} }
, ,
setmainuser() setmainuser() {
{
axios.get('${SITE_URL}getuser/').then(res => { axios.get('${SITE_URL}getuser/').then(res => {
res = res.data; res = res.data;
this.user = res this.user = res
}) })
} },
,
//编辑模板 //编辑模板
readRow(row) readRow(row) {
{ let data = {alarm_number: row.alarm_number};
let data = {event_number: row.event_number}; axios.post("${SITE_URL}edit_alarm_display/", data).then(res => {
axios.post("${SITE_URL}event_edit_display/", data).then(res => { window.localStorage.setItem("alarm_info", JSON.stringify(res.results));
window.localStorage.setItem("event_number", JSON.stringify(res.results)); window.location.href = "${SITE_URL}alarm_edit"
window.location.href = "${SITE_URL}event_edit"
}) })
} },
,
handleCurPageChange() handleCurPageChange() {
{
let arr = []; let arr = [];
if (!!this.selectData[this.currentPage]) { if (!!this.selectData[this.currentPage]) {
this.selectData[this.currentPage].map(item => { this.selectData[this.currentPage].map(item => {
...@@ -558,11 +550,9 @@ ...@@ -558,11 +550,9 @@
}) })
} }
this.toggleSelection(arr) this.toggleSelection(arr)
} },
,
toggleSelection(rows) toggleSelection(rows) {
{
this.$nextTick(() => { this.$nextTick(() => {
if (rows) { if (rows) {
rows.forEach(row => { rows.forEach(row => {
...@@ -572,11 +562,9 @@ ...@@ -572,11 +562,9 @@
this.$refs.table.clearSelection(); this.$refs.table.clearSelection();
} }
}) })
} },
,
sureDelete(id) sureDelete(id) {
{
let vm = this; let vm = this;
let data = {alarm_number: id}; let data = {alarm_number: id};
axios.post('${SITE_URL}del_alarm/', data).then(res => { axios.post('${SITE_URL}del_alarm/', data).then(res => {
...@@ -600,12 +588,10 @@ ...@@ -600,12 +588,10 @@
}); });
}) })
} },
,
//清除事件搜索条件 //清除事件搜索条件
emptySearch() emptySearch() {
{
this.formLine.alarm_number = ''; this.formLine.alarm_number = '';
this.formLine.priority = ''; this.formLine.priority = '';
this.formLine.alarm_system = ''; this.formLine.alarm_system = '';
...@@ -615,98 +601,8 @@ ...@@ -615,98 +601,8 @@
this.formLine.event_number = ''; this.formLine.event_number = '';
this.formLine.all_fields = ''; this.formLine.all_fields = '';
this.formLine.event_label = ''; this.formLine.event_label = '';
} },
,
//选择事件导出文件
async checkedColums()
{
let eventList = [];
let vm = this;
for (let i in this.selectData) {
eventList = eventList.concat(this.selectData[i])
}
if (eventList.length == 0) {
vm.$message({
type: 'error',
message: '请选择需要导出的事件'
});
} else {
await
this.check(eventList);
vm.$message({
type: 'success',
message: '下载成功'
});
this.download()
}
}
,
check(eventList)
{
return new Promise((resolve, reject) => {
axios.post("${SITE_URL}event_out/", {eventList: eventList}).then(res => {
if (res.data == 1) {
resolve('ok')
}
});
})
}
,
// 选择日期导出文件
async dateout()
{
if (this.dateoutinfo == null || this.dateoutinfo.length == 0) {
vm.$message({
type: 'error',
message: '请选择时间'
});
} else {
console.log('进入按时间导出1')
await
this.checkk();
console.log(this.dateoutflag)
if (this.dateoutflag == true) {
vm.$message({
type: 'success',
message: '下载成功'
});
this.download()
} else {
vm.$message({
type: 'error',
message: '该时间段内没有事件发生'
});
}
}
}
,
checkk()
{
return new Promise((resolve, reject) => {
axios.post("${SITE_URL}event_out/", this.dateoutinfo).then(res => {
if (res.data == 1) {
resolve('ok')
console.log('时间段内有事件2');
this.dateoutflag = true
} else {
resolve('ok')
console.log('时间段内无事件2');
this.dateoutflag = false
}
})
})
}
,
download()
{
window.location.href = "${SITE_URL}download";
}
,
handleCurrentChange(val) handleCurrentChange(val)
{ {
...@@ -717,8 +613,7 @@ ...@@ -717,8 +613,7 @@
this.handleCurPageChange() this.handleCurPageChange()
}) })
} }
} },
,
}, },
......
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