Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
W
web-monitor
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
web-monitor
Commits
099aff70
Commit
099aff70
authored
Jan 15, 2025
by
dupengyu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
兼容若依
parent
c9daeb71
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
490 additions
and
44 deletions
+490
-44
job.js
src/api/job.js
+8
-1
data.js
src/api/system/dict/data.js
+1
-1
index.vue
src/components/RightToolbar/index.vue
+129
-0
drag.js
src/directive/dialog/drag.js
+64
-0
dragHeight.js
src/directive/dialog/dragHeight.js
+34
-0
dragWidth.js
src/directive/dialog/dragWidth.js
+30
-0
index.js
src/directive/index.js
+23
-0
clipboard.js
src/directive/module/clipboard.js
+54
-0
hasPermi.js
src/directive/permission/hasPermi.js
+28
-0
hasRole.js
src/directive/permission/hasRole.js
+28
-0
main.js
src/main.js
+4
-0
index.js
src/router/index.js
+33
-32
websocket.js
src/utils/websocket.js
+3
-1
index.vue
src/views/jobgroup/jobinfo/index.vue
+45
-6
vue.config.js
vue.config.js
+6
-3
No files found.
src/api/job.js
View file @
099aff70
...
...
@@ -73,7 +73,14 @@ export function add(data) {
data
})
}
// 编辑
export
function
update
(
data
)
{
return
request
({
url
:
'/device/jobinfo/update'
,
method
:
'post'
,
data
})
}
/* 调度日志 */
export
function
joblogList
(
data
)
{
...
...
src/api/system/dict/data.js
View file @
099aff70
...
...
@@ -20,7 +20,7 @@ export function getData(dictCode) {
// 根据字典类型查询字典数据信息
export
function
getDicts
(
dictType
)
{
return
request
({
url
:
'/api/dict/
data/type/
'
+
dictType
,
url
:
'/api/dict/'
+
dictType
,
method
:
'get'
})
}
...
...
src/components/RightToolbar/index.vue
0 → 100644
View file @
099aff70
<
template
>
<div
class=
"top-right-btn"
:style=
"style"
>
<el-row>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"showSearch ? '隐藏搜索' : '显示搜索'"
placement=
"top"
v-if=
"search"
>
<el-button
size=
"mini"
circle
icon=
"el-icon-search"
@
click=
"toggleSearch()"
/>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"刷新"
placement=
"top"
>
<el-button
size=
"mini"
circle
icon=
"el-icon-refresh"
@
click=
"refresh()"
/>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"显隐列"
placement=
"top"
v-if=
"columns"
>
<el-button
size=
"mini"
circle
icon=
"el-icon-menu"
@
click=
"showColumn()"
v-if=
"showColumnsType == 'transfer'"
/>
<el-dropdown
trigger=
"click"
:hide-on-click=
"false"
style=
"padding-left: 12px"
v-if=
"showColumnsType == 'checkbox'"
>
<el-button
size=
"mini"
circle
icon=
"el-icon-menu"
/>
<el-dropdown-menu
slot=
"dropdown"
>
<template
v-for=
"item in columns"
>
<el-dropdown-item
:key=
"item.key"
>
<el-checkbox
:checked=
"item.visible"
@
change=
"checkboxChange($event, item.label)"
:label=
"item.label"
/>
</el-dropdown-item>
</
template
>
</el-dropdown-menu>
</el-dropdown>
</el-tooltip>
</el-row>
<el-dialog
:title=
"title"
:visible
.
sync=
"open"
append-to-body
>
<el-transfer
:titles=
"['显示', '隐藏']"
v-model=
"value"
:data=
"columns"
@
change=
"dataChange"
></el-transfer>
</el-dialog>
</div>
</template>
<
script
>
export
default
{
name
:
"RightToolbar"
,
data
()
{
return
{
// 显隐数据
value
:
[],
// 弹出层标题
title
:
"显示/隐藏"
,
// 是否显示弹出层
open
:
false
,
};
},
props
:
{
/* 是否显示检索条件 */
showSearch
:
{
type
:
Boolean
,
default
:
true
,
},
/* 显隐列信息 */
columns
:
{
type
:
Array
,
},
/* 是否显示检索图标 */
search
:
{
type
:
Boolean
,
default
:
true
,
},
/* 显隐列类型(transfer穿梭框、checkbox复选框) */
showColumnsType
:
{
type
:
String
,
default
:
"checkbox"
,
},
/* 右外边距 */
gutter
:
{
type
:
Number
,
default
:
10
,
},
},
computed
:
{
style
()
{
const
ret
=
{};
if
(
this
.
gutter
)
{
ret
.
marginRight
=
`
${
this
.
gutter
/
2
}
px`
;
}
return
ret
;
}
},
created
()
{
if
(
this
.
showColumnsType
==
'transfer'
)
{
// 显隐列初始默认隐藏列
for
(
let
item
in
this
.
columns
)
{
if
(
this
.
columns
[
item
].
visible
===
false
)
{
this
.
value
.
push
(
parseInt
(
item
));
}
}
}
},
methods
:
{
// 搜索
toggleSearch
()
{
this
.
$emit
(
"update:showSearch"
,
!
this
.
showSearch
);
},
// 刷新
refresh
()
{
this
.
$emit
(
"queryTable"
);
},
// 右侧列表元素变化
dataChange
(
data
)
{
for
(
let
item
in
this
.
columns
)
{
const
key
=
this
.
columns
[
item
].
key
;
this
.
columns
[
item
].
visible
=
!
data
.
includes
(
key
);
}
},
// 打开显隐列dialog
showColumn
()
{
this
.
open
=
true
;
},
// 勾选
checkboxChange
(
event
,
label
)
{
this
.
columns
.
filter
(
item
=>
item
.
label
==
label
)[
0
].
visible
=
event
;
}
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
::v-deep
.el-transfer__button
{
border-radius
:
50%
;
padding
:
12px
;
display
:
block
;
margin-left
:
0px
;
}
::v-deep
.el-transfer__button
:first-child
{
margin-bottom
:
10px
;
}
</
style
>
src/directive/dialog/drag.js
0 → 100644
View file @
099aff70
/**
* v-dialogDrag 弹窗拖拽
* Copyright (c) 2019 ruoyi
*/
export
default
{
bind
(
el
,
binding
,
vnode
,
oldVnode
)
{
const
value
=
binding
.
value
if
(
value
==
false
)
return
// 获取拖拽内容头部
const
dialogHeaderEl
=
el
.
querySelector
(
'.el-dialog__header'
);
const
dragDom
=
el
.
querySelector
(
'.el-dialog'
);
dialogHeaderEl
.
style
.
cursor
=
'move'
;
// 获取原有属性 ie dom元素.currentStyle 火狐谷歌 window.getComputedStyle(dom元素, null);
const
sty
=
dragDom
.
currentStyle
||
window
.
getComputedStyle
(
dragDom
,
null
);
dragDom
.
style
.
position
=
'absolute'
;
dragDom
.
style
.
marginTop
=
0
;
let
width
=
dragDom
.
style
.
width
;
if
(
width
.
includes
(
'%'
))
{
width
=
+
document
.
body
.
clientWidth
*
(
+
width
.
replace
(
/
\%
/g
,
''
)
/
100
);
}
else
{
width
=
+
width
.
replace
(
/
\p
x/g
,
''
);
}
dragDom
.
style
.
left
=
`
${(
document
.
body
.
clientWidth
-
width
)
/
2
}
px`
;
// 鼠标按下事件
dialogHeaderEl
.
onmousedown
=
(
e
)
=>
{
// 鼠标按下,计算当前元素距离可视区的距离 (鼠标点击位置距离可视窗口的距离)
const
disX
=
e
.
clientX
-
dialogHeaderEl
.
offsetLeft
;
const
disY
=
e
.
clientY
-
dialogHeaderEl
.
offsetTop
;
// 获取到的值带px 正则匹配替换
let
styL
,
styT
;
// 注意在ie中 第一次获取到的值为组件自带50% 移动之后赋值为px
if
(
sty
.
left
.
includes
(
'%'
))
{
styL
=
+
document
.
body
.
clientWidth
*
(
+
sty
.
left
.
replace
(
/
\%
/g
,
''
)
/
100
);
styT
=
+
document
.
body
.
clientHeight
*
(
+
sty
.
top
.
replace
(
/
\%
/g
,
''
)
/
100
);
}
else
{
styL
=
+
sty
.
left
.
replace
(
/
\p
x/g
,
''
);
styT
=
+
sty
.
top
.
replace
(
/
\p
x/g
,
''
);
};
// 鼠标拖拽事件
document
.
onmousemove
=
function
(
e
)
{
// 通过事件委托,计算移动的距离 (开始拖拽至结束拖拽的距离)
const
l
=
e
.
clientX
-
disX
;
const
t
=
e
.
clientY
-
disY
;
let
finallyL
=
l
+
styL
let
finallyT
=
t
+
styT
// 移动当前元素
dragDom
.
style
.
left
=
`
${
finallyL
}
px`
;
dragDom
.
style
.
top
=
`
${
finallyT
}
px`
;
};
document
.
onmouseup
=
function
(
e
)
{
document
.
onmousemove
=
null
;
document
.
onmouseup
=
null
;
};
}
}
};
\ No newline at end of file
src/directive/dialog/dragHeight.js
0 → 100644
View file @
099aff70
/**
* v-dialogDragWidth 可拖动弹窗高度(右下角)
* Copyright (c) 2019 ruoyi
*/
export
default
{
bind
(
el
)
{
const
dragDom
=
el
.
querySelector
(
'.el-dialog'
);
const
lineEl
=
document
.
createElement
(
'div'
);
lineEl
.
style
=
'width: 6px; background: inherit; height: 10px; position: absolute; right: 0; bottom: 0; margin: auto; z-index: 1; cursor: nwse-resize;'
;
lineEl
.
addEventListener
(
'mousedown'
,
function
(
e
)
{
// 鼠标按下,计算当前元素距离可视区的距离
const
disX
=
e
.
clientX
-
el
.
offsetLeft
;
const
disY
=
e
.
clientY
-
el
.
offsetTop
;
// 当前宽度 高度
const
curWidth
=
dragDom
.
offsetWidth
;
const
curHeight
=
dragDom
.
offsetHeight
;
document
.
onmousemove
=
function
(
e
)
{
e
.
preventDefault
();
// 移动时禁用默认事件
// 通过事件委托,计算移动的距离
const
xl
=
e
.
clientX
-
disX
;
const
yl
=
e
.
clientY
-
disY
dragDom
.
style
.
width
=
`
${
curWidth
+
xl
}
px`
;
dragDom
.
style
.
height
=
`
${
curHeight
+
yl
}
px`
;
};
document
.
onmouseup
=
function
(
e
)
{
document
.
onmousemove
=
null
;
document
.
onmouseup
=
null
;
};
},
false
);
dragDom
.
appendChild
(
lineEl
);
}
}
src/directive/dialog/dragWidth.js
0 → 100644
View file @
099aff70
/**
* v-dialogDragWidth 可拖动弹窗宽度(右侧边)
* Copyright (c) 2019 ruoyi
*/
export
default
{
bind
(
el
)
{
const
dragDom
=
el
.
querySelector
(
'.el-dialog'
);
const
lineEl
=
document
.
createElement
(
'div'
);
lineEl
.
style
=
'width: 5px; background: inherit; height: 80%; position: absolute; right: 0; top: 0; bottom: 0; margin: auto; z-index: 1; cursor: w-resize;'
;
lineEl
.
addEventListener
(
'mousedown'
,
function
(
e
)
{
// 鼠标按下,计算当前元素距离可视区的距离
const
disX
=
e
.
clientX
-
el
.
offsetLeft
;
// 当前宽度
const
curWidth
=
dragDom
.
offsetWidth
;
document
.
onmousemove
=
function
(
e
)
{
e
.
preventDefault
();
// 移动时禁用默认事件
// 通过事件委托,计算移动的距离
const
l
=
e
.
clientX
-
disX
;
dragDom
.
style
.
width
=
`
${
curWidth
+
l
}
px`
;
};
document
.
onmouseup
=
function
(
e
)
{
document
.
onmousemove
=
null
;
document
.
onmouseup
=
null
;
};
},
false
);
dragDom
.
appendChild
(
lineEl
);
}
}
src/directive/index.js
0 → 100644
View file @
099aff70
import
hasRole
from
'./permission/hasRole'
import
hasPermi
from
'./permission/hasPermi'
import
dialogDrag
from
'./dialog/drag'
import
dialogDragWidth
from
'./dialog/dragWidth'
import
dialogDragHeight
from
'./dialog/dragHeight'
// import clipboard from './module/clipboard'
const
install
=
function
(
Vue
)
{
Vue
.
directive
(
'hasRole'
,
hasRole
)
Vue
.
directive
(
'hasPermi'
,
hasPermi
)
// Vue.directive('clipboard', clipboard)
Vue
.
directive
(
'dialogDrag'
,
dialogDrag
)
Vue
.
directive
(
'dialogDragWidth'
,
dialogDragWidth
)
Vue
.
directive
(
'dialogDragHeight'
,
dialogDragHeight
)
}
if
(
window
.
Vue
)
{
window
[
'hasRole'
]
=
hasRole
window
[
'hasPermi'
]
=
hasPermi
Vue
.
use
(
install
);
// eslint-disable-line
}
export
default
install
src/directive/module/clipboard.js
0 → 100644
View file @
099aff70
/**
* v-clipboard 文字复制剪贴
* Copyright (c) 2021 ruoyi
*/
import
Clipboard
from
'clipboard'
export
default
{
bind
(
el
,
binding
,
vnode
)
{
switch
(
binding
.
arg
)
{
case
'success'
:
el
.
_vClipBoard_success
=
binding
.
value
;
break
;
case
'error'
:
el
.
_vClipBoard_error
=
binding
.
value
;
break
;
default
:
{
const
clipboard
=
new
Clipboard
(
el
,
{
text
:
()
=>
binding
.
value
,
action
:
()
=>
binding
.
arg
===
'cut'
?
'cut'
:
'copy'
});
clipboard
.
on
(
'success'
,
e
=>
{
const
callback
=
el
.
_vClipBoard_success
;
callback
&&
callback
(
e
);
});
clipboard
.
on
(
'error'
,
e
=>
{
const
callback
=
el
.
_vClipBoard_error
;
callback
&&
callback
(
e
);
});
el
.
_vClipBoard
=
clipboard
;
}
}
},
update
(
el
,
binding
)
{
if
(
binding
.
arg
===
'success'
)
{
el
.
_vClipBoard_success
=
binding
.
value
;
}
else
if
(
binding
.
arg
===
'error'
)
{
el
.
_vClipBoard_error
=
binding
.
value
;
}
else
{
el
.
_vClipBoard
.
text
=
function
()
{
return
binding
.
value
;
};
el
.
_vClipBoard
.
action
=
()
=>
binding
.
arg
===
'cut'
?
'cut'
:
'copy'
;
}
},
unbind
(
el
,
binding
)
{
if
(
!
el
.
_vClipboard
)
return
if
(
binding
.
arg
===
'success'
)
{
delete
el
.
_vClipBoard_success
;
}
else
if
(
binding
.
arg
===
'error'
)
{
delete
el
.
_vClipBoard_error
;
}
else
{
el
.
_vClipBoard
.
destroy
();
delete
el
.
_vClipBoard
;
}
}
}
src/directive/permission/hasPermi.js
0 → 100644
View file @
099aff70
/**
* v-hasPermi 操作权限处理
* Copyright (c) 2019 ruoyi
*/
import
store
from
'@/store'
export
default
{
inserted
(
el
,
binding
,
vnode
)
{
const
{
value
}
=
binding
const
all_permission
=
"*:*:*"
;
const
permissions
=
store
.
getters
&&
store
.
getters
.
permissions
if
(
value
&&
value
instanceof
Array
&&
value
.
length
>
0
)
{
const
permissionFlag
=
value
const
hasPermissions
=
permissions
.
some
(
permission
=>
{
return
all_permission
===
permission
||
permissionFlag
.
includes
(
permission
)
})
if
(
!
hasPermissions
)
{
el
.
parentNode
&&
el
.
parentNode
.
removeChild
(
el
)
}
}
else
{
throw
new
Error
(
`请设置操作权限标签值`
)
}
}
}
src/directive/permission/hasRole.js
0 → 100644
View file @
099aff70
/**
* v-hasRole 角色权限处理
* Copyright (c) 2019 ruoyi
*/
import
store
from
'@/store'
export
default
{
inserted
(
el
,
binding
,
vnode
)
{
const
{
value
}
=
binding
const
super_admin
=
"admin"
;
const
roles
=
store
.
getters
&&
store
.
getters
.
roles
if
(
value
&&
value
instanceof
Array
&&
value
.
length
>
0
)
{
const
roleFlag
=
value
const
hasRole
=
roles
.
some
(
role
=>
{
return
super_admin
===
role
||
roleFlag
.
includes
(
role
)
})
if
(
!
hasRole
)
{
el
.
parentNode
&&
el
.
parentNode
.
removeChild
(
el
)
}
}
else
{
throw
new
Error
(
`请设置角色权限标签值"`
)
}
}
}
src/main.js
View file @
099aff70
...
...
@@ -12,8 +12,10 @@ import '@/permission' // permission control
import
performLoader
from
'@/utils/global_main_loader.js'
import
WS
from
'@/utils/websocket'
import
{
getDicts
}
from
"@/api/system/dict/data"
;
import
directive
from
'./directive'
// directive
// 字典标签组件
import
DictTag
from
'@/components/DictTag'
import
RightToolbar
from
'@/components/RightToolbar'
// 字典数据组件
import
DictData
from
'@/components/DictData'
...
...
@@ -22,7 +24,9 @@ Vue.use(ElementUI, { locale })
performLoader
(
Vue
)
// 所有的第三方插件性质的东西都放到这里面了
Vue
.
config
.
productionTip
=
false
Vue
.
prototype
.
getDicts
=
getDicts
Vue
.
component
(
'RightToolbar'
,
RightToolbar
)
Vue
.
component
(
'DictTag'
,
DictTag
)
Vue
.
use
(
directive
)
DictData
.
install
()
function
dispatchWithPromise
(
path
)
{
return
new
Promise
(
resolve
=>
{
...
...
src/router/index.js
View file @
099aff70
...
...
@@ -176,39 +176,40 @@ export const constantRoutes = [
},
]
},
// {
// path: '/history',
// component: Layout,
// redirect: '/history/leakyCableStatus',
// name: 'History',
// meta: { title: '历史数据', icon: 'history' },
// children: [
// // {
// // path: 'leakyCableStatus',
// // name: 'leakyCableStatus',
// // component: () => import('@/views/history/leakyCableStatus/index.vue'),
// // meta: { title: '漏缆监测历史状态' }
// // },
// {
// path: 'leakyCableRepair',
// name: 'leakyCableRepair',
// component: () => import('@/views/history/leakyCableRepair/index.vue'),
// meta: { title: '漏缆监测维修历史' }
// },
// // {
// // path: 'deviceLinkStatus',
// // name: 'deviceLinkStatus',
// // component: () => import('@/views/history/deviceLinkStatus/index.vue'),
// // meta: { title: '设备连接历史状态' }
// // },
// {
// path: 'deviceLinkRepair',
// name: 'deviceLinkRepair',
// component: () => import('@/views/history/deviceLinkRepair/index.vue'),
// meta: { title: '设备连接维修历史' }
// }
// ]
// },
{
path
:
'/history'
,
component
:
Layout
,
redirect
:
'/history/leakyCableStatus'
,
name
:
'History'
,
meta
:
{
title
:
'历史数据'
,
icon
:
'history'
},
children
:
[
// {
// path: 'leakyCableStatus',
// name: 'leakyCableStatus',
// component: () => import('@/views/history/leakyCableStatus/index.vue'),
// meta: { title: '漏缆监测历史状态' }
// },
{
path
:
'leakyCableRepair'
,
name
:
'leakyCableRepair'
,
component
:
()
=>
import
(
'@/views/history/leakyCableRepair/index.vue'
),
meta
:
{
title
:
'漏缆监测维修历史'
}
},
// {
// path: 'deviceLinkStatus',
// name: 'deviceLinkStatus',
// component: () => import('@/views/history/deviceLinkStatus/index.vue'),
// meta: { title: '设备连接历史状态' }
// },
{
path
:
'deviceLinkRepair'
,
name
:
'deviceLinkRepair'
,
component
:
()
=>
import
(
'@/views/history/deviceLinkRepair/index.vue'
),
meta
:
{
title
:
'设备连接维修历史'
}
}
]
},
{
path
:
'/backup'
,
component
:
Layout
,
redirect
:
'/dashboard'
,
...
...
src/utils/websocket.js
View file @
099aff70
...
...
@@ -8,7 +8,9 @@ export default function socket(handlerOptions) {
onopen
,
// socketUrl
}
=
handlerOptions
let
socketUrl
=
'ws://8.142.143.40:8885/websocket/1'
let
socketUrl
=
'ws://101.126.159.207:8087/device/websocket/1'
// let socketUrl = 'ws://127.0.0.1:8087/device/websocket/1'
let
websocket
if
(
"WebSocket"
in
window
)
{
websocket
=
new
WebSocket
(
socketUrl
)
...
...
src/views/jobgroup/jobinfo/index.vue
View file @
099aff70
...
...
@@ -226,7 +226,7 @@
label=
"固定速度"
class=
"both"
>
<!-- scheduleConf 固定速度的值 -->
<!-- scheduleConf 固定速度的值
cronGen_display
-->
<!-- schedule_conf_FIX_RATE 还有个这个 -->
<el-input
placeholder=
"请输入 ( Second )"
...
...
@@ -241,8 +241,34 @@
>
<!-- scheduleConf 固定速度的值 -->
<!-- schedule_conf_FIX_RATE 还有个这个 -->
<el-input
placeholder=
"请输入 CRON"
v-model=
"addFrom.scheduleConf"
>
</el-input>
<el-popover
placement=
"bottom"
width=
"448"
trigger=
"manual"
v-model=
"visible"
>
<el-tabs
v-model=
"activeName"
type=
"card"
@
tab-click=
"handleClick"
>
<el-tab-pane
label=
"秒"
name=
"1"
>
用户管理
</el-tab-pane>
<el-tab-pane
label=
"分钟"
name=
"2"
>
配置管理
</el-tab-pane>
<el-tab-pane
label=
"小时"
name=
"3"
>
角色管理
</el-tab-pane>
<el-tab-pane
label=
"日"
name=
"4"
>
定时任务补偿
</el-tab-pane>
<el-tab-pane
label=
"月"
name=
"5"
>
配置管理
</el-tab-pane>
<el-tab-pane
label=
"周"
name=
"6"
>
角色管理
</el-tab-pane>
<el-tab-pane
label=
"年"
name=
"7"
>
定时任务补偿
</el-tab-pane>
</el-tabs>
<el-input
slot=
"reference"
placeholder=
"请输入 CRON"
v-model=
"addFrom.scheduleConf"
>
<i
slot=
"suffix"
style=
"cursor: pointer"
@
click=
"visible = !visible"
class=
"el-input__icon el-icon-date"
></i>
</el-input>
</el-popover>
</el-form-item>
<div
class=
"mini-title"
>
任务配置
</div>
...
...
@@ -337,9 +363,7 @@
</el-input>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
@
click=
"handleTriggerJobinfo"
>
确定
</el-button
>
<el-button
type=
"primary"
@
click=
"handleAdd"
>
确定
</el-button>
<el-button
@
click=
"handleClose()"
>
取消
</el-button>
</el-form-item>
</el-form>
...
...
@@ -357,11 +381,13 @@ import {
start
,
stop
,
remove
,
add
,
}
from
"@/api/job.js"
;
import
{
successAlert
,
warningAlert
}
from
"@/utils/alert"
;
export
default
{
data
()
{
return
{
visible
:
false
,
scheduleType
:
[
{
value
:
"NONE"
,
...
...
@@ -515,6 +541,19 @@ export default {
this
.
handleJobGroupList
();
},
methods
:
{
async
handleAdd
()
{
console
.
log
(
this
.
addFrom
);
let
data
=
{
...
this
.
addFrom
,
};
const
params
=
new
URLSearchParams
(
data
).
toString
();
let
res
=
await
add
(
params
);
if
(
res
.
code
==
200
)
{
successAlert
(
"操作成功"
);
this
.
addDialogVisible
=
false
;
this
.
handleJobinfoList
();
}
},
handleRemove
()
{
let
data
=
{
id
:
this
.
manageFrom
.
id
,
...
...
vue.config.js
View file @
099aff70
...
...
@@ -7,10 +7,13 @@ function resolve(dir) {
}
const
name
=
defaultSettings
.
title
||
'漏缆故障定位监测系统'
// page title
const
port
=
process
.
env
.
port
||
process
.
env
.
npm_config_port
||
88
86
// dev port
//
const href = 'http://101.126.159.207'
const
port
=
process
.
env
.
port
||
process
.
env
.
npm_config_port
||
88
90
// dev port
const
href
=
'http://101.126.159.207'
// const href = 'http://192.168.0.118'
const
href
=
'http://127.0.0.1'
// const href = 'http://127.0.0.1'
// const href = 'http://192.168.0.122'
const
rewriteDefaultConfig
=
{
changeOrigin
:
true
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment