Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cust-app
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
李伟
cust-app
Commits
04df1766
Commit
04df1766
authored
Dec 18, 2024
by
liwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改了活动页面
parent
fe1bf400
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
728 additions
and
612 deletions
+728
-612
pages.json
pages.json
+4
-6
activity.vue
pages/tab/activity.vue
+723
-605
list.vue
pagesAnnouncement/announcement/list.vue
+1
-1
No files found.
pages.json
View file @
04df1766
...
@@ -58,13 +58,10 @@
...
@@ -58,13 +58,10 @@
"path"
:
"pages/tab/activity"
,
"path"
:
"pages/tab/activity"
,
"style"
:
"style"
:
{
{
"navigation
Style"
:
"custom
"
,
"navigation
BarTitleText"
:
"活动
"
,
"backgroundColor"
:
"#F4F5F9"
,
"backgroundColor"
:
"#F4F5F9"
,
"backgroundColorTop"
:
"#F4F5F9"
,
"backgroundColorTop"
:
"#F4F5F9"
,
"backgroundColorBottom"
:
"#F4F5F9"
,
"backgroundColorBottom"
:
"#F4F5F9"
"enablePullDownRefresh"
:
false
,
"onReachBottomDistance"
:
50
,
"disableScroll"
:
true
}
}
}
}
],
],
...
@@ -343,7 +340,8 @@
...
@@ -343,7 +340,8 @@
"selectedColor"
:
"#333333"
,
"selectedColor"
:
"#333333"
,
"borderStyle"
:
"black"
,
"borderStyle"
:
"black"
,
"backgroundColor"
:
"#ffffff"
,
"backgroundColor"
:
"#ffffff"
,
"list"
:
[{
"list"
:
[
{
"pagePath"
:
"pages/tab/index"
,
"pagePath"
:
"pages/tab/index"
,
"iconPath"
:
"static/tab/ld.png"
,
"iconPath"
:
"static/tab/ld.png"
,
"selectedIconPath"
:
"static/tab/lds.png"
,
"selectedIconPath"
:
"static/tab/lds.png"
,
...
...
pages/tab/activity.vue
View file @
04df1766
<
template
>
<
template
>
<view
class=
""
>
<view>
<view
class=
"home-page-container"
style=
"height: 100vh;"
v-if=
"nologin==true"
@
touchmove
.
stop
.
prevent=
"() =>
{}">
<view
class=
"pageanima"
>
<image
class=
"nologi-bgc-imga"
src=
"../../static/images/bg-c.png"
mode=
"aspectFill"
></image>
<view
class=
"div"
style=
"height: 100%;background: #F4F5F9;"
>
<u-navbar
class=
"myNav"
:placeholder=
"true"
>
<!-- 轮播图 后面放banner里的图-->
<view
class=
"u-nav-slot"
slot=
"left"
>
<view
class=
"box"
>
<view
class=
"text"
>
活动
</view>
<view
class=
"swiper"
>
<ls-swiper
:list=
"userData.imgList"
imgKey=
""
:loop=
"true"
:dots=
"true"
:autoplay=
"true"
:height=
"200"
/>
</view>
</view>
</u-navbar>
<view
class=
"nologi-noimg"
>
<image
src=
"../../static/images/nologin.png"
style=
"width: 100%;height: 100%;"
mode=
"aspectFill"
></image>
</view>
<view
class=
"nologi-text"
>
登录后才能查看消息哦
</view>
<view
class=
"nologi-nobutton"
@
click=
"getUserInfo"
>
点此登录
</view>
</view>
</view>
<view
v-if=
"nologin==false"
>
<!-- 活动列表--
>
<view
class=
"box"
v-if=
"!isShow
"
>
<view
class=
"card"
v-for=
"(item,index) in businessList"
:key=
"index"
@
click=
"gotodetail(item)
"
>
<u-navbar
:bgColor=
"bgColor"
:placeholder=
"true
"
>
<view
class=
"contentBody
"
>
<view
class=
"u-nav-slot"
slot=
"lef
t"
>
<view
class=
"leftlis
t"
>
<view
class=
"text"
>
消息
</view
>
<image
src=
"/static/images/home/gonggao.png"
class=
"leftlistimage"
/
>
</view>
</view>
</u-navbar>
<view
class=
"rightlist"
>
<view
class=
"msgs"
>
<view
class=
"rightlist-title"
>
{{
item
.
name
}}
</view>
<u-swipe-action
:autoClose=
"true"
:key=
"key"
>
<view
class=
"rightlist-time"
>
<u-swipe-action-item
:show=
"isOpened"
:auto-close=
"false"
:options=
"option"
v-for=
"(i,index) in list"
:key=
"i.sendUserId"
<view
class=
"timeicon"
>
@
click=
"delClick"
>
<u-icon
name=
"clock"
color=
"#666666;"
size=
"15"
></u-icon>
<view
class=
"item"
@
click=
"actionClick(i)"
>
<image
class=
"ava"
:src=
"i.headPortrait"
mode=
"aspectFill"
></image>
<u-badge
customStyle=
"margin-left:11%;margin-bottom: 10%;"
style=
"margin-bottom: ;"
v-if=
"i.unreadCount!==null"
max=
"99"
:value=
"i.unreadCount"
:absolute=
"true"
>
</u-badge>
<!--
<view
class=
"ava"
:style=
"
{backgroundImage: 'url(' + i.headPortrait + ')'}">
<u-badge
v-if=
"i.unreadCount!==null"
max=
"99"
:value=
"i.unreadCount"
:absolute=
"true"
>
</u-badge>
</view>
-->
<view
class=
"r"
>
<view
class=
"title"
>
<text
class=
"name"
>
{{
i
.
nickName
}}
</text>
<text
class=
"time"
>
{{
i
.
latelyTime
.
slice
(
10
,
16
)
}}
</text>
</view>
</view>
<view
class=
"msg"
>
<view
class=
"timetext"
>
{{
item
.
createTime
}}
</view>
<view
v-if=
"i.messageDescribeFormat=='text'"
>
<rich-text
:nodes=
"i.messageDescribe"
></rich-text>
</view>
</view>
<view
v-if=
"i.messageDescribeFormat=='emoji'"
>
<view
class=
"rightlist-address"
>
[动画表情]
<view
class=
"addressicon"
>
<u-icon
name=
"map"
color=
"#D84848;"
size=
"15"
></u-icon>
</view>
</view>
<!-- 图片消息 -->
<view
class=
"addresstext"
v-if=
"item.address"
>
{{
item
.
address
}}
</view>
<view
v-if=
"i.messageDescribeFormat=='image'"
>
<view
class=
"addresstext"
v-else
>
-
</view>
[图片]
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</u-swipe-action-item>
</u-swipe-action>
</view>
</view>
<view
class=
"bussiness-nomore"
>
~ 没有更多啦 ~
</view>
</view>
</view>
<template
v-if=
"isShow"
>
<!--
<login
@
change=
"getUserInfo"
:isLoginPop=
"isLoginPop"
class=
"my-select"
></login>
-->
<u-navbar
bgColor=
"#fff"
:placeholder=
"true"
>
<view
class=
"u-nav-slot"
slot=
"left"
>
<view
class=
"text"
>
消息
</view>
</view>
</u-navbar>
<empty
height=
"calc(100vh - 100px)"
/>
</
template
>
</view>
</view>
<ELM
ref=
"elm"
:msg=
"tipMsg"
:isConfirm=
"isConfirm"
@
confirm=
"confirm"
></ELM>
</view>
</view>
</
template
>
</
template
>
<
script
>
<
script
>
import
ELM
from
'@/components/elm-toast/index.vue'
;
let
util
=
require
(
'@/util/means.js'
);
import
empty
from
'@/components/empty.vue'
import
LsSwiper
from
'../../components/ls-swiper/index.vue'
;
import
{
export
default
{
WS
}
from
'@/util/wsConfig.js'
export
default
{
components
:
{
components
:
{
empty
,
LsSwiper
ELM
},
},
data
()
{
data
()
{
return
{
return
{
key
:
1
,
businessList
:
[
bgColor
:
'#F4F5F9'
,
{
option
:
[{
name
:
'测试1'
,
text
:
'删除'
,
createTime
:
'2024-10-12'
,
style
:
{
address
:
'天津'
backgroundColor
:
'#FF8080'
}
}],
list
:[],
total
:
0
,
params
:
{
pageIndex
:
1
,
pageSize
:
10
},
},
count
:
0
,
{
isShow
:
false
,
name
:
'测试2'
,
ownerId
:
null
,
createTime
:
'2024-10-12'
,
timeoutObj
:
null
,
address
:
'天津'
reConnect
:
true
,
socketTask
:
null
,
nologin
:
''
,
tipMsg
:
''
,
isConfirm
:
false
}
},
},
onShow
()
{
{
if
(
uni
.
getStorageSync
(
'info'
))
{
name
:
'测试3'
,
this
.
nologin
=
false
createTime
:
'2024-10-12'
,
this
.
ownerId
=
uni
.
getStorageSync
(
'info'
)
!=
null
?
uni
.
getStorageSync
(
'info'
).
id
:
null
;
address
:
'天津'
this
.
getMsgList
(
true
);
this
.
connectSocketInit
();
}
else
{
this
.
nologin
=
true
}
},
},
// 关闭websocket【必须在实例销毁之前关闭,否则会是underfined错误】
{
onHide
()
{
name
:
'测试4'
,
this
.
reConnect
=
true
;
createTime
:
'2024-10-12'
,
this
.
closeSocket
();
address
:
'天津'
clearInterval
(
this
.
timeoutObj
);
//销毁定时器
},
},
onReachBottom
()
{
{
let
{
name
:
'测试5'
,
pageIndex
,
createTime
:
'2024-10-12'
,
pageSize
address
:
'天津'
}
=
this
.
params
if
(
pageIndex
*
pageSize
<
this
.
total
)
{
this
.
params
.
pageIndex
+=
1
;
this
.
getMsgList
()
}
},
},
methods
:
{
{
async
getUnRead
()
{
name
:
'测试6'
,
const
res
=
await
this
.
$myRequest
({
createTime
:
'2024-10-12'
,
url
:
`/message/un/read`
,
address
:
'天津'
withToken
:
true
,
method
:
'GET'
});
this
.
count
=
res
.
data
.
data
uni
.
setTabBarBadge
({
//显示数字
index
:
1
,
//tabbar下标
text
:
`
${
res
.
data
.
data
}
`
//数字
})
},
},
delClick
({
{
index
,
name
:
'测试6'
,
name
createTime
:
'2024-10-12'
,
})
{
address
:
'天津'
console
.
log
(
1111
);
console
.
log
(
index
);
this
.
$myRequest
({
url
:
`/message/list/delete/
${
this
.
list
[
index
].
sendUserId
}
`
,
withToken
:
true
,
method
:
'DELETE'
}).
then
(
res
=>
{
this
.
referesh
()
this
.
status
=
'close'
;
})
},
},
actionClick
(
i
)
{
{
this
.
tipMsg
=
"开源版暂未开放,敬请期待!如需旗舰版,可联系作者微信(MMRWXM)咨询"
;
name
:
'测试6'
,
this
.
$refs
.
elm
.
showDialog
();
createTime
:
'2024-10-12'
,
address
:
'天津'
},
},
async
getMsgList
(
isReload
)
{
let
page
=
this
.
params
;
if
(
isReload
){
page
.
pageIndex
=
1
;
if
(
this
.
list
!=
null
&&
this
.
list
.
length
>
page
.
pageSize
)
{
{
page
.
pageSize
=
this
.
list
.
length
;
name
:
'测试6'
,
}
createTime
:
'2024-10-12'
,
address
:
'天津'
}
}
const
res
=
await
this
.
$myRequest
({
]
,
// 商家列表
url
:
`/message/list`
,
notice
:
'这里是公告这里是公告这里是公告这里是公告这里是公告这里是公告这里是公告这里是公告'
,
withToken
:
true
,
showBtn
:
true
,
data
:
page
,
showArrowDown
:
true
,
method
:
'GET'
showTabbar
:
true
,
});
scrollTop
:
0
,
if
(
isReload
)
{
isLoginPop
:
false
,
this
.
list
=
res
.
data
.
data
.
rows
;
userData
:
{
}
else
{
userArticleViewResponse
:
{
this
.
list
=
this
.
list
.
concat
(
articleContent
:
null
,
res
.
data
.
data
.
rows
articleImg
:
[]
);
}
}
this
.
total
=
res
.
data
.
data
.
totalCount
if
(
this
.
total
<=
0
)
{
this
.
isShow
=
true
}
else
{
this
.
isShow
=
false
}
this
.
key
+=
1
this
.
$nextTick
(()
=>
{
this
.
$forceUpdate
()
})
this
.
getUnRead
();
},
},
connectSocketInit
:
function
()
{
data
:
[],
let
self
=
this
;
count
:
0
,
if
(
self
.
reConnect
)
{
console
.
log
(
"连接socket"
);
self
.
socketTask
=
uni
.
connectSocket
({
url
:
WS
,
success
(
data
)
{
console
.
log
(
"连接socket成功"
);
},
fail
(
data
)
{
console
.
log
(
"连接socket失败"
);
}
});
uni
.
onSocketOpen
(
function
(
res
)
{
//监听WebSocket连接打开事件
let
msgData
=
{
messageType
:
"CONNECT"
,
info
:
self
.
ownerId
};
};
console
.
log
(
"发送连接请求"
);
self
.
websocketSendMessage
(
msgData
);
});
}
},
},
// 关闭websocket【离开这个页面的时候执行关闭】
onHide
()
{
closeSocket
()
{
let
self
=
this
;
uni
.
closeSocket
({
success
(
res
)
{
console
.
log
(
"关闭成功"
,
res
);
},
fail
(
err
)
{
console
.
log
(
"关闭失败"
,
err
);
},
});
},
},
websocketSendMessage
(
msgData
)
{
onShow
()
{
let
self
=
this
;
this
.
getRecUserInfo
();
uni
.
sendSocketMessage
({
data
:
JSON
.
stringify
(
msgData
),
success
()
{
if
(
msgData
.
messageType
==
'CONNECT'
)
{
console
.
log
(
"建立连接成功 启动监听"
+
JSON
.
stringify
(
msgData
));
self
.
websocketOnMessage
();
}
else
{
console
.
log
(
"消息发送成功"
+
JSON
.
stringify
(
msgData
));
}
},
},
fail
()
{
onPageScroll
(
e
)
{
console
.
log
(
"发送失败,重新建立连接"
+
JSON
.
stringify
(
msgData
));
if
(
!
this
.
isInit
)
{
setTimeout
(()
=>
{
return
;
self
.
websocketSendMessage
(
msgData
);
},
1000
)
}
}
});
const
_this
=
this
;
},
if
(
e
.
scrollTop
<=
0
)
{
websocketOnMessage
()
{
this
.
showArrowDown
=
true
;
let
self
=
this
;
return
;
uni
.
onSocketMessage
((
res
)
=>
{
}
console
.
log
(
"监听到socket信息:"
,
res
);
this
.
showArrowDown
=
false
;
if
(
"CONNECT_SUCCESS"
==
res
.
data
)
{
if
(
this
.
scrollTop
-
e
.
scrollTop
>
50
)
{
//建立连接成功后开始心跳
this
.
bottom_offset
=
false
;
this
.
reset
();
// 检测心跳reset,防止长时间连接导致连接关闭
}
}
else
{
if
(
this
.
bottom_offset
)
{
return
;
//收到消息
}
let
msgData
=
JSON
.
parse
(
res
.
data
);
if
(
!
_this
.
flag
)
{
console
.
log
(
"收到消息:"
,
JSON
.
stringify
(
msgData
));
setTimeout
(()
=>
{
//消息应答
if
(
e
.
scrollTop
>
_this
.
scrollTop
&&
_this
.
showTabbar
)
{
this
.
answerMessage
(
msgData
.
msgNo
);
uni
.
hideTabBar
({
this
.
referesh
();
animation
:
true
,
success
()
{
_this
.
showTabbar
=
false
;
}
}
});
});
},
}
else
if
(
e
.
scrollTop
<
_this
.
scrollTop
&&!
_this
.
showTabbar
)
{
// 启动心跳 start
uni
.
showTabBar
({
start
()
{
animation
:
true
,
let
self
=
this
;
self
.
timeoutObj
=
setInterval
(
function
()
{
uni
.
sendSocketMessage
({
data
:
'{"messageType":"ALIVE"}'
,
success
()
{
success
()
{
console
.
log
(
"消息列表心跳"
);
_this
.
showTabbar
=
true
;
self
.
reConnect
=
false
;
},
fail
()
{
console
.
log
(
"心跳失败重新连接"
);
setTimeout
(()
=>
{
self
.
reConnect
=
true
;
self
.
connectSocketInit
();
},
1000
)
}
}
});
});
},
1000
);
}
},
_this
.
scrollTop
=
e
.
scrollTop
;
// 检测心跳reset
_this
.
flag
=
false
;
reset
()
{
},
200
);
clearInterval
(
this
.
timeoutObj
);
}
this
.
start
();
// 启动心跳
_this
.
flag
=
true
;
},
},
referesh
()
{
methods
:
{
// 刷新消息列表
// 页面跳转
gotopage
(
url
)
{
this
.
getMsgList
(
true
);
uni
.
reLaunch
({
url
:
url
});
},
},
answerMessage
(
MsgNo
)
{
//热门推荐 跳转
let
self
=
this
;
gotodetail
(
item
){
uni
.
sendSocketMessage
({
uni
.
navigateTo
({
data
:
'{"messageType":"ANSWER","info":"'
+
MsgNo
+
'"}'
,
url
:
'/pages2/business/business/id='
+
item
.
businessId
success
()
{
})
console
.
log
(
"消息应答:"
+
MsgNo
);
},
},
fail
()
{
async
getUnRead
()
{
console
.
log
(
"消息应答失败"
);
const
res
=
await
this
.
$myRequest
({
}
url
:
`/message/un/read`
,
withToken
:
true
,
method
:
'GET'
});
});
this
.
count
=
res
.
data
.
data
uni
.
setTabBarBadge
({
//显示数字
index
:
1
,
//tabbar下标
text
:
`
${
res
.
data
.
data
}
`
//数字
})
},
},
//登录
getUserInfo
(
e
)
{
getUserInfo
()
{
if
(
e
==
0
)
{
this
.
isLoginPop
=
false
;
return
;
}
// #ifdef MP-WEIXIN
// #ifdef MP-WEIXIN
try
{
try
{
wx
.
getUserProfile
({
wx
.
getUserProfile
({
desc
:
'用于完善会员资料'
,
desc
:
'用于完善会员资料'
,
success
:
(
resinfo
)
=>
{
success
:
resinfo
=>
{
wx
.
login
({
wx
.
login
({
success
:
(
res
)
=>
{
success
:
res
=>
{
if
(
res
.
code
)
{
if
(
res
.
code
)
{
console
.
log
(
res
.
code
,
resinfo
);
console
.
log
(
res
.
code
,
resinfo
);
this
.
setCode
(
res
.
code
,
resinfo
);
this
.
setCode
(
res
.
code
,
resinfo
);
}
else
{}
}
else
{}
},
},
fail
:
(
err
)
=>
{}
fail
:
err
=>
{
})
}
});
},
},
fail
:
(
errinfo
)
=>
{
fail
:
errinfo
=>
{
this
.
setCode
(
this
.
generateRandomString
(
10
),
'null'
);
this
.
setCode
(
this
.
generateRandomString
(
10
),
'null'
);
}
}
})
});
}
catch
{
}
catch
{
wx
.
getUserInfo
({
wx
.
getUserInfo
({
success
:
(
resinfo
)
=>
{
success
:
resinfo
=>
{
wx
.
login
({
wx
.
login
({
success
:
(
res
)
=>
{
success
:
res
=>
{
if
(
res
.
code
)
{
if
(
res
.
code
)
{
console
.
log
(
res
.
code
,
resinfo
);
console
.
log
(
res
.
code
,
resinfo
);
this
.
setCode
(
res
.
code
,
resinfo
);
this
.
setCode
(
res
.
code
,
resinfo
);
}
else
{}
}
else
{}
},
},
fail
:
(
err
)
=>
{}
fail
:
err
=>
{}
})
});
},
},
fail
:
(
errinfo
)
=>
{}
fail
:
errinfo
=>
{}
})
});
}
}
// #endif
// #endif
// #ifndef MP-WEIXIN
// #ifndef MP-WEIXIN
this
.
setCode
(
"ip"
,
'null'
);
this
.
setCode
(
"ip"
,
'null'
);
// #endif
// #endif
},
},
async
setCode
(
code
,
resinfo
)
{
getRecUserInfo
()
{
console
.
log
(
"开始获取用户信息"
)
// 获取推荐用户信息
let
age
=
20
;
if
(
this
.
age
)
{
age
=
util
.
mymethod
(
uni
.
getStorageSync
(
'itemobj'
).
birthday
);
}
let
loginType
;
uni
.
getStorageSync
(
'token'
)
?
(
loginType
=
true
)
:
(
loginType
=
false
);
console
.
log
(
code
)
this
.
$myRequest
({
const
res
=
await
this
.
$myRequest
({
url
:
'nostalgia/fruser/recommendUserInfo'
,
url
:
'token/wxAppletLogin'
,
withToken
:
loginType
,
data
:
{
data
:
{
code
:
code
age
,
gender
:
this
.
gender
==
undefined
?
"FEMALE"
:
this
.
gender
},
},
method
:
'POST'
,
method
:
'GET'
});
}).
then
(
res
=>
{
console
.
log
(
res
,
'delshoucang'
);
console
.
log
(
"获取用户信息完成"
)
var
obj
=
{
code
:
code
,
state
:
res
.
data
.
code
,
nickName
:
resinfo
!=
'null'
?
resinfo
.
userInfo
.
nickName
:
"匿名用户"
}
uni
.
setStorageSync
(
'verification'
,
obj
);
if
(
res
.
data
.
code
==
200
)
{
if
(
res
.
data
.
code
==
200
)
{
this
.
tipMsg
=
"登录成功"
;
if
(
res
.
data
.
data
==
null
)
{
this
.
$refs
.
elm
.
showDialog
();
this
.
showArrowDown
=
false
;
this
.
isInit
=
false
;
var
info
=
{
// this.data = [];
birthday
:
res
.
data
.
data
.
info
.
birthday
,
this
.
userData
=
{};
city
:
res
.
data
.
data
.
info
.
city
,
this
.
nextData
=
{};
gender
:
res
.
data
.
data
.
info
.
gender
,
uni
.
setTabBarBadge
({
headPortrait
:
res
.
data
.
data
.
info
.
headPortrait
,
index
:
0
,
id
:
res
.
data
.
data
.
info
.
id
,
text
:
'0'
nickName
:
res
.
data
.
data
.
info
.
nickName
,
});
}
}
else
{
uni
.
setStorageSync
(
'info'
,
info
);
this
.
showArrowDown
=
true
;
uni
.
setStorageSync
(
'token'
,
res
.
data
.
data
.
token
);
this
.
isInit
=
true
;
this
.
ownerId
=
res
.
data
.
data
.
info
.
id
;
this
.
userData
=
res
.
data
.
data
;
this
.
getMsgList
(
true
);
if
(
this
.
userData
.
userArticleViewResponse
.
articleImg
.
length
>
3
){
this
.
connectSocketInit
();
this
.
userData
.
userArticleViewResponse
.
articleImg
=
this
.
userData
.
userArticleViewResponse
.
articleImg
.
splice
(
0
,
3
)
}
else
if
(
res
.
data
.
code
==
11002
)
{
}
uni
.
setTabBarBadge
({
index
:
0
,
text
:
`
${
res
.
data
.
data
.
surplusNum
}
`
});
uni
.
reLaunch
({
this
.
showBtn
=
true
;
url
:
"/pagesintroduction/selfIntroduction?code="
+
code
console
.
log
(
})
`console.log("获取用户信息完成") 用户id
${
res
.
data
.
data
.
id
}
****剩余次数
${
res
.
data
.
data
.
surplusNum
}
`
);
}
}
else
{
}
else
{
this
.
tipMsg
=
res
.
data
.
msg
;
this
.
$refs
.
elm
.
showDialog
();
this
.
$refs
.
elm
.
showDialog
();
}
}
})
},
},
generateRandomString
(
length
)
{
generateRandomString
(
length
)
{
let
result
=
uni
.
getStorageSync
(
'touristopenid'
);
let
result
=
uni
.
getStorageSync
(
'touristopenid'
);
...
@@ -436,178 +309,423 @@
...
@@ -436,178 +309,423 @@
uni
.
setStorageSync
(
'touristopenid'
,
result
);
uni
.
setStorageSync
(
'touristopenid'
,
result
);
return
result
;
return
result
;
}
}
}
},
}
};
</
script
>
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
view
{
.bussiness-nomore
{
box-sizing
:
border-box
;
text-align
:
center
;
padding
:
42rpx
0
;
font-size
:
13px
;
font-family
:
Source
Han
Sans
CN-Regular
,
Source
Han
Sans
CN
;
font-weight
:
400
;
color
:
#B9B9B9
;
}
@keyframes
leftMove
{
0
%
{
left
:
-130rpx
;
}
100
%
{
left
:
0
;
}
}
@keyframes
rightMove
{
0
%
{
right
:
-130rpx
;
}
100
%
{
right
:
0
;
}
}
}
.u-nav-slot
{
@keyframes
topHide
{
0
%
{
top
:
50%
;
width
:
0
;
height
:
0
;
}
70
%
{
top
:
18%
;
width
:
100rpx
;
height
:
100rpx
;
}
80
%
{
top
:
18%
;
width
:
100rpx
;
height
:
100rpx
;
}
90
%
{
top
:
20%
;
width
:
80rpx
;
height
:
80rpx
;
}
100
%
{
top
:
20%
;
wixdth
:
0
;
height
:
0
;
}
}
page
{
width
:
100%
;
height
:
100vh
;
}
.card
{
background-color
:
white
;
width
:
680rpx
;
height
:
250rpx
;
margin
:
34rpx
34rpx
0
34rpx
;
border-radius
:
12rpx
12rpx
12rpx
12rpx
;
.contentBody
{
margin-left
:
40rpx
;
padding-top
:
30rpx
;
display
:
flex
;
.leftlist
{
margin-right
:
26rpx
;
.leftlistimage
{
width
:
220rpx
;
height
:
166rpx
;
border-radius
:
12px
12px
12px
12px
;
}
}
.rightlist
{
.rightlist-title
{
margin-top
:
12rpx
;
margin-left
:
17rpx
;
font-size
:
16px
;
font-family
:
Source
Han
Sans
CN-Medium
,
Source
Han
Sans
CN
;
font-weight
:
500
;
color
:
#222222
;
margin-bottom
:
12rpx
;
}
.rightlist-message
{
font-size
:
14px
;
font-family
:
Source
Han
Sans
CN-Regular
,
Source
Han
Sans
CN
;
font-weight
:
400
;
color
:
#666666
;
margin-bottom
:
26rpx
;
white-space
:
nowrap
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
width
:
calc
(
100vw
-
220rpx
-
26rpx
-
42rpx
-
34rpx
);
}
.rightlist-time
{
margin-top
:
12rpx
;
display
:
flex
;
display
:
flex
;
margin-bottom
:
24rpx
;
align-items
:
center
;
align-items
:
center
;
.text
{
.timeicon
{
height
:
44rpx
;
margin-right
:
14rpx
;
text-align
:
center
;
font-size
:
32rpx
;
font-family
:
PingFang
SC-Bold
,
PingFang
SC
;
font-weight
:
bold
;
color
:
#000000
;
margin-left
:
315rpx
;
line-height
:
44rpx
;
}
}
}
.box
{
.timetext
{
padding
:
0
32rpx
;
font-size
:
14px
;
min-height
:
100vh
;
font-family
:
Source
Han
Sans
CN-Regular
,
Source
Han
Sans
CN
;
background-color
:
#F4F5F9
;
font-weight
:
400
;
color
:
#666666
;
}
}
.u-nav-slot
{
.rightlist-address
{
display
:
flex
;
display
:
flex
;
margin-bottom
:
30rpx
;
align-items
:
center
;
align-items
:
center
;
.text
{
.addressicon
{
height
:
44rpx
;
margin-right
:
14rpx
;
text-align
:
center
;
margin-top
:
2rpx
;
font-size
:
32rpx
;
}
font-family
:
PingFang
SC-Bold
,
PingFang
SC
;
font-weight
:
bold
;
.addresstext
{
color
:
#000000
;
font-size
:
14px
;
margin-left
:
315rpx
;
font-family
:
Source
Han
Sans
CN-Regular
,
Source
Han
Sans
CN
;
line-height
:
44rpx
;
font-weight
:
400
;
color
:
#DF6969
;
}
}
}
}
}
}
.msgs
{
.content
{
/
deep
/
.u-swipe-action-item
{
margin-left
:
40rpx
;
border-radius
:
24rpx
;
padding-top
:
32rpx
;
margin
:
20rpx
0
;
display
:
flex
;
flex-direction
:
column
;
.item
{
.have_image
{
height
:
160rpx
;
background
:
#FFFFFF
;
padding
:
30rpx
;
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
align-items
:
center
;
border-radius
:
24rpx
;
font-size
:
28rpx
;
overflow
:
hidden
;
font-weight
:
bold
;
.ava
{
width
:
102rpx
;
image
{
height
:
102rpx
;
width
:
28rpx
;
border-radius
:
50%
;
height
:
28rpx
;
//background-image: url('../../static/logo.png');
}
background-size
:
100%
100%
;
.u-badg
e
{
.titl
e
{
left
:
95
rpx
;
padding-left
:
12
rpx
;
}
}
}
}
.r
{
.one
{
width
:
498rpx
;
font-size
:
28rpx
;
margin-top
:
26rpx
;
}
}
}
.title
{
.box
{
.swiper
{
position
:
relative
;
.hint
{
position
:
absolute
;
top
:
46rpx
;
right
:
34rpx
;
width
:
202rpx
;
height
:
62rpx
;
background
:
rgba
(
255
,
255
,
255
,
0
.2
);
border-radius
:
34rpx
;
display
:
flex
;
display
:
flex
;
justify-content
:
space-between
;
justify-content
:
center
;
align-items
:
flex-end
;
align-items
:
center
;
.name
{
image
{
width
:
460rpx
;
width
:
24rpx
;
overflow
:
hidden
;
//超出隐藏
height
:
28rpx
;
white-space
:
nowrap
;
//不折行
text-overflow
:
ellipsis
;
//溢出显示省略号
font-size
:
32rpx
;
font-family
:
PingFang
SC-Bold
,
PingFang
SC
;
font-weight
:
bold
;
color
:
#333333
;
}
}
.time
{
.t
{
font-size
:
24rpx
;
font-size
:
28rpx
;
font-family
:
PingFang
SC-Regular
,
PingFang
SC
;
font-weight
:
400
;
font-weight
:
400
;
color
:
#C9C9D0
;
color
:
#333333
;
margin-left
:
14rpx
;
}
}
}
}
}
.msg
{
.lable
{
width
:
100%
;
display
:
flex
;
margin-top
:
20rpx
;
align-items
:
center
;
font-size
:
28rpx
;
font-size
:
28rpx
;
font-family
:
PingFang
SC-Regular
,
PingFang
SC
;
font-family
:
PingFang
SC-Regular
,
PingFang
SC
;
font-weight
:
400
;
font-weight
:
400
;
color
:
#434343
;
color
:
#434343
;
overflow
:
hidden
;
//超出隐藏
margin-left
:
50rpx
;
white-space
:
nowrap
;
//不折行
margin-top
:
48rpx
;
text-overflow
:
ellipsis
;
//溢出显示省略号
}
.lable-div
{
}
height
:
54rpx
;
background
:
#e5f4ff
;
border-radius
:
28rpx
;
line-height
:
54rpx
;
padding
:
0
38rpx
;
}
}
}
}
.line
{
width
:
636rpx
;
// height: 2rpx;
// background-color: #c8d3e2;
// border-bottom: 2rpx dashed #c8d3e2;
margin
:
0
auto
;
margin-top
:
44rpx
;
}
}
.circles
{
background
:
#f5f6fa
;
width
:
44rpx
;
height
:
44rpx
;
border-radius
:
50%
;
position
:
absolute
;
right
:
-22rpx
;
top
:
1002rpx
;
}
}
.nologi-bgc-imga
{
.circle
{
background
:
#f5f6fa
;
width
:
44rpx
;
height
:
44rpx
;
border-radius
:
50%
;
position
:
absolute
;
position
:
absolute
;
top
:
-120rpx
;
left
:
-22rpx
;
left
:
0rpx
;
top
:
1002rpx
;
width
:
100%
;
height
:
100%
;
pointer-events
:
none
;
}
}
.nologi-noimg
{
width
:
338rpx
;
width
:
686rpx
;
height
:
338rpx
;
margin
:
0
auto
;
margin
:
0
auto
;
padding-top
:
200rpx
;
border-radius
:
42rpx
42rpx
24rpx
24rpx
;
box-sizing
:
content-box
;
overflow
:
hidden
;
z-index
:
10
;
position
:
relative
;
background
:
#fff
;
.ling
{
height
:
42rpx
;
display
:
flex
;
align-items
:
center
;
margin-left
:
58rpx
;
margin-top
:
24rpx
;
.img
{
height
:
42rpx
;
width
:
42rpx
;
margin-right
:
8rpx
;
}
}
.nologi-text
{
width
:
100%
;
.text
{
height
:
4
4rpx
;
height
:
3
4rpx
;
font-size
:
32
rpx
;
font-size
:
24
rpx
;
font-family
:
'PingFang SC-Regular, PingFang SC'
;
font-family
:
PingFang
SC-Regular
,
PingFang
SC
;
font-weight
:
400
;
font-weight
:
400
;
color
:
#C9C9D0
;
color
:
#333333
;
line-height
:
44rpx
;
line-height
:
34rpx
;
text-align
:
center
;
}
margin-top
:
104rpx
;
}
}
.nologi-nobutton
{
.box-bq
{
width
:
392rpx
;
height
:
40rpx
;
height
:
84rpx
;
font-size
:
28rpx
;
background
:
linear-gradient
(
86deg
,
#C2D2F9
0%
,
#C5C2F3
100%
);
font-family
:
PingFang
SC-Bold
,
PingFang
SC
;
border-radius
:
42rpx
;
font-weight
:
bold
;
color
:
#333333
;
margin-left
:
58rpx
;
margin-top
:
24rpx
;
line-height
:
40rpx
;
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
justify-content
:
center
;
font-size
:
28rpx
;
.xian
{
width
:
2rpx
;
height
:
20rpx
;
background
:
#e0e2e8
;
margin
:
0
32rpx
;
}
}
.box-name
{
.simg
{
width
:
48rpx
;
height
:
48rpx
;
margin-left
:
20rpx
;
}
height
:
56rpx
;
font-size
:
40rpx
;
font-family
:
PingFang
SC-Heavy
,
PingFang
SC
;
font-weight
:
800
;
color
:
#4a4a4a
;
line-height
:
56rpx
;
margin-left
:
58rpx
;
margin-top
:
24rpx
;
display
:
flex
;
align-items
:
center
;
image
{
width
:
48rpx
;
height
:
48rpx
;
margin-left
:
20rpx
;
margin-top
:
5rpx
;
}
}
.box-jj
{
.box-jj-ta
{
width
:
618rpx
;
height
:
58rpx
;
background
:
#f5f6fa
;
border-radius
:
30rpx
30rpx
30rpx
30rpx
;
margin
:
0
auto
;
margin
:
0
auto
;
font-family
:
'PingFang SC-Regular, PingFang SC'
;
margin-top
:
32rpx
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
.text2
{
height
:
34rpx
;
font-size
:
24rpx
;
font-family
:
PingFang
SC-Regular
,
PingFang
SC
;
font-weight
:
400
;
font-weight
:
400
;
color
:
#415C9E
;
color
:
#333333
;
margin-top
:
40rpx
;
line-height
:
34rpx
;
margin-right
:
28rpx
;
}
.box-jj-ta-left
{
display
:
flex
;
align-items
:
center
;
.xian
{
width
:
2rpx
;
height
:
20rpx
;
background
:
#e0e2e8
;
margin
:
0
18rpx
;
}
}
.home-page-container
{
::v-deep
.u-navbar__content
{
.te
{
background
:
none
!
important
;
height
:
34rpx
;
background-color
:
none
!
important
;
font-size
:
24rpx
;
font-family
:
PingFang
SC-Regular
,
PingFang
SC
;
font-weight
:
400
;
color
:
#333333
;
line-height
:
34rpx
;
}
}
::v-deep
.u-status-bar
{
background
:
none
!
important
;
.img
{
background-color
:
none
!
important
;
width
:
24rpx
;
height
:
24rpx
;
margin
:
0
18rpx
0
26rpx
;
}
}
}
}
.msgbadge
{
margin-left
:
50rpx
;
}
}
width
:
100%
;
height
:
auto
;
background-color
:
#fff
;
position
:
relative
;
}
}
.pageanima
{
position
:
relative
;
}
.pagePop
{
animation-name
:
pagePop
;
// 动画名称
animation-timing-function
:
linear
;
// 动画执行方式,linear:匀速;ease:先慢再快后慢;ease-in:由慢速开始;ease-out:由慢速结束;ease-in-out:由慢速开始和结束;
// animation-delay: 1s; // 动画延迟时间
animation-duration
:
0
.5s
;
// 动画完成时间
}
@keyframes
pagePop
{
0
%
{
top
:
100rpx
;
opacity
:
0
.5
;
}
100
%
{
top
:
0
;
opacity
:
1
;
}
}
</
style
>
</
style
>
pagesAnnouncement/announcement/list.vue
View file @
04df1766
...
@@ -53,7 +53,7 @@
...
@@ -53,7 +53,7 @@
},
},
gotopage
(
item
){
gotopage
(
item
){
uni
.
navigateTo
({
uni
.
navigateTo
({
url
:
'/pages/announcement/detail'
+
'?id='
+
item
.
businessId
url
:
'/pages
Announcement
/announcement/detail'
+
'?id='
+
item
.
businessId
})
})
}
}
}
}
...
...
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