Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
pptist
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
viitto
pptist
Commits
cd113760
Commit
cd113760
authored
Jun 20, 2024
by
zhengke
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
关注公众号
parent
11c97d0b
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
146 additions
and
57 deletions
+146
-57
UserCard.vue
src/components/User/UserCard.vue
+24
-8
follow.vue
src/components/home/follow.vue
+94
-13
axios.ts
src/configs/axios.ts
+1
-1
UserService.ts
src/services/UserService.ts
+2
-2
WechatSerice.ts
src/services/WechatSerice.ts
+0
-11
user.ts
src/store/user.ts
+2
-2
wechatLogin.vue
src/views/Auth/components/wechatLogin.vue
+20
-14
index.vue
src/views/Editor/Thumbnails/index.vue
+2
-5
ElementDataMapping.vue
src/views/Editor/Toolbar/common/ElementDataMapping.vue
+1
-1
No files found.
src/components/User/UserCard.vue
View file @
cd113760
...
...
@@ -88,10 +88,11 @@
<
template
#
dropdown
>
<div
class=
"MarketPopoverMore row wrap pointer"
>
<div
class=
"column"
v-for=
"(item, index) in moreList"
@
click=
"forward(item)"
>
<div>
<div
style=
"position: relative;"
>
<img
:src=
"item.icon"
width=
"34"
height=
"34"
/>
<span
v-if=
"item.Id==2"
style=
"position: absolute;background: red;right: -25px;top: 0;border-radius: 50%;opacity: 0;"
@
click
.
stop=
"forward(item,1)"
>
</span>
</div>
<span>
{{
item
.
Name
}}
</span>
<span>
{{
item
.
Id
==
2
?(
personalInfor
.
IsOpenId
?
item
.
Name
:
'已关注公众号'
):
item
.
Name
}}
</span>
</div>
</div>
</
template
>
...
...
@@ -100,10 +101,10 @@
<!-- 创建设计 -->
<temDesign
:addTem=
"addVisible"
@
close=
"addVisible=false"
/>
<OrderReview
v-if=
"orderVisible"
:show-person=
"isShowPerson"
:default-type=
"isShowPerson?1:2"
@
close=
"()=>orderVisible=false"
></OrderReview>
<follow
v-
if=
"isPublicAccount"
@
close=
"isPublicAccount=false
"
></follow>
<follow
v-
show=
"isPublicAccount"
:show=
"isPublicAccount"
@
close=
"isPublicAccount=false,getInfo()
"
></follow>
</template>
<
script
lang=
"ts"
setup
>
import
{
ref
}
from
"vue"
;
import
{
ref
,
reactive
}
from
"vue"
;
import
{
useUserStore
}
from
"@/store"
;
import
{
storeToRefs
}
from
"pinia"
;
import
{
useRouter
}
from
"vue-router"
;
...
...
@@ -142,15 +143,18 @@ const isPublicAccount = ref(false)
const
format
=
(
percentage
:
number
)
=>
{
return
percentage
==
100
?
''
:
``
}
const
moreList
=
[
const
moreList
=
ref
(
[
{
icon
:
require
(
"@/assets/img/homeMore0.png"
),
Name
:
"添加到桌面"
,
Id
:
1
,
},
{
icon
:
require
(
"@/assets/img/homeMore1.png"
),
Name
:
"关注公众号"
,
Id
:
2
,
},
{
icon
:
require
(
"@/assets/img/homeMore2.png"
),
Name
:
"我的订单"
,
Url
:
'/u/order'
,
Id
:
3
,
},
{
icon
:
require
(
"@/assets/img/homeMore3.png"
),
Name
:
"意见反馈"
,
Url
:
'https://work.weixin.qq.com/kfid/kfc378aada578ca8b0e'
,
Id
:
4
,
},
]
;
]
as
any
)
;
const
TravelDesign
=
ref
({}
as
any
)
const
personalInfor
=
ref
({}
as
any
)
const
goDesNorm
=
()
=>
{
openNewBlank
(
'/d'
)
}
...
...
@@ -158,12 +162,16 @@ const goDesNorm = () => {
const
forwardUserCenter
=
()
=>
{
router
.
push
(
'/u'
)
}
const
forward
=
(
item
:
any
)
=>
{
const
forward
=
(
item
:
any
,
type
:
any
)
=>
{
if
(
item
.
Url
){
current
.
value
=
-
1
if
(
item
.
Url
.
includes
(
'http://'
)
||
item
.
Url
.
includes
(
'https://'
))
openNewBlank
(
item
.
Url
)
else
router
.
push
(
item
.
Url
)
}
else
{
// if(item.Id==2) isPublicAccount.value = true
if
(
item
.
Id
==
2
&&
type
){
if
(
item
.
Id
==
2
&&
personalInfor
.
value
.
IsOpenId
)
isPublicAccount
.
value
=
true
}
}
}
const
loginOutHandler
=
()
=>
{
...
...
@@ -185,6 +193,14 @@ const getDataStatistics = async () => {
TravelDesign
.
value
=
response
.
data
.
data
}
}
const
getInfo
=
async
()
=>
{
const
response
=
await
UserServices
.
GetMemberUserInfo
()
if
(
response
.
data
.
resultCode
==
ApiResult
.
SUCCESS
){
personalInfor
.
value
=
response
.
data
.
data
}
}
getInfo
()
getDataStatistics
()
getSampleHandler
()
</
script
>
...
...
src/components/home/follow.vue
View file @
cd113760
<
template
>
<div
class=
"followForm"
>
<div
class=
"followForm"
ref=
"followForm"
>
<div
class=
"followForm-bj"
></div>
<div
class=
"followBox row flex-center"
>
<div
class=
"followBox-center"
>
...
...
@@ -7,25 +7,38 @@
style=
"height: 33.7vw;"
/>
<span
class=
"close-btn cursor-pointer column items-center flex-center"
@
click=
"close"
><IconClose
size=
"0.83vw"
></IconClose></span>
<div
v-if=
"!qrCode||loseEffect"
class=
"q-pt-md"
style=
"position: absolute;right: 11vw;top: 27vw"
>
<el-icon
class=
"cursor-pointer"
>
<RefreshRight
v-if=
"!RefreshLoading"
@
click=
"() => getQrcode(1)"
color=
"#564bec"
/>
<Refresh
v-else
color=
"#564bec"
/>
</el-icon>
</div>
<div
class=
"pa followBoxQR"
style=
"font-size: 0.73vw;"
v-loading=
"qrLoading"
>
<
QRCode
:value=
"qrCode"
style=
"width: 13.95vw;height: auto;"
v-if=
"!qrLoading"
></QRCode
>
<
img
:src=
"qrCode"
style=
"width: 13.95vw;height: auto;"
v-if=
"!qrLoading"
></img
>
<QRCode
value=
"http://www.viitto.com"
style=
"width: 13.95vw;height: auto;"
v-if=
"qrLoading"
></QRCode>
</div>
</div>
</div>
</div>
</div>
</
template
>
<
script
setup
lang=
"ts"
>
import
{
ref
,
onMounted
,
reactive
}
from
'vue'
import
{
ref
,
onMounted
,
reactive
,
watch
,
onBeforeUnmount
}
from
'vue'
import
{
useRouter
}
from
"vue-router"
;
import
{
storeToRefs
}
from
'pinia'
import
{
useScreenStore
}
from
'@/store'
import
{
ApiResult
}
from
'@/configs/axios'
import
WechatSerice
from
'@/services/WechatSerice'
const
qrCode
=
ref
(
'none'
)
import
UserServices
from
'@/services/UserService'
import
{
ElMessage
,
FormInstance
}
from
'element-plus'
;
import
{
useUserStore
}
from
'@/store/user'
;
const
user
=
useUserStore
()
const
qrCode
=
ref
(
''
)
const
qrLoading
=
ref
(
false
)
const
router
=
useRouter
();
...
...
@@ -39,6 +52,10 @@ const props = defineProps({
Details
:{
type
:
Object
,
default
:
{},
},
show
:
{
type
:
Boolean
,
default
:
false
,
}
})
const
params
=
reactive
({
...
...
@@ -49,17 +66,64 @@ const emit = defineEmits<{
(
event
:
'close'
):
void
,
}
>
()
const
queryTimer
=
ref
<
any
>
(
null
)
const
loseEffect
=
ref
(
false
)
const
scene_id
=
ref
(
''
)
const
RefreshLoading
=
ref
(
false
)
const
followForm
=
ref
()
const
close
=
()
=>
{
emit
(
'close'
)
}
if
(
model
.
value
==
0
&&
ConfigId
.
value
)
params
.
ConfigId
=
ConfigId
.
value
const
getQrcode
=
async
()
=>
{
const
beginTimerHandler
=
()
=>
{
queryTimer
.
value
=
setInterval
(
async
()
=>
{
await
userLoginHandler
(
0
)
},
3000
)
}
const
stopTimerHandler
=
async
()
=>
{
if
(
queryTimer
.
value
){
clearInterval
(
queryTimer
.
value
)
queryTimer
.
value
=
null
userLoginHandler
(
1
)
}
}
const
getQrcode
=
async
(
type
:
any
)
=>
{
qrLoading
.
value
=
true
const
response
=
await
WechatSerice
.
GetShowQrcode
({})
if
(
response
.
data
.
resultCode
==
ApiResult
.
SUCCESS
){
qrCode
.
value
=
response
.
data
.
data
if
(
type
)
RefreshLoading
.
value
=
true
const
result
=
await
UserServices
.
GetShowQrcode
(
1
)
if
(
result
.
data
.
resultCode
==
ApiResult
.
SUCCESS
){
if
(
result
.
data
.
data
&&
result
.
data
.
data
.
url
)
qrCode
.
value
=
result
.
data
.
data
.
url
if
(
result
.
data
.
data
&&
result
.
data
.
data
.
scene_id
)
{
beginTimerHandler
()
scene_id
.
value
=
result
.
data
.
data
.
scene_id
}
loseEffect
.
value
=
false
qrLoading
.
value
=
false
}
else
qrLoading
.
value
=
false
if
(
type
)
RefreshLoading
.
value
=
false
}
const
userLoginHandler
=
async
(
type
:
any
)
=>
{
const
result
=
await
user
.
setUserWechatLoginAsync
(
scene_id
.
value
,
type
)
if
(
result
.
status
==
'SUCCESS'
){
if
(
!
type
)
{
stopTimerHandler
()
ElMessage
.
success
({
message
:
'关注成功'
})
location
.
reload
()
}
}
else
if
(
result
.
status
==
'ERROR'
)
{
if
(
!
type
)
{
stopTimerHandler
()
loseEffect
.
value
=
true
ElMessage
.
error
({
message
:
'二维码维码已失效,请重新获取'
})
}
}
qrLoading
.
value
=
false
}
const
goVipIntroduce
=
()
=>
{
...
...
@@ -67,7 +131,24 @@ const goVipIntroduce = () =>{
path
:
`/p/show`
})
}
getQrcode
()
watch
(()
=>
props
.
show
,(
n
,
o
)
=>
{
if
(
!
n
)
stopTimerHandler
()
if
(
n
)
getQrcode
()
},{
immediate
:
true
})
onMounted
(
()
=>
{
document
.
addEventListener
(
'click'
,
(
e
)
=>
{
if
(
props
.
show
&&
followForm
.
value
)
{
followForm
.
value
.
click
()
}
});
})
onBeforeUnmount
(()
=>
{
document
.
removeEventListener
(
'click'
,
()
=>
{});
})
</
script
>
<
style
lang=
"scss"
scoped
>
...
...
src/configs/axios.ts
View file @
cd113760
...
...
@@ -79,7 +79,7 @@ const getErrorCode2text = (response: AxiosResponse): string => {
const
service
=
Axios
.
create
({
// process.env.VUE_APP_API_URL
//'http://reborn.oytour.com/api/common/post'
baseURL
:
process
.
env
.
VUE_APP_API_URL
,
baseURL
:
'http://192.168.5.34/api/common/post'
,
timeout
:
200000
,
headers
:
{
'User-Type'
:
'bus'
,
...
...
src/services/UserService.ts
View file @
cd113760
...
...
@@ -59,8 +59,8 @@ class UserServices {
}
static
async
WechatLoginAsync
(
scene_id
:
string
):
Promise
<
HttpResponse
>
{
let
msg
=
{
scene_id
}
static
async
WechatLoginAsync
(
scene_id
:
string
,
islean
:
Number
):
Promise
<
HttpResponse
>
{
let
msg
=
{
scene_id
,
islean
}
return
Api
.
Post
(
"Wechat_QrCode_GetSceneId"
,
msg
)
}
...
...
src/services/WechatSerice.ts
deleted
100644 → 0
View file @
11c97d0b
import
Api
,{
HttpResponse
,
Result
}
from
'./../utils/request'
;
class
WechatSerice
{
static
async
GetShowQrcode
(
params
:
any
):
Promise
<
HttpResponse
>
{
return
Api
.
Post
(
"Wechat_QrCode_GetShowQrcode"
,
params
)
}
}
export
default
WechatSerice
;
\ No newline at end of file
src/store/user.ts
View file @
cd113760
...
...
@@ -113,9 +113,9 @@ export const useUserStore = defineStore('user', {
this
.
userInfo
.
logo
=
ENTERPRISE_DEFAULT_HEADER
}
},
async
setUserWechatLoginAsync
(
scene_id
:
string
)
{
async
setUserWechatLoginAsync
(
scene_id
:
string
,
islean
:
any
)
{
try
{
let
response
=
await
UserService
.
WechatLoginAsync
(
scene_id
)
let
response
=
await
UserService
.
WechatLoginAsync
(
scene_id
,
islean
)
if
(
response
.
data
.
resultCode
==
ApiResult
.
SUCCESS
)
{
if
(
!
Array
.
isArray
(
response
.
data
.
data
))
{
this
.
token
=
response
.
data
.
data
.
token
...
...
src/views/Auth/components/wechatLogin.vue
View file @
cd113760
...
...
@@ -12,7 +12,8 @@
@
click=
"() => getQrcode(1)"
/>
<Refresh
v-else
/>
</el-icon></div>
</el-icon>
</div>
</div>
</
template
>
<
script
lang=
"ts"
setup
>
...
...
@@ -50,14 +51,15 @@ const loseEffect = ref(false)
const
beginTimerHandler
=
()
=>
{
queryTimer
.
value
=
setInterval
(
async
()
=>
{
await
userLoginHandler
()
await
userLoginHandler
(
0
)
},
3000
)
}
const
stopTimerHandler
=
()
=>
{
const
stopTimerHandler
=
async
()
=>
{
if
(
queryTimer
.
value
){
clearInterval
(
queryTimer
.
value
)
queryTimer
.
value
=
null
await
userLoginHandler
(
1
)
}
}
...
...
@@ -77,20 +79,24 @@ const getQrcode = async (type:any) =>{
if
(
type
)
RefreshLoading
.
value
=
false
}
const
userLoginHandler
=
async
()
=>
{
const
result
=
await
user
.
setUserWechatLoginAsync
(
scene_id
.
value
)
const
userLoginHandler
=
async
(
type
:
any
)
=>
{
const
result
=
await
user
.
setUserWechatLoginAsync
(
scene_id
.
value
,
type
)
if
(
result
.
status
==
'SUCCESS'
){
stopTimerHandler
()
ElMessage
.
success
({
message
:
'登录成功'
})
if
(
inviteInfo
.
value
){
localStorage
.
removeItem
(
'invite'
)
localStorage
.
setItem
(
'sure_invite'
,
JSON
.
stringify
(
inviteInfo
.
value
))
if
(
!
type
)
{
stopTimerHandler
()
ElMessage
.
success
({
message
:
'登录成功'
})
if
(
inviteInfo
.
value
){
localStorage
.
removeItem
(
'invite'
)
localStorage
.
setItem
(
'sure_invite'
,
JSON
.
stringify
(
inviteInfo
.
value
))
}
location
.
href
=
'/space'
;
}
location
.
href
=
'/space'
;
}
else
if
(
result
.
status
==
'ERROR'
)
{
stopTimerHandler
()
loseEffect
.
value
=
true
ElMessage
.
error
({
message
:
'二维码维码已失效,请重新获取'
})
if
(
!
type
)
{
stopTimerHandler
()
loseEffect
.
value
=
true
ElMessage
.
error
({
message
:
'二维码维码已失效,请重新获取'
})
}
}
}
...
...
src/views/Editor/Thumbnails/index.vue
View file @
cd113760
...
...
@@ -532,15 +532,12 @@ const GetTripTemplate = async () =>{
VIEWPORT_VER_SIZE
.
Value
=
1240
}
// if(searchData.value.isTeamManage) mainStore.setToolbarState(ToolbarStates.EL_TEMPLATEDATA)
setTimeout
(()
=>
{
loadingObj
.
close
()
},
300
)
if
(
ConfigId
.
value
==
0
)
return
if
(
TempId
.
value
&&!
searchData
.
value
.
TempId
)
await
GetTripConfig
()
if
(
model
.
value
!=
3
)
await
GetTripFiledData
()
}
else
{
loadingObj
.
close
()
}
loadingObj
.
close
()
}
catch
(
error
)
{
loadingObj
.
close
()
}
...
...
src/views/Editor/Toolbar/common/ElementDataMapping.vue
View file @
cd113760
<
template
>
<div
class=
"element-data-mapping"
v-if=
"handleElement && handleElement.dataMapping&&userInfo.isp
==2
"
>
<div
class=
"element-data-mapping"
v-if=
"handleElement && handleElement.dataMapping&&userInfo.isp"
>
<divider
/>
<div
class=
"q-mb-md row items-center"
>
<div
class=
"text-small col"
>
数据绑定
</div>
...
...
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