Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
L
laravelzh
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
冯超鹏
laravelzh
Commits
7a057cac
Commit
7a057cac
authored
Dec 20, 2020
by
Administrator
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'release/sweep_check'
# Conflicts: # resources/js/router/index.js
parents
75f7fd11
83ed582f
Pipeline
#233
failed with stages
Changes
8
Pipelines
1
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
1873 additions
and
2 deletions
+1873
-2
DevicesController.php
app/Http/Controllers/DevicesController.php
+4
-0
index.js
resources/js/router/index.js
+2
-0
sweep-check.js
resources/js/router/modules/sweep-check.js
+33
-0
index.vue
resources/js/views/map/index.vue
+65
-2
index.vue
resources/js/views/sweep-check/index.vue
+568
-0
ledger.vue
resources/js/views/sweep-check/ledger.vue
+332
-0
record.vue
resources/js/views/sweep-check/record.vue
+568
-0
security.vue
resources/js/views/sweep-check/security.vue
+301
-0
No files found.
app/Http/Controllers/DevicesController.php
View file @
7a057cac
...
@@ -502,6 +502,10 @@ class DevicesController extends Controller
...
@@ -502,6 +502,10 @@ class DevicesController extends Controller
$user_id
=
$request
->
get
(
'uid'
);
$user_id
=
$request
->
get
(
'uid'
);
$where
[
'device.uid'
]
=
$user_id
;
$where
[
'device.uid'
]
=
$user_id
;
}
}
if
(
$request
->
has
(
'devicestatus'
))
{
$devicestatus
=
$request
->
get
(
'devicestatus'
);
$where
[
'device.devicestatus'
]
=
$devicestatus
;
}
$data
=
DB
::
table
(
'device'
)
$data
=
DB
::
table
(
'device'
)
->
join
(
'status as s'
,
'device.devicepolice'
,
'='
,
's.id'
)
->
join
(
'status as s'
,
'device.devicepolice'
,
'='
,
's.id'
)
->
select
(
'device.id'
,
'device.uid'
,
'device.nd'
,
'device.deviceinfo'
,
'device.devicenum'
,
'device.devicecoord'
,
'device.devicepolice'
,
'device.deviceremark'
,
'device.devicelinkman'
,
's.status_name'
)
->
select
(
'device.id'
,
'device.uid'
,
'device.nd'
,
'device.deviceinfo'
,
'device.devicenum'
,
'device.devicecoord'
,
'device.devicepolice'
,
'device.deviceremark'
,
'device.devicelinkman'
,
's.status_name'
)
...
...
resources/js/router/index.js
View file @
7a057cac
...
@@ -27,6 +27,7 @@ import monitorRoutes from './modules/monitor.js';
...
@@ -27,6 +27,7 @@ import monitorRoutes from './modules/monitor.js';
import
userdeviceRoutes
from
'./modules/userdevice'
;
import
userdeviceRoutes
from
'./modules/userdevice'
;
import
alarmOrderRoutes
from
'./modules/alarm-order'
;
import
alarmOrderRoutes
from
'./modules/alarm-order'
;
import
meetemergency
from
'./modules/meetemergency'
;
import
meetemergency
from
'./modules/meetemergency'
;
import
sweepCheckRoutes
from
'./modules/sweep-check'
;
/**
/**
* Sub-menu only appear when children.length>=1
* Sub-menu only appear when children.length>=1
...
@@ -159,6 +160,7 @@ export const asyncRoutes = [
...
@@ -159,6 +160,7 @@ export const asyncRoutes = [
userdeviceRoutes
,
userdeviceRoutes
,
alarmOrderRoutes
,
alarmOrderRoutes
,
meetemergency
,
meetemergency
,
sweepCheckRoutes
,
// {
// {
// path: '/userdevice',
// path: '/userdevice',
// component: Layout,
// component: Layout,
...
...
resources/js/router/modules/sweep-check.js
0 → 100644
View file @
7a057cac
import
Layout
from
'@/layout'
;
const
sweepCheckRoutes
=
{
path
:
'/sweep-check'
,
component
:
Layout
,
redirect
:
'/sweep-check/index'
,
name
:
'sweep-check'
,
alwaysShow
:
true
,
meta
:
{
title
:
'隐患排查治理'
,
icon
:
'star'
,
permissions
:
[
'view menu admin'
],
},
children
:
[
{
path
:
'security'
,
component
:
()
=>
import
(
'@/views/sweep-check/security'
),
name
:
'SecurityCheck'
,
meta
:
{
title
:
'安检计划'
,
icon
:
'list'
,
permissions
:
[
'manage admin'
]
},
},
{
path
:
'record'
,
component
:
()
=>
import
(
'@/views/sweep-check/record'
),
name
:
'Record'
,
meta
:
{
title
:
'隐患排查记录'
,
icon
:
'list'
,
permissions
:
[
'manage admin'
]
},
},
{
path
:
'ledger'
,
component
:
()
=>
import
(
'@/views/sweep-check/ledger'
),
name
:
'Ledger'
,
meta
:
{
title
:
'隐患台账'
,
icon
:
'list'
,
permissions
:
[
'manage admin'
]
},
},
],
};
export
default
sweepCheckRoutes
;
resources/js/views/map/index.vue
View file @
7a057cac
...
@@ -35,10 +35,28 @@
...
@@ -35,10 +35,28 @@
:events=
"markerClickEvent(marker)"
:events=
"markerClickEvent(marker)"
:check=
"playAudio(marker.devicepolice)"
:check=
"playAudio(marker.devicepolice)"
></el-amap-circle-marker>
></el-amap-circle-marker>
<!-- 应急物资 -->
<el-amap-marker
v-for=
"(marker, index) in markersGoods"
:key=
"marker.id+'wz'"
:position=
"marker.mapcenter | rebuildUserCenter(marker.mapcenter)"
:visible=
"markersGoodsVisible"
:content=
"marker.name | rebuildGoodsContent(marker.total, marker.color)"
:vid=
"index"
:clickable=
"true"
:events=
"checkPermission(['manage isadmin']) ? rebuildGoodsEvent(marker) : ''"
:z-index=
"markerUserZIndex"
></el-amap-marker>
<!-- 右上角设备和用户切换按钮 -->
<!-- 右上角设备和用户切换按钮 -->
<div
class=
"toolbar"
>
<div
class=
"toolbar"
>
<el-button
v-if=
"leftDeviceName != '全部设备' "
type=
"primary"
size=
"mini"
round
@
click=
"allDevices"
>
全部设备
</el-button>
<el-button
type=
"primary"
size=
"mini"
round
@
click=
"allDevices"
>
全部设备
</el-button>
<!--
<el-button
v-if=
"checkPermission(['manage device'])"
type=
"primary"
size=
"mini"
round
@
click=
"allDevices"
>
全部设备
</el-button>
-->
<!--
<el-button
v-if=
"checkPermission(['manage device'])"
type=
"primary"
size=
"mini"
round
@
click=
"allDevices"
>
全部设备
</el-button>
-->
<el-button
type=
"primary"
size=
"mini"
round
@
click=
"getDangerDeviceList"
>
隐患设备
</el-button>
<el-switch
v-model=
"markersGoodsVisible"
active-text=
"应急物资"
>
</el-switch>
<el-switch
<el-switch
v-model=
"markersDeviceVisible"
v-model=
"markersDeviceVisible"
active-text=
"设备"
active-text=
"设备"
...
@@ -139,6 +157,11 @@ VueAMap.initAMapApiLoader({
...
@@ -139,6 +157,11 @@ VueAMap.initAMapApiLoader({
export
default
{
export
default
{
filters
:
{
filters
:
{
rebuildGoodsContent
(
name
,
count
,
color
)
{
let
mcontent
=
'<div class="mapIcon"><span class="mapIcon_title">%name</span><span class="mapIcon_num_all" style="background-color:%color">%num</span></div>'
;
mcontent
=
mcontent
.
replace
(
/%name/
,
name
).
replace
(
/%num/
,
count
).
replace
(
/%color/
,
color
);
return
mcontent
;
},
rebuildContent
(
company
,
deviceCount
,
alarmCount
)
{
rebuildContent
(
company
,
deviceCount
,
alarmCount
)
{
let
mcontent
=
'<div class="mapIcon"><span class="mapIcon_title">%name</span><span class="mapIcon_num_all">%num</span><span class="mapIcon_num">%alarm</span></div>'
;
let
mcontent
=
'<div class="mapIcon"><span class="mapIcon_title">%name</span><span class="mapIcon_num_all">%num</span><span class="mapIcon_num">%alarm</span></div>'
;
mcontent
=
mcontent
.
replace
(
/%name/
,
company
).
replace
(
/%num/
,
deviceCount
).
replace
(
/%alarm/
,
alarmCount
);
mcontent
=
mcontent
.
replace
(
/%name/
,
company
).
replace
(
/%num/
,
deviceCount
).
replace
(
/%alarm/
,
alarmCount
);
...
@@ -186,6 +209,20 @@ export default {
...
@@ -186,6 +209,20 @@ export default {
data
(){
data
(){
const
_this
=
this
;
const
_this
=
this
;
return
{
return
{
markersGoodsVisible
:
false
,
markersGoods
:
[{
id
:
1
,
mapcenter
:
'114.209927,38.224691'
,
name
:
'应急物资1'
,
total
:
200
,
color
:
'#23e610'
,
},
{
id
:
2
,
mapcenter
:
'114.209927,38.221291'
,
name
:
'应急物资2'
,
total
:
20
,
color
:
'#dd000e'
,
}],
audio
:
new
Audio
(
'/audio/alarm.wav'
),
audio
:
new
Audio
(
'/audio/alarm.wav'
),
audio_play
:
false
,
audio_play
:
false
,
intervalId
:
null
,
intervalId
:
null
,
...
@@ -268,6 +305,8 @@ export default {
...
@@ -268,6 +305,8 @@ export default {
this
.
leftDeviceName
=
'全部设备'
;
this
.
leftDeviceName
=
'全部设备'
;
this
.
markersDevice
=
res
.
data
;
this
.
markersDevice
=
res
.
data
;
this
.
zoom
=
6
;
this
.
zoom
=
6
;
this
.
markersDeviceVisible
=
true
;
this
.
markerVisible
=
false
;
});
});
},
},
getUserDevices
(
center
)
{
getUserDevices
(
center
)
{
...
@@ -292,6 +331,18 @@ export default {
...
@@ -292,6 +331,18 @@ export default {
},
},
};
};
},
},
// 应急物资
rebuildGoodsEvent
(
marker
)
{
var
mapcenter
=
marker
.
mapcenter
.
replace
(
/
\s
*/g
,
''
);
const
that
=
this
;
const
position
=
mapcenter
.
split
(
','
);
return
{
click
(
e
)
{
that
.
zoom
=
15
;
that
.
center
=
position
;
},
};
},
markerClickEvent
(
marker
)
{
markerClickEvent
(
marker
)
{
const
that
=
this
;
const
that
=
this
;
return
{
return
{
...
@@ -310,6 +361,18 @@ export default {
...
@@ -310,6 +361,18 @@ export default {
});
});
this
.
dataRefresh
(
uid
);
this
.
dataRefresh
(
uid
);
},
},
// 获取隐患设备
getDangerDeviceList
()
{
// 停止定时器
this
.
clearIntv
();
devices
({
devicestatus
:
7
})
.
then
(
res
=>
{
this
.
markersDevice
=
res
.
data
;
this
.
markersDeviceVisible
=
true
;
this
.
markerVisible
=
false
;
});
// this.dataRefresh();
},
// 获取设备详细信息
// 获取设备详细信息
getUserDeviceInfo
(
id
)
{
getUserDeviceInfo
(
id
)
{
deviceinfo
(
id
)
deviceinfo
(
id
)
...
@@ -507,7 +570,7 @@ export default {
...
@@ -507,7 +570,7 @@ export default {
.toolbar
{
.toolbar
{
position
:
fixed
;
position
:
fixed
;
top
:
120px
;
top
:
120px
;
right
:
4
0px
;
right
:
10
0px
;
}
}
.zero-user-devices
{
.zero-user-devices
{
position
:
fixed
;
position
:
fixed
;
...
...
resources/js/views/sweep-check/index.vue
0 → 100644
View file @
7a057cac
This diff is collapsed.
Click to expand it.
resources/js/views/sweep-check/ledger.vue
0 → 100644
View file @
7a057cac
<
template
>
<div
class=
"app-container"
>
<div
class=
"filter-container"
>
<el-form
:inline=
"true"
:model=
"formSearch"
class=
"demo-form-inline"
>
<el-form-item
label=
"隐患类型"
>
<el-select
v-model=
"formSearch.type_id"
style=
"margin-left: 20px;"
placeholder=
"请选择"
>
<el-option
v-for=
"(item, i) in optionTypes"
:key=
"i + '1u'"
:label=
"item.type"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"隐患等级"
>
<el-select
v-model=
"formSearch.level_id"
style=
"margin-left: 20px;"
placeholder=
"请选择"
>
<el-option
v-for=
"(item,ind) in optionLevels"
:key=
"ind + 'ls'"
:label=
"item.level"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"区域"
>
<el-select
v-model=
"formSearch.area_id"
style=
"margin-left: 20px;"
placeholder=
"请选择"
>
<el-option
v-for=
"(item,ind) in optionAreas"
:key=
"ind + 'ls'"
:label=
"item.label"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"治疗状态"
>
<el-select
v-model=
"formSearch.state"
style=
"margin-left: 20px;"
placeholder=
"请选择"
>
<el-option
v-for=
"(item,ind) in optionStatus"
:key=
"ind + '2s'"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"时间"
>
<el-date-picker
v-model=
"formSearch.timeRange"
align=
"right"
type=
"datetimerange"
:picker-options=
"pickerOptions"
range-separator=
"至"
value-format=
"yyyy-MM-dd HH:mm:ss"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
@
click=
"onSubmit"
>
查询
</el-button>
</el-form-item>
</el-form>
</div>
<el-pagination
:current-page=
"formSearch.page"
:page-sizes=
"[20, 80, 150, 300, 5]"
:page-size=
"formSearch.limit"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"formSearch.total"
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
>
</el-pagination>
<el-table
:key=
"tableKey"
:data=
"ledgerData"
border
fit
highlight-current-rows
>
<el-table-column
label=
"ID"
width=
"50"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
id
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"具体内容"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
content
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"隐患类型"
width=
"80"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
type
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"隐患等级"
width=
"80"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
level
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"整改措施"
width=
"200"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
measure
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"整改责任主体"
width=
"110"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
name
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"发现日期"
width=
"100"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
created_at
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"整改日期"
width=
"100"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
updated_at
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"用户地址"
width=
"200"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
address
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"用户电话"
width=
"140"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
phone_number
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"状态"
width=
"100"
>
<
template
slot-scope=
"scope"
>
<span>
<el-tag
:type=
"ledgerStateFilter(scope.row.state, 'type')"
effect=
"dark"
>
{{
ledgerStateFilter
(
scope
.
row
.
state
,
'content'
)
}}
</el-tag>
</span>
</
template
>
</el-table-column>
</el-table>
</div>
</template>
<
script
>
import
clip
from
'@/utils/clipboard'
;
export
default
{
data
()
{
return
{
ledgerData
:
[],
formSearch
:
{
type_id
:
0
,
level_id
:
0
,
state
:
0
,
timeRange
:
null
,
page
:
1
,
limit
:
20
,
total
:
0
,
},
optionTypes
:
[{
type
:
'全部'
,
id
:
0
,
},
{
type
:
'管路隐患'
,
id
:
1
,
},
{
type
:
'设备隐患'
,
id
:
2
,
}],
optionLevels
:
[{
level
:
'全部'
,
id
:
0
,
},
{
level
:
'一级'
,
id
:
1
,
},
{
level
:
'二级'
,
id
:
2
,
},
{
level
:
'三级'
,
id
:
3
,
}],
optionAreas
:
[{
label
:
'全部'
,
id
:
0
,
},
{
label
:
'平山县城'
,
id
:
1
,
},
{
label
:
'南甸镇'
,
id
:
2
,
}],
optionStatus
:
[{
value
:
0
,
label
:
'全部'
,
},
{
value
:
1
,
label
:
'未清除'
,
},
{
value
:
1
,
label
:
'已清除'
,
}],
tableKey
:
0
,
pickerOptions
:
{
disabledDate
(
time
)
{
return
time
.
getTime
()
>
Date
.
now
();
},
shortcuts
:
[{
text
:
'24小时内'
,
onClick
(
picker
)
{
const
end
=
new
Date
();
const
start
=
new
Date
();
start
.
setTime
(
start
.
getTime
()
-
3600
*
1000
*
24
);
picker
.
$emit
(
'pick'
,
[
start
,
end
]);
},
},
],
},
};
},
created
()
{
this
.
ledgerListData
();
},
methods
:
{
ledgerStateFilter
(
state
,
type
)
{
const
status
=
[];
status
[
1
]
=
{
content
:
'未清除'
,
type
:
'danger'
};
status
[
2
]
=
{
content
:
'已清除'
,
type
:
'success'
};
if
(
type
===
'type'
)
{
return
status
[
state
].
type
;
}
if
(
type
===
'content'
)
{
return
status
[
state
].
content
;
}
},
// 台账详情
ledgerDetail
(
id
)
{
},
// 台账列表
ledgerListData
()
{
// console.log(this.formSearch);
// alarmOrderList(this.formSearch).then(response => {
// if (response.code === 200) {
// console.log(response.data);
// this.alarmOrders = response.data.orders;
// this.formSearch.total = response.data.meta.count;
// }
// }).catch(err => {
// console.log(err);
// });
this
.
formSearch
.
total
=
2
;
const
ledgerData
=
[{
id
:
1
,
content
:
'天然气外管路损坏'
,
type_id
:
1
,
type
:
'管路隐患'
,
level_id
:
2
,
level
:
'二级'
,
measure
:
'更换燃气管道'
,
name
:
'张三'
,
created_at
:
'2020-12-20 09:01:29'
,
updated_at
:
'2020-12-24 19:31:59'
,
address
:
'石家庄市裕华东路39号'
,
phone_number
:
'13366786770'
,
state
:
1
,
}];
const
ledgerData1
=
[{
id
:
2
,
content
:
'煤气表损坏'
,
type_id
:
2
,
type
:
'设备隐患'
,
level_id
:
1
,
level
:
'一级'
,
measure
:
'更换煤气表'
,
name
:
'李四'
,
created_at
:
'2020-12-20 09:01:29'
,
updated_at
:
'2020-12-24 19:31:59'
,
address
:
'石家庄市裕华东路39号-1'
,
phone_number
:
'15373999156'
,
state
:
2
,
}];
this
.
ledgerData
=
ledgerData
.
concat
(
ledgerData1
);
if
(
this
.
formSearch
.
type_id
===
1
)
{
this
.
ledgerData
=
ledgerData
;
}
if
(
this
.
formSearch
.
type_id
===
2
)
{
this
.
ledgerData
=
ledgerData1
;
}
},
handleSizeChange
(
val
)
{
this
.
formSearch
.
limit
=
val
;
this
.
dataSearch
();
},
handleCurrentChange
(
val
)
{
this
.
formSearch
.
page
=
val
;
this
.
dataSearch
();
},
handleCopy
(
text
,
event
)
{
clip
(
text
,
event
);
},
onSubmit
()
{
this
.
formSearch
.
page
=
1
;
this
.
dataSearch
();
},
dataSearch
()
{
this
.
ledgerListData
();
},
},
};
</
script
>
<
style
scoped
lang=
"scss"
>
.placeholder-container
{
ul
{
li
{
margin
:
10px
;
list-style-type
:
none
;
}
}
}
</
style
>
resources/js/views/sweep-check/record.vue
0 → 100644
View file @
7a057cac
This diff is collapsed.
Click to expand it.
resources/js/views/sweep-check/security.vue
0 → 100644
View file @
7a057cac
<
template
>
<div
class=
"app-container"
>
<div
class=
"filter-container"
>
<el-form
:inline=
"true"
:model=
"formSearch"
class=
"demo-form-inline"
>
<el-form-item
label=
"模版ID"
>
<el-input
v-model=
"formSearch.template_id"
placeholder=
"输入模版ID"
></el-input>
</el-form-item>
<el-form-item
label=
"安检计划名称"
>
<el-input
v-model=
"formSearch.plan_name"
placeholder=
"输入安检计划名称"
></el-input>
</el-form-item>
<el-form-item
label=
"状态"
>
<el-select
v-model=
"formSearch.status"
placeholder=
"请选择"
width=
"40"
>
<el-option
v-for=
"(item,ind) in optionStatus"
:key=
"ind + '2s'"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"时间"
>
<el-date-picker
v-model=
"formSearch.timeRange"
align=
"right"
type=
"datetimerange"
:picker-options=
"pickerOptions"
range-separator=
"至"
value-format=
"yyyy-MM-dd HH:mm:ss"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
@
click=
"onSubmit"
>
查询
</el-button>
</el-form-item>
</el-form>
</div>
<el-pagination
:current-page=
"formSearch.page"
:page-sizes=
"[20, 80, 150, 300, 5]"
:page-size=
"formSearch.limit"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"formSearch.total"
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
>
</el-pagination>
<el-table
:data=
"listData"
border
fit
highlight-current-rows
>
<el-table-column
label=
"模版ID"
width=
"180"
>
<template
slot-scope=
"scope"
>
<span
@
click=
"handleCopy(scope.row.template_id,$event)"
>
{{
scope
.
row
.
template_id
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"安检计划名称"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<span
@
click=
"handleCopy(scope.row.plan_name,$event)"
>
{{
scope
.
row
.
plan_name
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"计划描述"
width=
"100"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
description
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"流程"
>
<
template
slot-scope=
"scope"
>
<el-steps
:space=
"200"
:active=
"1"
finish-status=
"success"
>
<el-step
v-for=
"(item,index) in scope.row.step"
:key=
"index"
:title=
"item.title"
></el-step>
</el-steps>
</
template
>
</el-table-column>
<el-table-column
label=
"状态"
width=
"90"
>
<
template
slot-scope=
"scope"
>
<span>
<el-tag
:type=
"statusFilter(scope.row.status, 'type')"
effect=
"dark"
>
{{
statusFilter
(
scope
.
row
.
status
,
'content'
)
}}
</el-tag>
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"创建时间"
width=
"160"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
created_at
}}
</span>
</
template
>
</el-table-column>
</el-table>
</div>
</template>
<
script
>
import
clip
from
'@/utils/clipboard'
;
export
default
{
filters
:
{
},
data
()
{
return
{
listData
:
[],
formSearch
:
{
template_id
:
''
,
plan_name
:
''
,
status
:
0
,
timeRange
:
null
,
page
:
1
,
limit
:
20
,
total
:
0
,
},
optionStatus
:
[{
value
:
0
,
label
:
'全部'
,
},
{
value
:
1
,
label
:
'在建中'
,
},
{
value
:
2
,
label
:
'已完成'
,
},
{
value
:
3
,
label
:
'已派发'
,
},
{
value
:
4
,
label
:
'禁用'
,
}],
pickerOptions
:
{
disabledDate
(
time
)
{
return
time
.
getTime
()
>
Date
.
now
();
},
shortcuts
:
[{
text
:
'24小时内'
,
onClick
(
picker
)
{
const
end
=
new
Date
();
const
start
=
new
Date
();
start
.
setTime
(
start
.
getTime
()
-
3600
*
1000
*
24
);
picker
.
$emit
(
'pick'
,
[
start
,
end
]);
},
},
],
},
};
},
created
()
{
this
.
listDataApi
();
},
methods
:
{
statusFilter
(
state
,
type
)
{
const
status
=
[];
status
[
1
]
=
{
content
:
'在建中'
,
type
:
'info'
};
status
[
2
]
=
{
content
:
'已完成'
,
type
:
'warning'
};
status
[
3
]
=
{
content
:
'已派发'
,
type
:
'success'
};
status
[
4
]
=
{
content
:
'禁用'
,
type
:
'danger'
};
if
(
type
===
'type'
)
{
return
status
[
state
].
type
;
}
if
(
type
===
'content'
)
{
return
status
[
state
].
content
;
}
},
// 列表
listDataApi
()
{
// console.log(this.formSearch);
// alarmOrderList(this.formSearch).then(response => {
// if (response.code === 200) {
// console.log(response.data);
// this.alarmOrders = response.data.orders;
// this.formSearch.total = response.data.meta.count;
// }
// }).catch(err => {
// console.log(err);
// });
this
.
formSearch
.
total
=
4
;
const
listData
=
[{
template_id
:
'20201218153501427460'
,
plan_name
:
'燃气定期巡检1'
,
description
:
'定期巡检'
,
step
:
[{
step
:
1
,
title
:
'制定巡检时间'
,
},
{
step
:
2
,
title
:
'选择区域'
,
},
{
step
:
3
,
title
:
'确定巡检人员'
,
}],
status
:
1
,
created_at
:
'2020-12-20 11:04:29'
,
},
{
template_id
:
'20201218153501427461'
,
plan_name
:
'燃气定期巡检2'
,
description
:
'定期巡检'
,
step
:
[{
step
:
1
,
title
:
'制定巡检时间'
,
},
{
step
:
2
,
title
:
'选择区域'
,
},
{
step
:
3
,
title
:
'确定巡检人员'
,
},
{
step
:
4
,
title
:
'反馈信息'
,
}],
status
:
2
,
created_at
:
'2020-12-20 11:04:29'
,
},
{
template_id
:
'20201218153501427462'
,
plan_name
:
'燃气定期巡检3'
,
description
:
'定期巡检'
,
step
:
[{
step
:
1
,
title
:
'制定巡检时间'
,
},
{
step
:
2
,
title
:
'选择区域'
,
},
{
step
:
3
,
title
:
'确定巡检人员'
,
},
{
step
:
4
,
title
:
'巡检内容'
,
}],
status
:
3
,
created_at
:
'2020-12-20 11:04:29'
,
},
{
template_id
:
'20201218153501427463'
,
plan_name
:
'燃气定期巡检4'
,
description
:
'定期巡检'
,
step
:
[{
step
:
1
,
title
:
'制定巡检时间'
,
},
{
step
:
2
,
title
:
'选择区域'
,
},
{
step
:
3
,
title
:
'确定巡检人员'
,
},
{
step
:
4
,
title
:
'反馈信息'
,
}],
status
:
4
,
created_at
:
'2020-12-20 11:04:24'
,
}];
this
.
listData
=
listData
;
if
(
this
.
formSearch
.
template_id
)
{
this
.
listData
=
[{
template_id
:
'20201218153501427461'
,
plan_name
:
'燃气定期巡检'
,
description
:
'定期巡检'
,
step
:
[{
step
:
1
,
title
:
'制定巡检时间'
,
},
{
step
:
2
,
title
:
'选择区域'
,
},
{
step
:
3
,
title
:
'确定巡检人员'
,
},
{
step
:
4
,
title
:
'反馈信息'
,
}],
status
:
2
,
created_at
:
'2020-12-20 11:04:29'
,
}];
}
},
handleSizeChange
(
val
)
{
this
.
formSearch
.
limit
=
val
;
this
.
dataSearch
();
},
handleCurrentChange
(
val
)
{
this
.
formSearch
.
page
=
val
;
this
.
dataSearch
();
},
handleCopy
(
text
,
event
)
{
clip
(
text
,
event
);
},
onSubmit
()
{
this
.
formSearch
.
page
=
1
;
this
.
dataSearch
();
},
dataSearch
()
{
this
.
listDataApi
();
},
},
};
</
script
>
<
style
scoped
lang=
"scss"
>
.placeholder-container
{
ul
{
li
{
margin
:
10px
;
list-style-type
:
none
;
}
}
}
</
style
>
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