Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
Sign in / Register
Toggle navigation
S
site-uniapp
概览
Overview
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
Issues
0
列表
Board
标记
里程碑
合并请求
0
Merge Requests
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
Snippets
Members
Collapse sidebar
Close sidebar
活动
图像
聊天
创建新问题
作业
提交
Issue Boards
Open sidebar
王柯
site-uniapp
Commits
79b9ae2a
提交
79b9ae2a
authored
1月 12, 2023
作者:
wk
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
外联模式处理
父级
113c73bc
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
395 行增加
和
41 行删除
+395
-41
common/dateUtils.js
+9
-1
pages.json
+9
-0
pages/gallery/gallery.vue
+32
-3
pages/gallery/outPage/outPage.vue
+30
-0
pages/gallery/searchNeedDo/searchNeedDo.vue
+6
-3
pages/index/index.vue
+32
-3
pages/login/authLogin/authLogin.vue
+1
-1
pages/mine/myApproval/myApproval.vue
+153
-14
pages/monitor/labourMonitor/labourMonitor.vue
+16
-10
pages/monitor/monitor.vue
+107
-6
没有找到文件。
common/dateUtils.js
View file @
79b9ae2a
...
...
@@ -3,11 +3,13 @@ const $date = {
var
dateTime
=
new
Date
();
var
end
=
new
Date
(
time
);
var
dateDiff
=
0
console
.
log
(
"结束时间"
,
end
+
"------"
+
dateTime
);
if
(
isBefore
)
{
dateDiff
=
dateTime
.
getTime
()
-
end
.
getTime
();
//时间差的毫秒数
}
else
{
dateDiff
=
end
.
getTime
()
-
dateTime
.
getTime
();
//时间差的毫秒数
}
console
.
log
(
"时间差"
,
dateDiff
);
if
(
dateDiff
>
0
)
{
return
this
.
formatDuring
(
dateDiff
)
}
else
{
...
...
@@ -28,8 +30,14 @@ const $date = {
}
else
if
(
seconds
>
0
)
{
return
seconds
+
"秒"
;
}
},
getEndTime
(
startTime
)
{
var
start
=
new
Date
(
startTime
).
getTime
();
var
end
=
start
+
72
*
60
*
60
*
1000
var
endDate
=
new
Date
(
end
)
console
.
log
(
endDate
);
return
`
${
endDate
.
getFullYear
()}
-
${
endDate
.
getMonth
()
+
1
}
-
${
endDate
.
getDate
()}
${
endDate
.
getHours
()}
:
${
endDate
.
getMinutes
()}
:
${
endDate
.
getSeconds
()}
`
}
}
export
default
$date
pages.json
View file @
79b9ae2a
...
...
@@ -502,6 +502,15 @@
}
}
,{
"path"
:
"pages/gallery/outPage/outPage"
,
"style"
:
{
"navigationBarTitleText"
:
""
,
"enablePullDownRefresh"
:
false
}
}
],
"globalStyle"
:
{
"navigationBarTextStyle"
:
"white"
,
...
...
pages/gallery/gallery.vue
View file @
79b9ae2a
...
...
@@ -171,9 +171,7 @@
url
:
`/pages/gallery/app/modeFormList/modeFormList?check_tpl_id=
${
model
.
source_id
}
&business_type=
${
result
.
data
.
business_type
}
&title=
${
result
.
data
.
tpl_name
}
&showCfg=
${
JSON
.
stringify
(
this
.
models
[
0
].
show_cfg
)}
`
})
}
else
if
(
result
.
data
.
business_type
==
5
)
{
this
.
currentModel
=
result
.
data
.
tpl_config
[
0
]
console
.
log
(
this
.
currentModel
);
this
.
$refs
.
bottomDialog
.
handleShow
()
this
.
toOutPage
(
result
.
data
.
tpl_config
[
0
])
}
else
{
//之前的默认
uni
.
navigateTo
({
url
:
`/pages/gallery/app/originalIndex/originalIndex?check_tpl_id=
${
model
.
source_id
}
&title=
${
result
.
data
.
tpl_name
}
`
...
...
@@ -186,6 +184,37 @@
this
.
$toast
.
showToast
(
err
.
msg
)
})
},
toOutPage
(
currentModel
)
{
var
url
=
this
.
currentModel
.
url
var
params
=
""
if
(
url
.
indexOf
(
"?"
)
!=
-
1
)
{
//有参数
params
=
url
.
split
(
"?"
)[
1
]
url
=
url
.
split
(
"?"
)[
0
]
}
let
objParams
=
{}
if
(
params
!=
""
)
{
if
(
params
.
indexOf
(
"&"
)
!=
-
1
)
{
var
arr
=
params
.
split
(
"&"
)
arr
.
forEach
((
item
)
=>
{
objParams
[
item
.
split
(
"="
)[
0
]]
=
item
.
split
(
"="
)[
1
];
})
}
else
{
objParams
[
params
.
split
(
"="
)[
0
]]
=
params
.
split
(
"="
)[
1
];
}
// params = `{${params.replaceAll("=",":").replaceAll("&",",")}}`
}
console
.
log
(
params
);
let
data
=
{
project_id
:
uni
.
getStorageSync
(
"project_id"
)
||
""
,
account
:
this
.
currentModel
.
user_name
,
password
:
this
.
currentModel
.
user_pw
,
url
:
url
}
console
.
log
(
JSON
.
stringify
(
data
));
uni
.
navigateTo
({
url
:
`/pages/gallery/outPage/outPage?param=
${
JSON
.
stringify
(
data
)}
¶mStr=
${
JSON
.
stringify
(
objParams
)}
`
})
},
toAlone
(
model
,
info
)
{
this
.
models
=
info
.
tpl_config
if
(
this
.
models
.
length
==
1
)
{
...
...
pages/gallery/outPage/outPage.vue
0 → 100644
View file @
79b9ae2a
<
template
>
<view>
<web-view
:src=
"webUrl"
>
</web-view>
</view>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
webUrl
:
""
}
},
onLoad
(
options
)
{
console
.
log
(
"参数"
,
options
);
let
params
=
JSON
.
parse
(
options
.
param
)
this
.
webUrl
=
`
${
params
.
url
}
?project_id=
${
params
.
project_id
}
&account=
${
params
.
account
}
&password=
${
params
.
password
}
&option=
${
options
.
paramStr
}
`
console
.
log
(
this
.
webUrl
);
},
methods
:
{
}
}
</
script
>
<
style
>
</
style
>
pages/gallery/searchNeedDo/searchNeedDo.vue
View file @
79b9ae2a
...
...
@@ -4,15 +4,17 @@
<view
class=
"search-content"
>
<image
src=
"../../../static/ic-search.png"
class=
"image"
></image>
<input
placeholder=
"搜索"
placeholder-class=
"placeholderStyle"
@
input=
"search"
class=
"inputStyle"
/>
</view>
<view
class=
"list-content"
>
<view
v-for=
"(item,index) in list"
:key=
"index"
class=
"list-item"
@
click=
"itemClick(item)"
>
<image
class=
"image"
src=
"../../../static/ic-jrdb.png"
></image>
<view
class=
"item-content"
>
<view
class=
"title"
>
张三发起了隐患整改,请于2022/12/13 15:37:56前完成隐患整改。
</view>
<view
class=
"title"
>
{{
item
.
created_by_name
}}
发起了
{{
item
.
app_name
}}
,请于
{{
item
.
expect_end_date
}}
前完成。
</view>
<view
class=
"time-content"
>
<view
class=
"create-time"
>
2022/12/13 15:39:56
</view>
<view
class=
"leave-time"
>
处理倒计时:
0天20小时23分
</view>
<view
class=
"create-time"
>
{{
item
.
end_opt_time
}}
</view>
<view
class=
"leave-time"
>
处理倒计时:
{{
timeSpace
(
item
.
end_opt_time
)
}}
</view>
</view>
<view
class=
"line"
style=
"margin: 30rpx 0;"
></view>
</view>
...
...
@@ -112,6 +114,7 @@
margin-left
:
20
rpx
;
color
:
#333
;
}
}
...
...
pages/index/index.vue
View file @
79b9ae2a
...
...
@@ -692,9 +692,7 @@
url
:
`/pages/gallery/app/modeFormList/modeFormList?check_tpl_id=
${
model
.
source_id
}
&business_type=
${
result
.
data
.
business_type
}
&title=
${
result
.
data
.
tpl_name
}
&showCfg=
${
JSON
.
stringify
(
this
.
models
[
0
].
show_cfg
)}
`
})
}
else
if
(
result
.
data
.
business_type
==
5
)
{
this
.
currentModel
=
result
.
data
.
tpl_config
[
0
]
console
.
log
(
this
.
currentModel
);
this
.
$refs
.
bottomDialog
.
handleShow
()
this
.
toOutPage
(
result
.
data
.
tpl_config
[
0
])
}
else
{
//之前的默认
uni
.
navigateTo
({
url
:
`/pages/gallery/app/originalIndex/originalIndex?check_tpl_id=
${
model
.
source_id
}
&title=
${
result
.
data
.
tpl_name
}
`
...
...
@@ -707,6 +705,37 @@
this
.
$toast
.
showToast
(
err
.
msg
)
})
},
toOutPage
(
currentModel
)
{
var
url
=
this
.
currentModel
.
url
var
params
=
""
if
(
url
.
indexOf
(
"?"
)
!=
-
1
)
{
//有参数
params
=
url
.
split
(
"?"
)[
1
]
url
=
url
.
split
(
"?"
)[
0
]
}
let
objParams
=
{}
if
(
params
!=
""
)
{
if
(
params
.
indexOf
(
"&"
)
!=
-
1
)
{
var
arr
=
params
.
split
(
"&"
)
arr
.
forEach
((
item
)
=>
{
objParams
[
item
.
split
(
"="
)[
0
]]
=
item
.
split
(
"="
)[
1
];
})
}
else
{
objParams
[
params
.
split
(
"="
)[
0
]]
=
params
.
split
(
"="
)[
1
];
}
// params = `{${params.replaceAll("=",":").replaceAll("&",",")}}`
}
console
.
log
(
params
);
let
data
=
{
project_id
:
this
.
project_id
,
account
:
this
.
currentModel
.
user_name
,
password
:
this
.
currentModel
.
user_pw
,
url
:
url
}
console
.
log
(
JSON
.
stringify
(
data
));
uni
.
navigateTo
({
url
:
`/pages/gallery/outPage/outPage?param=
${
JSON
.
stringify
(
data
)}
¶mStr=
${
JSON
.
stringify
(
objParams
)}
`
})
},
toAlone
(
model
,
info
)
{
this
.
models
=
info
.
tpl_config
if
(
this
.
models
.
length
==
1
)
{
...
...
pages/login/authLogin/authLogin.vue
View file @
79b9ae2a
...
...
@@ -10,7 +10,7 @@
<view
class=
"btn-content"
@
click=
"toLogin"
>
<view
class=
"auth-text"
>
工地一点通授权登录
</view>
</view>
<view
class=
"cancel-content"
@
click=
"toCancel"
>
<view
class=
"cancel-content"
@
click=
"toCancel"
v-if=
"false"
>
<text
class=
"text"
>
暂不使用
</text>
</view>
</view>
...
...
pages/mine/myApproval/myApproval.vue
View file @
79b9ae2a
<
template
>
<view>
<titleBar
title=
"我的审批"
></titleBar>
<view
class=
"search"
>
<view
class=
"search-content"
>
<image
src=
"../../../static/ic-search.png"
class=
"image"
></image>
<input
placeholder=
"搜索"
placeholder-class=
"placeholderStyle"
@
input=
"search"
class=
"inputStyle"
/>
</view>
<view
class=
"order-content"
@
click=
"orderSearch"
>
<text
class=
"text"
>
时间排序
</text>
<image
:src=
"arrowIcon"
class=
"image"
></image>
</view>
</view>
<view
class=
"column-list-root"
>
<view
v-for=
"(item,index) in mDatas"
:key=
"index"
class=
"column-list-item"
>
<text
class=
"text-black-normal"
>
{{
item
.
user_name
}}
申请加入你的单位
</text>
<text
class=
"text-grey"
style=
"margin-top: 10rpx;"
>
{{
item
.
create_time
}}
</text>
<view
style=
"display: flex;flex-direction: row-reverse;margin-top: 32rpx;"
>
<view
@
click=
"reject(index)"
style=
"font-size: 24rpx;color: #FF0000;border: 1rpx solid #FF0000;padding: 8rpx 28rpx;border-radius: 8rpx;margin-left: 32rpx;"
>
驳回
</view>
<view
@
click=
"pass(index)"
style=
"border: 1rpx solid #3B73FE;background-color: #3B73FE;font-size: 24rpx;color: #FFFFFF;padding: 8rpx 28rpx;border-radius: 8rpx;"
>
批准
</view>
<view
class=
"item"
>
业务状态:
{{
statusText
(
item
.
status
)
}}
</view>
<view
class=
"item"
>
审批发起人:
{{
item
.
user_name
}}
</view>
<view
class=
"item"
>
审批内容:
{{
item
.
user_name
}}
申请加入你的组织
</view>
<view
class=
"item"
>
截止时间:
{{
endeTime
(
item
.
create_time
)
}}
</view>
<view
class=
"bottom-line"
>
<view
class=
"leave-time"
>
剩余时间:
{{
leaveTime
(
item
.
create_time
)
}}
</view>
<view
class=
"btn"
@
click=
"pass(index)"
>
审批通过
</view>
</view>
<view
class=
"line"
></view>
</view>
</view>
</view>
...
...
@@ -26,7 +35,9 @@
page
:
1
,
pageSize
:
20
,
totalPage
:
1
,
mDatas
:
[]
mDatas
:
[],
order
:
"desc"
,
arrowIcon
:
"../../../static/icon_drop_arrow.png"
}
},
onLoad
:
function
()
{
...
...
@@ -43,6 +54,37 @@
}
},
methods
:
{
search
(
e
)
{
},
endeTime
(
time
)
{
return
this
.
$date
.
getEndTime
(
time
)
},
leaveTime
(
time
)
{
return
this
.
$date
.
timeDiff
(
this
.
$date
.
getEndTime
(
time
),
false
)
},
orderSearch
()
{
if
(
this
.
order
==
'desc'
)
{
this
.
order
=
'asc'
this
.
arrowIcon
=
"../../../static/icon_up_arrow.png"
}
else
{
this
.
order
=
'desc'
this
.
arrowIcon
=
'../../../static/icon_drop_arrow.png'
}
this
.
page
=
1
this
.
getApplyList
()
},
statusText
(
status
)
{
if
(
status
==
'2'
)
{
return
'待审批'
}
else
if
(
status
==
'3'
)
{
return
'审批通过'
}
else
if
(
status
==
'4'
)
{
return
'审批拒绝'
}
else
if
(
status
==
'5'
)
{
return
'通过但移除'
}
},
reject
:
function
(
index
)
{
this
.
showTip
(
index
,
4
)
},
...
...
@@ -87,7 +129,8 @@
dept_type
:
1
,
is_page
:
1
,
page
:
this
.
page
,
page_size
:
this
.
pageSize
page_size
:
this
.
pageSize
,
order_by
:
this
.
order
},
}).
then
((
result
)
=>
{
console
.
log
(
"申请列表"
,
result
);
...
...
@@ -108,18 +151,114 @@
}
</
script
>
<
style
>
<
style
lang=
"scss"
>
.column-list-root
{
background-color
:
#F5F5F5
;
background-color
:
#FFFFFF
;
margin
:
30
rpx
;
border-radius
:
30
rpx
;
display
:
flex
;
flex-direction
:
column
;
}
.search
{
display
:
flex
;
flex-direction
:
row
;
align-items
:
center
;
margin
:
30
rpx
;
.search-content
{
display
:
flex
;
flex-direction
:
row
;
border
:
1
rpx
solid
#656565
;
height
:
30px
;
width
:
440
rpx
;
border-radius
:
30
rpx
;
align-items
:
center
;
image
{
width
:
24
rpx
;
margin-left
:
30
rpx
;
height
:
24
rpx
;
}
.placeholderStyle
{
font-size
:
24
rpx
;
color
:
#999
;
}
.inputStyle
{
font-size
:
24
rpx
;
margin-left
:
20
rpx
;
color
:
#333
;
}
}
.order-content
{
display
:
flex
;
flex-direction
:
row
;
align-items
:
center
;
margin
:
0
30
rpx
;
text
{
font-weight
:
400
;
font-size
:
14px
;
line-height
:
20px
;
text-align
:
center
;
color
:
#656565
;
}
image
{
width
:
28px
;
height
:
14px
;
}
}
}
.column-list-item
{
background-color
:
#FFFFFF
;
display
:
flex
;
margin-bottom
:
20
rpx
;
border-radius
:
30
rpx
;
flex-direction
:
column
;
padding
:
32
rpx
;
padding
:
30
rpx
;
.item
{
font-weight
:
400
;
font-size
:
14px
;
margin-top
:
20
rpx
;
text-align
:
left
;
color
:
#333
;
}
.bottom-line
{
display
:
flex
;
flex-direction
:
row
;
margin-top
:
20
rpx
;
align-items
:
center
;
.leave-time
{
font-weight
:
400
;
font-size
:
14px
;
text-align
:
left
;
flex
:
1
;
color
:
#333
;
}
.btn
{
font-weight
:
400
;
font-size
:
14px
;
line-height
:
20px
;
text-align
:
center
;
color
:
#3b73fe
;
}
}
.line
{
width
:
630
rpx
;
margin
:
30
rpx
0
;
height
:
0.5px
;
background
:
rgba
(
0
,
0
,
0
,
0.2
);
}
}
</
style
>
pages/monitor/labourMonitor/labourMonitor.vue
View file @
79b9ae2a
...
...
@@ -11,23 +11,29 @@
url
:
""
,
tab
:
"1"
,
province_no
:
""
,
city_no
:
""
city_no
:
""
,
type
:
"project"
,
project_id
:
""
,
project_name
:
""
}
},
onLoad
:
function
()
{
onLoad
:
function
(
option
)
{
let
short_token
=
uni
.
getStorageSync
(
"short_token"
)
console
.
log
(
short_token
);
this
.
type
=
option
.
type
this
.
project_id
=
option
.
project_id
this
.
project_name
=
option
.
project_name
this
.
url
=
`
${
this
.
webUrl
}
/mobileLaborScreen?token_id=
${
short_token
}
&tab=1&
province_no=
${
this
.
province_no
}
&city_no=
${
this
.
city_no
}
`
`
${
this
.
webUrl
}
/mobileLaborScreen?token_id=
${
short_token
}
&tab=1&
type=
${
this
.
type
}
&project_id=
${
this
.
project_id
}
&project_name=
${
this
.
project_name
}
`
},
onShow
:
function
()
{
uni
.
$once
(
"refresh"
,
(
res
)
=>
{
let
short_token
=
uni
.
getStorageSync
(
"short_token"
)
this
.
province_no
=
res
.
province_no
this
.
city_no
=
res
.
city_no
this
.
url
=
`
${
this
.
webUrl
}
/mobileLaborScreen?token_id=
${
short_token
}
&tab=2&province_no=
${
this
.
province_no
}
&city_no=
${
this
.
city_no
}
`
})
//
uni.$once("refresh", (res) => {
//
let short_token = uni.getStorageSync("short_token")
//
this.province_no = res.province_no
//
this.city_no = res.city_no
//
this.url =
// `${this.webUrl}/mobileLaborScreen?token_id=${short_token}&tab=1&type=${this.type}&project_id=${this.project_id}&project_name=${this.project_name
}`
//
})
},
methods
:
{
...
...
pages/monitor/monitor.vue
View file @
79b9ae2a
<
template
>
<view
class=
"content"
>
<titleBar
title=
"欢迎您访问工地一点通"
></titleBar>
<view
class=
"header-content"
>
<image
src=
"../../static/home-head.png"
class=
"header-image"
></image>
<navbar
:title=
"title"
:showBack=
"false"
></navbar>
</view>
<view
class=
"org-name"
>
{{
orgName
||
""
}}
</view>
<view
class=
"list-content"
v-if=
"isHasAuth"
>
<view
class=
"item-content"
v-for=
"(app,index) in apps"
:key=
"index"
>
<image
class=
"image"
src=
"../../static/lwkb-bg-image.png"
></image>
<view
class=
"bottom-content"
>
<view
class=
"name"
>
{{
app
.
app_des
||
""
}}
</view>
<text
class=
"btn"
@
click=
"toIndex(index)"
>
进入
</text>
</view>
</view>
</view>
<view
class=
"default-content"
v-if=
"!isHasAuth"
>
<image
src=
"../../static/ic-gth.png"
class=
"image"
></image>
<view
class=
"default-text"
>
当前无监控台权限
</view>
</view>
<view>
</view>
<uni-tabbar
currentPage=
"2"
></uni-tabbar>
</view>
</
template
>
...
...
@@ -26,9 +38,14 @@
showed
:
1
,
app_endpoint
:
2
,
is_publish
:
1
,
app_sort
:
2
app_sort
:
2
,
publish_target
:
"ydt"
},
apps
:
[],
apps
:
[{}],
currentJob
:
{},
project_id
:
""
,
orgName
:
""
,
isProject
:
false
}
},
onLoad
()
{
...
...
@@ -37,6 +54,26 @@
onShow
()
{
this
.
userInfo
=
getApp
().
globalData
.
userInfo
this
.
isHasAuth
=
this
.
userInfo
.
identity
.
code
==
"PM"
if
(
this
.
isHasAuth
)
{
this
.
project_id
=
uni
.
getStorageSync
(
"project_id"
)
if
(
!
this
.
project_id
)
{
this
.
isProject
=
false
console
.
log
(
"用户信息"
,
this
.
userInfo
);
let
jobs
=
this
.
userInfo
.
user
.
job_list
console
.
log
(
"岗位列表"
,
jobs
);
let
currentComId
=
this
.
userInfo
.
user
.
comp_id
let
job
=
jobs
.
find
(
item
=>
item
.
company_id
==
currentComId
)
console
.
log
(
"当前岗位"
,
job
);
this
.
currentJob
=
job
this
.
orgName
=
this
.
currentJob
.
org_name
}
else
{
this
.
isProject
=
true
this
.
orgName
=
uni
.
getStorageSync
(
"org_name"
)
}
}
},
methods
:
{
// 获取app列表数据
...
...
@@ -94,6 +131,19 @@
}
}
.org-name
{
font-weight
:
500
;
width
:
408
rpx
;
margin
:
15px
30
rpx
;
z-index
:
999
;
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
font-size
:
24
rpx
;
text-align
:
left
;
color
:
#fff
;
}
.default-content
{
display
:
flex
;
flex-direction
:
column
;
...
...
@@ -115,11 +165,62 @@
.list-content
{
display
:
flex
;
z-index
:
999
;
flex-direction
:
column
;
.item-content
{
position
:
relative
;
width
:
690
rpx
;
height
:
172px
;
border-radius
:
30
rpx
;
margin
:
0
30
rpx
30
rpx
30
rpx
;
image
{
width
:
690
rpx
;
height
:
172px
;
border-radius
:
30
rpx
;
position
:
absolute
;
top
:
0
;
left
:
0
;
}
.bottom-content
{
position
:
absolute
;
bottom
:
0
;
left
:
0
;
width
:
690
rpx
;
height
:
54px
;
border-radius
:
0
0
30
rpx
30
rpx
;
background
:
#3b73fe
;
opacity
:
0.85
;
.name
{
position
:
absolute
;
top
:
15px
;
left
:
30
rpx
;
font-weight
:
600
;
font-size
:
34
rpx
;
color
:
#fff
;
}
.btn
{
position
:
absolute
;
right
:
30
rpx
;
top
:
15px
;
width
:
120
rpx
;
font-weight
:
600
;
font-size
:
13px
;
text-align
:
center
;
line-height
:
24px
;
justify-content
:
center
;
color
:
#3b73fe
;
height
:
24px
;
border-radius
:
24
rpx
;
background
:
#fff
;
}
}
}
}
}
</
style
>
Write
Preview
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
Please
register
or
sign in
to comment