Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qsh-wc
Project
Project
Details
Activity
Releases
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
honghuiliu
qsh-wc
Commits
cf339574
Commit
cf339574
authored
Sep 02, 2022
by
mahui
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
init
parent
6f54a644
Changes
10
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
1238 additions
and
83 deletions
+1238
-83
home.vue
pc/src/views/home.vue
+2
-38
site-detail.vue
pc/src/views/site-detail.vue
+5
-9
package.json
web/package.json
+2
-1
App.vue
web/src/App.vue
+1
-0
main.js
web/src/main.js
+3
-0
element-icons.ttf
web/src/style/theme/fonts/element-icons.ttf
+0
-0
element-icons.woff
web/src/style/theme/fonts/element-icons.woff
+0
-0
index.css
web/src/style/theme/index.css
+1177
-0
qshPartol.vue
web/src/view/qshPartol/qshPartol.vue
+33
-18
qshToilet.vue
web/src/view/qshToilet/qshToilet.vue
+15
-17
No files found.
pc/src/views/home.vue
View file @
cf339574
...
@@ -46,43 +46,7 @@
...
@@ -46,43 +46,7 @@
show
:
false
,
show
:
false
,
site_id
:
''
,
site_id
:
''
,
time
:
myPublic
.
dateFormat
.
format
(
Date
.
now
(),
'HH:mm:ss YYYY年MM月DD日'
),
time
:
myPublic
.
dateFormat
.
format
(
Date
.
now
(),
'HH:mm:ss YYYY年MM月DD日'
),
list
:[
list
:[]
// {
// longitude:119.779647,
// latitude:30.24369,
// name:'青山湖国家森林公园',
// address:'浙江省杭州市临安区老圣园路北',
// type:1
// },
// {
// longitude:119.821796,
// latitude:30.254114,
// name:'青山湖街道',
// address:'浙江省杭州市临安区',
// type:1
// },
// {
// longitude:119.790127,
// latitude:30.255317,
// name:'灵山',
// address:'浙江省杭州市临安区',
// type:2
// },
// {
// longitude:119.852565,
// latitude:30.2528,
// name:'青山湖互通',
// address:'浙江省杭州市临安区',
// type:1
// },
// {
// longitude:119.823904,
// latitude:30.24808,
// name:'青山中学',
// address:'浙江省杭州市临安区',
// type:1
// },
]
});
});
const
user
=
computed
(()
=>
{
const
user
=
computed
(()
=>
{
return
store
.
info
;
return
store
.
info
;
...
@@ -118,7 +82,7 @@
...
@@ -118,7 +82,7 @@
}
}
function
mapShow
(
coordinate
,
item
,
callBack
)
{
function
mapShow
(
coordinate
,
item
,
callBack
)
{
const
now
=
Date
.
now
();
const
now
=
Date
.
now
();
let
str
=
`<img src="
${
require
(
"@/assets/img/e.png"
)
}
" />`
;
let
str
=
`<img src="
${
item
.
showImage
}
" />`
;
str
+=
`<p style="font-weight: 700">
${
item
.
name
}${
typeChange
(
item
.
type
)}
</p>`
;
str
+=
`<p style="font-weight: 700">
${
item
.
name
}${
typeChange
(
item
.
type
)}
</p>`
;
str
+=
`<p>位置:
${
item
.
address
}
</p>`
;
str
+=
`<p>位置:
${
item
.
address
}
</p>`
;
str
+=
`<p id="
${
now
}
" style="color: #3396fb;cursor: pointer" onclick="">查看详情<span class="icon-4"></span></p>`
;
str
+=
`<p id="
${
now
}
" style="color: #3396fb;cursor: pointer" onclick="">查看详情<span class="icon-4"></span></p>`
;
...
...
pc/src/views/site-detail.vue
View file @
cf339574
...
@@ -11,7 +11,7 @@
...
@@ -11,7 +11,7 @@
<div
class=
"detail-body"
>
<div
class=
"detail-body"
>
<div
class=
"body-one base"
v-if=
"tab=='base'"
>
<div
class=
"body-one base"
v-if=
"tab=='base'"
>
<div
class=
"poster"
>
<div
class=
"poster"
>
<div
class=
"blur-mask"
:style=
"`background-image:url('$
{detail.
poster[detail.index]
}')`">
</div>
<div
class=
"blur-mask"
:style=
"`background-image:url('$
{detail.
showImage
}')`">
</div>
<div
class=
"banner"
>
<div
class=
"banner"
>
<el-carousel
:interval=
"5000"
arrow=
"never"
style=
"height: 480px;"
<el-carousel
:interval=
"5000"
arrow=
"never"
style=
"height: 480px;"
@
change=
"(val)=>
{detail.index=val}">
@
change=
"(val)=>
{detail.index=val}">
...
@@ -279,14 +279,7 @@
...
@@ -279,14 +279,7 @@
show
:
false
,
show
:
false
,
order_id
:
''
,
order_id
:
''
,
detail
:
{
detail
:
{
poster
:
[
poster
:[],
require
(
"@/assets/img/banner-1.png"
),
require
(
"@/assets/img/banner-1.png"
),
require
(
"@/assets/img/banner-1.png"
),
require
(
"@/assets/img/banner-1.png"
),
require
(
"@/assets/img/banner-1.png"
),
require
(
"@/assets/img/banner-1.png"
),
],
index
:
0
,
index
:
0
,
yewei
:
0.7
,
yewei
:
0.7
,
type
:
1
type
:
1
...
@@ -419,6 +412,9 @@
...
@@ -419,6 +412,9 @@
function
getDetail
()
{
function
getDetail
()
{
api
.
getToiletDetail
({
id
:
props
.
site_id
}).
then
((
res
)
=>
{
api
.
getToiletDetail
({
id
:
props
.
site_id
}).
then
((
res
)
=>
{
if
(
res
.
code
==
0
){
if
(
res
.
code
==
0
){
if
(
res
.
data
.
image
){
state
.
detail
.
poster
=
res
.
data
.
image
.
split
(
','
)
}
Object
.
assign
(
state
.
detail
,{...
res
.
data
});
Object
.
assign
(
state
.
detail
,{...
res
.
data
});
if
(
state
.
detail
.
type
==
1
){
if
(
state
.
detail
.
type
==
1
){
state
.
tabs
.
find
(
one
=>
one
.
value
==
'process'
).
show
=
true
;
state
.
tabs
.
find
(
one
=>
one
.
value
==
'process'
).
show
=
true
;
...
...
web/package.json
View file @
cf339574
...
@@ -26,7 +26,8 @@
...
@@ -26,7 +26,8 @@
"script-ext-html-webpack-plugin"
:
"^2.1.4"
,
"script-ext-html-webpack-plugin"
:
"^2.1.4"
,
"spark-md5"
:
"^3.0.1"
,
"spark-md5"
:
"^3.0.1"
,
"vue"
:
"^3.2.25"
,
"vue"
:
"^3.2.25"
,
"vue-router"
:
"^4.0.0-0"
"vue-router"
:
"^4.0.0-0"
,
"vue3-photo-preview"
:
"^0.2.5"
},
},
"devDependencies"
:
{
"devDependencies"
:
{
"@vitejs/plugin-legacy"
:
"^1.4.4"
,
"@vitejs/plugin-legacy"
:
"^1.4.4"
,
...
...
web/src/App.vue
View file @
cf339574
...
@@ -12,6 +12,7 @@ export default {
...
@@ -12,6 +12,7 @@ export default {
<
style
lang=
"scss"
>
<
style
lang=
"scss"
>
// 引入初始化样式
// 引入初始化样式
@import
'@/style/theme/index.css'
;
@import
'@/style/main.scss'
;
@import
'@/style/main.scss'
;
@import
'@/style/base.scss'
;
@import
'@/style/base.scss'
;
@import
'@/style/mobile.scss'
;
@import
'@/style/mobile.scss'
;
...
...
web/src/main.js
View file @
cf339574
...
@@ -13,6 +13,8 @@ import auth from '@/directive/auth'
...
@@ -13,6 +13,8 @@ import auth from '@/directive/auth'
import
{
store
}
from
'@/pinia'
import
{
store
}
from
'@/pinia'
import
upload
from
"@/components/upload.vue"
import
upload
from
"@/components/upload.vue"
import
newInput
from
"@/components/input/new-input.vue"
import
newInput
from
"@/components/input/new-input.vue"
import
vue3PhotoPreview
from
'vue3-photo-preview'
;
import
'vue3-photo-preview/dist/index.css'
;
import
App
from
'./App.vue'
import
App
from
'./App.vue'
const
app
=
createApp
(
App
)
const
app
=
createApp
(
App
)
app
.
config
.
productionTip
=
false
app
.
config
.
productionTip
=
false
...
@@ -22,6 +24,7 @@ app
...
@@ -22,6 +24,7 @@ app
.
use
(
store
)
.
use
(
store
)
.
use
(
auth
)
.
use
(
auth
)
.
use
(
router
)
.
use
(
router
)
.
use
(
vue3PhotoPreview
)
.
use
(
ElementPlus
,
{
locale
:
zhCn
})
.
use
(
ElementPlus
,
{
locale
:
zhCn
})
.
component
(
'new-upload'
,
upload
)
.
component
(
'new-upload'
,
upload
)
.
component
(
'new-input'
,
newInput
)
.
component
(
'new-input'
,
newInput
)
...
...
web/src/style/theme/fonts/element-icons.ttf
0 → 100644
View file @
cf339574
File added
web/src/style/theme/fonts/element-icons.woff
0 → 100644
View file @
cf339574
File added
web/src/style/theme/index.css
0 → 100644
View file @
cf339574
This diff is collapsed.
Click to expand it.
web/src/view/qshPartol/qshPartol.vue
View file @
cf339574
...
@@ -79,29 +79,32 @@
...
@@ -79,29 +79,32 @@
</div>
</div>
</div>
</div>
<el-dialog
v-model=
"dialogFormVisible"
:before-close=
"closeDialog"
title=
"弹窗操作"
>
<el-dialog
v-model=
"dialogFormVisible"
:before-close=
"closeDialog"
title=
"弹窗操作"
>
<el-form
:model=
"formData"
label-position=
"right"
label-width=
"80px"
>
<el-form
:model=
"formData"
label-position=
"right"
label-width=
"120px"
>
<el-form-item
label=
"工单标题:"
>
<el-input
v-model=
"formData.title"
clearable
placeholder=
"请输入"
/>
</el-form-item>
<el-form-item
label=
"巡检类型:"
>
<el-select
v-model=
"formData.type"
placeholder=
"请选择"
style=
"width:100%"
clearable
>
<el-option
v-for=
"(item,key) in partol_typeOptions"
:key=
"key"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"巡检内容:"
>
<el-form-item
label=
"巡检内容:"
>
<
el-input
v-model=
"formData.content"
clearable
placeholder=
"请输入"
/
>
<
!--<el-input v-model="formData.content" clearable placeholder="请输入"/>--
>
</el-form-item>
</el-form-item>
<el-form-item
label=
"
异常描述
:"
>
<el-form-item
label=
"
巡检图片
:"
>
<
el-input
v-model=
"formData.description"
clearable
placeholder=
"请输入"
/
>
<
new-upload
v-if=
"dialogFormVisible"
:limit=
"99"
:list=
"formData.image?formData.image.split(','):[]"
@
upload=
"(file)=>formData.image = file.join(',')"
:multiply=
"true"
></new-upload
>
</el-form-item>
</el-form-item>
<el-form-item
label=
"
巡检图片多个逗号分隔
:"
>
<el-form-item
label=
"
异常描述
:"
>
<el-input
v-model=
"formData.image
"
clearable
placeholder=
"请输入"
/>
<el-input
type=
"textarea"
resize=
"none"
v-model=
"formData.description
"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"巡视人:"
>
<el-form-item
label=
"巡视人:"
>
<el-input
v-model=
"formData.partolName"
clearable
placeholder=
"请输入"
/>
<el-input
v-model=
"formData.partolName"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"工单标题:"
>
<el-input
v-model=
"formData.title"
clearable
placeholder=
"请输入"
/>
</el-form-item>
<el-form-item
label=
"巡检公厕:"
>
<el-form-item
label=
"巡检公厕:"
>
<el-input
v-model
.
number=
"formData.toiletId"
clearable
placeholder=
"请输入"
/>
<el-select
v-model=
"formData.toiletId"
placeholder=
"请选择"
style=
"width:100%"
clearable
>
</el-form-item>
<el-option
v-for=
"(item,key) in toiletList"
:key=
"key"
:label=
"item.name"
<el-form-item
label=
"巡检类型:"
>
:value=
"item.ID"
/>
<el-select
v-model=
"formData.type"
placeholder=
"请选择"
style=
"width:100%"
clearable
>
<el-option
v-for=
"(item,key) in partol_typeOptions"
:key=
"key"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
...
@@ -130,7 +133,9 @@
...
@@ -130,7 +133,9 @@
findQshPartol
,
findQshPartol
,
getQshPartolList
getQshPartolList
}
from
'@/api/qshPartol'
}
from
'@/api/qshPartol'
import
{
getQshToiletList
}
from
'@/api/qshToilet'
// 全量引入格式化工具 请按需保留
// 全量引入格式化工具 请按需保留
import
{
getDictFunc
,
formatDate
,
formatBoolean
,
filterDict
}
from
'@/utils/format'
import
{
getDictFunc
,
formatDate
,
formatBoolean
,
filterDict
}
from
'@/utils/format'
import
{
ElMessage
,
ElMessageBox
}
from
'element-plus'
import
{
ElMessage
,
ElMessageBox
}
from
'element-plus'
...
@@ -144,7 +149,7 @@
...
@@ -144,7 +149,7 @@
image
:
''
,
image
:
''
,
partolName
:
''
,
partolName
:
''
,
title
:
''
,
title
:
''
,
toiletId
:
0
,
toiletId
:
''
,
type
:
undefined
,
type
:
undefined
,
})
})
...
@@ -153,6 +158,7 @@
...
@@ -153,6 +158,7 @@
const
total
=
ref
(
0
)
const
total
=
ref
(
0
)
const
pageSize
=
ref
(
10
)
const
pageSize
=
ref
(
10
)
const
tableData
=
ref
([])
const
tableData
=
ref
([])
const
toiletList
=
ref
([])
const
searchInfo
=
ref
({})
const
searchInfo
=
ref
({})
// 重置
// 重置
...
@@ -192,6 +198,15 @@
...
@@ -192,6 +198,15 @@
getTableData
()
getTableData
()
// 公厕列表查询
const
getTableData_2
=
async
()
=>
{
const
table
=
await
getQshToiletList
({
page
:
1
,
pageSize
:
99
})
if
(
table
.
code
===
0
)
{
toiletList
.
value
=
table
.
data
.
list
}
}
getTableData_2
();
// ============== 表格控制部分结束 ===============
// ============== 表格控制部分结束 ===============
// 获取需要的字典 可能为空 按需保留
// 获取需要的字典 可能为空 按需保留
...
@@ -300,7 +315,7 @@
...
@@ -300,7 +315,7 @@
image
:
''
,
image
:
''
,
partolName
:
''
,
partolName
:
''
,
title
:
''
,
title
:
''
,
toiletId
:
0
,
toiletId
:
''
,
type
:
undefined
,
type
:
undefined
,
}
}
}
}
...
...
web/src/view/qshToilet/qshToilet.vue
View file @
cf339574
...
@@ -55,8 +55,6 @@
...
@@ -55,8 +55,6 @@
<el-table-column
align=
"left"
label=
"经度"
prop=
"lng"
min-width=
"120"
/>
<el-table-column
align=
"left"
label=
"经度"
prop=
"lng"
min-width=
"120"
/>
<el-table-column
align=
"left"
label=
"管理人员"
prop=
"manager"
min-width=
"120"
/>
<el-table-column
align=
"left"
label=
"管理人员"
prop=
"manager"
min-width=
"120"
/>
<el-table-column
align=
"left"
label=
"管理员联系电话"
prop=
"managerPhone"
min-width=
"140"
/>
<el-table-column
align=
"left"
label=
"管理员联系电话"
prop=
"managerPhone"
min-width=
"140"
/>
<el-table-column
align=
"left"
label=
"监控信息"
prop=
"monitor"
min-width=
"120"
/>
<el-table-column
align=
"left"
label=
"创建时间"
min-width=
"180"
>
<el-table-column
align=
"left"
label=
"创建时间"
min-width=
"180"
>
<
template
#
default=
"scope"
>
{{
formatDate
(
scope
.
row
.
CreatedAt
)
}}
</
template
>
<
template
#
default=
"scope"
>
{{
formatDate
(
scope
.
row
.
CreatedAt
)
}}
</
template
>
</el-table-column>
</el-table-column>
...
@@ -83,12 +81,24 @@
...
@@ -83,12 +81,24 @@
</div>
</div>
</div>
</div>
<el-dialog
v-model=
"dialogFormVisible"
:before-close=
"closeDialog"
title=
"弹窗操作"
>
<el-dialog
v-model=
"dialogFormVisible"
:before-close=
"closeDialog"
title=
"弹窗操作"
>
<el-form
:model=
"formData"
label-position=
"right"
label-width=
"80px"
>
<el-form
:model=
"formData"
label-position=
"right"
label-width=
"120px"
>
<el-form-item
label=
"点位名称:"
>
<el-input
v-model=
"formData.name"
clearable
placeholder=
"请输入"
/>
</el-form-item>
<el-form-item
label=
"公厕类型:"
>
<el-select
v-model=
"formData.type"
placeholder=
"请选择"
style=
"width:100%"
clearable
>
<el-option
v-for=
"(item,key) in typeOptions"
:key=
"key"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"公厕地址:"
>
<el-form-item
label=
"公厕地址:"
>
<el-input
v-model=
"formData.address"
clearable
placeholder=
"请输入"
/>
<el-input
v-model=
"formData.address"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"点位图片:"
>
<el-form-item
label=
"展示图片:"
>
<el-input
v-model=
"formData.image"
clearable
placeholder=
"请输入"
/>
<new-upload
v-if=
"dialogFormVisible"
:list=
"[formData.showImage]"
@
upload=
"(file)=>formData.showImage = file[0]"
></new-upload>
</el-form-item>
<el-form-item
label=
"轮播图片:"
>
<new-upload
v-if=
"dialogFormVisible"
:limit=
"9"
:list=
"formData.image?formData.image.split(','):[]"
@
upload=
"(file)=>formData.image = file.join(',')"
:multiply=
"true"
></new-upload>
</el-form-item>
</el-form-item>
<el-form-item
label=
"纬度:"
>
<el-form-item
label=
"纬度:"
>
<el-input
v-model=
"formData.lat"
clearable
placeholder=
"请输入"
/>
<el-input
v-model=
"formData.lat"
clearable
placeholder=
"请输入"
/>
...
@@ -105,18 +115,6 @@
...
@@ -105,18 +115,6 @@
<el-form-item
label=
"监控信息:"
>
<el-form-item
label=
"监控信息:"
>
<el-input
v-model=
"formData.monitor"
clearable
placeholder=
"请输入"
/>
<el-input
v-model=
"formData.monitor"
clearable
placeholder=
"请输入"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"点位名称:"
>
<el-input
v-model=
"formData.name"
clearable
placeholder=
"请输入"
/>
</el-form-item>
<el-form-item
label=
"展示图片:"
>
<el-input
v-model=
"formData.showImage"
clearable
placeholder=
"请输入"
/>
</el-form-item>
<el-form-item
label=
"公厕类型:"
>
<el-select
v-model=
"formData.type"
placeholder=
"请选择"
style=
"width:100%"
clearable
>
<el-option
v-for=
"(item,key) in typeOptions"
:key=
"key"
:label=
"item.label"
:value=
"item.value"
/>
</el-select>
</el-form-item>
</el-form>
</el-form>
<
template
#
footer
>
<
template
#
footer
>
<div
class=
"dialog-footer"
>
<div
class=
"dialog-footer"
>
...
...
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